Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Archived » XML Schema Definition (XSD) » A Diagnostic Message for the Valid Schema
A Diagnostic Message for the Valid Schema [message #19419] Fri, 02 May 2003 10:18 Go to next message
Eclipse UserFriend
Originally posted by: paechoi.earthlink.net

I have a simple test schema as follows:

<?xml version="1.0" encoding="UTF-8"?>
<!--W3C Schema generated by Pae -->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xsd:element name="CommonLogin">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="username" ref="usernameRef"/>
<xsd:element name="password" ref="passwordRef"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="passwordRef" type="xsd:string"/>
<xsd:element name="usernameRef" type="xsd:string"/>
</xsd:schema>

This is a very simple sample, but it is a valid schema. But when
I use the validate() and getDiagnostics() methods in the XSDSchema
interface it gives me a message as follows:

XSD: The element '#null' is not permitted as constrained by 'XML Schema ';
expecting schema

I do not understand what the message is saying. Any comments?


Pae
Re: A Diagnostic Message for the Valid Schema [message #19645 is a reply to message #19419] Fri, 02 May 2003 12:04 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: merks.ca.ibm.com

--------------1D6FA7A65711ABE6113943C2
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Pae,

I'm seeing this result with the just published 1.1.0 driver:

[Image]

The schema isn't valid.


Pae Choi wrote:

> I have a simple test schema as follows:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <!--W3C Schema generated by Pae -->
> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> elementFormDefault="qualified">
> <xsd:element name="CommonLogin">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element name="username" ref="usernameRef"/>
> <xsd:element name="password" ref="passwordRef"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="passwordRef" type="xsd:string"/>
> <xsd:element name="usernameRef" type="xsd:string"/>
> </xsd:schema>
>
> This is a very simple sample, but it is a valid schema. But when
> I use the validate() and getDiagnostics() methods in the XSDSchema
> interface it gives me a message as follows:
>
> XSD: The element '#null' is not permitted as constrained by 'XML Schema ';
> expecting schema
>
> I do not understand what the message is saying. Any comments?
>
> Pae

--------------1D6FA7A65711ABE6113943C2
Content-Type: multipart/related;
boundary="------------2625BBBC78E34E3AAB1FB179"


--------------2625BBBC78E34E3AAB1FB179
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
Pae,
<p>I'm seeing this result with the just published 1.1.0 driver:
<blockquote><img SRC="cid:part1.3EB25ED9.318AFBD5@ca.ibm.com" height=411 width=502></blockquote>
The schema isn't valid.
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE=CITE>I have a simple test schema as follows:
<p>&lt;?xml version="1.0" encoding="UTF-8"?>
<br>&lt;!--W3C Schema generated by Pae -->
<br>&lt;xsd:schema xmlns:xsd="<a href="http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchema</a>"
<br>elementFormDefault="qualified">
<br>&nbsp;&lt;xsd:element name="CommonLogin">
<br>&nbsp; &lt;xsd:complexType>
<br>&nbsp;&nbsp; &lt;xsd:sequence>
<br>&nbsp;&nbsp;&nbsp; &lt;xsd:element name="username" ref="usernameRef"/>
<br>&nbsp;&nbsp;&nbsp; &lt;xsd:element name="password" ref="passwordRef"/>
<br>&nbsp;&nbsp; &lt;/xsd:sequence>
<br>&nbsp; &lt;/xsd:complexType>
<br>&nbsp;&lt;/xsd:element>
<br>&nbsp;&lt;xsd:element name="passwordRef" type="xsd:string"/>
<br>&nbsp;&lt;xsd:element name="usernameRef" type="xsd:string"/>
<br>&lt;/xsd:schema>
<p>This is a very simple sample, but it is a valid schema. But when
<br>I use the validate() and getDiagnostics() methods in the XSDSchema
<br>interface it gives me a message as follows:
<p>XSD: The element '#null' is not permitted as constrained by 'XML Schema
';
<br>expecting schema
<p>I do not understand what the message is saying. Any comments?
<p>Pae</blockquote>
</html>

--------------2625BBBC78E34E3AAB1FB179
Content-Type: image/jpeg
Content-ID: <part1.3EB25ED9.318AFBD5@ca.ibm.com>
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\nsmailFJ.jpeg"

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCws MGJGSjpQdGZ6
eHJmcG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAq MF40NF7GhHCE
xsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbG xsbGxsb/wAAR
CAGbAfYDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcI CQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS 0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1 dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW 19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcI CQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMz UvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0 dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU 1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDXghR49zbiST/EfU0m23yQ BKcHHG81Ja/6
kf7zfzNVLrfsTY5wGkLRrJsZueoPt6e9NK4FpIYJEDIWKnoQ5/xpfs0Xo3/f Z/xqKy2bmMbM
UZEcZ75zzjt2qMXc+1kYBbgkbYvLyRnJ67sNwDzkdPXikBZ+zRejf99n/Gj7 NF6N/wB9n/Gq
a31w+eI027VYMuTuLsmeD2xnHPpnvS/bZyJnHlhYELMNpy5DODg54zs9+veg C39mi9G/77P+
NH2aL0b/AL7P+NUEup4hIkMQZY2kdycYwZH4yWGPu9ef8b883lxs6FW2H5l7 n2HvyMDv075o
APs0Xo3/AH2f8aPs0Xo3/fZ/xqFriZWhLGMRPt/eKpdSSeFGDx2+YjBz26Uy 3kkmuraaQptk
gZlVVIKglDgnPP6UATyQxIudrH/gZpm2L+43/fw1NP8AcH1rJvJZbecG2Jlk dSWhOSAAPvD0
/r9aQGhti/uN/wB/DTDGBI65bAPHzH0B/rUdntNurLMZt3zFyep+nb6VM/8A r5f94fyFAxvl
j1b/AL6NHlj1b/vo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+ jTqKAG+WPVv+
+jR5Y9W/76NOooAb5Y9W/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igB vlj1b/vo0eWP
Vv8Avo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPV v++jR5Y9W/76
NOooAb5Y9W/76NHlj1b/AL6NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/AL6N Hlj1b/vo06ig
Bvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+jTqKAG+WPVv++jR5Y9W/ 76NOooAb5Y9W
/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/vo0eWPVv8Avo06 igBvlj1b/vo0
eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPVv++jR5Y9W/76NOooAb5Y 9W/76NHlj1b/
AL6NOooAb5Y9W/76NHlj1b/vo06igCvOTEV2MRnOcnP86KS76p+P9KKBF+1/ 1I/3m/majktG
kBVmiZNxYK8W7Gfx96hREIJKqTuPUe9O8uP+4v5U7gWIYnR3d3DFgBwuMYz/ AI0otoBEYhBG
I2OSgQYJ+lNdbaNlVkjDOcKu0ZP0FMcwRyBWtvlyFMmwbQT0Hqeo6DHP1oAm WCFF2pFGo44C
gdDkfrzTPscBn84xIXwMZUfKQScj3yaT/Q/+mH39nb73p9fahfsbruTyGHHI wepwP14oAkaC
FipaKMlCWUlRwSckj8ad5abt2xc53Zx3xjP5cVCVgFwsJgXLIXDbRjggEfqK k8iH/nkn/fIo
ABBCJBIIo94zhtoyM5zz+J/OhIIY5GkSKNXbqwUAn8ah8yw8vzN9tszt3ZXG fTNO/wBD87yf
3Hm/3ON3r0oAklUsoAGeagFuVZmEYDN94jGT9adusgwXNvuLbAMrkt6fXkUM 1ksvlMbcSZA2
ErnJ6cUANW3KZ2RhdxycYGT60j/6+X/eH8hUgFqZzCEiLgZIG3I6dR170f6H 53k/uPN/ucbv
XpQBHRUg+xs4QeQWJK7RjOR1H4U3zLDzPL322/O3blc59MUrANoprz2y3Bh+ ysSJFjyIxjJG
f0HWpf8ARvtPkeSN+0tkx4GBjv369qLAMoqx5EP/ADyT/vkVX8y33f8AHt+7 37PM2rtznGOu
evHT9KLAFFNee2W4MP2ViRIseRGMZIz+g61a8iH/AJ5J/wB8iiwFeipP9D87 yf3Hm/3ON3r0
oH2NnCDyCxJXaMZyOo/CiwEdFSH7GJDGfI3jGV4yM4xx+I/Oj/Q/O8n9x5v9 zjd69KLAR0Us
slpE4TZGz7lUqu3K5IAJHpyPzp4FqZzCEiLgZIG3I6dR170WAjoqQfY2cIPI LEldoxnI6j8K
R2skZlc26sgywJUED3/MfnRYBlFO8yw8zy99tvzt25XOfTFRvPbLcGH7KxIk WPIjGMkZ/Qda
LAOoprzQr5n+hMfLkEZwqck4xjn3H5/WkeeJHKf2fKxAYjCJ8wU4JAznuPrR YB9FN86Hz2iF
kxKvtJCp7c4znHzDt3q15EP/ADyT/vkUWAr0UeZb7v8Aj2/d79nmbV25zjHX PXjp+lNee2W4
MP2ViRIseRGMZIz+g60WAdRTnMEcgVrb5chTJsG0E9B6nqOgxz9aei20jMqp GWQ4ZdoyPqKL
ARUVY8iH/nkn/fIo8iH/AJ5J/wB8iiwFeirHkQ/88k/75FHkQ/8APJP++RRY CvRVjyIf+eSf
98ijyIf+eSf98iiwFeirHkQ/88k/75FHkQ/88k/75FFgK9FWPIh/55J/3yKP Ih/55J/3yKLA
V6KseRD/AM8k/wC+RR5EP/PJP++RRYCvRVjyIf8Ankn/AHyKPIh/55J/3yKL AV6KseRD/wA8
k/75FHkQ/wDPJP8AvkUWAr0VY8iH/nkn/fIo8iH/AJ5J/wB8iiwFeipngh2/ 6pOo/hFQbYv+
eUfPtQMWioJlTz4FCKAScgDrxUb3FsjlWj5Bx90UWGouWiQ676p+P9KKLtFR lAUDrnAooJJ4
/un/AHj/ADp1Nj+6f94/zp1AyXyWjmMkTAhz86vknr2PbqeOn05NOeMyTLuA MSjP3urZ4yMd
vr+HQ055Y42VWYBnOFXufoKDIBMsWDuZSw9MAj/EUxFb7PN9s+0Yj+/jZuON uMbun3+30496
rtp8zo2Y4AzCYZDE4L9D0/D6flWpRQBWdJzepIqRmNVK5LkHBKknGPb1qzVV 70L5n7iU+XII
zjbyTjGOfcfn9akFwPOEbRyKGJVXIGGIycevY9scfSgCP7M/2rOV+z58zb33 /Tpjv67uaiWy
dZuUDp5pkyZ3HVt33MY4/XFWGufnwkMki7gpdAMA5x65474/oanoAqwRTR3c 7mOLbK+dwc7s
BQAMY9vXvUf2WZp8lI1XzN2VlYjGc/cIxk+vrz1qb7WC2FhlZd+wOqgjOcHv kY55Ixx9KkM8
IkMZlj3jGV3DIzjHH4j86AInSc3qSKkZjVSuS5BwSpJxj29aZ9nmx5OI/K83 zN+47vv78bcf
h19/apo7mN5WjJ2OrlArEZbAByOeeCKd58PneT5sfm/3Nw3evSgCo9tOWnZY 4d0kyOCXIJVc
cH5f9n9T+Nn7NH5m/dLnOcec+Pyzj8Kcs8LruSWNhxyGB6nA/Xijz4fO8nzY /N/ubhu9elAD
vLTdu2LnO7OO+MZ/LioHSc3qSKkZjVSuS5BwSpJxj29as1E9zAjMrzxqyDLA uAQPf8x+dAC/
vvtH/LPyNnvu3Z/LGKr/AGebHk4j8rzfM37ju+/vxtx+HX39qsefD53k+bH5 v9zcN3r0oE8L
OEEsZYkrtDDOR1H4UAO8tN27Yuc7s474xn8uKdUfnw+d5Pmx+b/c3Dd69KT7 TAGC+fHuLbAN
4yW9PryKAKq2TrNygdPNMmTO46tu+5jHH64oe2nLTsscO6SZHBLkEquOD8v+ z+p/G358PneT
5sfm/wBzcN3r0pqXdu8zQrNGZFO0pu5z9KAIlgkVhGY4XjEpkDsSSCWJ4XHX nGc+/tSfZ5se
TiPyvN8zfuO77+/G3H4dff2qx58PneT5sfm/3Nw3evSmS3cUThNwZ9yqVVhl ckAEjPTkfnQB
XltZynlosLKs3nKzE5J37sdOOpGefpzxM6Tm9SRUjMaqVyXIOCVJOMe3rVmo IbuKXau4JIxI
EbMN3BIPAPsaAK7205adljh3STI4JcglVxwfl/2f1P4xypJ5i2wjDBZxKHKN 3fcecYGATzk9
MY5q613bLu3XEQ2na2XHB9D+R/KpqAIfs0fmb90uc5x5z4/LOPwqTy03bti5 zuzjvjGfy4qA
Xg81kaGRVRxGXO3GTjHfPOR271L58PneT5sfm/3Nw3evSgCB7aRpXA2eXJKk pYk5BXbxjHP3
eue/tUjxyG9ikATy1RlJLHOSQemP9n170/z4fO8nzY/N/ubhu9elSUAVYLYp eT3EkcYZz8rK
xJ24AweP9kH8fzk+zR+Zv3S5znHnPj8s4/CpqKAKP2N/P3bIs+Zv8/P7zGc7 enp8vXp+VXPL
Tdu2LnO7OO+MZ/LikSWORmVWBZDhl7j6in0ARPGZJl3AGJRn73Vs8ZGO31/D oab5LSTCSVgA
h+RUyD17nv0HHT68Gp6KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKAGyE
Bck4AIyT9az3EMjBmlOR0w4GKvyqrxlXUMD2IzVf7Lb/APPCL/vgf5/z+YBW lZWubfawOCe+
f4aZJYLJIz+cRuOcbP8A69WzbwqMrDGD6hR/n/P5t8uP+4v5UXsXCcoO8SG9 OXU+uaKbdKF2
BQAOen4UUiCxH90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51fJPXse3U8dPp yakKAzK+0ZVS
N2eRkjjH4fpQ8scbKrMAznCr3P0FJ58P/PWP7+z7w+96fX2piG/Zo/M37pc5 zjznx+WcfhR9
mj8zfulznOPOfH5Zx+FK1zAsvlNPGJMgbC4zk9OKbLdxROE3Bn3KpVWGVyQA SM9OR+dAEEti
73ZlDrtLhj6/wH/2mP8Avo+nMphka7WRljUIT8653MuDhSMdOc9eo6ek/mJ5 nl71343bc849
cUxrmBZfKaeMSZA2FxnJ6cUAMSOaJikflmIuX3MTuGTkjHfqecjr3xzYqMzw iQxmWPeMZXcM
jOMcfiPzpsdzG8rRk7HVygViMtgA5HPPBFAEDWsjz+Y0durbw3nICHCg8Dpz kDB5HXp6uWCR
WEZjheMSmQOxJIJYnhcdecZz7+1T+fD53k+bH5v9zcN3r0oWeF13JLGw45DA 9TgfrxQBUe2n
LTsscO6SZHBLkEquOD8v+z+p/EWydZuUDp5pkyZ3HVt33MY4/XFW/Ph87yfN j83+5uG716VJ
QBltp8zo2Y4AzCYZDE4L9D0/D6flT5bKcuSmziUSAmVgG+bONo4H15zjPU8X fPh/56x/f2fe
H3vT6+1Czwuu5JY2HHIYHqcD9eKAJKzJUk8xbYRhgs4lDlG7vuPOMDAJ5yem Mc1fMoFwsJVs
shcNxjggEfqKBPCzhBLGWJK7QwzkdR+FAFRbJ1m5QOnmmTJncdW3fcxjj9cU PbTlp2WOHdJM
jglyCVXHB+X/AGf1P42muYFl8pp4xJkDYXGcnpxT/MTzPL3rvxu255x64oAp LZOs3KB080yZ
M7jq277mMcfripYIpo7udzHFtlfO4Od2AoAGMe3r3qbz4f8AnrH9/Z94fe9P r7UjXMCy+U08
YkyBsLjOT04oApy2U5clNnEokBMrAN82cbRwPrznGep4srHNHcSFPLKSOHLE nI4Axjv0657+
3Ky3cUThNwZ9yqVVhlckAEjPTkfnS/a7bzPL+0Rb87du8Zz6YoArLZOs3KB0 80yZM7jq277m
McfriiW1nKeWiwsqzecrMTknfux046kZ5+nPEr3yLcGHypSRIseQvGSM/oOt SR3MbytGTsdX
KBWIy2ADkc88EUATVQitZwnlusKq03nMyk5B37sdOegGePpxzZS7t3maFZoz Ip2lN3OfpQl3
bvM0KzRmRTtKbuc/SgCBo99+YwH8skSyZQ4LLjHPv8p4/ue5q7UYnhZwgljL EldoYZyOo/Cn
eYnmeXvXfjdtzzj1xQBWitT9qmlmUYZwyASMRwAOV6Z4z3/SoZbKcuSmziUS AmVgG+bONo4H
15zjPU8XXl2zRxgZL5J56Ad/zIH40PLtmjjAyXyTz0A7/mQPxoAqLZOs3KB0 80yZM7jq277m
Mcfrir9Qtd2y7t1xENp2tlxwfQ/kfyoa7tl3briIbTtbLjg+h/I/lQAfZo/M 37pc5zjznx+W
cfhR9mj8zfulznOPOfH5Zx+FDXdsu7dcRDadrZccH0P5H8qmoAg8lpJhJKwA Q/IqZB69z36D
jp9eDU9Qtd2y7t1xENp2tlxwfQ/kfyoFwPOEbRyKGJVXIGGIycevY9scfSgC aiio/Ph87yfN
j83+5uG716UASUVF9pgDBfPj3FtgG8ZLen15FD3MCMyvPGrIMsC4BA9/zH50 AS0VG8u2aOMD
JfJPPQDv+ZA/Gmi4HnCNo5FDEqrkDDEZOPXse2OPpQBNRVf7Wu7/AFcnl79n mcbc5xjrnrx0
/Sj7Wu7/AFcnl79nmcbc5xjrnrx0/SgCxRUX2hPtPkYfftLZKkDAx379e1K8 u2aOMDJfJPPQ
Dv8AmQPxoAkoqq96Edk8iUsrhQo25bOcEc9OP5+hxHJqkUczxGKUusix4G3k tkjHPtQBeoqK
GfzZJU8t18ptpLYwTjPGD6EfnTPtYLYWGVl37A6qCM5we+RjnkjHH0oAsUVG Z4RIYzLHvGMr
uGRnGOPxH502O5jeVoydjq5QKxGWwAcjnngigCaio/Ph87yfNj83+5uG716U LPC67kljYcch
gepwP14oAkoqPz4fO8nzY/N/ubhu9elQvfItwYfKlJEix5C8ZIz+g60AWH+6 aj/z/n/P/wBe
R/umo/8AP+f8/wD1wBr/AHT/AJ/z/n8Y6kf7p/z/AJ/z+MdIZWu+qfj/AEoo u+qfj/SigRPH
90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51fJPXse3U8dPpyai+zzfbPtGI/ v42bjjbjG7p9
/t9OPerHnw+d5Pmx+b/c3Dd69KDKBcLCVbLIXDcY4IBH6imIq/ZZmnyUjVfM 3ZWViMZz9wjG
T6+vPWkltZynlosLKs3nKzE5J37sdOOpGefpzxb8+HzvJ82Pzf7m4bvXpQs8 LruSWNhxyGB6
nA/XigBvlv8AbPM2RbPL27sfPnPTPp/Wq/2WZp8lI1XzN2VlYjGc/cIxk+vr z1q158PneT5s
fm/3Nw3evSgTws4QSxliSu0MM5HUfhQBAsEisIzHC8YlMgdiSQSxPC4684zn 39qje2nLTssc
O6SZHBLkEquOD8v+z+p/Gyl3bvM0KzRmRTtKbuc/So/to89ohBKSr7SRt9uc Zzj5h270ARLZ
Os3KB080yZM7jq277mMcfriom0+Z0bMcAZhMMhicF+h6fh9PyrQ8+HzvJ82P zf7m4bvXpSfa
YAwXz49xbYBvGS3p9eRQBTlspy5KbOJRICZWAb5s42jgfXnOM9Txo1Gs8Lru SWNhxyGB6nA/
Xio1u1MzxtHIgV9m9sbSeCBwe+R1+nXigCP7PN9s+0Yj+/jZuONuMbun3+30 496rtp8zo2Y4
AzCYZDE4L9D0/D6flWh58PneT5sfm/3Nw3evSoX1C3W4WBXV3JwQHX5TnHc/ oMmgBXSc3qSK
kZjVSuS5BwSpJxj29ahe2nLTsscO6SZHBLkEquOD8v8As/qfxt+fD53k+bH5 v9zcN3r0o8+H
/nrH9/Z94fe9Pr7UAVfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVjy3+2eZsi2eX t3Y+fOemfT+t
OMoFwsJVsshcNxjggEfqKal3bvM0KzRmRTtKbuc/SgCH7PN9s+0Yj+/jZuON uMbun3+30496
b9lmafJSNV8zdlZWIxnP3CMZPr689asfa7bzPL+0Rb87du8Zz6YqN75FuDD5 UpIkWPIXjJGf
0HWgCKW1nKeWiwsqzecrMTknfux046kZ5+nPFn7NH5m/dLnOcec+Pyzj8KV7 mBGZXnjVkGWB
cAge/wCY/Ol8+H/nrH9/Z94fe9Pr7UAO8tN27Yuc7s474xn8uKpPbTlp2WOH dJMjglyCVXHB
+X/Z/U/jb8+HzvJ82Pzf7m4bvXpQZQLhYSrZZC4bjHBAI/UUARrHNHcSFPLK SOHLEnI4Axjv
0657+3Isc0dxIU8spI4csScjgDGO/Trnv7cyCeMzmEMpcDJAYZHTqOveoX1C 3W4WBXV3JwQH
X5TnHc/oMmgCBI3mu7kCIKhmRjIwIJCheBxyMqe/f87flv8AbPM2RbPL27sf PnPTPp/WnCeM
zmEMpcDJAYZHTqOvejz4fO8nzY/N/ubhu9elADYUbzJZZBhnO0D0UZx/U/jj tRCjeZLLIMM5
2geijOP6n8cdqSW7iicJuDPuVSqsMrkgAkZ6cj86Y98i3Bh8qUkSLHkLxkjP 6DrQAySzke5L
iQCNnVyOeo29v+Af+PH05JLOR7kuJAI2dXI56jb2/wCAf+PH05tJLHIzKrAs hwy9x9RT6AKU
lnI9yXEgEbOrkc9Rt7f8A/8AHj6c2f332j/ln5Gz33bs/ljFSUUAUpLOR7ku JAI2dXI56jb2
/wCAf+PH05kMMjXayMsahCfnXO5lwcKRjpznr1HT0s0UAR/vvtH/ACz8jZ77 t2fyxiq/2ebH
k4j8rzfM37ju+/vxtx+HX39quUUAVYIpo7udzHFtlfO4Od2AoAGMe3r3qtKk nmLbCMMFnEoc
o3d9x5xgYBPOT0xjmtOigCGFG8yWWQYZztA9FGcf1P447VGiXP2ou6xFckbt 5JCdgBjjtnn+
mLVFAFP7PNjycR+V5vmb9x3ff3424/Dr7+1H2ebHk4j8rzfM37ju+/vxtx+H X39quUUAVnSc
3qSKkZjVSuS5BwSpJxj29afCjeZLLIMM52geijOP6n8cdqmooApyR3ZnMqiL KnagLnGw9c/L
1OB+Q98xy2k7SSyBIixlV0JkI+Ubcg8d9g/P89CigCmI7tZpSgiCySq+7ech RtBGNvcD170j
Wsjz+Y0durbw3nICHCg8DpzkDB5HXp63aKAKiwSKwjMcLxiUyB2JJBLE8Ljr zjOff2qN7act
Oyxw7pJkcEuQSq44Py/7P6n8b9FAFBbJ1m5QOnmmTJncdW3fcxjj9cVE2nzO jZjgDMJhkMTg
v0PT8Pp+ValFAGdLZTlyU2cSiQEysA3zZxtHA+vOcZ6ni/5abt2xc53Zx3xj P5cU6igBr/dN
R/5/z/n/AOvI/wB01H/n/P8An/64A1/un/P+f8/jHUj/AHT/AJ/z/n8Y6Qyt d9U/H+lFF31T
8f6UUCJ4/un/AHj/ADp1Nj+6f94/zp1Axi2TrNygdPNMmTO46tu+5jHH64qZ 0nN6kipGY1Ur
kuQcEqScY9vWrNMeWONlVmAZzhV7n6CmIprZOs3KB080yZM7jq277mMcfrio m0+Z0bMcAZhM
MhicF+h6fh9PyrQ8+H/nrH9/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oAqrZO s3KB080yZM7j
q277mMcfrih7actOyxw7pJkcEuQSq44Py/7P6n8bEt3FE4TcGfcqlVYZXJAB Iz05H51L5ieZ
5e9d+N23POPXFAEKxzR3EhTyykjhyxJyOAMY79Oue/ty2C2KXk9xJHGGc/Ky sSduAMHj/ZB/
H85vPh87yfNj83+5uG716UGUC4WEq2WQuG4xwQCP1FAFf7PNjycR+V5vmb9x 3ff3424/Dr7+
1Ogimju53McW2V87g53YCgAYx7evepvPh87yfNj83+5uG716ULPC67kljYcc hgepwP14oAz2
0+Z0bMcAZhMMhicF+h6fh9PyqwLeZppfMEaxPKsmVYlvl24GMcfdB/T3qx58 PneT5sfm/wBz
cN3r0oE8LOEEsZYkrtDDOR1H4UAVFsnWblA6eaZMmdx1bd9zGOP1xUqpci8e Xy4tjBU/1hyA
CecbffpUiXdu8zQrNGZFO0pu5z9KmoAzpbKcuSmziUSAmVgG+bONo4H15zjP U8ST205aTyvL
KvKkvzEg5Xb8vT/Z6/hjvVkTws4QSxliSu0MM5HUfhR58PneT5sfm/3Nw3ev SgCJ0nN6kipG
Y1UrkuQcEqScY9vWlWOaO4kKeWUkcOWJORwBjHfp1z39uZFnhddySxsOOQwP U4H68UefD53k
+bH5v9zcN3r0oAb9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd8Yz+XFR/a7bz PL+0Rb87du8Z
z6YqN75FuDD5UpIkWPIXjJGf0HWgCvcxSxRqpjV41uBIGVWZuX3HgDjAJ5z2 96lntpy0nleW
VeVJfmJByu35en+z1/DHepmufnwkMki7gpdAMA5x65474/oaf58PneT5sfm/ 3Nw3evSgClLZ
TlyU2cSiQEysA3zZxtHA+vOcZ6niw6Tm9SRUjMaqVyXIOCVJOMe3rUqzwuu5 JY2HHIYHqcD9
eKFnhddySxsOOQwPU4H68UAROk5vUkVIzGqlclyDglSTjHt60ipci8eXy4tj BU/1hyACecbf
fpU3nw+d5Pmx+b/c3Dd69KBPCzhBLGWJK7QwzkdR+FAETpOb1JFSMxqpXJcg 4JUk4x7etQrZ
Os3KB080yZM7jq277mMcfrirUM/mySp5br5TbSWxgnGeMH0I/Ol8+HzvJ82P zf7m4bvXpQBU
ltZynlosLKs3nKzE5J37sdOOpGefpzxd8tN27Yuc7s474xn8uKY9zAjMrzxq yDLAuAQPf8x+
dKJ4zOYQylwMkBhkdOo696AGeS0kwklYAIfkVMg9e579Bx0+vBqeoxPCzhBL GWJK7QwzkdR+
FQvfItwYfKlJEix5C8ZIz+g60AWqKYkscjMqsCyHDL3H1FPoAKKKKACiiigA ooooAKKKKACi
iigAooooAKKKKACiiigAooooAKKKKACiiigBr/dNR/5/z/n/AOvI/wB01H/n /P8An/64A1/u
n/P+f8/jHUj/AHT/AJ/z/n8Y6Qytd9U/H+lFF31T8f6UUCJ4/un/AHj/ADp1 Nj+6f94/zp1A
y5UHktHMZImBDn51fJPXse3U8dPpyanopiKf2eb7Z9oxH9/GzccbcY3dPv8A b6ce9N+yzNPk
pGq+ZuysrEYzn7hGMn19eetW3ljjZVZgGc4Ve5+gpPPh/wCesf39n3h970+v tQBUltZynlos
LKs3nKzE5J37sdOOpGefpzxZ8t/tnmbItnl7d2Pnznpn0/rStcwLL5TTxiTI GwuM5PTimy3c
UThNwZ9yqVVhlckAEjPTkfnQBXWydZuUDp5pkyZ3HVt33MY4/XFTOk5vUkVI zGqlclyDglST
jHt61P5ieZ5e9d+N23POPXFNM8IkMZlj3jGV3DIzjHH4j86AKi2TrNygdPNM mTO46tu+5jHH
64qJtPmdGzHAGYTDIYnBfoen4fT8q0PPh87yfNj83+5uG716ULPC67kljYcc hgepwP14oAqL
ZOs3KB080yZM7jq277mMcfrih7actOyxw7pJkcEuQSq44Py/7P6n8bYnhZwg ljLEldoYZyOo
/CgygXCwlWyyFw3GOCAR+ooAjWOaO4kKeWUkcOWJORwBjHfp1z39ubFR+fD5 3k+bH5v9zcN3
r0o8+H/nrH9/Z94fe9Pr7UAVHtpy07LHDukmRwS5BKrjg/L/ALP6n8Wy2U5c lNnEokBMrAN8
2cbRwPrznGep4me+KOU+yXDEBiMBfmCnBIGc9x9ala7tl3briIbTtbLjg+h/ I/lQBRbT5nRs
xwBmEwyGJwX6Hp+H0/KpVsnWblA6eaZMmdx1bd9zGOP1xVsTws4QSxliSu0M M5HUfhR58Pne
T5sfm/3Nw3evSgBv2aPzN+6XOc4858flnH4VJ5abt2xc53Zx3xjP5cUiSxyM yqwLIcMvcfUU
+gCukc0TFI/LMRcvuYncMnJGO/U85HXvjmP7PNjycR+V5vmb9x3ff3424/Dr 7+1XKKAMttPm
dGzHAGYTDIYnBfoen4fT8qG0+Z0bMcAZhMMhicF+h6fh9PyrUooAp/Z5seTi PyvN8zfuO77+
/G3H4dff2pj205adljh3STI4JcglVxwfl/2f1P436KAKYju1mlKCILJKr7t5 yFG0EY29wPXv
R9nmx5OI/K83zN+47vv78bcfh19/arlFAGZKknmLbCMMFnEoco3d9x5xgYBP OT0xjmrTpOb1
JFSMxqpXJcg4JUk4x7etWaKAKD205adljh3STI4JcglVxwfl/wBn9T+N3y03 bti5zuzjvjGf
y4p1FAEHktJMJJWACH5FTIPXue/QcdPrwanoooAKKKKACiiigAooooAKKKKA CiiigAooooAK
KKKACiiigAooooAKKKKACiiigBr/AHTUf+f8/wCf/ryP901H/n/P+f8A64A1 /un/AD/n/P4x
1I/3T/n/AD/n8Y6Qytd9U/H+lFF31T8f6UUCJ4/un/eP86dTY/un/eP86dQM uUUUUxEHktHM
ZImBDn51fJPXse3U8dPpyai+zzfbPtGI/v42bjjbjG7p9/t9OPerlMeWONlV mAZzhV7n6CgC
p9lmafJSNV8zdlZWIxnP3CMZPr689aSW1nKeWiwsqzecrMTknfux046kZ5+n PFvz4f8AnrH9
/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oATy3+2eZsi2eXt3Y+fOemfT+tRLB IrCMxwvGJTIH
YkkEsTwuOvOM59/apJbuKJwm4M+5VKqwyuSACRnpyPzqXzE8zy9678btuece uKAKv2ebHk4j
8rzfM37ju+/vxtx+HX39qrtp8zo2Y4AzCYZDE4L9D0/D6flV9rmBZfKaeMSZ A2FxnJ6cUvnw
+d5Pmx+b/c3Dd69KAKSRvNd3IEQVDMjGRgQSFC8DjkZU9+/52HSc3qSKkZjV SuS5BwSpJxj2
9ake5gRmV541ZBlgXAIHv+Y/Ol8+H/nrH9/Z94fe9Pr7UAVFsnWblA6eaZMm dx1bd9zGOP1x
T/s832z7RiP7+Nm4424xu6ff7fTj3qx58PneT5sfm/3Nw3evSgTws4QSxliS u0MM5HUfhQAx
45DexSAJ5aoykljnJIPTH+z696haPffmMB/LJEsmUOCy4xz7/KeP7nuasmeE SGMyx7xjK7hk
Zxjj8R+dHnw+d5Pmx+b/AHNw3evSgCkkbzXdyBEFQzIxkYEEhQvA45GVPfv+ blsnWblA6eaZ
Mmdx1bd9zGOP1xVxJY5GZVYFkOGXuPqKfQBB5LSTCSVgAh+RUyD17nv0HHT6 8Gp6KKACiiig
AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKK
KKACiiigAooooAKKKKAGv901H/n/AD/n/wCvI/3TUf8An/P+f/rgDX+6f8/5 /wA/jHUj/dP+
f8/5/GOkMrXfVPx/pRRd9U/H+lFAieP7p/3j/OnVSaJmlYlpfmJ2ojkZ68+3 9T265WFf3yEN
Kpxu2PIWyOeR/h9D65NCuV2ubFFFFMkKg8lo5jJEwIc/Or5J69j26njp9OTU 9FAFP7PN9s+0
Yj+/jZuONuMbun3+30496b9lmafJSNV8zdlZWIxnP3CMZPr689a59Li9dWZZ 5yqjLHecD8aX
zr//AJ63P3d/3m+76/T3rTkJ5jeltZynlosLKs3nKzE5J37sdOOpGefpzxZ8 t/tnmbItnl7d
2Pnznpn0/rXMiXUWj8xXujHjO4FsfnTo3v5EL/aJ1TaSGZmw2ASQD68H8qOT zDmNz7LM0+Sk
ar5m7KysRjOfuEYyfX1560i2TrNygdPNMmTO46tu+5jHH64rA+03vl+Z59xs zjdvbGfTNL51
/wCV5vm3Pl/39zY/OjkDmNu5ilijVTGrxrcCQMqszcvuPAHGATznt71LPbTl pPK8sq8qS/MS
Dldvy9P9nr+GO9c+Li7MBlF3LgMFK+Y2eQSD+ho86/8AK83zbny/7+5sfnRy BzG8tk6zcoHT
zTJkzuOrbvuYxx+uKHtpy07LHDukmRwS5BKrjg/L/s/qfxwWmv0OGluVPPBZ h0GT+nNHnX/l
eb5tz5f9/c2Pzo5A5jolgkVhGY4XjEpkDsSSCWJ4XHXnGc+/tUa2TrNygdPN MmTO46tu+5jH
H64rBM1+E3mW5CgA5LNjB6GnM+opEJWkuRGRkNubGKOTzDmOk8lpJhJKwAQ/ IqZB69z36Djp
9eDU9cf9tuv+fmb/AL+Gnma/CbzLchQAclmxg9DR7MOY62iuS86/8rzfNufL /v7mx+dDTX6H
DS3Knngsw6DJ/TmjkDmOtorkvOv/ACvN8258v+/ubH507fqXl+Zuu9mM7stj Hrmjk8w5jq6K
5dTetAJftrAFGkwZWzgHH6npUXnX/wDz1ufu7/vN931+nvRyeYcx1tFcmJdR aPzFe6MeM7gW
x+dJ51/5Xm+bc+X/AH9zY/Ojk8w5jraK5PzdR2lt91gLuJy3T1+lIZr8JvMt yFAByWbGD0NH
J5hzHW0VyXnX/leb5tz5f9/c2Pzoaa/Q4aW5U88FmHQZP6c0cgcx1tFcl51/ 5Xm+bc+X/f3N
j86lU3rQCX7awBRpMGVs4Bx+p6UcnmHMdRRXH/bbr/n5m/7+GpPN1HaW33WA u4nLdPX6UezD
mOsorkvOv/K83zbny/7+5sfnUqjUWgMxnuFQDIJL/MMZ7fzNHJ5hzHUUVym/ UvL8zdd7MZ3Z
bGPXNPU3rQCX7awBRpMGVs4Bx+p6UuTzC51FFcl51/8A89bn7u/7zfd9fp70 ol1Fo/MV7ox4
zuBbH50+TzDmOsorkvOv/K83zbny/wC/ubH50vm6jtLb7rAXcTlunr9KOTzD mOsorkjNfhN5
luQoAOSzYweho86/8rzfNufL/v7mx+dHIHMdbRXJNNfocNLcqeeCzDoMn9Oa POv/ACvN8258
v+/ubH50cgcx1tFcvuu/LVhfMxZC4QO+cDOe2OMHv2qLzr/yvN8258v+/ubH 50cgcx1tFcuo
1FoDMZ7hUAyCS/zDGe38zQpvWgEv21gCjSYMrZwDj9T0pcnmFzqKK5JLm6aK SQ3UwCYA+c8k
9uvoCfwpHuL1FVmnnCsMqd5wfxp8gcx11FFFZlBRRRQA1/umo/8AP+f8/wD1 5H+6aj/z/n/P
/wBcAa/3T/n/AD/n8Y6kf7p/z/n/AD+NczxgkZPHH3TSGk3sRXfVPx/pRRdE MIyOhBI/SigB
u7MxdFLyR5AQd/mzn9enXp60Iha8Ezh03ZIVhyT3/D3+lOMcJ5aBJJGLYG0Z PJ70sAg3jFuk
UmNy8DkeoNLS5peXKalFFFUZBRRRQBx+/wAyIJIhyo+QpgfmO/Qc9frxUvmx /ZfI+f7md20Z
3Zzt6/d/rzXQyQWSMqvDAGc/KuwZb8KTy9P/ALlt9/Z0X73p9fatOdBZGB5y CHALsxj24Mag
5xj7+c49vTApYpog+9jMC8XlFVAwBt25689jjj/HdZNOWXymW1EhI+Qhc57c U2UWEb7PIgdy
yhlVVyuSACR6cj86OdBZHOZH2Ty8y79+7bn5MY649asG5DRDBKP5ezAhU/w4 +9nPP9a6D7PZ
eZ5fkwb8btu0Zx64pvl6f53k7Lbzf7mF3evSjnQWRzieV9keMtJ5jENgIMcA 8Zz71KbkNEME
o/l7MCFT/Dj72c8/1reMNr9oEJtI8spcNsXBwQD+PIo8vT/O8nZbeb/cwu71 6Uc6CyMVbuNX
Xa0xUGIgFQMhOo6/j9fzqM3IaIYJR/L2YEKn+HH3s55/rW8senyLuVLZgccg Kc5OB+uRR5en
+d5Oy283+5hd3r0o5kFkYKTRbYFZpsJE6kBB1bPI5/2v0HrUJMckEYYPvRCo AAweSc57demP
510gj09n2BLYsWI24XJI6j6imqNNkmaFVtjIGwU2rnP070c4WRy21vSrqTRb YFZpsJE6kBB1
bPI5/wBr9B610X2O1/59of8AvgVGI9PZ9gS2LFiNuFySOo+oocwtEw4rmIKA 4fmMoQI1JHy4
zuPJ+nHX83Ldxq67WmKgxEAqBkJ1HX8fr+dbXl6f53k7Lbzf7mF3evShY9Pk XcqWzA45AU5y
cD9cijmQWRgm5DRDBKP5ezAhU/w4+9nPP9ar+dL5ezZHjGP9UufzxnNdN5en +d5Oy283+5hd
3r0puNM8zy8Wm/djb8uc+mPWjnQWRzGZMYy2MYxntnOPz5qzDLEFj8wSArG0 Y2gHg7uev+10
/XtW07WS3Bh+w7j5ix5EQIJIz+g61MI9PZ9gS2LFiNuFySOo+oo5wsjA85BD gF2Yx7cGNQc4
x9/Oce3pgUpuQ0QwSj+XswIVP8OPvZzz/Wt7y9P87ydlt5v9zC7vXpSMmnLL 5TLaiQkfIQuc
9uKOdBZHPStHJbQory7o0wFKjbknJ5z7+nYVIk0W2BWabCROpAQdWzyOf9r9 B61usmnLL5TL
aiQkfIQuc9uKRhpi7twtBtbDZ28Hng+/Bo5wsjFiuYgoDh+YyhAjUkfLjO48 n6cdfzct3Grr
taYqDEQCoGQnUdfx+v51teXp/neTstvN/uYXd69KQpp27aVtdxbbjC5Len15 /WjmQWRhG5DR
DBKP5ezAhU/w4+9nPP8AWqmZMYy2MYxntnOPz5rppRYRvs8iB3LKGVVXK5IA JHpyPzpjtZLc
GH7DuPmLHkRAgkjP6DrRzoLI5ra3pVmVo5LaFFeXdGmApUbck5POff07Cum+ x2v/AD7Q/wDf
AqIpp27aVtdxbbjC5Len15/WnzhaJhG5DRDBKP5ezAhU/wAOPvZzz/Woz5LW iR7pd6ln/wBW
MEkDjr7frXReXp/neTstvN/uYXd69KheTThcCAQwO5bDABODnHOTyevAyaXO gsjn/Ol8vZsj
xjH+qXP54zmmZkxjLYxjGe2c4/PmunxpnmeXi037sbflzn0x61G7WS3Bh+w7 j5ix5EQIJIz+
g60+dBZGLDLEFj8wSArG0Y2gHg7uev8AtdP17UvnIIcAuzGPbgxqDnGPv5zj 29MCt8R6ez7A
lsWLEbcLkkdR9RR5en+d5Oy283+5hd3r0pc6CyME3IaIYJR/L2YEKn+HH3s5 5/rUcrRyW0KK
8u6NMBSo25Jyec+/p2FdCyacsvlMtqJCR8hC5z24oZNOWXymW1EhI+Qhc57c Uc6CyMJJotsC
s02EidSAg6tnkc/7X6D1p0VzEFAcPzGUIEakj5cZ3Hk/Tjr+e0w0xd24Wg2t hs7eDzwffg07
y9P87ydlt5v9zC7vXpRzoLIxVu41ddrTFQYiAVAyE6jr+P1/OozchohglH8v ZgQqf4cfeznn
+tbpTTt20ra7i23GFyW9Prz+tNlFhG+zyIHcsoZVVcrkgAkenI/OjmQWRh+e ggiiAYjyyrNs
AYZJPBznvjHGR9aU3IaIYJR/L2YEKn+HH3s55/rWz/onmujWIVVkCM5RMZOM d885HbvUvl6f
53k7Lbzf7mF3evSjnQWRzp8lrRI90u9Sz/6sYJIHHX2/WoMyYxlsYxjPbOcf nzXRvJpwuBAI
YHcthgAnBzjnJ5PXgZNDtZLcGH7DuPmLHkRAgkjP6DrRzhaJz8pzHFHHyqjc T6scZ/oPw96U
Psi2RISXHzF8H8h269ev0zXSvBarNHGLWFi+SfkHAHfp6kD8aVILKRnVYYCy n5l2DI+oo5ws
i1RRRWYBRRRQA1/umo/8/wCf8/8A15H+6aj/AM/5/wA//XAGv90/5/z/AJ/G qbdSSd7DJz2/
wq0/3T/n/P8An8apuFBI2McHHb/GguPN0I7lQqxqOgBH8qKLlgyxsOhBP8qK RL3HMrBhMil2
TICj13Eg02OJ5Lo3Dq6Drhxzk/0qxH90/wC8f506lYvndrFyiiiqMwoopjyx xsqswDOcKvc/
QUAVztimaSOVcFgJFcknqeh7Ac8dOD05NREEXhuC0XEm0puONuMbun3+CM9M AjPGatMypNDG
qAkg9ONqjr+u0Y9/agS24xiSIYbyxgjg/wB36+1BXulMofPJYxIqy5JWViOu fuEYzwcnscnq
KSZH2GNTAVjn80M7HOd+7HTjuM89D74uGe2SVYjLCsg+UJuAIz2x+VNkuYIX VBtZwVTahGUB
IAyM9OR+lAe6IXUXhkPk7Amwtj5856Z/u8H8QfSqwhVJm3bXQTbyTcOMZbd9 zGOOfyPTmr4M
QkEYKBwuQoxkL9PSmGe2SVYjLCsg+UJuAIz2x+VAe6QySP8AbVkHk+XGChJc g8kEnGO209/X
pg1CIVSZt210E28k3DjGW3fcxjjn8j05q6JbcTCESRCUDAQEbgOvSkae2iYq 0sKNGvILAFRx
+Q6fpQHumc9sSj7hbqx84E7icF+h+72wQfYH0IqUQqkzbtroJt5JuHGMtu+5 jHHP5HpzV0S2
4xiSIYbyxgjg/wB36+1AltxMIRJEJQMBARuA69KA90pSo+64YCDc06NkuQcL jg/L/sn2GT6V
OHMVxKVeLY8gZmYnK8AEAY5+6ec8c+lTLLb71RJItwyiqCM8dQP04o823WTy xJEHQAbcjKg4
xx+X6UB7o4zxDOXHBwf8/gfyPpVCVH3XDAQbmnRslyDhccH5f9k+wyfSrolt xMIRJEJQMBAR
uA69KWN4WYrGV3R/KVxgr+HYcfjQHumfNC29irx/LMHyZWAPzZxtHA6HnnoS ec4Y9sSj7hbq
x84E7icF+h+72wQfYH0IrWCqMYUDAwMDoKAqjGFAwMDA6CgPdM4QqkzbtroJ t5JuHGMtu+5j
HHP5HpzVkpbiQuZZMhskec+M/TOMcH24PpVgKoxhQMDAwOgoCqMYUDAwMDoK A90jL24YsdmQ
2Scd8Yz+QIz7H0qjkPdXIwiIZkYyNkMduOAMcjKt345P10gqjGFAwMDA6CgK oxhQMDAwOgoD
3TMmhbexV4/lmD5MrAH5s42jgdDzz0JPOcPKHzyWMSKsuSVlYjrn7hGM8HJ7 HJ6itAKoxhQM
DAwOgoCqMYUDAwMDoKA90zyh88ljEirLklZWI65+4RjPByexyeopZYs3Lv56 iMyKzDJ6jb27
/wCr6+7enN8KoxhQMDAwOgoCqMYUDAwMDoKA90okEAwlovKE3mF9x3ff3424 9iM57E9sU6Fj
Fd3DsIQsknLBzuAC4HG3noe/HPoauBVGMKBgYGB0FAVRjCgYGBgdBQHumdMj 7DGpgKxz+aGd
jnO/djpx3Geeh98XS9uGLHZkNknHfGM/kCM+x9KkCqMYUDAwMDoKAqjGFAwM DA6CgPdGmeIZ
y44OD/n8D+R9KqwsYru4dhCFkk5YOdwAXA4289D3459DVwKoxhQMDAwOgoCq MYUDAwMDoKA9
0zhCqTNu2ugm3km4cYy277mMcc/kenNSiSRLySUiHYdqH94cgAtzjb7n8jzV wKoxhQMDAwOg
oCqMYUDAwMDoKA90rlLcSFzLJkNkjznxn6Zxjg+3B9KkL24YsdmQ2Scd8Yz+ QIz7H0qQKoxh
QMDAwOgoCqMYUDAwMDoKA90zch7q5GERDMjGRshjtxwBjkZVu/HJ+qTQtvYq 8fyzB8mVgD82
cbRwOh556EnnONMKoxhQMDAwOgoCqMYUDAwMDoKA90zyh88ljEirLklZWI65 +4RjPByexyeo
oKHzyWMSKsuSVlYjrn7hGM8HJ7HJ6itAKoxhQMDAwOgoCqMYUDAwMDoKA90o SxZuXfz1EZkV
mGT1G3t3/wBX1929OVIIBhLReUJvML7ju+/vxtx7EZz2J7Yq8FUYwoGBgYHQ UBVGMKBgYGB0
FAe6U4WMV3cOwhCyScsHO4ALgcbeeh78c+hqKZH2GNTAVjn80M7HOd+7HTju M89D740QqjGF
AwMDA6CgKoxhQMDAwOgoD3TPMX+kTzM6AiUMq+YxVsDGGGMfw5zzgj/ZpBCq TNu2ugm3km4c
Yy277mMcc/kenNaIVRjCgYGBgdBQFUYwoGBgYHQUB7pTEkiXkkpEOw7UP7w5 ABbnG33P5Hmr
Be3DFjsyGyTjvjGfyBGfY+lSBVGMKBgYGB0FAVRjCgYGBgdBQHuleJ0WSaWV gGLbcZ6KM4/9
mPtkjtSHa83mTSqBG2FVCQRz3PccdOnBznGRZCqMYUDAwMDoKAqjGFAwMDA6 CgPdHUUUUEhR
RRQA1/umo/8AP+f8/wD15H+6aj/z/n/P/wBcAa/3T/n/AD/n8a5gjJJweefv GrD/AHT/AJ/z
/n8Y6Q02titdAKIwOgBA/Sii76p+P9KKAJ4/un/eP86dTY/un/eP86dQBcoo opiCoPJaOYyR
MCHPzq+SevY9up46fTk1I8scbKrMAznCr3P0FI8u2aOMDJfJPPQDv+ZA/GgB sKN5kssgwzna
B6KM4/qfxx2qH7PN9s+0Yj+/jZuONuMbun3+30496sefD/z1j+/s+8Pven19 qRrmBZfKaeMS
ZA2FxnJ6cUAVvsszT5KRqvmbsrKxGM5+4RjJ9fXnrSS2s5Ty0WFlWbzlZick 792OnHUjPP05
4sS3cUThNwZ9yqVVhlckAEjPTkfnUvmJ5nl71343bc849cUAR+W/2zzNkWzy 9u7Hz5z0z6f1
qv8AZZmnyUjVfM3ZWViMZz9wjGT6+vPWrRnhEhjMse8Yyu4ZGcY4/EfnR58P neT5sfm/3Nw3
evSgCotk6zcoHTzTJkzuOrbvuYxx+uKZcxSxRqpjV41uBIGVWZuX3HgDjAJ5 z296vLPC67kl
jYcchgepwP14oE8LOEEsZYkrtDDOR1H4UAVp7actJ5XllXlSX5iQcrt+Xp/s 9fwx3pq2TrNy
gdPNMmTO46tu+5jHH64q2ZQLhYSrZZC4bjHBAI/UUefD53k+bH5v9zcN3r0o AqPbTlp2WOHd
JMjglyCVXHB+X/Z/U/jIsEisIzHC8YlMgdiSQSxPC4684zn39qn8+H/nrH9/ Z94fe9Pr7VA9
8Ucp9kuGIDEYC/MFOCQM57j60ARrZOs3KB080yZM7jq277mMcfrirHktJMJJ WACH5FTIPXue
/QcdPrwaVru2XduuIhtO1suOD6H8j+VOE8LOEEsZYkrtDDOR1H4UASUVH58P neT5sfm/3Nw3
evSlSWORmVWBZDhl7j6igB9FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUANf7pqP/P8An/P/ ANeR/umo/wDP
+f8AP/1wBr/dP+f8/wCfxjqR/un/AD/n/P4x0hla76p+P9KKLvqn4/0ooETx /dP+8f506mx/
dP8AvH+dOoGXKKKY8scbKrMAznCr3P0FMRH5LRzGSJgQ5+dXyT17Ht1PHT6c mlhRvMllkGGc
7QPRRnH9T+OO1OeXbNHGBkvknnoB3/MgfjR58P8Az1j+/s+8Pven19qAK/2e b7Z9oxH9/Gzc
cbcY3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561Za5gWXymnjEmQNhc ZyenFNlu4onC
bgz7lUqrDK5IAJGenI/OgCvLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/bP M2RbPL27sfPn
PTPp/WpPMTzPL3rvxu255x64pvnw+d5Pmx+b/c3Dd69KAIFgkVhGY4XjEpkD sSSCWJ4XHXnG
c+/tSfZ5seTiPyvN8zfuO77+/G3H4dff2qwZQLhYSrZZC4bjHBAI/UUefD53 k+bH5v8Ac3Dd
69KAM9tPmdGzHAGYTDIYnBfoen4fT8qekbzXdyBEFQzIxkYEEhQvA45GVPfv +d1Z4XXcksbD
jkMD1OB+vFHnw+d5Pmx+b/c3Dd69KAInSc3qSKkZjVSuS5BwSpJxj29ahWyd ZuUDp5pkyZ3H
Vt33MY4/XFWxPCzhBLGWJK7QwzkdR+FNS7t3maFZozIp2lN3OfpQBD9nm+2f aMR/fxs3HG3G
N3T7/b6ce9SvHIb2KQBPLVGUksc5JB6Y/wBn171IkscjMqsCyHDL3H1FPoAp NHvvzGA/lkiW
TKHBZcY59/lPH9z3NRpG813cgRBUMyMZGBBIULwOORlT37/no0UAUFsnWblA 6eaZMmdx1bd9
zGOP1xVjyWkmEkrABD8ipkHr3PfoOOn14NT0UAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UANf7pqP/P8A
n/P/ANeR/umo/wDP+f8AP/1wBr/dP+f8/wCfxjqR/un/AD/n/P4x0hla76p+ P9KKLvqn4/0o
oETx/dP+8f506mx/dP8AvH+dOoGXKg8lo5jJEwIc/Or5J69j26njp9OTU9Me WONlVmAZzhV7
n6CmIZCjeZLLIMM52geijOP6n8cdqh+zzfbPtGI/v42bjjbjG7p9/t9OPerH nw/89Y/v7PvD
73p9faka5gWXymnjEmQNhcZyenFAFb7LM0+Skar5m7KysRjOfuEYyfX1560k trOU8tFhZVm8
5WYnJO/djpx1Izz9OeLEt3FE4TcGfcqlVYZXJABIz05H51L5ieZ5e9d+N23P OPXFAEflv9s8
zZFs8vbux8+c9M+n9arLZOs3KB080yZM7jq277mMcfrirfnw+d5Pmx+b/c3D d69KDKBcLCVb
LIXDcY4IBH6igCJ0nN6kipGY1UrkuQcEqScY9vWoVsnWblA6eaZMmdx1bd9z GOP1xVvz4fO8
nzY/N/ubhu9elCzwuu5JY2HHIYHqcD9eKAM9tPmdGzHAGYTDIYnBfoen4fT8 qlWydZuUDp5p
kyZ3HVt33MY4/XFW/Ph87yfNj83+5uG716UCeFnCCWMsSV2hhnI6j8KAKj20 5adljh3STI4J
cglVxwfl/wBn9T+M6xzR3EhTyykjhyxJyOAMY79Oue/ty5Lu3eZoVmjMinaU 3c5+lTUAQeS0
kwklYAIfkVMg9e579Bx0+vBqeoxPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3 Dd69KAJKKjWe
F13JLGw45DA9TgfrxR58PneT5sfm/wBzcN3r0oAkoqH7XbeZ5f2iLfnbt3jO fTFRvfItwYfK
lJEix5C8ZIz+g60AWqKjE8LOEEsZYkrtDDOR1H4UefD53k+bH5v9zcN3r0oA koqJrmBZfKae
MSZA2FxnJ6cUNcwLL5TTxiTIGwuM5PTigCWioWu7Zd264iG07Wy44PofyP5U 7z4fO8nzY/N/
ubhu9elAElFRfaYAwXz49xbYBvGS3p9eRTZbuKJwm4M+5VKqwyuSACRnpyPz oAnoqsLweayN
DIqo4jLnbjJxjvnnI7d6l8+HzvJ82Pzf7m4bvXpQBJRVV9Qt1uFgV1dycEB1 +U5x3P6DJoe+
Rbgw+VKSJFjyF4yRn9B1oAtUUVCl3bvM0KzRmRTtKbuc/SgCaioWu7Zd264i G07Wy44PofyP
5U4Tws4QSxliSu0MM5HUfhQBJRUfnw+d5Pmx+b/c3Dd69Kb9rtvM8v7RFvzt 27xnPpigCaiq
r3yLcGHypSRIseQvGSM/oOtTefD/AM9Y/v7PvD73p9fagCSiomuYFl8pp4xJ kDYXGcnpxTZb
uKJwm4M+5VKqwyuSACRnpyPzoAnopvmJ5nl71343bc849cUxrmBZfKaeMSZA 2FxnJ6cUAS0V
Cl3bvM0KzRmRTtKbuc/Sl+0wBgvnx7i2wDeMlvT68igCWioxPGZzCGUuBkgM Mjp1HXvQJ4Wc
IJYyxJXaGGcjqPwoAkoqJ7mBGZXnjVkGWBcAge/5j86ie+Rbgw+VKSJFjyF4 yRn9B1oAtUVG
8u2aOMDJfJPPQDv+ZA/GlSWORmVWBZDhl7j6igB9FFFABRRRQA1/umo/8/5/ z/8AXkf7pqP/
AD/n/P8A9cAa/wB0/wCf8/5/GOpH+6f8/wCf8/jHSGVrvqn4/wBKKLvqn4/0 ooETx/dP+8f5
06mx/dP+8f506gZcqDyWjmMkTAhz86vknr2PbqeOn05NT0x5Y42VWYBnOFXu foKYit9nm+2f
aMR/fxs3HG3GN3T7/b6ce9N+yzNPkpGq+ZuysrEYzn7hGMn19eetWvPh/wCe sf39n3h970+v
tSNcwLL5TTxiTIGwuM5PTigCrLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/ AGzzNkWzy9u7
Hz5z0z6f1pJbuKJwm4M+5VKqwyuSACRnpyPzqXzE8zy9678btueceuKAKS2T rNygdPNMmTO4
6tu+5jHH64qZ0nN6kipGY1UrkuQcEqScY9vWpfPh87yfNj83+5uG716UGUC4 WEq2WQuG4xwQ
CP1FAFRbJ1m5QOnmmTJncdW3fcxjj9cVE2nzOjZjgDMJhkMTgv0PT8Pp+VaH nw+d5Pmx+b/c
3Dd69KFnhddySxsOOQwPU4H68UAVFsnWblA6eaZMmdx1bd9zGOP1xQ9tOWnZ Y4d0kyOCXIJV
ccH5f9n9T+Nvz4fO8nzY/N/ubhu9elAnhZwgljLEldoYZyOo/CgCNY5o7iQp 5ZSRw5Yk5HAG
Md+nXPf25sVCl3bvM0KzRmRTtKbuc/SpqAKD205adljh3STI4JcglVxwfl/2 f1P4tlspy5Kb
OJRICZWAb5s42jgfXnOM9TxdE8LOEEsZYkrtDDOR1H4UefD53k+bH5v9zcN3 r0oAz20+Z0bM
cAZhMMhicF+h6fh9PyqVbJ1m5QOnmmTJncdW3fcxjj9cVbWeF13JLGw45DA9 TgfrxR58PneT
5sfm/wBzcN3r0oAb9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd8Yz+XFR/a7b zPL+0Rb87du8
Zz6YqN75FuDD5UpIkWPIXjJGf0HWgCBI3mu7kCIKhmRjIwIJCheBxyMqe/f8 yWynLkps4lEg
JlYBvmzjaOB9ec4z1PF3z4f+esf39n3h970+vtSNcwLL5TTxiTIGwuM5PTig Ct9lmafJSNV8
zdlZWIxnP3CMZPr689aPsszT5KRqvmbsrKxGM5+4RjJ9fXnrVrz4fO8nzY/N /ubhu9elJ9pg
DBfPj3FtgG8ZLen15FAFeSzke5LiQCNnVyOeo29v+Af+PH05X7PNjycR+V5v mb9x3ff3424/
Dr7+1WBPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3Dd69KAIYIpo7udzHFtlf O4Od2AoAGMe3
r3qKW1nKeWiwsqzecrMTknfux046kZ5+nPFtZ4XXcksbDjkMD1OB+vFHnw+d 5Pmx+b/c3Dd6
9KAKv2SU3E0x25MgdF8xirYAGGGMDpnPODj05RbJ1m5QOnmmTJncdW3fcxjj 9cVMLweayNDI
qo4jLnbjJxjvnnI7d6l8+HzvJ82Pzf7m4bvXpQBCqXIvHl8uLYwVP9YcgAnn G336VY8tN27Y
uc7s474xn8uKrvqFutwsCuruTggOvynOO5/QZND3yLcGHypSRIseQvGSM/oO tAFqq6xzR3Eh
TyykjhyxJyOAMY79Oue/tzYqFLu3eZoVmjMinaU3c5+lAEDR778xgP5ZIlky hwWXGOff5Tx/
c9zUaRvNd3IEQVDMjGRgQSFC8DjkZU9+/wCdtru2XduuIhtO1suOD6H8j+VO E8LOEEsZYkrt
DDOR1H4UAVFsnWblA6eaZMmdx1bd9zGOP1xVn7NH5m/dLnOcec+Pyzj8Kd58 PneT5sfm/wBz
cN3r0pv2u28zy/tEW/O3bvGc+mKAJPLTdu2LnO7OO+MZ/Liqv2eb7Z9oxH9/ GzccbcY3dPv9
vpx70575FuDD5UpIkWPIXjJGf0HWpvPh/wCesf39n3h970+vtQBV+yzNPkpG q+ZuysrEYzn7
hGMn19eetJLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tni01zAsvlNPGJMgbC4zk9 OKbLdxROE3Bn
3KpVWGVyQASM9OR+dAC+W/2zzNkWzy9u7Hz5z0z6f1qv9lmafJSNV8zdlZWI xnP3CMZPr689
aueYnmeXvXfjdtzzj1xTGuYFl8pp4xJkDYXGcnpxQAxY5o7iQp5ZSRw5Yk5H AGMd+nXPf25b
BFNHdzuY4tsr53BzuwFAAxj29e9SJd27zNCs0ZkU7Sm7nP0pftMAYL58e4ts A3jJb0+vIoAj
dJzepIqRmNVK5LkHBKknGPb1qF7actOyxw7pJkcEuQSq44Py/wCz+p/G2J4z OYQylwMkBhkd
Oo696BPCzhBLGWJK7QwzkdR+FAFCVJPMW2EYYLOJQ5Ru77jzjAwCecnpjHNa Plpu3bFzndnH
fGM/lxTHuYEZleeNWQZYFwCB7/mPzqJ75FuDD5UpIkWPIXjJGf0HWgCSFG8y WWQYZztA9FGc
f1P447UnktJMJJWACH5FTIPXue/QcdPrwae8u2aOMDJfJPPQDv8AmQPxpUlj kZlVgWQ4Ze4+
ooAfRRRQAUUUUANf7pqP/P8An/P/ANeR/umo/wDP+f8AP/1wBr/dP+f8/wCf xjqR/un/AD/n
/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/dP8AvH+dOoGXKg8lo5jJ EwIc/Or5J69j
26njp9OTUjyxxsqswDOcKvc/QUjy7Zo4wMl8k89AO/5kD8aYiv8AZ5vtn2jE f38bNxxtxjd0
+/2+nHvTfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVrz4f8AnrH9/Z94fe9Pr7Uj XMCy+U08YkyB
sLjOT04oAqy2s5Ty0WFlWbzlZick792OnHUjPP054s+W/wBs8zZFs8vbux8+ c9M+n9aSW7ii
cJuDPuVSqsMrkgAkZ6cj86l8xPM8veu/G7bnnHrigCktk6zcoHTzTJkzuOrb vuYxx+uKmdJz
epIqRmNVK5LkHBKknGPb1qRrmBZfKaeMSZA2FxnJ6cUpnhEhjMse8Yyu4ZGc Y4/EfnQBUWyd
ZuUDp5pkyZ3HVt33MY4/XFRNp8zo2Y4AzCYZDE4L9D0/D6flV6O5jeVoydjq 5QKxGWwAcjnn
ginefD53k+bH5v8Ac3Dd69KAKi2TrNygdPNMmTO46tu+5jHH64oe2nLTsscO 6SZHBLkEquOD
8v8As/qfxtrPC67kljYcchgepwP14o8+HzvJ82Pzf7m4bvXpQBGsc0dxIU8s pI4csScjgDGO
/Trnv7c2KYkscjMqsCyHDL3H1FPoAoPbTlp2WOHdJMjglyCVXHB+X/Z/U/i2 WynLkps4lEgJ
lYBvmzjaOB9ec4z1PGjRQBltp8zo2Y4AzCYZDE4L9D0/D6flUq2TrNygdPNM mTO46tu+5jHH
64q/RQBD9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd8Yz+XFOooApT205aTyv LKvKkvzEg5Xb
8vT/AGev4Y70n2WZp8lI1XzN2VlYjGc/cIxk+vrz1q9RQBQWydZuUDp5pkyZ 3HVt33MY4/XF
SwRTR3c7mOLbK+dwc7sBQAMY9vXvVqigCg9tOWnZY4d0kyOCXIJVccH5f9n9 T+LZbKcuSmzi
USAmVgG+bONo4H15zjPU8aNFAGW2nzOjZjgDMJhkMTgv0PT8Pp+VSrZOs3KB 080yZM7jq277
mMcfrir9FAFH7JKbiaY7cmQOi+YxVsADDDGB0znnBx6cotk6zcoHTzTJkzuO rbvuYxx+uKv0
UAVVS5F48vlxbGCp/rDkAE842+/SrHlpu3bFzndnHfGM/lxTqKACq6xzR3Eh TyykjhyxJyOA
MY79Oue/tzYooApNHvvzGA/lkiWTKHBZcY59/lPH9z3NRpG813cgRBUMyMZG BBIULwOORlT3
7/no0UAUFsnWblA6eaZMmdx1bd9zGOP1xVn7NH5m/dLnOcec+Pyzj8KmooAb 5abt2xc53Zx3
xjP5cVV+zzfbPtGI/v42bjjbjG7p9/t9OPerlFAFH7LM0+Skar5m7KysRjOf uEYyfX1560kt
rOU8tFhZVm85WYnJO/djpx1Izz9OeL9FAEPlv9s8zZFs8vbux8+c9M+n9ar/ AGWZp8lI1XzN
2VlYjGc/cIxk+vrz1q9RQBXWOaO4kKeWUkcOWJORwBjHfp1z39uWwRTR3c7m OLbK+dwc7sBQ
AMY9vXvVqigCs6Tm9SRUjMaqVyXIOCVJOMe3rUL205adljh3STI4JcglVxwf l/2f1P436KAM
yVJPMW2EYYLOJQ5Ru77jzjAwCecnpjHNaPlpu3bFzndnHfGM/lxTqKAIYUbz JZZBhnO0D0UZ
x/U/jjtSeS0kwklYAIfkVMg9e579Bx0+vBqeigAooooAKKKKAGv901H/AJ/z /n/68j/dNR/5
/wA/5/8ArgDX+6f8/wCf8/jHUj/dP+f8/wCfxjpDK131T8f6UUXfVPx/pRQI nj+6f94/zp1N
j+6f94/zp1AyXyWjmMkTAhz86vknr2PbqeOn05NLCjeZLLIMM52geijOP6n8 cdqmopiKf2eb
7Z9oxH9/GzccbcY3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561eooAo S2s5Ty0WFlWb
zlZick792OnHUjPP054s+W/2zzNkWzy9u7Hz5z0z6f1qaigCj9lmafJSNV8z dlZWIxnP3CMZ
Pr689aesEisIzHC8YlMgdiSQSxPC4684zn39qt0UAUHtpy07LHDukmRwS5BK rjg/L/s/qfxF
snWblA6eaZMmdx1bd9zGOP1xV+igDLbT5nRsxwBmEwyGJwX6Hp+H0/Kny2U5 clNnEokBMrAN
82cbRwPrznGep40aKAIPJaSYSSsAEPyKmQevc9+g46fXg1PRRQAUUUUAFFFF ABRRRQAUUUUA
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRR
RQAUUUUAFFFFABRRRQA1/umo/wDP+f8AP/15H+6aj/z/AJ/z/wDXAGv90/5/ z/n8Y6kf7p/z
/n/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/dP+8f506gZcooopiCi iigAooooAKKK
KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigA
ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAGv 93HqRVUzIDhi
oPu3/wBerUhAXJOACMk/WqDGBnVmKHb70AE0hM8ABwrE5wevBqWq8zh7qAhg xy2cH2NWKQyt
d9U/H+lFF31T8f6UUCJ4/un/AHj/ADp1Nj+6f94/zp1Ax7y7BkngAEkk1Bdz uLN3QlSVyCCc
jNLMYnyrOvQd+nFQ3bp9jdVdSQgHX0oEaGT6n/P+f89zJ9T/AJ/z/nun+f8A P+f/AK5/n/P+
f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuALk+p/wA/5/z3 Mn1P+f8AP+e6
f5/z/n/65/n/AD/n/wCuALk+p/z/AJ/z3Mn1P+f8/wCe6f5/z/n/AOuf5/z/ AJ/+uALk+p/z
/n/PcyfU/wCf8/57p/n/AD/n/wCuf5/z/n/64AuT6n/P+f8APcyfU/5/z/nu n+f8/wCf/rn+
f8/5/wDrgC5Pqf8AP+f89zJ9T/n/AD/nun+f8/5/+uf5/wA/5/8ArgC5Pqf8 /wCf89zJ9T/n
/P8Anun+f8/5/wDrn+f8/wCf/rgC5Pqf8/5/z3Mn1P8An/P+e6f5/wA/5/8A rn+f8/5/+uAL
k+p/z/n/AD3Mn1P+f8/57p/n/P8An/65/n/P+f8A64AuT6n/AD/n/PcyfU/5 /wA/57p/n/P+
f/rn+f8AP+f/AK4AuT6n/P8An/PcyfU/5/z/AJ7p/n/P+f8A65/n/P8An/64 AuT6n/P+f89z
J9T/AJ/z/nun+f8AP+f/AK5/n/P+f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/ AJ/+uf5/z/n/
AOuALk+p/wA/5/z3Mn1P+f8AP+e6f5/z/n/65/n/AD/n/wCuALk+p/z/AJ/z 3Mn1P+f8/wCe
6f5/z/n/AOuf5/z/AJ/+uALk+p/z/n/PcyfU/wCf8/57p/n/AD/n/wCuf5/z /n/64AuT6n/P
+f8APcyfU/5/z/nun+f8/wCf/rn+f8/5/wDrgC5Pqf8AP+f89zJ9T/n/AD/n un+f8/5/+uf5
/wA/5/8ArgC5Pqf8/wCf89zJ9T/n/P8Anun+f8/5/wDrn+f8/wCf/rgC5Pqf 8/5/z3Mn1P8A
n/P+e6f5/wA/5/8Arn+f8/5/+uALk+p/z/n/AD3Mn1P+f8/57p/n/P8An/65 /n/P+f8A64Au
T6n/AD/n/PcyfU/5/wA/57p/n/P+f/rn+f8AP+f/AK4AuT6n/P8An/PcyfU/ 5/z/AJ7p/n/P
+f8A65/n/P8An/64AuT6n/P+f89zJ9T/AJ/z/nun+f8AP+f/AK5/n/P+f/rg C5Pqf8/5/wA9
zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuAGTxyeo7/AOf8/rE0+1lU8FunJ/xq QkDknABySf8A
P+f51SYXdWdlIXoM8E0AFy5eWGNuUYncp5B4pfs8H/PGP/vkVHK6tdW+1geW 6fQ1YoGMWGJG
DLEikdwoFPoooArXfVPx/pRRd9U/H+lFAidFXYCQckn+Ijufel2r/dP/AH03 +NRThTaEO4Rc
nLN0+8eD7dqqxyKgCLJHBDlv3sQCq5+XGM5Hc/8AfNAy39ktv+fdP1/xo+yW 3/Pun6/41VW7
cIBKwSZnjwh4ODtzgH3LUJNJ5Fu01x5YkTcZMKMHAwOeO5P4fhQIv4Hof++2 /wAaaVzJjLAb
Qcbz6n3qpDNM14VZ0xuYGPPIAzg4xkduScc+4q1MAQ4Zyg8vlgcY5bnNAC7f 9p/++zRt/wBp
/wDvs1neZ5SEW5twpYbpowEUcHgnkZ4H/fVPE055M3QIPlAIO5yuckc8YPp+ FAy9t/2n/wC+
zRt/2n/77NZ893IkWRIFaPf99gokwxAHTk8c4x1/JZ2ma3k+dn81pYwmBxgN jGBnPyigC/t/
2n/77NG3/af/AL7NUjNiX5bgGMqu6b5eB8/fGOoA/wDr1IkxN2qed5ikDAQq eMZywxkfUcdP
xALO3/af/vs0bf8Aaf8A77NNkIKyKzbF2csDgjrzmqkTrErvF5BRCGd4UADD nI78jr+lAF3b
/tP/AN9mjb/tP/32apPJcKJXaQq0cQk2ALjJLHB47YA4oEhihlAlIcytwSoE eWJBJwcAj1z1
FAF3b/tP/wB9mjb/ALT/APfZqlHcu8SMZRzkOyjIUBiN2ffH074wDV+gBu3/ AGn/AO+zRt/2
n/77NOooAbt/2n/77NG3/af/AL7NOooAbt/2n/77NG3/AGn/AO+zTqKAG7f9 p/8Avs0bf9p/
++zTqKAG7f8Aaf8A77NG3/af/vs06igBu3/af/vs0bf9p/8Avs06igBu3/af /vs0bf8Aaf8A
77NOooAbt/2n/wC+zRt/2n/77NOooAbt/wBp/wDvs0bf9p/++zTqKAG7f9p/ ++zRt/2n/wC+
zTqKAG7f9p/++zRt/wBp/wDvs06igBu3/af/AL7NG3/af/vs06igBu3/AGn/ AO+zRt/2n/77
NOooAbt/2n/77NG3/af/AL7NOooAbt/2n/77NG3/AGn/AO+zTqKAG7f9p/8A vs0bf9p/++zT
qKAG7f8Aaf8A77NG3/af/vs06igBu3/af/vs0bf9p/8Avs06igBu3/af/vs0 bf8Aaf8A77NO
ooAY8SupV9zA9QWJqP7Hb/8APJanooAhW1gRgyxhSO44qTyx6t/30adRQA3y x6t/30aPLHq3
/fRp1FAFW6UKUxnv1JNFLd9U/H+lFAiXzVQbWV8gnoAR1J9aPtEf92T/AL5H +NV7i+S2cLIW
ywJG1M8ZI9R6VF/a0PrJ/wB+x/8AFVXK2F0XftEf92T/AL5H+NH2iP8Auyf9 8j/Gqf8Aa0Pr
J/37H/xVH9qw+sn/AH7H/wAVRyvsF0XPtEf92T/vkf400zrvJ2PjAA4+v+NV f7Vh9ZP+/Y/+
Ko/tSH1k/wC/Y/8AiqOV9gui19oX+4/5UfaF/uP+VVv7Uh9X/wC/Y/8AiqP7 Uh9X/wC/Y/8A
iqOVhdFn7Qv9x/yo+0L/AHH/ACqt/acXq/8A37H/AMVS/wBpxer/APfsf/FU crC6LH2hf7j/
AJUfaF/uP+VV/wC0ovV/+/Y/+Ko/tKL1f/v2P/iqOVhdE4nG8tsfBAHT60PK jjDRuRkHp3By
Kg/tGL1f/v2P/iqX+0YvV/8Av2P/AIqjlYXRP9oX+4/5UfaF/uP+VQf2jF6v /wB+x/8AFUf2
hH6v/wB+x/8AFUcrC6J/tC/3H/Kj7Qv9x/yqH+0I/V/+/Y/+Ko+3x+rf9+// ALKjlYXRN9oX
+4/5UfaF/uP+VQ/b4/Vv+/f/ANlR9uj/ALzf9+//ALKjlYXRN9oX+4/5UfaF /uP+VRfbo/7z
f9+//sqPtsf95v8Av3/9lRysLol+0L/cf8qPtC/3H/Kovtqf3m/79/8A2VL9 tT+83/fv/wCy
o5WF0SfaF/uP+VH2hf7j/lUf2xP7zf8Afv8A+yo+2J/eb/v3/wDZUcrC6JPt C/3H/Kj7Qv8A
cf8AKo/taf3m/wC/f/2VL9rT+83/AH7/APsqOVhdD/tC/wBx/wAqPtC/3H/K mfa0/vN/37/+
yo+1L/eP/fv/AOyo5WF0P+0L/cf8qPtC/wBx/wAqb9qX+8f+/f8A9lR9pX+8 f+/f/wBlRysL
od9oX+4/5UfaF/uP+VN+0r/eP/fv/wCyo+0L/eP/AH7/APsqOVhdDvtC/wBx /wAqPtC/3H/K
k+0L/eP/AHx/9lR56/3j/wB8f/Xo5WF0L9oX+4/5UfaF/uP+VJ54/vH/AL4/ +vS+eP7x/wC+
P/r0crC6D7Qv9x/yo+0L/cf8qPOH98/98f8A16POH98/98f/AF6OVhdB9oX+ 4/5UfaF/uP8A
lS+aP75/74/+vR5o/v8A/jn/ANejlYXQn2hf7j/lR9oX+4/5UvmD+/8A+Of/ AF6PM/2//HP/
AK9HKxXQn2hf7j/lR9oX+4/5U7zP9v8A8c/+vRv/ANv/AMc/+vRysd0N+0L/ AHH/ACo+0L/c
f8qdv/2//HP/AK9Lu/2//HP/AK9HKxXQz7Qv9x/yo+0L/cf8qfu/2/8Axz/6 9Gf9v/xz/wCv
RysLoZ9oX+4/5UfaF/uP+VPyf7//AI5/9elyf7//AI5/9ejlYXRH9oX+4/5U faF/uP8AlUnP
9/8A8c/+vRz/AHx/3x/9elysd0R/aF/uP+VH2hf7j/lUnP8AfH/fH/16Of74 /wC+P/r0crC6
I/tC/wBx/wAqPtC/3H/KpOf74/74/wDr0c/3x/3x/wDXo5WF0R/aF/uP+VH2 hf7j/lUnP98f
98f/AF6Of74/74/+vRysLoj+0L/cf8qPtC/3H/KpOf74/wC+P/r0c/3x/wB8 f/XoswuitO/m
bcKwxnqKKs8/3x/3x/8AXooswujKvv8AkJWv4f8AobVr/P521U7t95Pl745x 9Kx78hdRtiSA
BySf99qtXN2EmVoJbdgzEZ3cqTnk+2DVuLlZIV7DtSZjYzq6xBkZR+7z69+K yYIopI5GeR1K
DcQqA8ZA9R61qX8tqNLMMEyOwIJ55Y55J96yI5NiSrjO9dv05B/pVx20JYqw SMgZQGBOMKQT
1x061KLVvLboXDKBtcEYIbOSPpTkvdsPl4kHCjCyYUYIOQMcHjr6k0Ne5VlW MYYrncc7gM/e
wBk89fYd+arUWhC0TogdsAHoNwz+XWp4rQP8uX3iPzGCLuPJGAB9Dn8famTT rJEsaq2AersG
IHoDgYHtStMpjJHLPGI2HpgjB/ID8c0agSx2QdypMi8gDemDnKjkZ/2v5VCL aUkgBTg44ccn
0HPJ+lOguzBGFVASDuBJ91P/ALL+tPju/KQpGJVUHcoEmOcDrgcjj2pahoQv E8YUuuNwyOeo
9ae9rKm7co+XrhgenX8u/pTJZPMcNjGFVfyAH9Kma63OzbOrSN1/vDH6U9QE itncjlQCCchg
ccE4PPHTvSw2zPKgfAVnCnDDJ5xx6/WpDe5TbtfBPIL8AYIIUY46+/QUxLhF aNvLYmI/L83b
dnB49zS1DQb9nkyBhT/tBhj8849PzFPhtXeZUcBVLAE7gM/T1/D2pILkxIEA YdclWwecdD/w
GnrdDzFd0Ztj71+fnt1JBz0HpRqGhFEiucMzDsAq7iTQImMjIpVtvVs8fXNL DIiBgyMS3GVb
BA79jRHIqM42ko4wRnnGc9ce3pQA8wbIC7fe3YHzAY6c+/XtSJGrITvO4AnG OAPc/wCeoolm
81VXbgKeOe2AB/KlEkfkhCjZ65DYBPYkYo1AWKAyRlgQMZ6kAHBHfPvSLBIw XCg7sYGRnnpx
2pY5gsXlspKnOcHB5x/8TUi3ZATIc7dvG/5cDHb8KNQ0IzBIB90H/dIOfypR F95SRvC7htYE
HHXp7c/hSpPtUDB4XbkHB+9uzTjMpZnxg7doHUnPUk9+Cf0o1AgpaSlpiFpa SloAWiiikAtL
SUtAC0UUUALS0lLQAtLSUtABS0lLQAtLSUtABS0lLQAtLSUtIApaSloAWlpK WgBaKKKAFooo
oAKKKKACiiikAUUUUDFooooAKKKKAKs+npdMskkjKRkAKvbcai/saH/ntJ/3 yK0F+4Pqf/Qj
S1nzNGlkZn9lQ+f5Ylk+4WJwPUD+tP8A7Hh/57Sf98irQ/4/f+2J/wDQhTLu aSPCIhJkGFbP
Q0czCyKs2mQwwvJ5sh2jONo5qQ6PCCR5z8f7IqW4jEWnsg6KuKtv99vrRzML Iz/7Ih/57P8A
98imR6ZC+/8AeuArlfujngf41asAFs4wGDDnkfU0626Tf9dm/kKOZhZFb+yY v+ez/wDfI/xp
f7Ji/wCez/8AfI/xpUyq+aHcu05TBYkEbyOnsOePT60kV1cyJuEI+dN6DIHc f7XPB9unvRzM
LIP7Ki/57P8A98j/ABo/sqL/AJ7P/wB8j/GpIZpJnCq6YUAsTGRnkjABPGNv vUX2mcxwOfLD
yoCOpAyyDpnnqf8APU5mFkL/AGXF/wA9n/75H+NL/ZcX/PZ/++R/jSrJM14s e9QUDBsKcN9w
9M8H5vemwXMjQo/y7AY0K8kksF5zn/a9+lHMwshf7Mi/57P/AN8j/Gj+zI/+ ez/98j/Gn2s8
r+V5pQ+bH5g2qRt6cdTnr+lWqOZhZFP+zI/+ez/98j/Gj+zY/wDns3/fP/16 uUUczCyKf9mx
/wDPZv8Avn/69H9nR/8APVv++f8A69XKKOZhZFT+zo/+erf98/8A16P7Pj/5 6t/3z/8AXq3R
RzMLIqf2en/PVv8Avn/69L/Z6f8APVv++f8A69WqKOZhZFX7An/PVv8Avn/6 9H2BP+erf98/
/Xq1RRzMLIq/YU/56t/3z/8AXpfsKf8APVv++f8A69WaKOZhZFb7En/PVv8A vn/69H2Jf+ep
/wC+f/r1Zoo5mFkV/sS/89T/AN8//Xo+xr/z1P8A3x/9erFFHMwsiv8AY1/5 6n/vj/69H2Rf
+ep/74/+vViijmYWRB9kX/nqf++P/r0fZV/56n/vj/69T0UczCyIPso/56n/ AL4/+vS/ZR/z
0P8A3x/9epqKOZhZFbyR5/l7z9wsTt9wPX3p/wBmH/PQ/wDfH/16B/x+/wDb E/8AoQqtdswu
JNvmfLGpVlfCoSW5YZ5HTseBRzMVkWvs4/56H/vj/wCvR9nH/PT/AMc/+vUL XE32llWMeWrq
hJx3x3z79MH9eEW4mLCNtqSswG0ofk4J65w33e2P6UczCyJ/IH/PT/xz/wCv R5H/AE0/8c/+
vUAu5PKuDhcxRkjjqQWH5fLSieZgP9WpeVo1OCcY3cn8sfr7UczCyJ/I/wCm n/jn/wBejyf+
mn/jn/16gNxOJyuwFEZUZuACSBzy3HXpg/WrdLmY7IiaPapYycAZ+5/9eiNC 8SOXxuUNjb0y
M+tPl/1T/wC6abEA1rEDnBiUcHH8Ip8zFZC+V/00/wDHP/r0eX/00/8AHP8A 69Uop5ktgwYF
Y7dZW35ZmJyTznjp71LdB3uIkTJGxiR5rJ3XuPrRzMLIseWf+en/AI5/9el2 H/np/wCOf/Xq
sJpEJ4UJG6RleWJJ287v+Benb3qvE8j2cIBUJG0KkYyT9w5znjr6dqOZhZGj sP8Az0/8c/8A
r0bD/wA9B/3x/wDXqkt5cGNXMSgSBSgYgdWAxwST97rgfTmry52jcQTjkgYp czHZEcWZYg+8
AEnA2ehI9fan7D/z0H/fH/16jtP+PWP/AIF/6Eaiilk+yWoUjfKqjc3P8Oc+ /SjmYrIs7D/z
0H/fH/16Nh/56D/vj/69V4Z5ZpCgKLs++SpO75mHHPH3ffrUMl1M+FX5VkKt G+3HG9R65PDe
3+BzMdkXth/56D/vj/69Gw/89B/3x/8AXqsssxuHhVkDZJLFSRwqds8fe9ab FdyyL5uEEe5F
2YOfmC98/wC16dqLsLIt7D/z0H/fH/16ZISmz5wSzhR8nqfrUtQ3HWH/AK7J /Oi7CyJNh/56
D/vj/wCvRTqKLsLIjC3DD92se0E/eLZ6n0FHl3npD+bf4VMJhBYtKRnaW4zj PzGslry5YGX7
QVyT8oHGeMAe3T/6+fmLDtctuJopfNka3UlCvzMQMZHPT/Oab9pb/n4s/wDv 4f8ACq9/c/a7
FJCAG2MDg8Z3J/n/ADmserjC6Ibsbs0pliaM3FmAwxkSH/CpXuW3tma0U56G Q5H6VztS3f8A
x9zf9dG/nVezQcxt/aW/5+LP/v4f8KRJTGrET2mHctkyHGcDjp/nNYFSt/x6 R/8AXR/5LR7N
BzGwrojl0ewV26sGwT+lJuiw43afhzlvm+99eOay1tgwB81QrBQrNwCxxkH0 xzz7D1FPa0jU
tvadAibzvhweoAwN3v8ApS5EHMzSLodmXsDs+5lvu/TjimyFJYwjS2O0YwA/ YEHHTpwKyXgY
ZZPmTbvDdPlzjp9eKdbW/n7sttxhV4zuc9F9s4PNHIg5jWDoFVQ9gFU5UbuA fUcUB0DKwewD
KMKd3IHoOKx/s0piEgC7SCQNwyQOpx17H8qSOCSVdyAEZwMkDJ9B6n2FP2a7 hzG0Jgu3E1iN
owMOeB6dPYU77S3/AD8Wf/fw/wCFZD2j7h5YyCqkZYAklQSB69eg9qb9kmwC FU5AIG8Z55Ax
nqew6mlyLuHMzZ+0t/z8Wf8A38P+FH2lv+fiz/7+H/CsVbWZgu1QSxAA3DPP TI6gcjk+op6W
cjb8lBtXcDvUqeQMZzgdf85o5F3DmZr/AGlv+fiz/wC/h/wo+0t/z8Wf/fw/ 4VhJDJJG7quV
T7xz06/4VNFZu0oWQADBJww4wCcH+6eO/wDSjkQczNf7S3/PxZ/9/D/hR9pb /n4s/wDv4f8A
CsVrd8MyqNoJwN4JIHceo9xxwaU2kyyMjKqsvXc4AH4k+39aORdw5mbP2lv+ fiz/AO/h/wAK
PtLf8/Fn/wB/D/hWKbWZU3FQOCdpYbuCQfl69j+VH2WUMFIUHGTl1+X688fj RyLuHMza+0t/
z8Wf/fw/4UfaW/5+LP8A7+H/AArDEEjTeUAN+M8kAYxnOemMc5pWtpUxuCgE 4zuGB6Z9M9vW
j2a7hzG39pb/AJ+LP/v4f8KPtLf8/Fn/AN/D/hWG8EkalmA2ggZBBBznGCOv Q/lSrbStLJHh
Q0ed25gAOcdTx1o9mu4cxt/aW/5+LP8A7+H/AAo+0t/z8Wf/AH8P+FYotZiS NoyDgZYfN9PX
t09R60k8Bh2ZZSHUMMEZ5API7daORBzM2/tLf8/Fn/38P+FH2lv+fiz/AO/h /wAKyLm0aGd0
XaUDlQd4OOeM+n4471E8EkalmA2ggZBBBznGCOvQ/lRyIOZm59pb/n4s/wDv 4f8ACj7S3/Px
Z/8Afw/4VitazKG3KAVJBG4Z464HUjg8j0NMiheXOzaSOxYAn6Dv+FHs13Dm N37S3/PxZ/8A
fw/4UfaW/wCfiz/7+H/CsOKB5VZl2gKQCWcL1+p9jQIJCrHAyhIZSRuGOvHW n7NBzG59pb/n
4s/+/h/wo+0t/wA/Fn/38P8AhWM9pNHu3Kvy5zhwenXoe3f0pkkEkS7nAAzg 4IOD6H0PsaXI
u4czNsSnzTKJ7QkJtOJDgDI56f5zR9o+Yt59lkjBPmH/AArFh/1U/wD1zH/o S01YXeMuNoUd
2YDP0z1/Cj2aDmNoOgZWD2AZRhTu5A9BxSBohGYw2nhCcld3B/DFZK2sr7do UhhnIdeOM888
cA9fSl+yTEgbV5z/ABjA4zzzxwCR60ci7hzM1XaJ1VXbT2CjCgtnH04pzSqy FGksShOSpfg8
59PWsoWj+UxIy4ZQMMCpBDZOen8PX61DJG0TYcDkZBBBB+hHWjkQcxtB0DKw ewDKMKd3IHoO
Kf8AaW/5+LP/AL+H/CsT7NLnGzvjqMHjOfpjnPSpLezeS4RGKhC4UkSLz0zg 55PPbNHIu4cz
NZrgspU3FngjH+sP+FHm7Y1iaWz2hAuGkPIx9O9YFTTqWmVVBJKIAB3+UU/Z oOY11dFUqr2A
UjBAbgj06e5/OnfaPmDefZZAwD5h/wAKyFs5GyBtJBHR1I6E8nPH3TSfZJiQ Nq85/jGBxnnn
jgEj1pci7hzM1zKpkEhksS4GA2/kfjimloiysW08lAAp3dMdMcVmC0fymJGX DKBhgVIIbJz0
/h6/WoZI2ibDgcjIIIIP0I60ciDmNoOiliHsAWOWIbqeuTxT/tLf8/Fn/wB/ D/hXP0U/ZoOY
30lMUSIJ7TAyQTIeckn0/D8KjHkqrKDpwVvvANwfrxWTN/qoP+uZ/wDQmqae xdJXEeNisRl3
Vf4mA6n/AGTS5EHMaRdDsy9gdn3Mt936ccUgaIMzBtPBcEMd3XPXPFZH2aUI WKYxngkBuOvH
X1/I+lOtoopjteR0bk8ICAAMk9R70ciDmNUtEybGbTyuc4LcdMenpTvOBzma x5IJ+c8kd+ns
KwaKfs0HMdB9pb/n4s/+/h/wpDKZGjHn2hKuGAWQ5JB6dKwKltP+PuH/AK6L /Oj2aDmOi8u8
9Ifzb/CitCisiiqiJLaNE7YDFgcHB6msttOuQWQNG6dMkgD2OPxP69c/NrwM EtizHABYk/ia
rteTkeaiR+TyeTz9PqaOaxcYt7FO/tTFaJFFulIRskc87k/LoayPstx/zwl/ 74NdbHKs0cci
fdb/AOvUtWp2M3E437Lcf88Jf++DUtzbTtdTFYZCC5IIU8811tNT7i/Sn7Ri 5Tj/ALLcf88J
f++DUrW0/wBljHkyZDscbT6LXW00ffP0H9aPaMOU5bZKU8trOXywBgBSCDxk 5x35/T0FSLvW
NohZXHlEHjPzZJU9dv8AsjtW+15EgJbcMFgwxyoUEkkenT/voetI12y7d1rM GZtqrlMk4J/v
e1LnCxzjxTPkfZJdoXbGNp+XnOenPf8AOnQm7giCRW7Ah95YxZz0x1Hbn866 aOZHA52sTtKt
wQcZx+XP056U24uUt9m8Mdxx8v8ACO7H0A7n3o5w5TnXM7Sh1s5FAR0ChTxu 3e3bd+lFu11B
F5YguQAxYbCy5Jx1wORx7d66Tz4fO8nzY/N/ubhu9elK80cbKskiKznChmAL H2o5wsc6s10q
hRb3KhQMBCy5IUDnA5Hy+3emq1wrq32SU7Wibof4Bj0710Ed1GwHmOkbM7Iq swyxDEcf5707
7TAWK+fHuDbCN4yG9PrwaOfyHY59JrpRFm3uTsK/LltmFx0GOvHv3qKITpB5 LWszIS27AIPO
08ceqiumM8Id0MsYZBuZdwyo9T6VG19bKqP50ZRn2bww2g4J5P4frRzhY5kQ 3AgeL7PL8zK2
dp7A/wCNWZJrqQktb3JLBshixAJUjgY4HPvXRtIiEBnVSegJxnkD+ZH51DNe QxxSMskbGMhW
G8fKScDPpzRzisc+rXQthD5FzwpUAFgpBz1GOTye/pSrJcrLO32e5UTPvPlk qR14zjpzXRJc
RsY0MkfmOoYKHByPb1HvQ1zAqb2njCZA3FxjJGR+nNHP5Dsc2xuWkVzay5CO h4PO7dzz/vfp
Tg06zPKtrcq0oPmFSQeSD8vHHI9+K6Pz4fO8nzY/N/ubhu9elJ9pgAcmePEZ w/zj5T7+lHOK
xzJFybhpTbzHcpX5gSeV25J/z+FSK1wp/wCPSX+DscjapXI4685B7V0jTRrF 5rSII8A7ywxg
9OaRZ4WDFZYyEAZiGHAIyCfwo5wsc/5lwZPM8m4BSLau8Fyx3ZHOOx5/4Djv VWOG4RJV+zyn
zF2/dPHIP9K6tJo5ApjkRwwJG1gcgdaR54Y41keWNUboxYAH8aOcLHOB58xs 1nMTEVKYB6hV
HPHI+UelQzRTy7D9mmDhQpO04OAAOMccCupM8K+XmWMeZ9zLD5vp69aSC4jn 3iNgWRirLkZB
BI5/KjnCxzoa4Esr/ZJf3kvmdDlfvdOOvzcH2pWluvOWRbe4+VNuXyxJyWBz jscflW9bXkNx
biUSRjCBnAcHZkZ5qVJo5ApjkRwwJG1gcgdaOfyHY5pWuhbCHyLnhSoALBSD nqMcnk9/Sls2
uLbH+jXHDbvkyu72bg5HH6mujE8JdEEsZZxuVdwyw9R60rzRxsqySIrOcKGY AsfajnFY5QQ3
AgeL7PL8zK2dp7A/41aM1wfN/wBFuF37/lUkL82eSMckZ6+wroJZ4YMedLHH npvYDNKZoxKI
jIgkYZCFhkj6Uc4WObZrhnZvsko3NK3Q/wAYx6dqS6a6uVw0FzktuIYsQD7D HA5966NLmCQq
I543LEgbXByR1pyTRyMyxyIzIcMFYEqfejnCxysVtOI5wYZBlAB8p5+YU6JZ 44HjNtM27OAR
lRkYzjHX3zXUt1X6/wBKR5o42VZJEVnOFDMAWPtRzhynPNNcGMr9luPmzwSS q5VhhRjgfN09
qSFpdzCS1mCsgBwp7Rsvp3z+FdB9pgAcmePEZw/zj5T7+lH2mDazefHtUAsd 4wAemfrRzDsc
8klxGAsdpMqrgL13AfNnnHX5zz7DrUUyzzMxa2uGO3apcsxHOc5x9RXSfaoy 6bXRo2Rn8wMM
AKQD/P8ASpY5ElQPG6up6MpyDRziscwBMHQi1uEEfCFCQwXnjOPU5/E+2Hq8 vmq7WMuI33oE
G3njrx/sjpjvXR+dGFDeYm0rvB3DBX1+nIqG4voIbYzCWNhtYoN4+cjsKOcd jlvstx/zwl/7
4NTywTi4RxDN8qpyoIPCjoccGurpqdPxP86fOxcpzZknw4FnL8wxkjk/KwyT jk/N19vxpYWl
3MJLWYKyAHCntGy+nfP4VvfbLcjcJoymDlw4wMY9/cf5xTvtMG1m8+PaoBY7 xgA9M/Wlzjsc
8klxGAsdpMqrgL13AfNnnHX5zz7DrUNxHczyBjBcHAwC+WP510v2qMum10aN kZ/MDDACkA/z
/SpY5ElQPG6up6MpyDRziscf9luP+eEv/fBo+y3H/PCX/vg12VFP2jDlOSlt pzHABDIcIQfl
PHzGprlri4Rl+ySrubd0J7ufT/b/AErpV6t9f6VXiv4GgSSWSOHeAcO47gH+ opc4WMSWa6kV
x9nuV3FsKCwXBJPIxyeT+lVkhuEikQW8uXwCdp6dcfnj8q6szRiURGRBIwyE LDJH0qOa6WFi
CjsEXe5XGEXnk5PsemelHOFjlPstx/zwl/74NH2W4/54S/8AfBrsqKftGHKc b9luP+eEv/fB
qW2tp1uoS0MgAcEkqeOa62mv9xvpR7RhyhvX+8Pzop1FZlEEKCS1KHo24H8z VKS1udvkLEpj
4w+7HPqe/wCFXbZVMOSAfmbt7mpdi/3R+VJq5UZuOxHBCIIYogc7e/r1qamF Vyvyjr6e1LsX
+6Pypkjqan3F+lGxf7o/KkRV2L8o6elAD6aPvn6D+tGxf7o/KkCrvPyjoO1A EIinWUzAoXYk
MpOBtGdo6df8T7YgFpMjpJFFBHtcHylchfusCc7ep3Dt2q9sX+6Pyo2L/dH5 UAQxwurB2EZZ
5N799vy7fl/Ic/X6Uy5s2uZmLTOkZi8sBMZOT82cg+i1Z2L/AHR+VGxf7o/K gColrP5LCV0a
RpY5CR0O0Jnt/smi7s2nmZxhldAjAyMoABPOB97r0OOnvVvYv90flRsX+6Py oAz205yz52sJ
NwI8xlABdj0H3uG6HHTrzT5LKRo3UMmWSdRyertkVd2L/dH5UbF/uj8qAM+T TncTKNvzeYVZ
pG6sD/D0H3uvP054nmtpGuxcR7CVC4ViRkgODzjj7/6VZ2L/AHR+VGxf7o/K gCN4d93FMQpE
aMBnqCdvI/AH86pxac6LGvy/u9gDGRm3AMpPB4X7vQZ+vFaGxf7o/KjYv90f lQBUezZrtpOC
jurkmRhggDjaOD93qfX2pn2B0gtVQKWhjKMqyNGCTjJyvPUfrV7Yv90flRsX +6PyoAqJZMkL
RqUx5sbDGcYUJ9f7ppptJjbQxEJ/o5GwrKylwFK8kDK9c8Z9Ku7F/uj8qNi/ 3R+VAFcWzC0S
IbQRIrn5if4wx5PJ+vf2qM2cwwUdQR5vQkZ3OGxntwCM9s8Vc2L/AHR+VGxf 7o/KgDPFpKqk
fMkkkvDJIzlVKAHLEZ7ZHvtq5JDlrfYFVYnzjpxtIwPzFSbF/uj8qNi/3R+V AFE2UwWdVMZE
4ZGJJGwFnII454fpx0q1bxvEHRtpXezKwPJySTkdsZqTYv8AdH5UbF/uj8qA KYs5lht1V1DR
QeWcEjJ+XgHtnaRnqM01LGXy3O7y5GkyCsrMQpUKRuIz2yPcD0q9sX+6Pyo2 L/dH5UAUzYkX
JZVXyy6v/rGAXaAANg4P3ev+FLqFtNcK6xkFWQqAZGQKeeeB83bg+nvVvYv9 0flRsX+6PyoA
Y0ZN1HLkbVRlPrklf8DVJbG4CQIWVhH5fPmsAu3GRtxhuh5Pr7VobF/uj8qN i/3R+VAFKOyk
WNFLJlUgU8nqjZNOsrNrdl3YPlpsVvMZiRxzg8L06DP6c29i/wB0flRsX+6P yoAG6r9f6VBL
DI10kkRCcAO+85IBJ27cY/HIPP5zFVyvyjr6e1LsX+6PyoAz/sNw0yO7KduM sZWO751bO0jC
/dPA9aJ7WZVRkCuVkY4yf4plYdvQc1obF/uj8qNi/wB0flQBQlsJZnaRiisx LFVY8HMeBnGf
4OvbPerFtDJCvAQb33OC7OcbcdT1PA9OKn2L/dH5UbF/uj8qAKhtH2SZSNjK QxUOU2sDkAMB
nHf65PfhklrdGGUbo5Xmi8ti7bdv3sdBz97HQdPer2xf7o/KjYv90flQA6op EElvIhUMGDDa
TgHrxntT9i/3R+VIqrj7o6nt70AUjZ3DtGzyKdh4BbO0b0OM45+6eTzz+NNn tZlVGQK5WRjj
J/imVh29BzWhsX+6Pyo2L/dH5UAUJbCWZ2kYorMSxVWPBzHgZxn+Dr2z3q1a QmFG3ABnbcQH
Z+wHU8np7VLsX+6Pyo2L/dH5UAOopuxf7o/KjYv90flQAL1b6/0qlY2UlvIj OyEKm3gnrtjH
/sh/SrgVct8o6+ntS7F/uj8qAM+DTniMYbawGwsfMYAFQo+6OD93qfXpxU13 avPIWURtlNqs
x5iPPzLx15Hp90c+lrYv90flRsX+6PyoAdRTdi/3R+VGxf7o/KgB1Nf7jfSj Yv8AdH5Ujqux
vlHT0oAfRTdi/wB0flRQB//Z
--------------2625BBBC78E34E3AAB1FB179--

--------------1D6FA7A65711ABE6113943C2--
Re: A Diagnostic Message for the Valid Schema [message #19785 is a reply to message #19645] Sat, 03 May 2003 03:02 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: paechoi.earthlink.net

This is a multi-part message in MIME format.

------=_NextPart_000_00D3_01C310FE.F0381250
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_00D4_01C310FE.F0381250"


------=_NextPart_001_00D4_01C310FE.F0381250
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Ed,

I don't see why Eclipse/Editor treats the sampel schema as an invalid =
schema. I also
tried other schema, e.g., WSDL.XSD, but throws the same message. The =
following is
the copy of WSDL schema that I enclosed for the convenience purpose. Try =
to see
what you get.


Regards,


Pae

// ###################### WSDL Schema ######################
<?xml version=3D"1.0" encoding=3D"UTF-8"?>

<!--=20


Copyright 2001-2002 International Business Machines Corporation, =
Microsoft Corporation. All rights reserved.=20

-->

<schema targetNamespace=3D"http://schemas.xmlsoap.org/wsdl/" =
xmlns=3D"http://www.w3.org/2001/XMLSchema" =
xmlns:wsdl=3D"http://schemas.xmlsoap.org/wsdl/" =
elementFormDefault=3D"qualified">

<complexType name=3D"tDocumentation" mixed=3D"true">

<sequence>

<any processContents=3D"lax" minOccurs=3D"0" maxOccurs=3D"unbounded"/>

</sequence>

</complexType>

<complexType name=3D"tDocumented">

<annotation>

<documentation>

This type is extended by component types

to allow them to be documented

</documentation>

</annotation>

<sequence>

<element name=3D"documentation" type=3D"wsdl:tDocumentation" =
minOccurs=3D"0"/>

</sequence>

</complexType>

<complexType name=3D"tExtensibleAttributesDocumented" abstract=3D"true">

<annotation>

<documentation>

This type is extended by component types

to allow attributes from other namespaces to be added.

</documentation>

</annotation>

<complexContent>

<extension base=3D"wsdl:tDocumented">

<anyAttribute namespace=3D"##other"/>

</extension>

</complexContent>

</complexType>

<complexType name=3D"tExtensibleDocumented" abstract=3D"true">

<annotation>

<documentation>

This type is extended by component types

to allow attributes from other namespaces to be added.

</documentation>

</annotation>

<complexContent>

<extension base=3D"wsdl:tDocumented">

<sequence>

<any namespace=3D"##other" minOccurs=3D"0" maxOccurs=3D"unbounded"/>

</sequence>

</extension>

</complexContent>

</complexType>

<element name=3D"definitions" type=3D"wsdl:tDefinitions">

<key name=3D"message">

<selector xpath=3D"wsdl:message"/>

<field xpath=3D"@name"/>

</key>

<key name=3D"portType">

<selector xpath=3D"wsdl:portType"/>

<field xpath=3D"@name"/>

</key>

<key name=3D"binding">

<selector xpath=3D"wsdl:binding"/>

<field xpath=3D"@name"/>

</key>

<key name=3D"service">

<selector xpath=3D"wsdl:service"/>

<field xpath=3D"@name"/>

</key>

<key name=3D"import">

<selector xpath=3D"wsdl:import"/>

<field xpath=3D"@namespace"/>

</key>

<key name=3D"port">

<selector xpath=3D"wsdl:service/wsdl:port"/>

<field xpath=3D"@name"/>

</key>

</element>

<group name=3D"anyTopLevelOptionalElement">

<annotation>

<documentation>

Any top level optional element allowed to appear more then once-=20

any child of definitions element except wsdl:types.=20

Any extensibility element is allowed in any place=20

</documentation>

</annotation>

<choice>

<element name=3D"import" type=3D"wsdl:tImport"/>

<element name=3D"types" type=3D"wsdl:tTypes"/>

<element name=3D"message" type=3D"wsdl:tMessage">

<unique name=3D"part">

<selector xpath=3D"wsdl:part"/>

<field xpath=3D"@name"/>

</unique>

</element>

<element name=3D"portType" type=3D"wsdl:tPortType"/>

<element name=3D"binding" type=3D"wsdl:tBinding"/>

<element name=3D"service" type=3D"wsdl:tService"/>

</choice>

</group>

<complexType name=3D"tDefinitions">

<complexContent>

<extension base=3D"wsdl:tExtensibleDocumented">

<sequence>

<group ref=3D"wsdl:anyTopLevelOptionalElement" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>

</sequence>

<attribute name=3D"targetNamespace" type=3D"anyURI" use=3D"optional"/>

<attribute name=3D"name" type=3D"NCName" use=3D"optional"/>

</extension>

</complexContent>

</complexType>

<complexType name=3D"tImport">

<complexContent>

<extension base=3D"wsdl:tExtensibleAttributesDocumented">

<attribute name=3D"namespace" type=3D"anyURI" use=3D"required"/>

<attribute name=3D"location" type=3D"anyURI" use=3D"required"/>

</extension>

</complexContent>

</complexType>

<complexType name=3D"tTypes">

<complexContent>

<extension base=3D"wsdl:tExtensibleDocumented"/>

</complexContent>

</complexType>

<complexType name=3D"tMessage">

<complexContent>

<extension base=3D"wsdl:tExtensibleDocumented">

<sequence>

<element name=3D"part" type=3D"wsdl:tPart" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>

</sequence>

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>

</extension>

</complexContent>

</complexType>

<complexType name=3D"tPart">

<complexContent>

<extension base=3D"wsdl:tExtensibleAttributesDocumented">

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>

<attribute name=3D"element" type=3D"QName" use=3D"optional"/>

<attribute name=3D"type" type=3D"QName" use=3D"optional"/>

</extension>

</complexContent>

</complexType>

<complexType name=3D"tPortType">

<complexContent>

<extension base=3D"wsdl:tExtensibleAttributesDocumented">

<sequence>

<element name=3D"operation" type=3D"wsdl:tOperation" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>

</sequence>

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>

</extension>

</complexContent>

</complexType>

<complexType name=3D"tOperation">

<complexContent>

<extension base=3D"wsdl:tExtensibleDocumented">

<choice>

<group ref=3D"wsdl:request-response-one-way-operation"/>

<group ref=3D"wsdl:solicit-response-notification-operation"/>

</choice>

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>

<attribute name=3D"parameterOrder" type=3D"NMTOKENS" use=3D"optional"/>

</extension>

</complexContent>

</complexType>

<group name=3D"optional-response-fault">

<choice>

<sequence/>

<sequence>

<element name=3D"output" type=3D"wsdl:tParam"/>

<element name=3D"fault" type=3D"wsdl:tFault" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>

</sequence>

</choice>

</group>

<group name=3D"request-response-one-way-operation">

<sequence>

<element name=3D"input" type=3D"wsdl:tParam"/>

<group ref=3D"wsdl:optional-response-fault"/>

</sequence>

</group>

<group name=3D"optional-solicit-fault">

<choice>

<sequence/>

<sequence>

<element name=3D"input" type=3D"wsdl:tParam"/>

<element name=3D"fault" type=3D"wsdl:tFault" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>

</sequence>

</choice>

</group>

<group name=3D"solicit-response-notification-operation">

<sequence>

<element name=3D"output" type=3D"wsdl:tParam"/>

<group ref=3D"wsdl:optional-solicit-fault"/>

</sequence>

</group>

<complexType name=3D"tParam">

<complexContent>

<extension base=3D"wsdl:tExtensibleAttributesDocumented">

<attribute name=3D"name" type=3D"NCName" use=3D"optional"/>

<attribute name=3D"message" type=3D"QName" use=3D"required"/>

</extension>

</complexContent>

</complexType>

<complexType name=3D"tFault">

<complexContent>

<extension base=3D"wsdl:tExtensibleAttributesDocumented">

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>

<attribute name=3D"message" type=3D"QName" use=3D"required"/>

</extension>

</complexContent>

</complexType>

<complexType name=3D"tBinding">

<complexContent>

<extension base=3D"wsdl:tExtensibleDocumented">

<sequence>

<element name=3D"operation" type=3D"wsdl:tBindingOperation" =
minOccurs=3D"0" maxOccurs=3D"unbounded"/>

</sequence>

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>

<attribute name=3D"type" type=3D"QName" use=3D"required"/>

</extension>

</complexContent>

</complexType>

<complexType name=3D"tBindingOperationMessage">

<complexContent>

<extension base=3D"wsdl:tExtensibleDocumented">

<attribute name=3D"name" type=3D"NCName" use=3D"optional"/>

</extension>

</complexContent>

</complexType>

<complexType name=3D"tBindingOperationFault">

<complexContent>

<extension base=3D"wsdl:tExtensibleDocumented">

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>

</extension>

</complexContent>

</complexType>

<complexType name=3D"tBindingOperation">

<complexContent>

<extension base=3D"wsdl:tExtensibleDocumented">

<sequence>

<element name=3D"input" type=3D"wsdl:tBindingOperationMessage" =
minOccurs=3D"0"/>

<element name=3D"output" type=3D"wsdl:tBindingOperationMessage" =
minOccurs=3D"0"/>

<element name=3D"fault" type=3D"wsdl:tBindingOperationFault" =
minOccurs=3D"0" maxOccurs=3D"unbounded"/>

</sequence>

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>

</extension>

</complexContent>

</complexType>

<complexType name=3D"tService">

<complexContent>

<extension base=3D"wsdl:tExtensibleDocumented">

<sequence>

<element name=3D"port" type=3D"wsdl:tPort" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>

</sequence>

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>

</extension>

</complexContent>

</complexType>

<complexType name=3D"tPort">

<complexContent>

<extension base=3D"wsdl:tExtensibleDocumented">

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>

<attribute name=3D"binding" type=3D"QName" use=3D"required"/>

</extension>

</complexContent>

</complexType>

<attribute name=3D"arrayType" type=3D"string"/>

<attribute name=3D"required" type=3D"boolean"/>

<complexType name=3D"tExtensibilityElement" abstract=3D"true">

<sequence/>

<attribute ref=3D"wsdl:required" use=3D"optional"/>

</complexType>

</schema>


"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB25ED9.AE2CB299@ca.ibm.com...
Pae,=20
I'm seeing this result with the just published 1.1.0 driver:=20


The schema isn't valid.=20
=20
Pae Choi wrote:=20

I have a simple test schema as follows:=20
<?xml version=3D"1.0" encoding=3D"UTF-8"?>=20
<!--W3C Schema generated by Pae -->=20
<xsd:schema xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema"=20
elementFormDefault=3D"qualified">=20
<xsd:element name=3D"CommonLogin">=20
<xsd:complexType>=20
<xsd:sequence>=20
<xsd:element name=3D"username" ref=3D"usernameRef"/>=20
<xsd:element name=3D"password" ref=3D"passwordRef"/>=20
</xsd:sequence>=20
</xsd:complexType>=20
</xsd:element>=20
<xsd:element name=3D"passwordRef" type=3D"xsd:string"/>=20
<xsd:element name=3D"usernameRef" type=3D"xsd:string"/>=20
</xsd:schema>=20

This is a very simple sample, but it is a valid schema. But when=20
I use the validate() and getDiagnostics() methods in the XSDSchema=20
interface it gives me a message as follows:=20

XSD: The element '#null' is not permitted as constrained by 'XML =
Schema ';=20
expecting schema=20

I do not understand what the message is saying. Any comments?=20

Pae


------=_NextPart_001_00D4_01C310FE.F0381250
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2600.0" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT size=3D2>Ed,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>I don't see why Eclipse/Editor treats the sampel =
schema as an=20
invalid schema. I also</FONT></DIV>
<DIV><FONT size=3D2>tried other schema, e.g., WSDL.XSD, but throws the =
same=20
message. The following is</FONT></DIV>
<DIV><FONT size=3D2>the copy of WSDL schema that I enclosed for the =
convenience=20
purpose. Try to see</FONT></DIV>
<DIV><FONT size=3D2>what you get.</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Regards,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Pae</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>// ###################### WSDL Schema=20
######################</FONT></DIV>
<DIV><FONT size=3D2><FONT color=3D#008080 size=3D1>
<P>&lt;?xml version=3D"1.0" encoding=3D"UTF-8"?&gt;</P></FONT><FONT =
color=3D#0000ff=20
size=3D1>
<P>&lt;!--</FONT><FONT color=3D#808080 size=3D1> </P>
<P></P>
<P>Copyright 2001-2002 International Business Machines Corporation, =
Microsoft=20
Corporation. All rights reserved. </P></FONT><FONT color=3D#0000ff =
size=3D1>
<P>--&gt;</P>
<P>&lt;</FONT><FONT color=3D#800000 size=3D1>schema</FONT><FONT =
color=3D#ff0000=20
size=3D1> targetNamespace</FONT><FONT color=3D#0000ff =
size=3D1>=3D"</FONT><FONT=20
size=3D1>http://schemas.xmlsoap.org/wsdl/</FONT><FONT color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> xmlns</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT =
size=3D1>http://www.w3.org/2001/XMLSchema</FONT><FONT=20
color=3D#0000ff size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> =
xmlns:wsdl</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT=20
size=3D1>http://schemas.xmlsoap.org/wsdl/</FONT><FONT color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> =
elementFormDefault</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT size=3D1>qualified</FONT><FONT =
color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>complexType</FONT><FONT color=3D#ff0000 size=3D1> =
name</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT =
size=3D1>tDocumentation</FONT><FONT=20
color=3D#0000ff size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> =
mixed</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT size=3D1>true</FONT><FONT =
color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>sequence</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>any</FONT><FONT color=3D#ff0000 size=3D1> =
processContents</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT size=3D1>lax</FONT><FONT =
color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> minOccurs</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>0</FONT><FONT color=3D#0000ff =
size=3D1>"</FONT><FONT=20
color=3D#ff0000 size=3D1> maxOccurs</FONT><FONT color=3D#0000ff =
size=3D1>=3D"</FONT><FONT=20
size=3D1>unbounded</FONT><FONT color=3D#0000ff =
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>sequence</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>complexType</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>complexType</FONT><FONT color=3D#ff0000 size=3D1> =
name</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT =
size=3D1>tDocumented</FONT><FONT color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>annotation</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>documentation</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT=20
size=3D1>
<P>This type is extended by component types</P>
<P>to allow them to be documented</P>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>documentation</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT=20
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>annotation</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>sequence</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>element</FONT><FONT color=3D#ff0000 size=3D1> name</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>documentation</FONT><FONT =
color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> type</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>wsdl:tDocumentation</FONT><FONT =
color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> minOccurs</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>0</FONT><FONT color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>sequence</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>complexType</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>complexType</FONT><FONT color=3D#ff0000 size=3D1> =
name</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT=20
size=3D1>tExtensibleAttributesDocumented</FONT><FONT color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> abstract</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>true</FONT><FONT color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>annotation</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>documentation</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT=20
size=3D1>
<P>This type is extended by component types</P>
<P>to allow attributes from other namespaces to be added.</P>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>documentation</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT=20
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>annotation</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>complexContent</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT=20
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>extension</FONT><FONT color=3D#ff0000 size=3D1> =
base</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT =
size=3D1>wsdl:tDocumented</FONT><FONT=20
color=3D#0000ff size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>anyAttribute</FONT><FONT color=3D#ff0000 size=3D1> =
namespace</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT size=3D1>##other</FONT><FONT =
color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>extension</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>complexContent</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT=20
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>complexType</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>complexType</FONT><FONT color=3D#ff0000 size=3D1> =
name</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT =
size=3D1>tExtensibleDocumented</FONT><FONT=20
color=3D#0000ff size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> =
abstract</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT size=3D1>true</FONT><FONT =
color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>annotation</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>documentation</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT=20
size=3D1>
<P>This type is extended by component types</P>
<P>to allow attributes from other namespaces to be added.</P>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>documentation</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT=20
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>annotation</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>complexContent</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT=20
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>extension</FONT><FONT color=3D#ff0000 size=3D1> =
base</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT =
size=3D1>wsdl:tDocumented</FONT><FONT=20
color=3D#0000ff size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>sequence</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>any</FONT><FONT color=3D#ff0000 size=3D1> namespace</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>##other</FONT><FONT color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> minOccurs</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>0</FONT><FONT color=3D#0000ff =
size=3D1>"</FONT><FONT=20
color=3D#ff0000 size=3D1> maxOccurs</FONT><FONT color=3D#0000ff =
size=3D1>=3D"</FONT><FONT=20
size=3D1>unbounded</FONT><FONT color=3D#0000ff =
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>sequence</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>extension</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>complexContent</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT=20
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>complexType</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>element</FONT><FONT color=3D#ff0000 size=3D1> name</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>definitions</FONT><FONT =
color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> type</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>wsdl:tDefinitions</FONT><FONT =
color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>key</FONT><FONT color=3D#ff0000 size=3D1> name</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>message</FONT><FONT color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>selector</FONT><FONT color=3D#ff0000 size=3D1> =
xpath</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT =
size=3D1>wsdl:message</FONT><FONT=20
color=3D#0000ff size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>field</FONT><FONT color=3D#ff0000 size=3D1> xpath</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>@name</FONT><FONT color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>key</FONT><FONT color=3D#0000ff size=3D1>&gt;</P></FONT><FONT =
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>key</FONT><FONT color=3D#ff0000 size=3D1> name</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>portType</FONT><FONT color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>selector</FONT><FONT color=3D#ff0000 size=3D1> =
xpath</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT =
size=3D1>wsdl:portType</FONT><FONT=20
color=3D#0000ff size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>field</FONT><FONT color=3D#ff0000 size=3D1> xpath</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>@name</FONT><FONT color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>key</FONT><FONT color=3D#0000ff size=3D1>&gt;</P></FONT><FONT =
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>key</FONT><FONT color=3D#ff0000 size=3D1> name</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>binding</FONT><FONT color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>selector</FONT><FONT color=3D#ff0000 size=3D1> =
xpath</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT =
size=3D1>wsdl:binding</FONT><FONT=20
color=3D#0000ff size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>field</FONT><FONT color=3D#ff0000 size=3D1> xpath</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>@name</FONT><FONT color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>key</FONT><FONT color=3D#0000ff size=3D1>&gt;</P></FONT><FONT =
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>key</FONT><FONT color=3D#ff0000 size=3D1> name</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>service</FONT><FONT color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>selector</FONT><FONT color=3D#ff0000 size=3D1> =
xpath</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT =
size=3D1>wsdl:service</FONT><FONT=20
color=3D#0000ff size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>field</FONT><FONT color=3D#ff0000 size=3D1> xpath</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>@name</FONT><FONT color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>key</FONT><FONT color=3D#0000ff size=3D1>&gt;</P></FONT><FONT =
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>key</FONT><FONT color=3D#ff0000 size=3D1> name</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>import</FONT><FONT color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>selector</FONT><FONT color=3D#ff0000 size=3D1> =
xpath</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT =
size=3D1>wsdl:import</FONT><FONT color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>field</FONT><FONT color=3D#ff0000 size=3D1> xpath</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>@namespace</FONT><FONT =
color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>key</FONT><FONT color=3D#0000ff size=3D1>&gt;</P></FONT><FONT =
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>key</FONT><FONT color=3D#ff0000 size=3D1> name</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>port</FONT><FONT color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>selector</FONT><FONT color=3D#ff0000 size=3D1> =
xpath</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT =
size=3D1>wsdl:service/wsdl:port</FONT><FONT=20
color=3D#0000ff size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>field</FONT><FONT color=3D#ff0000 size=3D1> xpath</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>@name</FONT><FONT color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>key</FONT><FONT color=3D#0000ff size=3D1>&gt;</P></FONT><FONT =
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>element</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>group</FONT><FONT color=3D#ff0000 size=3D1> name</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT =
size=3D1>anyTopLevelOptionalElement</FONT><FONT=20
color=3D#0000ff size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>annotation</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>documentation</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT=20
size=3D1>
<P>Any top level optional element allowed to appear more then once- </P>
<P>any child of definitions element except wsdl:types. </P>
<P>Any extensibility element is allowed in any place </P>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>documentation</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT=20
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>annotation</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>choice</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>element</FONT><FONT color=3D#ff0000 size=3D1> name</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>import</FONT><FONT color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> type</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>wsdl:tImport</FONT><FONT =
color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>element</FONT><FONT color=3D#ff0000 size=3D1> name</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>types</FONT><FONT color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> type</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>wsdl:tTypes</FONT><FONT =
color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>element</FONT><FONT color=3D#ff0000 size=3D1> name</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>message</FONT><FONT color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> type</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>wsdl:tMessage</FONT><FONT =
color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>unique</FONT><FONT color=3D#ff0000 size=3D1> name</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>part</FONT><FONT color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>selector</FONT><FONT color=3D#ff0000 size=3D1> =
xpath</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT size=3D1>wsdl:part</FONT><FONT =
color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>field</FONT><FONT color=3D#ff0000 size=3D1> xpath</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>@name</FONT><FONT color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>unique</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>element</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>element</FONT><FONT color=3D#ff0000 size=3D1> name</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>portType</FONT><FONT color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> type</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>wsdl:tPortType</FONT><FONT =
color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>element</FONT><FONT color=3D#ff0000 size=3D1> name</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>binding</FONT><FONT color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> type</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>wsdl:tBinding</FONT><FONT =
color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>element</FONT><FONT color=3D#ff0000 size=3D1> name</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>service</FONT><FONT color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> type</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>wsdl:tService</FONT><FONT =
color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>choice</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>group</FONT><FONT color=3D#0000ff size=3D1>&gt;</P></FONT><FONT =
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>complexType</FONT><FONT color=3D#ff0000 size=3D1> =
name</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT =
size=3D1>tDefinitions</FONT><FONT=20
color=3D#0000ff size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>complexContent</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT=20
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>extension</FONT><FONT color=3D#ff0000 size=3D1> =
base</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT=20
size=3D1>wsdl:tExtensibleDocumented</FONT><FONT color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>sequence</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>group</FONT><FONT color=3D#ff0000 size=3D1> ref</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT =
size=3D1>wsdl:anyTopLevelOptionalElement</FONT><FONT=20
color=3D#0000ff size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> =
minOccurs</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT size=3D1>0</FONT><FONT =
color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> maxOccurs</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>unbounded</FONT><FONT color=3D#0000ff =

size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>sequence</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>attribute</FONT><FONT color=3D#ff0000 size=3D1> =
name</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT =
size=3D1>targetNamespace</FONT><FONT=20
color=3D#0000ff size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> =
type</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT size=3D1>anyURI</FONT><FONT =
color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> use</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>optional</FONT><FONT color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>attribute</FONT><FONT color=3D#ff0000 size=3D1> =
name</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT size=3D1>name</FONT><FONT =
color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> type</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>NCName</FONT><FONT color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> use</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>optional</FONT><FONT color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>extension</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>complexContent</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT=20
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>complexType</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>complexType</FONT><FONT color=3D#ff0000 size=3D1> =
name</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT size=3D1>tImport</FONT><FONT =
color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>complexContent</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT=20
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>extension</FONT><FONT color=3D#ff0000 size=3D1> =
base</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT=20
size=3D1>wsdl:tExtensibleAttributesDocumented</FONT><FONT =
color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>attribute</FONT><FONT color=3D#ff0000 size=3D1> =
name</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT size=3D1>namespace</FONT><FONT =
color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> type</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>anyURI</FONT><FONT color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> use</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>required</FONT><FONT color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>at
Re: A Diagnostic Message for the Valid Schema [message #19818 is a reply to message #19645] Sat, 03 May 2003 03:57 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: paechoi.earthlink.net

This is a multi-part message in MIME format.

------=_NextPart_000_00F9_01C31106.8A9FCBB0
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_00FA_01C31106.8A9FCBB0"


------=_NextPart_001_00FA_01C31106.8A9FCBB0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Ed,

I have a sample code that test a DOM of XML Schema with Eclipse/XSD and
producing two different results.

With v1.0.2, it seems ok except the diagnostic message we are =
discussing.
With v1.1.0, it throws an exception.

Regards,


Pae

P.S.: The code snippet is as follows:

// ################## CODE SNIPPET ##################
/*
* EclipseXSDDemo1.java
*
* Created on May 2, 2003, 11:13 PM
*/

package org.paechoi.xsd.test;

// W3C/DOM
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
// Eclipse/XSD
import org.eclipse.xsd.XSDFactory;
import org.eclipse.xsd.XSDSchema;
import org.eclipse.xsd.impl.XSDSchemaImpl;
import org.eclipse.xsd.util.XSDResourceImpl;
import org.eclipse.xsd.util.XSDResourceFactoryImpl;
import org.eclipse.xsd.XSDDiagnostic;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.emf.common.util.EList;
import java.io.File;


/**
*
* @author pae
*/
public class EclipseXSDDemo1 {
// private Document xmlDOM =3D null;
=20
// instance initializer
{
// =
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =
new XSDResourceFactoryImpl());
}
=20
/** Creates a new instance of EclipseXSDDemo1 */
public EclipseXSDDemo1() {
super();
}
=20
/** Open a XML DOM */
private Document openXMLDOM(String uri) {
// Create a factory object for creating DOM parsers
DocumentBuilderFactory factory =3D =
DocumentBuilderFactory.newInstance();
DocumentBuilder builder =3D null;
Document xmlDoc =3D null;
=20
// Build a new DOM
try {
// Now use the factory to create a DOM parser (a.k.a. a =
DocumentBuilder)
builder =3D factory.newDocumentBuilder();
xmlDoc =3D builder.parse(uri);
}
catch (Exception ex) {
ex.printStackTrace();
return null;
}
=20
return xmlDoc;
}
=20
/** doIt */
private void doIt() {
Document xmlDOM =3D =
openXMLDOM("http://schemas.xmlsoap.org/wsdl/");
// Document xmlDOM =3D openXMLDOM("./wsdl.xsd");

Element rootElement =3D xmlDOM.getDocumentElement();

XSDSchema xsdSchema =3D XSDFactory.eINSTANCE.createXSDSchema();
xsdSchema.setDocument(xmlDOM);
xsdSchema.setElement(rootElement);
xsdSchema.updateElement();

System.out.println("\n\n");
XSDResourceImpl.serialize(System.out, xsdSchema.getElement());

System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION =
>>>>>>>>>>>>>>>>>>>>>>>>>>");
xsdSchema.validate();
//EList eList =3D xsdMainSchema.getDiagnostics();
EList eList =3D xsdSchema.getAllDiagnostics();
for (int i =3D 0; i < eList.size(); i++) {
XSDDiagnostic xsdDiagnostic =3D (XSDDiagnostic)eList.get(i);
System.out.println(i + ": Diagnostic Message =3D [" + =
xsdDiagnostic.getMessage() + "]");
}
=
System.out.println("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<=
<<<<<<<");
}
=20
/** main - the main entry */
public static void main(String[] args) {
EclipseXSDDemo1 app =3D new EclipseXSDDemo1();
app.doIt();
}
}

"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB25ED9.AE2CB299@ca.ibm.com...
Pae,=20
I'm seeing this result with the just published 1.1.0 driver:=20


The schema isn't valid.=20
=20
Pae Choi wrote:=20

I have a simple test schema as follows:=20
<?xml version=3D"1.0" encoding=3D"UTF-8"?>=20
<!--W3C Schema generated by Pae -->=20
<xsd:schema xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema"=20
elementFormDefault=3D"qualified">=20
<xsd:element name=3D"CommonLogin">=20
<xsd:complexType>=20
<xsd:sequence>=20
<xsd:element name=3D"username" ref=3D"usernameRef"/>=20
<xsd:element name=3D"password" ref=3D"passwordRef"/>=20
</xsd:sequence>=20
</xsd:complexType>=20
</xsd:element>=20
<xsd:element name=3D"passwordRef" type=3D"xsd:string"/>=20
<xsd:element name=3D"usernameRef" type=3D"xsd:string"/>=20
</xsd:schema>=20

This is a very simple sample, but it is a valid schema. But when=20
I use the validate() and getDiagnostics() methods in the XSDSchema=20
interface it gives me a message as follows:=20

XSD: The element '#null' is not permitted as constrained by 'XML =
Schema ';=20
expecting schema=20

I do not understand what the message is saying. Any comments?=20

Pae


------=_NextPart_001_00FA_01C31106.8A9FCBB0
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2600.0" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT size=3D2>Ed,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>I have a sample code that test&nbsp;a DOM =
of&nbsp;XML=20
Schema&nbsp;with Eclipse/XSD and</FONT></DIV>
<DIV><FONT size=3D2>producing&nbsp;two different results.</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>With v1.0.2, it seems ok except the diagnostic =
message we are=20
discussing.</FONT></DIV>
<DIV><FONT size=3D2>With v1.1.0, it throws an exception.</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Regards,</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Pae</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>P.S.: The code snippet is as follows:</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>// ################## CODE SNIPPET=20
##################</FONT></DIV>
<DIV><FONT size=3D2>/*<BR>&nbsp;* =
EclipseXSDDemo1.java<BR>&nbsp;*<BR>&nbsp;*=20
Created on May 2, 2003, 11:13 PM<BR>&nbsp;*/</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=3D2>package org.paechoi.xsd.test;</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=3D2>// W3C/DOM<BR>import&nbsp;=20
javax.xml.parsers.DocumentBuilderFactory;<BR>import&nbsp;=20
javax.xml.parsers.DocumentBuilder;<BR>import&nbsp;=20
org.w3c.dom.Document;<BR>import&nbsp; org.w3c.dom.Element;<BR>//=20
Eclipse/XSD<BR>import&nbsp; org.eclipse.xsd.XSDFactory;<BR>import&nbsp;=20
org.eclipse.xsd.XSDSchema;<BR>import&nbsp;=20
org.eclipse.xsd.impl.XSDSchemaImpl;<BR>import&nbsp;=20
org.eclipse.xsd.util.XSDResourceImpl;<BR>import&nbsp;=20
org.eclipse.xsd.util.XSDResourceFactoryImpl;<BR>import&nbsp;=20
org.eclipse.xsd.XSDDiagnostic;<BR>import&nbsp;=20
org.eclipse.emf.ecore.resource.Resource;<BR>import&nbsp;=20
org.eclipse.emf.ecore.resource.ResourceSet;<BR>import&nbsp;=20
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;<BR>import&nbsp;=20
org.eclipse.emf.common.util.EList;<BR>import&nbsp; =
java.io.File;</FONT></DIV>
<DIV>&nbsp;</DIV><FONT size=3D2>
<DIV><BR>/**<BR>&nbsp;*<BR>&nbsp;* @author&nbsp; =
pae<BR>&nbsp;*/<BR>public class=20
EclipseXSDDemo1 {<BR>//&nbsp;&nbsp;&nbsp; =
private&nbsp;&nbsp;&nbsp;&nbsp;=20
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp; xmlDOM =3D=20
null;<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; // instance=20
initializer<BR>&nbsp;&nbsp;&nbsp;=20
{<BR> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;=20
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =
new=20
XSDResourceFactoryImpl());<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; =

<BR>&nbsp;&nbsp;&nbsp; /** Creates a new instance of EclipseXSDDemo1=20
*/<BR>&nbsp;&nbsp;&nbsp; public EclipseXSDDemo1()=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
super();<BR>&nbsp;&nbsp;&nbsp;=20
}<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; /** Open a XML DOM=20
*/<BR>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String uri)=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create a factory =
object for=20
creating DOM parsers<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilderFactory&nbsp; factory =3D=20
DocumentBuilderFactory.newInstance();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;=20
DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp; builder =
=3D=20
null;<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D null;<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Build a new=20
DOM<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
// Now=20
use the factory to create a DOM parser (a.k.a. a=20
DocumentBuilder)<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;=20
builder =3D=20
factory.newDocumentBuilder();<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D =
builder.parse(uri);<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
}<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch (Exception ex)=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
ex.printStackTrace();<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;=20
return null;<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
}<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; return=20
xmlDoc;<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; =
<BR>&nbsp;&nbsp;&nbsp; /**=20
doIt */<BR>&nbsp;&nbsp;&nbsp; private void doIt()=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document xmlDOM =3D =
openXMLDOM("<A=20
href=3D"http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl=
/</A>");<BR> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;=20
Document xmlDOM =3D openXMLDOM("./wsdl.xsd");</DIV>
<DIV>&nbsp;</DIV>
<DIV> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Element rootElement =3D=20
xmlDOM.getDocumentElement();</DIV>
<DIV>&nbsp;</DIV>
<DIV> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; XSDSchema xsdSchema =3D=20
XSDFactory.eINSTANCE.createXSDSchema();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;=20
xsdSchema.setDocument(xmlDOM);<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nb=
sp;=20
xsdSchema.setElement(rootElement);<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;=20
xsdSchema.updateElement();</DIV>
<DIV>&nbsp;</DIV>
<DIV> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
System.out.println("\n\n");<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=
=20
XSDResourceImpl.serialize(System.out, xsdSchema.getElement());</DIV>
<DIV>&nbsp;</DIV>
<DIV> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
System.out.println(" &gt;&gt;&gt;&gt;&gt;&gt;&gt;& ;gt;&gt;&gt;&gt;&gt;&gt;&=
gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;& amp;gt;=20
VALIDATION=20
&gt;&gt;&gt;&gt;&gt;&gt;&gt;& ;gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt;&gt;&=
gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;"); <BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;=20
xsdSchema.validate();<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
//EList=20
eList =3D=20
xsdMainSchema.getDiagnostics();<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &n=
bsp;=20
EList eList =3D=20
xsdSchema.getAllDiagnostics();<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nb=
sp; for=20
(int i =3D 0; i &lt; eList.size(); i++)=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
XSDDiagnostic xsdDiagnostic =3D=20
(XSDDiagnostic)eList.get(i);<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;=20
System.out.println(i + ": Diagnostic Message =3D [" + =
xsdDiagnostic.getMessage() +=20
"]");<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
}<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
System.out.println(" &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&=
lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;& amp;lt;&lt;&lt;&lt;&lt;&lt;&lt;& lt;&lt;&lt;&l=
t;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&a mp;lt;&lt;&lt;&lt;&lt;&lt;&lt;&l t;&lt;&lt;&lt=
;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&am p;lt;&lt;&lt; ");<BR>&nbsp;&nbsp;&nbsp;=20
}<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; /** main - the main entry =

*/<BR>&nbsp;&nbsp;&nbsp; public static void main(String[] args)=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; EclipseXSDDemo1 app =3D =
new=20
EclipseXSDDemo1();<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
app.doIt();<BR>&nbsp;&nbsp;&nbsp; }<BR>}<BR></FONT></DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV>"Ed Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB25ED9.AE2CB299@ca.ibm.com">news:3EB25ED9.AE2CB299@ca.ibm.=
com</A>...</DIV>Pae,=20

<P>I'm seeing this result with the just published 1.1.0 driver:=20
<BLOCKQUOTE><IMG height=3D411 =
src=3D"cid:00f401c31128$1198daa0$0b01a8c0@dev1"=20
width=3D502></BLOCKQUOTE>The schema isn't valid. <BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">I have a simple test schema as follows:=20
<P>&lt;?xml version=3D"1.0" encoding=3D"UTF-8"?&gt; <BR>&lt;!--W3C =
Schema=20
generated by Pae --&gt; <BR>&lt;xsd:schema xmlns:xsd=3D"<A=20
=
href=3D"http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchem=
a</A>"=20
<BR>elementFormDefault=3D"qualified"&gt; <BR>&nbsp;&lt;xsd:element=20
name=3D"CommonLogin"&gt; <BR>&nbsp; &lt;xsd:complexType&gt; =
<BR>&nbsp;&nbsp;=20
&lt;xsd:sequence&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;xsd:element =
name=3D"username"=20
ref=3D"usernameRef"/&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;xsd:element=20
name=3D"password" ref=3D"passwordRef"/&gt; <BR>&nbsp;&nbsp;=20
&lt;/xsd:sequence&gt; <BR>&nbsp; &lt;/xsd:complexType&gt;=20
<BR>&nbsp;&lt;/xsd:element&gt; <BR>&nbsp;&lt;xsd:element =
name=3D"passwordRef"=20
type=3D"xsd:string"/&gt; <BR>&nbsp;&lt;xsd:element =
name=3D"usernameRef"=20
type=3D"xsd:string"/&gt; <BR>&lt;/xsd:schema&gt;=20
<P>This is a very simple sample, but it is a valid schema. But when =
<BR>I=20
use the validate() and getDiagnostics() methods in the XSDSchema=20
<BR>interface it gives me a message as follows:=20
<P>XSD: The element '#null' is not permitted as constrained by 'XML =
Schema=20
'; <BR>expecting schema=20
<P>I do not understand what the message is saying. Any comments?=20
<P>Pae</P></BLOCKQUOTE></BLOCKQUOTE></BODY></HTML>

------=_NextPart_001_00FA_01C31106.8A9FCBB0--

------=_NextPart_000_00F9_01C31106.8A9FCBB0
Content-Type: image/jpeg;
name="C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\nsmailFJ.jpeg"
Content-Transfer-Encoding: base64
Content-ID: <00f401c31128$1198daa0$0b01a8c0@dev1>

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCws MGJGSjpQdGZ6eHJm
cG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAqMF40 NF7GhHCExsbGxsbG
xsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsb/ wAARCAGbAfYDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA AgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcY GRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKT lJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP0 9fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQA AQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2 Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOk paanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMB AAIRAxEAPwDXghR4
9zbiST/EfU0m23yQBKcHHG81Ja/6kf7zfzNVLrfsTY5wGkLRrJsZueoPt6e9 NK4FpIYJEDIWKnoQ
5/xpfs0Xo3/fZ/xqKy2bmMbMUZEcZ75zzjt2qMXc+1kYBbgkbYvLyRnJ67sN wDzkdPXikBZ+zRej
f99n/Gj7NF6N/wB9n/Gqa31w+eI027VYMuTuLsmeD2xnHPpnvS/bZyJnHlhY ELMNpy5DODg54zs9
+vegC39mi9G/77P+NH2aL0b/AL7P+NUEup4hIkMQZY2kdycYwZH4yWGPu9ef 8b883lxs6FW2H5l7
n2HvyMDv075oAPs0Xo3/AH2f8aPs0Xo3/fZ/xqFriZWhLGMRPt/eKpdSSeFG Dx2+YjBz26Uy3kkm
uraaQptkgZlVVIKglDgnPP6UATyQxIudrH/gZpm2L+43/fw1NP8AcH1rJvJZ becG2JlkdSWhOSAA
PvD0/r9aQGhti/uN/wB/DTDGBI65bAPHzH0B/rUdntNurLMZt3zFyep+nb6V M/8Ar5f94fyFAxvl
j1b/AL6NHlj1b/vo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+ jTqKAG+WPVv++jR5
Y9W/76NOooAb5Y9W/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igBvlj1 b/vo0eWPVv8Avo06
igBvlj1b/vo0eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPVv++jR5Y9 W/76NOooAb5Y9W/7
6NHlj1b/AL6NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/AL6NHlj1b/vo06ig Bvlj1b/vo0eWPVv+
+jTqKAG+WPVv++jR5Y9W/wC+jTqKAG+WPVv++jR5Y9W/76NOooAb5Y9W/wC+ jR5Y9W/76NOooAb5
Y9W/76NHlj1b/vo06igBvlj1b/vo0eWPVv8Avo06igBvlj1b/vo0eWPVv++j TqKAG+WPVv8Avo0e
WPVv++jTqKAG+WPVv++jR5Y9W/76NOooAb5Y9W/76NHlj1b/AL6NOooAb5Y9 W/76NHlj1b/vo06i
gCvOTEV2MRnOcnP86KS76p+P9KKBF+1/1I/3m/majktGkBVmiZNxYK8W7Gfx 96hREIJKqTuPUe9O
8uP+4v5U7gWIYnR3d3DFgBwuMYz/AI0otoBEYhBGI2OSgQYJ+lNdbaNlVkjD OcKu0ZP0FMcwRyBW
tvlyFMmwbQT0Hqeo6DHP1oAmWCFF2pFGo44CgdDkfrzTPscBn84xIXwMZUfK QScj3yaT/Q/+mH39
nb73p9fahfsbruTyGHHIwepwP14oAkaCFipaKMlCWUlRwSckj8ad5abt2xc5 3Zx3xjP5cVCVgFws
JgXLIXDbRjggEfqKk8iH/nkn/fIoABBCJBIIo94zhtoyM5zz+J/OhIIY5GkS KNXbqwUAn8ah8yw8
vzN9tszt3ZXGfTNO/wBD87yf3Hm/3ON3r0oAklUsoAGeagFuVZmEYDN94jGT 9adusgwXNvuLbAMr
kt6fXkUM1ksvlMbcSZA2ErnJ6cUANW3KZ2RhdxycYGT60j/6+X/eH8hUgFqZ zCEiLgZIG3I6dR17
0f6H53k/uPN/ucbvXpQBHRUg+xs4QeQWJK7RjOR1H4U3zLDzPL322/O3blc5 9MUrANoprz2y3Bh+
ysSJFjyIxjJGf0HWpf8ARvtPkeSN+0tkx4GBjv369qLAMoqx5EP/ADyT/vkV X8y33f8AHt+737PM
2rtznGOuevHT9KLAFFNee2W4MP2ViRIseRGMZIz+g61a8iH/AJ5J/wB8iiwF eipP9D87yf3Hm/3O
N3r0oH2NnCDyCxJXaMZyOo/CiwEdFSH7GJDGfI3jGV4yM4xx+I/Oj/Q/O8n9 x5v9zjd69KLAR0Us
slpE4TZGz7lUqu3K5IAJHpyPzp4FqZzCEiLgZIG3I6dR170WAjoqQfY2cIPI LEldoxnI6j8KR2sk
Zlc26sgywJUED3/MfnRYBlFO8yw8zy99tvzt25XOfTFRvPbLcGH7KxIkWPIj GMkZ/QdaLAOoprzQ
r5n+hMfLkEZwqck4xjn3H5/WkeeJHKf2fKxAYjCJ8wU4JAznuPrRYB9FN86H z2iFkxKvtJCp7c4z
nHzDt3q15EP/ADyT/vkUWAr0UeZb7v8Aj2/d79nmbV25zjHXPXjp+lNee2W4 MP2ViRIseRGMZIz+
g60WAdRTnMEcgVrb5chTJsG0E9B6nqOgxz9aei20jMqpGWQ4ZdoyPqKLARUV Y8iH/nkn/fIo8iH/
AJ5J/wB8iiwFeirHkQ/88k/75FHkQ/8APJP++RRYCvRVjyIf+eSf98ijyIf+ eSf98iiwFeirHkQ/
88k/75FHkQ/88k/75FFgK9FWPIh/55J/3yKPIh/55J/3yKLAV6KseRD/AM8k /wC+RR5EP/PJP++R
RYCvRVjyIf8Ankn/AHyKPIh/55J/3yKLAV6KseRD/wA8k/75FHkQ/wDPJP8A vkUWAr0VY8iH/nkn
/fIo8iH/AJ5J/wB8iiwFeipngh2/6pOo/hFQbYv+eUfPtQMWioJlTz4FCKAS cgDrxUb3FsjlWj5B
x90UWGouWiQ676p+P9KKLtFRlAUDrnAooJJ4/un/AHj/ADp1Nj+6f94/zp1A yXyWjmMkTAhz86vk
nr2PbqeOn05NOeMyTLuAMSjP3urZ4yMdvr+HQ055Y42VWYBnOFXufoKDIBMs WDuZSw9MAj/EUxFb
7PN9s+0Yj+/jZuONuMbun3+30496rtp8zo2Y4AzCYZDE4L9D0/D6flWpRQBW dJzepIqRmNVK5LkH
BKknGPb1qzVV70L5n7iU+XIIzjbyTjGOfcfn9akFwPOEbRyKGJVXIGGIycev Y9scfSgCP7M/2rOV
+z58zb33/Tpjv67uaiWydZuUDp5pkyZ3HVt33MY4/XFWGufnwkMki7gpdAMA 5x65474/oanoAqwR
TR3c7mOLbK+dwc7sBQAMY9vXvUf2WZp8lI1XzN2VlYjGc/cIxk+vrz1qb7WC 2FhlZd+wOqgjOcHv
kY55Ixx9KkM8IkMZlj3jGV3DIzjHH4j86AInSc3qSKkZjVSuS5BwSpJxj29a Z9nmx5OI/K83zN+4
7vv78bcfh19/apo7mN5WjJ2OrlArEZbAByOeeCKd58PneT5sfm/3Nw3evSgC o9tOWnZY4d0kyOCX
IJVccH5f9n9T+Nn7NH5m/dLnOcec+Pyzj8Kcs8LruSWNhxyGB6nA/Xijz4fO 8nzY/N/ubhu9elAD
vLTdu2LnO7OO+MZ/LioHSc3qSKkZjVSuS5BwSpJxj29as1E9zAjMrzxqyDLA uAQPf8x+dAC/vvtH
/LPyNnvu3Z/LGKr/AGebHk4j8rzfM37ju+/vxtx+HX39qsefD53k+bH5v9zc N3r0oE8LOEEsZYkr
tDDOR1H4UAO8tN27Yuc7s474xn8uKdUfnw+d5Pmx+b/c3Dd69KT7TAGC+fHu LbAN4yW9PryKAKq2
TrNygdPNMmTO46tu+5jHH64oe2nLTsscO6SZHBLkEquOD8v+z+p/G358PneT 5sfm/wBzcN3r0pqX
du8zQrNGZFO0pu5z9KAIlgkVhGY4XjEpkDsSSCWJ4XHXnGc+/tSfZ5seTiPy vN8zfuO77+/G3H4d
ff2qx58PneT5sfm/3Nw3evSmS3cUThNwZ9yqVVhlckAEjPTkfnQBXltZynlo sLKs3nKzE5J37sdO
OpGefpzxM6Tm9SRUjMaqVyXIOCVJOMe3rVmoIbuKXau4JIxIEbMN3BIPAPsa AK7205adljh3STI4
JcglVxwfl/2f1P4xypJ5i2wjDBZxKHKN3fcecYGATzk9MY5q613bLu3XEQ2n a2XHB9D+R/KpqAIf
s0fmb90uc5x5z4/LOPwqTy03bti5zuzjvjGfy4qAXg81kaGRVRxGXO3GTjHf POR271L58PneT5sf
m/3Nw3evSgCB7aRpXA2eXJKkpYk5BXbxjHP3eue/tUjxyG9ikATy1RlJLHOS QemP9n170/z4fO8n
zY/N/ubhu9elSUAVYLYpeT3EkcYZz8rKxJ24AweP9kH8fzk+zR+Zv3S5znHn Pj8s4/CpqKAKP2N/
P3bIs+Zv8/P7zGc7enp8vXp+VXPLTdu2LnO7OO+MZ/LikSWORmVWBZDhl7j6 in0ARPGZJl3AGJRn
73Vs8ZGO31/Doab5LSTCSVgAh+RUyD17nv0HHT68Gp6KACiiigAooooAKKKK ACiiigAooooAKKKK
ACiiigAooooAKKKKAGyEBck4AIyT9az3EMjBmlOR0w4GKvyqrxlXUMD2IzVf 7Lb/APPCL/vgf5/z
+YBWlZWubfawOCe+f4aZJYLJIz+cRuOcbP8A69WzbwqMrDGD6hR/n/P5t8uP +4v5UXsXCcoO8SG9
OXU+uaKbdKF2BQAOen4UUiCxH90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51 fJPXse3U8dPpyakK
AzK+0ZVSN2eRkjjH4fpQ8scbKrMAznCr3P0FJ58P/PWP7+z7w+96fX2piG/Z o/M37pc5zjznx+Wc
fhR9mj8zfulznOPOfH5Zx+FK1zAsvlNPGJMgbC4zk9OKbLdxROE3Bn3KpVWG VyQASM9OR+dAEEti
73ZlDrtLhj6/wH/2mP8Avo+nMphka7WRljUIT8653MuDhSMdOc9eo6ek/mJ5 nl71343bc849cUxr
mBZfKaeMSZA2FxnJ6cUAMSOaJikflmIuX3MTuGTkjHfqecjr3xzYqMzwiQxm WPeMZXcMjOMcfiPz
psdzG8rRk7HVygViMtgA5HPPBFAEDWsjz+Y0durbw3nICHCg8DpzkDB5HXp6 uWCRWEZjheMSmQOx
JIJYnhcdecZz7+1T+fD53k+bH5v9zcN3r0oWeF13JLGw45DA9TgfrxQBUe2n LTsscO6SZHBLkEqu
OD8v+z+p/EWydZuUDp5pkyZ3HVt33MY4/XFW/Ph87yfNj83+5uG716VJQBlt p8zo2Y4AzCYZDE4L
9D0/D6flT5bKcuSmziUSAmVgG+bONo4H15zjPU8XfPh/56x/f2feH3vT6+1C zwuu5JY2HHIYHqcD
9eKAJKzJUk8xbYRhgs4lDlG7vuPOMDAJ5yemMc1fMoFwsJVsshcNxjggEfqK BPCzhBLGWJK7Qwzk
dR+FAFRbJ1m5QOnmmTJncdW3fcxjj9cUPbTlp2WOHdJMjglyCVXHB+X/AGf1 P42muYFl8pp4xJkD
YXGcnpxT/MTzPL3rvxu255x64oApLZOs3KB080yZM7jq277mMcfripYIpo7u dzHFtlfO4Od2AoAG
Me3r3qbz4f8AnrH9/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oApy2U5clNnEo kBMrAN82cbRwPrzn
Gep4srHNHcSFPLKSOHLEnI4Axjv0657+3Ky3cUThNwZ9yqVVhlckAEjPTkfn S/a7bzPL+0Rb87du
8Zz6YoArLZOs3KB080yZM7jq277mMcfriiW1nKeWiwsqzecrMTknfux046kZ 5+nPEr3yLcGHypSR
IseQvGSM/oOtSR3MbytGTsdXKBWIy2ADkc88EUATVQitZwnlusKq03nMyk5B 37sdOegGePpxzZS7
t3maFZozIp2lN3OfpQl3bvM0KzRmRTtKbuc/SgCBo99+YwH8skSyZQ4LLjHP v8p4/ue5q7UYnhZw
gljLEldoYZyOo/CneYnmeXvXfjdtzzj1xQBWitT9qmlmUYZwyASMRwAOV6Z4 z3/SoZbKcuSmziUS
AmVgG+bONo4H15zjPU8XXl2zRxgZL5J56Ad/zIH40PLtmjjAyXyTz0A7/mQP xoAqLZOs3KB080yZ
M7jq277mMcfrir9Qtd2y7t1xENp2tlxwfQ/kfyoa7tl3briIbTtbLjg+h/I/ lQAfZo/M37pc5zjz
nx+WcfhR9mj8zfulznOPOfH5Zx+FDXdsu7dcRDadrZccH0P5H8qmoAg8lpJh JKwAQ/IqZB69z36D
jp9eDU9Qtd2y7t1xENp2tlxwfQ/kfyoFwPOEbRyKGJVXIGGIycevY9scfSgC aiio/Ph87yfNj83+
5uG716UASUVF9pgDBfPj3FtgG8ZLen15FD3MCMyvPGrIMsC4BA9/zH50AS0V G8u2aOMDJfJPPQDv
+ZA/Gmi4HnCNo5FDEqrkDDEZOPXse2OPpQBNRVf7Wu7/AFcnl79nmcbc5xjr nrx0/Sj7Wu7/AFcn
l79nmcbc5xjrnrx0/SgCxRUX2hPtPkYfftLZKkDAx379e1K8u2aOMDJfJPPQ Dv8AmQPxoAkoqq96
Edk8iUsrhQo25bOcEc9OP5+hxHJqkUczxGKUusix4G3ktkjHPtQBeoqKGfzZ JU8t18ptpLYwTjPG
D6EfnTPtYLYWGVl37A6qCM5we+RjnkjHH0oAsUVGZ4RIYzLHvGMruGRnGOPx H502O5jeVoydjq5Q
KxGWwAcjnngigCaio/Ph87yfNj83+5uG716ULPC67kljYcchgepwP14oAkoq Pz4fO8nzY/N/ubhu
9elQvfItwYfKlJEix5C8ZIz+g60AWH+6aj/z/n/P/wBeR/umo/8AP+f8/wD1 wBr/AHT/AJ/z/n8Y
6kf7p/z/AJ/z+MdIZWu+qfj/AEoou+qfj/SigRPH90/7x/nTqbH90/7x/nTq BkvktHMZImBDn51f
JPXse3U8dPpyai+zzfbPtGI/v42bjjbjG7p9/t9OPerHnw+d5Pmx+b/c3Dd6 9KDKBcLCVbLIXDcY
4IBH6imIq/ZZmnyUjVfM3ZWViMZz9wjGT6+vPWkltZynlosLKs3nKzE5J37s dOOpGefpzxb8+Hzv
J82Pzf7m4bvXpQs8LruSWNhxyGB6nA/XigBvlv8AbPM2RbPL27sfPnPTPp/W q/2WZp8lI1XzN2Vl
YjGc/cIxk+vrz1q158PneT5sfm/3Nw3evSgTws4QSxliSu0MM5HUfhQBAsEi sIzHC8YlMgdiSQSx
PC4684zn39qje2nLTsscO6SZHBLkEquOD8v+z+p/Gyl3bvM0KzRmRTtKbuc/ So/to89ohBKSr7SR
t9ucZzj5h270ARLZOs3KB080yZM7jq277mMcfriom0+Z0bMcAZhMMhicF+h6 fh9PyrQ8+HzvJ82P
zf7m4bvXpSfaYAwXz49xbYBvGS3p9eRQBTlspy5KbOJRICZWAb5s42jgfXnO M9Txo1Gs8LruSWNh
xyGB6nA/Xio1u1MzxtHIgV9m9sbSeCBwe+R1+nXigCP7PN9s+0Yj+/jZuONu Mbun3+30496rtp8z
o2Y4AzCYZDE4L9D0/D6flWh58PneT5sfm/3Nw3evSoX1C3W4WBXV3JwQHX5T nHc/oMmgBXSc3qSK
kZjVSuS5BwSpJxj29ahe2nLTsscO6SZHBLkEquOD8v8As/qfxt+fD53k+bH5 v9zcN3r0o8+H/nrH
9/Z94fe9Pr7UAVfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVjy3+2eZsi2eXt3Y+ fOemfT+tOMoFwsJV
sshcNxjggEfqKal3bvM0KzRmRTtKbuc/SgCH7PN9s+0Yj+/jZuONuMbun3+3 0496b9lmafJSNV8z
dlZWIxnP3CMZPr689asfa7bzPL+0Rb87du8Zz6YqN75FuDD5UpIkWPIXjJGf 0HWgCKW1nKeWiwsq
zecrMTknfux046kZ5+nPFn7NH5m/dLnOcec+Pyzj8KV7mBGZXnjVkGWBcAge /wCY/Ol8+H/nrH9/
Z94fe9Pr7UAO8tN27Yuc7s474xn8uKpPbTlp2WOHdJMjglyCVXHB+X/Z/U/j b8+HzvJ82Pzf7m4b
vXpQZQLhYSrZZC4bjHBAI/UUARrHNHcSFPLKSOHLEnI4Axjv0657+3Isc0dx IU8spI4csScjgDGO
/Trnv7cyCeMzmEMpcDJAYZHTqOveoX1C3W4WBXV3JwQHX5TnHc/oMmgCBI3m u7kCIKhmRjIwIJCh
eBxyMqe/f87flv8AbPM2RbPL27sfPnPTPp/WnCeMzmEMpcDJAYZHTqOvejz4 fO8nzY/N/ubhu9el
ADYUbzJZZBhnO0D0UZx/U/jjtRCjeZLLIMM52geijOP6n8cdqSW7iicJuDPu VSqsMrkgAkZ6cj86
Y98i3Bh8qUkSLHkLxkjP6DrQAySzke5LiQCNnVyOeo29v+Af+PH05JLOR7ku JAI2dXI56jb2/wCA
f+PH05tJLHIzKrAshwy9x9RT6AKUlnI9yXEgEbOrkc9Rt7f8A/8AHj6c2f33 2j/ln5Gz33bs/ljF
SUUAUpLOR7kuJAI2dXI56jb2/wCAf+PH05kMMjXayMsahCfnXO5lwcKRjpzn r1HT0s0UAR/vvtH/
ACz8jZ77t2fyxiq/2ebHk4j8rzfM37ju+/vxtx+HX39quUUAVYIpo7udzHFt lfO4Od2AoAGMe3r3
qtKknmLbCMMFnEoco3d9x5xgYBPOT0xjmtOigCGFG8yWWQYZztA9FGcf1P44 7VGiXP2ou6xFckbt
5JCdgBjjtnn+mLVFAFP7PNjycR+V5vmb9x3ff3424/Dr7+1H2ebHk4j8rzfM 37ju+/vxtx+HX39q
uUUAVnSc3qSKkZjVSuS5BwSpJxj29afCjeZLLIMM52geijOP6n8cdqmooApy R3ZnMqiLKnagLnGw
9c/L1OB+Q98xy2k7SSyBIixlV0JkI+Ubcg8d9g/P89CigCmI7tZpSgiCySq+ 7echRtBGNvcD170j
Wsjz+Y0durbw3nICHCg8DpzkDB5HXp63aKAKiwSKwjMcLxiUyB2JJBLE8Ljr zjOff2qN7actOyxw
7pJkcEuQSq44Py/7P6n8b9FAFBbJ1m5QOnmmTJncdW3fcxjj9cVE2nzOjZjg DMJhkMTgv0PT8Pp+
ValFAGdLZTlyU2cSiQEysA3zZxtHA+vOcZ6ni/5abt2xc53Zx3xjP5cU6igB r/dNR/5/z/n/AOvI
/wB01H/n/P8An/64A1/un/P+f8/jHUj/AHT/AJ/z/n8Y6Qytd9U/H+lFF31T 8f6UUCJ4/un/AHj/
ADp1Nj+6f94/zp1Axi2TrNygdPNMmTO46tu+5jHH64qZ0nN6kipGY1UrkuQc EqScY9vWrNMeWONl
VmAZzhV7n6CmIprZOs3KB080yZM7jq277mMcfriom0+Z0bMcAZhMMhicF+h6 fh9PyrQ8+H/nrH9/
Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oAqrZOs3KB080yZM7jq277mMcfrih7 actOyxw7pJkcEuQS
q44Py/7P6n8bEt3FE4TcGfcqlVYZXJABIz05H51L5ieZ5e9d+N23POPXFAEK xzR3EhTyykjhyxJy
OAMY79Oue/ty2C2KXk9xJHGGc/KysSduAMHj/ZB/H85vPh87yfNj83+5uG71 6UGUC4WEq2WQuG4x
wQCP1FAFf7PNjycR+V5vmb9x3ff3424/Dr7+1Ogimju53McW2V87g53YCgAY x7evepvPh87yfNj8
3+5uG716ULPC67kljYcchgepwP14oAz20+Z0bMcAZhMMhicF+h6fh9PyqwLe ZppfMEaxPKsmVYlv
l24GMcfdB/T3qx58PneT5sfm/wBzcN3r0oE8LOEEsZYkrtDDOR1H4UAVFsnW blA6eaZMmdx1bd9z
GOP1xUqpci8eXy4tjBU/1hyACecbffpUiXdu8zQrNGZFO0pu5z9KmoAzpbKc uSmziUSAmVgG+bON
o4H15zjPU8ST205aTyvLKvKkvzEg5Xb8vT/Z6/hjvVkTws4QSxliSu0MM5HU fhR58PneT5sfm/3N
w3evSgCJ0nN6kipGY1UrkuQcEqScY9vWlWOaO4kKeWUkcOWJORwBjHfp1z39 uZFnhddySxsOOQwP
U4H68UefD53k+bH5v9zcN3r0oAb9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd 8Yz+XFR/a7bzPL+0
Rb87du8Zz6YqN75FuDD5UpIkWPIXjJGf0HWgCvcxSxRqpjV41uBIGVWZuX3H gDjAJ5z296lntpy0
nleWVeVJfmJByu35en+z1/DHepmufnwkMki7gpdAMA5x65474/oaf58PneT5 sfm/3Nw3evSgClLZ
TlyU2cSiQEysA3zZxtHA+vOcZ6niw6Tm9SRUjMaqVyXIOCVJOMe3rUqzwuu5 JY2HHIYHqcD9eKFn
hddySxsOOQwPU4H68UAROk5vUkVIzGqlclyDglSTjHt60ipci8eXy4tjBU/1 hyACecbffpU3nw+d
5Pmx+b/c3Dd69KBPCzhBLGWJK7QwzkdR+FAETpOb1JFSMxqpXJcg4JUk4x7e tQrZOs3KB080yZM7
jq277mMcfrirUM/mySp5br5TbSWxgnGeMH0I/Ol8+HzvJ82Pzf7m4bvXpQBU ltZynlosLKs3nKzE
5J37sdOOpGefpzxd8tN27Yuc7s474xn8uKY9zAjMrzxqyDLAuAQPf8x+dKJ4 zOYQylwMkBhkdOo6
96AGeS0kwklYAIfkVMg9e579Bx0+vBqeoxPCzhBLGWJK7QwzkdR+FQvfItwY fKlJEix5C8ZIz+g6
0AWqKYkscjMqsCyHDL3H1FPoAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKK
KACiiigBr/dNR/5/z/n/AOvI/wB01H/n/P8An/64A1/un/P+f8/jHUj/AHT/ AJ/z/n8Y6Qytd9U/
H+lFF31T8f6UUCJ4/un/AHj/ADp1Nj+6f94/zp1Ay5UHktHMZImBDn51fJPX se3U8dPpyanopiKf
2eb7Z9oxH9/GzccbcY3dPv8Ab6ce9N+yzNPkpGq+ZuysrEYzn7hGMn19eetW 3ljjZVZgGc4Ve5+g
pPPh/wCesf39n3h970+vtQBUltZynlosLKs3nKzE5J37sdOOpGefpzxZ8t/t nmbItnl7d2Pnznpn
0/rStcwLL5TTxiTIGwuM5PTimy3cUThNwZ9yqVVhlckAEjPTkfnQBXWydZuU Dp5pkyZ3HVt33MY4
/XFTOk5vUkVIzGqlclyDglSTjHt61P5ieZ5e9d+N23POPXFNM8IkMZlj3jGV 3DIzjHH4j86AKi2T
rNygdPNMmTO46tu+5jHH64qJtPmdGzHAGYTDIYnBfoen4fT8q0PPh87yfNj8 3+5uG716ULPC67kl
jYcchgepwP14oAqLZOs3KB080yZM7jq277mMcfrih7actOyxw7pJkcEuQSq4 4Py/7P6n8bYnhZwg
ljLEldoYZyOo/CgygXCwlWyyFw3GOCAR+ooAjWOaO4kKeWUkcOWJORwBjHfp 1z39ubFR+fD53k+b
H5v9zcN3r0o8+H/nrH9/Z94fe9Pr7UAVHtpy07LHDukmRwS5BKrjg/L/ALP6 n8Wy2U5clNnEokBM
rAN82cbRwPrznGep4me+KOU+yXDEBiMBfmCnBIGc9x9ala7tl3briIbTtbLj g+h/I/lQBRbT5nRs
xwBmEwyGJwX6Hp+H0/KpVsnWblA6eaZMmdx1bd9zGOP1xVsTws4QSxliSu0M M5HUfhR58PneT5sf
m/3Nw3evSgBv2aPzN+6XOc4858flnH4VJ5abt2xc53Zx3xjP5cUiSxyMyqwL IcMvcfUU+gCukc0T
FI/LMRcvuYncMnJGO/U85HXvjmP7PNjycR+V5vmb9x3ff3424/Dr7+1XKKAM ttPmdGzHAGYTDIYn
Bfoen4fT8qG0+Z0bMcAZhMMhicF+h6fh9PyrUooAp/Z5seTiPyvN8zfuO77+ /G3H4dff2pj205ad
ljh3STI4JcglVxwfl/2f1P436KAKYju1mlKCILJKr7t5yFG0EY29wPXvR9nm x5OI/K83zN+47vv7
8bcfh19/arlFAGZKknmLbCMMFnEoco3d9x5xgYBPOT0xjmrTpOb1JFSMxqpX Jcg4JUk4x7etWaKA
KD205adljh3STI4JcglVxwfl/wBn9T+N3y03bti5zuzjvjGfy4p1FAEHktJM JJWACH5FTIPXue/Q
cdPrwanoooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigBr/AHTU
f+f8/wCf/ryP901H/n/P+f8A64A1/un/AD/n/P4x1I/3T/n/AD/n8Y6Qytd9 U/H+lFF31T8f6UUC
J4/un/eP86dTY/un/eP86dQMuUUUUxEHktHMZImBDn51fJPXse3U8dPpyai+ zzfbPtGI/v42bjjb
jG7p9/t9OPerlMeWONlVmAZzhV7n6CgCp9lmafJSNV8zdlZWIxnP3CMZPr68 9aSW1nKeWiwsqzec
rMTknfux046kZ5+nPFvz4f8AnrH9/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04o ATy3+2eZsi2eXt3Y
+fOemfT+tRLBIrCMxwvGJTIHYkkEsTwuOvOM59/apJbuKJwm4M+5VKqwyuSA CRnpyPzqXzE8zy96
78btueceuKAKv2ebHk4j8rzfM37ju+/vxtx+HX39qrtp8zo2Y4AzCYZDE4L9 D0/D6flV9rmBZfKa
eMSZA2FxnJ6cUvnw+d5Pmx+b/c3Dd69KAKSRvNd3IEQVDMjGRgQSFC8DjkZU 9+/52HSc3qSKkZjV
SuS5BwSpJxj29ake5gRmV541ZBlgXAIHv+Y/Ol8+H/nrH9/Z94fe9Pr7UAVF snWblA6eaZMmdx1b
d9zGOP1xT/s832z7RiP7+Nm4424xu6ff7fTj3qx58PneT5sfm/3Nw3evSgTw s4QSxliSu0MM5HUf
hQAx45DexSAJ5aoykljnJIPTH+z696haPffmMB/LJEsmUOCy4xz7/KeP7nua smeESGMyx7xjK7hk
Zxjj8R+dHnw+d5Pmx+b/AHNw3evSgCkkbzXdyBEFQzIxkYEEhQvA45GVPfv+ blsnWblA6eaZMmdx
1bd9zGOP1xVxJY5GZVYFkOGXuPqKfQBB5LSTCSVgAh+RUyD17nv0HHT68Gp6 KKACiiigAooooAKK
KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooo
oAKKKKAGv901H/n/AD/n/wCvI/3TUf8An/P+f/rgDX+6f8/5/wA/jHUj/dP+ f8/5/GOkMrXfVPx/
pRRd9U/H+lFAieP7p/3j/OnVSaJmlYlpfmJ2ojkZ68+39T265WFf3yENKpxu 2PIWyOeR/h9D65NC
uV2ubFFFFMkKg8lo5jJEwIc/Or5J69j26njp9OTU9FAFP7PN9s+0Yj+/jZuO NuMbun3+30496b9l
mafJSNV8zdlZWIxnP3CMZPr689a59Li9dWZZ5yqjLHecD8aXzr//AJ63P3d/ 3m+76/T3rTkJ5jel
tZynlosLKs3nKzE5J37sdOOpGefpzxZ8t/tnmbItnl7d2Pnznpn0/rXMiXUW j8xXujHjO4FsfnTo
3v5EL/aJ1TaSGZmw2ASQD68H8qOTzDmNz7LM0+Skar5m7KysRjOfuEYyfX15 60i2TrNygdPNMmTO
46tu+5jHH64rA+03vl+Z59xszjdvbGfTNL51/wCV5vm3Pl/39zY/OjkDmNu5 ilijVTGrxrcCQMqs
zcvuPAHGATznt71LPbTlpPK8sq8qS/MSDldvy9P9nr+GO9c+Li7MBlF3LgMF K+Y2eQSD+ho86/8A
K83zbny/7+5sfnRyBzG8tk6zcoHTzTJkzuOrbvuYxx+uKHtpy07LHDukmRwS 5BKrjg/L/s/qfxwW
mv0OGluVPPBZh0GT+nNHnX/leb5tz5f9/c2Pzo5A5jolgkVhGY4XjEpkDsSS CWJ4XHXnGc+/tUa2
TrNygdPNMmTO46tu+5jHH64rBM1+E3mW5CgA5LNjB6GnM+opEJWkuRGRkNub GKOTzDmOk8lpJhJK
wAQ/IqZB69z36Djp9eDU9cf9tuv+fmb/AL+Gnma/CbzLchQAclmxg9DR7MOY 62iuS86/8rzfNufL
/v7mx+dDTX6HDS3Knngsw6DJ/TmjkDmOtorkvOv/ACvN8258v+/ubH507fqX l+Zuu9mM7stjHrmj
k8w5jq6K5dTetAJftrAFGkwZWzgHH6npUXnX/wDz1ufu7/vN931+nvRyeYcx 1tFcmJdRaPzFe6Me
M7gWx+dJ51/5Xm+bc+X/AH9zY/Ojk8w5jraK5PzdR2lt91gLuJy3T1+lIZr8 JvMtyFAByWbGD0NH
J5hzHW0VyXnX/leb5tz5f9/c2Pzoaa/Q4aW5U88FmHQZP6c0cgcx1tFcl51/ 5Xm+bc+X/f3Nj86l
U3rQCX7awBRpMGVs4Bx+p6UcnmHMdRRXH/bbr/n5m/7+GpPN1HaW33WAu4nL dPX6UezDmOsorkvO
v/K83zbny/7+5sfnUqjUWgMxnuFQDIJL/MMZ7fzNHJ5hzHUUVym/UvL8zdd7 MZ3ZbGPXNPU3rQCX
7awBRpMGVs4Bx+p6UuTzC51FFcl51/8A89bn7u/7zfd9fp70ol1Fo/MV7ox4 zuBbH50+TzDmOsor
kvOv/K83zbny/wC/ubH50vm6jtLb7rAXcTlunr9KOTzDmOsorkjNfhN5luQo AOSzYweho86/8rzf
NufL/v7mx+dHIHMdbRXJNNfocNLcqeeCzDoMn9OaPOv/ACvN8258v+/ubH50 cgcx1tFcvuu/LVhf
MxZC4QO+cDOe2OMHv2qLzr/yvN8258v+/ubH50cgcx1tFcuo1FoDMZ7hUAyC S/zDGe38zQpvWgEv
21gCjSYMrZwDj9T0pcnmFzqKK5JLm6aKSQ3UwCYA+c8k9uvoCfwpHuL1FVmn nCsMqd5wfxp8gcx1
1FFFZlBRRRQA1/umo/8AP+f8/wD15H+6aj/z/n/P/wBcAa/3T/n/AD/n8Y6k f7p/z/n/AD+Nczxg
kZPHH3TSGk3sRXfVPx/pRRdEMIyOhBI/SigBu7MxdFLyR5AQd/mzn9enXp60 Iha8Ezh03ZIVhyT3
/D3+lOMcJ5aBJJGLYG0ZPJ70sAg3jFukUmNy8DkeoNLS5peXKalFFFUZBRRR QBx+/wAyIJIhyo+Q
pgfmO/Qc9frxUvmx/ZfI+f7md20Z3Zzt6/d/rzXQyQWSMqvDAGc/KuwZb8KT y9P/ALlt9/Z0X73p
9fatOdBZGB5yCHALsxj24Mag5xj7+c49vTApYpog+9jMC8XlFVAwBt25689j jj/HdZNOWXymW1Eh
I+Qhc57cU2UWEb7PIgdyyhlVVyuSACR6cj86OdBZHOZH2Ty8y79+7bn5MY64 9asG5DRDBKP5ezAh
U/w4+9nPP9a6D7PZeZ5fkwb8btu0Zx64pvl6f53k7Lbzf7mF3evSjnQWRzie V9keMtJ5jENgIMcA
8Zz71KbkNEMEo/l7MCFT/Dj72c8/1reMNr9oEJtI8spcNsXBwQD+PIo8vT/O 8nZbeb/cwu716Uc6
CyMVbuNXXa0xUGIgFQMhOo6/j9fzqM3IaIYJR/L2YEKn+HH3s55/rW8senyL uVLZgccgKc5OB+uR
R5en+d5Oy283+5hd3r0o5kFkYKTRbYFZpsJE6kBB1bPI5/2v0HrUJMckEYYP vRCoAAweSc57demP
510gj09n2BLYsWI24XJI6j6imqNNkmaFVtjIGwU2rnP070c4WRy21vSrqTRb YFZpsJE6kBB1bPI5
/wBr9B610X2O1/59of8AvgVGI9PZ9gS2LFiNuFySOo+oocwtEw4rmIKA4fmM oQI1JHy4zuPJ+nHX
83Ldxq67WmKgxEAqBkJ1HX8fr+dbXl6f53k7Lbzf7mF3evShY9PkXcqWzA45 AU5ycD9cijmQWRgm
5DRDBKP5ezAhU/w4+9nPP9ar+dL5ezZHjGP9UufzxnNdN5en+d5Oy283+5hd 3r0puNM8zy8Wm/dj
b8uc+mPWjnQWRzGZMYy2MYxntnOPz5qzDLEFj8wSArG0Y2gHg7uev+10/XtW 07WS3Bh+w7j5ix5E
QIJIz+g61MI9PZ9gS2LFiNuFySOo+oo5wsjA85BDgF2Yx7cGNQc4x9/Oce3p gUpuQ0QwSj+XswIV
P8OPvZzz/Wt7y9P87ydlt5v9zC7vXpSMmnLL5TLaiQkfIQuc9uKOdBZHPStH JbQory7o0wFKjbkn
J5z7+nYVIk0W2BWabCROpAQdWzyOf9r9B61usmnLL5TLaiQkfIQuc9uKRhpi 7twtBtbDZ28Hng+/
Bo5wsjFiuYgoDh+YyhAjUkfLjO48n6cdfzct3GrrtaYqDEQCoGQnUdfx+v51 teXp/neTstvN/uYX
d69KQpp27aVtdxbbjC5Len15/WjmQWRhG5DRDBKP5ezAhU/w4+9nPP8AWqmZ MYy2MYxntnOPz5rp
pRYRvs8iB3LKGVVXK5IAJHpyPzpjtZLcGH7DuPmLHkRAgkjP6DrRzoLI5ra3 pVmVo5LaFFeXdGmA
pUbck5POff07Cum+x2v/AD7Q/wDfAqIpp27aVtdxbbjC5Len15/WnzhaJhG5 DRDBKP5ezAhU/wAO
PvZzz/Woz5LWiR7pd6ln/wBWMEkDjr7frXReXp/neTstvN/uYXd69KheTThc CAQwO5bDABODnHOT
yevAyaXOgsjn/Ol8vZsjxjH+qXP54zmmZkxjLYxjGe2c4/PmunxpnmeXi037 sbflzn0x61G7WS3B
h+w7j5ix5EQIJIz+g60+dBZGLDLEFj8wSArG0Y2gHg7uev8AtdP17UvnIIcA uzGPbgxqDnGPv5zj
29MCt8R6ez7AlsWLEbcLkkdR9RR5en+d5Oy283+5hd3r0pc6CyME3IaIYJR/ L2YEKn+HH3s55/rU
crRyW0KK8u6NMBSo25Jyec+/p2FdCyacsvlMtqJCR8hC5z24oZNOWXymW1Eh I+Qhc57cUc6CyMJJ
otsCs02EidSAg6tnkc/7X6D1p0VzEFAcPzGUIEakj5cZ3Hk/Tjr+e0w0xd24 Wg2ths7eDzwffg07
y9P87ydlt5v9zC7vXpRzoLIxVu41ddrTFQYiAVAyE6jr+P1/OozchohglH8v ZgQqf4cfeznn+tbp
TTt20ra7i23GFyW9Prz+tNlFhG+zyIHcsoZVVcrkgAkenI/OjmQWRh+eggii AYjyyrNsAYZJPBzn
vjHGR9aU3IaIYJR/L2YEKn+HH3s55/rWz/onmujWIVVkCM5RMZOMd885HbvU vl6f53k7Lbzf7mF3
evSjnQWRzp8lrRI90u9Sz/6sYJIHHX2/WoMyYxlsYxjPbOcfnzXRvJpwuBAI YHcthgAnBzjnJ5PX
gZNDtZLcGH7DuPmLHkRAgkjP6DrRzhaJz8pzHFHHyqjcT6scZ/oPw96UPsi2 RISXHzF8H8h269ev
0zXSvBarNHGLWFi+SfkHAHfp6kD8aVILKRnVYYCyn5l2DI+oo5wsi1RRRWYB RRRQA1/umo/8/wCf
8/8A15H+6aj/AM/5/wA//XAGv90/5/z/AJ/GqbdSSd7DJz2/wq0/3T/n/P8A n8apuFBI2McHHb/G
guPN0I7lQqxqOgBH8qKLlgyxsOhBP8qKRL3HMrBhMil2TICj13Eg02OJ5Lo3 Dq6Drhxzk/0qxH90
/wC8f506lYvndrFyiiiqMwoopjyxxsqswDOcKvc/QUAVztimaSOVcFgJFckn qeh7Ac8dOD05NREE
XhuC0XEm0puONuMbun3+CM9MAjPGatMypNDGqAkg9ONqjr+u0Y9/agS24xiS IYbyxgjg/wB36+1B
XulMofPJYxIqy5JWViOufuEYzwcnscnqKSZH2GNTAVjn80M7HOd+7HTjuM89 D74uGe2SVYjLCsg+
UJuAIz2x+VNkuYIXVBtZwVTahGUBIAyM9OR+lAe6IXUXhkPk7Amwtj5856Z/ u8H8QfSqwhVJm3bX
QTbyTcOMZbd9zGOOfyPTmr4MQkEYKBwuQoxkL9PSmGe2SVYjLCsg+UJuAIz2 x+VAe6QySP8AbVkH
k+XGChJcg8kEnGO209/Xpg1CIVSZt210E28k3DjGW3fcxjjn8j05q6JbcTCE SRCUDAQEbgOvSkae
2iYq0sKNGvILAFRx+Q6fpQHumc9sSj7hbqx84E7icF+h+72wQfYH0IqUQqkz btroJt5JuHGMtu+5
jHHP5HpzV0S24xiSIYbyxgjg/wB36+1AltxMIRJEJQMBARuA69KA90pSo+64 YCDc06NkuQcLjg/L
/sn2GT6VOHMVxKVeLY8gZmYnK8AEAY5+6ec8c+lTLLb71RJItwyiqCM8dQP0 4o823WTyxJEHQAbc
jKg4xx+X6UB7o4zxDOXHBwf8/gfyPpVCVH3XDAQbmnRslyDhccH5f9k+wyfS roltxMIRJEJQMBAR
uA69KWN4WYrGV3R/KVxgr+HYcfjQHumfNC29irx/LMHyZWAPzZxtHA6HnnoS ec4Y9sSj7hbqx84E
7icF+h+72wQfYH0IrWCqMYUDAwMDoKAqjGFAwMDA6CgPdM4QqkzbtroJt5Ju HGMtu+5jHHP5HpzV
kpbiQuZZMhskec+M/TOMcH24PpVgKoxhQMDAwOgoCqMYUDAwMDoKA90jL24Y sdmQ2Scd8Yz+QIz7
H0qjkPdXIwiIZkYyNkMduOAMcjKt345P10gqjGFAwMDA6CgKoxhQMDAwOgoD 3TMmhbexV4/lmD5M
rAH5s42jgdDzz0JPOcPKHzyWMSKsuSVlYjrn7hGM8HJ7HJ6itAKoxhQMDAwO goCqMYUDAwMDoKA9
0zyh88ljEirLklZWI65+4RjPByexyeopZYs3Lv56iMyKzDJ6jb27/wCr6+7e nN8KoxhQMDAwOgoC
qMYUDAwMDoKA90okEAwlovKE3mF9x3ff34249iM57E9sU6FjFd3DsIQsknLB zuAC4HG3noe/HPoa
uBVGMKBgYGB0FAVRjCgYGBgdBQHumdMj7DGpgKxz+aGdjnO/djpx3Geeh98X S9uGLHZkNknHfGM/
kCM+x9KkCqMYUDAwMDoKAqjGFAwMDA6CgPdGmeIZy44OD/n8D+R9KqwsYru4 dhCFkk5YOdwAXA42
89D3459DVwKoxhQMDAwOgoCqMYUDAwMDoKA90zhCqTNu2ugm3km4cYy277mM cc/kenNSiSRLySUi
HYdqH94cgAtzjb7n8jzVwKoxhQMDAwOgoCqMYUDAwMDoKA90rlLcSFzLJkNk jznxn6Zxjg+3B9Kk
L24YsdmQ2Scd8Yz+QIz7H0qQKoxhQMDAwOgoCqMYUDAwMDoKA90zch7q5GER DMjGRshjtxwBjkZV
u/HJ+qTQtvYq8fyzB8mVgD82cbRwOh556EnnONMKoxhQMDAwOgoCqMYUDAwM DoKA90zyh88ljEir
LklZWI65+4RjPByexyeooKHzyWMSKsuSVlYjrn7hGM8HJ7HJ6itAKoxhQMDA wOgoCqMYUDAwMDoK
A90oSxZuXfz1EZkVmGT1G3t3/wBX1929OVIIBhLReUJvML7ju+/vxtx7EZz2 J7Yq8FUYwoGBgYHQ
UBVGMKBgYGB0FAe6U4WMV3cOwhCyScsHO4ALgcbeeh78c+hqKZH2GNTAVjn8 0M7HOd+7HTjuM89D
740QqjGFAwMDA6CgKoxhQMDAwOgoD3TPMX+kTzM6AiUMq+YxVsDGGGMfw5zz gj/ZpBCqTNu2ugm3
km4cYy277mMcc/kenNaIVRjCgYGBgdBQFUYwoGBgYHQUB7pTEkiXkkpEOw7U P7w5ABbnG33P5Hmr
Be3DFjsyGyTjvjGfyBGfY+lSBVGMKBgYGB0FAVRjCgYGBgdBQHuleJ0WSaWV gGLbcZ6KM4/9mPtk
jtSHa83mTSqBG2FVCQRz3PccdOnBznGRZCqMYUDAwMDoKAqjGFAwMDA6CgPd HUUUUEhRRRQA1/um
o/8AP+f8/wD15H+6aj/z/n/P/wBcAa/3T/n/AD/n8a5gjJJweefvGrD/AHT/ AJ/z/n8Y6Q02titd
AKIwOgBA/Sii76p+P9KKAJ4/un/eP86dTY/un/eP86dQBcooopiCoPJaOYyR MCHPzq+SevY9up46
fTk1I8scbKrMAznCr3P0FI8u2aOMDJfJPPQDv+ZA/GgBsKN5kssgwznaB6KM 4/qfxx2qH7PN9s+0
Yj+/jZuONuMbun3+30496sefD/z1j+/s+8Pven19qRrmBZfKaeMSZA2FxnJ6 cUAVvsszT5KRqvmb
srKxGM5+4RjJ9fXnrSS2s5Ty0WFlWbzlZick792OnHUjPP054sS3cUThNwZ9 yqVVhlckAEjPTkfn
UvmJ5nl71343bc849cUAR+W/2zzNkWzy9u7Hz5z0z6f1qv8AZZmnyUjVfM3Z WViMZz9wjGT6+vPW
rRnhEhjMse8Yyu4ZGcY4/EfnR58PneT5sfm/3Nw3evSgCotk6zcoHTzTJkzu OrbvuYxx+uKZcxSx
RqpjV41uBIGVWZuX3HgDjAJ5z296vLPC67kljYcchgepwP14oE8LOEEsZYkr tDDOR1H4UAVp7act
J5XllXlSX5iQcrt+Xp/s9fwx3pq2TrNygdPNMmTO46tu+5jHH64q2ZQLhYSr ZZC4bjHBAI/UUefD
53k+bH5v9zcN3r0oAqPbTlp2WOHdJMjglyCVXHB+X/Z/U/jIsEisIzHC8YlM gdiSQSxPC4684zn3
9qn8+H/nrH9/Z94fe9Pr7VA98Ucp9kuGIDEYC/MFOCQM57j60ARrZOs3KB08 0yZM7jq277mMcfri
rHktJMJJWACH5FTIPXue/QcdPrwaVru2XduuIhtO1suOD6H8j+VOE8LOEEsZ YkrtDDOR1H4UASUV
H58PneT5sfm/3Nw3evSlSWORmVWBZDhl7j6igB9FFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUANf 7pqP/P8An/P/ANeR
/umo/wDP+f8AP/1wBr/dP+f8/wCfxjqR/un/AD/n/P4x0hla76p+P9KKLvqn 4/0ooETx/dP+8f50
6mx/dP8AvH+dOoGXKKKY8scbKrMAznCr3P0FMRH5LRzGSJgQ5+dXyT17Ht1P HT6cmlhRvMllkGGc
7QPRRnH9T+OO1OeXbNHGBkvknnoB3/MgfjR58P8Az1j+/s+8Pven19qAK/2e b7Z9oxH9/GzccbcY
3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561Za5gWXymnjEmQNhcZyen FNlu4onCbgz7lUqr
DK5IAJGenI/OgCvLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/bPM2RbPL27 sfPnPTPp/WpPMTzP
L3rvxu255x64pvnw+d5Pmx+b/c3Dd69KAIFgkVhGY4XjEpkDsSSCWJ4XHXnG c+/tSfZ5seTiPyvN
8zfuO77+/G3H4dff2qwZQLhYSrZZC4bjHBAI/UUefD53k+bH5v8Ac3Dd69KA M9tPmdGzHAGYTDIY
nBfoen4fT8qekbzXdyBEFQzIxkYEEhQvA45GVPfv+d1Z4XXcksbDjkMD1OB+ vFHnw+d5Pmx+b/c3
Dd69KAInSc3qSKkZjVSuS5BwSpJxj29ahWydZuUDp5pkyZ3HVt33MY4/XFWx PCzhBLGWJK7Qwzkd
R+FNS7t3maFZozIp2lN3OfpQBD9nm+2faMR/fxs3HG3GN3T7/b6ce9SvHIb2 KQBPLVGUksc5JB6Y
/wBn171IkscjMqsCyHDL3H1FPoApNHvvzGA/lkiWTKHBZcY59/lPH9z3NRpG 813cgRBUMyMZGBBI
ULwOORlT37/no0UAUFsnWblA6eaZMmdx1bd9zGOP1xVjyWkmEkrABD8ipkHr 3PfoOOn14NT0UAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUANf7pqP/P8An/P/ANeR/umo/wDP+f8AP/1wBr/dP+f8 /wCfxjqR/un/AD/n
/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/dP8AvH+dOoGXKg8lo5jJ EwIc/Or5J69j26nj
p9OTU9MeWONlVmAZzhV7n6CmIZCjeZLLIMM52geijOP6n8cdqh+zzfbPtGI/ v42bjjbjG7p9/t9O
PerHnw/89Y/v7PvD73p9faka5gWXymnjEmQNhcZyenFAFb7LM0+Skar5m7Ky sRjOfuEYyfX1560k
trOU8tFhZVm85WYnJO/djpx1Izz9OeLEt3FE4TcGfcqlVYZXJABIz05H51L5 ieZ5e9d+N23POPXF
AEflv9s8zZFs8vbux8+c9M+n9arLZOs3KB080yZM7jq277mMcfrirfnw+d5P mx+b/c3Dd69KDKBc
LCVbLIXDcY4IBH6igCJ0nN6kipGY1UrkuQcEqScY9vWoVsnWblA6eaZMmdx1 bd9zGOP1xVvz4fO8
nzY/N/ubhu9elCzwuu5JY2HHIYHqcD9eKAM9tPmdGzHAGYTDIYnBfoen4fT8 qlWydZuUDp5pkyZ3
HVt33MY4/XFW/Ph87yfNj83+5uG716UCeFnCCWMsSV2hhnI6j8KAKj205adl jh3STI4JcglVxwfl
/wBn9T+M6xzR3EhTyykjhyxJyOAMY79Oue/ty5Lu3eZoVmjMinaU3c5+lTUA QeS0kwklYAIfkVMg
9e579Bx0+vBqeoxPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3Dd69KAJKKjWe F13JLGw45DA9Tgfr
xR58PneT5sfm/wBzcN3r0oAkoqH7XbeZ5f2iLfnbt3jOfTFRvfItwYfKlJEi x5C8ZIz+g60AWqKj
E8LOEEsZYkrtDDOR1H4UefD53k+bH5v9zcN3r0oAkoqJrmBZfKaeMSZA2Fxn J6cUNcwLL5TTxiTI
GwuM5PTigCWioWu7Zd264iG07Wy44PofyP5U7z4fO8nzY/N/ubhu9elAElFR faYAwXz49xbYBvGS
3p9eRTZbuKJwm4M+5VKqwyuSACRnpyPzoAnoqsLweayNDIqo4jLnbjJxjvnn I7d6l8+HzvJ82Pzf
7m4bvXpQBJRVV9Qt1uFgV1dycEB1+U5x3P6DJoe+Rbgw+VKSJFjyF4yRn9B1 oAtUUVCl3bvM0KzR
mRTtKbuc/SgCaioWu7Zd264iG07Wy44PofyP5U4Tws4QSxliSu0MM5HUfhQB JRUfnw+d5Pmx+b/c
3Dd69Kb9rtvM8v7RFvzt27xnPpigCaiqr3yLcGHypSRIseQvGSM/oOtTefD/ AM9Y/v7PvD73p9fa
gCSiomuYFl8pp4xJkDYXGcnpxTZbuKJwm4M+5VKqwyuSACRnpyPzoAnopvmJ 5nl71343bc849cUx
rmBZfKaeMSZA2FxnJ6cUAS0VCl3bvM0KzRmRTtKbuc/Sl+0wBgvnx7i2wDeM lvT68igCWioxPGZz
CGUuBkgMMjp1HXvQJ4WcIJYyxJXaGGcjqPwoAkoqJ7mBGZXnjVkGWBcAge/5 j86ie+Rbgw+VKSJF
jyF4yRn9B1oAtUVG8u2aOMDJfJPPQDv+ZA/GlSWORmVWBZDhl7j6igB9FFFA BRRRQA1/umo/8/5/
z/8AXkf7pqP/AD/n/P8A9cAa/wB0/wCf8/5/GOpH+6f8/wCf8/jHSGVrvqn4 /wBKKLvqn4/0ooET
x/dP+8f506mx/dP+8f506gZcqDyWjmMkTAhz86vknr2PbqeOn05NT0x5Y42V WYBnOFXufoKYit9n
m+2faMR/fxs3HG3GN3T7/b6ce9N+yzNPkpGq+ZuysrEYzn7hGMn19eetWvPh /wCesf39n3h970+v
tSNcwLL5TTxiTIGwuM5PTigCrLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/ AGzzNkWzy9u7Hz5z
0z6f1pJbuKJwm4M+5VKqwyuSACRnpyPzqXzE8zy9678btueceuKAKS2TrNyg dPNMmTO46tu+5jHH
64qZ0nN6kipGY1UrkuQcEqScY9vWpfPh87yfNj83+5uG716UGUC4WEq2WQuG 4xwQCP1FAFRbJ1m5
QOnmmTJncdW3fcxjj9cVE2nzOjZjgDMJhkMTgv0PT8Pp+VaHnw+d5Pmx+b/c 3Dd69KFnhddySxsO
OQwPU4H68UAVFsnWblA6eaZMmdx1bd9zGOP1xQ9tOWnZY4d0kyOCXIJVccH5 f9n9T+Nvz4fO8nzY
/N/ubhu9elAnhZwgljLEldoYZyOo/CgCNY5o7iQp5ZSRw5Yk5HAGMd+nXPf2 5sVCl3bvM0KzRmRT
tKbuc/SpqAKD205adljh3STI4JcglVxwfl/2f1P4tlspy5KbOJRICZWAb5s4 2jgfXnOM9TxdE8LO
EEsZYkrtDDOR1H4UefD53k+bH5v9zcN3r0oAz20+Z0bMcAZhMMhicF+h6fh9 PyqVbJ1m5QOnmmTJ
ncdW3fcxjj9cVbWeF13JLGw45DA9TgfrxR58PneT5sfm/wBzcN3r0oAb9mj8 zfulznOPOfH5Zx+F
SeWm7dsXOd2cd8Yz+XFR/a7bzPL+0Rb87du8Zz6YqN75FuDD5UpIkWPIXjJG f0HWgCBI3mu7kCIK
hmRjIwIJCheBxyMqe/f8yWynLkps4lEgJlYBvmzjaOB9ec4z1PF3z4f+esf3 9n3h970+vtSNcwLL
5TTxiTIGwuM5PTigCt9lmafJSNV8zdlZWIxnP3CMZPr689aPsszT5KRqvmbs rKxGM5+4RjJ9fXnr
Vrz4fO8nzY/N/ubhu9elJ9pgDBfPj3FtgG8ZLen15FAFeSzke5LiQCNnVyOe o29v+Af+PH05X7PN
jycR+V5vmb9x3ff3424/Dr7+1WBPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3 Dd69KAIYIpo7udzH
FtlfO4Od2AoAGMe3r3qKW1nKeWiwsqzecrMTknfux046kZ5+nPFtZ4XXcksb DjkMD1OB+vFHnw+d
5Pmx+b/c3Dd69KAKv2SU3E0x25MgdF8xirYAGGGMDpnPODj05RbJ1m5QOnmm TJncdW3fcxjj9cVM
LweayNDIqo4jLnbjJxjvnnI7d6l8+HzvJ82Pzf7m4bvXpQBCqXIvHl8uLYwV P9YcgAnnG336VY8t
N27Yuc7s474xn8uKrvqFutwsCuruTggOvynOO5/QZND3yLcGHypSRIseQvGS M/oOtAFqq6xzR3Eh
TyykjhyxJyOAMY79Oue/tzYqFLu3eZoVmjMinaU3c5+lAEDR778xgP5ZIlky hwWXGOff5Tx/c9zU
aRvNd3IEQVDMjGRgQSFC8DjkZU9+/wCdtru2XduuIhtO1suOD6H8j+VOE8LO EEsZYkrtDDOR1H4U
AVFsnWblA6eaZMmdx1bd9zGOP1xVn7NH5m/dLnOcec+Pyzj8Kd58PneT5sfm /wBzcN3r0pv2u28z
y/tEW/O3bvGc+mKAJPLTdu2LnO7OO+MZ/Liqv2eb7Z9oxH9/GzccbcY3dPv9 vpx70575FuDD5UpI
kWPIXjJGf0HWpvPh/wCesf39n3h970+vtQBV+yzNPkpGq+ZuysrEYzn7hGMn 19eetJLazlPLRYWV
ZvOVmJyTv3Y6cdSM8/Tni01zAsvlNPGJMgbC4zk9OKbLdxROE3Bn3KpVWGVy QASM9OR+dAC+W/2z
zNkWzy9u7Hz5z0z6f1qv9lmafJSNV8zdlZWIxnP3CMZPr689aueYnmeXvXfj dtzzj1xTGuYFl8pp
4xJkDYXGcnpxQAxY5o7iQp5ZSRw5Yk5HAGMd+nXPf25bBFNHdzuY4tsr53Bz uwFAAxj29e9SJd27
zNCs0ZkU7Sm7nP0pftMAYL58e4tsA3jJb0+vIoAjdJzepIqRmNVK5LkHBKkn GPb1qF7actOyxw7p
JkcEuQSq44Py/wCz+p/G2J4zOYQylwMkBhkdOo696BPCzhBLGWJK7QwzkdR+ FAFCVJPMW2EYYLOJ
Q5Ru77jzjAwCecnpjHNaPlpu3bFzndnHfGM/lxTHuYEZleeNWQZYFwCB7/mP zqJ75FuDD5UpIkWP
IXjJGf0HWgCSFG8yWWQYZztA9FGcf1P447UnktJMJJWACH5FTIPXue/QcdPr wae8u2aOMDJfJPPQ
Dv8AmQPxpUljkZlVgWQ4Ze4+ooAfRRRQAUUUUANf7pqP/P8An/P/ANeR/umo /wDP+f8AP/1wBr/d
P+f8/wCfxjqR/un/AD/n/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/ dP8AvH+dOoGXKg8l
o5jJEwIc/Or5J69j26njp9OTUjyxxsqswDOcKvc/QUjy7Zo4wMl8k89AO/5k D8aYiv8AZ5vtn2jE
f38bNxxtxjd0+/2+nHvTfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVrz4f8AnrH9 /Z94fe9Pr7UjXMCy
+U08YkyBsLjOT04oAqy2s5Ty0WFlWbzlZick792OnHUjPP054s+W/wBs8zZF s8vbux8+c9M+n9aS
W7iicJuDPuVSqsMrkgAkZ6cj86l8xPM8veu/G7bnnHrigCktk6zcoHTzTJkz uOrbvuYxx+uKmdJz
epIqRmNVK5LkHBKknGPb1qRrmBZfKaeMSZA2FxnJ6cUpnhEhjMse8Yyu4ZGc Y4/EfnQBUWydZuUD
p5pkyZ3HVt33MY4/XFRNp8zo2Y4AzCYZDE4L9D0/D6flV6O5jeVoydjq5QKx GWwAcjnnginefD53
k+bH5v8Ac3Dd69KAKi2TrNygdPNMmTO46tu+5jHH64oe2nLTsscO6SZHBLkE quOD8v8As/qfxtrP
C67kljYcchgepwP14o8+HzvJ82Pzf7m4bvXpQBGsc0dxIU8spI4csScjgDGO /Trnv7c2KYkscjMq
sCyHDL3H1FPoAoPbTlp2WOHdJMjglyCVXHB+X/Z/U/i2WynLkps4lEgJlYBv mzjaOB9ec4z1PGjR
QBltp8zo2Y4AzCYZDE4L9D0/D6flUq2TrNygdPNMmTO46tu+5jHH64q/RQBD 9mj8zfulznOPOfH5
Zx+FSeWm7dsXOd2cd8Yz+XFOooApT205aTyvLKvKkvzEg5Xb8vT/AGev4Y70 n2WZp8lI1XzN2VlY
jGc/cIxk+vrz1q9RQBQWydZuUDp5pkyZ3HVt33MY4/XFSwRTR3c7mOLbK+dw c7sBQAMY9vXvVqig
Cg9tOWnZY4d0kyOCXIJVccH5f9n9T+LZbKcuSmziUSAmVgG+bONo4H15zjPU 8aNFAGW2nzOjZjgD
MJhkMTgv0PT8Pp+VSrZOs3KB080yZM7jq277mMcfrir9FAFH7JKbiaY7cmQO i+YxVsADDDGB0znn
Bx6cotk6zcoHTzTJkzuOrbvuYxx+uKv0UAVVS5F48vlxbGCp/rDkAE842+/S rHlpu3bFzndnHfGM
/lxTqKACq6xzR3EhTyykjhyxJyOAMY79Oue/tzYooApNHvvzGA/lkiWTKHBZ cY59/lPH9z3NRpG8
13cgRBUMyMZGBBIULwOORlT37/no0UAUFsnWblA6eaZMmdx1bd9zGOP1xVn7 NH5m/dLnOcec+Pyz
j8KmooAb5abt2xc53Zx3xjP5cVV+zzfbPtGI/v42bjjbjG7p9/t9OPerlFAF H7LM0+Skar5m7Kys
RjOfuEYyfX1560ktrOU8tFhZVm85WYnJO/djpx1Izz9OeL9FAEPlv9s8zZFs 8vbux8+c9M+n9ar/
AGWZp8lI1XzN2VlYjGc/cIxk+vrz1q9RQBXWOaO4kKeWUkcOWJORwBjHfp1z 39uWwRTR3c7mOLbK
+dwc7sBQAMY9vXvVqigCs6Tm9SRUjMaqVyXIOCVJOMe3rUL205adljh3STI4 JcglVxwfl/2f1P43
6KAMyVJPMW2EYYLOJQ5Ru77jzjAwCecnpjHNaPlpu3bFzndnHfGM/lxTqKAI YUbzJZZBhnO0D0UZ
x/U/jjtSeS0kwklYAIfkVMg9e579Bx0+vBqeigAooooAKKKKAGv901H/AJ/z /n/68j/dNR/5/wA/
5/8ArgDX+6f8/wCf8/jHUj/dP+f8/wCfxjpDK131T8f6UUXfVPx/pRQInj+6 f94/zp1Nj+6f94/z
p1AyXyWjmMkTAhz86vknr2PbqeOn05NLCjeZLLIMM52geijOP6n8cdqmopiK f2eb7Z9oxH9/Gzcc
bcY3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561eooAoS2s5Ty0WFlWb zlZick792OnHUjPP
054s+W/2zzNkWzy9u7Hz5z0z6f1qaigCj9lmafJSNV8zdlZWIxnP3CMZPr68 9aesEisIzHC8YlMg
diSQSxPC4684zn39qt0UAUHtpy07LHDukmRwS5BKrjg/L/s/qfxFsnWblA6e aZMmdx1bd9zGOP1x
V+igDLbT5nRsxwBmEwyGJwX6Hp+H0/Kny2U5clNnEokBMrAN82cbRwPrznGe p40aKAIPJaSYSSsA
EPyKmQevc9+g46fXg1PRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUA
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA1 /umo/wDP+f8AP/15
H+6aj/z/AJ/z/wDXAGv90/5/z/n8Y6kf7p/z/n/P4x0hla76p+P9KKLvqn4/ 0ooETx/dP+8f506m
x/dP+8f506gZcooopiCiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAoooo
AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigA
ooooAKKKKAGv93HqRVUzIDhioPu3/wBerUhAXJOACMk/WqDGBnVmKHb70AE0 hM8ABwrE5wevBqWq
8zh7qAhgxy2cH2NWKQytd9U/H+lFF31T8f6UUCJ4/un/AHj/ADp1Nj+6f94/ zp1Ax7y7BkngAEkk
1BdzuLN3QlSVyCCcjNLMYnyrOvQd+nFQ3bp9jdVdSQgHX0oEaGT6n/P+f89z J9T/AJ/z/nun+f8A
P+f/AK5/n/P+f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuA Lk+p/wA/5/z3Mn1P
+f8AP+e6f5/z/n/65/n/AD/n/wCuALk+p/z/AJ/z3Mn1P+f8/wCe6f5/z/n/ AOuf5/z/AJ/+uALk
+p/z/n/PcyfU/wCf8/57p/n/AD/n/wCuf5/z/n/64AuT6n/P+f8APcyfU/5/ z/nun+f8/wCf/rn+
f8/5/wDrgC5Pqf8AP+f89zJ9T/n/AD/nun+f8/5/+uf5/wA/5/8ArgC5Pqf8 /wCf89zJ9T/n/P8A
nun+f8/5/wDrn+f8/wCf/rgC5Pqf8/5/z3Mn1P8An/P+e6f5/wA/5/8Arn+f 8/5/+uALk+p/z/n/
AD3Mn1P+f8/57p/n/P8An/65/n/P+f8A64AuT6n/AD/n/PcyfU/5/wA/57p/ n/P+f/rn+f8AP+f/
AK4AuT6n/P8An/PcyfU/5/z/AJ7p/n/P+f8A65/n/P8An/64AuT6n/P+f89z J9T/AJ/z/nun+f8A
P+f/AK5/n/P+f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuA Lk+p/wA/5/z3Mn1P
+f8AP+e6f5/z/n/65/n/AD/n/wCuALk+p/z/AJ/z3Mn1P+f8/wCe6f5/z/n/ AOuf5/z/AJ/+uALk
+p/z/n/PcyfU/wCf8/57p/n/AD/n/wCuf5/z/n/64AuT6n/P+f8APcyfU/5/ z/nun+f8/wCf/rn+
f8/5/wDrgC5Pqf8AP+f89zJ9T/n/AD/nun+f8/5/+uf5/wA/5/8ArgC5Pqf8 /wCf89zJ9T/n/P8A
nun+f8/5/wDrn+f8/wCf/rgC5Pqf8/5/z3Mn1P8An/P+e6f5/wA/5/8Arn+f 8/5/+uALk+p/z/n/
AD3Mn1P+f8/57p/n/P8An/65/n/P+f8A64AuT6n/AD/n/PcyfU/5/wA/57p/ n/P+f/rn+f8AP+f/
AK4AuT6n/P8An/PcyfU/5/z/AJ7p/n/P+f8A65/n/P8An/64AuT6n/P+f89z J9T/AJ/z/nun+f8A
P+f/AK5/n/P+f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuA GTxyeo7/AOf8/rE0
+1lU8FunJ/xqQkDknABySf8AP+f51SYXdWdlIXoM8E0AFy5eWGNuUYncp5B4 pfs8H/PGP/vkVHK6
tdW+1geW6fQ1YoGMWGJGDLEikdwoFPoooArXfVPx/pRRd9U/H+lFAidFXYCQ ckn+Ijufel2r/dP/
AH03+NRThTaEO4RcnLN0+8eD7dqqxyKgCLJHBDlv3sQCq5+XGM5Hc/8AfNAy 39ktv+fdP1/xo+yW
3/Pun6/41VW7cIBKwSZnjwh4ODtzgH3LUJNJ5Fu01x5YkTcZMKMHAwOeO5P4 fhQIv4Hof++2/wAa
aVzJjLAbQcbz6n3qpDNM14VZ0xuYGPPIAzg4xkduScc+4q1MAQ4Zyg8vlgcY 5bnNAC7f9p/++zRt
/wBp/wDvs1neZ5SEW5twpYbpowEUcHgnkZ4H/fVPE055M3QIPlAIO5yuckc8 YPp+FAy9t/2n/wC+
zRt/2n/77NZ893IkWRIFaPf99gokwxAHTk8c4x1/JZ2ma3k+dn81pYwmBxgN jGBnPyigC/t/2n/7
7NG3/af/AL7NUjNiX5bgGMqu6b5eB8/fGOoA/wDr1IkxN2qed5ikDAQqeMZy wxkfUcdPxALO3/af
/vs0bf8Aaf8A77NNkIKyKzbF2csDgjrzmqkTrErvF5BRCGd4UADDnI78jr+l AF3b/tP/AN9mjb/t
P/32apPJcKJXaQq0cQk2ALjJLHB47YA4oEhihlAlIcytwSoEeWJBJwcAj1z1 FAF3b/tP/wB9mjb/
ALT/APfZqlHcu8SMZRzkOyjIUBiN2ffH074wDV+gBu3/AGn/AO+zRt/2n/77 NOooAbt/2n/77NG3
/af/AL7NOooAbt/2n/77NG3/AGn/AO+zTqKAG7f9p/8Avs0bf9p/++zTqKAG 7f8Aaf8A77NG3/af
/vs06igBu3/af/vs0bf9p/8Avs06igBu3/af/vs0bf8Aaf8A77NOooAbt/2n /wC+zRt/2n/77NOo
oAbt/wBp/wDvs0bf9p/++zTqKAG7f9p/++zRt/2n/wC+zTqKAG7f9p/++zRt /wBp/wDvs06igBu3
/af/AL7NG3/af/vs06igBu3/AGn/AO+zRt/2n/77NOooAbt/2n/77NG3/af/ AL7NOooAbt/2n/77
NG3/AGn/AO+zTqKAG7f9p/8Avs0bf9p/++zTqKAG7f8Aaf8A77NG3/af/vs0 6igBu3/af/vs0bf9
p/8Avs06igBu3/af/vs0bf8Aaf8A77NOooAY8SupV9zA9QWJqP7Hb/8APJan ooAhW1gRgyxhSO44
qTyx6t/30adRQA3yx6t/30aPLHq3/fRp1FAFW6UKUxnv1JNFLd9U/H+lFAiX zVQbWV8gnoAR1J9a
PtEf92T/AL5H+NV7i+S2cLIWywJG1M8ZI9R6VF/a0PrJ/wB+x/8AFVXK2F0X ftEf92T/AL5H+NH2
iP8Auyf98j/Gqf8Aa0PrJ/37H/xVH9qw+sn/AH7H/wAVRyvsF0XPtEf92T/v kf400zrvJ2PjAA4+
v+NVf7Vh9ZP+/Y/+Ko/tSH1k/wC/Y/8AiqOV9gui19oX+4/5UfaF/uP+VVv7 Uh9X/wC/Y/8AiqP7
Uh9X/wC/Y/8AiqOVhdFn7Qv9x/yo+0L/AHH/ACqt/acXq/8A37H/AMVS/wBp xer/APfsf/FUcrC6
LH2hf7j/AJUfaF/uP+VV/wC0ovV/+/Y/+Ko/tKL1f/v2P/iqOVhdE4nG8tsf BAHT60PKjjDRuRkH
p3ByKg/tGL1f/v2P/iqX+0YvV/8Av2P/AIqjlYXRP9oX+4/5UfaF/uP+VQf2 jF6v/wB+x/8AFUf2
hH6v/wB+x/8AFUcrC6J/tC/3H/Kj7Qv9x/yqH+0I/V/+/Y/+Ko+3x+rf9+// ALKjlYXRN9oX+4/5
UfaF/uP+VQ/b4/Vv+/f/ANlR9uj/ALzf9+//ALKjlYXRN9oX+4/5UfaF/uP+ VRfbo/7zf9+//sqP
tsf95v8Av3/9lRysLol+0L/cf8qPtC/3H/Kovtqf3m/79/8A2VL9tT+83/fv /wCyo5WF0SfaF/uP
+VH2hf7j/lUf2xP7zf8Afv8A+yo+2J/eb/v3/wDZUcrC6JPtC/3H/Kj7Qv8A cf8AKo/taf3m/wC/
f/2VL9rT+83/AH7/APsqOVhdD/tC/wBx/wAqPtC/3H/Kmfa0/vN/37/+yo+1 L/eP/fv/AOyo5WF0
P+0L/cf8qPtC/wBx/wAqb9qX+8f+/f8A9lR9pX+8f+/f/wBlRysLod9oX+4/ 5UfaF/uP+VN+0r/e
P/fv/wCyo+0L/eP/AH7/APsqOVhdDvtC/wBx/wAqPtC/3H/Kk+0L/eP/AHx/ 9lR56/3j/wB8f/Xo
5WF0L9oX+4/5UfaF/uP+VJ54/vH/AL4/+vS+eP7x/wC+P/r0crC6D7Qv9x/y o+0L/cf8qPOH98/9
8f8A16POH98/98f/AF6OVhdB9oX+4/5UfaF/uP8AlS+aP75/74/+vR5o/v8A /jn/ANejlYXQn2hf
7j/lR9oX+4/5UvmD+/8A+Of/AF6PM/2//HP/AK9HKxXQn2hf7j/lR9oX+4/5 U7zP9v8A8c/+vRv/
ANv/AMc/+vRysd0N+0L/AHH/ACo+0L/cf8qdv/2//HP/AK9Lu/2//HP/AK9H KxXQz7Qv9x/yo+0L
/cf8qfu/2/8Axz/69Gf9v/xz/wCvRysLoZ9oX+4/5UfaF/uP+VPyf7//AI5/ 9elyf7//AI5/9ejl
YXRH9oX+4/5UfaF/uP8AlUnP9/8A8c/+vRz/AHx/3x/9elysd0R/aF/uP+VH 2hf7j/lUnP8AfH/f
H/16Of74/wC+P/r0crC6I/tC/wBx/wAqPtC/3H/KpOf74/74/wDr0c/3x/3x /wDXo5WF0R/aF/uP
+VH2hf7j/lUnP98f98f/AF6Of74/74/+vRysLoj+0L/cf8qPtC/3H/KpOf74 /wC+P/r0c/3x/wB8
f/XoswuitO/mbcKwxnqKKs8/3x/3x/8AXooswujKvv8AkJWv4f8AobVr/P52 1U7t95Pl745x9Kx7
8hdRtiSABySf99qtXN2EmVoJbdgzEZ3cqTnk+2DVuLlZIV7DtSZjYzq6xBkZ R+7z69+KyYIopI5G
eR1KDcQqA8ZA9R61qX8tqNLMMEyOwIJ55Y55J96yI5NiSrjO9dv05B/pVx20 JYqwSMgZQGBOMKQT
1x061KLVvLboXDKBtcEYIbOSPpTkvdsPl4kHCjCyYUYIOQMcHjr6k0Ne5VlW MYYrncc7gM/ewBk8
9fYd+arUWhC0TogdsAHoNwz+XWp4rQP8uX3iPzGCLuPJGAB9Dn8famTTrJEs aq2AersGIHoDgYHt
StMpjJHLPGI2HpgjB/ID8c0agSx2QdypMi8gDemDnKjkZ/2v5VCLaUkgBTg4 4ccn0HPJ+lOguzBG
FVASDuBJ91P/ALL+tPju/KQpGJVUHcoEmOcDrgcjj2pahoQvE8YUuuNwyOeo 9ae9rKm7co+Xrhge
nX8u/pTJZPMcNjGFVfyAH9Kma63OzbOrSN1/vDH6U9QEitncjlQCCchgccE4 PPHTvSw2zPKgfAVn
CnDDJ5xx6/WpDe5TbtfBPIL8AYIIUY46+/QUxLhFaNvLYmI/L83bdnB49zS1 DQb9nkyBhT/tBhj8
849PzFPhtXeZUcBVLAE7gM/T1/D2pILkxIEAYdclWwecdD/wGnrdDzFd0Ztj 71+fnt1JBz0HpRqG
hFEiucMzDsAq7iTQImMjIpVtvVs8fXNLDIiBgyMS3GVbBA79jRHIqM42ko4w RnnGc9ce3pQA8wbI
C7fe3YHzAY6c+/XtSJGrITvO4AnGOAPc/wCeoolm81VXbgKeOe2AB/KlEkfk hCjZ65DYBPYkYo1A
WKAyRlgQMZ6kAHBHfPvSLBIwXCg7sYGRnnpx2pY5gsXlspKnOcHB5x/8TUi3 ZATIc7dvG/5cDHb8
KNQ0IzBIB90H/dIOfypRF95SRvC7htYEHHXp7c/hSpPtUDB4XbkHB+9uzTjM pZnxg7doHUnPUk9+
Cf0o1AgpaSlpiFpaSloAWiiikAtLSUtAC0UUUALS0lLQAtLSUtABS0lLQAtL SUtABS0lLQAtLSUt
IApaSloAWlpKWgBaKKKAFooooAKKKKACiiikAUUUUDFooooAKKKKAKs+npdM skkjKRkAKvbcai/s
aH/ntJ/3yK0F+4Pqf/QjS1nzNGlkZn9lQ+f5Ylk+4WJwPUD+tP8A7Hh/57Sf 98irQ/4/f+2J/wDQ
hTLuaSPCIhJkGFbPQ0czCyKs2mQwwvJ5sh2jONo5qQ6PCCR5z8f7IqW4jEWn sg6KuKtv99vrRzML
Iz/7Ih/57P8A98imR6ZC+/8AeuArlfujngf41asAFs4wGDDnkfU0626Tf9dm /kKOZhZFb+yYv+ez
/wDfI/xpf7Ji/wCez/8AfI/xpUyq+aHcu05TBYkEbyOnsOePT60kV1cyJuEI +dN6DIHcf7XPB9un
vRzMLIP7Ki/57P8A98j/ABo/sqL/AJ7P/wB8j/GpIZpJnCq6YUAsTGRnkjAB PGNvvUX2mcxwOfLD
yoCOpAyyDpnnqf8APU5mFkL/AGXF/wA9n/75H+NL/ZcX/PZ/++R/jSrJM14s e9QUDBsKcN9w9M8H
5vemwXMjQo/y7AY0K8kksF5zn/a9+lHMwshf7Mi/57P/AN8j/Gj+zI/+ez/9 8j/Gn2s8r+V5pQ+b
H5g2qRt6cdTnr+lWqOZhZFP+zI/+ez/98j/Gj+zY/wDns3/fP/16uUUczCyK f9mx/wDPZv8Avn/6
9H9nR/8APVv++f8A69XKKOZhZFT+zo/+erf98/8A16P7Pj/56t/3z/8AXq3R RzMLIqf2en/PVv8A
vn/69L/Z6f8APVv++f8A69WqKOZhZFX7An/PVv8Avn/69H2BP+erf98//Xq1 RRzMLIq/YU/56t/3
z/8AXpfsKf8APVv++f8A69WaKOZhZFb7En/PVv8Avn/69H2Jf+ep/wC+f/r1 Zoo5mFkV/sS/89T/
AN8//Xo+xr/z1P8A3x/9erFFHMwsiv8AY1/56n/vj/69H2Rf+ep/74/+vVii jmYWRB9kX/nqf++P
/r0fZV/56n/vj/69T0UczCyIPso/56n/AL4/+vS/ZR/z0P8A3x/9epqKOZhZ FbyR5/l7z9wsTt9w
PX3p/wBmH/PQ/wDfH/16B/x+/wDbE/8AoQqtdswuJNvmfLGpVlfCoSW5YZ5H TseBRzMVkWvs4/56
H/vj/wCvR9nH/PT/AMc/+vULXE32llWMeWrqhJx3x3z79MH9eEW4mLCNtqSs wG0ofk4J65w33e2P
6UczCyJ/IH/PT/xz/wCvR5H/AE0/8c/+vUAu5PKuDhcxRkjjqQWH5fLSieZg P9WpeVo1OCcY3cn8
sfr7UczCyJ/I/wCmn/jn/wBejyf+mn/jn/16gNxOJyuwFEZUZuACSBzy3HXp g/WrdLmY7IiaPapY
ycAZ+5/9eiNC8SOXxuUNjb0yM+tPl/1T/wC6abEA1rEDnBiUcHH8Ip8zFZC+ V/00/wDHP/r0eX/0
0/8AHP8A69Uop5ktgwYFY7dZW35ZmJyTznjp71LdB3uIkTJGxiR5rJ3XuPrR zMLIseWf+en/AI5/
9el2H/np/wCOf/XqsJpEJ4UJG6RleWJJ287v+Benb3qvE8j2cIBUJG0KkYyT 9w5znjr6dqOZhZGj
sP8Az0/8c/8Ar0bD/wA9B/3x/wDXqkt5cGNXMSgSBSgYgdWAxwST97rgfTmr y52jcQTjkgYpczHZ
EcWZYg+8AEnA2ehI9fan7D/z0H/fH/16jtP+PWP/AIF/6Eaiilk+yWoUjfKq jc3P8Oc+/SjmYrIs
7
Re: A Diagnostic Message for the Valid Schema [message #19870 is a reply to message #19785] Sat, 03 May 2003 10:56 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: merks.ca.ibm.com

--------------1404F894BB152E1D2F109304
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Pae,

The editor treats the schema as invalid because it contains this:

<xsd:element name="username" ref="usernameRef"/>

So it produces this message from plugin.properties:

src-element.2.1 = An element reference may not have a name

Which is there because of this constraint in the spec:

http://www.w3.org/TR/xmlschema-1/#src-element

Which states the following:

2.1 One of ref or name must be present, but not both.

And since ref and name are indeed both present, it's an invalid schema.

The schema below is valid and the editor reports no errors.


Pae Choi wrote:

> Ed, I don't see why Eclipse/Editor treats the sampel schema as an
> invalid schema. I alsotried other schema, e.g., WSDL.XSD, but throws
> the same message. The following isthe copy of WSDL schema that I
> enclosed for the convenience purpose. Try to seewhat you
> get. Regards, Pae // ###################### WSDL Schema
> ######################<?xml version="1.0" encoding="UTF-8"?>
>
> <!--
>
> Copyright 2001-2002 International Business Machines Corporation,
> Microsoft Corporation. All rights reserved.
>
> -->
>
> <schema targetNamespace="http://schemas.xmlsoap.org/wsdl/"
> xmlns="http://www.w3.org/2001/XMLSchema"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> elementFormDefault="qualified">
>
> <complexType name="tDocumentation" mixed="true">
>
> <sequence>
>
> <any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
>
> </sequence>
>
> </complexType>
>
> <complexType name="tDocumented">
>
> <annotation>
>
> <documentation>
>
> This type is extended by component types
>
> to allow them to be documented
>
> </documentation>
>
> </annotation>
>
> <sequence>
>
> <element name="documentation" type="wsdl:tDocumentation"
> minOccurs="0"/>
>
> </sequence>
>
> </complexType>
>
> <complexType name="tExtensibleAttributesDocumented" abstract="true">
>
> <annotation>
>
> <documentation>
>
> This type is extended by component types
>
> to allow attributes from other namespaces to be added.
>
> </documentation>
>
> </annotation>
>
> <complexContent>
>
> <extension base="wsdl:tDocumented">
>
> <anyAttribute namespace="##other"/>
>
> </extension>
>
> </complexContent>
>
> </complexType>
>
> <complexType name="tExtensibleDocumented" abstract="true">
>
> <annotation>
>
> <documentation>
>
> This type is extended by component types
>
> to allow attributes from other namespaces to be added.
>
> </documentation>
>
> </annotation>
>
> <complexContent>
>
> <extension base="wsdl:tDocumented">
>
> <sequence>
>
> <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
>
> </sequence>
>
> </extension>
>
> </complexContent>
>
> </complexType>
>
> <element name="definitions" type="wsdl:tDefinitions">
>
> <key name="message">
>
> <selector xpath="wsdl:message"/>
>
> <field xpath="@name"/>
>
> </key>
>
> <key name="portType">
>
> <selector xpath="wsdl:portType"/>
>
> <field xpath="@name"/>
>
> </key>
>
> <key name="binding">
>
> <selector xpath="wsdl:binding"/>
>
> <field xpath="@name"/>
>
> </key>
>
> <key name="service">
>
> <selector xpath="wsdl:service"/>
>
> <field xpath="@name"/>
>
> </key>
>
> <key name="import">
>
> <selector xpath="wsdl:import"/>
>
> <field xpath="@namespace"/>
>
> </key>
>
> <key name="port">
>
> <selector xpath="wsdl:service/wsdl:port"/>
>
> <field xpath="@name"/>
>
> </key>
>
> </element>
>
> <group name="anyTopLevelOptionalElement">
>
> <annotation>
>
> <documentation>
>
> Any top level optional element allowed to appear more then once-
>
> any child of definitions element except wsdl:types.
>
> Any extensibility element is allowed in any place
>
> </documentation>
>
> </annotation>
>
> <choice>
>
> <element name="import" type="wsdl:tImport"/>
>
> <element name="types" type="wsdl:tTypes"/>
>
> <element name="message" type="wsdl:tMessage">
>
> <unique name="part">
>
> <selector xpath="wsdl:part"/>
>
> <field xpath="@name"/>
>
> </unique>
>
> </element>
>
> <element name="portType" type="wsdl:tPortType"/>
>
> <element name="binding" type="wsdl:tBinding"/>
>
> <element name="service" type="wsdl:tService"/>
>
> </choice>
>
> </group>
>
> <complexType name="tDefinitions">
>
> <complexContent>
>
> <extension base="wsdl:tExtensibleDocumented">
>
> <sequence>
>
> <group ref="wsdl:anyTopLevelOptionalElement" minOccurs="0"
> maxOccurs="unbounded"/>
>
> </sequence>
>
> <attribute name="targetNamespace" type="anyURI" use="optional"/>
>
> <attribute name="name" type="NCName" use="optional"/>
>
> </extension>
>
> </complexContent>
>
> </complexType>
>
> <complexType name="tImport">
>
> <complexContent>
>
> <extension base="wsdl:tExtensibleAttributesDocumented">
>
> <attribute name="namespace" type="anyURI" use="required"/>
>
> <attribute name="location" type="anyURI" use="required"/>
>
> </extension>
>
> </complexContent>
>
> </complexType>
>
> <complexType name="tTypes">
>
> <complexContent>
>
> <extension base="wsdl:tExtensibleDocumented"/>
>
> </complexContent>
>
> </complexType>
>
> <complexType name="tMessage">
>
> <complexContent>
>
> <extension base="wsdl:tExtensibleDocumented">
>
> <sequence>
>
> <element name="part" type="wsdl:tPart" minOccurs="0"
> maxOccurs="unbounded"/>
>
> </sequence>
>
> <attribute name="name" type="NCName" use="required"/>
>
> </extension>
>
> </complexContent>
>
> </complexType>
>
> <complexType name="tPart">
>
> <complexContent>
>
> <extension base="wsdl:tExtensibleAttributesDocumented">
>
> <attribute name="name" type="NCName" use="required"/>
>
> <attribute name="element" type="QName" use="optional"/>
>
> <attribute name="type" type="QName" use="optional"/>
>
> </extension>
>
> </complexContent>
>
> </complexType>
>
> <complexType name="tPortType">
>
> <complexContent>
>
> <extension base="wsdl:tExtensibleAttributesDocumented">
>
> <sequence>
>
> <element name="operation" type="wsdl:tOperation" minOccurs="0"
> maxOccurs="unbounded"/>
>
> </sequence>
>
> <attribute name="name" type="NCName" use="required"/>
>
> </extension>
>
> </complexContent>
>
> </complexType>
>
> <complexType name="tOperation">
>
> <complexContent>
>
> <extension base="wsdl:tExtensibleDocumented">
>
> <choice>
>
> <group ref="wsdl:request-response-one-way-operation"/>
>
> <group ref="wsdl:solicit-response-notification-operation"/>
>
> </choice>
>
> <attribute name="name" type="NCName" use="required"/>
>
> <attribute name="parameterOrder" type="NMTOKENS" use="optional"/>
>
> </extension>
>
> </complexContent>
>
> </complexType>
>
> <group name="optional-response-fault">
>
> <choice>
>
> <sequence/>
>
> <sequence>
>
> <element name="output" type="wsdl:tParam"/>
>
> <element name="fault" type="wsdl:tFault" minOccurs="0"
> maxOccurs="unbounded"/>
>
> </sequence>
>
> </choice>
>
> </group>
>
> <group name="request-response-one-way-operation">
>
> <sequence>
>
> <element name="input" type="wsdl:tParam"/>
>
> <group ref="wsdl:optional-response-fault"/>
>
> </sequence>
>
> </group>
>
> <group name="optional-solicit-fault">
>
> <choice>
>
> <sequence/>
>
> <sequence>
>
> <element name="input" type="wsdl:tParam"/>
>
> <element name="fault" type="wsdl:tFault" minOccurs="0"
> maxOccurs="unbounded"/>
>
> </sequence>
>
> </choice>
>
> </group>
>
> <group name="solicit-response-notification-operation">
>
> <sequence>
>
> <element name="output" type="wsdl:tParam"/>
>
> <group ref="wsdl:optional-solicit-fault"/>
>
> </sequence>
>
> </group>
>
> <complexType name="tParam">
>
> <complexContent>
>
> <extension base="wsdl:tExtensibleAttributesDocumented">
>
> <attribute name="name" type="NCName" use="optional"/>
>
> <attribute name="message" type="QName" use="required"/>
>
> </extension>
>
> </complexContent>
>
> </complexType>
>
> <complexType name="tFault">
>
> <complexContent>
>
> <extension base="wsdl:tExtensibleAttributesDocumented">
>
> <attribute name="name" type="NCName" use="required"/>
>
> <attribute name="message" type="QName" use="required"/>
>
> </extension>
>
> </complexContent>
>
> </complexType>
>
> <complexType name="tBinding">
>
> <complexContent>
>
> <extension base="wsdl:tExtensibleDocumented">
>
> <sequence>
>
> <element name="operation" type="wsdl:tBindingOperation" minOccurs="0"
> maxOccurs="unbounded"/>
>
> </sequence>
>
> <attribute name="name" type="NCName" use="required"/>
>
> <attribute name="type" type="QName" use="required"/>
>
> </extension>
>
> </complexContent>
>
> </complexType>
>
> <complexType name="tBindingOperationMessage">
>
> <complexContent>
>
> <extension base="wsdl:tExtensibleDocumented">
>
> <attribute name="name" type="NCName" use="optional"/>
>
> </extension>
>
> </complexContent>
>
> </complexType>
>
> <complexType name="tBindingOperationFault">
>
> <complexContent>
>
> <extension base="wsdl:tExtensibleDocumented">
>
> <attribute name="name" type="NCName" use="required"/>
>
> </extension>
>
> </complexContent>
>
> </complexType>
>
> <complexType name="tBindingOperation">
>
> <complexContent>
>
> <extension base="wsdl:tExtensibleDocumented">
>
> <sequence>
>
> <element name="input" type="wsdl:tBindingOperationMessage"
> minOccurs="0"/>
>
> <element name="output" type="wsdl:tBindingOperationMessage"
> minOccurs="0"/>
>
> <element name="fault" type="wsdl:tBindingOperationFault" minOccurs="0"
> maxOccurs="unbounded"/>
>
> </sequence>
>
> <attribute name="name" type="NCName" use="required"/>
>
> </extension>
>
> </complexContent>
>
> </complexType>
>
> <complexType name="tService">
>
> <complexContent>
>
> <extension base="wsdl:tExtensibleDocumented">
>
> <sequence>
>
> <element name="port" type="wsdl:tPort" minOccurs="0"
> maxOccurs="unbounded"/>
>
> </sequence>
>
> <attribute name="name" type="NCName" use="required"/>
>
> </extension>
>
> </complexContent>
>
> </complexType>
>
> <complexType name="tPort">
>
> <complexContent>
>
> <extension base="wsdl:tExtensibleDocumented">
>
> <attribute name="name" type="NCName" use="required"/>
>
> <attribute name="binding" type="QName" use="required"/>
>
> </extension>
>
> </complexContent>
>
> </complexType>
>
> <attribute name="arrayType" type="string"/>
>
> <attribute name="required" type="boolean"/>
>
> <complexType name="tExtensibilityElement" abstract="true">
>
> <sequence/>
>
> <attribute ref="wsdl:required" use="optional"/>
>
> </complexType>
>
> </schema>
>
> "Ed Merks" <merks@ca.ibm.com> wrote in message
> news:3EB25ED9.AE2CB299@ca.ibm.com...Pae,
>
> I'm seeing this result with the just published 1.1.0 driver:
>
> [Image]
>
> The schema isn't valid.
>
>
> Pae Choi wrote:
>
> > I have a simple test schema as follows:
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <!--W3C Schema generated by Pae -->
> > <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > elementFormDefault="qualified">
> > <xsd:element name="CommonLogin">
> > <xsd:complexType>
> > <xsd:sequence>
> > <xsd:element name="username" ref="usernameRef"/>
> > <xsd:element name="password" ref="passwordRef"/>
> > </xsd:sequence>
> > </xsd:complexType>
> > </xsd:element>
> > <xsd:element name="passwordRef" type="xsd:string"/>
> > <xsd:element name="usernameRef" type="xsd:string"/>
> > </xsd:schema>
> >
> > This is a very simple sample, but it is a valid schema.
> > But when
> > I use the validate() and getDiagnostics() methods in the
> > XSDSchema
> > interface it gives me a message as follows:
> >
> > XSD: The element '#null' is not permitted as constrained
> > by 'XML Schema ';
> > expecting schema
> >
> > I do not understand what the message is saying. Any
> > comments?
> >
> > Pae
>

--------------1404F894BB152E1D2F109304
Content-Type: multipart/related;
boundary="------------8BEDE1F35164B7C59B4729C0"


--------------8BEDE1F35164B7C59B4729C0
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<body bgcolor="#FFFFFF">
Pae,
<p>The editor treats the schema as invalid because it contains this:
<blockquote>&lt;xsd:element name="username" ref="usernameRef"/></blockquote>
So it produces this message from plugin.properties:
<blockquote>src-element.2.1 = An element reference may not have a name</blockquote>
Which is there because of this constraint in the spec:
<blockquote><a href="http://www.w3.org/TR/xmlschema-1/#src-element">http://www.w3.org/TR/xmlschema-1/#src-element</a></blockquote>
Which states the following:
<blockquote>2.1 One of ref or name must be present, but not both.</blockquote>
And since ref and name are indeed both present, it's an invalid schema.
<p>The schema below is valid and the editor reports no errors.
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE=CITE><style></style>
<font size=-1>Ed,</font>&nbsp;<font size=-1>I
don't see why Eclipse/Editor treats the sampel schema as an invalid schema.
I also</font><font size=-1>tried other schema, e.g., WSDL.XSD, but throws
the same message. The following is</font><font size=-1>the copy of WSDL
schema that I enclosed for the convenience purpose. Try to see</font><font size=-1>what
you get.</font>&nbsp;&nbsp;<font size=-1>Regards,</font>&nbsp;&nbsp;<font size=-1>Pae</font>&nbsp;<font size=-1>//
###################### WSDL Schema ######################</font><font color="#008080"><font size=-2>&lt;?xml
version="1.0" encoding="UTF-8"?></font></font>
<p><font color="#0000FF"><font size=-2>&lt;!--</font></font>
<p><font color="#808080"><font size=-2>Copyright 2001-2002 International
Business Machines Corporation, Microsoft Corporation. All rights reserved.</font></font>
<p><font color="#0000FF"><font size=-2>--></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">schema</font><font color="#FF0000">
targetNamespace</font><font color="#0000FF">="</font><A HREF="http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl/</A><font color="#0000FF">"</font><font color="#FF0000">
xmlns</font><font color="#0000FF">="</font><A HREF="http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchema</A><font color="#0000FF">"</font><font color="#FF0000">
xmlns:wsdl</font><font color="#0000FF">="</font><A HREF="http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl/</A><font color="#0000FF">"</font><font color="#FF0000">
elementFormDefault</font><font color="#0000FF">="</font>qualified<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">complexType</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>tDocumentation<font color="#0000FF">"</font><font color="#FF0000">
mixed</font><font color="#0000FF">="</font>true<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">sequence</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">any</font><font color="#FF0000">
processContents</font><font color="#0000FF">="</font>lax<font color="#0000FF">"</font><font color="#FF0000">
minOccurs</font><font color="#0000FF">="</font>0<font color="#0000FF">"</font><font color="#FF0000">
maxOccurs</font><font color="#0000FF">="</font>unbounded<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">sequence</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">complexType</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">complexType</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>tDocumented<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">annotation</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">documentation</font><font color="#0000FF">></font></font>
<p><font size=-2>This type is extended by component types</font>
<p><font size=-2>to allow them to be documented</font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">documentation</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">annotation</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">sequence</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">element</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>documentation<font color="#0000FF">"</font><font color="#FF0000">
type</font><font color="#0000FF">="</font>wsdl:tDocumentation<font color="#0000FF">"</font><font color="#FF0000">
minOccurs</font><font color="#0000FF">="</font>0<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">sequence</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">complexType</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">complexType</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>tExtensibleAttributesDocumented <font color="#0000FF">"</font><font color="#FF0000">
abstract</font><font color="#0000FF">="</font>true<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">annotation</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">documentation</font><font color="#0000FF">></font></font>
<p><font size=-2>This type is extended by component types</font>
<p><font size=-2>to allow attributes from other namespaces to be added.</font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">documentation</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">annotation</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">complexContent</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">extension</font><font color="#FF0000">
base</font><font color="#0000FF">="</font>wsdl:tDocumented<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">anyAttribute</font><font color="#FF0000">
namespace</font><font color="#0000FF">="</font>##other<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">extension</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">complexContent</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">complexType</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">complexType</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>tExtensibleDocumented<font color="#0000FF">"</font><font color="#FF0000">
abstract</font><font color="#0000FF">="</font>true<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">annotation</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">documentation</font><font color="#0000FF">></font></font>
<p><font size=-2>This type is extended by component types</font>
<p><font size=-2>to allow attributes from other namespaces to be added.</font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">documentation</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">annotation</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">complexContent</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">extension</font><font color="#FF0000">
base</font><font color="#0000FF">="</font>wsdl:tDocumented<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">sequence</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">any</font><font color="#FF0000">
namespace</font><font color="#0000FF">="</font>##other<font color="#0000FF">"</font><font color="#FF0000">
minOccurs</font><font color="#0000FF">="</font>0<font color="#0000FF">"</font><font color="#FF0000">
maxOccurs</font><font color="#0000FF">="</font>unbounded<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">sequence</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">extension</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">complexContent</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">complexType</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">element</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>definitions<font color="#0000FF">"</font><font color="#FF0000">
type</font><font color="#0000FF">="</font>wsdl:tDefinitions<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">key</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>message<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">selector</font><font color="#FF0000">
xpath</font><font color="#0000FF">="</font>wsdl:message<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">field</font><font color="#FF0000">
xpath</font><font color="#0000FF">="</font>@name<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">key</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">key</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>portType<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">selector</font><font color="#FF0000">
xpath</font><font color="#0000FF">="</font>wsdl:portType<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">field</font><font color="#FF0000">
xpath</font><font color="#0000FF">="</font>@name<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">key</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">key</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>binding<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">selector</font><font color="#FF0000">
xpath</font><font color="#0000FF">="</font>wsdl:binding<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">field</font><font color="#FF0000">
xpath</font><font color="#0000FF">="</font>@name<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">key</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">key</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>service<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">selector</font><font color="#FF0000">
xpath</font><font color="#0000FF">="</font>wsdl:service<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">field</font><font color="#FF0000">
xpath</font><font color="#0000FF">="</font>@name<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">key</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">key</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>import<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">selector</font><font color="#FF0000">
xpath</font><font color="#0000FF">="</font>wsdl:import<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">field</font><font color="#FF0000">
xpath</font><font color="#0000FF">="</font>@namespace<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">key</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">key</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>port<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">selector</font><font color="#FF0000">
xpath</font><font color="#0000FF">="</font>wsdl:service/wsdl:port<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">field</font><font color="#FF0000">
xpath</font><font color="#0000FF">="</font>@name<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">key</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">element</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">group</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>anyTopLevelOptionalElement<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">annotation</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">documentation</font><font color="#0000FF">></font></font>
<p><font size=-2>Any top level optional element allowed to appear more
then once-</font>
<p><font size=-2>any child of definitions element except wsdl:types.</font>
<p><font size=-2>Any extensibility element is allowed in any place</font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">documentation</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">annotation</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">choice</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">element</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>import<font color="#0000FF">"</font><font color="#FF0000">
type</font><font color="#0000FF">="</font>wsdl:tImport<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">element</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>types<font color="#0000FF">"</font><font color="#FF0000">
type</font><font color="#0000FF">="</font>wsdl:tTypes<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">element</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>message<font color="#0000FF">"</font><font color="#FF0000">
type</font><font color="#0000FF">="</font>wsdl:tMessage<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">unique</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>part<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">selector</font><font color="#FF0000">
xpath</font><font color="#0000FF">="</font>wsdl:part<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">field</font><font color="#FF0000">
xpath</font><font color="#0000FF">="</font>@name<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">unique</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">element</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">element</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>portType<font color="#0000FF">"</font><font color="#FF0000">
type</font><font color="#0000FF">="</font>wsdl:tPortType<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">element</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>binding<font color="#0000FF">"</font><font color="#FF0000">
type</font><font color="#0000FF">="</font>wsdl:tBinding<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">element</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>service<font color="#0000FF">"</font><font color="#FF0000">
type</font><font color="#0000FF">="</font>wsdl:tService<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">choice</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">group</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">complexType</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>tDefinitions<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">complexContent</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">extension</font><font color="#FF0000">
base</font><font color="#0000FF">="</font>wsdl:tExtensibleDocumented<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">sequence</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">group</font><font color="#FF0000">
ref</font><font color="#0000FF">="</font>wsdl:anyTopLevelOptionalElement <font color="#0000FF">"</font><font color="#FF0000">
minOccurs</font><font color="#0000FF">="</font>0<font color="#0000FF">"</font><font color="#FF0000">
maxOccurs</font><font color="#0000FF">="</font>unbounded<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">sequence</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">attribute</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>targetNamespace<font color="#0000FF">"</font><font color="#FF0000">
type</font><font color="#0000FF">="</font>anyURI<font color="#0000FF">"</font><font color="#FF0000">
use</font><font color="#0000FF">="</font>optional<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">attribute</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>name<font color="#0000FF">"</font><font color="#FF0000">
type</font><font color="#0000FF">="</font>NCName<font color="#0000FF">"</font><font color="#FF0000">
use</font><font color="#0000FF">="</font>optional<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">extension</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">complexContent</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">complexType</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">complexType</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>tImport<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">complexContent</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">extension</font><font color="#FF0000">
base</font><font color="#0000FF">="</font>wsdl:tExtensibleAttributesDocumented <font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">attribute</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>namespace<font color="#0000FF">"</font><font color="#FF0000">
type</font><font color="#0000FF">="</font>anyURI<font color="#0000FF">"</font><font color="#FF0000">
use</font><font color="#0000FF">="</font>required<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">attribute</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>location<font color="#0000FF">"</font><font color="#FF0000">
type</font><font color="#0000FF">="</font>anyURI<font color="#0000FF">"</font><font color="#FF0000">
use</font><font color="#0000FF">="</font>required<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">extension</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">complexContent</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">complexType</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">complexType</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>tTypes<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">complexContent</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">extension</font><font color="#FF0000">
base</font><font color="#0000FF">="</font>wsdl:tExtensibleDocumented<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">complexContent</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">complexType</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">complexType</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>tMessage<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">complexContent</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">extension</font><font color="#FF0000">
base</font><font color="#0000FF">="</font>wsdl:tExtensibleDocumented<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">sequence</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">element</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>part<font color="#0000FF">"</font><font color="#FF0000">
type</font><font color="#0000FF">="</font>wsdl:
Re: A Diagnostic Message for the Valid Schema [message #19930 is a reply to message #19818] Sat, 03 May 2003 11:03 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: merks.ca.ibm.com

--------------E12CD32B5B06C63315FEC29B
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Pae,

The XSD model expects a DOM that's namespace aware, so this addition to
your sample code will improve your result:

private Document openXMLDOM(String uri) {
// Create a factory object for creating DOM parsers
DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
DocumentBuilder builder = null;
Document xmlDoc = null;

factory.setNamespaceAware(true);

Without this, element.getNamespaceURI and element.getLocalName both
return null...


Pae Choi wrote:

> Ed, I have a sample code that test a DOM of XML Schema with
> Eclipse/XSD andproducing two different results. With v1.0.2, it seems
> ok except the diagnostic message we are discussing.With v1.1.0, it
> throws an exception. Regards, Pae P.S.: The code snippet is as
> follows: // ################## CODE SNIPPET ##################/*
> * EclipseXSDDemo1.java
> *
> * Created on May 2, 2003, 11:13 PM
> */ package org.paechoi.xsd.test; // W3C/DOM
> import javax.xml.parsers.DocumentBuilderFactory;
> import javax.xml.parsers.DocumentBuilder;
> import org.w3c.dom.Document;
> import org.w3c.dom.Element;
> // Eclipse/XSD
> import org.eclipse.xsd.XSDFactory;
> import org.eclipse.xsd.XSDSchema;
> import org.eclipse.xsd.impl.XSDSchemaImpl;
> import org.eclipse.xsd.util.XSDResourceImpl;
> import org.eclipse.xsd.util.XSDResourceFactoryImpl;
> import org.eclipse.xsd.XSDDiagnostic;
> import org.eclipse.emf.ecore.resource.Resource;
> import org.eclipse.emf.ecore.resource.ResourceSet;
> import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
> import org.eclipse.emf.common.util.EList;
> import java.io.File;
> /**
> *
> * @author pae
> */
> public class EclipseXSDDemo1 {
> // private Document xmlDOM = null;
>
> // instance initializer
> {
> //
> Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd",
> new XSDResourceFactoryImpl());
> }
>
> /** Creates a new instance of EclipseXSDDemo1 */
> public EclipseXSDDemo1() {
> super();
> }
>
> /** Open a XML DOM */
> private Document openXMLDOM(String uri) {
> // Create a factory object for creating DOM parsers
> DocumentBuilderFactory factory =
> DocumentBuilderFactory.newInstance();
> DocumentBuilder builder = null;
> Document xmlDoc = null;
>
> // Build a new DOM
> try {
> // Now use the factory to create a DOM parser (a.k.a. a
> DocumentBuilder)
> builder = factory.newDocumentBuilder();
> xmlDoc = builder.parse(uri);
> }
> catch (Exception ex) {
> ex.printStackTrace();
> return null;
> }
>
> return xmlDoc;
> }
>
> /** doIt */
> private void doIt() {
> Document xmlDOM =
> openXMLDOM("http://schemas.xmlsoap.org/wsdl/");
> // Document xmlDOM = openXMLDOM("./wsdl.xsd"); Element
> rootElement = xmlDOM.getDocumentElement(); XSDSchema xsdSchema
> = XSDFactory.eINSTANCE.createXSDSchema();
> xsdSchema.setDocument(xmlDOM);
> xsdSchema.setElement(rootElement);
> xsdSchema.updateElement(); System.out.println("\n\n");
>
> XSDResourceImpl.serialize(System.out,
> xsdSchema.getElement());
> System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION
> >>>>>>>>>>>>>>>>>>>>>>>>>>");
> xsdSchema.validate();
> //EList eList = xsdMainSchema.getDiagnostics();
> EList eList = xsdSchema.getAllDiagnostics();
> for (int i = 0; i < eList.size(); i++) {
> XSDDiagnostic xsdDiagnostic = (XSDDiagnostic)eList.get(i);
>
> System.out.println(i + ": Diagnostic Message = [" +
> xsdDiagnostic.getMessage() + "]");
> }
>
> System.out.println("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<");
>
> }
>
> /** main - the main entry */
> public static void main(String[] args) {
> EclipseXSDDemo1 app = new EclipseXSDDemo1();
> app.doIt();
> }
> }
>
> "Ed Merks" <merks@ca.ibm.com> wrote in message
> news:3EB25ED9.AE2CB299@ca.ibm.com...Pae,
>
> I'm seeing this result with the just published 1.1.0 driver:
>
> [Image]
>
> The schema isn't valid.
>
>
> Pae Choi wrote:
>
> > I have a simple test schema as follows:
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <!--W3C Schema generated by Pae -->
> > <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > elementFormDefault="qualified">
> > <xsd:element name="CommonLogin">
> > <xsd:complexType>
> > <xsd:sequence>
> > <xsd:element name="username" ref="usernameRef"/>
> > <xsd:element name="password" ref="passwordRef"/>
> > </xsd:sequence>
> > </xsd:complexType>
> > </xsd:element>
> > <xsd:element name="passwordRef" type="xsd:string"/>
> > <xsd:element name="usernameRef" type="xsd:string"/>
> > </xsd:schema>
> >
> > This is a very simple sample, but it is a valid schema.
> > But when
> > I use the validate() and getDiagnostics() methods in the
> > XSDSchema
> > interface it gives me a message as follows:
> >
> > XSD: The element '#null' is not permitted as constrained
> > by 'XML Schema ';
> > expecting schema
> >
> > I do not understand what the message is saying. Any
> > comments?
> >
> > Pae
>

--------------E12CD32B5B06C63315FEC29B
Content-Type: multipart/related;
boundary="------------5F7B25AF02F305B397A1F7E4"


--------------5F7B25AF02F305B397A1F7E4
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<body bgcolor="#FFFFFF">
Pae,
<p>The XSD model expects a DOM that's namespace aware, so <font color="#3333FF">this</font>
addition to your sample code will improve your result:
<p>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String uri) {
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create a factory object
for creating DOM parsers
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilderFactory&nbsp;
factory = DocumentBuilderFactory.newInstance();
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;
builder = null;
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = null;
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#3333FF">&nbsp;&nbsp; factory.setNamespaceAware(true);</font>
<p>Without this, element.getNamespaceURI and element.getLocalName both
return null...
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE=CITE><style></style>
<font size=-1>Ed,</font>&nbsp;<font size=-1>I
have a sample code that test a DOM of XML Schema with Eclipse/XSD and</font><font size=-1>producing
two different results.</font>&nbsp;<font size=-1>With v1.0.2, it seems
ok except the diagnostic message we are discussing.</font><font size=-1>With
v1.1.0, it throws an exception.</font>&nbsp;<font size=-1>Regards,</font>&nbsp;&nbsp;<font size=-1>Pae</font>&nbsp;<font size=-1>P.S.:
The code snippet is as follows:</font>&nbsp;<font size=-1>// ##################
CODE SNIPPET ##################</font><font size=-1>/*</font>
<br><font size=-1>&nbsp;* EclipseXSDDemo1.java</font>
<br><font size=-1>&nbsp;*</font>
<br><font size=-1>&nbsp;* Created on May 2, 2003, 11:13 PM</font>
<br><font size=-1>&nbsp;*/</font>&nbsp;<font size=-1>package org.paechoi.xsd.test;</font>&nbsp;<font size=-1>//
W3C/DOM</font>
<br><font size=-1>import&nbsp; javax.xml.parsers.DocumentBuilderFactory;</font>
<br><font size=-1>import&nbsp; javax.xml.parsers.DocumentBuilder;</font>
<br><font size=-1>import&nbsp; org.w3c.dom.Document;</font>
<br><font size=-1>import&nbsp; org.w3c.dom.Element;</font>
<br><font size=-1>// Eclipse/XSD</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDFactory;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDSchema;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.impl.XSDSchemaImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.util.XSDResourceImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.util.XSDResourceFactoryImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDDiagnostic;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.Resource;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.ResourceSet;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.common.util.EList;</font>
<br><font size=-1>import&nbsp; java.io.File;</font>&nbsp;&nbsp;
<br><font size=-1>/**</font>
<br><font size=-1>&nbsp;*</font>
<br><font size=-1>&nbsp;* @author&nbsp; pae</font>
<br><font size=-1>&nbsp;*/</font>
<br><font size=-1>public class EclipseXSDDemo1 {</font>
<br><font size=-1>//&nbsp;&nbsp;&nbsp; private&nbsp;&nbsp;&nbsp;&nbsp;
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp; xmlDOM = null;</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; // instance initializer</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; {</font>
<br><font size=-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp; Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd",
new XSDResourceFactoryImpl());</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** Creates a new instance of EclipseXSDDemo1
*/</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; public EclipseXSDDemo1() {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; super();</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String
uri) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create
a factory object for creating DOM parsers</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilderFactory&nbsp;
factory = DocumentBuilderFactory.newInstance();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;
builder = null;</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = null;</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Build a
new DOM</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// Now use the factory to create a DOM parser (a.k.a. a DocumentBuilder)</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
builder = factory.newDocumentBuilder();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = builder.parse(uri);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch (Exception
ex) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ex.printStackTrace();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return null;</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; return xmlDoc;</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** doIt */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private void doIt() {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document xmlDOM
= openXMLDOM("<a href="http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl/</a>");</font>
<br><font size=-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp; Document
xmlDOM = openXMLDOM("./wsdl.xsd");</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
Element rootElement = xmlDOM.getDocumentElement();</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
XSDSchema xsdSchema = XSDFactory.eINSTANCE.createXSDSchema();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; xsdSchema.setDocument(xmlDOM);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; xsdSchema.setElement(rootElement);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; xsdSchema.updateElement();</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
System.out.println("\n\n");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; XSDResourceImpl.serialize(System.out,
xsdSchema.getElement());</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION >>>>>>>>>>>>>>>>>>>>>>>>>>");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; xsdSchema.validate();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; //EList eList
= xsdMainSchema.getDiagnostics();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; EList eList
= xsdSchema.getAllDiagnostics();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; for (int i
= 0; i &lt; eList.size(); i++) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
XSDDiagnostic xsdDiagnostic = (XSDDiagnostic)eList.get(i);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
System.out.println(i + ": Diagnostic Message = [" + xsdDiagnostic.getMessage()
+ "]");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; System.out.println(" &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; ");</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** main - the main entry */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; public static void main(String[] args)
{</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; EclipseXSDDemo1
app = new EclipseXSDDemo1();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; app.doIt();</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<br><font size=-1>}</font>
<blockquote dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed
Merks" &lt;<a href="mailto:merks@ca.ibm.com">merks@ca.ibm.com</a>> wrote
in message <a href="news:3EB25ED9.AE2CB299@ca.ibm.com">news:3EB25ED9.AE2CB299@ca.ibm.com</a>...Pae,
<p>I'm seeing this result with the just published 1.1.0 driver:
<blockquote><img SRC="cid:part1.3EB3A206.84713F24@ca.ibm.com" height=411 width=502></blockquote>
The schema isn't valid.
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE="CITE">I have a simple test schema as follows:
<p>&lt;?xml version="1.0" encoding="UTF-8"?>
<br>&lt;!--W3C Schema generated by Pae -->
<br>&lt;xsd:schema xmlns:xsd="<a href="http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchema</a>"
<br>elementFormDefault="qualified">
<br>&nbsp;&lt;xsd:element name="CommonLogin">
<br>&nbsp; &lt;xsd:complexType>
<br>&nbsp;&nbsp; &lt;xsd:sequence>
<br>&nbsp;&nbsp;&nbsp; &lt;xsd:element name="username" ref="usernameRef"/>
<br>&nbsp;&nbsp;&nbsp; &lt;xsd:element name="password" ref="passwordRef"/>
<br>&nbsp;&nbsp; &lt;/xsd:sequence>
<br>&nbsp; &lt;/xsd:complexType>
<br>&nbsp;&lt;/xsd:element>
<br>&nbsp;&lt;xsd:element name="passwordRef" type="xsd:string"/>
<br>&nbsp;&lt;xsd:element name="usernameRef" type="xsd:string"/>
<br>&lt;/xsd:schema>
<p>This is a very simple sample, but it is a valid schema. But when
<br>I use the validate() and getDiagnostics() methods in the XSDSchema
<br>interface it gives me a message as follows:
<p>XSD: The element '#null' is not permitted as constrained by 'XML Schema
';
<br>expecting schema
<p>I do not understand what the message is saying. Any comments?
<p>Pae</blockquote>
</blockquote>
</blockquote>

</body>
</html>

--------------5F7B25AF02F305B397A1F7E4
Content-Type: image/jpeg
Content-ID: <part1.3EB3A206.84713F24@ca.ibm.com>
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\nsmailFJ.jpeg"

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCws MGJGSjpQdGZ6
eHJmcG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAq MF40NF7GhHCE
xsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbG xsbGxsb/wAAR
CAGbAfYDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcI CQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS 0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1 dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW 19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcI CQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMz UvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0 dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU 1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDXghR49zbiST/EfU0m23yQ BKcHHG81Ja/6
kf7zfzNVLrfsTY5wGkLRrJsZueoPt6e9NK4FpIYJEDIWKnoQ5/xpfs0Xo3/f Z/xqKy2bmMbM
UZEcZ75zzjt2qMXc+1kYBbgkbYvLyRnJ67sNwDzkdPXikBZ+zRejf99n/Gj7 NF6N/wB9n/Gq
a31w+eI027VYMuTuLsmeD2xnHPpnvS/bZyJnHlhYELMNpy5DODg54zs9+veg C39mi9G/77P+
NH2aL0b/AL7P+NUEup4hIkMQZY2kdycYwZH4yWGPu9ef8b883lxs6FW2H5l7 n2HvyMDv075o
APs0Xo3/AH2f8aPs0Xo3/fZ/xqFriZWhLGMRPt/eKpdSSeFGDx2+YjBz26Uy 3kkmuraaQptk
gZlVVIKglDgnPP6UATyQxIudrH/gZpm2L+43/fw1NP8AcH1rJvJZbecG2Jlk dSWhOSAAPvD0
/r9aQGhti/uN/wB/DTDGBI65bAPHzH0B/rUdntNurLMZt3zFyep+nb6VM/8A r5f94fyFAxvl
j1b/AL6NHlj1b/vo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+ jTqKAG+WPVv+
+jR5Y9W/76NOooAb5Y9W/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igB vlj1b/vo0eWP
Vv8Avo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPV v++jR5Y9W/76
NOooAb5Y9W/76NHlj1b/AL6NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/AL6N Hlj1b/vo06ig
Bvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+jTqKAG+WPVv++jR5Y9W/ 76NOooAb5Y9W
/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/vo0eWPVv8Avo06 igBvlj1b/vo0
eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPVv++jR5Y9W/76NOooAb5Y 9W/76NHlj1b/
AL6NOooAb5Y9W/76NHlj1b/vo06igCvOTEV2MRnOcnP86KS76p+P9KKBF+1/ 1I/3m/majktG
kBVmiZNxYK8W7Gfx96hREIJKqTuPUe9O8uP+4v5U7gWIYnR3d3DFgBwuMYz/ AI0otoBEYhBG
I2OSgQYJ+lNdbaNlVkjDOcKu0ZP0FMcwRyBWtvlyFMmwbQT0Hqeo6DHP1oAm WCFF2pFGo44C
gdDkfrzTPscBn84xIXwMZUfKQScj3yaT/Q/+mH39nb73p9fahfsbruTyGHHI wepwP14oAkaC
FipaKMlCWUlRwSckj8ad5abt2xc53Zx3xjP5cVCVgFwsJgXLIXDbRjggEfqK k8iH/nkn/fIo
ABBCJBIIo94zhtoyM5zz+J/OhIIY5GkSKNXbqwUAn8ah8yw8vzN9tszt3ZXG fTNO/wBD87yf
3Hm/3ON3r0oAklUsoAGeagFuVZmEYDN94jGT9adusgwXNvuLbAMrkt6fXkUM 1ksvlMbcSZA2
ErnJ6cUANW3KZ2RhdxycYGT60j/6+X/eH8hUgFqZzCEiLgZIG3I6dR170f6H 53k/uPN/ucbv
XpQBHRUg+xs4QeQWJK7RjOR1H4U3zLDzPL322/O3blc59MUrANoprz2y3Bh+ ysSJFjyIxjJG
f0HWpf8ARvtPkeSN+0tkx4GBjv369qLAMoqx5EP/ADyT/vkVX8y33f8AHt+7 37PM2rtznGOu
evHT9KLAFFNee2W4MP2ViRIseRGMZIz+g61a8iH/AJ5J/wB8iiwFeipP9D87 yf3Hm/3ON3r0
oH2NnCDyCxJXaMZyOo/CiwEdFSH7GJDGfI3jGV4yM4xx+I/Oj/Q/O8n9x5v9 zjd69KLAR0Us
slpE4TZGz7lUqu3K5IAJHpyPzp4FqZzCEiLgZIG3I6dR170WAjoqQfY2cIPI LEldoxnI6j8K
R2skZlc26sgywJUED3/MfnRYBlFO8yw8zy99tvzt25XOfTFRvPbLcGH7KxIk WPIjGMkZ/Qda
LAOoprzQr5n+hMfLkEZwqck4xjn3H5/WkeeJHKf2fKxAYjCJ8wU4JAznuPrR YB9FN86Hz2iF
kxKvtJCp7c4znHzDt3q15EP/ADyT/vkUWAr0UeZb7v8Aj2/d79nmbV25zjHX PXjp+lNee2W4
MP2ViRIseRGMZIz+g60WAdRTnMEcgVrb5chTJsG0E9B6nqOgxz9aei20jMqp GWQ4ZdoyPqKL
ARUVY8iH/nkn/fIo8iH/AJ5J/wB8iiwFeirHkQ/88k/75FHkQ/8APJP++RRY CvRVjyIf+eSf
98ijyIf+eSf98iiwFeirHkQ/88k/75FHkQ/88k/75FFgK9FWPIh/55J/3yKP Ih/55J/3yKLA
V6KseRD/AM8k/wC+RR5EP/PJP++RRYCvRVjyIf8Ankn/AHyKPIh/55J/3yKL AV6KseRD/wA8
k/75FHkQ/wDPJP8AvkUWAr0VY8iH/nkn/fIo8iH/AJ5J/wB8iiwFeipngh2/ 6pOo/hFQbYv+
eUfPtQMWioJlTz4FCKAScgDrxUb3FsjlWj5Bx90UWGouWiQ676p+P9KKLtFR lAUDrnAooJJ4
/un/AHj/ADp1Nj+6f94/zp1AyXyWjmMkTAhz86vknr2PbqeOn05NOeMyTLuA MSjP3urZ4yMd
vr+HQ055Y42VWYBnOFXufoKDIBMsWDuZSw9MAj/EUxFb7PN9s+0Yj+/jZuON uMbun3+30496
rtp8zo2Y4AzCYZDE4L9D0/D6flWpRQBWdJzepIqRmNVK5LkHBKknGPb1qzVV 70L5n7iU+XII
zjbyTjGOfcfn9akFwPOEbRyKGJVXIGGIycevY9scfSgCP7M/2rOV+z58zb33 /Tpjv67uaiWy
dZuUDp5pkyZ3HVt33MY4/XFWGufnwkMki7gpdAMA5x65474/oanoAqwRTR3c 7mOLbK+dwc7s
BQAMY9vXvUf2WZp8lI1XzN2VlYjGc/cIxk+vrz1qb7WC2FhlZd+wOqgjOcHv kY55Ixx9KkM8
IkMZlj3jGV3DIzjHH4j86AInSc3qSKkZjVSuS5BwSpJxj29aZ9nmx5OI/K83 zN+47vv78bcf
h19/apo7mN5WjJ2OrlArEZbAByOeeCKd58PneT5sfm/3Nw3evSgCo9tOWnZY 4d0kyOCXIJVc
cH5f9n9T+Nn7NH5m/dLnOcec+Pyzj8Kcs8LruSWNhxyGB6nA/Xijz4fO8nzY /N/ubhu9elAD
vLTdu2LnO7OO+MZ/LioHSc3qSKkZjVSuS5BwSpJxj29as1E9zAjMrzxqyDLA uAQPf8x+dAC/
vvtH/LPyNnvu3Z/LGKr/AGebHk4j8rzfM37ju+/vxtx+HX39qsefD53k+bH5 v9zcN3r0oE8L
OEEsZYkrtDDOR1H4UAO8tN27Yuc7s474xn8uKdUfnw+d5Pmx+b/c3Dd69KT7 TAGC+fHuLbAN
4yW9PryKAKq2TrNygdPNMmTO46tu+5jHH64oe2nLTsscO6SZHBLkEquOD8v+ z+p/G358PneT
5sfm/wBzcN3r0pqXdu8zQrNGZFO0pu5z9KAIlgkVhGY4XjEpkDsSSCWJ4XHX nGc+/tSfZ5se
TiPyvN8zfuO77+/G3H4dff2qx58PneT5sfm/3Nw3evSmS3cUThNwZ9yqVVhl ckAEjPTkfnQB
XltZynlosLKs3nKzE5J37sdOOpGefpzxM6Tm9SRUjMaqVyXIOCVJOMe3rVmo IbuKXau4JIxI
EbMN3BIPAPsaAK7205adljh3STI4JcglVxwfl/2f1P4xypJ5i2wjDBZxKHKN 3fcecYGATzk9
MY5q613bLu3XEQ2na2XHB9D+R/KpqAIfs0fmb90uc5x5z4/LOPwqTy03bti5 zuzjvjGfy4qA
Xg81kaGRVRxGXO3GTjHfPOR271L58PneT5sfm/3Nw3evSgCB7aRpXA2eXJKk pYk5BXbxjHP3
eue/tUjxyG9ikATy1RlJLHOSQemP9n170/z4fO8nzY/N/ubhu9elSUAVYLYp eT3EkcYZz8rK
xJ24AweP9kH8fzk+zR+Zv3S5znHnPj8s4/CpqKAKP2N/P3bIs+Zv8/P7zGc7 enp8vXp+VXPL
Tdu2LnO7OO+MZ/LikSWORmVWBZDhl7j6in0ARPGZJl3AGJRn73Vs8ZGO31/D oab5LSTCSVgA
h+RUyD17nv0HHT68Gp6KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKAGyE
Bck4AIyT9az3EMjBmlOR0w4GKvyqrxlXUMD2IzVf7Lb/APPCL/vgf5/z+YBW lZWubfawOCe+
f4aZJYLJIz+cRuOcbP8A69WzbwqMrDGD6hR/n/P5t8uP+4v5UXsXCcoO8SG9 OXU+uaKbdKF2
BQAOen4UUiCxH90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51fJPXse3U8dPp yakKAzK+0ZVS
N2eRkjjH4fpQ8scbKrMAznCr3P0FJ58P/PWP7+z7w+96fX2piG/Zo/M37pc5 zjznx+WcfhR9
mj8zfulznOPOfH5Zx+FK1zAsvlNPGJMgbC4zk9OKbLdxROE3Bn3KpVWGVyQA SM9OR+dAEEti
73ZlDrtLhj6/wH/2mP8Avo+nMphka7WRljUIT8653MuDhSMdOc9eo6ek/mJ5 nl71343bc849
cUxrmBZfKaeMSZA2FxnJ6cUAMSOaJikflmIuX3MTuGTkjHfqecjr3xzYqMzw iQxmWPeMZXcM
jOMcfiPzpsdzG8rRk7HVygViMtgA5HPPBFAEDWsjz+Y0durbw3nICHCg8Dpz kDB5HXp6uWCR
WEZjheMSmQOxJIJYnhcdecZz7+1T+fD53k+bH5v9zcN3r0oWeF13JLGw45DA 9TgfrxQBUe2n
LTsscO6SZHBLkEquOD8v+z+p/EWydZuUDp5pkyZ3HVt33MY4/XFW/Ph87yfN j83+5uG716VJ
QBltp8zo2Y4AzCYZDE4L9D0/D6flT5bKcuSmziUSAmVgG+bONo4H15zjPU8X fPh/56x/f2fe
H3vT6+1Czwuu5JY2HHIYHqcD9eKAJKzJUk8xbYRhgs4lDlG7vuPOMDAJ5yem Mc1fMoFwsJVs
shcNxjggEfqKBPCzhBLGWJK7QwzkdR+FAFRbJ1m5QOnmmTJncdW3fcxjj9cU PbTlp2WOHdJM
jglyCVXHB+X/AGf1P42muYFl8pp4xJkDYXGcnpxT/MTzPL3rvxu255x64oAp LZOs3KB080yZ
M7jq277mMcfripYIpo7udzHFtlfO4Od2AoAGMe3r3qbz4f8AnrH9/Z94fe9P r7UjXMCy+U08
YkyBsLjOT04oApy2U5clNnEokBMrAN82cbRwPrznGep4srHNHcSFPLKSOHLE nI4Axjv0657+
3Ky3cUThNwZ9yqVVhlckAEjPTkfnS/a7bzPL+0Rb87du8Zz6YoArLZOs3KB0 80yZM7jq277m
McfriiW1nKeWiwsqzecrMTknfux046kZ5+nPEr3yLcGHypSRIseQvGSM/oOt SR3MbytGTsdX
KBWIy2ADkc88EUATVQitZwnlusKq03nMyk5B37sdOegGePpxzZS7t3maFZoz Ip2lN3OfpQl3
bvM0KzRmRTtKbuc/SgCBo99+YwH8skSyZQ4LLjHPv8p4/ue5q7UYnhZwgljL EldoYZyOo/Cn
eYnmeXvXfjdtzzj1xQBWitT9qmlmUYZwyASMRwAOV6Z4z3/SoZbKcuSmziUS AmVgG+bONo4H
15zjPU8XXl2zRxgZL5J56Ad/zIH40PLtmjjAyXyTz0A7/mQPxoAqLZOs3KB0 80yZM7jq277m
Mcfrir9Qtd2y7t1xENp2tlxwfQ/kfyoa7tl3briIbTtbLjg+h/I/lQAfZo/M 37pc5zjznx+W
cfhR9mj8zfulznOPOfH5Zx+FDXdsu7dcRDadrZccH0P5H8qmoAg8lpJhJKwA Q/IqZB69z36D
jp9eDU9Qtd2y7t1xENp2tlxwfQ/kfyoFwPOEbRyKGJVXIGGIycevY9scfSgC aiio/Ph87yfN
j83+5uG716UASUVF9pgDBfPj3FtgG8ZLen15FD3MCMyvPGrIMsC4BA9/zH50 AS0VG8u2aOMD
JfJPPQDv+ZA/Gmi4HnCNo5FDEqrkDDEZOPXse2OPpQBNRVf7Wu7/AFcnl79n mcbc5xjrnrx0
/Sj7Wu7/AFcnl79nmcbc5xjrnrx0/SgCxRUX2hPtPkYfftLZKkDAx379e1K8 u2aOMDJfJPPQ
Dv8AmQPxoAkoqq96Edk8iUsrhQo25bOcEc9OP5+hxHJqkUczxGKUusix4G3k tkjHPtQBeoqK
GfzZJU8t18ptpLYwTjPGD6EfnTPtYLYWGVl37A6qCM5we+RjnkjHH0oAsUVG Z4RIYzLHvGMr
uGRnGOPxH502O5jeVoydjq5QKxGWwAcjnngigCaio/Ph87yfNj83+5uG716U LPC67kljYcch
gepwP14oAkoqPz4fO8nzY/N/ubhu9elQvfItwYfKlJEix5C8ZIz+g60AWH+6 aj/z/n/P/wBe
R/umo/8AP+f8/wD1wBr/AHT/AJ/z/n8Y6kf7p/z/AJ/z+MdIZWu+qfj/AEoo u+qfj/SigRPH
90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51fJPXse3U8dPpyai+zzfbPtGI/ v42bjjbjG7p9
/t9OPerHnw+d5Pmx+b/c3Dd69KDKBcLCVbLIXDcY4IBH6imIq/ZZmnyUjVfM 3ZWViMZz9wjG
T6+vPWkltZynlosLKs3nKzE5J37sdOOpGefpzxb8+HzvJ82Pzf7m4bvXpQs8 LruSWNhxyGB6
nA/XigBvlv8AbPM2RbPL27sfPnPTPp/Wq/2WZp8lI1XzN2VlYjGc/cIxk+vr z1q158PneT5s
fm/3Nw3evSgTws4QSxliSu0MM5HUfhQBAsEisIzHC8YlMgdiSQSxPC4684zn 39qje2nLTssc
O6SZHBLkEquOD8v+z+p/Gyl3bvM0KzRmRTtKbuc/So/to89ohBKSr7SRt9uc Zzj5h270ARLZ
Os3KB080yZM7jq277mMcfriom0+Z0bMcAZhMMhicF+h6fh9PyrQ8+HzvJ82P zf7m4bvXpSfa
YAwXz49xbYBvGS3p9eRQBTlspy5KbOJRICZWAb5s42jgfXnOM9Txo1Gs8Lru SWNhxyGB6nA/
Xio1u1MzxtHIgV9m9sbSeCBwe+R1+nXigCP7PN9s+0Yj+/jZuONuMbun3+30 496rtp8zo2Y4
AzCYZDE4L9D0/D6flWh58PneT5sfm/3Nw3evSoX1C3W4WBXV3JwQHX5TnHc/ oMmgBXSc3qSK
kZjVSuS5BwSpJxj29ahe2nLTsscO6SZHBLkEquOD8v8As/qfxt+fD53k+bH5 v9zcN3r0o8+H
/nrH9/Z94fe9Pr7UAVfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVjy3+2eZsi2eX t3Y+fOemfT+t
OMoFwsJVsshcNxjggEfqKal3bvM0KzRmRTtKbuc/SgCH7PN9s+0Yj+/jZuON uMbun3+30496
b9lmafJSNV8zdlZWIxnP3CMZPr689asfa7bzPL+0Rb87du8Zz6YqN75FuDD5 UpIkWPIXjJGf
0HWgCKW1nKeWiwsqzecrMTknfux046kZ5+nPFn7NH5m/dLnOcec+Pyzj8KV7 mBGZXnjVkGWB
cAge/wCY/Ol8+H/nrH9/Z94fe9Pr7UAO8tN27Yuc7s474xn8uKpPbTlp2WOH dJMjglyCVXHB
+X/Z/U/jb8+HzvJ82Pzf7m4bvXpQZQLhYSrZZC4bjHBAI/UUARrHNHcSFPLK SOHLEnI4Axjv
0657+3Isc0dxIU8spI4csScjgDGO/Trnv7cyCeMzmEMpcDJAYZHTqOveoX1C 3W4WBXV3JwQH
X5TnHc/oMmgCBI3mu7kCIKhmRjIwIJCheBxyMqe/f87flv8AbPM2RbPL27sf PnPTPp/WnCeM
zmEMpcDJAYZHTqOvejz4fO8nzY/N/ubhu9elADYUbzJZZBhnO0D0UZx/U/jj tRCjeZLLIMM5
2geijOP6n8cdqSW7iicJuDPuVSqsMrkgAkZ6cj86Y98i3Bh8qUkSLHkLxkjP 6DrQAySzke5L
iQCNnVyOeo29v+Af+PH05JLOR7kuJAI2dXI56jb2/wCAf+PH05tJLHIzKrAs hwy9x9RT6AKU
lnI9yXEgEbOrkc9Rt7f8A/8AHj6c2f332j/ln5Gz33bs/ljFSUUAUpLOR7ku JAI2dXI56jb2
/wCAf+PH05kMMjXayMsahCfnXO5lwcKRjpznr1HT0s0UAR/vvtH/ACz8jZ77 t2fyxiq/2ebH
k4j8rzfM37ju+/vxtx+HX39quUUAVYIpo7udzHFtlfO4Od2AoAGMe3r3qtKk nmLbCMMFnEoc
o3d9x5xgYBPOT0xjmtOigCGFG8yWWQYZztA9FGcf1P447VGiXP2ou6xFckbt 5JCdgBjjtnn+
mLVFAFP7PNjycR+V5vmb9x3ff3424/Dr7+1H2ebHk4j8rzfM37ju+/vxtx+H X39quUUAVnSc
3qSKkZjVSuS5BwSpJxj29afCjeZLLIMM52geijOP6n8cdqmooApyR3ZnMqiL KnagLnGw9c/L
1OB+Q98xy2k7SSyBIixlV0JkI+Ubcg8d9g/P89CigCmI7tZpSgiCySq+7ech RtBGNvcD170j
Wsjz+Y0durbw3nICHCg8DpzkDB5HXp63aKAKiwSKwjMcLxiUyB2JJBLE8Ljr zjOff2qN7act
Oyxw7pJkcEuQSq44Py/7P6n8b9FAFBbJ1m5QOnmmTJncdW3fcxjj9cVE2nzO jZjgDMJhkMTg
v0PT8Pp+ValFAGdLZTlyU2cSiQEysA3zZxtHA+vOcZ6ni/5abt2xc53Zx3xj P5cU6igBr/dN
R/5/z/n/AOvI/wB01H/n/P8An/64A1/un/P+f8/jHUj/AHT/AJ/z/n8Y6Qyt d9U/H+lFF31T
8f6UUCJ4/un/AHj/ADp1Nj+6f94/zp1Axi2TrNygdPNMmTO46tu+5jHH64qZ 0nN6kipGY1Ur
kuQcEqScY9vWrNMeWONlVmAZzhV7n6CmIprZOs3KB080yZM7jq277mMcfrio m0+Z0bMcAZhM
MhicF+h6fh9PyrQ8+H/nrH9/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oAqrZO s3KB080yZM7j
q277mMcfrih7actOyxw7pJkcEuQSq44Py/7P6n8bEt3FE4TcGfcqlVYZXJAB Iz05H51L5ieZ
5e9d+N23POPXFAEKxzR3EhTyykjhyxJyOAMY79Oue/ty2C2KXk9xJHGGc/Ky sSduAMHj/ZB/
H85vPh87yfNj83+5uG716UGUC4WEq2WQuG4xwQCP1FAFf7PNjycR+V5vmb9x 3ff3424/Dr7+
1Ogimju53McW2V87g53YCgAYx7evepvPh87yfNj83+5uG716ULPC67kljYcc hgepwP14oAz2
0+Z0bMcAZhMMhicF+h6fh9PyqwLeZppfMEaxPKsmVYlvl24GMcfdB/T3qx58 PneT5sfm/wBz
cN3r0oE8LOEEsZYkrtDDOR1H4UAVFsnWblA6eaZMmdx1bd9zGOP1xUqpci8e Xy4tjBU/1hyA
CecbffpUiXdu8zQrNGZFO0pu5z9KmoAzpbKcuSmziUSAmVgG+bONo4H15zjP U8ST205aTyvL
KvKkvzEg5Xb8vT/Z6/hjvVkTws4QSxliSu0MM5HUfhR58PneT5sfm/3Nw3ev SgCJ0nN6kipG
Y1UrkuQcEqScY9vWlWOaO4kKeWUkcOWJORwBjHfp1z39uZFnhddySxsOOQwP U4H68UefD53k
+bH5v9zcN3r0oAb9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd8Yz+XFR/a7bz PL+0Rb87du8Z
z6YqN75FuDD5UpIkWPIXjJGf0HWgCvcxSxRqpjV41uBIGVWZuX3HgDjAJ5z2 96lntpy0nleW
VeVJfmJByu35en+z1/DHepmufnwkMki7gpdAMA5x65474/oaf58PneT5sfm/ 3Nw3evSgClLZ
TlyU2cSiQEysA3zZxtHA+vOcZ6niw6Tm9SRUjMaqVyXIOCVJOMe3rUqzwuu5 JY2HHIYHqcD9
eKFnhddySxsOOQwPU4H68UAROk5vUkVIzGqlclyDglSTjHt60ipci8eXy4tj BU/1hyACecbf
fpU3nw+d5Pmx+b/c3Dd69KBPCzhBLGWJK7QwzkdR+FAETpOb1JFSMxqpXJcg 4JUk4x7etQrZ
Os3KB080yZM7jq277mMcfrirUM/mySp5br5TbSWxgnGeMH0I/Ol8+HzvJ82P zf7m4bvXpQBU
ltZynlosLKs3nKzE5J37sdOOpGefpzxd8tN27Yuc7s474xn8uKY9zAjMrzxq yDLAuAQPf8x+
dKJ4zOYQylwMkBhkdOo696AGeS0kwklYAIfkVMg9e579Bx0+vBqeoxPCzhBL GWJK7QwzkdR+
FQvfItwYfKlJEix5C8ZIz+g60AWqKYkscjMqsCyHDL3H1FPoAKKKKACiiigA ooooAKKKKACi
iigAooooAKKKKACiiigAooooAKKKKACiiigBr/dNR/5/z/n/AOvI/wB01H/n /P8An/64A1/u
n/P+f8/jHUj/AHT/AJ/z/n8Y6Qytd9U/H+lFF31T8f6UUCJ4/un/AHj/ADp1 Nj+6f94/zp1A
y5UHktHMZImBDn51fJPXse3U8dPpyanopiKf2eb7Z9oxH9/GzccbcY3dPv8A b6ce9N+yzNPk
pGq+ZuysrEYzn7hGMn19eetW3ljjZVZgGc4Ve5+gpPPh/wCesf39n3h970+v tQBUltZynlos
LKs3nKzE5J37sdOOpGefpzxZ8t/tnmbItnl7d2Pnznpn0/rStcwLL5TTxiTI GwuM5PTimy3c
UThNwZ9yqVVhlckAEjPTkfnQBXWydZuUDp5pkyZ3HVt33MY4/XFTOk5vUkVI zGqlclyDglST
jHt61P5ieZ5e9d+N23POPXFNM8IkMZlj3jGV3DIzjHH4j86AKi2TrNygdPNM mTO46tu+5jHH
64qJtPmdGzHAGYTDIYnBfoen4fT8q0PPh87yfNj83+5uG716ULPC67kljYcc hgepwP14oAqL
ZOs3KB080yZM7jq277mMcfrih7actOyxw7pJkcEuQSq44Py/7P6n8bYnhZwg ljLEldoYZyOo
/CgygXCwlWyyFw3GOCAR+ooAjWOaO4kKeWUkcOWJORwBjHfp1z39ubFR+fD5 3k+bH5v9zcN3
r0o8+H/nrH9/Z94fe9Pr7UAVHtpy07LHDukmRwS5BKrjg/L/ALP6n8Wy2U5c lNnEokBMrAN8
2cbRwPrznGep4me+KOU+yXDEBiMBfmCnBIGc9x9ala7tl3briIbTtbLjg+h/ I/lQBRbT5nRs
xwBmEwyGJwX6Hp+H0/KpVsnWblA6eaZMmdx1bd9zGOP1xVsTws4QSxliSu0M M5HUfhR58Pne
T5sfm/3Nw3evSgBv2aPzN+6XOc4858flnH4VJ5abt2xc53Zx3xjP5cUiSxyM yqwLIcMvcfUU
+gCukc0TFI/LMRcvuYncMnJGO/U85HXvjmP7PNjycR+V5vmb9x3ff3424/Dr 7+1XKKAMttPm
dGzHAGYTDIYnBfoen4fT8qG0+Z0bMcAZhMMhicF+h6fh9PyrUooAp/Z5seTi PyvN8zfuO77+
/G3H4dff2pj205adljh3STI4JcglVxwfl/2f1P436KAKYju1mlKCILJKr7t5 yFG0EY29wPXv
R9nmx5OI/K83zN+47vv78bcfh19/arlFAGZKknmLbCMMFnEoco3d9x5xgYBP OT0xjmrTpOb1
JFSMxqpXJcg4JUk4x7etWaKAKD205adljh3STI4JcglVxwfl/wBn9T+N3y03 bti5zuzjvjGf
y4p1FAEHktJMJJWACH5FTIPXue/QcdPrwanoooAKKKKACiiigAooooAKKKKA CiiigAooooAK
KKKACiiigAooooAKKKKACiiigBr/AHTUf+f8/wCf/ryP901H/n/P+f8A64A1 /un/AD/n/P4x
1I/3T/n/AD/n8Y6Qytd9U/H+lFF31T8f6UUCJ4/un/eP86dTY/un/eP86dQM uUUUUxEHktHM
ZImBDn51fJPXse3U8dPpyai+zzfbPtGI/v42bjjbjG7p9/t9OPerlMeWONlV mAZzhV7n6CgC
p9lmafJSNV8zdlZWIxnP3CMZPr689aSW1nKeWiwsqzecrMTknfux046kZ5+n PFvz4f8AnrH9
/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oATy3+2eZsi2eXt3Y+fOemfT+tRLB IrCMxwvGJTIH
YkkEsTwuOvOM59/apJbuKJwm4M+5VKqwyuSACRnpyPzqXzE8zy9678btuece uKAKv2ebHk4j
8rzfM37ju+/vxtx+HX39qrtp8zo2Y4AzCYZDE4L9D0/D6flV9rmBZfKaeMSZ A2FxnJ6cUvnw
+d5Pmx+b/c3Dd69KAKSRvNd3IEQVDMjGRgQSFC8DjkZU9+/52HSc3qSKkZjV SuS5BwSpJxj2
9ake5gRmV541ZBlgXAIHv+Y/Ol8+H/nrH9/Z94fe9Pr7UAVFsnWblA6eaZMm dx1bd9zGOP1x
T/s832z7RiP7+Nm4424xu6ff7fTj3qx58PneT5sfm/3Nw3evSgTws4QSxliS u0MM5HUfhQAx
45DexSAJ5aoykljnJIPTH+z696haPffmMB/LJEsmUOCy4xz7/KeP7nuasmeE SGMyx7xjK7hk
Zxjj8R+dHnw+d5Pmx+b/AHNw3evSgCkkbzXdyBEFQzIxkYEEhQvA45GVPfv+ blsnWblA6eaZ
Mmdx1bd9zGOP1xVxJY5GZVYFkOGXuPqKfQBB5LSTCSVgAh+RUyD17nv0HHT6 8Gp6KKACiiig
AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKK
KKACiiigAooooAKKKKAGv901H/n/AD/n/wCvI/3TUf8An/P+f/rgDX+6f8/5 /wA/jHUj/dP+
f8/5/GOkMrXfVPx/pRRd9U/H+lFAieP7p/3j/OnVSaJmlYlpfmJ2ojkZ68+3 9T265WFf3yEN
Kpxu2PIWyOeR/h9D65NCuV2ubFFFFMkKg8lo5jJEwIc/Or5J69j26njp9OTU 9FAFP7PN9s+0
Yj+/jZuONuMbun3+30496b9lmafJSNV8zdlZWIxnP3CMZPr689a59Li9dWZZ 5yqjLHecD8aX
zr//AJ63P3d/3m+76/T3rTkJ5jeltZynlosLKs3nKzE5J37sdOOpGefpzxZ8 t/tnmbItnl7d
2Pnznpn0/rXMiXUWj8xXujHjO4FsfnTo3v5EL/aJ1TaSGZmw2ASQD68H8qOT zDmNz7LM0+Sk
ar5m7KysRjOfuEYyfX1560i2TrNygdPNMmTO46tu+5jHH64rA+03vl+Z59xs zjdvbGfTNL51
/wCV5vm3Pl/39zY/OjkDmNu5ilijVTGrxrcCQMqszcvuPAHGATznt71LPbTl pPK8sq8qS/MS
Dldvy9P9nr+GO9c+Li7MBlF3LgMFK+Y2eQSD+ho86/8AK83zbny/7+5sfnRy BzG8tk6zcoHT
zTJkzuOrbvuYxx+uKHtpy07LHDukmRwS5BKrjg/L/s/qfxwWmv0OGluVPPBZ h0GT+nNHnX/l
eb5tz5f9/c2Pzo5A5jolgkVhGY4XjEpkDsSSCWJ4XHXnGc+/tUa2TrNygdPN MmTO46tu+5jH
H64rBM1+E3mW5CgA5LNjB6GnM+opEJWkuRGRkNubGKOTzDmOk8lpJhJKwAQ/ IqZB69z36Djp
9eDU9cf9tuv+fmb/AL+Gnma/CbzLchQAclmxg9DR7MOY62iuS86/8rzfNufL /v7mx+dDTX6H
DS3Knngsw6DJ/TmjkDmOtorkvOv/ACvN8258v+/ubH507fqXl+Zuu9mM7stj Hrmjk8w5jq6K
5dTetAJftrAFGkwZWzgHH6npUXnX/wDz1ufu7/vN931+nvRyeYcx1tFcmJdR aPzFe6MeM7gW
x+dJ51/5Xm+bc+X/AH9zY/Ojk8w5jraK5PzdR2lt91gLuJy3T1+lIZr8JvMt yFAByWbGD0NH
J5hzHW0VyXnX/leb5tz5f9/c2Pzoaa/Q4aW5U88FmHQZP6c0cgcx1tFcl51/ 5Xm+bc+X/f3N
j86lU3rQCX7awBRpMGVs4Bx+p6UcnmHMdRRXH/bbr/n5m/7+GpPN1HaW33WA u4nLdPX6UezD
mOsorkvOv/K83zbny/7+5sfnUqjUWgMxnuFQDIJL/MMZ7fzNHJ5hzHUUVym/ UvL8zdd7MZ3Z
bGPXNPU3rQCX7awBRpMGVs4Bx+p6UuTzC51FFcl51/8A89bn7u/7zfd9fp70 ol1Fo/MV7ox4
zuBbH50+TzDmOsorkvOv/K83zbny/wC/ubH50vm6jtLb7rAXcTlunr9KOTzD mOsorkjNfhN5
luQoAOSzYweho86/8rzfNufL/v7mx+dHIHMdbRXJNNfocNLcqeeCzDoMn9Oa POv/ACvN8258
v+/ubH50cgcx1tFcvuu/LVhfMxZC4QO+cDOe2OMHv2qLzr/yvN8258v+/ubH 50cgcx1tFcuo
1FoDMZ7hUAyCS/zDGe38zQpvWgEv21gCjSYMrZwDj9T0pcnmFzqKK5JLm6aK SQ3UwCYA+c8k
9uvoCfwpHuL1FVmnnCsMqd5wfxp8gcx11FFFZlBRRRQA1/umo/8AP+f8/wD1 5H+6aj/z/n/P
/wBcAa/3T/n/AD/n8Y6kf7p/z/n/AD+NczxgkZPHH3TSGk3sRXfVPx/pRRdE MIyOhBI/SigB
u7MxdFLyR5AQd/mzn9enXp60Iha8Ezh03ZIVhyT3/D3+lOMcJ5aBJJGLYG0Z PJ70sAg3jFuk
UmNy8DkeoNLS5peXKalFFFUZBRRRQBx+/wAyIJIhyo+QpgfmO/Qc9frxUvmx /ZfI+f7md20Z
3Zzt6/d/rzXQyQWSMqvDAGc/KuwZb8KTy9P/ALlt9/Z0X73p9fatOdBZGB5y CHALsxj24Mag
5xj7+c49vTApYpog+9jMC8XlFVAwBt25689jjj/HdZNOWXymW1EhI+Qhc57c U2UWEb7PIgdy
yhlVVyuSACR6cj86OdBZHOZH2Ty8y79+7bn5MY649asG5DRDBKP5ezAhU/w4 +9nPP9a6D7PZ
eZ5fkwb8btu0Zx64pvl6f53k7Lbzf7mF3evSjnQWRzieV9keMtJ5jENgIMcA 8Zz71KbkNEME
o/l7MCFT/Dj72c8/1reMNr9oEJtI8spcNsXBwQD+PIo8vT/O8nZbeb/cwu71 6Uc6CyMVbuNX
Xa0xUGIgFQMhOo6/j9fzqM3IaIYJR/L2YEKn+HH3s55/rW8senyLuVLZgccg Kc5OB+uRR5en
+d5Oy283+5hd3r0o5kFkYKTRbYFZpsJE6kBB1bPI5/2v0HrUJMckEYYPvRCo AAweSc57demP
510gj09n2BLYsWI24XJI6j6imqNNkmaFVtjIGwU2rnP070c4WRy21vSrqTRb YFZpsJE6kBB1
bPI5/wBr9B610X2O1/59of8AvgVGI9PZ9gS2LFiNuFySOo+oocwtEw4rmIKA 4fmMoQI1JHy4
zuPJ+nHX83Ldxq67WmKgxEAqBkJ1HX8fr+dbXl6f53k7Lbzf7mF3evShY9Pk XcqWzA45AU5y
cD9cijmQWRgm5DRDBKP5ezAhU/w4+9nPP9ar+dL5ezZHjGP9UufzxnNdN5en +d5Oy283+5hd
3r0puNM8zy8Wm/djb8uc+mPWjnQWRzGZMYy2MYxntnOPz5qzDLEFj8wSArG0 Y2gHg7uev+10
/XtW07WS3Bh+w7j5ix5EQIJIz+g61MI9PZ9gS2LFiNuFySOo+oo5wsjA85BD gF2Yx7cGNQc4
x9/Oce3pgUpuQ0QwSj+XswIVP8OPvZzz/Wt7y9P87ydlt5v9zC7vXpSMmnLL 5TLaiQkfIQuc
9uKOdBZHPStHJbQory7o0wFKjbknJ5z7+nYVIk0W2BWabCROpAQdWzyOf9r9 B61usmnLL5TL
aiQkfIQuc9uKRhpi7twtBtbDZ28Hng+/Bo5wsjFiuYgoDh+YyhAjUkfLjO48 n6cdfzct3Grr
taYqDEQCoGQnUdfx+v51teXp/neTstvN/uYXd69KQpp27aVtdxbbjC5Len15 /WjmQWRhG5DR
DBKP5ezAhU/w4+9nPP8AWqmZMYy2MYxntnOPz5rppRYRvs8iB3LKGVVXK5IA JHpyPzpjtZLc
GH7DuPmLHkRAgkjP6DrRzoLI5ra3pVmVo5LaFFeXdGmApUbck5POff07Cum+ x2v/AD7Q/wDf
AqIpp27aVtdxbbjC5Len15/WnzhaJhG5DRDBKP5ezAhU/wAOPvZzz/Woz5LW iR7pd6ln/wBW
MEkDjr7frXReXp/neTstvN/uYXd69KheTThcCAQwO5bDABODnHOTyevAyaXO gsjn/Ol8vZsj
xjH+qXP54zmmZkxjLYxjGe2c4/PmunxpnmeXi037sbflzn0x61G7WS3Bh+w7 j5ix5EQIJIz+
g60+dBZGLDLEFj8wSArG0Y2gHg7uev8AtdP17UvnIIcAuzGPbgxqDnGPv5zj 29MCt8R6ez7A
lsWLEbcLkkdR9RR5en+d5Oy283+5hd3r0pc6CyME3IaIYJR/L2YEKn+HH3s5 5/rUcrRyW0KK
8u6NMBSo25Jyec+/p2FdCyacsvlMtqJCR8hC5z24oZNOWXymW1EhI+Qhc57c Uc6CyMJJotsC
s02EidSAg6tnkc/7X6D1p0VzEFAcPzGUIEakj5cZ3Hk/Tjr+e0w0xd24Wg2t hs7eDzwffg07
y9P87ydlt5v9zC7vXpRzoLIxVu41ddrTFQYiAVAyE6jr+P1/OozchohglH8v ZgQqf4cfeznn
+tbpTTt20ra7i23GFyW9Prz+tNlFhG+zyIHcsoZVVcrkgAkenI/OjmQWRh+e ggiiAYjyyrNs
AYZJPBznvjHGR9aU3IaIYJR/L2YEKn+HH3s55/rWz/onmujWIVVkCM5RMZOM d885HbvUvl6f
53k7Lbzf7mF3evSjnQWRzp8lrRI90u9Sz/6sYJIHHX2/WoMyYxlsYxjPbOcf nzXRvJpwuBAI
YHcthgAnBzjnJ5PXgZNDtZLcGH7DuPmLHkRAgkjP6DrRzhaJz8pzHFHHyqjc T6scZ/oPw96U
Psi2RISXHzF8H8h269ev0zXSvBarNHGLWFi+SfkHAHfp6kD8aVILKRnVYYCy n5l2DI+oo5ws
i1RRRWYBRRRQA1/umo/8/wCf8/8A15H+6aj/AM/5/wA//XAGv90/5/z/AJ/G qbdSSd7DJz2/
wq0/3T/n/P8An8apuFBI2McHHb/GguPN0I7lQqxqOgBH8qKLlgyxsOhBP8qK RL3HMrBhMil2
TICj13Eg02OJ5Lo3Dq6Drhxzk/0qxH90/wC8f506lYvndrFyiiiqMwoopjyx xsqswDOcKvc/
QUAVztimaSOVcFgJFcknqeh7Ac8dOD05NREEXhuC0XEm0puONuMbun3+CM9M AjPGatMypNDG
qAkg9ONqjr+u0Y9/agS24xiSIYbyxgjg/wB36+1BXulMofPJYxIqy5JWViOu fuEYzwcnscnq
KSZH2GNTAVjn80M7HOd+7HTjuM89D74uGe2SVYjLCsg+UJuAIz2x+VNkuYIX VBtZwVTahGUB
IAyM9OR+lAe6IXUXhkPk7Amwtj5856Z/u8H8QfSqwhVJm3bXQTbyTcOMZbd9 zGOOfyPTmr4M
QkEYKBwuQoxkL9PSmGe2SVYjLCsg+UJuAIz2x+VAe6QySP8AbVkHk+XGChJc g8kEnGO209/X
pg1CIVSZt210E28k3DjGW3fcxjjn8j05q6JbcTCESRCUDAQEbgOvSkae2iYq 0sKNGvILAFRx
+Q6fpQHumc9sSj7hbqx84E7icF+h+72wQfYH0IqUQqkzbtroJt5JuHGMtu+5 jHHP5HpzV0S2
4xiSIYbyxgjg/wB36+1AltxMIRJEJQMBARuA69KA90pSo+64YCDc06NkuQcL jg/L/sn2GT6V
OHMVxKVeLY8gZmYnK8AEAY5+6ec8c+lTLLb71RJItwyiqCM8dQP04o823WTy xJEHQAbcjKg4
xx+X6UB7o4zxDOXHBwf8/gfyPpVCVH3XDAQbmnRslyDhccH5f9k+wyfSrolt xMIRJEJQMBAR
uA69KWN4WYrGV3R/KVxgr+HYcfjQHumfNC29irx/LMHyZWAPzZxtHA6HnnoS ec4Y9sSj7hbq
x84E7icF+h+72wQfYH0IrWCqMYUDAwMDoKAqjGFAwMDA6CgPdM4QqkzbtroJ t5JuHGMtu+5j
HHP5HpzVkpbiQuZZMhskec+M/TOMcH24PpVgKoxhQMDAwOgoCqMYUDAwMDoK A90jL24YsdmQ
2Scd8Yz+QIz7H0qjkPdXIwiIZkYyNkMduOAMcjKt345P10gqjGFAwMDA6CgK oxhQMDAwOgoD
3TMmhbexV4/lmD5MrAH5s42jgdDzz0JPOcPKHzyWMSKsuSVlYjrn7hGM8HJ7 HJ6itAKoxhQM
DAwOgoCqMYUDAwMDoKA90zyh88ljEirLklZWI65+4RjPByexyeopZYs3Lv56 iMyKzDJ6jb27
/wCr6+7enN8KoxhQMDAwOgoCqMYUDAwMDoKA90okEAwlovKE3mF9x3ff3424 9iM57E9sU6Fj
Fd3DsIQsknLBzuAC4HG3noe/HPoauBVGMKBgYGB0FAVRjCgYGBgdBQHumdMj 7DGpgKxz+aGd
jnO/djpx3Geeh98XS9uGLHZkNknHfGM/kCM+x9KkCqMYUDAwMDoKAqjGFAwM DA6CgPdGmeIZ
y44OD/n8D+R9KqwsYru4dhCFkk5YOdwAXA4289D3459DVwKoxhQMDAwOgoCq MYUDAwMDoKA9
0zhCqTNu2ugm3km4cYy277mMcc/kenNSiSRLySUiHYdqH94cgAtzjb7n8jzV wKoxhQMDAwOg
oCqMYUDAwMDoKA90rlLcSFzLJkNkjznxn6Zxjg+3B9KkL24YsdmQ2Scd8Yz+ QIz7H0qQKoxh
QMDAwOgoCqMYUDAwMDoKA90zch7q5GERDMjGRshjtxwBjkZVu/HJ+qTQtvYq 8fyzB8mVgD82
cbRwOh556EnnONMKoxhQMDAwOgoCqMYUDAwMDoKA90zyh88ljEirLklZWI65 +4RjPByexyeo
oKHzyWMSKsuSVlYjrn7hGM8HJ7HJ6itAKoxhQMDAwOgoCqMYUDAwMDoKA90o SxZuXfz1EZkV
mGT1G3t3/wBX1929OVIIBhLReUJvML7ju+/vxtx7EZz2J7Yq8FUYwoGBgYHQ UBVGMKBgYGB0
FAe6U4WMV3cOwhCyScsHO4ALgcbeeh78c+hqKZH2GNTAVjn80M7HOd+7HTju M89D740QqjGF
AwMDA6CgKoxhQMDAwOgoD3TPMX+kTzM6AiUMq+YxVsDGGGMfw5zzgj/ZpBCq TNu2ugm3km4c
Yy277mMcc/kenNaIVRjCgYGBgdBQFUYwoGBgYHQUB7pTEkiXkkpEOw7UP7w5 ABbnG33P5Hmr
Be3DFjsyGyTjvjGfyBGfY+lSBVGMKBgYGB0FAVRjCgYGBgdBQHuleJ0WSaWV gGLbcZ6KM4/9
mPtkjtSHa83mTSqBG2FVCQRz3PccdOnBznGRZCqMYUDAwMDoKAqjGFAwMDA6 CgPdHUUUUEhR
RRQA1/umo/8AP+f8/wD15H+6aj/z/n/P/wBcAa/3T/n/AD/n8a5gjJJweefv GrD/AHT/AJ/z
/n8Y6Q02titdAKIwOgBA/Sii76p+P9KKAJ4/un/eP86dTY/un/eP86dQBcoo opiCoPJaOYyR
MCHPzq+SevY9up46fTk1I8scbKrMAznCr3P0FI8u2aOMDJfJPPQDv+ZA/GgB sKN5kssgwzna
B6KM4/qfxx2qH7PN9s+0Yj+/jZuONuMbun3+30496sefD/z1j+/s+8Pven19 qRrmBZfKaeMS
ZA2FxnJ6cUAVvsszT5KRqvmbsrKxGM5+4RjJ9fXnrSS2s5Ty0WFlWbzlZick 792OnHUjPP05
4sS3cUThNwZ9yqVVhlckAEjPTkfnUvmJ5nl71343bc849cUAR+W/2zzNkWzy 9u7Hz5z0z6f1
qv8AZZmnyUjVfM3ZWViMZz9wjGT6+vPWrRnhEhjMse8Yyu4ZGcY4/EfnR58P neT5sfm/3Nw3
evSgCotk6zcoHTzTJkzuOrbvuYxx+uKZcxSxRqpjV41uBIGVWZuX3HgDjAJ5 z296vLPC67kl
jYcchgepwP14oE8LOEEsZYkrtDDOR1H4UAVp7actJ5XllXlSX5iQcrt+Xp/s 9fwx3pq2TrNy
gdPNMmTO46tu+5jHH64q2ZQLhYSrZZC4bjHBAI/UUefD53k+bH5v9zcN3r0o AqPbTlp2WOHd
JMjglyCVXHB+X/Z/U/jIsEisIzHC8YlMgdiSQSxPC4684zn39qn8+H/nrH9/ Z94fe9Pr7VA9
8Ucp9kuGIDEYC/MFOCQM57j60ARrZOs3KB080yZM7jq277mMcfrirHktJMJJ WACH5FTIPXue
/QcdPrwaVru2XduuIhtO1suOD6H8j+VOE8LOEEsZYkrtDDOR1H4UASUVH58P neT5sfm/3Nw3
evSlSWORmVWBZDhl7j6igB9FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUANf7pqP/P8An/P/ ANeR/umo/wDP
+f8AP/1wBr/dP+f8/wCfxjqR/un/AD/n/P4x0hla76p+P9KKLvqn4/0ooETx /dP+8f506mx/
dP8AvH+dOoGXKKKY8scbKrMAznCr3P0FMRH5LRzGSJgQ5+dXyT17Ht1PHT6c mlhRvMllkGGc
7QPRRnH9T+OO1OeXbNHGBkvknnoB3/MgfjR58P8Az1j+/s+8Pven19qAK/2e b7Z9oxH9/Gzc
cbcY3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561Za5gWXymnjEmQNhc ZyenFNlu4onC
bgz7lUqrDK5IAJGenI/OgCvLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/bP M2RbPL27sfPn
PTPp/WpPMTzPL3rvxu255x64pvnw+d5Pmx+b/c3Dd69KAIFgkVhGY4XjEpkD sSSCWJ4XHXnG
c+/tSfZ5seTiPyvN8zfuO77+/G3H4dff2qwZQLhYSrZZC4bjHBAI/UUefD53 k+bH5v8Ac3Dd
69KAM9tPmdGzHAGYTDIYnBfoen4fT8qekbzXdyBEFQzIxkYEEhQvA45GVPfv +d1Z4XXcksbD
jkMD1OB+vFHnw+d5Pmx+b/c3Dd69KAInSc3qSKkZjVSuS5BwSpJxj29ahWyd ZuUDp5pkyZ3H
Vt33MY4/XFWxPCzhBLGWJK7QwzkdR+FNS7t3maFZozIp2lN3OfpQBD9nm+2f aMR/fxs3HG3G
N3T7/b6ce9SvHIb2KQBPLVGUksc5JB6Y/wBn171IkscjMqsCyHDL3H1FPoAp NHvvzGA/lkiW
TKHBZcY59/lPH9z3NRpG813cgRBUMyMZGBBIULwOORlT37/no0UAUFsnWblA 6eaZMmdx1bd9
zGOP1xVjyWkmEkrABD8ipkHr3PfoOOn14NT0UAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UANf7pqP/P8A
n/P/ANeR/umo/wDP+f8AP/1wBr/dP+f8/wCfxjqR/un/AD/n/P4x0hla76p+ P9KKLvqn4/0o
oETx/dP+8f506mx/dP8AvH+dOoGXKg8lo5jJEwIc/Or5J69j26njp9OTU9Me WONlVmAZzhV7
n6CmIZCjeZLLIMM52geijOP6n8cdqh+zzfbPtGI/v42bjjbjG7p9/t9OPerH nw/89Y/v7PvD
73p9faka5gWXymnjEmQNhcZyenFAFb7LM0+Skar5m7KysRjOfuEYyfX1560k trOU8tFhZVm8
5WYnJO/djpx1Izz9OeLEt3FE4TcGfcqlVYZXJABIz05H51L5ieZ5e9d+N23P OPXFAEflv9s8
zZFs8vbux8+c9M+n9arLZOs3KB080yZM7jq277mMcfrirfnw+d5Pmx+b/c3D d69KDKBcLCVb
LIXDcY4IBH6igCJ0nN6kipGY1UrkuQcEqScY9vWoVsnWblA6eaZMmdx1bd9z GOP1xVvz4fO8
nzY/N/ubhu9elCzwuu5JY2HHIYHqcD9eKAM9tPmdGzHAGYTDIYnBfoen4fT8 qlWydZuUDp5p
kyZ3HVt33MY4/XFW/Ph87yfNj83+5uG716UCeFnCCWMsSV2hhnI6j8KAKj20 5adljh3STI4J
cglVxwfl/wBn9T+M6xzR3EhTyykjhyxJyOAMY79Oue/ty5Lu3eZoVmjMinaU 3c5+lTUAQeS0
kwklYAIfkVMg9e579Bx0+vBqeoxPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3 Dd69KAJKKjWe
F13JLGw45DA9TgfrxR58PneT5sfm/wBzcN3r0oAkoqH7XbeZ5f2iLfnbt3jO fTFRvfItwYfK
lJEix5C8ZIz+g60AWqKjE8LOEEsZYkrtDDOR1H4UefD53k+bH5v9zcN3r0oA koqJrmBZfKae
MSZA2FxnJ6cUNcwLL5TTxiTIGwuM5PTigCWioWu7Zd264iG07Wy44PofyP5U 7z4fO8nzY/N/
ubhu9elAElFRfaYAwXz49xbYBvGS3p9eRTZbuKJwm4M+5VKqwyuSACRnpyPz oAnoqsLweayN
DIqo4jLnbjJxjvnnI7d6l8+HzvJ82Pzf7m4bvXpQBJRVV9Qt1uFgV1dycEB1 +U5x3P6DJoe+
Rbgw+VKSJFjyF4yRn9B1oAtUUVCl3bvM0KzRmRTtKbuc/SgCaioWu7Zd264i G07Wy44PofyP
5U4Tws4QSxliSu0MM5HUfhQBJRUfnw+d5Pmx+b/c3Dd69Kb9rtvM8v7RFvzt 27xnPpigCaiq
r3yLcGHypSRIseQvGSM/oOtTefD/AM9Y/v7PvD73p9fagCSiomuYFl8pp4xJ kDYXGcnpxTZb
uKJwm4M+5VKqwyuSACRnpyPzoAnopvmJ5nl71343bc849cUxrmBZfKaeMSZA 2FxnJ6cUAS0V
Cl3bvM0KzRmRTtKbuc/Sl+0wBgvnx7i2wDeMlvT68igCWioxPGZzCGUuBkgM Mjp1HXvQJ4Wc
IJYyxJXaGGcjqPwoAkoqJ7mBGZXnjVkGWBcAge/5j86ie+Rbgw+VKSJFjyF4 yRn9B1oAtUVG
8u2aOMDJfJPPQDv+ZA/GlSWORmVWBZDhl7j6igB9FFFABRRRQA1/umo/8/5/ z/8AXkf7pqP/
AD/n/P8A9cAa/wB0/wCf8/5/GOpH+6f8/wCf8/jHSGVrvqn4/wBKKLvqn4/0 ooETx/dP+8f5
06mx/dP+8f506gZcqDyWjmMkTAhz86vknr2PbqeOn05NT0x5Y42VWYBnOFXu foKYit9nm+2f
aMR/fxs3HG3GN3T7/b6ce9N+yzNPkpGq+ZuysrEYzn7hGMn19eetWvPh/wCe sf39n3h970+v
tSNcwLL5TTxiTIGwuM5PTigCrLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/ AGzzNkWzy9u7
Hz5z0z6f1pJbuKJwm4M+5VKqwyuSACRnpyPzqXzE8zy9678btueceuKAKS2T rNygdPNMmTO4
6tu+5jHH64qZ0nN6kipGY1UrkuQcEqScY9vWpfPh87yfNj83+5uG716UGUC4 WEq2WQuG4xwQ
CP1FAFRbJ1m5QOnmmTJncdW3fcxjj9cVE2nzOjZjgDMJhkMTgv0PT8Pp+VaH nw+d5Pmx+b/c
3Dd69KFnhddySxsOOQwPU4H68UAVFsnWblA6eaZMmdx1bd9zGOP1xQ9tOWnZ Y4d0kyOCXIJV
ccH5f9n9T+Nvz4fO8nzY/N/ubhu9elAnhZwgljLEldoYZyOo/CgCNY5o7iQp 5ZSRw5Yk5HAG
Md+nXPf25sVCl3bvM0KzRmRTtKbuc/SpqAKD205adljh3STI4JcglVxwfl/2 f1P4tlspy5Kb
OJRICZWAb5s42jgfXnOM9TxdE8LOEEsZYkrtDDOR1H4UefD53k+bH5v9zcN3 r0oAz20+Z0bM
cAZhMMhicF+h6fh9PyqVbJ1m5QOnmmTJncdW3fcxjj9cVbWeF13JLGw45DA9 TgfrxR58PneT
5sfm/wBzcN3r0oAb9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd8Yz+XFR/a7b zPL+0Rb87du8
Zz6YqN75FuDD5UpIkWPIXjJGf0HWgCBI3mu7kCIKhmRjIwIJCheBxyMqe/f8 yWynLkps4lEg
JlYBvmzjaOB9ec4z1PF3z4f+esf39n3h970+vtSNcwLL5TTxiTIGwuM5PTig Ct9lmafJSNV8
zdlZWIxnP3CMZPr689aPsszT5KRqvmbsrKxGM5+4RjJ9fXnrVrz4fO8nzY/N /ubhu9elJ9pg
DBfPj3FtgG8ZLen15FAFeSzke5LiQCNnVyOeo29v+Af+PH05X7PNjycR+V5v mb9x3ff3424/
Dr7+1WBPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3Dd69KAIYIpo7udzHFtlf O4Od2AoAGMe3
r3qKW1nKeWiwsqzecrMTknfux046kZ5+nPFtZ4XXcksbDjkMD1OB+vFHnw+d 5Pmx+b/c3Dd6
9KAKv2SU3E0x25MgdF8xirYAGGGMDpnPODj05RbJ1m5QOnmmTJncdW3fcxjj 9cVMLweayNDI
qo4jLnbjJxjvnnI7d6l8+HzvJ82Pzf7m4bvXpQBCqXIvHl8uLYwVP9YcgAnn G336VY8tN27Y
uc7s474xn8uKrvqFutwsCuruTggOvynOO5/QZND3yLcGHypSRIseQvGSM/oO tAFqq6xzR3Eh
TyykjhyxJyOAMY79Oue/tzYqFLu3eZoVmjMinaU3c5+lAEDR778xgP5ZIlky hwWXGOff5Tx/
c9zUaRvNd3IEQVDMjGRgQSFC8DjkZU9+/wCdtru2XduuIhtO1suOD6H8j+VO E8LOEEsZYkrt
DDOR1H4UAVFsnWblA6eaZMmdx1bd9zGOP1xVn7NH5m/dLnOcec+Pyzj8Kd58 PneT5sfm/wBz
cN3r0pv2u28zy/tEW/O3bvGc+mKAJPLTdu2LnO7OO+MZ/Liqv2eb7Z9oxH9/ GzccbcY3dPv9
vpx70575FuDD5UpIkWPIXjJGf0HWpvPh/wCesf39n3h970+vtQBV+yzNPkpG q+ZuysrEYzn7
hGMn19eetJLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tni01zAsvlNPGJMgbC4zk9 OKbLdxROE3Bn
3KpVWGVyQASM9OR+dAC+W/2zzNkWzy9u7Hz5z0z6f1qv9lmafJSNV8zdlZWI xnP3CMZPr689
aueYnmeXvXfjdtzzj1xTGuYFl8pp4xJkDYXGcnpxQAxY5o7iQp5ZSRw5Yk5H AGMd+nXPf25b
BFNHdzuY4tsr53BzuwFAAxj29e9SJd27zNCs0ZkU7Sm7nP0pftMAYL58e4ts A3jJb0+vIoAj
dJzepIqRmNVK5LkHBKknGPb1qF7actOyxw7pJkcEuQSq44Py/wCz+p/G2J4z OYQylwMkBhkd
Oo696BPCzhBLGWJK7QwzkdR+FAFCVJPMW2EYYLOJQ5Ru77jzjAwCecnpjHNa Plpu3bFzndnH
fGM/lxTHuYEZleeNWQZYFwCB7/mPzqJ75FuDD5UpIkWPIXjJGf0HWgCSFG8y WWQYZztA9FGc
f1P447UnktJMJJWACH5FTIPXue/QcdPrwae8u2aOMDJfJPPQDv8AmQPxpUlj kZlVgWQ4Ze4+
ooAfRRRQAUUUUANf7pqP/P8An/P/ANeR/umo/wDP+f8AP/1wBr/dP+f8/wCf xjqR/un/AD/n
/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/dP8AvH+dOoGXKg8lo5jJ EwIc/Or5J69j
26njp9OTUjyxxsqswDOcKvc/QUjy7Zo4wMl8k89AO/5kD8aYiv8AZ5vtn2jE f38bNxxtxjd0
+/2+nHvTfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVrz4f8AnrH9/Z94fe9Pr7Uj XMCy+U08YkyB
sLjOT04oAqy2s5Ty0WFlWbzlZick792OnHUjPP054s+W/wBs8zZFs8vbux8+ c9M+n9aSW7ii
cJuDPuVSqsMrkgAkZ6cj86l8xPM8veu/G7bnnHrigCktk6zcoHTzTJkzuOrb vuYxx+uKmdJz
epIqRmNVK5LkHBKknGPb1qRrmBZfKaeMSZA2FxnJ6cUpnhEhjMse8Yyu4ZGc Y4/EfnQBUWyd
ZuUDp5pkyZ3HVt33MY4/XFRNp8zo2Y4AzCYZDE4L9D0/D6flV6O5jeVoydjq 5QKxGWwAcjnn
ginefD53k+bH5v8Ac3Dd69KAKi2TrNygdPNMmTO46tu+5jHH64oe2nLTsscO 6SZHBLkEquOD
8v8As/qfxtrPC67kljYcchgepwP14o8+HzvJ82Pzf7m4bvXpQBGsc0dxIU8s pI4csScjgDGO
/Trnv7c2KYkscjMqsCyHDL3H1FPoAoPbTlp2WOHdJMjglyCVXHB+X/Z/U/i2 WynLkps4lEgJ
lYBvmzjaOB9ec4z1PGjRQBltp8zo2Y4AzCYZDE4L9D0/D6flUq2TrNygdPNM mTO46tu+5jHH
64q/RQBD9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd8Yz+XFOooApT205aTyv LKvKkvzEg5Xb
8vT/AGev4Y70n2WZp8lI1XzN2VlYjGc/cIxk+vrz1q9RQBQWydZuUDp5pkyZ 3HVt33MY4/XF
SwRTR3c7mOLbK+dwc7sBQAMY9vXvVqigCg9tOWnZY4d0kyOCXIJVccH5f9n9 T+LZbKcuSmzi
USAmVgG+bONo4H15zjPU8aNFAGW2nzOjZjgDMJhkMTgv0PT8Pp+VSrZOs3KB 080yZM7jq277
mMcfrir9FAFH7JKbiaY7cmQOi+YxVsADDDGB0znnBx6cotk6zcoHTzTJkzuO rbvuYxx+uKv0
UAVVS5F48vlxbGCp/rDkAE842+/SrHlpu3bFzndnHfGM/lxTqKACq6xzR3Eh TyykjhyxJyOA
MY79Oue/tzYooApNHvvzGA/lkiWTKHBZcY59/lPH9z3NRpG813cgRBUMyMZG BBIULwOORlT3
7/no0UAUFsnWblA6eaZMmdx1bd9zGOP1xVn7NH5m/dLnOcec+Pyzj8KmooAb 5abt2xc53Zx3
xjP5cVV+zzfbPtGI/v42bjjbjG7p9/t9OPerlFAFH7LM0+Skar5m7KysRjOf uEYyfX1560kt
rOU8tFhZVm85WYnJO/djpx1Izz9OeL9FAEPlv9s8zZFs8vbux8+c9M+n9ar/ AGWZp8lI1XzN
2VlYjGc/cIxk+vrz1q9RQBXWOaO4kKeWUkcOWJORwBjHfp1z39uWwRTR3c7m OLbK+dwc7sBQ
AMY9vXvVqigCs6Tm9SRUjMaqVyXIOCVJOMe3rUL205adljh3STI4JcglVxwf l/2f1P436KAM
yVJPMW2EYYLOJQ5Ru77jzjAwCecnpjHNaPlpu3bFzndnHfGM/lxTqKAIYUbz JZZBhnO0D0UZ
x/U/jjtSeS0kwklYAIfkVMg9e579Bx0+vBqeigAooooAKKKKAGv901H/AJ/z /n/68j/dNR/5
/wA/5/8ArgDX+6f8/wCf8/jHUj/dP+f8/wCfxjpDK131T8f6UUXfVPx/pRQI nj+6f94/zp1N
j+6f94/zp1AyXyWjmMkTAhz86vknr2PbqeOn05NLCjeZLLIMM52geijOP6n8 cdqmopiKf2eb
7Z9oxH9/GzccbcY3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561eooAo S2s5Ty0WFlWb
zlZick792OnHUjPP054s+W/2zzNkWzy9u7Hz5z0z6f1qaigCj9lmafJSNV8z dlZWIxnP3CMZ
Pr689aesEisIzHC8YlMgdiSQSxPC4684zn39qt0UAUHtpy07LHDukmRwS5BK rjg/L/s/qfxF
snWblA6eaZMmdx1bd9zGOP1xV+igDLbT5nRsxwBmEwyGJwX6Hp+H0/Kny2U5 clNnEokBMrAN
82cbRwPrznGep40aKAIPJaSYSSsAEPyKmQevc9+g46fXg1PRRQAUUUUAFFFF ABRRRQAUUUUA
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRR
RQAUUUUAFFFFABRRRQA1/umo/wDP+f8AP/15H+6aj/z/AJ/z/wDXAGv90/5/ z/n8Y6kf7p/z
/n/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/dP+8f506gZcooopiCi iigAooooAKKK
KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigA
ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAGv 93HqRVUzIDhi
oPu3/wBerUhAXJOACMk/WqDGBnVmKHb70AE0hM8ABwrE5wevBqWq8zh7qAhg xy2cH2NWKQyt
d9U/H+lFF31T8f6UUCJ4/un/AHj/ADp1Nj+6f94/zp1Ax7y7BkngAEkk1Bdz uLN3QlSVyCCc
jNLMYnyrOvQd+nFQ3bp9jdVdSQgHX0oEaGT6n/P+f89zJ9T/AJ/z/nun+f8A P+f/AK5/n/P+
f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuALk+p/wA/5/z3 Mn1P+f8AP+e6
f5/z/n/65/n/AD/n/wCuALk+p/z/AJ/z3Mn1P+f8/wCe6f5/z/n/AOuf5/z/ AJ/+uALk+p/z
/n/PcyfU/wCf8/57p/n/AD/n/wCuf5/z/n/64AuT6n/P+f8APcyfU/5/z/nu n+f8/wCf/rn+
f8/5/wDrgC5Pqf8AP+f89zJ9T/n/AD/nun+f8/5/+uf5/wA/5/8ArgC5Pqf8 /wCf89zJ9T/n
/P8Anun+f8/5/wDrn+f8/wCf/rgC5Pqf8/5/z3Mn1P8An/P+e6f5/wA/5/8A rn+f8/5/+uAL
k+p/z/n/AD3Mn1P+f8/57p/n/P8An/65/n/P+f8A64AuT6n/AD/n/PcyfU/5 /wA/57p/n/P+
f/rn+f8AP+f/AK4AuT6n/P8An/PcyfU/5/z/AJ7p/n/P+f8A65/n/P8An/64 AuT6n/P+f89z
J9T/AJ/z/nun+f8AP+f/AK5/n/P+f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/ AJ/+uf5/z/n/
AOuALk+p/wA/5/z3Mn1P+f8AP+e6f5/z/n/65/n/AD/n/wCuALk+p/z/AJ/z 3Mn1P+f8/wCe
6f5/z/n/AOuf5/z/AJ/+uALk+p/z/n/PcyfU/wCf8/57p/n/AD/n/wCuf5/z /n/64AuT6n/P
+f8APcyfU/5/z/nun+f8/wCf/rn+f8/5/wDrgC5Pqf8AP+f89zJ9T/n/AD/n un+f8/5/+uf5
/wA/5/8ArgC5Pqf8/wCf89zJ9T/n/P8Anun+f8/5/wDrn+f8/wCf/rgC5Pqf 8/5/z3Mn1P8A
n/P+e6f5/wA/5/8Arn+f8/5/+uALk+p/z/n/AD3Mn1P+f8/57p/n/P8An/65 /n/P+f8A64Au
T6n/AD/n/PcyfU/5/wA/57p/n/P+f/rn+f8AP+f/AK4AuT6n/P8An/PcyfU/ 5/z/AJ7p/n/P
+f8A65/n/P8An/64AuT6n/P+f89zJ9T/AJ/z/nun+f8AP+f/AK5/n/P+f/rg C5Pqf8/5/wA9
zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuAGTxyeo7/AOf8/rE0+1lU8FunJ/xq QkDknABySf8A
P+f51SYXdWdlIXoM8E0AFy5eWGNuUYncp5B4pfs8H/PGP/vkVHK6tdW+1geW 6fQ1YoGMWGJG
DLEikdwoFPoooArXfVPx/pRRd9U/H+lFAidFXYCQckn+Ijufel2r/dP/AH03 +NRThTaEO4Rc
nLN0+8eD7dqqxyKgCLJHBDlv3sQCq5+XGM5Hc/8AfNAy39ktv+fdP1/xo+yW 3/Pun6/41VW7
cIBKwSZnjwh4ODtzgH3LUJNJ5Fu01x5YkTcZMKMHAwOeO5P4fhQIv4Hof++2 /wAaaVzJjLAb
Qcbz6n3qpDNM14VZ0xuYGPPIAzg4xkduScc+4q1MAQ4Zyg8vlgcY5bnNAC7f 9p/++zRt/wBp
/wDvs1neZ5SEW5twpYbpowEUcHgnkZ4H/fVPE055M3QIPlAIO5yuckc8YPp+ FAy9t/2n/wC+
zRt/2n/77NZ893IkWRIFaPf99gokwxAHTk8c4x1/JZ2ma3k+dn81pYwmBxgN jGBnPyigC/t/
2n/77NG3/af/AL7NUjNiX5bgGMqu6b5eB8/fGOoA/wDr1IkxN2qed5ikDAQq eMZywxkfUcdP
xALO3/af/vs0bf8Aaf8A77NNkIKyKzbF2csDgjrzmqkTrErvF5BRCGd4UADD nI78jr+lAF3b
/tP/AN9mjb/tP/32apPJcKJXaQq0cQk2ALjJLHB47YA4oEhihlAlIcytwSoE eWJBJwcAj1z1
FAF3b/tP/wB9mjb/ALT/APfZqlHcu8SMZRzkOyjIUBiN2ffH074wDV+gBu3/ AGn/AO+zRt/2
n/77NOooAbt/2n/77NG3/af/AL7NOooAbt/2n/77NG3/AGn/AO+zTqKAG7f9 p/8Avs0bf9p/
++zTqKAG7f8Aaf8A77NG3/af/vs06igBu3/af/vs0bf9p/8Avs06igBu3/af /vs0bf8Aaf8A
77NOooAbt/2n/wC+zRt/2n/77NOooAbt/wBp/wDvs0bf9p/++zTqKAG7f9p/ ++zRt/2n/wC+
zTqKAG7f9p/++zRt/wBp/wDvs06igBu3/af/AL7NG3/af/vs06igBu3/AGn/ AO+zRt/2n/77
NOooAbt/2n/77NG3/af/AL7NOooAbt/2n/77NG3/AGn/AO+zTqKAG7f9p/8A vs0bf9p/++zT
qKAG7f8Aaf8A77NG3/af/vs06igBu3/af/vs0bf9p/8Avs06igBu3/af/vs0 bf8Aaf8A77NO
ooAY8SupV9zA9QWJqP7Hb/8APJanooAhW1gRgyxhSO44qTyx6t/30adRQA3y x6t/30aPLHq3
/fRp1FAFW6UKUxnv1JNFLd9U/H+lFAiXzVQbWV8gnoAR1J9aPtEf92T/AL5H +NV7i+S2cLIW
ywJG1M8ZI9R6VF/a0PrJ/wB+x/8AFVXK2F0XftEf92T/AL5H+NH2iP8Auyf9 8j/Gqf8Aa0Pr
J/37H/xVH9qw+sn/AH7H/wAVRyvsF0XPtEf92T/vkf400zrvJ2PjAA4+v+NV f7Vh9ZP+/Y/+
Ko/tSH1k/wC/Y/8AiqOV9gui19oX+4/5UfaF/uP+VVv7Uh9X/wC/Y/8AiqP7 Uh9X/wC/Y/8A
iqOVhdFn7Qv9x/yo+0L/AHH/ACqt/acXq/8A37H/AMVS/wBpxer/APfsf/FU crC6LH2hf7j/
AJUfaF/uP+VV/wC0ovV/+/Y/+Ko/tKL1f/v2P/iqOVhdE4nG8tsfBAHT60PK jjDRuRkHp3By
Kg/tGL1f/v2P/iqX+0YvV/8Av2P/AIqjlYXRP9oX+4/5UfaF/uP+VQf2jF6v /wB+x/8AFUf2
hH6v/wB+x/8AFUcrC6J/tC/3H/Kj7Qv9x/yqH+0I/V/+/Y/+Ko+3x+rf9+// ALKjlYXRN9oX
+4/5UfaF/uP+VQ/b4/Vv+/f/ANlR9uj/ALzf9+//ALKjlYXRN9oX+4/5UfaF /uP+VRfbo/7z
f9+//sqPtsf95v8Av3/9lRysLol+0L/cf8qPtC/3H/Kovtqf3m/79/8A2VL9 tT+83/fv/wCy
o5WF0SfaF/uP+VH2hf7j/lUf2xP7zf8Afv8A+yo+2J/eb/v3/wDZUcrC6JPt C/3H/Kj7Qv8A
cf8AKo/taf3m/wC/f/2VL9rT+83/AH7/APsqOVhdD/tC/wBx/wAqPtC/3H/K mfa0/vN/37/+
yo+1L/eP/fv/AOyo5WF0P+0L/cf8qPtC/wBx/wAqb9qX+8f+/f8A9lR9pX+8 f+/f/wBlRysL
od9oX+4/5UfaF/uP+VN+0r/eP/fv/wCyo+0L/eP/AH7/APsqOVhdDvtC/wBx /wAqPtC/3H/K
k+0L/eP/AHx/9lR56/3j/wB8f/Xo5WF0L9oX+4/5UfaF/uP+VJ54/vH/AL4/ +vS+eP7x/wC+
P/r0crC6D7Qv9x/yo+0L/cf8qPOH98/98f8A16POH98/98f/AF6OVhdB9oX+ 4/5UfaF/uP8A
lS+aP75/74/+vR5o/v8A/jn/ANejlYXQn2hf7j/lR9oX+4/5UvmD+/8A+Of/ AF6PM/2//HP/
AK9HKxXQn2hf7j/lR9oX+4/5U7zP9v8A8c/+vRv/ANv/AMc/+vRysd0N+0L/ AHH/ACo+0L/c
f8qdv/2//HP/AK9Lu/2//HP/AK9HKxXQz7Qv9x/yo+0L/cf8qfu/2/8Axz/6 9Gf9v/xz/wCv
RysLoZ9oX+4/5UfaF/uP+VPyf7//AI5/9elyf7//AI5/9ejlYXRH9oX+4/5U faF/uP8AlUnP
9/8A8c/+vRz/AHx/3x/9elysd0R/aF/uP+VH2hf7j/lUnP8AfH/fH/16Of74 /wC+P/r0crC6
I/tC/wBx/wAqPtC/3H/KpOf74/74/wDr0c/3x/3x/wDXo5WF0R/aF/uP+VH2 hf7j/lUnP98f
98f/AF6Of74/74/+vRysLoj+0L/cf8qPtC/3H/KpOf74/wC+P/r0c/3x/wB8 f/XoswuitO/m
bcKwxnqKKs8/3x/3x/8AXooswujKvv8AkJWv4f8AobVr/P521U7t95Pl745x 9Kx78hdRtiSA
BySf99qtXN2EmVoJbdgzEZ3cqTnk+2DVuLlZIV7DtSZjYzq6xBkZR+7z69+K yYIopI5GeR1K
DcQqA8ZA9R61qX8tqNLMMEyOwIJ55Y55J96yI5NiSrjO9dv05B/pVx20JYqw SMgZQGBOMKQT
1x061KLVvLboXDKBtcEYIbOSPpTkvdsPl4kHCjCyYUYIOQMcHjr6k0Ne5VlW MYYrncc7gM/e
wBk89fYd+arUWhC0TogdsAHoNwz+XWp4rQP8uX3iPzGCLuPJGAB9Dn8famTT rJEsaq2AersG
IHoDgYHtStMpjJHLPGI2HpgjB/ID8c0agSx2QdypMi8gDemDnKjkZ/2v5VCL aUkgBTg44ccn
0HPJ+lOguzBGFVASDuBJ91P/ALL+tPju/KQpGJVUHc
Re: A Diagnostic Message for the Valid Schema [message #19980 is a reply to message #19870] Sat, 03 May 2003 18:57 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: paechoi.earthlink.net

This is a multi-part message in MIME format.

------=_NextPart_000_0020_01C31184.5E0ECF50
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0021_01C31184.5E0ECF50"


------=_NextPart_001_0021_01C31184.5E0ECF50
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Ed,

You are right. And THANK you.

Regards,


Pae

"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB3A05D.B2B6DA24@ca.ibm.com...
Pae,=20
The editor treats the schema as invalid because it contains this:=20

<xsd:element name=3D"username" ref=3D"usernameRef"/>
So it produces this message from plugin.properties:=20
src-element.2.1 =3D An element reference may not have a name
Which is there because of this constraint in the spec:=20
http://www.w3.org/TR/xmlschema-1/#src-element
Which states the following:=20
2.1 One of ref or name must be present, but not both.
And since ref and name are indeed both present, it's an invalid =
schema.=20
The schema below is valid and the editor reports no errors.=20
=20

Pae Choi wrote:=20

Ed, I don't see why Eclipse/Editor treats the sampel schema as an =
invalid schema. I alsotried other schema, e.g., WSDL.XSD, but throws the =
same message. The following isthe copy of WSDL schema that I enclosed =
for the convenience purpose. Try to seewhat you get. Regards, Pae // =
###################### WSDL Schema ######################<?xml =
version=3D"1.0" encoding=3D"UTF-8"?>=20
<!--=20

Copyright 2001-2002 International Business Machines Corporation, =
Microsoft Corporation. All rights reserved.=20

-->=20

<schema targetNamespace=3D"http://schemas.xmlsoap.org/wsdl/" =
xmlns=3D"http://www.w3.org/2001/XMLSchema" =
xmlns:wsdl=3D"http://schemas.xmlsoap.org/wsdl/" =
elementFormDefault=3D"qualified">=20

<complexType name=3D"tDocumentation" mixed=3D"true">=20

<sequence>=20

<any processContents=3D"lax" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>=20

</sequence>=20

</complexType>=20

<complexType name=3D"tDocumented">=20

<annotation>=20

<documentation>=20

This type is extended by component types=20

to allow them to be documented=20

</documentation>=20

</annotation>=20

<sequence>=20

<element name=3D"documentation" type=3D"wsdl:tDocumentation" =
minOccurs=3D"0"/>=20

</sequence>=20

</complexType>=20

<complexType name=3D"tExtensibleAttributesDocumented" =
abstract=3D"true">=20

<annotation>=20

<documentation>=20

This type is extended by component types=20

to allow attributes from other namespaces to be added.=20

</documentation>=20

</annotation>=20

<complexContent>=20

<extension base=3D"wsdl:tDocumented">=20

<anyAttribute namespace=3D"##other"/>=20

</extension>=20

</complexContent>=20

</complexType>=20

<complexType name=3D"tExtensibleDocumented" abstract=3D"true">=20

<annotation>=20

<documentation>=20

This type is extended by component types=20

to allow attributes from other namespaces to be added.=20

</documentation>=20

</annotation>=20

<complexContent>=20

<extension base=3D"wsdl:tDocumented">=20

<sequence>=20

<any namespace=3D"##other" minOccurs=3D"0" maxOccurs=3D"unbounded"/> =


</sequence>=20

</extension>=20

</complexContent>=20

</complexType>=20

<element name=3D"definitions" type=3D"wsdl:tDefinitions">=20

<key name=3D"message">=20

<selector xpath=3D"wsdl:message"/>=20

<field xpath=3D"@name"/>=20

</key>=20

<key name=3D"portType">=20

<selector xpath=3D"wsdl:portType"/>=20

<field xpath=3D"@name"/>=20

</key>=20

<key name=3D"binding">=20

<selector xpath=3D"wsdl:binding"/>=20

<field xpath=3D"@name"/>=20

</key>=20

<key name=3D"service">=20

<selector xpath=3D"wsdl:service"/>=20

<field xpath=3D"@name"/>=20

</key>=20

<key name=3D"import">=20

<selector xpath=3D"wsdl:import"/>=20

<field xpath=3D"@namespace"/>=20

</key>=20

<key name=3D"port">=20

<selector xpath=3D"wsdl:service/wsdl:port"/>=20

<field xpath=3D"@name"/>=20

</key>=20

</element>=20

<group name=3D"anyTopLevelOptionalElement">=20

<annotation>=20

<documentation>=20

Any top level optional element allowed to appear more then once-=20

any child of definitions element except wsdl:types.=20

Any extensibility element is allowed in any place=20

</documentation>=20

</annotation>=20

<choice>=20

<element name=3D"import" type=3D"wsdl:tImport"/>=20

<element name=3D"types" type=3D"wsdl:tTypes"/>=20

<element name=3D"message" type=3D"wsdl:tMessage">=20

<unique name=3D"part">=20

<selector xpath=3D"wsdl:part"/>=20

<field xpath=3D"@name"/>=20

</unique>=20

</element>=20

<element name=3D"portType" type=3D"wsdl:tPortType"/>=20

<element name=3D"binding" type=3D"wsdl:tBinding"/>=20

<element name=3D"service" type=3D"wsdl:tService"/>=20

</choice>=20

</group>=20

<complexType name=3D"tDefinitions">=20

<complexContent>=20

<extension base=3D"wsdl:tExtensibleDocumented">=20

<sequence>=20

<group ref=3D"wsdl:anyTopLevelOptionalElement" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>=20

</sequence>=20

<attribute name=3D"targetNamespace" type=3D"anyURI" =
use=3D"optional"/>=20

<attribute name=3D"name" type=3D"NCName" use=3D"optional"/>=20

</extension>=20

</complexContent>=20

</complexType>=20

<complexType name=3D"tImport">=20

<complexContent>=20

<extension base=3D"wsdl:tExtensibleAttributesDocumented">=20

<attribute name=3D"namespace" type=3D"anyURI" use=3D"required"/>=20

<attribute name=3D"location" type=3D"anyURI" use=3D"required"/>=20

</extension>=20

</complexContent>=20

</complexType>=20

<complexType name=3D"tTypes">=20

<complexContent>=20

<extension base=3D"wsdl:tExtensibleDocumented"/>=20

</complexContent>=20

</complexType>=20

<complexType name=3D"tMessage">=20

<complexContent>=20

<extension base=3D"wsdl:tExtensibleDocumented">=20

<sequence>=20

<element name=3D"part" type=3D"wsdl:tPart" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>=20

</sequence>=20

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>=20

</extension>=20

</complexContent>=20

</complexType>=20

<complexType name=3D"tPart">=20

<complexContent>=20

<extension base=3D"wsdl:tExtensibleAttributesDocumented">=20

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>=20

<attribute name=3D"element" type=3D"QName" use=3D"optional"/>=20

<attribute name=3D"type" type=3D"QName" use=3D"optional"/>=20

</extension>=20

</complexContent>=20

</complexType>=20

<complexType name=3D"tPortType">=20

<complexContent>=20

<extension base=3D"wsdl:tExtensibleAttributesDocumented">=20

<sequence>=20

<element name=3D"operation" type=3D"wsdl:tOperation" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>=20

</sequence>=20

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>=20

</extension>=20

</complexContent>=20

</complexType>=20

<complexType name=3D"tOperation">=20

<complexContent>=20

<extension base=3D"wsdl:tExtensibleDocumented">=20

<choice>=20

<group ref=3D"wsdl:request-response-one-way-operation"/>=20

<group ref=3D"wsdl:solicit-response-notification-operation"/>=20

</choice>=20

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>=20

<attribute name=3D"parameterOrder" type=3D"NMTOKENS" =
use=3D"optional"/>=20

</extension>=20

</complexContent>=20

</complexType>=20

<group name=3D"optional-response-fault">=20

<choice>=20

<sequence/>=20

<sequence>=20

<element name=3D"output" type=3D"wsdl:tParam"/>=20

<element name=3D"fault" type=3D"wsdl:tFault" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>=20

</sequence>=20

</choice>=20

</group>=20

<group name=3D"request-response-one-way-operation">=20

<sequence>=20

<element name=3D"input" type=3D"wsdl:tParam"/>=20

<group ref=3D"wsdl:optional-response-fault"/>=20

</sequence>=20

</group>=20

<group name=3D"optional-solicit-fault">=20

<choice>=20

<sequence/>=20

<sequence>=20

<element name=3D"input" type=3D"wsdl:tParam"/>=20

<element name=3D"fault" type=3D"wsdl:tFault" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>=20

</sequence>=20

</choice>=20

</group>=20

<group name=3D"solicit-response-notification-operation">=20

<sequence>=20

<element name=3D"output" type=3D"wsdl:tParam"/>=20

<group ref=3D"wsdl:optional-solicit-fault"/>=20

</sequence>=20

</group>=20

<complexType name=3D"tParam">=20

<complexContent>=20

<extension base=3D"wsdl:tExtensibleAttributesDocumented">=20

<attribute name=3D"name" type=3D"NCName" use=3D"optional"/>=20

<attribute name=3D"message" type=3D"QName" use=3D"required"/>=20

</extension>=20

</complexContent>=20

</complexType>=20

<complexType name=3D"tFault">=20

<complexContent>=20

<extension base=3D"wsdl:tExtensibleAttributesDocumented">=20

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>=20

<attribute name=3D"message" type=3D"QName" use=3D"required"/>=20

</extension>=20

</complexContent>=20

</complexType>=20

<complexType name=3D"tBinding">=20

<complexContent>=20

<extension base=3D"wsdl:tExtensibleDocumented">=20

<sequence>=20

<element name=3D"operation" type=3D"wsdl:tBindingOperation" =
minOccurs=3D"0" maxOccurs=3D"unbounded"/>=20

</sequence>=20

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>=20

<attribute name=3D"type" type=3D"QName" use=3D"required"/>=20

</extension>=20

</complexContent>=20

</complexType>=20

<complexType name=3D"tBindingOperationMessage">=20

<complexContent>=20

<extension base=3D"wsdl:tExtensibleDocumented">=20

<attribute name=3D"name" type=3D"NCName" use=3D"optional"/>=20

</extension>=20

</complexContent>=20

</complexType>=20

<complexType name=3D"tBindingOperationFault">=20

<complexContent>=20

<extension base=3D"wsdl:tExtensibleDocumented">=20

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>=20

</extension>=20

</complexContent>=20

</complexType>=20

<complexType name=3D"tBindingOperation">=20

<complexContent>=20

<extension base=3D"wsdl:tExtensibleDocumented">=20

<sequence>=20

<element name=3D"input" type=3D"wsdl:tBindingOperationMessage" =
minOccurs=3D"0"/>=20

<element name=3D"output" type=3D"wsdl:tBindingOperationMessage" =
minOccurs=3D"0"/>=20

<element name=3D"fault" type=3D"wsdl:tBindingOperationFault" =
minOccurs=3D"0" maxOccurs=3D"unbounded"/>=20

</sequence>=20

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>=20

</extension>=20

</complexContent>=20

</complexType>=20

<complexType name=3D"tService">=20

<complexContent>=20

<extension base=3D"wsdl:tExtensibleDocumented">=20

<sequence>=20

<element name=3D"port" type=3D"wsdl:tPort" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>=20

</sequence>=20

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>=20

</extension>=20

</complexContent>=20

</complexType>=20

<complexType name=3D"tPort">=20

<complexContent>=20

<extension base=3D"wsdl:tExtensibleDocumented">=20

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>=20

<attribute name=3D"binding" type=3D"QName" use=3D"required"/>=20

</extension>=20

</complexContent>=20

</complexType>=20

<attribute name=3D"arrayType" type=3D"string"/>=20

<attribute name=3D"required" type=3D"boolean"/>=20

<complexType name=3D"tExtensibilityElement" abstract=3D"true">=20

<sequence/>=20

<attribute ref=3D"wsdl:required" use=3D"optional"/>=20

</complexType>=20

</schema> =20

"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB25ED9.AE2CB299@ca.ibm.com...Pae,=20
I'm seeing this result with the just published 1.1.0 driver:=20


The schema isn't valid.=20
=20
Pae Choi wrote:=20

I have a simple test schema as follows:=20
<?xml version=3D"1.0" encoding=3D"UTF-8"?>=20
<!--W3C Schema generated by Pae -->=20
<xsd:schema xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema"=20
elementFormDefault=3D"qualified">=20
<xsd:element name=3D"CommonLogin">=20
<xsd:complexType>=20
<xsd:sequence>=20
<xsd:element name=3D"username" ref=3D"usernameRef"/>=20
<xsd:element name=3D"password" ref=3D"passwordRef"/>=20
</xsd:sequence>=20
</xsd:complexType>=20
</xsd:element>=20
<xsd:element name=3D"passwordRef" type=3D"xsd:string"/>=20
<xsd:element name=3D"usernameRef" type=3D"xsd:string"/>=20
</xsd:schema>=20

This is a very simple sample, but it is a valid schema. But when =

I use the validate() and getDiagnostics() methods in the =
XSDSchema=20
interface it gives me a message as follows:=20

XSD: The element '#null' is not permitted as constrained by 'XML =
Schema ';=20
expecting schema=20

I do not understand what the message is saying. Any comments?=20

Pae


------=_NextPart_001_0021_01C31184.5E0ECF50
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2600.0" name=3DGENERATOR></HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT size=3D2>Ed,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>You are right. And&nbsp;THANK you.</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Regards,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Pae</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV>"Ed Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB3A05D.B2B6DA24@ca.ibm.com">news:3EB3A05D.B2B6DA24@ca.ibm.=
com</A>...</DIV>Pae,=20

<P>The editor treats the schema as invalid because it contains this:=20
<BLOCKQUOTE>&lt;xsd:element name=3D"username"=20
ref=3D"usernameRef"/&gt;</BLOCKQUOTE>So it produces this message from=20
plugin.properties:=20
<BLOCKQUOTE>src-element.2.1 =3D An element reference may not have a=20
name</BLOCKQUOTE>Which is there because of this constraint in the =
spec:=20
<BLOCKQUOTE><A=20
=
href=3D"http://www.w3.org/TR/xmlschema-1/#src-element">http://www.w3.org/=
TR/xmlschema-1/#src-element</A></BLOCKQUOTE>Which=20
states the following:=20
<BLOCKQUOTE>2.1 One of ref or name must be present, but not=20
both.</BLOCKQUOTE>And since ref and name are indeed both present, it's =
an=20
invalid schema.=20
<P>The schema below is valid and the editor reports no errors. =
<BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">
<STYLE></STYLE>
<FONT size=3D-1>Ed,</FONT>&nbsp;<FONT size=3D-1>I don't see why =
Eclipse/Editor=20
treats the sampel schema as an invalid schema. I also</FONT><FONT=20
size=3D-1>tried other schema, e.g., WSDL.XSD, but throws the same =
message. The=20
following is</FONT><FONT size=3D-1>the copy of WSDL schema that I =
enclosed for=20
the convenience purpose. Try to see</FONT><FONT size=3D-1>what you=20
get.</FONT>&nbsp;&nbsp;<FONT =
size=3D-1>Regards,</FONT>&nbsp;&nbsp;<FONT=20
size=3D-1>Pae</FONT>&nbsp;<FONT size=3D-1>// ###################### =
WSDL Schema=20
######################</FONT><FONT color=3D#008080><FONT =
size=3D-2>&lt;?xml=20
version=3D"1.0" encoding=3D"UTF-8"?&gt;</FONT></FONT>=20
<P><FONT color=3D#0000ff><FONT size=3D-2>&lt;!--</FONT></FONT>=20
<P><FONT color=3D#808080><FONT size=3D-2>Copyright 2001-2002 =
International=20
Business Machines Corporation, Microsoft Corporation. All rights=20
reserved.</FONT></FONT>=20
<P><FONT color=3D#0000ff><FONT size=3D-2>--&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>schema</FONT><FONT color=3D#ff0000> =
targetNamespace</FONT><FONT=20
color=3D#0000ff>=3D"</FONT><A=20
=
href=3D"http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl=
/</A><FONT=20
color=3D#0000ff>"</FONT><FONT color=3D#ff0000> xmlns</FONT><FONT=20
color=3D#0000ff>=3D"</FONT><A=20
=
href=3D"http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchem=
a</A><FONT=20
color=3D#0000ff>"</FONT><FONT color=3D#ff0000> =
xmlns:wsdl</FONT><FONT=20
color=3D#0000ff>=3D"</FONT><A=20
=
href=3D"http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl=
/</A><FONT=20
color=3D#0000ff>"</FONT><FONT color=3D#ff0000> =
elementFormDefault</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>qualified<FONT =
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>complexType</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>tDocumentation<FONT =
color=3D#0000ff>"</FONT><FONT=20
color=3D#ff0000> mixed</FONT><FONT =
color=3D#0000ff>=3D"</FONT>true<FONT=20
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>sequence</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>any</FONT><FONT color=3D#ff0000> =
processContents</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>lax<FONT color=3D#0000ff>"</FONT><FONT =
color=3D#ff0000>=20
minOccurs</FONT><FONT color=3D#0000ff>=3D"</FONT>0<FONT=20
color=3D#0000ff>"</FONT><FONT color=3D#ff0000> maxOccurs</FONT><FONT =

color=3D#0000ff>=3D"</FONT>unbounded<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>sequence</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>complexType</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>complexType</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>tDocumented<FONT =
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>annotation</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>documentation</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2>This type is extended by component types</FONT>=20
<P><FONT size=3D-2>to allow them to be documented</FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>documentation</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>annotation</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>sequence</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>element</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>documentation<FONT =
color=3D#0000ff>"</FONT><FONT=20
color=3D#ff0000> type</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>wsdl:tDocumentation<FONT =
color=3D#0000ff>"</FONT><FONT=20
color=3D#ff0000> minOccurs</FONT><FONT =
color=3D#0000ff>=3D"</FONT>0<FONT=20
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>sequence</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>complexType</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>complexType</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>tExtensibleAttributesDocumented <FONT=20
color=3D#0000ff>"</FONT><FONT color=3D#ff0000> abstract</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>true<FONT =
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>annotation</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>documentation</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2>This type is extended by component types</FONT>=20
<P><FONT size=3D-2>to allow attributes from other namespaces to be=20
added.</FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>documentation</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>annotation</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>complexContent</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>extension</FONT><FONT color=3D#ff0000> =
base</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>wsdl:tDocumented<FONT=20
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>anyAttribute</FONT><FONT color=3D#ff0000> =
namespace</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>##other<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>extension</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>complexContent</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>complexType</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>complexType</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>tExtensibleDocumented<FONT=20
color=3D#0000ff>"</FONT><FONT color=3D#ff0000> abstract</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>true<FONT =
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>annotation</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>documentation</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2>This type is extended by component types</FONT>=20
<P><FONT size=3D-2>to allow attributes from other namespaces to be=20
added.</FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>documentation</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>annotation</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>complexContent</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>extension</FONT><FONT color=3D#ff0000> =
base</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>wsdl:tDocumented<FONT=20
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>sequence</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>any</FONT><FONT color=3D#ff0000> =
namespace</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>##other<FONT =
color=3D#0000ff>"</FONT><FONT=20
color=3D#ff0000> minOccurs</FONT><FONT =
color=3D#0000ff>=3D"</FONT>0<FONT=20
color=3D#0000ff>"</FONT><FONT color=3D#ff0000> maxOccurs</FONT><FONT =

color=3D#0000ff>=3D"</FONT>unbounded<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>sequence</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>extension</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>complexContent</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>complexType</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>element</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>definitions<FONT =
color=3D#0000ff>"</FONT><FONT=20
color=3D#ff0000> type</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>wsdl:tDefinitions<FONT=20
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>key</FONT><FONT color=3D#ff0000> name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>message<FONT =
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>selector</FONT><FONT color=3D#ff0000> =
xpath</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>wsdl:message<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>field</FONT><FONT color=3D#ff0000> xpath</FONT><FONT =

color=3D#0000ff>=3D"</FONT>@name<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>key</FONT><FONT color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>key</FONT><FONT color=3D#ff0000> name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>portType<FONT =
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>selector</FONT><FONT color=3D#ff0000> =
xpath</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>wsdl:portType<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20

<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>field</FONT><FONT color=3D#ff0000> xpath</FONT><FONT =

color=3D#0000ff>=3D"</FONT>@name<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>key</FONT><FONT color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>key</FONT><FONT color=3D#ff0000> name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>binding<FONT =
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>selector</FONT><FONT color=3D#ff0000> =
xpath</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>wsdl:binding<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>field</FONT><FONT color=3D#ff0000> xpath</FONT><FONT =

color=3D#0000ff>=3D"</FONT>@name<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>key</FONT><FONT color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>key</FONT><FONT color=3D#ff0000> name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>service<FONT =
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>selector</FONT><FONT color=3D#ff0000> =
xpath</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>wsdl:service<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>field</FONT><FONT color=3D#ff0000> xpath</FONT><FONT =

color=3D#0000ff>=3D"</FONT>@name<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>key</FONT><FONT color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>key</FONT><FONT color=3D#ff0000> name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>import<FONT =
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>selector</FONT><FONT color=3D#ff0000> =
xpath</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>wsdl:import<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>field</FONT><FONT color=3D#ff0000> xpath</FONT><FONT =

color=3D#0000ff>=3D"</FONT>@namespace<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>key</FONT><FONT color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>key</FONT><FONT color=3D#ff0000> name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>port<FONT =
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>selector</FONT><FONT color=3D#ff0000> =
xpath</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>wsdl:service/wsdl:port<FONT=20
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>field</FONT><FONT color=3D#ff0000> xpath</FONT><FONT =

color=3D#0000ff>=3D"</FONT>@name<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>key</FONT><FONT color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>element</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>group</FONT><FONT color=3D#ff0000> name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>anyTopLevelOptionalElement<FONT=20
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>annotation</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>documentation</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2>Any top level optional element allowed to appear =
more then=20
once-</FONT>=20
<P><FONT size=3D-2>any child of definitions element except =
wsdl:types.</FONT>=20
<P><FONT size=3D-2>Any extensibility element is allowed in any =
place</FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>documentation</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>annotation</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>choice</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>element</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>import<FONT color=3D#0000ff>"</FONT><FONT =

color=3D#ff0000> type</FONT><FONT =
color=3D#0000ff>=3D"</FONT>wsdl:tImport<FONT=20
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>element</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>types<FONT color=3D#0000ff>"</FONT><FONT =
color=3D#ff0000>=20
type</FONT><FONT color=3D#0000ff>=3D"</FONT>wsdl:tTypes<FONT=20
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>element</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>message<FONT =
color=3D#0000ff>"</FONT><FONT=20
color=3D#ff0000> type</FONT><FONT =
color=3D#0000ff>=3D"</FONT>wsdl:tMessage<FONT=20
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>unique</FONT><FONT color=3D#ff0000> name</FONT><FONT =

color=3D#0000ff>=3D"</FONT>part<FONT =
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>selector</FONT><FONT color=3D#ff0000> =
xpath</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>wsdl:part<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>field</FONT><FONT color=3D#ff0000> xpath</FONT><FONT =

color=3D#0000ff>=3D"</FONT>@name<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>unique</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>element</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>element</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>portType<FONT =
color=3D#0000ff>"</FONT><FONT=20
color=3D#ff0000> type</FONT><FONT =
color=3D#0000ff>=3D"</FONT>wsdl:tPortType<FONT=20
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>element</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>binding<FONT =
color=3D#0000ff>"</FONT><FONT=20
color=3D#ff0000> type</FONT><FONT =
color=3D#0000ff>=3D"</FONT>wsdl:tBinding<FONT=20
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>element</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>service<FONT =
color=3D#0000ff>"</FONT><FONT=20
color=3D#ff0000> type</FONT><FONT =
color=3D#0000ff>=3D"</FONT>wsdl:tService<FONT=20
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>choice</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>group</FONT><FONT color=3D#0000ff>&gt;</FONT></FONT> =

<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>complexType</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>tDefinitions<FONT =
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>complexContent</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>extension</FONT><FONT color=3D#ff0000> =
base</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>wsdl:tExtensibleDocumented<FONT=20
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>sequence</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>group</FONT><FONT color=3D#ff0000> ref</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>wsdl:anyTopLevelOptionalElement <FONT=20
color=3D#0000ff>"</FONT><FONT color=3D#ff0000> minOccurs</FONT><FONT =

color=3D#0000ff>=3D"</FONT>0<FONT color=3D#0000ff>"</FONT><FONT =
color=3D#ff0000>=20
maxOccurs</FONT><FONT color=3D#0000ff>=3D"</FONT>unbounded<FONT=20
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>sequence</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>attribute</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>targetNamespace<FONT =
color=3D#0000ff>"</FONT><FONT=20
color=3D#ff0000> type</FONT><FONT =
color=3D#0000ff>=3D"</FONT>anyURI<FONT=20
color=3D#0000ff>"</FONT><FONT color=3D#ff0000> use</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>optional<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>attribute</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>name<FONT color=3D#0000ff>"</FONT><FONT =
color=3D#ff0000>=20
type</FONT><FONT color=3D#0000ff>=3D"</FONT>NCName<FONT=20
color=3D#0000ff>"</FONT><FONT color=3D#ff0000> use</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>optional<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>extension</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>complexContent</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>complexType</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>complexType</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>tImport<FONT =
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>complexContent</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>extension</FONT><FONT color=3D#ff0000> =
base</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>wsdl:tExtensibleAttributesDocumented <FONT =

color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>attribute</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>namespace<FONT =
color=3D#0000ff>"</FONT><FONT=20
color=3D#ff0000> type</FONT><FONT =
color=3D#0000ff>=3D"</FONT>anyURI<FONT=20
color=3D#0000ff>"</FONT><FONT color=3D#ff0000> use</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>required<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>attribute</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>location<FONT =
color=3D#0000ff>"</FONT><FONT=20
color=3D#ff0000> type</FONT><FONT =
color=3D#0000ff>=3D"</FONT>anyURI<FONT=20
color=3D#0000ff>"</FONT><FONT color=3D#ff0000> use</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>required<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>extension</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>complexContent</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>complexType</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>complexType</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>tTypes<FONT =
color=3D#0000ff>"&gt;</FONT></FONT>=20
Re: A Diagnostic Message for the Valid Schema [message #20019 is a reply to message #19930] Sat, 03 May 2003 19:00 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: paechoi.earthlink.net

This is a multi-part message in MIME format.

------=_NextPart_000_002F_01C31184.B032A450
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0030_01C31184.B032A450"


------=_NextPart_001_0030_01C31184.B032A450
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Ed,

That surely helped with v1.0.2. And THANK you for that. One quick =
question is:

Do you also have an exception thrown when running with v1.1.0 as =
standalone.

Regards,


Pae

"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB3A206.9781C42@ca.ibm.com...
Pae,=20
The XSD model expects a DOM that's namespace aware, so this addition =
to your sample code will improve your result:=20

private Document openXMLDOM(String uri) {=20
// Create a factory object for creating DOM parsers=20
DocumentBuilderFactory factory =3D =
DocumentBuilderFactory.newInstance();=20
DocumentBuilder builder =3D null;=20
Document xmlDoc =3D null;=20

factory.setNamespaceAware(true);=20

Without this, element.getNamespaceURI and element.getLocalName both =
return null...=20
=20

Pae Choi wrote:=20

Ed, I have a sample code that test a DOM of XML Schema with =
Eclipse/XSD andproducing two different results. With v1.0.2, it seems ok =
except the diagnostic message we are discussing.With v1.1.0, it throws =
an exception. Regards, Pae P.S.: The code snippet is as follows: // =
################## CODE SNIPPET ##################/*=20
* EclipseXSDDemo1.java=20
*=20
* Created on May 2, 2003, 11:13 PM=20
*/ package org.paechoi.xsd.test; // W3C/DOM=20
import javax.xml.parsers.DocumentBuilderFactory;=20
import javax.xml.parsers.DocumentBuilder;=20
import org.w3c.dom.Document;=20
import org.w3c.dom.Element;=20
// Eclipse/XSD=20
import org.eclipse.xsd.XSDFactory;=20
import org.eclipse.xsd.XSDSchema;=20
import org.eclipse.xsd.impl.XSDSchemaImpl;=20
import org.eclipse.xsd.util.XSDResourceImpl;=20
import org.eclipse.xsd.util.XSDResourceFactoryImpl;=20
import org.eclipse.xsd.XSDDiagnostic;=20
import org.eclipse.emf.ecore.resource.Resource;=20
import org.eclipse.emf.ecore.resource.ResourceSet;=20
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;=20
import org.eclipse.emf.common.util.EList;=20
import java.io.File; =20
/**=20
*=20
* @author pae=20
*/=20
public class EclipseXSDDemo1 {=20
// private Document xmlDOM =3D null;=20
// instance initializer=20
{=20
// =
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =
new XSDResourceFactoryImpl());=20
}=20

/** Creates a new instance of EclipseXSDDemo1 */=20
public EclipseXSDDemo1() {=20
super();=20
}=20

/** Open a XML DOM */=20
private Document openXMLDOM(String uri) {=20
// Create a factory object for creating DOM parsers=20
DocumentBuilderFactory factory =3D =
DocumentBuilderFactory.newInstance();=20
DocumentBuilder builder =3D null;=20
Document xmlDoc =3D null;=20

// Build a new DOM=20
try {=20
// Now use the factory to create a DOM parser (a.k.a. a =
DocumentBuilder)=20
builder =3D factory.newDocumentBuilder();=20
xmlDoc =3D builder.parse(uri);=20
}=20
catch (Exception ex) {=20
ex.printStackTrace();=20
return null;=20
}=20

return xmlDoc;=20
}=20

/** doIt */=20
private void doIt() {=20
Document xmlDOM =3D =
openXMLDOM("http://schemas.xmlsoap.org/wsdl/");=20
// Document xmlDOM =3D openXMLDOM("./wsdl.xsd"); =
Element rootElement =3D xmlDOM.getDocumentElement(); XSDSchema =
xsdSchema =3D XSDFactory.eINSTANCE.createXSDSchema();=20
xsdSchema.setDocument(xmlDOM);=20
xsdSchema.setElement(rootElement);=20
xsdSchema.updateElement(); =
System.out.println("\n\n");=20
XSDResourceImpl.serialize(System.out, =
xsdSchema.getElement()); =
System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION =
>>>>>>>>>>>>>>>>>>>>>>>>>>");=20
xsdSchema.validate();=20
//EList eList =3D xsdMainSchema.getDiagnostics();=20
EList eList =3D xsdSchema.getAllDiagnostics();=20
for (int i =3D 0; i < eList.size(); i++) {=20
XSDDiagnostic xsdDiagnostic =3D =
(XSDDiagnostic)eList.get(i);=20
System.out.println(i + ": Diagnostic Message =3D [" + =
xsdDiagnostic.getMessage() + "]");=20
}=20
=
System.out.println("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<=
<<<<<<<");=20
}=20

/** main - the main entry */=20
public static void main(String[] args) {=20
EclipseXSDDemo1 app =3D new EclipseXSDDemo1();=20
app.doIt();=20
}=20
}=20

"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB25ED9.AE2CB299@ca.ibm.com...Pae,=20
I'm seeing this result with the just published 1.1.0 driver:=20


The schema isn't valid.=20
=20
Pae Choi wrote:=20

I have a simple test schema as follows:=20
<?xml version=3D"1.0" encoding=3D"UTF-8"?>=20
<!--W3C Schema generated by Pae -->=20
<xsd:schema xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema"=20
elementFormDefault=3D"qualified">=20
<xsd:element name=3D"CommonLogin">=20
<xsd:complexType>=20
<xsd:sequence>=20
<xsd:element name=3D"username" ref=3D"usernameRef"/>=20
<xsd:element name=3D"password" ref=3D"passwordRef"/>=20
</xsd:sequence>=20
</xsd:complexType>=20
</xsd:element>=20
<xsd:element name=3D"passwordRef" type=3D"xsd:string"/>=20
<xsd:element name=3D"usernameRef" type=3D"xsd:string"/>=20
</xsd:schema>=20

This is a very simple sample, but it is a valid schema. But when =

I use the validate() and getDiagnostics() methods in the =
XSDSchema=20
interface it gives me a message as follows:=20

XSD: The element '#null' is not permitted as constrained by 'XML =
Schema ';=20
expecting schema=20

I do not understand what the message is saying. Any comments?=20

Pae


------=_NextPart_001_0030_01C31184.B032A450
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2600.0" name=3DGENERATOR></HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT size=3D2>Ed,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>That surely helped with v1.0.2. And THANK you for =
that. One=20
quick question is:</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Do you also have an exception thrown when running =
with v1.1.0=20
as standalone.</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Regards,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Pae</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV>"Ed Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB3A206.9781C42@ca.ibm.com">news:3EB3A206.9781C42@ca.ibm.co=
m</A>...</DIV>Pae,=20

<P>The XSD model expects a DOM that's namespace aware, so <FONT=20
color=3D#3333ff>this</FONT> addition to your sample code will improve =
your=20
result:=20
<P>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String uri) {=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create a factory =
object for=20
creating DOM parsers <BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilderFactory&nbsp; factory =3D =
DocumentBuilderFactory.newInstance();=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp; =
builder =3D=20
null; <BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D null;=20
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=3D#3333ff>&nbsp;&nbsp;=20
factory.setNamespaceAware(true);</FONT>=20
<P>Without this, element.getNamespaceURI and element.getLocalName both =
return=20
null... <BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">
<STYLE></STYLE>
<FONT size=3D-1>Ed,</FONT>&nbsp;<FONT size=3D-1>I have a sample code =
that test a=20
DOM of XML Schema with Eclipse/XSD and</FONT><FONT =
size=3D-1>producing two=20
different results.</FONT>&nbsp;<FONT size=3D-1>With v1.0.2, it seems =
ok except=20
the diagnostic message we are discussing.</FONT><FONT size=3D-1>With =
v1.1.0,=20
it throws an exception.</FONT>&nbsp;<FONT=20
size=3D-1>Regards,</FONT>&nbsp;&nbsp;<FONT =
size=3D-1>Pae</FONT>&nbsp;<FONT=20
size=3D-1>P.S.: The code snippet is as follows:</FONT>&nbsp;<FONT =
size=3D-1>//=20
################## CODE SNIPPET ##################</FONT><FONT=20
size=3D-1>/*</FONT> <BR><FONT size=3D-1>&nbsp;* =
EclipseXSDDemo1.java</FONT>=20
<BR><FONT size=3D-1>&nbsp;*</FONT> <BR><FONT size=3D-1>&nbsp;* =
Created on May 2,=20
2003, 11:13 PM</FONT> <BR><FONT size=3D-1>&nbsp;*/</FONT>&nbsp;<FONT =

size=3D-1>package org.paechoi.xsd.test;</FONT>&nbsp;<FONT =
size=3D-1>//=20
W3C/DOM</FONT> <BR><FONT size=3D-1>import&nbsp;=20
javax.xml.parsers.DocumentBuilderFactory;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; javax.xml.parsers.DocumentBuilder;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; org.w3c.dom.Document;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; org.w3c.dom.Element;</FONT> <BR><FONT =
size=3D-1>//=20
Eclipse/XSD</FONT> <BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.xsd.XSDFactory;</FONT> <BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.xsd.XSDSchema;</FONT> <BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.xsd.impl.XSDSchemaImpl;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
org.eclipse.xsd.util.XSDResourceImpl;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
org.eclipse.xsd.util.XSDResourceFactoryImpl;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; org.eclipse.xsd.XSDDiagnostic;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; =
org.eclipse.emf.ecore.resource.Resource;</FONT>=20
<BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.emf.ecore.resource.ResourceSet;</FONT> <BR><FONT=20
size=3D-1>import&nbsp;=20
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; org.eclipse.emf.common.util.EList;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; java.io.File;</FONT>&nbsp;&nbsp; <BR><FONT=20
size=3D-1>/**</FONT> <BR><FONT size=3D-1>&nbsp;*</FONT> <BR><FONT=20
size=3D-1>&nbsp;* @author&nbsp; pae</FONT> <BR><FONT =
size=3D-1>&nbsp;*/</FONT>=20
<BR><FONT size=3D-1>public class EclipseXSDDemo1 {</FONT> <BR><FONT=20
size=3D-1>//&nbsp;&nbsp;&nbsp; private&nbsp;&nbsp;&nbsp;&nbsp;=20
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp; xmlDOM =3D =
null;</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; // instance initializer</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; {</FONT> <BR><FONT=20
size=3D-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;=20
=
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =
new=20
XSDResourceFactoryImpl());</FONT> <BR><FONT =
size=3D-1>&nbsp;&nbsp;&nbsp;=20
}</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** Creates a new instance of=20
EclipseXSDDemo1 */</FONT> <BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; =
public=20
EclipseXSDDemo1() {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; super();</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM */</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String uri) =
{</FONT>=20
<BR><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // =
Create a=20
factory object for creating DOM parsers</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilderFactory&nbsp; factory =3D=20
DocumentBuilderFactory.newInstance();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp; =
builder =3D=20
null;</FONT> <BR><FONT =
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D null;</FONT>=20
<P><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // =
Build a new=20
DOM</FONT> <BR><FONT =
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try=20
{</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
// Now use the factory to create a DOM parser (a.k.a. a=20
DocumentBuilder)</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
builder =3D factory.newDocumentBuilder();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xmlDoc =3D builder.parse(uri);</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT> =
<BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch =
(Exception ex)=20
{</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
ex.printStackTrace();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
return null;</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT>=20
<P><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; return =

xmlDoc;</FONT> <BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** doIt */</FONT> <BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; private void doIt() {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document xmlDOM =
=3D=20
openXMLDOM("<A=20
=
href=3D"http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl=
/</A>");</FONT>=20
<BR><FONT size=3D-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp; =
Document=20
xmlDOM =3D openXMLDOM("./wsdl.xsd");</FONT>&nbsp;<FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Element =
rootElement =3D=20
xmlDOM.getDocumentElement();</FONT>&nbsp;<FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; XSDSchema =
xsdSchema =3D=20
XSDFactory.eINSTANCE.createXSDSchema();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
xsdSchema.setDocument(xmlDOM);</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
xsdSchema.setElement(rootElement);</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
xsdSchema.updateElement();</FONT>&nbsp;<FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
System.out.println("\n\n");</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
XSDResourceImpl.serialize(System.out,=20
xsdSchema.getElement());</FONT>&nbsp;<FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
System.out.println(" &gt;&gt;&gt;&gt;&gt;&gt;&gt;& ;gt;&gt;&gt;&gt;&gt;&gt;&=
gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;& amp;gt;=20
VALIDATION=20
=
&gt;&gt;&gt;&gt;&gt;&gt;&gt;& ;gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt;&gt;&=
gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;"); </FONT>=20
<BR><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
xsdSchema.validate();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; //EList eList =
=3D=20
xsdMainSchema.getDiagnostics();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; EList eList =3D =

xsdSchema.getAllDiagnostics();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; for (int i =3D =
0; i &lt;=20
eList.size(); i++) {</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
XSDDiagnostic xsdDiagnostic =3D (XSDDiagnostic)eList.get(i);</FONT> =
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
System.out.println(i + ": Diagnostic Message =3D [" +=20
xsdDiagnostic.getMessage() + "]");</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT> =
<BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
System.out.println(" &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&=
lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;& amp;lt;&lt;&lt;&lt;&lt;&lt;&lt;& lt;&lt;&lt;&l=
t;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&a mp;lt;&lt;&lt;&lt;&lt;&lt;&lt;&l t;&lt;&lt;&lt=
;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&am p;lt;&lt;&lt; ");</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** main - the main entry =
*/</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; public static void =
main(String[] args)=20
{</FONT> <BR><FONT =
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
EclipseXSDDemo1 app =3D new EclipseXSDDemo1();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
app.doIt();</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT> <BR><FONT =
size=3D-1>}</FONT>=20
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed=20
Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB25ED9.AE2CB299@ca.ibm.com">news:3EB25ED9.AE2CB299@ca.ibm.=
com</A>...Pae,=20

<P>I'm seeing this result with the just published 1.1.0 driver:=20
<BLOCKQUOTE><IMG height=3D411=20
src=3D"cid:002a01c311a6$373995f0$0b01a8c0@dev1" =
width=3D502></BLOCKQUOTE>The=20
schema isn't valid. <BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">I have a simple test schema as follows:=20
<P>&lt;?xml version=3D"1.0" encoding=3D"UTF-8"?&gt; =
<BR>&lt;!--W3C Schema=20
generated by Pae --&gt; <BR>&lt;xsd:schema xmlns:xsd=3D"<A=20
=
href=3D"http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchem=
a</A>"=20
<BR>elementFormDefault=3D"qualified"&gt; =
<BR>&nbsp;&lt;xsd:element=20
name=3D"CommonLogin"&gt; <BR>&nbsp; &lt;xsd:complexType&gt;=20
<BR>&nbsp;&nbsp; &lt;xsd:sequence&gt; <BR>&nbsp;&nbsp;&nbsp;=20
&lt;xsd:element name=3D"username" ref=3D"usernameRef"/&gt;=20
<BR>&nbsp;&nbsp;&nbsp; &lt;xsd:element name=3D"password"=20
ref=3D"passwordRef"/&gt; <BR>&nbsp;&nbsp; &lt;/xsd:sequence&gt; =
<BR>&nbsp;=20
&lt;/xsd:complexType&gt; <BR>&nbsp;&lt;/xsd:element&gt;=20
<BR>&nbsp;&lt;xsd:element name=3D"passwordRef" =
type=3D"xsd:string"/&gt;=20
<BR>&nbsp;&lt;xsd:element name=3D"usernameRef" =
type=3D"xsd:string"/&gt;=20
<BR>&lt;/xsd:schema&gt;=20
<P>This is a very simple sample, but it is a valid schema. But =
when=20
<BR>I use the validate() and getDiagnostics() methods in the =
XSDSchema=20
<BR>interface it gives me a message as follows:=20
<P>XSD: The element '#null' is not permitted as constrained by =
'XML=20
Schema '; <BR>expecting schema=20
<P>I do not understand what the message is saying. Any comments? =

=
<P>Pae</P></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE ></BODY></HT=
ML>

------=_NextPart_001_0030_01C31184.B032A450--

------=_NextPart_000_002F_01C31184.B032A450
Content-Type: image/jpeg;
name="C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\nsmailFJ.jpeg"
Content-Transfer-Encoding: base64
Content-ID: <002a01c311a6$373995f0$0b01a8c0@dev1>

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCws MGJGSjpQdGZ6eHJm
cG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAqMF40 NF7GhHCExsbGxsbG
xsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsb/ wAARCAGbAfYDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA AgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcY GRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKT lJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP0 9fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQA AQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2 Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOk paanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMB AAIRAxEAPwDXghR4
9zbiST/EfU0m23yQBKcHHG81Ja/6kf7zfzNVLrfsTY5wGkLRrJsZueoPt6e9 NK4FpIYJEDIWKnoQ
5/xpfs0Xo3/fZ/xqKy2bmMbMUZEcZ75zzjt2qMXc+1kYBbgkbYvLyRnJ67sN wDzkdPXikBZ+zRej
f99n/Gj7NF6N/wB9n/Gqa31w+eI027VYMuTuLsmeD2xnHPpnvS/bZyJnHlhY ELMNpy5DODg54zs9
+vegC39mi9G/77P+NH2aL0b/AL7P+NUEup4hIkMQZY2kdycYwZH4yWGPu9ef 8b883lxs6FW2H5l7
n2HvyMDv075oAPs0Xo3/AH2f8aPs0Xo3/fZ/xqFriZWhLGMRPt/eKpdSSeFG Dx2+YjBz26Uy3kkm
uraaQptkgZlVVIKglDgnPP6UATyQxIudrH/gZpm2L+43/fw1NP8AcH1rJvJZ becG2JlkdSWhOSAA
PvD0/r9aQGhti/uN/wB/DTDGBI65bAPHzH0B/rUdntNurLMZt3zFyep+nb6V M/8Ar5f94fyFAxvl
j1b/AL6NHlj1b/vo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+ jTqKAG+WPVv++jR5
Y9W/76NOooAb5Y9W/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igBvlj1 b/vo0eWPVv8Avo06
igBvlj1b/vo0eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPVv++jR5Y9 W/76NOooAb5Y9W/7
6NHlj1b/AL6NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/AL6NHlj1b/vo06ig Bvlj1b/vo0eWPVv+
+jTqKAG+WPVv++jR5Y9W/wC+jTqKAG+WPVv++jR5Y9W/76NOooAb5Y9W/wC+ jR5Y9W/76NOooAb5
Y9W/76NHlj1b/vo06igBvlj1b/vo0eWPVv8Avo06igBvlj1b/vo0eWPVv++j TqKAG+WPVv8Avo0e
WPVv++jTqKAG+WPVv++jR5Y9W/76NOooAb5Y9W/76NHlj1b/AL6NOooAb5Y9 W/76NHlj1b/vo06i
gCvOTEV2MRnOcnP86KS76p+P9KKBF+1/1I/3m/majktGkBVmiZNxYK8W7Gfx 96hREIJKqTuPUe9O
8uP+4v5U7gWIYnR3d3DFgBwuMYz/AI0otoBEYhBGI2OSgQYJ+lNdbaNlVkjD OcKu0ZP0FMcwRyBW
tvlyFMmwbQT0Hqeo6DHP1oAmWCFF2pFGo44CgdDkfrzTPscBn84xIXwMZUfK QScj3yaT/Q/+mH39
nb73p9fahfsbruTyGHHIwepwP14oAkaCFipaKMlCWUlRwSckj8ad5abt2xc5 3Zx3xjP5cVCVgFws
JgXLIXDbRjggEfqKk8iH/nkn/fIoABBCJBIIo94zhtoyM5zz+J/OhIIY5GkS KNXbqwUAn8ah8yw8
vzN9tszt3ZXGfTNO/wBD87yf3Hm/3ON3r0oAklUsoAGeagFuVZmEYDN94jGT 9adusgwXNvuLbAMr
kt6fXkUM1ksvlMbcSZA2ErnJ6cUANW3KZ2RhdxycYGT60j/6+X/eH8hUgFqZ zCEiLgZIG3I6dR17
0f6H53k/uPN/ucbvXpQBHRUg+xs4QeQWJK7RjOR1H4U3zLDzPL322/O3blc5 9MUrANoprz2y3Bh+
ysSJFjyIxjJGf0HWpf8ARvtPkeSN+0tkx4GBjv369qLAMoqx5EP/ADyT/vkV X8y33f8AHt+737PM
2rtznGOuevHT9KLAFFNee2W4MP2ViRIseRGMZIz+g61a8iH/AJ5J/wB8iiwF eipP9D87yf3Hm/3O
N3r0oH2NnCDyCxJXaMZyOo/CiwEdFSH7GJDGfI3jGV4yM4xx+I/Oj/Q/O8n9 x5v9zjd69KLAR0Us
slpE4TZGz7lUqu3K5IAJHpyPzp4FqZzCEiLgZIG3I6dR170WAjoqQfY2cIPI LEldoxnI6j8KR2sk
Zlc26sgywJUED3/MfnRYBlFO8yw8zy99tvzt25XOfTFRvPbLcGH7KxIkWPIj GMkZ/QdaLAOoprzQ
r5n+hMfLkEZwqck4xjn3H5/WkeeJHKf2fKxAYjCJ8wU4JAznuPrRYB9FN86H z2iFkxKvtJCp7c4z
nHzDt3q15EP/ADyT/vkUWAr0UeZb7v8Aj2/d79nmbV25zjHXPXjp+lNee2W4 MP2ViRIseRGMZIz+
g60WAdRTnMEcgVrb5chTJsG0E9B6nqOgxz9aei20jMqpGWQ4ZdoyPqKLARUV Y8iH/nkn/fIo8iH/
AJ5J/wB8iiwFeirHkQ/88k/75FHkQ/8APJP++RRYCvRVjyIf+eSf98ijyIf+ eSf98iiwFeirHkQ/
88k/75FHkQ/88k/75FFgK9FWPIh/55J/3yKPIh/55J/3yKLAV6KseRD/AM8k /wC+RR5EP/PJP++R
RYCvRVjyIf8Ankn/AHyKPIh/55J/3yKLAV6KseRD/wA8k/75FHkQ/wDPJP8A vkUWAr0VY8iH/nkn
/fIo8iH/AJ5J/wB8iiwFeipngh2/6pOo/hFQbYv+eUfPtQMWioJlTz4FCKAS cgDrxUb3FsjlWj5B
x90UWGouWiQ676p+P9KKLtFRlAUDrnAooJJ4/un/AHj/ADp1Nj+6f94/zp1A yXyWjmMkTAhz86vk
nr2PbqeOn05NOeMyTLuAMSjP3urZ4yMdvr+HQ055Y42VWYBnOFXufoKDIBMs WDuZSw9MAj/EUxFb
7PN9s+0Yj+/jZuONuMbun3+30496rtp8zo2Y4AzCYZDE4L9D0/D6flWpRQBW dJzepIqRmNVK5LkH
BKknGPb1qzVV70L5n7iU+XIIzjbyTjGOfcfn9akFwPOEbRyKGJVXIGGIycev Y9scfSgCP7M/2rOV
+z58zb33/Tpjv67uaiWydZuUDp5pkyZ3HVt33MY4/XFWGufnwkMki7gpdAMA 5x65474/oanoAqwR
TR3c7mOLbK+dwc7sBQAMY9vXvUf2WZp8lI1XzN2VlYjGc/cIxk+vrz1qb7WC 2FhlZd+wOqgjOcHv
kY55Ixx9KkM8IkMZlj3jGV3DIzjHH4j86AInSc3qSKkZjVSuS5BwSpJxj29a Z9nmx5OI/K83zN+4
7vv78bcfh19/apo7mN5WjJ2OrlArEZbAByOeeCKd58PneT5sfm/3Nw3evSgC o9tOWnZY4d0kyOCX
IJVccH5f9n9T+Nn7NH5m/dLnOcec+Pyzj8Kcs8LruSWNhxyGB6nA/Xijz4fO 8nzY/N/ubhu9elAD
vLTdu2LnO7OO+MZ/LioHSc3qSKkZjVSuS5BwSpJxj29as1E9zAjMrzxqyDLA uAQPf8x+dAC/vvtH
/LPyNnvu3Z/LGKr/AGebHk4j8rzfM37ju+/vxtx+HX39qsefD53k+bH5v9zc N3r0oE8LOEEsZYkr
tDDOR1H4UAO8tN27Yuc7s474xn8uKdUfnw+d5Pmx+b/c3Dd69KT7TAGC+fHu LbAN4yW9PryKAKq2
TrNygdPNMmTO46tu+5jHH64oe2nLTsscO6SZHBLkEquOD8v+z+p/G358PneT 5sfm/wBzcN3r0pqX
du8zQrNGZFO0pu5z9KAIlgkVhGY4XjEpkDsSSCWJ4XHXnGc+/tSfZ5seTiPy vN8zfuO77+/G3H4d
ff2qx58PneT5sfm/3Nw3evSmS3cUThNwZ9yqVVhlckAEjPTkfnQBXltZynlo sLKs3nKzE5J37sdO
OpGefpzxM6Tm9SRUjMaqVyXIOCVJOMe3rVmoIbuKXau4JIxIEbMN3BIPAPsa AK7205adljh3STI4
JcglVxwfl/2f1P4xypJ5i2wjDBZxKHKN3fcecYGATzk9MY5q613bLu3XEQ2n a2XHB9D+R/KpqAIf
s0fmb90uc5x5z4/LOPwqTy03bti5zuzjvjGfy4qAXg81kaGRVRxGXO3GTjHf POR271L58PneT5sf
m/3Nw3evSgCB7aRpXA2eXJKkpYk5BXbxjHP3eue/tUjxyG9ikATy1RlJLHOS QemP9n170/z4fO8n
zY/N/ubhu9elSUAVYLYpeT3EkcYZz8rKxJ24AweP9kH8fzk+zR+Zv3S5znHn Pj8s4/CpqKAKP2N/
P3bIs+Zv8/P7zGc7enp8vXp+VXPLTdu2LnO7OO+MZ/LikSWORmVWBZDhl7j6 in0ARPGZJl3AGJRn
73Vs8ZGO31/Doab5LSTCSVgAh+RUyD17nv0HHT68Gp6KACiiigAooooAKKKK ACiiigAooooAKKKK
ACiiigAooooAKKKKAGyEBck4AIyT9az3EMjBmlOR0w4GKvyqrxlXUMD2IzVf 7Lb/APPCL/vgf5/z
+YBWlZWubfawOCe+f4aZJYLJIz+cRuOcbP8A69WzbwqMrDGD6hR/n/P5t8uP +4v5UXsXCcoO8SG9
OXU+uaKbdKF2BQAOen4UUiCxH90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51 fJPXse3U8dPpyakK
AzK+0ZVSN2eRkjjH4fpQ8scbKrMAznCr3P0FJ58P/PWP7+z7w+96fX2piG/Z o/M37pc5zjznx+Wc
fhR9mj8zfulznOPOfH5Zx+FK1zAsvlNPGJMgbC4zk9OKbLdxROE3Bn3KpVWG VyQASM9OR+dAEEti
73ZlDrtLhj6/wH/2mP8Avo+nMphka7WRljUIT8653MuDhSMdOc9eo6ek/mJ5 nl71343bc849cUxr
mBZfKaeMSZA2FxnJ6cUAMSOaJikflmIuX3MTuGTkjHfqecjr3xzYqMzwiQxm WPeMZXcMjOMcfiPz
psdzG8rRk7HVygViMtgA5HPPBFAEDWsjz+Y0durbw3nICHCg8DpzkDB5HXp6 uWCRWEZjheMSmQOx
JIJYnhcdecZz7+1T+fD53k+bH5v9zcN3r0oWeF13JLGw45DA9TgfrxQBUe2n LTsscO6SZHBLkEqu
OD8v+z+p/EWydZuUDp5pkyZ3HVt33MY4/XFW/Ph87yfNj83+5uG716VJQBlt p8zo2Y4AzCYZDE4L
9D0/D6flT5bKcuSmziUSAmVgG+bONo4H15zjPU8XfPh/56x/f2feH3vT6+1C zwuu5JY2HHIYHqcD
9eKAJKzJUk8xbYRhgs4lDlG7vuPOMDAJ5yemMc1fMoFwsJVsshcNxjggEfqK BPCzhBLGWJK7Qwzk
dR+FAFRbJ1m5QOnmmTJncdW3fcxjj9cUPbTlp2WOHdJMjglyCVXHB+X/AGf1 P42muYFl8pp4xJkD
YXGcnpxT/MTzPL3rvxu255x64oApLZOs3KB080yZM7jq277mMcfripYIpo7u dzHFtlfO4Od2AoAG
Me3r3qbz4f8AnrH9/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oApy2U5clNnEo kBMrAN82cbRwPrzn
Gep4srHNHcSFPLKSOHLEnI4Axjv0657+3Ky3cUThNwZ9yqVVhlckAEjPTkfn S/a7bzPL+0Rb87du
8Zz6YoArLZOs3KB080yZM7jq277mMcfriiW1nKeWiwsqzecrMTknfux046kZ 5+nPEr3yLcGHypSR
IseQvGSM/oOtSR3MbytGTsdXKBWIy2ADkc88EUATVQitZwnlusKq03nMyk5B 37sdOegGePpxzZS7
t3maFZozIp2lN3OfpQl3bvM0KzRmRTtKbuc/SgCBo99+YwH8skSyZQ4LLjHP v8p4/ue5q7UYnhZw
gljLEldoYZyOo/CneYnmeXvXfjdtzzj1xQBWitT9qmlmUYZwyASMRwAOV6Z4 z3/SoZbKcuSmziUS
AmVgG+bONo4H15zjPU8XXl2zRxgZL5J56Ad/zIH40PLtmjjAyXyTz0A7/mQP xoAqLZOs3KB080yZ
M7jq277mMcfrir9Qtd2y7t1xENp2tlxwfQ/kfyoa7tl3briIbTtbLjg+h/I/ lQAfZo/M37pc5zjz
nx+WcfhR9mj8zfulznOPOfH5Zx+FDXdsu7dcRDadrZccH0P5H8qmoAg8lpJh JKwAQ/IqZB69z36D
jp9eDU9Qtd2y7t1xENp2tlxwfQ/kfyoFwPOEbRyKGJVXIGGIycevY9scfSgC aiio/Ph87yfNj83+
5uG716UASUVF9pgDBfPj3FtgG8ZLen15FD3MCMyvPGrIMsC4BA9/zH50AS0V G8u2aOMDJfJPPQDv
+ZA/Gmi4HnCNo5FDEqrkDDEZOPXse2OPpQBNRVf7Wu7/AFcnl79nmcbc5xjr nrx0/Sj7Wu7/AFcn
l79nmcbc5xjrnrx0/SgCxRUX2hPtPkYfftLZKkDAx379e1K8u2aOMDJfJPPQ Dv8AmQPxoAkoqq96
Edk8iUsrhQo25bOcEc9OP5+hxHJqkUczxGKUusix4G3ktkjHPtQBeoqKGfzZ JU8t18ptpLYwTjPG
D6EfnTPtYLYWGVl37A6qCM5we+RjnkjHH0oAsUVGZ4RIYzLHvGMruGRnGOPx H502O5jeVoydjq5Q
KxGWwAcjnngigCaio/Ph87yfNj83+5uG716ULPC67kljYcchgepwP14oAkoq Pz4fO8nzY/N/ubhu
9elQvfItwYfKlJEix5C8ZIz+g60AWH+6aj/z/n/P/wBeR/umo/8AP+f8/wD1 wBr/AHT/AJ/z/n8Y
6kf7p/z/AJ/z+MdIZWu+qfj/AEoou+qfj/SigRPH90/7x/nTqbH90/7x/nTq BkvktHMZImBDn51f
JPXse3U8dPpyai+zzfbPtGI/v42bjjbjG7p9/t9OPerHnw+d5Pmx+b/c3Dd6 9KDKBcLCVbLIXDcY
4IBH6imIq/ZZmnyUjVfM3ZWViMZz9wjGT6+vPWkltZynlosLKs3nKzE5J37s dOOpGefpzxb8+Hzv
J82Pzf7m4bvXpQs8LruSWNhxyGB6nA/XigBvlv8AbPM2RbPL27sfPnPTPp/W q/2WZp8lI1XzN2Vl
YjGc/cIxk+vrz1q158PneT5sfm/3Nw3evSgTws4QSxliSu0MM5HUfhQBAsEi sIzHC8YlMgdiSQSx
PC4684zn39qje2nLTsscO6SZHBLkEquOD8v+z+p/Gyl3bvM0KzRmRTtKbuc/ So/to89ohBKSr7SR
t9ucZzj5h270ARLZOs3KB080yZM7jq277mMcfriom0+Z0bMcAZhMMhicF+h6 fh9PyrQ8+HzvJ82P
zf7m4bvXpSfaYAwXz49xbYBvGS3p9eRQBTlspy5KbOJRICZWAb5s42jgfXnO M9Txo1Gs8LruSWNh
xyGB6nA/Xio1u1MzxtHIgV9m9sbSeCBwe+R1+nXigCP7PN9s+0Yj+/jZuONu Mbun3+30496rtp8z
o2Y4AzCYZDE4L9D0/D6flWh58PneT5sfm/3Nw3evSoX1C3W4WBXV3JwQHX5T nHc/oMmgBXSc3qSK
kZjVSuS5BwSpJxj29ahe2nLTsscO6SZHBLkEquOD8v8As/qfxt+fD53k+bH5 v9zcN3r0o8+H/nrH
9/Z94fe9Pr7UAVfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVjy3+2eZsi2eXt3Y+ fOemfT+tOMoFwsJV
sshcNxjggEfqKal3bvM0KzRmRTtKbuc/SgCH7PN9s+0Yj+/jZuONuMbun3+3 0496b9lmafJSNV8z
dlZWIxnP3CMZPr689asfa7bzPL+0Rb87du8Zz6YqN75FuDD5UpIkWPIXjJGf 0HWgCKW1nKeWiwsq
zecrMTknfux046kZ5+nPFn7NH5m/dLnOcec+Pyzj8KV7mBGZXnjVkGWBcAge /wCY/Ol8+H/nrH9/
Z94fe9Pr7UAO8tN27Yuc7s474xn8uKpPbTlp2WOHdJMjglyCVXHB+X/Z/U/j b8+HzvJ82Pzf7m4b
vXpQZQLhYSrZZC4bjHBAI/UUARrHNHcSFPLKSOHLEnI4Axjv0657+3Isc0dx IU8spI4csScjgDGO
/Trnv7cyCeMzmEMpcDJAYZHTqOveoX1C3W4WBXV3JwQHX5TnHc/oMmgCBI3m u7kCIKhmRjIwIJCh
eBxyMqe/f87flv8AbPM2RbPL27sfPnPTPp/WnCeMzmEMpcDJAYZHTqOvejz4 fO8nzY/N/ubhu9el
ADYUbzJZZBhnO0D0UZx/U/jjtRCjeZLLIMM52geijOP6n8cdqSW7iicJuDPu VSqsMrkgAkZ6cj86
Y98i3Bh8qUkSLHkLxkjP6DrQAySzke5LiQCNnVyOeo29v+Af+PH05JLOR7ku JAI2dXI56jb2/wCA
f+PH05tJLHIzKrAshwy9x9RT6AKUlnI9yXEgEbOrkc9Rt7f8A/8AHj6c2f33 2j/ln5Gz33bs/ljF
SUUAUpLOR7kuJAI2dXI56jb2/wCAf+PH05kMMjXayMsahCfnXO5lwcKRjpzn r1HT0s0UAR/vvtH/
ACz8jZ77t2fyxiq/2ebHk4j8rzfM37ju+/vxtx+HX39quUUAVYIpo7udzHFt lfO4Od2AoAGMe3r3
qtKknmLbCMMFnEoco3d9x5xgYBPOT0xjmtOigCGFG8yWWQYZztA9FGcf1P44 7VGiXP2ou6xFckbt
5JCdgBjjtnn+mLVFAFP7PNjycR+V5vmb9x3ff3424/Dr7+1H2ebHk4j8rzfM 37ju+/vxtx+HX39q
uUUAVnSc3qSKkZjVSuS5BwSpJxj29afCjeZLLIMM52geijOP6n8cdqmooApy R3ZnMqiLKnagLnGw
9c/L1OB+Q98xy2k7SSyBIixlV0JkI+Ubcg8d9g/P89CigCmI7tZpSgiCySq+ 7echRtBGNvcD170j
Wsjz+Y0durbw3nICHCg8DpzkDB5HXp63aKAKiwSKwjMcLxiUyB2JJBLE8Ljr zjOff2qN7actOyxw
7pJkcEuQSq44Py/7P6n8b9FAFBbJ1m5QOnmmTJncdW3fcxjj9cVE2nzOjZjg DMJhkMTgv0PT8Pp+
ValFAGdLZTlyU2cSiQEysA3zZxtHA+vOcZ6ni/5abt2xc53Zx3xjP5cU6igB r/dNR/5/z/n/AOvI
/wB01H/n/P8An/64A1/un/P+f8/jHUj/AHT/AJ/z/n8Y6Qytd9U/H+lFF31T 8f6UUCJ4/un/AHj/
ADp1Nj+6f94/zp1Axi2TrNygdPNMmTO46tu+5jHH64qZ0nN6kipGY1UrkuQc EqScY9vWrNMeWONl
VmAZzhV7n6CmIprZOs3KB080yZM7jq277mMcfriom0+Z0bMcAZhMMhicF+h6 fh9PyrQ8+H/nrH9/
Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oAqrZOs3KB080yZM7jq277mMcfrih7 actOyxw7pJkcEuQS
q44Py/7P6n8bEt3FE4TcGfcqlVYZXJABIz05H51L5ieZ5e9d+N23POPXFAEK xzR3EhTyykjhyxJy
OAMY79Oue/ty2C2KXk9xJHGGc/KysSduAMHj/ZB/H85vPh87yfNj83+5uG71 6UGUC4WEq2WQuG4x
wQCP1FAFf7PNjycR+V5vmb9x3ff3424/Dr7+1Ogimju53McW2V87g53YCgAY x7evepvPh87yfNj8
3+5uG716ULPC67kljYcchgepwP14oAz20+Z0bMcAZhMMhicF+h6fh9PyqwLe ZppfMEaxPKsmVYlv
l24GMcfdB/T3qx58PneT5sfm/wBzcN3r0oE8LOEEsZYkrtDDOR1H4UAVFsnW blA6eaZMmdx1bd9z
GOP1xUqpci8eXy4tjBU/1hyACecbffpUiXdu8zQrNGZFO0pu5z9KmoAzpbKc uSmziUSAmVgG+bON
o4H15zjPU8ST205aTyvLKvKkvzEg5Xb8vT/Z6/hjvVkTws4QSxliSu0MM5HU fhR58PneT5sfm/3N
w3evSgCJ0nN6kipGY1UrkuQcEqScY9vWlWOaO4kKeWUkcOWJORwBjHfp1z39 uZFnhddySxsOOQwP
U4H68UefD53k+bH5v9zcN3r0oAb9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd 8Yz+XFR/a7bzPL+0
Rb87du8Zz6YqN75FuDD5UpIkWPIXjJGf0HWgCvcxSxRqpjV41uBIGVWZuX3H gDjAJ5z296lntpy0
nleWVeVJfmJByu35en+z1/DHepmufnwkMki7gpdAMA5x65474/oaf58PneT5 sfm/3Nw3evSgClLZ
TlyU2cSiQEysA3zZxtHA+vOcZ6niw6Tm9SRUjMaqVyXIOCVJOMe3rUqzwuu5 JY2HHIYHqcD9eKFn
hddySxsOOQwPU4H68UAROk5vUkVIzGqlclyDglSTjHt60ipci8eXy4tjBU/1 hyACecbffpU3nw+d
5Pmx+b/c3Dd69KBPCzhBLGWJK7QwzkdR+FAETpOb1JFSMxqpXJcg4JUk4x7e tQrZOs3KB080yZM7
jq277mMcfrirUM/mySp5br5TbSWxgnGeMH0I/Ol8+HzvJ82Pzf7m4bvXpQBU ltZynlosLKs3nKzE
5J37sdOOpGefpzxd8tN27Yuc7s474xn8uKY9zAjMrzxqyDLAuAQPf8x+dKJ4 zOYQylwMkBhkdOo6
96AGeS0kwklYAIfkVMg9e579Bx0+vBqeoxPCzhBLGWJK7QwzkdR+FQvfItwY fKlJEix5C8ZIz+g6
0AWqKYkscjMqsCyHDL3H1FPoAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKK
KACiiigBr/dNR/5/z/n/AOvI/wB01H/n/P8An/64A1/un/P+f8/jHUj/AHT/ AJ/z/n8Y6Qytd9U/
H+lFF31T8f6UUCJ4/un/AHj/ADp1Nj+6f94/zp1Ay5UHktHMZImBDn51fJPX se3U8dPpyanopiKf
2eb7Z9oxH9/GzccbcY3dPv8Ab6ce9N+yzNPkpGq+ZuysrEYzn7hGMn19eetW 3ljjZVZgGc4Ve5+g
pPPh/wCesf39n3h970+vtQBUltZynlosLKs3nKzE5J37sdOOpGefpzxZ8t/t nmbItnl7d2Pnznpn
0/rStcwLL5TTxiTIGwuM5PTimy3cUThNwZ9yqVVhlckAEjPTkfnQBXWydZuU Dp5pkyZ3HVt33MY4
/XFTOk5vUkVIzGqlclyDglSTjHt61P5ieZ5e9d+N23POPXFNM8IkMZlj3jGV 3DIzjHH4j86AKi2T
rNygdPNMmTO46tu+5jHH64qJtPmdGzHAGYTDIYnBfoen4fT8q0PPh87yfNj8 3+5uG716ULPC67kl
jYcchgepwP14oAqLZOs3KB080yZM7jq277mMcfrih7actOyxw7pJkcEuQSq4 4Py/7P6n8bYnhZwg
ljLEldoYZyOo/CgygXCwlWyyFw3GOCAR+ooAjWOaO4kKeWUkcOWJORwBjHfp 1z39ubFR+fD53k+b
H5v9zcN3r0o8+H/nrH9/Z94fe9Pr7UAVHtpy07LHDukmRwS5BKrjg/L/ALP6 n8Wy2U5clNnEokBM
rAN82cbRwPrznGep4me+KOU+yXDEBiMBfmCnBIGc9x9ala7tl3briIbTtbLj g+h/I/lQBRbT5nRs
xwBmEwyGJwX6Hp+H0/KpVsnWblA6eaZMmdx1bd9zGOP1xVsTws4QSxliSu0M M5HUfhR58PneT5sf
m/3Nw3evSgBv2aPzN+6XOc4858flnH4VJ5abt2xc53Zx3xjP5cUiSxyMyqwL IcMvcfUU+gCukc0T
FI/LMRcvuYncMnJGO/U85HXvjmP7PNjycR+V5vmb9x3ff3424/Dr7+1XKKAM ttPmdGzHAGYTDIYn
Bfoen4fT8qG0+Z0bMcAZhMMhicF+h6fh9PyrUooAp/Z5seTiPyvN8zfuO77+ /G3H4dff2pj205ad
ljh3STI4JcglVxwfl/2f1P436KAKYju1mlKCILJKr7t5yFG0EY29wPXvR9nm x5OI/K83zN+47vv7
8bcfh19/arlFAGZKknmLbCMMFnEoco3d9x5xgYBPOT0xjmrTpOb1JFSMxqpX Jcg4JUk4x7etWaKA
KD205adljh3STI4JcglVxwfl/wBn9T+N3y03bti5zuzjvjGfy4p1FAEHktJM JJWACH5FTIPXue/Q
cdPrwanoooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigBr/AHTU
f+f8/wCf/ryP901H/n/P+f8A64A1/un/AD/n/P4x1I/3T/n/AD/n8Y6Qytd9 U/H+lFF31T8f6UUC
J4/un/eP86dTY/un/eP86dQMuUUUUxEHktHMZImBDn51fJPXse3U8dPpyai+ zzfbPtGI/v42bjjb
jG7p9/t9OPerlMeWONlVmAZzhV7n6CgCp9lmafJSNV8zdlZWIxnP3CMZPr68 9aSW1nKeWiwsqzec
rMTknfux046kZ5+nPFvz4f8AnrH9/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04o ATy3+2eZsi2eXt3Y
+fOemfT+tRLBIrCMxwvGJTIHYkkEsTwuOvOM59/apJbuKJwm4M+5VKqwyuSA CRnpyPzqXzE8zy96
78btueceuKAKv2ebHk4j8rzfM37ju+/vxtx+HX39qrtp8zo2Y4AzCYZDE4L9 D0/D6flV9rmBZfKa
eMSZA2FxnJ6cUvnw+d5Pmx+b/c3Dd69KAKSRvNd3IEQVDMjGRgQSFC8DjkZU 9+/52HSc3qSKkZjV
SuS5BwSpJxj29ake5gRmV541ZBlgXAIHv+Y/Ol8+H/nrH9/Z94fe9Pr7UAVF snWblA6eaZMmdx1b
d9zGOP1xT/s832z7RiP7+Nm4424xu6ff7fTj3qx58PneT5sfm/3Nw3evSgTw s4QSxliSu0MM5HUf
hQAx45DexSAJ5aoykljnJIPTH+z696haPffmMB/LJEsmUOCy4xz7/KeP7nua smeESGMyx7xjK7hk
Zxjj8R+dHnw+d5Pmx+b/AHNw3evSgCkkbzXdyBEFQzIxkYEEhQvA45GVPfv+ blsnWblA6eaZMmdx
1bd9zGOP1xVxJY5GZVYFkOGXuPqKfQBB5LSTCSVgAh+RUyD17nv0HHT68Gp6 KKACiiigAooooAKK
KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooo
oAKKKKAGv901H/n/AD/n/wCvI/3TUf8An/P+f/rgDX+6f8/5/wA/jHUj/dP+ f8/5/GOkMrXfVPx/
pRRd9U/H+lFAieP7p/3j/OnVSaJmlYlpfmJ2ojkZ68+39T265WFf3yENKpxu 2PIWyOeR/h9D65NC
uV2ubFFFFMkKg8lo5jJEwIc/Or5J69j26njp9OTU9FAFP7PN9s+0Yj+/jZuO NuMbun3+30496b9l
mafJSNV8zdlZWIxnP3CMZPr689a59Li9dWZZ5yqjLHecD8aXzr//AJ63P3d/ 3m+76/T3rTkJ5jel
tZynlosLKs3nKzE5J37sdOOpGefpzxZ8t/tnmbItnl7d2Pnznpn0/rXMiXUW j8xXujHjO4FsfnTo
3v5EL/aJ1TaSGZmw2ASQD68H8qOTzDmNz7LM0+Skar5m7KysRjOfuEYyfX15 60i2TrNygdPNMmTO
46tu+5jHH64rA+03vl+Z59xszjdvbGfTNL51/wCV5vm3Pl/39zY/OjkDmNu5 ilijVTGrxrcCQMqs
zcvuPAHGATznt71LPbTlpPK8sq8qS/MSDldvy9P9nr+GO9c+Li7MBlF3LgMF K+Y2eQSD+ho86/8A
K83zbny/7+5sfnRyBzG8tk6zcoHTzTJkzuOrbvuYxx+uKHtpy07LHDukmRwS 5BKrjg/L/s/qfxwW
mv0OGluVPPBZh0GT+nNHnX/leb5tz5f9/c2Pzo5A5jolgkVhGY4XjEpkDsSS CWJ4XHXnGc+/tUa2
TrNygdPNMmTO46tu+5jHH64rBM1+E3mW5CgA5LNjB6GnM+opEJWkuRGRkNub GKOTzDmOk8lpJhJK
wAQ/IqZB69z36Djp9eDU9cf9tuv+fmb/AL+Gnma/CbzLchQAclmxg9DR7MOY 62iuS86/8rzfNufL
/v7mx+dDTX6HDS3Knngsw6DJ/TmjkDmOtorkvOv/ACvN8258v+/ubH507fqX l+Zuu9mM7stjHrmj
k8w5jq6K5dTetAJftrAFGkwZWzgHH6npUXnX/wDz1ufu7/vN931+nvRyeYcx 1tFcmJdRaPzFe6Me
M7gWx+dJ51/5Xm+bc+X/AH9zY/Ojk8w5jraK5PzdR2lt91gLuJy3T1+lIZr8 JvMtyFAByWbGD0NH
J5hzHW0VyXnX/leb5tz5f9/c2Pzoaa/Q4aW5U88FmHQZP6c0cgcx1tFcl51/ 5Xm+bc+X/f3Nj86l
U3rQCX7awBRpMGVs4Bx+p6UcnmHMdRRXH/bbr/n5m/7+GpPN1HaW33WAu4nL dPX6UezDmOsorkvO
v/K83zbny/7+5sfnUqjUWgMxnuFQDIJL/MMZ7fzNHJ5hzHUUVym/UvL8zdd7 MZ3ZbGPXNPU3rQCX
7awBRpMGVs4Bx+p6UuTzC51FFcl51/8A89bn7u/7zfd9fp70ol1Fo/MV7ox4 zuBbH50+TzDmOsor
kvOv/K83zbny/wC/ubH50vm6jtLb7rAXcTlunr9KOTzDmOsorkjNfhN5luQo AOSzYweho86/8rzf
NufL/v7mx+dHIHMdbRXJNNfocNLcqeeCzDoMn9OaPOv/ACvN8258v+/ubH50 cgcx1tFcvuu/LVhf
MxZC4QO+cDOe2OMHv2qLzr/yvN8258v+/ubH50cgcx1tFcuo1FoDMZ7hUAyC S/zDGe38zQpvWgEv
21gCjSYMrZwDj9T0pcnmFzqKK5JLm6aKSQ3UwCYA+c8k9uvoCfwpHuL1FVmn nCsMqd5wfxp8gcx1
1FFFZlBRRRQA1/umo/8AP+f8/wD15H+6aj/z/n/P/wBcAa/3T/n/AD/n8Y6k f7p/z/n/AD+Nczxg
kZPHH3TSGk3sRXfVPx/pRRdEMIyOhBI/SigBu7MxdFLyR5AQd/mzn9enXp60 Iha8Ezh03ZIVhyT3
/D3+lOMcJ5aBJJGLYG0ZPJ70sAg3jFukUmNy8DkeoNLS5peXKalFFFUZBRRR QBx+/wAyIJIhyo+Q
pgfmO/Qc9frxUvmx/ZfI+f7md20Z3Zzt6/d/rzXQyQWSMqvDAGc/KuwZb8KT y9P/ALlt9/Z0X73p
9fatOdBZGB5yCHALsxj24Mag5xj7+c49vTApYpog+9jMC8XlFVAwBt25689j jj/HdZNOWXymW1Eh
I+Qhc57cU2UWEb7PIgdyyhlVVyuSACR6cj86OdBZHOZH2Ty8y79+7bn5MY64 9asG5DRDBKP5ezAh
U/w4+9nPP9a6D7PZeZ5fkwb8btu0Zx64pvl6f53k7Lbzf7mF3evSjnQWRzie V9keMtJ5jENgIMcA
8Zz71KbkNEMEo/l7MCFT/Dj72c8/1reMNr9oEJtI8spcNsXBwQD+PIo8vT/O 8nZbeb/cwu716Uc6
CyMVbuNXXa0xUGIgFQMhOo6/j9fzqM3IaIYJR/L2YEKn+HH3s55/rW8senyL uVLZgccgKc5OB+uR
R5en+d5Oy283+5hd3r0o5kFkYKTRbYFZpsJE6kBB1bPI5/2v0HrUJMckEYYP vRCoAAweSc57demP
510gj09n2BLYsWI24XJI6j6imqNNkmaFVtjIGwU2rnP070c4WRy21vSrqTRb YFZpsJE6kBB1bPI5
/wBr9B610X2O1/59of8AvgVGI9PZ9gS2LFiNuFySOo+oocwtEw4rmIKA4fmM oQI1JHy4zuPJ+nHX
83Ldxq67WmKgxEAqBkJ1HX8fr+dbXl6f53k7Lbzf7mF3evShY9PkXcqWzA45 AU5ycD9cijmQWRgm
5DRDBKP5ezAhU/w4+9nPP9ar+dL5ezZHjGP9UufzxnNdN5en+d5Oy283+5hd 3r0puNM8zy8Wm/dj
b8uc+mPWjnQWRzGZMYy2MYxntnOPz5qzDLEFj8wSArG0Y2gHg7uev+10/XtW 07WS3Bh+w7j5ix5E
QIJIz+g61MI9PZ9gS2LFiNuFySOo+oo5wsjA85BDgF2Yx7cGNQc4x9/Oce3p gUpuQ0QwSj+XswIV
P8OPvZzz/Wt7y9P87ydlt5v9zC7vXpSMmnLL5TLaiQkfIQuc9uKOdBZHPStH JbQory7o0wFKjbkn
J5z7+nYVIk0W2BWabCROpAQdWzyOf9r9B61usmnLL5TLaiQkfIQuc9uKRhpi 7twtBtbDZ28Hng+/
Bo5wsjFiuYgoDh+YyhAjUkfLjO48n6cdfzct3GrrtaYqDEQCoGQnUdfx+v51 teXp/neTstvN/uYX
d69KQpp27aVtdxbbjC5Len15/WjmQWRhG5DRDBKP5ezAhU/w4+9nPP8AWqmZ MYy2MYxntnOPz5rp
pRYRvs8iB3LKGVVXK5IAJHpyPzpjtZLcGH7DuPmLHkRAgkjP6DrRzoLI5ra3 pVmVo5LaFFeXdGmA
pUbck5POff07Cum+x2v/AD7Q/wDfAqIpp27aVtdxbbjC5Len15/WnzhaJhG5 DRDBKP5ezAhU/wAO
PvZzz/Woz5LWiR7pd6ln/wBWMEkDjr7frXReXp/neTstvN/uYXd69KheTThc CAQwO5bDABODnHOT
yevAyaXOgsjn/Ol8vZsjxjH+qXP54zmmZkxjLYxjGe2c4/PmunxpnmeXi037 sbflzn0x61G7WS3B
h+w7j5ix5EQIJIz+g60+dBZGLDLEFj8wSArG0Y2gHg7uev8AtdP17UvnIIcA uzGPbgxqDnGPv5zj
29MCt8R6ez7AlsWLEbcLkkdR9RR5en+d5Oy283+5hd3r0pc6CyME3IaIYJR/ L2YEKn+HH3s55/rU
crRyW0KK8u6NMBSo25Jyec+/p2FdCyacsvlMtqJCR8hC5z24oZNOWXymW1Eh I+Qhc57cUc6CyMJJ
otsCs02EidSAg6tnkc/7X6D1p0VzEFAcPzGUIEakj5cZ3Hk/Tjr+e0w0xd24 Wg2ths7eDzwffg07
y9P87ydlt5v9zC7vXpRzoLIxVu41ddrTFQYiAVAyE6jr+P1/OozchohglH8v ZgQqf4cfeznn+tbp
TTt20ra7i23GFyW9Prz+tNlFhG+zyIHcsoZVVcrkgAkenI/OjmQWRh+eggii AYjyyrNsAYZJPBzn
vjHGR9aU3IaIYJR/L2YEKn+HH3s55/rWz/onmujWIVVkCM5RMZOMd885HbvU vl6f53k7Lbzf7mF3
evSjnQWRzp8lrRI90u9Sz/6sYJIHHX2/WoMyYxlsYxjPbOcfnzXRvJpwuBAI YHcthgAnBzjnJ5PX
gZNDtZLcGH7DuPmLHkRAgkjP6DrRzhaJz8pzHFHHyqjcT6scZ/oPw96UPsi2 RISXHzF8H8h269ev
0zXSvBarNHGLWFi+SfkHAHfp6kD8aVILKRnVYYCyn5l2DI+oo5wsi1RRRWYB RRRQA1/umo/8/wCf
8/8A15H+6aj/AM/5/wA//XAGv90/5/z/AJ/GqbdSSd7DJz2/wq0/3T/n/P8A n8apuFBI2McHHb/G
guPN0I7lQqxqOgBH8qKLlgyxsOhBP8qKRL3HMrBhMil2TICj13Eg02OJ5Lo3 Dq6Drhxzk/0qxH90
/wC8f506lYvndrFyiiiqMwoopjyxxsqswDOcKvc/QUAVztimaSOVcFgJFckn qeh7Ac8dOD05NREE
XhuC0XEm0puONuMbun3+CM9MAjPGatMypNDGqAkg9ONqjr+u0Y9/agS24xiS IYbyxgjg/wB36+1B
XulMofPJYxIqy5JWViOufuEYzwcnscnqKSZH2GNTAVjn80M7HOd+7HTjuM89 D74uGe2SVYjLCsg+
UJuAIz2x+VNkuYIXVBtZwVTahGUBIAyM9OR+lAe6IXUXhkPk7Amwtj5856Z/ u8H8QfSqwhVJm3bX
QTbyTcOMZbd9zGOOfyPTmr4MQkEYKBwuQoxkL9PSmGe2SVYjLCsg+UJuAIz2 x+VAe6QySP8AbVkH
k+XGChJcg8kEnGO209/Xpg1CIVSZt210E28k3DjGW3fcxjjn8j05q6JbcTCE SRCUDAQEbgOvSkae
2iYq0sKNGvILAFRx+Q6fpQHumc9sSj7hbqx84E7icF+h+72wQfYH0IqUQqkz btroJt5JuHGMtu+5
jHHP5HpzV0S24xiSIYbyxgjg/wB36+1AltxMIRJEJQMBARuA69KA90pSo+64 YCDc06NkuQcLjg/L
/sn2GT6VOHMVxKVeLY8gZmYnK8AEAY5+6ec8c+lTLLb71RJItwyiqCM8dQP0 4o823WTyxJEHQAbc
jKg4xx+X6UB7o4zxDOXHBwf8/gfyPpVCVH3XDAQbmnRslyDhccH5f9k+wyfS roltxMIRJEJQMBAR
uA69KWN4WYrGV3R/KVxgr+HYcfjQHumfNC29irx/LMHyZWAPzZxtHA6HnnoS ec4Y9sSj7hbqx84E
7icF+h+72wQfYH0IrWCqMYUDAwMDoKAqjGFAwMDA6CgPdM4QqkzbtroJt5Ju HGMtu+5jHHP5HpzV
kpbiQuZZMhskec+M/TOMcH24PpVgKoxhQMDAwOgoCqMYUDAwMDoKA90jL24Y sdmQ2Scd8Yz+QIz7
H0qjkPdXIwiIZkYyNkMduOAMcjKt345P10gqjGFAwMDA6CgKoxhQMDAwOgoD 3TMmhbexV4/lmD5M
rAH5s42jgdDzz0JPOcPKHzyWMSKsuSVlYjrn7hGM8HJ7HJ6itAKoxhQMDAwO goCqMYUDAwMDoKA9
0zyh88ljEirLklZWI65+4RjPByexyeopZYs3Lv56iMyKzDJ6jb27/wCr6+7e nN8KoxhQMDAwOgoC
qMYUDAwMDoKA90okEAwlovKE3mF9x3ff34249iM57E9sU6FjFd3DsIQsknLB zuAC4HG3noe/HPoa
uBVGMKBgYGB0FAVRjCgYGBgdBQHumdMj7DGpgKxz+aGdjnO/djpx3Geeh98X S9uGLHZkNknHfGM/
kCM+x9KkCqMYUDAwMDoKAqjGFAwMDA6CgPdGmeIZy44OD/n8D+R9KqwsYru4 dhCFkk5YOdwAXA42
89D3459DVwKoxhQMDAwOgoCqMYUDAwMDoKA90zhCqTNu2ugm3km4cYy277mM cc/kenNSiSRLySUi
HYdqH94cgAtzjb7n8jzVwKoxhQMDAwOgoCqMYUDAwMDoKA90rlLcSFzLJkNk jznxn6Zxjg+3B9Kk
L24YsdmQ2Scd8Yz+QIz7H0qQKoxhQMDAwOgoCqMYUDAwMDoKA90zch7q5GER DMjGRshjtxwBjkZV
u/HJ+qTQtvYq8fyzB8mVgD82cbRwOh556EnnONMKoxhQMDAwOgoCqMYUDAwM DoKA90zyh88ljEir
LklZWI65+4RjPByexyeooKHzyWMSKsuSVlYjrn7hGM8HJ7HJ6itAKoxhQMDA wOgoCqMYUDAwMDoK
A90oSxZuXfz1EZkVmGT1G3t3/wBX1929OVIIBhLReUJvML7ju+/vxtx7EZz2 J7Yq8FUYwoGBgYHQ
UBVGMKBgYGB0FAe6U4WMV3cOwhCyScsHO4ALgcbeeh78c+hqKZH2GNTAVjn8 0M7HOd+7HTjuM89D
740QqjGFAwMDA6CgKoxhQMDAwOgoD3TPMX+kTzM6AiUMq+YxVsDGGGMfw5zz gj/ZpBCqTNu2ugm3
km4cYy277mMcc/kenNaIVRjCgYGBgdBQFUYwoGBgYHQUB7pTEkiXkkpEOw7U P7w5ABbnG33P5Hmr
Be3DFjsyGyTjvjGfyBGfY+lSBVGMKBgYGB0FAVRjCgYGBgdBQHuleJ0WSaWV gGLbcZ6KM4/9mPtk
jtSHa83mTSqBG2FVCQRz3PccdOnBznGRZCqMYUDAwMDoKAqjGFAwMDA6CgPd HUUUUEhRRRQA1/um
o/8AP+f8/wD15H+6aj/z/n/P/wBcAa/3T/n/AD/n8a5gjJJweefvGrD/AHT/ AJ/z/n8Y6Q02titd
AKIwOgBA/Sii76p+P9KKAJ4/un/eP86dTY/un/eP86dQBcooopiCoPJaOYyR MCHPzq+SevY9up46
fTk1I8scbKrMAznCr3P0FI8u2aOMDJfJPPQDv+ZA/GgBsKN5kssgwznaB6KM 4/qfxx2qH7PN9s+0
Yj+/jZuONuMbun3+30496sefD/z1j+/s+8Pven19qRrmBZfKaeMSZA2FxnJ6 cUAVvsszT5KRqvmb
srKxGM5+4RjJ9fXnrSS2s5Ty0WFlWbzlZick792OnHUjPP054sS3cUThNwZ9 yqVVhlckAEjPTkfn
UvmJ5nl71343bc849cUAR+W/2zzNkWzy9u7Hz5z0z6f1qv8AZZmnyUjVfM3Z WViMZz9wjGT6+vPW
rRnhEhjMse8Yyu4ZGcY4/EfnR58PneT5sfm/3Nw3evSgCotk6zcoHTzTJkzu OrbvuYxx+uKZcxSx
RqpjV41uBIGVWZuX3HgDjAJ5z296vLPC67kljYcchgepwP14oE8LOEEsZYkr tDDOR1H4UAVp7act
J5XllXlSX5iQcrt+Xp/s9fwx3pq2TrNygdPNMmTO46tu+5jHH64q2ZQLhYSr ZZC4bjHBAI/UUefD
53k+bH5v9zcN3r0oAqPbTlp2WOHdJMjglyCVXHB+X/Z/U/jIsEisIzHC8YlM gdiSQSxPC4684zn3
9qn8+H/nrH9/Z94fe9Pr7VA98Ucp9kuGIDEYC/MFOCQM57j60ARrZOs3KB08 0yZM7jq277mMcfri
rHktJMJJWACH5FTIPXue/QcdPrwaVru2XduuIhtO1suOD6H8j+VOE8LOEEsZ YkrtDDOR1H4UASUV
H58PneT5sfm/3Nw3evSlSWORmVWBZDhl7j6igB9FFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUANf 7pqP/P8An/P/ANeR
/umo/wDP+f8AP/1wBr/dP+f8/wCfxjqR/un/AD/n/P4x0hla76p+P9KKLvqn 4/0ooETx/dP+8f50
6mx/dP8AvH+dOoGXKKKY8scbKrMAznCr3P0FMRH5LRzGSJgQ5+dXyT17Ht1P HT6cmlhRvMllkGGc
7QPRRnH9T+OO1OeXbNHGBkvknnoB3/MgfjR58P8Az1j+/s+8Pven19qAK/2e b7Z9oxH9/GzccbcY
3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561Za5gWXymnjEmQNhcZyen FNlu4onCbgz7lUqr
DK5IAJGenI/OgCvLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/bPM2RbPL27 sfPnPTPp/WpPMTzP
L3rvxu255x64pvnw+d5Pmx+b/c3Dd69KAIFgkVhGY4XjEpkDsSSCWJ4XHXnG c+/tSfZ5seTiPyvN
8zfuO77+/G3H4dff2qwZQLhYSrZZC4bjHBAI/UUefD53k+bH5v8Ac3Dd69KA M9tPmdGzHAGYTDIY
nBfoen4fT8qekbzXdyBEFQzIxkYEEhQvA45GVPfv+d1Z4XXcksbDjkMD1OB+ vFHnw+d5Pmx+b/c3
Dd69KAInSc3qSKkZjVSuS5BwSpJxj29ahWydZuUDp5pkyZ3HVt33MY4/XFWx PCzhBLGWJK7Qwzkd
R+FNS7t3maFZozIp2lN3OfpQBD9nm+2faMR/fxs3HG3GN3T7/b6ce9SvHIb2 KQBPLVGUksc5JB6Y
/wBn171IkscjMqsCyHDL3H1FPoApNHvvzGA/lkiWTKHBZcY59/lPH9z3NRpG 813cgRBUMyMZGBBI
ULwOORlT37/no0UAUFsnWblA6eaZMmdx1bd9zGOP1xVjyWkmEkrABD8ipkHr 3PfoOOn14NT0UAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUANf7pqP/P8An/P/ANeR/umo/wDP+f8AP/1wBr/dP+f8 /wCfxjqR/un/AD/n
/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/dP8AvH+dOoGXKg8lo5jJ EwIc/Or5J69j26nj
p9OTU9MeWONlVmAZzhV7n6CmIZCjeZLLIMM52geijOP6n8cdqh+zzfbPtGI/ v42bjjbjG7p9/t9O
PerHnw/89Y/v7PvD73p9faka5gWXymnjEmQNhcZyenFAFb7LM0+Skar5m7Ky sRjOfuEYyfX1560k
trOU8tFhZVm85WYnJO/djpx1Izz9OeLEt3FE4TcGfcqlVYZXJABIz05H51L5 ieZ5e9d+N23POPXF
AEflv9s8zZFs8vbux8+c9M+n9arLZOs3KB080yZM7jq277mMcfrirfnw+d5P mx+b/c3Dd69KDKBc
LCVbLIXDcY4IBH6igCJ0nN6kipGY1UrkuQcEqScY9vWoVsnWblA6eaZMmdx1 bd9zGOP1xVvz4fO8
nzY/N/ubhu9elCzwuu5JY2HHIYHqcD9eKAM9tPmdGzHAGYTDIYnBfoen4fT8 qlWydZuUDp5pkyZ3
HVt33MY4/XFW/Ph87yfNj83+5uG716UCeFnCCWMsSV2hhnI6j8KAKj205adl jh3STI4JcglVxwfl
/wBn9T+M6xzR3EhTyykjhyxJyOAMY79Oue/ty5Lu3eZoVmjMinaU3c5+lTUA QeS0kwklYAIfkVMg
9e579Bx0+vBqeoxPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3Dd69KAJKKjWe F13JLGw45DA9Tgfr
xR58PneT5sfm/wBzcN3r0oAkoqH7XbeZ5f2iLfnbt3jOfTFRvfItwYfKlJEi x5C8ZIz+g60AWqKj
E8LOEEsZYkrtDDOR1H4UefD53k+bH5v9zcN3r0oAkoqJrmBZfKaeMSZA2Fxn J6cUNcwLL5TTxiTI
GwuM5PTigCWioWu7Zd264iG07Wy44PofyP5U7z4fO8nzY/N/ubhu9elAElFR faYAwXz49xbYBvGS
3p9eRTZbuKJwm4M+5VKqwyuSACRnpyPzoAnoqsLweayNDIqo4jLnbjJxjvnn I7d6l8+HzvJ82Pzf
7m4bvXpQBJRVV9Qt1uFgV1dycEB1+U5x3P6DJoe+Rbgw+VKSJFjyF4yRn9B1 oAtUUVCl3bvM0KzR
mRTtKbuc/SgCaioWu7Zd264iG07Wy44PofyP5U4Tws4QSxliSu0MM5HUfhQB JRUfnw+d5Pmx+b/c
3Dd69Kb9rtvM8v7RFvzt27xnPpigCaiqr3yLcGHypSRIseQvGSM/oOtTefD/ AM9Y/v7PvD73p9fa
gCSiomuYFl8pp4xJkDYXGcnpxTZbuKJwm4M+5VKqwyuSACRnpyPzoAnopvmJ 5nl71343bc849cUx
rmBZfKaeMSZA2FxnJ6cUAS0VCl3bvM0KzRmRTtKbuc/Sl+0wBgvnx7i2wDeM lvT68igCWioxPGZz
CGUuBkgMMjp1HXvQJ4WcIJYyxJXaGGcjqPwoAkoqJ7mBGZXnjVkGWBcAge/5 j86ie+Rbgw+VKSJF
jyF4yRn9B1oAtUVG8u2aOMDJfJPPQDv+ZA/GlSWORmVWBZDhl7j6igB9FFFA BRRRQA1/umo/8/5/
z/8AXkf7pqP/AD/n/P8A9cAa/wB0/wCf8/5/GOpH+6f8/wCf8/jHSGVrvqn4 /wBKKLvqn4/0ooET
x/dP+8f506mx/dP+8f506gZcqDyWjmMkTAhz86vknr2PbqeOn05NT0x5Y42V WYBnOFXufoKYit9n
m+2faMR/fxs3HG3GN3T7/b6ce9N+yzNPkpGq+ZuysrEYzn7hGMn19eetWvPh /wCesf39n3h970+v
tSNcwLL5TTxiTIGwuM5PTigCrLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/ AGzzNkWzy9u7Hz5z
0z6f1pJbuKJwm4M+5VKqwyuSACRnpyPzqXzE8zy9678btueceuKAKS2TrNyg dPNMmTO46tu+5jHH
64qZ0nN6kipGY1UrkuQcEqScY9vWpfPh87yfNj83+5uG716UGUC4WEq2WQuG 4xwQCP1FAFRbJ1m5
QOnmmTJncdW3fcxjj9cVE2nzOjZjgDMJhkMTgv0PT8Pp+VaHnw+d5Pmx+b/c 3Dd69KFnhddySxsO
OQwPU4H68UAVFsnWblA6eaZMmdx1bd9zGOP1xQ9tOWnZY4d0kyOCXIJVccH5 f9n9T+Nvz4fO8nzY
/N/ubhu9elAnhZwgljLEldoYZyOo/CgCNY5o7iQp5ZSRw5Yk5HAGMd+nXPf2 5sVCl3bvM0KzRmRT
tKbuc/SpqAKD205adljh3STI4JcglVxwfl/2f1P4tlspy5KbOJRICZWAb5s4 2jgfXnOM9TxdE8LO
EEsZYkrtDDOR1H4UefD53k+bH5v9zcN3r0oAz20+Z0bMcAZhMMhicF+h6fh9 PyqVbJ1m5QOnmmTJ
ncdW3fcxjj9cVbWeF13JLGw45DA9TgfrxR58PneT5sfm/wBzcN3r0oAb9mj8 zfulznOPOfH5Zx+F
SeWm7dsXOd2cd8Yz+XFR/a7bzPL+0Rb87du8Zz6YqN75FuDD5UpIkWPIXjJG f0HWgCBI3mu7kCIK
hmRjIwIJCheBxyMqe/f8yWynLkps4lEgJlYBvmzjaOB9ec4z1PF3z4f+esf3 9n3h970+vtSNcwLL
5TTxiTIGwuM5PTigCt9lmafJSNV8zdlZWIxnP3CMZPr689aPsszT5KRqvmbs rKxGM5+4RjJ9fXnr
Vrz4fO8nzY/N/ubhu9elJ9pgDBfPj3FtgG8ZLen15FAFeSzke5LiQCNnVyOe o29v+Af+PH05X7PN
jycR+V5vmb9x3ff3424/Dr7+1WBPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3 Dd69KAIYIpo7udzH
FtlfO4Od2AoAGMe3r3qKW1nKeWiwsqzecrMTknfux046kZ5+nPFtZ4XXcksb DjkMD1OB+vFHnw+d
5Pmx+b/c3Dd69KAKv2SU3E0x25MgdF8xirYAGGGMDpnPODj05RbJ1m5QOnmm TJncdW3fcxjj9cVM
LweayNDIqo4jLnbjJxjvnnI7d6l8+HzvJ82Pzf7m4bvXpQBCqXIvHl8uLYwV P9YcgAnnG336VY8t
N27Yuc7s474xn8uKrvqFutwsCuruTggOvynOO5/QZND3yLcGHypSRIseQvGS M/oOtAFqq6xzR3Eh
TyykjhyxJyOAMY79Oue/tzYqFLu3eZoVmjMinaU3c5+lAEDR778xgP5ZIlky hwWXGOff5Tx/c9zU
aRvNd3IEQVDMjGRgQSFC8DjkZU9+/wCdtru2XduuIhtO1suOD6H8j+VOE8LO EEsZYkrtDDOR1H4U
AVFsnWblA6eaZMmdx1bd9zGOP1xVn7NH5m/dLnOcec+Pyzj8Kd58PneT5sfm /wBzcN3r0pv2u28z
y/tEW/O3bvGc+mKAJPLTdu2LnO7OO+MZ/Liqv2eb7Z9oxH9/GzccbcY3dPv9 vpx70575FuDD5UpI
kWPIXjJGf0HWpvPh/wCesf39n3h970+vtQBV+yzNPkpGq+ZuysrEYzn7hGMn 19eetJLazlPLRYWV
ZvOVmJyTv3Y6cdSM8/Tni01zAsvlNPGJMgbC4zk9OKbLdxROE3Bn3KpVWGVy QASM9OR+dAC+W/2z
zNkWzy9u7Hz5z0z6f1qv9lmafJSNV8zdlZWIxnP3CMZPr689aueYnmeXvXfj dtzzj1xTGuYFl8pp
4xJkDYXGcnpxQAxY5o7iQp5ZSRw5Yk5HAGMd+nXPf25bBFNHdzuY4tsr53Bz uwFAAxj29e9SJd27
zNCs0ZkU7Sm7nP0pftMAYL58e4tsA3jJb0+vIoAjdJzepIqRmNVK5LkHBKkn GPb1qF7actOyxw7p
JkcEuQSq44Py/wCz+p/G2J4zOYQylwMkBhkdOo696BPCzhBLGWJK7QwzkdR+ FAFCVJPMW2EYYLOJ
Q5Ru77jzjAwCecnpjHNaPlpu3bFzndnHfGM/lxTHuYEZleeNWQZYFwCB7/mP zqJ75FuDD5UpIkWP
IXjJGf0HWgCSFG8yWWQYZztA9FGcf1P447UnktJMJJWACH5FTIPXue/QcdPr wae8u2aOMDJfJPPQ
Dv8AmQPxpUljkZlVgWQ4Ze4+ooAfRRRQAUUUUANf7pqP/P8An/P/ANeR/umo /wDP+f8AP/1wBr/d
P+f8/wCfxjqR/un/AD/n/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/ dP8AvH+dOoGXKg8l
o5jJEwIc/Or5J69j26njp9OTUjyxxsqswDOcKvc/QUjy7Zo4wMl8k89AO/5k D8aYiv8AZ5vtn2jE
f38bNxxtxjd0+/2+nHvTfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVrz4f8AnrH9 /Z94fe9Pr7UjXMCy
+U08YkyBsLjOT04oAqy2s5Ty0WFlWbzlZick792OnHUjPP054s+W/wBs8zZF s8vbux8+c9M+n9aS
W7iicJuDPuVSqsMrkgAkZ6cj86l8xPM8veu/G7bnnHrigCktk6zcoHTzTJkz uOrbvuYxx+uKmdJz
epIqRmNVK5LkHBKknGPb1qRrmBZfKaeMSZA2FxnJ6cUpnhEhjMse8Yyu4ZGc Y4/EfnQBUWydZuUD
p5pkyZ3HVt33MY4/XFRNp8zo2Y4AzCYZDE4L9D0/D6flV6O5jeVoydjq5QKx GWwAcjnnginefD53
k+bH5v8Ac3Dd69KAKi2TrNygdPNMmTO46tu+5jHH64oe2nLTsscO6SZHBLkE quOD8v8As/qfxtrP
C67kljYcchgepwP14o8+HzvJ82Pzf7m4bvXpQBGsc0dxIU8spI4csScjgDGO /Trnv7c2KYkscjMq
sCyHDL3H1FPoAoPbTlp2WOHdJMjglyCVXHB+X/Z/U/i2WynLkps4lEgJlYBv mzjaOB9ec4z1PGjR
QBltp8zo2Y4AzCYZDE4L9D0/D6flUq2TrNygdPNMmTO46tu+5jHH64q/RQBD 9mj8zfulznOPOfH5
Zx+FSeWm7dsXOd2cd8Yz+XFOooApT205aTyvLKvKkvzEg5Xb8vT/AGev4Y70 n2WZp8lI1XzN2VlY
jGc/cIxk+vrz1q9RQBQWydZuUDp5pkyZ3HVt33MY4/XFSwRTR3c7mOLbK+dw c7sBQAMY9vXvVqig
Cg9tOWnZY4d0kyOCXIJVccH5f9n9T+LZbKcuSmziUSAmVgG+bONo4H15zjPU 8aNFAGW2nzOjZjgD
MJhkMTgv0PT8Pp+VSrZOs3KB080yZM7jq277mMcfrir9FAFH7JKbiaY7cmQO i+YxVsADDDGB0znn
Bx6cotk6zcoHTzTJkzuOrbvuYxx+uKv0UAVVS5F48vlxbGCp/rDkAE842+/S rHlpu3bFzndnHfGM
/lxTqKACq6xzR3EhTyykjhyxJyOAMY79Oue/tzYooApNHvvzGA/lkiWTKHBZ cY59/lPH9z3NRpG8
13cgRBUMyMZGBBIULwOORlT37/no0UAUFsnWblA6eaZMmdx1bd9zGOP1xVn7 NH5m/dLnOcec+Pyz
j8KmooAb5abt2xc53Zx3xjP5cVV+zzfbPtGI/v42bjjbjG7p9/t9OPerlFAF H7LM0+Skar5m7Kys
RjOfuEYyfX1560ktrOU8tFhZVm85WYnJO/djpx1Izz9OeL9FAEPlv9s8zZFs 8vbux8+c9M+n9ar/
AGWZp8lI1XzN2VlYjGc/cIxk+vrz1q9RQBXWOaO4kKeWUkcOWJORwBjHfp1z 39uWwRTR3c7mOLbK
+dwc7sBQAMY9vXvVqigCs6Tm9SRUjMaqVyXIOCVJOMe3rUL205adljh3STI4 JcglVxwfl/2f1P43
6KAMyVJPMW2EYYLOJQ5Ru77jzjAwCecnpjHNaPlpu3bFzndnHfGM/lxTqKAI YUbzJZZBhnO0D0UZ
x/U/jjtSeS0kwklYAIfkVMg9e579Bx0+vBqeigAooooAKKKKAGv901H/AJ/z /n/68j/dNR/5/wA/
5/8ArgDX+6f8/wCf8/jHUj/dP+f8/wCfxjpDK131T8f6UUXfVPx/pRQInj+6 f94/zp1Nj+6f94/z
p1AyXyWjmMkTAhz86vknr2PbqeOn05NLCjeZLLIMM52geijOP6n8cdqmopiK f2eb7Z9oxH9/Gzcc
bcY3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561eooAoS2s5Ty0WFlWb zlZick792OnHUjPP
054s+W/2zzNkWzy9u7Hz5z0z6f1qaigCj9lmafJSNV8zdlZWIxnP3CMZPr68 9aesEisIzHC8YlMg
diSQSxPC4684zn39qt0UAUHtpy07LHDukmRwS5BKrjg/L/s/qfxFsnWblA6e aZMmdx1bd9zGOP1x
V+igDLbT5nRsxwBmEwyGJwX6Hp+H0/Kny2U5clNnEokBMrAN82cbRwPrznGe p40aKAIPJaSYSSsA
EPyKmQevc9+g46fXg1PRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUA
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA1 /umo/wDP+f8AP/15
H+6aj/z/AJ/z/wDXAGv90/5/z/n8Y6kf7p/z/n/P4x0hla76p+P9KKLvqn4/ 0ooETx/dP+8f506m
x/dP+8f506gZcooopiCiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAoooo
AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigA
ooooAKKKKAGv93HqRVUzIDhioPu3/wBerUhAXJOACMk/WqDGBnVmKHb70AE0 hM8ABwrE5wevBqWq
8zh7qAhgxy2cH2NWKQytd9U/H+lFF31T8f6UUCJ4/un/AHj/ADp1Nj+6f94/ zp1Ax7y7BkngAEkk
1BdzuLN3QlSVyCCcjNLMYnyrOvQd+nFQ3bp9jdVdSQgHX0oEaGT6n/P+f89z J9T/AJ/z/nun+f8A
P+f/AK5/n/P+f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuA
Re: A Diagnostic Message for the Valid Schema [message #20058 is a reply to message #19645] Sat, 03 May 2003 22:51 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: paechoi.earthlink.net

This is a multi-part message in MIME format.

------=_NextPart_000_0012_01C311A5.01FA6910
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0013_01C311A5.01FA6910"


------=_NextPart_001_0013_01C311A5.01FA6910
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Ed,

When I tried to get the line information by using the getLine() method =
in the
XSDDiagnostic interface. It seems like returning 1 unlike line 7 and =
line 8
shown in the screen capture in your privious message.

How should we do to get the line number? Thank you.

Regards,


Pae


"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB25ED9.AE2CB299@ca.ibm.com...
Pae,=20
I'm seeing this result with the just published 1.1.0 driver:=20


The schema isn't valid.=20
=20
Pae Choi wrote:=20

I have a simple test schema as follows:=20
<?xml version=3D"1.0" encoding=3D"UTF-8"?>=20
<!--W3C Schema generated by Pae -->=20
<xsd:schema xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema"=20
elementFormDefault=3D"qualified">=20
<xsd:element name=3D"CommonLogin">=20
<xsd:complexType>=20
<xsd:sequence>=20
<xsd:element name=3D"username" ref=3D"usernameRef"/>=20
<xsd:element name=3D"password" ref=3D"passwordRef"/>=20
</xsd:sequence>=20
</xsd:complexType>=20
</xsd:element>=20
<xsd:element name=3D"passwordRef" type=3D"xsd:string"/>=20
<xsd:element name=3D"usernameRef" type=3D"xsd:string"/>=20
</xsd:schema>=20

This is a very simple sample, but it is a valid schema. But when=20
I use the validate() and getDiagnostics() methods in the XSDSchema=20
interface it gives me a message as follows:=20

XSD: The element '#null' is not permitted as constrained by 'XML =
Schema ';=20
expecting schema=20

I do not understand what the message is saying. Any comments?=20

Pae


------=_NextPart_001_0013_01C311A5.01FA6910
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2600.0" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT size=3D2>Ed,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>When I tried to get the line information by using =
the=20
getLine() method in the</FONT></DIV>
<DIV><FONT size=3D2>XSDDiagnostic interface. It seems like returning 1 =
unlike line=20
7 and line 8</FONT></DIV>
<DIV><FONT size=3D2>shown in the screen capture&nbsp; in your privious=20
message.</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>How should we do to get the line number? Thank=20
you.</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Regards,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Pae</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV>"Ed Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB25ED9.AE2CB299@ca.ibm.com">news:3EB25ED9.AE2CB299@ca.ibm.=
com</A>...</DIV>Pae,=20

<P>I'm seeing this result with the just published 1.1.0 driver:=20
<BLOCKQUOTE><IMG height=3D411 =
src=3D"cid:000d01c311c6$8902e150$0b01a8c0@dev1"=20
width=3D502></BLOCKQUOTE>The schema isn't valid. <BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">I have a simple test schema as follows:=20
<P>&lt;?xml version=3D"1.0" encoding=3D"UTF-8"?&gt; <BR>&lt;!--W3C =
Schema=20
generated by Pae --&gt; <BR>&lt;xsd:schema xmlns:xsd=3D"<A=20
=
href=3D"http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchem=
a</A>"=20
<BR>elementFormDefault=3D"qualified"&gt; <BR>&nbsp;&lt;xsd:element=20
name=3D"CommonLogin"&gt; <BR>&nbsp; &lt;xsd:complexType&gt; =
<BR>&nbsp;&nbsp;=20
&lt;xsd:sequence&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;xsd:element =
name=3D"username"=20
ref=3D"usernameRef"/&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;xsd:element=20
name=3D"password" ref=3D"passwordRef"/&gt; <BR>&nbsp;&nbsp;=20
&lt;/xsd:sequence&gt; <BR>&nbsp; &lt;/xsd:complexType&gt;=20
<BR>&nbsp;&lt;/xsd:element&gt; <BR>&nbsp;&lt;xsd:element =
name=3D"passwordRef"=20
type=3D"xsd:string"/&gt; <BR>&nbsp;&lt;xsd:element =
name=3D"usernameRef"=20
type=3D"xsd:string"/&gt; <BR>&lt;/xsd:schema&gt;=20
<P>This is a very simple sample, but it is a valid schema. But when =
<BR>I=20
use the validate() and getDiagnostics() methods in the XSDSchema=20
<BR>interface it gives me a message as follows:=20
<P>XSD: The element '#null' is not permitted as constrained by 'XML =
Schema=20
'; <BR>expecting schema=20
<P>I do not understand what the message is saying. Any comments?=20
<P>Pae</P></BLOCKQUOTE></BLOCKQUOTE></BODY></HTML>

------=_NextPart_001_0013_01C311A5.01FA6910--

------=_NextPart_000_0012_01C311A5.01FA6910
Content-Type: image/jpeg;
name="C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\nsmailFJ.jpeg"
Content-Transfer-Encoding: base64
Content-ID: <000d01c311c6$8902e150$0b01a8c0@dev1>

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCws MGJGSjpQdGZ6eHJm
cG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAqMF40 NF7GhHCExsbGxsbG
xsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsb/ wAARCAGbAfYDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA AgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcY GRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKT lJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP0 9fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQA AQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2 Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOk paanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMB AAIRAxEAPwDXghR4
9zbiST/EfU0m23yQBKcHHG81Ja/6kf7zfzNVLrfsTY5wGkLRrJsZueoPt6e9 NK4FpIYJEDIWKnoQ
5/xpfs0Xo3/fZ/xqKy2bmMbMUZEcZ75zzjt2qMXc+1kYBbgkbYvLyRnJ67sN wDzkdPXikBZ+zRej
f99n/Gj7NF6N/wB9n/Gqa31w+eI027VYMuTuLsmeD2xnHPpnvS/bZyJnHlhY ELMNpy5DODg54zs9
+vegC39mi9G/77P+NH2aL0b/AL7P+NUEup4hIkMQZY2kdycYwZH4yWGPu9ef 8b883lxs6FW2H5l7
n2HvyMDv075oAPs0Xo3/AH2f8aPs0Xo3/fZ/xqFriZWhLGMRPt/eKpdSSeFG Dx2+YjBz26Uy3kkm
uraaQptkgZlVVIKglDgnPP6UATyQxIudrH/gZpm2L+43/fw1NP8AcH1rJvJZ becG2JlkdSWhOSAA
PvD0/r9aQGhti/uN/wB/DTDGBI65bAPHzH0B/rUdntNurLMZt3zFyep+nb6V M/8Ar5f94fyFAxvl
j1b/AL6NHlj1b/vo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+ jTqKAG+WPVv++jR5
Y9W/76NOooAb5Y9W/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igBvlj1 b/vo0eWPVv8Avo06
igBvlj1b/vo0eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPVv++jR5Y9 W/76NOooAb5Y9W/7
6NHlj1b/AL6NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/AL6NHlj1b/vo06ig Bvlj1b/vo0eWPVv+
+jTqKAG+WPVv++jR5Y9W/wC+jTqKAG+WPVv++jR5Y9W/76NOooAb5Y9W/wC+ jR5Y9W/76NOooAb5
Y9W/76NHlj1b/vo06igBvlj1b/vo0eWPVv8Avo06igBvlj1b/vo0eWPVv++j TqKAG+WPVv8Avo0e
WPVv++jTqKAG+WPVv++jR5Y9W/76NOooAb5Y9W/76NHlj1b/AL6NOooAb5Y9 W/76NHlj1b/vo06i
gCvOTEV2MRnOcnP86KS76p+P9KKBF+1/1I/3m/majktGkBVmiZNxYK8W7Gfx 96hREIJKqTuPUe9O
8uP+4v5U7gWIYnR3d3DFgBwuMYz/AI0otoBEYhBGI2OSgQYJ+lNdbaNlVkjD OcKu0ZP0FMcwRyBW
tvlyFMmwbQT0Hqeo6DHP1oAmWCFF2pFGo44CgdDkfrzTPscBn84xIXwMZUfK QScj3yaT/Q/+mH39
nb73p9fahfsbruTyGHHIwepwP14oAkaCFipaKMlCWUlRwSckj8ad5abt2xc5 3Zx3xjP5cVCVgFws
JgXLIXDbRjggEfqKk8iH/nkn/fIoABBCJBIIo94zhtoyM5zz+J/OhIIY5GkS KNXbqwUAn8ah8yw8
vzN9tszt3ZXGfTNO/wBD87yf3Hm/3ON3r0oAklUsoAGeagFuVZmEYDN94jGT 9adusgwXNvuLbAMr
kt6fXkUM1ksvlMbcSZA2ErnJ6cUANW3KZ2RhdxycYGT60j/6+X/eH8hUgFqZ zCEiLgZIG3I6dR17
0f6H53k/uPN/ucbvXpQBHRUg+xs4QeQWJK7RjOR1H4U3zLDzPL322/O3blc5 9MUrANoprz2y3Bh+
ysSJFjyIxjJGf0HWpf8ARvtPkeSN+0tkx4GBjv369qLAMoqx5EP/ADyT/vkV X8y33f8AHt+737PM
2rtznGOuevHT9KLAFFNee2W4MP2ViRIseRGMZIz+g61a8iH/AJ5J/wB8iiwF eipP9D87yf3Hm/3O
N3r0oH2NnCDyCxJXaMZyOo/CiwEdFSH7GJDGfI3jGV4yM4xx+I/Oj/Q/O8n9 x5v9zjd69KLAR0Us
slpE4TZGz7lUqu3K5IAJHpyPzp4FqZzCEiLgZIG3I6dR170WAjoqQfY2cIPI LEldoxnI6j8KR2sk
Zlc26sgywJUED3/MfnRYBlFO8yw8zy99tvzt25XOfTFRvPbLcGH7KxIkWPIj GMkZ/QdaLAOoprzQ
r5n+hMfLkEZwqck4xjn3H5/WkeeJHKf2fKxAYjCJ8wU4JAznuPrRYB9FN86H z2iFkxKvtJCp7c4z
nHzDt3q15EP/ADyT/vkUWAr0UeZb7v8Aj2/d79nmbV25zjHXPXjp+lNee2W4 MP2ViRIseRGMZIz+
g60WAdRTnMEcgVrb5chTJsG0E9B6nqOgxz9aei20jMqpGWQ4ZdoyPqKLARUV Y8iH/nkn/fIo8iH/
AJ5J/wB8iiwFeirHkQ/88k/75FHkQ/8APJP++RRYCvRVjyIf+eSf98ijyIf+ eSf98iiwFeirHkQ/
88k/75FHkQ/88k/75FFgK9FWPIh/55J/3yKPIh/55J/3yKLAV6KseRD/AM8k /wC+RR5EP/PJP++R
RYCvRVjyIf8Ankn/AHyKPIh/55J/3yKLAV6KseRD/wA8k/75FHkQ/wDPJP8A vkUWAr0VY8iH/nkn
/fIo8iH/AJ5J/wB8iiwFeipngh2/6pOo/hFQbYv+eUfPtQMWioJlTz4FCKAS cgDrxUb3FsjlWj5B
x90UWGouWiQ676p+P9KKLtFRlAUDrnAooJJ4/un/AHj/ADp1Nj+6f94/zp1A yXyWjmMkTAhz86vk
nr2PbqeOn05NOeMyTLuAMSjP3urZ4yMdvr+HQ055Y42VWYBnOFXufoKDIBMs WDuZSw9MAj/EUxFb
7PN9s+0Yj+/jZuONuMbun3+30496rtp8zo2Y4AzCYZDE4L9D0/D6flWpRQBW dJzepIqRmNVK5LkH
BKknGPb1qzVV70L5n7iU+XIIzjbyTjGOfcfn9akFwPOEbRyKGJVXIGGIycev Y9scfSgCP7M/2rOV
+z58zb33/Tpjv67uaiWydZuUDp5pkyZ3HVt33MY4/XFWGufnwkMki7gpdAMA 5x65474/oanoAqwR
TR3c7mOLbK+dwc7sBQAMY9vXvUf2WZp8lI1XzN2VlYjGc/cIxk+vrz1qb7WC 2FhlZd+wOqgjOcHv
kY55Ixx9KkM8IkMZlj3jGV3DIzjHH4j86AInSc3qSKkZjVSuS5BwSpJxj29a Z9nmx5OI/K83zN+4
7vv78bcfh19/apo7mN5WjJ2OrlArEZbAByOeeCKd58PneT5sfm/3Nw3evSgC o9tOWnZY4d0kyOCX
IJVccH5f9n9T+Nn7NH5m/dLnOcec+Pyzj8Kcs8LruSWNhxyGB6nA/Xijz4fO 8nzY/N/ubhu9elAD
vLTdu2LnO7OO+MZ/LioHSc3qSKkZjVSuS5BwSpJxj29as1E9zAjMrzxqyDLA uAQPf8x+dAC/vvtH
/LPyNnvu3Z/LGKr/AGebHk4j8rzfM37ju+/vxtx+HX39qsefD53k+bH5v9zc N3r0oE8LOEEsZYkr
tDDOR1H4UAO8tN27Yuc7s474xn8uKdUfnw+d5Pmx+b/c3Dd69KT7TAGC+fHu LbAN4yW9PryKAKq2
TrNygdPNMmTO46tu+5jHH64oe2nLTsscO6SZHBLkEquOD8v+z+p/G358PneT 5sfm/wBzcN3r0pqX
du8zQrNGZFO0pu5z9KAIlgkVhGY4XjEpkDsSSCWJ4XHXnGc+/tSfZ5seTiPy vN8zfuO77+/G3H4d
ff2qx58PneT5sfm/3Nw3evSmS3cUThNwZ9yqVVhlckAEjPTkfnQBXltZynlo sLKs3nKzE5J37sdO
OpGefpzxM6Tm9SRUjMaqVyXIOCVJOMe3rVmoIbuKXau4JIxIEbMN3BIPAPsa AK7205adljh3STI4
JcglVxwfl/2f1P4xypJ5i2wjDBZxKHKN3fcecYGATzk9MY5q613bLu3XEQ2n a2XHB9D+R/KpqAIf
s0fmb90uc5x5z4/LOPwqTy03bti5zuzjvjGfy4qAXg81kaGRVRxGXO3GTjHf POR271L58PneT5sf
m/3Nw3evSgCB7aRpXA2eXJKkpYk5BXbxjHP3eue/tUjxyG9ikATy1RlJLHOS QemP9n170/z4fO8n
zY/N/ubhu9elSUAVYLYpeT3EkcYZz8rKxJ24AweP9kH8fzk+zR+Zv3S5znHn Pj8s4/CpqKAKP2N/
P3bIs+Zv8/P7zGc7enp8vXp+VXPLTdu2LnO7OO+MZ/LikSWORmVWBZDhl7j6 in0ARPGZJl3AGJRn
73Vs8ZGO31/Doab5LSTCSVgAh+RUyD17nv0HHT68Gp6KACiiigAooooAKKKK ACiiigAooooAKKKK
ACiiigAooooAKKKKAGyEBck4AIyT9az3EMjBmlOR0w4GKvyqrxlXUMD2IzVf 7Lb/APPCL/vgf5/z
+YBWlZWubfawOCe+f4aZJYLJIz+cRuOcbP8A69WzbwqMrDGD6hR/n/P5t8uP +4v5UXsXCcoO8SG9
OXU+uaKbdKF2BQAOen4UUiCxH90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51 fJPXse3U8dPpyakK
AzK+0ZVSN2eRkjjH4fpQ8scbKrMAznCr3P0FJ58P/PWP7+z7w+96fX2piG/Z o/M37pc5zjznx+Wc
fhR9mj8zfulznOPOfH5Zx+FK1zAsvlNPGJMgbC4zk9OKbLdxROE3Bn3KpVWG VyQASM9OR+dAEEti
73ZlDrtLhj6/wH/2mP8Avo+nMphka7WRljUIT8653MuDhSMdOc9eo6ek/mJ5 nl71343bc849cUxr
mBZfKaeMSZA2FxnJ6cUAMSOaJikflmIuX3MTuGTkjHfqecjr3xzYqMzwiQxm WPeMZXcMjOMcfiPz
psdzG8rRk7HVygViMtgA5HPPBFAEDWsjz+Y0durbw3nICHCg8DpzkDB5HXp6 uWCRWEZjheMSmQOx
JIJYnhcdecZz7+1T+fD53k+bH5v9zcN3r0oWeF13JLGw45DA9TgfrxQBUe2n LTsscO6SZHBLkEqu
OD8v+z+p/EWydZuUDp5pkyZ3HVt33MY4/XFW/Ph87yfNj83+5uG716VJQBlt p8zo2Y4AzCYZDE4L
9D0/D6flT5bKcuSmziUSAmVgG+bONo4H15zjPU8XfPh/56x/f2feH3vT6+1C zwuu5JY2HHIYHqcD
9eKAJKzJUk8xbYRhgs4lDlG7vuPOMDAJ5yemMc1fMoFwsJVsshcNxjggEfqK BPCzhBLGWJK7Qwzk
dR+FAFRbJ1m5QOnmmTJncdW3fcxjj9cUPbTlp2WOHdJMjglyCVXHB+X/AGf1 P42muYFl8pp4xJkD
YXGcnpxT/MTzPL3rvxu255x64oApLZOs3KB080yZM7jq277mMcfripYIpo7u dzHFtlfO4Od2AoAG
Me3r3qbz4f8AnrH9/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oApy2U5clNnEo kBMrAN82cbRwPrzn
Gep4srHNHcSFPLKSOHLEnI4Axjv0657+3Ky3cUThNwZ9yqVVhlckAEjPTkfn S/a7bzPL+0Rb87du
8Zz6YoArLZOs3KB080yZM7jq277mMcfriiW1nKeWiwsqzecrMTknfux046kZ 5+nPEr3yLcGHypSR
IseQvGSM/oOtSR3MbytGTsdXKBWIy2ADkc88EUATVQitZwnlusKq03nMyk5B 37sdOegGePpxzZS7
t3maFZozIp2lN3OfpQl3bvM0KzRmRTtKbuc/SgCBo99+YwH8skSyZQ4LLjHP v8p4/ue5q7UYnhZw
gljLEldoYZyOo/CneYnmeXvXfjdtzzj1xQBWitT9qmlmUYZwyASMRwAOV6Z4 z3/SoZbKcuSmziUS
AmVgG+bONo4H15zjPU8XXl2zRxgZL5J56Ad/zIH40PLtmjjAyXyTz0A7/mQP xoAqLZOs3KB080yZ
M7jq277mMcfrir9Qtd2y7t1xENp2tlxwfQ/kfyoa7tl3briIbTtbLjg+h/I/ lQAfZo/M37pc5zjz
nx+WcfhR9mj8zfulznOPOfH5Zx+FDXdsu7dcRDadrZccH0P5H8qmoAg8lpJh JKwAQ/IqZB69z36D
jp9eDU9Qtd2y7t1xENp2tlxwfQ/kfyoFwPOEbRyKGJVXIGGIycevY9scfSgC aiio/Ph87yfNj83+
5uG716UASUVF9pgDBfPj3FtgG8ZLen15FD3MCMyvPGrIMsC4BA9/zH50AS0V G8u2aOMDJfJPPQDv
+ZA/Gmi4HnCNo5FDEqrkDDEZOPXse2OPpQBNRVf7Wu7/AFcnl79nmcbc5xjr nrx0/Sj7Wu7/AFcn
l79nmcbc5xjrnrx0/SgCxRUX2hPtPkYfftLZKkDAx379e1K8u2aOMDJfJPPQ Dv8AmQPxoAkoqq96
Edk8iUsrhQo25bOcEc9OP5+hxHJqkUczxGKUusix4G3ktkjHPtQBeoqKGfzZ JU8t18ptpLYwTjPG
D6EfnTPtYLYWGVl37A6qCM5we+RjnkjHH0oAsUVGZ4RIYzLHvGMruGRnGOPx H502O5jeVoydjq5Q
KxGWwAcjnngigCaio/Ph87yfNj83+5uG716ULPC67kljYcchgepwP14oAkoq Pz4fO8nzY/N/ubhu
9elQvfItwYfKlJEix5C8ZIz+g60AWH+6aj/z/n/P/wBeR/umo/8AP+f8/wD1 wBr/AHT/AJ/z/n8Y
6kf7p/z/AJ/z+MdIZWu+qfj/AEoou+qfj/SigRPH90/7x/nTqbH90/7x/nTq BkvktHMZImBDn51f
JPXse3U8dPpyai+zzfbPtGI/v42bjjbjG7p9/t9OPerHnw+d5Pmx+b/c3Dd6 9KDKBcLCVbLIXDcY
4IBH6imIq/ZZmnyUjVfM3ZWViMZz9wjGT6+vPWkltZynlosLKs3nKzE5J37s dOOpGefpzxb8+Hzv
J82Pzf7m4bvXpQs8LruSWNhxyGB6nA/XigBvlv8AbPM2RbPL27sfPnPTPp/W q/2WZp8lI1XzN2Vl
YjGc/cIxk+vrz1q158PneT5sfm/3Nw3evSgTws4QSxliSu0MM5HUfhQBAsEi sIzHC8YlMgdiSQSx
PC4684zn39qje2nLTsscO6SZHBLkEquOD8v+z+p/Gyl3bvM0KzRmRTtKbuc/ So/to89ohBKSr7SR
t9ucZzj5h270ARLZOs3KB080yZM7jq277mMcfriom0+Z0bMcAZhMMhicF+h6 fh9PyrQ8+HzvJ82P
zf7m4bvXpSfaYAwXz49xbYBvGS3p9eRQBTlspy5KbOJRICZWAb5s42jgfXnO M9Txo1Gs8LruSWNh
xyGB6nA/Xio1u1MzxtHIgV9m9sbSeCBwe+R1+nXigCP7PN9s+0Yj+/jZuONu Mbun3+30496rtp8z
o2Y4AzCYZDE4L9D0/D6flWh58PneT5sfm/3Nw3evSoX1C3W4WBXV3JwQHX5T nHc/oMmgBXSc3qSK
kZjVSuS5BwSpJxj29ahe2nLTsscO6SZHBLkEquOD8v8As/qfxt+fD53k+bH5 v9zcN3r0o8+H/nrH
9/Z94fe9Pr7UAVfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVjy3+2eZsi2eXt3Y+ fOemfT+tOMoFwsJV
sshcNxjggEfqKal3bvM0KzRmRTtKbuc/SgCH7PN9s+0Yj+/jZuONuMbun3+3 0496b9lmafJSNV8z
dlZWIxnP3CMZPr689asfa7bzPL+0Rb87du8Zz6YqN75FuDD5UpIkWPIXjJGf 0HWgCKW1nKeWiwsq
zecrMTknfux046kZ5+nPFn7NH5m/dLnOcec+Pyzj8KV7mBGZXnjVkGWBcAge /wCY/Ol8+H/nrH9/
Z94fe9Pr7UAO8tN27Yuc7s474xn8uKpPbTlp2WOHdJMjglyCVXHB+X/Z/U/j b8+HzvJ82Pzf7m4b
vXpQZQLhYSrZZC4bjHBAI/UUARrHNHcSFPLKSOHLEnI4Axjv0657+3Isc0dx IU8spI4csScjgDGO
/Trnv7cyCeMzmEMpcDJAYZHTqOveoX1C3W4WBXV3JwQHX5TnHc/oMmgCBI3m u7kCIKhmRjIwIJCh
eBxyMqe/f87flv8AbPM2RbPL27sfPnPTPp/WnCeMzmEMpcDJAYZHTqOvejz4 fO8nzY/N/ubhu9el
ADYUbzJZZBhnO0D0UZx/U/jjtRCjeZLLIMM52geijOP6n8cdqSW7iicJuDPu VSqsMrkgAkZ6cj86
Y98i3Bh8qUkSLHkLxkjP6DrQAySzke5LiQCNnVyOeo29v+Af+PH05JLOR7ku JAI2dXI56jb2/wCA
f+PH05tJLHIzKrAshwy9x9RT6AKUlnI9yXEgEbOrkc9Rt7f8A/8AHj6c2f33 2j/ln5Gz33bs/ljF
SUUAUpLOR7kuJAI2dXI56jb2/wCAf+PH05kMMjXayMsahCfnXO5lwcKRjpzn r1HT0s0UAR/vvtH/
ACz8jZ77t2fyxiq/2ebHk4j8rzfM37ju+/vxtx+HX39quUUAVYIpo7udzHFt lfO4Od2AoAGMe3r3
qtKknmLbCMMFnEoco3d9x5xgYBPOT0xjmtOigCGFG8yWWQYZztA9FGcf1P44 7VGiXP2ou6xFckbt
5JCdgBjjtnn+mLVFAFP7PNjycR+V5vmb9x3ff3424/Dr7+1H2ebHk4j8rzfM 37ju+/vxtx+HX39q
uUUAVnSc3qSKkZjVSuS5BwSpJxj29afCjeZLLIMM52geijOP6n8cdqmooApy R3ZnMqiLKnagLnGw
9c/L1OB+Q98xy2k7SSyBIixlV0JkI+Ubcg8d9g/P89CigCmI7tZpSgiCySq+ 7echRtBGNvcD170j
Wsjz+Y0durbw3nICHCg8DpzkDB5HXp63aKAKiwSKwjMcLxiUyB2JJBLE8Ljr zjOff2qN7actOyxw
7pJkcEuQSq44Py/7P6n8b9FAFBbJ1m5QOnmmTJncdW3fcxjj9cVE2nzOjZjg DMJhkMTgv0PT8Pp+
ValFAGdLZTlyU2cSiQEysA3zZxtHA+vOcZ6ni/5abt2xc53Zx3xjP5cU6igB r/dNR/5/z/n/AOvI
/wB01H/n/P8An/64A1/un/P+f8/jHUj/AHT/AJ/z/n8Y6Qytd9U/H+lFF31T 8f6UUCJ4/un/AHj/
ADp1Nj+6f94/zp1Axi2TrNygdPNMmTO46tu+5jHH64qZ0nN6kipGY1UrkuQc EqScY9vWrNMeWONl
VmAZzhV7n6CmIprZOs3KB080yZM7jq277mMcfriom0+Z0bMcAZhMMhicF+h6 fh9PyrQ8+H/nrH9/
Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oAqrZOs3KB080yZM7jq277mMcfrih7 actOyxw7pJkcEuQS
q44Py/7P6n8bEt3FE4TcGfcqlVYZXJABIz05H51L5ieZ5e9d+N23POPXFAEK xzR3EhTyykjhyxJy
OAMY79Oue/ty2C2KXk9xJHGGc/KysSduAMHj/ZB/H85vPh87yfNj83+5uG71 6UGUC4WEq2WQuG4x
wQCP1FAFf7PNjycR+V5vmb9x3ff3424/Dr7+1Ogimju53McW2V87g53YCgAY x7evepvPh87yfNj8
3+5uG716ULPC67kljYcchgepwP14oAz20+Z0bMcAZhMMhicF+h6fh9PyqwLe ZppfMEaxPKsmVYlv
l24GMcfdB/T3qx58PneT5sfm/wBzcN3r0oE8LOEEsZYkrtDDOR1H4UAVFsnW blA6eaZMmdx1bd9z
GOP1xUqpci8eXy4tjBU/1hyACecbffpUiXdu8zQrNGZFO0pu5z9KmoAzpbKc uSmziUSAmVgG+bON
o4H15zjPU8ST205aTyvLKvKkvzEg5Xb8vT/Z6/hjvVkTws4QSxliSu0MM5HU fhR58PneT5sfm/3N
w3evSgCJ0nN6kipGY1UrkuQcEqScY9vWlWOaO4kKeWUkcOWJORwBjHfp1z39 uZFnhddySxsOOQwP
U4H68UefD53k+bH5v9zcN3r0oAb9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd 8Yz+XFR/a7bzPL+0
Rb87du8Zz6YqN75FuDD5UpIkWPIXjJGf0HWgCvcxSxRqpjV41uBIGVWZuX3H gDjAJ5z296lntpy0
nleWVeVJfmJByu35en+z1/DHepmufnwkMki7gpdAMA5x65474/oaf58PneT5 sfm/3Nw3evSgClLZ
TlyU2cSiQEysA3zZxtHA+vOcZ6niw6Tm9SRUjMaqVyXIOCVJOMe3rUqzwuu5 JY2HHIYHqcD9eKFn
hddySxsOOQwPU4H68UAROk5vUkVIzGqlclyDglSTjHt60ipci8eXy4tjBU/1 hyACecbffpU3nw+d
5Pmx+b/c3Dd69KBPCzhBLGWJK7QwzkdR+FAETpOb1JFSMxqpXJcg4JUk4x7e tQrZOs3KB080yZM7
jq277mMcfrirUM/mySp5br5TbSWxgnGeMH0I/Ol8+HzvJ82Pzf7m4bvXpQBU ltZynlosLKs3nKzE
5J37sdOOpGefpzxd8tN27Yuc7s474xn8uKY9zAjMrzxqyDLAuAQPf8x+dKJ4 zOYQylwMkBhkdOo6
96AGeS0kwklYAIfkVMg9e579Bx0+vBqeoxPCzhBLGWJK7QwzkdR+FQvfItwY fKlJEix5C8ZIz+g6
0AWqKYkscjMqsCyHDL3H1FPoAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKK
KACiiigBr/dNR/5/z/n/AOvI/wB01H/n/P8An/64A1/un/P+f8/jHUj/AHT/ AJ/z/n8Y6Qytd9U/
H+lFF31T8f6UUCJ4/un/AHj/ADp1Nj+6f94/zp1Ay5UHktHMZImBDn51fJPX se3U8dPpyanopiKf
2eb7Z9oxH9/GzccbcY3dPv8Ab6ce9N+yzNPkpGq+ZuysrEYzn7hGMn19eetW 3ljjZVZgGc4Ve5+g
pPPh/wCesf39n3h970+vtQBUltZynlosLKs3nKzE5J37sdOOpGefpzxZ8t/t nmbItnl7d2Pnznpn
0/rStcwLL5TTxiTIGwuM5PTimy3cUThNwZ9yqVVhlckAEjPTkfnQBXWydZuU Dp5pkyZ3HVt33MY4
/XFTOk5vUkVIzGqlclyDglSTjHt61P5ieZ5e9d+N23POPXFNM8IkMZlj3jGV 3DIzjHH4j86AKi2T
rNygdPNMmTO46tu+5jHH64qJtPmdGzHAGYTDIYnBfoen4fT8q0PPh87yfNj8 3+5uG716ULPC67kl
jYcchgepwP14oAqLZOs3KB080yZM7jq277mMcfrih7actOyxw7pJkcEuQSq4 4Py/7P6n8bYnhZwg
ljLEldoYZyOo/CgygXCwlWyyFw3GOCAR+ooAjWOaO4kKeWUkcOWJORwBjHfp 1z39ubFR+fD53k+b
H5v9zcN3r0o8+H/nrH9/Z94fe9Pr7UAVHtpy07LHDukmRwS5BKrjg/L/ALP6 n8Wy2U5clNnEokBM
rAN82cbRwPrznGep4me+KOU+yXDEBiMBfmCnBIGc9x9ala7tl3briIbTtbLj g+h/I/lQBRbT5nRs
xwBmEwyGJwX6Hp+H0/KpVsnWblA6eaZMmdx1bd9zGOP1xVsTws4QSxliSu0M M5HUfhR58PneT5sf
m/3Nw3evSgBv2aPzN+6XOc4858flnH4VJ5abt2xc53Zx3xjP5cUiSxyMyqwL IcMvcfUU+gCukc0T
FI/LMRcvuYncMnJGO/U85HXvjmP7PNjycR+V5vmb9x3ff3424/Dr7+1XKKAM ttPmdGzHAGYTDIYn
Bfoen4fT8qG0+Z0bMcAZhMMhicF+h6fh9PyrUooAp/Z5seTiPyvN8zfuO77+ /G3H4dff2pj205ad
ljh3STI4JcglVxwfl/2f1P436KAKYju1mlKCILJKr7t5yFG0EY29wPXvR9nm x5OI/K83zN+47vv7
8bcfh19/arlFAGZKknmLbCMMFnEoco3d9x5xgYBPOT0xjmrTpOb1JFSMxqpX Jcg4JUk4x7etWaKA
KD205adljh3STI4JcglVxwfl/wBn9T+N3y03bti5zuzjvjGfy4p1FAEHktJM JJWACH5FTIPXue/Q
cdPrwanoooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigBr/AHTU
f+f8/wCf/ryP901H/n/P+f8A64A1/un/AD/n/P4x1I/3T/n/AD/n8Y6Qytd9 U/H+lFF31T8f6UUC
J4/un/eP86dTY/un/eP86dQMuUUUUxEHktHMZImBDn51fJPXse3U8dPpyai+ zzfbPtGI/v42bjjb
jG7p9/t9OPerlMeWONlVmAZzhV7n6CgCp9lmafJSNV8zdlZWIxnP3CMZPr68 9aSW1nKeWiwsqzec
rMTknfux046kZ5+nPFvz4f8AnrH9/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04o ATy3+2eZsi2eXt3Y
+fOemfT+tRLBIrCMxwvGJTIHYkkEsTwuOvOM59/apJbuKJwm4M+5VKqwyuSA CRnpyPzqXzE8zy96
78btueceuKAKv2ebHk4j8rzfM37ju+/vxtx+HX39qrtp8zo2Y4AzCYZDE4L9 D0/D6flV9rmBZfKa
eMSZA2FxnJ6cUvnw+d5Pmx+b/c3Dd69KAKSRvNd3IEQVDMjGRgQSFC8DjkZU 9+/52HSc3qSKkZjV
SuS5BwSpJxj29ake5gRmV541ZBlgXAIHv+Y/Ol8+H/nrH9/Z94fe9Pr7UAVF snWblA6eaZMmdx1b
d9zGOP1xT/s832z7RiP7+Nm4424xu6ff7fTj3qx58PneT5sfm/3Nw3evSgTw s4QSxliSu0MM5HUf
hQAx45DexSAJ5aoykljnJIPTH+z696haPffmMB/LJEsmUOCy4xz7/KeP7nua smeESGMyx7xjK7hk
Zxjj8R+dHnw+d5Pmx+b/AHNw3evSgCkkbzXdyBEFQzIxkYEEhQvA45GVPfv+ blsnWblA6eaZMmdx
1bd9zGOP1xVxJY5GZVYFkOGXuPqKfQBB5LSTCSVgAh+RUyD17nv0HHT68Gp6 KKACiiigAooooAKK
KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooo
oAKKKKAGv901H/n/AD/n/wCvI/3TUf8An/P+f/rgDX+6f8/5/wA/jHUj/dP+ f8/5/GOkMrXfVPx/
pRRd9U/H+lFAieP7p/3j/OnVSaJmlYlpfmJ2ojkZ68+39T265WFf3yENKpxu 2PIWyOeR/h9D65NC
uV2ubFFFFMkKg8lo5jJEwIc/Or5J69j26njp9OTU9FAFP7PN9s+0Yj+/jZuO NuMbun3+30496b9l
mafJSNV8zdlZWIxnP3CMZPr689a59Li9dWZZ5yqjLHecD8aXzr//AJ63P3d/ 3m+76/T3rTkJ5jel
tZynlosLKs3nKzE5J37sdOOpGefpzxZ8t/tnmbItnl7d2Pnznpn0/rXMiXUW j8xXujHjO4FsfnTo
3v5EL/aJ1TaSGZmw2ASQD68H8qOTzDmNz7LM0+Skar5m7KysRjOfuEYyfX15 60i2TrNygdPNMmTO
46tu+5jHH64rA+03vl+Z59xszjdvbGfTNL51/wCV5vm3Pl/39zY/OjkDmNu5 ilijVTGrxrcCQMqs
zcvuPAHGATznt71LPbTlpPK8sq8qS/MSDldvy9P9nr+GO9c+Li7MBlF3LgMF K+Y2eQSD+ho86/8A
K83zbny/7+5sfnRyBzG8tk6zcoHTzTJkzuOrbvuYxx+uKHtpy07LHDukmRwS 5BKrjg/L/s/qfxwW
mv0OGluVPPBZh0GT+nNHnX/leb5tz5f9/c2Pzo5A5jolgkVhGY4XjEpkDsSS CWJ4XHXnGc+/tUa2
TrNygdPNMmTO46tu+5jHH64rBM1+E3mW5CgA5LNjB6GnM+opEJWkuRGRkNub GKOTzDmOk8lpJhJK
wAQ/IqZB69z36Djp9eDU9cf9tuv+fmb/AL+Gnma/CbzLchQAclmxg9DR7MOY 62iuS86/8rzfNufL
/v7mx+dDTX6HDS3Knngsw6DJ/TmjkDmOtorkvOv/ACvN8258v+/ubH507fqX l+Zuu9mM7stjHrmj
k8w5jq6K5dTetAJftrAFGkwZWzgHH6npUXnX/wDz1ufu7/vN931+nvRyeYcx 1tFcmJdRaPzFe6Me
M7gWx+dJ51/5Xm+bc+X/AH9zY/Ojk8w5jraK5PzdR2lt91gLuJy3T1+lIZr8 JvMtyFAByWbGD0NH
J5hzHW0VyXnX/leb5tz5f9/c2Pzoaa/Q4aW5U88FmHQZP6c0cgcx1tFcl51/ 5Xm+bc+X/f3Nj86l
U3rQCX7awBRpMGVs4Bx+p6UcnmHMdRRXH/bbr/n5m/7+GpPN1HaW33WAu4nL dPX6UezDmOsorkvO
v/K83zbny/7+5sfnUqjUWgMxnuFQDIJL/MMZ7fzNHJ5hzHUUVym/UvL8zdd7 MZ3ZbGPXNPU3rQCX
7awBRpMGVs4Bx+p6UuTzC51FFcl51/8A89bn7u/7zfd9fp70ol1Fo/MV7ox4 zuBbH50+TzDmOsor
kvOv/K83zbny/wC/ubH50vm6jtLb7rAXcTlunr9KOTzDmOsorkjNfhN5luQo AOSzYweho86/8rzf
NufL/v7mx+dHIHMdbRXJNNfocNLcqeeCzDoMn9OaPOv/ACvN8258v+/ubH50 cgcx1tFcvuu/LVhf
MxZC4QO+cDOe2OMHv2qLzr/yvN8258v+/ubH50cgcx1tFcuo1FoDMZ7hUAyC S/zDGe38zQpvWgEv
21gCjSYMrZwDj9T0pcnmFzqKK5JLm6aKSQ3UwCYA+c8k9uvoCfwpHuL1FVmn nCsMqd5wfxp8gcx1
1FFFZlBRRRQA1/umo/8AP+f8/wD15H+6aj/z/n/P/wBcAa/3T/n/AD/n8Y6k f7p/z/n/AD+Nczxg
kZPHH3TSGk3sRXfVPx/pRRdEMIyOhBI/SigBu7MxdFLyR5AQd/mzn9enXp60 Iha8Ezh03ZIVhyT3
/D3+lOMcJ5aBJJGLYG0ZPJ70sAg3jFukUmNy8DkeoNLS5peXKalFFFUZBRRR QBx+/wAyIJIhyo+Q
pgfmO/Qc9frxUvmx/ZfI+f7md20Z3Zzt6/d/rzXQyQWSMqvDAGc/KuwZb8KT y9P/ALlt9/Z0X73p
9fatOdBZGB5yCHALsxj24Mag5xj7+c49vTApYpog+9jMC8XlFVAwBt25689j jj/HdZNOWXymW1Eh
I+Qhc57cU2UWEb7PIgdyyhlVVyuSACR6cj86OdBZHOZH2Ty8y79+7bn5MY64 9asG5DRDBKP5ezAh
U/w4+9nPP9a6D7PZeZ5fkwb8btu0Zx64pvl6f53k7Lbzf7mF3evSjnQWRzie V9keMtJ5jENgIMcA
8Zz71KbkNEMEo/l7MCFT/Dj72c8/1reMNr9oEJtI8spcNsXBwQD+PIo8vT/O 8nZbeb/cwu716Uc6
CyMVbuNXXa0xUGIgFQMhOo6/j9fzqM3IaIYJR/L2YEKn+HH3s55/rW8senyL uVLZgccgKc5OB+uR
R5en+d5Oy283+5hd3r0o5kFkYKTRbYFZpsJE6kBB1bPI5/2v0HrUJMckEYYP vRCoAAweSc57demP
510gj09n2BLYsWI24XJI6j6imqNNkmaFVtjIGwU2rnP070c4WRy21vSrqTRb YFZpsJE6kBB1bPI5
/wBr9B610X2O1/59of8AvgVGI9PZ9gS2LFiNuFySOo+oocwtEw4rmIKA4fmM oQI1JHy4zuPJ+nHX
83Ldxq67WmKgxEAqBkJ1HX8fr+dbXl6f53k7Lbzf7mF3evShY9PkXcqWzA45 AU5ycD9cijmQWRgm
5DRDBKP5ezAhU/w4+9nPP9ar+dL5ezZHjGP9UufzxnNdN5en+d5Oy283+5hd 3r0puNM8zy8Wm/dj
b8uc+mPWjnQWRzGZMYy2MYxntnOPz5qzDLEFj8wSArG0Y2gHg7uev+10/XtW 07WS3Bh+w7j5ix5E
QIJIz+g61MI9PZ9gS2LFiNuFySOo+oo5wsjA85BDgF2Yx7cGNQc4x9/Oce3p gUpuQ0QwSj+XswIV
P8OPvZzz/Wt7y9P87ydlt5v9zC7vXpSMmnLL5TLaiQkfIQuc9uKOdBZHPStH JbQory7o0wFKjbkn
J5z7+nYVIk0W2BWabCROpAQdWzyOf9r9B61usmnLL5TLaiQkfIQuc9uKRhpi 7twtBtbDZ28Hng+/
Bo5wsjFiuYgoDh+YyhAjUkfLjO48n6cdfzct3GrrtaYqDEQCoGQnUdfx+v51 teXp/neTstvN/uYX
d69KQpp27aVtdxbbjC5Len15/WjmQWRhG5DRDBKP5ezAhU/w4+9nPP8AWqmZ MYy2MYxntnOPz5rp
pRYRvs8iB3LKGVVXK5IAJHpyPzpjtZLcGH7DuPmLHkRAgkjP6DrRzoLI5ra3 pVmVo5LaFFeXdGmA
pUbck5POff07Cum+x2v/AD7Q/wDfAqIpp27aVtdxbbjC5Len15/WnzhaJhG5 DRDBKP5ezAhU/wAO
PvZzz/Woz5LWiR7pd6ln/wBWMEkDjr7frXReXp/neTstvN/uYXd69KheTThc CAQwO5bDABODnHOT
yevAyaXOgsjn/Ol8vZsjxjH+qXP54zmmZkxjLYxjGe2c4/PmunxpnmeXi037 sbflzn0x61G7WS3B
h+w7j5ix5EQIJIz+g60+dBZGLDLEFj8wSArG0Y2gHg7uev8AtdP17UvnIIcA uzGPbgxqDnGPv5zj
29MCt8R6ez7AlsWLEbcLkkdR9RR5en+d5Oy283+5hd3r0pc6CyME3IaIYJR/ L2YEKn+HH3s55/rU
crRyW0KK8u6NMBSo25Jyec+/p2FdCyacsvlMtqJCR8hC5z24oZNOWXymW1Eh I+Qhc57cUc6CyMJJ
otsCs02EidSAg6tnkc/7X6D1p0VzEFAcPzGUIEakj5cZ3Hk/Tjr+e0w0xd24 Wg2ths7eDzwffg07
y9P87ydlt5v9zC7vXpRzoLIxVu41ddrTFQYiAVAyE6jr+P1/OozchohglH8v ZgQqf4cfeznn+tbp
TTt20ra7i23GFyW9Prz+tNlFhG+zyIHcsoZVVcrkgAkenI/OjmQWRh+eggii AYjyyrNsAYZJPBzn
vjHGR9aU3IaIYJR/L2YEKn+HH3s55/rWz/onmujWIVVkCM5RMZOMd885HbvU vl6f53k7Lbzf7mF3
evSjnQWRzp8lrRI90u9Sz/6sYJIHHX2/WoMyYxlsYxjPbOcfnzXRvJpwuBAI YHcthgAnBzjnJ5PX
gZNDtZLcGH7DuPmLHkRAgkjP6DrRzhaJz8pzHFHHyqjcT6scZ/oPw96UPsi2 RISXHzF8H8h269ev
0zXSvBarNHGLWFi+SfkHAHfp6kD8aVILKRnVYYCyn5l2DI+oo5wsi1RRRWYB RRRQA1/umo/8/wCf
8/8A15H+6aj/AM/5/wA//XAGv90/5/z/AJ/GqbdSSd7DJz2/wq0/3T/n/P8A n8apuFBI2McHHb/G
guPN0I7lQqxqOgBH8qKLlgyxsOhBP8qKRL3HMrBhMil2TICj13Eg02OJ5Lo3 Dq6Drhxzk/0qxH90
/wC8f506lYvndrFyiiiqMwoopjyxxsqswDOcKvc/QUAVztimaSOVcFgJFckn qeh7Ac8dOD05NREE
XhuC0XEm0puONuMbun3+CM9MAjPGatMypNDGqAkg9ONqjr+u0Y9/agS24xiS IYbyxgjg/wB36+1B
XulMofPJYxIqy5JWViOufuEYzwcnscnqKSZH2GNTAVjn80M7HOd+7HTjuM89 D74uGe2SVYjLCsg+
UJuAIz2x+VNkuYIXVBtZwVTahGUBIAyM9OR+lAe6IXUXhkPk7Amwtj5856Z/ u8H8QfSqwhVJm3bX
QTbyTcOMZbd9zGOOfyPTmr4MQkEYKBwuQoxkL9PSmGe2SVYjLCsg+UJuAIz2 x+VAe6QySP8AbVkH
k+XGChJcg8kEnGO209/Xpg1CIVSZt210E28k3DjGW3fcxjjn8j05q6JbcTCE SRCUDAQEbgOvSkae
2iYq0sKNGvILAFRx+Q6fpQHumc9sSj7hbqx84E7icF+h+72wQfYH0IqUQqkz btroJt5JuHGMtu+5
jHHP5HpzV0S24xiSIYbyxgjg/wB36+1AltxMIRJEJQMBARuA69KA90pSo+64 YCDc06NkuQcLjg/L
/sn2GT6VOHMVxKVeLY8gZmYnK8AEAY5+6ec8c+lTLLb71RJItwyiqCM8dQP0 4o823WTyxJEHQAbc
jKg4xx+X6UB7o4zxDOXHBwf8/gfyPpVCVH3XDAQbmnRslyDhccH5f9k+wyfS roltxMIRJEJQMBAR
uA69KWN4WYrGV3R/KVxgr+HYcfjQHumfNC29irx/LMHyZWAPzZxtHA6HnnoS ec4Y9sSj7hbqx84E
7icF+h+72wQfYH0IrWCqMYUDAwMDoKAqjGFAwMDA6CgPdM4QqkzbtroJt5Ju HGMtu+5jHHP5HpzV
kpbiQuZZMhskec+M/TOMcH24PpVgKoxhQMDAwOgoCqMYUDAwMDoKA90jL24Y sdmQ2Scd8Yz+QIz7
H0qjkPdXIwiIZkYyNkMduOAMcjKt345P10gqjGFAwMDA6CgKoxhQMDAwOgoD 3TMmhbexV4/lmD5M
rAH5s42jgdDzz0JPOcPKHzyWMSKsuSVlYjrn7hGM8HJ7HJ6itAKoxhQMDAwO goCqMYUDAwMDoKA9
0zyh88ljEirLklZWI65+4RjPByexyeopZYs3Lv56iMyKzDJ6jb27/wCr6+7e nN8KoxhQMDAwOgoC
qMYUDAwMDoKA90okEAwlovKE3mF9x3ff34249iM57E9sU6FjFd3DsIQsknLB zuAC4HG3noe/HPoa
uBVGMKBgYGB0FAVRjCgYGBgdBQHumdMj7DGpgKxz+aGdjnO/djpx3Geeh98X S9uGLHZkNknHfGM/
kCM+x9KkCqMYUDAwMDoKAqjGFAwMDA6CgPdGmeIZy44OD/n8D+R9KqwsYru4 dhCFkk5YOdwAXA42
89D3459DVwKoxhQMDAwOgoCqMYUDAwMDoKA90zhCqTNu2ugm3km4cYy277mM cc/kenNSiSRLySUi
HYdqH94cgAtzjb7n8jzVwKoxhQMDAwOgoCqMYUDAwMDoKA90rlLcSFzLJkNk jznxn6Zxjg+3B9Kk
L24YsdmQ2Scd8Yz+QIz7H0qQKoxhQMDAwOgoCqMYUDAwMDoKA90zch7q5GER DMjGRshjtxwBjkZV
u/HJ+qTQtvYq8fyzB8mVgD82cbRwOh556EnnONMKoxhQMDAwOgoCqMYUDAwM DoKA90zyh88ljEir
LklZWI65+4RjPByexyeooKHzyWMSKsuSVlYjrn7hGM8HJ7HJ6itAKoxhQMDA wOgoCqMYUDAwMDoK
A90oSxZuXfz1EZkVmGT1G3t3/wBX1929OVIIBhLReUJvML7ju+/vxtx7EZz2 J7Yq8FUYwoGBgYHQ
UBVGMKBgYGB0FAe6U4WMV3cOwhCyScsHO4ALgcbeeh78c+hqKZH2GNTAVjn8 0M7HOd+7HTjuM89D
740QqjGFAwMDA6CgKoxhQMDAwOgoD3TPMX+kTzM6AiUMq+YxVsDGGGMfw5zz gj/ZpBCqTNu2ugm3
km4cYy277mMcc/kenNaIVRjCgYGBgdBQFUYwoGBgYHQUB7pTEkiXkkpEOw7U P7w5ABbnG33P5Hmr
Be3DFjsyGyTjvjGfyBGfY+lSBVGMKBgYGB0FAVRjCgYGBgdBQHuleJ0WSaWV gGLbcZ6KM4/9mPtk
jtSHa83mTSqBG2FVCQRz3PccdOnBznGRZCqMYUDAwMDoKAqjGFAwMDA6CgPd HUUUUEhRRRQA1/um
o/8AP+f8/wD15H+6aj/z/n/P/wBcAa/3T/n/AD/n8a5gjJJweefvGrD/AHT/ AJ/z/n8Y6Q02titd
AKIwOgBA/Sii76p+P9KKAJ4/un/eP86dTY/un/eP86dQBcooopiCoPJaOYyR MCHPzq+SevY9up46
fTk1I8scbKrMAznCr3P0FI8u2aOMDJfJPPQDv+ZA/GgBsKN5kssgwznaB6KM 4/qfxx2qH7PN9s+0
Yj+/jZuONuMbun3+30496sefD/z1j+/s+8Pven19qRrmBZfKaeMSZA2FxnJ6 cUAVvsszT5KRqvmb
srKxGM5+4RjJ9fXnrSS2s5Ty0WFlWbzlZick792OnHUjPP054sS3cUThNwZ9 yqVVhlckAEjPTkfn
UvmJ5nl71343bc849cUAR+W/2zzNkWzy9u7Hz5z0z6f1qv8AZZmnyUjVfM3Z WViMZz9wjGT6+vPW
rRnhEhjMse8Yyu4ZGcY4/EfnR58PneT5sfm/3Nw3evSgCotk6zcoHTzTJkzu OrbvuYxx+uKZcxSx
RqpjV41uBIGVWZuX3HgDjAJ5z296vLPC67kljYcchgepwP14oE8LOEEsZYkr tDDOR1H4UAVp7act
J5XllXlSX5iQcrt+Xp/s9fwx3pq2TrNygdPNMmTO46tu+5jHH64q2ZQLhYSr ZZC4bjHBAI/UUefD
53k+bH5v9zcN3r0oAqPbTlp2WOHdJMjglyCVXHB+X/Z/U/jIsEisIzHC8YlM gdiSQSxPC4684zn3
9qn8+H/nrH9/Z94fe9Pr7VA98Ucp9kuGIDEYC/MFOCQM57j60ARrZOs3KB08 0yZM7jq277mMcfri
rHktJMJJWACH5FTIPXue/QcdPrwaVru2XduuIhtO1suOD6H8j+VOE8LOEEsZ YkrtDDOR1H4UASUV
H58PneT5sfm/3Nw3evSlSWORmVWBZDhl7j6igB9FFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUANf 7pqP/P8An/P/ANeR
/umo/wDP+f8AP/1wBr/dP+f8/wCfxjqR/un/AD/n/P4x0hla76p+P9KKLvqn 4/0ooETx/dP+8f50
6mx/dP8AvH+dOoGXKKKY8scbKrMAznCr3P0FMRH5LRzGSJgQ5+dXyT17Ht1P HT6cmlhRvMllkGGc
7QPRRnH9T+OO1OeXbNHGBkvknnoB3/MgfjR58P8Az1j+/s+8Pven19qAK/2e b7Z9oxH9/GzccbcY
3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561Za5gWXymnjEmQNhcZyen FNlu4onCbgz7lUqr
DK5IAJGenI/OgCvLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/bPM2RbPL27 sfPnPTPp/WpPMTzP
L3rvxu255x64pvnw+d5Pmx+b/c3Dd69KAIFgkVhGY4XjEpkDsSSCWJ4XHXnG c+/tSfZ5seTiPyvN
8zfuO77+/G3H4dff2qwZQLhYSrZZC4bjHBAI/UUefD53k+bH5v8Ac3Dd69KA M9tPmdGzHAGYTDIY
nBfoen4fT8qekbzXdyBEFQzIxkYEEhQvA45GVPfv+d1Z4XXcksbDjkMD1OB+ vFHnw+d5Pmx+b/c3
Dd69KAInSc3qSKkZjVSuS5BwSpJxj29ahWydZuUDp5pkyZ3HVt33MY4/XFWx PCzhBLGWJK7Qwzkd
R+FNS7t3maFZozIp2lN3OfpQBD9nm+2faMR/fxs3HG3GN3T7/b6ce9SvHIb2 KQBPLVGUksc5JB6Y
/wBn171IkscjMqsCyHDL3H1FPoApNHvvzGA/lkiWTKHBZcY59/lPH9z3NRpG 813cgRBUMyMZGBBI
ULwOORlT37/no0UAUFsnWblA6eaZMmdx1bd9zGOP1xVjyWkmEkrABD8ipkHr 3PfoOOn14NT0UAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUANf7pqP/P8An/P/ANeR/umo/wDP+f8AP/1wBr/dP+f8 /wCfxjqR/un/AD/n
/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/dP8AvH+dOoGXKg8lo5jJ EwIc/Or5J69j26nj
p9OTU9MeWONlVmAZzhV7n6CmIZCjeZLLIMM52geijOP6n8cdqh+zzfbPtGI/ v42bjjbjG7p9/t9O
PerHnw/89Y/v7PvD73p9faka5gWXymnjEmQNhcZyenFAFb7LM0+Skar5m7Ky sRjOfuEYyfX1560k
trOU8tFhZVm85WYnJO/djpx1Izz9OeLEt3FE4TcGfcqlVYZXJABIz05H51L5 ieZ5e9d+N23POPXF
AEflv9s8zZFs8vbux8+c9M+n9arLZOs3KB080yZM7jq277mMcfrirfnw+d5P mx+b/c3Dd69KDKBc
LCVbLIXDcY4IBH6igCJ0nN6kipGY1UrkuQcEqScY9vWoVsnWblA6eaZMmdx1 bd9zGOP1xVvz4fO8
nzY/N/ubhu9elCzwuu5JY2HHIYHqcD9eKAM9tPmdGzHAGYTDIYnBfoen4fT8 qlWydZuUDp5pkyZ3
HVt33MY4/XFW/Ph87yfNj83+5uG716UCeFnCCWMsSV2hhnI6j8KAKj205adl jh3STI4JcglVxwfl
/wBn9T+M6xzR3EhTyykjhyxJyOAMY79Oue/ty5Lu3eZoVmjMinaU3c5+lTUA QeS0kwklYAIfkVMg
9e579Bx0+vBqeoxPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3Dd69KAJKKjWe F13JLGw45DA9Tgfr
xR58PneT5sfm/wBzcN3r0oAkoqH7XbeZ5f2iLfnbt3jOfTFRvfItwYfKlJEi x5C8ZIz+g60AWqKj
E8LOEEsZYkrtDDOR1H4UefD53k+bH5v9zcN3r0oAkoqJrmBZfKaeMSZA2Fxn J6cUNcwLL5TTxiTI
GwuM5PTigCWioWu7Zd264iG07Wy44PofyP5U7z4fO8nzY/N/ubhu9elAElFR faYAwXz49xbYBvGS
3p9eRTZbuKJwm4M+5VKqwyuSACRnpyPzoAnoqsLweayNDIqo4jLnbjJxjvnn I7d6l8+HzvJ82Pzf
7m4bvXpQBJRVV9Qt1uFgV1dycEB1+U5x3P6DJoe+Rbgw+VKSJFjyF4yRn9B1 oAtUUVCl3bvM0KzR
mRTtKbuc/SgCaioWu7Zd264iG07Wy44PofyP5U4Tws4QSxliSu0MM5HUfhQB JRUfnw+d5Pmx+b/c
3Dd69Kb9rtvM8v7RFvzt27xnPpigCaiqr3yLcGHypSRIseQvGSM/oOtTefD/ AM9Y/v7PvD73p9fa
gCSiomuYFl8pp4xJkDYXGcnpxTZbuKJwm4M+5VKqwyuSACRnpyPzoAnopvmJ 5nl71343bc849cUx
rmBZfKaeMSZA2FxnJ6cUAS0VCl3bvM0KzRmRTtKbuc/Sl+0wBgvnx7i2wDeM lvT68igCWioxPGZz
CGUuBkgMMjp1HXvQJ4WcIJYyxJXaGGcjqPwoAkoqJ7mBGZXnjVkGWBcAge/5 j86ie+Rbgw+VKSJF
jyF4yRn9B1oAtUVG8u2aOMDJfJPPQDv+ZA/GlSWORmVWBZDhl7j6igB9FFFA BRRRQA1/umo/8/5/
z/8AXkf7pqP/AD/n/P8A9cAa/wB0/wCf8/5/GOpH+6f8/wCf8/jHSGVrvqn4 /wBKKLvqn4/0ooET
x/dP+8f506mx/dP+8f506gZcqDyWjmMkTAhz86vknr2PbqeOn05NT0x5Y42V WYBnOFXufoKYit9n
m+2faMR/fxs3HG3GN3T7/b6ce9N+yzNPkpGq+ZuysrEYzn7hGMn19eetWvPh /wCesf39n3h970+v
tSNcwLL5TTxiTIGwuM5PTigCrLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/ AGzzNkWzy9u7Hz5z
0z6f1pJbuKJwm4M+5VKqwyuSACRnpyPzqXzE8zy9678btueceuKAKS2TrNyg dPNMmTO46tu+5jHH
64qZ0nN6kipGY1UrkuQcEqScY9vWpfPh87yfNj83+5uG716UGUC4WEq2WQuG 4xwQCP1FAFRbJ1m5
QOnmmTJncdW3fcxjj9cVE2nzOjZjgDMJhkMTgv0PT8Pp+VaHnw+d5Pmx+b/c 3Dd69KFnhddySxsO
OQwPU4H68UAVFsnWblA6eaZMmdx1bd9zGOP1xQ9tOWnZY4d0kyOCXIJVccH5 f9n9T+Nvz4fO8nzY
/N/ubhu9elAnhZwgljLEldoYZyOo/CgCNY5o7iQp5ZSRw5Yk5HAGMd+nXPf2 5sVCl3bvM0KzRmRT
tKbuc/SpqAKD205adljh3STI4JcglVxwfl/2f1P4tlspy5KbOJRICZWAb5s4 2jgfXnOM9TxdE8LO
EEsZYkrtDDOR1H4UefD53k+bH5v9zcN3r0oAz20+Z0bMcAZhMMhicF+h6fh9 PyqVbJ1m5QOnmmTJ
ncdW3fcxjj9cVbWeF13JLGw45DA9TgfrxR58PneT5sfm/wBzcN3r0oAb9mj8 zfulznOPOfH5Zx+F
SeWm7dsXOd2cd8Yz+XFR/a7bzPL+0Rb87du8Zz6YqN75FuDD5UpIkWPIXjJG f0HWgCBI3mu7kCIK
hmRjIwIJCheBxyMqe/f8yWynLkps4lEgJlYBvmzjaOB9ec4z1PF3z4f+esf3 9n3h970+vtSNcwLL
5TTxiTIGwuM5PTigCt9lmafJSNV8zdlZWIxnP3CMZPr689aPsszT5KRqvmbs rKxGM5+4RjJ9fXnr
Vrz4fO8nzY/N/ubhu9elJ9pgDBfPj3FtgG8ZLen15FAFeSzke5LiQCNnVyOe o29v+Af+PH05X7PN
jycR+V5vmb9x3ff3424/Dr7+1WBPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3 Dd69KAIYIpo7udzH
FtlfO4Od2AoAGMe3r3qKW1nKeWiwsqzecrMTknfux046kZ5+nPFtZ4XXcksb DjkMD1OB+vFHnw+d
5Pmx+b/c3Dd69KAKv2SU3E0x25MgdF8xirYAGGGMDpnPODj05RbJ1m5QOnmm TJncdW3fcxjj9cVM
LweayNDIqo4jLnbjJxjvnnI7d6l8+HzvJ82Pzf7m4bvXpQBCqXIvHl8uLYwV P9YcgAnnG336VY8t
N27Yuc7s474xn8uKrvqFutwsCuruTggOvynOO5/QZND3yLcGHypSRIseQvGS M/oOtAFqq6xzR3Eh
TyykjhyxJyOAMY79Oue/tzYqFLu3eZoVmjMinaU3c5+lAEDR778xgP5ZIlky hwWXGOff5Tx/c9zU
aRvNd3IEQVDMjGRgQSFC8DjkZU9+/wCdtru2XduuIhtO1suOD6H8j+VOE8LO EEsZYkrtDDOR1H4U
AVFsnWblA6eaZMmdx1bd9zGOP1xVn7NH5m/dLnOcec+Pyzj8Kd58PneT5sfm /wBzcN3r0pv2u28z
y/tEW/O3bvGc+mKAJPLTdu2LnO7OO+MZ/Liqv2eb7Z9oxH9/GzccbcY3dPv9 vpx70575FuDD5UpI
kWPIXjJGf0HWpvPh/wCesf39n3h970+vtQBV+yzNPkpGq+ZuysrEYzn7hGMn 19eetJLazlPLRYWV
ZvOVmJyTv3Y6cdSM8/Tni01zAsvlNPGJMgbC4zk9OKbLdxROE3Bn3KpVWGVy QASM9OR+dAC+W/2z
zNkWzy9u7Hz5z0z6f1qv9lmafJSNV8zdlZWIxnP3CMZPr689aueYnmeXvXfj dtzzj1xTGuYFl8pp
4xJkDYXGcnpxQAxY5o7iQp5ZSRw5Yk5HAGMd+nXPf25bBFNHdzuY4tsr53Bz uwFAAxj29e9SJd27
zNCs0ZkU7Sm7nP0pftMAYL58e4tsA3jJb0+vIoAjdJzepIqRmNVK5LkHBKkn GPb1qF7actOyxw7p
JkcEuQSq44Py/wCz+p/G2J4zOYQylwMkBhkdOo696BPCzhBLGWJK7QwzkdR+ FAFCVJPMW2EYYLOJ
Q5Ru77jzjAwCecnpjHNaPlpu3bFzndnHfGM/lxTHuYEZleeNWQZYFwCB7/mP zqJ75FuDD5UpIkWP
IXjJGf0HWgCSFG8yWWQYZztA9FGcf1P447UnktJMJJWACH5FTIPXue/QcdPr wae8u2aOMDJfJPPQ
Dv8AmQPxpUljkZlVgWQ4Ze4+ooAfRRRQAUUUUANf7pqP/P8An/P/ANeR/umo /wDP+f8AP/1wBr/d
P+f8/wCfxjqR/un/AD/n/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/ dP8AvH+dOoGXKg8l
o5jJEwIc/Or5J69j26njp9OTUjyxxsqswDOcKvc/QUjy7Zo4wMl8k89AO/5k D8aYiv8AZ5vtn2jE
f38bNxxtxjd0+/2+nHvTfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVrz4f8AnrH9 /Z94fe9Pr7UjXMCy
+U08YkyBsLjOT04oAqy2s5Ty0WFlWbzlZick792OnHUjPP054s+W/wBs8zZF s8vbux8+c9M+n9aS
W7iicJuDPuVSqsMrkgAkZ6cj86l8xPM8veu/G7bnnHrigCktk6zcoHTzTJkz uOrbvuYxx+uKmdJz
epIqRmNVK5LkHBKknGPb1qRrmBZfKaeMSZA2FxnJ6cUpnhEhjMse8Yyu4ZGc Y4/EfnQBUWydZuUD
p5pkyZ3HVt33MY4/XFRNp8zo2Y4AzCYZDE4L9D0/D6flV6O5jeVoydjq5QKx GWwAcjnnginefD53
k+bH5v8Ac3Dd69KAKi2TrNygdPNMmTO46tu+5jHH64oe2nLTsscO6SZHBLkE quOD8v8As/qfxtrP
C67kljYcchgepwP14o8+HzvJ82Pzf7m4bvXpQBGsc0dxIU8spI4csScjgDGO /Trnv7c2KYkscjMq
sCyHDL3H1FPoAoPbTlp2WOHdJMjglyCVXHB+X/Z/U/i2WynLkps4lEgJlYBv mzjaOB9ec4z1PGjR
QBltp8zo2Y4AzCYZDE4L9D0/D6flUq2TrNygdPNMmTO46tu+5jHH64q/RQBD 9mj8zfulznOPOfH5
Zx+FSeWm7dsXOd2cd8Yz+XFOooApT205aTyvLKvKkvzEg5Xb8vT/AGev4Y70 n2WZp8lI1XzN2VlY
jGc/cIxk+vrz1q9RQBQWydZuUDp5pkyZ3HVt33MY4/XFSwRTR3c7mOLbK+dw c7sBQAMY9vXvVqig
Cg9tOWnZY4d0kyOCXIJVccH5f9n9T+LZbKcuSmziUSAmVgG+bONo4H15zjPU 8aNFAGW2nzOjZjgD
MJhkMTgv0PT8Pp+VSrZOs3KB080yZM7jq277mMcfrir9FAFH7JKbiaY7cmQO i+YxVsADDDGB0znn
Bx6cotk6zcoHTzTJkzuOrbvuYxx+uKv0UAVVS5F48vlxbGCp/rDkAE842+/S rHlpu3bFzndnHfGM
/lxTqKACq6xzR3EhTyykjhyxJyOAMY79Oue/tzYooApNHvvzGA/lkiWTKHBZ cY59/lPH9z3NRpG8
13cgRBUMyMZGBBIULwOORlT37/no0UAUFsnWblA6eaZMmdx1bd9zGOP1xVn7 NH5m/dLnOcec+Pyz
j8KmooAb5abt2xc53Zx3xjP5cVV+zzfbPtGI/v42bjjbjG7p9/t9OPerlFAF H7LM0+Skar5m7Kys
RjOfuEYyfX1560ktrOU8tFhZVm85WYnJO/djpx1Izz9OeL9FAEPlv9s8zZFs 8vbux8+c9M+n9ar/
AGWZp8lI1XzN2VlYjGc/cIxk+vrz1q9RQBXWOaO4kKeWUkcOWJORwBjHfp1z 39uWwRTR3c7mOLbK
+dwc7sBQAMY9vXvVqigCs6Tm9SRUjMaqVyXIOCVJOMe3rUL205adljh3STI4 JcglVxwfl/2f1P43
6KAMyVJPMW2EYYLOJQ5Ru77jzjAwCecnpjHNaPlpu3bFzndnHfGM/lxTqKAI YUbzJZZBhnO0D0UZ
x/U/jjtSeS0kwklYAIfkVMg9e579Bx0+vBqeigAooooAKKKKAGv901H/AJ/z /n/68j/dNR/5/wA/
5/8ArgDX+6f8/wCf8/jHUj/dP+f8/wCfxjpDK131T8f6UUXfVPx/pRQInj+6 f94/zp1Nj+6f94/z
p1AyXyWjmMkTAhz86vknr2PbqeOn05NLCjeZLLIMM52geijOP6n8cdqmopiK f2eb7Z9oxH9/Gzcc
bcY3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561eooAoS2s5Ty0WFlWb zlZick792OnHUjPP
054s+W/2zzNkWzy9u7Hz5z0z6f1qaigCj9lmafJSNV8zdlZWIxnP3CMZPr68 9aesEisIzHC8YlMg
diSQSxPC4684zn39qt0UAUHtpy07LHDukmRwS5BKrjg/L/s/qfxFsnWblA6e aZMmdx1bd9zGOP1x
V+igDLbT5nRsxwBmEwyGJwX6Hp+H0/Kny2U5clNnEokBMrAN82cbRwPrznGe p40aKAIPJaSYSSsA
EPyKmQevc9+g46fXg1PRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUA
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA1 /umo/wDP+f8AP/15
H+6aj/z/AJ/z/wDXAGv90/5/z/n8Y6kf7p/z/n/P4x0hla76p+P9KKLvqn4/ 0ooETx/dP+8f506m
x/dP+8f506gZcooopiCiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAoooo
AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigA
ooooAKKKKAGv93HqRVUzIDhioPu3/wBerUhAXJOACMk/WqDGBnVmKHb70AE0 hM8ABwrE5wevBqWq
8zh7qAhgxy2cH2NWKQytd9U/H+lFF31T8f6UUCJ4/un/AHj/ADp1Nj+6f94/ zp1Ax7y7BkngAEkk
1BdzuLN3QlSVyCCcjNLMYnyrOvQd+nFQ3bp9jdVdSQgHX0oEaGT6n/P+f89z J9T/AJ/z/nun+f8A
P+f/AK5/n/P+f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuA Lk+p/wA/5/z3Mn1P
+f8AP+e6f5/z/n/65/n/AD/n/wCuALk+p/z/AJ/z3Mn1P+f8/wCe6f5/z/n/ AOuf5/z/AJ/+uALk
+p/z/n/PcyfU/wCf8/57p/n/AD/n/wCuf5/z/n/64AuT6n/P+f8APcyfU/5/ z/nun+f8/wCf/rn+
f8/5/wDrgC5Pqf8AP+f89zJ9T/n/AD/nun+f8/5/+uf5/wA/5/8ArgC5Pqf8 /wCf89zJ9T/n/P8A
nun+f8/5/wDrn+f8/wCf/rgC5Pqf8/5/z3Mn1P8An/P+e6f5/wA/5/8Arn+f 8/5/+uALk+p/z/n/
AD3Mn1P+f8/57p/n/P8An/65/n/P+f8A64AuT6n/AD/n/PcyfU/5/wA/57p/ n/P+f/rn+f8AP+f/
AK4AuT6n/P8An/PcyfU/5/z/AJ7p/n/P+f8A65/n/P8An/64AuT6n/P+f89z J9T/AJ/z/nun+f8A
P+f/AK5/n/P+f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuA Lk+p/wA/5/z3Mn1P
+f8AP+e6f5/z/n/65/n/AD/n/wCuALk+p/z/AJ/z3Mn1P+f8/wCe6f5/z/n/ AOuf5/z/AJ/+uALk
+p/z/n/PcyfU/wCf8/57p/n/AD/n/wCuf5/z/n/64AuT6n/P+f8APcyfU/5/ z/nun+f8/wCf/rn+
f8/5/wDrgC5Pqf8AP+f89zJ9T/n/AD/nun+f8/5/+uf5/wA/5/8ArgC5Pqf8 /wCf89zJ9T/n/P8A
nun+f8/5/wDrn+f8/wCf/rgC5Pqf8/5/z3Mn1P8An/P+e6f5/wA/5/8Arn+f 8/5/+uALk+p/z/n/
AD3Mn1P+f8/57p/n/P8An/65/n/P+f8A64AuT6n/AD/n/PcyfU/5/wA/57p/ n/P+f/rn+f8AP+f/
AK4AuT6n/P8An/PcyfU/5/z/AJ7p/n/P+f8A65/n/P8An/64AuT6n/P+f89z J9T/AJ/z/nun+f8A
P+f/AK5/n/P+f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuA GTxyeo7/AOf8/rE0
+1lU8FunJ/xqQkDknABySf8AP+f51SYXdWdlIXoM8E0AFy5eWGNuUYncp5B4 pfs8H/PGP/vkVHK6
tdW+1geW6fQ1YoGMWGJGDLEikdwoFPoooArXfVPx/pRRd9U/H+lFAidFXYCQ ckn+Ijufel2r/dP/
AH03+NRThTaEO4RcnLN0+8eD7dqqxyKgCLJHBDlv3sQCq5+XGM5Hc/8AfNAy 39ktv+fdP1/xo+yW
3/Pun6/41VW7cIBKwSZnjwh4ODtzgH3LUJNJ5Fu01x5YkTcZMKMHAwOeO5P4 fhQIv4Hof++2/wAa
aVzJjLAbQcbz6n3qpDNM14VZ0xuYGPPIAzg4xkduScc+4q1MAQ4Zyg8vlgcY 5bnNAC7f9p/++zRt
/wBp/wDvs1neZ5SEW5twpYbpowEUcHgnkZ4H/fVPE055M3QIPlAIO5yuckc8 YPp+FAy9t/2n/wC+
zRt/2n/77NZ893IkWRIFaPf99gokwxAHTk8c4x1/JZ2ma3k+dn81pYwmBxgN jGBnPyigC/t/2n/7
7NG3/af/AL7NUjNiX5bgGMqu6b5eB8/fGOoA/wDr1IkxN2qed5ikDAQqeMZy wxkfUcdPxALO3/af
/vs0bf8Aaf8A77NNkIKyKzbF2csDgjrzmqkTrErvF5BRCGd4UADDnI78jr+l AF3b/tP/AN9mjb/t
P/32apPJcKJXaQq0cQk2ALjJLHB47YA4oEhihlAlIcytwSoEeWJBJwcAj1z1 FAF3b/tP/wB9mjb/
ALT/APfZqlHcu8SMZRzkOyjIUBiN2ffH074wDV+gBu3/AGn/AO+zRt/2n/77 NOooAbt/2n/77NG3
/af/AL7NOooAbt/2n/77NG3/AGn/AO+zTqKAG7f9p/8Avs0bf9p/++zTqKAG 7f8Aaf8A77NG3/af
/vs06igBu3/af/vs0bf9p/8Avs06igBu3/af/vs0bf8Aaf8A77NOooAbt/2n /wC+zRt/2n/77NOo
oAbt/wBp/wDvs0bf9p/++zTqKAG7f9p/++zRt/2n/wC+zTqKAG7f9p/++zRt /wBp/wDvs06igBu3
/af/AL7NG3/af/vs06igBu3/AGn/AO+zRt/2n/77NOooAbt/2n/77NG3/af/ AL7NOooAbt/2n/77
NG3/AGn/AO+zTqKAG7f9p/8Avs0bf9p/++zTqKAG7f8Aaf8A77NG3/af/vs0 6igBu3/af/vs0bf9
p/8Avs06igBu3/af/vs0bf8Aaf8A77NOooAY8SupV9zA9QWJqP7Hb/8APJan ooAhW1gRgyxhSO44
qTyx6t/30adRQA3yx6t/30aPLHq3/fRp1FAFW6UKUxnv1JNFLd9U/H+lFAiX zVQbWV8gnoAR1J9a
PtEf92T/AL5H+NV7i+S2cLIWywJG1M8ZI9R6VF/a0PrJ/wB+x/8AFVXK2F0X ftEf92T/AL5H+NH2
iP8Auyf98j/Gqf8Aa0PrJ/37H/xVH9qw+sn/AH7H/wAVRyvsF0XPtEf92T/v kf400zrvJ2PjAA4+
v+NVf7Vh9ZP+/Y/+Ko/tSH1k/wC/Y/8AiqOV9gui19oX+4/5UfaF/uP+VVv7 Uh9X/wC/Y/8AiqP7
Uh9X/wC/Y/8AiqOVhdFn7Qv9x/yo+0L/AHH/ACqt/acXq/8A37H/AMVS/wBp xer/APfsf/FUcrC6
LH2hf7j/AJUfaF/uP+VV/wC0ovV/+/Y/+Ko/tKL1f/v2P/iqOVhdE4nG8tsf BAHT60PKjjDRuRkH
p3ByKg/tGL1f/v2P/iqX+0YvV/8Av2P/AIqjlYXRP9oX+4/5UfaF/uP+VQf2 jF6v/wB+x/8AFUf2
hH6v/wB+x/8AFUcrC6J/tC/3H/Kj7Qv9x/yqH+0I/V/+/Y/+Ko+3x+rf9+// ALKjlYXRN9oX+4/5
UfaF/uP+VQ/b4/Vv+/f/ANlR9uj/ALzf9+//ALKjlYXRN9oX+4/5UfaF/uP+ VRfbo/7zf9+//sqP
tsf95v8Av3/9lRysLol+0L/cf8qPtC/3H/Kovtqf3m/79/8A2VL9tT+83/fv /wCyo5WF0SfaF/uP
+VH2hf7j/lUf2xP7zf8Afv8A+yo+2J/eb/v3/wDZUcrC6JPtC/3H/Kj7Qv8A cf8AKo/taf3m/wC/
f/2VL9rT+83/AH7/APsqOVhdD/tC/wBx/wAqPtC/3H/Kmfa0/vN/37/+yo+1 L/eP/fv/AOyo5WF0
P+0L/cf8qPtC/wBx/wAqb9qX+8f+/f8A9lR9pX+8f+/f/wBlRysLod9oX+4/ 5UfaF/uP+VN+0r/e
P/fv/wCyo+0L/eP/AH7/APsqOVhdDvtC/wBx/wAqPtC/3H/Kk+0L/eP/AHx/ 9lR56/3j/wB8f/Xo
5WF0L9oX+4/5UfaF/uP+VJ54/vH/AL4/+vS+eP7x/wC+P/r0crC6D7Qv9x/y o+0L/cf8qPOH98/9
8f8A16POH98/98f/AF6OVhdB9oX+4/5UfaF/uP8AlS+aP75/74/+vR5o/v8A /jn/ANejlYXQn2hf
7j/lR9oX+4/5UvmD+/8A+Of/AF6PM/2//HP/AK9HKxXQn2hf7j/lR9oX+4/5 U7zP9v8A8c/+vRv/
ANv/AMc/+vRysd0N+0L/AHH/ACo+0L/cf8qdv/2//HP/AK9Lu/2//HP/AK9H KxXQz7Qv9x/yo+0L
/cf8qfu/2/8Axz/69Gf9v/xz/wCvRysLoZ9oX+4/5UfaF/uP+VPyf7//AI5/ 9elyf7//AI5/9ejl
YXRH9oX+4/5UfaF/uP8AlUnP9/8A8c/+vRz/AHx/3x/9elysd0R/aF/uP+VH 2hf7j/lUnP8AfH/f
H/16Of74/wC+P/r0crC6I/tC/wBx/wAqPtC/3H/KpOf74/74/wDr0c/3x/3x /wDXo5WF0R/aF/uP
+VH2hf7j/lUnP98f98f/AF6Of74/74/+vRysLoj+0L/cf8qPtC/3H/KpOf74 /wC+P/r0c/3x/wB8
f/XoswuitO/mbcKwxnqKKs8/3x/3x/8AXooswujKvv8AkJWv4f8AobVr/P52 1U7t95Pl745x9Kx7
8hdRtiSABySf99qtXN2EmVoJbdgzEZ3cqTnk+2DVuLlZIV7DtSZjYzq6xBkZ R+7z69+KyYIopI5G
eR1KDcQqA8ZA9R61qX8tqNLMMEyOwIJ55Y55J96yI5NiSrjO9dv05B/pVx20 JYqwSMgZQGBOMKQT
1x061KLVvLboXDKBtcEYIbOSPpTkvdsPl4kHCjCyYUYIOQMcHjr6k0Ne5VlW MYYrncc7gM/ewBk8
9fYd+arUWhC0TogdsAHoNwz+XWp4rQP8uX3iPzGCLuPJGAB9Dn8famTTrJEs aq2AersGIHoDgYHt
StMpjJHLPGI2HpgjB/ID8c0agSx2QdypMi8gDemDnKjkZ/2v5VCLaUkgBTg4 4ccn0HPJ+lOguzBG
FVASDuBJ91P/ALL+tPju/KQpGJVUHcoEmOcDrgcjj2pahoQvE8YUuuNwyOeo 9ae9rKm7co+Xrhge
nX8u/pTJZPMcNjGFVfyAH9Kma63OzbOrSN1/vDH6U9QEitncjlQCCchgccE4 PPHTvSw2zPKgfAVn
CnDDJ5xx6/WpDe5TbtfBPIL8AYIIUY46+/QUxLhFaNvLYmI/L83bdnB49zS1 DQb9nkyBhT/tBhj8
849PzFPhtXeZUcBVLAE7gM/T1/D2pILkxIEAYdclWwecdD/wGnrdDzFd0Ztj 71+fnt1JBz0HpRqG
hFEiucMzDsAq7iTQImMjIpVtvVs8fXNLDIiBgyMS3GVbBA79jRHIqM42ko4w RnnGc9ce3pQA8wbI
C7fe3YHzAY6c+/XtSJGrITvO4AnGOAPc/wCeoolm81VXbgKeOe2AB/KlEkfk hCjZ65DYBPYkYo1A
WKAyRlgQMZ6kAHBHfPvSLBIwXCg7sYGRnnpx2pY5gsXlspKnOcHB5x/8TUi3 ZATIc7dvG/5cDHb8
KNQ0IzBIB90H/dIOfypRF95SRvC7htYEHHXp7c/hSpPtUDB4XbkHB+9uzTjM pZnxg7doHUnPUk9+
Cf0o1AgpaSlpiFpaSloAWiiikAtLSUtAC0UUUALS0lLQAtLSUtABS0lLQAtL SUtABS0lLQAtLSUt
IApaSloAWlpKWgBaKKKAFooooAKKKKACiiikAUUUUDFooooAKKKKAKs+npdM skkjKRkAKvbcai/s
aH/ntJ/3yK0F+4Pqf/QjS1nzNGlkZn9lQ+f5Ylk+4WJwPUD+tP8A7Hh/57Sf 98irQ/4/f+2J/wDQ
hTLuaSPCIhJkGFbPQ0czCyKs2mQwwvJ5sh2jONo5qQ6PCCR5z8f7IqW4jEWn sg6KuKtv99vrRzML
Iz/7Ih/57P8A98imR6ZC+/8AeuArlfujngf41asAFs4wGDDnkfU0626Tf9dm /kKOZhZFb+yYv+ez
/wDfI/xpf7Ji/wCez/8AfI/xpUyq+aHcu05TBYkEbyOnsOePT60kV1cyJuEI +dN6DIHcf7XPB9un
vRzMLIP7Ki/57P8A98j/ABo/sqL/AJ7P/wB8j/GpIZpJnCq6YUAsTGRnkjAB PGNvvUX2mcxwOfLD
yoCOpAyyDpnnqf8APU5mFkL/AGXF/wA9n/75H+NL/ZcX/PZ/++R/jSrJM14s e9QUDBsKcN9w9M8H
5vemwXMjQo/y7AY0K8kksF5zn/a9+lHMwshf7Mi/57P/AN8j/Gj+zI/+ez/9 8j/Gn2s8r+V5pQ+b
H5g2qRt6cdTnr+lWqOZhZFP+zI/+ez/98j/Gj+zY/wDns3/fP/16uUUczCyK f9mx/wDPZv8Avn/6
9H9nR/8APVv++f8A69XKKOZhZFT+zo/+erf98/8A16P7Pj/56t/3z/8AXq3R RzMLIqf2en/PVv8A
vn/69L/Z6f8APVv++f8A69WqKOZhZFX7An/PVv8Avn/69H2BP+erf98//Xq1 RRzMLIq/YU/56t/3
z/8AXpfsKf8APVv++f8A69WaKOZhZFb7En/PVv8Avn/69H2Jf+ep/wC+f/r1 Zoo5mFkV/sS/89T/
AN8//Xo+xr/z1P8A3x/9erFFHMwsiv8AY1/56n/vj/69H2Rf+ep/74/+vVii jmYWRB9kX/nqf++P
/r0fZV/56n/vj/69T0UczCyIPso/56n/AL4/+vS/ZR/z0P8A3x/9epqKOZhZ FbyR5/l7z9wsTt9w
PX3p/wBmH/PQ/wDfH/16B/x+/wDbE/8AoQqtdswuJNvmfLGpVlfCoSW5YZ5H TseBRzMVkWvs4/56
H/vj/wCvR9nH/PT/AMc/+vULXE32llWMeWrqhJx3x3z79MH9eEW4mLCNtqSs wG0ofk4J65w33e2P
6UczCyJ/IH/PT/xz/wCvR5H/AE0/8c/+vUAu5PKuDhcxRkjjqQWH5fLSieZg P9WpeVo1OCcY3cn8
sfr7UczCyJ/I/wCmn/jn/wBejyf+mn/jn/16gNxOJyuwFEZUZuACSBzy3HXp g/WrdLmY7IiaPapY
ycAZ+5/9eiNC8SOXxuUNjb0yM+tPl/1T/wC6abEA1rEDnBiUcHH8Ip8zFZC+ V/00/wDHP/r0eX/0
0/8AHP8A69Uop5ktgwYFY7dZW35ZmJyTznjp71LdB3uIkTJGxiR5rJ3XuPrR zMLIseWf+en/AI5/
9el2H/np/wCOf/XqsJpEJ4UJG6RleWJJ287v+Benb3qvE8j2cIBUJG0KkYyT 9w5znjr6dqOZhZGj
sP8Az0/8c/8Ar0bD/wA9B/3x/wDXqkt5cGNXMSgSBSgYgdWAxwST97rgfTmr y52jcQTjkgYpczHZ
EcWZYg+8AEnA2ehI9fan7D/z0H/fH/16jtP+PWP/AIF/6Eaiilk+yWoUjfKq jc3P8Oc+/SjmYrIs
7D/z0H/fH/16Nh/56D/vj/69V4Z5ZpCgKLs++SpO75mHHPH3ffrUMl1M+FX5 VkKtG+3HG9R65PDe
3+BzMdkXth/56D/vj/69Gw/89B/3x/8AXqsssxuHhVkDZJLFSRwqds8fe9ab FdyyL5uEEe5F2YOf
mC98/wC16dqLsLIt7D/z0H/fH/16ZISmz5wSzhR8nqfrUtQ3HWH/AK7J/Oi7 CyJNh/56D/vj/wCv
RTqKLsLIjC3DD92se0E/eLZ6n0FHl3npD+bf4VMJhBYtKRnaW4zjPzGslry5 YGX7QVyT8oHGeMAe
3T/6+fmLDtctuJopfNka3UlCvzMQMZHPT/Oab9pb/n4s/wDv4f8ACq9/c/a7 FJCAG2MDg8Z3J/n/
ADmserjC6Ibsbs0pliaM3FmAwxkSH/CpXuW3tma0U56GQ5H6VztS3f8Ax9zf 9dG/nVezQcxt/aW/
5+LP/v4f8KRJTGrET2mHctkyHGcDjp/nNYFSt/x6R/8AXR/5LR7NBzGwrojl 0ewV26sGwT+lJuiw
43afhzlvm+99eOay1tgwB81QrBQrNwCxxkH0xzz7D1FPa0jUtvadAibzvhwe oAwN3v8ApS5EHMzS
LodmXsDs+5lvu/TjimyFJYwjS2O0YwA/YEHHTpwKyXgYZZPmTbvDdPlzjp9e KdbW/n7sttxhV4zu
c9F9s4PNHIg5jWDoFVQ9gFU5UbuAfUcUB0DKwewDKMKd3IHoOKx/s0piEgC7 SCQNwyQOpx17H8qS
OCSVdyAEZwMkDJ9B6n2FP2a7hzG0Jgu3E1iNowMOeB6dPYU77S3/AD8Wf/fw /wCFZD2j7h5YyCqk
ZYAklQSB69eg9qb9kmwCFU5AIG8Z55Axnqew6mlyLuHMzZ+0t/z8Wf8A38P+ FH2lv+fiz/7+H/Cs
VbWZgu1QSxAA3DPPTI6gcjk+op6Wcjb8lBtXcDvUqeQMZzgdf85o5F3DmZr/ AGlv+fiz/wC/h/wo
+0t/z8Wf/fw/4VhJDJJG7quVT7xz06/4VNFZu0oWQADBJww4wCcH+6eO/wDS jkQczNf7S3/PxZ/9
/D/hR9pb/n4s/wDv4f8ACsVrd8MyqNoJwN4JIHceo9xxwaU2kyyMjKqsvXc4 AH4k+39aORdw5mbP
2lv+fiz/AO/h/wAKPtLf8/Fn/wB/D/hWKbWZU3FQOCdpYbuCQfl69j+VH2WU MFIUHGTl1+X688fj
RyLuHMza+0t/z8Wf/fw/4UfaW/5+LP8A7+H/AArDEEjTeUAN+M8kAYxnOemM c5pWtpUxuCgE4zuG
B6Z9M9vWj2a7hzG39pb/AJ+LP/v4f8KPtLf8/Fn/AN/D/hWG8EkalmA2ggZB BBznGCOvQ/lSrbSt
LJHhQ0ed25gAOcdTx1o9mu4cxt/aW/5+LP8A7+H/AAo+0t/z8Wf/AH8P+FYo tZiSNoyDgZYfN9PX
t09R60k8Bh2ZZSHUMMEZ5API7daORBzM2/tLf8/Fn/38P+FH2lv+fiz/AO/h /wAKyLm0aGd0XaUD
lQd4OOeM+n4471E8EkalmA2ggZBBBznGCOvQ/lRyIOZm59pb/n4s/wDv4f8A Cj7S3/PxZ/8Afw/4
VitazKG3KAVJBG4Z464HUjg8j0NMiheXOzaSOxYAn6Dv+FHs13DmN37S3/Px Z/8Afw/4UfaW/wCf
iz/7+H/CsOKB5VZl2gKQCWcL1+p9jQIJCrHAyhIZSRuGOvHWn7NBzG59pb/n 4s/+/h/wo+0t/wA/
Fn/38P8AhWM9pNHu3Kvy5zhwenXoe3f0pkkEkS7nAAzg4IOD6H0PsaXIu4cz NsSnzTKJ7QkJtOJD
gDI56f5zR9o+Yt59lkjBPmH/AArFh/1U/wD1zH/oS01YXeMuNoUd2YDP0z1/ Cj2aDmNoOgZWD2AZ
RhTu5A9BxSBohGYw2nhCcld3B/DFZK2sr7doUhhnIdeOM888cA9fSl+yTEgb V5z/ABjA4zzzxwCR
60ci7hzM1XaJ1VXbT2CjCgtnH04pzSqyFGksShOSpfg859PWsoWj+UxIy4ZQ MMCpBDZOen8PX61D
JG0TYcDkZBBBB+hHWjkQcxtB0DKwewDKMKd3IHoOKf8AaW/5+LP/AL+H/CsT 7NLnGzvjqMHjOfpj
nPSpLezeS4RGKhC4UkSLz0zg55PPbNHIu4czNZrgspU3FngjH+sP+FHm7Y1i aWz2hAuGkPIx9O9Y
FTTqWmVVBJKIAB3+UU/ZoOY11dFUqr2AUjBAbgj06e5/OnfaPmDefZZAwD5h /wAKyFs5GyBtJBHR
1I6E8nPH3TSfZJiQNq85/jGBxnnnjgEj1pci7hzM1zKpkEhksS4GA2/kfjim loiysW08lAAp3dMd
McVmC0fymJGXDKBhgVIIbJz0/h6/WoZI2ibDgcjIIIIP0I60ciDmNoOiliHs AWOWIbqeuTxT/tLf
8/Fn/wB/D/hXP0U/ZoOY30lMUSIJ7TAyQTIeckn0/D8KjHkqrKDpwVvvANwf rxWTN/qoP+uZ/wDQ
mqaexdJXEeNisRl3Vf4mA6n/AGTS5EHMaRdDsy9gdn3Mt936ccUgaIMzBtPB cEMd3XPXPFZH2aUI
WKYxngkBuOvHX1/I+lOtoopjteR0bk8ICAAMk9R70ciDmNUtEybGbTyuc4Lc dMenpTvOBzmax5IJ
+c8kd+nsKwaKfs0HMdB9pb/n4s/+/h/wpDKZGjHn2hKuGAWQ5JB6dKwKltP+ PuH/AK6L/Oj2aDmO
i8u89Ifzb/CitCisiiqiJLaNE7YDFgcHB6msttOuQWQNG6dMkgD2OPxP69c/ NrwMEtizHABYk/ia
rteTkeaiR+TyeTz9PqaOaxcYt7FO/tTFaJFFulIRskc87k/LoayPstx/zwl/ 74NdbHKs0ccifdb/
AOvUtWp2M3E437Lcf88Jf++DUtzbTtdTFYZCC5IIU8811tNT7i/Sn7Ri5Tj/ ALLcf88Jf++DUrW0
/wBljHkyZDscbT6LXW00ffP0H9aPaMOU5bZKU8trOXywBgBSCDxk5x35/T0F SLvWNohZXHlEHjPz
ZJU9dv8AsjtW+15EgJbcMFgwxyoUEkkenT/voetI12y7d1rMGZtqrlMk4J/v e1LnCxzjxTPkfZJd
oXbGNp+XnOenPf8AOnQm7giCRW7Ah95YxZz0x1Hbn866aOZHA52sTtKtwQcZ x+XP056U24uUt9m8
Mdxx8v8ACO7H0A7n3o5w5TnXM7Sh1s5FAR0ChTxu3e3bd+lFu11BF5YguQAx YbCy5Jx1wORx7d66
Tz4fO8nzY/N/ubhu9elK80cbKskiKznChmALH2o5wsc6s10qhRb3KhQMBCy5 IUDnA5Hy+3emq1wr
q32SU7Wibof4Bj0710Ed1GwHmOkbM7IqswyxDEcf57077TAWK+fHuDbCN4yG 9PrwaOfyHY59JrpR
Fm3uTsK/LltmFx0GOvHv3qKITpB5LWszIS27AIPO08ceqiumM8Id0MsYZBuZ dwyo9T6VG19bKqP5
0ZRn2bww2g4J5P4frRzhY5kQ3AgeL7PL8zK2dp7A/wCNWZJrqQktb3JLBshi xAJUjgY4HPvXRtIi
EBnVSegJxnkD+ZH51DNeQxxSMskbGMhWG8fKScDPpzRzisc+rXQthD5FzwpU AFgpBz1GOTye/pSr
JcrLO32e5UTPvPlkqR14zjpzXRJcRsY0MkfmOoYKHByPb1HvQ1zAqb2njCZA 3FxjJGR+nNHP5Dsc
2xuWkVzay5COh4PO7dzz/vfpTg06zPKtrcq0oPmFSQeSD8vHHI9+K6Pz4fO8 nzY/N/ubhu9elJ9p
gAcmePEZw/zj5T7+lHOKxzJFybhpTbzHcpX5gSeV25J/z+FSK1wp/wCPSX+D scjapXI4685B7V0j
TRrF5rSII8A7ywxg9OaRZ4WDFZYyEAZiGHAIyCfwo5wsc/5lwZPM8m4BSLau 8Fyx3ZHOOx5/4Djv
VWOG4RJV+zynzF2/dPHIP9K6tJo5ApjkRwwJG1gcgdaR54Y41keWNUboxYAH 8aOcLHOB58xs1nMT
EVKYB6hVHPHI+UelQzRTy7D9mmDhQpO04OAAOMccCupM8K+XmWMeZ9zLD5vp 69aSC4jn3iNgWRir
LkZBBI5/KjnCxzoa4Esr/ZJf3kvmdDlfvdOOvzcH2pWluvOWRbe4+VNuXyxJ yWBzjscflW9bXkNx
biUSRjCBnAcHZkZ5qVJo5ApjkRwwJG1gcgdaOfyHY5pWuhbCHyLnhSoALBSD nqMcnk9/Sls2uLbH
+jXHDbvkyu72bg5HH6mujE8JdEEsZZxuVdwyw9R60rzRxsqySIrOcKGYAsfa jnFY5QQ3AgeL7PL8
zK2dp7A/41aM1wfN/wBFuF37/lUkL82eSMckZ6+wroJZ4YMedLHHnpvYDNKZ oxKIjIgkYZCFhkj6
Uc4WObZrhnZvsko3NK3Q/wAYx6dqS6a6uVw0FzktuIYsQD7DHA5966NLmCQq I543LEgbXByR1pyT
RyMyxyIzIcMFYEqfejnCxysVtOI5wYZBlAB8p5+YU6JZ44HjNtM27OARlRkY zjHX3zXUt1X6/wBK
R5o42VZJEVnOFDMAWPtRzhynPNNcGMr9luPmzwSSq5VhhRjgfN09qSFpdzCS 1mCsgBwp7Rsvp3z+
FdB9pgAcmePEZw/zj5T7+lH2mDazefHtUAsd4wAemfrRzDsc8klxGAsdpMqr gL13AfNnnHX5zz7D
rUUyzzMxa2uGO3apcsxHOc5x9RXSfaoy6bXRo2Rn8wMMAKQD/P8ASpY5ElQP G6up6MpyDRziscwB
MHQi1uEEfCFCQwXnjOPU5/E+2Hq8vmq7WMuI33oEG3njrx/sjpjvXR+dGFDe Ym0rvB3DBX1+nIqG
4voIbYzCWNhtYoN4+cjsKOcdjlvstx/zwl/74NTywTi4RxDN8qpyoIPCjocc GurpqdPxP86fOxcp
zZknw4FnL8wxkjk/KwyTjk/N19vxpYWl3MJLWYKyAHCntGy+nfP4VvfbLcjc JoymDlw4wMY9/cf5
xTvtMG1m8+PaoBY7xgA9M/Wlzjsc8klxGAsdpMqrgL13AfNnnHX5zz7DrUNx HczyBjBcHAwC+WP5
10v2qMum10aNkZ/MDDACkA/z/SpY5ElQPG6up6MpyDRziscf9luP+eEv/fBo +y3H/PCX/vg12VFP
2jDlOSltpzHABDIcIQflPHzGprlri4Rl+ySrubd0J7ufT/b/AErpV6t9f6VX iv4GgSSWSOHeAcO4
7gH+opc4WMSWa6kVx9nuV3FsKCwXBJPIxyeT+lVkhuEikQW8uXwCdp6dcfnj 8q6szRiURGRBIwyE
LDJH0qOa6WFiCjsEXe5XGEXnk5PsemelHOFjlPstx/zwl/74NH2W4/54S/8A fBrsqKftGHKcb9lu
P+eEv/fBqW2tp1uoS0MgAcEkqeOa62mv9xvpR7RhyhvX+8Pzop1FZlEEKCS1 KHo24H8zVKS1udvk
LEpj4w+7HPqe/wCFXbZVMOSAfmbt7mpdi/3R+VJq5UZuOxHBCIIYogc7e/r1 qamFVyvyjr6e1LsX
+6Pypkjqan3F+lGxf7o/KkRV2L8o6elAD6aPvn6D+tGxf7o/KkCrvPyjoO1A EIinWUzAoXYkMpOB
tGdo6df8T7YgFpMjpJFFBHtcHylchfusCc7ep3Dt2q9sX+6Pyo2L/dH5UAQx wurB2EZZ5N799vy7
fl/Ic/X6Uy5s2uZmLTOkZi8sBMZOT82cg+i1Z2L/AHR+VGxf7o/KgColrP5L CV0aRpY5CR0O0Jnt
/smi7s2nmZxhldAjAyMoABPOB97r0OOnvVvYv90flRsX+6PyoAz205yz52sJ NwI8xlABdj0H3uG6
HHTrzT5LKRo3UMmWSdRyertkVd2L/dH5UbF/uj8qAM+TTncTKNvzeYVZpG6s D/D0H3uvP054nmtp
GuxcR7CVC4ViRkgODzjj7/6VZ2L/AHR+VGxf7o/KgCN4d93FMQpEaMBnqCdv I/AH86pxac6LGvy/
u9gDGRm3AMpPB4X7vQZ+vFaGxf7o/KjYv90flQBUezZrtpOCjurkmRhggDja OD93qfX2pn2B0gtV
QKWhjKMqyNGCTjJyvPUfrV7Yv90flRsX+6PyoAqJZMkLRqUx5sbDGcYUJ9f7 ppptJjbQxEJ/o5Gw
rKylwFK8kDK9c8Z9Ku7F/uj8qNi/3R+VAFcWzC0SIbQRIrn5if4wx5PJ+vf2 qM2cwwUdQR5vQkZ3
OGxntwCM9s8Vc2L/AHR+VGxf7o/KgDPFpKqkfMkkkvDJIzlVKAHLEZ7ZHvtq 5JDlrfYFVYnzjpxt
IwPzFSbF/uj8qNi/3R+VAFE2UwWdVMZE4ZGJJGwFnII454fpx0q1bxvEHRtp XezKwPJySTkdsZqT
Yv8AdH5UbF/uj8qAKYs5lht1V1DRQeWcEjJ+XgHtnaRnqM01LGXy3O7y5Gky CsrMQpUKRuIz2yPc
D0q9sX+6Pyo2L/dH5UAUzYkXJZVXyy6v/rGAXaAANg4P3ev+FLqFtNcK6xkF WQqAZGQKeeeB83bg
+nvVvYv90flRsX+6PyoAY0ZN1HLkbVRlPrklf8DVJbG4CQIWVhH5fPmsAu3G Rtxhuh5Pr7VobF/u
j8qNi/3R+VAFKOykWNFLJlUgU8nqjZNOsrNrdl3YPlpsVvMZiRxzg8L06DP6 c29i/wB0flRsX+6P
yoAG6r9f6VBLDI10kkRCcAO+85IBJ27cY/HIPP5zFVyvyjr6e1LsX+6PyoAz /sNw0yO7KduMsZWO
751bO0jC/dPA9aJ7WZVRkCuVkY4yf4plYdvQc1obF/uj8qNi/wB0flQBQlsJ ZnaRiisxLFVY8HMe
BnGf4OvbPerFtDJCvAQb33OC7OcbcdT1PA9OKn2L/dH5UbF/uj8qAKhtH2SZ SNjKQxUOU2sDkAMB
nHf65PfhklrdGGUbo5Xmi8ti7bdv3sdBz97HQdPer2xf7o/KjYv90flQA6op EElvIhUMGDDaTgHr
xntT9i/3R+VIqrj7o6nt70AUjZ3DtGzyKdh4BbO0b0OM45+6eTzz+NNntZlV GQK5WRjjJ/imVh29
BzWhsX+6Pyo2L/dH5UAUJbCWZ2kYorMSxVWPBzHgZxn+Dr2z3q1aQmFG3ABn bcQHZ+wHU8np7VLs
X+6Pyo2L/dH5UAOopuxf7o/KjYv90flQAL1b6/0qlY2UlvIjOyEKm3gnrtjH /sh/SrgVct8o6+nt
S7F/uj8qAM+DTniMYbawGwsfMYAFQo+6OD93qfXpxU13avPIWURtlNqsx5iP PzLx15Hp90c+lrYv
90flRsX+6PyoAdRTdi/3R+VGxf7o/KgB1Nf7jfSjYv8AdH5UjquxvlHT0oAf RTdi/wB0flRQB//Z

------=_NextPart_000_0012_01C311A5.01FA6910--
Re: A Diagnostic Message for the Valid Schema [message #20113 is a reply to message #20019] Sun, 04 May 2003 11:09 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: merks.ca.ibm.com

--------------BC3C71FEC4FD07018A44F6C1
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Pae,

No, the standalone version worked too. What exception did you see?


Pae Choi wrote:

> Ed, That surely helped with v1.0.2. And THANK you for that. One quick
> question is: Do you also have an exception thrown when running with
> v1.1.0 as standalone. Regards, Pae
>
> "Ed Merks" <merks@ca.ibm.com> wrote in message
> news:3EB3A206.9781C42@ca.ibm.com...Pae,
>
> The XSD model expects a DOM that's namespace aware, so this
> addition to your sample code will improve your result:
>
> private Document openXMLDOM(String uri) {
> // Create a factory object for creating DOM parsers
> DocumentBuilderFactory factory =
> DocumentBuilderFactory.newInstance();
> DocumentBuilder builder = null;
> Document xmlDoc = null;
>
> factory.setNamespaceAware(true);
>
> Without this, element.getNamespaceURI and
> element.getLocalName both return null...
>
>
> Pae Choi wrote:
>
> > Ed, I have a sample code that test a DOM of XML Schema
> > with Eclipse/XSD andproducing two different results. With
> > v1.0.2, it seems ok except the diagnostic message we are
> > discussing.With v1.1.0, it throws an exception. Regards,
> > Pae P.S.: The code snippet is as follows: //
> > ################## CODE SNIPPET ##################/*
> > * EclipseXSDDemo1.java
> > *
> > * Created on May 2, 2003, 11:13 PM
> > */ package org.paechoi.xsd.test; // W3C/DOM
> > import javax.xml.parsers.DocumentBuilderFactory;
> > import javax.xml.parsers.DocumentBuilder;
> > import org.w3c.dom.Document;
> > import org.w3c.dom.Element;
> > // Eclipse/XSD
> > import org.eclipse.xsd.XSDFactory;
> > import org.eclipse.xsd.XSDSchema;
> > import org.eclipse.xsd.impl.XSDSchemaImpl;
> > import org.eclipse.xsd.util.XSDResourceImpl;
> > import org.eclipse.xsd.util.XSDResourceFactoryImpl;
> > import org.eclipse.xsd.XSDDiagnostic;
> > import org.eclipse.emf.ecore.resource.Resource;
> > import org.eclipse.emf.ecore.resource.ResourceSet;
> > import
> > org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
> > import org.eclipse.emf.common.util.EList;
> > import java.io.File;
> > /**
> > *
> > * @author pae
> > */
> > public class EclipseXSDDemo1 {
> > // private Document xmlDOM = null;
> >
> > // instance initializer
> > {
> > //
> > Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd",
> > new XSDResourceFactoryImpl());
> > }
> >
> > /** Creates a new instance of EclipseXSDDemo1 */
> > public EclipseXSDDemo1() {
> > super();
> > }
> >
> > /** Open a XML DOM */
> > private Document openXMLDOM(String uri) {
> > // Create a factory object for creating DOM
> > parsers
> > DocumentBuilderFactory factory =
> > DocumentBuilderFactory.newInstance();
> > DocumentBuilder builder = null;
> > Document xmlDoc = null;
> >
> > // Build a new DOM
> > try {
> > // Now use the factory to create a DOM parser
> > (a.k.a. a DocumentBuilder)
> > builder = factory.newDocumentBuilder();
> > xmlDoc = builder.parse(uri);
> > }
> > catch (Exception ex) {
> > ex.printStackTrace();
> > return null;
> > }
> >
> > return xmlDoc;
> > }
> >
> > /** doIt */
> > private void doIt() {
> > Document xmlDOM =
> > openXMLDOM("http://schemas.xmlsoap.org/wsdl/");
> > // Document xmlDOM =
> > openXMLDOM("./wsdl.xsd"); Element rootElement =
> > xmlDOM.getDocumentElement(); XSDSchema xsdSchema =
> > XSDFactory.eINSTANCE.createXSDSchema();
> > xsdSchema.setDocument(xmlDOM);
> > xsdSchema.setElement(rootElement);
> > xsdSchema.updateElement();
> > System.out.println("\n\n");
> > XSDResourceImpl.serialize(System.out,
> > xsdSchema.getElement());
> > System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION
> > >>>>>>>>>>>>>>>>>>>>>>>>>>");
> > xsdSchema.validate();
> > //EList eList = xsdMainSchema.getDiagnostics();
> > EList eList = xsdSchema.getAllDiagnostics();
> > for (int i = 0; i < eList.size(); i++) {
> > XSDDiagnostic xsdDiagnostic =
> > (XSDDiagnostic)eList.get(i);
> > System.out.println(i + ": Diagnostic Message =
> > [" + xsdDiagnostic.getMessage() + "]");
> > }
> >
> > System.out.println("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<");
> >
> > }
> >
> > /** main - the main entry */
> > public static void main(String[] args) {
> > EclipseXSDDemo1 app = new EclipseXSDDemo1();
> > app.doIt();
> > }
> > }
> >
> > "Ed Merks" <merks@ca.ibm.com> wrote in message
> > news:3EB25ED9.AE2CB299@ca.ibm.com...Pae,
> >
> > I'm seeing this result with the just published
> > 1.1.0 driver:
> >
> > [Image]
> >
> > The schema isn't valid.
> >
> >
> > Pae Choi wrote:
> >
> > > I have a simple test schema as follows:
> > >
> > > <?xml version="1.0" encoding="UTF-8"?>
> > > <!--W3C Schema generated by Pae -->
> > > <xsd:schema
> > > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > > elementFormDefault="qualified">
> > > <xsd:element name="CommonLogin">
> > > <xsd:complexType>
> > > <xsd:sequence>
> > > <xsd:element name="username"
> > > ref="usernameRef"/>
> > > <xsd:element name="password"
> > > ref="passwordRef"/>
> > > </xsd:sequence>
> > > </xsd:complexType>
> > > </xsd:element>
> > > <xsd:element name="passwordRef"
> > > type="xsd:string"/>
> > > <xsd:element name="usernameRef"
> > > type="xsd:string"/>
> > > </xsd:schema>
> > >
> > > This is a very simple sample, but it is a valid
> > > schema. But when
> > > I use the validate() and getDiagnostics()
> > > methods in the XSDSchema
> > > interface it gives me a message as follows:
> > >
> > > XSD: The element '#null' is not permitted as
> > > constrained by 'XML Schema ';
> > > expecting schema
> > >
> > > I do not understand what the message is saying.
> > > Any comments?
> > >
> > > Pae
> >

--------------BC3C71FEC4FD07018A44F6C1
Content-Type: multipart/related;
boundary="------------1E3B66AE2FD2F1BDF1096BB7"


--------------1E3B66AE2FD2F1BDF1096BB7
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<body bgcolor="#FFFFFF">
Pae,
<p>No, the standalone version worked too.&nbsp; What exception did you
see?
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE=CITE>&nbsp;<font size=-1>Ed,</font>&nbsp;<font size=-1>That
surely helped with v1.0.2. And THANK you for that. One quick question is:</font>&nbsp;<font size=-1>Do
you also have an exception thrown when running with v1.1.0 as standalone.</font>&nbsp;<font size=-1>Regards,</font>&nbsp;&nbsp;<font size=-1>Pae</font>&nbsp;
<blockquote dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed
Merks" &lt;<a href="mailto:merks@ca.ibm.com">merks@ca.ibm.com</a>> wrote
in message <a href="news:3EB3A206.9781C42@ca.ibm.com">news:3EB3A206.9781C42@ca.ibm.com</a>...Pae,
<p>The XSD model expects a DOM that's namespace aware, so <font color="#3333FF">this</font>
addition to your sample code will improve your result:
<p>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String uri) {
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create a factory object
for creating DOM parsers
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilderFactory&nbsp;
factory = DocumentBuilderFactory.newInstance();
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;
builder = null;
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = null;
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#3333FF">&nbsp;&nbsp; factory.setNamespaceAware(true);</font>
<p>Without this, element.getNamespaceURI and element.getLocalName both
return null...
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE="CITE"><style></style>
<font size=-1>Ed,</font> <font size=-1>I
have a sample code that test a DOM of XML Schema with Eclipse/XSD andproducing
two different results.</font> <font size=-1>With v1.0.2, it seems ok except
the diagnostic message we are discussing.With v1.1.0, it throws an exception.</font>
<font size=-1>Regards,</font>&nbsp; <font size=-1>Pae</font> <font size=-1>P.S.:
The code snippet is as follows:</font> <font size=-1>// ##################
CODE SNIPPET ##################/*</font>
<br><font size=-1>&nbsp;* EclipseXSDDemo1.java</font>
<br><font size=-1>&nbsp;*</font>
<br><font size=-1>&nbsp;* Created on May 2, 2003, 11:13 PM</font>
<br><font size=-1>&nbsp;*/</font> <font size=-1>package org.paechoi.xsd.test;</font>
<font size=-1>// W3C/DOM</font>
<br><font size=-1>import&nbsp; javax.xml.parsers.DocumentBuilderFactory;</font>
<br><font size=-1>import&nbsp; javax.xml.parsers.DocumentBuilder;</font>
<br><font size=-1>import&nbsp; org.w3c.dom.Document;</font>
<br><font size=-1>import&nbsp; org.w3c.dom.Element;</font>
<br><font size=-1>// Eclipse/XSD</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDFactory;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDSchema;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.impl.XSDSchemaImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.util.XSDResourceImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.util.XSDResourceFactoryImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDDiagnostic;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.Resource;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.ResourceSet;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.common.util.EList;</font>
<br><font size=-1>import&nbsp; java.io.File;</font>
<br><font size=-1>/**</font>
<br><font size=-1>&nbsp;*</font>
<br><font size=-1>&nbsp;* @author&nbsp; pae</font>
<br><font size=-1>&nbsp;*/</font>
<br><font size=-1>public class EclipseXSDDemo1 {</font>
<br><font size=-1>//&nbsp;&nbsp;&nbsp; private&nbsp;&nbsp;&nbsp;&nbsp;
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp; xmlDOM = null;</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; // instance initializer</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; {</font>
<br><font size=-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp; Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd",
new XSDResourceFactoryImpl());</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** Creates a new instance of EclipseXSDDemo1
*/</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; public EclipseXSDDemo1() {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; super();</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String
uri) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create
a factory object for creating DOM parsers</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilderFactory&nbsp;
factory = DocumentBuilderFactory.newInstance();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;
builder = null;</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = null;</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Build a
new DOM</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// Now use the factory to create a DOM parser (a.k.a. a DocumentBuilder)</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
builder = factory.newDocumentBuilder();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = builder.parse(uri);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch (Exception
ex) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ex.printStackTrace();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return null;</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; return xmlDoc;</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** doIt */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private void doIt() {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document xmlDOM
= openXMLDOM("<a href="http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl/</a>");</font>
<br><font size=-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp; Document
xmlDOM = openXMLDOM("./wsdl.xsd");</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
Element rootElement = xmlDOM.getDocumentElement();</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
XSDSchema xsdSchema = XSDFactory.eINSTANCE.createXSDSchema();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; xsdSchema.setDocument(xmlDOM);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; xsdSchema.setElement(rootElement);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; xsdSchema.updateElement();</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
System.out.println("\n\n");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; XSDResourceImpl.serialize(System.out,
xsdSchema.getElement());</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION >>>>>>>>>>>>>>>>>>>>>>>>>>");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; xsdSchema.validate();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; //EList eList
= xsdMainSchema.getDiagnostics();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; EList eList
= xsdSchema.getAllDiagnostics();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; for (int i
= 0; i &lt; eList.size(); i++) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
XSDDiagnostic xsdDiagnostic = (XSDDiagnostic)eList.get(i);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
System.out.println(i + ": Diagnostic Message = [" + xsdDiagnostic.getMessage()
+ "]");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; System.out.println(" &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; ");</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** main - the main entry */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; public static void main(String[] args)
{</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; EclipseXSDDemo1
app = new EclipseXSDDemo1();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; app.doIt();</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<br><font size=-1>}</font>
<blockquote dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed
Merks" &lt;<a href="mailto:merks@ca.ibm.com">merks@ca.ibm.com</a>> wrote
in message <a href="news:3EB25ED9.AE2CB299@ca.ibm.com">news:3EB25ED9.AE2CB299@ca.ibm.com</a>...Pae,
<p>I'm seeing this result with the just published 1.1.0 driver:
<blockquote><img SRC="cid:part1.3EB4F504.D90CA68B@ca.ibm.com" height=411 width=502></blockquote>
The schema isn't valid.
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE="CITE">I have a simple test schema as follows:
<p>&lt;?xml version="1.0" encoding="UTF-8"?>
<br>&lt;!--W3C Schema generated by Pae -->
<br>&lt;xsd:schema xmlns:xsd="<a href="http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchema</a>"
<br>elementFormDefault="qualified">
<br>&nbsp;&lt;xsd:element name="CommonLogin">
<br>&nbsp; &lt;xsd:complexType>
<br>&nbsp;&nbsp; &lt;xsd:sequence>
<br>&nbsp;&nbsp;&nbsp; &lt;xsd:element name="username" ref="usernameRef"/>
<br>&nbsp;&nbsp;&nbsp; &lt;xsd:element name="password" ref="passwordRef"/>
<br>&nbsp;&nbsp; &lt;/xsd:sequence>
<br>&nbsp; &lt;/xsd:complexType>
<br>&nbsp;&lt;/xsd:element>
<br>&nbsp;&lt;xsd:element name="passwordRef" type="xsd:string"/>
<br>&nbsp;&lt;xsd:element name="usernameRef" type="xsd:string"/>
<br>&lt;/xsd:schema>
<p>This is a very simple sample, but it is a valid schema. But when
<br>I use the validate() and getDiagnostics() methods in the XSDSchema
<br>interface it gives me a message as follows:
<p>XSD: The element '#null' is not permitted as constrained by 'XML Schema
';
<br>expecting schema
<p>I do not understand what the message is saying. Any comments?
<p>Pae</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>

</body>
</html>

--------------1E3B66AE2FD2F1BDF1096BB7
Content-Type: image/jpeg
Content-ID: <part1.3EB4F504.D90CA68B@ca.ibm.com>
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\nsmailFJ.jpeg"

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCws MGJGSjpQdGZ6
eHJmcG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAq MF40NF7GhHCE
xsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbG xsbGxsb/wAAR
CAGbAfYDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcI CQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS 0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1 dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW 19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcI CQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMz UvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0 dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU 1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDXghR49zbiST/EfU0m23yQ BKcHHG81Ja/6
kf7zfzNVLrfsTY5wGkLRrJsZueoPt6e9NK4FpIYJEDIWKnoQ5/xpfs0Xo3/f Z/xqKy2bmMbM
UZEcZ75zzjt2qMXc+1kYBbgkbYvLyRnJ67sNwDzkdPXikBZ+zRejf99n/Gj7 NF6N/wB9n/Gq
a31w+eI027VYMuTuLsmeD2xnHPpnvS/bZyJnHlhYELMNpy5DODg54zs9+veg C39mi9G/77P+
NH2aL0b/AL7P+NUEup4hIkMQZY2kdycYwZH4yWGPu9ef8b883lxs6FW2H5l7 n2HvyMDv075o
APs0Xo3/AH2f8aPs0Xo3/fZ/xqFriZWhLGMRPt/eKpdSSeFGDx2+YjBz26Uy 3kkmuraaQptk
gZlVVIKglDgnPP6UATyQxIudrH/gZpm2L+43/fw1NP8AcH1rJvJZbecG2Jlk dSWhOSAAPvD0
/r9aQGhti/uN/wB/DTDGBI65bAPHzH0B/rUdntNurLMZt3zFyep+nb6VM/8A r5f94fyFAxvl
j1b/AL6NHlj1b/vo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+ jTqKAG+WPVv+
+jR5Y9W/76NOooAb5Y9W/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igB vlj1b/vo0eWP
Vv8Avo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPV v++jR5Y9W/76
NOooAb5Y9W/76NHlj1b/AL6NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/AL6N Hlj1b/vo06ig
Bvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+jTqKAG+WPVv++jR5Y9W/ 76NOooAb5Y9W
/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/vo0eWPVv8Avo06 igBvlj1b/vo0
eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPVv++jR5Y9W/76NOooAb5Y 9W/76NHlj1b/
AL6NOooAb5Y9W/76NHlj1b/vo06igCvOTEV2MRnOcnP86KS76p+P9KKBF+1/ 1I/3m/majktG
kBVmiZNxYK8W7Gfx96hREIJKqTuPUe9O8uP+4v5U7gWIYnR3d3DFgBwuMYz/ AI0otoBEYhBG
I2OSgQYJ+lNdbaNlVkjDOcKu0ZP0FMcwRyBWtvlyFMmwbQT0Hqeo6DHP1oAm WCFF2pFGo44C
gdDkfrzTPscBn84xIXwMZUfKQScj3yaT/Q/+mH39nb73p9fahfsbruTyGHHI wepwP14oAkaC
FipaKMlCWUlRwSckj8ad5abt2xc53Zx3xjP5cVCVgFwsJgXLIXDbRjggEfqK k8iH/nkn/fIo
ABBCJBIIo94zhtoyM5zz+J/OhIIY5GkSKNXbqwUAn8ah8yw8vzN9tszt3ZXG fTNO/wBD87yf
3Hm/3ON3r0oAklUsoAGeagFuVZmEYDN94jGT9adusgwXNvuLbAMrkt6fXkUM 1ksvlMbcSZA2
ErnJ6cUANW3KZ2RhdxycYGT60j/6+X/eH8hUgFqZzCEiLgZIG3I6dR170f6H 53k/uPN/ucbv
XpQBHRUg+xs4QeQWJK7RjOR1H4U3zLDzPL322/O3blc59MUrANoprz2y3Bh+ ysSJFjyIxjJG
f0HWpf8ARvtPkeSN+0tkx4GBjv369qLAMoqx5EP/ADyT/vkVX8y33f8AHt+7 37PM2rtznGOu
evHT9KLAFFNee2W4MP2ViRIseRGMZIz+g61a8iH/AJ5J/wB8iiwFeipP9D87 yf3Hm/3ON3r0
oH2NnCDyCxJXaMZyOo/CiwEdFSH7GJDGfI3jGV4yM4xx+I/Oj/Q/O8n9x5v9 zjd69KLAR0Us
slpE4TZGz7lUqu3K5IAJHpyPzp4FqZzCEiLgZIG3I6dR170WAjoqQfY2cIPI LEldoxnI6j8K
R2skZlc26sgywJUED3/MfnRYBlFO8yw8zy99tvzt25XOfTFRvPbLcGH7KxIk WPIjGMkZ/Qda
LAOoprzQr5n+hMfLkEZwqck4xjn3H5/WkeeJHKf2fKxAYjCJ8wU4JAznuPrR YB9FN86Hz2iF
kxKvtJCp7c4znHzDt3q15EP/ADyT/vkUWAr0UeZb7v8Aj2/d79nmbV25zjHX PXjp+lNee2W4
MP2ViRIseRGMZIz+g60WAdRTnMEcgVrb5chTJsG0E9B6nqOgxz9aei20jMqp GWQ4ZdoyPqKL
ARUVY8iH/nkn/fIo8iH/AJ5J/wB8iiwFeirHkQ/88k/75FHkQ/8APJP++RRY CvRVjyIf+eSf
98ijyIf+eSf98iiwFeirHkQ/88k/75FHkQ/88k/75FFgK9FWPIh/55J/3yKP Ih/55J/3yKLA
V6KseRD/AM8k/wC+RR5EP/PJP++RRYCvRVjyIf8Ankn/AHyKPIh/55J/3yKL AV6KseRD/wA8
k/75FHkQ/wDPJP8AvkUWAr0VY8iH/nkn/fIo8iH/AJ5J/wB8iiwFeipngh2/ 6pOo/hFQbYv+
eUfPtQMWioJlTz4FCKAScgDrxUb3FsjlWj5Bx90UWGouWiQ676p+P9KKLtFR lAUDrnAooJJ4
/un/AHj/ADp1Nj+6f94/zp1AyXyWjmMkTAhz86vknr2PbqeOn05NOeMyTLuA MSjP3urZ4yMd
vr+HQ055Y42VWYBnOFXufoKDIBMsWDuZSw9MAj/EUxFb7PN9s+0Yj+/jZuON uMbun3+30496
rtp8zo2Y4AzCYZDE4L9D0/D6flWpRQBWdJzepIqRmNVK5LkHBKknGPb1qzVV 70L5n7iU+XII
zjbyTjGOfcfn9akFwPOEbRyKGJVXIGGIycevY9scfSgCP7M/2rOV+z58zb33 /Tpjv67uaiWy
dZuUDp5pkyZ3HVt33MY4/XFWGufnwkMki7gpdAMA5x65474/oanoAqwRTR3c 7mOLbK+dwc7s
BQAMY9vXvUf2WZp8lI1XzN2VlYjGc/cIxk+vrz1qb7WC2FhlZd+wOqgjOcHv kY55Ixx9KkM8
IkMZlj3jGV3DIzjHH4j86AInSc3qSKkZjVSuS5BwSpJxj29aZ9nmx5OI/K83 zN+47vv78bcf
h19/apo7mN5WjJ2OrlArEZbAByOeeCKd58PneT5sfm/3Nw3evSgCo9tOWnZY 4d0kyOCXIJVc
cH5f9n9T+Nn7NH5m/dLnOcec+Pyzj8Kcs8LruSWNhxyGB6nA/Xijz4fO8nzY /N/ubhu9elAD
vLTdu2LnO7OO+MZ/LioHSc3qSKkZjVSuS5BwSpJxj29as1E9zAjMrzxqyDLA uAQPf8x+dAC/
vvtH/LPyNnvu3Z/LGKr/AGebHk4j8rzfM37ju+/vxtx+HX39qsefD53k+bH5 v9zcN3r0oE8L
OEEsZYkrtDDOR1H4UAO8tN27Yuc7s474xn8uKdUfnw+d5Pmx+b/c3Dd69KT7 TAGC+fHuLbAN
4yW9PryKAKq2TrNygdPNMmTO46tu+5jHH64oe2nLTsscO6SZHBLkEquOD8v+ z+p/G358PneT
5sfm/wBzcN3r0pqXdu8zQrNGZFO0pu5z9KAIlgkVhGY4XjEpkDsSSCWJ4XHX nGc+/tSfZ5se
TiPyvN8zfuO77+/G3H4dff2qx58PneT5sfm/3Nw3evSmS3cUThNwZ9yqVVhl ckAEjPTkfnQB
XltZynlosLKs3nKzE5J37sdOOpGefpzxM6Tm9SRUjMaqVyXIOCVJOMe3rVmo IbuKXau4JIxI
EbMN3BIPAPsaAK7205adljh3STI4JcglVxwfl/2f1P4xypJ5i2wjDBZxKHKN 3fcecYGATzk9
MY5q613bLu3XEQ2na2XHB9D+R/KpqAIfs0fmb90uc5x5z4/LOPwqTy03bti5 zuzjvjGfy4qA
Xg81kaGRVRxGXO3GTjHfPOR271L58PneT5sfm/3Nw3evSgCB7aRpXA2eXJKk pYk5BXbxjHP3
eue/tUjxyG9ikATy1RlJLHOSQemP9n170/z4fO8nzY/N/ubhu9elSUAVYLYp eT3EkcYZz8rK
xJ24AweP9kH8fzk+zR+Zv3S5znHnPj8s4/CpqKAKP2N/P3bIs+Zv8/P7zGc7 enp8vXp+VXPL
Tdu2LnO7OO+MZ/LikSWORmVWBZDhl7j6in0ARPGZJl3AGJRn73Vs8ZGO31/D oab5LSTCSVgA
h+RUyD17nv0HHT68Gp6KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKAGyE
Bck4AIyT9az3EMjBmlOR0w4GKvyqrxlXUMD2IzVf7Lb/APPCL/vgf5/z+YBW lZWubfawOCe+
f4aZJYLJIz+cRuOcbP8A69WzbwqMrDGD6hR/n/P5t8uP+4v5UXsXCcoO8SG9 OXU+uaKbdKF2
BQAOen4UUiCxH90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51fJPXse3U8dPp yakKAzK+0ZVS
N2eRkjjH4fpQ8scbKrMAznCr3P0FJ58P/PWP7+z7w+96fX2piG/Zo/M37pc5 zjznx+WcfhR9
mj8zfulznOPOfH5Zx+FK1zAsvlNPGJMgbC4zk9OKbLdxROE3Bn3KpVWGVyQA SM9OR+dAEEti
73ZlDrtLhj6/wH/2mP8Avo+nMphka7WRljUIT8653MuDhSMdOc9eo6ek/mJ5 nl71343bc849
cUxrmBZfKaeMSZA2FxnJ6cUAMSOaJikflmIuX3MTuGTkjHfqecjr3xzYqMzw iQxmWPeMZXcM
jOMcfiPzpsdzG8rRk7HVygViMtgA5HPPBFAEDWsjz+Y0durbw3nICHCg8Dpz kDB5HXp6uWCR
WEZjheMSmQOxJIJYnhcdecZz7+1T+fD53k+bH5v9zcN3r0oWeF13JLGw45DA 9TgfrxQBUe2n
LTsscO6SZHBLkEquOD8v+z+p/EWydZuUDp5pkyZ3HVt33MY4/XFW/Ph87yfN j83+5uG716VJ
QBltp8zo2Y4AzCYZDE4L9D0/D6flT5bKcuSmziUSAmVgG+bONo4H15zjPU8X fPh/56x/f2fe
H3vT6+1Czwuu5JY2HHIYHqcD9eKAJKzJUk8xbYRhgs4lDlG7vuPOMDAJ5yem Mc1fMoFwsJVs
shcNxjggEfqKBPCzhBLGWJK7QwzkdR+FAFRbJ1m5QOnmmTJncdW3fcxjj9cU PbTlp2WOHdJM
jglyCVXHB+X/AGf1P42muYFl8pp4xJkDYXGcnpxT/MTzPL3rvxu255x64oAp LZOs3KB080yZ
M7jq277mMcfripYIpo7udzHFtlfO4Od2AoAGMe3r3qbz4f8AnrH9/Z94fe9P r7UjXMCy+U08
YkyBsLjOT04oApy2U5clNnEokBMrAN82cbRwPrznGep4srHNHcSFPLKSOHLE nI4Axjv0657+
3Ky3cUThNwZ9yqVVhlckAEjPTkfnS/a7bzPL+0Rb87du8Zz6YoArLZOs3KB0 80yZM7jq277m
McfriiW1nKeWiwsqzecrMTknfux046kZ5+nPEr3yLcGHypSRIseQvGSM/oOt SR3MbytGTsdX
KBWIy2ADkc88EUATVQitZwnlusKq03nMyk5B37sdOegGePpxzZS7t3maFZoz Ip2lN3OfpQl3
bvM0KzRmRTtKbuc/SgCBo99+YwH8skSyZQ4LLjHPv8p4/ue5q7UYnhZwgljL EldoYZyOo/Cn
eYnmeXvXfjdtzzj1xQBWitT9qmlmUYZwyASMRwAOV6Z4z3/SoZbKcuSmziUS AmVgG+bONo4H
15zjPU8XXl2zRxgZL5J56Ad/zIH40PLtmjjAyXyTz0A7/mQPxoAqLZOs3KB0 80yZM7jq277m
Mcfrir9Qtd2y7t1xENp2tlxwfQ/kfyoa7tl3briIbTtbLjg+h/I/lQAfZo/M 37pc5zjznx+W
cfhR9mj8zfulznOPOfH5Zx+FDXdsu7dcRDadrZccH0P5H8qmoAg8lpJhJKwA Q/IqZB69z36D
jp9eDU9Qtd2y7t1xENp2tlxwfQ/kfyoFwPOEbRyKGJVXIGGIycevY9scfSgC aiio/Ph87yfN
j83+5uG716UASUVF9pgDBfPj3FtgG8ZLen15FD3MCMyvPGrIMsC4BA9/zH50 AS0VG8u2aOMD
JfJPPQDv+ZA/Gmi4HnCNo5FDEqrkDDEZOPXse2OPpQBNRVf7Wu7/AFcnl79n mcbc5xjrnrx0
/Sj7Wu7/AFcnl79nmcbc5xjrnrx0/SgCxRUX2hPtPkYfftLZKkDAx379e1K8 u2aOMDJfJPPQ
Dv8AmQPxoAkoqq96Edk8iUsrhQo25bOcEc9OP5+hxHJqkUczxGKUusix4G3k tkjHPtQBeoqK
GfzZJU8t18ptpLYwTjPGD6EfnTPtYLYWGVl37A6qCM5we+RjnkjHH0oAsUVG Z4RIYzLHvGMr
uGRnGOPxH502O5jeVoydjq5QKxGWwAcjnngigCaio/Ph87yfNj83+5uG716U LPC67kljYcch
gepwP14oAkoqPz4fO8nzY/N/ubhu9elQvfItwYfKlJEix5C8ZIz+g60AWH+6 aj/z/n/P/wBe
R/umo/8AP+f8/wD1wBr/AHT/AJ/z/n8Y6kf7p/z/AJ/z+MdIZWu+qfj/AEoo u+qfj/SigRPH
90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51fJPXse3U8dPpyai+zzfbPtGI/ v42bjjbjG7p9
/t9OPerHnw+d5Pmx+b/c3Dd69KDKBcLCVbLIXDcY4IBH6imIq/ZZmnyUjVfM 3ZWViMZz9wjG
T6+vPWkltZynlosLKs3nKzE5J37sdOOpGefpzxb8+HzvJ82Pzf7m4bvXpQs8 LruSWNhxyGB6
nA/XigBvlv8AbPM2RbPL27sfPnPTPp/Wq/2WZp8lI1XzN2VlYjGc/cIxk+vr z1q158PneT5s
fm/3Nw3evSgTws4QSxliSu0MM5HUfhQBAsEisIzHC8YlMgdiSQSxPC4684zn 39qje2nLTssc
O6SZHBLkEquOD8v+z+p/Gyl3bvM0KzRmRTtKbuc/So/to89ohBKSr7SRt9uc Zzj5h270ARLZ
Os3KB080yZM7jq277mMcfriom0+Z0bMcAZhMMhicF+h6fh9PyrQ8+HzvJ82P zf7m4bvXpSfa
YAwXz49xbYBvGS3p9eRQBTlspy5KbOJRICZWAb5s42jgfXnOM9Txo1Gs8Lru SWNhxyGB6nA/
Xio1u1MzxtHIgV9m9sbSeCBwe+R1+nXigCP7PN9s+0Yj+/jZuONuMbun3+30 496rtp8zo2Y4
AzCYZDE4L9D0/D6flWh58PneT5sfm/3Nw3evSoX1C3W4WBXV3JwQHX5TnHc/ oMmgBXSc3qSK
kZjVSuS5BwSpJxj29ahe2nLTsscO6SZHBLkEquOD8v8As/qfxt+fD53k+bH5 v9zcN3r0o8+H
/nrH9/Z94fe9Pr7UAVfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVjy3+2eZsi2eX t3Y+fOemfT+t
OMoFwsJVsshcNxjggEfqKal3bvM0KzRmRTtKbuc/SgCH7PN9s+0Yj+/jZuON uMbun3+30496
b9lmafJSNV8zdlZWIxnP3CMZPr689asfa7bzPL+0Rb87du8Zz6YqN75FuDD5 UpIkWPIXjJGf
0HWgCKW1nKeWiwsqzecrMTknfux046kZ5+nPFn7NH5m/dLnOcec+Pyzj8KV7 mBGZXnjVkGWB
cAge/wCY/Ol8+H/nrH9/Z94fe9Pr7UAO8tN27Yuc7s474xn8uKpPbTlp2WOH dJMjglyCVXHB
+X/Z/U/jb8+HzvJ82Pzf7m4bvXpQZQLhYSrZZC4bjHBAI/UUARrHNHcSFPLK SOHLEnI4Axjv
0657+3Isc0dxIU8spI4csScjgDGO/Trnv7cyCeMzmEMpcDJAYZHTqOveoX1C 3W4WBXV3JwQH
X5TnHc/oMmgCBI3mu7kCIKhmRjIwIJCheBxyMqe/f87flv8AbPM2RbPL27sf PnPTPp/WnCeM
zmEMpcDJAYZHTqOvejz4fO8nzY/N/ubhu9elADYUbzJZZBhnO0D0UZx/U/jj tRCjeZLLIMM5
2geijOP6n8cdqSW7iicJuDPuVSqsMrkgAkZ6cj86Y98i3Bh8qUkSLHkLxkjP 6DrQAySzke5L
iQCNnVyOeo29v+Af+PH05JLOR7kuJAI2dXI56jb2/wCAf+PH05tJLHIzKrAs hwy9x9RT6AKU
lnI9yXEgEbOrkc9Rt7f8A/8AHj6c2f332j/ln5Gz33bs/ljFSUUAUpLOR7ku JAI2dXI56jb2
/wCAf+PH05kMMjXayMsahCfnXO5lwcKRjpznr1HT0s0UAR/vvtH/ACz8jZ77 t2fyxiq/2ebH
k4j8rzfM37ju+/vxtx+HX39quUUAVYIpo7udzHFtlfO4Od2AoAGMe3r3qtKk nmLbCMMFnEoc
o3d9x5xgYBPOT0xjmtOigCGFG8yWWQYZztA9FGcf1P447VGiXP2ou6xFckbt 5JCdgBjjtnn+
mLVFAFP7PNjycR+V5vmb9x3ff3424/Dr7+1H2ebHk4j8rzfM37ju+/vxtx+H X39quUUAVnSc
3qSKkZjVSuS5BwSpJxj29afCjeZLLIMM52geijOP6n8cdqmooApyR3ZnMqiL KnagLnGw9c/L
1OB+Q98xy2k7SSyBIixlV0JkI+Ubcg8d9g/P89CigCmI7tZpSgiCySq+7ech RtBGNvcD170j
Wsjz+Y0durbw3nICHCg8DpzkDB5HXp63aKAKiwSKwjMcLxiUyB2JJBLE8Ljr zjOff2qN7act
Oyxw7pJkcEuQSq44Py/7P6n8b9FAFBbJ1m5QOnmmTJncdW3fcxjj9cVE2nzO jZjgDMJhkMTg
v0PT8Pp+ValFAGdLZTlyU2cSiQEysA3zZxtHA+vOcZ6ni/5abt2xc53Zx3xj P5cU6igBr/dN
R/5/z/n/AOvI/wB01H/n/P8An/64A1/un/P+f8/jHUj/AHT/AJ/z/n8Y6Qyt d9U/H+lFF31T
8f6UUCJ4/un/AHj/ADp1Nj+6f94/zp1Axi2TrNygdPNMmTO46tu+5jHH64qZ 0nN6kipGY1Ur
kuQcEqScY9vWrNMeWONlVmAZzhV7n6CmIprZOs3KB080yZM7jq277mMcfrio m0+Z0bMcAZhM
MhicF+h6fh9PyrQ8+H/nrH9/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oAqrZO s3KB080yZM7j
q277mMcfrih7actOyxw7pJkcEuQSq44Py/7P6n8bEt3FE4TcGfcqlVYZXJAB Iz05H51L5ieZ
5e9d+N23POPXFAEKxzR3EhTyykjhyxJyOAMY79Oue/ty2C2KXk9xJHGGc/Ky sSduAMHj/ZB/
H85vPh87yfNj83+5uG716UGUC4WEq2WQuG4xwQCP1FAFf7PNjycR+V5vmb9x 3ff3424/Dr7+
1Ogimju53McW2V87g53YCgAYx7evepvPh87yfNj83+5uG716ULPC67kljYcc hgepwP14oAz2
0+Z0bMcAZhMMhicF+h6fh9PyqwLeZppfMEaxPKsmVYlvl24GMcfdB/T3qx58 PneT5sfm/wBz
cN3r0oE8LOEEsZYkrtDDOR1H4UAVFsnWblA6eaZMmdx1bd9zGOP1xUqpci8e Xy4tjBU/1hyA
CecbffpUiXdu8zQrNGZFO0pu5z9KmoAzpbKcuSmziUSAmVgG+bONo4H15zjP U8ST205aTyvL
KvKkvzEg5Xb8vT/Z6/hjvVkTws4QSxliSu0MM5HUfhR58PneT5sfm/3Nw3ev SgCJ0nN6kipG
Y1UrkuQcEqScY9vWlWOaO4kKeWUkcOWJORwBjHfp1z39uZFnhddySxsOOQwP U4H68UefD53k
+bH5v9zcN3r0oAb9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd8Yz+XFR/a7bz PL+0Rb87du8Z
z6YqN75FuDD5UpIkWPIXjJGf0HWgCvcxSxRqpjV41uBIGVWZuX3HgDjAJ5z2 96lntpy0nleW
VeVJfmJByu35en+z1/DHepmufnwkMki7gpdAMA5x65474/oaf58PneT5sfm/ 3Nw3evSgClLZ
TlyU2cSiQEysA3zZxtHA+vOcZ6niw6Tm9SRUjMaqVyXIOCVJOMe3rUqzwuu5 JY2HHIYHqcD9
eKFnhddySxsOOQwPU4H68UAROk5vUkVIzGqlclyDglSTjHt60ipci8eXy4tj BU/1hyACecbf
fpU3nw+d5Pmx+b/c3Dd69KBPCzhBLGWJK7QwzkdR+FAETpOb1JFSMxqpXJcg 4JUk4x7etQrZ
Os3KB080yZM7jq277mMcfrirUM/mySp5br5TbSWxgnGeMH0I/Ol8+HzvJ82P zf7m4bvXpQBU
ltZynlosLKs3nKzE5J37sdOOpGefpzxd8tN27Yuc7s474xn8uKY9zAjMrzxq yDLAuAQPf8x+
dKJ4zOYQylwMkBhkdOo696AGeS0kwklYAIfkVMg9e579Bx0+vBqeoxPCzhBL GWJK7QwzkdR+
FQvfItwYfKlJEix5C8ZIz+g60AWqKYkscjMqsCyHDL3H1FPoAKKKKACiiigA ooooAKKKKACi
iigAooooAKKKKACiiigAooooAKKKKACiiigBr/dNR/5/z/n/AOvI/wB01H/n /P8An/64A1/u
n/P+f8/jHUj/AHT/AJ/z/n8Y6Qytd9U/H+lFF31T8f6UUCJ4/un/AHj/ADp1 Nj+6f94/zp1A
y5UHktHMZImBDn51fJPXse3U8dPpyanopiKf2eb7Z9oxH9/GzccbcY3dPv8A b6ce9N+yzNPk
pGq+ZuysrEYzn7hGMn19eetW3ljjZVZgGc4Ve5+gpPPh/wCesf39n3h970+v tQBUltZynlos
LKs3nKzE5J37sdOOpGefpzxZ8t/tnmbItnl7d2Pnznpn0/rStcwLL5TTxiTI GwuM5PTimy3c
UThNwZ9yqVVhlckAEjPTkfnQBXWydZuUDp5pkyZ3HVt33MY4/XFTOk5vUkVI zGqlclyDglST
jHt61P5ieZ5e9d+N23POPXFNM8IkMZlj3jGV3DIzjHH4j86AKi2TrNygdPNM mTO46tu+5jHH
64qJtPmdGzHAGYTDIYnBfoen4fT8q0PPh87yfNj83+5uG716ULPC67kljYcc hgepwP14oAqL
ZOs3KB080yZM7jq277mMcfrih7actOyxw7pJkcEuQSq44Py/7P6n8bYnhZwg ljLEldoYZyOo
/CgygXCwlWyyFw3GOCAR+ooAjWOaO4kKeWUkcOWJORwBjHfp1z39ubFR+fD5 3k+bH5v9zcN3
r0o8+H/nrH9/Z94fe9Pr7UAVHtpy07LHDukmRwS5BKrjg/L/ALP6n8Wy2U5c lNnEokBMrAN8
2cbRwPrznGep4me+KOU+yXDEBiMBfmCnBIGc9x9ala7tl3briIbTtbLjg+h/ I/lQBRbT5nRs
xwBmEwyGJwX6Hp+H0/KpVsnWblA6eaZMmdx1bd9zGOP1xVsTws4QSxliSu0M M5HUfhR58Pne
T5sfm/3Nw3evSgBv2aPzN+6XOc4858flnH4VJ5abt2xc53Zx3xjP5cUiSxyM yqwLIcMvcfUU
+gCukc0TFI/LMRcvuYncMnJGO/U85HXvjmP7PNjycR+V5vmb9x3ff3424/Dr 7+1XKKAMttPm
dGzHAGYTDIYnBfoen4fT8qG0+Z0bMcAZhMMhicF+h6fh9PyrUooAp/Z5seTi PyvN8zfuO77+
/G3H4dff2pj205adljh3STI4JcglVxwfl/2f1P436KAKYju1mlKCILJKr7t5 yFG0EY29wPXv
R9nmx5OI/K83zN+47vv78bcfh19/arlFAGZKknmLbCMMFnEoco3d9x5xgYBP OT0xjmrTpOb1
JFSMxqpXJcg4JUk4x7etWaKAKD205adljh3STI4JcglVxwfl/wBn9T+N3y03 bti5zuzjvjGf
y4p1FAEHktJMJJWACH5FTIPXue/QcdPrwanoooAKKKKACiiigAooooAKKKKA CiiigAooooAK
KKKACiiigAooooAKKKKACiiigBr/AHTUf+f8/wCf/ryP901H/n/P+f8A64A1 /un/AD/n/P4x
1I/3T/n/AD/n8Y6Qytd9U/H+lFF31T8f6UUCJ4/un/eP86dTY/un/eP86dQM uUUUUxEHktHM
ZImBDn51fJPXse3U8dPpyai+zzfbPtGI/v42bjjbjG7p9/t9OPerlMeWONlV mAZzhV7n6CgC
p9lmafJSNV8zdlZWIxnP3CMZPr689aSW1nKeWiwsqzecrMTknfux046kZ5+n PFvz4f8AnrH9
/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oATy3+2eZsi2eXt3Y+fOemfT+tRLB IrCMxwvGJTIH
YkkEsTwuOvOM59/apJbuKJwm4M+5VKqwyuSACRnpyPzqXzE8zy9678btuece uKAKv2ebHk4j
8rzfM37ju+/vxtx+HX39qrtp8zo2Y4AzCYZDE4L9D0/D6flV9rmBZfKaeMSZ A2FxnJ6cUvnw
+d5Pmx+b/c3Dd69KAKSRvNd3IEQVDMjGRgQSFC8DjkZU9+/52HSc3qSKkZjV SuS5BwSpJxj2
9ake5gRmV541ZBlgXAIHv+Y/Ol8+H/nrH9/Z94fe9Pr7UAVFsnWblA6eaZMm dx1bd9zGOP1x
T/s832z7RiP7+Nm4424xu6ff7fTj3qx58PneT5sfm/3Nw3evSgTws4QSxliS u0MM5HUfhQAx
45DexSAJ5aoykljnJIPTH+z696haPffmMB/LJEsmUOCy4xz7/KeP7nuasmeE SGMyx7xjK7hk
Zxjj8R+dHnw+d5Pmx+b/AHNw3evSgCkkbzXdyBEFQzIxkYEEhQvA45GVPfv+ blsnWblA6eaZ
Mmdx1bd9zGOP1xVxJY5GZVYFkOGXuPqKfQBB5LSTCSVgAh+RUyD17nv0HHT6 8Gp6KKACiiig
AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKK
KKACiiigAooooAKKKKAGv901H/n/AD/n/wCvI/3TUf8An/P+f/rgDX+6f8/5 /wA/jHUj/dP+
f8/5/GOkMrXfVPx/pRRd9U/H+lFAieP7p/3j/OnVSaJmlYlpfmJ2ojkZ68+3 9T265WFf3yEN
Kpxu2PIWyOeR/h9D65NCuV2ubFFFFMkKg8lo5jJEwIc/Or5J69j26njp9OTU 9FAFP7PN9s+0
Yj+/jZuONuMbun3+30496b9lmafJSNV8zdlZWIxnP3CMZPr689a59Li9dWZZ 5yqjLHecD8aX
zr//AJ63P3d/3m+76/T3rTkJ5jeltZynlosLKs3nKzE5J37sdOOpGefpzxZ8 t/tnmbItnl7d
2Pnznpn0/rXMiXUWj8xXujHjO4FsfnTo3v5EL/aJ1TaSGZmw2ASQD68H8qOT zDmNz7LM0+Sk
ar5m7KysRjOfuEYyfX1560i2TrNygdPNMmTO46tu+5jHH64rA+03vl+Z59xs zjdvbGfTNL51
/wCV5vm3Pl/39zY/OjkDmNu5ilijVTGrxrcCQMqszcvuPAHGATznt71LPbTl pPK8sq8qS/MS
Dldvy9P9nr+GO9c+Li7MBlF3LgMFK+Y2eQSD+ho86/8AK83zbny/7+5sfnRy BzG8tk6zcoHT
zTJkzuOrbvuYxx+uKHtpy07LHDukmRwS5BKrjg/L/s/qfxwWmv0OGluVPPBZ h0GT+nNHnX/l
eb5tz5f9/c2Pzo5A5jolgkVhGY4XjEpkDsSSCWJ4XHXnGc+/tUa2TrNygdPN MmTO46tu+5jH
H64rBM1+E3mW5CgA5LNjB6GnM+opEJWkuRGRkNubGKOTzDmOk8lpJhJKwAQ/ IqZB69z36Djp
9eDU9cf9tuv+fmb/AL+Gnma/CbzLchQAclmxg9DR7MOY62iuS86/8rzfNufL /v7mx+dDTX6H
DS3Knngsw6DJ/TmjkDmOtorkvOv/ACvN8258v+/ubH507fqXl+Zuu9mM7stj Hrmjk8w5jq6K
5dTetAJftrAFGkwZWzgHH6npUXnX/wDz1ufu7/vN931+nvRyeYcx1tFcmJdR aPzFe6MeM7gW
x+dJ51/5Xm+bc+X/AH9zY/Ojk8w5jraK5PzdR2lt91gLuJy3T1+lIZr8JvMt yFAByWbGD0NH
J5hzHW0VyXnX/leb5tz5f9/c2Pzoaa/Q4aW5U88FmHQZP6c0cgcx1tFcl51/ 5Xm+bc+X/f3N
j86lU3rQCX7awBRpMGVs4Bx+p6UcnmHMdRRXH/bbr/n5m/7+GpPN1HaW33WA u4nLdPX6UezD
mOsorkvOv/K83zbny/7+5sfnUqjUWgMxnuFQDIJL/MMZ7fzNHJ5hzHUUVym/ UvL8zdd7MZ3Z
bGPXNPU3rQCX7awBRpMGVs4Bx+p6UuTzC51FFcl51/8A89bn7u/7zfd9fp70 ol1Fo/MV7ox4
zuBbH50+TzDmOsorkvOv/K83zbny/wC/ubH50vm6jtLb7rAXcTlunr9KOTzD mOsorkjNfhN5
luQoAOSzYweho86/8rzfNufL/v7mx+dHIHMdbRXJNNfocNLcqeeCzDoMn9Oa POv/ACvN8258
v+/ubH50cgcx1tFcvuu/LVhfMxZC4QO+cDOe2OMHv2qLzr/yvN8258v+/ubH 50cgcx1tFcuo
1FoDMZ7hUAyCS/zDGe38zQpvWgEv21gCjSYMrZwDj9T0pcnmFzqKK5JLm6aK SQ3UwCYA+c8k
9uvoCfwpHuL1FVmnnCsMqd5wfxp8gcx11FFFZlBRRRQA1/umo/8AP+f8/wD1 5H+6aj/z/n/P
/wBcAa/3T/n/AD/n8Y6kf7p/z/n/AD+NczxgkZPHH3TSGk3sRXfVPx/pRRdE MIyOhBI/SigB
u7MxdFLyR5AQd/mzn9enXp60Iha8Ezh03ZIVhyT3/D3+lOMcJ5aBJJGLYG0Z PJ70sAg3jFuk
UmNy8DkeoNLS5peXKalFFFUZBRRRQBx+/wAyIJIhyo+QpgfmO/Qc9frxUvmx /ZfI+f7md20Z
3Zzt6/d/rzXQyQWSMqvDAGc/KuwZb8KTy9P/ALlt9/Z0X73p9fatOdBZGB5y CHALsxj24Mag
5xj7+c49vTApYpog+9jMC8XlFVAwBt25689jjj/HdZNOWXymW1EhI+Qhc57c U2UWEb7PIgdy
yhlVVyuSACR6cj86OdBZHOZH2Ty8y79+7bn5MY649asG5DRDBKP5ezAhU/w4 +9nPP9a6D7PZ
eZ5fkwb8btu0Zx64pvl6f53k7Lbzf7mF3evSjnQWRzieV9keMtJ5jENgIMcA 8Zz71KbkNEME
o/l7MCFT/Dj72c8/1reMNr9oEJtI8spcNsXBwQD+PIo8vT/O8nZbeb/cwu71 6Uc6CyMVbuNX
Xa0xUGIgFQMhOo6/j9fzqM3IaIYJR/L2YEKn+HH3s55/rW8senyLuVLZgccg Kc5OB+uRR5en
+d5Oy283+5hd3r0o5kFkYKTRbYFZpsJE6kBB1bPI5/2v0HrUJMckEYYPvRCo AAweSc57demP
510gj09n2BLYsWI24XJI6j6imqNNkmaFVtjIGwU2rnP070c4WRy21vSrqTRb YFZpsJE6kBB1
bPI5/wBr9B610X2O1/59of8AvgVGI9PZ9gS2LFiNuFySOo+oocwtEw4rmIKA 4fmMoQI1JHy4
zuPJ+nHX83Ldxq67WmKgxEAqBkJ1HX8fr+dbXl6f53k7Lbzf7mF3evShY9Pk XcqWzA45AU5y
cD9cijmQWRgm5DRDBKP5ezAhU/w4+9nPP9ar+dL5ezZHjGP9UufzxnNdN5en +d5Oy283+5hd
3r0puNM8zy8Wm/djb8uc+mPWjnQWRzGZMYy2MYxntnOPz5qzDLEFj8wSArG0 Y2gHg7uev+10
/XtW07WS3Bh+w7j5ix5EQIJIz+g61MI9PZ9gS2LFiNuFySOo+oo5wsjA85BD gF2Yx7cGNQc4
x9/Oce3pgUpuQ0QwSj+XswIVP8OPvZzz/Wt7y9P87ydlt5v9zC7vXpSMmnLL 5TLaiQkfIQuc
9uKOdBZHPStHJbQory7o0wFKjbknJ5z7+nYVIk0W2BWabCROpAQdWzyOf9r9 B61usmnLL5TL
aiQkfIQuc9uKRhpi7twtBtbDZ28Hng+/Bo5wsjFiuYgoDh+YyhAjUkfLjO48 n6cdfzct3Grr
taYqDEQCoGQnUdfx+v51teXp/neTstvN/uYXd69KQpp27aVtdxbbjC5Len15 /WjmQWRhG5DR
DBKP5ezAhU/w4+9nPP8AWqmZMYy2MYxntnOPz5rppRYRvs8iB3LKGVVXK5IA JHpyPzpjtZLc
GH7DuPmLHkRAgkjP6DrRzoLI5ra3pVmVo5LaFFeXdGmApUbck5POff07Cum+ x2v/AD7Q/wDf
AqIpp27aVtdxbbjC5Len15/WnzhaJhG5DRDBKP5ezAhU/wAOPvZzz/Woz5LW iR7pd6ln/wBW
MEkDjr7frXReXp/neTstvN/uYXd69KheTThcCAQwO5bDABODnHOTyevAyaXO gsjn/Ol8vZsj
xjH+qXP54zmmZkxjLYxjGe2c4/PmunxpnmeXi037sbflzn0x61G7WS3Bh+w7 j5ix5EQIJIz+
g60+dBZGLDLEFj8wSArG0Y2gHg7uev8AtdP17UvnIIcAuzGPbgxqDnGPv5zj 29MCt8R6ez7A
lsWLEbcLkkdR9RR5en+d5Oy283+5hd3r0pc6CyME3IaIYJR/L2YEKn+HH3s5 5/rUcrRyW0KK
8u6NMBSo25Jyec+/p2FdCyacsvlMtqJCR8hC5z24oZNOWXymW1EhI+Qhc57c Uc6CyMJJotsC
s02EidSAg6tnkc/7X6D1p0VzEFAcPzGUIEakj5cZ3Hk/Tjr+e0w0xd24Wg2t hs7eDzwffg07
y9P87ydlt5v9zC7vXpRzoLIxVu41ddrTFQYiAVAyE6jr+P1/OozchohglH8v ZgQqf4cfeznn
+tbpTTt20ra7i23GFyW9Prz+tNlFhG+zyIHcsoZVVcrkgAkenI/OjmQWRh+e ggiiAYjyyrNs
AYZJPBznvjHGR9aU3IaIYJR/L2YEKn+HH3s55/rWz/onmujWIVVkCM5RMZOM d885HbvUvl6f
53k7Lbzf7mF3evSjnQWRzp8lrRI90u9Sz/6sYJIHHX2/WoMyYxlsYxjPbOcf nzXRvJpwuBAI
YHcthgAnBzjnJ5PXgZNDtZLcGH7DuPmLHkRAgkjP6DrRzhaJz8pzHFHHyqjc T6scZ/oPw96U
Psi2RISXHzF8H8h269ev0zXSvBarNHGLWFi+SfkHAHfp6kD8aVILKRnVYYCy n5l2DI+oo5ws
i1RRRWYBRRRQA1/umo/8/wCf8/8A15H+6aj/AM/5/wA//XAGv90/5/z/AJ/G qbdSSd7DJz2/
wq0/3T/n/P8An8apuFBI2McHHb/GguPN0I7lQqxqOgBH8qKLlgyxsOhBP8qK RL3HMrBhMil2
TICj13Eg02OJ5Lo3Dq6Drhxzk/0qxH90/wC8f506lYvndrFyiiiqMwoopjyx xsqswDOcKvc/
QUAVztimaSOVcFgJFcknqeh7Ac8dOD05NREEXhuC0XEm0puONuMbun3+CM9M AjPGatMypNDG
qAkg9ONqjr+u0Y9/agS24xiSIYbyxgjg/wB36+1BXulMofPJYxIqy5JWViOu fuEYzwcnscnq
KSZH2GNTAVjn80M7HOd+7HTjuM89D74uGe2SVYjLCsg+UJuAIz2x+VNkuYIX VBtZwVTahGUB
IAyM9OR+lAe6IXUXhkPk7Amwtj5856Z/u8H8QfSqwhVJm3bXQTbyTcOMZbd9 zGOOfyPTmr4M
QkEYKBwuQoxkL9PSmGe2SVYjLCsg+UJuAIz2x+VAe6QySP8AbVkHk+XGChJc g8kEnGO209/X
pg1CIVSZt210E28k3DjGW3fcxjjn8j05q6JbcTCESRCUDAQEbgOvSkae2iYq 0sKNGvILAFRx
+Q6fpQHumc9sSj7hbqx84E7icF+h+72wQfYH0IqUQqkzbtroJt5JuHGMtu+5 jHHP5HpzV0S2
4xiSIYbyxgjg/wB36+1AltxMIRJEJQMBARuA69KA90pSo+64YCDc06NkuQcL jg/L/sn2GT6V
OHMVxKVeLY8gZmYnK8AEAY5+6ec8c+lTLLb71RJItwyiqCM8dQP04o823WTy xJEHQAbcjKg4
xx+X6UB7o4zxDOXHBwf8/gfyPpVCVH3XDAQbmnRslyDhccH5f9k+wyfSrolt xMIRJEJQMBAR
uA69KWN4WYrGV3R/KVxgr+HYcfjQHumfNC29irx/LMHyZWAPzZxtHA6HnnoS ec4Y9sSj7hbq
x84E7icF+h+72wQfYH0IrWCqMYUDAwMDoKAqjGFAwMDA6CgPdM4QqkzbtroJ t5JuHGMtu+5j
HHP5HpzVkpbiQuZZMhskec+M/TOMcH24PpVgKoxhQMDAwOgoCqMYUDAwMDoK A90jL24YsdmQ
2Scd8Yz+QIz7H0qjkPdXIwiIZkYyNkMduOAMcjKt345P10gqjGFAwMDA6CgK oxhQMDAwOgoD
3TMmhbexV4/lmD5MrAH5s42jgdDzz0JPOcPKHzyWMSKsuSVlYjrn7hGM8HJ7 HJ6itAKoxhQM
DAwOgoCqMYUDAwMDoKA90zyh88ljEirLklZWI65+4RjPByexyeopZYs3Lv56 iMyKzDJ6jb27
/wCr6+7enN8KoxhQMDAwOgoCqMYUDAwMDoKA90okEAwlovKE3mF9x3ff3424 9iM57E9sU6Fj
Fd3DsIQsknLBzuAC4HG3noe/HPoauBVGMKBgYGB0FAVRjCgYGBgdBQHumdMj 7DGpgKxz+aGd
jnO/djpx3Geeh98XS9uGLHZkNknHfGM/kCM+x9KkCqMYUDAwMDoKAqjGFAwM DA6CgPdGmeIZ
y44OD/n8D+R9KqwsYru4dhCFkk5YOdwAXA4289D3459DVwKoxhQMDAwOgoCq MYUDAwMDoKA9
0zhCqTNu2ugm3km4cYy277mMcc/kenNSiSRLySUiHYdqH94cgAtzjb7n8jzV wKoxhQMDAwOg
oCqMYUDAwMDoKA90rlLcSFzLJkNkjznxn6Zxjg+3B9KkL24YsdmQ2Scd8Yz+ QIz7H0qQKoxh
QMDAwOgoCqMYUDAwMDoKA90zch7q5GERDMjGRshjtxwBjkZVu/HJ+qTQtvYq 8fyzB8mVgD82
cbRwOh556EnnONMKoxhQMDAwOgoCqMYUDAwMDoKA90zyh88ljEirLklZWI65 +4RjPByexyeo
oKHzyWMSKsuSVlYjrn7hGM8HJ7HJ6itAKoxhQMDAwOgoCqMYUDAwMDoKA90o SxZuXfz1EZkV
mGT1G3t3/wBX1929OVIIBhLReUJvML7ju+/vxtx7EZz2J7Yq8FUYwoGBgYHQ UBVGMKBgYGB0
FAe6U4WMV3cOwhCyScsHO4ALgcbeeh78c+hqKZH2GNTAVjn80M7HOd+7HTju M89D740QqjGF
AwMDA6CgKoxhQMDAwOgoD3TPMX+kTzM6AiUMq+YxVsDGGGMfw5zzgj/ZpBCq TNu2ugm3km4c
Yy277mMcc/kenNaIVRjCgYGBgdBQFUYwoGBgYHQUB7pTEkiXkkpEOw7UP7w5 ABbnG33P5Hmr
Be3DFjsyGyTjvjGfyBGfY+lSBVGMKBgYGB0FAVRjCgYGBgdBQHuleJ0WSaWV gGLbcZ6KM4/9
mPtkjtSHa83mTSqBG2FVCQRz3PccdOnBznGRZCqMYUDAwMDoKAqjGFAwMDA6 CgPdHUUUUEhR
RRQA1/umo/8AP+f8/wD15H+6aj/z/n/P/wBcAa/3T/n/AD/n8a5gjJJweefv GrD/AHT/AJ/z
/n8Y6Q02titdAKIwOgBA/Sii76p+P9KKAJ4/un/eP86dTY/un/eP86dQBcoo opiCoPJaOYyR
MCHPzq+SevY9up46fTk1I8scbKrMAznCr3P0FI8u2aOMDJfJPPQDv+ZA/GgB sKN5kssgwzna
B6KM4/qfxx2qH7PN9s+0Yj+/jZuONuMbun3+30496sefD/z1j+/s+8Pven19 qRrmBZfKaeMS
ZA2FxnJ6cUAVvsszT5KRqvmbsrKxGM5+4RjJ9fXnrSS2s5Ty0WFlWbzlZick 792OnHUjPP05
4sS3cUThNwZ9yqVVhlckAEjPTkfnUvmJ5nl71343bc849cUAR+W/2zzNkWzy 9u7Hz5z0z6f1
qv8AZZmnyUjVfM3ZWViMZz9wjGT6+vPWrRnhEhjMse8Yyu4ZGcY4/EfnR58P neT5sfm/3Nw3
evSgCotk6zcoHTzTJkzuOrbvuYxx+uKZcxSxRqpjV41uBIGVWZuX3HgDjAJ5 z296vLPC67kl
jYcchgepwP14oE8LOEEsZYkrtDDOR1H4UAVp7actJ5XllXlSX5iQcrt+Xp/s 9fwx3pq2TrNy
gdPNMmTO46tu+5jHH64q2ZQLhYSrZZC4bjHBAI/UUefD53k+bH5v9zcN3r0o AqPbTlp2WOHd
JMjglyCVXHB+X/Z/U/jIsEisIzHC8YlMgdiSQSxPC4684zn39qn8+H/nrH9/ Z94fe9Pr7VA9
8Ucp9kuGIDEYC/MFOCQM57j60ARrZOs3KB080yZM7jq277mMcfrirHktJMJJ WACH5FTIPXue
/QcdPrwaVru2XduuIhtO1suOD6H8j+VOE8LOEEsZYkrtDDOR1H4UASUVH58P neT5sfm/3Nw3
evSlSWORmVWBZDhl7j6igB9FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUANf7pqP/P8An/P/ ANeR/umo/wDP
+f8AP/1wBr/dP+f8/wCfxjqR/un/AD/n/P4x0hla76p+P9KKLvqn4/0ooETx /dP+8f506mx/
dP8AvH+dOoGXKKKY8scbKrMAznCr3P0FMRH5LRzGSJgQ5+dXyT17Ht1PHT6c mlhRvMllkGGc
7QPRRnH9T+OO1OeXbNHGBkvknnoB3/MgfjR58P8Az1j+/s+8Pven19qAK/2e b7Z9oxH9/Gzc
cbcY3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561Za5gWXymnjEmQNhc ZyenFNlu4onC
bgz7lUqrDK5IAJGenI/OgCvLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/bP M2RbPL27sfPn
PTPp/WpPMTzPL3rvxu255x64pvnw+d5Pmx+b/c3Dd69KAIFgkVhGY4XjEpkD sSSCWJ4XHXnG
c+/tSfZ5seTiPyvN8zfuO77+/G3H4dff2qwZQLhYSrZZC4bjHBAI/UUefD53 k+bH5v8Ac3Dd
69KAM9tPmdGzHAGYTDIYnBfoen4fT8qekbzXdyBEFQzIxkYEEhQvA45GVPfv +d1Z4XXcksbD
jkMD1OB+vFHnw+d5Pmx+b/c3Dd69KAInSc3qSKkZjVSuS5BwSpJxj29ahWyd ZuUDp5pkyZ3H
Vt33MY4/XFWxPCzhBLGWJK7QwzkdR+FNS7t3maFZozIp2lN3OfpQBD9nm+2f aMR/fxs3HG3G
N3T7/b6ce9SvHIb2KQBPLVGUksc5JB6Y/wBn171IkscjMqsCyHDL3H1FPoAp NHvvzGA/lkiW
TKHBZcY59/lPH9z3NRpG813cgRBUMyMZGBBIULwOORlT37/no0UAUFsnWblA 6eaZMmdx1bd9
zGOP1xVjyWkmEkrABD8ipkHr3PfoOOn14NT0UAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UANf7pqP/P8A
n/P/ANeR/umo/wDP+f8AP/1wBr/dP+f8/wCfxjqR/un/AD/n/P4x0hla76p+ P9KKLvqn4/0o
oETx/dP+8f506mx/dP8AvH+dOoGXKg8lo5jJEwIc/Or5J69j26njp9OTU9Me WONlVmAZzhV7
n6CmIZCjeZLLIMM52geijOP6n8cdqh+zzfbPtGI/v42bjjbjG7p9/t9OPerH nw/89Y/v7PvD
73p9faka5gWXymnjEmQNhcZyenFAFb7LM0+Skar5m7KysRjOfuEYyfX1560k trOU8tFhZVm8
5WYnJO/djpx1Izz9OeLEt3FE4TcGfcqlVYZXJABIz05H51L5ieZ5e9d+N23P OPXFAEflv9s8
zZFs8vbux8+c9M+n9arLZOs3KB080yZM7jq277mMcfrirfnw+d5Pmx+b/c3D d69KDKBcLCVb
LIXDcY4IBH6igCJ0nN6kipGY1UrkuQcEqScY9vWoVsnWblA6eaZMmdx1bd9z GOP1xVvz4fO8
nzY/N/ubhu9elCzwuu5JY2HHIYHqcD9eKAM9tPmdGzHAGYTDIYnBfoen4fT8 qlWydZuUDp5p
kyZ3HVt33MY4/XFW/Ph87yfNj83+5uG716UCeFnCCWMsSV2hhnI6j8KAKj20 5adljh3STI4J
cglVxwfl/wBn9T+M6xzR3EhTyykjhyxJyOAMY79Oue/ty5Lu3eZoVmjMinaU 3c5+lTUAQeS0
kwklYAIfkVMg9e579Bx0+vBqeoxPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3 Dd69KAJKKjWe
F13JLGw45DA9TgfrxR58PneT5sfm/wBzcN3r0oAkoqH7XbeZ5f2iLfnbt3jO fTFRvfItwYfK
lJEix5C8ZIz+g60AWqKjE8LOEEsZYkrtDDOR1H4UefD53k+bH5v9zcN3r0oA koqJrmBZfKae
MSZA2FxnJ6cUNcwLL5TTxiTIGwuM5PTigCWioWu7Zd264iG07Wy44PofyP5U 7z4fO8nzY/N/
ubhu9elAElFRfaYAwXz49xbYBvGS3p9eRTZbuKJwm4M+5VKqwyuSACRnpyPz oAnoqsLweayN
DIqo4jLnbjJxjvnnI7d6l8+HzvJ82Pzf7m4bvXpQBJRVV9Qt1uFgV1dycEB1 +U5x3P6DJoe+
Rbgw+VKSJFjyF4yRn9B1oAtUUVCl3bvM0KzRmRTtKbuc/SgCaioWu7Zd264i G07Wy44PofyP
5U4Tws4QSxliSu0MM5HUfhQBJRUfnw+d5Pmx+b/c3Dd69Kb9rtvM8v7RFvzt 27xnPpigCaiq
r3yLcGHypSRIseQvGSM/oOtTefD/AM9Y/v7PvD73p9fagCSiomuYFl8pp4xJ kDYXGcnpxTZb
uKJwm4M+5VKqwyuSACRnpyPzoAnopvmJ5nl71343bc849cUxrmBZfKaeMSZA 2FxnJ6cUAS0V
Cl3bvM0KzRmRTtKbuc/Sl+0wBgvnx7i2wDeMlvT68igCWioxPGZzCGUuBkgM Mjp1HXvQJ4Wc
IJYyxJXaGGcjqPwoAkoqJ7mBGZXnjVkGWBcAge/5j86ie+Rbgw+VKSJFjyF4 yRn9B1oAtUVG
8u2aOMDJfJPPQDv+ZA/GlSWORmVWBZDhl7j6igB9FFFABRRRQA1/umo/8/5/ z/8AXkf7pqP/
AD/n/P8A9cAa/wB0/wCf8/5/GOpH+6f8/wCf8/jHSGVrvqn4/wBKKLvqn4/0 ooETx/dP+8f5
06mx/dP+8f506gZcqDyWjmMkTAhz86vknr2PbqeOn05NT0x5Y42VWYBnOFXu foKYit9nm+2f
aMR/fxs3HG3GN3T7/b6ce9N+yzNPkpGq+ZuysrEYzn7hGMn19eetWvPh/wCe sf39n3h970+v
tSNcwLL5TTxiTIGwuM5PTigCrLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/ AGzzNkWzy9u7
Hz5z0z6f1pJbuKJwm4M+5VKqwyuSACRnpyPzqXzE8zy9678btueceuKAKS2T rNygdPNMmTO4
6tu+5jHH64qZ0nN6kipGY1UrkuQcEqScY9vWpfPh87yfNj83+5uG716UGUC4 WEq2WQuG4xwQ
CP1FAFRbJ1m5QOnmmTJncdW3fcxjj9cVE2nzOjZjgDMJhkMTgv0PT8Pp+VaH nw+d5Pmx+b/c
3Dd69KFnhddySxsOOQwPU4H68UAVFsnWblA6eaZMmdx1bd9zGOP1xQ9tOWnZ Y4d0kyOCXIJV
ccH5f9n9T+Nvz4fO8nzY/N/ubhu9elAnhZwgljLEldoYZyOo/CgCNY5o7iQp 5ZSRw5Yk5HAG
Md+nXPf25sVCl3bvM0KzRmRTtKbuc/SpqAKD205adljh3STI4JcglVxwfl/2 f1P4tlspy5Kb
OJRICZWAb5s42jgfXnOM9TxdE8LOEEsZYkrtDDOR1H4UefD53k+bH5v9zcN3 r0oAz20+Z0bM
cAZhMMhicF+h6fh9PyqVbJ1m5QOnmmTJncdW3fcxjj9cVbWeF13JLGw45DA9 TgfrxR58PneT
5sfm/wBzcN3r0oAb9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd8Yz+XFR/a7b zPL+0Rb87du8
Zz6YqN75FuDD5UpIkWPIXjJGf0HWgCBI3mu7kCIKhmRjIwIJCheBxyMqe/f8 yWynLkps4lEg
JlYBvmzjaOB9ec4z1PF3z4f+esf39n3h970+vtSNcwLL5TTxiTIGwuM5PTig Ct9lmafJSNV8
zdlZWIxnP3CMZPr689aPsszT5KRqvmbsrKxGM5+4RjJ9fXnrVrz4fO8nzY/N /ubhu9elJ9pg
DBfPj3FtgG8ZLen15FAFeSzke5LiQCNnVyOeo29v+Af+PH05X7PNjycR+V5v mb9x3ff3424/
Dr7+1WBPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3Dd69KAIYIpo7udzHFtlf O4Od2AoAGMe3
r3qKW1nKeWiwsqzecrMTknfux046kZ5+nPFtZ4XXcksbDjkMD1OB+vFHnw+d 5Pmx+b/c3Dd6
9KAKv2SU3E0x25MgdF8xirYAGGGMDpnPODj05RbJ1m5QOnmmTJncdW3fcxjj 9cVMLweayNDI
qo4jLnbjJxjvnnI7d6l8+HzvJ82Pzf7m4bvXpQBCqXIvHl8uLYwVP9YcgAnn G336VY8tN27Y
uc7s474xn8uKrvqFutwsCuruTggOvynOO5/QZND3yLcGHypSRIseQvGSM/oO tAFqq6xzR3Eh
TyykjhyxJyOAMY79Oue/tzYqFLu3eZoVmjMinaU3c5+lAEDR778xgP5ZIlky hwWXGOff5Tx/
c9zUaRvNd3IEQVDMjGRgQSFC8DjkZU9+/wCdtru2XduuIhtO1suOD6H8j+VO E8LOEEsZYkrt
DDOR1H4UAVFsnWblA6eaZMmdx1bd9zGOP1xVn7NH5m/dLnOcec+Pyzj8Kd58 PneT5sfm/wBz
cN3r0pv2u28zy/tEW/O3bvGc+mKAJPLTdu2LnO7OO+MZ/Liqv2eb7Z9oxH9/ GzccbcY3dPv9
vpx70575FuDD5UpIkWPIXjJGf0HWpvPh/wCesf39n3h970+vtQBV+yzNPkpG q+ZuysrEYzn7
hGMn19eetJLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tni01zAsvlNPGJMgbC4zk9 OKbLdxROE3Bn
3KpVWGVyQASM9OR+dAC+W/2zzNkWzy9u7Hz5z0z6f1qv9lmafJSNV8zdlZWI xnP3CMZPr689
aueYnmeXvXfjdtzzj1xTGuYFl8pp4xJkDYXGcnpxQAxY5o7iQp5ZSRw5Yk5H AGMd+nXPf25b
BFNHdzuY4tsr53BzuwFAAxj29e9SJd27zNCs0ZkU7Sm7nP0pftMAYL58e4ts A3jJb0+vIoAj
dJzepIqRmNVK5LkHBKknGPb1qF7actOyxw7pJkcEuQSq44Py/wCz+p/G2J4z OYQylwMkBhkd
Oo696BPCzhBLGWJK7QwzkdR+FAFCVJPMW2EYYLOJQ5Ru77jzjAwCecnpjHNa Plpu3bFzndnH
fGM/lxTHuYEZleeNWQZYFwCB7/mPzqJ75FuDD5UpIkWPIXjJGf0HWgCSFG8y WWQYZztA9FGc
f1P447UnktJMJJWACH5FTIPXue/QcdPrwae8u2aOMDJfJPPQDv8AmQPxpUlj kZlVgWQ4Ze4+
ooAfRRRQAUUUUANf7pqP/P8An/P/ANeR/umo/wDP+f8AP/1wBr/dP+f8/wCf xjqR/un/AD/n
/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/dP8AvH+dOoGXKg8lo5jJ EwIc/Or5J69j
26njp9OTUjyxxsqswDOcKvc/QUjy7Zo4wMl8k89AO/5kD8aYiv8AZ5vtn2jE f38bNxxtxjd0
+/2+nHvTfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVrz4f8AnrH9/Z94fe9Pr7Uj XMCy+U08YkyB
sLjOT04oAqy2s5Ty0WFlWbzlZick792OnHUjPP054s+W/wBs8zZFs8vbux8+ c9M+n9aSW7ii
cJuDPuVSqsMrkgAkZ6cj86l8xPM8veu/G7bnnHrigCktk6zcoHTzTJkzuOrb vuYxx+uKmdJz
epIqRmNVK5LkHBKknGPb1qRrmBZfKaeMSZA2FxnJ6cUpnhEhjMse8Yyu4ZGc Y4/EfnQBUWyd
ZuUDp5pkyZ3HVt33MY4/XFRNp8zo2Y4AzCYZDE4L9D0/D6flV6O5jeVoydjq 5QKxGWwAcjnn
ginefD53k+bH5v8Ac3Dd69KAKi2TrNygdPNMmTO46tu+5jHH64oe2nLTsscO 6SZHBLkEquOD
8v8As/qfxtrPC67kljYcchgepwP14o8+HzvJ82Pzf7m4bvXpQBGsc0dxIU8s pI4csScjgDGO
/Trnv7c2KYkscjMqsCyHDL3H1FPoAoPbTlp2WOHdJMjglyCVXHB+X/Z/U/i2 WynLkps4lEgJ
lYBvmzjaOB9ec4z1PGjRQBltp8zo2Y4AzCYZDE4L9D0/D6flUq2TrNygdPNM mTO46tu+5jHH
64q/RQBD9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd8Yz+XFOooApT205aTyv LKvKkvzEg5Xb
8vT/AGev4Y70n2WZp8lI1XzN2VlYjGc/cIxk+vrz1q9RQBQWydZuUDp5pkyZ 3HVt33MY4/XF
SwRTR3c7mOLbK+dwc7sBQAMY9vXvVqigCg9tOWnZY4d0kyOCXIJVccH5f9n9 T+LZbKcuSmzi
USAmVgG+bONo4H15zjPU8aNFAGW2nzOjZjgDMJhkMTgv0PT8Pp+VSrZOs3KB 080yZM7jq277
mMcfrir9FAFH7JKbiaY7cmQOi+YxVsADDDGB0znnBx6cotk6zcoHTzTJkzuO rbvuYxx+uKv0
UAVVS5F48vlxbGCp/rDkAE842+/SrHlpu3bFzndnHfGM/lxTqKACq6xzR3Eh TyykjhyxJyOA
MY79Oue/tzYooApNHvvzGA/lkiWTKHBZcY59/lPH9z3NRpG813cgRBUMyMZG BBIULwOORlT3
7/no0UAUFsnWblA6eaZMmdx1bd9zGOP1xVn7NH5m/dLnOcec+Pyzj8KmooAb 5abt2xc53Zx3
xjP5cVV+zzfbPtGI/v42bjjbjG7p9/t9OPerlFAFH7LM0+Skar5m7KysRjOf uEYyfX1560kt
rOU8tFhZVm85WYnJO/djpx1Izz9OeL9FAEPlv9s8zZFs8vbux8+c9M+n9ar/ AGWZp8lI1XzN
2VlYjGc/cIxk+vrz1q9RQBXWOaO4kKeWUkcOWJORwBjHfp1z39uWwRTR3c7m OLbK+dwc7sBQ
AMY9vXvVqigCs6Tm9SRUjMaqVyXIOCVJOMe3rUL205adljh3STI4JcglVxwf l/2f1P436KAM
yVJPMW2EYYLOJQ5Ru77jzjAwCecnpjHNaPlpu3bFzndnHfGM/lxTqKAIYUbz JZZBhnO0D0UZ
x/U/jjtSeS0kwklYAIfkVMg9e579Bx0+vBqeigAooooAKKKKAGv901H/AJ/z /n/68j/dNR/5
/wA/5/8ArgDX+6f8/wCf8/jHUj/dP+f8/wCfxjpDK131T8f6UUXfVPx/pRQI nj+6f94/zp1N
j+6f94/zp1AyXyWjmMkTAhz86vknr2PbqeOn05NLCjeZLLIMM52geijOP6n8 cdqmopiKf2eb
7Z9oxH9/GzccbcY3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561eooAo S2s5Ty0WFlWb
zlZick792OnHUjPP054s+W/2zzNkWzy9u7Hz5z0z6f1qaigCj9lmafJSNV8z dlZWIxnP3CMZ
Pr689aesEisIzHC8YlMgdiSQSxPC4684zn39qt0UAUHtpy07LHDukmRwS5BK rjg/L/s/qfxF
snWblA6eaZMmdx1bd9zGOP1xV+igDLbT5nRsxwBmEwyGJwX6Hp+H0/Kny2U5 clNnEokBMrAN
82cbRwPrznGep40aKAIPJaSYSSsAEPyKmQevc9+g46fXg1PRRQAUUUUAFFFF ABRRRQAUUUUA
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRR
RQAUUUUAFFFFABRRRQA1/umo/wDP+f8AP/15H+6aj/z/AJ/z/wDXAGv90/5/ z/n8Y6kf7p/z
/n/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/dP+8f506gZcooopiCi iigAooooAKKK
KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigA
ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAGv 93HqRVUzIDhi
oPu3/wBerUhAXJOACMk/WqDGBnVmKHb70AE0hM8ABwrE5wevBqWq8zh7qAhg xy2cH2NWKQyt
d9U/H+lFF31T8f6UUCJ4/un/AHj/ADp1Nj+6f94/zp1Ax7y7BkngAEkk1Bdz uLN3QlSVyCCc
jNLMYnyrOvQd+nFQ3bp9jdVdSQgHX0oEaGT6n/P+f89zJ9T/AJ/z/nun+f8A P+f/AK5/n/P+
f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuALk+p/wA/5/z3 Mn1P+f8AP+e6
f5/z/n/65/n/AD/n/wCuALk+p/z/AJ/z3Mn1P+f8/wCe6f5/z/n/AOuf5/z/ AJ/+uALk+p/z
/n/PcyfU/wCf8/57p/n/AD/n/wCuf5/z/n/64AuT6n/P+f8APcyfU/5/z/nu n+f8/wCf/rn+
f8/5/wDrgC5Pqf8AP+f89zJ9T/n/AD/nun+f8/5/+uf5/wA/5/8ArgC5Pqf8 /wCf89zJ9T/n
/P8Anun+f8/5/wDrn+f8/wCf/rgC5Pqf8/5/z3Mn1P8An/P+e6f5/wA/5/8A rn+f8/5/+uAL
k+p/z/n/AD3Mn1P+f8/57p/n/P8An/65/n/P+f8A64AuT6n/AD/n/PcyfU/5 /wA/57p/n/P+
f/rn+f8AP+f/AK4AuT6n/P8An/PcyfU/5/z/AJ7p/n/P+f8A65/n/P8An/64 AuT6n/P+f89z
J9T/AJ/z/nun+f8AP+f/AK5/n/P+f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/ AJ/+uf5/z/n/
AOuALk+p/wA/5/z3Mn1P+f8AP+e6f5/z/n/65/n/AD/n/wCuALk+p/z/AJ/z 3Mn1P+f8/wCe
6f5/z/n/AOuf5/z/AJ/+uALk+p/z/n/PcyfU/wCf8/57p/n/AD/n/wCuf5/z /n/64AuT6n/P
+f8APcyfU/5/z/nun+f8/wCf/rn+f8/5/wDrgC5Pqf8AP+f89zJ9T/n/AD/n un+f8/5/+uf5
/wA/5/8ArgC5Pqf8/wCf89zJ9T/n/P8Anun+f8/5/wDrn+f8/wCf/rgC5Pqf 8/5/z3Mn1P8A
n/P+e6f5/wA/5/8Arn+f8/5/+uALk+p/z/n/AD3Mn1P+f8/57p/n/P8An/65 /n/P+f8A64Au
T6n/AD/n/PcyfU/5/wA/57p/n/P+f/rn+f8AP+f/AK4AuT6n/P8An/PcyfU/ 5/z/AJ7p/n/P
+f8A65/n/P8An/64AuT6n/P+f89zJ9T/AJ/z/nun+f8AP+f/AK5/n/P+f/rg C5Pqf8/5/wA9
zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuAGTxyeo7/AOf8/rE0+1lU8FunJ/xq QkDknABySf8A
P+f51SYXdWdlIXoM8E0AFy5eWGNuUYncp5B4pfs8H/PGP/vkVHK6tdW+1geW 6fQ1YoGMWGJG
DLEikdwoFPoooArXfVPx/pRRd9U/H+lFAidFXYCQckn+Ijufel2r/dP/AH03 +NRThTaEO4Rc
nLN0+8eD7dqqxyKgCLJHBDlv3sQCq5+XGM5Hc/8AfNAy39ktv+fdP1/xo+yW 3/Pun6/41VW7
cIBKwSZnjwh4ODtzgH3LUJNJ5Fu01x5YkTcZMKMHAwOeO5P4fhQIv4Hof++2 /wAaaVzJjLAb<
Re: A Diagnostic Message for the Valid Schema [message #21027 is a reply to message #20058] Sun, 04 May 2003 11:13 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: merks.ca.ibm.com

--------------3A1C5D50D2378940A4524F08
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Pae,

You have to use the org.eclipse.xsd.util.XSDParser to construct your DOM
if you want line numbers.

Pae Choi wrote:

> Ed, When I tried to get the line information by using the getLine()
> method in theXSDDiagnostic interface. It seems like returning 1 unlike
> line 7 and line 8shown in the screen capture in your privious
> message. How should we do to get the line number? Thank
> you. Regards, Pae
>
> "Ed Merks" <merks@ca.ibm.com> wrote in message
> news:3EB25ED9.AE2CB299@ca.ibm.com...Pae,
>
> I'm seeing this result with the just published 1.1.0 driver:
>
> [Image]
>
> The schema isn't valid.
>
>
> Pae Choi wrote:
>
> > I have a simple test schema as follows:
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <!--W3C Schema generated by Pae -->
> > <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > elementFormDefault="qualified">
> > <xsd:element name="CommonLogin">
> > <xsd:complexType>
> > <xsd:sequence>
> > <xsd:element name="username" ref="usernameRef"/>
> > <xsd:element name="password" ref="passwordRef"/>
> > </xsd:sequence>
> > </xsd:complexType>
> > </xsd:element>
> > <xsd:element name="passwordRef" type="xsd:string"/>
> > <xsd:element name="usernameRef" type="xsd:string"/>
> > </xsd:schema>
> >
> > This is a very simple sample, but it is a valid schema.
> > But when
> > I use the validate() and getDiagnostics() methods in the
> > XSDSchema
> > interface it gives me a message as follows:
> >
> > XSD: The element '#null' is not permitted as constrained
> > by 'XML Schema ';
> > expecting schema
> >
> > I do not understand what the message is saying. Any
> > comments?
> >
> > Pae
>

--------------3A1C5D50D2378940A4524F08
Content-Type: multipart/related;
boundary="------------CBDBA64989AC3158CF9910D2"


--------------CBDBA64989AC3158CF9910D2
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<body bgcolor="#FFFFFF">
Pae,
<p>You have to use the org.eclipse.xsd.util.XSDParser to construct your
DOM if you want line numbers.
<p>Pae Choi wrote:
<blockquote TYPE=CITE><style></style>
<font size=-1>Ed,</font>&nbsp;<font size=-1>When
I tried to get the line information by using the getLine() method in the</font><font size=-1>XSDDiagnostic
interface. It seems like returning 1 unlike line 7 and line 8</font><font size=-1>shown
in the screen capture&nbsp; in your privious message.</font>&nbsp;<font size=-1>How
should we do to get the line number? Thank you.</font>&nbsp;<font size=-1>Regards,</font>&nbsp;&nbsp;<font size=-1>Pae</font>&nbsp;&nbsp;
<blockquote dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed
Merks" &lt;<a href="mailto:merks@ca.ibm.com">merks@ca.ibm.com</a>> wrote
in message <a href="news:3EB25ED9.AE2CB299@ca.ibm.com">news:3EB25ED9.AE2CB299@ca.ibm.com</a>...Pae,
<p>I'm seeing this result with the just published 1.1.0 driver:
<blockquote><img SRC="cid:part1.3EB4F5F7.77F6A70E@ca.ibm.com" height=411 width=502></blockquote>
The schema isn't valid.
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE="CITE">I have a simple test schema as follows:
<p>&lt;?xml version="1.0" encoding="UTF-8"?>
<br>&lt;!--W3C Schema generated by Pae -->
<br>&lt;xsd:schema xmlns:xsd="<a href="http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchema</a>"
<br>elementFormDefault="qualified">
<br>&nbsp;&lt;xsd:element name="CommonLogin">
<br>&nbsp; &lt;xsd:complexType>
<br>&nbsp;&nbsp; &lt;xsd:sequence>
<br>&nbsp;&nbsp;&nbsp; &lt;xsd:element name="username" ref="usernameRef"/>
<br>&nbsp;&nbsp;&nbsp; &lt;xsd:element name="password" ref="passwordRef"/>
<br>&nbsp;&nbsp; &lt;/xsd:sequence>
<br>&nbsp; &lt;/xsd:complexType>
<br>&nbsp;&lt;/xsd:element>
<br>&nbsp;&lt;xsd:element name="passwordRef" type="xsd:string"/>
<br>&nbsp;&lt;xsd:element name="usernameRef" type="xsd:string"/>
<br>&lt;/xsd:schema>
<p>This is a very simple sample, but it is a valid schema. But when
<br>I use the validate() and getDiagnostics() methods in the XSDSchema
<br>interface it gives me a message as follows:
<p>XSD: The element '#null' is not permitted as constrained by 'XML Schema
';
<br>expecting schema
<p>I do not understand what the message is saying. Any comments?
<p>Pae</blockquote>
</blockquote>
</blockquote>

</body>
</html>

--------------CBDBA64989AC3158CF9910D2
Content-Type: image/jpeg
Content-ID: <part1.3EB4F5F7.77F6A70E@ca.ibm.com>
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\nsmailFJ.jpeg"

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCws MGJGSjpQdGZ6
eHJmcG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAq MF40NF7GhHCE
xsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbG xsbGxsb/wAAR
CAGbAfYDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcI CQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS 0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1 dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW 19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcI CQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMz UvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0 dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU 1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDXghR49zbiST/EfU0m23yQ BKcHHG81Ja/6
kf7zfzNVLrfsTY5wGkLRrJsZueoPt6e9NK4FpIYJEDIWKnoQ5/xpfs0Xo3/f Z/xqKy2bmMbM
UZEcZ75zzjt2qMXc+1kYBbgkbYvLyRnJ67sNwDzkdPXikBZ+zRejf99n/Gj7 NF6N/wB9n/Gq
a31w+eI027VYMuTuLsmeD2xnHPpnvS/bZyJnHlhYELMNpy5DODg54zs9+veg C39mi9G/77P+
NH2aL0b/AL7P+NUEup4hIkMQZY2kdycYwZH4yWGPu9ef8b883lxs6FW2H5l7 n2HvyMDv075o
APs0Xo3/AH2f8aPs0Xo3/fZ/xqFriZWhLGMRPt/eKpdSSeFGDx2+YjBz26Uy 3kkmuraaQptk
gZlVVIKglDgnPP6UATyQxIudrH/gZpm2L+43/fw1NP8AcH1rJvJZbecG2Jlk dSWhOSAAPvD0
/r9aQGhti/uN/wB/DTDGBI65bAPHzH0B/rUdntNurLMZt3zFyep+nb6VM/8A r5f94fyFAxvl
j1b/AL6NHlj1b/vo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+ jTqKAG+WPVv+
+jR5Y9W/76NOooAb5Y9W/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igB vlj1b/vo0eWP
Vv8Avo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPV v++jR5Y9W/76
NOooAb5Y9W/76NHlj1b/AL6NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/AL6N Hlj1b/vo06ig
Bvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+jTqKAG+WPVv++jR5Y9W/ 76NOooAb5Y9W
/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/vo0eWPVv8Avo06 igBvlj1b/vo0
eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPVv++jR5Y9W/76NOooAb5Y 9W/76NHlj1b/
AL6NOooAb5Y9W/76NHlj1b/vo06igCvOTEV2MRnOcnP86KS76p+P9KKBF+1/ 1I/3m/majktG
kBVmiZNxYK8W7Gfx96hREIJKqTuPUe9O8uP+4v5U7gWIYnR3d3DFgBwuMYz/ AI0otoBEYhBG
I2OSgQYJ+lNdbaNlVkjDOcKu0ZP0FMcwRyBWtvlyFMmwbQT0Hqeo6DHP1oAm WCFF2pFGo44C
gdDkfrzTPscBn84xIXwMZUfKQScj3yaT/Q/+mH39nb73p9fahfsbruTyGHHI wepwP14oAkaC
FipaKMlCWUlRwSckj8ad5abt2xc53Zx3xjP5cVCVgFwsJgXLIXDbRjggEfqK k8iH/nkn/fIo
ABBCJBIIo94zhtoyM5zz+J/OhIIY5GkSKNXbqwUAn8ah8yw8vzN9tszt3ZXG fTNO/wBD87yf
3Hm/3ON3r0oAklUsoAGeagFuVZmEYDN94jGT9adusgwXNvuLbAMrkt6fXkUM 1ksvlMbcSZA2
ErnJ6cUANW3KZ2RhdxycYGT60j/6+X/eH8hUgFqZzCEiLgZIG3I6dR170f6H 53k/uPN/ucbv
XpQBHRUg+xs4QeQWJK7RjOR1H4U3zLDzPL322/O3blc59MUrANoprz2y3Bh+ ysSJFjyIxjJG
f0HWpf8ARvtPkeSN+0tkx4GBjv369qLAMoqx5EP/ADyT/vkVX8y33f8AHt+7 37PM2rtznGOu
evHT9KLAFFNee2W4MP2ViRIseRGMZIz+g61a8iH/AJ5J/wB8iiwFeipP9D87 yf3Hm/3ON3r0
oH2NnCDyCxJXaMZyOo/CiwEdFSH7GJDGfI3jGV4yM4xx+I/Oj/Q/O8n9x5v9 zjd69KLAR0Us
slpE4TZGz7lUqu3K5IAJHpyPzp4FqZzCEiLgZIG3I6dR170WAjoqQfY2cIPI LEldoxnI6j8K
R2skZlc26sgywJUED3/MfnRYBlFO8yw8zy99tvzt25XOfTFRvPbLcGH7KxIk WPIjGMkZ/Qda
LAOoprzQr5n+hMfLkEZwqck4xjn3H5/WkeeJHKf2fKxAYjCJ8wU4JAznuPrR YB9FN86Hz2iF
kxKvtJCp7c4znHzDt3q15EP/ADyT/vkUWAr0UeZb7v8Aj2/d79nmbV25zjHX PXjp+lNee2W4
MP2ViRIseRGMZIz+g60WAdRTnMEcgVrb5chTJsG0E9B6nqOgxz9aei20jMqp GWQ4ZdoyPqKL
ARUVY8iH/nkn/fIo8iH/AJ5J/wB8iiwFeirHkQ/88k/75FHkQ/8APJP++RRY CvRVjyIf+eSf
98ijyIf+eSf98iiwFeirHkQ/88k/75FHkQ/88k/75FFgK9FWPIh/55J/3yKP Ih/55J/3yKLA
V6KseRD/AM8k/wC+RR5EP/PJP++RRYCvRVjyIf8Ankn/AHyKPIh/55J/3yKL AV6KseRD/wA8
k/75FHkQ/wDPJP8AvkUWAr0VY8iH/nkn/fIo8iH/AJ5J/wB8iiwFeipngh2/ 6pOo/hFQbYv+
eUfPtQMWioJlTz4FCKAScgDrxUb3FsjlWj5Bx90UWGouWiQ676p+P9KKLtFR lAUDrnAooJJ4
/un/AHj/ADp1Nj+6f94/zp1AyXyWjmMkTAhz86vknr2PbqeOn05NOeMyTLuA MSjP3urZ4yMd
vr+HQ055Y42VWYBnOFXufoKDIBMsWDuZSw9MAj/EUxFb7PN9s+0Yj+/jZuON uMbun3+30496
rtp8zo2Y4AzCYZDE4L9D0/D6flWpRQBWdJzepIqRmNVK5LkHBKknGPb1qzVV 70L5n7iU+XII
zjbyTjGOfcfn9akFwPOEbRyKGJVXIGGIycevY9scfSgCP7M/2rOV+z58zb33 /Tpjv67uaiWy
dZuUDp5pkyZ3HVt33MY4/XFWGufnwkMki7gpdAMA5x65474/oanoAqwRTR3c 7mOLbK+dwc7s
BQAMY9vXvUf2WZp8lI1XzN2VlYjGc/cIxk+vrz1qb7WC2FhlZd+wOqgjOcHv kY55Ixx9KkM8
IkMZlj3jGV3DIzjHH4j86AInSc3qSKkZjVSuS5BwSpJxj29aZ9nmx5OI/K83 zN+47vv78bcf
h19/apo7mN5WjJ2OrlArEZbAByOeeCKd58PneT5sfm/3Nw3evSgCo9tOWnZY 4d0kyOCXIJVc
cH5f9n9T+Nn7NH5m/dLnOcec+Pyzj8Kcs8LruSWNhxyGB6nA/Xijz4fO8nzY /N/ubhu9elAD
vLTdu2LnO7OO+MZ/LioHSc3qSKkZjVSuS5BwSpJxj29as1E9zAjMrzxqyDLA uAQPf8x+dAC/
vvtH/LPyNnvu3Z/LGKr/AGebHk4j8rzfM37ju+/vxtx+HX39qsefD53k+bH5 v9zcN3r0oE8L
OEEsZYkrtDDOR1H4UAO8tN27Yuc7s474xn8uKdUfnw+d5Pmx+b/c3Dd69KT7 TAGC+fHuLbAN
4yW9PryKAKq2TrNygdPNMmTO46tu+5jHH64oe2nLTsscO6SZHBLkEquOD8v+ z+p/G358PneT
5sfm/wBzcN3r0pqXdu8zQrNGZFO0pu5z9KAIlgkVhGY4XjEpkDsSSCWJ4XHX nGc+/tSfZ5se
TiPyvN8zfuO77+/G3H4dff2qx58PneT5sfm/3Nw3evSmS3cUThNwZ9yqVVhl ckAEjPTkfnQB
XltZynlosLKs3nKzE5J37sdOOpGefpzxM6Tm9SRUjMaqVyXIOCVJOMe3rVmo IbuKXau4JIxI
EbMN3BIPAPsaAK7205adljh3STI4JcglVxwfl/2f1P4xypJ5i2wjDBZxKHKN 3fcecYGATzk9
MY5q613bLu3XEQ2na2XHB9D+R/KpqAIfs0fmb90uc5x5z4/LOPwqTy03bti5 zuzjvjGfy4qA
Xg81kaGRVRxGXO3GTjHfPOR271L58PneT5sfm/3Nw3evSgCB7aRpXA2eXJKk pYk5BXbxjHP3
eue/tUjxyG9ikATy1RlJLHOSQemP9n170/z4fO8nzY/N/ubhu9elSUAVYLYp eT3EkcYZz8rK
xJ24AweP9kH8fzk+zR+Zv3S5znHnPj8s4/CpqKAKP2N/P3bIs+Zv8/P7zGc7 enp8vXp+VXPL
Tdu2LnO7OO+MZ/LikSWORmVWBZDhl7j6in0ARPGZJl3AGJRn73Vs8ZGO31/D oab5LSTCSVgA
h+RUyD17nv0HHT68Gp6KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKAGyE
Bck4AIyT9az3EMjBmlOR0w4GKvyqrxlXUMD2IzVf7Lb/APPCL/vgf5/z+YBW lZWubfawOCe+
f4aZJYLJIz+cRuOcbP8A69WzbwqMrDGD6hR/n/P5t8uP+4v5UXsXCcoO8SG9 OXU+uaKbdKF2
BQAOen4UUiCxH90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51fJPXse3U8dPp yakKAzK+0ZVS
N2eRkjjH4fpQ8scbKrMAznCr3P0FJ58P/PWP7+z7w+96fX2piG/Zo/M37pc5 zjznx+WcfhR9
mj8zfulznOPOfH5Zx+FK1zAsvlNPGJMgbC4zk9OKbLdxROE3Bn3KpVWGVyQA SM9OR+dAEEti
73ZlDrtLhj6/wH/2mP8Avo+nMphka7WRljUIT8653MuDhSMdOc9eo6ek/mJ5 nl71343bc849
cUxrmBZfKaeMSZA2FxnJ6cUAMSOaJikflmIuX3MTuGTkjHfqecjr3xzYqMzw iQxmWPeMZXcM
jOMcfiPzpsdzG8rRk7HVygViMtgA5HPPBFAEDWsjz+Y0durbw3nICHCg8Dpz kDB5HXp6uWCR
WEZjheMSmQOxJIJYnhcdecZz7+1T+fD53k+bH5v9zcN3r0oWeF13JLGw45DA 9TgfrxQBUe2n
LTsscO6SZHBLkEquOD8v+z+p/EWydZuUDp5pkyZ3HVt33MY4/XFW/Ph87yfN j83+5uG716VJ
QBltp8zo2Y4AzCYZDE4L9D0/D6flT5bKcuSmziUSAmVgG+bONo4H15zjPU8X fPh/56x/f2fe
H3vT6+1Czwuu5JY2HHIYHqcD9eKAJKzJUk8xbYRhgs4lDlG7vuPOMDAJ5yem Mc1fMoFwsJVs
shcNxjggEfqKBPCzhBLGWJK7QwzkdR+FAFRbJ1m5QOnmmTJncdW3fcxjj9cU PbTlp2WOHdJM
jglyCVXHB+X/AGf1P42muYFl8pp4xJkDYXGcnpxT/MTzPL3rvxu255x64oAp LZOs3KB080yZ
M7jq277mMcfripYIpo7udzHFtlfO4Od2AoAGMe3r3qbz4f8AnrH9/Z94fe9P r7UjXMCy+U08
YkyBsLjOT04oApy2U5clNnEokBMrAN82cbRwPrznGep4srHNHcSFPLKSOHLE nI4Axjv0657+
3Ky3cUThNwZ9yqVVhlckAEjPTkfnS/a7bzPL+0Rb87du8Zz6YoArLZOs3KB0 80yZM7jq277m
McfriiW1nKeWiwsqzecrMTknfux046kZ5+nPEr3yLcGHypSRIseQvGSM/oOt SR3MbytGTsdX
KBWIy2ADkc88EUATVQitZwnlusKq03nMyk5B37sdOegGePpxzZS7t3maFZoz Ip2lN3OfpQl3
bvM0KzRmRTtKbuc/SgCBo99+YwH8skSyZQ4LLjHPv8p4/ue5q7UYnhZwgljL EldoYZyOo/Cn
eYnmeXvXfjdtzzj1xQBWitT9qmlmUYZwyASMRwAOV6Z4z3/SoZbKcuSmziUS AmVgG+bONo4H
15zjPU8XXl2zRxgZL5J56Ad/zIH40PLtmjjAyXyTz0A7/mQPxoAqLZOs3KB0 80yZM7jq277m
Mcfrir9Qtd2y7t1xENp2tlxwfQ/kfyoa7tl3briIbTtbLjg+h/I/lQAfZo/M 37pc5zjznx+W
cfhR9mj8zfulznOPOfH5Zx+FDXdsu7dcRDadrZccH0P5H8qmoAg8lpJhJKwA Q/IqZB69z36D
jp9eDU9Qtd2y7t1xENp2tlxwfQ/kfyoFwPOEbRyKGJVXIGGIycevY9scfSgC aiio/Ph87yfN
j83+5uG716UASUVF9pgDBfPj3FtgG8ZLen15FD3MCMyvPGrIMsC4BA9/zH50 AS0VG8u2aOMD
JfJPPQDv+ZA/Gmi4HnCNo5FDEqrkDDEZOPXse2OPpQBNRVf7Wu7/AFcnl79n mcbc5xjrnrx0
/Sj7Wu7/AFcnl79nmcbc5xjrnrx0/SgCxRUX2hPtPkYfftLZKkDAx379e1K8 u2aOMDJfJPPQ
Dv8AmQPxoAkoqq96Edk8iUsrhQo25bOcEc9OP5+hxHJqkUczxGKUusix4G3k tkjHPtQBeoqK
GfzZJU8t18ptpLYwTjPGD6EfnTPtYLYWGVl37A6qCM5we+RjnkjHH0oAsUVG Z4RIYzLHvGMr
uGRnGOPxH502O5jeVoydjq5QKxGWwAcjnngigCaio/Ph87yfNj83+5uG716U LPC67kljYcch
gepwP14oAkoqPz4fO8nzY/N/ubhu9elQvfItwYfKlJEix5C8ZIz+g60AWH+6 aj/z/n/P/wBe
R/umo/8AP+f8/wD1wBr/AHT/AJ/z/n8Y6kf7p/z/AJ/z+MdIZWu+qfj/AEoo u+qfj/SigRPH
90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51fJPXse3U8dPpyai+zzfbPtGI/ v42bjjbjG7p9
/t9OPerHnw+d5Pmx+b/c3Dd69KDKBcLCVbLIXDcY4IBH6imIq/ZZmnyUjVfM 3ZWViMZz9wjG
T6+vPWkltZynlosLKs3nKzE5J37sdOOpGefpzxb8+HzvJ82Pzf7m4bvXpQs8 LruSWNhxyGB6
nA/XigBvlv8AbPM2RbPL27sfPnPTPp/Wq/2WZp8lI1XzN2VlYjGc/cIxk+vr z1q158PneT5s
fm/3Nw3evSgTws4QSxliSu0MM5HUfhQBAsEisIzHC8YlMgdiSQSxPC4684zn 39qje2nLTssc
O6SZHBLkEquOD8v+z+p/Gyl3bvM0KzRmRTtKbuc/So/to89ohBKSr7SRt9uc Zzj5h270ARLZ
Os3KB080yZM7jq277mMcfriom0+Z0bMcAZhMMhicF+h6fh9PyrQ8+HzvJ82P zf7m4bvXpSfa
YAwXz49xbYBvGS3p9eRQBTlspy5KbOJRICZWAb5s42jgfXnOM9Txo1Gs8Lru SWNhxyGB6nA/
Xio1u1MzxtHIgV9m9sbSeCBwe+R1+nXigCP7PN9s+0Yj+/jZuONuMbun3+30 496rtp8zo2Y4
AzCYZDE4L9D0/D6flWh58PneT5sfm/3Nw3evSoX1C3W4WBXV3JwQHX5TnHc/ oMmgBXSc3qSK
kZjVSuS5BwSpJxj29ahe2nLTsscO6SZHBLkEquOD8v8As/qfxt+fD53k+bH5 v9zcN3r0o8+H
/nrH9/Z94fe9Pr7UAVfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVjy3+2eZsi2eX t3Y+fOemfT+t
OMoFwsJVsshcNxjggEfqKal3bvM0KzRmRTtKbuc/SgCH7PN9s+0Yj+/jZuON uMbun3+30496
b9lmafJSNV8zdlZWIxnP3CMZPr689asfa7bzPL+0Rb87du8Zz6YqN75FuDD5 UpIkWPIXjJGf
0HWgCKW1nKeWiwsqzecrMTknfux046kZ5+nPFn7NH5m/dLnOcec+Pyzj8KV7 mBGZXnjVkGWB
cAge/wCY/Ol8+H/nrH9/Z94fe9Pr7UAO8tN27Yuc7s474xn8uKpPbTlp2WOH dJMjglyCVXHB
+X/Z/U/jb8+HzvJ82Pzf7m4bvXpQZQLhYSrZZC4bjHBAI/UUARrHNHcSFPLK SOHLEnI4Axjv
0657+3Isc0dxIU8spI4csScjgDGO/Trnv7cyCeMzmEMpcDJAYZHTqOveoX1C 3W4WBXV3JwQH
X5TnHc/oMmgCBI3mu7kCIKhmRjIwIJCheBxyMqe/f87flv8AbPM2RbPL27sf PnPTPp/WnCeM
zmEMpcDJAYZHTqOvejz4fO8nzY/N/ubhu9elADYUbzJZZBhnO0D0UZx/U/jj tRCjeZLLIMM5
2geijOP6n8cdqSW7iicJuDPuVSqsMrkgAkZ6cj86Y98i3Bh8qUkSLHkLxkjP 6DrQAySzke5L
iQCNnVyOeo29v+Af+PH05JLOR7kuJAI2dXI56jb2/wCAf+PH05tJLHIzKrAs hwy9x9RT6AKU
lnI9yXEgEbOrkc9Rt7f8A/8AHj6c2f332j/ln5Gz33bs/ljFSUUAUpLOR7ku JAI2dXI56jb2
/wCAf+PH05kMMjXayMsahCfnXO5lwcKRjpznr1HT0s0UAR/vvtH/ACz8jZ77 t2fyxiq/2ebH
k4j8rzfM37ju+/vxtx+HX39quUUAVYIpo7udzHFtlfO4Od2AoAGMe3r3qtKk nmLbCMMFnEoc
o3d9x5xgYBPOT0xjmtOigCGFG8yWWQYZztA9FGcf1P447VGiXP2ou6xFckbt 5JCdgBjjtnn+
mLVFAFP7PNjycR+V5vmb9x3ff3424/Dr7+1H2ebHk4j8rzfM37ju+/vxtx+H X39quUUAVnSc
3qSKkZjVSuS5BwSpJxj29afCjeZLLIMM52geijOP6n8cdqmooApyR3ZnMqiL KnagLnGw9c/L
1OB+Q98xy2k7SSyBIixlV0JkI+Ubcg8d9g/P89CigCmI7tZpSgiCySq+7ech RtBGNvcD170j
Wsjz+Y0durbw3nICHCg8DpzkDB5HXp63aKAKiwSKwjMcLxiUyB2JJBLE8Ljr zjOff2qN7act
Oyxw7pJkcEuQSq44Py/7P6n8b9FAFBbJ1m5QOnmmTJncdW3fcxjj9cVE2nzO jZjgDMJhkMTg
v0PT8Pp+ValFAGdLZTlyU2cSiQEysA3zZxtHA+vOcZ6ni/5abt2xc53Zx3xj P5cU6igBr/dN
R/5/z/n/AOvI/wB01H/n/P8An/64A1/un/P+f8/jHUj/AHT/AJ/z/n8Y6Qyt d9U/H+lFF31T
8f6UUCJ4/un/AHj/ADp1Nj+6f94/zp1Axi2TrNygdPNMmTO46tu+5jHH64qZ 0nN6kipGY1Ur
kuQcEqScY9vWrNMeWONlVmAZzhV7n6CmIprZOs3KB080yZM7jq277mMcfrio m0+Z0bMcAZhM
MhicF+h6fh9PyrQ8+H/nrH9/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oAqrZO s3KB080yZM7j
q277mMcfrih7actOyxw7pJkcEuQSq44Py/7P6n8bEt3FE4TcGfcqlVYZXJAB Iz05H51L5ieZ
5e9d+N23POPXFAEKxzR3EhTyykjhyxJyOAMY79Oue/ty2C2KXk9xJHGGc/Ky sSduAMHj/ZB/
H85vPh87yfNj83+5uG716UGUC4WEq2WQuG4xwQCP1FAFf7PNjycR+V5vmb9x 3ff3424/Dr7+
1Ogimju53McW2V87g53YCgAYx7evepvPh87yfNj83+5uG716ULPC67kljYcc hgepwP14oAz2
0+Z0bMcAZhMMhicF+h6fh9PyqwLeZppfMEaxPKsmVYlvl24GMcfdB/T3qx58 PneT5sfm/wBz
cN3r0oE8LOEEsZYkrtDDOR1H4UAVFsnWblA6eaZMmdx1bd9zGOP1xUqpci8e Xy4tjBU/1hyA
CecbffpUiXdu8zQrNGZFO0pu5z9KmoAzpbKcuSmziUSAmVgG+bONo4H15zjP U8ST205aTyvL
KvKkvzEg5Xb8vT/Z6/hjvVkTws4QSxliSu0MM5HUfhR58PneT5sfm/3Nw3ev SgCJ0nN6kipG
Y1UrkuQcEqScY9vWlWOaO4kKeWUkcOWJORwBjHfp1z39uZFnhddySxsOOQwP U4H68UefD53k
+bH5v9zcN3r0oAb9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd8Yz+XFR/a7bz PL+0Rb87du8Z
z6YqN75FuDD5UpIkWPIXjJGf0HWgCvcxSxRqpjV41uBIGVWZuX3HgDjAJ5z2 96lntpy0nleW
VeVJfmJByu35en+z1/DHepmufnwkMki7gpdAMA5x65474/oaf58PneT5sfm/ 3Nw3evSgClLZ
TlyU2cSiQEysA3zZxtHA+vOcZ6niw6Tm9SRUjMaqVyXIOCVJOMe3rUqzwuu5 JY2HHIYHqcD9
eKFnhddySxsOOQwPU4H68UAROk5vUkVIzGqlclyDglSTjHt60ipci8eXy4tj BU/1hyACecbf
fpU3nw+d5Pmx+b/c3Dd69KBPCzhBLGWJK7QwzkdR+FAETpOb1JFSMxqpXJcg 4JUk4x7etQrZ
Os3KB080yZM7jq277mMcfrirUM/mySp5br5TbSWxgnGeMH0I/Ol8+HzvJ82P zf7m4bvXpQBU
ltZynlosLKs3nKzE5J37sdOOpGefpzxd8tN27Yuc7s474xn8uKY9zAjMrzxq yDLAuAQPf8x+
dKJ4zOYQylwMkBhkdOo696AGeS0kwklYAIfkVMg9e579Bx0+vBqeoxPCzhBL GWJK7QwzkdR+
FQvfItwYfKlJEix5C8ZIz+g60AWqKYkscjMqsCyHDL3H1FPoAKKKKACiiigA ooooAKKKKACi
iigAooooAKKKKACiiigAooooAKKKKACiiigBr/dNR/5/z/n/AOvI/wB01H/n /P8An/64A1/u
n/P+f8/jHUj/AHT/AJ/z/n8Y6Qytd9U/H+lFF31T8f6UUCJ4/un/AHj/ADp1 Nj+6f94/zp1A
y5UHktHMZImBDn51fJPXse3U8dPpyanopiKf2eb7Z9oxH9/GzccbcY3dPv8A b6ce9N+yzNPk
pGq+ZuysrEYzn7hGMn19eetW3ljjZVZgGc4Ve5+gpPPh/wCesf39n3h970+v tQBUltZynlos
LKs3nKzE5J37sdOOpGefpzxZ8t/tnmbItnl7d2Pnznpn0/rStcwLL5TTxiTI GwuM5PTimy3c
UThNwZ9yqVVhlckAEjPTkfnQBXWydZuUDp5pkyZ3HVt33MY4/XFTOk5vUkVI zGqlclyDglST
jHt61P5ieZ5e9d+N23POPXFNM8IkMZlj3jGV3DIzjHH4j86AKi2TrNygdPNM mTO46tu+5jHH
64qJtPmdGzHAGYTDIYnBfoen4fT8q0PPh87yfNj83+5uG716ULPC67kljYcc hgepwP14oAqL
ZOs3KB080yZM7jq277mMcfrih7actOyxw7pJkcEuQSq44Py/7P6n8bYnhZwg ljLEldoYZyOo
/CgygXCwlWyyFw3GOCAR+ooAjWOaO4kKeWUkcOWJORwBjHfp1z39ubFR+fD5 3k+bH5v9zcN3
r0o8+H/nrH9/Z94fe9Pr7UAVHtpy07LHDukmRwS5BKrjg/L/ALP6n8Wy2U5c lNnEokBMrAN8
2cbRwPrznGep4me+KOU+yXDEBiMBfmCnBIGc9x9ala7tl3briIbTtbLjg+h/ I/lQBRbT5nRs
xwBmEwyGJwX6Hp+H0/KpVsnWblA6eaZMmdx1bd9zGOP1xVsTws4QSxliSu0M M5HUfhR58Pne
T5sfm/3Nw3evSgBv2aPzN+6XOc4858flnH4VJ5abt2xc53Zx3xjP5cUiSxyM yqwLIcMvcfUU
+gCukc0TFI/LMRcvuYncMnJGO/U85HXvjmP7PNjycR+V5vmb9x3ff3424/Dr 7+1XKKAMttPm
dGzHAGYTDIYnBfoen4fT8qG0+Z0bMcAZhMMhicF+h6fh9PyrUooAp/Z5seTi PyvN8zfuO77+
/G3H4dff2pj205adljh3STI4JcglVxwfl/2f1P436KAKYju1mlKCILJKr7t5 yFG0EY29wPXv
R9nmx5OI/K83zN+47vv78bcfh19/arlFAGZKknmLbCMMFnEoco3d9x5xgYBP OT0xjmrTpOb1
JFSMxqpXJcg4JUk4x7etWaKAKD205adljh3STI4JcglVxwfl/wBn9T+N3y03 bti5zuzjvjGf
y4p1FAEHktJMJJWACH5FTIPXue/QcdPrwanoooAKKKKACiiigAooooAKKKKA CiiigAooooAK
KKKACiiigAooooAKKKKACiiigBr/AHTUf+f8/wCf/ryP901H/n/P+f8A64A1 /un/AD/n/P4x
1I/3T/n/AD/n8Y6Qytd9U/H+lFF31T8f6UUCJ4/un/eP86dTY/un/eP86dQM uUUUUxEHktHM
ZImBDn51fJPXse3U8dPpyai+zzfbPtGI/v42bjjbjG7p9/t9OPerlMeWONlV mAZzhV7n6CgC
p9lmafJSNV8zdlZWIxnP3CMZPr689aSW1nKeWiwsqzecrMTknfux046kZ5+n PFvz4f8AnrH9
/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oATy3+2eZsi2eXt3Y+fOemfT+tRLB IrCMxwvGJTIH
YkkEsTwuOvOM59/apJbuKJwm4M+5VKqwyuSACRnpyPzqXzE8zy9678btuece uKAKv2ebHk4j
8rzfM37ju+/vxtx+HX39qrtp8zo2Y4AzCYZDE4L9D0/D6flV9rmBZfKaeMSZ A2FxnJ6cUvnw
+d5Pmx+b/c3Dd69KAKSRvNd3IEQVDMjGRgQSFC8DjkZU9+/52HSc3qSKkZjV SuS5BwSpJxj2
9ake5gRmV541ZBlgXAIHv+Y/Ol8+H/nrH9/Z94fe9Pr7UAVFsnWblA6eaZMm dx1bd9zGOP1x
T/s832z7RiP7+Nm4424xu6ff7fTj3qx58PneT5sfm/3Nw3evSgTws4QSxliS u0MM5HUfhQAx
45DexSAJ5aoykljnJIPTH+z696haPffmMB/LJEsmUOCy4xz7/KeP7nuasmeE SGMyx7xjK7hk
Zxjj8R+dHnw+d5Pmx+b/AHNw3evSgCkkbzXdyBEFQzIxkYEEhQvA45GVPfv+ blsnWblA6eaZ
Mmdx1bd9zGOP1xVxJY5GZVYFkOGXuPqKfQBB5LSTCSVgAh+RUyD17nv0HHT6 8Gp6KKACiiig
AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKK
KKACiiigAooooAKKKKAGv901H/n/AD/n/wCvI/3TUf8An/P+f/rgDX+6f8/5 /wA/jHUj/dP+
f8/5/GOkMrXfVPx/pRRd9U/H+lFAieP7p/3j/OnVSaJmlYlpfmJ2ojkZ68+3 9T265WFf3yEN
Kpxu2PIWyOeR/h9D65NCuV2ubFFFFMkKg8lo5jJEwIc/Or5J69j26njp9OTU 9FAFP7PN9s+0
Yj+/jZuONuMbun3+30496b9lmafJSNV8zdlZWIxnP3CMZPr689a59Li9dWZZ 5yqjLHecD8aX
zr//AJ63P3d/3m+76/T3rTkJ5jeltZynlosLKs3nKzE5J37sdOOpGefpzxZ8 t/tnmbItnl7d
2Pnznpn0/rXMiXUWj8xXujHjO4FsfnTo3v5EL/aJ1TaSGZmw2ASQD68H8qOT zDmNz7LM0+Sk
ar5m7KysRjOfuEYyfX1560i2TrNygdPNMmTO46tu+5jHH64rA+03vl+Z59xs zjdvbGfTNL51
/wCV5vm3Pl/39zY/OjkDmNu5ilijVTGrxrcCQMqszcvuPAHGATznt71LPbTl pPK8sq8qS/MS
Dldvy9P9nr+GO9c+Li7MBlF3LgMFK+Y2eQSD+ho86/8AK83zbny/7+5sfnRy BzG8tk6zcoHT
zTJkzuOrbvuYxx+uKHtpy07LHDukmRwS5BKrjg/L/s/qfxwWmv0OGluVPPBZ h0GT+nNHnX/l
eb5tz5f9/c2Pzo5A5jolgkVhGY4XjEpkDsSSCWJ4XHXnGc+/tUa2TrNygdPN MmTO46tu+5jH
H64rBM1+E3mW5CgA5LNjB6GnM+opEJWkuRGRkNubGKOTzDmOk8lpJhJKwAQ/ IqZB69z36Djp
9eDU9cf9tuv+fmb/AL+Gnma/CbzLchQAclmxg9DR7MOY62iuS86/8rzfNufL /v7mx+dDTX6H
DS3Knngsw6DJ/TmjkDmOtorkvOv/ACvN8258v+/ubH507fqXl+Zuu9mM7stj Hrmjk8w5jq6K
5dTetAJftrAFGkwZWzgHH6npUXnX/wDz1ufu7/vN931+nvRyeYcx1tFcmJdR aPzFe6MeM7gW
x+dJ51/5Xm+bc+X/AH9zY/Ojk8w5jraK5PzdR2lt91gLuJy3T1+lIZr8JvMt yFAByWbGD0NH
J5hzHW0VyXnX/leb5tz5f9/c2Pzoaa/Q4aW5U88FmHQZP6c0cgcx1tFcl51/ 5Xm+bc+X/f3N
j86lU3rQCX7awBRpMGVs4Bx+p6UcnmHMdRRXH/bbr/n5m/7+GpPN1HaW33WA u4nLdPX6UezD
mOsorkvOv/K83zbny/7+5sfnUqjUWgMxnuFQDIJL/MMZ7fzNHJ5hzHUUVym/ UvL8zdd7MZ3Z
bGPXNPU3rQCX7awBRpMGVs4Bx+p6UuTzC51FFcl51/8A89bn7u/7zfd9fp70 ol1Fo/MV7ox4
zuBbH50+TzDmOsorkvOv/K83zbny/wC/ubH50vm6jtLb7rAXcTlunr9KOTzD mOsorkjNfhN5
luQoAOSzYweho86/8rzfNufL/v7mx+dHIHMdbRXJNNfocNLcqeeCzDoMn9Oa POv/ACvN8258
v+/ubH50cgcx1tFcvuu/LVhfMxZC4QO+cDOe2OMHv2qLzr/yvN8258v+/ubH 50cgcx1tFcuo
1FoDMZ7hUAyCS/zDGe38zQpvWgEv21gCjSYMrZwDj9T0pcnmFzqKK5JLm6aK SQ3UwCYA+c8k
9uvoCfwpHuL1FVmnnCsMqd5wfxp8gcx11FFFZlBRRRQA1/umo/8AP+f8/wD1 5H+6aj/z/n/P
/wBcAa/3T/n/AD/n8Y6kf7p/z/n/AD+NczxgkZPHH3TSGk3sRXfVPx/pRRdE MIyOhBI/SigB
u7MxdFLyR5AQd/mzn9enXp60Iha8Ezh03ZIVhyT3/D3+lOMcJ5aBJJGLYG0Z PJ70sAg3jFuk
UmNy8DkeoNLS5peXKalFFFUZBRRRQBx+/wAyIJIhyo+QpgfmO/Qc9frxUvmx /ZfI+f7md20Z
3Zzt6/d/rzXQyQWSMqvDAGc/KuwZb8KTy9P/ALlt9/Z0X73p9fatOdBZGB5y CHALsxj24Mag
5xj7+c49vTApYpog+9jMC8XlFVAwBt25689jjj/HdZNOWXymW1EhI+Qhc57c U2UWEb7PIgdy
yhlVVyuSACR6cj86OdBZHOZH2Ty8y79+7bn5MY649asG5DRDBKP5ezAhU/w4 +9nPP9a6D7PZ
eZ5fkwb8btu0Zx64pvl6f53k7Lbzf7mF3evSjnQWRzieV9keMtJ5jENgIMcA 8Zz71KbkNEME
o/l7MCFT/Dj72c8/1reMNr9oEJtI8spcNsXBwQD+PIo8vT/O8nZbeb/cwu71 6Uc6CyMVbuNX
Xa0xUGIgFQMhOo6/j9fzqM3IaIYJR/L2YEKn+HH3s55/rW8senyLuVLZgccg Kc5OB+uRR5en
+d5Oy283+5hd3r0o5kFkYKTRbYFZpsJE6kBB1bPI5/2v0HrUJMckEYYPvRCo AAweSc57demP
510gj09n2BLYsWI24XJI6j6imqNNkmaFVtjIGwU2rnP070c4WRy21vSrqTRb YFZpsJE6kBB1
bPI5/wBr9B610X2O1/59of8AvgVGI9PZ9gS2LFiNuFySOo+oocwtEw4rmIKA 4fmMoQI1JHy4
zuPJ+nHX83Ldxq67WmKgxEAqBkJ1HX8fr+dbXl6f53k7Lbzf7mF3evShY9Pk XcqWzA45AU5y
cD9cijmQWRgm5DRDBKP5ezAhU/w4+9nPP9ar+dL5ezZHjGP9UufzxnNdN5en +d5Oy283+5hd
3r0puNM8zy8Wm/djb8uc+mPWjnQWRzGZMYy2MYxntnOPz5qzDLEFj8wSArG0 Y2gHg7uev+10
/XtW07WS3Bh+w7j5ix5EQIJIz+g61MI9PZ9gS2LFiNuFySOo+oo5wsjA85BD gF2Yx7cGNQc4
x9/Oce3pgUpuQ0QwSj+XswIVP8OPvZzz/Wt7y9P87ydlt5v9zC7vXpSMmnLL 5TLaiQkfIQuc
9uKOdBZHPStHJbQory7o0wFKjbknJ5z7+nYVIk0W2BWabCROpAQdWzyOf9r9 B61usmnLL5TL
aiQkfIQuc9uKRhpi7twtBtbDZ28Hng+/Bo5wsjFiuYgoDh+YyhAjUkfLjO48 n6cdfzct3Grr
taYqDEQCoGQnUdfx+v51teXp/neTstvN/uYXd69KQpp27aVtdxbbjC5Len15 /WjmQWRhG5DR
DBKP5ezAhU/w4+9nPP8AWqmZMYy2MYxntnOPz5rppRYRvs8iB3LKGVVXK5IA JHpyPzpjtZLc
GH7DuPmLHkRAgkjP6DrRzoLI5ra3pVmVo5LaFFeXdGmApUbck5POff07Cum+ x2v/AD7Q/wDf
AqIpp27aVtdxbbjC5Len15/WnzhaJhG5DRDBKP5ezAhU/wAOPvZzz/Woz5LW iR7pd6ln/wBW
MEkDjr7frXReXp/neTstvN/uYXd69KheTThcCAQwO5bDABODnHOTyevAyaXO gsjn/Ol8vZsj
xjH+qXP54zmmZkxjLYxjGe2c4/PmunxpnmeXi037sbflzn0x61G7WS3Bh+w7 j5ix5EQIJIz+
g60+dBZGLDLEFj8wSArG0Y2gHg7uev8AtdP17UvnIIcAuzGPbgxqDnGPv5zj 29MCt8R6ez7A
lsWLEbcLkkdR9RR5en+d5Oy283+5hd3r0pc6CyME3IaIYJR/L2YEKn+HH3s5 5/rUcrRyW0KK
8u6NMBSo25Jyec+/p2FdCyacsvlMtqJCR8hC5z24oZNOWXymW1EhI+Qhc57c Uc6CyMJJotsC
s02EidSAg6tnkc/7X6D1p0VzEFAcPzGUIEakj5cZ3Hk/Tjr+e0w0xd24Wg2t hs7eDzwffg07
y9P87ydlt5v9zC7vXpRzoLIxVu41ddrTFQYiAVAyE6jr+P1/OozchohglH8v ZgQqf4cfeznn
+tbpTTt20ra7i23GFyW9Prz+tNlFhG+zyIHcsoZVVcrkgAkenI/OjmQWRh+e ggiiAYjyyrNs
AYZJPBznvjHGR9aU3IaIYJR/L2YEKn+HH3s55/rWz/onmujWIVVkCM5RMZOM d885HbvUvl6f
53k7Lbzf7mF3evSjnQWRzp8lrRI90u9Sz/6sYJIHHX2/WoMyYxlsYxjPbOcf nzXRvJpwuBAI
YHcthgAnBzjnJ5PXgZNDtZLcGH7DuPmLHkRAgkjP6DrRzhaJz8pzHFHHyqjc T6scZ/oPw96U
Psi2RISXHzF8H8h269ev0zXSvBarNHGLWFi+SfkHAHfp6kD8aVILKRnVYYCy n5l2DI+oo5ws
i1RRRWYBRRRQA1/umo/8/wCf8/8A15H+6aj/AM/5/wA//XAGv90/5/z/AJ/G qbdSSd7DJz2/
wq0/3T/n/P8An8apuFBI2McHHb/GguPN0I7lQqxqOgBH8qKLlgyxsOhBP8qK RL3HMrBhMil2
TICj13Eg02OJ5Lo3Dq6Drhxzk/0qxH90/wC8f506lYvndrFyiiiqMwoopjyx xsqswDOcKvc/
QUAVztimaSOVcFgJFcknqeh7Ac8dOD05NREEXhuC0XEm0puONuMbun3+CM9M AjPGatMypNDG
qAkg9ONqjr+u0Y9/agS24xiSIYbyxgjg/wB36+1BXulMofPJYxIqy5JWViOu fuEYzwcnscnq
KSZH2GNTAVjn80M7HOd+7HTjuM89D74uGe2SVYjLCsg+UJuAIz2x+VNkuYIX VBtZwVTahGUB
IAyM9OR+lAe6IXUXhkPk7Amwtj5856Z/u8H8QfSqwhVJm3bXQTbyTcOMZbd9 zGOOfyPTmr4M
QkEYKBwuQoxkL9PSmGe2SVYjLCsg+UJuAIz2x+VAe6QySP8AbVkHk+XGChJc g8kEnGO209/X
pg1CIVSZt210E28k3DjGW3fcxjjn8j05q6JbcTCESRCUDAQEbgOvSkae2iYq 0sKNGvILAFRx
+Q6fpQHumc9sSj7hbqx84E7icF+h+72wQfYH0IqUQqkzbtroJt5JuHGMtu+5 jHHP5HpzV0S2
4xiSIYbyxgjg/wB36+1AltxMIRJEJQMBARuA69KA90pSo+64YCDc06NkuQcL jg/L/sn2GT6V
OHMVxKVeLY8gZmYnK8AEAY5+6ec8c+lTLLb71RJItwyiqCM8dQP04o823WTy xJEHQAbcjKg4
xx+X6UB7o4zxDOXHBwf8/gfyPpVCVH3XDAQbmnRslyDhccH5f9k+wyfSrolt xMIRJEJQMBAR
uA69KWN4WYrGV3R/KVxgr+HYcfjQHumfNC29irx/LMHyZWAPzZxtHA6HnnoS ec4Y9sSj7hbq
x84E7icF+h+72wQfYH0IrWCqMYUDAwMDoKAqjGFAwMDA6CgPdM4QqkzbtroJ t5JuHGMtu+5j
HHP5HpzVkpbiQuZZMhskec+M/TOMcH24PpVgKoxhQMDAwOgoCqMYUDAwMDoK A90jL24YsdmQ
2Scd8Yz+QIz7H0qjkPdXIwiIZkYyNkMduOAMcjKt345P10gqjGFAwMDA6CgK oxhQMDAwOgoD
3TMmhbexV4/lmD5MrAH5s42jgdDzz0JPOcPKHzyWMSKsuSVlYjrn7hGM8HJ7 HJ6itAKoxhQM
DAwOgoCqMYUDAwMDoKA90zyh88ljEirLklZWI65+4RjPByexyeopZYs3Lv56 iMyKzDJ6jb27
/wCr6+7enN8KoxhQMDAwOgoCqMYUDAwMDoKA90okEAwlovKE3mF9x3ff3424 9iM57E9sU6Fj
Fd3DsIQsknLBzuAC4HG3noe/HPoauBVGMKBgYGB0FAVRjCgYGBgdBQHumdMj 7DGpgKxz+aGd
jnO/djpx3Geeh98XS9uGLHZkNknHfGM/kCM+x9KkCqMYUDAwMDoKAqjGFAwM DA6CgPdGmeIZ
y44OD/n8D+R9KqwsYru4dhCFkk5YOdwAXA4289D3459DVwKoxhQMDAwOgoCq MYUDAwMDoKA9
0zhCqTNu2ugm3km4cYy277mMcc/kenNSiSRLySUiHYdqH94cgAtzjb7n8jzV wKoxhQMDAwOg
oCqMYUDAwMDoKA90rlLcSFzLJkNkjznxn6Zxjg+3B9KkL24YsdmQ2Scd8Yz+ QIz7H0qQKoxh
QMDAwOgoCqMYUDAwMDoKA90zch7q5GERDMjGRshjtxwBjkZVu/HJ+qTQtvYq 8fyzB8mVgD82
cbRwOh556EnnONMKoxhQMDAwOgoCqMYUDAwMDoKA90zyh88ljEirLklZWI65 +4RjPByexyeo
oKHzyWMSKsuSVlYjrn7hGM8HJ7HJ6itAKoxhQMDAwOgoCqMYUDAwMDoKA90o SxZuXfz1EZkV
mGT1G3t3/wBX1929OVIIBhLReUJvML7ju+/vxtx7EZz2J7Yq8FUYwoGBgYHQ UBVGMKBgYGB0
FAe6U4WMV3cOwhCyScsHO4ALgcbeeh78c+hqKZH2GNTAVjn80M7HOd+7HTju M89D740QqjGF
AwMDA6CgKoxhQMDAwOgoD3TPMX+kTzM6AiUMq+YxVsDGGGMfw5zzgj/ZpBCq TNu2ugm3km4c
Yy277mMcc/kenNaIVRjCgYGBgdBQFUYwoGBgYHQUB7pTEkiXkkpEOw7UP7w5 ABbnG33P5Hmr
Be3DFjsyGyTjvjGfyBGfY+lSBVGMKBgYGB0FAVRjCgYGBgdBQHuleJ0WSaWV gGLbcZ6KM4/9
mPtkjtSHa83mTSqBG2FVCQRz3PccdOnBznGRZCqMYUDAwMDoKAqjGFAwMDA6 CgPdHUUUUEhR
RRQA1/umo/8AP+f8/wD15H+6aj/z/n/P/wBcAa/3T/n/AD/n8a5gjJJweefv GrD/AHT/AJ/z
/n8Y6Q02titdAKIwOgBA/Sii76p+P9KKAJ4/un/eP86dTY/un/eP86dQBcoo opiCoPJaOYyR
MCHPzq+SevY9up46fTk1I8scbKrMAznCr3P0FI8u2aOMDJfJPPQDv+ZA/GgB sKN5kssgwzna
B6KM4/qfxx2qH7PN9s+0Yj+/jZuONuMbun3+30496sefD/z1j+/s+8Pven19 qRrmBZfKaeMS
ZA2FxnJ6cUAVvsszT5KRqvmbsrKxGM5+4RjJ9fXnrSS2s5Ty0WFlWbzlZick 792OnHUjPP05
4sS3cUThNwZ9yqVVhlckAEjPTkfnUvmJ5nl71343bc849cUAR+W/2zzNkWzy 9u7Hz5z0z6f1
qv8AZZmnyUjVfM3ZWViMZz9wjGT6+vPWrRnhEhjMse8Yyu4ZGcY4/EfnR58P neT5sfm/3Nw3
evSgCotk6zcoHTzTJkzuOrbvuYxx+uKZcxSxRqpjV41uBIGVWZuX3HgDjAJ5 z296vLPC67kl
jYcchgepwP14oE8LOEEsZYkrtDDOR1H4UAVp7actJ5XllXlSX5iQcrt+Xp/s 9fwx3pq2TrNy
gdPNMmTO46tu+5jHH64q2ZQLhYSrZZC4bjHBAI/UUefD53k+bH5v9zcN3r0o AqPbTlp2WOHd
JMjglyCVXHB+X/Z/U/jIsEisIzHC8YlMgdiSQSxPC4684zn39qn8+H/nrH9/ Z94fe9Pr7VA9
8Ucp9kuGIDEYC/MFOCQM57j60ARrZOs3KB080yZM7jq277mMcfrirHktJMJJ WACH5FTIPXue
/QcdPrwaVru2XduuIhtO1suOD6H8j+VOE8LOEEsZYkrtDDOR1H4UASUVH58P neT5sfm/3Nw3
evSlSWORmVWBZDhl7j6igB9FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUANf7pqP/P8An/P/ ANeR/umo/wDP
+f8AP/1wBr/dP+f8/wCfxjqR/un/AD/n/P4x0hla76p+P9KKLvqn4/0ooETx /dP+8f506mx/
dP8AvH+dOoGXKKKY8scbKrMAznCr3P0FMRH5LRzGSJgQ5+dXyT17Ht1PHT6c mlhRvMllkGGc
7QPRRnH9T+OO1OeXbNHGBkvknnoB3/MgfjR58P8Az1j+/s+8Pven19qAK/2e b7Z9oxH9/Gzc
cbcY3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561Za5gWXymnjEmQNhc ZyenFNlu4onC
bgz7lUqrDK5IAJGenI/OgCvLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/bP M2RbPL27sfPn
PTPp/WpPMTzPL3rvxu255x64pvnw+d5Pmx+b/c3Dd69KAIFgkVhGY4XjEpkD sSSCWJ4XHXnG
c+/tSfZ5seTiPyvN8zfuO77+/G3H4dff2qwZQLhYSrZZC4bjHBAI/UUefD53 k+bH5v8Ac3Dd
69KAM9tPmdGzHAGYTDIYnBfoen4fT8qekbzXdyBEFQzIxkYEEhQvA45GVPfv +d1Z4XXcksbD
jkMD1OB+vFHnw+d5Pmx+b/c3Dd69KAInSc3qSKkZjVSuS5BwSpJxj29ahWyd ZuUDp5pkyZ3H
Vt33MY4/XFWxPCzhBLGWJK7QwzkdR+FNS7t3maFZozIp2lN3OfpQBD9nm+2f aMR/fxs3HG3G
N3T7/b6ce9SvHIb2KQBPLVGUksc5JB6Y/wBn171IkscjMqsCyHDL3H1FPoAp NHvvzGA/lkiW
TKHBZcY59/lPH9z3NRpG813cgRBUMyMZGBBIULwOORlT37/no0UAUFsnWblA 6eaZMmdx1bd9
zGOP1xVjyWkmEkrABD8ipkHr3PfoOOn14NT0UAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UANf7pqP/P8A
n/P/ANeR/umo/wDP+f8AP/1wBr/dP+f8/wCfxjqR/un/AD/n/P4x0hla76p+ P9KKLvqn4/0o
oETx/dP+8f506mx/dP8AvH+dOoGXKg8lo5jJEwIc/Or5J69j26njp9OTU9Me WONlVmAZzhV7
n6CmIZCjeZLLIMM52geijOP6n8cdqh+zzfbPtGI/v42bjjbjG7p9/t9OPerH nw/89Y/v7PvD
73p9faka5gWXymnjEmQNhcZyenFAFb7LM0+Skar5m7KysRjOfuEYyfX1560k trOU8tFhZVm8
5WYnJO/djpx1Izz9OeLEt3FE4TcGfcqlVYZXJABIz05H51L5ieZ5e9d+N23P OPXFAEflv9s8
zZFs8vbux8+c9M+n9arLZOs3KB080yZM7jq277mMcfrirfnw+d5Pmx+b/c3D d69KDKBcLCVb
LIXDcY4IBH6igCJ0nN6kipGY1UrkuQcEqScY9vWoVsnWblA6eaZMmdx1bd9z GOP1xVvz4fO8
nzY/N/ubhu9elCzwuu5JY2HHIYHqcD9eKAM9tPmdGzHAGYTDIYnBfoen4fT8 qlWydZuUDp5p
kyZ3HVt33MY4/XFW/Ph87yfNj83+5uG716UCeFnCCWMsSV2hhnI6j8KAKj20 5adljh3STI4J
cglVxwfl/wBn9T+M6xzR3EhTyykjhyxJyOAMY79Oue/ty5Lu3eZoVmjMinaU 3c5+lTUAQeS0
kwklYAIfkVMg9e579Bx0+vBqeoxPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3 Dd69KAJKKjWe
F13JLGw45DA9TgfrxR58PneT5sfm/wBzcN3r0oAkoqH7XbeZ5f2iLfnbt3jO fTFRvfItwYfK
lJEix5C8ZIz+g60AWqKjE8LOEEsZYkrtDDOR1H4UefD53k+bH5v9zcN3r0oA koqJrmBZfKae
MSZA2FxnJ6cUNcwLL5TTxiTIGwuM5PTigCWioWu7Zd264iG07Wy44PofyP5U 7z4fO8nzY/N/
ubhu9elAElFRfaYAwXz49xbYBvGS3p9eRTZbuKJwm4M+5VKqwyuSACRnpyPz oAnoqsLweayN
DIqo4jLnbjJxjvnnI7d6l8+HzvJ82Pzf7m4bvXpQBJRVV9Qt1uFgV1dycEB1 +U5x3P6DJoe+
Rbgw+VKSJFjyF4yRn9B1oAtUUVCl3bvM0KzRmRTtKbuc/SgCaioWu7Zd264i G07Wy44PofyP
5U4Tws4QSxliSu0MM5HUfhQBJRUfnw+d5Pmx+b/c3Dd69Kb9rtvM8v7RFvzt 27xnPpigCaiq
r3yLcGHypSRIseQvGSM/oOtTefD/AM9Y/v7PvD73p9fagCSiomuYFl8pp4xJ kDYXGcnpxTZb
uKJwm4M+5VKqwyuSACRnpyPzoAnopvmJ5nl71343bc849cUxrmBZfKaeMSZA 2FxnJ6cUAS0V
Cl3bvM0KzRmRTtKbuc/Sl+0wBgvnx7i2wDeMlvT68igCWioxPGZzCGUuBkgM Mjp1HXvQJ4Wc
IJYyxJXaGGcjqPwoAkoqJ7mBGZXnjVkGWBcAge/5j86ie+Rbgw+VKSJFjyF4 yRn9B1oAtUVG
8u2aOMDJfJPPQDv+ZA/GlSWORmVWBZDhl7j6igB9FFFABRRRQA1/umo/8/5/ z/8AXkf7pqP/
AD/n/P8A9cAa/wB0/wCf8/5/GOpH+6f8/wCf8/jHSGVrvqn4/wBKKLvqn4/0 ooETx/dP+8f5
06mx/dP+8f506gZcqDyWjmMkTAhz86vknr2PbqeOn05NT0x5Y42VWYBnOFXu foKYit9nm+2f
aMR/fxs3HG3GN3T7/b6ce9N+yzNPkpGq+ZuysrEYzn7hGMn19eetWvPh/wCe sf39n3h970+v
tSNcwLL5TTxiTIGwuM5PTigCrLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/ AGzzNkWzy9u7
Hz5z0z6f1pJbuKJwm4M+5VKqwyuSACRnpyPzqXzE8zy9678btueceuKAKS2T rNygdPNMmTO4
6tu+5jHH64qZ0nN6kipGY1UrkuQcEqScY9vWpfPh87yfNj83+5uG716UGUC4 WEq2WQuG4xwQ
CP1FAFRbJ1m5QOnmmTJncdW3fcxjj9cVE2nzOjZjgDMJhkMTgv0PT8Pp+VaH nw+d5Pmx+b/c
3Dd69KFnhddySxsOOQwPU4H68UAVFsnWblA6eaZMmdx1bd9zGOP1xQ9tOWnZ Y4d0kyOCXIJV
ccH5f9n9T+Nvz4fO8nzY/N/ubhu9elAnhZwgljLEldoYZyOo/CgCNY5o7iQp 5ZSRw5Yk5HAG
Md+nXPf25sVCl3bvM0KzRmRTtKbuc/SpqAKD205adljh3STI4JcglVxwfl/2 f1P4tlspy5Kb
OJRICZWAb5s42jgfXnOM9TxdE8LOEEsZYkrtDDOR1H4UefD53k+bH5v9zcN3 r0oAz20+Z0bM
cAZhMMhicF+h6fh9PyqVbJ1m5QOnmmTJncdW3fcxjj9cVbWeF13JLGw45DA9 TgfrxR58PneT
5sfm/wBzcN3r0oAb9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd8Yz+XFR/a7b zPL+0Rb87du8
Zz6YqN75FuDD5UpIkWPIXjJGf0HWgCBI3mu7kCIKhmRjIwIJCheBxyMqe/f8 yWynLkps4lEg
JlYBvmzjaOB9ec4z1PF3z4f+esf39n3h970+vtSNcwLL5TTxiTIGwuM5PTig Ct9lmafJSNV8
zdlZWIxnP3CMZPr689aPsszT5KRqvmbsrKxGM5+4RjJ9fXnrVrz4fO8nzY/N /ubhu9elJ9pg
DBfPj3FtgG8ZLen15FAFeSzke5LiQCNnVyOeo29v+Af+PH05X7PNjycR+V5v mb9x3ff3424/
Dr7+1WBPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3Dd69KAIYIpo7udzHFtlf O4Od2AoAGMe3
r3qKW1nKeWiwsqzecrMTknfux046kZ5+nPFtZ4XXcksbDjkMD1OB+vFHnw+d 5Pmx+b/c3Dd6
9KAKv2SU3E0x25MgdF8xirYAGGGMDpnPODj05RbJ1m5QOnmmTJncdW3fcxjj 9cVMLweayNDI
qo4jLnbjJxjvnnI7d6l8+HzvJ82Pzf7m4bvXpQBCqXIvHl8uLYwVP9YcgAnn G336VY8tN27Y
uc7s474xn8uKrvqFutwsCuruTggOvynOO5/QZND3yLcGHypSRIseQvGSM/oO tAFqq6xzR3Eh
TyykjhyxJyOAMY79Oue/tzYqFLu3eZoVmjMinaU3c5+lAEDR778xgP5ZIlky hwWXGOff5Tx/
c9zUaRvNd3IEQVDMjGRgQSFC8DjkZU9+/wCdtru2XduuIhtO1suOD6H8j+VO E8LOEEsZYkrt
DDOR1H4UAVFsnWblA6eaZMmdx1bd9zGOP1xVn7NH5m/dLnOcec+Pyzj8Kd58 PneT5sfm/wBz
cN3r0pv2u28zy/tEW/O3bvGc+mKAJPLTdu2LnO7OO+MZ/Liqv2eb7Z9oxH9/ GzccbcY3dPv9
vpx70575FuDD5UpIkWPIXjJGf0HWpvPh/wCesf39n3h970+vtQBV+yzNPkpG q+ZuysrEYzn7
hGMn19eetJLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tni01zAsvlNPGJMgbC4zk9 OKbLdxROE3Bn
3KpVWGVyQASM9OR+dAC+W/2zzNkWzy9u7Hz5z0z6f1qv9lmafJSNV8zdlZWI xnP3CMZPr689
aueYnmeXvXfjdtzzj1xTGuYFl8pp4xJkDYXGcnpxQAxY5o7iQp5ZSRw5Yk5H AGMd+nXPf25b
BFNHdzuY4tsr53BzuwFAAxj29e9SJd27zNCs0ZkU7Sm7nP0pftMAYL58e4ts A3jJb0+vIoAj
dJzepIqRmNVK5LkHBKknGPb1qF7actOyxw7pJkcEuQSq44Py/wCz+p/G2J4z OYQylwMkBhkd
Oo696BPCzhBLGWJK7QwzkdR+FAFCVJPMW2EYYLOJQ5Ru77jzjAwCecnpjHNa Plpu3bFzndnH
fGM/lxTHuYEZleeNWQZYFwCB7/mPzqJ75FuDD5UpIkWPIXjJGf0HWgCSFG8y WWQYZztA9FGc
f1P447UnktJMJJWACH5FTIPXue/QcdPrwae8u2aOMDJfJPPQDv8AmQPxpUlj kZlVgWQ4Ze4+
ooAfRRRQAUUUUANf7pqP/P8An/P/ANeR/umo/wDP+f8AP/1wBr/dP+f8/wCf xjqR/un/AD/n
/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/dP8AvH+dOoGXKg8lo5jJ EwIc/Or5J69j
26njp9OTUjyxxsqswDOcKvc/QUjy7Zo4wMl8k89AO/5kD8aYiv8AZ5vtn2jE f38bNxxtxjd0
+/2+nHvTfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVrz4f8AnrH9/Z94fe9Pr7Uj XMCy+U08YkyB
sLjOT04oAqy2s5Ty0WFlWbzlZick792OnHUjPP054s+W/wBs8zZFs8vbux8+ c9M+n9aSW7ii
cJuDPuVSqsMrkgAkZ6cj86l8xPM8veu/G7bnnHrigCktk6zcoHTzTJkzuOrb vuYxx+uKmdJz
epIqRmNVK5LkHBKknGPb1qRrmBZfKaeMSZA2FxnJ6cUpnhEhjMse8Yyu4ZGc Y4/EfnQBUWyd
ZuUDp5pkyZ3HVt33MY4/XFRNp8zo2Y4AzCYZDE4L9D0/D6flV6O5jeVoydjq 5QKxGWwAcjnn
ginefD53k+bH5v8Ac3Dd69KAKi2TrNygdPNMmTO46tu+5jHH64oe2nLTsscO 6SZHBLkEquOD
8v8As/qfxtrPC67kljYcchgepwP14o8+HzvJ82Pzf7m4bvXpQBGsc0dxIU8s pI4csScjgDGO
/Trnv7c2KYkscjMqsCyHDL3H1FPoAoPbTlp2WOHdJMjglyCVXHB+X/Z/U/i2 WynLkps4lEgJ
lYBvmzjaOB9ec4z1PGjRQBltp8zo2Y4AzCYZDE4L9D0/D6flUq2TrNygdPNM mTO46tu+5jHH
64q/RQBD9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd8Yz+XFOooApT205aTyv LKvKkvzEg5Xb
8vT/AGev4Y70n2WZp8lI1XzN2VlYjGc/cIxk+vrz1q9RQBQWydZuUDp5pkyZ 3HVt33MY4/XF
SwRTR3c7mOLbK+dwc7sBQAMY9vXvVqigCg9tOWnZY4d0kyOCXIJVccH5f9n9 T+LZbKcuSmzi
USAmVgG+bONo4H15zjPU8aNFAGW2nzOjZjgDMJhkMTgv0PT8Pp+VSrZOs3KB 080yZM7jq277
mMcfrir9FAFH7JKbiaY7cmQOi+YxVsADDDGB0znnBx6cotk6zcoHTzTJkzuO rbvuYxx+uKv0
UAVVS5F48vlxbGCp/rDkAE842+/SrHlpu3bFzndnHfGM/lxTqKACq6xzR3Eh TyykjhyxJyOA
MY79Oue/tzYooApNHvvzGA/lkiWTKHBZcY59/lPH9z3NRpG813cgRBUMyMZG BBIULwOORlT3
7/no0UAUFsnWblA6eaZMmdx1bd9zGOP1xVn7NH5m/dLnOcec+Pyzj8KmooAb 5abt2xc53Zx3
xjP5cVV+zzfbPtGI/v42bjjbjG7p9/t9OPerlFAFH7LM0+Skar5m7KysRjOf uEYyfX1560kt
rOU8tFhZVm85WYnJO/djpx1Izz9OeL9FAEPlv9s8zZFs8vbux8+c9M+n9ar/ AGWZp8lI1XzN
2VlYjGc/cIxk+vrz1q9RQBXWOaO4kKeWUkcOWJORwBjHfp1z39uWwRTR3c7m OLbK+dwc7sBQ
AMY9vXvVqigCs6Tm9SRUjMaqVyXIOCVJOMe3rUL205adljh3STI4JcglVxwf l/2f1P436KAM
yVJPMW2EYYLOJQ5Ru77jzjAwCecnpjHNaPlpu3bFzndnHfGM/lxTqKAIYUbz JZZBhnO0D0UZ
x/U/jjtSeS0kwklYAIfkVMg9e579Bx0+vBqeigAooooAKKKKAGv901H/AJ/z /n/68j/dNR/5
/wA/5/8ArgDX+6f8/wCf8/jHUj/dP+f8/wCfxjpDK131T8f6UUXfVPx/pRQI nj+6f94/zp1N
j+6f94/zp1AyXyWjmMkTAhz86vknr2PbqeOn05NLCjeZLLIMM52geijOP6n8 cdqmopiKf2eb
7Z9oxH9/GzccbcY3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561eooAo S2s5Ty0WFlWb
zlZick792OnHUjPP054s+W/2zzNkWzy9u7Hz5z0z6f1qaigCj9lmafJSNV8z dlZWIxnP3CMZ
Pr689aesEisIzHC8YlMgdiSQSxPC4684zn39qt0UAUHtpy07LHDukmRwS5BK rjg/L/s/qfxF
snWblA6eaZMmdx1bd9zGOP1xV+igDLbT5nRsxwBmEwyGJwX6Hp+H0/Kny2U5 clNnEokBMrAN
82cbRwPrznGep40aKAIPJaSYSSsAEPyKmQevc9+g46fXg1PRRQAUUUUAFFFF ABRRRQAUUUUA
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRR
RQAUUUUAFFFFABRRRQA1/umo/wDP+f8AP/15H+6aj/z/AJ/z/wDXAGv90/5/ z/n8Y6kf7p/z
/n/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/dP+8f506gZcooopiCi iigAooooAKKK
KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigA
ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAGv 93HqRVUzIDhi
oPu3/wBerUhAXJOACMk/WqDGBnVmKHb70AE0hM8ABwrE5wevBqWq8zh7qAhg xy2cH2NWKQyt
d9U/H+lFF31T8f6UUCJ4/un/AHj/ADp1Nj+6f94/zp1Ax7y7BkngAEkk1Bdz uLN3QlSVyCCc
jNLMYnyrOvQd+nFQ3bp9jdVdSQgHX0oEaGT6n/P+f89zJ9T/AJ/z/nun+f8A P+f/AK5/n/P+
f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuALk+p/wA/5/z3 Mn1P+f8AP+e6
f5/z/n/65/n/AD/n/wCuALk+p/z/AJ/z3Mn1P+f8/wCe6f5/z/n/AOuf5/z/ AJ/+uALk+p/z
/n/PcyfU/wCf8/57p/n/AD/n/wCuf5/z/n/64AuT6n/P+f8APcyfU/5/z/nu n+f8/wCf/rn+
f8/5/wDrgC5Pqf8AP+f89zJ9T/n/AD/nun+f8/5/+uf5/wA/5/8ArgC5Pqf8 /wCf89zJ9T/n
/P8Anun+f8/5/wDrn+f8/wCf/rgC5Pqf8/5/z3Mn1P8An/P+e6f5/wA/5/8A rn+f8/5/+uAL
k+p/z/n/AD3Mn1P+f8/57p/n/P8An/65/n/P+f8A64AuT6n/AD/n/PcyfU/5 /wA/57p/n/P+
f/rn+f8AP+f/AK4AuT6n/P8An/PcyfU/5/z/AJ7p/n/P+f8A65/n/P8An/64 AuT6n/P+f89z
J9T/AJ/z/nun+f8AP+f/AK5/n/P+f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/ AJ/+uf5/z/n/
AOuALk+p/wA/5/z3Mn1P+f8AP+e6f5/z/n/65/n/AD/n/wCuALk+p/z/AJ/z 3Mn1P+f8/wCe
6f5/z/n/AOuf5/z/AJ/+uALk+p/z/n/PcyfU/wCf8/57p/n/AD/n/wCuf5/z /n/64AuT6n/P
+f8APcyfU/5/z/nun+f8/wCf/rn+f8/5/wDrgC5Pqf8AP+f89zJ9T/n/AD/n un+f8/5/+uf5
/wA/5/8ArgC5Pqf8/wCf89zJ9T/n/P8Anun+f8/5/wDrn+f8/wCf/rgC5Pqf 8/5/z3Mn1P8A
n/P+e6f5/wA/5/8Arn+f8/5/+uALk+p/z/n/AD3Mn1P+f8/57p/n/P8An/65 /n/P+f8A64Au
T6n/AD/n/PcyfU/5/wA/57p/n/P+f/rn+f8AP+f/AK4AuT6n/P8An/PcyfU/ 5/z/AJ7p/n/P
+f8A65/n/P8An/64AuT6n/P+f89zJ9T/AJ/z/nun+f8AP+f/AK5/n/P+f/rg C5Pqf8/5/wA9
zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuAGTxyeo7/AOf8/rE0+1lU8FunJ/xq QkDknABySf8A
P+f51SYXdWdlIXoM8E0AFy5eWGNuUYncp5B4pfs8H/PGP/vkVHK6tdW+1geW 6fQ1YoGMWGJG
DLEikdwoFPoooArXfVPx/pRRd9U/H+lFAidFXYCQckn+Ijufel2r/dP/AH03 +NRThTaEO4Rc
nLN0+8eD7dqqxyKgCLJHBDlv3sQCq5+XGM5Hc/8AfNAy39ktv+fdP1/xo+yW 3/Pun6/41VW7
cIBKwSZnjwh4ODtzgH3LUJNJ5Fu01x5YkTcZMKMHAwOeO5P4fhQIv4Hof++2 /wAaaVzJjLAb
Qcbz6n3qpDNM14VZ0xuYGPPIAzg4xkduScc+4q1MAQ4Zyg8vlgcY5bnNAC7f 9p/++zRt/wBp
/wDvs1neZ5SEW5twpYbpowEUcHgnkZ4H/fVPE055M3QIPlAIO5yuckc8YPp+ FAy9t/2n/wC+
zRt/2n/77NZ893IkWRIFaPf99gokwxAHTk8c4x1/JZ2ma3k+dn81pYwmBxgN jGBnPyigC/t/
2n/77NG3/af/AL7NUjNiX5bgGMqu6b5eB8/fGOoA/wDr1IkxN2qed5ikDAQq eMZywxkfUcdP
xALO3/af/vs0bf8Aaf8A77NNkIKyKzbF2csDgjrzmqkTrErvF5BRCGd4UADD nI78jr+lAF3b
/tP/AN9mjb/tP/32apPJcKJXaQq0cQk2ALjJLHB47YA4oEhihlAlIcytwSoE eWJBJwcAj1z1
FAF3b/tP/wB9mjb/ALT/APfZqlHcu8SMZRzkOyjIUBiN2ffH074wDV+gBu3/ AGn/AO+zRt/2
n/77NOooAbt/2n/77NG3/af/AL7NOooAbt/2n/77NG3/AGn/AO+zTqKAG7f9 p/8Avs0bf9p/
++zTqKAG7f8Aaf8A77NG3/af/vs06igBu3/af/vs0bf9p/8Avs06igBu3/af /vs0bf8Aaf8A
77NOooAbt/2n/wC+zRt/2n/77NOooAbt/wBp/wDvs0bf9p/++zTqKAG7f9p/ ++zRt/2n/wC+
zTqKAG7f9p/++zRt/wBp/wDvs06igBu3/af/AL7NG3/af/vs06igBu3/AGn/ AO+zRt/2n/77
NOooAbt/2n/77NG3/af/AL7NOooAbt/2n/77NG3/AGn/AO+zTqKAG7f9p/8A vs0bf9p/++zT
qKAG7f8Aaf8A77NG3/af/vs06igBu3/af/vs0bf9p/8Avs06igBu3/af/vs0 bf8Aaf8A77NO
ooAY8SupV9zA9QWJqP7Hb/8APJanooAhW1gRgyxhSO44qTyx6t/30adRQA3y x6t/30aPLHq3
/fRp1FAFW6UKUxnv1JNFLd9U/H+lFAiXzVQbWV8gnoAR1J9aPtEf92T/AL5H +NV7i+S2cLIW
ywJG1M8ZI9R6VF/a0PrJ/wB+x/8AFVXK2F0XftEf92T/AL5H+NH2iP8Auyf9 8j/Gqf8Aa0Pr
J/37H/xVH9qw+sn/AH7H/wAVRyvsF0XPtEf92T/vkf400zrvJ2PjAA4+v+NV f7Vh9ZP+/Y/+
Ko/tSH1k/wC/Y/8AiqOV9gui19oX+4/5UfaF/uP+VVv7Uh9X/wC/Y/8AiqP7 Uh9X/wC/Y/8A
iqOVhdFn7Qv9x/yo+0L/AHH/ACqt/acXq/8A37H/AMVS/wBpxer/APfsf/FU crC6LH2hf7j/
AJUfaF/uP+VV/wC0ovV/+/Y/+Ko/tKL1f/v2P/iqOVhdE4nG8tsfBAHT60PK jjDRuRkHp3By
Kg/tGL1f/v2P/iqX+0YvV/8Av2P/AIqjlYXRP9oX+4/5UfaF/uP+VQf2jF6v /wB+x/8AFUf2
hH6v/wB+x/8AFUcrC6J/tC/3H/Kj7Qv9x/yqH+0I/V/+/Y/+Ko+3x+rf9+// ALKjlYXRN9oX
+4/5UfaF/uP+VQ/b4/Vv+/f/ANlR9uj/ALzf9+//ALKjlYXRN9oX+4/5UfaF /uP+VRfbo/7z
f9+//sqPtsf95v8Av3/9lRysLol+0L/cf8qPtC/3H/Kovtqf3m/79/8A2VL9 tT+83/fv/wCy
o5WF0SfaF/uP+VH2hf7j/lUf2xP7zf8Afv8A+yo+2J/eb/v3/wDZUcrC6JPt C/3H/Kj7Qv8A
cf8AKo/taf3m/wC/f/2VL9rT+83/AH7/APsqOVhdD/tC/wBx/wAqPtC/3H/K mfa0/vN/37/+
yo+1L/eP/fv/AOyo5WF0P+0L/cf8qPtC/wBx/wAqb9qX+8f+/f8A9lR9pX+8 f+/f/wBlRysL
od9oX+4/5UfaF/uP+VN+0r/eP/fv/wCyo+0L/eP/AH7/APsqOVhdDvtC/wBx /wAqPtC/3H/K
k+0L/eP/AHx/9lR56/3j/wB8f/Xo5WF0L9oX+4/5UfaF/uP+VJ54/vH/AL4/ +vS+eP7x/wC+
P/r0crC6D7Qv9x/yo+0L/cf8qPOH98/98f8A16POH98/98f/AF6OVhdB9oX+ 4/5UfaF/uP8A
lS+aP75/74/+vR5o/v8A/jn/ANejlYXQn2hf7j/lR9oX+4/5UvmD+/8A+Of/ AF6PM/2//HP/
AK9HKxXQn2hf7j/lR9oX+4/5U7zP9v8A8c/+vRv/ANv/AMc/+vRysd0N+0L/ AHH/ACo+0L/c
f8qdv/2//HP/AK9Lu/2//HP/AK9HKxXQz7Qv9x/yo+0L/cf8qfu/2/8Axz/6 9Gf9v/xz/wCv
RysLoZ9oX+4/5UfaF/uP+VPyf7//AI5/9elyf7//AI5/9ejlYXRH9oX+4/5U faF/uP8AlUnP
9/8A8c/+vRz/AHx/3x/9elysd0R/aF/uP+VH2hf7j/lUnP8AfH/fH/16Of74 /wC+P/r0crC6
I/tC/wBx/wAqPtC/3H/KpOf74/74/wDr0c/3x/3x/wDXo5WF0R/aF/uP+VH2 hf7j/lUnP98f
98f/AF6Of74/74/+vRysLoj+0L/cf8qPtC/3H/KpOf74/wC+P/r0c/3x/wB8 f/XoswuitO/m
bcKwxnqKKs8/3x/3x/8AXooswujKvv8AkJWv4f8AobVr/P521U7t95Pl745x 9Kx78hdRtiSA
BySf99qtXN2EmVoJbdgzEZ3cqTnk+2DVuLlZIV7DtSZjYzq6xBkZR+7z69+K yYIopI5GeR1K
DcQqA8ZA9R61qX8tqNLMMEyOwIJ55Y55J96yI5NiSrjO9dv05B/pVx20JYqw SMgZQGBOMKQT
1x061KLVvLboXDKBtcEYIbOSPpTkvdsPl4kHCjCyYUYIOQMcHjr6k0Ne5VlW MYYrncc7gM/e
wBk89fYd+arUWhC0TogdsAHoNwz+XWp4rQP8uX3iPzGCLuPJGAB9Dn8famTT rJEsaq2AersG
IHoDgYHtStMpjJHLPGI2HpgjB/ID8c0agSx2QdypMi8gDemDnKjkZ/2v5VCL aUkgBTg44ccn
0HPJ+lOguzBGFVASDuBJ91P/ALL+tPju/KQpGJVUHcoEmOcDrgcjj2pahoQv E8YUuuNwyOeo
9ae9rKm7co+XrhgenX8u/pTJZPMcNjGFVfyAH9Kma63OzbOrSN1/vDH6U9QE itncjlQCCchg
ccE4PPHTvSw2zPKgfAVnCnDDJ5xx6/WpDe5TbtfBPIL8AYIIUY46+/QUxLhF aNvLYmI/L83b
dnB49zS1DQb9nkyBhT/tBhj8849PzFPhtXeZUcBVLAE7gM/T1/D2pILkxIEA YdclWwecdD/w
GnrdDzFd0Ztj71+fnt1JBz0HpRqGhFEiucMzDsAq7iTQImMjIpVtvVs8fXNL DIiBgyMS3GVb
BA79jRHIqM42ko4wRnnGc9ce3pQA8wbIC7fe3YHzAY6c+/XtSJGrITvO4AnG OAPc/wCeoolm
81VXbgKeOe2AB/KlEkfkhCjZ65DYBPYkYo1AWKAyRlgQMZ6kAHBHfPvSLBIw XCg7sYGRnnpx
2pY5gsXlspKnOcHB5x/8TUi3ZATIc7dvG/5cDHb8KNQ0IzBIB90H/dIOfypR F95SRvC7htYE
HHXp7c/hSpPtUDB4XbkHB+9uzTjMpZnxg7doHUnPUk9+Cf0o1AgpaSlpiFpa SloAWiiikAtL
SUtAC0UUUALS0lLQAtLSUtABS0lLQAtLSUtABS0lLQAtLSUtIApaSloAWlpK WgBaKKKAFooo
oAKKKKACiiikAUUUUDFooooAKKKKAKs+npdMskkjKRkAKvbcai/saH/ntJ/3 yK0F+4Pqf/Qj
S1nzNGlkZn9lQ+f5Ylk+4WJwPUD+tP8A7Hh/57Sf98irQ/4/f+2J/wDQhTLu aSPCIhJkGFbP
Q0czCyKs2mQwwvJ5sh2jONo5qQ6PCCR5z8f7IqW4jEWnsg6KuKtv99vrRzML Iz/7Ih/57P8A
98imR6ZC+/8AeuArlfujngf41asAFs4wGDDnkfU0626Tf9dm/kKOZhZFb+yY v+ez/wDfI/xp
f7Ji/wCez/8AfI/xpUyq+aHcu05TBYkEbyOnsOePT60kV1cyJuEI+dN6DIHc f7XPB9unvRzM
LIP7Ki/57P8A98j/ABo/sqL/AJ7P/wB8j/GpIZpJnCq6YUAsTGRnkjABPGNv vUX2mcxwOfLD
yoCOpAyyDpnnqf8APU5mFkL/AGXF/wA9n/75H+NL/ZcX/PZ/++R/jSrJM14s e9QUDBsKcN9w
9M8H5vemwXMjQo/y7AY0K8kksF5zn/a9+lHMwshf7Mi/57P/AN8j/Gj+zI/+ ez/98j/Gn2s8
r+V5pQ+bH5g2qRt6cdTnr+lWqOZhZFP+zI/+ez/98j/Gj+zY/wDns3/fP/16 uUUczCyKf9mx
/wDPZv8Avn/69H9nR/8APVv++f8A69XKKOZhZFT+zo/+erf98/8A16P7Pj/5 6t/3z/8AXq3R
RzMLIqf2en/PVv8Avn/69L/Z6f8APVv++f8A69WqKOZhZFX7An/PVv8Avn/6 9H2BP+erf98/
/Xq1RRzMLIq/YU/56t/3z/8AXpfsKf8APVv++f8A69WaKOZhZFb7En/PVv8A vn/69H2Jf+ep
/wC+f/r1Zoo5mFkV/sS/89T/AN8//Xo+xr/z1P8A3x/9erFFHMwsiv8AY1/5 6n/vj/69H2Rf
+ep/74/+vViijmYWRB9kX/nqf++P/r0fZV/56n/vj/69T0UczCyIPso/56n/ AL4/+vS/ZR/z
0P8A3x/9epqKOZhZFbyR5/l7z9wsTt9wPX3p/wBmH/PQ/wDfH/16B/x+/wDb E/8AoQqtdswu
JNvmfLGpVlfCoSW5YZ5HTseBRzMVkWvs4/56H/vj/wCvR9nH/PT/AMc/+vUL XE32llWMeWrq
hJx3x3z79MH9eEW4mLCNtqSswG0ofk4J65w33e2P6UczCyJ/IH/PT/xz/wCv R5H/AE0/8c/+
vUAu5PKuDhcxRkjjqQWH5fLSieZgP9WpeVo1OCcY3cn8sfr7UczCyJ/I/wCm n/jn/wBejyf+
mn/jn/16gNxOJyuwFEZUZuACSBzy3HXpg/WrdLmY7IiaPapYycAZ+5/9eiNC 8SOXxuUNjb0y
M+tPl/1T/wC6abEA1rEDnBiUcHH8Ip8zFZC+V/00/wDHP/r0eX/00/8AHP8A 69Uop5ktgwYF
Y7dZW35ZmJyTznjp71LdB3uIkTJGxiR5rJ3XuPrRzMLIseWf+en/AI5/9el2 H/np/wCOf/Xq
sJpEJ4UJG6RleWJJ287v+Benb3qvE8j2cIBUJG0KkYyT9w5znjr6dqOZhZGj sP8Az0/8c/8A
r0bD/wA9B/3x/wDXqkt5cGNXMSgSBSgYgdWAxwST97rgfTmry52jcQTjkgYp czHZEcWZYg+8
AEnA2ehI9fan7D/z0H/fH/16jtP+PWP/AIF/6Eaiilk+yWoUjfKqjc3P8Oc+ /SjmYrIs7D/z
0H/fH/16Nh/56D/vj/69V4Z5ZpCgKLs++SpO75mHHPH3ffrUMl1M+FX5VkKt G+3HG9R65PDe
3+BzMdkXth/56D/vj/69Gw/89B/3x/8AXqsssxuHhVkDZJLFSRwqds8fe9ab FdyyL5uEEe5F
2YOfmC98/wC16dqLsLIt7D/z0H/fH/16ZISmz5wSzhR8nqfrUtQ3HWH/AK7J /Oi7CyJNh/56
D/vj/wCvRTqKLsLIjC3DD92se0E/eLZ6n0FHl3npD+bf4VMJhBYtKRnaW4zj PzGslry5YGX7
QVyT8oHGeMAe3T/6+fmLDtctuJopfNka3UlCvzMQMZHPT/Oab9pb/n4s/wDv 4f8ACq9/c/a7
FJCAG2MDg8Z3J/n/ADmserjC6Ibsbs0pliaM3FmAwxkSH/CpXuW3tma0U56G Q5H6VztS3f8A
x9zf9dG/nVezQcxt/aW/5+LP/v4f8KRJTGrET2mHctkyHGcDjp/nNYFSt/x6 R/8AXR/5LR7N
BzGwrojl0ewV26sGwT+lJuiw43afhzlvm+99eOay1tgwB81QrBQrNwCxxkH0 xzz7D1FPa0jU
tvadAibzvhweoAwN3v8ApS5EHMzSLodmXsDs+5lvu/TjimyFJYwjS2O0YwA/ YEHHTpwKyXgY
ZZPmTbvDdPlzjp9eKdbW/n7sttxhV4zuc9F9s4PNHIg5jWDoFVQ9gFU5UbuA fUcUB0DKwewD
KMKd3IHoOKx/s0piEgC7SCQNwyQOpx17H8qSOCSVdyAEZwMkDJ9B6n2FP2a7 hzG0Jgu3E1iN
owMOeB6dPYU77S3/AD8Wf/fw/wCFZD2j7h5YyCqkZYAklQSB69eg9qb9kmwC FU5AIG8Z55Ax
nqew6mlyLuHMzZ+0t/z8Wf8A38P+FH2lv+fiz/7+H/CsVbWZgu1QSxAA3DPP TI6gcjk+op6W
cjb8lBtXcDvUqeQMZzgdf85o5F3DmZr/AGlv+fiz/wC/h/wo+0t/z8Wf/fw/ 4VhJDJJG7quV
T7xz06/4VNFZu0oWQADBJww4wCcH+6eO/wDSjkQczNf7S3/PxZ/9/D/hR9pb /n4s/wDv4f8A
CsVrd8MyqNoJwN4JIHceo9xxwaU2kyyMjKqsvXc4AH4k+39aORdw5mbP2lv+ fiz/AO/h/wAK
PtLf8/Fn/wB/D/hWKbWZU3FQOCdpYbuCQfl69j+VH2WUMFIUHGTl1+X688fj RyLuHMza+0t/
z8Wf/fw/4UfaW/5+LP8A7+H/AArDEEjTeUAN+M8kAYxnOemMc5pWtpUxuCgE 4zuGB6Z9M9vW
j2a7hzG39pb/AJ+LP/v4f8KPtLf8/Fn/AN/D/hWG8EkalmA2ggZBBBznGCOv Q/lSrbStLJHh
Q0ed25gAOcdTx1o9mu4cxt/aW/5+LP8A7+H/AAo+0t/z8Wf/AH8P+FYotZiS NoyDgZYfN9PX
t09R60k8Bh2ZZSHUMMEZ5API7daORBzM2/tLf8/Fn/38P+FH2lv+fiz/AO/h /wAKyLm0aGd0
XaUDlQd4OOeM+n4471E8EkalmA2ggZBBBznGCOvQ/lRyIOZm59pb/n4s/wDv 4f8ACj7S3/Px
Z/8Afw/4VitazKG3KAVJBG4Z464HUjg8j0NMiheXOzaSOxYAn6Dv+FHs13Dm N37S3/PxZ/8A
fw/4UfaW/wCfiz/7+H/CsOKB5VZl2gKQCWcL1+p9jQIJCrHAyhIZSRuGOvHW n7NBzG59pb/n
4s/+/h/wo+0t/wA/Fn/38P8AhWM9pNHu3Kvy5zhwenXoe3f0pkkEkS7nAAzg 4IOD6H0PsaXI
u4czNsSnzTKJ7QkJtOJDgDI56f5zR9o+Yt59lkjBPmH/AArFh/1U/wD1zH/o S01YXeMuNoUd
2YDP0z1/Cj2aDmNoOgZWD2AZRhTu5A9BxSBohGYw2nhCcld3B/DFZK2sr7do UhhnIdeOM888
cA9fSl+yTEgbV5z/ABjA4zzzxwCR60ci7hzM1XaJ1VXbT2CjCgtnH04pzSqy FGksShOSpfg8
59PWsoWj+UxIy4ZQMMCpBDZOen8PX61DJG0TYcDkZBBBB+hHWjkQcxtB0DKw ewDKMKd3IHoO
Kf8AaW/5+LP/AL+H/CsT7NLnGzvjqMHjOfpjnPSpLezeS4RGKhC4UkSLz0zg 55PPbNHIu4cz
NZrgspU3FngjH+sP+FHm7Y1iaWz2hAuGkPIx9O9YFTTqWmVVBJKIAB3+UU/Z oOY11dFUqr2A
UjBAbgj06e5/OnfaPmDefZZAwD5h/wAKyFs5GyBtJBHR1I6E8nPH3TSfZJiQ Nq85/jGBxnnn
jgEj1pci7hzM1zKpkEhksS4GA2/kfjimloiysW08lAAp3dMdMcVmC0fymJGX DKBhgVIIbJz0
/h6/WoZI2ibDgcjIIIIP0I60ciDmNoOiliHsAWOWIbqeuTxT/tLf8/Fn/wB/ D/hXP0U/ZoOY
30lMUSIJ7TAyQTIeckn0/D8KjHkqrKDpwVvvANwfrxWTN/qoP+uZ/wDQmqae xdJXEeNisRl3
Vf4mA6n/AGTS5EHMaRdDsy9gdn3Mt936ccUgaIMzBtPBcEMd3XPXPFZH2aUI WKYxngkBuOvH
X1/I+lOtoopjteR0bk8ICAAMk9R70ciDmNUtEybGbTyuc4LcdMenpTvOBzma x5IJ+c8kd+ns
KwaKfs0HMdB9pb/n4s/+/h/wpDKZGjHn2hKuGAWQ5JB6dKwKltP+PuH/AK6L /Oj2aDmOi8u8
9Ifzb/CitCisiiqiJLaNE7YDFgcHB6msttOuQWQNG6dMkgD2OPxP69c/NrwM EtizHABYk/ia
rteTkeaiR+TyeTz9PqaOaxcYt7FO/tTFaJFFulIRskc87k/LoayPstx/zwl/ 74NdbHKs0cci
fdb/AOvUtWp2M3E437Lcf88Jf++DUtzbTtdTFYZCC5IIU8811tNT7i/Sn7Ri 5Tj/ALLcf88J
f++DUrW0/wBljHkyZDscbT6LXW00ffP0H9aPaMOU5bZKU8trOXywBgBSCDxk 5x35/T0FSLvW
NohZXHlEHjPzZJU9dv8AsjtW+15EgJbcMFgwxyoUEkkenT/voetI12y7d1rM GZtqrlMk4J/v
e1LnCxzjxTPkfZJdoXbGNp+XnOenPf8AOnQm7giCRW7Ah95YxZz0x1Hbn866 aOZHA52sTtKt
wQcZx+XP056U24uUt9m8Mdxx8v8ACO7H0A7n3o5w5TnXM7Sh1s5FAR0ChTxu 3e3bd+lFu11B
F5YguQAxYbCy5Jx1wORx7d66Tz4fO8nzY/N/ubhu9elK80cbKskiKznChmAL H2o5wsc6s10q
hRb3KhQMBCy5IUDnA5Hy+3emq1wrq32SU7Wibof4Bj0710Ed1GwHmOkbM7Iq swyxDEcf5707
7TAWK+fHuDbCN4yG9PrwaOfyHY59JrpRFm3uTsK/LltmFx0GOvHv3qKITpB5 LWszIS27AIPO
08ceqiumM8Id0MsYZBuZdwyo9T6VG19bKqP50ZRn2bww2g4J5P4frRzhY5kQ 3AgeL7PL8zK2
dp7A/wCNWZJrqQktb3JLBshixAJUjgY4HPvXRtIiEBnVSegJxnkD+ZH51DNe QxxSMskbGMhW
G8fKScDPpzRzisc+rXQthD5FzwpUAFgpBz1GOTye/pSrJcrLO32e5UTPvPlk qR14zjpzXRJc
RsY0MkfmOoYKHByPb1HvQ1zAqb2njCZA3FxjJGR+nNHP5Dsc2xuWkVzay5CO h4PO7dzz/vfp
Tg06zPKtrcq0oPmFSQeSD8vHHI9+K6Pz4fO8nzY/N/ubhu9elJ9pgAcmePEZ w/zj5T7+lHOK
xzJFybhpTbzHcpX5gSeV25J/z+FSK1wp/wCPSX+DscjapXI4685B7V0jTRrF 5rSII8A7ywxg
9OaRZ4WDFZYyEAZiGHAIyCfwo5wsc/5lwZPM8m4BSLau8Fyx3ZHOOx5/4Djv VWOG4RJV+zyn
zF2/dPHIP9K6tJo5ApjkRwwJG1gcgdaR54Y41keWNUboxYAH8aOcLHOB58xs 1nMTEVKYB6hV
HPHI+UelQzRTy7D9mmDhQpO04OAAOMccCupM8K+XmWMeZ9zLD5vp69aSC4jn 3iNgWRirLkZB
BI5/KjnCxzoa4Esr/ZJf3kvmdDlfvdOOvzcH2pWluvOWRbe4+VNuXyxJyWBz jscflW9bXkNx
biUSRjCBnAcHZkZ5qVJo5ApjkRwwJG1gcgdaOfyHY5pWuhbCHyLnhSoALBSD nqMcnk9/Sls2
uLbH+jXHDbvkyu72bg5HH6mujE8JdEEsZZxuVdwyw9R60rzRxsqySIrOcKGY AsfajnFY5QQ3
AgeL7PL8zK2dp7A/41aM1wfN/wBFuF37/lUkL82eSMckZ6+wroJZ4YMedLHH npvYDNKZoxKI
jIgkYZCFhkj6Uc4WObZrhnZvsko3NK3Q/wAYx6dqS6a6uVw0FzktuIYsQD7D HA5966NLmCQq
I543LEgbXByR1pyTRyMyxyIzIcMFYEqfejnCxysVtOI5wYZBlAB8p5+YU6JZ 44HjNtM27OAR
lRkYzjHX3zXUt1X6/wBKR5o42VZJEVnOFDMAWPtRzhynPNNcGMr9luPmzwSS q5VhhRjgfN09
qSFpdzCS1mCsgBwp7Rsvp3z+FdB9pgAcmePEZw/zj5T7+lH2mDazefHtUAsd 4wAemfrRzDsc
8klxGAsdpMqrgL13AfNnnHX5zz7DrUUyzzMxa2uGO3apcsxHOc5x9RXSfaoy 6bXRo2Rn8wMM
AKQD/P8ASpY5ElQPG6up6MpyDRziscwBMHQi1uEEfCFCQwXnjOPU5/E+2Hq8 vmq7WMuI33oE
G3njrx/sjpjvXR+dGFDeYm0rvB3DBX1+nIqG4voIbYzCWNhtYoN4+cjsKOcd jlvstx/zwl/7
4NTywTi4RxDN8qpyoIPCjoccGurpqdPxP86fOxcpzZknw4FnL8wxkjk/KwyT jk/N19vxpYWl
3MJLWYKyAHCntGy+nfP4VvfbLcjcJoymDlw4wMY9/cf5xTvtMG1m8+PaoBY7 xgA9M/Wlzjsc
8klxGAsdpMqrgL13AfNnnHX5zz7DrUNxHczyBjBcHAwC+WP510v2qMum10aN kZ/MDDACkA/z
/SpY5ElQPG6up6MpyDRziscf9luP+eEv/fBo+y3H/PCX/vg12VFP2jDlOSlt pzHABDIcIQfl
PHzGprlri4Rl+ySrubd0J7ufT/b/AErpV6t9f6VXiv4GgSSWSOHeAcO47gH+ opc4WMSWa6kV
x9nuV3FsKCwXBJPIxyeT+lVkhuEikQW8uXwCdp6dcfnj8q6szRiURGRBIwyE LDJH0qOa6WFi
CjsEXe5XGEXnk5PsemelHOFjlPstx/zwl/74NH2W4/54S/8AfBrsqKftGHKc b9luP+eEv/fB
qW2tp1uoS0MgAcEkqeOa62mv9xvpR7RhyhvX+8Pzop1FZlEEKCS1KHo24H8z VKS1udvkLEpj
4w+7HPqe/wCFXbZVMOSAfmbt7mpdi/3R+VJq5UZuOxHBCIIYogc7e/r1qamF Vyvyjr6e1LsX
+6Pypkjqan3F+lGxf7o/KkRV2L8o6elAD6aPvn6D+tGxf7o/KkCrvPyjoO1A EIinWUzAoXYk
MpOBtGdo6df8T7YgFpMjpJFFBHtcHylchfusCc7ep3Dt2q9sX+6Pyo2L/dH5 UAQxwurB2EZZ
5N799vy7fl/Ic/X6Uy5s2uZmLTOkZi8sBMZOT82cg+i1Z2L/AHR+VGxf7o/K gColrP5LCV0a
RpY5CR0O0Jnt/smi7s2nmZxhldAjAyMoABPOB97r0OOnvVvYv90flRsX+6Py oAz205yz52sJ
NwI8xlABdj0H3uG6HHTrzT5LKRo3UMmWSdRyertkVd2L/dH5UbF/uj8qAM+T TncTKNvzeYVZ
pG6sD/D0H3uvP054nmtpGuxcR7CVC4ViRkgODzjj7/6VZ2L/AHR+VGxf7o/K gCN4d93FMQpE
aMBnqCdvI/AH86pxac6LGvy/u9gDGRm3AMpPB4X7vQZ+vFaGxf7o/KjYv90f lQBUezZrtpOC
jurkmRhggDjaOD93qfX2pn2B0gtVQKWhjKMqyNGCTjJyvPUfrV7Yv90flRsX +6PyoAqJZMkL
RqUx5sbDGcYUJ9f7ppptJjbQxEJ/o5GwrKylwFK8kDK9c8Z9Ku7F/uj8qNi/ 3R+VAFcWzC0S
IbQRIrn5if4wx5PJ+vf2qM2cwwUdQR5vQkZ3OGxntwCM9s8Vc2L/AHR+VGxf 7o/KgDPFpKqk
fMkkkvDJIzlVKAHLEZ7ZHvtq5JDlrfYFVYnzjpxtIwPzFSbF/uj8qNi/3R+V AFE2UwWdVMZE
4ZGJJGwFnII454fpx0q1bxvEHRtpXezKwPJySTkdsZqTYv8AdH5UbF/uj8qA KYs5lht1V1DR
QeWcEjJ+XgHtnaRnqM01LGXy3O7y5GkyCsrMQpUKRuIz2yPcD0q9sX+6Pyo2 L/dH5UAUzYkX
JZVXyy6v/rGAXaAANg4P3ev+FLqFtNcK6xkFWQqAZGQKeeeB83bg+nvVvYv9 0flRsX+6PyoA
Y0ZN1HLkbVRlPrklf8DVJbG4CQIWVhH5fPmsAu3GRtxhuh5Pr7VobF/uj8qN i/3R+VAFKOyk
WNFLJlUgU8nqjZNOsrNrdl3YPlpsVvMZiRxzg8L06DP6c29i/wB0flRsX+6P yoAG6r9f6VBL
DI10kkRCcAO+85IBJ27cY/HIPP5zFVyvyjr6e1LsX+6PyoAz/sNw0yO7KduM sZWO751bO0jC
/dPA9aJ7WZVRkCuVkY4yf4plYdvQc1obF/uj8qNi/wB0flQBQlsJZnaRiisx LFVY8HMeBnGf
4OvbPerFtDJCvAQb33OC7OcbcdT1PA9OKn2L/dH5UbF/uj8qAKhtH2SZSNjK QxUOU2sDkAMB
nHf65PfhklrdGGUbo5Xmi8ti7bdv3sdBz97HQdPer2xf7o/KjYv90flQA6op EElvIhUMGDDa
TgHrxntT9i/3R+VIqrj7o6nt70AUjZ3DtGzyKdh4BbO0b0OM45+6eTzz+NNn tZlVGQK5WRjj
J/imVh29BzWhsX+6Pyo2L/dH5UAUJbCWZ2kYorMSxVWPBzHgZxn+Dr2z3q1a QmFG3ABnbcQH
Z+wHU8np7VLsX+6Pyo2L/dH5UAOopuxf7o/KjYv90flQAL1b6/0qlY2UlvIj OyEKm3gnrtjH
/sh/SrgVct8o6+ntS7F/uj8qAM+DTniMYbawGwsfMYAFQo+6OD93qfXpxU13 avPIWURtlNqs
x5iPPzLx15Hp90c+lrYv90flRsX+6PyoAdRTdi/3R+VGxf7o/KgB1Nf7jfSj Yv8AdH5Ujqux
vlHT0oAfRTdi/wB0flRQB//Z
--------------CBDBA64989AC3158CF9910D2--

--------------3A1C5D50D2378940A4524F08--
Re: A Diagnostic Message for the Valid Schema [message #21068 is a reply to message #20113] Sun, 04 May 2003 16:55 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: paechoi.earthlink.net

This is a multi-part message in MIME format.

------=_NextPart_000_0040_01C3123C.779D96A0
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0041_01C3123C.779D96A0"


------=_NextPart_001_0041_01C3123C.779D96A0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Ed,

Enclosed please find the exception I captured as below. The line #s may =
not reflect the
exact lines in the code snippet in the previous message because I added =
some debugging
codes. But the code is mainly remain same. Thank you.

java.lang.NoSuchMethodError: =
org.eclipse.emf.ecore.impl.EObjectImpl.eDerivedStructuralFea tureID(Lorg/e=
clipse/emf/ecore/EStructuralFeature;)I
at org.eclipse.xsd.impl.XSDSchemaImpl.eIsSet(XSDSchemaImpl.java :2659)
at =
org.eclipse.emf.ecore.util.EContentsEList.size(EContentsELis t.java:130)
at java.util.ArrayList.<init>(ArrayList.java:128)
at =
org.eclipse.xsd.impl.XSDConcreteComponentImpl.reconcileConte nts(XSDConcre=
teComponentImpl.java:977)
at =
org.eclipse.xsd.impl.XSDConcreteComponentImpl.reconcile(XSDC oncreteCompon=
entImpl.java:952)
at =
org.eclipse.xsd.impl.XSDConcreteComponentImpl.changeAttribut e(XSDConcrete=
ComponentImpl.java:1232)
at =
org.eclipse.xsd.impl.XSDSchemaImpl.changeAttribute(XSDSchema Impl.java:224=
4)
at =
org.eclipse.xsd.impl.XSDConcreteComponentImpl.eNotify(XSDCon creteComponen=
tImpl.java:1205)
at =
org.eclipse.xsd.impl.XSDConcreteComponentImpl.setElementGen( XSDConcreteCo=
mponentImpl.java:2797)
at =
org.eclipse.xsd.impl.XSDConcreteComponentImpl.setElement(XSD ConcreteCompo=
nentImpl.java:2829)
at =
org.eclipse.xsd.impl.XSDSchemaImpl.setElement(XSDSchemaImpl. java:2367)
at org.paechoi.xsd.test.EclipseXSDDemo1.doIt(EclipseXSDDemo1.ja va:104)
at org.paechoi.xsd.test.EclipseXSDDemo1.main(EclipseXSDDemo1.ja va:128)

Regards,


Pae

P.S.: I am using XSD v1.1.0 and EMF v1.0.2

"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB4F504.6527C9F2@ca.ibm.com...
Pae,=20
No, the standalone version worked too. What exception did you see?=20
=20

Pae Choi wrote:=20

Ed, That surely helped with v1.0.2. And THANK you for that. One =
quick question is: Do you also have an exception thrown when running =
with v1.1.0 as standalone. Regards, Pae =20
"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB3A206.9781C42@ca.ibm.com...Pae,=20
The XSD model expects a DOM that's namespace aware, so this =
addition to your sample code will improve your result:=20

private Document openXMLDOM(String uri) {=20
// Create a factory object for creating DOM parsers=20
DocumentBuilderFactory factory =3D =
DocumentBuilderFactory.newInstance();=20
DocumentBuilder builder =3D null;=20
Document xmlDoc =3D null;=20

factory.setNamespaceAware(true);=20

Without this, element.getNamespaceURI and element.getLocalName =
both return null...=20
=20

Pae Choi wrote:=20

Ed, I have a sample code that test a DOM of XML Schema with =
Eclipse/XSD andproducing two different results. With v1.0.2, it seems ok =
except the diagnostic message we are discussing.With v1.1.0, it throws =
an exception. Regards, Pae P.S.: The code snippet is as follows: // =
################## CODE SNIPPET ##################/*=20
* EclipseXSDDemo1.java=20
*=20
* Created on May 2, 2003, 11:13 PM=20
*/ package org.paechoi.xsd.test; // W3C/DOM=20
import javax.xml.parsers.DocumentBuilderFactory;=20
import javax.xml.parsers.DocumentBuilder;=20
import org.w3c.dom.Document;=20
import org.w3c.dom.Element;=20
// Eclipse/XSD=20
import org.eclipse.xsd.XSDFactory;=20
import org.eclipse.xsd.XSDSchema;=20
import org.eclipse.xsd.impl.XSDSchemaImpl;=20
import org.eclipse.xsd.util.XSDResourceImpl;=20
import org.eclipse.xsd.util.XSDResourceFactoryImpl;=20
import org.eclipse.xsd.XSDDiagnostic;=20
import org.eclipse.emf.ecore.resource.Resource;=20
import org.eclipse.emf.ecore.resource.ResourceSet;=20
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;=20
import org.eclipse.emf.common.util.EList;=20
import java.io.File;=20
/**=20
*=20
* @author pae=20
*/=20
public class EclipseXSDDemo1 {=20
// private Document xmlDOM =3D null;=20
// instance initializer=20
{=20
// =
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =
new XSDResourceFactoryImpl());=20
}=20

/** Creates a new instance of EclipseXSDDemo1 */=20
public EclipseXSDDemo1() {=20
super();=20
}=20

/** Open a XML DOM */=20
private Document openXMLDOM(String uri) {=20
// Create a factory object for creating DOM parsers=20
DocumentBuilderFactory factory =3D =
DocumentBuilderFactory.newInstance();=20
DocumentBuilder builder =3D null;=20
Document xmlDoc =3D null;=20

// Build a new DOM=20
try {=20
// Now use the factory to create a DOM parser =
(a.k.a. a DocumentBuilder)=20
builder =3D factory.newDocumentBuilder();=20
xmlDoc =3D builder.parse(uri);=20
}=20
catch (Exception ex) {=20
ex.printStackTrace();=20
return null;=20
}=20

return xmlDoc;=20
}=20

/** doIt */=20
private void doIt() {=20
Document xmlDOM =3D =
openXMLDOM("http://schemas.xmlsoap.org/wsdl/");=20
// Document xmlDOM =3D openXMLDOM("./wsdl.xsd"); =
Element rootElement =3D xmlDOM.getDocumentElement(); XSDSchema =
xsdSchema =3D XSDFactory.eINSTANCE.createXSDSchema();=20
xsdSchema.setDocument(xmlDOM);=20
xsdSchema.setElement(rootElement);=20
xsdSchema.updateElement(); =
System.out.println("\n\n");=20
XSDResourceImpl.serialize(System.out, =
xsdSchema.getElement()); =
System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION =
>>>>>>>>>>>>>>>>>>>>>>>>>>");=20
xsdSchema.validate();=20
//EList eList =3D xsdMainSchema.getDiagnostics();=20
EList eList =3D xsdSchema.getAllDiagnostics();=20
for (int i =3D 0; i < eList.size(); i++) {=20
XSDDiagnostic xsdDiagnostic =3D =
(XSDDiagnostic)eList.get(i);=20
System.out.println(i + ": Diagnostic Message =3D [" =
+ xsdDiagnostic.getMessage() + "]");=20
}=20
=
System.out.println("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<=
<<<<<<<");=20
}=20

/** main - the main entry */=20
public static void main(String[] args) {=20
EclipseXSDDemo1 app =3D new EclipseXSDDemo1();=20
app.doIt();=20
}=20
}=20

"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB25ED9.AE2CB299@ca.ibm.com...Pae,=20
I'm seeing this result with the just published 1.1.0 driver:=20


The schema isn't valid.=20
=20
Pae Choi wrote:=20

I have a simple test schema as follows:=20
<?xml version=3D"1.0" encoding=3D"UTF-8"?>=20
<!--W3C Schema generated by Pae -->=20
<xsd:schema xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema"=20
elementFormDefault=3D"qualified">=20
<xsd:element name=3D"CommonLogin">=20
<xsd:complexType>=20
<xsd:sequence>=20
<xsd:element name=3D"username" ref=3D"usernameRef"/>=20
<xsd:element name=3D"password" ref=3D"passwordRef"/>=20
</xsd:sequence>=20
</xsd:complexType>=20
</xsd:element>=20
<xsd:element name=3D"passwordRef" type=3D"xsd:string"/>=20
<xsd:element name=3D"usernameRef" type=3D"xsd:string"/>=20
</xsd:schema>=20

This is a very simple sample, but it is a valid schema. But =
when=20
I use the validate() and getDiagnostics() methods in the =
XSDSchema=20
interface it gives me a message as follows:=20

XSD: The element '#null' is not permitted as constrained by =
'XML Schema ';=20
expecting schema=20

I do not understand what the message is saying. Any =
comments?=20

Pae


------=_NextPart_001_0041_01C3123C.779D96A0
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2600.0" name=3DGENERATOR></HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT size=3D2>Ed,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Enclosed please find the exception I captured as =
below. The=20
line #s may not reflect the</FONT></DIV>
<DIV><FONT size=3D2>exact lines in the code snippet in the previous =
message=20
because I added some debugging</FONT></DIV>
<DIV><FONT size=3D2>codes. But the code is mainly remain same. Thank=20
you.</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>java.lang.NoSuchMethodError:=20
org.eclipse.emf.ecore.impl.EObjectImpl.eDerivedStructuralFea tureID(Lorg/e=
clipse/emf/ecore/EStructuralFeature;)I<BR>&nbsp;at=20
org.eclipse.xsd.impl.XSDSchemaImpl.eIsSet(XSDSchemaImpl.java :2659) <BR>&nb=
sp;at=20
org.eclipse.emf.ecore.util.EContentsEList.size(EContentsELis t.java:130) <B=
R>&nbsp;at=20
java.util.ArrayList.&lt;init&gt;(ArrayList.java:128) <BR>&nbsp;at=20
org.eclipse.xsd.impl.XSDConcreteComponentImpl.reconcileConte nts(XSDConcre=
teComponentImpl.java:977)<BR>&nbsp;at=20
org.eclipse.xsd.impl.XSDConcreteComponentImpl.reconcile(XSDC oncreteCompon=
entImpl.java:952)<BR>&nbsp;at=20
org.eclipse.xsd.impl.XSDConcreteComponentImpl.changeAttribut e(XSDConcrete=
ComponentImpl.java:1232)<BR>&nbsp;at=20
org.eclipse.xsd.impl.XSDSchemaImpl.changeAttribute(XSDSchema Impl.java:224=
4)<BR>&nbsp;at=20
org.eclipse.xsd.impl.XSDConcreteComponentImpl.eNotify(XSDCon creteComponen=
tImpl.java:1205)<BR>&nbsp;at=20
org.eclipse.xsd.impl.XSDConcreteComponentImpl.setElementGen( XSDConcreteCo=
mponentImpl.java:2797)<BR>&nbsp;at=20
org.eclipse.xsd.impl.XSDConcreteComponentImpl.setElement(XSD ConcreteCompo=
nentImpl.java:2829)<BR>&nbsp;at=20
org.eclipse.xsd.impl.XSDSchemaImpl.setElement(XSDSchemaImpl. java:2367) <BR=
>&nbsp;at=20
org.paechoi.xsd.test.EclipseXSDDemo1.doIt(EclipseXSDDemo1.ja va:104) <BR>&n=
bsp;at=20
org.paechoi.xsd.test.EclipseXSDDemo1.main(EclipseXSDDemo1.ja va:128) </FONT=
></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Regards,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Pae</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>P.S.: I am using XSD v1.1.0 and EMF =
v1.0.2</FONT></DIV>
<DIV>&nbsp;</DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV>"Ed Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB4F504.6527C9F2@ca.ibm.com">news:3EB4F504.6527C9F2@ca.ibm.=
com</A>...</DIV>Pae,=20

<P>No, the standalone version worked too.&nbsp; What exception did you =
see?=20
<BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">&nbsp;<FONT size=3D-1>Ed,</FONT>&nbsp;<FONT=20
size=3D-1>That surely helped with v1.0.2. And THANK you for that. =
One quick=20
question is:</FONT>&nbsp;<FONT size=3D-1>Do you also have an =
exception thrown=20
when running with v1.1.0 as standalone.</FONT>&nbsp;<FONT=20
size=3D-1>Regards,</FONT>&nbsp;&nbsp;<FONT =
size=3D-1>Pae</FONT>&nbsp;=20
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed=20
Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB3A206.9781C42@ca.ibm.com">news:3EB3A206.9781C42@ca.ibm.co=
m</A>...Pae,=20

<P>The XSD model expects a DOM that's namespace aware, so <FONT=20
color=3D#3333ff>this</FONT> addition to your sample code will =
improve your=20
result:=20
<P>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String uri) {=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create a factory =
object=20
for creating DOM parsers =
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilderFactory&nbsp; factory =3D=20
DocumentBuilderFactory.newInstance();=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp; =
builder =3D=20
null; <BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D null;=20
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT =
color=3D#3333ff>&nbsp;&nbsp;=20
factory.setNamespaceAware(true);</FONT>=20
<P>Without this, element.getNamespaceURI and element.getLocalName =
both=20
return null... <BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">
<STYLE></STYLE>
<FONT size=3D-1>Ed,</FONT> <FONT size=3D-1>I have a sample code =
that test a=20
DOM of XML Schema with Eclipse/XSD andproducing two different=20
results.</FONT> <FONT size=3D-1>With v1.0.2, it seems ok except =
the=20
diagnostic message we are discussing.With v1.1.0, it throws an=20
exception.</FONT> <FONT size=3D-1>Regards,</FONT>&nbsp; <FONT=20
size=3D-1>Pae</FONT> <FONT size=3D-1>P.S.: The code snippet is =
as=20
follows:</FONT> <FONT size=3D-1>// ################## CODE =
SNIPPET=20
##################/*</FONT> <BR><FONT size=3D-1>&nbsp;*=20
EclipseXSDDemo1.java</FONT> <BR><FONT size=3D-1>&nbsp;*</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;* Created on May 2, 2003, 11:13 PM</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;*/</FONT> <FONT size=3D-1>package=20
org.paechoi.xsd.test;</FONT> <FONT size=3D-1>// W3C/DOM</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; =
javax.xml.parsers.DocumentBuilderFactory;</FONT>=20
<BR><FONT size=3D-1>import&nbsp; =
javax.xml.parsers.DocumentBuilder;</FONT>=20
<BR><FONT size=3D-1>import&nbsp; org.w3c.dom.Document;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; org.w3c.dom.Element;</FONT> <BR><FONT =
size=3D-1>//=20
Eclipse/XSD</FONT> <BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.xsd.XSDFactory;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
org.eclipse.xsd.XSDSchema;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
org.eclipse.xsd.impl.XSDSchemaImpl;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; =
org.eclipse.xsd.util.XSDResourceImpl;</FONT>=20
<BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.xsd.util.XSDResourceFactoryImpl;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; org.eclipse.xsd.XSDDiagnostic;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; =
org.eclipse.emf.ecore.resource.Resource;</FONT>=20
<BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.emf.ecore.resource.ResourceSet;</FONT> <BR><FONT=20
size=3D-1>import&nbsp;=20
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; org.eclipse.emf.common.util.EList;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; java.io.File;</FONT> <BR><FONT =
size=3D-1>/**</FONT>=20
<BR><FONT size=3D-1>&nbsp;*</FONT> <BR><FONT size=3D-1>&nbsp;* =
@author&nbsp;=20
pae</FONT> <BR><FONT size=3D-1>&nbsp;*/</FONT> <BR><FONT =
size=3D-1>public=20
class EclipseXSDDemo1 {</FONT> <BR><FONT =
size=3D-1>//&nbsp;&nbsp;&nbsp;=20
private&nbsp;&nbsp;&nbsp;&nbsp;=20
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp; xmlDOM =3D =
null;</FONT>=20

<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; // instance =
initializer</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; {</FONT> <BR><FONT=20
size=3D-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;=20
=
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =

new XSDResourceFactoryImpl());</FONT> <BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** Creates a new instance =
of=20
EclipseXSDDemo1 */</FONT> <BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; =
public=20
EclipseXSDDemo1() {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
super();</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM =
*/</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; private Document =
openXMLDOM(String=20
uri) {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create a =
factory=20
object for creating DOM parsers</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilderFactory&nbsp; factory =3D=20
DocumentBuilderFactory.newInstance();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp; =
builder=20
=3D null;</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D null;</FONT>=20
<P><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // =
Build a=20
new DOM</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try =
{</FONT>=20
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
// Now use the factory to create a DOM parser (a.k.a. a=20
DocumentBuilder)</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
builder =3D factory.newDocumentBuilder();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xmlDoc =3D builder.parse(uri);</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT> =
<BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch =
(Exception ex)=20
{</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
ex.printStackTrace();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
return null;</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT>=20
<P><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
return=20
xmlDoc;</FONT> <BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** doIt */</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; private void doIt() {</FONT> =
<BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document =
xmlDOM =3D=20
openXMLDOM("<A=20
=
href=3D"http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl=
/</A>");</FONT>=20
<BR><FONT size=3D-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp; =
Document=20
xmlDOM =3D openXMLDOM("./wsdl.xsd");</FONT>&nbsp;<FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Element =
rootElement =3D=20
xmlDOM.getDocumentElement();</FONT>&nbsp;<FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; XSDSchema =
xsdSchema =3D=20
XSDFactory.eINSTANCE.createXSDSchema();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
xsdSchema.setDocument(xmlDOM);</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
xsdSchema.setElement(rootElement);</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
xsdSchema.updateElement();</FONT>&nbsp;<FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
System.out.println("\n\n");</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
XSDResourceImpl.serialize(System.out,=20
xsdSchema.getElement());</FONT>&nbsp;<FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
System.out.println(" &gt;&gt;&gt;&gt;&gt;&gt;&gt;& ;gt;&gt;&gt;&gt;&gt;&gt;&=
gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;& amp;gt;=20
VALIDATION=20
=
&gt;&gt;&gt;&gt;&gt;&gt;&gt;& ;gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt;&gt;&=
gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;"); </FONT>=20
<BR><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
xsdSchema.validate();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; //EList =
eList =3D=20
xsdMainSchema.getDiagnostics();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; EList eList =
=3D=20
xsdSchema.getAllDiagnostics();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; for (int i =
=3D 0; i=20
&lt; eList.size(); i++) {</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
XSDDiagnostic xsdDiagnostic =3D =
(XSDDiagnostic)eList.get(i);</FONT>=20
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
System.out.println(i + ": Diagnostic Message =3D [" +=20
xsdDiagnostic.getMessage() + "]");</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT> =
<BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
System.out.println(" &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&=
lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;& amp;lt;&lt;&lt;&lt;&lt;&lt;&lt;& lt;&lt;&lt;&l=
t;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&a mp;lt;&lt;&lt;&lt;&lt;&lt;&lt;&l t;&lt;&lt;&lt=
;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&am p;lt;&lt;&lt; ");</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** main - the main entry =
*/</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; public static void =
main(String[]=20
args) {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
EclipseXSDDemo1 app =3D=20
new EclipseXSDDemo1();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
app.doIt();</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT> <BR><FONT =
size=3D-1>}</FONT>=20

<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: =
5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed=20
Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB25ED9.AE2CB299@ca.ibm.com">news:3EB25ED9.AE2CB299@ca.ibm.=
com</A>...Pae,=20

<P>I'm seeing this result with the just published 1.1.0 =
driver:=20
<BLOCKQUOTE><IMG height=3D411=20
src=3D"cid:003b01c3125d$fe9ff460$0b01a8c0@dev1"=20
width=3D502></BLOCKQUOTE>The schema isn't valid. <BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">I have a simple test schema as =
follows:=20
<P>&lt;?xml version=3D"1.0" encoding=3D"UTF-8"?&gt; =
<BR>&lt;!--W3C=20
Schema generated by Pae --&gt; <BR>&lt;xsd:schema =
xmlns:xsd=3D"<A=20
=
href=3D"http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchem=
a</A>"=20
<BR>elementFormDefault=3D"qualified"&gt; =
<BR>&nbsp;&lt;xsd:element=20
name=3D"CommonLogin"&gt; <BR>&nbsp; &lt;xsd:complexType&gt;=20
<BR>&nbsp;&nbsp; &lt;xsd:sequence&gt; <BR>&nbsp;&nbsp;&nbsp; =

&lt;xsd:element name=3D"username" ref=3D"usernameRef"/&gt;=20
<BR>&nbsp;&nbsp;&nbsp; &lt;xsd:element name=3D"password"=20
ref=3D"passwordRef"/&gt; <BR>&nbsp;&nbsp; =
&lt;/xsd:sequence&gt;=20
<BR>&nbsp; &lt;/xsd:complexType&gt; =
<BR>&nbsp;&lt;/xsd:element&gt;=20
<BR>&nbsp;&lt;xsd:element name=3D"passwordRef" =
type=3D"xsd:string"/&gt;=20
<BR>&nbsp;&lt;xsd:element name=3D"usernameRef" =
type=3D"xsd:string"/&gt;=20
<BR>&lt;/xsd:schema&gt;=20
<P>This is a very simple sample, but it is a valid schema. =
But when=20
<BR>I use the validate() and getDiagnostics() methods in the =

XSDSchema <BR>interface it gives me a message as follows:=20
<P>XSD: The element '#null' is not permitted as constrained =
by 'XML=20
Schema '; <BR>expecting schema=20
<P>I do not understand what the message is saying. Any =
comments?=20
=
<P>Pae</P></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE ></BLOCKQUOT=
E></BLOCKQUOTE></BODY></HTML>

------=_NextPart_001_0041_01C3123C.779D96A0--

------=_NextPart_000_0040_01C3123C.779D96A0
Content-Type: image/jpeg;
name="C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\nsmailFJ.jpeg"
Content-Transfer-Encoding: base64
Content-ID: <003b01c3125d$fe9ff460$0b01a8c0@dev1>

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCws MGJGSjpQdGZ6eHJm
cG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAqMF40 NF7GhHCExsbGxsbG
xsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsb/ wAARCAGbAfYDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA AgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcY GRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKT lJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP0 9fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQA AQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2 Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOk paanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMB AAIRAxEAPwDXghR4
9zbiST/EfU0m23yQBKcHHG81Ja/6kf7zfzNVLrfsTY5wGkLRrJsZueoPt6e9 NK4FpIYJEDIWKnoQ
5/xpfs0Xo3/fZ/xqKy2bmMbMUZEcZ75zzjt2qMXc+1kYBbgkbYvLyRnJ67sN wDzkdPXikBZ+zRej
f99n/Gj7NF6N/wB9n/Gqa31w+eI027VYMuTuLsmeD2xnHPpnvS/bZyJnHlhY ELMNpy5DODg54zs9
+vegC39mi9G/77P+NH2aL0b/AL7P+NUEup4hIkMQZY2kdycYwZH4yWGPu9ef 8b883lxs6FW2H5l7
n2HvyMDv075oAPs0Xo3/AH2f8aPs0Xo3/fZ/xqFriZWhLGMRPt/eKpdSSeFG Dx2+YjBz26Uy3kkm
uraaQptkgZlVVIKglDgnPP6UATyQxIudrH/gZpm2L+43/fw1NP8AcH1rJvJZ becG2JlkdSWhOSAA
PvD0/r9aQGhti/uN/wB/DTDGBI65bAPHzH0B/rUdntNurLMZt3zFyep+nb6V M/8Ar5f94fyFAxvl
j1b/AL6NHlj1b/vo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+ jTqKAG+WPVv++jR5
Y9W/76NOooAb5Y9W/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igBvlj1 b/vo0eWPVv8Avo06
igBvlj1b/vo0eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPVv++jR5Y9 W/76NOooAb5Y9W/7
6NHlj1b/AL6NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/AL6NHlj1b/vo06ig Bvlj1b/vo0eWPVv+
+jTqKAG+WPVv++jR5Y9W/wC+jTqKAG+WPVv++jR5Y9W/76NOooAb5Y9W/wC+ jR5Y9W/76NOooAb5
Y9W/76NHlj1b/vo06igBvlj1b/vo0eWPVv8Avo06igBvlj1b/vo0eWPVv++j TqKAG+WPVv8Avo0e
WPVv++jTqKAG+WPVv++jR5Y9W/76NOooAb5Y9W/76NHlj1b/AL6NOooAb5Y9 W/76NHlj1b/vo06i
gCvOTEV2MRnOcnP86KS76p+P9KKBF+1/1I/3m/majktGkBVmiZNxYK8W7Gfx 96hREIJKqTuPUe9O
8uP+4v5U7gWIYnR3d3DFgBwuMYz/AI0otoBEYhBGI2OSgQYJ+lNdbaNlVkjD OcKu0ZP0FMcwRyBW
tvlyFMmwbQT0Hqeo6DHP1oAmWCFF2pFGo44CgdDkfrzTPscBn84xIXwMZUfK QScj3yaT/Q/+mH39
nb73p9fahfsbruTyGHHIwepwP14oAkaCFipaKMlCWUlRwSckj8ad5abt2xc5 3Zx3xjP5cVCVgFws
JgXLIXDbRjggEfqKk8iH/nkn/fIoABBCJBIIo94zhtoyM5zz+J/OhIIY5GkS KNXbqwUAn8ah8yw8
vzN9tszt3ZXGfTNO/wBD87yf3Hm/3ON3r0oAklUsoAGeagFuVZmEYDN94jGT 9adusgwXNvuLbAMr
kt6fXkUM1ksvlMbcSZA2ErnJ6cUANW3KZ2RhdxycYGT60j/6+X/eH8hUgFqZ zCEiLgZIG3I6dR17
0f6H53k/uPN/ucbvXpQBHRUg+xs4QeQWJK7RjOR1H4U3zLDzPL322/O3blc5 9MUrANoprz2y3Bh+
ysSJFjyIxjJGf0HWpf8ARvtPkeSN+0tkx4GBjv369qLAMoqx5EP/ADyT/vkV X8y33f8AHt+737PM
2rtznGOuevHT9KLAFFNee2W4MP2ViRIseRGMZIz+g61a8iH/AJ5J/wB8iiwF eipP9D87yf3Hm/3O
N3r0oH2NnCDyCxJXaMZyOo/CiwEdFSH7GJDGfI3jGV4yM4xx+I/Oj/Q/O8n9 x5v9zjd69KLAR0Us
slpE4TZGz7lUqu3K5IAJHpyPzp4FqZzCEiLgZIG3I6dR170WAjoqQfY2cIPI LEldoxnI6j8KR2sk
Zlc26sgywJUED3/MfnRYBlFO8yw8zy99tvzt25XOfTFRvPbLcGH7KxIkWPIj GMkZ/QdaLAOoprzQ
r5n+hMfLkEZwqck4xjn3H5/WkeeJHKf2fKxAYjCJ8wU4JAznuPrRYB9FN86H z2iFkxKvtJCp7c4z
nHzDt3q15EP/ADyT/vkUWAr0UeZb7v8Aj2/d79nmbV25zjHXPXjp+lNee2W4 MP2ViRIseRGMZIz+
g60WAdRTnMEcgVrb5chTJsG0E9B6nqOgxz9aei20jMqpGWQ4ZdoyPqKLARUV Y8iH/nkn/fIo8iH/
AJ5J/wB8iiwFeirHkQ/88k/75FHkQ/8APJP++RRYCvRVjyIf+eSf98ijyIf+ eSf98iiwFeirHkQ/
88k/75FHkQ/88k/75FFgK9FWPIh/55J/3yKPIh/55J/3yKLAV6KseRD/AM8k /wC+RR5EP/PJP++R
RYCvRVjyIf8Ankn/AHyKPIh/55J/3yKLAV6KseRD/wA8k/75FHkQ/wDPJP8A vkUWAr0VY8iH/nkn
/fIo8iH/AJ5J/wB8iiwFeipngh2/6pOo/hFQbYv+eUfPtQMWioJlTz4FCKAS cgDrxUb3FsjlWj5B
x90UWGouWiQ676p+P9KKLtFRlAUDrnAooJJ4/un/AHj/ADp1Nj+6f94/zp1A yXyWjmMkTAhz86vk
nr2PbqeOn05NOeMyTLuAMSjP3urZ4yMdvr+HQ055Y42VWYBnOFXufoKDIBMs WDuZSw9MAj/EUxFb
7PN9s+0Yj+/jZuONuMbun3+30496rtp8zo2Y4AzCYZDE4L9D0/D6flWpRQBW dJzepIqRmNVK5LkH
BKknGPb1qzVV70L5n7iU+XIIzjbyTjGOfcfn9akFwPOEbRyKGJVXIGGIycev Y9scfSgCP7M/2rOV
+z58zb33/Tpjv67uaiWydZuUDp5pkyZ3HVt33MY4/XFWGufnwkMki7gpdAMA 5x65474/oanoAqwR
TR3c7mOLbK+dwc7sBQAMY9vXvUf2WZp8lI1XzN2VlYjGc/cIxk+vrz1qb7WC 2FhlZd+wOqgjOcHv
kY55Ixx9KkM8IkMZlj3jGV3DIzjHH4j86AInSc3qSKkZjVSuS5BwSpJxj29a Z9nmx5OI/K83zN+4
7vv78bcfh19/apo7mN5WjJ2OrlArEZbAByOeeCKd58PneT5sfm/3Nw3evSgC o9tOWnZY4d0kyOCX
IJVccH5f9n9T+Nn7NH5m/dLnOcec+Pyzj8Kcs8LruSWNhxyGB6nA/Xijz4fO 8nzY/N/ubhu9elAD
vLTdu2LnO7OO+MZ/LioHSc3qSKkZjVSuS5BwSpJxj29as1E9zAjMrzxqyDLA uAQPf8x+dAC/vvtH
/LPyNnvu3Z/LGKr/AGebHk4j8rzfM37ju+/vxtx+HX39qsefD53k+bH5v9zc N3r0oE8LOEEsZYkr
tDDOR1H4UAO8tN27Yuc7s474xn8uKdUfnw+d5Pmx+b/c3Dd69KT7TAGC+fHu LbAN4yW9PryKAKq2
TrNygdPNMmTO46tu+5jHH64oe2nLTsscO6SZHBLkEquOD8v+z+p/G358PneT 5sfm/wBzcN3r0pqX
du8zQrNGZFO0pu5z9KAIlgkVhGY4XjEpkDsSSCWJ4XHXnGc+/tSfZ5seTiPy vN8zfuO77+/G3H4d
ff2qx58PneT5sfm/3Nw3evSmS3cUThNwZ9yqVVhlckAEjPTkfnQBXltZynlo sLKs3nKzE5J37sdO
OpGefpzxM6Tm9SRUjMaqVyXIOCVJOMe3rVmoIbuKXau4JIxIEbMN3BIPAPsa AK7205adljh3STI4
JcglVxwfl/2f1P4xypJ5i2wjDBZxKHKN3fcecYGATzk9MY5q613bLu3XEQ2n a2XHB9D+R/KpqAIf
s0fmb90uc5x5z4/LOPwqTy03bti5zuzjvjGfy4qAXg81kaGRVRxGXO3GTjHf POR271L58PneT5sf
m/3Nw3evSgCB7aRpXA2eXJKkpYk5BXbxjHP3eue/tUjxyG9ikATy1RlJLHOS QemP9n170/z4fO8n
zY/N/ubhu9elSUAVYLYpeT3EkcYZz8rKxJ24AweP9kH8fzk+zR+Zv3S5znHn Pj8s4/CpqKAKP2N/
P3bIs+Zv8/P7zGc7enp8vXp+VXPLTdu2LnO7OO+MZ/LikSWORmVWBZDhl7j6 in0ARPGZJl3AGJRn
73Vs8ZGO31/Doab5LSTCSVgAh+RUyD17nv0HHT68Gp6KACiiigAooooAKKKK ACiiigAooooAKKKK
ACiiigAooooAKKKKAGyEBck4AIyT9az3EMjBmlOR0w4GKvyqrxlXUMD2IzVf 7Lb/APPCL/vgf5/z
+YBWlZWubfawOCe+f4aZJYLJIz+cRuOcbP8A69WzbwqMrDGD6hR/n/P5t8uP +4v5UXsXCcoO8SG9
OXU+uaKbdKF2BQAOen4UUiCxH90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51 fJPXse3U8dPpyakK
AzK+0ZVSN2eRkjjH4fpQ8scbKrMAznCr3P0FJ58P/PWP7+z7w+96fX2piG/Z o/M37pc5zjznx+Wc
fhR9mj8zfulznOPOfH5Zx+FK1zAsvlNPGJMgbC4zk9OKbLdxROE3Bn3KpVWG VyQASM9OR+dAEEti
73ZlDrtLhj6/wH/2mP8Avo+nMphka7WRljUIT8653MuDhSMdOc9eo6ek/mJ5 nl71343bc849cUxr
mBZfKaeMSZA2FxnJ6cUAMSOaJikflmIuX3MTuGTkjHfqecjr3xzYqMzwiQxm WPeMZXcMjOMcfiPz
psdzG8rRk7HVygViMtgA5HPPBFAEDWsjz+Y0durbw3nICHCg8DpzkDB5HXp6 uWCRWEZjheMSmQOx
JIJYnhcdecZz7+1T+fD53k+bH5v9zcN3r0oWeF13JLGw45DA9TgfrxQBUe2n LTsscO6SZHBLkEqu
OD8v+z+p/EWydZuUDp5pkyZ3HVt33MY4/XFW/Ph87yfNj83+5uG716VJQBlt p8zo2Y4AzCYZDE4L
9D0/D6flT5bKcuSmziUSAmVgG+bONo4H15zjPU8XfPh/56x/f2feH3vT6+1C zwuu5JY2HHIYHqcD
9eKAJKzJUk8xbYRhgs4lDlG7vuPOMDAJ5yemMc1fMoFwsJVsshcNxjggEfqK BPCzhBLGWJK7Qwzk
dR+FAFRbJ1m5QOnmmTJncdW3fcxjj9cUPbTlp2WOHdJMjglyCVXHB+X/AGf1 P42muYFl8pp4xJkD
YXGcnpxT/MTzPL3rvxu255x64oApLZOs3KB080yZM7jq277mMcfripYIpo7u dzHFtlfO4Od2AoAG
Me3r3qbz4f8AnrH9/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oApy2U5clNnEo kBMrAN82cbRwPrzn
Gep4srHNHcSFPLKSOHLEnI4Axjv0657+3Ky3cUThNwZ9yqVVhlckAEjPTkfn S/a7bzPL+0Rb87du
8Zz6YoArLZOs3KB080yZM7jq277mMcfriiW1nKeWiwsqzecrMTknfux046kZ 5+nPEr3yLcGHypSR
IseQvGSM/oOtSR3MbytGTsdXKBWIy2ADkc88EUATVQitZwnlusKq03nMyk5B 37sdOegGePpxzZS7
t3maFZozIp2lN3OfpQl3bvM0KzRmRTtKbuc/SgCBo99+YwH8skSyZQ4LLjHP v8p4/ue5q7UYnhZw
gljLEldoYZyOo/CneYnmeXvXfjdtzzj1xQBWitT9qmlmUYZwyASMRwAOV6Z4 z3/SoZbKcuSmziUS
AmVgG+bONo4H15zjPU8XXl2zRxgZL5J56Ad/zIH40PLtmjjAyXyTz0A7/mQP xoAqLZOs3KB080yZ
M7jq277mMcfrir9Qtd2y7t1xENp2tlxwfQ/kfyoa7tl3briIbTtbLjg+h/I/ lQAfZo/M37pc5zjz
nx+WcfhR9mj8zfulznOPOfH5Zx+FDXdsu7dcRDadrZccH0P5H8qmoAg8lpJh JKwAQ/IqZB69z36D
jp9eDU9Qtd2y7t1xENp2tlxwfQ/kfyoFwPOEbRyKGJVXIGGIycevY9scfSgC aiio/Ph87yfNj83+
5uG716UASUVF9pgDBfPj3FtgG8ZLen15FD3MCMyvPGrIMsC4BA9/zH50AS0V G8u2aOMDJfJPPQDv
+ZA/Gmi4HnCNo5FDEqrkDDEZOPXse2OPpQBNRVf7Wu7/AFcnl79nmcbc5xjr nrx0/Sj7Wu7/AFcn
l79nmcbc5xjrnrx0/SgCxRUX2hPtPkYfftLZKkDAx379e1K8u2aOMDJfJPPQ Dv8AmQPxoAkoqq96
Edk8iUsrhQo25bOcEc9OP5+hxHJqkUczxGKUusix4G3ktkjHPtQBeoqKGfzZ JU8t18ptpLYwTjPG
D6EfnTPtYLYWGVl37A6qCM5we+RjnkjHH0oAsUVGZ4RIYzLHvGMruGRnGOPx H502O5jeVoydjq5Q
KxGWwAcjnngigCaio/Ph87yfNj83+5uG716ULPC67kljYcchgepwP14oAkoq Pz4fO8nzY/N/ubhu
9elQvfItwYfKlJEix5C8ZIz+g60AWH+6aj/z/n/P/wBeR/umo/8AP+f8/wD1 wBr/AHT/AJ/z/n8Y
6kf7p/z/AJ/z+MdIZWu+qfj/AEoou+qfj/SigRPH90/7x/nTqbH90/7x/nTq BkvktHMZImBDn51f
JPXse3U8dPpyai+zzfbPtGI/v42bjjbjG7p9/t9OPerHnw+d5Pmx+b/c3Dd6 9KDKBcLCVbLIXDcY
4IBH6imIq/ZZmnyUjVfM3ZWViMZz9wjGT6+vPWkltZynlosLKs3nKzE5J37s dOOpGefpzxb8+Hzv
J82Pzf7m4bvXpQs8LruSWNhxyGB6nA/XigBvlv8AbPM2RbPL27sfPnPTPp/W q/2WZp8lI1XzN2Vl
YjGc/cIxk+vrz1q158PneT5sfm/3Nw3evSgTws4QSxliSu0MM5HUfhQBAsEi sIzHC8YlMgdiSQSx
PC4684zn39qje2nLTsscO6SZHBLkEquOD8v+z+p/Gyl3bvM0KzRmRTtKbuc/ So/to89ohBKSr7SR
t9ucZzj5h270ARLZOs3KB080yZM7jq277mMcfriom0+Z0bMcAZhMMhicF+h6 fh9PyrQ8+HzvJ82P
zf7m4bvXpSfaYAwXz49xbYBvGS3p9eRQBTlspy5KbOJRICZWAb5s42jgfXnO M9Txo1Gs8LruSWNh
xyGB6nA/Xio1u1MzxtHIgV9m9sbSeCBwe+R1+nXigCP7PN9s+0Yj+/jZuONu Mbun3+30496rtp8z
o2Y4AzCYZDE4L9D0/D6flWh58PneT5sfm/3Nw3evSoX1C3W4WBXV3JwQHX5T nHc/oMmgBXSc3qSK
kZjVSuS5BwSpJxj29ahe2nLTsscO6SZHBLkEquOD8v8As/qfxt+fD53k+bH5 v9zcN3r0o8+H/nrH
9/Z94fe9Pr7UAVfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVjy3+2eZsi2eXt3Y+ fOemfT+tOMoFwsJV
sshcNxjggEfqKal3bvM0KzRmRTtKbuc/SgCH7PN9s+0Yj+/jZuONuMbun3+3 0496b9lmafJSNV8z
dlZWIxnP3CMZPr689asfa7bzPL+0Rb87du8Zz6YqN75FuDD5UpIkWPIXjJGf 0HWgCKW1nKeWiwsq
zecrMTknfux046kZ5+nPFn7NH5m/dLnOcec+Pyzj8KV7mBGZXnjVkGWBcAge /wCY/Ol8+H/nrH9/
Z94fe9Pr7UAO8tN27Yuc7s474xn8uKpPbTlp2WOHdJMjglyCVXHB+X/Z/U/j b8+HzvJ82Pzf7m4b
vXpQZQLhYSrZZC4bjHBAI/UUARrHNHcSFPLKSOHLEnI4Axjv0657+3Isc0dx IU8spI4csScjgDGO
/Trnv7cyCeMzmEMpcDJAYZHTqOveoX1C3W4WBXV3JwQHX5TnHc/oMmgCBI3m u7kCIKhmRjIwIJCh
eBxyMqe/f87flv8AbPM2RbPL27sfPnPTPp/WnCeMzmEMpcDJAYZHTqOvejz4 fO8nzY/N/ubhu9el
ADYUbzJZZBhnO0D0UZx/U/jjtRCjeZLLIMM52geijOP6n8cdqSW7iicJuDPu VSqsMrkgAkZ6cj86
Y98i3Bh8qUkSLHkLxkjP6DrQAySzke5LiQCNnVyOeo29v+Af+PH05JLOR7ku JAI2dXI56jb2/wCA
f+PH05tJLHIzKrAshwy9x9RT6AKUlnI9yXEgEbOrkc9Rt7f8A/8AHj6c2f33 2j/ln5Gz33bs/ljF
SUUAUpLOR7kuJAI2dXI56jb2/wCAf+PH05kMMjXayMsahCfnXO5lwcKRjpzn r1HT0s0UAR/vvtH/
ACz8jZ77t2fyxiq/2ebHk4j8rzfM37ju+/vxtx+HX39quUUAVYIpo7udzHFt lfO4Od2AoAGMe3r3
qtKknmLbCMMFnEoco3d9x5xgYBPOT0xjmtOigCGFG8yWWQYZztA9FGcf1P44 7VGiXP2ou6xFckbt
5JCdgBjjtnn+mLVFAFP7PNjycR+V5vmb9x3ff3424/Dr7+1H2ebHk4j8rzfM 37ju+/vxtx+HX39q
uUUAVnSc3qSKkZjVSuS5BwSpJxj29afCjeZLLIMM52geijOP6n8cdqmooApy R3ZnMqiLKnagLnGw
9c/L1OB+Q98xy2k7SSyBIixlV0JkI+Ubcg8d9g/P89CigCmI7tZpSgiCySq+ 7echRtBGNvcD170j
Wsjz+Y0durbw3nICHCg8DpzkDB5HXp63aKAKiwSKwjMcLxiUyB2JJBLE8Ljr zjOff2qN7actOyxw
7pJkcEuQSq44Py/7P6n8b9FAFBbJ1m5QOnmmTJncdW3fcxjj9cVE2nzOjZjg DMJhkMTgv0PT8Pp+
ValFAGdLZTlyU2cSiQEysA3zZxtHA+vOcZ6ni/5abt2xc53Zx3xjP5cU6igB r/dNR/5/z/n/AOvI
/wB01H/n/P8An/64A1/un/P+f8/jHUj/AHT/AJ/z/n8Y6Qytd9U/H+lFF31T 8f6UUCJ4/un/AHj/
ADp1Nj+6f94/zp1Axi2TrNygdPNMmTO46tu+5jHH64qZ0nN6kipGY1UrkuQc EqScY9vWrNMeWONl
VmAZzhV7n6CmIprZOs3KB080yZM7jq277mMcfriom0+Z0bMcAZhMMhicF+h6 fh9PyrQ8+H/nrH9/
Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oAqrZOs3KB080yZM7jq277mMcfrih7 actOyxw7pJkcEuQS
q44Py/7P6n8bEt3FE4TcGfcqlVYZXJABIz05H51L5ieZ5e9d+N23POPXFAEK xzR3EhTyykjhyxJy
OAMY79Oue/ty2C2KXk9xJHGGc/KysSduAMHj/ZB/H85vPh87yfNj83+5uG71 6UGUC4WEq2WQuG4x
wQCP1FAFf7PNjycR+V5vmb9x3ff3424/Dr7+1Ogimju53McW2V87g53YCgAY x7evepvPh87yfNj8
3+5uG716ULPC67kljYcchgepwP14oAz20+Z0bMcAZhMMhicF+h6fh9PyqwLe ZppfMEaxPKsmVYlv
l24GMcfdB/T3qx58PneT5sfm/wBzcN3r0oE8LOEEsZYkrtDDOR1H4UAVFsnW blA6eaZMmdx1bd9z
GOP1xUqpci8eXy4tjBU/1hyACecbffpUiXdu8zQrNGZFO0pu5z9KmoAzpbKc uSmziUSAmVgG+bON
o4H15zjPU8ST205aTyvLKvKkvzEg5Xb8vT/Z6/hjvVkTws4QSxliSu0MM5HU fhR58PneT5sfm/3N
w3evSgCJ0nN6kipGY1UrkuQcEqScY9vWlWOaO4kKeWUkcOWJORwBjHfp1z39 uZFnhddySxsOOQwP
U4H68UefD53k+bH5v9zcN3r0oAb9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd 8Yz+XFR/a7bzPL+0
Rb87du8Zz6YqN75FuDD5UpIkWPIXjJGf0HWgCvcxSxRqpjV41uBIGVWZuX3H gDjAJ5z296lntpy0
nleWVeVJfmJByu35en+z1/DHepmufnwkMki7gpdAMA5x65474/oaf58PneT5 sfm/3Nw3evSgClLZ
TlyU2cSiQEysA3zZxtHA+vOcZ6niw6Tm9SRUjMaqVyXIOCVJOMe3rUqzwuu5 JY2HHIYHqcD9eKFn
hddySxsOOQwPU4H68UAROk5vUkVIzGqlclyDglSTjHt60ipci8eXy4tjBU/1 hyACecbffpU3nw+d
5Pmx+b/c3Dd69KBPCzhBLGWJK7QwzkdR+FAETpOb1JFSMxqpXJcg4JUk4x7e tQrZOs3KB080yZM7
jq277mMcfrirUM/mySp5br5TbSWxgnGeMH0I/Ol8+HzvJ82Pzf7m4bvXpQBU ltZynlosLKs3nKzE
5J37sdOOpGefpzxd8tN27Yuc7s474xn8uKY9zAjMrzxqyDLAuAQPf8x+dKJ4 zOYQylwMkBhkdOo6
96AGeS0kwklYAIfkVMg9e579Bx0+vBqeoxPCzhBLGWJK7QwzkdR+FQvfItwY fKlJEix5C8ZIz+g6
0AWqKYkscjMqsCyHDL3H1FPoAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKK
KACiiigBr/dNR/5/z/n/AOvI/wB01H/n/P8An/64A1/un/P+f8/jHUj/AHT/ AJ/z/n8Y6Qytd9U/
H+lFF31T8f6UUCJ4/un/AHj/ADp1Nj+6f94/zp1Ay5UHktHMZImBDn51fJPX se3U8dPpyanopiKf
2eb7Z9oxH9/GzccbcY3dPv8Ab6ce9N+yzNPkpGq+ZuysrEYzn7hGMn19eetW 3ljjZVZgGc4Ve5+g
pPPh/wCesf39n3h970+vtQBUltZynlosLKs3nKzE5J37sdOOpGefpzxZ8t/t nmbItnl7d2Pnznpn
0/rStcwLL5TTxiTIGwuM5PTimy3cUThNwZ9yqVVhlckAEjPTkfnQBXWydZuU Dp5pkyZ3HVt33MY4
/XFTOk5vUkVIzGqlclyDglSTjHt61P5ieZ5e9d+N23POPXFNM8IkMZlj3jGV 3DIzjHH4j86AKi2T
rNygdPNMmTO46tu+5jHH64qJtPmdGzHAGYTDIYnBfoen4fT8q0PPh87yfNj8 3+5uG716ULPC67kl
jYcchgepwP14oAqLZOs3KB080yZM7jq277mMcfrih7actOyxw7pJkcEuQSq4 4Py/7P6n8bYnhZwg
ljLEldoYZyOo/CgygXCwlWyyFw3GOCAR+ooAjWOaO4kKeWUkcOWJORwBjHfp 1z39ubFR+fD53k+b
H5v9zcN3r0o8+H/nrH9/Z94fe9Pr7UAVHtpy07LHDukmRwS5BKrjg/L/ALP6 n8Wy2U5clNnEokBM
rAN82cbRwPrznGep4me+KOU+yXDEBiMBfmCnBIGc9x9ala7tl3briIbTtbLj g+h/I/lQBRbT5nRs
xwBmEwyGJwX6Hp+H0/KpVsnWblA6eaZMmdx1bd9zGOP1xVsTws4QSxliSu0M M5HUfhR58PneT5sf
m/3Nw3evSgBv2aPzN+6XOc4858flnH4VJ5abt2xc53Zx3xjP5cUiSxyMyqwL IcMvcfUU+gCukc0T
FI/LMRcvuYncMnJGO/U85HXvjmP7PNjycR+V5vmb9x3ff3424/Dr7+1XKKAM ttPmdGzHAGYTDIYn
Bfoen4fT8qG0+Z0bMcAZhMMhicF+h6fh9PyrUooAp/Z5seTiPyvN8zfuO77+ /G3H4dff2pj205ad
ljh3STI4JcglVxwfl/2f1P436KAKYju1mlKCILJKr7t5yFG0EY29wPXvR9nm x5OI/K83zN+47vv7
8bcfh19/arlFAGZKknmLbCMMFnEoco3d9x5xgYBPOT0xjmrTpOb1JFSMxqpX Jcg4JUk4x7etWaKA
KD205adljh3STI4JcglVxwfl/wBn9T+N3y03bti5zuzjvjGfy4p1FAEHktJM JJWACH5FTIPXue/Q
cdPrwanoooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigBr/AHTU
f+f8/wCf/ryP901H/n/P+f8A64A1/un/AD/n/P4x1I/3T/n/AD/n8Y6Qytd9 U/H+lFF31T8f6UUC
J4/un/eP86dTY/un/eP86dQMuUUUUxEHktHMZImBDn51fJPXse3U8dPpyai+ zzfbPtGI/v42bjjb
jG7p9/t9OPerlMeWONlVmAZzhV7n6CgCp9lmafJSNV8zdlZWIxnP3CMZPr68 9aSW1nKeWiwsqzec
rMTknfux046kZ5+nPFvz4f8AnrH9/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04o ATy3+2eZsi2eXt3Y
+fOemfT+tRLBIrCMxwvGJTIHYkkEsTwuOvOM59/apJbuKJwm4M+5VKqwyuSA CRnpyPzqXzE8zy96
78btueceuKAKv2ebHk4j8rzfM37ju+/vxtx+HX39qrtp8zo2Y4AzCYZDE4L9 D0/D6flV9rmBZfKa
eMSZA2FxnJ6cUvnw+d5Pmx+b/c3Dd69KAKSRvNd3IEQVDMjGRgQSFC8DjkZU 9+/52HSc3qSKkZjV
SuS5BwSpJxj29ake5gRmV541ZBlgXAIHv+Y/Ol8+H/nrH9/Z94fe9Pr7UAVF snWblA6eaZMmdx1b
d9zGOP1xT/s832z7RiP7+Nm4424xu6ff7fTj3qx58PneT5sfm/3Nw3evSgTw s4QSxliSu0MM5HUf
hQAx45DexSAJ5aoykljnJIPTH+z696haPffmMB/LJEsmUOCy4xz7/KeP7nua smeESGMyx7xjK7hk
Zxjj8R+dHnw+d5Pmx+b/AHNw3evSgCkkbzXdyBEFQzIxkYEEhQvA45GVPfv+ blsnWblA6eaZMmdx
1bd9zGOP1xVxJY5GZVYFkOGXuPqKfQBB5LSTCSVgAh+RUyD17nv0HHT68Gp6 KKACiiigAooooAKK
KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooo
oAKKKKAGv901H/n/AD/n/wCvI/3TUf8An/P+f/rgDX+6f8/5/wA/jHUj/dP+ f8/5/GOkMrXfVPx/
pRRd9U/H+lFAieP7p/3j/OnVSaJmlYlpfmJ2ojkZ68+39T265WFf3yENKpxu 2PIWyOeR/h9D65NC
uV2ubFFFFMkKg8lo5jJEwIc/Or5J69j26njp9OTU9FAFP7PN9s+0Yj+/jZuO NuMbun3+30496b9l
mafJSNV8zdlZWIxnP3CMZPr689a59Li9dWZZ5yqjLHecD8aXzr//AJ63P3d/ 3m+76/T3rTkJ5jel
tZynlosLKs3nKzE5J37sdOOpGefpzxZ8t/tnmbItnl7d2Pnznpn0/rXMiXUW j8xXujHjO4FsfnTo
3v5EL/aJ1TaSGZmw2ASQD68H8qOTzDmNz7LM0+Skar5m7KysRjOfuEYyfX15 60i2TrNygdPNMmTO
46tu+5jHH64rA+03vl+Z59xszjdvbGfTNL51/wCV5vm3Pl/39zY/OjkDmNu5 ilijVTGrxrcCQMqs
zcvuPAHGATznt71LPbTlpPK8sq8qS/MSDldvy9P9nr+GO9c+Li7MBlF3LgMF K+Y2eQSD+ho86/8A
K83zbny/7+5sfnRyBzG8tk6zcoHTzTJkzuOrbvuYxx+uKHtpy07LHDukmRwS 5BKrjg/L/s/qfxwW
mv0OGluVPPBZh0GT+nNHnX/leb5tz5f9/c2Pzo5A5jolgkVhGY4XjEpkDsSS CWJ4XHXnGc+/tUa2
TrNygdPNMmTO46tu+5jHH64rBM1+E3mW5CgA5LNjB6GnM+opEJWkuRGRkNub GKOTzDmOk8lpJhJK
wAQ/IqZB69z36Djp9eDU9cf9tuv+fmb/AL+Gnma/CbzLchQAclmxg9DR7MOY 62iuS86/8rzfNufL
/v7mx+dDTX6HDS3Knngsw6DJ/TmjkDmOtorkvOv/ACvN8258v+/ubH507fqX l+Zuu9mM7stjHrmj
k8w5jq6K5dTetAJftrAFGkwZWzgHH6npUXnX/wDz1ufu7/vN931+nvRyeYcx 1tFcmJdRaPzFe6Me
M7gWx+dJ51/5Xm+bc+X/AH9zY/Ojk8w5jraK5PzdR2lt91gLuJy3T1+lIZr8 JvMtyFAByWbGD0NH
J5hzHW0VyXnX/leb5tz5f9/c2Pzoaa/Q4aW5U88FmHQZP6c0cgcx1tFcl51/ 5Xm+bc+X/f3Nj86l
U3rQCX7awBRpMGVs4Bx+p6UcnmHMdRRXH/bbr/n5m/7+GpPN1HaW33WAu4nL dPX6UezDmOsorkvO
v/K83zbny/7+5sfnUqjUWgMxnuFQDIJL/MMZ7fzNHJ5hzHUUVym/UvL8zdd7 MZ3ZbGPXNPU3rQCX
7awBRpMGVs4Bx+p6UuTzC51FFcl51/8A89bn7u/7zfd9fp70ol1Fo/MV7ox4 zuBbH50+TzDmOsor
kvOv/K83zbny/wC/ubH50vm6jtLb7rAXcTlunr9KOTzDmOsorkjNfhN5luQo AOSzYweho86/8rzf
NufL/v7mx+dHIHMdbRXJNNfocNLcqeeCzDoMn9OaPOv/ACvN8258v+/ubH50 cgcx1tFcvuu/LVhf
MxZC4QO+cDOe2OMHv2qLzr/yvN8258v+/ubH50cgcx1tFcuo1FoDMZ7hUAyC S/zDGe38zQpvWgEv
21gCjSYMrZwDj9T0pcnmFzqKK5JLm6aKSQ3UwCYA+c8k9uvoCfwpHuL1FVmn nCsMqd5wfxp8gcx1
1FFFZlBRRRQA1/umo/8AP+f8/wD15H+6aj/z/n/P/wBcAa/3T/n/AD/n8Y6k f7p/z/n/AD+Nczxg
kZPHH3TSGk3sRXfVPx/pRRdEMIyOhBI/SigBu7MxdFLyR5AQd/mzn9enXp60 Iha8Ezh03ZIVhyT3
/D3+lOMcJ5aBJJGLYG0ZPJ70sAg3jFukUmNy8DkeoNLS5peXKalFFFUZBRRR QBx+/wAyIJIhyo+Q
pgfmO/Qc9frxUvmx/ZfI+f7md20Z3Zzt6/d/rzXQyQWSMqvDAGc/KuwZb8KT y9P/ALlt9/Z0X73p
9fatOdBZGB5yCHALsxj24Mag5xj7+c49vTApYpog+9jMC8XlFVAwBt25689j jj/HdZNOWXymW1Eh
I+Qhc57cU2UWEb7PIgdyyhlVVyuSACR6cj86OdBZHOZH2Ty8y79+7bn5MY64 9asG5DRDBKP5ezAh
U/w4+9nPP9a6D7PZeZ5fkwb8btu0Zx64pvl6f53k7Lbzf7mF3evSjnQWRzie V9keMtJ5jENgIMcA
8Zz71KbkNEMEo/l7MCFT/Dj72c8/1reMNr9oEJtI8spcNsXBwQD+PIo8vT/O 8nZbeb/cwu716Uc6
CyMVbuNXXa0xUGIgFQMhOo6/j9fzqM3IaIYJR/L2YEKn+HH3s55/rW8senyL uVLZgccgKc5OB+uR
R5en+d5Oy283+5hd3r0o5kFkYKTRbYFZpsJE6kBB1bPI5/2v0HrUJMckEYYP vRCoAAweSc57demP
510gj09n2BLYsWI24XJI6j6imqNNkmaFVtjIGwU2rnP070c4WRy21vSrqTRb YFZpsJE6kBB1bPI5
/wBr9B610X2O1/59of8AvgVGI9PZ9gS2LFiNuFySOo+oocwtEw4rmIKA4fmM oQI1JHy4zuPJ+nHX
83Ldxq67WmKgxEAqBkJ1HX8fr+dbXl6f53k7Lbzf7mF3evShY9PkXcqWzA45 AU5ycD9cijmQWRgm
5DRDBKP5ezAhU/w4+9nPP9ar+dL5ezZHjGP9UufzxnNdN5en+d5Oy283+5hd 3r0puNM8zy8Wm/dj
b8uc+mPWjnQWRzGZMYy2MYxntnOPz5qzDLEFj8wSArG0Y2gHg7uev+10/XtW 07WS3Bh+w7j5ix5E
QIJIz+g61MI9PZ9gS2LFiNuFySOo+oo5wsjA85BDgF2Yx7cGNQc4x9/Oce3p gUpuQ0QwSj+XswIV
P8OPvZzz/Wt7y9P87ydlt5v9zC7vXpSMmnLL5TLaiQkfIQuc9uKOdBZHPStH JbQory7o0wFKjbkn
J5z7+nYVIk0W2BWabCROpAQdWzyOf9r9B61usmnLL5TLaiQkfIQuc9uKRhpi 7twtBtbDZ28Hng+/
Bo5wsjFiuYgoDh+YyhAjUkfLjO48n6cdfzct3GrrtaYqDEQCoGQnUdfx+v51 teXp/neTstvN/uYX
d69KQpp27aVtdxbbjC5Len15/WjmQWRhG5DRDBKP5ezAhU/w4+9nPP8AWqmZ MYy2MYxntnOPz5rp
pRYRvs8iB3LKGVVXK5IAJHpyPzpjtZLcGH7DuPmLHkRAgkjP6DrRzoLI5ra3 pVmVo5LaFFeXdGmA
pUbck5POff07Cum+x2v/AD7Q/wDfAqIpp27aVtdxbbjC5Len15/WnzhaJhG5 DRDBKP5ezAhU/wAO
PvZzz/Woz5LWiR7pd6ln/wBWMEkDjr7frXReXp/neTstvN/uYXd69KheTThc CAQwO5bDABODnHOT
yevAyaXOgsjn/Ol8vZsjxjH+qXP54zmmZkxjLYxjGe2c4/PmunxpnmeXi037 sbflzn0x61G7WS3B
h+w7j5ix5EQIJIz+g60+dBZGLDLEFj8wSArG0Y2gHg7uev8AtdP17UvnIIcA uzGPbgxqDnGPv5zj
29MCt8R6ez7AlsWLEbcLkkdR9RR5en+d5Oy283+5hd3r0pc6CyME3IaIYJR/ L2YEKn+HH3s55/rU
crRyW0KK8u6NMBSo25Jyec+/p2FdCyacsvlMtqJCR8hC5z24oZNOWXymW1Eh I+Qhc57cUc6CyMJJ
otsCs02EidSAg6tnkc/7X6D1p0VzEFAcPzGUIEakj5cZ3Hk/Tjr+e0w0xd24 Wg2ths7eDzwffg07
y9P87ydlt5v9zC7vXpRzoLIxVu41ddrTFQYiAVAyE6jr+P1/OozchohglH8v ZgQqf4cfeznn+tbp
TTt20ra7i23GFyW9Prz+tNlFhG+zyIHcsoZVVcrkgAkenI/OjmQWRh+eggii AYjyyrNsAYZJPBzn
vjHGR9aU3IaIYJR/L2YEKn+HH3s55/rWz/onmujWIVVkCM5RMZOMd885HbvU vl6f53k7Lbzf7mF3
evSjnQWRzp8lrRI90u9Sz/6sYJIHHX2/WoMyYxlsYxjPbOcfnzXRvJpwuBAI YHcthgAnBzjnJ5PX
gZNDtZLcGH7DuPmLHkRAgkjP6DrRzhaJz8pzHFHHyqjcT6scZ/oPw96UPsi2 RISXHzF8H8h269ev
0zXSvBarNHGLWFi+SfkHAHfp6kD8aVILKRnVYYCyn5l2DI+oo5wsi1RRRWYB RRRQA1/umo/8/wCf
8/8A15H+6aj/AM/5/wA//XAGv90/5/z/AJ/GqbdSSd7DJz2/wq0/3T/n/P8A n8apuFBI2McHHb/G
guPN0I7lQqxqOgBH8qKLlgyxsOhBP8qKRL3HMrBhMil2TICj13Eg02OJ5Lo3 Dq6Drhxzk/0qxH90
/wC8f506lYvndrFyiiiqMwoopjyxxsqswDOcKvc/QUAVztimaSOVcFgJFckn qeh7Ac8dOD05NREE
XhuC0XEm0puONuMbun3+CM9MAjPGatMypNDGqAkg9ONqjr+u0Y9/agS24xiS IYbyxgjg/wB36+1B
XulMofPJYxIqy5JWViOufuEYzwcnscnqKSZH2GNTAVjn80M7HOd+7HTjuM89 D74uGe2SVYjLCsg+
UJuAIz2x+VNkuYIXVBtZwVTahGUBIAyM9OR+lAe6IXUXhkPk7Amwtj5856Z/ u8H8QfSqwhVJm3bX
QTbyTcOMZbd9zGOOfyPTmr4MQkEYKBwuQoxkL9PSmGe2SVYjLCsg+UJuAIz2 x+VAe6QySP8AbVkH
k+XGChJcg8kEnGO209/Xpg1CIVSZt210E28k3DjGW3fcxjjn8j05q6JbcTCE SRCUDAQEbgOvSkae
2iYq0sKNGvILAFRx+Q6fpQHumc9sSj7hbqx84E7icF+h+72wQfYH0IqUQqkz btroJt5JuHGMtu+5
jHHP5HpzV0S24xiSIYbyxgjg/wB36+1AltxMIRJEJQMBARuA69KA90pSo+64 YCDc06NkuQcLjg/L
/sn2GT6VOHMVxKVeLY8gZmYnK8AEAY5+6ec8c+lTLLb71RJItwyiqCM8dQP0 4o823WTyxJEHQAbc
jKg4xx+X6UB7o4zxDOXHBwf8/gfyPpVCVH3XDAQbmnRslyDhccH5f9k+wyfS roltxMIRJEJQMBAR
uA69KWN4WYrGV3R/KVxgr+HYcfjQHumfNC29irx/LMHyZWAPzZxtHA6HnnoS ec4Y9sSj7hbqx84E
7icF+h+72wQfYH0IrWCqMYUDAwMDoKAqjGFAwMDA6CgPdM4QqkzbtroJt5Ju HGMtu+5jHHP5HpzV
kpbiQuZZMhskec+M/TOMcH24PpVgKoxhQMDAwOgoCqMYUDAwMDoKA90jL24Y sdmQ2Scd8Yz+QIz7
H0qjkPdXIwiIZkYyNkMduOAMcjKt345P10gqjGFAwMDA6CgKoxhQMDAwOgoD 3TMmhbexV4/lmD5M
rAH5s42jgdDzz0JPOcPKHzyWMSKsuSVlYjrn7hGM8HJ7HJ6itAKoxhQMDAwO goCqMYUDAwMDoKA9
0zyh88ljEirLklZWI65+4RjPByexyeopZYs3Lv56iMyKzDJ6jb27/wCr6+7e nN8KoxhQMDAwOgoC
qMYUDAwMDoKA90okEAwlovKE3mF9x3ff34249iM57E9sU6FjFd3DsIQsknLB zuAC4HG3noe/HPoa
uBVGMKBgYGB0FAVRjCgYGBgdBQHumdMj7DGpgKxz+aGdjnO/djpx3Geeh98X S9uGLHZkNknHfGM/
kCM+x9KkCqMYUDAwMDoKAqjGFAwMDA6CgPdGmeIZy44OD/n8D+R9KqwsYru4 dhCFkk5YOdwAXA42
89D3459DVwKoxhQMDAwOgoCqMYUDAwMDoKA90zhCqTNu2ugm3km4cYy277mM cc/kenNSiSRLySUi
HYdqH94cgAtzjb7n8jzVwKoxhQMDAwOgoCqMYUDAwMDoKA90rlLcSFzLJkNk jznxn6Zxjg+3B9Kk
L24YsdmQ2Scd8Yz+QIz7H0qQKoxhQMDAwOgoCqMYUDAwMDoKA90zch7q5GER DMjGRshjtxwBjkZV
u/HJ+qTQtvYq8fyzB8mVgD82cbRwOh556EnnONMKoxhQMDAwOgoCqMYUDAwM DoKA90zyh88ljEir
LklZWI65+4RjPByexyeooKHzyWMSKsuSVlYjrn7hGM8HJ7HJ6itAKoxhQMDA wOgoCqMYUDAwMDoK
A90oSxZuXfz1EZkVmGT1G3t3/wBX1929OVIIBhLReUJvML7ju+/vxtx7EZz2 J7Yq8FUYwoGBgYHQ
UBVGMKBgYGB0FAe6U4WMV3cOwhCyScsHO4ALgcbeeh78c+hqKZH2GNTAVjn8 0M7HOd+7HTjuM89D
740QqjGFAwMDA6CgKoxhQMDAwOgoD3TPMX+kTzM6AiUMq+YxVsDGGGMfw5zz gj/ZpBCqTNu2ugm3
km4cYy277mMcc/kenNaIVRjCgYGBgdBQFUYwoGBgYHQUB7pTEkiXkkpEOw7U P7w5ABbnG33P5Hmr
Be3DFjsyGyTjvjGfyBGfY+lSBVGMKBgYGB0FAVRjCgYGBgdBQHuleJ0WSaWV gGLbcZ6KM4/9mPtk
jtSHa83mTSqBG2FVCQRz3PccdOnBznGRZCqMYUDAwMDoKAqjGFAwMDA6CgPd HUUUUEhRRRQA1/um
o/8AP+f8/wD15H+6aj/z/n/P/wBcAa/3T/n/AD/n8a5gjJJweefvGrD/AHT/ AJ/z/n8Y6Q02titd
AKIwOgBA/Sii76p+P9KKAJ4/un/eP86dTY/un/eP86dQBcooopiCoPJaOYyR MCHPzq+SevY9up46
fTk1I8scbKrMAznCr3P0FI8u2aOMDJfJPPQDv+ZA/GgBsKN5kssgwznaB6KM 4/qfxx2qH7PN9s+0
Yj+/jZuONuMbun3+30496sefD/z1j+/s+8Pven19qRrmBZfKaeMSZA2FxnJ6 cUAVvsszT5KRqvmb
srKxGM5+4RjJ9fXnrSS2s5Ty0WFlWbzlZick792OnHUjPP054sS3cUThNwZ9 yqVVhlckAEjPTkfn
UvmJ5nl71343bc849cUAR+W/2zzNkWzy9u7Hz5z0z6f1qv8AZZmnyUjVfM3Z WViMZz9wjGT6+vPW
rRnhEhjMse8Yyu4ZGcY4/EfnR58PneT5sfm/3Nw3evSgCotk6zcoHTzTJkzu OrbvuYxx+uKZcxSx
RqpjV41uBIGVWZuX3HgDjAJ5z296vLPC67kljYcchgepwP14oE8LOEEsZYkr tDDOR1H4UAVp7act
J5XllXlSX5iQcrt+Xp/s9fwx3pq2TrNygdPNMmTO46tu+5jHH64q2ZQLhYSr ZZC4bjHBAI/UUefD
53k+bH5v9zcN3r0oAqPbTlp2WOHdJMjglyCVXHB+X/Z/U/jIsEisIzHC8YlM gdiSQSxPC4684zn3
9qn8+H/nrH9/Z94fe9Pr7VA98Ucp9kuGIDEYC/MFOCQM57j60ARrZOs3KB08 0yZM7jq277mMcfri
rHktJMJJWACH5FTIPXue/QcdPrwaVru2XduuIhtO1suOD6H8j+VOE8LOEEsZ YkrtDDOR1H4UASUV
H58PneT5sfm/3Nw3evSlSWORmVWBZDhl7j6igB9FFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUANf 7pqP/P8An/P/ANeR
/umo/wDP+f8AP/1wBr/dP+f8/wCfxjqR/un/AD/n/P4x0hla76p+P9KKLvqn 4/0ooETx/dP+8f50
6mx/dP8AvH+dOoGXKKKY8scbKrMAznCr3P0FMRH5LRzGSJgQ5+dXyT17Ht1P HT6cmlhRvMllkGGc
7QPRRnH9T+OO1OeXbNHGBkvknnoB3/MgfjR58P8Az1j+/s+8Pven19qAK/2e b7Z9oxH9/GzccbcY
3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561Za5gWXymnjEmQNhcZyen FNlu4onCbgz7lUqr
DK5IAJGenI/OgCvLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/bPM2RbPL27 sfPnPTPp/WpPMTzP
L3rvxu255x64pvnw+d5Pmx+b/c3Dd69KAIFgkVhGY4XjEpkDsSSCWJ4XHXnG c+/tSfZ5seTiPyvN
8zfuO77+/G3H4dff2qwZQLhYSrZZC4bjHBAI/UUefD53k+bH5v8Ac3Dd69KA M9tPmdGzHAGYTDIY
nBfoen4fT8qekbzXdyBEFQzIxkYEEhQvA45GVPfv+d1Z4XXcksbDjkMD1OB+ vFHnw+d5Pmx+b/c3
Dd69KAInSc3qSKkZjVSuS5BwSpJxj29ahWydZuUDp5pkyZ3HVt33MY4/XFWx PCzhBLGWJK7Qwzkd
R+FNS7t3maFZozIp2lN3OfpQBD9nm+2faMR/fxs3HG3GN3T7/b6ce9SvHIb2 KQBPLVGUksc5JB6Y
/wBn171IkscjMqsCyHDL3H1FPoApNHvvzGA/lkiWTKHBZcY59/lPH9z3NRpG 813cgRBUMyMZGBBI
ULwOORlT37/no0UAUFsnWblA6eaZMmdx1bd9zGOP1xVjyWkmEkrABD8ipkHr 3PfoOOn14NT0UAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUANf7pqP/P8An/P/ANeR/umo/wDP+f8AP/1wBr/dP+f8 /wCfxjqR/un/AD/n
/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/dP8AvH+dOoGXKg8lo5jJ EwIc/Or5J69j26nj
p9OTU9MeWONlVmAZzhV7n6CmIZCjeZLLIMM52geijOP6n8cdqh+zzfbPtGI/ v42bjjbjG7p9/t9O
PerHnw/89Y/v7PvD73p9faka5gWXymnjEmQNhcZyenFAFb7LM0+Skar5m7Ky sRjOfuEYyfX1560k
trOU8tFhZVm85WYnJO/djpx1Izz9OeLEt3FE4TcGfcqlVYZXJABIz05H51L5 ieZ5e9d+N23POPXF
AEflv9s8zZFs8vbux8+c9M+n9arLZOs3KB080yZM7jq277mMcfrirfnw+d5P mx+b/c3Dd69KDKBc
LCVbLIXDcY4IBH6igCJ0nN6kipGY1UrkuQcEqScY9vWoVsnWblA6eaZMmdx1 bd9zGOP1xVvz4fO8
nzY/N/ubhu9elCzwuu5JY2HHIYHqcD9eKAM9tPmdGzHAGYTDIYnBfoen4fT8 qlWydZuUDp5pkyZ3
HVt33MY4/XFW/Ph87yfNj83+5uG716UCeFnCCWMsSV2hhnI6j8KAKj205adl jh3STI4JcglVxwfl
/wBn9T+M6xzR3EhTyykjhyxJyOAMY79Oue/ty5Lu3eZoVmjMinaU3c5+lTUA QeS0kwklYAIfkVMg
9e579Bx0+vBqeoxPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3Dd69KAJKKjWe F13JLGw45DA9Tgfr
xR58PneT5sfm/wBzcN3r0oAkoqH7XbeZ5f2iLfnbt3jOfT
Re: A Diagnostic Message for the Valid Schema [message #21086 is a reply to message #21027] Sun, 04 May 2003 17:13 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: paechoi.earthlink.net

This is a multi-part message in MIME format.

------=_NextPart_000_004F_01C3123E.E5BEE0B0
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0050_01C3123E.E5BEE0B0"


------=_NextPart_001_0050_01C3123E.E5BEE0B0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Ed,

Cool! Thank you much.

Regards,


Pae


"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB4F5F7.C85AE04B@ca.ibm.com...
Pae,=20
You have to use the org.eclipse.xsd.util.XSDParser to construct your =
DOM if you want line numbers.=20

Pae Choi wrote:=20

Ed, When I tried to get the line information by using the getLine() =
method in theXSDDiagnostic interface. It seems like returning 1 unlike =
line 7 and line 8shown in the screen capture in your privious message. =
How should we do to get the line number? Thank you. Regards, Pae =20
"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB25ED9.AE2CB299@ca.ibm.com...Pae,=20
I'm seeing this result with the just published 1.1.0 driver:=20


The schema isn't valid.=20
=20
Pae Choi wrote:=20

I have a simple test schema as follows:=20
<?xml version=3D"1.0" encoding=3D"UTF-8"?>=20
<!--W3C Schema generated by Pae -->=20
<xsd:schema xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema"=20
elementFormDefault=3D"qualified">=20
<xsd:element name=3D"CommonLogin">=20
<xsd:complexType>=20
<xsd:sequence>=20
<xsd:element name=3D"username" ref=3D"usernameRef"/>=20
<xsd:element name=3D"password" ref=3D"passwordRef"/>=20
</xsd:sequence>=20
</xsd:complexType>=20
</xsd:element>=20
<xsd:element name=3D"passwordRef" type=3D"xsd:string"/>=20
<xsd:element name=3D"usernameRef" type=3D"xsd:string"/>=20
</xsd:schema>=20

This is a very simple sample, but it is a valid schema. But when =

I use the validate() and getDiagnostics() methods in the =
XSDSchema=20
interface it gives me a message as follows:=20

XSD: The element '#null' is not permitted as constrained by 'XML =
Schema ';=20
expecting schema=20

I do not understand what the message is saying. Any comments?=20

Pae


------=_NextPart_001_0050_01C3123E.E5BEE0B0
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2600.0" name=3DGENERATOR></HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT size=3D2>Ed,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Cool! Thank you much.</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Regards,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Pae</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV>"Ed Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB4F5F7.C85AE04B@ca.ibm.com">news:3EB4F5F7.C85AE04B@ca.ibm.=
com</A>...</DIV>Pae,=20

<P>You have to use the org.eclipse.xsd.util.XSDParser to construct =
your DOM if=20
you want line numbers.=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">
<STYLE></STYLE>
<FONT size=3D-1>Ed,</FONT>&nbsp;<FONT size=3D-1>When I tried to get =
the line=20
information by using the getLine() method in the</FONT><FONT=20
size=3D-1>XSDDiagnostic interface. It seems like returning 1 unlike =
line 7 and=20
line 8</FONT><FONT size=3D-1>shown in the screen capture&nbsp; in =
your=20
privious message.</FONT>&nbsp;<FONT size=3D-1>How should we do to =
get the line=20
number? Thank you.</FONT>&nbsp;<FONT=20
size=3D-1>Regards,</FONT>&nbsp;&nbsp;<FONT =
size=3D-1>Pae</FONT>&nbsp;&nbsp;=20
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed=20
Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB25ED9.AE2CB299@ca.ibm.com">news:3EB25ED9.AE2CB299@ca.ibm.=
com</A>...Pae,=20

<P>I'm seeing this result with the just published 1.1.0 driver:=20
<BLOCKQUOTE><IMG height=3D411=20
src=3D"cid:004a01c31260$6cc758f0$0b01a8c0@dev1" =
width=3D502></BLOCKQUOTE>The=20
schema isn't valid. <BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">I have a simple test schema as follows:=20
<P>&lt;?xml version=3D"1.0" encoding=3D"UTF-8"?&gt; =
<BR>&lt;!--W3C Schema=20
generated by Pae --&gt; <BR>&lt;xsd:schema xmlns:xsd=3D"<A=20
=
href=3D"http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchem=
a</A>"=20
<BR>elementFormDefault=3D"qualified"&gt; =
<BR>&nbsp;&lt;xsd:element=20
name=3D"CommonLogin"&gt; <BR>&nbsp; &lt;xsd:complexType&gt;=20
<BR>&nbsp;&nbsp; &lt;xsd:sequence&gt; <BR>&nbsp;&nbsp;&nbsp;=20
&lt;xsd:element name=3D"username" ref=3D"usernameRef"/&gt;=20
<BR>&nbsp;&nbsp;&nbsp; &lt;xsd:element name=3D"password"=20
ref=3D"passwordRef"/&gt; <BR>&nbsp;&nbsp; &lt;/xsd:sequence&gt; =
<BR>&nbsp;=20
&lt;/xsd:complexType&gt; <BR>&nbsp;&lt;/xsd:element&gt;=20
<BR>&nbsp;&lt;xsd:element name=3D"passwordRef" =
type=3D"xsd:string"/&gt;=20
<BR>&nbsp;&lt;xsd:element name=3D"usernameRef" =
type=3D"xsd:string"/&gt;=20
<BR>&lt;/xsd:schema&gt;=20
<P>This is a very simple sample, but it is a valid schema. But =
when=20
<BR>I use the validate() and getDiagnostics() methods in the =
XSDSchema=20
<BR>interface it gives me a message as follows:=20
<P>XSD: The element '#null' is not permitted as constrained by =
'XML=20
Schema '; <BR>expecting schema=20
<P>I do not understand what the message is saying. Any comments? =

=
<P>Pae</P></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE ></BODY></HT=
ML>

------=_NextPart_001_0050_01C3123E.E5BEE0B0--

------=_NextPart_000_004F_01C3123E.E5BEE0B0
Content-Type: image/jpeg;
name="C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\nsmailFJ.jpeg"
Content-Transfer-Encoding: base64
Content-ID: <004a01c31260$6cc758f0$0b01a8c0@dev1>

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCws MGJGSjpQdGZ6eHJm
cG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAqMF40 NF7GhHCExsbGxsbG
xsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsb/ wAARCAGbAfYDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA AgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcY GRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKT lJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP0 9fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQA AQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2 Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOk paanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMB AAIRAxEAPwDXghR4
9zbiST/EfU0m23yQBKcHHG81Ja/6kf7zfzNVLrfsTY5wGkLRrJsZueoPt6e9 NK4FpIYJEDIWKnoQ
5/xpfs0Xo3/fZ/xqKy2bmMbMUZEcZ75zzjt2qMXc+1kYBbgkbYvLyRnJ67sN wDzkdPXikBZ+zRej
f99n/Gj7NF6N/wB9n/Gqa31w+eI027VYMuTuLsmeD2xnHPpnvS/bZyJnHlhY ELMNpy5DODg54zs9
+vegC39mi9G/77P+NH2aL0b/AL7P+NUEup4hIkMQZY2kdycYwZH4yWGPu9ef 8b883lxs6FW2H5l7
n2HvyMDv075oAPs0Xo3/AH2f8aPs0Xo3/fZ/xqFriZWhLGMRPt/eKpdSSeFG Dx2+YjBz26Uy3kkm
uraaQptkgZlVVIKglDgnPP6UATyQxIudrH/gZpm2L+43/fw1NP8AcH1rJvJZ becG2JlkdSWhOSAA
PvD0/r9aQGhti/uN/wB/DTDGBI65bAPHzH0B/rUdntNurLMZt3zFyep+nb6V M/8Ar5f94fyFAxvl
j1b/AL6NHlj1b/vo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+ jTqKAG+WPVv++jR5
Y9W/76NOooAb5Y9W/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igBvlj1 b/vo0eWPVv8Avo06
igBvlj1b/vo0eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPVv++jR5Y9 W/76NOooAb5Y9W/7
6NHlj1b/AL6NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/AL6NHlj1b/vo06ig Bvlj1b/vo0eWPVv+
+jTqKAG+WPVv++jR5Y9W/wC+jTqKAG+WPVv++jR5Y9W/76NOooAb5Y9W/wC+ jR5Y9W/76NOooAb5
Y9W/76NHlj1b/vo06igBvlj1b/vo0eWPVv8Avo06igBvlj1b/vo0eWPVv++j TqKAG+WPVv8Avo0e
WPVv++jTqKAG+WPVv++jR5Y9W/76NOooAb5Y9W/76NHlj1b/AL6NOooAb5Y9 W/76NHlj1b/vo06i
gCvOTEV2MRnOcnP86KS76p+P9KKBF+1/1I/3m/majktGkBVmiZNxYK8W7Gfx 96hREIJKqTuPUe9O
8uP+4v5U7gWIYnR3d3DFgBwuMYz/AI0otoBEYhBGI2OSgQYJ+lNdbaNlVkjD OcKu0ZP0FMcwRyBW
tvlyFMmwbQT0Hqeo6DHP1oAmWCFF2pFGo44CgdDkfrzTPscBn84xIXwMZUfK QScj3yaT/Q/+mH39
nb73p9fahfsbruTyGHHIwepwP14oAkaCFipaKMlCWUlRwSckj8ad5abt2xc5 3Zx3xjP5cVCVgFws
JgXLIXDbRjggEfqKk8iH/nkn/fIoABBCJBIIo94zhtoyM5zz+J/OhIIY5GkS KNXbqwUAn8ah8yw8
vzN9tszt3ZXGfTNO/wBD87yf3Hm/3ON3r0oAklUsoAGeagFuVZmEYDN94jGT 9adusgwXNvuLbAMr
kt6fXkUM1ksvlMbcSZA2ErnJ6cUANW3KZ2RhdxycYGT60j/6+X/eH8hUgFqZ zCEiLgZIG3I6dR17
0f6H53k/uPN/ucbvXpQBHRUg+xs4QeQWJK7RjOR1H4U3zLDzPL322/O3blc5 9MUrANoprz2y3Bh+
ysSJFjyIxjJGf0HWpf8ARvtPkeSN+0tkx4GBjv369qLAMoqx5EP/ADyT/vkV X8y33f8AHt+737PM
2rtznGOuevHT9KLAFFNee2W4MP2ViRIseRGMZIz+g61a8iH/AJ5J/wB8iiwF eipP9D87yf3Hm/3O
N3r0oH2NnCDyCxJXaMZyOo/CiwEdFSH7GJDGfI3jGV4yM4xx+I/Oj/Q/O8n9 x5v9zjd69KLAR0Us
slpE4TZGz7lUqu3K5IAJHpyPzp4FqZzCEiLgZIG3I6dR170WAjoqQfY2cIPI LEldoxnI6j8KR2sk
Zlc26sgywJUED3/MfnRYBlFO8yw8zy99tvzt25XOfTFRvPbLcGH7KxIkWPIj GMkZ/QdaLAOoprzQ
r5n+hMfLkEZwqck4xjn3H5/WkeeJHKf2fKxAYjCJ8wU4JAznuPrRYB9FN86H z2iFkxKvtJCp7c4z
nHzDt3q15EP/ADyT/vkUWAr0UeZb7v8Aj2/d79nmbV25zjHXPXjp+lNee2W4 MP2ViRIseRGMZIz+
g60WAdRTnMEcgVrb5chTJsG0E9B6nqOgxz9aei20jMqpGWQ4ZdoyPqKLARUV Y8iH/nkn/fIo8iH/
AJ5J/wB8iiwFeirHkQ/88k/75FHkQ/8APJP++RRYCvRVjyIf+eSf98ijyIf+ eSf98iiwFeirHkQ/
88k/75FHkQ/88k/75FFgK9FWPIh/55J/3yKPIh/55J/3yKLAV6KseRD/AM8k /wC+RR5EP/PJP++R
RYCvRVjyIf8Ankn/AHyKPIh/55J/3yKLAV6KseRD/wA8k/75FHkQ/wDPJP8A vkUWAr0VY8iH/nkn
/fIo8iH/AJ5J/wB8iiwFeipngh2/6pOo/hFQbYv+eUfPtQMWioJlTz4FCKAS cgDrxUb3FsjlWj5B
x90UWGouWiQ676p+P9KKLtFRlAUDrnAooJJ4/un/AHj/ADp1Nj+6f94/zp1A yXyWjmMkTAhz86vk
nr2PbqeOn05NOeMyTLuAMSjP3urZ4yMdvr+HQ055Y42VWYBnOFXufoKDIBMs WDuZSw9MAj/EUxFb
7PN9s+0Yj+/jZuONuMbun3+30496rtp8zo2Y4AzCYZDE4L9D0/D6flWpRQBW dJzepIqRmNVK5LkH
BKknGPb1qzVV70L5n7iU+XIIzjbyTjGOfcfn9akFwPOEbRyKGJVXIGGIycev Y9scfSgCP7M/2rOV
+z58zb33/Tpjv67uaiWydZuUDp5pkyZ3HVt33MY4/XFWGufnwkMki7gpdAMA 5x65474/oanoAqwR
TR3c7mOLbK+dwc7sBQAMY9vXvUf2WZp8lI1XzN2VlYjGc/cIxk+vrz1qb7WC 2FhlZd+wOqgjOcHv
kY55Ixx9KkM8IkMZlj3jGV3DIzjHH4j86AInSc3qSKkZjVSuS5BwSpJxj29a Z9nmx5OI/K83zN+4
7vv78bcfh19/apo7mN5WjJ2OrlArEZbAByOeeCKd58PneT5sfm/3Nw3evSgC o9tOWnZY4d0kyOCX
IJVccH5f9n9T+Nn7NH5m/dLnOcec+Pyzj8Kcs8LruSWNhxyGB6nA/Xijz4fO 8nzY/N/ubhu9elAD
vLTdu2LnO7OO+MZ/LioHSc3qSKkZjVSuS5BwSpJxj29as1E9zAjMrzxqyDLA uAQPf8x+dAC/vvtH
/LPyNnvu3Z/LGKr/AGebHk4j8rzfM37ju+/vxtx+HX39qsefD53k+bH5v9zc N3r0oE8LOEEsZYkr
tDDOR1H4UAO8tN27Yuc7s474xn8uKdUfnw+d5Pmx+b/c3Dd69KT7TAGC+fHu LbAN4yW9PryKAKq2
TrNygdPNMmTO46tu+5jHH64oe2nLTsscO6SZHBLkEquOD8v+z+p/G358PneT 5sfm/wBzcN3r0pqX
du8zQrNGZFO0pu5z9KAIlgkVhGY4XjEpkDsSSCWJ4XHXnGc+/tSfZ5seTiPy vN8zfuO77+/G3H4d
ff2qx58PneT5sfm/3Nw3evSmS3cUThNwZ9yqVVhlckAEjPTkfnQBXltZynlo sLKs3nKzE5J37sdO
OpGefpzxM6Tm9SRUjMaqVyXIOCVJOMe3rVmoIbuKXau4JIxIEbMN3BIPAPsa AK7205adljh3STI4
JcglVxwfl/2f1P4xypJ5i2wjDBZxKHKN3fcecYGATzk9MY5q613bLu3XEQ2n a2XHB9D+R/KpqAIf
s0fmb90uc5x5z4/LOPwqTy03bti5zuzjvjGfy4qAXg81kaGRVRxGXO3GTjHf POR271L58PneT5sf
m/3Nw3evSgCB7aRpXA2eXJKkpYk5BXbxjHP3eue/tUjxyG9ikATy1RlJLHOS QemP9n170/z4fO8n
zY/N/ubhu9elSUAVYLYpeT3EkcYZz8rKxJ24AweP9kH8fzk+zR+Zv3S5znHn Pj8s4/CpqKAKP2N/
P3bIs+Zv8/P7zGc7enp8vXp+VXPLTdu2LnO7OO+MZ/LikSWORmVWBZDhl7j6 in0ARPGZJl3AGJRn
73Vs8ZGO31/Doab5LSTCSVgAh+RUyD17nv0HHT68Gp6KACiiigAooooAKKKK ACiiigAooooAKKKK
ACiiigAooooAKKKKAGyEBck4AIyT9az3EMjBmlOR0w4GKvyqrxlXUMD2IzVf 7Lb/APPCL/vgf5/z
+YBWlZWubfawOCe+f4aZJYLJIz+cRuOcbP8A69WzbwqMrDGD6hR/n/P5t8uP +4v5UXsXCcoO8SG9
OXU+uaKbdKF2BQAOen4UUiCxH90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51 fJPXse3U8dPpyakK
AzK+0ZVSN2eRkjjH4fpQ8scbKrMAznCr3P0FJ58P/PWP7+z7w+96fX2piG/Z o/M37pc5zjznx+Wc
fhR9mj8zfulznOPOfH5Zx+FK1zAsvlNPGJMgbC4zk9OKbLdxROE3Bn3KpVWG VyQASM9OR+dAEEti
73ZlDrtLhj6/wH/2mP8Avo+nMphka7WRljUIT8653MuDhSMdOc9eo6ek/mJ5 nl71343bc849cUxr
mBZfKaeMSZA2FxnJ6cUAMSOaJikflmIuX3MTuGTkjHfqecjr3xzYqMzwiQxm WPeMZXcMjOMcfiPz
psdzG8rRk7HVygViMtgA5HPPBFAEDWsjz+Y0durbw3nICHCg8DpzkDB5HXp6 uWCRWEZjheMSmQOx
JIJYnhcdecZz7+1T+fD53k+bH5v9zcN3r0oWeF13JLGw45DA9TgfrxQBUe2n LTsscO6SZHBLkEqu
OD8v+z+p/EWydZuUDp5pkyZ3HVt33MY4/XFW/Ph87yfNj83+5uG716VJQBlt p8zo2Y4AzCYZDE4L
9D0/D6flT5bKcuSmziUSAmVgG+bONo4H15zjPU8XfPh/56x/f2feH3vT6+1C zwuu5JY2HHIYHqcD
9eKAJKzJUk8xbYRhgs4lDlG7vuPOMDAJ5yemMc1fMoFwsJVsshcNxjggEfqK BPCzhBLGWJK7Qwzk
dR+FAFRbJ1m5QOnmmTJncdW3fcxjj9cUPbTlp2WOHdJMjglyCVXHB+X/AGf1 P42muYFl8pp4xJkD
YXGcnpxT/MTzPL3rvxu255x64oApLZOs3KB080yZM7jq277mMcfripYIpo7u dzHFtlfO4Od2AoAG
Me3r3qbz4f8AnrH9/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oApy2U5clNnEo kBMrAN82cbRwPrzn
Gep4srHNHcSFPLKSOHLEnI4Axjv0657+3Ky3cUThNwZ9yqVVhlckAEjPTkfn S/a7bzPL+0Rb87du
8Zz6YoArLZOs3KB080yZM7jq277mMcfriiW1nKeWiwsqzecrMTknfux046kZ 5+nPEr3yLcGHypSR
IseQvGSM/oOtSR3MbytGTsdXKBWIy2ADkc88EUATVQitZwnlusKq03nMyk5B 37sdOegGePpxzZS7
t3maFZozIp2lN3OfpQl3bvM0KzRmRTtKbuc/SgCBo99+YwH8skSyZQ4LLjHP v8p4/ue5q7UYnhZw
gljLEldoYZyOo/CneYnmeXvXfjdtzzj1xQBWitT9qmlmUYZwyASMRwAOV6Z4 z3/SoZbKcuSmziUS
AmVgG+bONo4H15zjPU8XXl2zRxgZL5J56Ad/zIH40PLtmjjAyXyTz0A7/mQP xoAqLZOs3KB080yZ
M7jq277mMcfrir9Qtd2y7t1xENp2tlxwfQ/kfyoa7tl3briIbTtbLjg+h/I/ lQAfZo/M37pc5zjz
nx+WcfhR9mj8zfulznOPOfH5Zx+FDXdsu7dcRDadrZccH0P5H8qmoAg8lpJh JKwAQ/IqZB69z36D
jp9eDU9Qtd2y7t1xENp2tlxwfQ/kfyoFwPOEbRyKGJVXIGGIycevY9scfSgC aiio/Ph87yfNj83+
5uG716UASUVF9pgDBfPj3FtgG8ZLen15FD3MCMyvPGrIMsC4BA9/zH50AS0V G8u2aOMDJfJPPQDv
+ZA/Gmi4HnCNo5FDEqrkDDEZOPXse2OPpQBNRVf7Wu7/AFcnl79nmcbc5xjr nrx0/Sj7Wu7/AFcn
l79nmcbc5xjrnrx0/SgCxRUX2hPtPkYfftLZKkDAx379e1K8u2aOMDJfJPPQ Dv8AmQPxoAkoqq96
Edk8iUsrhQo25bOcEc9OP5+hxHJqkUczxGKUusix4G3ktkjHPtQBeoqKGfzZ JU8t18ptpLYwTjPG
D6EfnTPtYLYWGVl37A6qCM5we+RjnkjHH0oAsUVGZ4RIYzLHvGMruGRnGOPx H502O5jeVoydjq5Q
KxGWwAcjnngigCaio/Ph87yfNj83+5uG716ULPC67kljYcchgepwP14oAkoq Pz4fO8nzY/N/ubhu
9elQvfItwYfKlJEix5C8ZIz+g60AWH+6aj/z/n/P/wBeR/umo/8AP+f8/wD1 wBr/AHT/AJ/z/n8Y
6kf7p/z/AJ/z+MdIZWu+qfj/AEoou+qfj/SigRPH90/7x/nTqbH90/7x/nTq BkvktHMZImBDn51f
JPXse3U8dPpyai+zzfbPtGI/v42bjjbjG7p9/t9OPerHnw+d5Pmx+b/c3Dd6 9KDKBcLCVbLIXDcY
4IBH6imIq/ZZmnyUjVfM3ZWViMZz9wjGT6+vPWkltZynlosLKs3nKzE5J37s dOOpGefpzxb8+Hzv
J82Pzf7m4bvXpQs8LruSWNhxyGB6nA/XigBvlv8AbPM2RbPL27sfPnPTPp/W q/2WZp8lI1XzN2Vl
YjGc/cIxk+vrz1q158PneT5sfm/3Nw3evSgTws4QSxliSu0MM5HUfhQBAsEi sIzHC8YlMgdiSQSx
PC4684zn39qje2nLTsscO6SZHBLkEquOD8v+z+p/Gyl3bvM0KzRmRTtKbuc/ So/to89ohBKSr7SR
t9ucZzj5h270ARLZOs3KB080yZM7jq277mMcfriom0+Z0bMcAZhMMhicF+h6 fh9PyrQ8+HzvJ82P
zf7m4bvXpSfaYAwXz49xbYBvGS3p9eRQBTlspy5KbOJRICZWAb5s42jgfXnO M9Txo1Gs8LruSWNh
xyGB6nA/Xio1u1MzxtHIgV9m9sbSeCBwe+R1+nXigCP7PN9s+0Yj+/jZuONu Mbun3+30496rtp8z
o2Y4AzCYZDE4L9D0/D6flWh58PneT5sfm/3Nw3evSoX1C3W4WBXV3JwQHX5T nHc/oMmgBXSc3qSK
kZjVSuS5BwSpJxj29ahe2nLTsscO6SZHBLkEquOD8v8As/qfxt+fD53k+bH5 v9zcN3r0o8+H/nrH
9/Z94fe9Pr7UAVfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVjy3+2eZsi2eXt3Y+ fOemfT+tOMoFwsJV
sshcNxjggEfqKal3bvM0KzRmRTtKbuc/SgCH7PN9s+0Yj+/jZuONuMbun3+3 0496b9lmafJSNV8z
dlZWIxnP3CMZPr689asfa7bzPL+0Rb87du8Zz6YqN75FuDD5UpIkWPIXjJGf 0HWgCKW1nKeWiwsq
zecrMTknfux046kZ5+nPFn7NH5m/dLnOcec+Pyzj8KV7mBGZXnjVkGWBcAge /wCY/Ol8+H/nrH9/
Z94fe9Pr7UAO8tN27Yuc7s474xn8uKpPbTlp2WOHdJMjglyCVXHB+X/Z/U/j b8+HzvJ82Pzf7m4b
vXpQZQLhYSrZZC4bjHBAI/UUARrHNHcSFPLKSOHLEnI4Axjv0657+3Isc0dx IU8spI4csScjgDGO
/Trnv7cyCeMzmEMpcDJAYZHTqOveoX1C3W4WBXV3JwQHX5TnHc/oMmgCBI3m u7kCIKhmRjIwIJCh
eBxyMqe/f87flv8AbPM2RbPL27sfPnPTPp/WnCeMzmEMpcDJAYZHTqOvejz4 fO8nzY/N/ubhu9el
ADYUbzJZZBhnO0D0UZx/U/jjtRCjeZLLIMM52geijOP6n8cdqSW7iicJuDPu VSqsMrkgAkZ6cj86
Y98i3Bh8qUkSLHkLxkjP6DrQAySzke5LiQCNnVyOeo29v+Af+PH05JLOR7ku JAI2dXI56jb2/wCA
f+PH05tJLHIzKrAshwy9x9RT6AKUlnI9yXEgEbOrkc9Rt7f8A/8AHj6c2f33 2j/ln5Gz33bs/ljF
SUUAUpLOR7kuJAI2dXI56jb2/wCAf+PH05kMMjXayMsahCfnXO5lwcKRjpzn r1HT0s0UAR/vvtH/
ACz8jZ77t2fyxiq/2ebHk4j8rzfM37ju+/vxtx+HX39quUUAVYIpo7udzHFt lfO4Od2AoAGMe3r3
qtKknmLbCMMFnEoco3d9x5xgYBPOT0xjmtOigCGFG8yWWQYZztA9FGcf1P44 7VGiXP2ou6xFckbt
5JCdgBjjtnn+mLVFAFP7PNjycR+V5vmb9x3ff3424/Dr7+1H2ebHk4j8rzfM 37ju+/vxtx+HX39q
uUUAVnSc3qSKkZjVSuS5BwSpJxj29afCjeZLLIMM52geijOP6n8cdqmooApy R3ZnMqiLKnagLnGw
9c/L1OB+Q98xy2k7SSyBIixlV0JkI+Ubcg8d9g/P89CigCmI7tZpSgiCySq+ 7echRtBGNvcD170j
Wsjz+Y0durbw3nICHCg8DpzkDB5HXp63aKAKiwSKwjMcLxiUyB2JJBLE8Ljr zjOff2qN7actOyxw
7pJkcEuQSq44Py/7P6n8b9FAFBbJ1m5QOnmmTJncdW3fcxjj9cVE2nzOjZjg DMJhkMTgv0PT8Pp+
ValFAGdLZTlyU2cSiQEysA3zZxtHA+vOcZ6ni/5abt2xc53Zx3xjP5cU6igB r/dNR/5/z/n/AOvI
/wB01H/n/P8An/64A1/un/P+f8/jHUj/AHT/AJ/z/n8Y6Qytd9U/H+lFF31T 8f6UUCJ4/un/AHj/
ADp1Nj+6f94/zp1Axi2TrNygdPNMmTO46tu+5jHH64qZ0nN6kipGY1UrkuQc EqScY9vWrNMeWONl
VmAZzhV7n6CmIprZOs3KB080yZM7jq277mMcfriom0+Z0bMcAZhMMhicF+h6 fh9PyrQ8+H/nrH9/
Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oAqrZOs3KB080yZM7jq277mMcfrih7 actOyxw7pJkcEuQS
q44Py/7P6n8bEt3FE4TcGfcqlVYZXJABIz05H51L5ieZ5e9d+N23POPXFAEK xzR3EhTyykjhyxJy
OAMY79Oue/ty2C2KXk9xJHGGc/KysSduAMHj/ZB/H85vPh87yfNj83+5uG71 6UGUC4WEq2WQuG4x
wQCP1FAFf7PNjycR+V5vmb9x3ff3424/Dr7+1Ogimju53McW2V87g53YCgAY x7evepvPh87yfNj8
3+5uG716ULPC67kljYcchgepwP14oAz20+Z0bMcAZhMMhicF+h6fh9PyqwLe ZppfMEaxPKsmVYlv
l24GMcfdB/T3qx58PneT5sfm/wBzcN3r0oE8LOEEsZYkrtDDOR1H4UAVFsnW blA6eaZMmdx1bd9z
GOP1xUqpci8eXy4tjBU/1hyACecbffpUiXdu8zQrNGZFO0pu5z9KmoAzpbKc uSmziUSAmVgG+bON
o4H15zjPU8ST205aTyvLKvKkvzEg5Xb8vT/Z6/hjvVkTws4QSxliSu0MM5HU fhR58PneT5sfm/3N
w3evSgCJ0nN6kipGY1UrkuQcEqScY9vWlWOaO4kKeWUkcOWJORwBjHfp1z39 uZFnhddySxsOOQwP
U4H68UefD53k+bH5v9zcN3r0oAb9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd 8Yz+XFR/a7bzPL+0
Rb87du8Zz6YqN75FuDD5UpIkWPIXjJGf0HWgCvcxSxRqpjV41uBIGVWZuX3H gDjAJ5z296lntpy0
nleWVeVJfmJByu35en+z1/DHepmufnwkMki7gpdAMA5x65474/oaf58PneT5 sfm/3Nw3evSgClLZ
TlyU2cSiQEysA3zZxtHA+vOcZ6niw6Tm9SRUjMaqVyXIOCVJOMe3rUqzwuu5 JY2HHIYHqcD9eKFn
hddySxsOOQwPU4H68UAROk5vUkVIzGqlclyDglSTjHt60ipci8eXy4tjBU/1 hyACecbffpU3nw+d
5Pmx+b/c3Dd69KBPCzhBLGWJK7QwzkdR+FAETpOb1JFSMxqpXJcg4JUk4x7e tQrZOs3KB080yZM7
jq277mMcfrirUM/mySp5br5TbSWxgnGeMH0I/Ol8+HzvJ82Pzf7m4bvXpQBU ltZynlosLKs3nKzE
5J37sdOOpGefpzxd8tN27Yuc7s474xn8uKY9zAjMrzxqyDLAuAQPf8x+dKJ4 zOYQylwMkBhkdOo6
96AGeS0kwklYAIfkVMg9e579Bx0+vBqeoxPCzhBLGWJK7QwzkdR+FQvfItwY fKlJEix5C8ZIz+g6
0AWqKYkscjMqsCyHDL3H1FPoAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKK
KACiiigBr/dNR/5/z/n/AOvI/wB01H/n/P8An/64A1/un/P+f8/jHUj/AHT/ AJ/z/n8Y6Qytd9U/
H+lFF31T8f6UUCJ4/un/AHj/ADp1Nj+6f94/zp1Ay5UHktHMZImBDn51fJPX se3U8dPpyanopiKf
2eb7Z9oxH9/GzccbcY3dPv8Ab6ce9N+yzNPkpGq+ZuysrEYzn7hGMn19eetW 3ljjZVZgGc4Ve5+g
pPPh/wCesf39n3h970+vtQBUltZynlosLKs3nKzE5J37sdOOpGefpzxZ8t/t nmbItnl7d2Pnznpn
0/rStcwLL5TTxiTIGwuM5PTimy3cUThNwZ9yqVVhlckAEjPTkfnQBXWydZuU Dp5pkyZ3HVt33MY4
/XFTOk5vUkVIzGqlclyDglSTjHt61P5ieZ5e9d+N23POPXFNM8IkMZlj3jGV 3DIzjHH4j86AKi2T
rNygdPNMmTO46tu+5jHH64qJtPmdGzHAGYTDIYnBfoen4fT8q0PPh87yfNj8 3+5uG716ULPC67kl
jYcchgepwP14oAqLZOs3KB080yZM7jq277mMcfrih7actOyxw7pJkcEuQSq4 4Py/7P6n8bYnhZwg
ljLEldoYZyOo/CgygXCwlWyyFw3GOCAR+ooAjWOaO4kKeWUkcOWJORwBjHfp 1z39ubFR+fD53k+b
H5v9zcN3r0o8+H/nrH9/Z94fe9Pr7UAVHtpy07LHDukmRwS5BKrjg/L/ALP6 n8Wy2U5clNnEokBM
rAN82cbRwPrznGep4me+KOU+yXDEBiMBfmCnBIGc9x9ala7tl3briIbTtbLj g+h/I/lQBRbT5nRs
xwBmEwyGJwX6Hp+H0/KpVsnWblA6eaZMmdx1bd9zGOP1xVsTws4QSxliSu0M M5HUfhR58PneT5sf
m/3Nw3evSgBv2aPzN+6XOc4858flnH4VJ5abt2xc53Zx3xjP5cUiSxyMyqwL IcMvcfUU+gCukc0T
FI/LMRcvuYncMnJGO/U85HXvjmP7PNjycR+V5vmb9x3ff3424/Dr7+1XKKAM ttPmdGzHAGYTDIYn
Bfoen4fT8qG0+Z0bMcAZhMMhicF+h6fh9PyrUooAp/Z5seTiPyvN8zfuO77+ /G3H4dff2pj205ad
ljh3STI4JcglVxwfl/2f1P436KAKYju1mlKCILJKr7t5yFG0EY29wPXvR9nm x5OI/K83zN+47vv7
8bcfh19/arlFAGZKknmLbCMMFnEoco3d9x5xgYBPOT0xjmrTpOb1JFSMxqpX Jcg4JUk4x7etWaKA
KD205adljh3STI4JcglVxwfl/wBn9T+N3y03bti5zuzjvjGfy4p1FAEHktJM JJWACH5FTIPXue/Q
cdPrwanoooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigBr/AHTU
f+f8/wCf/ryP901H/n/P+f8A64A1/un/AD/n/P4x1I/3T/n/AD/n8Y6Qytd9 U/H+lFF31T8f6UUC
J4/un/eP86dTY/un/eP86dQMuUUUUxEHktHMZImBDn51fJPXse3U8dPpyai+ zzfbPtGI/v42bjjb
jG7p9/t9OPerlMeWONlVmAZzhV7n6CgCp9lmafJSNV8zdlZWIxnP3CMZPr68 9aSW1nKeWiwsqzec
rMTknfux046kZ5+nPFvz4f8AnrH9/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04o ATy3+2eZsi2eXt3Y
+fOemfT+tRLBIrCMxwvGJTIHYkkEsTwuOvOM59/apJbuKJwm4M+5VKqwyuSA CRnpyPzqXzE8zy96
78btueceuKAKv2ebHk4j8rzfM37ju+/vxtx+HX39qrtp8zo2Y4AzCYZDE4L9 D0/D6flV9rmBZfKa
eMSZA2FxnJ6cUvnw+d5Pmx+b/c3Dd69KAKSRvNd3IEQVDMjGRgQSFC8DjkZU 9+/52HSc3qSKkZjV
SuS5BwSpJxj29ake5gRmV541ZBlgXAIHv+Y/Ol8+H/nrH9/Z94fe9Pr7UAVF snWblA6eaZMmdx1b
d9zGOP1xT/s832z7RiP7+Nm4424xu6ff7fTj3qx58PneT5sfm/3Nw3evSgTw s4QSxliSu0MM5HUf
hQAx45DexSAJ5aoykljnJIPTH+z696haPffmMB/LJEsmUOCy4xz7/KeP7nua smeESGMyx7xjK7hk
Zxjj8R+dHnw+d5Pmx+b/AHNw3evSgCkkbzXdyBEFQzIxkYEEhQvA45GVPfv+ blsnWblA6eaZMmdx
1bd9zGOP1xVxJY5GZVYFkOGXuPqKfQBB5LSTCSVgAh+RUyD17nv0HHT68Gp6 KKACiiigAooooAKK
KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooo
oAKKKKAGv901H/n/AD/n/wCvI/3TUf8An/P+f/rgDX+6f8/5/wA/jHUj/dP+ f8/5/GOkMrXfVPx/
pRRd9U/H+lFAieP7p/3j/OnVSaJmlYlpfmJ2ojkZ68+39T265WFf3yENKpxu 2PIWyOeR/h9D65NC
uV2ubFFFFMkKg8lo5jJEwIc/Or5J69j26njp9OTU9FAFP7PN9s+0Yj+/jZuO NuMbun3+30496b9l
mafJSNV8zdlZWIxnP3CMZPr689a59Li9dWZZ5yqjLHecD8aXzr//AJ63P3d/ 3m+76/T3rTkJ5jel
tZynlosLKs3nKzE5J37sdOOpGefpzxZ8t/tnmbItnl7d2Pnznpn0/rXMiXUW j8xXujHjO4FsfnTo
3v5EL/aJ1TaSGZmw2ASQD68H8qOTzDmNz7LM0+Skar5m7KysRjOfuEYyfX15 60i2TrNygdPNMmTO
46tu+5jHH64rA+03vl+Z59xszjdvbGfTNL51/wCV5vm3Pl/39zY/OjkDmNu5 ilijVTGrxrcCQMqs
zcvuPAHGATznt71LPbTlpPK8sq8qS/MSDldvy9P9nr+GO9c+Li7MBlF3LgMF K+Y2eQSD+ho86/8A
K83zbny/7+5sfnRyBzG8tk6zcoHTzTJkzuOrbvuYxx+uKHtpy07LHDukmRwS 5BKrjg/L/s/qfxwW
mv0OGluVPPBZh0GT+nNHnX/leb5tz5f9/c2Pzo5A5jolgkVhGY4XjEpkDsSS CWJ4XHXnGc+/tUa2
TrNygdPNMmTO46tu+5jHH64rBM1+E3mW5CgA5LNjB6GnM+opEJWkuRGRkNub GKOTzDmOk8lpJhJK
wAQ/IqZB69z36Djp9eDU9cf9tuv+fmb/AL+Gnma/CbzLchQAclmxg9DR7MOY 62iuS86/8rzfNufL
/v7mx+dDTX6HDS3Knngsw6DJ/TmjkDmOtorkvOv/ACvN8258v+/ubH507fqX l+Zuu9mM7stjHrmj
k8w5jq6K5dTetAJftrAFGkwZWzgHH6npUXnX/wDz1ufu7/vN931+nvRyeYcx 1tFcmJdRaPzFe6Me
M7gWx+dJ51/5Xm+bc+X/AH9zY/Ojk8w5jraK5PzdR2lt91gLuJy3T1+lIZr8 JvMtyFAByWbGD0NH
J5hzHW0VyXnX/leb5tz5f9/c2Pzoaa/Q4aW5U88FmHQZP6c0cgcx1tFcl51/ 5Xm+bc+X/f3Nj86l
U3rQCX7awBRpMGVs4Bx+p6UcnmHMdRRXH/bbr/n5m/7+GpPN1HaW33WAu4nL dPX6UezDmOsorkvO
v/K83zbny/7+5sfnUqjUWgMxnuFQDIJL/MMZ7fzNHJ5hzHUUVym/UvL8zdd7 MZ3ZbGPXNPU3rQCX
7awBRpMGVs4Bx+p6UuTzC51FFcl51/8A89bn7u/7zfd9fp70ol1Fo/MV7ox4 zuBbH50+TzDmOsor
kvOv/K83zbny/wC/ubH50vm6jtLb7rAXcTlunr9KOTzDmOsorkjNfhN5luQo AOSzYweho86/8rzf
NufL/v7mx+dHIHMdbRXJNNfocNLcqeeCzDoMn9OaPOv/ACvN8258v+/ubH50 cgcx1tFcvuu/LVhf
MxZC4QO+cDOe2OMHv2qLzr/yvN8258v+/ubH50cgcx1tFcuo1FoDMZ7hUAyC S/zDGe38zQpvWgEv
21gCjSYMrZwDj9T0pcnmFzqKK5JLm6aKSQ3UwCYA+c8k9uvoCfwpHuL1FVmn nCsMqd5wfxp8gcx1
1FFFZlBRRRQA1/umo/8AP+f8/wD15H+6aj/z/n/P/wBcAa/3T/n/AD/n8Y6k f7p/z/n/AD+Nczxg
kZPHH3TSGk3sRXfVPx/pRRdEMIyOhBI/SigBu7MxdFLyR5AQd/mzn9enXp60 Iha8Ezh03ZIVhyT3
/D3+lOMcJ5aBJJGLYG0ZPJ70sAg3jFukUmNy8DkeoNLS5peXKalFFFUZBRRR QBx+/wAyIJIhyo+Q
pgfmO/Qc9frxUvmx/ZfI+f7md20Z3Zzt6/d/rzXQyQWSMqvDAGc/KuwZb8KT y9P/ALlt9/Z0X73p
9fatOdBZGB5yCHALsxj24Mag5xj7+c49vTApYpog+9jMC8XlFVAwBt25689j jj/HdZNOWXymW1Eh
I+Qhc57cU2UWEb7PIgdyyhlVVyuSACR6cj86OdBZHOZH2Ty8y79+7bn5MY64 9asG5DRDBKP5ezAh
U/w4+9nPP9a6D7PZeZ5fkwb8btu0Zx64pvl6f53k7Lbzf7mF3evSjnQWRzie V9keMtJ5jENgIMcA
8Zz71KbkNEMEo/l7MCFT/Dj72c8/1reMNr9oEJtI8spcNsXBwQD+PIo8vT/O 8nZbeb/cwu716Uc6
CyMVbuNXXa0xUGIgFQMhOo6/j9fzqM3IaIYJR/L2YEKn+HH3s55/rW8senyL uVLZgccgKc5OB+uR
R5en+d5Oy283+5hd3r0o5kFkYKTRbYFZpsJE6kBB1bPI5/2v0HrUJMckEYYP vRCoAAweSc57demP
510gj09n2BLYsWI24XJI6j6imqNNkmaFVtjIGwU2rnP070c4WRy21vSrqTRb YFZpsJE6kBB1bPI5
/wBr9B610X2O1/59of8AvgVGI9PZ9gS2LFiNuFySOo+oocwtEw4rmIKA4fmM oQI1JHy4zuPJ+nHX
83Ldxq67WmKgxEAqBkJ1HX8fr+dbXl6f53k7Lbzf7mF3evShY9PkXcqWzA45 AU5ycD9cijmQWRgm
5DRDBKP5ezAhU/w4+9nPP9ar+dL5ezZHjGP9UufzxnNdN5en+d5Oy283+5hd 3r0puNM8zy8Wm/dj
b8uc+mPWjnQWRzGZMYy2MYxntnOPz5qzDLEFj8wSArG0Y2gHg7uev+10/XtW 07WS3Bh+w7j5ix5E
QIJIz+g61MI9PZ9gS2LFiNuFySOo+oo5wsjA85BDgF2Yx7cGNQc4x9/Oce3p gUpuQ0QwSj+XswIV
P8OPvZzz/Wt7y9P87ydlt5v9zC7vXpSMmnLL5TLaiQkfIQuc9uKOdBZHPStH JbQory7o0wFKjbkn
J5z7+nYVIk0W2BWabCROpAQdWzyOf9r9B61usmnLL5TLaiQkfIQuc9uKRhpi 7twtBtbDZ28Hng+/
Bo5wsjFiuYgoDh+YyhAjUkfLjO48n6cdfzct3GrrtaYqDEQCoGQnUdfx+v51 teXp/neTstvN/uYX
d69KQpp27aVtdxbbjC5Len15/WjmQWRhG5DRDBKP5ezAhU/w4+9nPP8AWqmZ MYy2MYxntnOPz5rp
pRYRvs8iB3LKGVVXK5IAJHpyPzpjtZLcGH7DuPmLHkRAgkjP6DrRzoLI5ra3 pVmVo5LaFFeXdGmA
pUbck5POff07Cum+x2v/AD7Q/wDfAqIpp27aVtdxbbjC5Len15/WnzhaJhG5 DRDBKP5ezAhU/wAO
PvZzz/Woz5LWiR7pd6ln/wBWMEkDjr7frXReXp/neTstvN/uYXd69KheTThc CAQwO5bDABODnHOT
yevAyaXOgsjn/Ol8vZsjxjH+qXP54zmmZkxjLYxjGe2c4/PmunxpnmeXi037 sbflzn0x61G7WS3B
h+w7j5ix5EQIJIz+g60+dBZGLDLEFj8wSArG0Y2gHg7uev8AtdP17UvnIIcA uzGPbgxqDnGPv5zj
29MCt8R6ez7AlsWLEbcLkkdR9RR5en+d5Oy283+5hd3r0pc6CyME3IaIYJR/ L2YEKn+HH3s55/rU
crRyW0KK8u6NMBSo25Jyec+/p2FdCyacsvlMtqJCR8hC5z24oZNOWXymW1Eh I+Qhc57cUc6CyMJJ
otsCs02EidSAg6tnkc/7X6D1p0VzEFAcPzGUIEakj5cZ3Hk/Tjr+e0w0xd24 Wg2ths7eDzwffg07
y9P87ydlt5v9zC7vXpRzoLIxVu41ddrTFQYiAVAyE6jr+P1/OozchohglH8v ZgQqf4cfeznn+tbp
TTt20ra7i23GFyW9Prz+tNlFhG+zyIHcsoZVVcrkgAkenI/OjmQWRh+eggii AYjyyrNsAYZJPBzn
vjHGR9aU3IaIYJR/L2YEKn+HH3s55/rWz/onmujWIVVkCM5RMZOMd885HbvU vl6f53k7Lbzf7mF3
evSjnQWRzp8lrRI90u9Sz/6sYJIHHX2/WoMyYxlsYxjPbOcfnzXRvJpwuBAI YHcthgAnBzjnJ5PX
gZNDtZLcGH7DuPmLHkRAgkjP6DrRzhaJz8pzHFHHyqjcT6scZ/oPw96UPsi2 RISXHzF8H8h269ev
0zXSvBarNHGLWFi+SfkHAHfp6kD8aVILKRnVYYCyn5l2DI+oo5wsi1RRRWYB RRRQA1/umo/8/wCf
8/8A15H+6aj/AM/5/wA//XAGv90/5/z/AJ/GqbdSSd7DJz2/wq0/3T/n/P8A n8apuFBI2McHHb/G
guPN0I7lQqxqOgBH8qKLlgyxsOhBP8qKRL3HMrBhMil2TICj13Eg02OJ5Lo3 Dq6Drhxzk/0qxH90
/wC8f506lYvndrFyiiiqMwoopjyxxsqswDOcKvc/QUAVztimaSOVcFgJFckn qeh7Ac8dOD05NREE
XhuC0XEm0puONuMbun3+CM9MAjPGatMypNDGqAkg9ONqjr+u0Y9/agS24xiS IYbyxgjg/wB36+1B
XulMofPJYxIqy5JWViOufuEYzwcnscnqKSZH2GNTAVjn80M7HOd+7HTjuM89 D74uGe2SVYjLCsg+
UJuAIz2x+VNkuYIXVBtZwVTahGUBIAyM9OR+lAe6IXUXhkPk7Amwtj5856Z/ u8H8QfSqwhVJm3bX
QTbyTcOMZbd9zGOOfyPTmr4MQkEYKBwuQoxkL9PSmGe2SVYjLCsg+UJuAIz2 x+VAe6QySP8AbVkH
k+XGChJcg8kEnGO209/Xpg1CIVSZt210E28k3DjGW3fcxjjn8j05q6JbcTCE SRCUDAQEbgOvSkae
2iYq0sKNGvILAFRx+Q6fpQHumc9sSj7hbqx84E7icF+h+72wQfYH0IqUQqkz btroJt5JuHGMtu+5
jHHP5HpzV0S24xiSIYbyxgjg/wB36+1AltxMIRJEJQMBARuA69KA90pSo+64 YCDc06NkuQcLjg/L
/sn2GT6VOHMVxKVeLY8gZmYnK8AEAY5+6ec8c+lTLLb71RJItwyiqCM8dQP0 4o823WTyxJEHQAbc
jKg4xx+X6UB7o4zxDOXHBwf8/gfyPpVCVH3XDAQbmnRslyDhccH5f9k+wyfS roltxMIRJEJQMBAR
uA69KWN4WYrGV3R/KVxgr+HYcfjQHumfNC29irx/LMHyZWAPzZxtHA6HnnoS ec4Y9sSj7hbqx84E
7icF+h+72wQfYH0IrWCqMYUDAwMDoKAqjGFAwMDA6CgPdM4QqkzbtroJt5Ju HGMtu+5jHHP5HpzV
kpbiQuZZMhskec+M/TOMcH24PpVgKoxhQMDAwOgoCqMYUDAwMDoKA90jL24Y sdmQ2Scd8Yz+QIz7
H0qjkPdXIwiIZkYyNkMduOAMcjKt345P10gqjGFAwMDA6CgKoxhQMDAwOgoD 3TMmhbexV4/lmD5M
rAH5s42jgdDzz0JPOcPKHzyWMSKsuSVlYjrn7hGM8HJ7HJ6itAKoxhQMDAwO goCqMYUDAwMDoKA9
0zyh88ljEirLklZWI65+4RjPByexyeopZYs3Lv56iMyKzDJ6jb27/wCr6+7e nN8KoxhQMDAwOgoC
qMYUDAwMDoKA90okEAwlovKE3mF9x3ff34249iM57E9sU6FjFd3DsIQsknLB zuAC4HG3noe/HPoa
uBVGMKBgYGB0FAVRjCgYGBgdBQHumdMj7DGpgKxz+aGdjnO/djpx3Geeh98X S9uGLHZkNknHfGM/
kCM+x9KkCqMYUDAwMDoKAqjGFAwMDA6CgPdGmeIZy44OD/n8D+R9KqwsYru4 dhCFkk5YOdwAXA42
89D3459DVwKoxhQMDAwOgoCqMYUDAwMDoKA90zhCqTNu2ugm3km4cYy277mM cc/kenNSiSRLySUi
HYdqH94cgAtzjb7n8jzVwKoxhQMDAwOgoCqMYUDAwMDoKA90rlLcSFzLJkNk jznxn6Zxjg+3B9Kk
L24YsdmQ2Scd8Yz+QIz7H0qQKoxhQMDAwOgoCqMYUDAwMDoKA90zch7q5GER DMjGRshjtxwBjkZV
u/HJ+qTQtvYq8fyzB8mVgD82cbRwOh556EnnONMKoxhQMDAwOgoCqMYUDAwM DoKA90zyh88ljEir
LklZWI65+4RjPByexyeooKHzyWMSKsuSVlYjrn7hGM8HJ7HJ6itAKoxhQMDA wOgoCqMYUDAwMDoK
A90oSxZuXfz1EZkVmGT1G3t3/wBX1929OVIIBhLReUJvML7ju+/vxtx7EZz2 J7Yq8FUYwoGBgYHQ
UBVGMKBgYGB0FAe6U4WMV3cOwhCyScsHO4ALgcbeeh78c+hqKZH2GNTAVjn8 0M7HOd+7HTjuM89D
740QqjGFAwMDA6CgKoxhQMDAwOgoD3TPMX+kTzM6AiUMq+YxVsDGGGMfw5zz gj/ZpBCqTNu2ugm3
km4cYy277mMcc/kenNaIVRjCgYGBgdBQFUYwoGBgYHQUB7pTEkiXkkpEOw7U P7w5ABbnG33P5Hmr
Be3DFjsyGyTjvjGfyBGfY+lSBVGMKBgYGB0FAVRjCgYGBgdBQHuleJ0WSaWV gGLbcZ6KM4/9mPtk
jtSHa83mTSqBG2FVCQRz3PccdOnBznGRZCqMYUDAwMDoKAqjGFAwMDA6CgPd HUUUUEhRRRQA1/um
o/8AP+f8/wD15H+6aj/z/n/P/wBcAa/3T/n/AD/n8a5gjJJweefvGrD/AHT/ AJ/z/n8Y6Q02titd
AKIwOgBA/Sii76p+P9KKAJ4/un/eP86dTY/un/eP86dQBcooopiCoPJaOYyR MCHPzq+SevY9up46
fTk1I8scbKrMAznCr3P0FI8u2aOMDJfJPPQDv+ZA/GgBsKN5kssgwznaB6KM 4/qfxx2qH7PN9s+0
Yj+/jZuONuMbun3+30496sefD/z1j+/s+8Pven19qRrmBZfKaeMSZA2FxnJ6 cUAVvsszT5KRqvmb
srKxGM5+4RjJ9fXnrSS2s5Ty0WFlWbzlZick792OnHUjPP054sS3cUThNwZ9 yqVVhlckAEjPTkfn
UvmJ5nl71343bc849cUAR+W/2zzNkWzy9u7Hz5z0z6f1qv8AZZmnyUjVfM3Z WViMZz9wjGT6+vPW
rRnhEhjMse8Yyu4ZGcY4/EfnR58PneT5sfm/3Nw3evSgCotk6zcoHTzTJkzu OrbvuYxx+uKZcxSx
RqpjV41uBIGVWZuX3HgDjAJ5z296vLPC67kljYcchgepwP14oE8LOEEsZYkr tDDOR1H4UAVp7act
J5XllXlSX5iQcrt+Xp/s9fwx3pq2TrNygdPNMmTO46tu+5jHH64q2ZQLhYSr ZZC4bjHBAI/UUefD
53k+bH5v9zcN3r0oAqPbTlp2WOHdJMjglyCVXHB+X/Z/U/jIsEisIzHC8YlM gdiSQSxPC4684zn3
9qn8+H/nrH9/Z94fe9Pr7VA98Ucp9kuGIDEYC/MFOCQM57j60ARrZOs3KB08 0yZM7jq277mMcfri
rHktJMJJWACH5FTIPXue/QcdPrwaVru2XduuIhtO1suOD6H8j+VOE8LOEEsZ YkrtDDOR1H4UASUV
H58PneT5sfm/3Nw3evSlSWORmVWBZDhl7j6igB9FFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUANf 7pqP/P8An/P/ANeR
/umo/wDP+f8AP/1wBr/dP+f8/wCfxjqR/un/AD/n/P4x0hla76p+P9KKLvqn 4/0ooETx/dP+8f50
6mx/dP8AvH+dOoGXKKKY8scbKrMAznCr3P0FMRH5LRzGSJgQ5+dXyT17Ht1P HT6cmlhRvMllkGGc
7QPRRnH9T+OO1OeXbNHGBkvknnoB3/MgfjR58P8Az1j+/s+8Pven19qAK/2e b7Z9oxH9/GzccbcY
3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561Za5gWXymnjEmQNhcZyen FNlu4onCbgz7lUqr
DK5IAJGenI/OgCvLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/bPM2RbPL27 sfPnPTPp/WpPMTzP
L3rvxu255x64pvnw+d5Pmx+b/c3Dd69KAIFgkVhGY4XjEpkDsSSCWJ4XHXnG c+/tSfZ5seTiPyvN
8zfuO77+/G3H4dff2qwZQLhYSrZZC4bjHBAI/UUefD53k+bH5v8Ac3Dd69KA M9tPmdGzHAGYTDIY
nBfoen4fT8qekbzXdyBEFQzIxkYEEhQvA45GVPfv+d1Z4XXcksbDjkMD1OB+ vFHnw+d5Pmx+b/c3
Dd69KAInSc3qSKkZjVSuS5BwSpJxj29ahWydZuUDp5pkyZ3HVt33MY4/XFWx PCzhBLGWJK7Qwzkd
R+FNS7t3maFZozIp2lN3OfpQBD9nm+2faMR/fxs3HG3GN3T7/b6ce9SvHIb2 KQBPLVGUksc5JB6Y
/wBn171IkscjMqsCyHDL3H1FPoApNHvvzGA/lkiWTKHBZcY59/lPH9z3NRpG 813cgRBUMyMZGBBI
ULwOORlT37/no0UAUFsnWblA6eaZMmdx1bd9zGOP1xVjyWkmEkrABD8ipkHr 3PfoOOn14NT0UAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUANf7pqP/P8An/P/ANeR/umo/wDP+f8AP/1wBr/dP+f8 /wCfxjqR/un/AD/n
/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/dP8AvH+dOoGXKg8lo5jJ EwIc/Or5J69j26nj
p9OTU9MeWONlVmAZzhV7n6CmIZCjeZLLIMM52geijOP6n8cdqh+zzfbPtGI/ v42bjjbjG7p9/t9O
PerHnw/89Y/v7PvD73p9faka5gWXymnjEmQNhcZyenFAFb7LM0+Skar5m7Ky sRjOfuEYyfX1560k
trOU8tFhZVm85WYnJO/djpx1Izz9OeLEt3FE4TcGfcqlVYZXJABIz05H51L5 ieZ5e9d+N23POPXF
AEflv9s8zZFs8vbux8+c9M+n9arLZOs3KB080yZM7jq277mMcfrirfnw+d5P mx+b/c3Dd69KDKBc
LCVbLIXDcY4IBH6igCJ0nN6kipGY1UrkuQcEqScY9vWoVsnWblA6eaZMmdx1 bd9zGOP1xVvz4fO8
nzY/N/ubhu9elCzwuu5JY2HHIYHqcD9eKAM9tPmdGzHAGYTDIYnBfoen4fT8 qlWydZuUDp5pkyZ3
HVt33MY4/XFW/Ph87yfNj83+5uG716UCeFnCCWMsSV2hhnI6j8KAKj205adl jh3STI4JcglVxwfl
/wBn9T+M6xzR3EhTyykjhyxJyOAMY79Oue/ty5Lu3eZoVmjMinaU3c5+lTUA QeS0kwklYAIfkVMg
9e579Bx0+vBqeoxPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3Dd69KAJKKjWe F13JLGw45DA9Tgfr
xR58PneT5sfm/wBzcN3r0oAkoqH7XbeZ5f2iLfnbt3jOfTFRvfItwYfKlJEi x5C8ZIz+g60AWqKj
E8LOEEsZYkrtDDOR1H4UefD53k+bH5v9zcN3r0oAkoqJrmBZfKaeMSZA2Fxn J6cUNcwLL5TTxiTI
GwuM5PTigCWioWu7Zd264iG07Wy44PofyP5U7z4fO8nzY/N/ubhu9elAElFR faYAwXz49xbYBvGS
3p9eRTZbuKJwm4M+5VKqwyuSACRnpyPzoAnoqsLweayNDIqo4jLnbjJxjvnn I7d6l8+HzvJ82Pzf
7m4bvXpQBJRVV9Qt1uFgV1dycEB1+U5x3P6DJoe+Rbgw+VKSJFjyF4yRn9B1 oAtUUVCl3bvM0KzR
mRTtKbuc/SgCaioWu7Zd264iG07Wy44PofyP5U4Tws4QSxliSu0MM5HUfhQB JRUfnw+d5Pmx+b/c
3Dd69Kb9rtvM8v7RFvzt27xnPpigCaiqr3yLcGHypSRIseQvGSM/oOtTefD/ AM9Y/v7PvD73p9fa
gCSiomuYFl8pp4xJkDYXGcnpxTZbuKJwm4M+5VKqwyuSACRnpyPzoAnopvmJ 5nl71343bc849cUx
rmBZfKaeMSZA2FxnJ6cUAS0VCl3bvM0KzRmRTtKbuc/Sl+0wBgvnx7i2wDeM lvT68igCWioxPGZz
CGUuBkgMMjp1HXvQJ4WcIJYyxJXaGGcjqPwoAkoqJ7mBGZXnjVkGWBcAge/5 j86ie+Rbgw+VKSJF
jyF4yRn9B1oAtUVG8u2aOMDJfJPPQDv+ZA/GlSWORmVWBZDhl7j6igB9FFFA BRRRQA1/umo/8/5/
z/8AXkf7pqP/AD/n/P8A9cAa/wB0/wCf8/5/GOpH+6f8/wCf8/jHSGVrvqn4 /wBKKLvqn4/0ooET
x/dP+8f506mx/dP+8f506gZcqDyWjmMkTAhz86vknr2PbqeOn05NT0x5Y42V WYBnOFXufoKYit9n
m+2faMR/fxs3HG3GN3T7/b6ce9N+yzNPkpGq+ZuysrEYzn7hGMn19eetWvPh /wCesf39n3h970+v
tSNcwLL5TTxiTIGwuM5PTigCrLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/ AGzzNkWzy9u7Hz5z
0z6f1pJbuKJwm4M+5VKqwyuSACRnpyPzqXzE8zy9678btueceuKAKS2TrNyg dPNMmTO46tu+5jHH
64qZ0nN6kipGY1UrkuQcEqScY9vWpfPh87yfNj83+5uG716UGUC4WEq2WQuG 4xwQCP1FAFRbJ1m5
QOnmmTJncdW3fcxjj9cVE2nzOjZjgDMJhkMTgv0PT8Pp+VaHnw+d5Pmx+b/c 3Dd69KFnhddySxsO
OQwPU4H68UAVFsnWblA6eaZMmdx1bd9zGOP1xQ9tOWnZY4d0kyOCXIJVccH5 f9n9T+Nvz4fO8nzY
/N/ubhu9elAnhZwgljLEldoYZyOo/CgCNY5o7iQp5ZSRw5Yk5HAGMd+nXPf2 5sVCl3bvM0KzRmRT
tKbuc/SpqAKD205adljh3STI4JcglVxwfl/2f1P4tlspy5KbOJRICZWAb5s4 2jgfXnOM9TxdE8LO
EEsZYkrtDDOR1H4UefD53k+bH5v9zcN3r0oAz20+Z0bMcAZhMMhicF+h6fh9 PyqVbJ1m5QOnmmTJ
ncdW3fcxjj9cVbWeF13JLGw45DA9TgfrxR58PneT5sfm/wBzcN3r0oAb9mj8 zfulznOPOfH5Zx+F
SeWm7dsXOd2cd8Yz+XFR/a7bzPL+0Rb87du8Zz6YqN75FuDD5UpIkWPIXjJG f0HWgCBI3mu7kCIK
hmRjIwIJCheBxyMqe/f8yWynLkps4lEgJlYBvmzjaOB9ec4z1PF3z4f+esf3 9n3h970+vtSNcwLL
5TTxiTIGwuM5PTigCt9lmafJSNV8zdlZWIxnP3CMZPr689aPsszT5KRqvmbs rKxGM5+4RjJ9fXnr
Vrz4fO8nzY/N/ubhu9elJ9pgDBfPj3FtgG8ZLen15FAFeSzke5LiQCNnVyOe o29v+Af+PH05X7PN
jycR+V5vmb9x3ff3424/Dr7+1WBPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3 Dd69KAIYIpo7udzH
FtlfO4Od2AoAGMe3r3qKW1nKeWiwsqzecrMTknfux046kZ5+nPFtZ4XXcksb DjkMD1OB+vFHnw+d
5Pmx+b/c3Dd69KAKv2SU3E0x25MgdF8xirYAGGGMDpnPODj05RbJ1m5QOnmm TJncdW3fcxjj9cVM
LweayNDIqo4jLnbjJxjvnnI7d6l8+HzvJ82Pzf7m4bvXpQBCqXIvHl8uLYwV P9YcgAnnG336VY8t
N27Yuc7s474xn8uKrvqFutwsCuruTggOvynOO5/QZND3yLcGHypSRIseQvGS M/oOtAFqq6xzR3Eh
TyykjhyxJyOAMY79Oue/tzYqFLu3eZoVmjMinaU3c5+lAEDR778xgP5ZIlky hwWXGOff5Tx/c9zU
aRvNd3IEQVDMjGRgQSFC8DjkZU9+/wCdtru2XduuIhtO1suOD6H8j+VOE8LO EEsZYkrtDDOR1H4U
AVFsnWblA6eaZMmdx1bd9zGOP1xVn7NH5m/dLnOcec+Pyzj8Kd58PneT5sfm /wBzcN3r0pv2u28z
y/tEW/O3bvGc+mKAJPLTdu2LnO7OO+MZ/Liqv2eb7Z9oxH9/GzccbcY3dPv9 vpx70575FuDD5UpI
kWPIXjJGf0HWpvPh/wCesf39n3h970+vtQBV+yzNPkpGq+ZuysrEYzn7hGMn 19eetJLazlPLRYWV
ZvOVmJyTv3Y6cdSM8/Tni01zAsvlNPGJMgbC4zk9OKbLdxROE3Bn3KpVWGVy QASM9OR+dAC+W/2z
zNkWzy9u7Hz5z0z6f1qv9lmafJSNV8zdlZWIxnP3CMZPr689aueYnmeXvXfj dtzzj1xTGuYFl8pp
4xJkDYXGcnpxQAxY5o7iQp5ZSRw5Yk5HAGMd+nXPf25bBFNHdzuY4tsr53Bz uwFAAxj29e9SJd27
zNCs0ZkU7Sm7nP0pftMAYL58e4tsA3jJb0+vIoAjdJzepIqRmNVK5LkHBKkn GPb1qF7actOyxw7p
JkcEuQSq44Py/wCz+p/G2J4zOYQylwMkBhkdOo696BPCzhBLGWJK7QwzkdR+ FAFCVJPMW2EYYLOJ
Q5Ru77jzjAwCecnpjHNaPlpu3bFzndnHfGM/lxTHuYEZleeNWQZYFwCB7/mP zqJ75FuDD5UpIkWP
IXjJGf0HWgCSFG8yWWQYZztA9FGcf1P447UnktJMJJWACH5FTIPXue/QcdPr wae8u2aOMDJfJPPQ
Dv8AmQPxpUljkZlVgWQ4Ze4+ooAfRRRQAUUUUANf7pqP/P8An/P/ANeR/umo /wDP+f8AP/1wBr/d
P+f8/wCfxjqR/un/AD/n/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/ dP8AvH+dOoGXKg8l
o5jJEwIc/Or5J69j26njp9OTUjyxxsqswDOcKvc/QUjy7Zo4wMl8k89AO/5k D8aYiv8AZ5vtn2jE
f38bNxxtxjd0+/2+nHvTfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVrz4f8AnrH9 /Z94fe9Pr7UjXMCy
+U08YkyBsLjOT04oAqy2s5Ty0WFlWbzlZick792OnHUjPP054s+W/wBs8zZF s8vbux8+c9M+n9aS
W7iicJuDPuVSqsMrkgAkZ6cj86l8xPM8veu/G7bnnHrigCktk6zcoHTzTJkz uOrbvuYxx+uKmdJz
epIqRmNVK5LkHBKknGPb1qRrmBZfKaeMSZA2FxnJ6cUpnhEhjMse8Yyu4ZGc Y4/EfnQBUWydZuUD
p5pkyZ3HVt33MY4/XFRNp8zo2Y4AzCYZDE4L9D0/D6flV6O5jeVoydjq5QKx GWwAcjnnginefD53
k+bH5v8Ac3Dd69KAKi2TrNygdPNMmTO46tu+5jHH64oe2nLTsscO6SZHBLkE quOD8v8As/qfxtrP
C67kljYcchgepwP14o8+HzvJ82Pzf7m4bvXpQBGsc0dxIU8spI4csScjgDGO /Trnv7c2KYkscjMq
sCyHDL3H1FPoAoPbTlp2WOHdJMjglyCVXHB+X/Z/U/i2WynLkps4lEgJlYBv mzjaOB9ec4z1PGjR
QBltp8zo2Y4AzCYZDE4L9D0/D6flUq2TrNygdPNMmTO46tu+5jHH64q/RQBD 9mj8zfulznOPOfH5
Zx+FSeWm7dsXOd2cd8Yz+XFOooApT205aTyvLKvKkvzEg5Xb8vT/AGev4Y70 n2WZp8lI1XzN2VlY
jGc/cIxk+vrz1q9RQBQWydZuUDp5pkyZ3HVt33MY4/XFSwRTR3c7mOLbK+dw c7sBQAMY9vXvVqig
Cg9tOWnZY4d0kyOCXIJVccH5f9n9T+LZbKcuSmziUSAmVgG+bONo4H15zjPU 8aNFAGW2nzOjZjgD
MJhkMTgv0PT8Pp+VSrZOs3KB080yZM7jq277mMcfrir9FAFH7JKbiaY7cmQO i+YxVsADDDGB0znn
Bx6cotk6zcoHTzTJkzuOrbvuYxx+uKv0UAVVS5F48vlxbGCp/rDkAE842+/S rHlpu3bFzndnHfGM
/lxTqKACq6xzR3EhTyykjhyxJyOAMY79Oue/tzYooApNHvvzGA/lkiWTKHBZ cY59/lPH9z3NRpG8
13cgRBUMyMZGBBIULwOORlT37/no0UAUFsnWblA6eaZMmdx1bd9zGOP1xVn7 NH5m/dLnOcec+Pyz
j8KmooAb5abt2xc53Zx3xjP5cVV+zzfbPtGI/v42bjjbjG7p9/t9OPerlFAF H7LM0+Skar5m7Kys
RjOfuEYyfX1560ktrOU8tFhZVm85WYnJO/djpx1Izz9OeL9FAEPlv9s8zZFs 8vbux8+c9M+n9ar/
AGWZp8lI1XzN2VlYjGc/cIxk+vrz1q9RQBXWOaO4kKeWUkcOWJORwBjHfp1z 39uWwRTR3c7mOLbK
+dwc7sBQAMY9vXvVqigCs6Tm9SRUjMaqVyXIOCVJOMe3rUL205adljh3STI4 JcglVxwfl/2f1P43
6KAMyVJPMW2EYYLOJQ5Ru77jzjAwCecnpjHNaPlpu3bFzndnHfGM/lxTqKAI YUbzJZZBhnO0D0UZ
x/U/jjtSeS0kwklYAIfkVMg9e579Bx0+vBqeigAooooAKKKKAGv901H/AJ/z /n/68j/dNR/5/wA/
5/8ArgDX+6f8/wCf8/jHUj/dP+f8/wCfxjpDK131T8f6UUXfVPx/pRQInj+6 f94/zp1Nj+6f94/z
p1AyXyWjmMkTAhz86vknr2PbqeOn05NLCjeZLLIMM52geijOP6n8cdqmopiK f2eb7Z9oxH9/Gzcc
bcY3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561eooAoS2s5Ty0WFlWb zlZick792OnHUjPP
054s+W/2zzNkWzy9u7Hz5z0z6f1qaigCj9lmafJSNV8zdlZWIxnP3CMZPr68 9aesEisIzHC8YlMg
diSQSxPC4684zn39qt0UAUHtpy07LHDukmRwS5BKrjg/L/s/qfxFsnWblA6e aZMmdx1bd9zGOP1x
V+igDLbT5nRsxwBmEwyGJwX6Hp+H0/Kny2U5clNnEokBMrAN82cbRwPrznGe p40aKAIPJaSYSSsA
EPyKmQevc9+g46fXg1PRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUA
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA1 /umo/wDP+f8AP/15
H+6aj/z/AJ/z/wDXAGv90/5/z/n8Y6kf7p/z/n/P4x0hla76p+P9KKLvqn4/ 0ooETx/dP+8f506m
x/dP+8f506gZcooopiCiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAoooo
AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigA
ooooAKKKKAGv93HqRVUzIDhioPu3/wBerUhAXJOACMk/WqDGBnVmKHb70AE0 hM8ABwrE5wevBqWq
8zh7qAhgxy2cH2NWKQytd9U/H+lFF31T8f6UUCJ4/un/AHj/ADp1Nj+6f94/ zp1Ax7y7BkngAEkk
1BdzuLN3QlSVyCCcjNLMYnyrOvQd+nFQ3bp9jdVdSQgHX0oEaGT6n/P+f89z J9T/AJ/z/nun+f8A
P+f/AK5/n/P+f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuA Lk+p/wA/5/z3Mn1P
+f8AP+e6f5/z/n/65/n/AD/n/wCuALk+p/z/AJ/z3Mn1P+f8/wCe6f5/z/n/ AOuf5/z/AJ/+uALk
+p/z/n/PcyfU/wCf8/57p/n/AD/n/wCuf5/z/n/64AuT6n/P+f8APcyfU/5/ z/nun+f8/wCf/rn+
f8/5/wDrgC5Pqf8AP+f89zJ9T/n/AD/nun+f8/5/+uf5/wA/5/8ArgC5Pqf8 /wCf89zJ9T/n/P8A
nun+f8/5/wDrn+f8/wCf/rgC5Pqf8/5/z3Mn1P8An/P+e6f5/wA/5/8Arn+f 8/5/+uALk+p/z/n/
AD3Mn1P+f8/57p/n/P8An/65/n/P+f8A64AuT6n/AD/n/PcyfU/5/wA/57p/ n/P+f/rn+f8AP+f/
AK4AuT6n/P8An/PcyfU/5/z/AJ7p/n/P+f8A65/n/P8An/64AuT6n/P+f89z J9T/AJ/z/nun+f8A
P+f/AK5/n/P+f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuA Lk+p/wA/5/z3Mn1P
+f8AP+e6f5/z/n/65/n/AD/n/wCuALk+p/z/AJ/z3Mn1P+f8/wCe6f5/z/n/ AOuf5/z/AJ/+uALk
+p/z/n/PcyfU/wCf8/57p/n/AD/n/wCuf5/z/n/64AuT6n/P+f8APcyfU/5/ z/nun+f8/wCf/rn+
f8/5/wDrgC5Pqf8AP+f89zJ9T/n/AD/nun+f8/5/+uf5/wA/5/8ArgC5Pqf8 /wCf89zJ9T/n/P8A
nun+f8/5/wDrn+f8/wCf/rgC5Pqf8/5/z3Mn1P8An/P+e6f5/wA/5/8Arn+f 8/5/+uALk+p/z/n/
AD3Mn1P+f8/57p/n/P8An/65/n/P+f8A64AuT6n/AD/n/PcyfU/5/wA/57p/ n/P+f/rn+f8AP+f/
AK4AuT6n/P8An/PcyfU/5/z/AJ7p/n/P+f8A65/n/P8An/64AuT6n/P+f89z J9T/AJ/z/nun+f8A
P+f/AK5/n/P+f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuA GTxyeo7/AOf8/rE0
+1lU8FunJ/xqQkDknABySf8AP+f51SYXdWdlIXoM8E0AFy5eWGNuUYncp5B4 pfs8H/PGP/vkVHK6
tdW+1geW6fQ1YoGMWGJGDLEikdwoFPoooArXfVPx/pRRd9U/H+lFAidFXYCQ ckn+Ijufel2r/dP/
AH03+NRThTaEO4RcnLN0+8eD7dqqxyKgCLJHBDlv3sQCq5+XGM5Hc/8AfNAy 39ktv+fdP1/xo+yW
3/Pun6/41VW7cIBKwSZnjwh4ODtzgH3LUJNJ5Fu01x5YkTcZMKMHAwOeO5P4 fhQIv4Hof++2/wAa
aVzJjLAbQcbz6n3qpDNM14VZ0xuYGPPIAzg4xkduScc+4q1MAQ4Zyg8vlgcY 5bnNAC7f9p/++zRt
/wBp/wDvs1neZ5SEW5twpYbpowEUcHgnkZ4H/fVPE055M3QIPlAIO5yuckc8 YPp+FAy9t/2n/wC+
zRt/2n/77NZ893IkWRIFaPf99gokwxAHTk8c4x1/JZ2ma3k+dn81pYwmBxgN jGBnPyigC/t/2n/7
7NG3/af/AL7NUjNiX5bgGMqu6b5eB8/fGOoA/wDr1IkxN2qed5ikDAQqeMZy wxkfUcdPxALO3/af
/vs0bf8Aaf8A77NNkIKyKzbF2csDgjrzmqkTrErvF5BRCGd4UADDnI78jr+l AF3b/tP/AN9mjb/t
P/32apPJcKJXaQq0cQk2ALjJLHB47YA4oEhihlAlIcytwSoEeWJBJwcAj1z1 FAF3b/tP/wB9mjb/
ALT/APfZqlHcu8SMZRzkOyjIUBiN2ffH074wDV+gBu3/AGn/AO+zRt/2n/77 NOooAbt/2n/77NG3
/af/AL7NOooAbt/2n/77NG3/AGn/AO+zTqKAG7f9p/8Avs0bf9p/++zTqKAG 7f8Aaf8A77NG3/af
/vs06igBu3/af/vs0bf9p/8Avs06igBu3/af/vs0bf8Aaf8A77NOooAbt/2n /wC+zRt/2n/77NOo
oAbt/wBp/wDvs0bf9p/++zTqKAG7f9p/++zRt/2n/wC+zTqKAG7f9p/++zRt /wBp/wDvs06igBu3
/af/AL7NG3/af/vs06igBu3/AGn/AO+zRt/2n/77NOooAbt/2n/77NG3/af/ AL7NOooAbt/2n/77
NG3/AGn/AO+zTqKAG7f9p/8Avs0bf9p/++zTqKAG7f8Aaf8A77NG3/af/vs0 6igBu3/af/vs0bf9
p/8Avs06igBu3/af/vs0bf8Aaf8A77NOooAY8SupV9zA9QWJqP7Hb/8APJan ooAhW1gRgyxhSO44
qTyx6t/30adRQA3yx6t/30aPLHq3/fRp1FAFW6UKUxnv1JNFLd9U/H+lFAiX zVQbWV8gnoAR1J9a
PtEf92T/AL5H+NV7i+S2cLIWywJG1M8ZI9R6VF/a0PrJ/wB+x/8AFVXK2F0X ftEf92T/AL5H+NH2
iP8Auyf98j/Gqf8Aa0PrJ/37H/xVH9qw+sn/AH7H/wAVRyvsF0XPtEf92T/v kf400zrvJ2PjAA4+
v+NVf7Vh9ZP+/Y/+Ko/tSH1k/wC/Y/8AiqOV9gui19oX+4/5UfaF/uP+VVv7 Uh9X/wC/Y/8AiqP7
Uh9X/wC/Y/8AiqOVhdFn7Qv9x/yo+0L/AHH/ACqt/acXq/8A37H/AMVS/wBp xer/APfsf/FUcrC6
LH2hf7j/AJUfaF/uP+VV/wC0ovV/+/Y/+Ko/tKL1f/v2P/iqOVhdE4nG8tsf BAHT60PKjjDRuRkH
p3ByKg/tGL1f/v2P/iqX+0YvV/8Av2P/AIqjlYXRP9oX+4/5UfaF/uP+VQf2 jF6v/wB+x/8AFUf2
hH6v/wB+x/8AFUcrC6J/tC/3H/Kj7Qv9x/yqH+0I/V/+/Y/+Ko+3x+rf9+// ALKjlYXRN9oX+4/5
UfaF/uP+VQ/b4/Vv+/f/ANlR9uj/ALzf9+//ALKjlYXRN9oX+4/5UfaF/uP+ VRfbo/7zf9+//sqP
tsf95v8Av3/9lRysLol+0L/cf8qPtC/3H/Kovtqf3m/79/8A2VL9tT+83/fv /wCyo5WF0SfaF/uP
+VH2hf7j/lUf2xP7zf8Afv8A+yo+2J/eb/v3/wDZUcrC6JPtC/3H/Kj7Qv8A cf8AKo/taf3m/wC/
f/2VL9rT+83/AH7/APsqOVhdD/tC/wBx/wAqPtC/3H/Kmfa0/vN/37/+yo+1 L/eP/fv/AOyo5WF0
P+0L/cf8qPtC/wBx/wAqb9qX+8f+/f8A9lR9pX+8f+/f/wBlRysLod9oX+4/ 5UfaF/uP+VN+0r/e
P/fv/wCyo+0L/eP/AH7/APsqOVhdDvtC/wBx/wAqPtC/3H/Kk+0L/eP/AHx/ 9lR56/3j/wB8f/Xo
5WF0L9oX+4/5UfaF/uP+VJ54/vH/AL4/+vS+eP7x/wC+P/r0crC6D7Qv9x/y o+0L/cf8qPOH98/9
8f8A16POH98/98f/AF6OVhdB9oX+4/5UfaF/uP8AlS+aP75/74/+vR5o/v8A /jn/ANejlYXQn2hf
7j/lR9oX+4/5UvmD+/8A+Of/AF6PM/2//HP/AK9HKxXQn2hf7j/lR9oX+4/5 U7zP9v8A8c/+vRv/
ANv/AMc/+vRysd0N+0L/AHH/ACo+0L/cf8qdv/2//HP/AK9Lu/2//HP/AK9H KxXQz7Qv9x/yo+0L
/cf8qfu/2/8Axz/69Gf9v/xz/wCvRysLoZ9oX+4/5UfaF/uP+VPyf7//AI5/ 9elyf7//AI5/9ejl
YXRH9oX+4/5UfaF/uP8AlUnP9/8A8c/+vRz/AHx/3x/9elysd0R/aF/uP+VH 2hf7j/lUnP8AfH/f
H/16Of74/wC+P/r0crC6I/tC/wBx/wAqPtC/3H/KpOf74/74/wDr0c/3x/3x /wDXo5WF0R/aF/uP
+VH2hf7j/lUnP98f98f/AF6Of74/74/+vRysLoj+0L/cf8qPtC/3H/KpOf74 /wC+P/r0c/3x/wB8
f/XoswuitO/mbcKwxnqKKs8/3x/3x/8AXooswujKvv8AkJWv4f8AobVr/P52 1U7t95Pl745x9Kx7
8hdRtiSABySf99qtXN2EmVoJbdgzEZ3cqTnk+2DVuLlZIV7DtSZjYzq6xBkZ R+7z69+KyYIopI5G
eR1KDcQqA8ZA9R61qX8tqNLMMEyOwIJ55Y55J96yI5NiSrjO9dv05B/pVx20 JYqwSMgZQGBOMKQT
1x061KLVvLboXDKBtcEYIbOSPpTkvdsPl4kHCjCyYUYIOQMcHjr6k0Ne5VlW MYYrncc7gM/ewBk8
9fYd+arUWhC0TogdsAHoNwz+XWp4rQP8uX3iPzGCLuPJGAB9Dn8famTTrJEs aq2AersGIHoDgYHt
StMpjJHLPGI2HpgjB/ID8c0agSx2QdypMi8gDemDnKjkZ/2v5VCLaUkgBTg4 4ccn0HPJ+lOguzBG
FVASDuBJ91P/ALL+tPju/KQpGJVUHcoEmOcDrgcjj2pahoQvE8YUuuNwyOeo 9ae9rKm7co+Xrhge
nX8u/pTJZPMcNjGFVfyAH9Kma63OzbOrSN1/vDH6U9QEitncjlQCCchgccE4 PPHTvSw2zPKgfAVn
CnDDJ5xx6/WpDe5TbtfBPIL8AYIIUY46+/QUxLhFaNvLYmI/L83bdnB49zS1 DQb9nkyBhT/tBhj8
849PzFPhtXeZUcBVLAE7gM/T1/D2pILkxIEAYdclWwecdD/wGnrdDzFd0Ztj 71+fnt1JBz0HpRqG
hFEiucMzDsAq7iTQImMjIpVtvVs8fXNLDIiBgyMS3GVbBA79jRHIqM42ko4w RnnGc9ce3pQA8wbI
C7fe3YHzAY6c+/XtSJGrITvO4AnGOAPc/wCeoolm81VXbgKeOe2AB/KlEkfk hCjZ65DYBPYkYo1A
WKAyRlgQMZ6kAHBHfPvSLBIwXCg7sYGRnnpx2pY5gsXlspKnOcHB5x/8TUi3 ZATIc7dvG/5cDHb8
KNQ0IzBIB90H/dIOfypRF95SRvC7htYEHHXp7c/hSpPtUDB4XbkHB+9uzTjM pZnxg7doHUnPUk9+
Cf0o1AgpaSlpiFpaSloAWiiikAtLSUtAC0UUUALS0lLQAtLSUtABS0lLQAtL SUtABS0lLQAtLSUt
IApaSloAWlpKWgBaKKKAFooooAKKKKACiiikAUUUUDFooooAKKKKAKs+npdM skkjKRkAKvbcai/s
aH/ntJ/3yK0F+4Pqf/QjS1nzNGlkZn9lQ+f5Ylk+4WJwPUD+tP8A7Hh/57Sf 98irQ/4/f+2J/wDQ
hTLuaSPCIhJkGFbPQ0czCyKs2mQwwvJ5sh2jONo5qQ6PCCR5z8f7IqW4jEWn sg6KuKtv99vrRzML
Iz/7Ih/57P8A98imR6ZC+/8AeuArlfujngf41asAFs4wGDDnkfU0626Tf9dm /kKOZhZFb+yYv+ez
/wDfI/xpf7Ji/wCez/8AfI/xpUyq+aHcu05TBYkEbyOnsOePT60kV1cyJuEI +dN6DIHcf7XPB9un
vRzMLIP7Ki/57P8A98j/ABo/sqL/AJ7P/wB8j/GpIZpJnCq6YUAsTGRnkjAB PGNvvUX2mcxwOfLD
yoCOpAyyDpnnqf8APU5mFkL/AGXF/wA9n/75H+NL/ZcX/PZ/++R/jSrJM14s e9QUDBsKcN9w9M8H
5vemwXMjQo/y7AY0K8kksF5zn/a9+lHMwshf7Mi/57P/AN8j/Gj+zI/+ez/9 8j/Gn2s8r+V5pQ+b
H5g2qRt6cdTnr+lWqOZhZFP+zI/+ez/98j/Gj+zY/wDns3/fP/16uUUczCyK f9mx/wDPZv8Avn/6
9H9nR/8APVv++f8A69XKKOZhZFT+zo/+erf98/8A16P7Pj/56t/3z/8AXq3R RzMLIqf2en/PVv8A
vn/69L/Z6f8APVv++f8A69WqKOZhZFX7An/PVv8Avn/69H2BP+erf98//Xq1 RRzMLIq/YU/56t/3
z/8AXpfsKf8APVv++f8A69WaKOZhZFb7En/PVv8Avn/69H2Jf+ep/wC+f/r1 Zoo5mFkV/sS/89T/
AN8//Xo+xr/z1P8A3x/9erFFHMwsiv8AY1/56n/vj/69H2Rf+ep/74/+vVii jmYWRB9kX/nqf++P
/r0fZV/56n/vj/69T0UczCyIPso/56n/AL4/+vS/ZR/z0P8A3x/9epqKOZhZ FbyR5/l7z9wsTt9w
PX3p/wBmH/PQ/wDfH/16B/x+/wDbE/8AoQqtdswuJNvmfLGpVlfCoSW5YZ5H TseBRzMVkWvs4/56
H/vj/wCvR9nH/PT/AMc/+vULXE32llWMeWrqhJx3x3z79MH9eEW4mLCNtqSs wG0ofk4J65w33e2P
6UczCyJ/IH/PT/xz/wCvR5H/AE0/8c/+vUAu5PKuDhcxRkjjqQWH5fLSieZg P9WpeVo1OCcY3cn8
sfr7UczCyJ/I/wCmn/jn/wBejyf+mn/jn/16gNxOJyuwFEZUZuACSBzy3HXp g/WrdLmY7IiaPapY
ycAZ+5/9eiNC8SOXxuUNjb0yM+tPl/1T/wC6abEA1rEDnBiUcHH8Ip8zFZC+ V/00/wDHP/r0eX/0
0/8AHP8A69Uop5ktgwYFY7dZW35ZmJyTznjp71LdB3uIkTJGxiR5rJ3XuPrR zMLIseWf+en/AI5/
9el2H/np/wCOf/XqsJpEJ4UJG6RleWJJ287v+Benb3qvE8j2cIBUJG0KkYyT 9w5znjr6dqOZhZGj
sP8Az0/8c/8Ar0bD/wA9B/3x/wDXqkt5cGNXMSgSBSgYgdWAxwST97rgfTmr y52jcQTjkgYpczHZ
EcWZYg+8AEnA2ehI9fan7D/z0H/fH/16jtP+PWP/AIF/6Eaiilk+yWoUjfKq jc3P8Oc+/SjmYrIs
7D/z0H/fH/16Nh/56D/vj/69V4Z5ZpCgKLs++SpO75mHHPH3ffrUMl1M+FX5 VkKtG+3HG9R65PDe
3+BzMdkXth/56D/vj/69Gw/89B/3x/8AXqsssxuHhVkDZJLFSRwqds8fe9ab FdyyL5uEEe5F2YOf
mC98/wC16dqLsLIt7D/z0H/fH/16ZISmz5wSzhR8nqfrUtQ3HWH/AK7J/Oi7 CyJNh/56D/vj/wCv
RTqKLsLIjC3DD92se0E/eLZ6n0FHl3npD+bf4VMJhBYtKRnaW4zjPzGslry5 YGX7QVyT8oHGeMAe
3T/6+fmLDtctuJopfNka3UlCvzMQMZHPT/Oab9pb/n4s/wDv4f8ACq9/c/a7 FJCAG2MDg8Z3J/n/
ADmserjC6Ibsbs0pliaM3FmAwxkSH/CpXuW3tma0U56GQ5H6VztS3f8Ax9zf 9dG/nVezQcxt/aW/
5+LP/v4f8KRJTGrET2mHctkyHGcDjp/nNYFSt/x6R/8AXR/5LR7NBzGwrojl 0ewV26sGwT+lJuiw
43afhzlvm+99eOay1tgwB81QrBQrNwCxxkH0xzz7D1FPa0jUtvadAibzvhwe oAwN3v8ApS5EHMzS
LodmXsDs+5lvu/TjimyFJYwjS2O0YwA/YEHHTpwKyXgYZZPmTbvDdPlzjp9e KdbW/n7sttxhV4zu
c9F9s4PNHIg5jWDoFVQ9gFU5UbuAfUcUB0DKwewDKMKd3IHoOKx/s0piEgC7 SCQNwyQOpx17H8qS
OCSVdyAEZwMkDJ9B6n2FP2a7hzG0Jgu3E1iNowMOeB6dPYU77S3/AD8Wf/fw /wCFZD2j7h5YyCqk
ZYAklQSB69eg9qb9kmwCFU5AIG8Z55Axnqew6mlyLuHMzZ+0t/z8Wf8A38P+ FH2lv+fiz/7+H/Cs
VbWZgu1QSxAA3DPPTI6gcjk+op6Wcjb8lBtXcDvUqeQMZzgdf85o5F3DmZr/ AGlv+fiz/wC/h/wo
+0t/z8Wf/fw/4VhJDJJG7quVT7xz06/4VNFZu0oWQADBJww4wCcH+6eO/wDS jkQczNf7S3/PxZ/9
/D/hR9pb/n4s/wDv4f8ACsVrd8MyqNoJwN4JIHceo9xxwaU2kyyMjKqsvXc4 AH4k+39aORdw5mbP
2lv+fiz/AO/h/wAKPtLf8/Fn/wB/D/hWKbWZU3FQOCdpYbuCQfl69j+VH2WU MFIUHGTl1+X688fj
RyLuHMza+0t/z8Wf/fw/4UfaW/5+LP8A7+H/AArDEEjTeUAN+M8kAYxnOemM c5pWtpUxuCgE4zuG
B6Z9M9vWj2a7hzG39pb/AJ+LP/v4f8KPtLf8/Fn/AN/D/hWG8EkalmA2ggZB BBznGCOvQ/lSrbSt
LJHhQ0ed25gAOcdTx1o9mu4cxt/aW/5+LP8A7+H/AAo+0t/z8Wf/AH8P+FYo tZiSNoyDgZYfN9PX
t09R60k8Bh2ZZSHUMMEZ5API7daORBzM2/tLf8/Fn/38P+FH2lv+fiz/AO/h /wAKyLm0aGd0XaUD
lQd4OOeM+n4471E8EkalmA2ggZBBBznGCOvQ/lRyIOZm59pb/n4s/wDv4f8A Cj7S3/PxZ/8Afw/4
VitazKG3KAVJBG4Z464HUjg8j0NMiheXOzaSOxYAn6Dv+FHs13DmN37S3/Px Z/8Afw/4UfaW/wCf
iz/7+H/CsOKB5VZl2gKQCWcL1+p9jQIJCrHAyhIZSRuGOvHWn7NBzG59pb/n 4s/+/h/wo+0t/wA/
Fn/38P8AhWM9pNHu3Kvy5zhwenXoe3f0pkkEkS7nAAzg4IOD6H0PsaXIu4cz NsSnzTKJ7QkJtOJD
gDI56f5zR9o+Yt59lkjBPmH/AArFh/1U/wD1zH/oS01YXeMuNoUd2YDP0z1/ Cj2aDmNoOgZWD2AZ
RhTu5A9BxSBohGYw2nhCcld3B/DFZK2sr7doUhhnIdeOM888cA9fSl+yTEgb V5z/ABjA4zzzxwCR
60ci7hzM1XaJ1VXbT2CjCgtnH04pzSqyFGksShOSpfg859PWsoWj+UxIy4ZQ MMCpBDZOen8PX61D
JG0TYcDkZBBBB+hHWjkQcxtB0DKwewDKMKd3IHoOKf8AaW/5+LP/AL+H/CsT 7NLnGzvjqMHjOfpj
nPSpLezeS4RGKhC4UkSLz0zg55PPbNHIu4czNZrgspU3FngjH+sP+FHm7Y1i aWz2hAuGkPIx9O9Y
FTTqWmVVBJKIAB3+UU/ZoOY11dFUqr2AUjBAbgj06e5/OnfaPmDefZZAwD5h /wAKyFs5GyBtJBHR
1I6E8nPH3TSfZJiQNq85/jGBxnnnjgEj1pci7hzM1zKpkEhksS4GA2/kfjim loiysW08lAAp3dMd
McVmC0fymJGXDKBhgVIIbJz0/h6/WoZI2ibDgcjIIIIP0I60ciDmNoOiliHs AWOWIbqeuTxT/tLf
8/Fn/wB/D/hXP0U/ZoOY30lMUSIJ7TAyQTIeckn0/D8KjHkqrKDpwVvvANwf rxWTN/qoP+uZ/wDQ
mqaexdJXEeNisRl3Vf4mA6n/AGTS5EHMaRdDsy9gdn3Mt936ccUgaIMzBtPB cEMd3XPXPFZH2aUI
WKYxngkBuOvHX1/I+lOtoopjteR0bk8ICAAMk9R70ciDmNUtEybGbTyuc4Lc dMenpTvOBzmax5IJ
+c8kd+nsKwaKfs0HMdB9pb/n4s/+/h/wpDKZGjHn2hKuGAWQ5JB6dKwKltP+ PuH/AK6L/Oj2aDmO
i8u89Ifzb/CitCisiiqiJLaNE7YDFgcHB6msttOuQWQNG6dMkgD2OPxP69c/ NrwMEtizHABYk/ia
rteTkeaiR+TyeTz9PqaOaxcYt7FO/tTFaJFFulIRskc87k/LoayPstx/zwl/ 74NdbHKs0ccifdb/
AOvUtWp2M3E437Lcf88Jf++DUtzbTtdTFYZCC5IIU8811tNT7i/Sn7Ri5Tj/ ALLcf88Jf++DUrW0
/wBljHkyZDscbT6LXW00ffP0H9aPaMOU5bZKU8trOXywBgBSCDxk5x35/T0F SLvWNohZXHlEHjPz
ZJU9dv8AsjtW+15EgJbcMFgwxyoUEkkenT/voetI12y7d1rMGZtqrlMk4J/v e1LnCxzjxTPkfZJd
oXbGNp+XnOenPf8AOnQm7giCRW7Ah95YxZz0x1Hbn866aOZHA52sTtKtwQcZ x+XP056U24uUt9m8
Mdxx8v8ACO7H0A7n3o5w5TnXM7Sh1s5FAR0ChTxu3e3bd+lFu11BF5YguQAx YbCy5Jx1wORx7d66
Tz4fO8nzY/N/ubhu9elK80cbKskiKznChmALH2o5wsc6s10qhRb3KhQMBCy5 IUDnA5Hy+3emq1wr
q32SU7Wibof4Bj0710Ed1GwHmOkbM7IqswyxDEcf57077TAWK+fHuDbCN4yG 9PrwaOfyHY59JrpR
Fm3uTsK/LltmFx0GOvHv3qKITpB5LWszIS27AIPO08ceqiumM8Id0MsYZBuZ dwyo9T6VG19bKqP5
0ZRn2bww2g4J5P4frRzhY5kQ3AgeL7PL8zK2dp7A/wCNWZJrqQktb3JLBshi xAJUjgY4HPvXRtIi
EBnVSegJxnkD+ZH51DNeQxxSMskbGMhWG8fKScDPpzRzisc+rXQthD5FzwpU AFgpBz1GOTye/pSr
JcrLO32e5UTPvPlkqR14zjpzXRJcRsY0MkfmOoYKHByPb1HvQ1zAqb2njCZA 3FxjJGR+nNHP5Dsc
2xuWkVzay5COh4PO7dzz/vfpTg06zPKtrcq0oPmFSQeSD8vHHI9+K6Pz4fO8 nzY/N/ubhu9elJ9p
gAcmePEZw/zj5T7+lHOKxzJFybhpTbzHcpX5gSeV25J/z+FSK1wp/wCPSX+D scjapXI4685B7V0j
TRrF5rSII8A7ywxg9OaRZ4WDFZYyEAZiGHAIyCfwo5wsc/5lwZPM8m4BSLau 8Fyx3ZHOOx5/4Djv
VWOG4RJV+zynzF2/dPHIP9K6tJo5ApjkRwwJG1gcgdaR54Y41keWNUboxYAH 8aOcLHOB58xs1nMT
EVKYB6hVHPHI+UelQzRTy7D9mmDhQpO04OAAOMccCupM8K+XmWMeZ9zLD5vp 69aSC4jn3iNgWRir
LkZBBI5/KjnCxzoa4Esr/ZJf3kvmdDlfvdOOvzcH2pWluvOWRbe4+VNuXyxJ yWBzjscflW9bXkNx
biUSRjCBnAcHZkZ5qVJo5ApjkRwwJG1gcgdaOfyHY5pWuhbCHyLnhSoALBSD nqMcnk9/Sls2uLbH
+jXHDbvkyu72bg5HH6mujE8JdEEsZZxuVdwyw9R60rzRxsqySIrOcKGYAsfa jnFY5QQ3AgeL7PL8
zK2dp7A/41aM1wfN/wBFuF37/lUkL82eSMckZ6+wroJZ4YMedLHHnpvYDNKZ oxKIjIgkYZCFhkj6
Uc4WObZrhnZvsko3NK3Q/wAYx6dqS6a6uVw0FzktuIYsQD7DHA5966NLmCQq I543LEgbXByR1pyT
RyMyxyIzIcMFYEqfejnCxysVtOI5wYZBlAB8p5+YU6JZ44HjNtM27OARlRkY zjHX3zXUt1X6/wBK
R5o42VZJEVnOFDMAWPtRzhynPNNcGMr9luPmzwSSq5VhhRjgfN09qSFpdzCS 1mCsgBwp7Rsvp3z+
FdB9pgAcmePEZw/zj5T7+lH2mDazefHtUAsd4wAemfrRzDsc8klxGAsdpMqr gL13AfNnnHX5zz7D
rUUyzzMxa2uGO3apcsxHOc5x9RXSfaoy6bXRo2Rn8wMMAKQD/P8ASpY5ElQP G6up6MpyDRziscwB
MHQi1uEEfCFCQwXnjOPU5/E+2Hq8vmq7WMuI33oEG3njrx/sjpjvXR+dGFDe Ym0rvB3DBX1+nIqG
4voIbYzCWNhtYoN4+cjsKOcdjlvstx/zwl/74NTywTi4RxDN8qpyoIPCjocc GurpqdPxP86fOxcp
zZknw4FnL8wxkjk/KwyTjk/N19vxpYWl3MJLWYKyAHCntGy+nfP4VvfbLcjc JoymDlw4wMY9/cf5
xTvtMG1m8+PaoBY7xgA9M/Wlzjsc8klxGAsdpMqrgL13AfNnnHX5zz7DrUNx HczyBjBcHAwC+WP5
10v2qMum10aNkZ/MDDACkA/z/SpY5ElQPG6up6MpyDRziscf9luP+eEv/fBo +y3H/PCX/vg12VFP
2jDlOSltpzHABDIcIQflPHzGprlri4Rl+ySrubd0J7ufT/b/AErpV6t9f6VX iv4GgSSWSOHeAcO4
7gH+opc4WMSWa6kVx9nuV3FsKCwXBJPIxyeT+lVkhuEikQW8uXwCdp6dcfnj 8q6szRiURGRBIwyE
LDJH0qOa6WFiCjsEXe5XGEXnk5PsemelHOFjlPstx/zwl/74NH2W4/54S/8A fBrsqKftGHKcb9lu
P+eEv/fBqW2tp1uoS0MgAcEkqeOa62mv9xvpR7RhyhvX+8Pzop1FZlEEKCS1 KHo24H8zVKS1udvk
LEpj4w+7HPqe/wCFXbZVMOSAfmbt7mpdi/3R+VJq5UZuOxHBCIIYogc7e/r1 qamFVyvyjr6e1LsX
+6Pypkjqan3F+lGxf7o/KkRV2L8o6elAD6aPvn6D+tGxf7o/KkCrvPyjoO1A EIinWUzAoXYkMpOB
tGdo6df8T7YgFpMjpJFFBHtcHylchfusCc7ep3Dt2q9sX+6Pyo2L/dH5UAQx wurB2EZZ5N799vy7
fl/Ic/X6Uy5s2uZmLTOkZi8sBMZOT82cg+i1Z2L/AHR+VGxf7o/KgColrP5L CV0aRpY5CR0O0Jnt
/smi7s2nmZxhldAjAyMoABPOB97r0OOnvVvYv90flRsX+6PyoAz205yz52sJ NwI8xlABdj0H3uG6
HHTrzT5LKRo3UMmWSdRyertkVd2L/dH5UbF/uj8qAM+TTncTKNvzeYVZpG6s D/D0H3uvP054nmtp
GuxcR7CVC4ViRkgODzjj7/6VZ2L/AHR+VGxf7o/KgCN4d93FMQpEaMBnqCdv I/AH86pxac6LGvy/
u9gDGRm3AMpPB4X7vQZ+vFaGxf7o/KjYv90flQBUezZrtpOCjurkmRhggDja OD93qfX2pn2B0gtV
QKWhjKMqyNGCTjJyvPUfrV7Yv90flRsX+6PyoAqJZMkLRqUx5sbDGcYUJ9f7 ppptJjbQxEJ/o5Gw
rKylwFK8kDK9c8Z9Ku7F/uj8qNi/3R+VAFcWzC0SIbQRIrn5if4wx5PJ+vf2 qM2cwwUdQR5vQkZ3
OGxntwCM9s8Vc2L/AHR+VGxf7o/KgDPFpKqkfMkkkvDJIzlVKAHLEZ7ZHvtq 5JDlrfYFVYnzjpxt
IwPzFSbF/uj8qNi/3R+VAFE2UwWdVMZE4ZGJJGwFnII454fpx0q1bxvEHRtp XezKwPJySTkdsZqT
Yv8AdH5UbF/uj8qAKYs5lht1V1DRQeWcEjJ+XgHtnaRnqM01LGXy3O7y5Gky CsrMQpUKRuIz2yPc
D0q9sX+6Pyo2L/dH5UAUzYkXJZVXyy6v/rGAXaAANg4P3ev+FLqFtNcK6xkF WQqAZGQKeeeB83bg
+nvVvYv90flRsX+6PyoAY0ZN1HLkbVRlPrklf8DVJbG4CQIWVhH5fPmsAu3G Rtxhuh5Pr7VobF/u
j8qNi/3R+VAFKOykWNFLJlUgU8nqjZNOsrNrdl3YPlpsVvMZiRxzg8L06DP6 c29i/wB0flRsX+6P
yoAG6r9f6VBLDI10kkRCcAO+85IBJ27cY/HIPP5zFVyvyjr6e1LsX+6PyoAz /sNw0yO7KduMsZWO
751bO0jC/dPA9aJ7WZVRkCuVkY4yf4plYdvQc1obF/uj8qNi/wB0flQBQlsJ ZnaRiisxLFVY8HMe
BnGf4OvbPerFtDJCvAQb33OC7OcbcdT1PA9OKn2L/dH5UbF/uj8qAKhtH2SZ SNjKQxUOU2sDkAMB
nHf65PfhklrdGGUbo5Xmi8ti7bdv3sdBz97HQdPer2xf7o/KjYv90flQA6op EElvIhUMGDDaTgHr
xntT9i/3R+VIqrj7o6nt70AUjZ3DtGzyKdh4BbO0b0OM45+6eTzz+NNntZlV GQK5WRjjJ/imVh29
BzWhsX+6Pyo2L/dH5UAUJbCWZ2kYorMSxVWPBzHgZxn+Dr2z3q1aQmFG3ABn bcQHZ+wHU8np7VLs
X+6Pyo2L/dH5UAOopuxf7o/KjYv90flQAL1b6/0qlY2UlvIjOyEKm3gnrtjH /sh/SrgVct8o6+nt
S7F/uj8qAM+DTniMYbawGwsfMYAFQo+6OD93qfXpxU13avPIWURtlNqsx5iP PzLx15Hp90c+lrYv
90flRsX+6PyoAdRTdi/3R+VGxf7o/KgB1Nf7jfSjYv8AdH5UjquxvlHT0oAf RTdi/wB0flRQB//Z

------=_NextPart_000_004F_01C3123E.E5BEE0B0--
Re: A Diagnostic Message for the Valid Schema [message #21114 is a reply to message #20113] Sun, 04 May 2003 18:06 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: paechoi.earthlink.net

This is a multi-part message in MIME format.

------=_NextPart_000_0080_01C31246.638A8920
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0081_01C31246.638A8920"


------=_NextPart_001_0081_01C31246.638A8920
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Ed,

I also tested with XSD v1.1.0 + EMF v1.1.0 with xerces v2.2.1 and =
v2.4.0, but
am still having an exception. However, the exceptions are not same as =
previous
one. The exceptions and the associated code snippet are as follows:

// ### Exception with xerces v2.2.1 ###
java.lang.NullPointerException
at org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263)
at org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown Source)
at =
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDe=
cl(Unknown Source)
at =
org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(=
Unknown Source)
at =
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknow=
n Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
at org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)
at =
org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDD=
emo2.java:87)
at org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101)
at org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)
java.lang.NullPointerException
at org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104)
at org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)


// ### Exception with xerces v2.4.0 ###
java.lang.NullPointerException
at org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263)
at org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown Source)
at =
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDe=
cl(Unknown Source)
at =
org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(=
Unknown Source)
at =
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknow=
n Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
at org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)
at =
org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDD=
emo2.java:87)
at org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101)
at org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)
java.lang.NullPointerException
at org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104)
at org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)


// ### Code Snippet ###
/*
* EclipseXSDDemo2.java
*
* Created on May 2, 2003, 11:13 PM
*
*/

package org.paechoi.xsd.test;

// W3C/DOM
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
// Eclipse/XSD
import org.eclipse.xsd.util.XSDParser;
import org.eclipse.xsd.XSDFactory;
import org.eclipse.xsd.XSDSchema;
import org.eclipse.xsd.impl.XSDSchemaImpl;
import org.eclipse.xsd.util.XSDResourceImpl;
import org.eclipse.xsd.util.XSDResourceFactoryImpl;
import org.eclipse.xsd.XSDDiagnostic;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.emf.common.util.EList;
import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.io.FileNotFoundException;


/**
*
* @author pae
*/
public class EclipseXSDDemo2 {
// private Document xmlDOM =3D null;
private XSDParser xsdParser =3D null;

// instance initializer
{
// =
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =
new XSDResourceFactoryImpl());
}
=20
/** Creates a new instance of EclipseXSDDemo2 */
public EclipseXSDDemo2() {
super();

// Redirect the System.err
try {
System.setErr(new PrintStream(new =
FileOutputStream("errors.log", true)));
}
catch (FileNotFoundException fileNotFoundException) {
}
}
=20
/** Open a XML DOM */
private Document openXMLDOM(String uri) {
// Create a factory object for creating DOM parsers
DocumentBuilderFactory factory =3D =
DocumentBuilderFactory.newInstance();
DocumentBuilder builder =3D null;
Document xmlDoc =3D null;
=20
// Build a new DOM
try {
// Now use the factory to create a DOM parser (a.k.a. a =
DocumentBuilder)
factory.setNamespaceAware(true);=20
builder =3D factory.newDocumentBuilder();
xmlDoc =3D builder.parse(uri);
}
catch (Exception ex) {
ex.printStackTrace();
return null;
}
=20
return xmlDoc;
}
=20
/** Open a XML DOM using XSDParser */
private Document openXMLDOMUsingXSDParser(String uri) {
Document xmlDoc =3D null;
=20
// Build a new DOM
try {
xsdParser =3D new XSDParser();
xsdParser.parse(uri);
xmlDoc =3D xsdParser.getDocument();
}
catch (Exception ex) {
ex.printStackTrace();
return null;
}
=20
return xmlDoc;
}
=20
/** doIt */
private void doIt() {
try {
Document xmlDOM =3D =
openXMLDOMUsingXSDParser("http://schemas.xmlsoap.org/wsdl/");
// Document xmlDOM =3D =
openXMLDOMUsingXSDParser("./wsdl.xsd");

Element rootElement =3D xmlDOM.getDocumentElement();

XSDSchema xsdSchema =3D =
XSDFactory.eINSTANCE.createXSDSchema();
xsdSchema.setDocument(xmlDOM);
xsdSchema.setElement(rootElement);
xsdSchema.updateElement();

System.out.println("\n\n");
XSDResourceImpl.serialize(System.out, =
xsdSchema.getElement());

System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION =
>>>>>>>>>>>>>>>>>>>>>>>>>>");
xsdSchema.validate();
//EList eList =3D xsdMainSchema.getDiagnostics();
EList eList =3D xsdSchema.getAllDiagnostics();
for (int i =3D 0; i < eList.size(); i++) {
XSDDiagnostic xsdDiagnostic =3D =
(XSDDiagnostic)eList.get(i);
System.out.println(i + ": At line #" + =
xsdDiagnostic.getLine() + "(" + xsdDiagnostic.getColumn() + "), " + =
xsdDiagnostic.getMessage() + "; Node =3D [" + =
xsdDiagnostic.getNode().getNodeName() + "]");
}
=
System.out.println("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<=
<<<<<<<");
}
catch (Exception ex) {
ex.printStackTrace();
}
}
=20
/** main - the main entry */
public static void main(String[] args) {
EclipseXSDDemo2 app =3D new EclipseXSDDemo2();
app.doIt();
}
}

Regards,


Pae

"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB4F504.6527C9F2@ca.ibm.com...
Pae,=20
No, the standalone version worked too. What exception did you see?=20
=20

Pae Choi wrote:=20

Ed, That surely helped with v1.0.2. And THANK you for that. One =
quick question is: Do you also have an exception thrown when running =
with v1.1.0 as standalone. Regards, Pae =20
"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB3A206.9781C42@ca.ibm.com...Pae,=20
The XSD model expects a DOM that's namespace aware, so this =
addition to your sample code will improve your result:=20

private Document openXMLDOM(String uri) {=20
// Create a factory object for creating DOM parsers=20
DocumentBuilderFactory factory =3D =
DocumentBuilderFactory.newInstance();=20
DocumentBuilder builder =3D null;=20
Document xmlDoc =3D null;=20

factory.setNamespaceAware(true);=20

Without this, element.getNamespaceURI and element.getLocalName =
both return null...=20
=20

Pae Choi wrote:=20

Ed, I have a sample code that test a DOM of XML Schema with =
Eclipse/XSD andproducing two different results. With v1.0.2, it seems ok =
except the diagnostic message we are discussing.With v1.1.0, it throws =
an exception. Regards, Pae P.S.: The code snippet is as follows: // =
################## CODE SNIPPET ##################/*=20
* EclipseXSDDemo1.java=20
*=20
* Created on May 2, 2003, 11:13 PM=20
*/ package org.paechoi.xsd.test; // W3C/DOM=20
import javax.xml.parsers.DocumentBuilderFactory;=20
import javax.xml.parsers.DocumentBuilder;=20
import org.w3c.dom.Document;=20
import org.w3c.dom.Element;=20
// Eclipse/XSD=20
import org.eclipse.xsd.XSDFactory;=20
import org.eclipse.xsd.XSDSchema;=20
import org.eclipse.xsd.impl.XSDSchemaImpl;=20
import org.eclipse.xsd.util.XSDResourceImpl;=20
import org.eclipse.xsd.util.XSDResourceFactoryImpl;=20
import org.eclipse.xsd.XSDDiagnostic;=20
import org.eclipse.emf.ecore.resource.Resource;=20
import org.eclipse.emf.ecore.resource.ResourceSet;=20
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;=20
import org.eclipse.emf.common.util.EList;=20
import java.io.File;=20
/**=20
*=20
* @author pae=20
*/=20
public class EclipseXSDDemo1 {=20
// private Document xmlDOM =3D null;=20
// instance initializer=20
{=20
// =
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =
new XSDResourceFactoryImpl());=20
}=20

/** Creates a new instance of EclipseXSDDemo1 */=20
public EclipseXSDDemo1() {=20
super();=20
}=20

/** Open a XML DOM */=20
private Document openXMLDOM(String uri) {=20
// Create a factory object for creating DOM parsers=20
DocumentBuilderFactory factory =3D =
DocumentBuilderFactory.newInstance();=20
DocumentBuilder builder =3D null;=20
Document xmlDoc =3D null;=20

// Build a new DOM=20
try {=20
// Now use the factory to create a DOM parser =
(a.k.a. a DocumentBuilder)=20
builder =3D factory.newDocumentBuilder();=20
xmlDoc =3D builder.parse(uri);=20
}=20
catch (Exception ex) {=20
ex.printStackTrace();=20
return null;=20
}=20

return xmlDoc;=20
}=20

/** doIt */=20
private void doIt() {=20
Document xmlDOM =3D =
openXMLDOM("http://schemas.xmlsoap.org/wsdl/");=20
// Document xmlDOM =3D openXMLDOM("./wsdl.xsd"); =
Element rootElement =3D xmlDOM.getDocumentElement(); XSDSchema =
xsdSchema =3D XSDFactory.eINSTANCE.createXSDSchema();=20
xsdSchema.setDocument(xmlDOM);=20
xsdSchema.setElement(rootElement);=20
xsdSchema.updateElement(); =
System.out.println("\n\n");=20
XSDResourceImpl.serialize(System.out, =
xsdSchema.getElement()); =
System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION =
>>>>>>>>>>>>>>>>>>>>>>>>>>");=20
xsdSchema.validate();=20
//EList eList =3D xsdMainSchema.getDiagnostics();=20
EList eList =3D xsdSchema.getAllDiagnostics();=20
for (int i =3D 0; i < eList.size(); i++) {=20
XSDDiagnostic xsdDiagnostic =3D =
(XSDDiagnostic)eList.get(i);=20
System.out.println(i + ": Diagnostic Message =3D [" =
+ xsdDiagnostic.getMessage() + "]");=20
}=20
=
System.out.println("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<=
<<<<<<<");=20
}=20

/** main - the main entry */=20
public static void main(String[] args) {=20
EclipseXSDDemo1 app =3D new EclipseXSDDemo1();=20
app.doIt();=20
}=20
}=20

"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB25ED9.AE2CB299@ca.ibm.com...Pae,=20
I'm seeing this result with the just published 1.1.0 driver:=20


The schema isn't valid.=20
=20
Pae Choi wrote:=20

I have a simple test schema as follows:=20
<?xml version=3D"1.0" encoding=3D"UTF-8"?>=20
<!--W3C Schema generated by Pae -->=20
<xsd:schema xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema"=20
elementFormDefault=3D"qualified">=20
<xsd:element name=3D"CommonLogin">=20
<xsd:complexType>=20
<xsd:sequence>=20
<xsd:element name=3D"username" ref=3D"usernameRef"/>=20
<xsd:element name=3D"password" ref=3D"passwordRef"/>=20
</xsd:sequence>=20
</xsd:complexType>=20
</xsd:element>=20
<xsd:element name=3D"passwordRef" type=3D"xsd:string"/>=20
<xsd:element name=3D"usernameRef" type=3D"xsd:string"/>=20
</xsd:schema>=20

This is a very simple sample, but it is a valid schema. But =
when=20
I use the validate() and getDiagnostics() methods in the =
XSDSchema=20
interface it gives me a message as follows:=20

XSD: The element '#null' is not permitted as constrained by =
'XML Schema ';=20
expecting schema=20

I do not understand what the message is saying. Any =
comments?=20

Pae


------=_NextPart_001_0081_01C31246.638A8920
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2600.0" name=3DGENERATOR></HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT size=3D2>Ed,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>I also tested with XSD v1.1.0 + EMF v1.1.0 with =
xerces v2.2.1=20
and v2.4.0, but</FONT></DIV>
<DIV><FONT size=3D2>am still having an exception. However, </FONT><FONT =
size=3D2>the=20
exceptions are not same as previous</FONT></DIV>
<DIV><FONT size=3D2>one. The exceptions and the associated code snippet =
are as=20
follows:</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>// ### Exception with xerces v2.2.1 ###</FONT></DIV>
<DIV><FONT size=3D2>java.lang.NullPointerException<BR>&nbsp;at=20
org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263) <BR>&nbsp;at =

org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown =
Source)<BR>&nbsp;at=20
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDe=
cl(Unknown=20
Source)<BR>&nbsp;at=20
org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(=
Unknown=20
Source)<BR>&nbsp;at=20
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknow=
n=20
Source)<BR>&nbsp;at =
org.apache.xerces.parsers.DTDConfiguration.parse(Unknown=20
Source)<BR>&nbsp;at =
org.apache.xerces.parsers.DTDConfiguration.parse(Unknown=20
Source)<BR>&nbsp;at org.apache.xerces.parsers.XMLParser.parse(Unknown=20
Source)<BR>&nbsp;at =
org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown=20
Source)<BR>&nbsp;at=20
javax.xml.parsers.SAXParser.parse(SAXParser.java:345)<BR>&nbsp;at=20
org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)<BR >&nbsp;at=20
org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDD=
emo2.java:87)<BR>&nbsp;at=20
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101) <BR>&n=
bsp;at=20
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) <BR>ja=
va.lang.NullPointerException<BR>&nbsp;at=20
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104) <BR>&n=
bsp;at=20
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) <BR></=
FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>// ### Exception with xerces v2.4.0 ###</FONT></DIV>
<DIV><FONT size=3D2>java.lang.NullPointerException<BR>&nbsp;at=20
org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263) <BR>&nbsp;at =

org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown =
Source)<BR>&nbsp;at=20
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDe=
cl(Unknown=20
Source)<BR>&nbsp;at=20
org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(=
Unknown=20
Source)<BR>&nbsp;at=20
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknow=
n=20
Source)<BR>&nbsp;at =
org.apache.xerces.parsers.XML11Configuration.parse(Unknown=2 0
Source)<BR>&nbsp;at =
org.apache.xerces.parsers.DTDConfiguration.parse(Unknown=20
Source)<BR>&nbsp;at org.apache.xerces.parsers.XMLParser.parse(Unknown=20
Source)<BR>&nbsp;at =
org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown=20
Source)<BR>&nbsp;at=20
javax.xml.parsers.SAXParser.parse(SAXParser.java:345)<BR>&nbsp;at=20
org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)<BR >&nbsp;at=20
org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDD=
emo2.java:87)<BR>&nbsp;at=20
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101) <BR>&n=
bsp;at=20
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) <BR>ja=
va.lang.NullPointerException<BR>&nbsp;at=20
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104) <BR>&n=
bsp;at=20
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) <BR><B=
R></FONT></DIV>
<DIV><FONT size=3D2>// ### Code Snippet ###</FONT></DIV>
<DIV><FONT size=3D2>/*<BR>&nbsp;* =
EclipseXSDDemo2.java<BR>&nbsp;*<BR>&nbsp;*=20
Created on May 2, 2003, 11:13 PM<BR>&nbsp;*<BR>&nbsp;*/</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=3D2>package org.paechoi.xsd.test;</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=3D2>// W3C/DOM<BR>import&nbsp;=20
javax.xml.parsers.DocumentBuilderFactory;<BR>import&nbsp;=20
javax.xml.parsers.DocumentBuilder;<BR>import&nbsp;=20
org.w3c.dom.Document;<BR>import&nbsp; org.w3c.dom.Element;<BR>//=20
Eclipse/XSD<BR>import&nbsp; =
org.eclipse.xsd.util.XSDParser;<BR>import&nbsp;=20
org.eclipse.xsd.XSDFactory;<BR>import&nbsp;=20
org.eclipse.xsd.XSDSchema;<BR>import&nbsp;=20
org.eclipse.xsd.impl.XSDSchemaImpl;<BR>import&nbsp;=20
org.eclipse.xsd.util.XSDResourceImpl;<BR>import&nbsp;=20
org.eclipse.xsd.util.XSDResourceFactoryImpl;<BR>import&nbsp;=20
org.eclipse.xsd.XSDDiagnostic;<BR>import&nbsp;=20
org.eclipse.emf.ecore.resource.Resource;<BR>import&nbsp;=20
org.eclipse.emf.ecore.resource.ResourceSet;<BR>import&nbsp;=20
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;<BR>import&nbsp;=20
org.eclipse.emf.common.util.EList;<BR>import&nbsp; =
java.io.File;<BR>import&nbsp;=20
java.io.FileOutputStream;<BR>import&nbsp; =
java.io.PrintStream;<BR>import&nbsp;=20
java.io.FileNotFoundException;</FONT></DIV>
<DIV>&nbsp;</DIV><FONT size=3D2>
<DIV><BR>/**<BR>&nbsp;*<BR>&nbsp;* @author&nbsp; =
pae<BR>&nbsp;*/<BR>public class=20
EclipseXSDDemo2 {<BR>//&nbsp;&nbsp;&nbsp; =
private&nbsp;&nbsp;&nbsp;&nbsp;=20
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp; xmlDOM =3D=20
null;<BR>&nbsp;&nbsp;&nbsp;=20
private&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&am p;nbsp;&nbsp;&nbsp; =
XSDParser&nbsp;&nbsp;=20
xsdParser =3D null;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp; // instance initializer<BR>&nbsp;&nbsp;&nbsp;=20
{<BR> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;=20
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =
new=20
XSDResourceFactoryImpl());<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; =

<BR>&nbsp;&nbsp;&nbsp; /** Creates a new instance of EclipseXSDDemo2=20
*/<BR>&nbsp;&nbsp;&nbsp; public EclipseXSDDemo2()=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; super();</DIV>
<DIV>&nbsp;</DIV>
<DIV> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Redirect the=20
System.err<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; try=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;=20
System.setErr(new PrintStream(new FileOutputStream("errors.log",=20
true)));<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;=20
}<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; catch=20
(FileNotFoundException fileNotFoundException)=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; =
}<BR>&nbsp;&nbsp;&nbsp;=20
}<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; /** Open a XML DOM=20
*/<BR>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String uri)=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create a factory =
object for=20
creating DOM parsers<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilderFactory&nbsp; factory =3D=20
DocumentBuilderFactory.newInstance();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;=20
DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp; builder =
=3D=20
null;<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D null;<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Build a new=20
DOM<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
// Now=20
use the factory to create a DOM parser (a.k.a. a=20
DocumentBuilder)<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;=20
factory.setNamespaceAware(true);=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
builder =3D=20
factory.newDocumentBuilder();<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D =
builder.parse(uri);<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
}<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch (Exception ex)=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
ex.printStackTrace();<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;=20
return null;<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
}<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; return=20
xmlDoc;<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; =
<BR>&nbsp;&nbsp;&nbsp; /**=20
Open a XML DOM using XSDParser */<BR>&nbsp;&nbsp;&nbsp; private Document =

openXMLDOMUsingXSDParser(String uri)=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
Document&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D null;<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Build a new=20
DOM<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
xsdParser =3D new=20
XSDParser();<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;=20
xsdParser.parse(uri);<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D =
xsdParser.getDocument();<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
}<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch (Exception ex)=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
ex.printStackTrace();<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;=20
return null;<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
}<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; return=20
xmlDoc;<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; =
<BR>&nbsp;&nbsp;&nbsp; /**=20
doIt */<BR>&nbsp;&nbsp;&nbsp; private void doIt()=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
Document=20
xmlDOM =3D openXMLDOMUsingXSDParser("<A=20
href=3D"http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl=
/</A>");<BR> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;=20
Document xmlDOM =3D openXMLDOMUsingXSDParser("./wsdl.xsd");</DIV>
<DIV>&nbsp;</DIV>
<DIV> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
Element=20
rootElement =3D xmlDOM.getDocumentElement();</DIV>
<DIV>&nbsp;</DIV>
<DIV> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
XSDSchema xsdSchema =3D=20
XSDFactory.eINSTANCE.createXSDSchema();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =20
xsdSchema.setDocument(xmlDOM);<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;=20
xsdSchema.setElement(rootElement);<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
xsdSchema.updateElement();</DIV>
<DIV>&nbsp;</DIV>
<DIV> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
System.out.println("\n\n");<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;=20
XSDResourceImpl.serialize(System.out, xsdSchema.getElement());</DIV>
<DIV>&nbsp;</DIV>
<DIV> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
System.out.println(" &gt;&gt;&gt;&gt;&gt;&gt;&gt;& ;gt;&gt;&gt;&gt;&gt;&gt;&=
gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;& amp;gt;=20
VALIDATION=20
&gt;&gt;&gt;&gt;&gt;&gt;&gt;& ;gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt;&gt;&=
gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;"); <BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
xsdSchema.validate();<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;=20
//EList eList =3D=20
xsdMainSchema.getDiagnostics();<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
EList eList =3D=20
xsdSchema.getAllDiagnostics();<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;=20
for (int i =3D 0; i &lt; eList.size(); i++)=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;=20
XSDDiagnostic xsdDiagnostic =3D=20
(XSDDiagnostic)eList.get(i);<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;&nbsp;=20
System.out.println(i + ": At line #" + xsdDiagnostic.getLine() + "(" +=20
xsdDiagnostic.getColumn() + "), " + xsdDiagnostic.getMessage() + "; Node =
=3D [" +=20
xsdDiagnostic.getNode().getNodeName() +=20
"]");<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;=20
}<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
System.out.println(" &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&=
lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;& amp;lt;&lt;&lt;&lt;&lt;&lt;&lt;& lt;&lt;&lt;&l=
t;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&a mp;lt;&lt;&lt;&lt;&lt;&lt;&lt;&l t;&lt;&lt;&lt=
;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&am p;lt;&lt;&lt; ");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;=20
}<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch (Exception ex)=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
ex.printStackTrace();<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
}<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; =
/** main=20
- the main entry */<BR>&nbsp;&nbsp;&nbsp; public static void =
main(String[] args)=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; EclipseXSDDemo2 app =3D =
new=20
EclipseXSDDemo2();<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
app.doIt();<BR>&nbsp;&nbsp;&nbsp; }<BR>}<BR></DIV>
<DIV>Regards,</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>Pae</DIV></FONT>
<DIV><FONT size=3D2>&nbsp;</DIV></FONT>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV>"Ed Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB4F504.6527C9F2@ca.ibm.com">news:3EB4F504.6527C9F2@ca.ibm.=
com</A>...</DIV>Pae,=20

<P>No, the standalone version worked too.&nbsp; What exception did you =
see?=20
<BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">&nbsp;<FONT size=3D-1>Ed,</FONT>&nbsp;<FONT=20
size=3D-1>That surely helped with v1.0.2. And THANK you for that. =
One quick=20
question is:</FONT>&nbsp;<FONT size=3D-1>Do you also have an =
exception thrown=20
when running with v1.1.0 as standalone.</FONT>&nbsp;<FONT=20
size=3D-1>Regards,</FONT>&nbsp;&nbsp;<FONT =
size=3D-1>Pae</FONT>&nbsp;=20
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed=20
Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB3A206.9781C42@ca.ibm.com">news:3EB3A206.9781C42@ca.ibm.co=
m</A>...Pae,=20

<P>The XSD model expects a DOM that's namespace aware, so <FONT=20
color=3D#3333ff>this</FONT> addition to your sample code will =
improve your=20
result:=20
<P>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String uri) {=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create a factory =
object=20
for creating DOM parsers =
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilderFactory&nbsp; factory =3D=20
DocumentBuilderFactory.newInstance();=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp; =
builder =3D=20
null; <BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D null;=20
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT =
color=3D#3333ff>&nbsp;&nbsp;=20
factory.setNamespaceAware(true);</FONT>=20
<P>Without this, element.getNamespaceURI and element.getLocalName =
both=20
return null... <BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">
<STYLE></STYLE>
<FONT size=3D-1>Ed,</FONT> <FONT size=3D-1>I have a sample code =
that test a=20
DOM of XML Schema with Eclipse/XSD andproducing two different=20
results.</FONT> <FONT size=3D-1>With v1.0.2, it seems ok except =
the=20
diagnostic message we are discussing.With v1.1.0, it throws an=20
exception.</FONT> <FONT size=3D-1>Regards,</FONT>&nbsp; <FONT=20
size=3D-1>Pae</FONT> <FONT size=3D-1>P.S.: The code snippet is =
as=20
follows:</FONT> <FONT size=3D-1>// ################## CODE =
SNIPPET=20
##################/*</FONT> <BR><FONT size=3D-1>&nbsp;*=20
EclipseXSDDemo1.java</FONT> <BR><FONT size=3D-1>&nbsp;*</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;* Created on May 2, 2003, 11:13 PM</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;*/</FONT> <FONT size=3D-1>package=20
org.paechoi.xsd.test;</FONT> <FONT size=3D-1>// W3C/DOM</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; =
javax.xml.parsers.DocumentBuilderFactory;</FONT>=20
<BR><FONT size=3D-1>import&nbsp; =
javax.xml.parsers.DocumentBuilder;</FONT>=20
<BR><FONT size=3D-1>import&nbsp; org.w3c.dom.Document;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; org.w3c.dom.Element;</FONT> <BR><FONT =
size=3D-1>//=20
Eclipse/XSD</FONT> <BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.xsd.XSDFactory;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
org.eclipse.xsd.XSDSchema;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
org.eclipse.xsd.impl.XSDSchemaImpl;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; =
org.eclipse.xsd.util.XSDResourceImpl;</FONT>=20
<BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.xsd.util.XSDResourceFactoryImpl;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; org.eclipse.xsd.XSDDiagnostic;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; =
org.eclipse.emf.ecore.resource.Resource;</FONT>=20
<BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.emf.ecore.resource.ResourceSet;</FONT> <BR><FONT=20
size=3D-1>import&nbsp;=20
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; org.eclipse.emf.common.util.EList;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; java.io.File;</FONT> <BR><FONT =
size=3D-1>/**</FONT>=20
<BR><FONT size=3D-1>&nbsp;*</FONT> <BR><FONT size=3D-1>&nbsp;* =
@author&nbsp;=20
pae</FONT> <BR><FONT size=3D-1>&nbsp;*/</FONT> <BR><FONT =
size=3D-1>public=20
class EclipseXSDDemo1 {</FONT> <BR><FONT =
size=3D-1>//&nbsp;&nbsp;&nbsp;=20
private&nbsp;&nbsp;&nbsp;&nbsp;=20
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp; xmlDOM =3D =
null;</FONT>=20

<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; // instance =
initializer</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; {</FONT> <BR><FONT=20
size=3D-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;=20
=
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =

new XSDResourceFactoryImpl());</FONT> <BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** Creates a new instance =
of=20
EclipseXSDDemo1 */</FONT> <BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; =
public=20
EclipseXSDDemo1() {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
super();</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM =
*/</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; private Document =
openXMLDOM(String=20
uri) {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create a =
factory=20
object for creating DOM parsers</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilderFactory&nbsp; factory =3D=20
DocumentBuilderFactory.newInstance();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp; =
builder=20
=3D null;</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D null;</FONT>=20
<P><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // =
Build a=20
new DOM</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try =
{</FONT>=20
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
// Now use the factory to create a DOM parser (a.k.a. a=20
DocumentBuilder)</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
builder =3D factory.newDocumentBuilder();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xmlDoc =3D builder.parse(uri);</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT> =
<BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch =
(Exception ex)=20
{</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
ex.printStackTrace();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
return null;</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT>=20
<P><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
return=20
xmlDoc;</FONT> <BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** doIt */</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; private void doIt() {</FONT> =
<BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document =
xmlDOM =3D=20
openXMLDOM("<A=20
=
href=3D"http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl=
/</A>");</FONT>=20
<BR><FONT size=3D-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp; =
Document=20
xmlDOM =3D openXMLDOM("./wsdl.xsd");</FONT>&nbsp;<FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Element =
rootElement =3D=20
xmlDOM.getDocumentElement();</FONT>&nbsp;<FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; XSDSchema =
xsdSchema =3D=20
XSDFactory.eINSTANCE.createXSDSchema();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
xsdSchema.setDocument(xmlDOM);</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
xsdSchema.setElement(rootElement);</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
xsdSchema.updateElement();</FONT>&nbsp;<FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
System.out.println("\n\n");</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
XSDResourceImpl.serialize(System.out,=20
xsdSchema.getElement());</FONT>&nbsp;<FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
System.out.println(" &gt;&gt;&gt;&gt;&gt;&gt;&gt;& ;gt;&gt;&gt;&gt;&gt;&gt;&=
gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;& amp;gt;=20
VALIDATION=20
=
&gt;&gt;&gt;&gt;&gt;&gt;&gt;& ;gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt;&gt;&=
gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;"); </FONT>=20
<BR><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
xsdSchema.validate();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; //EList =
eList =3D=20
xsdMainSchema.getDiagnostics();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; EList eList =
=3D=20
xsdSchema.getAllDiagnostics();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; for (int i =
=3D 0; i=20
&lt; eList.size(); i++) {</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
XSDDiagnostic xsdDiagnostic =3D =
(XSDDiagnostic)eList.get(i);</FONT>=20
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
System.out.println(i + ": Diagnostic Message =3D [" +=20
xsdDiagnostic.getMessage() + "]");</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT> =
<BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
System.out.println(" &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&=
lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;& amp;lt;&lt;&lt;&lt;&lt;&lt;&lt;& lt;&lt;&lt;&l=
t;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&a mp;lt;&lt;&lt;&lt;&lt;&lt;&lt;&l t;&lt;&lt;&lt=
;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&am p;lt;&lt;&lt; ");</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** main - the main entry =
*/</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; public static void =
main(String[]=20
args) {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
EclipseXSDDemo1 app =3D=20
new EclipseXSDDemo1();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
app.doIt();</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT> <BR><FONT =
size=3D-1>}</FONT>=20

<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: =
5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed=20
Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB25ED9.AE2CB299@ca.ibm.com">news:3EB25ED9.AE2CB299@ca.ibm.=
com</A>...Pae,=20

<P>I'm seeing this result with the just published 1.1.0 =
driver:=20
<BLOCKQUOTE><IMG height=3D411=20
src=3D"cid:007b01c31267$ea8545c0$0b01a8c0@dev1"=20
width=3D502></BLOCKQUOTE>The schema isn't valid. <BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">I have a simple test schema as =
follows:=20
<P>&lt;?xml version=3D"1.0" encoding=3D"UTF-8"?&gt; =
<BR>&lt;!--W3C=20
Schema generated by Pae --&gt; <BR>&lt;xsd:schema =
xmlns:xsd=3D"<A=20
=
href=3D"http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchem=
a</A>"=20
<BR>elementFormDefault=3D"qualified"&gt; =
<BR>&nbsp;&lt;xsd:element=20
name=3D"CommonLogin"&gt; <BR>&nbsp; &lt;xsd:complexType&gt;=20
<BR>&nbsp;&nbsp; &lt;xsd:sequence&gt; <BR>&nbsp;&nbsp;&nbsp; =

&lt;xsd:element name=3D"username" ref=3D"usernameRef"/&gt;=20
<BR>&nbsp;&nbsp;&nbsp; &lt;xsd:element name=3D"password"=20
ref=3D"passwordRef"/&gt; <BR>&nbsp;&nbsp; =
&lt;/xsd:sequence&gt;=20
<BR>&nbsp; &lt;/xsd:complexType&gt; =
<BR>&nbsp;&lt;/xsd:element&gt;=20
<BR>&nbsp;&lt;xsd:element name=3D"passwordRef" =
type=3D"xsd:string"/&gt;=20
<BR>&nbsp;&lt;xsd:element name=3D"usernameRef" =
type=3D"xsd:string"/&gt;=20
<BR>&lt;/xsd:schema&gt;=20
<P>This is a very simple sample, but it is a valid schema. =
But when=20
<BR>I use the validate() and getDiagnostics() methods in the =

XSDSchema <BR>interface it gives me a message as follows:=20
<P>XSD: The element '#null' is not permitted as constrained =
by 'XML=20
Schema '; <BR>expecting schema=20
<P>I do not understand what the message is saying. Any =
comments?=20
=
<P>Pae</P></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE ></BLOCKQUOT=
E></BLOCKQUOTE></BODY></HTML>

------=_NextPart_001_0081_01C31246.638A8920--

------=_NextPart_000_0080_01C31246.638A8920
Content-Type: image/jpeg;
name="C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\nsmailFJ.jpeg"
Content-Transfer-Encoding: base64
Content-ID: <007b01c31267$ea8545c0$0b01a8c0@dev1>

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCws MGJGSjpQdGZ6eHJm
cG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAqMF40 NF7GhHCExsbGxsbG
xsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsb/ wAARCAGbAfYDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA AgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcY GRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKT lJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP0 9fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQA AQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2 Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOk paanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMB AAIRAxEAPwDXghR4
9zbiST/EfU0m23yQBKcHHG81Ja/6kf7zfzNVLrfsTY5wGkLRrJsZueoPt6e9 NK4FpIYJEDIWKnoQ
5/xpfs0Xo3/fZ/xqKy2bmMbMUZEcZ75zzjt2qMXc+1kYBbgkbYvLyRnJ67sN wDzkdPXikBZ+zRej
f99n/Gj7NF6N/wB9n/Gqa31w+eI027VYMuTuLsmeD2xnHPpnvS/bZyJnHlhY ELMNpy5DODg54zs9
+vegC39mi9G/77P+NH2aL0b/AL7P+NUEup4hIkMQZY2kdycYwZH4yWGPu9ef 8b883lxs6FW2H5l7
n2HvyMDv075oAPs0Xo3/AH2f8aPs0Xo3/fZ/xqFriZWhLGMRPt/eKpdSSeFG
Re: A Diagnostic Message for the Valid Schema [message #21152 is a reply to message #21068] Mon, 05 May 2003 10:35 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: merks.ca.ibm.com

--------------E5727D4B5E6356173617E3FC
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit


--------------E5727D4B5E6356173617E3FC
Content-Type: multipart/related;
boundary="------------44F6D1A322AAB865BF26D246"


--------------44F6D1A322AAB865BF26D246
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<body bgcolor="#FFFFFF">
Pae,
<p>This exception is what you would get if you used XSD 1.1.0 with an older
EMF.
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE=CITE>&nbsp;<font size=-1>Ed,</font>&nbsp;<font size=-1>Enclosed
please find the exception I captured as below. The line #s may not reflect
the</font><font size=-1>exact lines in the code snippet in the previous
message because I added some debugging</font><font size=-1>codes. But the
code is mainly remain same. Thank you.</font>&nbsp;<font size=-1>java.lang.NoSuchMethodError:
org.eclipse.emf.ecore.impl.EObjectImpl.eDerivedStructuralFea tureID(Lorg/eclipse/emf/ecore/EStructuralFeature;)I </font>
<br><font size=-1>&nbsp;at org.eclipse.xsd.impl.XSDSchemaImpl.eIsSet(XSDSchemaImpl.java :2659) </font>
<br><font size=-1>&nbsp;at org.eclipse.emf.ecore.util.EContentsEList.size(EContentsELis t.java:130) </font>
<br><font size=-1>&nbsp;at java.util.ArrayList.&lt;init>(ArrayList.java:128)</font >
<br><font size=-1>&nbsp;at org.eclipse.xsd.impl.XSDConcreteComponentImpl.reconcileConte nts(XSDConcreteComponentImpl.java:977) </font>
<br><font size=-1>&nbsp;at org.eclipse.xsd.impl.XSDConcreteComponentImpl.reconcile(XSDC oncreteComponentImpl.java:952) </font>
<br><font size=-1>&nbsp;at org.eclipse.xsd.impl.XSDConcreteComponentImpl.changeAttribut e(XSDConcreteComponentImpl.java:1232) </font>
<br><font size=-1>&nbsp;at org.eclipse.xsd.impl.XSDSchemaImpl.changeAttribute(XSDSchema Impl.java:2244) </font>
<br><font size=-1>&nbsp;at org.eclipse.xsd.impl.XSDConcreteComponentImpl.eNotify(XSDCon creteComponentImpl.java:1205) </font>
<br><font size=-1>&nbsp;at org.eclipse.xsd.impl.XSDConcreteComponentImpl.setElementGen( XSDConcreteComponentImpl.java:2797) </font>
<br><font size=-1>&nbsp;at org.eclipse.xsd.impl.XSDConcreteComponentImpl.setElement(XSD ConcreteComponentImpl.java:2829) </font>
<br><font size=-1>&nbsp;at org.eclipse.xsd.impl.XSDSchemaImpl.setElement(XSDSchemaImpl. java:2367) </font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo1.doIt(EclipseXSDDemo1.ja va:104) </font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo1.main(EclipseXSDDemo1.ja va:128) </font>&nbsp;<font size=-1>Regards,</font>&nbsp;&nbsp;<font size=-1>Pae</font>&nbsp;<font size=-1>P.S.:
I am using XSD v1.1.0 and EMF v1.0.2</font>&nbsp;
<blockquote dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed
Merks" &lt;<a href="mailto:merks@ca.ibm.com">merks@ca.ibm.com</a>> wrote
in message <a href="news:3EB4F504.6527C9F2@ca.ibm.com">news:3EB4F504.6527C9F2@ca.ibm.com</a>...Pae,
<p>No, the standalone version worked too.&nbsp; What exception did you
see?
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE="CITE">&nbsp;<font size=-1>Ed,</font> <font size=-1>That
surely helped with v1.0.2. And THANK you for that. One quick question is:</font>
<font size=-1>Do you also have an exception thrown when running with v1.1.0
as standalone.</font> <font size=-1>Regards,</font>&nbsp; <font size=-1>Pae</font>
<blockquote dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed
Merks" &lt;<a href="mailto:merks@ca.ibm.com">merks@ca.ibm.com</a>> wrote
in message <a href="news:3EB3A206.9781C42@ca.ibm.com">news:3EB3A206.9781C42@ca.ibm.com</a>...Pae,
<p>The XSD model expects a DOM that's namespace aware, so <font color="#3333FF">this</font>
addition to your sample code will improve your result:
<p>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String uri) {
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create a factory object
for creating DOM parsers
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilderFactory&nbsp;
factory = DocumentBuilderFactory.newInstance();
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;
builder = null;
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = null;
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#3333FF">&nbsp;&nbsp; factory.setNamespaceAware(true);</font>
<p>Without this, element.getNamespaceURI and element.getLocalName both
return null...
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE="CITE"><style></style>
<font size=-1>Ed,</font> <font size=-1>I
have a sample code that test a DOM of XML Schema with Eclipse/XSD andproducing
two different results.</font> <font size=-1>With v1.0.2, it seems ok except
the diagnostic message we are discussing.With v1.1.0, it throws an exception.</font>
<font size=-1>Regards,</font>&nbsp; <font size=-1>Pae</font> <font size=-1>P.S.:
The code snippet is as follows:</font> <font size=-1>// ##################
CODE SNIPPET ##################/*</font>
<br><font size=-1>&nbsp;* EclipseXSDDemo1.java</font>
<br><font size=-1>&nbsp;*</font>
<br><font size=-1>&nbsp;* Created on May 2, 2003, 11:13 PM</font>
<br><font size=-1>&nbsp;*/</font> <font size=-1>package org.paechoi.xsd.test;</font>
<font size=-1>// W3C/DOM</font>
<br><font size=-1>import&nbsp; javax.xml.parsers.DocumentBuilderFactory;</font>
<br><font size=-1>import&nbsp; javax.xml.parsers.DocumentBuilder;</font>
<br><font size=-1>import&nbsp; org.w3c.dom.Document;</font>
<br><font size=-1>import&nbsp; org.w3c.dom.Element;</font>
<br><font size=-1>// Eclipse/XSD</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDFactory;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDSchema;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.impl.XSDSchemaImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.util.XSDResourceImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.util.XSDResourceFactoryImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDDiagnostic;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.Resource;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.ResourceSet;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.common.util.EList;</font>
<br><font size=-1>import&nbsp; java.io.File;</font>
<br><font size=-1>/**</font>
<br><font size=-1>&nbsp;*</font>
<br><font size=-1>&nbsp;* @author&nbsp; pae</font>
<br><font size=-1>&nbsp;*/</font>
<br><font size=-1>public class EclipseXSDDemo1 {</font>
<br><font size=-1>//&nbsp;&nbsp;&nbsp; private&nbsp;&nbsp;&nbsp;&nbsp;
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp; xmlDOM = null;</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; // instance initializer</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; {</font>
<br><font size=-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp; Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd",
new XSDResourceFactoryImpl());</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** Creates a new instance of EclipseXSDDemo1
*/</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; public EclipseXSDDemo1() {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; super();</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String
uri) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create
a factory object for creating DOM parsers</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilderFactory&nbsp;
factory = DocumentBuilderFactory.newInstance();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;
builder = null;</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = null;</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Build a
new DOM</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// Now use the factory to create a DOM parser (a.k.a. a DocumentBuilder)</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
builder = factory.newDocumentBuilder();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = builder.parse(uri);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch (Exception
ex) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ex.printStackTrace();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return null;</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; return xmlDoc;</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** doIt */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private void doIt() {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document xmlDOM
= openXMLDOM("<a href="http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl/</a>");</font>
<br><font size=-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp; Document
xmlDOM = openXMLDOM("./wsdl.xsd");</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
Element rootElement = xmlDOM.getDocumentElement();</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
XSDSchema xsdSchema = XSDFactory.eINSTANCE.createXSDSchema();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; xsdSchema.setDocument(xmlDOM);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; xsdSchema.setElement(rootElement);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; xsdSchema.updateElement();</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
System.out.println("\n\n");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; XSDResourceImpl.serialize(System.out,
xsdSchema.getElement());</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION >>>>>>>>>>>>>>>>>>>>>>>>>>");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; xsdSchema.validate();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; //EList eList
= xsdMainSchema.getDiagnostics();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; EList eList
= xsdSchema.getAllDiagnostics();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; for (int i
= 0; i &lt; eList.size(); i++) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
XSDDiagnostic xsdDiagnostic = (XSDDiagnostic)eList.get(i);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
System.out.println(i + ": Diagnostic Message = [" + xsdDiagnostic.getMessage()
+ "]");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; System.out.println(" &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; ");</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** main - the main entry */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; public static void main(String[] args)
{</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; EclipseXSDDemo1
app = new EclipseXSDDemo1();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; app.doIt();</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<br><font size=-1>}</font>
<blockquote dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed
Merks" &lt;<a href="mailto:merks@ca.ibm.com">merks@ca.ibm.com</a>> wrote
in message <a href="news:3EB25ED9.AE2CB299@ca.ibm.com">news:3EB25ED9.AE2CB299@ca.ibm.com</a>...Pae,
<p>I'm seeing this result with the just published 1.1.0 driver:
<blockquote><img SRC="cid:part1.3EB63E8D.8348861E@ca.ibm.com" height=411 width=502></blockquote>
The schema isn't valid.
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE="CITE">I have a simple test schema as follows:
<p>&lt;?xml version="1.0" encoding="UTF-8"?>
<br>&lt;!--W3C Schema generated by Pae -->
<br>&lt;xsd:schema xmlns:xsd="<a href="http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchema</a>"
<br>elementFormDefault="qualified">
<br>&nbsp;&lt;xsd:element name="CommonLogin">
<br>&nbsp; &lt;xsd:complexType>
<br>&nbsp;&nbsp; &lt;xsd:sequence>
<br>&nbsp;&nbsp;&nbsp; &lt;xsd:element name="username" ref="usernameRef"/>
<br>&nbsp;&nbsp;&nbsp; &lt;xsd:element name="password" ref="passwordRef"/>
<br>&nbsp;&nbsp; &lt;/xsd:sequence>
<br>&nbsp; &lt;/xsd:complexType>
<br>&nbsp;&lt;/xsd:element>
<br>&nbsp;&lt;xsd:element name="passwordRef" type="xsd:string"/>
<br>&nbsp;&lt;xsd:element name="usernameRef" type="xsd:string"/>
<br>&lt;/xsd:schema>
<p>This is a very simple sample, but it is a valid schema. But when
<br>I use the validate() and getDiagnostics() methods in the XSDSchema
<br>interface it gives me a message as follows:
<p>XSD: The element '#null' is not permitted as constrained by 'XML Schema
';
<br>expecting schema
<p>I do not understand what the message is saying. Any comments?
<p>Pae</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>

</body>
</html>

--------------44F6D1A322AAB865BF26D246
Content-Type: image/jpeg
Content-ID: <part1.3EB63E8D.8348861E@ca.ibm.com>
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\nsmailFJ.jpeg"

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCws MGJGSjpQdGZ6
eHJmcG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAq MF40NF7GhHCE
xsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbG xsbGxsb/wAAR
CAGbAfYDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcI CQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS 0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1 dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW 19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcI CQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMz UvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0 dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU 1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDXghR49zbiST/EfU0m23yQ BKcHHG81Ja/6
kf7zfzNVLrfsTY5wGkLRrJsZueoPt6e9NK4FpIYJEDIWKnoQ5/xpfs0Xo3/f Z/xqKy2bmMbM
UZEcZ75zzjt2qMXc+1kYBbgkbYvLyRnJ67sNwDzkdPXikBZ+zRejf99n/Gj7 NF6N/wB9n/Gq
a31w+eI027VYMuTuLsmeD2xnHPpnvS/bZyJnHlhYELMNpy5DODg54zs9+veg C39mi9G/77P+
NH2aL0b/AL7P+NUEup4hIkMQZY2kdycYwZH4yWGPu9ef8b883lxs6FW2H5l7 n2HvyMDv075o
APs0Xo3/AH2f8aPs0Xo3/fZ/xqFriZWhLGMRPt/eKpdSSeFGDx2+YjBz26Uy 3kkmuraaQptk
gZlVVIKglDgnPP6UATyQxIudrH/gZpm2L+43/fw1NP8AcH1rJvJZbecG2Jlk dSWhOSAAPvD0
/r9aQGhti/uN/wB/DTDGBI65bAPHzH0B/rUdntNurLMZt3zFyep+nb6VM/8A r5f94fyFAxvl
j1b/AL6NHlj1b/vo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+ jTqKAG+WPVv+
+jR5Y9W/76NOooAb5Y9W/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igB vlj1b/vo0eWP
Vv8Avo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPV v++jR5Y9W/76
NOooAb5Y9W/76NHlj1b/AL6NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/AL6N Hlj1b/vo06ig
Bvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+jTqKAG+WPVv++jR5Y9W/ 76NOooAb5Y9W
/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/vo0eWPVv8Avo06 igBvlj1b/vo0
eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPVv++jR5Y9W/76NOooAb5Y 9W/76NHlj1b/
AL6NOooAb5Y9W/76NHlj1b/vo06igCvOTEV2MRnOcnP86KS76p+P9KKBF+1/ 1I/3m/majktG
kBVmiZNxYK8W7Gfx96hREIJKqTuPUe9O8uP+4v5U7gWIYnR3d3DFgBwuMYz/ AI0otoBEYhBG
I2OSgQYJ+lNdbaNlVkjDOcKu0ZP0FMcwRyBWtvlyFMmwbQT0Hqeo6DHP1oAm WCFF2pFGo44C
gdDkfrzTPscBn84xIXwMZUfKQScj3yaT/Q/+mH39nb73p9fahfsbruTyGHHI wepwP14oAkaC
FipaKMlCWUlRwSckj8ad5abt2xc53Zx3xjP5cVCVgFwsJgXLIXDbRjggEfqK k8iH/nkn/fIo
ABBCJBIIo94zhtoyM5zz+J/OhIIY5GkSKNXbqwUAn8ah8yw8vzN9tszt3ZXG fTNO/wBD87yf
3Hm/3ON3r0oAklUsoAGeagFuVZmEYDN94jGT9adusgwXNvuLbAMrkt6fXkUM 1ksvlMbcSZA2
ErnJ6cUANW3KZ2RhdxycYGT60j/6+X/eH8hUgFqZzCEiLgZIG3I6dR170f6H 53k/uPN/ucbv
XpQBHRUg+xs4QeQWJK7RjOR1H4U3zLDzPL322/O3blc59MUrANoprz2y3Bh+ ysSJFjyIxjJG
f0HWpf8ARvtPkeSN+0tkx4GBjv369qLAMoqx5EP/ADyT/vkVX8y33f8AHt+7 37PM2rtznGOu
evHT9KLAFFNee2W4MP2ViRIseRGMZIz+g61a8iH/AJ5J/wB8iiwFeipP9D87 yf3Hm/3ON3r0
oH2NnCDyCxJXaMZyOo/CiwEdFSH7GJDGfI3jGV4yM4xx+I/Oj/Q/O8n9x5v9 zjd69KLAR0Us
slpE4TZGz7lUqu3K5IAJHpyPzp4FqZzCEiLgZIG3I6dR170WAjoqQfY2cIPI LEldoxnI6j8K
R2skZlc26sgywJUED3/MfnRYBlFO8yw8zy99tvzt25XOfTFRvPbLcGH7KxIk WPIjGMkZ/Qda
LAOoprzQr5n+hMfLkEZwqck4xjn3H5/WkeeJHKf2fKxAYjCJ8wU4JAznuPrR YB9FN86Hz2iF
kxKvtJCp7c4znHzDt3q15EP/ADyT/vkUWAr0UeZb7v8Aj2/d79nmbV25zjHX PXjp+lNee2W4
MP2ViRIseRGMZIz+g60WAdRTnMEcgVrb5chTJsG0E9B6nqOgxz9aei20jMqp GWQ4ZdoyPqKL
ARUVY8iH/nkn/fIo8iH/AJ5J/wB8iiwFeirHkQ/88k/75FHkQ/8APJP++RRY CvRVjyIf+eSf
98ijyIf+eSf98iiwFeirHkQ/88k/75FHkQ/88k/75FFgK9FWPIh/55J/3yKP Ih/55J/3yKLA
V6KseRD/AM8k/wC+RR5EP/PJP++RRYCvRVjyIf8Ankn/AHyKPIh/55J/3yKL AV6KseRD/wA8
k/75FHkQ/wDPJP8AvkUWAr0VY8iH/nkn/fIo8iH/AJ5J/wB8iiwFeipngh2/ 6pOo/hFQbYv+
eUfPtQMWioJlTz4FCKAScgDrxUb3FsjlWj5Bx90UWGouWiQ676p+P9KKLtFR lAUDrnAooJJ4
/un/AHj/ADp1Nj+6f94/zp1AyXyWjmMkTAhz86vknr2PbqeOn05NOeMyTLuA MSjP3urZ4yMd
vr+HQ055Y42VWYBnOFXufoKDIBMsWDuZSw9MAj/EUxFb7PN9s+0Yj+/jZuON uMbun3+30496
rtp8zo2Y4AzCYZDE4L9D0/D6flWpRQBWdJzepIqRmNVK5LkHBKknGPb1qzVV 70L5n7iU+XII
zjbyTjGOfcfn9akFwPOEbRyKGJVXIGGIycevY9scfSgCP7M/2rOV+z58zb33 /Tpjv67uaiWy
dZuUDp5pkyZ3HVt33MY4/XFWGufnwkMki7gpdAMA5x65474/oanoAqwRTR3c 7mOLbK+dwc7s
BQAMY9vXvUf2WZp8lI1XzN2VlYjGc/cIxk+vrz1qb7WC2FhlZd+wOqgjOcHv kY55Ixx9KkM8
IkMZlj3jGV3DIzjHH4j86AInSc3qSKkZjVSuS5BwSpJxj29aZ9nmx5OI/K83 zN+47vv78bcf
h19/apo7mN5WjJ2OrlArEZbAByOeeCKd58PneT5sfm/3Nw3evSgCo9tOWnZY 4d0kyOCXIJVc
cH5f9n9T+Nn7NH5m/dLnOcec+Pyzj8Kcs8LruSWNhxyGB6nA/Xijz4fO8nzY /N/ubhu9elAD
vLTdu2LnO7OO+MZ/LioHSc3qSKkZjVSuS5BwSpJxj29as1E9zAjMrzxqyDLA uAQPf8x+dAC/
vvtH/LPyNnvu3Z/LGKr/AGebHk4j8rzfM37ju+/vxtx+HX39qsefD53k+bH5 v9zcN3r0oE8L
OEEsZYkrtDDOR1H4UAO8tN27Yuc7s474xn8uKdUfnw+d5Pmx+b/c3Dd69KT7 TAGC+fHuLbAN
4yW9PryKAKq2TrNygdPNMmTO46tu+5jHH64oe2nLTsscO6SZHBLkEquOD8v+ z+p/G358PneT
5sfm/wBzcN3r0pqXdu8zQrNGZFO0pu5z9KAIlgkVhGY4XjEpkDsSSCWJ4XHX nGc+/tSfZ5se
TiPyvN8zfuO77+/G3H4dff2qx58PneT5sfm/3Nw3evSmS3cUThNwZ9yqVVhl ckAEjPTkfnQB
XltZynlosLKs3nKzE5J37sdOOpGefpzxM6Tm9SRUjMaqVyXIOCVJOMe3rVmo IbuKXau4JIxI
EbMN3BIPAPsaAK7205adljh3STI4JcglVxwfl/2f1P4xypJ5i2wjDBZxKHKN 3fcecYGATzk9
MY5q613bLu3XEQ2na2XHB9D+R/KpqAIfs0fmb90uc5x5z4/LOPwqTy03bti5 zuzjvjGfy4qA
Xg81kaGRVRxGXO3GTjHfPOR271L58PneT5sfm/3Nw3evSgCB7aRpXA2eXJKk pYk5BXbxjHP3
eue/tUjxyG9ikATy1RlJLHOSQemP9n170/z4fO8nzY/N/ubhu9elSUAVYLYp eT3EkcYZz8rK
xJ24AweP9kH8fzk+zR+Zv3S5znHnPj8s4/CpqKAKP2N/P3bIs+Zv8/P7zGc7 enp8vXp+VXPL
Tdu2LnO7OO+MZ/LikSWORmVWBZDhl7j6in0ARPGZJl3AGJRn73Vs8ZGO31/D oab5LSTCSVgA
h+RUyD17nv0HHT68Gp6KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKAGyE
Bck4AIyT9az3EMjBmlOR0w4GKvyqrxlXUMD2IzVf7Lb/APPCL/vgf5/z+YBW lZWubfawOCe+
f4aZJYLJIz+cRuOcbP8A69WzbwqMrDGD6hR/n/P5t8uP+4v5UXsXCcoO8SG9 OXU+uaKbdKF2
BQAOen4UUiCxH90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51fJPXse3U8dPp yakKAzK+0ZVS
N2eRkjjH4fpQ8scbKrMAznCr3P0FJ58P/PWP7+z7w+96fX2piG/Zo/M37pc5 zjznx+WcfhR9
mj8zfulznOPOfH5Zx+FK1zAsvlNPGJMgbC4zk9OKbLdxROE3Bn3KpVWGVyQA SM9OR+dAEEti
73ZlDrtLhj6/wH/2mP8Avo+nMphka7WRljUIT8653MuDhSMdOc9eo6ek/mJ5 nl71343bc849
cUxrmBZfKaeMSZA2FxnJ6cUAMSOaJikflmIuX3MTuGTkjHfqecjr3xzYqMzw iQxmWPeMZXcM
jOMcfiPzpsdzG8rRk7HVygViMtgA5HPPBFAEDWsjz+Y0durbw3nICHCg8Dpz kDB5HXp6uWCR
WEZjheMSmQOxJIJYnhcdecZz7+1T+fD53k+bH5v9zcN3r0oWeF13JLGw45DA 9TgfrxQBUe2n
LTsscO6SZHBLkEquOD8v+z+p/EWydZuUDp5pkyZ3HVt33MY4/XFW/Ph87yfN j83+5uG716VJ
QBltp8zo2Y4AzCYZDE4L9D0/D6flT5bKcuSmziUSAmVgG+bONo4H15zjPU8X fPh/56x/f2fe
H3vT6+1Czwuu5JY2HHIYHqcD9eKAJKzJUk8xbYRhgs4lDlG7vuPOMDAJ5yem Mc1fMoFwsJVs
shcNxjggEfqKBPCzhBLGWJK7QwzkdR+FAFRbJ1m5QOnmmTJncdW3fcxjj9cU PbTlp2WOHdJM
jglyCVXHB+X/AGf1P42muYFl8pp4xJkDYXGcnpxT/MTzPL3rvxu255x64oAp LZOs3KB080yZ
M7jq277mMcfripYIpo7udzHFtlfO4Od2AoAGMe3r3qbz4f8AnrH9/Z94fe9P r7UjXMCy+U08
YkyBsLjOT04oApy2U5clNnEokBMrAN82cbRwPrznGep4srHNHcSFPLKSOHLE nI4Axjv0657+
3Ky3cUThNwZ9yqVVhlckAEjPTkfnS/a7bzPL+0Rb87du8Zz6YoArLZOs3KB0 80yZM7jq277m
McfriiW1nKeWiwsqzecrMTknfux046kZ5+nPEr3yLcGHypSRIseQvGSM/oOt SR3MbytGTsdX
KBWIy2ADkc88EUATVQitZwnlusKq03nMyk5B37sdOegGePpxzZS7t3maFZoz Ip2lN3OfpQl3
bvM0KzRmRTtKbuc/SgCBo99+YwH8skSyZQ4LLjHPv8p4/ue5q7UYnhZwgljL EldoYZyOo/Cn
eYnmeXvXfjdtzzj1xQBWitT9qmlmUYZwyASMRwAOV6Z4z3/SoZbKcuSmziUS AmVgG+bONo4H
15zjPU8XXl2zRxgZL5J56Ad/zIH40PLtmjjAyXyTz0A7/mQPxoAqLZOs3KB0 80yZM7jq277m
Mcfrir9Qtd2y7t1xENp2tlxwfQ/kfyoa7tl3briIbTtbLjg+h/I/lQAfZo/M 37pc5zjznx+W
cfhR9mj8zfulznOPOfH5Zx+FDXdsu7dcRDadrZccH0P5H8qmoAg8lpJhJKwA Q/IqZB69z36D
jp9eDU9Qtd2y7t1xENp2tlxwfQ/kfyoFwPOEbRyKGJVXIGGIycevY9scfSgC aiio/Ph87yfN
j83+5uG716UASUVF9pgDBfPj3FtgG8ZLen15FD3MCMyvPGrIMsC4BA9/zH50 AS0VG8u2aOMD
JfJPPQDv+ZA/Gmi4HnCNo5FDEqrkDDEZOPXse2OPpQBNRVf7Wu7/AFcnl79n mcbc5xjrnrx0
/Sj7Wu7/AFcnl79nmcbc5xjrnrx0/SgCxRUX2hPtPkYfftLZKkDAx379e1K8 u2aOMDJfJPPQ
Dv8AmQPxoAkoqq96Edk8iUsrhQo25bOcEc9OP5+hxHJqkUczxGKUusix4G3k tkjHPtQBeoqK
GfzZJU8t18ptpLYwTjPGD6EfnTPtYLYWGVl37A6qCM5we+RjnkjHH0oAsUVG Z4RIYzLHvGMr
uGRnGOPxH502O5jeVoydjq5QKxGWwAcjnngigCaio/Ph87yfNj83+5uG716U LPC67kljYcch
gepwP14oAkoqPz4fO8nzY/N/ubhu9elQvfItwYfKlJEix5C8ZIz+g60AWH+6 aj/z/n/P/wBe
R/umo/8AP+f8/wD1wBr/AHT/AJ/z/n8Y6kf7p/z/AJ/z+MdIZWu+qfj/AEoo u+qfj/SigRPH
90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51fJPXse3U8dPpyai+zzfbPtGI/ v42bjjbjG7p9
/t9OPerHnw+d5Pmx+b/c3Dd69KDKBcLCVbLIXDcY4IBH6imIq/ZZmnyUjVfM 3ZWViMZz9wjG
T6+vPWkltZynlosLKs3nKzE5J37sdOOpGefpzxb8+HzvJ82Pzf7m4bvXpQs8 LruSWNhxyGB6
nA/XigBvlv8AbPM2RbPL27sfPnPTPp/Wq/2WZp8lI1XzN2VlYjGc/cIxk+vr z1q158PneT5s
fm/3Nw3evSgTws4QSxliSu0MM5HUfhQBAsEisIzHC8YlMgdiSQSxPC4684zn 39qje2nLTssc
O6SZHBLkEquOD8v+z+p/Gyl3bvM0KzRmRTtKbuc/So/to89ohBKSr7SRt9uc Zzj5h270ARLZ
Os3KB080yZM7jq277mMcfriom0+Z0bMcAZhMMhicF+h6fh9PyrQ8+HzvJ82P zf7m4bvXpSfa
YAwXz49xbYBvGS3p9eRQBTlspy5KbOJRICZWAb5s42jgfXnOM9Txo1Gs8Lru SWNhxyGB6nA/
Xio1u1MzxtHIgV9m9sbSeCBwe+R1+nXigCP7PN9s+0Yj+/jZuONuMbun3+30 496rtp8zo2Y4
AzCYZDE4L9D0/D6flWh58PneT5sfm/3Nw3evSoX1C3W4WBXV3JwQHX5TnHc/ oMmgBXSc3qSK
kZjVSuS5BwSpJxj29ahe2nLTsscO6SZHBLkEquOD8v8As/qfxt+fD53k+bH5 v9zcN3r0o8+H
/nrH9/Z94fe9Pr7UAVfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVjy3+2eZsi2eX t3Y+fOemfT+t
OMoFwsJVsshcNxjggEfqKal3bvM0KzRmRTtKbuc/SgCH7PN9s+0Yj+/jZuON uMbun3+30496
b9lmafJSNV8zdlZWIxnP3CMZPr689asfa7bzPL+0Rb87du8Zz6YqN75FuDD5 UpIkWPIXjJGf
0HWgCKW1nKeWiwsqzecrMTknfux046kZ5+nPFn7NH5m/dLnOcec+Pyzj8KV7 mBGZXnjVkGWB
cAge/wCY/Ol8+H/nrH9/Z94fe9Pr7UAO8tN27Yuc7s474xn8uKpPbTlp2WOH dJMjglyCVXHB
+X/Z/U/jb8+HzvJ82Pzf7m4bvXpQZQLhYSrZZC4bjHBAI/UUARrHNHcSFPLK SOHLEnI4Axjv
0657+3Isc0dxIU8spI4csScjgDGO/Trnv7cyCeMzmEMpcDJAYZHTqOveoX1C 3W4WBXV3JwQH
X5TnHc/oMmgCBI3mu7kCIKhmRjIwIJCheBxyMqe/f87flv8AbPM2RbPL27sf PnPTPp/WnCeM
zmEMpcDJAYZHTqOvejz4fO8nzY/N/ubhu9elADYUbzJZZBhnO0D0UZx/U/jj tRCjeZLLIMM5
2geijOP6n8cdqSW7iicJuDPuVSqsMrkgAkZ6cj86Y98i3Bh8qUkSLHkLxkjP 6DrQAySzke5L
iQCNnVyOeo29v+Af+PH05JLOR7kuJAI2dXI56jb2/wCAf+PH05tJLHIzKrAs hwy9x9RT6AKU
lnI9yXEgEbOrkc9Rt7f8A/8AHj6c2f332j/ln5Gz33bs/ljFSUUAUpLOR7ku JAI2dXI56jb2
/wCAf+PH05kMMjXayMsahCfnXO5lwcKRjpznr1HT0s0UAR/vvtH/ACz8jZ77 t2fyxiq/2ebH
k4j8rzfM37ju+/vxtx+HX39quUUAVYIpo7udzHFtlfO4Od2AoAGMe3r3qtKk nmLbCMMFnEoc
o3d9x5xgYBPOT0xjmtOigCGFG8yWWQYZztA9FGcf1P447VGiXP2ou6xFckbt 5JCdgBjjtnn+
mLVFAFP7PNjycR+V5vmb9x3ff3424/Dr7+1H2ebHk4j8rzfM37ju+/vxtx+H X39quUUAVnSc
3qSKkZjVSuS5BwSpJxj29afCjeZLLIMM52geijOP6n8cdqmooApyR3ZnMqiL KnagLnGw9c/L
1OB+Q98xy2k7SSyBIixlV0JkI+Ubcg8d9g/P89CigCmI7tZpSgiCySq+7ech RtBGNvcD170j
Wsjz+Y0durbw3nICHCg8DpzkDB5HXp63aKAKiwSKwjMcLxiUyB2JJBLE8Ljr zjOff2qN7act
Oyxw7pJkcEuQSq44Py/7P6n8b9FAFBbJ1m5QOnmmTJncdW3fcxjj9cVE2nzO jZjgDMJhkMTg
v0PT8Pp+ValFAGdLZTlyU2cSiQEysA3zZxtHA+vOcZ6ni/5abt2xc53Zx3xj P5cU6igBr/dN
R/5/z/n/AOvI/wB01H/n/P8An/64A1/un/P+f8/jHUj/AHT/AJ/z/n8Y6Qyt d9U/H+lFF31T
8f6UUCJ4/un/AHj/ADp1Nj+6f94/zp1Axi2TrNygdPNMmTO46tu+5jHH64qZ 0nN6kipGY1Ur
kuQcEqScY9vWrNMeWONlVmAZzhV7n6CmIprZOs3KB080yZM7jq277mMcfrio m0+Z0bMcAZhM
MhicF+h6fh9PyrQ8+H/nrH9/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oAqrZO s3KB080yZM7j
q277mMcfrih7actOyxw7pJkcEuQSq44Py/7P6n8bEt3FE4TcGfcqlVYZXJAB Iz05H51L5ieZ
5e9d+N23POPXFAEKxzR3EhTyykjhyxJyOAMY79Oue/ty2C2KXk9xJHGGc/Ky sSduAMHj/ZB/
H85vPh87yfNj83+5uG716UGUC4WEq2WQuG4xwQCP1FAFf7PNjycR+V5vmb9x 3ff3424/Dr7+
1Ogimju53McW2V87g53YCgAYx7evepvPh87yfNj83+5uG716ULPC67kljYcc hgepwP14oAz2
0+Z0bMcAZhMMhicF+h6fh9PyqwLeZppfMEaxPKsmVYlvl24GMcfdB/T3qx58 PneT5sfm/wBz
cN3r0oE8LOEEsZYkrtDDOR1H4UAVFsnWblA6eaZMmdx1bd9zGOP1xUqpci8e Xy4tjBU/1hyA
CecbffpUiXdu8zQrNGZFO0pu5z9KmoAzpbKcuSmziUSAmVgG+bONo4H15zjP U8ST205aTyvL
KvKkvzEg5Xb8vT/Z6/hjvVkTws4QSxliSu0MM5HUfhR58PneT5sfm/3Nw3ev SgCJ0nN6kipG
Y1UrkuQcEqScY9vWlWOaO4kKeWUkcOWJORwBjHfp1z39uZFnhddySxsOOQwP U4H68UefD53k
+bH5v9zcN3r0oAb9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd8Yz+XFR/a7bz PL+0Rb87du8Z
z6YqN75FuDD5UpIkWPIXjJGf0HWgCvcxSxRqpjV41uBIGVWZuX3HgDjAJ5z2 96lntpy0nleW
VeVJfmJByu35en+z1/DHepmufnwkMki7gpdAMA5x65474/oaf58PneT5sfm/ 3Nw3evSgClLZ
TlyU2cSiQEysA3zZxtHA+vOcZ6niw6Tm9SRUjMaqVyXIOCVJOMe3rUqzwuu5 JY2HHIYHqcD9
eKFnhddySxsOOQwPU4H68UAROk5vUkVIzGqlclyDglSTjHt60ipci8eXy4tj BU/1hyACecbf
fpU3nw+d5Pmx+b/c3Dd69KBPCzhBLGWJK7QwzkdR+FAETpOb1JFSMxqpXJcg 4JUk4x7etQrZ
Os3KB080yZM7jq277mMcfrirUM/mySp5br5TbSWxgnGeMH0I/Ol8+HzvJ82P zf7m4bvXpQBU
ltZynlosLKs3nKzE5J37sdOOpGefpzxd8tN27Yuc7s474xn8uKY9zAjMrzxq yDLAuAQPf8x+
dKJ4zOYQylwMkBhkdOo696AGeS0kwklYAIfkVMg9e579Bx0+vBqeoxPCzhBL GWJK7QwzkdR+
FQvfItwYfKlJEix5C8ZIz+g60AWqKYkscjMqsCyHDL3H1FPoAKKKKACiiigA ooooAKKKKACi
iigAooooAKKKKACiiigAooooAKKKKACiiigBr/dNR/5/z/n/AOvI/wB01H/n /P8An/64A1/u
n/P+f8/jHUj/AHT/AJ/z/n8Y6Qytd9U/H+lFF31T8f6UUCJ4/un/AHj/ADp1 Nj+6f94/zp1A
y5UHktHMZImBDn51fJPXse3U8dPpyanopiKf2eb7Z9oxH9/GzccbcY3dPv8A b6ce9N+yzNPk
pGq+ZuysrEYzn7hGMn19eetW3ljjZVZgGc4Ve5+gpPPh/wCesf39n3h970+v tQBUltZynlos
LKs3nKzE5J37sdOOpGefpzxZ8t/tnmbItnl7d2Pnznpn0/rStcwLL5TTxiTI GwuM5PTimy3c
UThNwZ9yqVVhlckAEjPTkfnQBXWydZuUDp5pkyZ3HVt33MY4/XFTOk5vUkVI zGqlclyDglST
jHt61P5ieZ5e9d+N23POPXFNM8IkMZlj3jGV3DIzjHH4j86AKi2TrNygdPNM mTO46tu+5jHH
64qJtPmdGzHAGYTDIYnBfoen4fT8q0PPh87yfNj83+5uG716ULPC67kljYcc hgepwP14oAqL
ZOs3KB080yZM7jq277mMcfrih7actOyxw7pJkcEuQSq44Py/7P6n8bYnhZwg ljLEldoYZyOo
/CgygXCwlWyyFw3GOCAR+ooAjWOaO4kKeWUkcOWJORwBjHfp1z39ubFR+fD5 3k+bH5v9zcN3
r0o8+H/nrH9/Z94fe9Pr7UAVHtpy07LHDukmRwS5BKrjg/L/ALP6n8Wy2U5c lNnEokBMrAN8
2cbRwPrznGep4me+KOU+yXDEBiMBfmCnBIGc9x9ala7tl3briIbTtbLjg+h/ I/lQBRbT5nRs
xwBmEwyGJwX6Hp+H0/KpVsnWblA6eaZMmdx1bd9zGOP1xVsTws4QSxliSu0M M5HUfhR58Pne
T5sfm/3Nw3evSgBv2aPzN+6XOc4858flnH4VJ5abt2xc53Zx3xjP5cUiSxyM yqwLIcMvcfUU
+gCukc0TFI/LMRcvuYncMnJGO/U85HXvjmP7PNjycR+V5vmb9x3ff3424/Dr 7+1XKKAMttPm
dGzHAGYTDIYnBfoen4fT8qG0+Z0bMcAZhMMhicF+h6fh9PyrUooAp/Z5seTi PyvN8zfuO77+
/G3H4dff2pj205adljh3STI4JcglVxwfl/2f1P436KAKYju1mlKCILJKr7t5 yFG0EY29wPXv
R9nmx5OI/K83zN+47vv78bcfh19/arlFAGZKknmLbCMMFnEoco3d9x5xgYBP OT0xjmrTpOb1
JFSMxqpXJcg4JUk4x7etWaKAKD205adljh3STI4JcglVxwfl/wBn9T+N3y03 bti5zuzjvjGf
y4p1FAEHktJMJJWACH5FTIPXue/QcdPrwanoooAKKKKACiiigAooooAKKKKA CiiigAooooAK
KKKACiiigAooooAKKKKACiiigBr/AHTUf+f8/wCf/ryP901H/n/P+f8A64A1 /un/AD/n/P4x
1I/3T/n/AD/n8Y6Qytd9U/H+lFF31T8f6UUCJ4/un/eP86dTY/un/eP86dQM uUUUUxEHktHM
ZImBDn51fJPXse3U8dPpyai+zzfbPtGI/v42bjjbjG7p9/t9OPerlMeWONlV mAZzhV7n6CgC
p9lmafJSNV8zdlZWIxnP3CMZPr689aSW1nKeWiwsqzecrMTknfux046kZ5+n PFvz4f8AnrH9
/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oATy3+2eZsi2eXt3Y+fOemfT+tRLB IrCMxwvGJTIH
YkkEsTwuOvOM59/apJbuKJwm4M+5VKqwyuSACRnpyPzqXzE8zy9678btuece uKAKv2ebHk4j
8rzfM37ju+/vxtx+HX39qrtp8zo2Y4AzCYZDE4L9D0/D6flV9rmBZfKaeMSZ A2FxnJ6cUvnw
+d5Pmx+b/c3Dd69KAKSRvNd3IEQVDMjGRgQSFC8DjkZU9+/52HSc3qSKkZjV SuS5BwSpJxj2
9ake5gRmV541ZBlgXAIHv+Y/Ol8+H/nrH9/Z94fe9Pr7UAVFsnWblA6eaZMm dx1bd9zGOP1x
T/s832z7RiP7+Nm4424xu6ff7fTj3qx58PneT5sfm/3Nw3evSgTws4QSxliS u0MM5HUfhQAx
45DexSAJ5aoykljnJIPTH+z696haPffmMB/LJEsmUOCy4xz7/KeP7nuasmeE SGMyx7xjK7hk
Zxjj8R+dHnw+d5Pmx+b/AHNw3evSgCkkbzXdyBEFQzIxkYEEhQvA45GVPfv+ blsnWblA6eaZ
Mmdx1bd9zGOP1xVxJY5GZVYFkOGXuPqKfQBB5LSTCSVgAh+RUyD17nv0HHT6 8Gp6KKACiiig
AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKK
KKACiiigAooooAKKKKAGv901H/n/AD/n/wCvI/3TUf8An/P+f/rgDX+6f8/5 /wA/jHUj/dP+
f8/5/GOkMrXfVPx/pRRd9U/H+lFAieP7p/3j/OnVSaJmlYlpfmJ2ojkZ68+3 9T265WFf3yEN
Kpxu2PIWyOeR/h9D65NCuV2ubFFFFMkKg8lo5jJEwIc/Or5J69j26njp9OTU 9FAFP7PN9s+0
Yj+/jZuONuMbun3+30496b9lmafJSNV8zdlZWIxnP3CMZPr689a59Li9dWZZ 5yqjLHecD8aX
zr//AJ63P3d/3m+76/T3rTkJ5jeltZynlosLKs3nKzE5J37sdOOpGefpzxZ8 t/tnmbItnl7d
2Pnznpn0/rXMiXUWj8xXujHjO4FsfnTo3v5EL/aJ1TaSGZmw2ASQD68H8qOT zDmNz7LM0+Sk
ar5m7KysRjOfuEYyfX1560i2TrNygdPNMmTO46tu+5jHH64rA+03vl+Z59xs zjdvbGfTNL51
/wCV5vm3Pl/39zY/OjkDmNu5ilijVTGrxrcCQMqszcvuPAHGATznt71LPbTl pPK8sq8qS/MS
Dldvy9P9nr+GO9c+Li7MBlF3LgMFK+Y2eQSD+ho86/8AK83zbny/7+5sfnRy BzG8tk6zcoHT
zTJkzuOrbvuYxx+uKHtpy07LHDukmRwS5BKrjg/L/s/qfxwWmv0OGluVPPBZ h0GT+nNHnX/l
eb5tz5f9/c2Pzo5A5jolgkVhGY4XjEpkDsSSCWJ4XHXnGc+/tUa2TrNygdPN MmTO46tu+5jH
H64rBM1+E3mW5CgA5LNjB6GnM+opEJWkuRGRkNubGKOTzDmOk8lpJhJKwAQ/ IqZB69z36Djp
9eDU9cf9tuv+fmb/AL+Gnma/CbzLchQAclmxg9DR7MOY62iuS86/8rzfNufL /v7mx+dDTX6H
DS3Knngsw6DJ/TmjkDmOtorkvOv/ACvN8258v+/ubH507fqXl+Zuu9mM7stj Hrmjk8w5jq6K
5dTetAJftrAFGkwZWzgHH6npUXnX/wDz1ufu7/vN931+nvRyeYcx1tFcmJdR aPzFe6MeM7gW
x+dJ51/5Xm+bc+X/AH9zY/Ojk8w5jraK5PzdR2lt91gLuJy3T1+lIZr8JvMt yFAByWbGD0NH
J5hzHW0VyXnX/leb5tz5f9/c2Pzoaa/Q4aW5U88FmHQZP6c0cgcx1tFcl51/ 5Xm+bc+X/f3N
j86lU3rQCX7awBRpMGVs4Bx+p6UcnmHMdRRXH/bbr/n5m/7+GpPN1HaW33WA u4nLdPX6UezD
mOsorkvOv/K83zbny/7+5sfnUqjUWgMxnuFQDIJL/MMZ7fzNHJ5hzHUUVym/ UvL8zdd7MZ3Z
bGPXNPU3rQCX7awBRpMGVs4Bx+p6UuTzC51FFcl51/8A89bn7u/7zfd9fp70 ol1Fo/MV7ox4
zuBbH50+TzDmOsorkvOv/K83zbny/wC/ubH50vm6jtLb7rAXcTlunr9KOTzD mOsorkjNfhN5
luQoAOSzYweho86/8rzfNufL/v7mx+dHIHMdbRXJNNfocNLcqeeCzDoMn9Oa POv/ACvN8258
v+/ubH50cgcx1tFcvuu/LVhfMxZC4QO+cDOe2OMHv2qLzr/yvN8258v+/ubH 50cgcx1tFcuo
1FoDMZ7hUAyCS/zDGe38zQpvWgEv21gCjSYMrZwDj9T0pcnmFzqKK5JLm6aK SQ3UwCYA+c8k
9uvoCfwpHuL1FVmnnCsMqd5wfxp8gcx11FFFZlBRRRQA1/umo/8AP+f8/wD1 5H+6aj/z/n/P
/wBcAa/3T/n/AD/n8Y6kf7p/z/n/AD+NczxgkZPHH3TSGk3sRXfVPx/pRRdE MIyOhBI/SigB
u7MxdFLyR5AQd/mzn9enXp60Iha8Ezh03ZIVhyT3/D3+lOMcJ5aBJJGLYG0Z PJ70sAg3jFuk
UmNy8DkeoNLS5peXKalFFFUZBRRRQBx+/wAyIJIhyo+QpgfmO/Qc9frxUvmx /ZfI+f7md20Z
3Zzt6/d/rzXQyQWSMqvDAGc/KuwZb8KTy9P/ALlt9/Z0X73p9fatOdBZGB5y CHALsxj24Mag
5xj7+c49vTApYpog+9jMC8XlFVAwBt25689jjj/HdZNOWXymW1EhI+Qhc57c U2UWEb7PIgdy
yhlVVyuSACR6cj86OdBZHOZH2Ty8y79+7bn5MY649asG5DRDBKP5ezAhU/w4 +9nPP9a6D7PZ
eZ5fkwb8btu0Zx64pvl6f53k7Lbzf7mF3evSjnQWRzieV9keMtJ5jENgIMcA 8Zz71KbkNEME
o/l7MCFT/Dj72c8/1reMNr9oEJtI8spcNsXBwQD+PIo8vT/O8nZbeb/cwu71 6Uc6CyMVbuNX
Xa0xUGIgFQMhOo6/j9fzqM3IaIYJR/L2YEKn+HH3s55/rW8senyLuVLZgccg Kc5OB+uRR5en
+d5Oy283+5hd3r0o5kFkYKTRbYFZpsJE6kBB1bPI5/2v0HrUJMckEYYPvRCo AAweSc57demP
510gj09n2BLYsWI24XJI6j6imqNNkmaFVtjIGwU2rnP070c4WRy21vSrqTRb YFZpsJE6kBB1
bPI5/wBr9B610X2O1/59of8AvgVGI9PZ9gS2LFiNuFySOo+oocwtEw4rmIKA 4fmMoQI1JHy4
zuPJ+nHX83Ldxq67WmKgxEAqBkJ1HX8fr+dbXl6f53k7Lbzf7mF3evShY9Pk XcqWzA45AU5y
cD9cijmQWRgm5DRDBKP5ezAhU/w4+9nPP9ar+dL5ezZHjGP9UufzxnNdN5en +d5Oy283+5hd
3r0puNM8zy8Wm/djb8uc+mPWjnQWRzGZMYy2MYxntnOPz5qzDLEFj8wSArG0 Y2gHg7uev+10
/XtW07WS3Bh+w7j5ix5EQIJIz+g61MI9PZ9gS2LFiNuFySOo+oo5wsjA85BD gF2Yx7cGNQc4
x9/Oce3pgUpuQ0QwSj+XswIVP8OPvZzz/Wt7y9P87ydlt5v9zC7vXpSMmnLL 5TLaiQkfIQuc
9uKOdBZHPStHJbQory7o0wFKjbknJ5z7+nYVIk0W2BWabCROpAQdWzyOf9r9 B61usmnLL5TL
aiQkfIQuc9uKRhpi7twtBtbDZ28Hng+/Bo5wsjFiuYgoDh+YyhAjUkfLjO48 n6cdfzct3Grr
taYqDEQCoGQnUdfx+v51teXp/neTstvN/uYXd69KQpp27aVtdxbbjC5Len15 /WjmQWRhG5DR
DBKP5ezAhU/w4+9nPP8AWqmZMYy2MYxntnOPz5rppRYRvs8iB3LKGVVXK5IA JHpyPzpjtZLc
GH7DuPmLHkRAgkjP6DrRzoLI5ra3pVmVo5LaFFeXdGmApUbck5POff07Cum+ x2v/AD7Q/wDf
AqIpp27aVtdxbbjC5Len15/WnzhaJhG5DRDBKP5ezAhU/wAOPvZzz/Woz5LW iR7pd6ln/wBW
MEkDjr7frXReXp/neTstvN/uYXd69KheTThcCAQwO5bDABODnHOTyevAyaXO gsjn/Ol8vZsj
xjH+qXP54zmmZkxjLYxjGe2c4/PmunxpnmeXi037sbflzn0x61G7WS3Bh+w7 j5ix5EQIJIz+
g60+dBZGLDLEFj8wSArG0Y2gHg7uev8AtdP17UvnIIcAuzGPbgxqDnGPv5zj 29MCt8R6ez7A
lsWLEbcLkkdR9RR5en+d5Oy283+5hd3r0pc6CyME3IaIYJR/L2YEKn+HH3s5 5/rUcrRyW0KK
8u6NMBSo25Jyec+/p2FdCyacsvlMtqJCR8hC5z24oZNOWXymW1EhI+Qhc57c Uc6CyMJJotsC
s02EidSAg6tnkc/7X6D1p0VzEFAcPzGUIEakj5cZ3Hk/Tjr+e0w0xd24Wg2t hs7eDzwffg07
y9P87ydlt5v9zC7vXpRzoLIxVu41ddrTFQYiAVAyE6jr+P1/OozchohglH8v ZgQqf4cfeznn
+tbpTTt20ra7i23GFyW9Prz+tNlFhG+zyIHcsoZVVcrkgAkenI/OjmQWRh+e ggiiAYjyyrNs
AYZJPBznvjHGR9aU3IaIYJR/L2YEKn+HH3s55/rWz/onmujWIVVkCM5RMZOM d885HbvUvl6f
53k7Lbzf7mF3evSjnQWRzp8lrRI90u9Sz/6sYJIHHX2/WoMyYxlsYxjPbOcf nzXRvJpwuBAI
YHcthgAnBzjnJ5PXgZNDtZLcGH7DuPmLHkRAgkjP6DrRzhaJz8pzHFHHyqjc T6scZ/oPw96U
Psi2RISXHzF8H8h269ev0zXSvBarNHGLWFi+SfkHAHfp6kD8aVILKRnVYYCy n5l2DI+oo5ws
i1RRRWYBRRRQA1/umo/8/wCf8/8A15H+6aj/AM/5/wA//XAGv90/5/z/AJ/G qbdSSd7DJz2/
wq0/3T/n/P8An8apuFBI2McHHb/GguPN0I7lQqxqOgBH8qKLlgyxsOhBP8qK RL3HMrBhMil2
TICj13Eg02OJ5Lo3Dq6Drhxzk/0qxH90/wC8f506lYvndrFyiiiqMwoopjyx xsqswDOcKvc/
QUAVztimaSOVcFgJFcknqeh7Ac8dOD05NREEXhuC0XEm0puONuMbun3+CM9M AjPGatMypNDG
qAkg9ONqjr+u0Y9/agS24xiSIYbyxgjg/wB36+1BXulMofPJYxIqy5JWViOu fuEYzwcnscnq
KSZH2GNTAVjn80M7HOd+7HTjuM89D74uGe2SVYjLCsg+UJuAIz2x+VNkuYIX VBtZwVTahGUB
IAyM9OR+lAe6IXUXhkPk7Amwtj5856Z/u8H8QfSqwhVJm3bXQTbyTcOMZbd9 zGOOfyPTmr4M
QkEYKBwuQoxkL9PSmGe2SVYjLCsg+UJuAIz2x+VAe6QySP8AbVkHk+XGChJc g8kEnGO209/X
pg1CIVSZt210E28k3DjGW3fcxjjn8j05q6JbcTCESRCUDAQEbgOvSkae2iYq 0sKNGvILAFRx
+Q6fpQHumc9sSj7hbqx84E7icF+h+72wQfYH0IqUQqkzbtroJt5JuHGMtu+5 jHHP5HpzV0S2
4xiSIYbyxgjg/wB36+1AltxMIRJEJQMBARuA69KA90pSo+64YCDc06NkuQcL jg/L/sn2GT6V
OHMVxKVeLY8gZmYnK8AEAY5+6ec8c+lTLLb71RJItwyiqCM8dQP04o823WTy xJEHQAbcjKg4
xx+X6UB7o4zxDOXHBwf8/gfyPpVCVH3XDAQbmnRslyDhccH5f9k+wyfSrolt xMIRJEJQMBAR
uA69KWN4WYrGV3R/KVxgr+HYcfjQHumfNC29irx/LMHyZWAPzZxtHA6HnnoS ec4Y9sSj7hbq
x84E7icF+h+72wQfYH0IrWCqMYUDAwMDoKAqjGFAwMDA6CgPdM4QqkzbtroJ t5JuHGMtu+5j
HHP5HpzVkpbiQuZZMhskec+M/TOMcH24PpVgKoxhQMDAwOgoCqMYUDAwMDoK A90jL24YsdmQ
2Scd8Yz+QIz7H0qjkPdXIwiIZkYyNkMduOAMcjKt345P10gqjGFAwMDA6CgK oxhQMDAwOgoD
3TMmhbexV4/lmD5MrAH5s42jgdDzz0JPOcPKHzyWMSKsuSVlYjrn7hGM8HJ7 HJ6itAKoxhQM
DAwOgoCqMYUDAwMDoKA90zyh88ljEirLklZWI65+4RjPByexyeopZYs3Lv56 iMyKzDJ6jb27
/wCr6+7enN8KoxhQMDAwOgoCqMYUDAwMDoKA90okEAwlovKE3mF9x3ff3424 9iM57E9sU6Fj
Fd3DsIQsknLBzuAC4HG3noe/HPoauBVGMKBgYGB0FAVRjCgYGBgdBQHumdMj 7DGpgKxz+aGd
jnO/djpx3Geeh98XS9uGLHZkNknHfGM/kCM+x9KkCqMYUDAwMDoKAqjGFAwM DA6CgPdGmeIZ
y44OD/n8D+R9KqwsYru4dhCFkk5YOdwAXA4289D3459DVwKoxhQMDAwOgoCq MYUDAwMDoKA9
0zhCqTNu2ugm3km4cYy277mMcc/kenNSiSRLySUiHYdqH94cgAtzjb7n8jzV wKoxhQMDAwOg
oCqMYUDAwMDoKA90rlLcSFzLJkNkjznxn6Zxjg+3B9KkL24YsdmQ2Scd8Yz+ QIz7H0qQKoxh
QMDAwOgoCqMYUDAwMDoKA90zch7q5GERDMjGRshjtxwBjkZVu/HJ+qTQtvYq 8fyzB8mVgD82
cbRwOh556EnnONMKoxhQMDAwOgoCqMYUDAwMDoKA90zyh88ljEirLklZWI65 +4RjPByexyeo
oKHzyWMSKsuSVlYjrn7hGM8HJ7HJ6itAKoxhQMDAwOgoCqMYUDAwMDoKA90o SxZuXfz1EZkV
mGT1G3t3/wBX1929OVIIBhLReUJvML7ju+/vxtx7EZz2J7Yq8FUYwoGBgYHQ UBVGMKBgYGB0
FAe6U4WMV3cOwhCyScsHO4ALgcbeeh78c+hqKZH2GNTAVjn80M7HOd+7HTju M89D740QqjGF
AwMDA6CgKoxhQMDAwOgoD3TPMX+kTzM6AiUMq+YxVsDGGGMfw5zzgj/ZpBCq TNu2ugm3km4c
Yy277mMcc/kenNaIVRjCgYGBgdBQFUYwoGBgYHQUB7pTEkiXkkpEOw7UP7w5 ABbnG33P5Hmr
Be3DFjsyGyTjvjGfyBGfY+lSBVGMKBgYGB0FAVRjCgYGBgdBQHuleJ0WSaWV gGLbcZ6KM4/9
mPtkjtSHa83mTSqBG2FVCQRz3PccdOnBznGRZCqMYUDAwMDoKAqjGFAwMDA6 CgPdHUUUUEhR
RRQA1/umo/8AP+f8/wD15H+6aj/z/n/P/wBcAa/3T/n/AD/n8a5gjJJweefv GrD/AHT/AJ/z
/n8Y6Q02titdAKIwOgBA/Sii76p+P9KKAJ4/un/eP86dTY/un/eP86dQBcoo opiCoPJaOYyR
MCHPzq+SevY9up46fTk1I8scbKrMAznCr3P0FI8u2aOMDJfJPPQDv+ZA/GgB sKN5kssgwzna
B6KM4/qfxx2qH7PN9s+0Yj+/jZuONuMbun3+30496sefD/z1j+/s+8Pven19 qRrmBZfKaeMS
ZA2FxnJ6cUAVvsszT5KRqvmbsrKxGM5+4RjJ9fXnrSS2s5Ty0WFlWbzlZick 792OnHUjPP05
4sS3cUThNwZ9yqVVhlckAEjPTkfnUvmJ5nl71343bc849cUAR+W/2zzNkWzy 9u7Hz5z0z6f1
qv8AZZmnyUjVfM3ZWViMZz9wjGT6+vPWrRnhEhjMse8Yyu4ZGcY4/EfnR58P neT5sfm/3Nw3
evSgCotk6zcoHTzTJkzuOrbvuYxx+uKZcxSxRqpjV41uBIGVWZuX3HgDjAJ5 z296vLPC67kl
jYcchgepwP14oE8LOEEsZYkrtDDOR1H4UAVp7actJ5XllXlSX5iQcrt+Xp/s 9fwx3pq2TrNy
gdPNMmTO46tu+5jHH64q2ZQLhYSrZZC4bjHBAI/UUefD53k+bH5v9zcN3r0o AqPbTlp2WOHd
JMjglyCVXHB+X/Z/U/jIsEisIzHC8YlMgdiSQSxPC4684zn39qn8+H/nrH9/ Z94fe9Pr7VA9
8Ucp9kuGIDEYC/MFOCQM57j60ARrZOs3KB080yZM7jq277mMcfrirHktJMJJ WACH5FTIPXue
/QcdPrwaVru2XduuIhtO1suOD6H8j+VOE8LOEEsZYkrtDDOR1H4UASUVH58P neT5sfm/3Nw3
evSlSWORmVWBZDhl7j6igB9FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUANf7pqP/P8An/P/ ANeR/umo/wDP
+f8AP/1wBr/dP+f8/wCfxjqR/un/AD/n/P4x0hla76p+P9KKLvqn4/0ooETx /dP+8f506mx/
dP8AvH+dOoGXKKKY8scbKrMAznCr3P0FMRH5LRzGSJgQ5+dXyT17Ht1PHT6c mlhRvMllkGGc
7QPRRnH9T+OO1OeXbNHGBkvknnoB3/MgfjR58P8Az1j+/s+8Pven19qAK/2e b7Z9oxH9/Gzc
cbcY3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561Za5gWXymnjEmQNhc ZyenFNlu4onC
bgz7lUqrDK5IAJGenI/OgCvLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/bP M2RbPL27sfPn
PTPp/WpPMTzPL3rvxu255x64pvnw+d5Pmx+b/c3Dd69KAIFgkVhGY4XjEpkD sSSCWJ4XHXnG
c+/tSfZ5seTiPyvN8zfuO77+/G3H4dff2qwZQLhYSrZZC4bjHBAI/UUefD53 k+bH5v8Ac3Dd
69KAM9tPmdGzHAGYTDIYnBfoen4fT8qekbzXdyBEFQzIxkYEEhQvA45GVPfv +d1Z4XXcksbD
jkMD1OB+vFHnw+d5Pmx+b/c3Dd69KAInSc3qSKkZjVSuS5BwSpJxj29ahWyd ZuUDp5pkyZ3H
Vt33MY4/XFWxPCzhBLGWJK7QwzkdR+FNS7t3maFZozIp2lN3OfpQBD9nm+2f aMR/fxs3HG3G
N3T7/b6ce9SvHIb2KQBPLVGUksc5JB6Y/wBn171IkscjMqsCyHDL3H1FPoAp NHvvzGA/lkiW
TKHBZcY59/lPH9z3NRpG813cgRBUMyMZGBBIULwOORlT37/no0UAUFsnWblA 6eaZMmdx1bd9
zGOP1xVjyWkmEkrABD8ipkHr3PfoOOn14NT0UAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UANf7pqP/P8A
n/P/ANeR/umo/wDP+f8AP/1wBr/dP+f8/wCfxjqR/un/AD/n/P4x0hla76p+ P9KKLvqn4/0o
oETx/dP+8f506mx/dP8AvH+dOoGXKg8lo5jJEwIc/Or5J69j26njp9OTU9Me WONlVmAZzhV7
n6CmIZCjeZLLIMM52geijOP6n8cdqh+zzfbPtGI/v42bjjbjG7p9/t9OPerH nw/89Y/v7PvD
73p9faka5gWXymnjEmQNhcZyenFAFb7LM0+Skar5m7KysRjOfuEYyfX1560k trOU8tFhZVm8
5WYnJO/djpx1Izz9OeLEt3FE4TcGfcqlVYZXJABIz05H51L5ieZ5e9d+N23P OPXFAEflv9s8
zZFs8vbux8+c9M+n9arLZOs3KB080yZM7jq277mMcfrirfnw+d5Pmx+b/c3D d69KDKBcLCVb
LIXDcY4IBH6igCJ0nN6kipGY1UrkuQcEqScY9vWoVsnWblA6eaZMmdx1bd9z GOP1xVvz4fO8
nzY/N/ubhu9elCzwuu5JY2HHIYHqcD9eKAM9tPmdGzHAGYTDIYnBfoen4fT8 qlWydZuUDp5p
kyZ3HVt33MY4/XFW/Ph87yfNj83+5uG716UCeFnCCWMsSV2hhnI6j8KAKj20 5adljh3STI4J
cglVxwfl/wBn9T+M6xzR3EhTyykjhyxJyOAMY79Oue/ty5Lu3eZoVmjMinaU 3c5+lTUAQeS0
kwklYAIfkVMg9e579Bx0+vBqeoxPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3 Dd69KAJKKjWe
F13JLGw45DA9TgfrxR58PneT5sfm/wBzcN3r0oAkoqH7XbeZ5f2iLfnbt3jO fTFRvfItwYfK
lJEix5C8ZIz+g60AWqKjE8LOEEsZYkrtDDOR1H4UefD53k+bH5v9zcN3r0oA koqJrmBZfKae
MSZA2FxnJ6cUNcwLL5TTxiTIGwuM5PTigCWioWu7Zd264iG07Wy44PofyP5U 7z4fO8nzY/N/
ubhu9elAElFRfaYAwXz49xbYBvGS3p9eRTZbuKJwm4M+5VKqwyuSACRnpyPz oAnoqsLweayN
DIqo4jLnbjJxjvnnI7d6l8+HzvJ82Pzf7m4bvXpQBJRVV9Qt1uFgV1dycEB1 +U5x3P6DJoe+
Rbgw+VKSJFjyF4yRn9B1oAtUUVCl3bvM0KzRmRTtKbuc/SgCaioWu7Zd264i G07Wy44PofyP
5U4Tws4QSxliSu0MM5HUfhQBJRUfnw+d5Pmx+b/c3Dd69Kb9rtvM8v7RFvzt 27xnPpigCaiq
r3yLcGHypSRIseQvGSM/oOtTefD/AM9Y/v7PvD73p9fagCSiomuYFl8pp4xJ kDYXGcnpxTZb
uKJwm4M+5VKqwyuSACRnpyPzoAnopvmJ5nl71343bc849cUxrmBZfKaeMSZA 2FxnJ6cUAS0V
Cl3bvM0KzRmRTtKbuc/Sl+0wBgvnx7i2wDeMlvT68igCWioxPGZzCGUuBkgM Mjp1HXvQJ4Wc
IJYyxJXaGGcjqPwoAkoqJ7mBGZXnjVkGWBcAge/5j86ie+Rbgw+VKSJFjyF4 yRn9B1oAtUVG
8u2aOMDJfJPPQDv+ZA/GlSWORmVWBZDhl7j6igB9FFFABRRRQA1/umo/8/5/ z/8AXkf7pqP/
AD/n/P8A9cAa/wB0/wCf8/5/GOpH+6f8/wCf8/jHSGVrvqn4/wBKKLvqn4/0 ooETx/dP+8f5
06mx/dP+8f506gZcqDyWjmMkTAhz86vknr2PbqeOn05NT0x5Y42VWYBnOFXu foKYit9nm+2f
aMR/fxs3HG3GN3T7/b6ce9N+yzNPkpGq+ZuysrEYzn7hGMn19eetWvPh/wCe sf39n3h970+v
tSNcwLL5TTxiTIGwuM5PTigCrLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/ AGzzNkWzy9u7
Hz5z0z6f1pJbuKJwm4M+5VKqwyuSACRnpyPzqXzE8zy9678btueceuKAKS2T rNygdPNMmTO4
6tu+5jHH64qZ0nN6kipGY1UrkuQcEqScY9vWpfPh87yfNj83+5uG716UGUC4 WEq2WQuG4xwQ
CP1FAFRbJ1m5QOnmmTJncdW3fcxjj9cVE2nzOjZjgDMJhkMTgv0PT8Pp+VaH nw+d5Pmx+b/c
3Dd69KFnhddySxsOOQwPU4H68UAVFsnWblA6eaZMmdx1bd9zGOP1xQ9tOWnZ Y4d0kyOCXIJV
ccH5f9n9T+Nvz4fO8nzY/N/ubhu9elAnhZwgljLEldoYZyOo/CgCNY5o7iQp 5ZSRw5Yk5HAG
Md+nXPf25sVCl3bvM0KzRmRTtKbuc/SpqAKD205adljh3STI4JcglVxwfl/2 f1P4tlspy5Kb
OJRICZWAb5s42jgfXnOM9TxdE8LOEEsZYkrtDDOR1H4UefD53k+bH5v9zcN3 r0oAz20+Z0bM
cAZhMMhicF+h6fh9PyqVbJ1m5QOnmmTJncdW3fcxjj9cVbWeF13JLGw45DA9 TgfrxR58PneT
5sfm/wBzcN3r0oAb9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd8Yz+XFR/a7b zPL+0Rb87du8
Zz6YqN75FuDD5UpIkWPIXjJGf0HWgCBI3mu7kCIKhmRjIwIJCheBxyMqe/f8 yWynLkps4lEg
JlYBvmzjaOB9ec4z1PF3z4f+esf39n3h970+vtSNcwLL5TTxiTIGwuM5PTig Ct9lmafJSNV8
zdlZWIxnP3CMZPr689aPsszT5KRqvmbsrKxGM5+4RjJ9fXnrVrz4fO8nzY/N /ubhu9elJ9pg
DBfPj3FtgG8ZLen15FAFeSzke5LiQCNnVyOeo29v+Af+PH05X7PNjycR+V5v mb9x3ff3424/
Dr7+1WBPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3Dd69KAIYIpo7udzHFtlf O4Od2AoAGMe3
r3qKW1nKeWiwsqzecrMTknfux046kZ5+nPFtZ4XXcksbDjkMD1OB+vFHnw+d 5Pmx+b/c3Dd6
9KAKv2SU3E0x25MgdF8xirYAGGGMDpnPODj05RbJ1m5QOnmmTJncdW3fcxjj 9cVMLweayNDI
qo4jLnbjJxjvnnI7d6l8+HzvJ82Pzf7m4bvXpQBCqXIvHl8uLYwVP9YcgAnn G336VY8tN27Y
uc7s474xn8uKrvqFutwsCuruTggOvynOO5/QZND3yLcGHypSRIseQvGSM/oO tAFqq6xzR3Eh
TyykjhyxJyOAMY79Oue/tzYqFLu3eZoVmjMinaU3c5+lAEDR778xgP5ZIlky hwWXGOff5Tx/
c9zUaRvNd3IEQVDMjGRgQSFC8DjkZU9+/wCdtru2XduuIhtO1suOD6H8j+VO E8LOEEsZYkrt
DDOR1H4UAVFsnWblA6eaZMmdx1bd9zGOP1xVn7NH5m/dLnOcec+Pyzj8Kd58 PneT5sfm/wBz
cN3r0pv2u28zy/tEW/O3bvGc+mKAJPLTdu2LnO7OO+MZ/Liqv2eb7Z9oxH9/ GzccbcY3dPv9
vpx70575FuDD5UpIkWPIXjJGf0HWpvPh/wCesf39n3h970+vtQBV+yzNPkpG q+ZuysrEYzn7
hGMn19eetJLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tni01zAsvlNPGJMgbC4zk9 OKbLdxROE3Bn
3KpVWGVyQASM9OR+dAC+W/2zzNkWzy9u7Hz5z0z6f1qv9lmafJSNV8zdlZWI xnP3CMZPr689
aueYnmeXvXfjdtzzj1xTGuYFl8pp4xJkDYXGcnpxQAxY5o7iQp5ZSRw5Yk5H AGMd+nXPf25b
BFNHdzuY4tsr53BzuwFAAxj29e9SJd27zNCs0ZkU7Sm7nP0pftMAYL58e4ts A3jJb0+vIoAj
dJzepIqRmNVK5LkHBKknGPb1qF7actOyxw7pJkcEuQSq44Py/wCz+p/G2J4z OYQylwMkBhkd
Oo696BPCzhBLGWJK7QwzkdR+FAFCVJPMW2EYYLOJQ5Ru77jzjAwCecnpjHNa Plpu3bFzndnH
fGM/lxTHuYEZleeNWQZYFwCB7/mPzqJ75FuDD5UpIkWPIXjJGf0HWgCSFG8y WWQYZztA9FGc
f1P447UnktJMJJWACH5FTIPXue/QcdPrwae8u2aOMDJfJPPQDv8AmQPxpUlj kZlVgWQ4Ze4+
ooAfRRRQAUUUUANf7pqP/P8An/P/ANeR/umo/wDP+f8AP/1wBr/dP+f8/wCf xjqR/un/AD/n
/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/dP8AvH+dOoGXKg8lo5jJ EwIc/Or5J69j
26njp9OTUjyxxsqswDOcKvc/QUjy7Zo4wMl8k89AO/5kD8aYiv8AZ5vtn2jE f38bNxxtxjd0
+/2+nHvTfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVrz4f8AnrH9/Z94fe9Pr7Uj XMCy+U08YkyB
sLjOT04oAqy2s5Ty0WFlWbzlZick792OnHUjPP054s+W/wBs8zZFs8vbux8+ c9M+n9aSW7ii
cJuDPuVSqsMrkgAkZ6cj86l8xPM8veu/G7bnnHrigCktk6zcoHTzTJkzuOrb vuYxx+uKmdJz
epIqRmNVK5LkHBKknGPb1qRrmBZfKaeMSZA2FxnJ6cUpnhEhjMse8Yyu4ZGc Y4/EfnQBUWyd
ZuUDp5pkyZ3HVt33MY4/XFRNp8zo2Y4AzCYZDE4L9D0/D6flV6O5jeVoydjq 5QKxGWwAcjnn
ginefD53k+bH5v8Ac3Dd69KAKi2TrNygdPNMmTO46tu+5jHH64oe2nLTsscO 6SZHBLkEquOD
8v8As/qfxtrPC67kljYcchgepwP14o8+HzvJ82Pzf7m4bvXpQBGsc0dxIU8s pI4csScjgDGO
/Trnv7c2KYkscjMqsCyHDL3H1FPoAoPbTlp2WOHdJMjglyCVXHB+X/Z/U/i2 WynLkps4lEgJ
lYBvmzjaOB9ec4z1PGjRQBltp8zo2Y4AzCYZDE4L9D0/D6flUq2TrNygdPNM mTO46tu+5jHH
64q/RQBD9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd8Yz+XFOooApT205aTyv LKvKkvzEg5Xb
8vT/AGev4Y70n2WZp8lI1XzN2VlYjGc/cIxk+vrz1q9RQBQWydZuUDp5pkyZ 3HVt33MY4/XF
SwRTR3c7mOLbK+dwc7sBQAMY9vXvVqigCg9tOWnZY4d0kyOCXIJVccH5f9n9 T+LZbKcuSmzi
USAmVgG+bONo4H15zjPU8aNFAGW2nzOjZjgDMJhkMTgv0PT8Pp+VSrZOs3KB 080yZM7jq277
mMcfrir9FAFH7JKbiaY7cmQOi+YxVsADDDGB0znnBx6cotk6zcoHTzTJkzuO rbvuYxx+uKv0
UAVVS5F48vlxbGCp/rDkAE842+/SrHlpu3bFzndnHfGM/lxTqKACq6xzR3Eh TyykjhyxJyOA
MY79Oue/tzYooApNHvvzGA/lkiWTKHBZcY59/lPH9z3NRpG813cgRBUMyMZG BBIULwOORlT3
7/no0UAUFsnWblA6eaZMmdx1bd9zGOP1xVn7NH5m/dLnOcec+Pyzj8KmooAb 5abt2xc53Zx3
xjP5cVV+zzfbPtGI/v42bjjbjG7p9/t9OPerlFAFH7LM0+Skar5m7KysRjOf uEYyfX1560kt
rOU8tFhZVm85WYnJO/djpx1Izz9OeL9FAEPlv9s8zZFs8vbux8+c9M+n9ar/ AGWZp8lI1XzN
2VlYjGc/cIxk+vrz1q9RQBXWOaO4kKeWUkcOWJORwBjHfp1z39uWwRTR3c7m OLbK+dwc7sBQ
AMY9vXvVqigCs6Tm9SRUjMaqVyXIOCVJOMe3rUL205adljh3STI4JcglVxwf l/2f1P436KAM
yVJPMW2EYYLOJQ5Ru77jzjAwCecnpjHNaPlpu3bFzndnHfGM/lxTqKAIYUbz JZZBhnO0D0UZ
x/U/jjtSeS0kwklYAIfkVMg9e579Bx0+vBqeigAooooAKKKKAGv901H/AJ/z /n/68j/dNR/5
/wA/5/8ArgDX+6f8/wCf8/jHUj/dP+f8/wCfxjpDK131T8f6UUXfVPx/pRQI nj+6f94/zp1N
j+6f94/zp1AyXyWjmMkTAhz86vknr2PbqeOn05NLCjeZLLIMM52geijOP6n8 cdqmopiKf2eb
7Z9oxH9/GzccbcY3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561eooAo S2s5Ty0WFlWb
zlZick792OnHUjPP054s+W/2zzNkWzy9u7Hz5z0z6f1qaigCj9lmafJSNV8z dlZWIxnP3CMZ
Pr689aesEisIzHC8YlMgdiSQSxPC4684zn39qt0UAUHtpy07LHDukmRwS5BK rjg/L/s/qfxF
snWblA6eaZMmdx1bd9zGOP1xV+igDLbT5nRsxwBmEwyGJwX6Hp+H0/Kny2U5 clNnEokBMrAN
82cbRwPrznGep40aKAIPJaSYSSsAEPyKmQevc9+g46fXg1PRRQAUUUUAFFFF ABRRRQAUUUUA
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRR
RQAUUUUAFFFFABRRRQA1/umo/wDP+f8AP/15H+6aj/z/AJ/z/wDXAGv90/5/ z/n8Y6kf7p/z
/n/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/dP+8f506gZcooopiCi iigAooooAKKK
KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigA
ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAGv 93HqRVUzIDhi
oPu3/wBerUhAXJOACMk/WqDGBnVmKHb70AE0hM8ABwrE5wevBqWq8zh7qAhg xy2cH2NWKQyt
d9U/H+lFF31T8f6UUCJ4/un/AHj/ADp1Nj+6f94/zp1Ax7y7BkngAEkk1Bdz uLN3QlSVyCCc
jNLMYnyrOvQd+nFQ3bp9jdVdSQgHX0oEaGT6n/P+f89zJ9T/AJ/z/nun+f8A P+f/AK5/n/P+
f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuALk+p/wA/5/z3 Mn1P+f8AP+e6
f5/z/n/65/n/AD/n/wCuALk+p/z/AJ/z3Mn1P+f8/wCe6f5/z/n/AOuf5/z/ AJ/+uALk+p/z
/n/PcyfU/wCf8/57p/n/AD/n/wCuf5/z/n/64AuT6n/P+f8APcyfU/5/z/nu n+f8/wCf/rn+
f8/5/wDrgC5Pqf8AP+f89zJ9T/n/AD/nun+f8/5/+uf5/wA/5/8ArgC5Pqf8 /wCf89zJ9T/n
/P8Anun+f8/5/wDrn+f8/wCf/rgC5Pqf8/5/z3Mn1P8An/P+e6f5/wA/5/8A rn+f8/5/+uAL
k+p/z/n/AD3Mn1P+f8/57p/n/P8An/65/n/P+f8A64AuT6n/AD/n/PcyfU/5 /wA/57p/n/P+
f/rn+f8AP+f/AK4AuT6n/P8An/PcyfU/5/z/AJ7p/n/P+f8A65/n/P8An/64 AuT6n/P+f89z
J9T/AJ/z/nun+f8AP+f/AK5/n/P+f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/ AJ/+uf5/z/n/
AOuALk+p/wA/5/z3Mn1P+f8AP+e6f5/z/n/65/n/AD/n/wCuALk+p/z/AJ/z 3Mn1P+f8/wCe
6f5/z/n/AOuf5/z/AJ/+uALk+p/z/n/PcyfU/wCf8/57p/n/AD/n/wCuf5/z /n/64AuT6n/P
+f8APcyfU/5/z/nun+f8/wCf/rn+f8/5/wDrgC5Pqf8AP+f89zJ9T/n/AD/n un+f8/5/+uf5
/wA/5/8ArgC5Pqf8/wCf89zJ9T/n/P8Anun+f8/5/wDrn+f8/wCf/rgC5Pqf 8/5/z3Mn1P8A
n/P+e6f5/wA/5/8Arn+f8/5/+uALk+p/z/n/AD3Mn1P+f8/57p/n/P8An/65 /n/P+f8A64Au
T6n/AD/n/PcyfU/5/wA/57p/n/P+f/rn+f8AP+f/AK4AuT6n/P8An/PcyfU/ 5/z/AJ7p/n/P
+f8A65/n/P8An/64AuT6n/P+f89zJ9T/AJ/z/nun+f8AP+f/AK5/n/P+f/rg C5Pqf8/5/wA9
zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuAGTxyeo7/AOf8/rE0+1lU8FunJ/xq QkDknABySf8A
P+f51SYXdWdlIXoM8E0AFy5eWGNuUYncp5B4pfs8H/PGP/vkVHK6tdW+1geW 6fQ1YoGMWGJG
DLEikdwoFPoooArXfVPx/pRRd9U/H+lFAidFXYCQckn+Ijufel2r/dP/AH03 +NRThTaEO4Rc
nLN0+8eD7dqqxyKgCLJHBDlv3sQCq5+XGM5Hc/8AfNAy39ktv+fdP1/xo+yW 3/Pun6/41VW7
cIBKwSZnjwh4ODtzgH3LUJNJ5Fu01x5YkTcZMKMHAwOeO5P4fhQIv4Hof++2 /wAaaVzJjLAb
Qcbz6n3qpDNM14VZ0xuYGPPIAzg4xkduScc+4q1MAQ4Zyg8vlgcY5bnNAC7f 9p/++zRt/wBp
/wDvs1neZ5SEW5twpYbpowEUcHgnkZ4H/fVPE055M3QIPlAIO5yuckc8YPp+ FAy9t/2n/wC+
zRt/2n/77NZ893IkWRIFaPf99gokwxAHTk8c4x1/JZ2ma3k+dn81pYwmBxgN jGBnPyigC/t/
2n/77NG3/af/AL7NUjNiX5bgGMqu6b5eB8/fGOoA/wDr1IkxN2qed5ikDAQq eMZywxkfUcdP
xALO3/af/vs0bf8Aaf8A77NNkIKyKzbF2csDgjrzmqkTrErvF5BRCGd4UADD nI78jr+lAF3b
/tP/AN9mjb/tP/32apPJcKJXaQq0cQk2ALjJLHB47YA4oEhihlAlIcytwSoE eWJBJwcAj1z1
FAF3b/tP/wB9mjb/ALT/APfZqlHcu8SMZRzkOyjIUBiN2ffH074wDV+gBu3/ AGn/AO+zRt/2
n/77NOooAbt/2n/77NG3/af/AL7NOooAbt/2n/77NG3/AGn/AO+zTqKAG7f9 p/8Avs0bf9p/
++zTqKAG7f8Aaf8A77NG3/af/vs06igBu3/af/vs0bf9p/8Avs06igBu3/af /vs0bf8Aaf8A
77NOooAbt/2n/wC+zRt/2n/77NOooAbt/wBp/wDvs0bf9p/++zTqKAG7f9p/ ++zRt/2n/wC+
zTqKAG7f9p/++zRt/wBp/wDvs06igBu3/af/AL7NG3/af/vs06igBu3/AGn/ AO+zRt/2n/77
NOooAbt/2n/77NG3/af/AL7NOooAbt/2n/77NG3/AGn/AO+zTqKAG7f9p/8A vs0bf9p/++zT
qKAG7f8Aaf8A77NG3/af/vs06igBu3/af/vs0bf9p/8Avs06igBu3/af/vs0 bf8Aaf8A77NO
ooAY8SupV9zA9QWJqP7Hb/8APJanooAhW1gRgyxhSO44qTyx6t/30adRQA3y x6t/30aPLHq3
/fRp1FAFW6UKUxnv1JNFLd9U/H+lFAiXzVQbWV8gnoAR1J9aPtEf92T/AL5H +NV7i+S2cLIW
ywJG1M8ZI9R6VF/a0PrJ/wB+x/8AFVXK2F0XftEf92T/AL5H+NH2iP8Auyf9 8j/Gqf8Aa0Pr
J/37H/xVH9qw+sn/AH7H/wAVRyvsF0XPtEf92T/vkf400zrvJ2PjAA4+v+NV f7Vh9ZP+/Y/+
Ko/tSH1k/wC/Y/8AiqOV9gui19oX+4/5UfaF/uP+VVv7Uh9X/wC/Y/8AiqP7 Uh9X/wC/Y/8A
iqOVhdFn7Qv9x/yo+0L/AHH/ACqt/acXq/8A37H/AMVS/wBpxer/APfsf/FU crC6LH2hf7j/
AJUfaF/uP+VV/wC0ovV/+/Y/+Ko/tKL1f/v2P/iqOVhdE4nG8tsfBAHT60PK jjDRuRkHp3By
Kg/tGL1f/v2P/iqX+0YvV/8Av2P/AIqjlYXRP9oX+4/5UfaF/uP+VQf2jF6v /wB+x/8AFUf2
hH6v/wB+x/8AFUcrC6J/tC/3H/Kj7Qv9x/yqH+0I/V/+/Y/+Ko+3x+rf9+// ALKjlYXRN9oX
+4/5UfaF/uP+VQ/b4/Vv+/f/ANlR9uj/ALzf9+//ALKjlYXRN9oX+4/5UfaF /uP+VRfbo/7z
f9+//sqPtsf95v8Av3/9lRysLol+0L/cf8qPtC/3H/Kovtqf3m/79/8A2VL9 tT+83/fv/wCy
o5WF0SfaF/uP+VH2hf7j/lUf2xP7zf8Afv8A+yo+2J/eb/v3/wDZUcrC6JPt C/3H/Kj7Qv8A
cf8AKo/taf3m/wC/f/2VL9rT+83/AH7/APsqOVhdD/tC/wBx/wAqPtC/3H/K mfa0/vN/37/+
yo+1L/eP/fv/AOyo5WF0P+0L/cf8qPtC/wBx/wAqb9qX+8f+/f8A9lR9pX+8 f+/f/wBlRysL
od9oX+4/5UfaF/uP+VN+0r/eP/fv/wCyo+0L/eP/AH7/APsqOVhdDvtC/wBx /wAqPtC/3H/K
k+0L/eP/AHx/9lR56/3j/wB8f/Xo5WF0L9oX+4/5UfaF/uP+VJ54/vH/AL4/ +vS+eP7x/wC+
P/r0crC6D7Qv9x/yo+0L/cf8qPOH98/98f8A16POH98/98f/AF6OVhdB9oX+ 4/5UfaF/uP8A
lS+aP75/74/+vR5o/v8A/jn/ANejlYXQn2hf7j/lR9oX+4/5UvmD+/8A+Of/ AF6PM/2//HP/
AK9HKxXQn2hf7j/lR9oX+4/5U7zP9v8A8c/+vRv/ANv/AMc/+vRysd0N+0L/ AHH/ACo+0L/c
f8qdv/2//HP/AK9Lu/2//HP/AK9HKxXQz7Qv9x/yo+0L/cf8qfu/2/8Axz/6 9Gf9v/xz/wCv
RysLoZ9oX+4/5UfaF/uP+VPyf7//AI5/9elyf7//AI5/9ejlYXRH9oX+4/5U faF/uP8AlUnP
9/8A8c/+vRz/AHx/3x/9elysd0R/aF/uP+VH2hf7j/lUnP8AfH/fH/16Of74 /wC+P/r0crC6
I/tC/wBx/wAqPtC/3H/KpOf74/74/wDr0c/3x/3x/wDXo5WF0R/aF/uP+VH2 hf7j/lUnP98f
98f/AF6Of74/74/+vRysLoj+0L/cf8qPtC/3H/KpOf74/wC+P/r0c/3x/wB8 f/XoswuitO/m
bcKwxnqKKs8/3x/3x/8AXooswujKvv8AkJWv4f8AobVr/P521U7t95Pl745x 9Kx78hdRtiSA
BySf99qtXN2EmVoJbdgzEZ3cqTnk+2DVuLlZIV7DtSZjYzq6xBkZR+7z69+K yYIopI5GeR1K
DcQqA8ZA9R61qX8tqNLMMEyOwIJ55Y55J96yI5NiSrjO9dv05B/pVx20JYqw SMgZQGBOMKQT
1x061KLVvLboXDKBtcEYIbOSPpTkvdsPl4kHCjCyYUYIOQMcHjr6k0Ne5VlW MYYrncc7gM/e
wBk89fYd+arUWhC0TogdsAHoNwz+XWp4rQP8uX3iPzGCLuPJGAB9Dn8famTT rJEsaq2AersG
IHoDgYHtStMpjJHLPGI2HpgjB/ID8c0agSx2QdypMi8gDemDnKjkZ/2v5VCL aUkgBTg44ccn
0HPJ+lOguzBGFVASDuBJ91P/ALL+tPju/KQpGJVUHcoEmOcDrgcjj2pahoQv E8YUuuNwyOeo
9ae9rKm7co+XrhgenX8u/pTJZPMcNjGFVfyAH9Kma63OzbOrSN1/vDH6U9QE itncjlQCCchg
ccE4PPHTvSw2zPKgfAVnCnDDJ5xx6/WpDe5TbtfBPIL8AYIIUY46+/QUxLhF aNvLYmI/L83b
dnB49zS1DQb9nkyBhT/tBhj8849PzFPhtXeZUcBVLAE7gM/T1/D2pILkxIEA YdclWwecdD/w
GnrdDzFd0Ztj71+fnt1JBz0HpRqGhFEiucMzDsAq7iTQImMjIpVtvVs8fXNL DIiBgyMS3GVb
BA79jRHIqM42ko4wRnnGc9ce3pQA8wbIC7fe3YHzAY6c+/XtSJGrITvO4AnG OAPc/wCeoolm
81VXbgKeOe2AB/KlEkfkhCjZ65DYBPYkYo1AWKAyRlgQMZ6kAHBHfPvSLBIw XCg7sYGRnnpx
2pY5gsXlspKnOcHB5x/8TUi3ZATIc7dvG/5cDHb8KNQ0IzBIB90H/dIOfypR F95SRvC7htYE
HHXp7c/hSpPtUDB4XbkHB+9uzTjMpZnxg7doHUnPUk9+Cf0o1AgpaSlpiFpa SloAWiiikAtL
SUtAC0UUUALS0lLQAtLSUtABS0lLQAtLSUtABS0lLQAtLSUtIApaSloAWlpK WgBaKKKAFooo
oAKKKKACiiikAUUUUDFooooAKKKKAKs+npdMskkjKRkAKvbcai/saH/ntJ/3 yK0F+4Pqf/Qj
S1nzNGlkZn9lQ+f5Ylk+4WJwPUD+tP8A7Hh/57Sf98irQ/4/f+2J/wDQhTLu aSPCIhJkGFbP
Q0czCyKs2mQwwvJ5sh2jONo5qQ6PCCR5z8f7IqW4jEWnsg6KuKtv99vrRzML Iz/7Ih/57P8A
98imR6ZC+/8AeuArlfujngf41asAFs4wGDDnkfU0626Tf9dm/kKOZhZFb+yY v+ez/wDfI/xp
f7Ji/wCez/8AfI/xpUyq+aHcu05TBYkEbyOnsOePT60kV1cyJuEI+dN6DIHc f7XPB9unvRzM
LIP7Ki/57P8A98j/ABo/sqL/AJ7P/wB8j/GpIZpJnCq6YUAsTGRnkjABPGNv vUX2mcxwOfLD
yoCOpAyyDpnnqf8APU5mFkL/AGXF/wA9n/75H+NL/ZcX/PZ/++R/jSrJM14s e9QUDBsKcN9w
9M8H5vemwXMjQo/y7AY0K8kksF5zn/a9+lHMwshf7Mi/57P/AN8j/Gj+zI/+ ez/98j/Gn2s8
r+V5pQ+bH5g2qRt6cdTnr+lWqOZhZFP+zI/+ez/98j/Gj+zY/wDns3/fP/16 uUUczCyKf9mx
/wDPZv8Avn/69H9nR/8APVv++f8A69XKKOZhZFT+zo/+erf98/8A16P7Pj/5 6t/3z/8AXq3R
RzMLIqf2en/PVv8Avn/69L/Z6f8APVv++f8A69WqKOZhZFX7An/PVv8Avn/6 9H2BP+erf98/
/Xq1RRzMLIq/YU/56t/3z/8AXpfsKf8APVv++f8A69WaKOZhZFb7En/PVv8A vn/69H2Jf+ep
/wC+f/r1Zoo5mFkV/sS/89T/AN8//Xo+xr/z1P8A3x/9erFFHMwsiv8AY1/5 6n/vj/69H2Rf
+ep/74/+vViijmYWRB9kX/nqf++P/r0fZV/56n/vj/69T0UczCyIPso/56n/ AL4/+vS/ZR/z
0P8A3x/9epqKOZhZFbyR5/l7z9wsTt9wPX3p/wBmH/PQ/wDfH/16B/x+/wDb E/8AoQqtdswu
JNvmfLGpVlfCoSW5YZ5HTseBRzMVkWvs4/56H/vj/wCvR9nH/PT/AMc/+vUL XE32llWMeWrq
hJx3x3z79MH9eEW4mLCNtqSswG0ofk4J65w33e2P6UczCyJ/IH/PT/xz/wCv R5H/AE0/8c/+
vUAu5PKuDhcxRkjjqQWH5fLSieZgP9WpeVo1OCcY3cn8sfr7UczCyJ/I/wCm n/jn/wBejyf+
mn/jn/16gNxOJyuwFEZUZuACSBzy3HXpg/WrdLmY7IiaPapYycAZ+5/9eiNC 8SOXxuUNjb0y
M+tPl/1T/wC6abEA1rEDnBiUcHH8Ip8zFZC+V/00/wDHP/r0eX/00/8AHP8A 69Uop5ktgwYF
Y7dZW35ZmJyTznjp71LdB3uIkTJGxiR5rJ3XuPrRzMLIseWf+en/AI5/9el2 H/np/wCOf/Xq
sJpEJ4UJG6RleWJJ287v+Benb3qvE8j2cIBUJG0KkYyT9w5znjr6dqOZhZGj sP8Az0/8c/8A
r0bD/wA9B/3x/wDXqkt5cGNXMSgSBSgYgdWAxwST97rgfTmry52jcQTjkgYp czHZEcWZYg+8
AEnA2ehI9fan7D/z0H/fH/16jtP+PWP/AIF/6Eaiilk+yWoUjfKqjc3P8Oc+ /SjmYrIs7D/z
0H/fH/16Nh/56D/vj/69V4Z5ZpCgKLs++SpO75mHHPH3ffrUMl1M+FX5VkKt G+3HG9R65PDe
3+BzMdkXth/56D/vj/69Gw/89B/3x/8AXqsssxuHhVkDZJLFSRwqds8fe9ab FdyyL5uEEe5F
2YOfmC98/wC16dqLsLIt7D/z0H/fH/16ZISmz5wSzhR8nqfrUtQ3HWH/AK7J /Oi7CyJNh/56
D/vj/wCvRTqKLsLIjC3DD92se0E/eLZ6n0FHl3npD+bf4VMJhBYtKRnaW4zj PzGslry5YGX7
QVyT8oHGeMAe3T/6+fmLDtctuJopfNka3UlCvzMQMZHPT/Oab9pb/n4s/wDv 4f8ACq9/c/a7
FJCAG2MDg8Z3J/n/ADmserjC6Ibsbs0pliaM3FmAwxkSH/CpXuW3tma0U56G Q5H6VztS3f8A
x9zf9dG/nVezQcxt/aW/5+LP/v4f8KRJTGrET2mHctkyHGcDjp/nNYFSt/x6 R/8A
Re: A Diagnostic Message for the Valid Schema [message #21174 is a reply to message #21114] Mon, 05 May 2003 10:43 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: merks.ca.ibm.com

--------------C068699DAC14639E7F4EDFD9
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit


--------------C068699DAC14639E7F4EDFD9
Content-Type: multipart/related;
boundary="------------9B290DEBE186F321FA04206E"


--------------9B290DEBE186F321FA04206E
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<body bgcolor="#FFFFFF">
Pae,
<p>XSD only is tested to work with the version of Xerces in Eclipse.
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE=CITE>&nbsp;<font size=-1>Ed,</font> <font size=-1>I also
tested with XSD v1.1.0 + EMF v1.1.0 with xerces v2.2.1 and v2.4.0, butam
still having an exception. However, the exceptions are not same as previousone.
The exceptions and the associated code snippet are as follows:</font> <font size=-1>//
### Exception with xerces v2.2.1 ###java.lang.NullPointerException</font>
<br><font size=-1>&nbsp;at org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263) </font>
<br><font size=-1>&nbsp;at org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDecl(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.parsers.XMLParser.parse(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
Source)</font>
<br><font size=-1>&nbsp;at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)</font >
<br><font size=-1>&nbsp;at org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)</font >
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDDemo2.java:87) </font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101) </font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) </font>
<br><font size=-1>java.lang.NullPointerException</font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104) </font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) </font>
<font size=-1>// ### Exception with xerces v2.4.0 ###java.lang.NullPointerException</font>
<br><font size=-1>&nbsp;at org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263) </font>
<br><font size=-1>&nbsp;at org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDecl(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.parsers.XMLParser.parse(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
Source)</font>
<br><font size=-1>&nbsp;at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)</font >
<br><font size=-1>&nbsp;at org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)</font >
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDDemo2.java:87) </font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101) </font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) </font>
<br><font size=-1>java.lang.NullPointerException</font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104) </font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) </font>
<br>&nbsp;<font size=-1>// ### Code Snippet ###/*</font>
<br><font size=-1>&nbsp;* EclipseXSDDemo2.java</font>
<br><font size=-1>&nbsp;*</font>
<br><font size=-1>&nbsp;* Created on May 2, 2003, 11:13 PM</font>
<br><font size=-1>&nbsp;*</font>
<br><font size=-1>&nbsp;*/</font> <font size=-1>package org.paechoi.xsd.test;</font>
<font size=-1>// W3C/DOM</font>
<br><font size=-1>import&nbsp; javax.xml.parsers.DocumentBuilderFactory;</font>
<br><font size=-1>import&nbsp; javax.xml.parsers.DocumentBuilder;</font>
<br><font size=-1>import&nbsp; org.w3c.dom.Document;</font>
<br><font size=-1>import&nbsp; org.w3c.dom.Element;</font>
<br><font size=-1>// Eclipse/XSD</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.util.XSDParser;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDFactory;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDSchema;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.impl.XSDSchemaImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.util.XSDResourceImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.util.XSDResourceFactoryImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDDiagnostic;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.Resource;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.ResourceSet;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.common.util.EList;</font>
<br><font size=-1>import&nbsp; java.io.File;</font>
<br><font size=-1>import&nbsp; java.io.FileOutputStream;</font>
<br><font size=-1>import&nbsp; java.io.PrintStream;</font>
<br><font size=-1>import&nbsp; java.io.FileNotFoundException;</font>
<br><font size=-1>/**</font>
<br><font size=-1>&nbsp;*</font>
<br><font size=-1>&nbsp;* @author&nbsp; pae</font>
<br><font size=-1>&nbsp;*/</font>
<br><font size=-1>public class EclipseXSDDemo2 {</font>
<br><font size=-1>//&nbsp;&nbsp;&nbsp; private&nbsp;&nbsp;&nbsp;&nbsp;
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp; xmlDOM = null;</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&am p;nbsp;&nbsp;&nbsp;
XSDParser&nbsp;&nbsp; xsdParser = null;</font>&nbsp;<font size=-1>&nbsp;&nbsp;&nbsp;
// instance initializer</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; {</font>
<br><font size=-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp; Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd",
new XSDResourceFactoryImpl());</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** Creates a new instance of EclipseXSDDemo2
*/</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; public EclipseXSDDemo2() {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; super();</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
// Redirect the System.err</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; try
{</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
System.setErr(new PrintStream(new FileOutputStream("errors.log", true)));</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; }</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; catch
(FileNotFoundException fileNotFoundException) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; }</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String
uri) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create
a factory object for creating DOM parsers</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilderFactory&nbsp;
factory = DocumentBuilderFactory.newInstance();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;
builder = null;</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = null;</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Build a
new DOM</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// Now use the factory to create a DOM parser (a.k.a. a DocumentBuilder)</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
factory.setNamespaceAware(true);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
builder = factory.newDocumentBuilder();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = builder.parse(uri);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch (Exception
ex) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ex.printStackTrace();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return null;</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; return xmlDoc;</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM using XSDParser
*/</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private Document openXMLDOMUsingXSDParser(String
uri) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document&nbsp;&nbsp;&nbsp;
xmlDoc = null;</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Build a
new DOM</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xsdParser = new XSDParser();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xsdParser.parse(uri);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = xsdParser.getDocument();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch (Exception
ex) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ex.printStackTrace();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return null;</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; return xmlDoc;</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** doIt */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private void doIt() {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Document xmlDOM = openXMLDOMUsingXSDParser("<a href="http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl/</a>");</font>
<br><font size=-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Document xmlDOM = openXMLDOMUsingXSDParser("./wsdl.xsd");</font>&nbsp; <font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Element rootElement = xmlDOM.getDocumentElement();</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
XSDSchema xsdSchema = XSDFactory.eINSTANCE.createXSDSchema();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xsdSchema.setDocument(xmlDOM);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xsdSchema.setElement(rootElement);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xsdSchema.updateElement();</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
System.out.println("\n\n");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
XSDResourceImpl.serialize(System.out, xsdSchema.getElement());</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION >>>>>>>>>>>>>>>>>>>>>>>>>>");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xsdSchema.validate();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
//EList eList = xsdMainSchema.getDiagnostics();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
EList eList = xsdSchema.getAllDiagnostics();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
for (int i = 0; i &lt; eList.size(); i++) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
XSDDiagnostic xsdDiagnostic = (XSDDiagnostic)eList.get(i);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
System.out.println(i + ": At line #" + xsdDiagnostic.getLine() + "(" +
xsdDiagnostic.getColumn() + "), " + xsdDiagnostic.getMessage() + "; Node
= [" + xsdDiagnostic.getNode().getNodeName() + "]");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
System.out.println(" &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; ");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch (Exception
ex) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ex.printStackTrace();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** main - the main entry */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; public static void main(String[] args)
{</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; EclipseXSDDemo2
app = new EclipseXSDDemo2();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; app.doIt();</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<br><font size=-1>}Regards,</font>&nbsp; <font size=-1>Pae</font>
<blockquote dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed
Merks" &lt;<a href="mailto:merks@ca.ibm.com">merks@ca.ibm.com</a>> wrote
in message <a href="news:3EB4F504.6527C9F2@ca.ibm.com">news:3EB4F504.6527C9F2@ca.ibm.com</a>...Pae,
<p>No, the standalone version worked too.&nbsp; What exception did you
see?
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE="CITE">&nbsp;<font size=-1>Ed,</font> <font size=-1>That
surely helped with v1.0.2. And THANK you for that. One quick question is:Do
you also have an exception thrown when running with v1.1.0 as standalone.</font>
<font size=-1>Regards,</font>&nbsp; <font size=-1>Pae</font>
<blockquote dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed
Merks" &lt;<a href="mailto:merks@ca.ibm.com">merks@ca.ibm.com</a>> wrote
in message <a href="news:3EB3A206.9781C42@ca.ibm.com">news:3EB3A206.9781C42@ca.ibm.com</a>...Pae,
<p>The XSD model expects a DOM that's namespace aware, so <font color="#3333FF">this</font>
addition to your sample code will improve your result:
<p>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String uri) {
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create a factory object
for creating DOM parsers
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilderFactory&nbsp;
factory = DocumentBuilderFactory.newInstance();
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;
builder = null;
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = null;
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#3333FF">&nbsp;&nbsp; factory.setNamespaceAware(true);</font>
<p>Without this, element.getNamespaceURI and element.getLocalName both
return null...
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE="CITE"><style></style>
<font size=-1>Ed,</font> <font size=-1>I
have a sample code that test a DOM of XML Schema with Eclipse/XSD andproducing
two different results.</font> <font size=-1>With v1.0.2, it seems ok except
the diagnostic message we are discussing.With v1.1.0, it throws an exception.Regards,</font>&nbsp;
<font size=-1>Pae</font> <font size=-1>P.S.: The code snippet is as follows:</font>
<font size=-1>// ################## CODE SNIPPET ##################/*</font>
<br><font size=-1>&nbsp;* EclipseXSDDemo1.java</font>
<br><font size=-1>&nbsp;*</font>
<br><font size=-1>&nbsp;* Created on May 2, 2003, 11:13 PM</font>
<br><font size=-1>&nbsp;*/</font> <font size=-1>package org.paechoi.xsd.test;//
W3C/DOM</font>
<br><font size=-1>import&nbsp; javax.xml.parsers.DocumentBuilderFactory;</font>
<br><font size=-1>import&nbsp; javax.xml.parsers.DocumentBuilder;</font>
<br><font size=-1>import&nbsp; org.w3c.dom.Document;</font>
<br><font size=-1>import&nbsp; org.w3c.dom.Element;</font>
<br><font size=-1>// Eclipse/XSD</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDFactory;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDSchema;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.impl.XSDSchemaImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.util.XSDResourceImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.util.XSDResourceFactoryImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDDiagnostic;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.Resource;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.ResourceSet;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.common.util.EList;</font>
<br><font size=-1>import&nbsp; java.io.File;</font>
<br><font size=-1>/**</font>
<br><font size=-1>&nbsp;*</font>
<br><font size=-1>&nbsp;* @author&nbsp; pae</font>
<br><font size=-1>&nbsp;*/</font>
<br><font size=-1>public class EclipseXSDDemo1 {</font>
<br><font size=-1>//&nbsp;&nbsp;&nbsp; private&nbsp;&nbsp;&nbsp;&nbsp;
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp; xmlDOM = null;</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; // instance initializer</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; {</font>
<br><font size=-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp; Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd",
new XSDResourceFactoryImpl());</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** Creates a new instance of EclipseXSDDemo1
*/</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; public EclipseXSDDemo1() {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; super();</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String
uri) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create
a factory object for creating DOM parsers</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilderFactory&nbsp;
factory = DocumentBuilderFactory.newInstance();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;
builder = null;</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = null;</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Build a
new DOM</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// Now use the factory to create a DOM parser (a.k.a. a DocumentBuilder)</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
builder = factory.newDocumentBuilder();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = builder.parse(uri);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch (Exception
ex) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ex.printStackTrace();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return null;</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; return xmlDoc;</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** doIt */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private void doIt() {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document xmlDOM
= openXMLDOM("<a href="http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl/</a>");</font>
<br><font size=-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp; Document
xmlDOM = openXMLDOM("./wsdl.xsd");</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
Element rootElement = xmlDOM.getDocumentElement();</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
XSDSchema xsdSchema = XSDFactory.eINSTANCE.createXSDSchema();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; xsdSchema.setDocument(xmlDOM);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; xsdSchema.setElement(rootElement);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; xsdSchema.updateElement();</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
System.out.println("\n\n");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; XSDResourceImpl.serialize(System.out,
xsdSchema.getElement());</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION >>>>>>>>>>>>>>>>>>>>>>>>>>");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; xsdSchema.validate();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; //EList eList
= xsdMainSchema.getDiagnostics();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; EList eList
= xsdSchema.getAllDiagnostics();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; for (int i
= 0; i &lt; eList.size(); i++) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
XSDDiagnostic xsdDiagnostic = (XSDDiagnostic)eList.get(i);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
System.out.println(i + ": Diagnostic Message = [" + xsdDiagnostic.getMessage()
+ "]");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; System.out.println(" &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; ");</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** main - the main entry */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; public static void main(String[] args)
{</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; EclipseXSDDemo1
app = new EclipseXSDDemo1();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; app.doIt();</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<br><font size=-1>}</font>
<blockquote dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed
Merks" &lt;<a href="mailto:merks@ca.ibm.com">merks@ca.ibm.com</a>> wrote
in message <a href="news:3EB25ED9.AE2CB299@ca.ibm.com">news:3EB25ED9.AE2CB299@ca.ibm.com</a>...Pae,
<p>I'm seeing this result with the just published 1.1.0 driver:
<blockquote><img SRC="cid:part1.3EB64063.DBD15D05@ca.ibm.com" height=411 width=502></blockquote>
The schema isn't valid.
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE="CITE">I have a simple test schema as follows:
<p>&lt;?xml version="1.0" encoding="UTF-8"?>
<br>&lt;!--W3C Schema generated by Pae -->
<br>&lt;xsd:schema xmlns:xsd="<a href="http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchema</a>"
<br>elementFormDefault="qualified">
<br>&nbsp;&lt;xsd:element name="CommonLogin">
<br>&nbsp; &lt;xsd:complexType>
<br>&nbsp;&nbsp; &lt;xsd:sequence>
<br>&nbsp;&nbsp;&nbsp; &lt;xsd:element name="username" ref="usernameRef"/>
<br>&nbsp;&nbsp;&nbsp; &lt;xsd:element name="password" ref="passwordRef"/>
<br>&nbsp;&nbsp; &lt;/xsd:sequence>
<br>&nbsp; &lt;/xsd:complexType>
<br>&nbsp;&lt;/xsd:element>
<br>&nbsp;&lt;xsd:element name="passwordRef" type="xsd:string"/>
<br>&nbsp;&lt;xsd:element name="usernameRef" type="xsd:string"/>
<br>&lt;/xsd:schema>
<p>This is a very simple sample, but it is a valid schema. But when
<br>I use the validate() and getDiagnostics() methods in the XSDSchema
<br>interface it gives me a message as follows:
<p>XSD: The element '#null' is not permitted as constrained by 'XML Schema
';
<br>expecting schema
<p>I do not understand what the message is saying. Any comments?
<p>Pae</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>

</body>
</html>

--------------9B290DEBE186F321FA04206E
Content-Type: image/jpeg
Content-ID: <part1.3EB64063.DBD15D05@ca.ibm.com>
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\nsmailFJ.jpeg"

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCws MGJGSjpQdGZ6
eHJmcG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAq MF40NF7GhHCE
xsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbG xsbGxsb/wAAR
CAGbAfYDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcI CQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS 0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1 dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW 19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcI CQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMz UvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0 dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU 1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDXghR49zbiST/EfU0m23yQ BKcHHG81Ja/6
kf7zfzNVLrfsTY5wGkLRrJsZueoPt6e9NK4FpIYJEDIWKnoQ5/xpfs0Xo3/f Z/xqKy2bmMbM
UZEcZ75zzjt2qMXc+1kYBbgkbYvLyRnJ67sNwDzkdPXikBZ+zRejf99n/Gj7 NF6N/wB9n/Gq
a31w+eI027VYMuTuLsmeD2xnHPpnvS/bZyJnHlhYELMNpy5DODg54zs9+veg C39mi9G/77P+
NH2aL0b/AL7P+NUEup4hIkMQZY2kdycYwZH4yWGPu9ef8b883lxs6FW2H5l7 n2HvyMDv075o
APs0Xo3/AH2f8aPs0Xo3/fZ/xqFriZWhLGMRPt/eKpdSSeFGDx2+YjBz26Uy 3kkmuraaQptk
gZlVVIKglDgnPP6UATyQxIudrH/gZpm2L+43/fw1NP8AcH1rJvJZbecG2Jlk dSWhOSAAPvD0
/r9aQGhti/uN/wB/DTDGBI65bAPHzH0B/rUdntNurLMZt3zFyep+nb6VM/8A r5f94fyFAxvl
j1b/AL6NHlj1b/vo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+ jTqKAG+WPVv+
+jR5Y9W/76NOooAb5Y9W/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igB vlj1b/vo0eWP
Vv8Avo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPV v++jR5Y9W/76
NOooAb5Y9W/76NHlj1b/AL6NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/AL6N Hlj1b/vo06ig
Bvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+jTqKAG+WPVv++jR5Y9W/ 76NOooAb5Y9W
/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/vo0eWPVv8Avo06 igBvlj1b/vo0
eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPVv++jR5Y9W/76NOooAb5Y 9W/76NHlj1b/
AL6NOooAb5Y9W/76NHlj1b/vo06igCvOTEV2MRnOcnP86KS76p+P9KKBF+1/ 1I/3m/majktG
kBVmiZNxYK8W7Gfx96hREIJKqTuPUe9O8uP+4v5U7gWIYnR3d3DFgBwuMYz/ AI0otoBEYhBG
I2OSgQYJ+lNdbaNlVkjDOcKu0ZP0FMcwRyBWtvlyFMmwbQT0Hqeo6DHP1oAm WCFF2pFGo44C
gdDkfrzTPscBn84xIXwMZUfKQScj3yaT/Q/+mH39nb73p9fahfsbruTyGHHI wepwP14oAkaC
FipaKMlCWUlRwSckj8ad5abt2xc53Zx3xjP5cVCVgFwsJgXLIXDbRjggEfqK k8iH/nkn/fIo
ABBCJBIIo94zhtoyM5zz+J/OhIIY5GkSKNXbqwUAn8ah8yw8vzN9tszt3ZXG fTNO/wBD87yf
3Hm/3ON3r0oAklUsoAGeagFuVZmEYDN94jGT9adusgwXNvuLbAMrkt6fXkUM 1ksvlMbcSZA2
ErnJ6cUANW3KZ2RhdxycYGT60j/6+X/eH8hUgFqZzCEiLgZIG3I6dR170f6H 53k/uPN/ucbv
XpQBHRUg+xs4QeQWJK7RjOR1H4U3zLDzPL322/O3blc59MUrANoprz2y3Bh+ ysSJFjyIxjJG
f0HWpf8ARvtPkeSN+0tkx4GBjv369qLAMoqx5EP/ADyT/vkVX8y33f8AHt+7 37PM2rtznGOu
evHT9KLAFFNee2W4MP2ViRIseRGMZIz+g61a8iH/AJ5J/wB8iiwFeipP9D87 yf3Hm/3ON3r0
oH2NnCDyCxJXaMZyOo/CiwEdFSH7GJDGfI3jGV4yM4xx+I/Oj/Q/O8n9x5v9 zjd69KLAR0Us
slpE4TZGz7lUqu3K5IAJHpyPzp4FqZzCEiLgZIG3I6dR170WAjoqQfY2cIPI LEldoxnI6j8K
R2skZlc26sgywJUED3/MfnRYBlFO8yw8zy99tvzt25XOfTFRvPbLcGH7KxIk WPIjGMkZ/Qda
LAOoprzQr5n+hMfLkEZwqck4xjn3H5/WkeeJHKf2fKxAYjCJ8wU4JAznuPrR YB9FN86Hz2iF
kxKvtJCp7c4znHzDt3q15EP/ADyT/vkUWAr0UeZb7v8Aj2/d79nmbV25zjHX PXjp+lNee2W4
MP2ViRIseRGMZIz+g60WAdRTnMEcgVrb5chTJsG0E9B6nqOgxz9aei20jMqp GWQ4ZdoyPqKL
ARUVY8iH/nkn/fIo8iH/AJ5J/wB8iiwFeirHkQ/88k/75FHkQ/8APJP++RRY CvRVjyIf+eSf
98ijyIf+eSf98iiwFeirHkQ/88k/75FHkQ/88k/75FFgK9FWPIh/55J/3yKP Ih/55J/3yKLA
V6KseRD/AM8k/wC+RR5EP/PJP++RRYCvRVjyIf8Ankn/AHyKPIh/55J/3yKL AV6KseRD/wA8
k/75FHkQ/wDPJP8AvkUWAr0VY8iH/nkn/fIo8iH/AJ5J/wB8iiwFeipngh2/ 6pOo/hFQbYv+
eUfPtQMWioJlTz4FCKAScgDrxUb3FsjlWj5Bx90UWGouWiQ676p+P9KKLtFR lAUDrnAooJJ4
/un/AHj/ADp1Nj+6f94/zp1AyXyWjmMkTAhz86vknr2PbqeOn05NOeMyTLuA MSjP3urZ4yMd
vr+HQ055Y42VWYBnOFXufoKDIBMsWDuZSw9MAj/EUxFb7PN9s+0Yj+/jZuON uMbun3+30496
rtp8zo2Y4AzCYZDE4L9D0/D6flWpRQBWdJzepIqRmNVK5LkHBKknGPb1qzVV 70L5n7iU+XII
zjbyTjGOfcfn9akFwPOEbRyKGJVXIGGIycevY9scfSgCP7M/2rOV+z58zb33 /Tpjv67uaiWy
dZuUDp5pkyZ3HVt33MY4/XFWGufnwkMki7gpdAMA5x65474/oanoAqwRTR3c 7mOLbK+dwc7s
BQAMY9vXvUf2WZp8lI1XzN2VlYjGc/cIxk+vrz1qb7WC2FhlZd+wOqgjOcHv kY55Ixx9KkM8
IkMZlj3jGV3DIzjHH4j86AInSc3qSKkZjVSuS5BwSpJxj29aZ9nmx5OI/K83 zN+47vv78bcf
h19/apo7mN5WjJ2OrlArEZbAByOeeCKd58PneT5sfm/3Nw3evSgCo9tOWnZY 4d0kyOCXIJVc
cH5f9n9T+Nn7NH5m/dLnOcec+Pyzj8Kcs8LruSWNhxyGB6nA/Xijz4fO8nzY /N/ubhu9elAD
vLTdu2LnO7OO+MZ/LioHSc3qSKkZjVSuS5BwSpJxj29as1E9zAjMrzxqyDLA uAQPf8x+dAC/
vvtH/LPyNnvu3Z/LGKr/AGebHk4j8rzfM37ju+/vxtx+HX39qsefD53k+bH5 v9zcN3r0oE8L
OEEsZYkrtDDOR1H4UAO8tN27Yuc7s474xn8uKdUfnw+d5Pmx+b/c3Dd69KT7 TAGC+fHuLbAN
4yW9PryKAKq2TrNygdPNMmTO46tu+5jHH64oe2nLTsscO6SZHBLkEquOD8v+ z+p/G358PneT
5sfm/wBzcN3r0pqXdu8zQrNGZFO0pu5z9KAIlgkVhGY4XjEpkDsSSCWJ4XHX nGc+/tSfZ5se
TiPyvN8zfuO77+/G3H4dff2qx58PneT5sfm/3Nw3evSmS3cUThNwZ9yqVVhl ckAEjPTkfnQB
XltZynlosLKs3nKzE5J37sdOOpGefpzxM6Tm9SRUjMaqVyXIOCVJOMe3rVmo IbuKXau4JIxI
EbMN3BIPAPsaAK7205adljh3STI4JcglVxwfl/2f1P4xypJ5i2wjDBZxKHKN 3fcecYGATzk9
MY5q613bLu3XEQ2na2XHB9D+R/KpqAIfs0fmb90uc5x5z4/LOPwqTy03bti5 zuzjvjGfy4qA
Xg81kaGRVRxGXO3GTjHfPOR271L58PneT5sfm/3Nw3evSgCB7aRpXA2eXJKk pYk5BXbxjHP3
eue/tUjxyG9ikATy1RlJLHOSQemP9n170/z4fO8nzY/N/ubhu9elSUAVYLYp eT3EkcYZz8rK
xJ24AweP9kH8fzk+zR+Zv3S5znHnPj8s4/CpqKAKP2N/P3bIs+Zv8/P7zGc7 enp8vXp+VXPL
Tdu2LnO7OO+MZ/LikSWORmVWBZDhl7j6in0ARPGZJl3AGJRn73Vs8ZGO31/D oab5LSTCSVgA
h+RUyD17nv0HHT68Gp6KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKAGyE
Bck4AIyT9az3EMjBmlOR0w4GKvyqrxlXUMD2IzVf7Lb/APPCL/vgf5/z+YBW lZWubfawOCe+
f4aZJYLJIz+cRuOcbP8A69WzbwqMrDGD6hR/n/P5t8uP+4v5UXsXCcoO8SG9 OXU+uaKbdKF2
BQAOen4UUiCxH90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51fJPXse3U8dPp yakKAzK+0ZVS
N2eRkjjH4fpQ8scbKrMAznCr3P0FJ58P/PWP7+z7w+96fX2piG/Zo/M37pc5 zjznx+WcfhR9
mj8zfulznOPOfH5Zx+FK1zAsvlNPGJMgbC4zk9OKbLdxROE3Bn3KpVWGVyQA SM9OR+dAEEti
73ZlDrtLhj6/wH/2mP8Avo+nMphka7WRljUIT8653MuDhSMdOc9eo6ek/mJ5 nl71343bc849
cUxrmBZfKaeMSZA2FxnJ6cUAMSOaJikflmIuX3MTuGTkjHfqecjr3xzYqMzw iQxmWPeMZXcM
jOMcfiPzpsdzG8rRk7HVygViMtgA5HPPBFAEDWsjz+Y0durbw3nICHCg8Dpz kDB5HXp6uWCR
WEZjheMSmQOxJIJYnhcdecZz7+1T+fD53k+bH5v9zcN3r0oWeF13JLGw45DA 9TgfrxQBUe2n
LTsscO6SZHBLkEquOD8v+z+p/EWydZuUDp5pkyZ3HVt33MY4/XFW/Ph87yfN j83+5uG716VJ
QBltp8zo2Y4AzCYZDE4L9D0/D6flT5bKcuSmziUSAmVgG+bONo4H15zjPU8X fPh/56x/f2fe
H3vT6+1Czwuu5JY2HHIYHqcD9eKAJKzJUk8xbYRhgs4lDlG7vuPOMDAJ5yem Mc1fMoFwsJVs
shcNxjggEfqKBPCzhBLGWJK7QwzkdR+FAFRbJ1m5QOnmmTJncdW3fcxjj9cU PbTlp2WOHdJM
jglyCVXHB+X/AGf1P42muYFl8pp4xJkDYXGcnpxT/MTzPL3rvxu255x64oAp LZOs3KB080yZ
M7jq277mMcfripYIpo7udzHFtlfO4Od2AoAGMe3r3qbz4f8AnrH9/Z94fe9P r7UjXMCy+U08
YkyBsLjOT04oApy2U5clNnEokBMrAN82cbRwPrznGep4srHNHcSFPLKSOHLE nI4Axjv0657+
3Ky3cUThNwZ9yqVVhlckAEjPTkfnS/a7bzPL+0Rb87du8Zz6YoArLZOs3KB0 80yZM7jq277m
McfriiW1nKeWiwsqzecrMTknfux046kZ5+nPEr3yLcGHypSRIseQvGSM/oOt SR3MbytGTsdX
KBWIy2ADkc88EUATVQitZwnlusKq03nMyk5B37sdOegGePpxzZS7t3maFZoz Ip2lN3OfpQl3
bvM0KzRmRTtKbuc/SgCBo99+YwH8skSyZQ4LLjHPv8p4/ue5q7UYnhZwgljL EldoYZyOo/Cn
eYnmeXvXfjdtzzj1xQBWitT9qmlmUYZwyASMRwAOV6Z4z3/SoZbKcuSmziUS AmVgG+bONo4H
15zjPU8XXl2zRxgZL5J56Ad/zIH40PLtmjjAyXyTz0A7/mQPxoAqLZOs3KB0 80yZM7jq277m
Mcfrir9Qtd2y7t1xENp2tlxwfQ/kfyoa7tl3briIbTtbLjg+h/I/lQAfZo/M 37pc5zjznx+W
cfhR9mj8zfulznOPOfH5Zx+FDXdsu7dcRDadrZccH0P5H8qmoAg8lpJhJKwA Q/IqZB69z36D
jp9eDU9Qtd2y7t1xENp2tlxwfQ/kfyoFwPOEbRyKGJVXIGGIycevY9scfSgC aiio/Ph87yfN
j83+5uG716UASUVF9pgDBfPj3FtgG8ZLen15FD3MCMyvPGrIMsC4BA9/zH50 AS0VG8u2aOMD
JfJPPQDv+ZA/Gmi4HnCNo5FDEqrkDDEZOPXse2OPpQBNRVf7Wu7/AFcnl79n mcbc5xjrnrx0
/Sj7Wu7/AFcnl79nmcbc5xjrnrx0/SgCxRUX2hPtPkYfftLZKkDAx379e1K8 u2aOMDJfJPPQ
Dv8AmQPxoAkoqq96Edk8iUsrhQo25bOcEc9OP5+hxHJqkUczxGKUusix4G3k tkjHPtQBeoqK
GfzZJU8t18ptpLYwTjPGD6EfnTPtYLYWGVl37A6qCM5we+RjnkjHH0oAsUVG Z4RIYzLHvGMr
uGRnGOPxH502O5jeVoydjq5QKxGWwAcjnngigCaio/Ph87yfNj83+5uG716U LPC67kljYcch
gepwP14oAkoqPz4fO8nzY/N/ubhu9elQvfItwYfKlJEix5C8ZIz+g60AWH+6 aj/z/n/P/wBe
R/umo/8AP+f8/wD1wBr/AHT/AJ/z/n8Y6kf7p/z/AJ/z+MdIZWu+qfj/AEoo u+qfj/SigRPH
90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51fJPXse3U8dPpyai+zzfbPtGI/ v42bjjbjG7p9
/t9OPerHnw+d5Pmx+b/c3Dd69KDKBcLCVbLIXDcY4IBH6imIq/ZZmnyUjVfM 3ZWViMZz9wjG
T6+vPWkltZynlosLKs3nKzE5J37sdOOpGefpzxb8+HzvJ82Pzf7m4bvXpQs8 LruSWNhxyGB6
nA/XigBvlv8AbPM2RbPL27sfPnPTPp/Wq/2WZp8lI1XzN2VlYjGc/cIxk+vr z1q158PneT5s
fm/3Nw3evSgTws4QSxliSu0MM5HUfhQBAsEisIzHC8YlMgdiSQSxPC4684zn 39qje2nLTssc
O6SZHBLkEquOD8v+z+p/Gyl3bvM0KzRmRTtKbuc/So/to89ohBKSr7SRt9uc Zzj5h270ARLZ
Os3KB080yZM7jq277mMcfriom0+Z0bMcAZhMMhicF+h6fh9PyrQ8+HzvJ82P zf7m4bvXpSfa
YAwXz49xbYBvGS3p9eRQBTlspy5KbOJRICZWAb5s42jgfXnOM9Txo1Gs8Lru SWNhxyGB6nA/
Xio1u1MzxtHIgV9m9sbSeCBwe+R1+nXigCP7PN9s+0Yj+/jZuONuMbun3+30 496rtp8zo2Y4
AzCYZDE4L9D0/D6flWh58PneT5sfm/3Nw3evSoX1C3W4WBXV3JwQHX5TnHc/ oMmgBXSc3qSK
kZjVSuS5BwSpJxj29ahe2nLTsscO6SZHBLkEquOD8v8As/qfxt+fD53k+bH5 v9zcN3r0o8+H
/nrH9/Z94fe9Pr7UAVfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVjy3+2eZsi2eX t3Y+fOemfT+t
OMoFwsJVsshcNxjggEfqKal3bvM0KzRmRTtKbuc/SgCH7PN9s+0Yj+/jZuON uMbun3+30496
b9lmafJSNV8zdlZWIxnP3CMZPr689asfa7bzPL+0Rb87du8Zz6YqN75FuDD5 UpIkWPIXjJGf
0HWgCKW1nKeWiwsqzecrMTknfux046kZ5+nPFn7NH5m/dLnOcec+Pyzj8KV7 mBGZXnjVkGWB
cAge/wCY/Ol8+H/nrH9/Z94fe9Pr7UAO8tN27Yuc7s474xn8uKpPbTlp2WOH dJMjglyCVXHB
+X/Z/U/jb8+HzvJ82Pzf7m4bvXpQZQLhYSrZZC4bjHBAI/UUARrHNHcSFPLK SOHLEnI4Axjv
0657+3Isc0dxIU8spI4csScjgDGO/Trnv7cyCeMzmEMpcDJAYZHTqOveoX1C 3W4WBXV3JwQH
X5TnHc/oMmgCBI3mu7kCIKhmRjIwIJCheBxyMqe/f87flv8AbPM2RbPL27sf PnPTPp/WnCeM
zmEMpcDJAYZHTqOvejz4fO8nzY/N/ubhu9elADYUbzJZZBhnO0D0UZx/U/jj tRCjeZLLIMM5
2geijOP6n8cdqSW7iicJuDPuVSqsMrkgAkZ6cj86Y98i3Bh8qUkSLHkLxkjP 6DrQAySzke5L
iQCNnVyOeo29v+Af+PH05JLOR7kuJAI2dXI56jb2/wCAf+PH05tJLHIzKrAs hwy9x9RT6AKU
lnI9yXEgEbOrkc9Rt7f8A/8AHj6c2f332j/ln5Gz33bs/ljFSUUAUpLOR7ku JAI2dXI56jb2
/wCAf+PH05kMMjXayMsahCfnXO5lwcKRjpznr1HT0s0UAR/vvtH/ACz8jZ77 t2fyxiq/2ebH
k4j8rzfM37ju+/vxtx+HX39quUUAVYIpo7udzHFtlfO4Od2AoAGMe3r3qtKk nmLbCMMFnEoc
o3d9x5xgYBPOT0xjmtOigCGFG8yWWQYZztA9FGcf1P447VGiXP2ou6xFckbt 5JCdgBjjtnn+
mLVFAFP7PNjycR+V5vmb9x3ff3424/Dr7+1H2ebHk4j8rzfM37ju+/vxtx+H X39quUUAVnSc
3qSKkZjVSuS5BwSpJxj29afCjeZLLIMM52geijOP6n8cdqmooApyR3ZnMqiL KnagLnGw9c/L
1OB+Q98xy2k7SSyBIixlV0JkI+Ubcg8d9g/P89CigCmI7tZpSgiCySq+7ech RtBGNvcD170j
Wsjz+Y0durbw3nICHCg8DpzkDB5HXp63aKAKiwSKwjMcLxiUyB2JJBLE8Ljr zjOff2qN7act
Oyxw7pJkcEuQSq44Py/7P6n8b9FAFBbJ1m5QOnmmTJncdW3fcxjj9cVE2nzO jZjgDMJhkMTg
v0PT8Pp+ValFAGdLZTlyU2cSiQEysA3zZxtHA+vOcZ6ni/5abt2xc53Zx3xj P5cU6igBr/dN
R/5/z/n/AOvI/wB01H/n/P8An/64A1/un/P+f8/jHUj/AHT/AJ/z/n8Y6Qyt d9U/H+lFF31T
8f6UUCJ4/un/AHj/ADp1Nj+6f94/zp1Axi2TrNygdPNMmTO46tu+5jHH64qZ 0nN6kipGY1Ur
kuQcEqScY9vWrNMeWONlVmAZzhV7n6CmIprZOs3KB080yZM7jq277mMcfrio m0+Z0bMcAZhM
MhicF+h6fh9PyrQ8+H/nrH9/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oAqrZO s3KB080yZM7j
q277mMcfrih7actOyxw7pJkcEuQSq44Py/7P6n8bEt3FE4TcGfcqlVYZXJAB Iz05H51L5ieZ
5e9d+N23POPXFAEKxzR3EhTyykjhyxJyOAMY79Oue/ty2C2KXk9xJHGGc/Ky sSduAMHj/ZB/
H85vPh87yfNj83+5uG716UGUC4WEq2WQuG4xwQCP1FAFf7PNjycR+V5vmb9x 3ff3424/Dr7+
1Ogimju53McW2V87g53YCgAYx7evepvPh87yfNj83+5uG716ULPC67kljYcc hgepwP14oAz2
0+Z0bMcAZhMMhicF+h6fh9PyqwLeZppfMEaxPKsmVYlvl24GMcfdB/T3qx58 PneT5sfm/wBz
cN3r0oE8LOEEsZYkrtDDOR1H4UAVFsnWblA6eaZMmdx1bd9zGOP1xUqpci8e Xy4tjBU/1hyA
CecbffpUiXdu8zQrNGZFO0pu5z9KmoAzpbKcuSmziUSAmVgG+bONo4H15zjP U8ST205aTyvL
KvKkvzEg5Xb8vT/Z6/hjvVkTws4QSxliSu0MM5HUfhR58PneT5sfm/3Nw3ev SgCJ0nN6kipG
Y1UrkuQcEqScY9vWlWOaO4kKeWUkcOWJORwBjHfp1z39uZFnhddySxsOOQwP U4H68UefD53k
+bH5v9zcN3r0oAb9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd8Yz+XFR/a7bz PL+0Rb87du8Z
z6YqN75FuDD5UpIkWPIXjJGf0HWgCvcxSxRqpjV41uBIGVWZuX3HgDjAJ5z2 96lntpy0nleW
VeVJfmJByu35en+z1/DHepmufnwkMki7gpdAMA5x65474/oaf58PneT5sfm/ 3Nw3evSgClLZ
TlyU2cSiQEysA3zZxtHA+vOcZ6niw6Tm9SRUjMaqVyXIOCVJOMe3rUqzwuu5 JY2HHIYHqcD9
eKFnhddySxsOOQwPU4H68UAROk5vUkVIzGqlclyDglSTjHt60ipci8eXy4tj BU/1hyACecbf
fpU3nw+d5Pmx+b/c3Dd69KBPCzhBLGWJK7QwzkdR+FAETpOb1JFSMxqpXJcg 4JUk4x7etQrZ
Os3KB080yZM7jq277mMcfrirUM/mySp5br5TbSWxgnGeMH0I/Ol8+HzvJ82P zf7m4bvXpQBU
ltZynlosLKs3nKzE5J37sdOOpGefpzxd8tN27Yuc7s474xn8uKY9zAjMrzxq yDLAuAQPf8x+
dKJ4zOYQylwMkBhkdOo696AGeS0kwklYAIfkVMg9e579Bx0+vBqeoxPCzhBL GWJK7QwzkdR+
FQvfItwYfKlJEix5C8ZIz+g60AWqKYkscjMqsCyHDL3H1FPoAKKKKACiiigA ooooAKKKKACi
iigAooooAKKKKACiiigAooooAKKKKACiiigBr/dNR/5/z/n/AOvI/wB01H/n /P8An/64A1/u
n/P+f8/jHUj/AHT/AJ/z/n8Y6Qytd9U/H+lFF31T8f6UUCJ4/un/AHj/ADp1 Nj+6f94/zp1A
y5UHktHMZImBDn51fJPXse3U8dPpyanopiKf2eb7Z9oxH9/GzccbcY3dPv8A b6ce9N+yzNPk
pGq+ZuysrEYzn7hGMn19eetW3ljjZVZgGc4Ve5+gpPPh/wCesf39n3h970+v tQBUltZynlos
LKs3nKzE5J37sdOOpGefpzxZ8t/tnmbItnl7d2Pnznpn0/rStcwLL5TTxiTI GwuM5PTimy3c
UThNwZ9yqVVhlckAEjPTkfnQBXWydZuUDp5pkyZ3HVt33MY4/XFTOk5vUkVI zGqlclyDglST
jHt61P5ieZ5e9d+N23POPXFNM8IkMZlj3jGV3DIzjHH4j86AKi2TrNygdPNM mTO46tu+5jHH
64qJtPmdGzHAGYTDIYnBfoen4fT8q0PPh87yfNj83+5uG716ULPC67kljYcc hgepwP14oAqL
ZOs3KB080yZM7jq277mMcfrih7actOyxw7pJkcEuQSq44Py/7P6n8bYnhZwg ljLEldoYZyOo
/CgygXCwlWyyFw3GOCAR+ooAjWOaO4kKeWUkcOWJORwBjHfp1z39ubFR+fD5 3k+bH5v9zcN3
r0o8+H/nrH9/Z94fe9Pr7UAVHtpy07LHDukmRwS5BKrjg/L/ALP6n8Wy2U5c lNnEokBMrAN8
2cbRwPrznGep4me+KOU+yXDEBiMBfmCnBIGc9x9ala7tl3briIbTtbLjg+h/ I/lQBRbT5nRs
xwBmEwyGJwX6Hp+H0/KpVsnWblA6eaZMmdx1bd9zGOP1xVsTws4QSxliSu0M M5HUfhR58Pne
T5sfm/3Nw3evSgBv2aPzN+6XOc4858flnH4VJ5abt2xc53Zx3xjP5cUiSxyM yqwLIcMvcfUU
+gCukc0TFI/LMRcvuYncMnJGO/U85HXvjmP7PNjycR+V5vmb9x3ff3424/Dr 7+1XKKAMttPm
dGzHAGYTDIYnBfoen4fT8qG0+Z0bMcAZhMMhicF+h6fh9PyrUooAp/Z5seTi PyvN8zfuO77+
/G3H4dff2pj205adljh3STI4JcglVxwfl/2f1P436KAKYju1mlKCILJKr7t5 yFG0EY29wPXv
R9nmx5OI/K83zN+47vv78bcfh19/arlFAGZKknmLbCMMFnEoco3d9x5xgYBP OT0xjmrTpOb1
JFSMxqpXJcg4JUk4x7etWaKAKD205adljh3STI4JcglVxwfl/wBn9T+N3y03 bti5zuzjvjGf
y4p1FAEHktJMJJWACH5FTIPXue/QcdPrwanoooAKKKKACiiigAooooAKKKKA CiiigAooooAK
KKKACiiigAooooAKKKKACiiigBr/AHTUf+f8/wCf/ryP901H/n/P+f8A64A1 /un/AD/n/P4x
1I/3T/n/AD/n8Y6Qytd9U/H+lFF31T8f6UUCJ4/un/eP86dTY/un/eP86dQM uUUUUxEHktHM
ZImBDn51fJPXse3U8dPpyai+zzfbPtGI/v42bjjbjG7p9/t9OPerlMeWONlV mAZzhV7n6CgC
p9lmafJSNV8zdlZWIxnP3CMZPr689aSW1nKeWiwsqzecrMTknfux046kZ5+n PFvz4f8AnrH9
/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oATy3+2eZsi2eXt3Y+fOemfT+tRLB IrCMxwvGJTIH
YkkEsTwuOvOM59/apJbuKJwm4M+5VKqwyuSACRnpyPzqXzE8zy9678btuece uKAKv2ebHk4j
8rzfM37ju+/vxtx+HX39qrtp8zo2Y4AzCYZDE4L9D0/D6flV9rmBZfKaeMSZ A2FxnJ6cUvnw
+d5Pmx+b/c3Dd69KAKSRvNd3IEQVDMjGRgQSFC8DjkZU9+/52HSc3qSKkZjV SuS5BwSpJxj2
9ake5gRmV541ZBlgXAIHv+Y/Ol8+H/nrH9/Z94fe9Pr7UAVFsnWblA6eaZMm dx1bd9zGOP1x
T/s832z7RiP7+Nm4424xu6ff7fTj3qx58PneT5sfm/3Nw3evSgTws4QSxliS u0MM5HUfhQAx
45DexSAJ5aoykljnJIPTH+z696haPffmMB/LJEsmUOCy4xz7/KeP7nuasmeE SGMyx7xjK7hk
Zxjj8R+dHnw+d5Pmx+b/AHNw3evSgCkkbzXdyBEFQzIxkYEEhQvA45GVPfv+ blsnWblA6eaZ
Mmdx1bd9zGOP1xVxJY5GZVYFkOGXuPqKfQBB5LSTCSVgAh+RUyD17nv0HHT6 8Gp6KKACiiig
AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKK
KKACiiigAooooAKKKKAGv901H/n/AD/n/wCvI/3TUf8An/P+f/rgDX+6f8/5 /wA/jHUj/dP+
f8/5/GOkMrXfVPx/pRRd9U/H+lFAieP7p/3j/OnVSaJmlYlpfmJ2ojkZ68+3 9T265WFf3yEN
Kpxu2PIWyOeR/h9D65NCuV2ubFFFFMkKg8lo5jJEwIc/Or5J69j26njp9OTU 9FAFP7PN9s+0
Yj+/jZuONuMbun3+30496b9lmafJSNV8zdlZWIxnP3CMZPr689a59Li9dWZZ 5yqjLHecD8aX
zr//AJ63P3d/3m+76/T3rTkJ5jeltZynlosLKs3nKzE5J37sdOOpGefpzxZ8 t/tnmbItnl7d
2Pnznpn0/rXMiXUWj8xXujHjO4FsfnTo3v5EL/aJ1TaSGZmw2ASQD68H8qOT zDmNz7LM0+Sk
ar5m7KysRjOfuEYyfX1560i2TrNygdPNMmTO46tu+5jHH64rA+03vl+Z59xs zjdvbGfTNL51
/wCV5vm3Pl/39zY/OjkDmNu5ilijVTGrxrcCQMqszcvuPAHGATznt71LPbTl pPK8sq8qS/MS
Dldvy9P9nr+GO9c+Li7MBlF3LgMFK+Y2eQSD+ho86/8AK83zbny/7+5sfnRy BzG8tk6zcoHT
zTJkzuOrbvuYxx+uKHtpy07LHDukmRwS5BKrjg/L/s/qfxwWmv0OGluVPPBZ h0GT+nNHnX/l
eb5tz5f9/c2Pzo5A5jolgkVhGY4XjEpkDsSSCWJ4XHXnGc+/tUa2TrNygdPN MmTO46tu+5jH
H64rBM1+E3mW5CgA5LNjB6GnM+opEJWkuRGRkNubGKOTzDmOk8lpJhJKwAQ/ IqZB69z36Djp
9eDU9cf9tuv+fmb/AL+Gnma/CbzLchQAclmxg9DR7MOY62iuS86/8rzfNufL /v7mx+dDTX6H
DS3Knngsw6DJ/TmjkDmOtorkvOv/ACvN8258v+/ubH507fqXl+Zuu9mM7stj Hrmjk8w5jq6K
5dTetAJftrAFGkwZWzgHH6npUXnX/wDz1ufu7/vN931+nvRyeYcx1tFcmJdR aPzFe6MeM7gW
x+dJ51/5Xm+bc+X/AH9zY/Ojk8w5jraK5PzdR2lt91gLuJy3T1+lIZr8JvMt yFAByWbGD0NH
J5hzHW0VyXnX/leb5tz5f9/c2Pzoaa/Q4aW5U88FmHQZP6c0cgcx1tFcl51/ 5Xm+bc+X/f3N
j86lU3rQCX7awBRpMGVs4Bx+p6UcnmHMdRRXH/bbr/n5m/7+GpPN1HaW33WA u4nLdPX6UezD
mOsorkvOv/K83zbny/7+5sfnUqjUWgMxnuFQDIJL/MMZ7fzNHJ5hzHUUVym/ UvL8zdd7MZ3Z
bGPXNPU3rQCX7awBRpMGVs4Bx+p6UuTzC51FFcl51/8A89bn7u/7zfd9fp70 ol1Fo/MV7ox4
zuBbH50+TzDmOsorkvOv/K83zbny/wC/ubH50vm6jtLb7rAXcTlunr9KOTzD mOsorkjNfhN5
luQoAOSzYweho86/8rzfNufL/v7mx+dHIHMdbRXJNNfocNLcqeeCzDoMn9Oa POv/ACvN8258
v+/ubH50cgcx1tFcvuu/LVhfMxZC4QO+cDOe2OMHv2qLzr/yvN8258v+/ubH 50cgcx1tFcuo
1FoDMZ7hUAyCS/zDGe38zQpvWgEv21gCjSYMrZwDj9T0pcnmFzqKK5JLm6aK SQ3UwCYA+c8k
9uvoCfwpHuL1FVmnnCsMqd5wfxp8gcx11FFFZlBRRRQA1/umo/8AP+f8/wD1 5H+6aj/z/n/P
/wBcAa/3T/n/AD/n8Y6kf7p/z/n/AD+NczxgkZPHH3TSGk3sRXfVPx/pRRdE MIyOhBI/SigB
u7MxdFLyR5AQd/mzn9enXp60Iha8Ezh03ZIVhyT3/D3+lOMcJ5aBJJGLYG0Z PJ70sAg3jFuk
UmNy8DkeoNLS5peXKalFFFUZBRRRQBx+/wAyIJIhyo+QpgfmO/Qc9frxUvmx /ZfI+f7md20Z
3Zzt6/d/rzXQyQWSMqvDAGc/KuwZb8KTy9P/ALlt9/Z0X73p9fatOdBZGB5y CHALsxj24Mag
5xj7+c49vTApYpog+9jMC8XlFVAwBt25689jjj/HdZNOWXymW1EhI+Qhc57c U2UWEb7PIgdy
yhlVVyuSACR6cj86OdBZHOZH2Ty8y79+7bn5MY649asG5DRDBKP5ezAhU/w4 +9nPP9a6D7PZ
eZ5fkwb8btu0Zx64pvl6f53k7Lbzf7mF3evSjnQWRzieV9keMtJ5jENgIMcA 8Zz71KbkNEME
o/l7MCFT/Dj72c8/1reMNr9oEJtI8spcNsXBwQD+PIo8vT/O8nZbeb/cwu71 6Uc6CyMVbuNX
Xa0xUGIgFQMhOo6/j9fzqM3IaIYJR/L2YEKn+HH3s55/rW8senyLuVLZgccg Kc5OB+uRR5en
+d5Oy283+5hd3r0o5kFkYKTRbYFZpsJE6kBB1bPI5/2v0HrUJMckEYYPvRCo AAweSc57demP
510gj09n2BLYsWI24XJI6j6imqNNkmaFVtjIGwU2rnP070c4WRy21vSrqTRb YFZpsJE6kBB1
bPI5/wBr9B610X2O1/59of8AvgVGI9PZ9gS2LFiNuFySOo+oocwtEw4rmIKA 4fmMoQI1JHy4
zuPJ+nHX83Ldxq67WmKgxEAqBkJ1HX8fr+dbXl6f53k7Lbzf7mF3evShY9Pk XcqWzA45AU5y
cD9cijmQWRgm5DRDBKP5ezAhU/w4+9nPP9ar+dL5ezZHjGP9UufzxnNdN5en +d5Oy283+5hd
3r0puNM8zy8Wm/djb8uc+mPWjnQWRzGZMYy2MYxntnOPz5qzDLEFj8wSArG0 Y2gHg7uev+10
/XtW07WS3Bh+w7j5ix5EQIJIz+g61MI9PZ9gS2LFiNuFySOo+oo5wsjA85BD gF2Yx7cGNQc4
x9/Oce3pgUpuQ0QwSj+XswIVP8OPvZzz/Wt7y9P87ydlt5v9zC7vXpSMmnLL 5TLaiQkfIQuc
9uKOdBZHPStHJbQory7o0wFKjbknJ5z7+nYVIk0W2BWabCROpAQdWzyOf9r9 B61usmnLL5TL
aiQkfIQuc9uKRhpi7twtBtbDZ28Hng+/Bo5wsjFiuYgoDh+YyhAjUkfLjO48 n6cdfzct3Grr
taYqDEQCoGQnUdfx+v51teXp/neTstvN/uYXd69KQpp27aVtdxbbjC5Len15 /WjmQWRhG5DR
DBKP5ezAhU/w4+9nPP8AWqmZMYy2MYxntnOPz5rppRYRvs8iB3LKGVVXK5IA JHpyPzpjtZLc
GH7DuPmLHkRAgkjP6DrRzoLI5ra3pVmVo5LaFFeXdGmApUbck5POff07Cum+ x2v/AD7Q/wDf
AqIpp27aVtdxbbjC5Len15/WnzhaJhG5DRDBKP5ezAhU/wAOPvZzz/Woz5LW iR7pd6ln/wBW
MEkDjr7frXReXp/neTstvN/uYXd69KheTThcCAQwO5bDABODnHOTyevAyaXO gsjn/Ol8vZsj
xjH+qXP54zmmZkxjLYxjGe2c4/PmunxpnmeXi037sbflzn0x61G7WS3Bh+w7 j5ix5EQIJIz+
g60+dBZGLDLEFj8wSArG0Y2gHg7uev8AtdP17UvnIIcAuzGPbgxqDnGPv5zj 29MCt8R6ez7A
lsWLEbcLkkdR9RR5en+d5Oy283+5hd3r0pc6CyME3IaIYJR/L2YEKn+HH3s5 5/rUcrRyW0KK
8u6NMBSo25Jyec+/p2FdCyacsvlMtqJCR8hC5z24oZNOWXymW1EhI+Qhc57c Uc6CyMJJotsC
s02EidSAg6tnkc/7X6D1p0VzEFAcPzGUIEakj5cZ3Hk/Tjr+e0w0xd24Wg2t hs7eDzwffg07
y9P87ydlt5v9zC7vXpRzoLIxVu41ddrTFQYiAVAyE6jr+P1/OozchohglH8v ZgQqf4cfeznn
+tbpTTt20ra7i23GFyW9Prz+tNlFhG+zyIHcsoZVVcrkgAkenI/OjmQWRh+e ggiiAYjyyrNs
AYZJPBznvjHGR9aU3IaIYJR/L2YEKn+HH3s55/rWz/onmujWIVVkCM5RMZOM d885HbvUvl6f
53k7Lbzf7mF3evSjnQWRzp8lrRI90u9Sz/6sYJIHHX2/WoMyYxlsYxjPbOcf nzXRvJpwuBAI
YHcthgAnBzjnJ5PXgZNDtZLcGH7DuPmLHkRAgkjP6DrRzhaJz8pzHFHHyqjc T6scZ/oPw96U
Psi2RISXHzF8H8h269ev0zXSvBarNHGLWFi+SfkHAHfp6kD8aVILKRnVYYCy n5l2DI+oo5ws
i1RRRWYBRRRQA1/umo/8/wCf8/8A15H+6aj/AM/5/wA//XAGv90/5/z/AJ/G qbdSSd7DJz2/
wq0/3T/n/P8An8apuFBI2McHHb/GguPN0I7lQqxqOgBH8qKLlgyxsOhBP8qK RL3HMrBhMil2
TICj13Eg02OJ5Lo3Dq6Drhxzk/0qxH90/wC8f506lYvndrFyiiiqMwoopjyx xsqswDOcKvc/
QUAVztimaSOVcFgJFcknqeh7Ac8dOD05NREEXhuC0XEm0puONuMbun3+CM9M AjPGatMypNDG
qAkg9ONqjr+u0Y9/agS24xiSIYbyxgjg/wB36+1BXulMofPJYxIqy5JWViOu fuEYzwcnscnq
KSZH2GNTAVjn80M7HOd+7HTjuM89D74uGe2SVYjLCsg+UJuAIz2x+VNkuYIX VBtZwVTahGUB
IAyM9OR+lAe6IXUXhkPk7Amwtj5856Z/u8H8QfSqwhVJm3bXQTbyTcOMZbd9 zGOOfyPTmr4M
QkEYKBwuQoxkL9PSmGe2SVYjLCsg+UJuAIz2x+VAe6QySP8AbVkHk+XGChJc g8kEnGO209/X
pg1CIVSZt210E28k3DjGW3fcxjjn8j05q6JbcTCESRCUDAQEbgOvSkae2iYq 0sKNGvILAFRx
+Q6fpQHumc9sSj7hbqx84E7icF+h+72wQfYH0IqUQqkzbtroJt5JuHGMtu+5 jHHP5HpzV0S2
4xiSIYbyxgjg/wB36+1AltxMIRJEJQMBARuA69KA90pSo+64YCDc06NkuQcL jg/L/sn2GT6V
OHMVxKVeLY8gZmYnK8AEAY5+6ec8c+lTLLb71RJItwyiqCM8dQP04o823WTy xJEHQAbcjKg4
xx+X6UB7o4zxDOXHBwf8/gfyPpVCVH3XDAQbmnRslyDhccH5f9k+wyfSrolt xMIRJEJQMBAR
uA69KWN4WYrGV3R/KVxgr+HYcfjQHumfNC29irx/LMHyZWAPzZxtHA6HnnoS ec4Y9sSj7hbq
x84E7icF+h+72wQfYH0IrWCqMYUDAwMDoKAqjGFAwMDA6CgPdM4QqkzbtroJ t5JuHGMtu+5j
HHP5HpzVkpbiQuZZMhskec+M/TOMcH24PpVgKoxhQMDAwOgoCqMYUDAwMDoK A90jL24YsdmQ
2Scd8Yz+QIz7H0qjkPdXIwiIZkYyNkMduOAMcjKt345P10gqjGFAwMDA6CgK oxhQMDAwOgoD
3TMmhbexV4/lmD5MrAH5s42jgdDzz0JPOcPKHzyWMSKsuSVlYjrn7hGM8HJ7 HJ6itAKoxhQM
DAwOgoCqMYUDAwMDoKA90zyh88ljEirLklZWI65+4RjPByexyeopZYs3Lv56 iMyKzDJ6jb27
/wCr6+7enN8KoxhQMDAwOgoCqMYUDAwMDoKA90okEAwlovKE3mF9x3ff3424 9iM57E9sU6Fj
Fd3DsIQsknLBzuAC4HG3noe/HPoauBVGMKBgYGB0FAVRjCgYGBgdBQHumdMj 7DGpgKxz+aGd
jnO/djpx3Geeh98XS9uGLHZkNknHfGM/kCM+x9KkCqMYUDAwMDoKAqjGFAwM DA6CgPdGmeIZ
Re: A Diagnostic Message for the Valid Schema [message #21214 is a reply to message #21174] Mon, 05 May 2003 10:47 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: paechoi.earthlink.net

This is a multi-part message in MIME format.

------=_NextPart_000_0046_01C312D2.3011F060
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0047_01C312D2.3011F060"


------=_NextPart_001_0047_01C312D2.3011F060
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Ed,

Where could I get those two JARs for the xerces you mentioned. And
what version is that? Thank you.

Regards,


Pae

"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB64063.883B5444@ca.ibm.com...
Pae,=20
XSD only is tested to work with the version of Xerces in Eclipse.=20
=20

Pae Choi wrote:=20

Ed, I also tested with XSD v1.1.0 + EMF v1.1.0 with xerces v2.2.1 =
and v2.4.0, butam still having an exception. However, the exceptions are =
not same as previousone. The exceptions and the associated code snippet =
are as follows: // ### Exception with xerces v2.2.1 =
###java.lang.NullPointerException=20
at org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263) =20
at org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown =
Source)=20
at =
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDe=
cl(Unknown Source)=20
at =
org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(=
Unknown Source)=20
at =
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknow=
n Source)=20
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source) =

at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source) =

at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)=20
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown =
Source)=20
at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)=20
at org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDD=
emo2.java:87)=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101)=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)=20
java.lang.NullPointerException=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104)=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) // =
### Exception with xerces v2.4.0 ###java.lang.NullPointerException=20
at org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263) =20
at org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown =
Source)=20
at =
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDe=
cl(Unknown Source)=20
at =
org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(=
Unknown Source)=20
at =
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknow=
n Source)=20
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown =
Source)=20
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source) =

at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)=20
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown =
Source)=20
at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)=20
at org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDD=
emo2.java:87)=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101)=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)=20
java.lang.NullPointerException=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104)=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)=20
// ### Code Snippet ###/*=20
* EclipseXSDDemo2.java=20
*=20
* Created on May 2, 2003, 11:13 PM=20
*=20
*/ package org.paechoi.xsd.test; // W3C/DOM=20
import javax.xml.parsers.DocumentBuilderFactory;=20
import javax.xml.parsers.DocumentBuilder;=20
import org.w3c.dom.Document;=20
import org.w3c.dom.Element;=20
// Eclipse/XSD=20
import org.eclipse.xsd.util.XSDParser;=20
import org.eclipse.xsd.XSDFactory;=20
import org.eclipse.xsd.XSDSchema;=20
import org.eclipse.xsd.impl.XSDSchemaImpl;=20
import org.eclipse.xsd.util.XSDResourceImpl;=20
import org.eclipse.xsd.util.XSDResourceFactoryImpl;=20
import org.eclipse.xsd.XSDDiagnostic;=20
import org.eclipse.emf.ecore.resource.Resource;=20
import org.eclipse.emf.ecore.resource.ResourceSet;=20
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;=20
import org.eclipse.emf.common.util.EList;=20
import java.io.File;=20
import java.io.FileOutputStream;=20
import java.io.PrintStream;=20
import java.io.FileNotFoundException;=20
/**=20
*=20
* @author pae=20
*/=20
public class EclipseXSDDemo2 {=20
// private Document xmlDOM =3D null;=20
private XSDParser xsdParser =3D null; // instance =
initializer=20
{=20
// =
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =
new XSDResourceFactoryImpl());=20
}=20
/** Creates a new instance of EclipseXSDDemo2 */=20
public EclipseXSDDemo2() {=20
super(); // Redirect the System.err=20
try {=20
System.setErr(new PrintStream(new =
FileOutputStream("errors.log", true)));=20
}=20
catch (FileNotFoundException fileNotFoundException) {=20
}=20
}=20

/** Open a XML DOM */=20
private Document openXMLDOM(String uri) {=20
// Create a factory object for creating DOM parsers=20
DocumentBuilderFactory factory =3D =
DocumentBuilderFactory.newInstance();=20
DocumentBuilder builder =3D null;=20
Document xmlDoc =3D null;=20

// Build a new DOM=20
try {=20
// Now use the factory to create a DOM parser (a.k.a. a =
DocumentBuilder)=20
factory.setNamespaceAware(true);=20
builder =3D factory.newDocumentBuilder();=20
xmlDoc =3D builder.parse(uri);=20
}=20
catch (Exception ex) {=20
ex.printStackTrace();=20
return null;=20
}=20

return xmlDoc;=20
}=20

/** Open a XML DOM using XSDParser */=20
private Document openXMLDOMUsingXSDParser(String uri) {=20
Document xmlDoc =3D null;=20

// Build a new DOM=20
try {=20
xsdParser =3D new XSDParser();=20
xsdParser.parse(uri);=20
xmlDoc =3D xsdParser.getDocument();=20
}=20
catch (Exception ex) {=20
ex.printStackTrace();=20
return null;=20
}=20

return xmlDoc;=20
}=20

/** doIt */=20
private void doIt() {=20
try {=20
Document xmlDOM =3D =
openXMLDOMUsingXSDParser("http://schemas.xmlsoap.org/wsdl/");=20
// Document xmlDOM =3D =
openXMLDOMUsingXSDParser("./wsdl.xsd"); Element rootElement =
=3D xmlDOM.getDocumentElement(); XSDSchema xsdSchema =3D =
XSDFactory.eINSTANCE.createXSDSchema();=20
xsdSchema.setDocument(xmlDOM);=20
xsdSchema.setElement(rootElement);=20
xsdSchema.updateElement(); =
System.out.println("\n\n");=20
XSDResourceImpl.serialize(System.out, =
xsdSchema.getElement()); =
System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION =
>>>>>>>>>>>>>>>>>>>>>>>>>>");=20
xsdSchema.validate();=20
//EList eList =3D xsdMainSchema.getDiagnostics();=20
EList eList =3D xsdSchema.getAllDiagnostics();=20
for (int i =3D 0; i < eList.size(); i++) {=20
XSDDiagnostic xsdDiagnostic =3D =
(XSDDiagnostic)eList.get(i);=20
System.out.println(i + ": At line #" + =
xsdDiagnostic.getLine() + "(" + xsdDiagnostic.getColumn() + "), " + =
xsdDiagnostic.getMessage() + "; Node =3D [" + =
xsdDiagnostic.getNode().getNodeName() + "]");=20
}=20
=
System.out.println("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<=
<<<<<<<");=20
}=20
catch (Exception ex) {=20
ex.printStackTrace();=20
}=20
}=20

/** main - the main entry */=20
public static void main(String[] args) {=20
EclipseXSDDemo2 app =3D new EclipseXSDDemo2();=20
app.doIt();=20
}=20
}Regards, Pae=20

"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB4F504.6527C9F2@ca.ibm.com...Pae,=20
No, the standalone version worked too. What exception did you =
see?=20
=20

Pae Choi wrote:=20

Ed, That surely helped with v1.0.2. And THANK you for that. One =
quick question is:Do you also have an exception thrown when running with =
v1.1.0 as standalone. Regards, Pae=20
"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB3A206.9781C42@ca.ibm.com...Pae,=20
The XSD model expects a DOM that's namespace aware, so this =
addition to your sample code will improve your result:=20

private Document openXMLDOM(String uri) {=20
// Create a factory object for creating DOM parsers=20
DocumentBuilderFactory factory =3D =
DocumentBuilderFactory.newInstance();=20
DocumentBuilder builder =3D null;=20
Document xmlDoc =3D null;=20

factory.setNamespaceAware(true);=20

Without this, element.getNamespaceURI and element.getLocalName =
both return null...=20
=20

Pae Choi wrote:=20

Ed, I have a sample code that test a DOM of XML Schema with =
Eclipse/XSD andproducing two different results. With v1.0.2, it seems ok =
except the diagnostic message we are discussing.With v1.1.0, it throws =
an exception.Regards, Pae P.S.: The code snippet is as follows: // =
################## CODE SNIPPET ##################/*=20
* EclipseXSDDemo1.java=20
*=20
* Created on May 2, 2003, 11:13 PM=20
*/ package org.paechoi.xsd.test;// W3C/DOM=20
import javax.xml.parsers.DocumentBuilderFactory;=20
import javax.xml.parsers.DocumentBuilder;=20
import org.w3c.dom.Document;=20
import org.w3c.dom.Element;=20
// Eclipse/XSD=20
import org.eclipse.xsd.XSDFactory;=20
import org.eclipse.xsd.XSDSchema;=20
import org.eclipse.xsd.impl.XSDSchemaImpl;=20
import org.eclipse.xsd.util.XSDResourceImpl;=20
import org.eclipse.xsd.util.XSDResourceFactoryImpl;=20
import org.eclipse.xsd.XSDDiagnostic;=20
import org.eclipse.emf.ecore.resource.Resource;=20
import org.eclipse.emf.ecore.resource.ResourceSet;=20
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; =

import org.eclipse.emf.common.util.EList;=20
import java.io.File;=20
/**=20
*=20
* @author pae=20
*/=20
public class EclipseXSDDemo1 {=20
// private Document xmlDOM =3D null;=20
// instance initializer=20
{=20
// =
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =
new XSDResourceFactoryImpl());=20
}=20

/** Creates a new instance of EclipseXSDDemo1 */=20
public EclipseXSDDemo1() {=20
super();=20
}=20

/** Open a XML DOM */=20
private Document openXMLDOM(String uri) {=20
// Create a factory object for creating DOM parsers=20
DocumentBuilderFactory factory =3D =
DocumentBuilderFactory.newInstance();=20
DocumentBuilder builder =3D null;=20
Document xmlDoc =3D null;=20

// Build a new DOM=20
try {=20
// Now use the factory to create a DOM parser =
(a.k.a. a DocumentBuilder)=20
builder =3D factory.newDocumentBuilder();=20
xmlDoc =3D builder.parse(uri);=20
}=20
catch (Exception ex) {=20
ex.printStackTrace();=20
return null;=20
}=20

return xmlDoc;=20
}=20

/** doIt */=20
private void doIt() {=20
Document xmlDOM =3D =
openXMLDOM("http://schemas.xmlsoap.org/wsdl/");=20
// Document xmlDOM =3D openXMLDOM("./wsdl.xsd"); =
Element rootElement =3D xmlDOM.getDocumentElement(); =
XSDSchema xsdSchema =3D XSDFactory.eINSTANCE.createXSDSchema();=20
xsdSchema.setDocument(xmlDOM);=20
xsdSchema.setElement(rootElement);=20
xsdSchema.updateElement(); =
System.out.println("\n\n");=20
XSDResourceImpl.serialize(System.out, =
xsdSchema.getElement()); =
System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION =
>>>>>>>>>>>>>>>>>>>>>>>>>>");=20
xsdSchema.validate();=20
//EList eList =3D xsdMainSchema.getDiagnostics();=20
EList eList =3D xsdSchema.getAllDiagnostics();=20
for (int i =3D 0; i < eList.size(); i++) {=20
XSDDiagnostic xsdDiagnostic =3D =
(XSDDiagnostic)eList.get(i);=20
System.out.println(i + ": Diagnostic Message =3D =
[" + xsdDiagnostic.getMessage() + "]");=20
}=20
=
System.out.println("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<=
<<<<<<<");=20
}=20

/** main - the main entry */=20
public static void main(String[] args) {=20
EclipseXSDDemo1 app =3D new EclipseXSDDemo1();=20
app.doIt();=20
}=20
}=20

"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB25ED9.AE2CB299@ca.ibm.com...Pae,=20
I'm seeing this result with the just published 1.1.0 =
driver:=20


The schema isn't valid.=20
=20
Pae Choi wrote:=20

I have a simple test schema as follows:=20
<?xml version=3D"1.0" encoding=3D"UTF-8"?>=20
<!--W3C Schema generated by Pae -->=20
<xsd:schema =
xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema"=20
elementFormDefault=3D"qualified">=20
<xsd:element name=3D"CommonLogin">=20
<xsd:complexType>=20
<xsd:sequence>=20
<xsd:element name=3D"username" ref=3D"usernameRef"/> =

<xsd:element name=3D"password" ref=3D"passwordRef"/> =

</xsd:sequence>=20
</xsd:complexType>=20
</xsd:element>=20
<xsd:element name=3D"passwordRef" type=3D"xsd:string"/> =

<xsd:element name=3D"usernameRef" type=3D"xsd:string"/> =

</xsd:schema>=20

This is a very simple sample, but it is a valid schema. =
But when=20
I use the validate() and getDiagnostics() methods in the =
XSDSchema=20
interface it gives me a message as follows:=20

XSD: The element '#null' is not permitted as constrained =
by 'XML Schema ';=20
expecting schema=20

I do not understand what the message is saying. Any =
comments?=20

Pae


------=_NextPart_001_0047_01C312D2.3011F060
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2600.0" name=3DGENERATOR></HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT size=3D2>Ed,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Where could I get those two JARs for the xerces you =
mentioned.=20
And</FONT></DIV>
<DIV><FONT size=3D2>what version is that? Thank you.</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Regards,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Pae</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV>"Ed Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB64063.883B5444@ca.ibm.com">news:3EB64063.883B5444@ca.ibm.=
com</A>...</DIV>Pae,=20

<P>XSD only is tested to work with the version of Xerces in Eclipse.=20
<BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">&nbsp;<FONT size=3D-1>Ed,</FONT> <FONT =
size=3D-1>I also=20
tested with XSD v1.1.0 + EMF v1.1.0 with xerces v2.2.1 and v2.4.0, =
butam=20
still having an exception. However, the exceptions are not same as=20
previousone. The exceptions and the associated code snippet are as=20
follows:</FONT> <FONT size=3D-1>// ### Exception with xerces v2.2.1=20
###java.lang.NullPointerException</FONT> <BR><FONT =
size=3D-1>&nbsp;at=20
org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263) </FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown =
Source)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
=
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDe=
cl(Unknown=20
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
=
org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(=
Unknown=20
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
=
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknow=
n=20
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.parsers.DTDConfiguration.parse(Unknown =
Source)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.parsers.DTDConfiguration.parse(Unknown =
Source)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at =
org.apache.xerces.parsers.XMLParser.parse(Unknown=20
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown =
Source)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
javax.xml.parsers.SAXParser.parse(SAXParser.java:345)</FONT > =
<BR><FONT=20
size=3D-1>&nbsp;at=20
org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)</FONT > =
<BR><FONT=20
size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDD=
emo2.java:87)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101) </FONT=
>=20
<BR><FONT size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) </FONT=
>=20
<BR><FONT size=3D-1>java.lang.NullPointerException</FONT> <BR><FONT=20
size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104) </FONT=
>=20
<BR><FONT size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) </FONT=
>=20
<FONT size=3D-1>// ### Exception with xerces v2.4.0=20
###java.lang.NullPointerException</FONT> <BR><FONT =
size=3D-1>&nbsp;at=20
org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263) </FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown =
Source)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
=
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDe=
cl(Unknown=20
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
=
org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(=
Unknown=20
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
=
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknow=
n=20
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.parsers.XML11Configuration.parse(Unknown =
Source)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.parsers.DTDConfiguration.parse(Unknown =
Source)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at =
org.apache.xerces.parsers.XMLParser.parse(Unknown=20
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown =
Source)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
javax.xml.parsers.SAXParser.parse(SAXParser.java:345)</FONT > =
<BR><FONT=20
size=3D-1>&nbsp;at=20
org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)</FONT > =
<BR><FONT=20
size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDD=
emo2.java:87)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101) </FONT=
>=20
<BR><FONT size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) </FONT=
>=20
<BR><FONT size=3D-1>java.lang.NullPointerException</FONT> <BR><FONT=20
size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104) </FONT=
>=20
<BR><FONT size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) </FONT=
>=20
<BR>&nbsp;<FONT size=3D-1>// ### Code Snippet ###/*</FONT> <BR><FONT =

size=3D-1>&nbsp;* EclipseXSDDemo2.java</FONT> <BR><FONT =
size=3D-1>&nbsp;*</FONT>=20
<BR><FONT size=3D-1>&nbsp;* Created on May 2, 2003, 11:13 PM</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;*</FONT> <BR><FONT size=3D-1>&nbsp;*/</FONT> <FONT=20
size=3D-1>package org.paechoi.xsd.test;</FONT> <FONT size=3D-1>// =
W3C/DOM</FONT>=20
<BR><FONT size=3D-1>import&nbsp;=20
javax.xml.parsers.DocumentBuilderFactory;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; javax.xml.parsers.DocumentBuilder;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; org.w3c.dom.Document;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; org.w3c.dom.Element;</FONT> <BR><FONT =
size=3D-1>//=20
Eclipse/XSD</FONT> <BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.xsd.util.XSDParser;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
org.eclipse.xsd.XSDFactory;</FONT> <BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.xsd.XSDSchema;</FONT> <BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.xsd.impl.XSDSchemaImpl;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
org.eclipse.xsd.util.XSDResourceImpl;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
org.eclipse.xsd.util.XSDResourceFactoryImpl;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; org.eclipse.xsd.XSDDiagnostic;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; =
org.eclipse.emf.ecore.resource.Resource;</FONT>=20
<BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.emf.ecore.resource.ResourceSet;</FONT> <BR><FONT=20
size=3D-1>import&nbsp;=20
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; org.eclipse.emf.common.util.EList;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; java.io.File;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
java.io.FileOutputStream;</FONT> <BR><FONT size=3D-1>import&nbsp;=20
java.io.PrintStream;</FONT> <BR><FONT size=3D-1>import&nbsp;=20
java.io.FileNotFoundException;</FONT> <BR><FONT size=3D-1>/**</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;*</FONT> <BR><FONT size=3D-1>&nbsp;* @author&nbsp; =
pae</FONT>=20
<BR><FONT size=3D-1>&nbsp;*/</FONT> <BR><FONT size=3D-1>public class =

EclipseXSDDemo2 {</FONT> <BR><FONT size=3D-1>//&nbsp;&nbsp;&nbsp;=20
private&nbsp;&nbsp;&nbsp;&nbsp;=20
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp; xmlDOM =3D =
null;</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp;=20
private&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&am p;nbsp;&nbsp;&nbsp;=20
XSDParser&nbsp;&nbsp; xsdParser =3D null;</FONT>&nbsp;<FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; // instance initializer</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; {</FONT> <BR><FONT=20
size=3D-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;=20
=
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =
new=20
XSDResourceFactoryImpl());</FONT> <BR><FONT =
size=3D-1>&nbsp;&nbsp;&nbsp;=20
}</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** Creates a new instance of=20
EclipseXSDDemo2 */</FONT> <BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; =
public=20
EclipseXSDDemo2() {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
super();</FONT>&nbsp;<FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Redirect the =

System.err</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; try =
{</FONT>=20
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;=20
System.setErr(new PrintStream(new FileOutputStream("errors.log",=20
true)));</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; }</FONT> =
<BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; catch=20
(FileNotFoundException fileNotFoundException) {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; }</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM */</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String uri) =
{</FONT>=20
<BR><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // =
Create a=20
factory object for creating DOM parsers</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilderFactory&nbsp; factory =3D=20
DocumentBuilderFactory.newInstance();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp; =
builder =3D=20
null;</FONT> <BR><FONT =
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D null;</FONT>=20
<P><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // =
Build a new=20
DOM</FONT> <BR><FONT =
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try=20
{</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
// Now use the factory to create a DOM parser (a.k.a. a=20
DocumentBuilder)</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
factory.setNamespaceAware(true);</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
builder =3D factory.newDocumentBuilder();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xmlDoc =3D builder.parse(uri);</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT> =
<BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch =
(Exception ex)=20
{</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
ex.printStackTrace();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
return null;</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT>=20
<P><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; return =

xmlDoc;</FONT> <BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM using =
XSDParser=20
*/</FONT> <BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; private Document=20
openXMLDOMUsingXSDParser(String uri) {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
Document&nbsp;&nbsp;&nbsp; xmlDoc =3D null;</FONT>=20
<P><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // =
Build a new=20
DOM</FONT> <BR><FONT =
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try=20
{</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xsdParser =3D new XSDParser();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xsdParser.parse(uri);</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xmlDoc =3D xsdParser.getDocument();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT> =
<BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch =
(Exception ex)=20
{</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
ex.printStackTrace();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
return null;</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT>=20
<P><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; return =

xmlDoc;</FONT> <BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** doIt */</FONT> <BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; private void doIt() {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try {</FONT> =
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
Document xmlDOM =3D openXMLDOMUsingXSDParser("<A=20
=
href=3D"http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl=
/</A>");</FONT>=20
<BR><FONT=20
=
size=3D-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;=20
Document xmlDOM =3D =
openXMLDOMUsingXSDParser("./wsdl.xsd");</FONT>&nbsp; <FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
Element rootElement =3D =
xmlDOM.getDocumentElement();</FONT>&nbsp;<FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
XSDSchema xsdSchema =3D =
XSDFactory.eINSTANCE.createXSDSchema();</FONT>=20
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xsdSchema.setDocument(xmlDOM);</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xsdSchema.setElement(rootElement);</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xsdSchema.updateElement();</FONT>&nbsp;<FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
System.out.println("\n\n");</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
XSDResourceImpl.serialize(System.out,=20
xsdSchema.getElement());</FONT>&nbsp;<FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
=
System.out.println(" &gt;&gt;&gt;&gt;&gt;&gt;&gt;& ;gt;&gt;&gt;&gt;&gt;&gt;&=
gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;& amp;gt;=20
VALIDATION=20
=
&gt;&gt;&gt;&gt;&gt;&gt;&gt;& ;gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt;&gt;&=
gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;"); </FONT>=20
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xsdSchema.validate();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
//EList eList =3D xsdMainSchema.getDiagnostics();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
EList eList =3D xsdSchema.getAllDiagnostics();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
for (int i =3D 0; i &lt; eList.size(); i++) {</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;=20
XSDDiagnostic xsdDiagnostic =3D (XSDDiagnostic)eList.get(i);</FONT> =
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;=20
System.out.println(i + ": At line #" + xsdDiagnostic.getLine() + "(" =
+=20
xsdDiagnostic.getColumn() + "), " + xsdDiagnostic.getMessage() + "; =
Node =3D=20
[" + xsdDiagnostic.getNode().getNodeName() + "]");</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
}</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
=
System.out.println(" &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&=
lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;& amp;lt;&lt;&lt;&lt;&lt;&lt;&lt;& lt;&lt;&lt;&l=
t;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&a mp;lt;&lt;&lt;&lt;&lt;&lt;&lt;&l t;&lt;&lt;&lt=
;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&am p;lt;&lt;&lt; ");</FONT>=20
<BR><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
}</FONT>=20
<BR><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch =

(Exception ex) {</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
ex.printStackTrace();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** main - the main entry =
*/</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; public static void =
main(String[] args)=20
{</FONT> <BR><FONT =
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
EclipseXSDDemo2 app =3D new EclipseXSDDemo2();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
app.doIt();</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT> <BR><FONT=20
size=3D-1>}Regards,</FONT>&nbsp; <FONT size=3D-1>Pae</FONT>=20
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed=20
Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB4F504.6527C9F2@ca.ibm.com">news:3EB4F504.6527C9F2@ca.ibm.=
com</A>...Pae,=20

<P>No, the standalone version worked too.&nbsp; What exception did =
you=20
see? <BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">&nbsp;<FONT size=3D-1>Ed,</FONT> <FONT=20
size=3D-1>That surely helped with v1.0.2. And THANK you for =
that. One=20
quick question is:Do you also have an exception thrown when =
running with=20
v1.1.0 as standalone.</FONT> <FONT =
size=3D-1>Regards,</FONT>&nbsp; <FONT=20
size=3D-1>Pae</FONT>=20
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: =
5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed=20
Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB3A206.9781C42@ca.ibm.com">news:3EB3A206.9781C42@ca.ibm.co=
m</A>...Pae,=20

<P>The XSD model expects a DOM that's namespace aware, so =
<FONT=20
color=3D#3333ff>this</FONT> addition to your sample code will =
improve=20
your result:=20
<P>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String uri) =
{=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create a =
factory=20
object for creating DOM parsers=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilderFactory&nbsp; factory =3D=20
DocumentBuilderFactory.newInstance();=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;=20
builder =3D null; =
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D null;=20
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT =
color=3D#3333ff>&nbsp;&nbsp;=20
factory.setNamespaceAware(true);</FONT>=20
<P>Without this, element.getNamespaceURI and =
element.getLocalName both=20
return null... <BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">
<STYLE></STYLE>
<FONT size=3D-1>Ed,</FONT> <FONT size=3D-1>I have a sample =
code that=20
test a DOM of XML Schema with Eclipse/XSD andproducing two =
different=20
results.</FONT> <FONT size=3D-1>With v1.0.2, it seems ok =
except the=20
diagnostic message we are discussing.With v1.1.0, it throws =
an=20
exception.Regards,</FONT>&nbsp; <FONT size=3D-1>Pae</FONT> =
<FONT=20
size=3D-1>P.S.: The code snippet is as follows:</FONT> <FONT =

size=3D-1>// ################## CODE SNIPPET=20
##################/*</FONT> <BR><FONT size=3D-1>&nbsp;*=20
EclipseXSDDemo1.java</FONT> <BR><FONT =
size=3D-1>&nbsp;*</FONT>=20
<BR><FONT size=3D-1>&nbsp;* Created on May 2, 2003, 11:13 =
PM</FONT>=20
<BR><FONT size=3D-1>&nbsp;*/</FONT> <FONT size=3D-1>package=20
org.paechoi.xsd.test;// W3C/DOM</FONT> <BR><FONT=20
size=3D-1>import&nbsp;=20
javax.xml.parsers.DocumentBuilderFactory;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; =
javax.xml.parsers.DocumentBuilder;</FONT>=20
<BR><FONT size=3D-1>import&nbsp; =
org.w3c.dom.Document;</FONT>=20
<BR><FONT size=3D-1>import&nbsp; org.w3c.dom.Element;</FONT> =
<BR><FONT=20
size=3D-1>// Eclipse/XSD</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
org.eclipse.xsd.XSDFactory;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
org.eclipse.xsd.XSDSchema;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
org.eclipse.xsd.impl.XSDSchemaImpl;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; =
org.eclipse.xsd.util.XSDResourceImpl;</FONT>=20
<BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.xsd.util.XSDResourceFactoryImpl;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; org.eclipse.xsd.XSDDiagnostic;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; =
org.eclipse.emf.ecore.resource.Resource;</FONT>=20
<BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.emf.ecore.resource.ResourceSet;</FONT> <BR><FONT =

size=3D-1>import&nbsp;=20
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;</FONT>=20
<BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.emf.common.util.EList;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; java.io.File;</FONT> <BR><FONT=20
size=3D-1>/**</FONT> <BR><FONT size=3D-1>&nbsp;*</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;* @author&nbsp; pae</FONT> <BR><FONT=20
size=3D-1>&nbsp;*/</FONT> <BR><FONT size=3D-1>public class=20
EclipseXSDDemo1 {</FONT> <BR><FONT =
size=3D-1>//&nbsp;&nbsp;&nbsp;=20
private&nbsp;&nbsp;&nbsp;&nbsp;=20
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp; xmlDOM =
=3D=20
null;</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; // instance =
initializer</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; {</FONT> <BR><FONT=20
size=3D-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;=20
=
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =

new XSDResourceFactoryImpl());</FONT> <BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** Creates a new =
instance of=20
EclipseXSDDemo1 */</FONT> <BR><FONT =
size=3D-1>&nbsp;&nbsp;&nbsp;=20
public EclipseXSDDemo1() {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
super();</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM =
*/</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; private Document=20
openXMLDOM(String uri) {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // =
Create a=20
factory object for creating DOM parsers</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilderFactory&nbsp; factory =3D=20
DocumentBuilderFactory.newInstance();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;=20
builder =3D null;</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D null;</FONT>=20
<P><FONT =
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Build=20
a new DOM</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try =
{</FONT>=20
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
// Now use the factory to create a DOM parser (a.k.a. a=20
DocumentBuilder)</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
builder =3D factory.newDocumentBuilder();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xmlDoc =3D builder.parse(uri);</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
}</FONT>=20
<BR><FONT =
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch=20
(Exception ex) {</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
ex.printStackTrace();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
return null;</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
}</FONT>=20
<P><FONT =
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; return=20
xmlDoc;</FONT> <BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; =
}</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** doIt */</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; private void doIt() {</FONT> =
<BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
Document xmlDOM =3D=20
openXMLDOM("<A=20
=
href=3D"http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl=
/</A>");</FONT>=20
<BR><FONT =
size=3D-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;=20
Document xmlDOM =3D =
openXMLDOM("./wsdl.xsd");</FONT>&nbsp;<FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Element =

rootElement =3D =
xmlDOM.getDocumentElement();</FONT>&nbsp;<FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
XSDSchema=20
xsdSchema =3D XSDFactory.eINSTANCE.createXSDSchema();</FONT> =
<BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
xsdSchema.setDocument(xmlDOM);</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;
Re: A Diagnostic Message for the Valid Schema [message #21253 is a reply to message #21214] Mon, 05 May 2003 11:19 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: merks.ca.ibm.com

--------------06FA1DA87AC1B7722CE0378E
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Pae,

This is described in the FAQ.

The files are plugins/org.apache.xerces_4.0.7/xmlParserAPIs.jar, and
plugins/org.apache.xerces_4.0.7/xercesImpl.jar. Version Xerces-J 2.0.2
(or XML4J 4.0.7) comes with Eclipse 2.1.0.


Pae Choi wrote:

> Ed, Where could I get those two JARs for the xerces you mentioned.
> Andwhat version is that? Thank you. Regards, Pae
>
> "Ed Merks" <merks@ca.ibm.com> wrote in message
> news:3EB64063.883B5444@ca.ibm.com...Pae,
>
> XSD only is tested to work with the version of Xerces in
> Eclipse.
>
>
> Pae Choi wrote:
>
> > Ed, I also tested with XSD v1.1.0 + EMF v1.1.0 with
> > xerces v2.2.1 and v2.4.0, butam still having an exception.
> > However, the exceptions are not same as previousone. The
> > exceptions and the associated code snippet are as
> > follows:// ### Exception with xerces v2.2.1
> > ###java.lang.NullPointerException
> > at
> > org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263)
> >
> > at
> > org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown
> > Source)
> > at
> > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDecl(Unknown
> > Source)
> > at
> > org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(Unknown
> > Source)
> > at
> > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknown
> > Source)
> > at
> > org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
> > Source)
> > at
> > org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
> > Source)
> > at org.apache.xerces.parsers.XMLParser.parse(Unknown
> > Source)
> > at
> > org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
> > Source)
> > at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
> > at
> > org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)
> > at
> > org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDDemo2.java:87)
> >
> > at
> > org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101)
> >
> > at
> > org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)
> >
> > java.lang.NullPointerException
> > at
> > org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104)
> >
> > at
> > org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)//
> > ### Exception with xerces v2.4.0
> > ###java.lang.NullPointerException
> > at
> > org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263)
> >
> > at
> > org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown
> > Source)
> > at
> > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDecl(Unknown
> > Source)
> > at
> > org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(Unknown
> > Source)
> > at
> > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknown
> > Source)
> > at
> > org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> > Source)
> > at
> > org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
> > Source)
> > at org.apache.xerces.parsers.XMLParser.parse(Unknown
> > Source)
> > at
> > org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
> > Source)
> > at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
> > at
> > org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)
> > at
> > org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDDemo2.java:87)
> >
> > at
> > org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101)
> >
> > at
> > org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)
> >
> > java.lang.NullPointerException
> > at
> > org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104)
> >
> > at
> > org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)
> >
> > // ### Code Snippet ###/*
> > * EclipseXSDDemo2.java
> > *
> > * Created on May 2, 2003, 11:13 PM
> > *
> > */ package org.paechoi.xsd.test;// W3C/DOM
> > import javax.xml.parsers.DocumentBuilderFactory;
> > import javax.xml.parsers.DocumentBuilder;
> > import org.w3c.dom.Document;
> > import org.w3c.dom.Element;
> > // Eclipse/XSD
> > import org.eclipse.xsd.util.XSDParser;
> > import org.eclipse.xsd.XSDFactory;
> > import org.eclipse.xsd.XSDSchema;
> > import org.eclipse.xsd.impl.XSDSchemaImpl;
> > import org.eclipse.xsd.util.XSDResourceImpl;
> > import org.eclipse.xsd.util.XSDResourceFactoryImpl;
> > import org.eclipse.xsd.XSDDiagnostic;
> > import org.eclipse.emf.ecore.resource.Resource;
> > import org.eclipse.emf.ecore.resource.ResourceSet;
> > import
> > org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
> > import org.eclipse.emf.common.util.EList;
> > import java.io.File;
> > import java.io.FileOutputStream;
> > import java.io.PrintStream;
> > import java.io.FileNotFoundException;
> > /**
> > *
> > * @author pae
> > */
> > public class EclipseXSDDemo2 {
> > // private Document xmlDOM = null;
> > private XSDParser xsdParser = null; //
> > instance initializer
> > {
> > //
> > Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd",
> > new XSDResourceFactoryImpl());
> > }
> >
> > /** Creates a new instance of EclipseXSDDemo2 */
> > public EclipseXSDDemo2() {
> > super(); // Redirect the System.err
> > try {
> > System.setErr(new PrintStream(new
> > FileOutputStream("errors.log", true)));
> > }
> > catch (FileNotFoundException
> > fileNotFoundException) {
> > }
> > }
> >
> > /** Open a XML DOM */
> > private Document openXMLDOM(String uri) {
> > // Create a factory object for creating DOM
> > parsers
> > DocumentBuilderFactory factory =
> > DocumentBuilderFactory.newInstance();
> > DocumentBuilder builder = null;
> > Document xmlDoc = null;
> >
> > // Build a new DOM
> > try {
> > // Now use the factory to create a DOM parser
> > (a.k.a. a DocumentBuilder)
> > factory.setNamespaceAware(true);
> > builder = factory.newDocumentBuilder();
> > xmlDoc = builder.parse(uri);
> > }
> > catch (Exception ex) {
> > ex.printStackTrace();
> > return null;
> > }
> >
> > return xmlDoc;
> > }
> >
> > /** Open a XML DOM using XSDParser */
> > private Document openXMLDOMUsingXSDParser(String uri)
> > {
> > Document xmlDoc = null;
> >
> > // Build a new DOM
> > try {
> > xsdParser = new XSDParser();
> > xsdParser.parse(uri);
> > xmlDoc = xsdParser.getDocument();
> > }
> > catch (Exception ex) {
> > ex.printStackTrace();
> > return null;
> > }
> >
> > return xmlDoc;
> > }
> >
> > /** doIt */
> > private void doIt() {
> > try {
> > Document xmlDOM =
> > openXMLDOMUsingXSDParser("http://schemas.xmlsoap.org/wsdl/");
> >
> > // Document xmlDOM =
> > openXMLDOMUsingXSDParser("./wsdl.xsd");
> > Element rootElement =
> > xmlDOM.getDocumentElement(); XSDSchema
> > xsdSchema = XSDFactory.eINSTANCE.createXSDSchema();
> > xsdSchema.setDocument(xmlDOM);
> > xsdSchema.setElement(rootElement);
> > xsdSchema.updateElement();
> > System.out.println("\n\n");
> > XSDResourceImpl.serialize(System.out,
> > xsdSchema.getElement());
> > System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION
> > >>>>>>>>>>>>>>>>>>>>>>>>>>");
> > xsdSchema.validate();
> > //EList eList =
> > xsdMainSchema.getDiagnostics();
> > EList eList = xsdSchema.getAllDiagnostics();
> > for (int i = 0; i < eList.size(); i++) {
> > XSDDiagnostic xsdDiagnostic =
> > (XSDDiagnostic)eList.get(i);
> > System.out.println(i + ": At line #" +
> > xsdDiagnostic.getLine() + "(" + xsdDiagnostic.getColumn()
> > + "), " + xsdDiagnostic.getMessage() + "; Node = [" +
> > xsdDiagnostic.getNode().getNodeName() + "]");
> > }
> >
> > System.out.println("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<");
> >
> > }
> > catch (Exception ex) {
> > ex.printStackTrace();
> > }
> > }
> >
> > /** main - the main entry */
> > public static void main(String[] args) {
> > EclipseXSDDemo2 app = new EclipseXSDDemo2();
> > app.doIt();
> > }
> > }Regards, Pae
> >
> > "Ed Merks" <merks@ca.ibm.com> wrote in message
> > news:3EB4F504.6527C9F2@ca.ibm.com...Pae,
> >
> > No, the standalone version worked too. What
> > exception did you see?
> >
> >
> > Pae Choi wrote:
> >
> > > Ed, That surely helped with v1.0.2. And THANK
> > > you for that. One quick question is:Do you also
> > > have an exception thrown when running with
> > > v1.1.0 as standalone.Regards, Pae
> > >
> > > "Ed Merks" <merks@ca.ibm.com> wrote
> > > in message
> > > news:3EB3A206.9781C42@ca.ibm.com...Pae,
> > >
> > > The XSD model expects a DOM that's
> > > namespace aware, so this addition to
> > > your sample code will improve your
> > > result:
> > >
> > > private Document
> > > openXMLDOM(String uri) {
> > > // Create a factory object
> > > for creating DOM parsers
> > > DocumentBuilderFactory
> > > factory =
> > > DocumentBuilderFactory.newInstance();
> > >
> > > DocumentBuilder
> > > builder = null;
> > > Document
> > > xmlDoc = null;
> > >
> > >
> > > factory.setNamespaceAware(true);
> > >
> > > Without this, element.getNamespaceURI
> > > and element.getLocalName both return
> > > null...
> > >
> > >
> > > Pae Choi wrote:
> > >
> > > > Ed, I have a sample code that test
> > > > a DOM of XML Schema with
> > > > Eclipse/XSD andproducing two
> > > > different results. With v1.0.2, it
> > > > seems ok except the diagnostic
> > > > message we are discussing.With
> > > > v1.1.0, it throws an
> > > > exception.Regards, Pae P.S.: The
> > > > code snippet is as follows://
> > > > ################## CODE SNIPPET
> > > > ##################/*
> > > > * EclipseXSDDemo1.java
> > > > *
> > > > * Created on May 2, 2003, 11:13 PM
> > > >
> > > > */ package org.paechoi.xsd.test;//
> > > > W3C/DOM
> > > > import
> > > > javax.xml.parsers.DocumentBuilderFactory;
> > > >
> > > > import
> > > > javax.xml.parsers.DocumentBuilder;
> > > > import org.w3c.dom.Document;
> > > > import org.w3c.dom.Element;
> > > > // Eclipse/XSD
> > > > import org.eclipse.xsd.XSDFactory;
> > > >
> > > > import org.eclipse.xsd.XSDSchema;
> > > > import
> > > > org.eclipse.xsd.impl.XSDSchemaImpl;
> > > >
> > > > import
> > > > org.eclipse.xsd.util.XSDResourceImpl;
> > > >
> > > > import
> > > > org.eclipse.xsd.util.XSDResourceFactoryImpl;
> > > >
> > > > import
> > > > org.eclipse.xsd.XSDDiagnostic;
> > > > import
> > > > org.eclipse.emf.ecore.resource.Resource;
> > > >
> > > > import
> > > > org.eclipse.emf.ecore.resource.ResourceSet;
> > > >
> > > > import
> > > > org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
> > > >
> > > > import
> > > > org.eclipse.emf.common.util.EList;
> > > > import java.io.File;
> > > > /**
> > > > *
> > > > * @author pae
> > > > */
> > > > public class EclipseXSDDemo1 {
> > > > // private Document
> > > > xmlDOM = null;
> > > >
> > > > // instance initializer
> > > > {
> > > > //
> > > > Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd",
> > > > new XSDResourceFactoryImpl());
> > > > }
> > > >
> > > > /** Creates a new instance of
> > > > EclipseXSDDemo1 */
> > > > public EclipseXSDDemo1() {
> > > > super();
> > > > }
> > > >
> > > > /** Open a XML DOM */
> > > > private Document
> > > > openXMLDOM(String uri) {
> > > > // Create a factory object
> > > > for creating DOM parsers
> > > > DocumentBuilderFactory
> > > > factory =
> > > > DocumentBuilderFactory.newInstance();
> > > >
> > > > DocumentBuilder
> > > > builder = null;
> > > > Document
> > > > xmlDoc = null;
> > > >
> > > > // Build a new DOM
> > > > try {
> > > > // Now use the factory
> > > > to create a DOM parser (a.k.a. a
> > > > DocumentBuilder)
> > > > builder =
> > > > factory.newDocumentBuilder();
> > > > xmlDoc =
> > > > builder.parse(uri);
> > > > }
> > > > catch (Exception ex) {
> > > > ex.printStackTrace();
> > > > return null;
> > > > }
> > > >
> > > > return xmlDoc;
> > > > }
> > > >
> > > > /** doIt */
> > > > private void doIt() {
> > > > Document xmlDOM =
> > > > openXMLDOM("http://schemas.xmlsoap.org/wsdl/");
> > > >
> > > > // Document xmlDOM =
> > > > openXMLDOM("./wsdl.xsd");
> > > > Element rootElement =
> > > > xmlDOM.getDocumentElement();
> > > > XSDSchema xsdSchema =
> > > > XSDFactory.eINSTANCE.createXSDSchema();
> > > >
> > > >
> > > > xsdSchema.setDocument(xmlDOM);
> > > >
> > > > xsdSchema.setElement(rootElement);
> > > >
> > > > xsdSchema.updateElement();
> > > > System.out.println("\n\n");
> > > >
> > > > XSDResourceImpl.serialize(System.out,
> > > > xsdSchema.getElement());
> > > > System.out.println(">>>>>>>>>>>>>>>>>>>>>>
> > > > VALIDATION
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>");
> > > > xsdSchema.validate();
> > > > //EList eList =
> > > > xsdMainSchema.getDiagnostics();
> > > > EList eList =
> > > > xsdSchema.getAllDiagnostics();
> > > > for (int i = 0; i <
> > > > eList.size(); i++) {
> > > > XSDDiagnostic
> > > > xsdDiagnostic =
> > > > (XSDDiagnostic)eList.get(i);
> > > > System.out.println(i +
> > > > ": Diagnostic Message = [" +
> > > > xsdDiagnostic.getMessage() + "]");
> > > > }
> > > >
> > > > System.out.println("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<");
> > > >
> > > > }
> > > >
> > > > /** main - the main entry */
> > > > public static void
> > > > main(String[] args) {
> > > > EclipseXSDDemo1 app = new
> > > > EclipseXSDDemo1();
> > > > app.doIt();
> > > > }
> > > > }
> > > >
> > > > "Ed Merks"
> > > > <merks@ca.ibm.com> wrote
> > > > in message
> > > > news:3EB25ED9.AE2CB299@ca.ibm.com...Pae,
> > > >
> > > > I'm seeing this result
> > > > with the just published
> > > > 1.1.0 driver:
> > > >
> > > > [Image]
> > > >
> > > > The schema isn't valid.
> > > >
> > > >
> > > > Pae Choi wrote:
> > > >
> > > > > I have a simple test
> > > > > schema as follows:
> > > > >
> > > > > <?xml version="1.0"
> > > > > encoding="UTF-8"?>
> > > > > <!--W3C Schema
> > > > > generated by Pae -->
> > > > > <xsd:schema
> > > > > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > > > >
> > > > > elementFormDefault="qualified">
> > > > >
> > > > > <xsd:element
> > > > > name="CommonLogin">
> > > > > <xsd:complexType>
> > > > > <xsd:sequence>
> > > > > <xsd:element
> > > > > name="username"
> > > > > ref="usernameRef"/>
> > > > > <xsd:element
> > > > > name="password"
> > > > > ref="passwordRef"/>
> > > > > </xsd:sequence>
> > > > > </xsd:complexType>
> > > > > </xsd:element>
> > > > > <xsd:element
> > > > > name="passwordRef"
> > > > > type="xsd:string"/>
> > > > > <xsd:element
> > > > > name="usernameRef"
> > > > > type="xsd:string"/>
> > > > > </xsd:schema>
> > > > >
> > > > > This is a very simple
> > > > > sample, but it is a
> > > > > valid schema. But when
> > > > > I use the validate()
> > > > > and getDiagnostics()
> > > > > methods in the
> > > > > XSDSchema
> > > > > interface it gives me a
> > > > > message as follows:
> > > > >
> > > > > XSD: The element
> > > > > '#null' is not
> > > > > permitted as
> > > > > constrained by 'XML
> > > > > Schema ';
> > > > > expecting schema
> > > > >
> > > > > I do not understand
> > > > > what the message is
> > > > > saying. Any comments?
> > > > >
> > > > > Pae
> > > >

--------------06FA1DA87AC1B7722CE0378E
Content-Type: multipart/related;
boundary="------------20A806D4F97B98082D27D354"


--------------20A806D4F97B98082D27D354
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<body bgcolor="#FFFFFF">
Pae,
<p>This is described in the FAQ.
<p>The files are plugins/org.apache.xerces_4.0.7/xmlParserAPIs.jar, and
plugins/org.apache.xerces_4.0.7/xercesImpl.jar. Version Xerces-J 2.0.2
(or XML4J 4.0.7) comes with Eclipse 2.1.0.
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE=CITE>&nbsp;<font size=-1>Ed,</font> <font size=-1>Where
could I get those two JARs for the xerces you mentioned. Andwhat version
is that? Thank you.</font> <font size=-1>Regards,</font>&nbsp; <font size=-1>Pae</font>
<blockquote dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed
Merks" &lt;<a href="mailto:merks@ca.ibm.com">merks@ca.ibm.com</a>> wrote
in message <a href="news:3EB64063.883B5444@ca.ibm.com">news:3EB64063.883B5444@ca.ibm.com</a>...Pae,
<p>XSD only is tested to work with the version of Xerces in Eclipse.
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE="CITE">&nbsp;<font size=-1>Ed,</font> <font size=-1>I
also tested with XSD v1.1.0 + EMF v1.1.0 with xerces v2.2.1 and v2.4.0,
butam still having an exception. However, the exceptions are not same as
previousone. The exceptions and the associated code snippet are as follows://
### Exception with xerces v2.2.1 ###java.lang.NullPointerException</font>
<br><font size=-1>&nbsp;at org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263) </font>
<br><font size=-1>&nbsp;at org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDecl(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.parsers.XMLParser.parse(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
Source)</font>
<br><font size=-1>&nbsp;at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)</font >
<br><font size=-1>&nbsp;at org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)</font >
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDDemo2.java:87) </font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101) </font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) </font>
<br><font size=-1>java.lang.NullPointerException</font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104) </font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)//
### Exception with xerces v2.4.0 ###java.lang.NullPointerException</font>
<br><font size=-1>&nbsp;at org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263) </font>
<br><font size=-1>&nbsp;at org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDecl(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.parsers.XMLParser.parse(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
Source)</font>
<br><font size=-1>&nbsp;at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)</font >
<br><font size=-1>&nbsp;at org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)</font >
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDDemo2.java:87) </font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101) </font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) </font>
<br><font size=-1>java.lang.NullPointerException</font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104) </font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) </font>
<br>&nbsp;<font size=-1>// ### Code Snippet ###/*</font>
<br><font size=-1>&nbsp;* EclipseXSDDemo2.java</font>
<br><font size=-1>&nbsp;*</font>
<br><font size=-1>&nbsp;* Created on May 2, 2003, 11:13 PM</font>
<br><font size=-1>&nbsp;*</font>
<br><font size=-1>&nbsp;*/</font> <font size=-1>package org.paechoi.xsd.test;//
W3C/DOM</font>
<br><font size=-1>import&nbsp; javax.xml.parsers.DocumentBuilderFactory;</font>
<br><font size=-1>import&nbsp; javax.xml.parsers.DocumentBuilder;</font>
<br><font size=-1>import&nbsp; org.w3c.dom.Document;</font>
<br><font size=-1>import&nbsp; org.w3c.dom.Element;</font>
<br><font size=-1>// Eclipse/XSD</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.util.XSDParser;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDFactory;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDSchema;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.impl.XSDSchemaImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.util.XSDResourceImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.util.XSDResourceFactoryImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDDiagnostic;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.Resource;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.ResourceSet;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.common.util.EList;</font>
<br><font size=-1>import&nbsp; java.io.File;</font>
<br><font size=-1>import&nbsp; java.io.FileOutputStream;</font>
<br><font size=-1>import&nbsp; java.io.PrintStream;</font>
<br><font size=-1>import&nbsp; java.io.FileNotFoundException;</font>
<br><font size=-1>/**</font>
<br><font size=-1>&nbsp;*</font>
<br><font size=-1>&nbsp;* @author&nbsp; pae</font>
<br><font size=-1>&nbsp;*/</font>
<br><font size=-1>public class EclipseXSDDemo2 {</font>
<br><font size=-1>//&nbsp;&nbsp;&nbsp; private&nbsp;&nbsp;&nbsp;&nbsp;
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp; xmlDOM = null;</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&am p;nbsp;&nbsp;&nbsp;
XSDParser&nbsp;&nbsp; xsdParser = null;</font>&nbsp;<font size=-1>&nbsp;&nbsp;&nbsp;
// instance initializer</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; {</font>
<br><font size=-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp; Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd",
new XSDResourceFactoryImpl());</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** Creates a new instance of EclipseXSDDemo2
*/</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; public EclipseXSDDemo2() {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; super();</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
// Redirect the System.err</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; try
{</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
System.setErr(new PrintStream(new FileOutputStream("errors.log", true)));</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; }</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; catch
(FileNotFoundException fileNotFoundException) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; }</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String
uri) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create
a factory object for creating DOM parsers</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilderFactory&nbsp;
factory = DocumentBuilderFactory.newInstance();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;
builder = null;</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = null;</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Build a
new DOM</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// Now use the factory to create a DOM parser (a.k.a. a DocumentBuilder)</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
factory.setNamespaceAware(true);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
builder = factory.newDocumentBuilder();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = builder.parse(uri);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch (Exception
ex) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ex.printStackTrace();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return null;</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; return xmlDoc;</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM using XSDParser
*/</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private Document openXMLDOMUsingXSDParser(String
uri) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document&nbsp;&nbsp;&nbsp;
xmlDoc = null;</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Build a
new DOM</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xsdParser = new XSDParser();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xsdParser.parse(uri);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = xsdParser.getDocument();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch (Exception
ex) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ex.printStackTrace();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return null;</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; return xmlDoc;</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** doIt */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private void doIt() {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Document xmlDOM = openXMLDOMUsingXSDParser("<a href="http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl/</a>");</font>
<br><font size=-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Document xmlDOM = openXMLDOMUsingXSDParser("./wsdl.xsd");</font>&nbsp; <font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Element rootElement = xmlDOM.getDocumentElement();</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
XSDSchema xsdSchema = XSDFactory.eINSTANCE.createXSDSchema();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xsdSchema.setDocument(xmlDOM);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xsdSchema.setElement(rootElement);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xsdSchema.updateElement();</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
System.out.println("\n\n");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
XSDResourceImpl.serialize(System.out, xsdSchema.getElement());</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION >>>>>>>>>>>>>>>>>>>>>>>>>>");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xsdSchema.validate();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
//EList eList = xsdMainSchema.getDiagnostics();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
EList eList = xsdSchema.getAllDiagnostics();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
for (int i = 0; i &lt; eList.size(); i++) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
XSDDiagnostic xsdDiagnostic = (XSDDiagnostic)eList.get(i);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
System.out.println(i + ": At line #" + xsdDiagnostic.getLine() + "(" +
xsdDiagnostic.getColumn() + "), " + xsdDiagnostic.getMessage() + "; Node
= [" + xsdDiagnostic.getNode().getNodeName() + "]");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
System.out.println(" &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; ");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch (Exception
ex) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ex.printStackTrace();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** main - the main entry */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; public static void main(String[] args)
{</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; EclipseXSDDemo2
app = new EclipseXSDDemo2();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; app.doIt();</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<br><font size=-1>}Regards,</font>&nbsp; <font size=-1>Pae</font>
<blockquote dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed
Merks" &lt;<a href="mailto:merks@ca.ibm.com">merks@ca.ibm.com</a>> wrote
in message <a href="news:3EB4F504.6527C9F2@ca.ibm.com">news:3EB4F504.6527C9F2@ca.ibm.com</a>...Pae,
<p>No, the standalone version worked too.&nbsp; What exception did you
see?
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE="CITE">&nbsp;<font size=-1>Ed,</font> <font size=-1>That
surely helped with v1.0.2. And THANK you for that. One quick question is:Do
you also have an exception thrown when running with v1.1.0 as standalone.Regards,</font>&nbsp;
<font size=-1>Pae</font>
<blockquote dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed
Merks" &lt;<a href="mailto:merks@ca.ibm.com">merks@ca.ibm.com</a>> wrote
in message <a href="news:3EB3A206.9781C42@ca.ibm.com">news:3EB3A206.9781C42@ca.ibm.com</a>...Pae,
<p>The XSD model expects a DOM that's namespace aware, so <font color="#3333FF">this</font>
addition to your sample code will improve your result:
<p>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String uri) {
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create a factory object
for creating DOM parsers
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilderFactory&nbsp;
factory = DocumentBuilderFactory.newInstance();
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;
builder = null;
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = null;
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#3333FF">&nbsp;&nbsp; factory.setNamespaceAware(true);</font>
<p>Without this, element.getNamespaceURI and element.getLocalName both
return null...
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE="CITE"><style></style>
<font size=-1>Ed,</font> <font size=-1>I
have a sample code that test a DOM of XML Schema with Eclipse/XSD andproducing
two different results.</font> <font size=-1>With v1.0.2, it seems ok except
the diagnostic message we are discussing.With v1.1.0, it throws an exception.Regards,</font>

<font size=-1>Pae</font> <font size=-1>P.S.: The code snippet is as follows://
################## CODE SNIPPET ##################/*</font>
<br><font size=-1>&nbsp;* EclipseXSDDemo1.java</font>
<br><font size=-1>&nbsp;*</font>
<br><font size=-1>&nbsp;* Created on May 2, 2003, 11:13 PM</font>
<br><font size=-1>&nbsp;*/</font> <font size=-1>package org.paechoi.xsd.test;//
W3C/DOM</font>
<br><font size=-1>import&nbsp; javax.xml.parsers.DocumentBuilderFactory;</font>
<br><font size=-1>import&nbsp; javax.xml.parsers.DocumentBuilder;</font>
<br><font size=-1>import&nbsp; org.w3c.dom.Document;</font>
<br><font size=-1>import&nbsp; org.w3c.dom.Element;</font>
<br><font size=-1>// Eclipse/XSD</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDFactory;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDSchema;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.impl.XSDSchemaImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.util.XSDResourceImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.util.XSDResourceFactoryImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDDiagnostic;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.Resource;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.ResourceSet;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.common.util.EList;</font>
<br><font size=-1>import&nbsp; java.io.File;</font>
<br><font size=-1>/**</font>
<br><font size=-1>&nbsp;*</font>
<br><font size=-1>&nbsp;* @author&nbsp; pae</font>
<br><font size=-1>&nbsp;*/</font>
<br><font size=-1>public class EclipseXSDDemo1 {</font>
<br><font size=-1>//&nbsp;&nbsp;&nbsp; private&nbsp;&nbsp;&nbsp;&nbsp;
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp; xmlDOM = null;</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; // instance initializer</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; {</font>
<br><font size=-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp; Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd",
new XSDResourceFactoryImpl());</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** Creates a new instance of EclipseXSDDemo1
*/</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; public EclipseXSDDemo1() {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; super();</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String
uri) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create
a factory object for creating DOM parsers</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilderFactory&nbsp;
factory = DocumentBuilderFactory.newInstance();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;
builder = null;</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = null;</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Build a
new DOM</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&
Re: A Diagnostic Message for the Valid Schema [message #21293 is a reply to message #21253] Mon, 05 May 2003 11:58 Go to previous message
Eclipse UserFriend
Originally posted by: paechoi.earthlink.net

This is a multi-part message in MIME format.

------=_NextPart_000_006F_01C312DC.27C590B0
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0070_01C312DC.27C71750"


------=_NextPart_001_0070_01C312DC.27C71750
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Ed,

I thought I saw somthing related to Xerces issue, but I wasn't sure =
exactly
where it was.

Unlike many *smart and charming users*, you need to have at least one =
like
me who ask dumb and silly questions. I will try to improve the user's =
responsibilities,
to meet the DEVELOPER's EXPECTATIONS, but am not so sure how effectively
I will achieve that goal. Have a pleasant day! :-)

Regards,


Pae


"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB648CF.EECF4637@ca.ibm.com...
Pae,=20
This is described in the FAQ.=20

The files are plugins/org.apache.xerces_4.0.7/xmlParserAPIs.jar, and =
plugins/org.apache.xerces_4.0.7/xercesImpl.jar. Version Xerces-J 2.0.2 =
(or XML4J 4.0.7) comes with Eclipse 2.1.0.=20
=20

Pae Choi wrote:=20

Ed, Where could I get those two JARs for the xerces you mentioned. =
Andwhat version is that? Thank you. Regards, Pae=20
"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB64063.883B5444@ca.ibm.com...Pae,=20
XSD only is tested to work with the version of Xerces in Eclipse.=20
=20

Pae Choi wrote:=20

Ed, I also tested with XSD v1.1.0 + EMF v1.1.0 with xerces =
v2.2.1 and v2.4.0, butam still having an exception. However, the =
exceptions are not same as previousone. The exceptions and the =
associated code snippet are as follows:// ### Exception with xerces =
v2.2.1 ###java.lang.NullPointerException=20
at org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263) =

at org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown =
Source)=20
at =
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDe=
cl(Unknown Source)=20
at =
org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(=
Unknown Source)=20
at =
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknow=
n Source)=20
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown =
Source)=20
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown =
Source)=20
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)=20
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown =
Source)=20
at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)=20
at org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDD=
emo2.java:87)=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101)=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)=20
java.lang.NullPointerException=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104)=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)// =
### Exception with xerces v2.4.0 ###java.lang.NullPointerException=20
at org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263) =

at org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown =
Source)=20
at =
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDe=
cl(Unknown Source)=20
at =
org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(=
Unknown Source)=20
at =
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknow=
n Source)=20
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown =
Source)=20
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown =
Source)=20
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)=20
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown =
Source)=20
at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)=20
at org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDD=
emo2.java:87)=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101)=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)=20
java.lang.NullPointerException=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104)=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)=20
// ### Code Snippet ###/*=20
* EclipseXSDDemo2.java=20
*=20
* Created on May 2, 2003, 11:13 PM=20
*=20
*/ package org.paechoi.xsd.test;// W3C/DOM=20
import javax.xml.parsers.DocumentBuilderFactory;=20
import javax.xml.parsers.DocumentBuilder;=20
import org.w3c.dom.Document;=20
import org.w3c.dom.Element;=20
// Eclipse/XSD=20
import org.eclipse.xsd.util.XSDParser;=20
import org.eclipse.xsd.XSDFactory;=20
import org.eclipse.xsd.XSDSchema;=20
import org.eclipse.xsd.impl.XSDSchemaImpl;=20
import org.eclipse.xsd.util.XSDResourceImpl;=20
import org.eclipse.xsd.util.XSDResourceFactoryImpl;=20
import org.eclipse.xsd.XSDDiagnostic;=20
import org.eclipse.emf.ecore.resource.Resource;=20
import org.eclipse.emf.ecore.resource.ResourceSet;=20
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;=20
import org.eclipse.emf.common.util.EList;=20
import java.io.File;=20
import java.io.FileOutputStream;=20
import java.io.PrintStream;=20
import java.io.FileNotFoundException;=20
/**=20
*=20
* @author pae=20
*/=20
public class EclipseXSDDemo2 {=20
// private Document xmlDOM =3D null;=20
private XSDParser xsdParser =3D null; // =
instance initializer=20
{=20
// =
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =
new XSDResourceFactoryImpl());=20
}=20
/** Creates a new instance of EclipseXSDDemo2 */=20
public EclipseXSDDemo2() {=20
super(); // Redirect the System.err=20
try {=20
System.setErr(new PrintStream(new =
FileOutputStream("errors.log", true)));=20
}=20
catch (FileNotFoundException fileNotFoundException) {=20
}=20
}=20

/** Open a XML DOM */=20
private Document openXMLDOM(String uri) {=20
// Create a factory object for creating DOM parsers=20
DocumentBuilderFactory factory =3D =
DocumentBuilderFactory.newInstance();=20
DocumentBuilder builder =3D null;=20
Document xmlDoc =3D null;=20

// Build a new DOM=20
try {=20
// Now use the factory to create a DOM parser =
(a.k.a. a DocumentBuilder)=20
factory.setNamespaceAware(true);=20
builder =3D factory.newDocumentBuilder();=20
xmlDoc =3D builder.parse(uri);=20
}=20
catch (Exception ex) {=20
ex.printStackTrace();=20
return null;=20
}=20

return xmlDoc;=20
}=20

/** Open a XML DOM using XSDParser */=20
private Document openXMLDOMUsingXSDParser(String uri) {=20
Document xmlDoc =3D null;=20

// Build a new DOM=20
try {=20
xsdParser =3D new XSDParser();=20
xsdParser.parse(uri);=20
xmlDoc =3D xsdParser.getDocument();=20
}=20
catch (Exception ex) {=20
ex.printStackTrace();=20
return null;=20
}=20

return xmlDoc;=20
}=20

/** doIt */=20
private void doIt() {=20
try {=20
Document xmlDOM =3D =
openXMLDOMUsingXSDParser("http://schemas.xmlsoap.org/wsdl/");=20
// Document xmlDOM =3D =
openXMLDOMUsingXSDParser("./wsdl.xsd"); Element rootElement =
=3D xmlDOM.getDocumentElement(); XSDSchema xsdSchema =3D =
XSDFactory.eINSTANCE.createXSDSchema();=20
xsdSchema.setDocument(xmlDOM);=20
xsdSchema.setElement(rootElement);=20
xsdSchema.updateElement(); =
System.out.println("\n\n");=20
XSDResourceImpl.serialize(System.out, =
xsdSchema.getElement()); =
System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION =
>>>>>>>>>>>>>>>>>>>>>>>>>>");=20
xsdSchema.validate();=20
//EList eList =3D xsdMainSchema.getDiagnostics();=20
EList eList =3D xsdSchema.getAllDiagnostics();=20
for (int i =3D 0; i < eList.size(); i++) {=20
XSDDiagnostic xsdDiagnostic =3D =
(XSDDiagnostic)eList.get(i);=20
System.out.println(i + ": At line #" + =
xsdDiagnostic.getLine() + "(" + xsdDiagnostic.getColumn() + "), " + =
xsdDiagnostic.getMessage() + "; Node =3D [" + =
xsdDiagnostic.getNode().getNodeName() + "]");=20
}=20
=
System.out.println("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<=
<<<<<<<");=20
}=20
catch (Exception ex) {=20
ex.printStackTrace();=20
}=20
}=20

/** main - the main entry */=20
public static void main(String[] args) {=20
EclipseXSDDemo2 app =3D new EclipseXSDDemo2();=20
app.doIt();=20
}=20
}Regards, Pae=20

"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB4F504.6527C9F2@ca.ibm.com...Pae,=20
No, the standalone version worked too. What exception did you =
see?=20
=20

Pae Choi wrote:=20

Ed, That surely helped with v1.0.2. And THANK you for that. =
One quick question is:Do you also have an exception thrown when running =
with v1.1.0 as standalone.Regards, Pae=20
"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB3A206.9781C42@ca.ibm.com...Pae,=20
The XSD model expects a DOM that's namespace aware, so =
this addition to your sample code will improve your result:=20

private Document openXMLDOM(String uri) {=20
// Create a factory object for creating DOM =
parsers=20
DocumentBuilderFactory factory =3D =
DocumentBuilderFactory.newInstance();=20
DocumentBuilder builder =3D null;=20
Document xmlDoc =3D null;=20

factory.setNamespaceAware(true);=20

Without this, element.getNamespaceURI and =
element.getLocalName both return null...=20
=20

Pae Choi wrote:=20

Ed, I have a sample code that test a DOM of XML Schema =
with Eclipse/XSD andproducing two different results. With v1.0.2, it =
seems ok except the diagnostic message we are discussing.With v1.1.0, it =
throws an exception.Regards, Pae P.S.: The code snippet is as follows:// =
################## CODE SNIPPET ##################/*=20
* EclipseXSDDemo1.java=20
*=20
* Created on May 2, 2003, 11:13 PM=20
*/ package org.paechoi.xsd.test;// W3C/DOM=20
import javax.xml.parsers.DocumentBuilderFactory;=20
import javax.xml.parsers.DocumentBuilder;=20
import org.w3c.dom.Document;=20
import org.w3c.dom.Element;=20
// Eclipse/XSD=20
import org.eclipse.xsd.XSDFactory;=20
import org.eclipse.xsd.XSDSchema;=20
import org.eclipse.xsd.impl.XSDSchemaImpl;=20
import org.eclipse.xsd.util.XSDResourceImpl;=20
import org.eclipse.xsd.util.XSDResourceFactoryImpl;=20
import org.eclipse.xsd.XSDDiagnostic;=20
import org.eclipse.emf.ecore.resource.Resource;=20
import org.eclipse.emf.ecore.resource.ResourceSet;=20
import =
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;=20
import org.eclipse.emf.common.util.EList;=20
import java.io.File;=20
/**=20
*=20
* @author pae=20
*/=20
public class EclipseXSDDemo1 {=20
// private Document xmlDOM =3D null;=20
// instance initializer=20
{=20
// =
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =
new XSDResourceFactoryImpl());=20
}=20

/** Creates a new instance of EclipseXSDDemo1 */=20
public EclipseXSDDemo1() {=20
super();=20
}=20

/** Open a XML DOM */=20
private Document openXMLDOM(String uri) {=20
// Create a factory object for creating DOM =
parsers=20
DocumentBuilderFactory factory =3D =
DocumentBuilderFactory.newInstance();=20
DocumentBuilder builder =3D null;=20
Document xmlDoc =3D null;=20

// Build a new DOM=20
try {=20
// Now use the factory to create a DOM =
parser (a.k.a. a DocumentBuilder)=20
builder =3D factory.newDocumentBuilder();=20
xmlDoc =3D builder.parse(uri);=20
}=20
catch (Exception ex) {=20
ex.printStackTrace();=20
return null;=20
}=20

return xmlDoc;=20
}=20

/** doIt */=20
private void doIt() {=20
Document xmlDOM =3D =
openXMLDOM("http://schemas.xmlsoap.org/wsdl/");=20
// Document xmlDOM =3D openXMLDOM("./wsdl.xsd"); =
Element rootElement =3D xmlDOM.getDocumentElement(); =
XSDSchema xsdSchema =3D XSDFactory.eINSTANCE.createXSDSchema();=20
xsdSchema.setDocument(xmlDOM);=20
xsdSchema.setElement(rootElement);=20
xsdSchema.updateElement(); =
System.out.println("\n\n");=20
XSDResourceImpl.serialize(System.out, =
xsdSchema.getElement()); =
System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION =
>>>>>>>>>>>>>>>>>>>>>>>>>>");=20
xsdSchema.validate();=20
//EList eList =3D =
xsdMainSchema.getDiagnostics();=20
EList eList =3D xsdSchema.getAllDiagnostics();=20
for (int i =3D 0; i < eList.size(); i++) {=20
XSDDiagnostic xsdDiagnostic =3D =
(XSDDiagnostic)eList.get(i);=20
System.out.println(i + ": Diagnostic Message =
=3D [" + xsdDiagnostic.getMessage() + "]");=20
}=20
=
System.out.println("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<=
<<<<<<<");=20
}=20

/** main - the main entry */=20
public static void main(String[] args) {=20
EclipseXSDDemo1 app =3D new EclipseXSDDemo1();=20
app.doIt();=20
}=20
}=20

"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB25ED9.AE2CB299@ca.ibm.com...Pae,=20
I'm seeing this result with the just published 1.1.0 =
driver:=20


The schema isn't valid.=20
=20
Pae Choi wrote:=20

I have a simple test schema as follows:=20
<?xml version=3D"1.0" encoding=3D"UTF-8"?>=20
<!--W3C Schema generated by Pae -->=20
<xsd:schema =
xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema"=20
elementFormDefault=3D"qualified">=20
<xsd:element name=3D"CommonLogin">=20
<xsd:complexType>=20
<xsd:sequence>=20
<xsd:element name=3D"username" =
ref=3D"usernameRef"/>=20
<xsd:element name=3D"password" =
ref=3D"passwordRef"/>=20
</xsd:sequence>=20
</xsd:complexType>=20
</xsd:element>=20
<xsd:element name=3D"passwordRef" =
type=3D"xsd:string"/>=20
<xsd:element name=3D"usernameRef" =
type=3D"xsd:string"/>=20
</xsd:schema>=20

This is a very simple sample, but it is a valid =
schema. But when=20
I use the validate() and getDiagnostics() methods in =
the XSDSchema=20
interface it gives me a message as follows:=20

XSD: The element '#null' is not permitted as =
constrained by 'XML Schema ';=20
expecting schema=20

I do not understand what the message is saying. Any =
comments?=20

Pae


------=_NextPart_001_0070_01C312DC.27C71750
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2600.0" name=3DGENERATOR></HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT size=3D2>Ed,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>I thought I saw somthing related to Xerces issue, =
but I wasn't=20
sure exactly</FONT></DIV>
<DIV><FONT size=3D2>where it was.</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Unlike many *smart and charming users*, you need to =
have at=20
least one like</FONT></DIV>
<DIV><FONT size=3D2>me who ask dumb and silly questions. I will try to =
improve the=20
user's responsibilities,</FONT></DIV>
<DIV><FONT size=3D2>to meet the DEVELOPER's EXPECTATIONS, but am not so =
sure how=20
effectively</FONT></DIV>
<DIV><FONT size=3D2>I will achieve that goal. Have a pleasant day!=20
:-)</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Regards,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Pae</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV>"Ed Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB648CF.EECF4637@ca.ibm.com">news:3EB648CF.EECF4637@ca.ibm.=
com</A>...</DIV>Pae,=20

<P>This is described in the FAQ.=20
<P>The files are plugins/org.apache.xerces_4.0.7/xmlParserAPIs.jar, =
and=20
plugins/org.apache.xerces_4.0.7/xercesImpl.jar. Version Xerces-J 2.0.2 =
(or=20
XML4J 4.0.7) comes with Eclipse 2.1.0. <BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">&nbsp;<FONT size=3D-1>Ed,</FONT> <FONT =
size=3D-1>Where=20
could I get those two JARs for the xerces you mentioned. Andwhat =
version is=20
that? Thank you.</FONT> <FONT size=3D-1>Regards,</FONT>&nbsp; <FONT=20
size=3D-1>Pae</FONT>=20
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed=20
Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB64063.883B5444@ca.ibm.com">news:3EB64063.883B5444@ca.ibm.=
com</A>...Pae,=20

<P>XSD only is tested to work with the version of Xerces in =
Eclipse.=20
<BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">&nbsp;<FONT size=3D-1>Ed,</FONT> <FONT =
size=3D-1>I=20
also tested with XSD v1.1.0 + EMF v1.1.0 with xerces v2.2.1 and =
v2.4.0,=20
butam still having an exception. However, the exceptions are not =
same as=20
previousone. The exceptions and the associated code snippet are =
as=20
follows:// ### Exception with xerces v2.2.1=20
###java.lang.NullPointerException</FONT> <BR><FONT =
size=3D-1>&nbsp;at=20
=
org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263) </FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown=2 0
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
=
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDe=
cl(Unknown=20
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
=
org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(=
Unknown=20
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
=
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknow=
n=20
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.parsers.DTDConfiguration.parse(Unknown =
Source)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.parsers.DTDConfiguration.parse(Unknown =
Source)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.parsers.XMLParser.parse(Unknown Source)</FONT> =

<BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown =
Source)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
javax.xml.parsers.SAXParser.parse(SAXParser.java:345)</FONT > =
<BR><FONT=20
size=3D-1>&nbsp;at=20
org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)</FONT >=20
<BR><FONT size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDD=
emo2.java:87)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101) </FONT=
>=20
<BR><FONT size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) </FONT=
>=20
<BR><FONT size=3D-1>java.lang.NullPointerException</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104) </FONT=
>=20
<BR><FONT size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)//=20
### Exception with xerces v2.4.0=20
###java.lang.NullPointerException</FONT> <BR><FONT =
size=3D-1>&nbsp;at=20
=
org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263) </FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown=2 0
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
=
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDe=
cl(Unknown=20
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
=
org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(=
Unknown=20
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
=
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknow=
n=20
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.parsers.XML11Configuration.parse(Unknown=2 0
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.parsers.DTDConfiguration.parse(Unknown =
Source)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.parsers.XMLParser.parse(Unknown Source)</FONT> =

<BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown =
Source)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
javax.xml.parsers.SAXParser.parse(SAXParser.java:345)</FONT > =
<BR><FONT=20
size=3D-1>&nbsp;at=20
org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)</FONT >=20
<BR><FONT size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDD=
emo2.java:87)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101) </FONT=
>=20
<BR><FONT size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) </FONT=
>=20
<BR><FONT size=3D-1>java.lang.NullPointerException</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104) </FONT=
>=20
<BR><FONT size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) </FONT=
>=20
<BR>&nbsp;<FONT size=3D-1>// ### Code Snippet ###/*</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;* EclipseXSDDemo2.java</FONT> <BR><FONT=20
size=3D-1>&nbsp;*</FONT> <BR><FONT size=3D-1>&nbsp;* Created on =
May 2, 2003,=20
11:13 PM</FONT> <BR><FONT size=3D-1>&nbsp;*</FONT> <BR><FONT=20
size=3D-1>&nbsp;*/</FONT> <FONT size=3D-1>package =
org.paechoi.xsd.test;//=20
W3C/DOM</FONT> <BR><FONT size=3D-1>import&nbsp;=20
javax.xml.parsers.DocumentBuilderFactory;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; javax.xml.parsers.DocumentBuilder;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; org.w3c.dom.Document;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; org.w3c.dom.Element;</FONT> <BR><FONT =
size=3D-1>//=20
Eclipse/XSD</FONT> <BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.xsd.util.XSDParser;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
org.eclipse.xsd.XSDFactory;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
org.eclipse.xsd.XSDSchema;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
org.eclipse.xsd.impl.XSDSchemaImpl;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; =
org.eclipse.xsd.util.XSDResourceImpl;</FONT>=20
<BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.xsd.util.XSDResourceFactoryImpl;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; org.eclipse.xsd.XSDDiagnostic;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; =
org.eclipse.emf.ecore.resource.Resource;</FONT>=20
<BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.emf.ecore.resource.ResourceSet;</FONT> <BR><FONT=20
size=3D-1>import&nbsp;=20
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; org.eclipse.emf.common.util.EList;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; java.io.File;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
java.io.FileOutputStream;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
java.io.PrintStream;</FONT> <BR><FONT size=3D-1>import&nbsp;=20
java.io.FileNotFoundException;</FONT> <BR><FONT =
size=3D-1>/**</FONT>=20
<BR><FONT size=3D-1>&nbsp;*</FONT> <BR><FONT size=3D-1>&nbsp;* =
@author&nbsp;=20
pae</FONT> <BR><FONT size=3D-1>&nbsp;*/</FONT> <BR><FONT =
size=3D-1>public=20
class EclipseXSDDemo2 {</FONT> <BR><FONT =
size=3D-1>//&nbsp;&nbsp;&nbsp;=20
private&nbsp;&nbsp;&nbsp;&nbsp;=20
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp; xmlDOM =3D =
null;</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp;=20
private&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&am p;nbsp;&nbsp;&nbsp;=20
XSDParser&nbsp;&nbsp; xsdParser =3D null;</FONT>&nbsp;<FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; // instance initializer</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; {</FONT> <BR><FONT=20
size=3D-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;=20
=
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =

new XSDResourceFactoryImpl());</FONT> <BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** Creates a new instance =
of=20
EclipseXSDDemo2 */</FONT> <BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; =
public=20
EclipseXSDDemo2() {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
super();</FONT>&nbsp;<FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Redirect =
the=20
System.err</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; try =
{</FONT>=20
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;=20
System.setErr(new PrintStream(new FileOutputStream("errors.log", =

true)));</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; =
}</FONT>=20
<BR><FONT =
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; catch=20
(FileNotFoundException fileNotFoundException) {</FONT> <BR><FONT =

size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; =
}</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM =
*/</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; private Document =
openXMLDOM(String=20
uri) {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create a =
factory=20
object for creating DOM parsers</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilderFactory&nbsp; factory =3D=20
DocumentBuilderFactory.newInstance();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp; =
builder=20
=3D null;</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D null;</FONT>=20
<P><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // =
Build a=20
new DOM</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try =
{</FONT>=20
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
// Now use the factory to create a DOM parser (a.k.a. a=20
DocumentBuilder)</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
factory.setNamespaceAware(true);</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
builder =3D factory.newDocumentBuilder();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xmlDoc =3D builder.parse(uri);</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT> =
<BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch =
(Exception ex)=20
{</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
ex.printStackTrace();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
return null;</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT>=20
<P><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
return=20
xmlDoc;</FONT> <BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM using =
XSDParser=20
*/</FONT> <BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; private =
Document=20
openXMLDOMUsingXSDParser(String uri) {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
Document&nbsp;&nbsp;&nbsp; xmlDoc =3D null;</FONT>=20
<P><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // =
Build a=20
new DOM</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try =
{</FONT>=20
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xsdParser =3D new XSDParser();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xsdParser.parse(uri);</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xmlDoc =3D xsdParser.getDocument();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT> =
<BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch =
(Exception ex)=20
{</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
ex.printStackTrace();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
return null;</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT>=20
<P><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
return=20
xmlDoc;</FONT> <BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** doIt */</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; private void doIt() {</FONT> =
<BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try =
{</FONT>=20
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
Document xmlDOM =3D openXMLDOMUsingXSDParser("<A=20
=
href=3D"http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl=
/</A>");</FONT>=20
<BR><FONT=20
=
size=3D-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;=20
Document xmlDOM =3D=20
openXMLDOMUsingXSDParser("./wsdl.xsd");</FONT>&nbsp; <FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
Element rootElement =3D =
xmlDOM.getDocumentElement();</FONT>&nbsp;<FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
XSDSchema xsdSchema =3D =
XSDFactory.eINSTANCE.createXSDSchema();</FONT>=20
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xsdSchema.setDocument(xmlDOM);</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xsdSchema.setElement(rootElement);</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xsdSchema.updateElement();</FONT>&nbsp;<FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
System.out.println("\n\n");</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
XSDResourceImpl.serialize(System.out,=20
xsdSchema.getElement());</FONT>&nbsp;<FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
=
System.out.println(" &gt;&gt;&gt;&gt;&gt;&gt;&gt;& ;gt;&gt;&gt;&gt;&gt;&gt;&=
gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;& amp;gt;=20
VALIDATION=20
=
&gt;&gt;&gt;&gt;&gt;&gt;&gt;& ;gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt;&gt;&=
gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;"); </FONT>=20
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xsdSchema.validate();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
//EList eList =3D xsdMainSchema.getDiagnostics();</FONT> =
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
EList eList =3D xsdSchema.getAllDiagnostics();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
for (int i =3D 0; i &lt; eList.size(); i++) {</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;=20
XSDDiagnostic xsdDiagnostic =3D =
(XSDDiagnostic)eList.get(i);</FONT>=20
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;=20
System.out.println(i + ": At line #" + xsdDiagnostic.getLine() + =
"(" +=20
xsdDiagnostic.getColumn() + "), " + xsdDiagnostic.getMessage() + =
"; Node=20
=3D [" + xsdDiagnostic.getNode().getNodeName() + "]");</FONT> =
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
}</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
=
System.out.println(" &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&=
lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;& amp;lt;&lt;&lt;&lt;&lt;&lt;&lt;& lt;&lt;&lt;&l=
t;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&a mp;lt;&lt;&lt;&lt;&lt;&lt;&lt;&l t;&lt;&lt;&lt=
;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&am p;lt;&lt;&lt; ");</FONT>=20
<BR><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
}</FONT>=20
<BR><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
catch=20
(Exception ex) {</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
ex.printStackTrace();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** main - the main entry =
*/</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; public static void =
main(String[]=20
args) {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
EclipseXSDDemo2 app =3D=20
new EclipseXSDDemo2();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
app.doIt();</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT> <BR><FONT=20
size=3D-1>}Regards,</FONT>&nbsp; <FONT size=3D-1>Pae</FONT>=20
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: =
5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed=20
Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB4F504.6527C9F2@ca.ibm.com">news:3EB4F504.6527C9F2@ca.ibm.=
com</A>...Pae,=20

<P>No, the standalone version worked too.&nbsp; What exception =
did you=20
see? <BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">&nbsp;<FONT size=3D-1>Ed,</FONT> =
<FONT=20
size=3D-1>That surely helped with v1.0.2. And THANK you for =
that. One=20
quick question is:Do you also have an exception thrown when =
running=20
with v1.1.0 as standalone.Regards,</FONT>&nbsp; <FONT=20
size=3D-1>Pae</FONT>=20
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: =
5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed=20
Merks" &lt;<A=20
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt; =
wrote in=20
message <A=20
=
href=3D"news:3EB3A206.9781C42@ca.ibm.com">news:3EB3A206.9781C42@ca.ibm.co=
m</A>...Pae,=20

<P>The XSD model expects a DOM that's namespace aware, so =
<FONT=20
color=3D#3333ff>this</FONT> addition to your sample code =
will=20
improve your result:=20
<P>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String =
uri) {=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create a =
factory=20
object for creating DOM parsers=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilderFactory&nbsp; factory =3D=20
DocumentBuilderFactory.newInstance();=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;=20
builder =3D null; =
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D null;=20
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT =
color=3D#3333ff>&nbsp;&nbsp;=20
factory.setNamespaceAware(true);</FONT>=20
<P>Without this, element.getNamespaceURI and =
element.getLocalName=20
both return null... <BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">
<STYLE></STYLE>
<FONT size=3D-1>Ed,</FONT> <FONT size=3D-1>I have a =
sample code that=20
test a DOM of XML Schema with Eclipse/XSD andproducing =
two=20
different results.</FONT> <FONT size=3D-1>With v1.0.2, =
it seems ok=20
except the diagnostic message we are discussing.With =
v1.1.0, it=20
throws an exception.Regards,</FONT> <FONT =
size=3D-1>Pae</FONT>=20
<FONT size=3D-1>P.S.: The code snippet is as follows://=20
################## CODE SNIPPET =
##################/*</FONT>=20
<BR><FONT size=3D-1>&nbsp;* EclipseXSDDemo1.java</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;*</FONT> <BR><FONT size=3D-1>&nbsp;* =
Created on May=20
2, 2003, 11:13 PM</FONT> <BR><FONT =
size=3D-1>&nbsp;*/</FONT> <FONT=20
size=3D-1>package org.paechoi.xsd.test;// W3C/DOM</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp;=20
javax.xml.parsers.DocumentBuilderFactory;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; =
javax.xml.parsers.DocumentBuilder;</FONT>=20
<BR><FONT size=3D-1>import&nbsp; =
org.w3c.dom.Document;</FONT>=20
<BR><FONT size=3D-1>import&nbsp; =
org.w3c.dom.Element;</FONT>=20
<BR><FONT size=3D-1>// Eclipse/XSD</FONT> <BR><FONT=20
size=3D-1>import&nbsp; =
org.eclipse.xsd.XSDFactory;</FONT>=20
<BR><FONT size=3D-1>import&nbsp; =
org.eclipse.xsd.XSDSchema;</FONT>=20
<BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.xsd.impl.XSDSchemaImpl;</FONT> <BR><FONT=20
size=3D-1>import&nbsp;=20
org.eclipse.xsd.util.XSDResourceImpl;</FONT> <BR><FONT=20
size=3D-1>import&nbsp;=20
org.eclipse.xsd.util.XSDResourceFactoryImpl;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; =
org.eclipse.xsd.XSDDiagnostic;</FONT>=20
<BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.emf.ecore.resource.Resource;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp;=20
org.eclipse.emf.ecore.resource.ResourceSet;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp;=20
=
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;</FONT>=20
<BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.emf.common.util.EList;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; java.io.File;</FONT> <BR><FONT=20
size=3D-1>/**</FONT> <BR><FONT size=3D-1>&nbsp;*</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;* @author&nbsp; pae</FONT> <BR><FONT=20
size=3D-1>&nbsp;*/</FONT> <BR><FONT size=3D-1>public =
class=20
EclipseXSDDemo1 {</FONT> <BR><FONT =
size=3D-1>//&nbsp;&nbsp;&nbsp;=20
private&nbsp;&nbsp;&nbsp;&nbsp;=20
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp; =
xmlDOM =3D=20
null;</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; // instance=20
initializer</FONT> <BR><FONT =
size=3D-1>&nbsp;&nbsp;&nbsp; {</FONT>=20
<BR><FONT =
size=3D-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;=20
=
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =

new XSDResourceFactoryImpl());</FONT> <BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp;
Re: A Diagnostic Message for the Valid Schema [message #569066 is a reply to message #19419] Fri, 02 May 2003 12:04 Go to previous message
Ed Merks is currently offline Ed MerksFriend
Messages: 33142
Registered: July 2009
Senior Member
--------------1D6FA7A65711ABE6113943C2
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Pae,

I'm seeing this result with the just published 1.1.0 driver:

[Image]

The schema isn't valid.


Pae Choi wrote:

> I have a simple test schema as follows:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <!--W3C Schema generated by Pae -->
> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> elementFormDefault="qualified">
> <xsd:element name="CommonLogin">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element name="username" ref="usernameRef"/>
> <xsd:element name="password" ref="passwordRef"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="passwordRef" type="xsd:string"/>
> <xsd:element name="usernameRef" type="xsd:string"/>
> </xsd:schema>
>
> This is a very simple sample, but it is a valid schema. But when
> I use the validate() and getDiagnostics() methods in the XSDSchema
> interface it gives me a message as follows:
>
> XSD: The element '#null' is not permitted as constrained by 'XML Schema ';
> expecting schema
>
> I do not understand what the message is saying. Any comments?
>
> Pae

--------------1D6FA7A65711ABE6113943C2
Content-Type: multipart/related;
boundary="------------2625BBBC78E34E3AAB1FB179"


--------------2625BBBC78E34E3AAB1FB179
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
Pae,
<p>I'm seeing this result with the just published 1.1.0 driver:
<blockquote><img SRC="cid:part1.3EB25ED9.318AFBD5@ca.ibm.com" height=411 width=502></blockquote>
The schema isn't valid.
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE=CITE>I have a simple test schema as follows:
<p>&lt;?xml version="1.0" encoding="UTF-8"?>
<br>&lt;!--W3C Schema generated by Pae -->
<br>&lt;xsd:schema xmlns:xsd="<a href="http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchema</a>"
<br>elementFormDefault="qualified">
<br>&nbsp;&lt;xsd:element name="CommonLogin">
<br>&nbsp; &lt;xsd:complexType>
<br>&nbsp;&nbsp; &lt;xsd:sequence>
<br>&nbsp;&nbsp;&nbsp; &lt;xsd:element name="username" ref="usernameRef"/>
<br>&nbsp;&nbsp;&nbsp; &lt;xsd:element name="password" ref="passwordRef"/>
<br>&nbsp;&nbsp; &lt;/xsd:sequence>
<br>&nbsp; &lt;/xsd:complexType>
<br>&nbsp;&lt;/xsd:element>
<br>&nbsp;&lt;xsd:element name="passwordRef" type="xsd:string"/>
<br>&nbsp;&lt;xsd:element name="usernameRef" type="xsd:string"/>
<br>&lt;/xsd:schema>
<p>This is a very simple sample, but it is a valid schema. But when
<br>I use the validate() and getDiagnostics() methods in the XSDSchema
<br>interface it gives me a message as follows:
<p>XSD: The element '#null' is not permitted as constrained by 'XML Schema
';
<br>expecting schema
<p>I do not understand what the message is saying. Any comments?
<p>Pae</blockquote>
</html>

--------------2625BBBC78E34E3AAB1FB179
Content-Type: image/jpeg
Content-ID: <part1.3EB25ED9.318AFBD5@ca.ibm.com>
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\nsmailFJ.jpeg"

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCws MGJGSjpQdGZ6
eHJmcG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAq MF40NF7GhHCE
xsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbG xsbGxsb/wAAR
CAGbAfYDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcI CQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS 0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1 dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW 19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcI CQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMz UvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0 dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU 1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDXghR49zbiST/EfU0m23yQ BKcHHG81Ja/6
kf7zfzNVLrfsTY5wGkLRrJsZueoPt6e9NK4FpIYJEDIWKnoQ5/xpfs0Xo3/f Z/xqKy2bmMbM
UZEcZ75zzjt2qMXc+1kYBbgkbYvLyRnJ67sNwDzkdPXikBZ+zRejf99n/Gj7 NF6N/wB9n/Gq
a31w+eI027VYMuTuLsmeD2xnHPpnvS/bZyJnHlhYELMNpy5DODg54zs9+veg C39mi9G/77P+
NH2aL0b/AL7P+NUEup4hIkMQZY2kdycYwZH4yWGPu9ef8b883lxs6FW2H5l7 n2HvyMDv075o
APs0Xo3/AH2f8aPs0Xo3/fZ/xqFriZWhLGMRPt/eKpdSSeFGDx2+YjBz26Uy 3kkmuraaQptk
gZlVVIKglDgnPP6UATyQxIudrH/gZpm2L+43/fw1NP8AcH1rJvJZbecG2Jlk dSWhOSAAPvD0
/r9aQGhti/uN/wB/DTDGBI65bAPHzH0B/rUdntNurLMZt3zFyep+nb6VM/8A r5f94fyFAxvl
j1b/AL6NHlj1b/vo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+ jTqKAG+WPVv+
+jR5Y9W/76NOooAb5Y9W/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igB vlj1b/vo0eWP
Vv8Avo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPV v++jR5Y9W/76
NOooAb5Y9W/76NHlj1b/AL6NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/AL6N Hlj1b/vo06ig
Bvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+jTqKAG+WPVv++jR5Y9W/ 76NOooAb5Y9W
/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/vo0eWPVv8Avo06 igBvlj1b/vo0
eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPVv++jR5Y9W/76NOooAb5Y 9W/76NHlj1b/
AL6NOooAb5Y9W/76NHlj1b/vo06igCvOTEV2MRnOcnP86KS76p+P9KKBF+1/ 1I/3m/majktG
kBVmiZNxYK8W7Gfx96hREIJKqTuPUe9O8uP+4v5U7gWIYnR3d3DFgBwuMYz/ AI0otoBEYhBG
I2OSgQYJ+lNdbaNlVkjDOcKu0ZP0FMcwRyBWtvlyFMmwbQT0Hqeo6DHP1oAm WCFF2pFGo44C
gdDkfrzTPscBn84xIXwMZUfKQScj3yaT/Q/+mH39nb73p9fahfsbruTyGHHI wepwP14oAkaC
FipaKMlCWUlRwSckj8ad5abt2xc53Zx3xjP5cVCVgFwsJgXLIXDbRjggEfqK k8iH/nkn/fIo
ABBCJBIIo94zhtoyM5zz+J/OhIIY5GkSKNXbqwUAn8ah8yw8vzN9tszt3ZXG fTNO/wBD87yf
3Hm/3ON3r0oAklUsoAGeagFuVZmEYDN94jGT9adusgwXNvuLbAMrkt6fXkUM 1ksvlMbcSZA2
ErnJ6cUANW3KZ2RhdxycYGT60j/6+X/eH8hUgFqZzCEiLgZIG3I6dR170f6H 53k/uPN/ucbv
XpQBHRUg+xs4QeQWJK7RjOR1H4U3zLDzPL322/O3blc59MUrANoprz2y3Bh+ ysSJFjyIxjJG
f0HWpf8ARvtPkeSN+0tkx4GBjv369qLAMoqx5EP/ADyT/vkVX8y33f8AHt+7 37PM2rtznGOu
evHT9KLAFFNee2W4MP2ViRIseRGMZIz+g61a8iH/AJ5J/wB8iiwFeipP9D87 yf3Hm/3ON3r0
oH2NnCDyCxJXaMZyOo/CiwEdFSH7GJDGfI3jGV4yM4xx+I/Oj/Q/O8n9x5v9 zjd69KLAR0Us
slpE4TZGz7lUqu3K5IAJHpyPzp4FqZzCEiLgZIG3I6dR170WAjoqQfY2cIPI LEldoxnI6j8K
R2skZlc26sgywJUED3/MfnRYBlFO8yw8zy99tvzt25XOfTFRvPbLcGH7KxIk WPIjGMkZ/Qda
LAOoprzQr5n+hMfLkEZwqck4xjn3H5/WkeeJHKf2fKxAYjCJ8wU4JAznuPrR YB9FN86Hz2iF
kxKvtJCp7c4znHzDt3q15EP/ADyT/vkUWAr0UeZb7v8Aj2/d79nmbV25zjHX PXjp+lNee2W4
MP2ViRIseRGMZIz+g60WAdRTnMEcgVrb5chTJsG0E9B6nqOgxz9aei20jMqp GWQ4ZdoyPqKL
ARUVY8iH/nkn/fIo8iH/AJ5J/wB8iiwFeirHkQ/88k/75FHkQ/8APJP++RRY CvRVjyIf+eSf
98ijyIf+eSf98iiwFeirHkQ/88k/75FHkQ/88k/75FFgK9FWPIh/55J/3yKP Ih/55J/3yKLA
V6KseRD/AM8k/wC+RR5EP/PJP++RRYCvRVjyIf8Ankn/AHyKPIh/55J/3yKL AV6KseRD/wA8
k/75FHkQ/wDPJP8AvkUWAr0VY8iH/nkn/fIo8iH/AJ5J/wB8iiwFeipngh2/ 6pOo/hFQbYv+
eUfPtQMWioJlTz4FCKAScgDrxUb3FsjlWj5Bx90UWGouWiQ676p+P9KKLtFR lAUDrnAooJJ4
/un/AHj/ADp1Nj+6f94/zp1AyXyWjmMkTAhz86vknr2PbqeOn05NOeMyTLuA MSjP3urZ4yMd
vr+HQ055Y42VWYBnOFXufoKDIBMsWDuZSw9MAj/EUxFb7PN9s+0Yj+/jZuON uMbun3+30496
rtp8zo2Y4AzCYZDE4L9D0/D6flWpRQBWdJzepIqRmNVK5LkHBKknGPb1qzVV 70L5n7iU+XII
zjbyTjGOfcfn9akFwPOEbRyKGJVXIGGIycevY9scfSgCP7M/2rOV+z58zb33 /Tpjv67uaiWy
dZuUDp5pkyZ3HVt33MY4/XFWGufnwkMki7gpdAMA5x65474/oanoAqwRTR3c 7mOLbK+dwc7s
BQAMY9vXvUf2WZp8lI1XzN2VlYjGc/cIxk+vrz1qb7WC2FhlZd+wOqgjOcHv kY55Ixx9KkM8
IkMZlj3jGV3DIzjHH4j86AInSc3qSKkZjVSuS5BwSpJxj29aZ9nmx5OI/K83 zN+47vv78bcf
h19/apo7mN5WjJ2OrlArEZbAByOeeCKd58PneT5sfm/3Nw3evSgCo9tOWnZY 4d0kyOCXIJVc
cH5f9n9T+Nn7NH5m/dLnOcec+Pyzj8Kcs8LruSWNhxyGB6nA/Xijz4fO8nzY /N/ubhu9elAD
vLTdu2LnO7OO+MZ/LioHSc3qSKkZjVSuS5BwSpJxj29as1E9zAjMrzxqyDLA uAQPf8x+dAC/
vvtH/LPyNnvu3Z/LGKr/AGebHk4j8rzfM37ju+/vxtx+HX39qsefD53k+bH5 v9zcN3r0oE8L
OEEsZYkrtDDOR1H4UAO8tN27Yuc7s474xn8uKdUfnw+d5Pmx+b/c3Dd69KT7 TAGC+fHuLbAN
4yW9PryKAKq2TrNygdPNMmTO46tu+5jHH64oe2nLTsscO6SZHBLkEquOD8v+ z+p/G358PneT
5sfm/wBzcN3r0pqXdu8zQrNGZFO0pu5z9KAIlgkVhGY4XjEpkDsSSCWJ4XHX nGc+/tSfZ5se
TiPyvN8zfuO77+/G3H4dff2qx58PneT5sfm/3Nw3evSmS3cUThNwZ9yqVVhl ckAEjPTkfnQB
XltZynlosLKs3nKzE5J37sdOOpGefpzxM6Tm9SRUjMaqVyXIOCVJOMe3rVmo IbuKXau4JIxI
EbMN3BIPAPsaAK7205adljh3STI4JcglVxwfl/2f1P4xypJ5i2wjDBZxKHKN 3fcecYGATzk9
MY5q613bLu3XEQ2na2XHB9D+R/KpqAIfs0fmb90uc5x5z4/LOPwqTy03bti5 zuzjvjGfy4qA
Xg81kaGRVRxGXO3GTjHfPOR271L58PneT5sfm/3Nw3evSgCB7aRpXA2eXJKk pYk5BXbxjHP3
eue/tUjxyG9ikATy1RlJLHOSQemP9n170/z4fO8nzY/N/ubhu9elSUAVYLYp eT3EkcYZz8rK
xJ24AweP9kH8fzk+zR+Zv3S5znHnPj8s4/CpqKAKP2N/P3bIs+Zv8/P7zGc7 enp8vXp+VXPL
Tdu2LnO7OO+MZ/LikSWORmVWBZDhl7j6in0ARPGZJl3AGJRn73Vs8ZGO31/D oab5LSTCSVgA
h+RUyD17nv0HHT68Gp6KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKAGyE
Bck4AIyT9az3EMjBmlOR0w4GKvyqrxlXUMD2IzVf7Lb/APPCL/vgf5/z+YBW lZWubfawOCe+
f4aZJYLJIz+cRuOcbP8A69WzbwqMrDGD6hR/n/P5t8uP+4v5UXsXCcoO8SG9 OXU+uaKbdKF2
BQAOen4UUiCxH90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51fJPXse3U8dPp yakKAzK+0ZVS
N2eRkjjH4fpQ8scbKrMAznCr3P0FJ58P/PWP7+z7w+96fX2piG/Zo/M37pc5 zjznx+WcfhR9
mj8zfulznOPOfH5Zx+FK1zAsvlNPGJMgbC4zk9OKbLdxROE3Bn3KpVWGVyQA SM9OR+dAEEti
73ZlDrtLhj6/wH/2mP8Avo+nMphka7WRljUIT8653MuDhSMdOc9eo6ek/mJ5 nl71343bc849
cUxrmBZfKaeMSZA2FxnJ6cUAMSOaJikflmIuX3MTuGTkjHfqecjr3xzYqMzw iQxmWPeMZXcM
jOMcfiPzpsdzG8rRk7HVygViMtgA5HPPBFAEDWsjz+Y0durbw3nICHCg8Dpz kDB5HXp6uWCR
WEZjheMSmQOxJIJYnhcdecZz7+1T+fD53k+bH5v9zcN3r0oWeF13JLGw45DA 9TgfrxQBUe2n
LTsscO6SZHBLkEquOD8v+z+p/EWydZuUDp5pkyZ3HVt33MY4/XFW/Ph87yfN j83+5uG716VJ
QBltp8zo2Y4AzCYZDE4L9D0/D6flT5bKcuSmziUSAmVgG+bONo4H15zjPU8X fPh/56x/f2fe
H3vT6+1Czwuu5JY2HHIYHqcD9eKAJKzJUk8xbYRhgs4lDlG7vuPOMDAJ5yem Mc1fMoFwsJVs
shcNxjggEfqKBPCzhBLGWJK7QwzkdR+FAFRbJ1m5QOnmmTJncdW3fcxjj9cU PbTlp2WOHdJM
jglyCVXHB+X/AGf1P42muYFl8pp4xJkDYXGcnpxT/MTzPL3rvxu255x64oAp LZOs3KB080yZ
M7jq277mMcfripYIpo7udzHFtlfO4Od2AoAGMe3r3qbz4f8AnrH9/Z94fe9P r7UjXMCy+U08
YkyBsLjOT04oApy2U5clNnEokBMrAN82cbRwPrznGep4srHNHcSFPLKSOHLE nI4Axjv0657+
3Ky3cUThNwZ9yqVVhlckAEjPTkfnS/a7bzPL+0Rb87du8Zz6YoArLZOs3KB0 80yZM7jq277m
McfriiW1nKeWiwsqzecrMTknfux046kZ5+nPEr3yLcGHypSRIseQvGSM/oOt SR3MbytGTsdX
KBWIy2ADkc88EUATVQitZwnlusKq03nMyk5B37sdOegGePpxzZS7t3maFZoz Ip2lN3OfpQl3
bvM0KzRmRTtKbuc/SgCBo99+YwH8skSyZQ4LLjHPv8p4/ue5q7UYnhZwgljL EldoYZyOo/Cn
eYnmeXvXfjdtzzj1xQBWitT9qmlmUYZwyASMRwAOV6Z4z3/SoZbKcuSmziUS AmVgG+bONo4H
15zjPU8XXl2zRxgZL5J56Ad/zIH40PLtmjjAyXyTz0A7/mQPxoAqLZOs3KB0 80yZM7jq277m
Mcfrir9Qtd2y7t1xENp2tlxwfQ/kfyoa7tl3briIbTtbLjg+h/I/lQAfZo/M 37pc5zjznx+W
cfhR9mj8zfulznOPOfH5Zx+FDXdsu7dcRDadrZccH0P5H8qmoAg8lpJhJKwA Q/IqZB69z36D
jp9eDU9Qtd2y7t1xENp2tlxwfQ/kfyoFwPOEbRyKGJVXIGGIycevY9scfSgC aiio/Ph87yfN
j83+5uG716UASUVF9pgDBfPj3FtgG8ZLen15FD3MCMyvPGrIMsC4BA9/zH50 AS0VG8u2aOMD
JfJPPQDv+ZA/Gmi4HnCNo5FDEqrkDDEZOPXse2OPpQBNRVf7Wu7/AFcnl79n mcbc5xjrnrx0
/Sj7Wu7/AFcnl79nmcbc5xjrnrx0/SgCxRUX2hPtPkYfftLZKkDAx379e1K8 u2aOMDJfJPPQ
Dv8AmQPxoAkoqq96Edk8iUsrhQo25bOcEc9OP5+hxHJqkUczxGKUusix4G3k tkjHPtQBeoqK
GfzZJU8t18ptpLYwTjPGD6EfnTPtYLYWGVl37A6qCM5we+RjnkjHH0oAsUVG Z4RIYzLHvGMr
uGRnGOPxH502O5jeVoydjq5QKxGWwAcjnngigCaio/Ph87yfNj83+5uG716U LPC67kljYcch
gepwP14oAkoqPz4fO8nzY/N/ubhu9elQvfItwYfKlJEix5C8ZIz+g60AWH+6 aj/z/n/P/wBe
R/umo/8AP+f8/wD1wBr/AHT/AJ/z/n8Y6kf7p/z/AJ/z+MdIZWu+qfj/AEoo u+qfj/SigRPH
90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51fJPXse3U8dPpyai+zzfbPtGI/ v42bjjbjG7p9
/t9OPerHnw+d5Pmx+b/c3Dd69KDKBcLCVbLIXDcY4IBH6imIq/ZZmnyUjVfM 3ZWViMZz9wjG
T6+vPWkltZynlosLKs3nKzE5J37sdOOpGefpzxb8+HzvJ82Pzf7m4bvXpQs8 LruSWNhxyGB6
nA/XigBvlv8AbPM2RbPL27sfPnPTPp/Wq/2WZp8lI1XzN2VlYjGc/cIxk+vr z1q158PneT5s
fm/3Nw3evSgTws4QSxliSu0MM5HUfhQBAsEisIzHC8YlMgdiSQSxPC4684zn 39qje2nLTssc
O6SZHBLkEquOD8v+z+p/Gyl3bvM0KzRmRTtKbuc/So/to89ohBKSr7SRt9uc Zzj5h270ARLZ
Os3KB080yZM7jq277mMcfriom0+Z0bMcAZhMMhicF+h6fh9PyrQ8+HzvJ82P zf7m4bvXpSfa
YAwXz49xbYBvGS3p9eRQBTlspy5KbOJRICZWAb5s42jgfXnOM9Txo1Gs8Lru SWNhxyGB6nA/
Xio1u1MzxtHIgV9m9sbSeCBwe+R1+nXigCP7PN9s+0Yj+/jZuONuMbun3+30 496rtp8zo2Y4
AzCYZDE4L9D0/D6flWh58PneT5sfm/3Nw3evSoX1C3W4WBXV3JwQHX5TnHc/ oMmgBXSc3qSK
kZjVSuS5BwSpJxj29ahe2nLTsscO6SZHBLkEquOD8v8As/qfxt+fD53k+bH5 v9zcN3r0o8+H
/nrH9/Z94fe9Pr7UAVfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVjy3+2eZsi2eX t3Y+fOemfT+t
OMoFwsJVsshcNxjggEfqKal3bvM0KzRmRTtKbuc/SgCH7PN9s+0Yj+/jZuON uMbun3+30496
b9lmafJSNV8zdlZWIxnP3CMZPr689asfa7bzPL+0Rb87du8Zz6YqN75FuDD5 UpIkWPIXjJGf
0HWgCKW1nKeWiwsqzecrMTknfux046kZ5+nPFn7NH5m/dLnOcec+Pyzj8KV7 mBGZXnjVkGWB
cAge/wCY/Ol8+H/nrH9/Z94fe9Pr7UAO8tN27Yuc7s474xn8uKpPbTlp2WOH dJMjglyCVXHB
+X/Z/U/jb8+HzvJ82Pzf7m4bvXpQZQLhYSrZZC4bjHBAI/UUARrHNHcSFPLK SOHLEnI4Axjv
0657+3Isc0dxIU8spI4csScjgDGO/Trnv7cyCeMzmEMpcDJAYZHTqOveoX1C 3W4WBXV3JwQH
X5TnHc/oMmgCBI3mu7kCIKhmRjIwIJCheBxyMqe/f87flv8AbPM2RbPL27sf PnPTPp/WnCeM
zmEMpcDJAYZHTqOvejz4fO8nzY/N/ubhu9elADYUbzJZZBhnO0D0UZx/U/jj tRCjeZLLIMM5
2geijOP6n8cdqSW7iicJuDPuVSqsMrkgAkZ6cj86Y98i3Bh8qUkSLHkLxkjP 6DrQAySzke5L
iQCNnVyOeo29v+Af+PH05JLOR7kuJAI2dXI56jb2/wCAf+PH05tJLHIzKrAs hwy9x9RT6AKU
lnI9yXEgEbOrkc9Rt7f8A/8AHj6c2f332j/ln5Gz33bs/ljFSUUAUpLOR7ku JAI2dXI56jb2
/wCAf+PH05kMMjXayMsahCfnXO5lwcKRjpznr1HT0s0UAR/vvtH/ACz8jZ77 t2fyxiq/2ebH
k4j8rzfM37ju+/vxtx+HX39quUUAVYIpo7udzHFtlfO4Od2AoAGMe3r3qtKk nmLbCMMFnEoc
o3d9x5xgYBPOT0xjmtOigCGFG8yWWQYZztA9FGcf1P447VGiXP2ou6xFckbt 5JCdgBjjtnn+
mLVFAFP7PNjycR+V5vmb9x3ff3424/Dr7+1H2ebHk4j8rzfM37ju+/vxtx+H X39quUUAVnSc
3qSKkZjVSuS5BwSpJxj29afCjeZLLIMM52geijOP6n8cdqmooApyR3ZnMqiL KnagLnGw9c/L
1OB+Q98xy2k7SSyBIixlV0JkI+Ubcg8d9g/P89CigCmI7tZpSgiCySq+7ech RtBGNvcD170j
Wsjz+Y0durbw3nICHCg8DpzkDB5HXp63aKAKiwSKwjMcLxiUyB2JJBLE8Ljr zjOff2qN7act
Oyxw7pJkcEuQSq44Py/7P6n8b9FAFBbJ1m5QOnmmTJncdW3fcxjj9cVE2nzO jZjgDMJhkMTg
v0PT8Pp+ValFAGdLZTlyU2cSiQEysA3zZxtHA+vOcZ6ni/5abt2xc53Zx3xj P5cU6igBr/dN
R/5/z/n/AOvI/wB01H/n/P8An/64A1/un/P+f8/jHUj/AHT/AJ/z/n8Y6Qyt d9U/H+lFF31T
8f6UUCJ4/un/AHj/ADp1Nj+6f94/zp1Axi2TrNygdPNMmTO46tu+5jHH64qZ 0nN6kipGY1Ur
kuQcEqScY9vWrNMeWONlVmAZzhV7n6CmIprZOs3KB080yZM7jq277mMcfrio m0+Z0bMcAZhM
MhicF+h6fh9PyrQ8+H/nrH9/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oAqrZO s3KB080yZM7j
q277mMcfrih7actOyxw7pJkcEuQSq44Py/7P6n8bEt3FE4TcGfcqlVYZXJAB Iz05H51L5ieZ
5e9d+N23POPXFAEKxzR3EhTyykjhyxJyOAMY79Oue/ty2C2KXk9xJHGGc/Ky sSduAMHj/ZB/
H85vPh87yfNj83+5uG716UGUC4WEq2WQuG4xwQCP1FAFf7PNjycR+V5vmb9x 3ff3424/Dr7+
1Ogimju53McW2V87g53YCgAYx7evepvPh87yfNj83+5uG716ULPC67kljYcc hgepwP14oAz2
0+Z0bMcAZhMMhicF+h6fh9PyqwLeZppfMEaxPKsmVYlvl24GMcfdB/T3qx58 PneT5sfm/wBz
cN3r0oE8LOEEsZYkrtDDOR1H4UAVFsnWblA6eaZMmdx1bd9zGOP1xUqpci8e Xy4tjBU/1hyA
CecbffpUiXdu8zQrNGZFO0pu5z9KmoAzpbKcuSmziUSAmVgG+bONo4H15zjP U8ST205aTyvL
KvKkvzEg5Xb8vT/Z6/hjvVkTws4QSxliSu0MM5HUfhR58PneT5sfm/3Nw3ev SgCJ0nN6kipG
Y1UrkuQcEqScY9vWlWOaO4kKeWUkcOWJORwBjHfp1z39uZFnhddySxsOOQwP U4H68UefD53k
+bH5v9zcN3r0oAb9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd8Yz+XFR/a7bz PL+0Rb87du8Z
z6YqN75FuDD5UpIkWPIXjJGf0HWgCvcxSxRqpjV41uBIGVWZuX3HgDjAJ5z2 96lntpy0nleW
VeVJfmJByu35en+z1/DHepmufnwkMki7gpdAMA5x65474/oaf58PneT5sfm/ 3Nw3evSgClLZ
TlyU2cSiQEysA3zZxtHA+vOcZ6niw6Tm9SRUjMaqVyXIOCVJOMe3rUqzwuu5 JY2HHIYHqcD9
eKFnhddySxsOOQwPU4H68UAROk5vUkVIzGqlclyDglSTjHt60ipci8eXy4tj BU/1hyACecbf
fpU3nw+d5Pmx+b/c3Dd69KBPCzhBLGWJK7QwzkdR+FAETpOb1JFSMxqpXJcg 4JUk4x7etQrZ
Os3KB080yZM7jq277mMcfrirUM/mySp5br5TbSWxgnGeMH0I/Ol8+HzvJ82P zf7m4bvXpQBU
ltZynlosLKs3nKzE5J37sdOOpGefpzxd8tN27Yuc7s474xn8uKY9zAjMrzxq yDLAuAQPf8x+
dKJ4zOYQylwMkBhkdOo696AGeS0kwklYAIfkVMg9e579Bx0+vBqeoxPCzhBL GWJK7QwzkdR+
FQvfItwYfKlJEix5C8ZIz+g60AWqKYkscjMqsCyHDL3H1FPoAKKKKACiiigA ooooAKKKKACi
iigAooooAKKKKACiiigAooooAKKKKACiiigBr/dNR/5/z/n/AOvI/wB01H/n /P8An/64A1/u
n/P+f8/jHUj/AHT/AJ/z/n8Y6Qytd9U/H+lFF31T8f6UUCJ4/un/AHj/ADp1 Nj+6f94/zp1A
y5UHktHMZImBDn51fJPXse3U8dPpyanopiKf2eb7Z9oxH9/GzccbcY3dPv8A b6ce9N+yzNPk
pGq+ZuysrEYzn7hGMn19eetW3ljjZVZgGc4Ve5+gpPPh/wCesf39n3h970+v tQBUltZynlos
LKs3nKzE5J37sdOOpGefpzxZ8t/tnmbItnl7d2Pnznpn0/rStcwLL5TTxiTI GwuM5PTimy3c
UThNwZ9yqVVhlckAEjPTkfnQBXWydZuUDp5pkyZ3HVt33MY4/XFTOk5vUkVI zGqlclyDglST
jHt61P5ieZ5e9d+N23POPXFNM8IkMZlj3jGV3DIzjHH4j86AKi2TrNygdPNM mTO46tu+5jHH
64qJtPmdGzHAGYTDIYnBfoen4fT8q0PPh87yfNj83+5uG716ULPC67kljYcc hgepwP14oAqL
ZOs3KB080yZM7jq277mMcfrih7actOyxw7pJkcEuQSq44Py/7P6n8bYnhZwg ljLEldoYZyOo
/CgygXCwlWyyFw3GOCAR+ooAjWOaO4kKeWUkcOWJORwBjHfp1z39ubFR+fD5 3k+bH5v9zcN3
r0o8+H/nrH9/Z94fe9Pr7UAVHtpy07LHDukmRwS5BKrjg/L/ALP6n8Wy2U5c lNnEokBMrAN8
2cbRwPrznGep4me+KOU+yXDEBiMBfmCnBIGc9x9ala7tl3briIbTtbLjg+h/ I/lQBRbT5nRs
xwBmEwyGJwX6Hp+H0/KpVsnWblA6eaZMmdx1bd9zGOP1xVsTws4QSxliSu0M M5HUfhR58Pne
T5sfm/3Nw3evSgBv2aPzN+6XOc4858flnH4VJ5abt2xc53Zx3xjP5cUiSxyM yqwLIcMvcfUU
+gCukc0TFI/LMRcvuYncMnJGO/U85HXvjmP7PNjycR+V5vmb9x3ff3424/Dr 7+1XKKAMttPm
dGzHAGYTDIYnBfoen4fT8qG0+Z0bMcAZhMMhicF+h6fh9PyrUooAp/Z5seTi PyvN8zfuO77+
/G3H4dff2pj205adljh3STI4JcglVxwfl/2f1P436KAKYju1mlKCILJKr7t5 yFG0EY29wPXv
R9nmx5OI/K83zN+47vv78bcfh19/arlFAGZKknmLbCMMFnEoco3d9x5xgYBP OT0xjmrTpOb1
JFSMxqpXJcg4JUk4x7etWaKAKD205adljh3STI4JcglVxwfl/wBn9T+N3y03 bti5zuzjvjGf
y4p1FAEHktJMJJWACH5FTIPXue/QcdPrwanoooAKKKKACiiigAooooAKKKKA CiiigAooooAK
KKKACiiigAooooAKKKKACiiigBr/AHTUf+f8/wCf/ryP901H/n/P+f8A64A1 /un/AD/n/P4x
1I/3T/n/AD/n8Y6Qytd9U/H+lFF31T8f6UUCJ4/un/eP86dTY/un/eP86dQM uUUUUxEHktHM
ZImBDn51fJPXse3U8dPpyai+zzfbPtGI/v42bjjbjG7p9/t9OPerlMeWONlV mAZzhV7n6CgC
p9lmafJSNV8zdlZWIxnP3CMZPr689aSW1nKeWiwsqzecrMTknfux046kZ5+n PFvz4f8AnrH9
/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oATy3+2eZsi2eXt3Y+fOemfT+tRLB IrCMxwvGJTIH
YkkEsTwuOvOM59/apJbuKJwm4M+5VKqwyuSACRnpyPzqXzE8zy9678btuece uKAKv2ebHk4j
8rzfM37ju+/vxtx+HX39qrtp8zo2Y4AzCYZDE4L9D0/D6flV9rmBZfKaeMSZ A2FxnJ6cUvnw
+d5Pmx+b/c3Dd69KAKSRvNd3IEQVDMjGRgQSFC8DjkZU9+/52HSc3qSKkZjV SuS5BwSpJxj2
9ake5gRmV541ZBlgXAIHv+Y/Ol8+H/nrH9/Z94fe9Pr7UAVFsnWblA6eaZMm dx1bd9zGOP1x
T/s832z7RiP7+Nm4424xu6ff7fTj3qx58PneT5sfm/3Nw3evSgTws4QSxliS u0MM5HUfhQAx
45DexSAJ5aoykljnJIPTH+z696haPffmMB/LJEsmUOCy4xz7/KeP7nuasmeE SGMyx7xjK7hk
Zxjj8R+dHnw+d5Pmx+b/AHNw3evSgCkkbzXdyBEFQzIxkYEEhQvA45GVPfv+ blsnWblA6eaZ
Mmdx1bd9zGOP1xVxJY5GZVYFkOGXuPqKfQBB5LSTCSVgAh+RUyD17nv0HHT6 8Gp6KKACiiig
AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKK
KKACiiigAooooAKKKKAGv901H/n/AD/n/wCvI/3TUf8An/P+f/rgDX+6f8/5 /wA/jHUj/dP+
f8/5/GOkMrXfVPx/pRRd9U/H+lFAieP7p/3j/OnVSaJmlYlpfmJ2ojkZ68+3 9T265WFf3yEN
Kpxu2PIWyOeR/h9D65NCuV2ubFFFFMkKg8lo5jJEwIc/Or5J69j26njp9OTU 9FAFP7PN9s+0
Yj+/jZuONuMbun3+30496b9lmafJSNV8zdlZWIxnP3CMZPr689a59Li9dWZZ 5yqjLHecD8aX
zr//AJ63P3d/3m+76/T3rTkJ5jeltZynlosLKs3nKzE5J37sdOOpGefpzxZ8 t/tnmbItnl7d
2Pnznpn0/rXMiXUWj8xXujHjO4FsfnTo3v5EL/aJ1TaSGZmw2ASQD68H8qOT zDmNz7LM0+Sk
ar5m7KysRjOfuEYyfX1560i2TrNygdPNMmTO46tu+5jHH64rA+03vl+Z59xs zjdvbGfTNL51
/wCV5vm3Pl/39zY/OjkDmNu5ilijVTGrxrcCQMqszcvuPAHGATznt71LPbTl pPK8sq8qS/MS
Dldvy9P9nr+GO9c+Li7MBlF3LgMFK+Y2eQSD+ho86/8AK83zbny/7+5sfnRy BzG8tk6zcoHT
zTJkzuOrbvuYxx+uKHtpy07LHDukmRwS5BKrjg/L/s/qfxwWmv0OGluVPPBZ h0GT+nNHnX/l
eb5tz5f9/c2Pzo5A5jolgkVhGY4XjEpkDsSSCWJ4XHXnGc+/tUa2TrNygdPN MmTO46tu+5jH
H64rBM1+E3mW5CgA5LNjB6GnM+opEJWkuRGRkNubGKOTzDmOk8lpJhJKwAQ/ IqZB69z36Djp
9eDU9cf9tuv+fmb/AL+Gnma/CbzLchQAclmxg9DR7MOY62iuS86/8rzfNufL /v7mx+dDTX6H
DS3Knngsw6DJ/TmjkDmOtorkvOv/ACvN8258v+/ubH507fqXl+Zuu9mM7stj Hrmjk8w5jq6K
5dTetAJftrAFGkwZWzgHH6npUXnX/wDz1ufu7/vN931+nvRyeYcx1tFcmJdR aPzFe6MeM7gW
x+dJ51/5Xm+bc+X/AH9zY/Ojk8w5jraK5PzdR2lt91gLuJy3T1+lIZr8JvMt yFAByWbGD0NH
J5hzHW0VyXnX/leb5tz5f9/c2Pzoaa/Q4aW5U88FmHQZP6c0cgcx1tFcl51/ 5Xm+bc+X/f3N
j86lU3rQCX7awBRpMGVs4Bx+p6UcnmHMdRRXH/bbr/n5m/7+GpPN1HaW33WA u4nLdPX6UezD
mOsorkvOv/K83zbny/7+5sfnUqjUWgMxnuFQDIJL/MMZ7fzNHJ5hzHUUVym/ UvL8zdd7MZ3Z
bGPXNPU3rQCX7awBRpMGVs4Bx+p6UuTzC51FFcl51/8A89bn7u/7zfd9fp70 ol1Fo/MV7ox4
zuBbH50+TzDmOsorkvOv/K83zbny/wC/ubH50vm6jtLb7rAXcTlunr9KOTzD mOsorkjNfhN5
luQoAOSzYweho86/8rzfNufL/v7mx+dHIHMdbRXJNNfocNLcqeeCzDoMn9Oa POv/ACvN8258
v+/ubH50cgcx1tFcvuu/LVhfMxZC4QO+cDOe2OMHv2qLzr/yvN8258v+/ubH 50cgcx1tFcuo
1FoDMZ7hUAyCS/zDGe38zQpvWgEv21gCjSYMrZwDj9T0pcnmFzqKK5JLm6aK SQ3UwCYA+c8k
9uvoCfwpHuL1FVmnnCsMqd5wfxp8gcx11FFFZlBRRRQA1/umo/8AP+f8/wD1 5H+6aj/z/n/P
/wBcAa/3T/n/AD/n8Y6kf7p/z/n/AD+NczxgkZPHH3TSGk3sRXfVPx/pRRdE MIyOhBI/SigB
u7MxdFLyR5AQd/mzn9enXp60Iha8Ezh03ZIVhyT3/D3+lOMcJ5aBJJGLYG0Z PJ70sAg3jFuk
UmNy8DkeoNLS5peXKalFFFUZBRRRQBx+/wAyIJIhyo+QpgfmO/Qc9frxUvmx /ZfI+f7md20Z
3Zzt6/d/rzXQyQWSMqvDAGc/KuwZb8KTy9P/ALlt9/Z0X73p9fatOdBZGB5y CHALsxj24Mag
5xj7+c49vTApYpog+9jMC8XlFVAwBt25689jjj/HdZNOWXymW1EhI+Qhc57c U2UWEb7PIgdy
yhlVVyuSACR6cj86OdBZHOZH2Ty8y79+7bn5MY649asG5DRDBKP5ezAhU/w4 +9nPP9a6D7PZ
eZ5fkwb8btu0Zx64pvl6f53k7Lbzf7mF3evSjnQWRzieV9keMtJ5jENgIMcA 8Zz71KbkNEME
o/l7MCFT/Dj72c8/1reMNr9oEJtI8spcNsXBwQD+PIo8vT/O8nZbeb/cwu71 6Uc6CyMVbuNX
Xa0xUGIgFQMhOo6/j9fzqM3IaIYJR/L2YEKn+HH3s55/rW8senyLuVLZgccg Kc5OB+uRR5en
+d5Oy283+5hd3r0o5kFkYKTRbYFZpsJE6kBB1bPI5/2v0HrUJMckEYYPvRCo AAweSc57demP
510gj09n2BLYsWI24XJI6j6imqNNkmaFVtjIGwU2rnP070c4WRy21vSrqTRb YFZpsJE6kBB1
bPI5/wBr9B610X2O1/59of8AvgVGI9PZ9gS2LFiNuFySOo+oocwtEw4rmIKA 4fmMoQI1JHy4
zuPJ+nHX83Ldxq67WmKgxEAqBkJ1HX8fr+dbXl6f53k7Lbzf7mF3evShY9Pk XcqWzA45AU5y
cD9cijmQWRgm5DRDBKP5ezAhU/w4+9nPP9ar+dL5ezZHjGP9UufzxnNdN5en +d5Oy283+5hd
3r0puNM8zy8Wm/djb8uc+mPWjnQWRzGZMYy2MYxntnOPz5qzDLEFj8wSArG0 Y2gHg7uev+10
/XtW07WS3Bh+w7j5ix5EQIJIz+g61MI9PZ9gS2LFiNuFySOo+oo5wsjA85BD gF2Yx7cGNQc4
x9/Oce3pgUpuQ0QwSj+XswIVP8OPvZzz/Wt7y9P87ydlt5v9zC7vXpSMmnLL 5TLaiQkfIQuc
9uKOdBZHPStHJbQory7o0wFKjbknJ5z7+nYVIk0W2BWabCROpAQdWzyOf9r9 B61usmnLL5TL
aiQkfIQuc9uKRhpi7twtBtbDZ28Hng+/Bo5wsjFiuYgoDh+YyhAjUkfLjO48 n6cdfzct3Grr
taYqDEQCoGQnUdfx+v51teXp/neTstvN/uYXd69KQpp27aVtdxbbjC5Len15 /WjmQWRhG5DR
DBKP5ezAhU/w4+9nPP8AWqmZMYy2MYxntnOPz5rppRYRvs8iB3LKGVVXK5IA JHpyPzpjtZLc
GH7DuPmLHkRAgkjP6DrRzoLI5ra3pVmVo5LaFFeXdGmApUbck5POff07Cum+ x2v/AD7Q/wDf
AqIpp27aVtdxbbjC5Len15/WnzhaJhG5DRDBKP5ezAhU/wAOPvZzz/Woz5LW iR7pd6ln/wBW
MEkDjr7frXReXp/neTstvN/uYXd69KheTThcCAQwO5bDABODnHOTyevAyaXO gsjn/Ol8vZsj
xjH+qXP54zmmZkxjLYxjGe2c4/PmunxpnmeXi037sbflzn0x61G7WS3Bh+w7 j5ix5EQIJIz+
g60+dBZGLDLEFj8wSArG0Y2gHg7uev8AtdP17UvnIIcAuzGPbgxqDnGPv5zj 29MCt8R6ez7A
lsWLEbcLkkdR9RR5en+d5Oy283+5hd3r0pc6CyME3IaIYJR/L2YEKn+HH3s5 5/rUcrRyW0KK
8u6NMBSo25Jyec+/p2FdCyacsvlMtqJCR8hC5z24oZNOWXymW1EhI+Qhc57c Uc6CyMJJotsC
s02EidSAg6tnkc/7X6D1p0VzEFAcPzGUIEakj5cZ3Hk/Tjr+e0w0xd24Wg2t hs7eDzwffg07
y9P87ydlt5v9zC7vXpRzoLIxVu41ddrTFQYiAVAyE6jr+P1/OozchohglH8v ZgQqf4cfeznn
+tbpTTt20ra7i23GFyW9Prz+tNlFhG+zyIHcsoZVVcrkgAkenI/OjmQWRh+e ggiiAYjyyrNs
AYZJPBznvjHGR9aU3IaIYJR/L2YEKn+HH3s55/rWz/onmujWIVVkCM5RMZOM d885HbvUvl6f
53k7Lbzf7mF3evSjnQWRzp8lrRI90u9Sz/6sYJIHHX2/WoMyYxlsYxjPbOcf nzXRvJpwuBAI
YHcthgAnBzjnJ5PXgZNDtZLcGH7DuPmLHkRAgkjP6DrRzhaJz8pzHFHHyqjc T6scZ/oPw96U
Psi2RISXHzF8H8h269ev0zXSvBarNHGLWFi+SfkHAHfp6kD8aVILKRnVYYCy n5l2DI+oo5ws
i1RRRWYBRRRQA1/umo/8/wCf8/8A15H+6aj/AM/5/wA//XAGv90/5/z/AJ/G qbdSSd7DJz2/
wq0/3T/n/P8An8apuFBI2McHHb/GguPN0I7lQqxqOgBH8qKLlgyxsOhBP8qK RL3HMrBhMil2
TICj13Eg02OJ5Lo3Dq6Drhxzk/0qxH90/wC8f506lYvndrFyiiiqMwoopjyx xsqswDOcKvc/
QUAVztimaSOVcFgJFcknqeh7Ac8dOD05NREEXhuC0XEm0puONuMbun3+CM9M AjPGatMypNDG
qAkg9ONqjr+u0Y9/agS24xiSIYbyxgjg/wB36+1BXulMofPJYxIqy5JWViOu fuEYzwcnscnq
KSZH2GNTAVjn80M7HOd+7HTjuM89D74uGe2SVYjLCsg+UJuAIz2x+VNkuYIX VBtZwVTahGUB
IAyM9OR+lAe6IXUXhkPk7Amwtj5856Z/u8H8QfSqwhVJm3bXQTbyTcOMZbd9 zGOOfyPTmr4M
QkEYKBwuQoxkL9PSmGe2SVYjLCsg+UJuAIz2x+VAe6QySP8AbVkHk+XGChJc g8kEnGO209/X
pg1CIVSZt210E28k3DjGW3fcxjjn8j05q6JbcTCESRCUDAQEbgOvSkae2iYq 0sKNGvILAFRx
+Q6fpQHumc9sSj7hbqx84E7icF+h+72wQfYH0IqUQqkzbtroJt5JuHGMtu+5 jHHP5HpzV0S2
4xiSIYbyxgjg/wB36+1AltxMIRJEJQMBARuA69KA90pSo+64YCDc06NkuQcL jg/L/sn2GT6V
OHMVxKVeLY8gZmYnK8AEAY5+6ec8c+lTLLb71RJItwyiqCM8dQP04o823WTy xJEHQAbcjKg4
xx+X6UB7o4zxDOXHBwf8/gfyPpVCVH3XDAQbmnRslyDhccH5f9k+wyfSrolt xMIRJEJQMBAR
uA69KWN4WYrGV3R/KVxgr+HYcfjQHumfNC29irx/LMHyZWAPzZxtHA6HnnoS ec4Y9sSj7hbq
x84E7icF+h+72wQfYH0IrWCqMYUDAwMDoKAqjGFAwMDA6CgPdM4QqkzbtroJ t5JuHGMtu+5j
HHP5HpzVkpbiQuZZMhskec+M/TOMcH24PpVgKoxhQMDAwOgoCqMYUDAwMDoK A90jL24YsdmQ
2Scd8Yz+QIz7H0qjkPdXIwiIZkYyNkMduOAMcjKt345P10gqjGFAwMDA6CgK oxhQMDAwOgoD
3TMmhbexV4/lmD5MrAH5s42jgdDzz0JPOcPKHzyWMSKsuSVlYjrn7hGM8HJ7 HJ6itAKoxhQM
DAwOgoCqMYUDAwMDoKA90zyh88ljEirLklZWI65+4RjPByexyeopZYs3Lv56 iMyKzDJ6jb27
/wCr6+7enN8KoxhQMDAwOgoCqMYUDAwMDoKA90okEAwlovKE3mF9x3ff3424 9iM57E9sU6Fj
Fd3DsIQsknLBzuAC4HG3noe/HPoauBVGMKBgYGB0FAVRjCgYGBgdBQHumdMj 7DGpgKxz+aGd
jnO/djpx3Geeh98XS9uGLHZkNknHfGM/kCM+x9KkCqMYUDAwMDoKAqjGFAwM DA6CgPdGmeIZ
y44OD/n8D+R9KqwsYru4dhCFkk5YOdwAXA4289D3459DVwKoxhQMDAwOgoCq MYUDAwMDoKA9
0zhCqTNu2ugm3km4cYy277mMcc/kenNSiSRLySUiHYdqH94cgAtzjb7n8jzV wKoxhQMDAwOg
oCqMYUDAwMDoKA90rlLcSFzLJkNkjznxn6Zxjg+3B9KkL24YsdmQ2Scd8Yz+ QIz7H0qQKoxh
QMDAwOgoCqMYUDAwMDoKA90zch7q5GERDMjGRshjtxwBjkZVu/HJ+qTQtvYq 8fyzB8mVgD82
cbRwOh556EnnONMKoxhQMDAwOgoCqMYUDAwMDoKA90zyh88ljEirLklZWI65 +4RjPByexyeo
oKHzyWMSKsuSVlYjrn7hGM8HJ7HJ6itAKoxhQMDAwOgoCqMYUDAwMDoKA90o SxZuXfz1EZkV
mGT1G3t3/wBX1929OVIIBhLReUJvML7ju+/vxtx7EZz2J7Yq8FUYwoGBgYHQ UBVGMKBgYGB0
FAe6U4WMV3cOwhCyScsHO4ALgcbeeh78c+hqKZH2GNTAVjn80M7HOd+7HTju M89D740QqjGF
AwMDA6CgKoxhQMDAwOgoD3TPMX+kTzM6AiUMq+YxVsDGGGMfw5zzgj/ZpBCq TNu2ugm3km4c
Yy277mMcc/kenNaIVRjCgYGBgdBQFUYwoGBgYHQUB7pTEkiXkkpEOw7UP7w5 ABbnG33P5Hmr
Be3DFjsyGyTjvjGfyBGfY+lSBVGMKBgYGB0FAVRjCgYGBgdBQHuleJ0WSaWV gGLbcZ6KM4/9
mPtkjtSHa83mTSqBG2FVCQRz3PccdOnBznGRZCqMYUDAwMDoKAqjGFAwMDA6 CgPdHUUUUEhR
RRQA1/umo/8AP+f8/wD15H+6aj/z/n/P/wBcAa/3T/n/AD/n8a5gjJJweefv GrD/AHT/AJ/z
/n8Y6Q02titdAKIwOgBA/Sii76p+P9KKAJ4/un/eP86dTY/un/eP86dQBcoo opiCoPJaOYyR
MCHPzq+SevY9up46fTk1I8scbKrMAznCr3P0FI8u2aOMDJfJPPQDv+ZA/GgB sKN5kssgwzna
B6KM4/qfxx2qH7PN9s+0Yj+/jZuONuMbun3+30496sefD/z1j+/s+8Pven19 qRrmBZfKaeMS
ZA2FxnJ6cUAVvsszT5KRqvmbsrKxGM5+4RjJ9fXnrSS2s5Ty0WFlWbzlZick 792OnHUjPP05
4sS3cUThNwZ9yqVVhlckAEjPTkfnUvmJ5nl71343bc849cUAR+W/2zzNkWzy 9u7Hz5z0z6f1
qv8AZZmnyUjVfM3ZWViMZz9wjGT6+vPWrRnhEhjMse8Yyu4ZGcY4/EfnR58P neT5sfm/3Nw3
evSgCotk6zcoHTzTJkzuOrbvuYxx+uKZcxSxRqpjV41uBIGVWZuX3HgDjAJ5 z296vLPC67kl
jYcchgepwP14oE8LOEEsZYkrtDDOR1H4UAVp7actJ5XllXlSX5iQcrt+Xp/s 9fwx3pq2TrNy
gdPNMmTO46tu+5jHH64q2ZQLhYSrZZC4bjHBAI/UUefD53k+bH5v9zcN3r0o AqPbTlp2WOHd
JMjglyCVXHB+X/Z/U/jIsEisIzHC8YlMgdiSQSxPC4684zn39qn8+H/nrH9/ Z94fe9Pr7VA9
8Ucp9kuGIDEYC/MFOCQM57j60ARrZOs3KB080yZM7jq277mMcfrirHktJMJJ WACH5FTIPXue
/QcdPrwaVru2XduuIhtO1suOD6H8j+VOE8LOEEsZYkrtDDOR1H4UASUVH58P neT5sfm/3Nw3
evSlSWORmVWBZDhl7j6igB9FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUANf7pqP/P8An/P/ ANeR/umo/wDP
+f8AP/1wBr/dP+f8/wCfxjqR/un/AD/n/P4x0hla76p+P9KKLvqn4/0ooETx /dP+8f506mx/
dP8AvH+dOoGXKKKY8scbKrMAznCr3P0FMRH5LRzGSJgQ5+dXyT17Ht1PHT6c mlhRvMllkGGc
7QPRRnH9T+OO1OeXbNHGBkvknnoB3/MgfjR58P8Az1j+/s+8Pven19qAK/2e b7Z9oxH9/Gzc
cbcY3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561Za5gWXymnjEmQNhc ZyenFNlu4onC
bgz7lUqrDK5IAJGenI/OgCvLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/bP M2RbPL27sfPn
PTPp/WpPMTzPL3rvxu255x64pvnw+d5Pmx+b/c3Dd69KAIFgkVhGY4XjEpkD sSSCWJ4XHXnG
c+/tSfZ5seTiPyvN8zfuO77+/G3H4dff2qwZQLhYSrZZC4bjHBAI/UUefD53 k+bH5v8Ac3Dd
69KAM9tPmdGzHAGYTDIYnBfoen4fT8qekbzXdyBEFQzIxkYEEhQvA45GVPfv +d1Z4XXcksbD
jkMD1OB+vFHnw+d5Pmx+b/c3Dd69KAInSc3qSKkZjVSuS5BwSpJxj29ahWyd ZuUDp5pkyZ3H
Vt33MY4/XFWxPCzhBLGWJK7QwzkdR+FNS7t3maFZozIp2lN3OfpQBD9nm+2f aMR/fxs3HG3G
N3T7/b6ce9SvHIb2KQBPLVGUksc5JB6Y/wBn171IkscjMqsCyHDL3H1FPoAp NHvvzGA/lkiW
TKHBZcY59/lPH9z3NRpG813cgRBUMyMZGBBIULwOORlT37/no0UAUFsnWblA 6eaZMmdx1bd9
zGOP1xVjyWkmEkrABD8ipkHr3PfoOOn14NT0UAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UANf7pqP/P8A
n/P/ANeR/umo/wDP+f8AP/1wBr/dP+f8/wCfxjqR/un/AD/n/P4x0hla76p+ P9KKLvqn4/0o
oETx/dP+8f506mx/dP8AvH+dOoGXKg8lo5jJEwIc/Or5J69j26njp9OTU9Me WONlVmAZzhV7
n6CmIZCjeZLLIMM52geijOP6n8cdqh+zzfbPtGI/v42bjjbjG7p9/t9OPerH nw/89Y/v7PvD
73p9faka5gWXymnjEmQNhcZyenFAFb7LM0+Skar5m7KysRjOfuEYyfX1560k trOU8tFhZVm8
5WYnJO/djpx1Izz9OeLEt3FE4TcGfcqlVYZXJABIz05H51L5ieZ5e9d+N23P OPXFAEflv9s8
zZFs8vbux8+c9M+n9arLZOs3KB080yZM7jq277mMcfrirfnw+d5Pmx+b/c3D d69KDKBcLCVb
LIXDcY4IBH6igCJ0nN6kipGY1UrkuQcEqScY9vWoVsnWblA6eaZMmdx1bd9z GOP1xVvz4fO8
nzY/N/ubhu9elCzwuu5JY2HHIYHqcD9eKAM9tPmdGzHAGYTDIYnBfoen4fT8 qlWydZuUDp5p
kyZ3HVt33MY4/XFW/Ph87yfNj83+5uG716UCeFnCCWMsSV2hhnI6j8KAKj20 5adljh3STI4J
cglVxwfl/wBn9T+M6xzR3EhTyykjhyxJyOAMY79Oue/ty5Lu3eZoVmjMinaU 3c5+lTUAQeS0
kwklYAIfkVMg9e579Bx0+vBqeoxPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3 Dd69KAJKKjWe
F13JLGw45DA9TgfrxR58PneT5sfm/wBzcN3r0oAkoqH7XbeZ5f2iLfnbt3jO fTFRvfItwYfK
lJEix5C8ZIz+g60AWqKjE8LOEEsZYkrtDDOR1H4UefD53k+bH5v9zcN3r0oA koqJrmBZfKae
MSZA2FxnJ6cUNcwLL5TTxiTIGwuM5PTigCWioWu7Zd264iG07Wy44PofyP5U 7z4fO8nzY/N/
ubhu9elAElFRfaYAwXz49xbYBvGS3p9eRTZbuKJwm4M+5VKqwyuSACRnpyPz oAnoqsLweayN
DIqo4jLnbjJxjvnnI7d6l8+HzvJ82Pzf7m4bvXpQBJRVV9Qt1uFgV1dycEB1 +U5x3P6DJoe+
Rbgw+VKSJFjyF4yRn9B1oAtUUVCl3bvM0KzRmRTtKbuc/SgCaioWu7Zd264i G07Wy44PofyP
5U4Tws4QSxliSu0MM5HUfhQBJRUfnw+d5Pmx+b/c3Dd69Kb9rtvM8v7RFvzt 27xnPpigCaiq
r3yLcGHypSRIseQvGSM/oOtTefD/AM9Y/v7PvD73p9fagCSiomuYFl8pp4xJ kDYXGcnpxTZb
uKJwm4M+5VKqwyuSACRnpyPzoAnopvmJ5nl71343bc849cUxrmBZfKaeMSZA 2FxnJ6cUAS0V
Cl3bvM0KzRmRTtKbuc/Sl+0wBgvnx7i2wDeMlvT68igCWioxPGZzCGUuBkgM Mjp1HXvQJ4Wc
IJYyxJXaGGcjqPwoAkoqJ7mBGZXnjVkGWBcAge/5j86ie+Rbgw+VKSJFjyF4 yRn9B1oAtUVG
8u2aOMDJfJPPQDv+ZA/GlSWORmVWBZDhl7j6igB9FFFABRRRQA1/umo/8/5/ z/8AXkf7pqP/
AD/n/P8A9cAa/wB0/wCf8/5/GOpH+6f8/wCf8/jHSGVrvqn4/wBKKLvqn4/0 ooETx/dP+8f5
06mx/dP+8f506gZcqDyWjmMkTAhz86vknr2PbqeOn05NT0x5Y42VWYBnOFXu foKYit9nm+2f
aMR/fxs3HG3GN3T7/b6ce9N+yzNPkpGq+ZuysrEYzn7hGMn19eetWvPh/wCe sf39n3h970+v
tSNcwLL5TTxiTIGwuM5PTigCrLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/ AGzzNkWzy9u7
Hz5z0z6f1pJbuKJwm4M+5VKqwyuSACRnpyPzqXzE8zy9678btueceuKAKS2T rNygdPNMmTO4
6tu+5jHH64qZ0nN6kipGY1UrkuQcEqScY9vWpfPh87yfNj83+5uG716UGUC4 WEq2WQuG4xwQ
CP1FAFRbJ1m5QOnmmTJncdW3fcxjj9cVE2nzOjZjgDMJhkMTgv0PT8Pp+VaH nw+d5Pmx+b/c
3Dd69KFnhddySxsOOQwPU4H68UAVFsnWblA6eaZMmdx1bd9zGOP1xQ9tOWnZ Y4d0kyOCXIJV
ccH5f9n9T+Nvz4fO8nzY/N/ubhu9elAnhZwgljLEldoYZyOo/CgCNY5o7iQp 5ZSRw5Yk5HAG
Md+nXPf25sVCl3bvM0KzRmRTtKbuc/SpqAKD205adljh3STI4JcglVxwfl/2 f1P4tlspy5Kb
OJRICZWAb5s42jgfXnOM9TxdE8LOEEsZYkrtDDOR1H4UefD53k+bH5v9zcN3 r0oAz20+Z0bM
cAZhMMhicF+h6fh9PyqVbJ1m5QOnmmTJncdW3fcxjj9cVbWeF13JLGw45DA9 TgfrxR58PneT
5sfm/wBzcN3r0oAb9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd8Yz+XFR/a7b zPL+0Rb87du8
Zz6YqN75FuDD5UpIkWPIXjJGf0HWgCBI3mu7kCIKhmRjIwIJCheBxyMqe/f8 yWynLkps4lEg
JlYBvmzjaOB9ec4z1PF3z4f+esf39n3h970+vtSNcwLL5TTxiTIGwuM5PTig Ct9lmafJSNV8
zdlZWIxnP3CMZPr689aPsszT5KRqvmbsrKxGM5+4RjJ9fXnrVrz4fO8nzY/N /ubhu9elJ9pg
DBfPj3FtgG8ZLen15FAFeSzke5LiQCNnVyOeo29v+Af+PH05X7PNjycR+V5v mb9x3ff3424/
Dr7+1WBPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3Dd69KAIYIpo7udzHFtlf O4Od2AoAGMe3
r3qKW1nKeWiwsqzecrMTknfux046kZ5+nPFtZ4XXcksbDjkMD1OB+vFHnw+d 5Pmx+b/c3Dd6
9KAKv2SU3E0x25MgdF8xirYAGGGMDpnPODj05RbJ1m5QOnmmTJncdW3fcxjj 9cVMLweayNDI
qo4jLnbjJxjvnnI7d6l8+HzvJ82Pzf7m4bvXpQBCqXIvHl8uLYwVP9YcgAnn G336VY8tN27Y
uc7s474xn8uKrvqFutwsCuruTggOvynOO5/QZND3yLcGHypSRIseQvGSM/oO tAFqq6xzR3Eh
TyykjhyxJyOAMY79Oue/tzYqFLu3eZoVmjMinaU3c5+lAEDR778xgP5ZIlky hwWXGOff5Tx/
c9zUaRvNd3IEQVDMjGRgQSFC8DjkZU9+/wCdtru2XduuIhtO1suOD6H8j+VO E8LOEEsZYkrt
DDOR1H4UAVFsnWblA6eaZMmdx1bd9zGOP1xVn7NH5m/dLnOcec+Pyzj8Kd58 PneT5sfm/wBz
cN3r0pv2u28zy/tEW/O3bvGc+mKAJPLTdu2LnO7OO+MZ/Liqv2eb7Z9oxH9/ GzccbcY3dPv9
vpx70575FuDD5UpIkWPIXjJGf0HWpvPh/wCesf39n3h970+vtQBV+yzNPkpG q+ZuysrEYzn7
hGMn19eetJLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tni01zAsvlNPGJMgbC4zk9 OKbLdxROE3Bn
3KpVWGVyQASM9OR+dAC+W/2zzNkWzy9u7Hz5z0z6f1qv9lmafJSNV8zdlZWI xnP3CMZPr689
aueYnmeXvXfjdtzzj1xTGuYFl8pp4xJkDYXGcnpxQAxY5o7iQp5ZSRw5Yk5H AGMd+nXPf25b
BFNHdzuY4tsr53BzuwFAAxj29e9SJd27zNCs0ZkU7Sm7nP0pftMAYL58e4ts A3jJb0+vIoAj
dJzepIqRmNVK5LkHBKknGPb1qF7actOyxw7pJkcEuQSq44Py/wCz+p/G2J4z OYQylwMkBhkd
Oo696BPCzhBLGWJK7QwzkdR+FAFCVJPMW2EYYLOJQ5Ru77jzjAwCecnpjHNa Plpu3bFzndnH
fGM/lxTHuYEZleeNWQZYFwCB7/mPzqJ75FuDD5UpIkWPIXjJGf0HWgCSFG8y WWQYZztA9FGc
f1P447UnktJMJJWACH5FTIPXue/QcdPrwae8u2aOMDJfJPPQDv8AmQPxpUlj kZlVgWQ4Ze4+
ooAfRRRQAUUUUANf7pqP/P8An/P/ANeR/umo/wDP+f8AP/1wBr/dP+f8/wCf xjqR/un/AD/n
/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/dP8AvH+dOoGXKg8lo5jJ EwIc/Or5J69j
26njp9OTUjyxxsqswDOcKvc/QUjy7Zo4wMl8k89AO/5kD8aYiv8AZ5vtn2jE f38bNxxtxjd0
+/2+nHvTfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVrz4f8AnrH9/Z94fe9Pr7Uj XMCy+U08YkyB
sLjOT04oAqy2s5Ty0WFlWbzlZick792OnHUjPP054s+W/wBs8zZFs8vbux8+ c9M+n9aSW7ii
cJuDPuVSqsMrkgAkZ6cj86l8xPM8veu/G7bnnHrigCktk6zcoHTzTJkzuOrb vuYxx+uKmdJz
epIqRmNVK5LkHBKknGPb1qRrmBZfKaeMSZA2FxnJ6cUpnhEhjMse8Yyu4ZGc Y4/EfnQBUWyd
ZuUDp5pkyZ3HVt33MY4/XFRNp8zo2Y4AzCYZDE4L9D0/D6flV6O5jeVoydjq 5QKxGWwAcjnn
ginefD53k+bH5v8Ac3Dd69KAKi2TrNygdPNMmTO46tu+5jHH64oe2nLTsscO 6SZHBLkEquOD
8v8As/qfxtrPC67kljYcchgepwP14o8+HzvJ82Pzf7m4bvXpQBGsc0dxIU8s pI4csScjgDGO
/Trnv7c2KYkscjMqsCyHDL3H1FPoAoPbTlp2WOHdJMjglyCVXHB+X/Z/U/i2 WynLkps4lEgJ
lYBvmzjaOB9ec4z1PGjRQBltp8zo2Y4AzCYZDE4L9D0/D6flUq2TrNygdPNM mTO46tu+5jHH
64q/RQBD9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd8Yz+XFOooApT205aTyv LKvKkvzEg5Xb
8vT/AGev4Y70n2WZp8lI1XzN2VlYjGc/cIxk+vrz1q9RQBQWydZuUDp5pkyZ 3HVt33MY4/XF
SwRTR3c7mOLbK+dwc7sBQAMY9vXvVqigCg9tOWnZY4d0kyOCXIJVccH5f9n9 T+LZbKcuSmzi
USAmVgG+bONo4H15zjPU8aNFAGW2nzOjZjgDMJhkMTgv0PT8Pp+VSrZOs3KB 080yZM7jq277
mMcfrir9FAFH7JKbiaY7cmQOi+YxVsADDDGB0znnBx6cotk6zcoHTzTJkzuO rbvuYxx+uKv0
UAVVS5F48vlxbGCp/rDkAE842+/SrHlpu3bFzndnHfGM/lxTqKACq6xzR3Eh TyykjhyxJyOA
MY79Oue/tzYooApNHvvzGA/lkiWTKHBZcY59/lPH9z3NRpG813cgRBUMyMZG BBIULwOORlT3
7/no0UAUFsnWblA6eaZMmdx1bd9zGOP1xVn7NH5m/dLnOcec+Pyzj8KmooAb 5abt2xc53Zx3
xjP5cVV+zzfbPtGI/v42bjjbjG7p9/t9OPerlFAFH7LM0+Skar5m7KysRjOf uEYyfX1560kt
rOU8tFhZVm85WYnJO/djpx1Izz9OeL9FAEPlv9s8zZFs8vbux8+c9M+n9ar/ AGWZp8lI1XzN
2VlYjGc/cIxk+vrz1q9RQBXWOaO4kKeWUkcOWJORwBjHfp1z39uWwRTR3c7m OLbK+dwc7sBQ
AMY9vXvVqigCs6Tm9SRUjMaqVyXIOCVJOMe3rUL205adljh3STI4JcglVxwf l/2f1P436KAM
yVJPMW2EYYLOJQ5Ru77jzjAwCecnpjHNaPlpu3bFzndnHfGM/lxTqKAIYUbz JZZBhnO0D0UZ
x/U/jjtSeS0kwklYAIfkVMg9e579Bx0+vBqeigAooooAKKKKAGv901H/AJ/z /n/68j/dNR/5
/wA/5/8ArgDX+6f8/wCf8/jHUj/dP+f8/wCfxjpDK131T8f6UUXfVPx/pRQI nj+6f94/zp1N
j+6f94/zp1AyXyWjmMkTAhz86vknr2PbqeOn05NLCjeZLLIMM52geijOP6n8 cdqmopiKf2eb
7Z9oxH9/GzccbcY3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561eooAo S2s5Ty0WFlWb
zlZick792OnHUjPP054s+W/2zzNkWzy9u7Hz5z0z6f1qaigCj9lmafJSNV8z dlZWIxnP3CMZ
Pr689aesEisIzHC8YlMgdiSQSxPC4684zn39qt0UAUHtpy07LHDukmRwS5BK rjg/L/s/qfxF
snWblA6eaZMmdx1bd9zGOP1xV+igDLbT5nRsxwBmEwyGJwX6Hp+H0/Kny2U5 clNnEokBMrAN
82cbRwPrznGep40aKAIPJaSYSSsAEPyKmQevc9+g46fXg1PRRQAUUUUAFFFF ABRRRQAUUUUA
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRR
RQAUUUUAFFFFABRRRQA1/umo/wDP+f8AP/15H+6aj/z/AJ/z/wDXAGv90/5/ z/n8Y6kf7p/z
/n/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/dP+8f506gZcooopiCi iigAooooAKKK
KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigA
ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAGv 93HqRVUzIDhi
oPu3/wBerUhAXJOACMk/WqDGBnVmKHb70AE0hM8ABwrE5wevBqWq8zh7qAhg xy2cH2NWKQyt
d9U/H+lFF31T8f6UUCJ4/un/AHj/ADp1Nj+6f94/zp1Ax7y7BkngAEkk1Bdz uLN3QlSVyCCc
jNLMYnyrOvQd+nFQ3bp9jdVdSQgHX0oEaGT6n/P+f89zJ9T/AJ/z/nun+f8A P+f/AK5/n/P+
f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuALk+p/wA/5/z3 Mn1P+f8AP+e6
f5/z/n/65/n/AD/n/wCuALk+p/z/AJ/z3Mn1P+f8/wCe6f5/z/n/AOuf5/z/ AJ/+uALk+p/z
/n/PcyfU/wCf8/57p/n/AD/n/wCuf5/z/n/64AuT6n/P+f8APcyfU/5/z/nu n+f8/wCf/rn+
f8/5/wDrgC5Pqf8AP+f89zJ9T/n/AD/nun+f8/5/+uf5/wA/5/8ArgC5Pqf8 /wCf89zJ9T/n
/P8Anun+f8/5/wDrn+f8/wCf/rgC5Pqf8/5/z3Mn1P8An/P+e6f5/wA/5/8A rn+f8/5/+uAL
k+p/z/n/AD3Mn1P+f8/57p/n/P8An/65/n/P+f8A64AuT6n/AD/n/PcyfU/5 /wA/57p/n/P+
f/rn+f8AP+f/AK4AuT6n/P8An/PcyfU/5/z/AJ7p/n/P+f8A65/n/P8An/64 AuT6n/P+f89z
J9T/AJ/z/nun+f8AP+f/AK5/n/P+f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/ AJ/+uf5/z/n/
AOuALk+p/wA/5/z3Mn1P+f8AP+e6f5/z/n/65/n/AD/n/wCuALk+p/z/AJ/z 3Mn1P+f8/wCe
6f5/z/n/AOuf5/z/AJ/+uALk+p/z/n/PcyfU/wCf8/57p/n/AD/n/wCuf5/z /n/64AuT6n/P
+f8APcyfU/5/z/nun+f8/wCf/rn+f8/5/wDrgC5Pqf8AP+f89zJ9T/n/AD/n un+f8/5/+uf5
/wA/5/8ArgC5Pqf8/wCf89zJ9T/n/P8Anun+f8/5/wDrn+f8/wCf/rgC5Pqf 8/5/z3Mn1P8A
n/P+e6f5/wA/5/8Arn+f8/5/+uALk+p/z/n/AD3Mn1P+f8/57p/n/P8An/65 /n/P+f8A64Au
T6n/AD/n/PcyfU/5/wA/57p/n/P+f/rn+f8AP+f/AK4AuT6n/P8An/PcyfU/ 5/z/AJ7p/n/P
+f8A65/n/P8An/64AuT6n/P+f89zJ9T/AJ/z/nun+f8AP+f/AK5/n/P+f/rg C5Pqf8/5/wA9
zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuAGTxyeo7/AOf8/rE0+1lU8FunJ/xq QkDknABySf8A
P+f51SYXdWdlIXoM8E0AFy5eWGNuUYncp5B4pfs8H/PGP/vkVHK6tdW+1geW 6fQ1YoGMWGJG
DLEikdwoFPoooArXfVPx/pRRd9U/H+lFAidFXYCQckn+Ijufel2r/dP/AH03 +NRThTaEO4Rc
nLN0+8eD7dqqxyKgCLJHBDlv3sQCq5+XGM5Hc/8AfNAy39ktv+fdP1/xo+yW 3/Pun6/41VW7
cIBKwSZnjwh4ODtzgH3LUJNJ5Fu01x5YkTcZMKMHAwOeO5P4fhQIv4Hof++2 /wAaaVzJjLAb
Qcbz6n3qpDNM14VZ0xuYGPPIAzg4xkduScc+4q1MAQ4Zyg8vlgcY5bnNAC7f 9p/++zRt/wBp
/wDvs1neZ5SEW5twpYbpowEUcHgnkZ4H/fVPE055M3QIPlAIO5yuckc8YPp+ FAy9t/2n/wC+
zRt/2n/77NZ893IkWRIFaPf99gokwxAHTk8c4x1/JZ2ma3k+dn81pYwmBxgN jGBnPyigC/t/
2n/77NG3/af/AL7NUjNiX5bgGMqu6b5eB8/fGOoA/wDr1IkxN2qed5ikDAQq eMZywxkfUcdP
xALO3/af/vs0bf8Aaf8A77NNkIKyKzbF2csDgjrzmqkTrErvF5BRCGd4UADD nI78jr+lAF3b
/tP/AN9mjb/tP/32apPJcKJXaQq0cQk2ALjJLHB47YA4oEhihlAlIcytwSoE eWJBJwcAj1z1
FAF3b/tP/wB9mjb/ALT/APfZqlHcu8SMZRzkOyjIUBiN2ffH074wDV+gBu3/ AGn/AO+zRt/2
n/77NOooAbt/2n/77NG3/af/AL7NOooAbt/2n/77NG3/AGn/AO+zTqKAG7f9 p/8Avs0bf9p/
++zTqKAG7f8Aaf8A77NG3/af/vs06igBu3/af/vs0bf9p/8Avs06igBu3/af /vs0bf8Aaf8A
77NOooAbt/2n/wC+zRt/2n/77NOooAbt/wBp/wDvs0bf9p/++zTqKAG7f9p/ ++zRt/2n/wC+
zTqKAG7f9p/++zRt/wBp/wDvs06igBu3/af/AL7NG3/af/vs06igBu3/AGn/ AO+zRt/2n/77
NOooAbt/2n/77NG3/af/AL7NOooAbt/2n/77NG3/AGn/AO+zTqKAG7f9p/8A vs0bf9p/++zT
qKAG7f8Aaf8A77NG3/af/vs06igBu3/af/vs0bf9p/8Avs06igBu3/af/vs0 bf8Aaf8A77NO
ooAY8SupV9zA9QWJqP7Hb/8APJanooAhW1gRgyxhSO44qTyx6t/30adRQA3y x6t/30aPLHq3
/fRp1FAFW6UKUxnv1JNFLd9U/H+lFAiXzVQbWV8gnoAR1J9aPtEf92T/AL5H +NV7i+S2cLIW
ywJG1M8ZI9R6VF/a0PrJ/wB+x/8AFVXK2F0XftEf92T/AL5H+NH2iP8Auyf9 8j/Gqf8Aa0Pr
J/37H/xVH9qw+sn/AH7H/wAVRyvsF0XPtEf92T/vkf400zrvJ2PjAA4+v+NV f7Vh9ZP+/Y/+
Ko/tSH1k/wC/Y/8AiqOV9gui19oX+4/5UfaF/uP+VVv7Uh9X/wC/Y/8AiqP7 Uh9X/wC/Y/8A
iqOVhdFn7Qv9x/yo+0L/AHH/ACqt/acXq/8A37H/AMVS/wBpxer/APfsf/FU crC6LH2hf7j/
AJUfaF/uP+VV/wC0ovV/+/Y/+Ko/tKL1f/v2P/iqOVhdE4nG8tsfBAHT60PK jjDRuRkHp3By
Kg/tGL1f/v2P/iqX+0YvV/8Av2P/AIqjlYXRP9oX+4/5UfaF/uP+VQf2jF6v /wB+x/8AFUf2
hH6v/wB+x/8AFUcrC6J/tC/3H/Kj7Qv9x/yqH+0I/V/+/Y/+Ko+3x+rf9+// ALKjlYXRN9oX
+4/5UfaF/uP+VQ/b4/Vv+/f/ANlR9uj/ALzf9+//ALKjlYXRN9oX+4/5UfaF /uP+VRfbo/7z
f9+//sqPtsf95v8Av3/9lRysLol+0L/cf8qPtC/3H/Kovtqf3m/79/8A2VL9 tT+83/fv/wCy
o5WF0SfaF/uP+VH2hf7j/lUf2xP7zf8Afv8A+yo+2J/eb/v3/wDZUcrC6JPt C/3H/Kj7Qv8A
cf8AKo/taf3m/wC/f/2VL9rT+83/AH7/APsqOVhdD/tC/wBx/wAqPtC/3H/K mfa0/vN/37/+
yo+1L/eP/fv/AOyo5WF0P+0L/cf8qPtC/wBx/wAqb9qX+8f+/f8A9lR9pX+8 f+/f/wBlRysL
od9oX+4/5UfaF/uP+VN+0r/eP/fv/wCyo+0L/eP/AH7/APsqOVhdDvtC/wBx /wAqPtC/3H/K
k+0L/eP/AHx/9lR56/3j/wB8f/Xo5WF0L9oX+4/5UfaF/uP+VJ54/vH/AL4/ +vS+eP7x/wC+
P/r0crC6D7Qv9x/yo+0L/cf8qPOH98/98f8A16POH98/98f/AF6OVhdB9oX+ 4/5UfaF/uP8A
lS+aP75/74/+vR5o/v8A/jn/ANejlYXQn2hf7j/lR9oX+4/5UvmD+/8A+Of/ AF6PM/2//HP/
AK9HKxXQn2hf7j/lR9oX+4/5U7zP9v8A8c/+vRv/ANv/AMc/+vRysd0N+0L/ AHH/ACo+0L/c
f8qdv/2//HP/AK9Lu/2//HP/AK9HKxXQz7Qv9x/yo+0L/cf8qfu/2/8Axz/6 9Gf9v/xz/wCv
RysLoZ9oX+4/5UfaF/uP+VPyf7//AI5/9elyf7//AI5/9ejlYXRH9oX+4/5U faF/uP8AlUnP
9/8A8c/+vRz/AHx/3x/9elysd0R/aF/uP+VH2hf7j/lUnP8AfH/fH/16Of74 /wC+P/r0crC6
I/tC/wBx/wAqPtC/3H/KpOf74/74/wDr0c/3x/3x/wDXo5WF0R/aF/uP+VH2 hf7j/lUnP98f
98f/AF6Of74/74/+vRysLoj+0L/cf8qPtC/3H/KpOf74/wC+P/r0c/3x/wB8 f/XoswuitO/m
bcKwxnqKKs8/3x/3x/8AXooswujKvv8AkJWv4f8AobVr/P521U7t95Pl745x 9Kx78hdRtiSA
BySf99qtXN2EmVoJbdgzEZ3cqTnk+2DVuLlZIV7DtSZjYzq6xBkZR+7z69+K yYIopI5GeR1K
DcQqA8ZA9R61qX8tqNLMMEyOwIJ55Y55J96yI5NiSrjO9dv05B/pVx20JYqw SMgZQGBOMKQT
1x061KLVvLboXDKBtcEYIbOSPpTkvdsPl4kHCjCyYUYIOQMcHjr6k0Ne5VlW MYYrncc7gM/e
wBk89fYd+arUWhC0TogdsAHoNwz+XWp4rQP8uX3iPzGCLuPJGAB9Dn8famTT rJEsaq2AersG
IHoDgYHtStMpjJHLPGI2HpgjB/ID8c0agSx2QdypMi8gDemDnKjkZ/2v5VCL aUkgBTg44ccn
0HPJ+lOguzBGFVASDuBJ91P/ALL+tPju/KQpGJVUHcoEmOcDrgcjj2pahoQv E8YUuuNwyOeo
9ae9rKm7co+XrhgenX8u/pTJZPMcNjGFVfyAH9Kma63OzbOrSN1/vDH6U9QE itncjlQCCchg
ccE4PPHTvSw2zPKgfAVnCnDDJ5xx6/WpDe5TbtfBPIL8AYIIUY46+/QUxLhF aNvLYmI/L83b
dnB49zS1DQb9nkyBhT/tBhj8849PzFPhtXeZUcBVLAE7gM/T1/D2pILkxIEA YdclWwecdD/w
GnrdDzFd0Ztj71+fnt1JBz0HpRqGhFEiucMzDsAq7iTQImMjIpVtvVs8fXNL DIiBgyMS3GVb
BA79jRHIqM42ko4wRnnGc9ce3pQA8wbIC7fe3YHzAY6c+/XtSJGrITvO4AnG OAPc/wCeoolm
81VXbgKeOe2AB/KlEkfkhCjZ65DYBPYkYo1AWKAyRlgQMZ6kAHBHfPvSLBIw XCg7sYGRnnpx
2pY5gsXlspKnOcHB5x/8TUi3ZATIc7dvG/5cDHb8KNQ0IzBIB90H/dIOfypR F95SRvC7htYE
HHXp7c/hSpPtUDB4XbkHB+9uzTjMpZnxg7doHUnPUk9+Cf0o1AgpaSlpiFpa SloAWiiikAtL
SUtAC0UUUALS0lLQAtLSUtABS0lLQAtLSUtABS0lLQAtLSUtIApaSloAWlpK WgBaKKKAFooo
oAKKKKACiiikAUUUUDFooooAKKKKAKs+npdMskkjKRkAKvbcai/saH/ntJ/3 yK0F+4Pqf/Qj
S1nzNGlkZn9lQ+f5Ylk+4WJwPUD+tP8A7Hh/57Sf98irQ/4/f+2J/wDQhTLu aSPCIhJkGFbP
Q0czCyKs2mQwwvJ5sh2jONo5qQ6PCCR5z8f7IqW4jEWnsg6KuKtv99vrRzML Iz/7Ih/57P8A
98imR6ZC+/8AeuArlfujngf41asAFs4wGDDnkfU0626Tf9dm/kKOZhZFb+yY v+ez/wDfI/xp
f7Ji/wCez/8AfI/xpUyq+aHcu05TBYkEbyOnsOePT60kV1cyJuEI+dN6DIHc f7XPB9unvRzM
LIP7Ki/57P8A98j/ABo/sqL/AJ7P/wB8j/GpIZpJnCq6YUAsTGRnkjABPGNv vUX2mcxwOfLD
yoCOpAyyDpnnqf8APU5mFkL/AGXF/wA9n/75H+NL/ZcX/PZ/++R/jSrJM14s e9QUDBsKcN9w
9M8H5vemwXMjQo/y7AY0K8kksF5zn/a9+lHMwshf7Mi/57P/AN8j/Gj+zI/+ ez/98j/Gn2s8
r+V5pQ+bH5g2qRt6cdTnr+lWqOZhZFP+zI/+ez/98j/Gj+zY/wDns3/fP/16 uUUczCyKf9mx
/wDPZv8Avn/69H9nR/8APVv++f8A69XKKOZhZFT+zo/+erf98/8A16P7Pj/5 6t/3z/8AXq3R
RzMLIqf2en/PVv8Avn/69L/Z6f8APVv++f8A69WqKOZhZFX7An/PVv8Avn/6 9H2BP+erf98/
/Xq1RRzMLIq/YU/56t/3z/8AXpfsKf8APVv++f8A69WaKOZhZFb7En/PVv8A vn/69H2Jf+ep
/wC+f/r1Zoo5mFkV/sS/89T/AN8//Xo+xr/z1P8A3x/9erFFHMwsiv8AY1/5 6n/vj/69H2Rf
+ep/74/+vViijmYWRB9kX/nqf++P/r0fZV/56n/vj/69T0UczCyIPso/56n/ AL4/+vS/ZR/z
0P8A3x/9epqKOZhZFbyR5/l7z9wsTt9wPX3p/wBmH/PQ/wDfH/16B/x+/wDb E/8AoQqtdswu
JNvmfLGpVlfCoSW5YZ5HTseBRzMVkWvs4/56H/vj/wCvR9nH/PT/AMc/+vUL XE32llWMeWrq
hJx3x3z79MH9eEW4mLCNtqSswG0ofk4J65w33e2P6UczCyJ/IH/PT/xz/wCv R5H/AE0/8c/+
vUAu5PKuDhcxRkjjqQWH5fLSieZgP9WpeVo1OCcY3cn8sfr7UczCyJ/I/wCm n/jn/wBejyf+
mn/jn/16gNxOJyuwFEZUZuACSBzy3HXpg/WrdLmY7IiaPapYycAZ+5/9eiNC 8SOXxuUNjb0y
M+tPl/1T/wC6abEA1rEDnBiUcHH8Ip8zFZC+V/00/wDHP/r0eX/00/8AHP8A 69Uop5ktgwYF
Y7dZW35ZmJyTznjp71LdB3uIkTJGxiR5rJ3XuPrRzMLIseWf+en/AI5/9el2 H/np/wCOf/Xq
sJpEJ4UJG6RleWJJ287v+Benb3qvE8j2cIBUJG0KkYyT9w5znjr6dqOZhZGj sP8Az0/8c/8A
r0bD/wA9B/3x/wDXqkt5cGNXMSgSBSgYgdWAxwST97rgfTmry52jcQTjkgYp czHZEcWZYg+8
AEnA2ehI9fan7D/z0H/fH/16jtP+PWP/AIF/6Eaiilk+yWoUjfKqjc3P8Oc+ /SjmYrIs7D/z
0H/fH/16Nh/56D/vj/69V4Z5ZpCgKLs++SpO75mHHPH3ffrUMl1M+FX5VkKt G+3HG9R65PDe
3+BzMdkXth/56D/vj/69Gw/89B/3x/8AXqsssxuHhVkDZJLFSRwqds8fe9ab FdyyL5uEEe5F
2YOfmC98/wC16dqLsLIt7D/z0H/fH/16ZISmz5wSzhR8nqfrUtQ3HWH/AK7J /Oi7CyJNh/56
D/vj/wCvRTqKLsLIjC3DD92se0E/eLZ6n0FHl3npD+bf4VMJhBYtKRnaW4zj PzGslry5YGX7
QVyT8oHGeMAe3T/6+fmLDtctuJopfNka3UlCvzMQMZHPT/Oab9pb/n4s/wDv 4f8ACq9/c/a7
FJCAG2MDg8Z3J/n/ADmserjC6Ibsbs0pliaM3FmAwxkSH/CpXuW3tma0U56G Q5H6VztS3f8A
x9zf9dG/nVezQcxt/aW/5+LP/v4f8KRJTGrET2mHctkyHGcDjp/nNYFSt/x6 R/8AXR/5LR7N
BzGwrojl0ewV26sGwT+lJuiw43afhzlvm+99eOay1tgwB81QrBQrNwCxxkH0 xzz7D1FPa0jU
tvadAibzvhweoAwN3v8ApS5EHMzSLodmXsDs+5lvu/TjimyFJYwjS2O0YwA/ YEHHTpwKyXgY
ZZPmTbvDdPlzjp9eKdbW/n7sttxhV4zuc9F9s4PNHIg5jWDoFVQ9gFU5UbuA fUcUB0DKwewD
KMKd3IHoOKx/s0piEgC7SCQNwyQOpx17H8qSOCSVdyAEZwMkDJ9B6n2FP2a7 hzG0Jgu3E1iN
owMOeB6dPYU77S3/AD8Wf/fw/wCFZD2j7h5YyCqkZYAklQSB69eg9qb9kmwC FU5AIG8Z55Ax
nqew6mlyLuHMzZ+0t/z8Wf8A38P+FH2lv+fiz/7+H/CsVbWZgu1QSxAA3DPP TI6gcjk+op6W
cjb8lBtXcDvUqeQMZzgdf85o5F3DmZr/AGlv+fiz/wC/h/wo+0t/z8Wf/fw/ 4VhJDJJG7quV
T7xz06/4VNFZu0oWQADBJww4wCcH+6eO/wDSjkQczNf7S3/PxZ/9/D/hR9pb /n4s/wDv4f8A
CsVrd8MyqNoJwN4JIHceo9xxwaU2kyyMjKqsvXc4AH4k+39aORdw5mbP2lv+ fiz/AO/h/wAK
PtLf8/Fn/wB/D/hWKbWZU3FQOCdpYbuCQfl69j+VH2WUMFIUHGTl1+X688fj RyLuHMza+0t/
z8Wf/fw/4UfaW/5+LP8A7+H/AArDEEjTeUAN+M8kAYxnOemMc5pWtpUxuCgE 4zuGB6Z9M9vW
j2a7hzG39pb/AJ+LP/v4f8KPtLf8/Fn/AN/D/hWG8EkalmA2ggZBBBznGCOv Q/lSrbStLJHh
Q0ed25gAOcdTx1o9mu4cxt/aW/5+LP8A7+H/AAo+0t/z8Wf/AH8P+FYotZiS NoyDgZYfN9PX
t09R60k8Bh2ZZSHUMMEZ5API7daORBzM2/tLf8/Fn/38P+FH2lv+fiz/AO/h /wAKyLm0aGd0
XaUDlQd4OOeM+n4471E8EkalmA2ggZBBBznGCOvQ/lRyIOZm59pb/n4s/wDv 4f8ACj7S3/Px
Z/8Afw/4VitazKG3KAVJBG4Z464HUjg8j0NMiheXOzaSOxYAn6Dv+FHs13Dm N37S3/PxZ/8A
fw/4UfaW/wCfiz/7+H/CsOKB5VZl2gKQCWcL1+p9jQIJCrHAyhIZSRuGOvHW n7NBzG59pb/n
4s/+/h/wo+0t/wA/Fn/38P8AhWM9pNHu3Kvy5zhwenXoe3f0pkkEkS7nAAzg 4IOD6H0PsaXI
u4czNsSnzTKJ7QkJtOJDgDI56f5zR9o+Yt59lkjBPmH/AArFh/1U/wD1zH/o S01YXeMuNoUd
2YDP0z1/Cj2aDmNoOgZWD2AZRhTu5A9BxSBohGYw2nhCcld3B/DFZK2sr7do UhhnIdeOM888
cA9fSl+yTEgbV5z/ABjA4zzzxwCR60ci7hzM1XaJ1VXbT2CjCgtnH04pzSqy FGksShOSpfg8
59PWsoWj+UxIy4ZQMMCpBDZOen8PX61DJG0TYcDkZBBBB+hHWjkQcxtB0DKw ewDKMKd3IHoO
Kf8AaW/5+LP/AL+H/CsT7NLnGzvjqMHjOfpjnPSpLezeS4RGKhC4UkSLz0zg 55PPbNHIu4cz
NZrgspU3FngjH+sP+FHm7Y1iaWz2hAuGkPIx9O9YFTTqWmVVBJKIAB3+UU/Z oOY11dFUqr2A
UjBAbgj06e5/OnfaPmDefZZAwD5h/wAKyFs5GyBtJBHR1I6E8nPH3TSfZJiQ Nq85/jGBxnnn
jgEj1pci7hzM1zKpkEhksS4GA2/kfjimloiysW08lAAp3dMdMcVmC0fymJGX DKBhgVIIbJz0
/h6/WoZI2ibDgcjIIIIP0I60ciDmNoOiliHsAWOWIbqeuTxT/tLf8/Fn/wB/ D/hXP0U/ZoOY
30lMUSIJ7TAyQTIeckn0/D8KjHkqrKDpwVvvANwfrxWTN/qoP+uZ/wDQmqae xdJXEeNisRl3
Vf4mA6n/AGTS5EHMaRdDsy9gdn3Mt936ccUgaIMzBtPBcEMd3XPXPFZH2aUI WKYxngkBuOvH
X1/I+lOtoopjteR0bk8ICAAMk9R70ciDmNUtEybGbTyuc4LcdMenpTvOBzma x5IJ+c8kd+ns
KwaKfs0HMdB9pb/n4s/+/h/wpDKZGjHn2hKuGAWQ5JB6dKwKltP+PuH/AK6L /Oj2aDmOi8u8
9Ifzb/CitCisiiqiJLaNE7YDFgcHB6msttOuQWQNG6dMkgD2OPxP69c/NrwM EtizHABYk/ia
rteTkeaiR+TyeTz9PqaOaxcYt7FO/tTFaJFFulIRskc87k/LoayPstx/zwl/ 74NdbHKs0cci
fdb/AOvUtWp2M3E437Lcf88Jf++DUtzbTtdTFYZCC5IIU8811tNT7i/Sn7Ri 5Tj/ALLcf88J
f++DUrW0/wBljHkyZDscbT6LXW00ffP0H9aPaMOU5bZKU8trOXywBgBSCDxk 5x35/T0FSLvW
NohZXHlEHjPzZJU9dv8AsjtW+15EgJbcMFgwxyoUEkkenT/voetI12y7d1rM GZtqrlMk4J/v
e1LnCxzjxTPkfZJdoXbGNp+XnOenPf8AOnQm7giCRW7Ah95YxZz0x1Hbn866 aOZHA52sTtKt
wQcZx+XP056U24uUt9m8Mdxx8v8ACO7H0A7n3o5w5TnXM7Sh1s5FAR0ChTxu 3e3bd+lFu11B
F5YguQAxYbCy5Jx1wORx7d66Tz4fO8nzY/N/ubhu9elK80cbKskiKznChmAL H2o5wsc6s10q
hRb3KhQMBCy5IUDnA5Hy+3emq1wrq32SU7Wibof4Bj0710Ed1GwHmOkbM7Iq swyxDEcf5707
7TAWK+fHuDbCN4yG9PrwaOfyHY59JrpRFm3uTsK/LltmFx0GOvHv3qKITpB5 LWszIS27AIPO
08ceqiumM8Id0MsYZBuZdwyo9T6VG19bKqP50ZRn2bww2g4J5P4frRzhY5kQ 3AgeL7PL8zK2
dp7A/wCNWZJrqQktb3JLBshixAJUjgY4HPvXRtIiEBnVSegJxnkD+ZH51DNe QxxSMskbGMhW
G8fKScDPpzRzisc+rXQthD5FzwpUAFgpBz1GOTye/pSrJcrLO32e5UTPvPlk qR14zjpzXRJc
RsY0MkfmOoYKHByPb1HvQ1zAqb2njCZA3FxjJGR+nNHP5Dsc2xuWkVzay5CO h4PO7dzz/vfp
Tg06zPKtrcq0oPmFSQeSD8vHHI9+K6Pz4fO8nzY/N/ubhu9elJ9pgAcmePEZ w/zj5T7+lHOK
xzJFybhpTbzHcpX5gSeV25J/z+FSK1wp/wCPSX+DscjapXI4685B7V0jTRrF 5rSII8A7ywxg
9OaRZ4WDFZYyEAZiGHAIyCfwo5wsc/5lwZPM8m4BSLau8Fyx3ZHOOx5/4Djv VWOG4RJV+zyn
zF2/dPHIP9K6tJo5ApjkRwwJG1gcgdaR54Y41keWNUboxYAH8aOcLHOB58xs 1nMTEVKYB6hV
HPHI+UelQzRTy7D9mmDhQpO04OAAOMccCupM8K+XmWMeZ9zLD5vp69aSC4jn 3iNgWRirLkZB
BI5/KjnCxzoa4Esr/ZJf3kvmdDlfvdOOvzcH2pWluvOWRbe4+VNuXyxJyWBz jscflW9bXkNx
biUSRjCBnAcHZkZ5qVJo5ApjkRwwJG1gcgdaOfyHY5pWuhbCHyLnhSoALBSD nqMcnk9/Sls2
uLbH+jXHDbvkyu72bg5HH6mujE8JdEEsZZxuVdwyw9R60rzRxsqySIrOcKGY AsfajnFY5QQ3
AgeL7PL8zK2dp7A/41aM1wfN/wBFuF37/lUkL82eSMckZ6+wroJZ4YMedLHH npvYDNKZoxKI
jIgkYZCFhkj6Uc4WObZrhnZvsko3NK3Q/wAYx6dqS6a6uVw0FzktuIYsQD7D HA5966NLmCQq
I543LEgbXByR1pyTRyMyxyIzIcMFYEqfejnCxysVtOI5wYZBlAB8p5+YU6JZ 44HjNtM27OAR
lRkYzjHX3zXUt1X6/wBKR5o42VZJEVnOFDMAWPtRzhynPNNcGMr9luPmzwSS q5VhhRjgfN09
qSFpdzCS1mCsgBwp7Rsvp3z+FdB9pgAcmePEZw/zj5T7+lH2mDazefHtUAsd 4wAemfrRzDsc
8klxGAsdpMqrgL13AfNnnHX5zz7DrUUyzzMxa2uGO3apcsxHOc5x9RXSfaoy 6bXRo2Rn8wMM
AKQD/P8ASpY5ElQPG6up6MpyDRziscwBMHQi1uEEfCFCQwXnjOPU5/E+2Hq8 vmq7WMuI33oE
G3njrx/sjpjvXR+dGFDeYm0rvB3DBX1+nIqG4voIbYzCWNhtYoN4+cjsKOcd jlvstx/zwl/7
4NTywTi4RxDN8qpyoIPCjoccGurpqdPxP86fOxcpzZknw4FnL8wxkjk/KwyT jk/N19vxpYWl
3MJLWYKyAHCntGy+nfP4VvfbLcjcJoymDlw4wMY9/cf5xTvtMG1m8+PaoBY7 xgA9M/Wlzjsc
8klxGAsdpMqrgL13AfNnnHX5zz7DrUNxHczyBjBcHAwC+WP510v2qMum10aN kZ/MDDACkA/z
/SpY5ElQPG6up6MpyDRziscf9luP+eEv/fBo+y3H/PCX/vg12VFP2jDlOSlt pzHABDIcIQfl
PHzGprlri4Rl+ySrubd0J7ufT/b/AErpV6t9f6VXiv4GgSSWSOHeAcO47gH+ opc4WMSWa6kV
x9nuV3FsKCwXBJPIxyeT+lVkhuEikQW8uXwCdp6dcfnj8q6szRiURGRBIwyE LDJH0qOa6WFi
CjsEXe5XGEXnk5PsemelHOFjlPstx/zwl/74NH2W4/54S/8AfBrsqKftGHKc b9luP+eEv/fB
qW2tp1uoS0MgAcEkqeOa62mv9xvpR7RhyhvX+8Pzop1FZlEEKCS1KHo24H8z VKS1udvkLEpj
4w+7HPqe/wCFXbZVMOSAfmbt7mpdi/3R+VJq5UZuOxHBCIIYogc7e/r1qamF Vyvyjr6e1LsX
+6Pypkjqan3F+lGxf7o/KkRV2L8o6elAD6aPvn6D+tGxf7o/KkCrvPyjoO1A EIinWUzAoXYk
MpOBtGdo6df8T7YgFpMjpJFFBHtcHylchfusCc7ep3Dt2q9sX+6Pyo2L/dH5 UAQxwurB2EZZ
5N799vy7fl/Ic/X6Uy5s2uZmLTOkZi8sBMZOT82cg+i1Z2L/AHR+VGxf7o/K gColrP5LCV0a
RpY5CR0O0Jnt/smi7s2nmZxhldAjAyMoABPOB97r0OOnvVvYv90flRsX+6Py oAz205yz52sJ
NwI8xlABdj0H3uG6HHTrzT5LKRo3UMmWSdRyertkVd2L/dH5UbF/uj8qAM+T TncTKNvzeYVZ
pG6sD/D0H3uvP054nmtpGuxcR7CVC4ViRkgODzjj7/6VZ2L/AHR+VGxf7o/K gCN4d93FMQpE
aMBnqCdvI/AH86pxac6LGvy/u9gDGRm3AMpPB4X7vQZ+vFaGxf7o/KjYv90f lQBUezZrtpOC
jurkmRhggDjaOD93qfX2pn2B0gtVQKWhjKMqyNGCTjJyvPUfrV7Yv90flRsX +6PyoAqJZMkL
RqUx5sbDGcYUJ9f7ppptJjbQxEJ/o5GwrKylwFK8kDK9c8Z9Ku7F/uj8qNi/ 3R+VAFcWzC0S
IbQRIrn5if4wx5PJ+vf2qM2cwwUdQR5vQkZ3OGxntwCM9s8Vc2L/AHR+VGxf 7o/KgDPFpKqk
fMkkkvDJIzlVKAHLEZ7ZHvtq5JDlrfYFVYnzjpxtIwPzFSbF/uj8qNi/3R+V AFE2UwWdVMZE
4ZGJJGwFnII454fpx0q1bxvEHRtpXezKwPJySTkdsZqTYv8AdH5UbF/uj8qA KYs5lht1V1DR
QeWcEjJ+XgHtnaRnqM01LGXy3O7y5GkyCsrMQpUKRuIz2yPcD0q9sX+6Pyo2 L/dH5UAUzYkX
JZVXyy6v/rGAXaAANg4P3ev+FLqFtNcK6xkFWQqAZGQKeeeB83bg+nvVvYv9 0flRsX+6PyoA
Y0ZN1HLkbVRlPrklf8DVJbG4CQIWVhH5fPmsAu3GRtxhuh5Pr7VobF/uj8qN i/3R+VAFKOyk
WNFLJlUgU8nqjZNOsrNrdl3YPlpsVvMZiRxzg8L06DP6c29i/wB0flRsX+6P yoAG6r9f6VBL
DI10kkRCcAO+85IBJ27cY/HIPP5zFVyvyjr6e1LsX+6PyoAz/sNw0yO7KduM sZWO751bO0jC
/dPA9aJ7WZVRkCuVkY4yf4plYdvQc1obF/uj8qNi/wB0flQBQlsJZnaRiisx LFVY8HMeBnGf
4OvbPerFtDJCvAQb33OC7OcbcdT1PA9OKn2L/dH5UbF/uj8qAKhtH2SZSNjK QxUOU2sDkAMB
nHf65PfhklrdGGUbo5Xmi8ti7bdv3sdBz97HQdPer2xf7o/KjYv90flQA6op EElvIhUMGDDa
TgHrxntT9i/3R+VIqrj7o6nt70AUjZ3DtGzyKdh4BbO0b0OM45+6eTzz+NNn tZlVGQK5WRjj
J/imVh29BzWhsX+6Pyo2L/dH5UAUJbCWZ2kYorMSxVWPBzHgZxn+Dr2z3q1a QmFG3ABnbcQH
Z+wHU8np7VLsX+6Pyo2L/dH5UAOopuxf7o/KjYv90flQAL1b6/0qlY2UlvIj OyEKm3gnrtjH
/sh/SrgVct8o6+ntS7F/uj8qAM+DTniMYbawGwsfMYAFQo+6OD93qfXpxU13 avPIWURtlNqs
x5iPPzLx15Hp90c+lrYv90flRsX+6PyoAdRTdi/3R+VGxf7o/KgB1Nf7jfSj Yv8AdH5Ujqux
vlHT0oAfRTdi/wB0flRQB//Z
--------------2625BBBC78E34E3AAB1FB179--

--------------1D6FA7A65711ABE6113943C2--


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: A Diagnostic Message for the Valid Schema [message #569197 is a reply to message #19645] Sat, 03 May 2003 03:02 Go to previous message
Eclipse UserFriend
Originally posted by: paechoi.earthlink.net

This is a multi-part message in MIME format.

------=_NextPart_000_00D3_01C310FE.F0381250
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_00D4_01C310FE.F0381250"


------=_NextPart_001_00D4_01C310FE.F0381250
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Ed,

I don't see why Eclipse/Editor treats the sampel schema as an invalid =
schema. I also
tried other schema, e.g., WSDL.XSD, but throws the same message. The =
following is
the copy of WSDL schema that I enclosed for the convenience purpose. Try =
to see
what you get.


Regards,


Pae

// ###################### WSDL Schema ######################
<?xml version=3D"1.0" encoding=3D"UTF-8"?>

<!--=20


Copyright 2001-2002 International Business Machines Corporation, =
Microsoft Corporation. All rights reserved.=20

-->

<schema targetNamespace=3D"http://schemas.xmlsoap.org/wsdl/" =
xmlns=3D"http://www.w3.org/2001/XMLSchema" =
xmlns:wsdl=3D"http://schemas.xmlsoap.org/wsdl/" =
elementFormDefault=3D"qualified">

<complexType name=3D"tDocumentation" mixed=3D"true">

<sequence>

<any processContents=3D"lax" minOccurs=3D"0" maxOccurs=3D"unbounded"/>

</sequence>

</complexType>

<complexType name=3D"tDocumented">

<annotation>

<documentation>

This type is extended by component types

to allow them to be documented

</documentation>

</annotation>

<sequence>

<element name=3D"documentation" type=3D"wsdl:tDocumentation" =
minOccurs=3D"0"/>

</sequence>

</complexType>

<complexType name=3D"tExtensibleAttributesDocumented" abstract=3D"true">

<annotation>

<documentation>

This type is extended by component types

to allow attributes from other namespaces to be added.

</documentation>

</annotation>

<complexContent>

<extension base=3D"wsdl:tDocumented">

<anyAttribute namespace=3D"##other"/>

</extension>

</complexContent>

</complexType>

<complexType name=3D"tExtensibleDocumented" abstract=3D"true">

<annotation>

<documentation>

This type is extended by component types

to allow attributes from other namespaces to be added.

</documentation>

</annotation>

<complexContent>

<extension base=3D"wsdl:tDocumented">

<sequence>

<any namespace=3D"##other" minOccurs=3D"0" maxOccurs=3D"unbounded"/>

</sequence>

</extension>

</complexContent>

</complexType>

<element name=3D"definitions" type=3D"wsdl:tDefinitions">

<key name=3D"message">

<selector xpath=3D"wsdl:message"/>

<field xpath=3D"@name"/>

</key>

<key name=3D"portType">

<selector xpath=3D"wsdl:portType"/>

<field xpath=3D"@name"/>

</key>

<key name=3D"binding">

<selector xpath=3D"wsdl:binding"/>

<field xpath=3D"@name"/>

</key>

<key name=3D"service">

<selector xpath=3D"wsdl:service"/>

<field xpath=3D"@name"/>

</key>

<key name=3D"import">

<selector xpath=3D"wsdl:import"/>

<field xpath=3D"@namespace"/>

</key>

<key name=3D"port">

<selector xpath=3D"wsdl:service/wsdl:port"/>

<field xpath=3D"@name"/>

</key>

</element>

<group name=3D"anyTopLevelOptionalElement">

<annotation>

<documentation>

Any top level optional element allowed to appear more then once-=20

any child of definitions element except wsdl:types.=20

Any extensibility element is allowed in any place=20

</documentation>

</annotation>

<choice>

<element name=3D"import" type=3D"wsdl:tImport"/>

<element name=3D"types" type=3D"wsdl:tTypes"/>

<element name=3D"message" type=3D"wsdl:tMessage">

<unique name=3D"part">

<selector xpath=3D"wsdl:part"/>

<field xpath=3D"@name"/>

</unique>

</element>

<element name=3D"portType" type=3D"wsdl:tPortType"/>

<element name=3D"binding" type=3D"wsdl:tBinding"/>

<element name=3D"service" type=3D"wsdl:tService"/>

</choice>

</group>

<complexType name=3D"tDefinitions">

<complexContent>

<extension base=3D"wsdl:tExtensibleDocumented">

<sequence>

<group ref=3D"wsdl:anyTopLevelOptionalElement" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>

</sequence>

<attribute name=3D"targetNamespace" type=3D"anyURI" use=3D"optional"/>

<attribute name=3D"name" type=3D"NCName" use=3D"optional"/>

</extension>

</complexContent>

</complexType>

<complexType name=3D"tImport">

<complexContent>

<extension base=3D"wsdl:tExtensibleAttributesDocumented">

<attribute name=3D"namespace" type=3D"anyURI" use=3D"required"/>

<attribute name=3D"location" type=3D"anyURI" use=3D"required"/>

</extension>

</complexContent>

</complexType>

<complexType name=3D"tTypes">

<complexContent>

<extension base=3D"wsdl:tExtensibleDocumented"/>

</complexContent>

</complexType>

<complexType name=3D"tMessage">

<complexContent>

<extension base=3D"wsdl:tExtensibleDocumented">

<sequence>

<element name=3D"part" type=3D"wsdl:tPart" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>

</sequence>

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>

</extension>

</complexContent>

</complexType>

<complexType name=3D"tPart">

<complexContent>

<extension base=3D"wsdl:tExtensibleAttributesDocumented">

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>

<attribute name=3D"element" type=3D"QName" use=3D"optional"/>

<attribute name=3D"type" type=3D"QName" use=3D"optional"/>

</extension>

</complexContent>

</complexType>

<complexType name=3D"tPortType">

<complexContent>

<extension base=3D"wsdl:tExtensibleAttributesDocumented">

<sequence>

<element name=3D"operation" type=3D"wsdl:tOperation" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>

</sequence>

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>

</extension>

</complexContent>

</complexType>

<complexType name=3D"tOperation">

<complexContent>

<extension base=3D"wsdl:tExtensibleDocumented">

<choice>

<group ref=3D"wsdl:request-response-one-way-operation"/>

<group ref=3D"wsdl:solicit-response-notification-operation"/>

</choice>

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>

<attribute name=3D"parameterOrder" type=3D"NMTOKENS" use=3D"optional"/>

</extension>

</complexContent>

</complexType>

<group name=3D"optional-response-fault">

<choice>

<sequence/>

<sequence>

<element name=3D"output" type=3D"wsdl:tParam"/>

<element name=3D"fault" type=3D"wsdl:tFault" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>

</sequence>

</choice>

</group>

<group name=3D"request-response-one-way-operation">

<sequence>

<element name=3D"input" type=3D"wsdl:tParam"/>

<group ref=3D"wsdl:optional-response-fault"/>

</sequence>

</group>

<group name=3D"optional-solicit-fault">

<choice>

<sequence/>

<sequence>

<element name=3D"input" type=3D"wsdl:tParam"/>

<element name=3D"fault" type=3D"wsdl:tFault" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>

</sequence>

</choice>

</group>

<group name=3D"solicit-response-notification-operation">

<sequence>

<element name=3D"output" type=3D"wsdl:tParam"/>

<group ref=3D"wsdl:optional-solicit-fault"/>

</sequence>

</group>

<complexType name=3D"tParam">

<complexContent>

<extension base=3D"wsdl:tExtensibleAttributesDocumented">

<attribute name=3D"name" type=3D"NCName" use=3D"optional"/>

<attribute name=3D"message" type=3D"QName" use=3D"required"/>

</extension>

</complexContent>

</complexType>

<complexType name=3D"tFault">

<complexContent>

<extension base=3D"wsdl:tExtensibleAttributesDocumented">

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>

<attribute name=3D"message" type=3D"QName" use=3D"required"/>

</extension>

</complexContent>

</complexType>

<complexType name=3D"tBinding">

<complexContent>

<extension base=3D"wsdl:tExtensibleDocumented">

<sequence>

<element name=3D"operation" type=3D"wsdl:tBindingOperation" =
minOccurs=3D"0" maxOccurs=3D"unbounded"/>

</sequence>

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>

<attribute name=3D"type" type=3D"QName" use=3D"required"/>

</extension>

</complexContent>

</complexType>

<complexType name=3D"tBindingOperationMessage">

<complexContent>

<extension base=3D"wsdl:tExtensibleDocumented">

<attribute name=3D"name" type=3D"NCName" use=3D"optional"/>

</extension>

</complexContent>

</complexType>

<complexType name=3D"tBindingOperationFault">

<complexContent>

<extension base=3D"wsdl:tExtensibleDocumented">

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>

</extension>

</complexContent>

</complexType>

<complexType name=3D"tBindingOperation">

<complexContent>

<extension base=3D"wsdl:tExtensibleDocumented">

<sequence>

<element name=3D"input" type=3D"wsdl:tBindingOperationMessage" =
minOccurs=3D"0"/>

<element name=3D"output" type=3D"wsdl:tBindingOperationMessage" =
minOccurs=3D"0"/>

<element name=3D"fault" type=3D"wsdl:tBindingOperationFault" =
minOccurs=3D"0" maxOccurs=3D"unbounded"/>

</sequence>

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>

</extension>

</complexContent>

</complexType>

<complexType name=3D"tService">

<complexContent>

<extension base=3D"wsdl:tExtensibleDocumented">

<sequence>

<element name=3D"port" type=3D"wsdl:tPort" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>

</sequence>

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>

</extension>

</complexContent>

</complexType>

<complexType name=3D"tPort">

<complexContent>

<extension base=3D"wsdl:tExtensibleDocumented">

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>

<attribute name=3D"binding" type=3D"QName" use=3D"required"/>

</extension>

</complexContent>

</complexType>

<attribute name=3D"arrayType" type=3D"string"/>

<attribute name=3D"required" type=3D"boolean"/>

<complexType name=3D"tExtensibilityElement" abstract=3D"true">

<sequence/>

<attribute ref=3D"wsdl:required" use=3D"optional"/>

</complexType>

</schema>


"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB25ED9.AE2CB299@ca.ibm.com...
Pae,=20
I'm seeing this result with the just published 1.1.0 driver:=20


The schema isn't valid.=20
=20
Pae Choi wrote:=20

I have a simple test schema as follows:=20
<?xml version=3D"1.0" encoding=3D"UTF-8"?>=20
<!--W3C Schema generated by Pae -->=20
<xsd:schema xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema"=20
elementFormDefault=3D"qualified">=20
<xsd:element name=3D"CommonLogin">=20
<xsd:complexType>=20
<xsd:sequence>=20
<xsd:element name=3D"username" ref=3D"usernameRef"/>=20
<xsd:element name=3D"password" ref=3D"passwordRef"/>=20
</xsd:sequence>=20
</xsd:complexType>=20
</xsd:element>=20
<xsd:element name=3D"passwordRef" type=3D"xsd:string"/>=20
<xsd:element name=3D"usernameRef" type=3D"xsd:string"/>=20
</xsd:schema>=20

This is a very simple sample, but it is a valid schema. But when=20
I use the validate() and getDiagnostics() methods in the XSDSchema=20
interface it gives me a message as follows:=20

XSD: The element '#null' is not permitted as constrained by 'XML =
Schema ';=20
expecting schema=20

I do not understand what the message is saying. Any comments?=20

Pae


------=_NextPart_001_00D4_01C310FE.F0381250
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2600.0" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT size=3D2>Ed,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>I don't see why Eclipse/Editor treats the sampel =
schema as an=20
invalid schema. I also</FONT></DIV>
<DIV><FONT size=3D2>tried other schema, e.g., WSDL.XSD, but throws the =
same=20
message. The following is</FONT></DIV>
<DIV><FONT size=3D2>the copy of WSDL schema that I enclosed for the =
convenience=20
purpose. Try to see</FONT></DIV>
<DIV><FONT size=3D2>what you get.</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Regards,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Pae</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>// ###################### WSDL Schema=20
######################</FONT></DIV>
<DIV><FONT size=3D2><FONT color=3D#008080 size=3D1>
<P>&lt;?xml version=3D"1.0" encoding=3D"UTF-8"?&gt;</P></FONT><FONT =
color=3D#0000ff=20
size=3D1>
<P>&lt;!--</FONT><FONT color=3D#808080 size=3D1> </P>
<P></P>
<P>Copyright 2001-2002 International Business Machines Corporation, =
Microsoft=20
Corporation. All rights reserved. </P></FONT><FONT color=3D#0000ff =
size=3D1>
<P>--&gt;</P>
<P>&lt;</FONT><FONT color=3D#800000 size=3D1>schema</FONT><FONT =
color=3D#ff0000=20
size=3D1> targetNamespace</FONT><FONT color=3D#0000ff =
size=3D1>=3D"</FONT><FONT=20
size=3D1>http://schemas.xmlsoap.org/wsdl/</FONT><FONT color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> xmlns</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT =
size=3D1>http://www.w3.org/2001/XMLSchema</FONT><FONT=20
color=3D#0000ff size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> =
xmlns:wsdl</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT=20
size=3D1>http://schemas.xmlsoap.org/wsdl/</FONT><FONT color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> =
elementFormDefault</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT size=3D1>qualified</FONT><FONT =
color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>complexType</FONT><FONT color=3D#ff0000 size=3D1> =
name</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT =
size=3D1>tDocumentation</FONT><FONT=20
color=3D#0000ff size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> =
mixed</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT size=3D1>true</FONT><FONT =
color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>sequence</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>any</FONT><FONT color=3D#ff0000 size=3D1> =
processContents</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT size=3D1>lax</FONT><FONT =
color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> minOccurs</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>0</FONT><FONT color=3D#0000ff =
size=3D1>"</FONT><FONT=20
color=3D#ff0000 size=3D1> maxOccurs</FONT><FONT color=3D#0000ff =
size=3D1>=3D"</FONT><FONT=20
size=3D1>unbounded</FONT><FONT color=3D#0000ff =
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>sequence</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>complexType</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>complexType</FONT><FONT color=3D#ff0000 size=3D1> =
name</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT =
size=3D1>tDocumented</FONT><FONT color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>annotation</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>documentation</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT=20
size=3D1>
<P>This type is extended by component types</P>
<P>to allow them to be documented</P>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>documentation</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT=20
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>annotation</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>sequence</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>element</FONT><FONT color=3D#ff0000 size=3D1> name</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>documentation</FONT><FONT =
color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> type</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>wsdl:tDocumentation</FONT><FONT =
color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> minOccurs</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>0</FONT><FONT color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>sequence</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>complexType</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>complexType</FONT><FONT color=3D#ff0000 size=3D1> =
name</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT=20
size=3D1>tExtensibleAttributesDocumented</FONT><FONT color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> abstract</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>true</FONT><FONT color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>annotation</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>documentation</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT=20
size=3D1>
<P>This type is extended by component types</P>
<P>to allow attributes from other namespaces to be added.</P>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>documentation</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT=20
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>annotation</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>complexContent</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT=20
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>extension</FONT><FONT color=3D#ff0000 size=3D1> =
base</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT =
size=3D1>wsdl:tDocumented</FONT><FONT=20
color=3D#0000ff size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>anyAttribute</FONT><FONT color=3D#ff0000 size=3D1> =
namespace</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT size=3D1>##other</FONT><FONT =
color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>extension</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>complexContent</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT=20
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>complexType</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>complexType</FONT><FONT color=3D#ff0000 size=3D1> =
name</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT =
size=3D1>tExtensibleDocumented</FONT><FONT=20
color=3D#0000ff size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> =
abstract</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT size=3D1>true</FONT><FONT =
color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>annotation</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>documentation</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT=20
size=3D1>
<P>This type is extended by component types</P>
<P>to allow attributes from other namespaces to be added.</P>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>documentation</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT=20
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>annotation</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>complexContent</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT=20
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>extension</FONT><FONT color=3D#ff0000 size=3D1> =
base</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT =
size=3D1>wsdl:tDocumented</FONT><FONT=20
color=3D#0000ff size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>sequence</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>any</FONT><FONT color=3D#ff0000 size=3D1> namespace</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>##other</FONT><FONT color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> minOccurs</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>0</FONT><FONT color=3D#0000ff =
size=3D1>"</FONT><FONT=20
color=3D#ff0000 size=3D1> maxOccurs</FONT><FONT color=3D#0000ff =
size=3D1>=3D"</FONT><FONT=20
size=3D1>unbounded</FONT><FONT color=3D#0000ff =
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>sequence</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>extension</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>complexContent</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT=20
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>complexType</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>element</FONT><FONT color=3D#ff0000 size=3D1> name</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>definitions</FONT><FONT =
color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> type</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>wsdl:tDefinitions</FONT><FONT =
color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>key</FONT><FONT color=3D#ff0000 size=3D1> name</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>message</FONT><FONT color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>selector</FONT><FONT color=3D#ff0000 size=3D1> =
xpath</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT =
size=3D1>wsdl:message</FONT><FONT=20
color=3D#0000ff size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>field</FONT><FONT color=3D#ff0000 size=3D1> xpath</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>@name</FONT><FONT color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>key</FONT><FONT color=3D#0000ff size=3D1>&gt;</P></FONT><FONT =
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>key</FONT><FONT color=3D#ff0000 size=3D1> name</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>portType</FONT><FONT color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>selector</FONT><FONT color=3D#ff0000 size=3D1> =
xpath</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT =
size=3D1>wsdl:portType</FONT><FONT=20
color=3D#0000ff size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>field</FONT><FONT color=3D#ff0000 size=3D1> xpath</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>@name</FONT><FONT color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>key</FONT><FONT color=3D#0000ff size=3D1>&gt;</P></FONT><FONT =
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>key</FONT><FONT color=3D#ff0000 size=3D1> name</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>binding</FONT><FONT color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>selector</FONT><FONT color=3D#ff0000 size=3D1> =
xpath</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT =
size=3D1>wsdl:binding</FONT><FONT=20
color=3D#0000ff size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>field</FONT><FONT color=3D#ff0000 size=3D1> xpath</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>@name</FONT><FONT color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>key</FONT><FONT color=3D#0000ff size=3D1>&gt;</P></FONT><FONT =
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>key</FONT><FONT color=3D#ff0000 size=3D1> name</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>service</FONT><FONT color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>selector</FONT><FONT color=3D#ff0000 size=3D1> =
xpath</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT =
size=3D1>wsdl:service</FONT><FONT=20
color=3D#0000ff size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>field</FONT><FONT color=3D#ff0000 size=3D1> xpath</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>@name</FONT><FONT color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>key</FONT><FONT color=3D#0000ff size=3D1>&gt;</P></FONT><FONT =
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>key</FONT><FONT color=3D#ff0000 size=3D1> name</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>import</FONT><FONT color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>selector</FONT><FONT color=3D#ff0000 size=3D1> =
xpath</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT =
size=3D1>wsdl:import</FONT><FONT color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>field</FONT><FONT color=3D#ff0000 size=3D1> xpath</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>@namespace</FONT><FONT =
color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>key</FONT><FONT color=3D#0000ff size=3D1>&gt;</P></FONT><FONT =
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>key</FONT><FONT color=3D#ff0000 size=3D1> name</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>port</FONT><FONT color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>selector</FONT><FONT color=3D#ff0000 size=3D1> =
xpath</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT =
size=3D1>wsdl:service/wsdl:port</FONT><FONT=20
color=3D#0000ff size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>field</FONT><FONT color=3D#ff0000 size=3D1> xpath</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>@name</FONT><FONT color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>key</FONT><FONT color=3D#0000ff size=3D1>&gt;</P></FONT><FONT =
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>element</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>group</FONT><FONT color=3D#ff0000 size=3D1> name</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT =
size=3D1>anyTopLevelOptionalElement</FONT><FONT=20
color=3D#0000ff size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>annotation</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>documentation</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT=20
size=3D1>
<P>Any top level optional element allowed to appear more then once- </P>
<P>any child of definitions element except wsdl:types. </P>
<P>Any extensibility element is allowed in any place </P>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>documentation</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT=20
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>annotation</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>choice</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>element</FONT><FONT color=3D#ff0000 size=3D1> name</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>import</FONT><FONT color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> type</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>wsdl:tImport</FONT><FONT =
color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>element</FONT><FONT color=3D#ff0000 size=3D1> name</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>types</FONT><FONT color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> type</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>wsdl:tTypes</FONT><FONT =
color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>element</FONT><FONT color=3D#ff0000 size=3D1> name</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>message</FONT><FONT color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> type</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>wsdl:tMessage</FONT><FONT =
color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>unique</FONT><FONT color=3D#ff0000 size=3D1> name</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>part</FONT><FONT color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>selector</FONT><FONT color=3D#ff0000 size=3D1> =
xpath</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT size=3D1>wsdl:part</FONT><FONT =
color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>field</FONT><FONT color=3D#ff0000 size=3D1> xpath</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>@name</FONT><FONT color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>unique</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>element</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>element</FONT><FONT color=3D#ff0000 size=3D1> name</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>portType</FONT><FONT color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> type</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>wsdl:tPortType</FONT><FONT =
color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>element</FONT><FONT color=3D#ff0000 size=3D1> name</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>binding</FONT><FONT color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> type</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>wsdl:tBinding</FONT><FONT =
color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>element</FONT><FONT color=3D#ff0000 size=3D1> name</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>service</FONT><FONT color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> type</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>wsdl:tService</FONT><FONT =
color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>choice</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>group</FONT><FONT color=3D#0000ff size=3D1>&gt;</P></FONT><FONT =
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>complexType</FONT><FONT color=3D#ff0000 size=3D1> =
name</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT =
size=3D1>tDefinitions</FONT><FONT=20
color=3D#0000ff size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>complexContent</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT=20
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>extension</FONT><FONT color=3D#ff0000 size=3D1> =
base</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT=20
size=3D1>wsdl:tExtensibleDocumented</FONT><FONT color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>sequence</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>group</FONT><FONT color=3D#ff0000 size=3D1> ref</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT =
size=3D1>wsdl:anyTopLevelOptionalElement</FONT><FONT=20
color=3D#0000ff size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> =
minOccurs</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT size=3D1>0</FONT><FONT =
color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> maxOccurs</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>unbounded</FONT><FONT color=3D#0000ff =

size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>sequence</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>attribute</FONT><FONT color=3D#ff0000 size=3D1> =
name</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT =
size=3D1>targetNamespace</FONT><FONT=20
color=3D#0000ff size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> =
type</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT size=3D1>anyURI</FONT><FONT =
color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> use</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>optional</FONT><FONT color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>attribute</FONT><FONT color=3D#ff0000 size=3D1> =
name</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT size=3D1>name</FONT><FONT =
color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> type</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>NCName</FONT><FONT color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> use</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>optional</FONT><FONT color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>extension</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>complexContent</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT=20
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;/</FONT><FONT =
color=3D#800000=20
size=3D1>complexType</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>complexType</FONT><FONT color=3D#ff0000 size=3D1> =
name</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT size=3D1>tImport</FONT><FONT =
color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>complexContent</FONT><FONT color=3D#0000ff =
size=3D1>&gt;</P></FONT><FONT=20
size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>extension</FONT><FONT color=3D#ff0000 size=3D1> =
base</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT=20
size=3D1>wsdl:tExtensibleAttributesDocumented</FONT><FONT =
color=3D#0000ff=20
size=3D1>"&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>attribute</FONT><FONT color=3D#ff0000 size=3D1> =
name</FONT><FONT=20
color=3D#0000ff size=3D1>=3D"</FONT><FONT size=3D1>namespace</FONT><FONT =
color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> type</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>anyURI</FONT><FONT color=3D#0000ff=20
size=3D1>"</FONT><FONT color=3D#ff0000 size=3D1> use</FONT><FONT =
color=3D#0000ff=20
size=3D1>=3D"</FONT><FONT size=3D1>required</FONT><FONT color=3D#0000ff=20
size=3D1>"/&gt;</P></FONT><FONT size=3D1>
<P></FONT><FONT color=3D#0000ff size=3D1>&lt;</FONT><FONT =
color=3D#800000=20
size=3D1>at
Re: A Diagnostic Message for the Valid Schema [message #569251 is a reply to message #19645] Sat, 03 May 2003 03:57 Go to previous message
Eclipse UserFriend
Originally posted by: paechoi.earthlink.net

This is a multi-part message in MIME format.

------=_NextPart_000_00F9_01C31106.8A9FCBB0
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_00FA_01C31106.8A9FCBB0"


------=_NextPart_001_00FA_01C31106.8A9FCBB0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Ed,

I have a sample code that test a DOM of XML Schema with Eclipse/XSD and
producing two different results.

With v1.0.2, it seems ok except the diagnostic message we are =
discussing.
With v1.1.0, it throws an exception.

Regards,


Pae

P.S.: The code snippet is as follows:

// ################## CODE SNIPPET ##################
/*
* EclipseXSDDemo1.java
*
* Created on May 2, 2003, 11:13 PM
*/

package org.paechoi.xsd.test;

// W3C/DOM
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
// Eclipse/XSD
import org.eclipse.xsd.XSDFactory;
import org.eclipse.xsd.XSDSchema;
import org.eclipse.xsd.impl.XSDSchemaImpl;
import org.eclipse.xsd.util.XSDResourceImpl;
import org.eclipse.xsd.util.XSDResourceFactoryImpl;
import org.eclipse.xsd.XSDDiagnostic;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.emf.common.util.EList;
import java.io.File;


/**
*
* @author pae
*/
public class EclipseXSDDemo1 {
// private Document xmlDOM =3D null;
=20
// instance initializer
{
// =
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =
new XSDResourceFactoryImpl());
}
=20
/** Creates a new instance of EclipseXSDDemo1 */
public EclipseXSDDemo1() {
super();
}
=20
/** Open a XML DOM */
private Document openXMLDOM(String uri) {
// Create a factory object for creating DOM parsers
DocumentBuilderFactory factory =3D =
DocumentBuilderFactory.newInstance();
DocumentBuilder builder =3D null;
Document xmlDoc =3D null;
=20
// Build a new DOM
try {
// Now use the factory to create a DOM parser (a.k.a. a =
DocumentBuilder)
builder =3D factory.newDocumentBuilder();
xmlDoc =3D builder.parse(uri);
}
catch (Exception ex) {
ex.printStackTrace();
return null;
}
=20
return xmlDoc;
}
=20
/** doIt */
private void doIt() {
Document xmlDOM =3D =
openXMLDOM("http://schemas.xmlsoap.org/wsdl/");
// Document xmlDOM =3D openXMLDOM("./wsdl.xsd");

Element rootElement =3D xmlDOM.getDocumentElement();

XSDSchema xsdSchema =3D XSDFactory.eINSTANCE.createXSDSchema();
xsdSchema.setDocument(xmlDOM);
xsdSchema.setElement(rootElement);
xsdSchema.updateElement();

System.out.println("\n\n");
XSDResourceImpl.serialize(System.out, xsdSchema.getElement());

System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION =
>>>>>>>>>>>>>>>>>>>>>>>>>>");
xsdSchema.validate();
//EList eList =3D xsdMainSchema.getDiagnostics();
EList eList =3D xsdSchema.getAllDiagnostics();
for (int i =3D 0; i < eList.size(); i++) {
XSDDiagnostic xsdDiagnostic =3D (XSDDiagnostic)eList.get(i);
System.out.println(i + ": Diagnostic Message =3D [" + =
xsdDiagnostic.getMessage() + "]");
}
=
System.out.println("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<=
<<<<<<<");
}
=20
/** main - the main entry */
public static void main(String[] args) {
EclipseXSDDemo1 app =3D new EclipseXSDDemo1();
app.doIt();
}
}

"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB25ED9.AE2CB299@ca.ibm.com...
Pae,=20
I'm seeing this result with the just published 1.1.0 driver:=20


The schema isn't valid.=20
=20
Pae Choi wrote:=20

I have a simple test schema as follows:=20
<?xml version=3D"1.0" encoding=3D"UTF-8"?>=20
<!--W3C Schema generated by Pae -->=20
<xsd:schema xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema"=20
elementFormDefault=3D"qualified">=20
<xsd:element name=3D"CommonLogin">=20
<xsd:complexType>=20
<xsd:sequence>=20
<xsd:element name=3D"username" ref=3D"usernameRef"/>=20
<xsd:element name=3D"password" ref=3D"passwordRef"/>=20
</xsd:sequence>=20
</xsd:complexType>=20
</xsd:element>=20
<xsd:element name=3D"passwordRef" type=3D"xsd:string"/>=20
<xsd:element name=3D"usernameRef" type=3D"xsd:string"/>=20
</xsd:schema>=20

This is a very simple sample, but it is a valid schema. But when=20
I use the validate() and getDiagnostics() methods in the XSDSchema=20
interface it gives me a message as follows:=20

XSD: The element '#null' is not permitted as constrained by 'XML =
Schema ';=20
expecting schema=20

I do not understand what the message is saying. Any comments?=20

Pae


------=_NextPart_001_00FA_01C31106.8A9FCBB0
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2600.0" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT size=3D2>Ed,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>I have a sample code that test&nbsp;a DOM =
of&nbsp;XML=20
Schema&nbsp;with Eclipse/XSD and</FONT></DIV>
<DIV><FONT size=3D2>producing&nbsp;two different results.</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>With v1.0.2, it seems ok except the diagnostic =
message we are=20
discussing.</FONT></DIV>
<DIV><FONT size=3D2>With v1.1.0, it throws an exception.</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Regards,</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Pae</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>P.S.: The code snippet is as follows:</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>// ################## CODE SNIPPET=20
##################</FONT></DIV>
<DIV><FONT size=3D2>/*<BR>&nbsp;* =
EclipseXSDDemo1.java<BR>&nbsp;*<BR>&nbsp;*=20
Created on May 2, 2003, 11:13 PM<BR>&nbsp;*/</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=3D2>package org.paechoi.xsd.test;</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=3D2>// W3C/DOM<BR>import&nbsp;=20
javax.xml.parsers.DocumentBuilderFactory;<BR>import&nbsp;=20
javax.xml.parsers.DocumentBuilder;<BR>import&nbsp;=20
org.w3c.dom.Document;<BR>import&nbsp; org.w3c.dom.Element;<BR>//=20
Eclipse/XSD<BR>import&nbsp; org.eclipse.xsd.XSDFactory;<BR>import&nbsp;=20
org.eclipse.xsd.XSDSchema;<BR>import&nbsp;=20
org.eclipse.xsd.impl.XSDSchemaImpl;<BR>import&nbsp;=20
org.eclipse.xsd.util.XSDResourceImpl;<BR>import&nbsp;=20
org.eclipse.xsd.util.XSDResourceFactoryImpl;<BR>import&nbsp;=20
org.eclipse.xsd.XSDDiagnostic;<BR>import&nbsp;=20
org.eclipse.emf.ecore.resource.Resource;<BR>import&nbsp;=20
org.eclipse.emf.ecore.resource.ResourceSet;<BR>import&nbsp;=20
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;<BR>import&nbsp;=20
org.eclipse.emf.common.util.EList;<BR>import&nbsp; =
java.io.File;</FONT></DIV>
<DIV>&nbsp;</DIV><FONT size=3D2>
<DIV><BR>/**<BR>&nbsp;*<BR>&nbsp;* @author&nbsp; =
pae<BR>&nbsp;*/<BR>public class=20
EclipseXSDDemo1 {<BR>//&nbsp;&nbsp;&nbsp; =
private&nbsp;&nbsp;&nbsp;&nbsp;=20
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp; xmlDOM =3D=20
null;<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; // instance=20
initializer<BR>&nbsp;&nbsp;&nbsp;=20
{<BR> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;=20
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =
new=20
XSDResourceFactoryImpl());<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; =

<BR>&nbsp;&nbsp;&nbsp; /** Creates a new instance of EclipseXSDDemo1=20
*/<BR>&nbsp;&nbsp;&nbsp; public EclipseXSDDemo1()=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
super();<BR>&nbsp;&nbsp;&nbsp;=20
}<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; /** Open a XML DOM=20
*/<BR>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String uri)=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create a factory =
object for=20
creating DOM parsers<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilderFactory&nbsp; factory =3D=20
DocumentBuilderFactory.newInstance();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;=20
DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp; builder =
=3D=20
null;<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D null;<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Build a new=20
DOM<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
// Now=20
use the factory to create a DOM parser (a.k.a. a=20
DocumentBuilder)<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;=20
builder =3D=20
factory.newDocumentBuilder();<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D =
builder.parse(uri);<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
}<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch (Exception ex)=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
ex.printStackTrace();<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;=20
return null;<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
}<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; return=20
xmlDoc;<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; =
<BR>&nbsp;&nbsp;&nbsp; /**=20
doIt */<BR>&nbsp;&nbsp;&nbsp; private void doIt()=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document xmlDOM =3D =
openXMLDOM("<A=20
href=3D"http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl=
/</A>");<BR> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;=20
Document xmlDOM =3D openXMLDOM("./wsdl.xsd");</DIV>
<DIV>&nbsp;</DIV>
<DIV> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Element rootElement =3D=20
xmlDOM.getDocumentElement();</DIV>
<DIV>&nbsp;</DIV>
<DIV> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; XSDSchema xsdSchema =3D=20
XSDFactory.eINSTANCE.createXSDSchema();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;=20
xsdSchema.setDocument(xmlDOM);<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nb=
sp;=20
xsdSchema.setElement(rootElement);<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;=20
xsdSchema.updateElement();</DIV>
<DIV>&nbsp;</DIV>
<DIV> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
System.out.println("\n\n");<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=
=20
XSDResourceImpl.serialize(System.out, xsdSchema.getElement());</DIV>
<DIV>&nbsp;</DIV>
<DIV> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
System.out.println(" &gt;&gt;&gt;&gt;&gt;&gt;&gt;& ;gt;&gt;&gt;&gt;&gt;&gt;&=
gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;& amp;gt;=20
VALIDATION=20
&gt;&gt;&gt;&gt;&gt;&gt;&gt;& ;gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt;&gt;&=
gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;"); <BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;=20
xsdSchema.validate();<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
//EList=20
eList =3D=20
xsdMainSchema.getDiagnostics();<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &n=
bsp;=20
EList eList =3D=20
xsdSchema.getAllDiagnostics();<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nb=
sp; for=20
(int i =3D 0; i &lt; eList.size(); i++)=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
XSDDiagnostic xsdDiagnostic =3D=20
(XSDDiagnostic)eList.get(i);<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;=20
System.out.println(i + ": Diagnostic Message =3D [" + =
xsdDiagnostic.getMessage() +=20
"]");<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
}<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
System.out.println(" &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&=
lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;& amp;lt;&lt;&lt;&lt;&lt;&lt;&lt;& lt;&lt;&lt;&l=
t;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&a mp;lt;&lt;&lt;&lt;&lt;&lt;&lt;&l t;&lt;&lt;&lt=
;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&am p;lt;&lt;&lt; ");<BR>&nbsp;&nbsp;&nbsp;=20
}<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; /** main - the main entry =

*/<BR>&nbsp;&nbsp;&nbsp; public static void main(String[] args)=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; EclipseXSDDemo1 app =3D =
new=20
EclipseXSDDemo1();<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
app.doIt();<BR>&nbsp;&nbsp;&nbsp; }<BR>}<BR></FONT></DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV>"Ed Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB25ED9.AE2CB299@ca.ibm.com">news:3EB25ED9.AE2CB299@ca.ibm.=
com</A>...</DIV>Pae,=20

<P>I'm seeing this result with the just published 1.1.0 driver:=20
<BLOCKQUOTE><IMG height=3D411 =
src=3D"cid:00f401c31128$1198daa0$0b01a8c0@dev1"=20
width=3D502></BLOCKQUOTE>The schema isn't valid. <BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">I have a simple test schema as follows:=20
<P>&lt;?xml version=3D"1.0" encoding=3D"UTF-8"?&gt; <BR>&lt;!--W3C =
Schema=20
generated by Pae --&gt; <BR>&lt;xsd:schema xmlns:xsd=3D"<A=20
=
href=3D"http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchem=
a</A>"=20
<BR>elementFormDefault=3D"qualified"&gt; <BR>&nbsp;&lt;xsd:element=20
name=3D"CommonLogin"&gt; <BR>&nbsp; &lt;xsd:complexType&gt; =
<BR>&nbsp;&nbsp;=20
&lt;xsd:sequence&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;xsd:element =
name=3D"username"=20
ref=3D"usernameRef"/&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;xsd:element=20
name=3D"password" ref=3D"passwordRef"/&gt; <BR>&nbsp;&nbsp;=20
&lt;/xsd:sequence&gt; <BR>&nbsp; &lt;/xsd:complexType&gt;=20
<BR>&nbsp;&lt;/xsd:element&gt; <BR>&nbsp;&lt;xsd:element =
name=3D"passwordRef"=20
type=3D"xsd:string"/&gt; <BR>&nbsp;&lt;xsd:element =
name=3D"usernameRef"=20
type=3D"xsd:string"/&gt; <BR>&lt;/xsd:schema&gt;=20
<P>This is a very simple sample, but it is a valid schema. But when =
<BR>I=20
use the validate() and getDiagnostics() methods in the XSDSchema=20
<BR>interface it gives me a message as follows:=20
<P>XSD: The element '#null' is not permitted as constrained by 'XML =
Schema=20
'; <BR>expecting schema=20
<P>I do not understand what the message is saying. Any comments?=20
<P>Pae</P></BLOCKQUOTE></BLOCKQUOTE></BODY></HTML>

------=_NextPart_001_00FA_01C31106.8A9FCBB0--

------=_NextPart_000_00F9_01C31106.8A9FCBB0
Content-Type: image/jpeg;
name="C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\nsmailFJ.jpeg"
Content-Transfer-Encoding: base64
Content-ID: <00f401c31128$1198daa0$0b01a8c0@dev1>

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCws MGJGSjpQdGZ6eHJm
cG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAqMF40 NF7GhHCExsbGxsbG
xsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsb/ wAARCAGbAfYDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA AgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcY GRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKT lJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP0 9fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQA AQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2 Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOk paanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMB AAIRAxEAPwDXghR4
9zbiST/EfU0m23yQBKcHHG81Ja/6kf7zfzNVLrfsTY5wGkLRrJsZueoPt6e9 NK4FpIYJEDIWKnoQ
5/xpfs0Xo3/fZ/xqKy2bmMbMUZEcZ75zzjt2qMXc+1kYBbgkbYvLyRnJ67sN wDzkdPXikBZ+zRej
f99n/Gj7NF6N/wB9n/Gqa31w+eI027VYMuTuLsmeD2xnHPpnvS/bZyJnHlhY ELMNpy5DODg54zs9
+vegC39mi9G/77P+NH2aL0b/AL7P+NUEup4hIkMQZY2kdycYwZH4yWGPu9ef 8b883lxs6FW2H5l7
n2HvyMDv075oAPs0Xo3/AH2f8aPs0Xo3/fZ/xqFriZWhLGMRPt/eKpdSSeFG Dx2+YjBz26Uy3kkm
uraaQptkgZlVVIKglDgnPP6UATyQxIudrH/gZpm2L+43/fw1NP8AcH1rJvJZ becG2JlkdSWhOSAA
PvD0/r9aQGhti/uN/wB/DTDGBI65bAPHzH0B/rUdntNurLMZt3zFyep+nb6V M/8Ar5f94fyFAxvl
j1b/AL6NHlj1b/vo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+ jTqKAG+WPVv++jR5
Y9W/76NOooAb5Y9W/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igBvlj1 b/vo0eWPVv8Avo06
igBvlj1b/vo0eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPVv++jR5Y9 W/76NOooAb5Y9W/7
6NHlj1b/AL6NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/AL6NHlj1b/vo06ig Bvlj1b/vo0eWPVv+
+jTqKAG+WPVv++jR5Y9W/wC+jTqKAG+WPVv++jR5Y9W/76NOooAb5Y9W/wC+ jR5Y9W/76NOooAb5
Y9W/76NHlj1b/vo06igBvlj1b/vo0eWPVv8Avo06igBvlj1b/vo0eWPVv++j TqKAG+WPVv8Avo0e
WPVv++jTqKAG+WPVv++jR5Y9W/76NOooAb5Y9W/76NHlj1b/AL6NOooAb5Y9 W/76NHlj1b/vo06i
gCvOTEV2MRnOcnP86KS76p+P9KKBF+1/1I/3m/majktGkBVmiZNxYK8W7Gfx 96hREIJKqTuPUe9O
8uP+4v5U7gWIYnR3d3DFgBwuMYz/AI0otoBEYhBGI2OSgQYJ+lNdbaNlVkjD OcKu0ZP0FMcwRyBW
tvlyFMmwbQT0Hqeo6DHP1oAmWCFF2pFGo44CgdDkfrzTPscBn84xIXwMZUfK QScj3yaT/Q/+mH39
nb73p9fahfsbruTyGHHIwepwP14oAkaCFipaKMlCWUlRwSckj8ad5abt2xc5 3Zx3xjP5cVCVgFws
JgXLIXDbRjggEfqKk8iH/nkn/fIoABBCJBIIo94zhtoyM5zz+J/OhIIY5GkS KNXbqwUAn8ah8yw8
vzN9tszt3ZXGfTNO/wBD87yf3Hm/3ON3r0oAklUsoAGeagFuVZmEYDN94jGT 9adusgwXNvuLbAMr
kt6fXkUM1ksvlMbcSZA2ErnJ6cUANW3KZ2RhdxycYGT60j/6+X/eH8hUgFqZ zCEiLgZIG3I6dR17
0f6H53k/uPN/ucbvXpQBHRUg+xs4QeQWJK7RjOR1H4U3zLDzPL322/O3blc5 9MUrANoprz2y3Bh+
ysSJFjyIxjJGf0HWpf8ARvtPkeSN+0tkx4GBjv369qLAMoqx5EP/ADyT/vkV X8y33f8AHt+737PM
2rtznGOuevHT9KLAFFNee2W4MP2ViRIseRGMZIz+g61a8iH/AJ5J/wB8iiwF eipP9D87yf3Hm/3O
N3r0oH2NnCDyCxJXaMZyOo/CiwEdFSH7GJDGfI3jGV4yM4xx+I/Oj/Q/O8n9 x5v9zjd69KLAR0Us
slpE4TZGz7lUqu3K5IAJHpyPzp4FqZzCEiLgZIG3I6dR170WAjoqQfY2cIPI LEldoxnI6j8KR2sk
Zlc26sgywJUED3/MfnRYBlFO8yw8zy99tvzt25XOfTFRvPbLcGH7KxIkWPIj GMkZ/QdaLAOoprzQ
r5n+hMfLkEZwqck4xjn3H5/WkeeJHKf2fKxAYjCJ8wU4JAznuPrRYB9FN86H z2iFkxKvtJCp7c4z
nHzDt3q15EP/ADyT/vkUWAr0UeZb7v8Aj2/d79nmbV25zjHXPXjp+lNee2W4 MP2ViRIseRGMZIz+
g60WAdRTnMEcgVrb5chTJsG0E9B6nqOgxz9aei20jMqpGWQ4ZdoyPqKLARUV Y8iH/nkn/fIo8iH/
AJ5J/wB8iiwFeirHkQ/88k/75FHkQ/8APJP++RRYCvRVjyIf+eSf98ijyIf+ eSf98iiwFeirHkQ/
88k/75FHkQ/88k/75FFgK9FWPIh/55J/3yKPIh/55J/3yKLAV6KseRD/AM8k /wC+RR5EP/PJP++R
RYCvRVjyIf8Ankn/AHyKPIh/55J/3yKLAV6KseRD/wA8k/75FHkQ/wDPJP8A vkUWAr0VY8iH/nkn
/fIo8iH/AJ5J/wB8iiwFeipngh2/6pOo/hFQbYv+eUfPtQMWioJlTz4FCKAS cgDrxUb3FsjlWj5B
x90UWGouWiQ676p+P9KKLtFRlAUDrnAooJJ4/un/AHj/ADp1Nj+6f94/zp1A yXyWjmMkTAhz86vk
nr2PbqeOn05NOeMyTLuAMSjP3urZ4yMdvr+HQ055Y42VWYBnOFXufoKDIBMs WDuZSw9MAj/EUxFb
7PN9s+0Yj+/jZuONuMbun3+30496rtp8zo2Y4AzCYZDE4L9D0/D6flWpRQBW dJzepIqRmNVK5LkH
BKknGPb1qzVV70L5n7iU+XIIzjbyTjGOfcfn9akFwPOEbRyKGJVXIGGIycev Y9scfSgCP7M/2rOV
+z58zb33/Tpjv67uaiWydZuUDp5pkyZ3HVt33MY4/XFWGufnwkMki7gpdAMA 5x65474/oanoAqwR
TR3c7mOLbK+dwc7sBQAMY9vXvUf2WZp8lI1XzN2VlYjGc/cIxk+vrz1qb7WC 2FhlZd+wOqgjOcHv
kY55Ixx9KkM8IkMZlj3jGV3DIzjHH4j86AInSc3qSKkZjVSuS5BwSpJxj29a Z9nmx5OI/K83zN+4
7vv78bcfh19/apo7mN5WjJ2OrlArEZbAByOeeCKd58PneT5sfm/3Nw3evSgC o9tOWnZY4d0kyOCX
IJVccH5f9n9T+Nn7NH5m/dLnOcec+Pyzj8Kcs8LruSWNhxyGB6nA/Xijz4fO 8nzY/N/ubhu9elAD
vLTdu2LnO7OO+MZ/LioHSc3qSKkZjVSuS5BwSpJxj29as1E9zAjMrzxqyDLA uAQPf8x+dAC/vvtH
/LPyNnvu3Z/LGKr/AGebHk4j8rzfM37ju+/vxtx+HX39qsefD53k+bH5v9zc N3r0oE8LOEEsZYkr
tDDOR1H4UAO8tN27Yuc7s474xn8uKdUfnw+d5Pmx+b/c3Dd69KT7TAGC+fHu LbAN4yW9PryKAKq2
TrNygdPNMmTO46tu+5jHH64oe2nLTsscO6SZHBLkEquOD8v+z+p/G358PneT 5sfm/wBzcN3r0pqX
du8zQrNGZFO0pu5z9KAIlgkVhGY4XjEpkDsSSCWJ4XHXnGc+/tSfZ5seTiPy vN8zfuO77+/G3H4d
ff2qx58PneT5sfm/3Nw3evSmS3cUThNwZ9yqVVhlckAEjPTkfnQBXltZynlo sLKs3nKzE5J37sdO
OpGefpzxM6Tm9SRUjMaqVyXIOCVJOMe3rVmoIbuKXau4JIxIEbMN3BIPAPsa AK7205adljh3STI4
JcglVxwfl/2f1P4xypJ5i2wjDBZxKHKN3fcecYGATzk9MY5q613bLu3XEQ2n a2XHB9D+R/KpqAIf
s0fmb90uc5x5z4/LOPwqTy03bti5zuzjvjGfy4qAXg81kaGRVRxGXO3GTjHf POR271L58PneT5sf
m/3Nw3evSgCB7aRpXA2eXJKkpYk5BXbxjHP3eue/tUjxyG9ikATy1RlJLHOS QemP9n170/z4fO8n
zY/N/ubhu9elSUAVYLYpeT3EkcYZz8rKxJ24AweP9kH8fzk+zR+Zv3S5znHn Pj8s4/CpqKAKP2N/
P3bIs+Zv8/P7zGc7enp8vXp+VXPLTdu2LnO7OO+MZ/LikSWORmVWBZDhl7j6 in0ARPGZJl3AGJRn
73Vs8ZGO31/Doab5LSTCSVgAh+RUyD17nv0HHT68Gp6KACiiigAooooAKKKK ACiiigAooooAKKKK
ACiiigAooooAKKKKAGyEBck4AIyT9az3EMjBmlOR0w4GKvyqrxlXUMD2IzVf 7Lb/APPCL/vgf5/z
+YBWlZWubfawOCe+f4aZJYLJIz+cRuOcbP8A69WzbwqMrDGD6hR/n/P5t8uP +4v5UXsXCcoO8SG9
OXU+uaKbdKF2BQAOen4UUiCxH90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51 fJPXse3U8dPpyakK
AzK+0ZVSN2eRkjjH4fpQ8scbKrMAznCr3P0FJ58P/PWP7+z7w+96fX2piG/Z o/M37pc5zjznx+Wc
fhR9mj8zfulznOPOfH5Zx+FK1zAsvlNPGJMgbC4zk9OKbLdxROE3Bn3KpVWG VyQASM9OR+dAEEti
73ZlDrtLhj6/wH/2mP8Avo+nMphka7WRljUIT8653MuDhSMdOc9eo6ek/mJ5 nl71343bc849cUxr
mBZfKaeMSZA2FxnJ6cUAMSOaJikflmIuX3MTuGTkjHfqecjr3xzYqMzwiQxm WPeMZXcMjOMcfiPz
psdzG8rRk7HVygViMtgA5HPPBFAEDWsjz+Y0durbw3nICHCg8DpzkDB5HXp6 uWCRWEZjheMSmQOx
JIJYnhcdecZz7+1T+fD53k+bH5v9zcN3r0oWeF13JLGw45DA9TgfrxQBUe2n LTsscO6SZHBLkEqu
OD8v+z+p/EWydZuUDp5pkyZ3HVt33MY4/XFW/Ph87yfNj83+5uG716VJQBlt p8zo2Y4AzCYZDE4L
9D0/D6flT5bKcuSmziUSAmVgG+bONo4H15zjPU8XfPh/56x/f2feH3vT6+1C zwuu5JY2HHIYHqcD
9eKAJKzJUk8xbYRhgs4lDlG7vuPOMDAJ5yemMc1fMoFwsJVsshcNxjggEfqK BPCzhBLGWJK7Qwzk
dR+FAFRbJ1m5QOnmmTJncdW3fcxjj9cUPbTlp2WOHdJMjglyCVXHB+X/AGf1 P42muYFl8pp4xJkD
YXGcnpxT/MTzPL3rvxu255x64oApLZOs3KB080yZM7jq277mMcfripYIpo7u dzHFtlfO4Od2AoAG
Me3r3qbz4f8AnrH9/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oApy2U5clNnEo kBMrAN82cbRwPrzn
Gep4srHNHcSFPLKSOHLEnI4Axjv0657+3Ky3cUThNwZ9yqVVhlckAEjPTkfn S/a7bzPL+0Rb87du
8Zz6YoArLZOs3KB080yZM7jq277mMcfriiW1nKeWiwsqzecrMTknfux046kZ 5+nPEr3yLcGHypSR
IseQvGSM/oOtSR3MbytGTsdXKBWIy2ADkc88EUATVQitZwnlusKq03nMyk5B 37sdOegGePpxzZS7
t3maFZozIp2lN3OfpQl3bvM0KzRmRTtKbuc/SgCBo99+YwH8skSyZQ4LLjHP v8p4/ue5q7UYnhZw
gljLEldoYZyOo/CneYnmeXvXfjdtzzj1xQBWitT9qmlmUYZwyASMRwAOV6Z4 z3/SoZbKcuSmziUS
AmVgG+bONo4H15zjPU8XXl2zRxgZL5J56Ad/zIH40PLtmjjAyXyTz0A7/mQP xoAqLZOs3KB080yZ
M7jq277mMcfrir9Qtd2y7t1xENp2tlxwfQ/kfyoa7tl3briIbTtbLjg+h/I/ lQAfZo/M37pc5zjz
nx+WcfhR9mj8zfulznOPOfH5Zx+FDXdsu7dcRDadrZccH0P5H8qmoAg8lpJh JKwAQ/IqZB69z36D
jp9eDU9Qtd2y7t1xENp2tlxwfQ/kfyoFwPOEbRyKGJVXIGGIycevY9scfSgC aiio/Ph87yfNj83+
5uG716UASUVF9pgDBfPj3FtgG8ZLen15FD3MCMyvPGrIMsC4BA9/zH50AS0V G8u2aOMDJfJPPQDv
+ZA/Gmi4HnCNo5FDEqrkDDEZOPXse2OPpQBNRVf7Wu7/AFcnl79nmcbc5xjr nrx0/Sj7Wu7/AFcn
l79nmcbc5xjrnrx0/SgCxRUX2hPtPkYfftLZKkDAx379e1K8u2aOMDJfJPPQ Dv8AmQPxoAkoqq96
Edk8iUsrhQo25bOcEc9OP5+hxHJqkUczxGKUusix4G3ktkjHPtQBeoqKGfzZ JU8t18ptpLYwTjPG
D6EfnTPtYLYWGVl37A6qCM5we+RjnkjHH0oAsUVGZ4RIYzLHvGMruGRnGOPx H502O5jeVoydjq5Q
KxGWwAcjnngigCaio/Ph87yfNj83+5uG716ULPC67kljYcchgepwP14oAkoq Pz4fO8nzY/N/ubhu
9elQvfItwYfKlJEix5C8ZIz+g60AWH+6aj/z/n/P/wBeR/umo/8AP+f8/wD1 wBr/AHT/AJ/z/n8Y
6kf7p/z/AJ/z+MdIZWu+qfj/AEoou+qfj/SigRPH90/7x/nTqbH90/7x/nTq BkvktHMZImBDn51f
JPXse3U8dPpyai+zzfbPtGI/v42bjjbjG7p9/t9OPerHnw+d5Pmx+b/c3Dd6 9KDKBcLCVbLIXDcY
4IBH6imIq/ZZmnyUjVfM3ZWViMZz9wjGT6+vPWkltZynlosLKs3nKzE5J37s dOOpGefpzxb8+Hzv
J82Pzf7m4bvXpQs8LruSWNhxyGB6nA/XigBvlv8AbPM2RbPL27sfPnPTPp/W q/2WZp8lI1XzN2Vl
YjGc/cIxk+vrz1q158PneT5sfm/3Nw3evSgTws4QSxliSu0MM5HUfhQBAsEi sIzHC8YlMgdiSQSx
PC4684zn39qje2nLTsscO6SZHBLkEquOD8v+z+p/Gyl3bvM0KzRmRTtKbuc/ So/to89ohBKSr7SR
t9ucZzj5h270ARLZOs3KB080yZM7jq277mMcfriom0+Z0bMcAZhMMhicF+h6 fh9PyrQ8+HzvJ82P
zf7m4bvXpSfaYAwXz49xbYBvGS3p9eRQBTlspy5KbOJRICZWAb5s42jgfXnO M9Txo1Gs8LruSWNh
xyGB6nA/Xio1u1MzxtHIgV9m9sbSeCBwe+R1+nXigCP7PN9s+0Yj+/jZuONu Mbun3+30496rtp8z
o2Y4AzCYZDE4L9D0/D6flWh58PneT5sfm/3Nw3evSoX1C3W4WBXV3JwQHX5T nHc/oMmgBXSc3qSK
kZjVSuS5BwSpJxj29ahe2nLTsscO6SZHBLkEquOD8v8As/qfxt+fD53k+bH5 v9zcN3r0o8+H/nrH
9/Z94fe9Pr7UAVfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVjy3+2eZsi2eXt3Y+ fOemfT+tOMoFwsJV
sshcNxjggEfqKal3bvM0KzRmRTtKbuc/SgCH7PN9s+0Yj+/jZuONuMbun3+3 0496b9lmafJSNV8z
dlZWIxnP3CMZPr689asfa7bzPL+0Rb87du8Zz6YqN75FuDD5UpIkWPIXjJGf 0HWgCKW1nKeWiwsq
zecrMTknfux046kZ5+nPFn7NH5m/dLnOcec+Pyzj8KV7mBGZXnjVkGWBcAge /wCY/Ol8+H/nrH9/
Z94fe9Pr7UAO8tN27Yuc7s474xn8uKpPbTlp2WOHdJMjglyCVXHB+X/Z/U/j b8+HzvJ82Pzf7m4b
vXpQZQLhYSrZZC4bjHBAI/UUARrHNHcSFPLKSOHLEnI4Axjv0657+3Isc0dx IU8spI4csScjgDGO
/Trnv7cyCeMzmEMpcDJAYZHTqOveoX1C3W4WBXV3JwQHX5TnHc/oMmgCBI3m u7kCIKhmRjIwIJCh
eBxyMqe/f87flv8AbPM2RbPL27sfPnPTPp/WnCeMzmEMpcDJAYZHTqOvejz4 fO8nzY/N/ubhu9el
ADYUbzJZZBhnO0D0UZx/U/jjtRCjeZLLIMM52geijOP6n8cdqSW7iicJuDPu VSqsMrkgAkZ6cj86
Y98i3Bh8qUkSLHkLxkjP6DrQAySzke5LiQCNnVyOeo29v+Af+PH05JLOR7ku JAI2dXI56jb2/wCA
f+PH05tJLHIzKrAshwy9x9RT6AKUlnI9yXEgEbOrkc9Rt7f8A/8AHj6c2f33 2j/ln5Gz33bs/ljF
SUUAUpLOR7kuJAI2dXI56jb2/wCAf+PH05kMMjXayMsahCfnXO5lwcKRjpzn r1HT0s0UAR/vvtH/
ACz8jZ77t2fyxiq/2ebHk4j8rzfM37ju+/vxtx+HX39quUUAVYIpo7udzHFt lfO4Od2AoAGMe3r3
qtKknmLbCMMFnEoco3d9x5xgYBPOT0xjmtOigCGFG8yWWQYZztA9FGcf1P44 7VGiXP2ou6xFckbt
5JCdgBjjtnn+mLVFAFP7PNjycR+V5vmb9x3ff3424/Dr7+1H2ebHk4j8rzfM 37ju+/vxtx+HX39q
uUUAVnSc3qSKkZjVSuS5BwSpJxj29afCjeZLLIMM52geijOP6n8cdqmooApy R3ZnMqiLKnagLnGw
9c/L1OB+Q98xy2k7SSyBIixlV0JkI+Ubcg8d9g/P89CigCmI7tZpSgiCySq+ 7echRtBGNvcD170j
Wsjz+Y0durbw3nICHCg8DpzkDB5HXp63aKAKiwSKwjMcLxiUyB2JJBLE8Ljr zjOff2qN7actOyxw
7pJkcEuQSq44Py/7P6n8b9FAFBbJ1m5QOnmmTJncdW3fcxjj9cVE2nzOjZjg DMJhkMTgv0PT8Pp+
ValFAGdLZTlyU2cSiQEysA3zZxtHA+vOcZ6ni/5abt2xc53Zx3xjP5cU6igB r/dNR/5/z/n/AOvI
/wB01H/n/P8An/64A1/un/P+f8/jHUj/AHT/AJ/z/n8Y6Qytd9U/H+lFF31T 8f6UUCJ4/un/AHj/
ADp1Nj+6f94/zp1Axi2TrNygdPNMmTO46tu+5jHH64qZ0nN6kipGY1UrkuQc EqScY9vWrNMeWONl
VmAZzhV7n6CmIprZOs3KB080yZM7jq277mMcfriom0+Z0bMcAZhMMhicF+h6 fh9PyrQ8+H/nrH9/
Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oAqrZOs3KB080yZM7jq277mMcfrih7 actOyxw7pJkcEuQS
q44Py/7P6n8bEt3FE4TcGfcqlVYZXJABIz05H51L5ieZ5e9d+N23POPXFAEK xzR3EhTyykjhyxJy
OAMY79Oue/ty2C2KXk9xJHGGc/KysSduAMHj/ZB/H85vPh87yfNj83+5uG71 6UGUC4WEq2WQuG4x
wQCP1FAFf7PNjycR+V5vmb9x3ff3424/Dr7+1Ogimju53McW2V87g53YCgAY x7evepvPh87yfNj8
3+5uG716ULPC67kljYcchgepwP14oAz20+Z0bMcAZhMMhicF+h6fh9PyqwLe ZppfMEaxPKsmVYlv
l24GMcfdB/T3qx58PneT5sfm/wBzcN3r0oE8LOEEsZYkrtDDOR1H4UAVFsnW blA6eaZMmdx1bd9z
GOP1xUqpci8eXy4tjBU/1hyACecbffpUiXdu8zQrNGZFO0pu5z9KmoAzpbKc uSmziUSAmVgG+bON
o4H15zjPU8ST205aTyvLKvKkvzEg5Xb8vT/Z6/hjvVkTws4QSxliSu0MM5HU fhR58PneT5sfm/3N
w3evSgCJ0nN6kipGY1UrkuQcEqScY9vWlWOaO4kKeWUkcOWJORwBjHfp1z39 uZFnhddySxsOOQwP
U4H68UefD53k+bH5v9zcN3r0oAb9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd 8Yz+XFR/a7bzPL+0
Rb87du8Zz6YqN75FuDD5UpIkWPIXjJGf0HWgCvcxSxRqpjV41uBIGVWZuX3H gDjAJ5z296lntpy0
nleWVeVJfmJByu35en+z1/DHepmufnwkMki7gpdAMA5x65474/oaf58PneT5 sfm/3Nw3evSgClLZ
TlyU2cSiQEysA3zZxtHA+vOcZ6niw6Tm9SRUjMaqVyXIOCVJOMe3rUqzwuu5 JY2HHIYHqcD9eKFn
hddySxsOOQwPU4H68UAROk5vUkVIzGqlclyDglSTjHt60ipci8eXy4tjBU/1 hyACecbffpU3nw+d
5Pmx+b/c3Dd69KBPCzhBLGWJK7QwzkdR+FAETpOb1JFSMxqpXJcg4JUk4x7e tQrZOs3KB080yZM7
jq277mMcfrirUM/mySp5br5TbSWxgnGeMH0I/Ol8+HzvJ82Pzf7m4bvXpQBU ltZynlosLKs3nKzE
5J37sdOOpGefpzxd8tN27Yuc7s474xn8uKY9zAjMrzxqyDLAuAQPf8x+dKJ4 zOYQylwMkBhkdOo6
96AGeS0kwklYAIfkVMg9e579Bx0+vBqeoxPCzhBLGWJK7QwzkdR+FQvfItwY fKlJEix5C8ZIz+g6
0AWqKYkscjMqsCyHDL3H1FPoAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKK
KACiiigBr/dNR/5/z/n/AOvI/wB01H/n/P8An/64A1/un/P+f8/jHUj/AHT/ AJ/z/n8Y6Qytd9U/
H+lFF31T8f6UUCJ4/un/AHj/ADp1Nj+6f94/zp1Ay5UHktHMZImBDn51fJPX se3U8dPpyanopiKf
2eb7Z9oxH9/GzccbcY3dPv8Ab6ce9N+yzNPkpGq+ZuysrEYzn7hGMn19eetW 3ljjZVZgGc4Ve5+g
pPPh/wCesf39n3h970+vtQBUltZynlosLKs3nKzE5J37sdOOpGefpzxZ8t/t nmbItnl7d2Pnznpn
0/rStcwLL5TTxiTIGwuM5PTimy3cUThNwZ9yqVVhlckAEjPTkfnQBXWydZuU Dp5pkyZ3HVt33MY4
/XFTOk5vUkVIzGqlclyDglSTjHt61P5ieZ5e9d+N23POPXFNM8IkMZlj3jGV 3DIzjHH4j86AKi2T
rNygdPNMmTO46tu+5jHH64qJtPmdGzHAGYTDIYnBfoen4fT8q0PPh87yfNj8 3+5uG716ULPC67kl
jYcchgepwP14oAqLZOs3KB080yZM7jq277mMcfrih7actOyxw7pJkcEuQSq4 4Py/7P6n8bYnhZwg
ljLEldoYZyOo/CgygXCwlWyyFw3GOCAR+ooAjWOaO4kKeWUkcOWJORwBjHfp 1z39ubFR+fD53k+b
H5v9zcN3r0o8+H/nrH9/Z94fe9Pr7UAVHtpy07LHDukmRwS5BKrjg/L/ALP6 n8Wy2U5clNnEokBM
rAN82cbRwPrznGep4me+KOU+yXDEBiMBfmCnBIGc9x9ala7tl3briIbTtbLj g+h/I/lQBRbT5nRs
xwBmEwyGJwX6Hp+H0/KpVsnWblA6eaZMmdx1bd9zGOP1xVsTws4QSxliSu0M M5HUfhR58PneT5sf
m/3Nw3evSgBv2aPzN+6XOc4858flnH4VJ5abt2xc53Zx3xjP5cUiSxyMyqwL IcMvcfUU+gCukc0T
FI/LMRcvuYncMnJGO/U85HXvjmP7PNjycR+V5vmb9x3ff3424/Dr7+1XKKAM ttPmdGzHAGYTDIYn
Bfoen4fT8qG0+Z0bMcAZhMMhicF+h6fh9PyrUooAp/Z5seTiPyvN8zfuO77+ /G3H4dff2pj205ad
ljh3STI4JcglVxwfl/2f1P436KAKYju1mlKCILJKr7t5yFG0EY29wPXvR9nm x5OI/K83zN+47vv7
8bcfh19/arlFAGZKknmLbCMMFnEoco3d9x5xgYBPOT0xjmrTpOb1JFSMxqpX Jcg4JUk4x7etWaKA
KD205adljh3STI4JcglVxwfl/wBn9T+N3y03bti5zuzjvjGfy4p1FAEHktJM JJWACH5FTIPXue/Q
cdPrwanoooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigBr/AHTU
f+f8/wCf/ryP901H/n/P+f8A64A1/un/AD/n/P4x1I/3T/n/AD/n8Y6Qytd9 U/H+lFF31T8f6UUC
J4/un/eP86dTY/un/eP86dQMuUUUUxEHktHMZImBDn51fJPXse3U8dPpyai+ zzfbPtGI/v42bjjb
jG7p9/t9OPerlMeWONlVmAZzhV7n6CgCp9lmafJSNV8zdlZWIxnP3CMZPr68 9aSW1nKeWiwsqzec
rMTknfux046kZ5+nPFvz4f8AnrH9/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04o ATy3+2eZsi2eXt3Y
+fOemfT+tRLBIrCMxwvGJTIHYkkEsTwuOvOM59/apJbuKJwm4M+5VKqwyuSA CRnpyPzqXzE8zy96
78btueceuKAKv2ebHk4j8rzfM37ju+/vxtx+HX39qrtp8zo2Y4AzCYZDE4L9 D0/D6flV9rmBZfKa
eMSZA2FxnJ6cUvnw+d5Pmx+b/c3Dd69KAKSRvNd3IEQVDMjGRgQSFC8DjkZU 9+/52HSc3qSKkZjV
SuS5BwSpJxj29ake5gRmV541ZBlgXAIHv+Y/Ol8+H/nrH9/Z94fe9Pr7UAVF snWblA6eaZMmdx1b
d9zGOP1xT/s832z7RiP7+Nm4424xu6ff7fTj3qx58PneT5sfm/3Nw3evSgTw s4QSxliSu0MM5HUf
hQAx45DexSAJ5aoykljnJIPTH+z696haPffmMB/LJEsmUOCy4xz7/KeP7nua smeESGMyx7xjK7hk
Zxjj8R+dHnw+d5Pmx+b/AHNw3evSgCkkbzXdyBEFQzIxkYEEhQvA45GVPfv+ blsnWblA6eaZMmdx
1bd9zGOP1xVxJY5GZVYFkOGXuPqKfQBB5LSTCSVgAh+RUyD17nv0HHT68Gp6 KKACiiigAooooAKK
KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooo
oAKKKKAGv901H/n/AD/n/wCvI/3TUf8An/P+f/rgDX+6f8/5/wA/jHUj/dP+ f8/5/GOkMrXfVPx/
pRRd9U/H+lFAieP7p/3j/OnVSaJmlYlpfmJ2ojkZ68+39T265WFf3yENKpxu 2PIWyOeR/h9D65NC
uV2ubFFFFMkKg8lo5jJEwIc/Or5J69j26njp9OTU9FAFP7PN9s+0Yj+/jZuO NuMbun3+30496b9l
mafJSNV8zdlZWIxnP3CMZPr689a59Li9dWZZ5yqjLHecD8aXzr//AJ63P3d/ 3m+76/T3rTkJ5jel
tZynlosLKs3nKzE5J37sdOOpGefpzxZ8t/tnmbItnl7d2Pnznpn0/rXMiXUW j8xXujHjO4FsfnTo
3v5EL/aJ1TaSGZmw2ASQD68H8qOTzDmNz7LM0+Skar5m7KysRjOfuEYyfX15 60i2TrNygdPNMmTO
46tu+5jHH64rA+03vl+Z59xszjdvbGfTNL51/wCV5vm3Pl/39zY/OjkDmNu5 ilijVTGrxrcCQMqs
zcvuPAHGATznt71LPbTlpPK8sq8qS/MSDldvy9P9nr+GO9c+Li7MBlF3LgMF K+Y2eQSD+ho86/8A
K83zbny/7+5sfnRyBzG8tk6zcoHTzTJkzuOrbvuYxx+uKHtpy07LHDukmRwS 5BKrjg/L/s/qfxwW
mv0OGluVPPBZh0GT+nNHnX/leb5tz5f9/c2Pzo5A5jolgkVhGY4XjEpkDsSS CWJ4XHXnGc+/tUa2
TrNygdPNMmTO46tu+5jHH64rBM1+E3mW5CgA5LNjB6GnM+opEJWkuRGRkNub GKOTzDmOk8lpJhJK
wAQ/IqZB69z36Djp9eDU9cf9tuv+fmb/AL+Gnma/CbzLchQAclmxg9DR7MOY 62iuS86/8rzfNufL
/v7mx+dDTX6HDS3Knngsw6DJ/TmjkDmOtorkvOv/ACvN8258v+/ubH507fqX l+Zuu9mM7stjHrmj
k8w5jq6K5dTetAJftrAFGkwZWzgHH6npUXnX/wDz1ufu7/vN931+nvRyeYcx 1tFcmJdRaPzFe6Me
M7gWx+dJ51/5Xm+bc+X/AH9zY/Ojk8w5jraK5PzdR2lt91gLuJy3T1+lIZr8 JvMtyFAByWbGD0NH
J5hzHW0VyXnX/leb5tz5f9/c2Pzoaa/Q4aW5U88FmHQZP6c0cgcx1tFcl51/ 5Xm+bc+X/f3Nj86l
U3rQCX7awBRpMGVs4Bx+p6UcnmHMdRRXH/bbr/n5m/7+GpPN1HaW33WAu4nL dPX6UezDmOsorkvO
v/K83zbny/7+5sfnUqjUWgMxnuFQDIJL/MMZ7fzNHJ5hzHUUVym/UvL8zdd7 MZ3ZbGPXNPU3rQCX
7awBRpMGVs4Bx+p6UuTzC51FFcl51/8A89bn7u/7zfd9fp70ol1Fo/MV7ox4 zuBbH50+TzDmOsor
kvOv/K83zbny/wC/ubH50vm6jtLb7rAXcTlunr9KOTzDmOsorkjNfhN5luQo AOSzYweho86/8rzf
NufL/v7mx+dHIHMdbRXJNNfocNLcqeeCzDoMn9OaPOv/ACvN8258v+/ubH50 cgcx1tFcvuu/LVhf
MxZC4QO+cDOe2OMHv2qLzr/yvN8258v+/ubH50cgcx1tFcuo1FoDMZ7hUAyC S/zDGe38zQpvWgEv
21gCjSYMrZwDj9T0pcnmFzqKK5JLm6aKSQ3UwCYA+c8k9uvoCfwpHuL1FVmn nCsMqd5wfxp8gcx1
1FFFZlBRRRQA1/umo/8AP+f8/wD15H+6aj/z/n/P/wBcAa/3T/n/AD/n8Y6k f7p/z/n/AD+Nczxg
kZPHH3TSGk3sRXfVPx/pRRdEMIyOhBI/SigBu7MxdFLyR5AQd/mzn9enXp60 Iha8Ezh03ZIVhyT3
/D3+lOMcJ5aBJJGLYG0ZPJ70sAg3jFukUmNy8DkeoNLS5peXKalFFFUZBRRR QBx+/wAyIJIhyo+Q
pgfmO/Qc9frxUvmx/ZfI+f7md20Z3Zzt6/d/rzXQyQWSMqvDAGc/KuwZb8KT y9P/ALlt9/Z0X73p
9fatOdBZGB5yCHALsxj24Mag5xj7+c49vTApYpog+9jMC8XlFVAwBt25689j jj/HdZNOWXymW1Eh
I+Qhc57cU2UWEb7PIgdyyhlVVyuSACR6cj86OdBZHOZH2Ty8y79+7bn5MY64 9asG5DRDBKP5ezAh
U/w4+9nPP9a6D7PZeZ5fkwb8btu0Zx64pvl6f53k7Lbzf7mF3evSjnQWRzie V9keMtJ5jENgIMcA
8Zz71KbkNEMEo/l7MCFT/Dj72c8/1reMNr9oEJtI8spcNsXBwQD+PIo8vT/O 8nZbeb/cwu716Uc6
CyMVbuNXXa0xUGIgFQMhOo6/j9fzqM3IaIYJR/L2YEKn+HH3s55/rW8senyL uVLZgccgKc5OB+uR
R5en+d5Oy283+5hd3r0o5kFkYKTRbYFZpsJE6kBB1bPI5/2v0HrUJMckEYYP vRCoAAweSc57demP
510gj09n2BLYsWI24XJI6j6imqNNkmaFVtjIGwU2rnP070c4WRy21vSrqTRb YFZpsJE6kBB1bPI5
/wBr9B610X2O1/59of8AvgVGI9PZ9gS2LFiNuFySOo+oocwtEw4rmIKA4fmM oQI1JHy4zuPJ+nHX
83Ldxq67WmKgxEAqBkJ1HX8fr+dbXl6f53k7Lbzf7mF3evShY9PkXcqWzA45 AU5ycD9cijmQWRgm
5DRDBKP5ezAhU/w4+9nPP9ar+dL5ezZHjGP9UufzxnNdN5en+d5Oy283+5hd 3r0puNM8zy8Wm/dj
b8uc+mPWjnQWRzGZMYy2MYxntnOPz5qzDLEFj8wSArG0Y2gHg7uev+10/XtW 07WS3Bh+w7j5ix5E
QIJIz+g61MI9PZ9gS2LFiNuFySOo+oo5wsjA85BDgF2Yx7cGNQc4x9/Oce3p gUpuQ0QwSj+XswIV
P8OPvZzz/Wt7y9P87ydlt5v9zC7vXpSMmnLL5TLaiQkfIQuc9uKOdBZHPStH JbQory7o0wFKjbkn
J5z7+nYVIk0W2BWabCROpAQdWzyOf9r9B61usmnLL5TLaiQkfIQuc9uKRhpi 7twtBtbDZ28Hng+/
Bo5wsjFiuYgoDh+YyhAjUkfLjO48n6cdfzct3GrrtaYqDEQCoGQnUdfx+v51 teXp/neTstvN/uYX
d69KQpp27aVtdxbbjC5Len15/WjmQWRhG5DRDBKP5ezAhU/w4+9nPP8AWqmZ MYy2MYxntnOPz5rp
pRYRvs8iB3LKGVVXK5IAJHpyPzpjtZLcGH7DuPmLHkRAgkjP6DrRzoLI5ra3 pVmVo5LaFFeXdGmA
pUbck5POff07Cum+x2v/AD7Q/wDfAqIpp27aVtdxbbjC5Len15/WnzhaJhG5 DRDBKP5ezAhU/wAO
PvZzz/Woz5LWiR7pd6ln/wBWMEkDjr7frXReXp/neTstvN/uYXd69KheTThc CAQwO5bDABODnHOT
yevAyaXOgsjn/Ol8vZsjxjH+qXP54zmmZkxjLYxjGe2c4/PmunxpnmeXi037 sbflzn0x61G7WS3B
h+w7j5ix5EQIJIz+g60+dBZGLDLEFj8wSArG0Y2gHg7uev8AtdP17UvnIIcA uzGPbgxqDnGPv5zj
29MCt8R6ez7AlsWLEbcLkkdR9RR5en+d5Oy283+5hd3r0pc6CyME3IaIYJR/ L2YEKn+HH3s55/rU
crRyW0KK8u6NMBSo25Jyec+/p2FdCyacsvlMtqJCR8hC5z24oZNOWXymW1Eh I+Qhc57cUc6CyMJJ
otsCs02EidSAg6tnkc/7X6D1p0VzEFAcPzGUIEakj5cZ3Hk/Tjr+e0w0xd24 Wg2ths7eDzwffg07
y9P87ydlt5v9zC7vXpRzoLIxVu41ddrTFQYiAVAyE6jr+P1/OozchohglH8v ZgQqf4cfeznn+tbp
TTt20ra7i23GFyW9Prz+tNlFhG+zyIHcsoZVVcrkgAkenI/OjmQWRh+eggii AYjyyrNsAYZJPBzn
vjHGR9aU3IaIYJR/L2YEKn+HH3s55/rWz/onmujWIVVkCM5RMZOMd885HbvU vl6f53k7Lbzf7mF3
evSjnQWRzp8lrRI90u9Sz/6sYJIHHX2/WoMyYxlsYxjPbOcfnzXRvJpwuBAI YHcthgAnBzjnJ5PX
gZNDtZLcGH7DuPmLHkRAgkjP6DrRzhaJz8pzHFHHyqjcT6scZ/oPw96UPsi2 RISXHzF8H8h269ev
0zXSvBarNHGLWFi+SfkHAHfp6kD8aVILKRnVYYCyn5l2DI+oo5wsi1RRRWYB RRRQA1/umo/8/wCf
8/8A15H+6aj/AM/5/wA//XAGv90/5/z/AJ/GqbdSSd7DJz2/wq0/3T/n/P8A n8apuFBI2McHHb/G
guPN0I7lQqxqOgBH8qKLlgyxsOhBP8qKRL3HMrBhMil2TICj13Eg02OJ5Lo3 Dq6Drhxzk/0qxH90
/wC8f506lYvndrFyiiiqMwoopjyxxsqswDOcKvc/QUAVztimaSOVcFgJFckn qeh7Ac8dOD05NREE
XhuC0XEm0puONuMbun3+CM9MAjPGatMypNDGqAkg9ONqjr+u0Y9/agS24xiS IYbyxgjg/wB36+1B
XulMofPJYxIqy5JWViOufuEYzwcnscnqKSZH2GNTAVjn80M7HOd+7HTjuM89 D74uGe2SVYjLCsg+
UJuAIz2x+VNkuYIXVBtZwVTahGUBIAyM9OR+lAe6IXUXhkPk7Amwtj5856Z/ u8H8QfSqwhVJm3bX
QTbyTcOMZbd9zGOOfyPTmr4MQkEYKBwuQoxkL9PSmGe2SVYjLCsg+UJuAIz2 x+VAe6QySP8AbVkH
k+XGChJcg8kEnGO209/Xpg1CIVSZt210E28k3DjGW3fcxjjn8j05q6JbcTCE SRCUDAQEbgOvSkae
2iYq0sKNGvILAFRx+Q6fpQHumc9sSj7hbqx84E7icF+h+72wQfYH0IqUQqkz btroJt5JuHGMtu+5
jHHP5HpzV0S24xiSIYbyxgjg/wB36+1AltxMIRJEJQMBARuA69KA90pSo+64 YCDc06NkuQcLjg/L
/sn2GT6VOHMVxKVeLY8gZmYnK8AEAY5+6ec8c+lTLLb71RJItwyiqCM8dQP0 4o823WTyxJEHQAbc
jKg4xx+X6UB7o4zxDOXHBwf8/gfyPpVCVH3XDAQbmnRslyDhccH5f9k+wyfS roltxMIRJEJQMBAR
uA69KWN4WYrGV3R/KVxgr+HYcfjQHumfNC29irx/LMHyZWAPzZxtHA6HnnoS ec4Y9sSj7hbqx84E
7icF+h+72wQfYH0IrWCqMYUDAwMDoKAqjGFAwMDA6CgPdM4QqkzbtroJt5Ju HGMtu+5jHHP5HpzV
kpbiQuZZMhskec+M/TOMcH24PpVgKoxhQMDAwOgoCqMYUDAwMDoKA90jL24Y sdmQ2Scd8Yz+QIz7
H0qjkPdXIwiIZkYyNkMduOAMcjKt345P10gqjGFAwMDA6CgKoxhQMDAwOgoD 3TMmhbexV4/lmD5M
rAH5s42jgdDzz0JPOcPKHzyWMSKsuSVlYjrn7hGM8HJ7HJ6itAKoxhQMDAwO goCqMYUDAwMDoKA9
0zyh88ljEirLklZWI65+4RjPByexyeopZYs3Lv56iMyKzDJ6jb27/wCr6+7e nN8KoxhQMDAwOgoC
qMYUDAwMDoKA90okEAwlovKE3mF9x3ff34249iM57E9sU6FjFd3DsIQsknLB zuAC4HG3noe/HPoa
uBVGMKBgYGB0FAVRjCgYGBgdBQHumdMj7DGpgKxz+aGdjnO/djpx3Geeh98X S9uGLHZkNknHfGM/
kCM+x9KkCqMYUDAwMDoKAqjGFAwMDA6CgPdGmeIZy44OD/n8D+R9KqwsYru4 dhCFkk5YOdwAXA42
89D3459DVwKoxhQMDAwOgoCqMYUDAwMDoKA90zhCqTNu2ugm3km4cYy277mM cc/kenNSiSRLySUi
HYdqH94cgAtzjb7n8jzVwKoxhQMDAwOgoCqMYUDAwMDoKA90rlLcSFzLJkNk jznxn6Zxjg+3B9Kk
L24YsdmQ2Scd8Yz+QIz7H0qQKoxhQMDAwOgoCqMYUDAwMDoKA90zch7q5GER DMjGRshjtxwBjkZV
u/HJ+qTQtvYq8fyzB8mVgD82cbRwOh556EnnONMKoxhQMDAwOgoCqMYUDAwM DoKA90zyh88ljEir
LklZWI65+4RjPByexyeooKHzyWMSKsuSVlYjrn7hGM8HJ7HJ6itAKoxhQMDA wOgoCqMYUDAwMDoK
A90oSxZuXfz1EZkVmGT1G3t3/wBX1929OVIIBhLReUJvML7ju+/vxtx7EZz2 J7Yq8FUYwoGBgYHQ
UBVGMKBgYGB0FAe6U4WMV3cOwhCyScsHO4ALgcbeeh78c+hqKZH2GNTAVjn8 0M7HOd+7HTjuM89D
740QqjGFAwMDA6CgKoxhQMDAwOgoD3TPMX+kTzM6AiUMq+YxVsDGGGMfw5zz gj/ZpBCqTNu2ugm3
km4cYy277mMcc/kenNaIVRjCgYGBgdBQFUYwoGBgYHQUB7pTEkiXkkpEOw7U P7w5ABbnG33P5Hmr
Be3DFjsyGyTjvjGfyBGfY+lSBVGMKBgYGB0FAVRjCgYGBgdBQHuleJ0WSaWV gGLbcZ6KM4/9mPtk
jtSHa83mTSqBG2FVCQRz3PccdOnBznGRZCqMYUDAwMDoKAqjGFAwMDA6CgPd HUUUUEhRRRQA1/um
o/8AP+f8/wD15H+6aj/z/n/P/wBcAa/3T/n/AD/n8a5gjJJweefvGrD/AHT/ AJ/z/n8Y6Q02titd
AKIwOgBA/Sii76p+P9KKAJ4/un/eP86dTY/un/eP86dQBcooopiCoPJaOYyR MCHPzq+SevY9up46
fTk1I8scbKrMAznCr3P0FI8u2aOMDJfJPPQDv+ZA/GgBsKN5kssgwznaB6KM 4/qfxx2qH7PN9s+0
Yj+/jZuONuMbun3+30496sefD/z1j+/s+8Pven19qRrmBZfKaeMSZA2FxnJ6 cUAVvsszT5KRqvmb
srKxGM5+4RjJ9fXnrSS2s5Ty0WFlWbzlZick792OnHUjPP054sS3cUThNwZ9 yqVVhlckAEjPTkfn
UvmJ5nl71343bc849cUAR+W/2zzNkWzy9u7Hz5z0z6f1qv8AZZmnyUjVfM3Z WViMZz9wjGT6+vPW
rRnhEhjMse8Yyu4ZGcY4/EfnR58PneT5sfm/3Nw3evSgCotk6zcoHTzTJkzu OrbvuYxx+uKZcxSx
RqpjV41uBIGVWZuX3HgDjAJ5z296vLPC67kljYcchgepwP14oE8LOEEsZYkr tDDOR1H4UAVp7act
J5XllXlSX5iQcrt+Xp/s9fwx3pq2TrNygdPNMmTO46tu+5jHH64q2ZQLhYSr ZZC4bjHBAI/UUefD
53k+bH5v9zcN3r0oAqPbTlp2WOHdJMjglyCVXHB+X/Z/U/jIsEisIzHC8YlM gdiSQSxPC4684zn3
9qn8+H/nrH9/Z94fe9Pr7VA98Ucp9kuGIDEYC/MFOCQM57j60ARrZOs3KB08 0yZM7jq277mMcfri
rHktJMJJWACH5FTIPXue/QcdPrwaVru2XduuIhtO1suOD6H8j+VOE8LOEEsZ YkrtDDOR1H4UASUV
H58PneT5sfm/3Nw3evSlSWORmVWBZDhl7j6igB9FFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUANf 7pqP/P8An/P/ANeR
/umo/wDP+f8AP/1wBr/dP+f8/wCfxjqR/un/AD/n/P4x0hla76p+P9KKLvqn 4/0ooETx/dP+8f50
6mx/dP8AvH+dOoGXKKKY8scbKrMAznCr3P0FMRH5LRzGSJgQ5+dXyT17Ht1P HT6cmlhRvMllkGGc
7QPRRnH9T+OO1OeXbNHGBkvknnoB3/MgfjR58P8Az1j+/s+8Pven19qAK/2e b7Z9oxH9/GzccbcY
3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561Za5gWXymnjEmQNhcZyen FNlu4onCbgz7lUqr
DK5IAJGenI/OgCvLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/bPM2RbPL27 sfPnPTPp/WpPMTzP
L3rvxu255x64pvnw+d5Pmx+b/c3Dd69KAIFgkVhGY4XjEpkDsSSCWJ4XHXnG c+/tSfZ5seTiPyvN
8zfuO77+/G3H4dff2qwZQLhYSrZZC4bjHBAI/UUefD53k+bH5v8Ac3Dd69KA M9tPmdGzHAGYTDIY
nBfoen4fT8qekbzXdyBEFQzIxkYEEhQvA45GVPfv+d1Z4XXcksbDjkMD1OB+ vFHnw+d5Pmx+b/c3
Dd69KAInSc3qSKkZjVSuS5BwSpJxj29ahWydZuUDp5pkyZ3HVt33MY4/XFWx PCzhBLGWJK7Qwzkd
R+FNS7t3maFZozIp2lN3OfpQBD9nm+2faMR/fxs3HG3GN3T7/b6ce9SvHIb2 KQBPLVGUksc5JB6Y
/wBn171IkscjMqsCyHDL3H1FPoApNHvvzGA/lkiWTKHBZcY59/lPH9z3NRpG 813cgRBUMyMZGBBI
ULwOORlT37/no0UAUFsnWblA6eaZMmdx1bd9zGOP1xVjyWkmEkrABD8ipkHr 3PfoOOn14NT0UAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUANf7pqP/P8An/P/ANeR/umo/wDP+f8AP/1wBr/dP+f8 /wCfxjqR/un/AD/n
/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/dP8AvH+dOoGXKg8lo5jJ EwIc/Or5J69j26nj
p9OTU9MeWONlVmAZzhV7n6CmIZCjeZLLIMM52geijOP6n8cdqh+zzfbPtGI/ v42bjjbjG7p9/t9O
PerHnw/89Y/v7PvD73p9faka5gWXymnjEmQNhcZyenFAFb7LM0+Skar5m7Ky sRjOfuEYyfX1560k
trOU8tFhZVm85WYnJO/djpx1Izz9OeLEt3FE4TcGfcqlVYZXJABIz05H51L5 ieZ5e9d+N23POPXF
AEflv9s8zZFs8vbux8+c9M+n9arLZOs3KB080yZM7jq277mMcfrirfnw+d5P mx+b/c3Dd69KDKBc
LCVbLIXDcY4IBH6igCJ0nN6kipGY1UrkuQcEqScY9vWoVsnWblA6eaZMmdx1 bd9zGOP1xVvz4fO8
nzY/N/ubhu9elCzwuu5JY2HHIYHqcD9eKAM9tPmdGzHAGYTDIYnBfoen4fT8 qlWydZuUDp5pkyZ3
HVt33MY4/XFW/Ph87yfNj83+5uG716UCeFnCCWMsSV2hhnI6j8KAKj205adl jh3STI4JcglVxwfl
/wBn9T+M6xzR3EhTyykjhyxJyOAMY79Oue/ty5Lu3eZoVmjMinaU3c5+lTUA QeS0kwklYAIfkVMg
9e579Bx0+vBqeoxPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3Dd69KAJKKjWe F13JLGw45DA9Tgfr
xR58PneT5sfm/wBzcN3r0oAkoqH7XbeZ5f2iLfnbt3jOfTFRvfItwYfKlJEi x5C8ZIz+g60AWqKj
E8LOEEsZYkrtDDOR1H4UefD53k+bH5v9zcN3r0oAkoqJrmBZfKaeMSZA2Fxn J6cUNcwLL5TTxiTI
GwuM5PTigCWioWu7Zd264iG07Wy44PofyP5U7z4fO8nzY/N/ubhu9elAElFR faYAwXz49xbYBvGS
3p9eRTZbuKJwm4M+5VKqwyuSACRnpyPzoAnoqsLweayNDIqo4jLnbjJxjvnn I7d6l8+HzvJ82Pzf
7m4bvXpQBJRVV9Qt1uFgV1dycEB1+U5x3P6DJoe+Rbgw+VKSJFjyF4yRn9B1 oAtUUVCl3bvM0KzR
mRTtKbuc/SgCaioWu7Zd264iG07Wy44PofyP5U4Tws4QSxliSu0MM5HUfhQB JRUfnw+d5Pmx+b/c
3Dd69Kb9rtvM8v7RFvzt27xnPpigCaiqr3yLcGHypSRIseQvGSM/oOtTefD/ AM9Y/v7PvD73p9fa
gCSiomuYFl8pp4xJkDYXGcnpxTZbuKJwm4M+5VKqwyuSACRnpyPzoAnopvmJ 5nl71343bc849cUx
rmBZfKaeMSZA2FxnJ6cUAS0VCl3bvM0KzRmRTtKbuc/Sl+0wBgvnx7i2wDeM lvT68igCWioxPGZz
CGUuBkgMMjp1HXvQJ4WcIJYyxJXaGGcjqPwoAkoqJ7mBGZXnjVkGWBcAge/5 j86ie+Rbgw+VKSJF
jyF4yRn9B1oAtUVG8u2aOMDJfJPPQDv+ZA/GlSWORmVWBZDhl7j6igB9FFFA BRRRQA1/umo/8/5/
z/8AXkf7pqP/AD/n/P8A9cAa/wB0/wCf8/5/GOpH+6f8/wCf8/jHSGVrvqn4 /wBKKLvqn4/0ooET
x/dP+8f506mx/dP+8f506gZcqDyWjmMkTAhz86vknr2PbqeOn05NT0x5Y42V WYBnOFXufoKYit9n
m+2faMR/fxs3HG3GN3T7/b6ce9N+yzNPkpGq+ZuysrEYzn7hGMn19eetWvPh /wCesf39n3h970+v
tSNcwLL5TTxiTIGwuM5PTigCrLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/ AGzzNkWzy9u7Hz5z
0z6f1pJbuKJwm4M+5VKqwyuSACRnpyPzqXzE8zy9678btueceuKAKS2TrNyg dPNMmTO46tu+5jHH
64qZ0nN6kipGY1UrkuQcEqScY9vWpfPh87yfNj83+5uG716UGUC4WEq2WQuG 4xwQCP1FAFRbJ1m5
QOnmmTJncdW3fcxjj9cVE2nzOjZjgDMJhkMTgv0PT8Pp+VaHnw+d5Pmx+b/c 3Dd69KFnhddySxsO
OQwPU4H68UAVFsnWblA6eaZMmdx1bd9zGOP1xQ9tOWnZY4d0kyOCXIJVccH5 f9n9T+Nvz4fO8nzY
/N/ubhu9elAnhZwgljLEldoYZyOo/CgCNY5o7iQp5ZSRw5Yk5HAGMd+nXPf2 5sVCl3bvM0KzRmRT
tKbuc/SpqAKD205adljh3STI4JcglVxwfl/2f1P4tlspy5KbOJRICZWAb5s4 2jgfXnOM9TxdE8LO
EEsZYkrtDDOR1H4UefD53k+bH5v9zcN3r0oAz20+Z0bMcAZhMMhicF+h6fh9 PyqVbJ1m5QOnmmTJ
ncdW3fcxjj9cVbWeF13JLGw45DA9TgfrxR58PneT5sfm/wBzcN3r0oAb9mj8 zfulznOPOfH5Zx+F
SeWm7dsXOd2cd8Yz+XFR/a7bzPL+0Rb87du8Zz6YqN75FuDD5UpIkWPIXjJG f0HWgCBI3mu7kCIK
hmRjIwIJCheBxyMqe/f8yWynLkps4lEgJlYBvmzjaOB9ec4z1PF3z4f+esf3 9n3h970+vtSNcwLL
5TTxiTIGwuM5PTigCt9lmafJSNV8zdlZWIxnP3CMZPr689aPsszT5KRqvmbs rKxGM5+4RjJ9fXnr
Vrz4fO8nzY/N/ubhu9elJ9pgDBfPj3FtgG8ZLen15FAFeSzke5LiQCNnVyOe o29v+Af+PH05X7PN
jycR+V5vmb9x3ff3424/Dr7+1WBPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3 Dd69KAIYIpo7udzH
FtlfO4Od2AoAGMe3r3qKW1nKeWiwsqzecrMTknfux046kZ5+nPFtZ4XXcksb DjkMD1OB+vFHnw+d
5Pmx+b/c3Dd69KAKv2SU3E0x25MgdF8xirYAGGGMDpnPODj05RbJ1m5QOnmm TJncdW3fcxjj9cVM
LweayNDIqo4jLnbjJxjvnnI7d6l8+HzvJ82Pzf7m4bvXpQBCqXIvHl8uLYwV P9YcgAnnG336VY8t
N27Yuc7s474xn8uKrvqFutwsCuruTggOvynOO5/QZND3yLcGHypSRIseQvGS M/oOtAFqq6xzR3Eh
TyykjhyxJyOAMY79Oue/tzYqFLu3eZoVmjMinaU3c5+lAEDR778xgP5ZIlky hwWXGOff5Tx/c9zU
aRvNd3IEQVDMjGRgQSFC8DjkZU9+/wCdtru2XduuIhtO1suOD6H8j+VOE8LO EEsZYkrtDDOR1H4U
AVFsnWblA6eaZMmdx1bd9zGOP1xVn7NH5m/dLnOcec+Pyzj8Kd58PneT5sfm /wBzcN3r0pv2u28z
y/tEW/O3bvGc+mKAJPLTdu2LnO7OO+MZ/Liqv2eb7Z9oxH9/GzccbcY3dPv9 vpx70575FuDD5UpI
kWPIXjJGf0HWpvPh/wCesf39n3h970+vtQBV+yzNPkpGq+ZuysrEYzn7hGMn 19eetJLazlPLRYWV
ZvOVmJyTv3Y6cdSM8/Tni01zAsvlNPGJMgbC4zk9OKbLdxROE3Bn3KpVWGVy QASM9OR+dAC+W/2z
zNkWzy9u7Hz5z0z6f1qv9lmafJSNV8zdlZWIxnP3CMZPr689aueYnmeXvXfj dtzzj1xTGuYFl8pp
4xJkDYXGcnpxQAxY5o7iQp5ZSRw5Yk5HAGMd+nXPf25bBFNHdzuY4tsr53Bz uwFAAxj29e9SJd27
zNCs0ZkU7Sm7nP0pftMAYL58e4tsA3jJb0+vIoAjdJzepIqRmNVK5LkHBKkn GPb1qF7actOyxw7p
JkcEuQSq44Py/wCz+p/G2J4zOYQylwMkBhkdOo696BPCzhBLGWJK7QwzkdR+ FAFCVJPMW2EYYLOJ
Q5Ru77jzjAwCecnpjHNaPlpu3bFzndnHfGM/lxTHuYEZleeNWQZYFwCB7/mP zqJ75FuDD5UpIkWP
IXjJGf0HWgCSFG8yWWQYZztA9FGcf1P447UnktJMJJWACH5FTIPXue/QcdPr wae8u2aOMDJfJPPQ
Dv8AmQPxpUljkZlVgWQ4Ze4+ooAfRRRQAUUUUANf7pqP/P8An/P/ANeR/umo /wDP+f8AP/1wBr/d
P+f8/wCfxjqR/un/AD/n/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/ dP8AvH+dOoGXKg8l
o5jJEwIc/Or5J69j26njp9OTUjyxxsqswDOcKvc/QUjy7Zo4wMl8k89AO/5k D8aYiv8AZ5vtn2jE
f38bNxxtxjd0+/2+nHvTfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVrz4f8AnrH9 /Z94fe9Pr7UjXMCy
+U08YkyBsLjOT04oAqy2s5Ty0WFlWbzlZick792OnHUjPP054s+W/wBs8zZF s8vbux8+c9M+n9aS
W7iicJuDPuVSqsMrkgAkZ6cj86l8xPM8veu/G7bnnHrigCktk6zcoHTzTJkz uOrbvuYxx+uKmdJz
epIqRmNVK5LkHBKknGPb1qRrmBZfKaeMSZA2FxnJ6cUpnhEhjMse8Yyu4ZGc Y4/EfnQBUWydZuUD
p5pkyZ3HVt33MY4/XFRNp8zo2Y4AzCYZDE4L9D0/D6flV6O5jeVoydjq5QKx GWwAcjnnginefD53
k+bH5v8Ac3Dd69KAKi2TrNygdPNMmTO46tu+5jHH64oe2nLTsscO6SZHBLkE quOD8v8As/qfxtrP
C67kljYcchgepwP14o8+HzvJ82Pzf7m4bvXpQBGsc0dxIU8spI4csScjgDGO /Trnv7c2KYkscjMq
sCyHDL3H1FPoAoPbTlp2WOHdJMjglyCVXHB+X/Z/U/i2WynLkps4lEgJlYBv mzjaOB9ec4z1PGjR
QBltp8zo2Y4AzCYZDE4L9D0/D6flUq2TrNygdPNMmTO46tu+5jHH64q/RQBD 9mj8zfulznOPOfH5
Zx+FSeWm7dsXOd2cd8Yz+XFOooApT205aTyvLKvKkvzEg5Xb8vT/AGev4Y70 n2WZp8lI1XzN2VlY
jGc/cIxk+vrz1q9RQBQWydZuUDp5pkyZ3HVt33MY4/XFSwRTR3c7mOLbK+dw c7sBQAMY9vXvVqig
Cg9tOWnZY4d0kyOCXIJVccH5f9n9T+LZbKcuSmziUSAmVgG+bONo4H15zjPU 8aNFAGW2nzOjZjgD
MJhkMTgv0PT8Pp+VSrZOs3KB080yZM7jq277mMcfrir9FAFH7JKbiaY7cmQO i+YxVsADDDGB0znn
Bx6cotk6zcoHTzTJkzuOrbvuYxx+uKv0UAVVS5F48vlxbGCp/rDkAE842+/S rHlpu3bFzndnHfGM
/lxTqKACq6xzR3EhTyykjhyxJyOAMY79Oue/tzYooApNHvvzGA/lkiWTKHBZ cY59/lPH9z3NRpG8
13cgRBUMyMZGBBIULwOORlT37/no0UAUFsnWblA6eaZMmdx1bd9zGOP1xVn7 NH5m/dLnOcec+Pyz
j8KmooAb5abt2xc53Zx3xjP5cVV+zzfbPtGI/v42bjjbjG7p9/t9OPerlFAF H7LM0+Skar5m7Kys
RjOfuEYyfX1560ktrOU8tFhZVm85WYnJO/djpx1Izz9OeL9FAEPlv9s8zZFs 8vbux8+c9M+n9ar/
AGWZp8lI1XzN2VlYjGc/cIxk+vrz1q9RQBXWOaO4kKeWUkcOWJORwBjHfp1z 39uWwRTR3c7mOLbK
+dwc7sBQAMY9vXvVqigCs6Tm9SRUjMaqVyXIOCVJOMe3rUL205adljh3STI4 JcglVxwfl/2f1P43
6KAMyVJPMW2EYYLOJQ5Ru77jzjAwCecnpjHNaPlpu3bFzndnHfGM/lxTqKAI YUbzJZZBhnO0D0UZ
x/U/jjtSeS0kwklYAIfkVMg9e579Bx0+vBqeigAooooAKKKKAGv901H/AJ/z /n/68j/dNR/5/wA/
5/8ArgDX+6f8/wCf8/jHUj/dP+f8/wCfxjpDK131T8f6UUXfVPx/pRQInj+6 f94/zp1Nj+6f94/z
p1AyXyWjmMkTAhz86vknr2PbqeOn05NLCjeZLLIMM52geijOP6n8cdqmopiK f2eb7Z9oxH9/Gzcc
bcY3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561eooAoS2s5Ty0WFlWb zlZick792OnHUjPP
054s+W/2zzNkWzy9u7Hz5z0z6f1qaigCj9lmafJSNV8zdlZWIxnP3CMZPr68 9aesEisIzHC8YlMg
diSQSxPC4684zn39qt0UAUHtpy07LHDukmRwS5BKrjg/L/s/qfxFsnWblA6e aZMmdx1bd9zGOP1x
V+igDLbT5nRsxwBmEwyGJwX6Hp+H0/Kny2U5clNnEokBMrAN82cbRwPrznGe p40aKAIPJaSYSSsA
EPyKmQevc9+g46fXg1PRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUA
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA1 /umo/wDP+f8AP/15
H+6aj/z/AJ/z/wDXAGv90/5/z/n8Y6kf7p/z/n/P4x0hla76p+P9KKLvqn4/ 0ooETx/dP+8f506m
x/dP+8f506gZcooopiCiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAoooo
AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigA
ooooAKKKKAGv93HqRVUzIDhioPu3/wBerUhAXJOACMk/WqDGBnVmKHb70AE0 hM8ABwrE5wevBqWq
8zh7qAhgxy2cH2NWKQytd9U/H+lFF31T8f6UUCJ4/un/AHj/ADp1Nj+6f94/ zp1Ax7y7BkngAEkk
1BdzuLN3QlSVyCCcjNLMYnyrOvQd+nFQ3bp9jdVdSQgHX0oEaGT6n/P+f89z J9T/AJ/z/nun+f8A
P+f/AK5/n/P+f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuA Lk+p/wA/5/z3Mn1P
+f8AP+e6f5/z/n/65/n/AD/n/wCuALk+p/z/AJ/z3Mn1P+f8/wCe6f5/z/n/ AOuf5/z/AJ/+uALk
+p/z/n/PcyfU/wCf8/57p/n/AD/n/wCuf5/z/n/64AuT6n/P+f8APcyfU/5/ z/nun+f8/wCf/rn+
f8/5/wDrgC5Pqf8AP+f89zJ9T/n/AD/nun+f8/5/+uf5/wA/5/8ArgC5Pqf8 /wCf89zJ9T/n/P8A
nun+f8/5/wDrn+f8/wCf/rgC5Pqf8/5/z3Mn1P8An/P+e6f5/wA/5/8Arn+f 8/5/+uALk+p/z/n/
AD3Mn1P+f8/57p/n/P8An/65/n/P+f8A64AuT6n/AD/n/PcyfU/5/wA/57p/ n/P+f/rn+f8AP+f/
AK4AuT6n/P8An/PcyfU/5/z/AJ7p/n/P+f8A65/n/P8An/64AuT6n/P+f89z J9T/AJ/z/nun+f8A
P+f/AK5/n/P+f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuA Lk+p/wA/5/z3Mn1P
+f8AP+e6f5/z/n/65/n/AD/n/wCuALk+p/z/AJ/z3Mn1P+f8/wCe6f5/z/n/ AOuf5/z/AJ/+uALk
+p/z/n/PcyfU/wCf8/57p/n/AD/n/wCuf5/z/n/64AuT6n/P+f8APcyfU/5/ z/nun+f8/wCf/rn+
f8/5/wDrgC5Pqf8AP+f89zJ9T/n/AD/nun+f8/5/+uf5/wA/5/8ArgC5Pqf8 /wCf89zJ9T/n/P8A
nun+f8/5/wDrn+f8/wCf/rgC5Pqf8/5/z3Mn1P8An/P+e6f5/wA/5/8Arn+f 8/5/+uALk+p/z/n/
AD3Mn1P+f8/57p/n/P8An/65/n/P+f8A64AuT6n/AD/n/PcyfU/5/wA/57p/ n/P+f/rn+f8AP+f/
AK4AuT6n/P8An/PcyfU/5/z/AJ7p/n/P+f8A65/n/P8An/64AuT6n/P+f89z J9T/AJ/z/nun+f8A
P+f/AK5/n/P+f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuA GTxyeo7/AOf8/rE0
+1lU8FunJ/xqQkDknABySf8AP+f51SYXdWdlIXoM8E0AFy5eWGNuUYncp5B4 pfs8H/PGP/vkVHK6
tdW+1geW6fQ1YoGMWGJGDLEikdwoFPoooArXfVPx/pRRd9U/H+lFAidFXYCQ ckn+Ijufel2r/dP/
AH03+NRThTaEO4RcnLN0+8eD7dqqxyKgCLJHBDlv3sQCq5+XGM5Hc/8AfNAy 39ktv+fdP1/xo+yW
3/Pun6/41VW7cIBKwSZnjwh4ODtzgH3LUJNJ5Fu01x5YkTcZMKMHAwOeO5P4 fhQIv4Hof++2/wAa
aVzJjLAbQcbz6n3qpDNM14VZ0xuYGPPIAzg4xkduScc+4q1MAQ4Zyg8vlgcY 5bnNAC7f9p/++zRt
/wBp/wDvs1neZ5SEW5twpYbpowEUcHgnkZ4H/fVPE055M3QIPlAIO5yuckc8 YPp+FAy9t/2n/wC+
zRt/2n/77NZ893IkWRIFaPf99gokwxAHTk8c4x1/JZ2ma3k+dn81pYwmBxgN jGBnPyigC/t/2n/7
7NG3/af/AL7NUjNiX5bgGMqu6b5eB8/fGOoA/wDr1IkxN2qed5ikDAQqeMZy wxkfUcdPxALO3/af
/vs0bf8Aaf8A77NNkIKyKzbF2csDgjrzmqkTrErvF5BRCGd4UADDnI78jr+l AF3b/tP/AN9mjb/t
P/32apPJcKJXaQq0cQk2ALjJLHB47YA4oEhihlAlIcytwSoEeWJBJwcAj1z1 FAF3b/tP/wB9mjb/
ALT/APfZqlHcu8SMZRzkOyjIUBiN2ffH074wDV+gBu3/AGn/AO+zRt/2n/77 NOooAbt/2n/77NG3
/af/AL7NOooAbt/2n/77NG3/AGn/AO+zTqKAG7f9p/8Avs0bf9p/++zTqKAG 7f8Aaf8A77NG3/af
/vs06igBu3/af/vs0bf9p/8Avs06igBu3/af/vs0bf8Aaf8A77NOooAbt/2n /wC+zRt/2n/77NOo
oAbt/wBp/wDvs0bf9p/++zTqKAG7f9p/++zRt/2n/wC+zTqKAG7f9p/++zRt /wBp/wDvs06igBu3
/af/AL7NG3/af/vs06igBu3/AGn/AO+zRt/2n/77NOooAbt/2n/77NG3/af/ AL7NOooAbt/2n/77
NG3/AGn/AO+zTqKAG7f9p/8Avs0bf9p/++zTqKAG7f8Aaf8A77NG3/af/vs0 6igBu3/af/vs0bf9
p/8Avs06igBu3/af/vs0bf8Aaf8A77NOooAY8SupV9zA9QWJqP7Hb/8APJan ooAhW1gRgyxhSO44
qTyx6t/30adRQA3yx6t/30aPLHq3/fRp1FAFW6UKUxnv1JNFLd9U/H+lFAiX zVQbWV8gnoAR1J9a
PtEf92T/AL5H+NV7i+S2cLIWywJG1M8ZI9R6VF/a0PrJ/wB+x/8AFVXK2F0X ftEf92T/AL5H+NH2
iP8Auyf98j/Gqf8Aa0PrJ/37H/xVH9qw+sn/AH7H/wAVRyvsF0XPtEf92T/v kf400zrvJ2PjAA4+
v+NVf7Vh9ZP+/Y/+Ko/tSH1k/wC/Y/8AiqOV9gui19oX+4/5UfaF/uP+VVv7 Uh9X/wC/Y/8AiqP7
Uh9X/wC/Y/8AiqOVhdFn7Qv9x/yo+0L/AHH/ACqt/acXq/8A37H/AMVS/wBp xer/APfsf/FUcrC6
LH2hf7j/AJUfaF/uP+VV/wC0ovV/+/Y/+Ko/tKL1f/v2P/iqOVhdE4nG8tsf BAHT60PKjjDRuRkH
p3ByKg/tGL1f/v2P/iqX+0YvV/8Av2P/AIqjlYXRP9oX+4/5UfaF/uP+VQf2 jF6v/wB+x/8AFUf2
hH6v/wB+x/8AFUcrC6J/tC/3H/Kj7Qv9x/yqH+0I/V/+/Y/+Ko+3x+rf9+// ALKjlYXRN9oX+4/5
UfaF/uP+VQ/b4/Vv+/f/ANlR9uj/ALzf9+//ALKjlYXRN9oX+4/5UfaF/uP+ VRfbo/7zf9+//sqP
tsf95v8Av3/9lRysLol+0L/cf8qPtC/3H/Kovtqf3m/79/8A2VL9tT+83/fv /wCyo5WF0SfaF/uP
+VH2hf7j/lUf2xP7zf8Afv8A+yo+2J/eb/v3/wDZUcrC6JPtC/3H/Kj7Qv8A cf8AKo/taf3m/wC/
f/2VL9rT+83/AH7/APsqOVhdD/tC/wBx/wAqPtC/3H/Kmfa0/vN/37/+yo+1 L/eP/fv/AOyo5WF0
P+0L/cf8qPtC/wBx/wAqb9qX+8f+/f8A9lR9pX+8f+/f/wBlRysLod9oX+4/ 5UfaF/uP+VN+0r/e
P/fv/wCyo+0L/eP/AH7/APsqOVhdDvtC/wBx/wAqPtC/3H/Kk+0L/eP/AHx/ 9lR56/3j/wB8f/Xo
5WF0L9oX+4/5UfaF/uP+VJ54/vH/AL4/+vS+eP7x/wC+P/r0crC6D7Qv9x/y o+0L/cf8qPOH98/9
8f8A16POH98/98f/AF6OVhdB9oX+4/5UfaF/uP8AlS+aP75/74/+vR5o/v8A /jn/ANejlYXQn2hf
7j/lR9oX+4/5UvmD+/8A+Of/AF6PM/2//HP/AK9HKxXQn2hf7j/lR9oX+4/5 U7zP9v8A8c/+vRv/
ANv/AMc/+vRysd0N+0L/AHH/ACo+0L/cf8qdv/2//HP/AK9Lu/2//HP/AK9H KxXQz7Qv9x/yo+0L
/cf8qfu/2/8Axz/69Gf9v/xz/wCvRysLoZ9oX+4/5UfaF/uP+VPyf7//AI5/ 9elyf7//AI5/9ejl
YXRH9oX+4/5UfaF/uP8AlUnP9/8A8c/+vRz/AHx/3x/9elysd0R/aF/uP+VH 2hf7j/lUnP8AfH/f
H/16Of74/wC+P/r0crC6I/tC/wBx/wAqPtC/3H/KpOf74/74/wDr0c/3x/3x /wDXo5WF0R/aF/uP
+VH2hf7j/lUnP98f98f/AF6Of74/74/+vRysLoj+0L/cf8qPtC/3H/KpOf74 /wC+P/r0c/3x/wB8
f/XoswuitO/mbcKwxnqKKs8/3x/3x/8AXooswujKvv8AkJWv4f8AobVr/P52 1U7t95Pl745x9Kx7
8hdRtiSABySf99qtXN2EmVoJbdgzEZ3cqTnk+2DVuLlZIV7DtSZjYzq6xBkZ R+7z69+KyYIopI5G
eR1KDcQqA8ZA9R61qX8tqNLMMEyOwIJ55Y55J96yI5NiSrjO9dv05B/pVx20 JYqwSMgZQGBOMKQT
1x061KLVvLboXDKBtcEYIbOSPpTkvdsPl4kHCjCyYUYIOQMcHjr6k0Ne5VlW MYYrncc7gM/ewBk8
9fYd+arUWhC0TogdsAHoNwz+XWp4rQP8uX3iPzGCLuPJGAB9Dn8famTTrJEs aq2AersGIHoDgYHt
StMpjJHLPGI2HpgjB/ID8c0agSx2QdypMi8gDemDnKjkZ/2v5VCLaUkgBTg4 4ccn0HPJ+lOguzBG
FVASDuBJ91P/ALL+tPju/KQpGJVUHcoEmOcDrgcjj2pahoQvE8YUuuNwyOeo 9ae9rKm7co+Xrhge
nX8u/pTJZPMcNjGFVfyAH9Kma63OzbOrSN1/vDH6U9QEitncjlQCCchgccE4 PPHTvSw2zPKgfAVn
CnDDJ5xx6/WpDe5TbtfBPIL8AYIIUY46+/QUxLhFaNvLYmI/L83bdnB49zS1 DQb9nkyBhT/tBhj8
849PzFPhtXeZUcBVLAE7gM/T1/D2pILkxIEAYdclWwecdD/wGnrdDzFd0Ztj 71+fnt1JBz0HpRqG
hFEiucMzDsAq7iTQImMjIpVtvVs8fXNLDIiBgyMS3GVbBA79jRHIqM42ko4w RnnGc9ce3pQA8wbI
C7fe3YHzAY6c+/XtSJGrITvO4AnGOAPc/wCeoolm81VXbgKeOe2AB/KlEkfk hCjZ65DYBPYkYo1A
WKAyRlgQMZ6kAHBHfPvSLBIwXCg7sYGRnnpx2pY5gsXlspKnOcHB5x/8TUi3 ZATIc7dvG/5cDHb8
KNQ0IzBIB90H/dIOfypRF95SRvC7htYEHHXp7c/hSpPtUDB4XbkHB+9uzTjM pZnxg7doHUnPUk9+
Cf0o1AgpaSlpiFpaSloAWiiikAtLSUtAC0UUUALS0lLQAtLSUtABS0lLQAtL SUtABS0lLQAtLSUt
IApaSloAWlpKWgBaKKKAFooooAKKKKACiiikAUUUUDFooooAKKKKAKs+npdM skkjKRkAKvbcai/s
aH/ntJ/3yK0F+4Pqf/QjS1nzNGlkZn9lQ+f5Ylk+4WJwPUD+tP8A7Hh/57Sf 98irQ/4/f+2J/wDQ
hTLuaSPCIhJkGFbPQ0czCyKs2mQwwvJ5sh2jONo5qQ6PCCR5z8f7IqW4jEWn sg6KuKtv99vrRzML
Iz/7Ih/57P8A98imR6ZC+/8AeuArlfujngf41asAFs4wGDDnkfU0626Tf9dm /kKOZhZFb+yYv+ez
/wDfI/xpf7Ji/wCez/8AfI/xpUyq+aHcu05TBYkEbyOnsOePT60kV1cyJuEI +dN6DIHcf7XPB9un
vRzMLIP7Ki/57P8A98j/ABo/sqL/AJ7P/wB8j/GpIZpJnCq6YUAsTGRnkjAB PGNvvUX2mcxwOfLD
yoCOpAyyDpnnqf8APU5mFkL/AGXF/wA9n/75H+NL/ZcX/PZ/++R/jSrJM14s e9QUDBsKcN9w9M8H
5vemwXMjQo/y7AY0K8kksF5zn/a9+lHMwshf7Mi/57P/AN8j/Gj+zI/+ez/9 8j/Gn2s8r+V5pQ+b
H5g2qRt6cdTnr+lWqOZhZFP+zI/+ez/98j/Gj+zY/wDns3/fP/16uUUczCyK f9mx/wDPZv8Avn/6
9H9nR/8APVv++f8A69XKKOZhZFT+zo/+erf98/8A16P7Pj/56t/3z/8AXq3R RzMLIqf2en/PVv8A
vn/69L/Z6f8APVv++f8A69WqKOZhZFX7An/PVv8Avn/69H2BP+erf98//Xq1 RRzMLIq/YU/56t/3
z/8AXpfsKf8APVv++f8A69WaKOZhZFb7En/PVv8Avn/69H2Jf+ep/wC+f/r1 Zoo5mFkV/sS/89T/
AN8//Xo+xr/z1P8A3x/9erFFHMwsiv8AY1/56n/vj/69H2Rf+ep/74/+vVii jmYWRB9kX/nqf++P
/r0fZV/56n/vj/69T0UczCyIPso/56n/AL4/+vS/ZR/z0P8A3x/9epqKOZhZ FbyR5/l7z9wsTt9w
PX3p/wBmH/PQ/wDfH/16B/x+/wDbE/8AoQqtdswuJNvmfLGpVlfCoSW5YZ5H TseBRzMVkWvs4/56
H/vj/wCvR9nH/PT/AMc/+vULXE32llWMeWrqhJx3x3z79MH9eEW4mLCNtqSs wG0ofk4J65w33e2P
6UczCyJ/IH/PT/xz/wCvR5H/AE0/8c/+vUAu5PKuDhcxRkjjqQWH5fLSieZg P9WpeVo1OCcY3cn8
sfr7UczCyJ/I/wCmn/jn/wBejyf+mn/jn/16gNxOJyuwFEZUZuACSBzy3HXp g/WrdLmY7IiaPapY
ycAZ+5/9eiNC8SOXxuUNjb0yM+tPl/1T/wC6abEA1rEDnBiUcHH8Ip8zFZC+ V/00/wDHP/r0eX/0
0/8AHP8A69Uop5ktgwYFY7dZW35ZmJyTznjp71LdB3uIkTJGxiR5rJ3XuPrR zMLIseWf+en/AI5/
9el2H/np/wCOf/XqsJpEJ4UJG6RleWJJ287v+Benb3qvE8j2cIBUJG0KkYyT 9w5znjr6dqOZhZGj
sP8Az0/8c/8Ar0bD/wA9B/3x/wDXqkt5cGNXMSgSBSgYgdWAxwST97rgfTmr y52jcQTjkgYpczHZ
EcWZYg+8AEnA2ehI9fan7D/z0H/fH/16jtP+PWP/AIF/6Eaiilk+yWoUjfKq jc3P8Oc+/SjmYrIs
7
Re: A Diagnostic Message for the Valid Schema [message #569285 is a reply to message #19785] Sat, 03 May 2003 10:56 Go to previous message
Ed Merks is currently offline Ed MerksFriend
Messages: 33142
Registered: July 2009
Senior Member
--------------1404F894BB152E1D2F109304
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Pae,

The editor treats the schema as invalid because it contains this:

<xsd:element name="username" ref="usernameRef"/>

So it produces this message from plugin.properties:

src-element.2.1 = An element reference may not have a name

Which is there because of this constraint in the spec:

http://www.w3.org/TR/xmlschema-1/#src-element

Which states the following:

2.1 One of ref or name must be present, but not both.

And since ref and name are indeed both present, it's an invalid schema.

The schema below is valid and the editor reports no errors.


Pae Choi wrote:

> Ed, I don't see why Eclipse/Editor treats the sampel schema as an
> invalid schema. I alsotried other schema, e.g., WSDL.XSD, but throws
> the same message. The following isthe copy of WSDL schema that I
> enclosed for the convenience purpose. Try to seewhat you
> get. Regards, Pae // ###################### WSDL Schema
> ######################<?xml version="1.0" encoding="UTF-8"?>
>
> <!--
>
> Copyright 2001-2002 International Business Machines Corporation,
> Microsoft Corporation. All rights reserved.
>
> -->
>
> <schema targetNamespace="http://schemas.xmlsoap.org/wsdl/"
> xmlns="http://www.w3.org/2001/XMLSchema"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> elementFormDefault="qualified">
>
> <complexType name="tDocumentation" mixed="true">
>
> <sequence>
>
> <any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
>
> </sequence>
>
> </complexType>
>
> <complexType name="tDocumented">
>
> <annotation>
>
> <documentation>
>
> This type is extended by component types
>
> to allow them to be documented
>
> </documentation>
>
> </annotation>
>
> <sequence>
>
> <element name="documentation" type="wsdl:tDocumentation"
> minOccurs="0"/>
>
> </sequence>
>
> </complexType>
>
> <complexType name="tExtensibleAttributesDocumented" abstract="true">
>
> <annotation>
>
> <documentation>
>
> This type is extended by component types
>
> to allow attributes from other namespaces to be added.
>
> </documentation>
>
> </annotation>
>
> <complexContent>
>
> <extension base="wsdl:tDocumented">
>
> <anyAttribute namespace="##other"/>
>
> </extension>
>
> </complexContent>
>
> </complexType>
>
> <complexType name="tExtensibleDocumented" abstract="true">
>
> <annotation>
>
> <documentation>
>
> This type is extended by component types
>
> to allow attributes from other namespaces to be added.
>
> </documentation>
>
> </annotation>
>
> <complexContent>
>
> <extension base="wsdl:tDocumented">
>
> <sequence>
>
> <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
>
> </sequence>
>
> </extension>
>
> </complexContent>
>
> </complexType>
>
> <element name="definitions" type="wsdl:tDefinitions">
>
> <key name="message">
>
> <selector xpath="wsdl:message"/>
>
> <field xpath="@name"/>
>
> </key>
>
> <key name="portType">
>
> <selector xpath="wsdl:portType"/>
>
> <field xpath="@name"/>
>
> </key>
>
> <key name="binding">
>
> <selector xpath="wsdl:binding"/>
>
> <field xpath="@name"/>
>
> </key>
>
> <key name="service">
>
> <selector xpath="wsdl:service"/>
>
> <field xpath="@name"/>
>
> </key>
>
> <key name="import">
>
> <selector xpath="wsdl:import"/>
>
> <field xpath="@namespace"/>
>
> </key>
>
> <key name="port">
>
> <selector xpath="wsdl:service/wsdl:port"/>
>
> <field xpath="@name"/>
>
> </key>
>
> </element>
>
> <group name="anyTopLevelOptionalElement">
>
> <annotation>
>
> <documentation>
>
> Any top level optional element allowed to appear more then once-
>
> any child of definitions element except wsdl:types.
>
> Any extensibility element is allowed in any place
>
> </documentation>
>
> </annotation>
>
> <choice>
>
> <element name="import" type="wsdl:tImport"/>
>
> <element name="types" type="wsdl:tTypes"/>
>
> <element name="message" type="wsdl:tMessage">
>
> <unique name="part">
>
> <selector xpath="wsdl:part"/>
>
> <field xpath="@name"/>
>
> </unique>
>
> </element>
>
> <element name="portType" type="wsdl:tPortType"/>
>
> <element name="binding" type="wsdl:tBinding"/>
>
> <element name="service" type="wsdl:tService"/>
>
> </choice>
>
> </group>
>
> <complexType name="tDefinitions">
>
> <complexContent>
>
> <extension base="wsdl:tExtensibleDocumented">
>
> <sequence>
>
> <group ref="wsdl:anyTopLevelOptionalElement" minOccurs="0"
> maxOccurs="unbounded"/>
>
> </sequence>
>
> <attribute name="targetNamespace" type="anyURI" use="optional"/>
>
> <attribute name="name" type="NCName" use="optional"/>
>
> </extension>
>
> </complexContent>
>
> </complexType>
>
> <complexType name="tImport">
>
> <complexContent>
>
> <extension base="wsdl:tExtensibleAttributesDocumented">
>
> <attribute name="namespace" type="anyURI" use="required"/>
>
> <attribute name="location" type="anyURI" use="required"/>
>
> </extension>
>
> </complexContent>
>
> </complexType>
>
> <complexType name="tTypes">
>
> <complexContent>
>
> <extension base="wsdl:tExtensibleDocumented"/>
>
> </complexContent>
>
> </complexType>
>
> <complexType name="tMessage">
>
> <complexContent>
>
> <extension base="wsdl:tExtensibleDocumented">
>
> <sequence>
>
> <element name="part" type="wsdl:tPart" minOccurs="0"
> maxOccurs="unbounded"/>
>
> </sequence>
>
> <attribute name="name" type="NCName" use="required"/>
>
> </extension>
>
> </complexContent>
>
> </complexType>
>
> <complexType name="tPart">
>
> <complexContent>
>
> <extension base="wsdl:tExtensibleAttributesDocumented">
>
> <attribute name="name" type="NCName" use="required"/>
>
> <attribute name="element" type="QName" use="optional"/>
>
> <attribute name="type" type="QName" use="optional"/>
>
> </extension>
>
> </complexContent>
>
> </complexType>
>
> <complexType name="tPortType">
>
> <complexContent>
>
> <extension base="wsdl:tExtensibleAttributesDocumented">
>
> <sequence>
>
> <element name="operation" type="wsdl:tOperation" minOccurs="0"
> maxOccurs="unbounded"/>
>
> </sequence>
>
> <attribute name="name" type="NCName" use="required"/>
>
> </extension>
>
> </complexContent>
>
> </complexType>
>
> <complexType name="tOperation">
>
> <complexContent>
>
> <extension base="wsdl:tExtensibleDocumented">
>
> <choice>
>
> <group ref="wsdl:request-response-one-way-operation"/>
>
> <group ref="wsdl:solicit-response-notification-operation"/>
>
> </choice>
>
> <attribute name="name" type="NCName" use="required"/>
>
> <attribute name="parameterOrder" type="NMTOKENS" use="optional"/>
>
> </extension>
>
> </complexContent>
>
> </complexType>
>
> <group name="optional-response-fault">
>
> <choice>
>
> <sequence/>
>
> <sequence>
>
> <element name="output" type="wsdl:tParam"/>
>
> <element name="fault" type="wsdl:tFault" minOccurs="0"
> maxOccurs="unbounded"/>
>
> </sequence>
>
> </choice>
>
> </group>
>
> <group name="request-response-one-way-operation">
>
> <sequence>
>
> <element name="input" type="wsdl:tParam"/>
>
> <group ref="wsdl:optional-response-fault"/>
>
> </sequence>
>
> </group>
>
> <group name="optional-solicit-fault">
>
> <choice>
>
> <sequence/>
>
> <sequence>
>
> <element name="input" type="wsdl:tParam"/>
>
> <element name="fault" type="wsdl:tFault" minOccurs="0"
> maxOccurs="unbounded"/>
>
> </sequence>
>
> </choice>
>
> </group>
>
> <group name="solicit-response-notification-operation">
>
> <sequence>
>
> <element name="output" type="wsdl:tParam"/>
>
> <group ref="wsdl:optional-solicit-fault"/>
>
> </sequence>
>
> </group>
>
> <complexType name="tParam">
>
> <complexContent>
>
> <extension base="wsdl:tExtensibleAttributesDocumented">
>
> <attribute name="name" type="NCName" use="optional"/>
>
> <attribute name="message" type="QName" use="required"/>
>
> </extension>
>
> </complexContent>
>
> </complexType>
>
> <complexType name="tFault">
>
> <complexContent>
>
> <extension base="wsdl:tExtensibleAttributesDocumented">
>
> <attribute name="name" type="NCName" use="required"/>
>
> <attribute name="message" type="QName" use="required"/>
>
> </extension>
>
> </complexContent>
>
> </complexType>
>
> <complexType name="tBinding">
>
> <complexContent>
>
> <extension base="wsdl:tExtensibleDocumented">
>
> <sequence>
>
> <element name="operation" type="wsdl:tBindingOperation" minOccurs="0"
> maxOccurs="unbounded"/>
>
> </sequence>
>
> <attribute name="name" type="NCName" use="required"/>
>
> <attribute name="type" type="QName" use="required"/>
>
> </extension>
>
> </complexContent>
>
> </complexType>
>
> <complexType name="tBindingOperationMessage">
>
> <complexContent>
>
> <extension base="wsdl:tExtensibleDocumented">
>
> <attribute name="name" type="NCName" use="optional"/>
>
> </extension>
>
> </complexContent>
>
> </complexType>
>
> <complexType name="tBindingOperationFault">
>
> <complexContent>
>
> <extension base="wsdl:tExtensibleDocumented">
>
> <attribute name="name" type="NCName" use="required"/>
>
> </extension>
>
> </complexContent>
>
> </complexType>
>
> <complexType name="tBindingOperation">
>
> <complexContent>
>
> <extension base="wsdl:tExtensibleDocumented">
>
> <sequence>
>
> <element name="input" type="wsdl:tBindingOperationMessage"
> minOccurs="0"/>
>
> <element name="output" type="wsdl:tBindingOperationMessage"
> minOccurs="0"/>
>
> <element name="fault" type="wsdl:tBindingOperationFault" minOccurs="0"
> maxOccurs="unbounded"/>
>
> </sequence>
>
> <attribute name="name" type="NCName" use="required"/>
>
> </extension>
>
> </complexContent>
>
> </complexType>
>
> <complexType name="tService">
>
> <complexContent>
>
> <extension base="wsdl:tExtensibleDocumented">
>
> <sequence>
>
> <element name="port" type="wsdl:tPort" minOccurs="0"
> maxOccurs="unbounded"/>
>
> </sequence>
>
> <attribute name="name" type="NCName" use="required"/>
>
> </extension>
>
> </complexContent>
>
> </complexType>
>
> <complexType name="tPort">
>
> <complexContent>
>
> <extension base="wsdl:tExtensibleDocumented">
>
> <attribute name="name" type="NCName" use="required"/>
>
> <attribute name="binding" type="QName" use="required"/>
>
> </extension>
>
> </complexContent>
>
> </complexType>
>
> <attribute name="arrayType" type="string"/>
>
> <attribute name="required" type="boolean"/>
>
> <complexType name="tExtensibilityElement" abstract="true">
>
> <sequence/>
>
> <attribute ref="wsdl:required" use="optional"/>
>
> </complexType>
>
> </schema>
>
> "Ed Merks" <merks@ca.ibm.com> wrote in message
> news:3EB25ED9.AE2CB299@ca.ibm.com...Pae,
>
> I'm seeing this result with the just published 1.1.0 driver:
>
> [Image]
>
> The schema isn't valid.
>
>
> Pae Choi wrote:
>
> > I have a simple test schema as follows:
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <!--W3C Schema generated by Pae -->
> > <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > elementFormDefault="qualified">
> > <xsd:element name="CommonLogin">
> > <xsd:complexType>
> > <xsd:sequence>
> > <xsd:element name="username" ref="usernameRef"/>
> > <xsd:element name="password" ref="passwordRef"/>
> > </xsd:sequence>
> > </xsd:complexType>
> > </xsd:element>
> > <xsd:element name="passwordRef" type="xsd:string"/>
> > <xsd:element name="usernameRef" type="xsd:string"/>
> > </xsd:schema>
> >
> > This is a very simple sample, but it is a valid schema.
> > But when
> > I use the validate() and getDiagnostics() methods in the
> > XSDSchema
> > interface it gives me a message as follows:
> >
> > XSD: The element '#null' is not permitted as constrained
> > by 'XML Schema ';
> > expecting schema
> >
> > I do not understand what the message is saying. Any
> > comments?
> >
> > Pae
>

--------------1404F894BB152E1D2F109304
Content-Type: multipart/related;
boundary="------------8BEDE1F35164B7C59B4729C0"


--------------8BEDE1F35164B7C59B4729C0
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<body bgcolor="#FFFFFF">
Pae,
<p>The editor treats the schema as invalid because it contains this:
<blockquote>&lt;xsd:element name="username" ref="usernameRef"/></blockquote>
So it produces this message from plugin.properties:
<blockquote>src-element.2.1 = An element reference may not have a name</blockquote>
Which is there because of this constraint in the spec:
<blockquote><a href="http://www.w3.org/TR/xmlschema-1/#src-element">http://www.w3.org/TR/xmlschema-1/#src-element</a></blockquote>
Which states the following:
<blockquote>2.1 One of ref or name must be present, but not both.</blockquote>
And since ref and name are indeed both present, it's an invalid schema.
<p>The schema below is valid and the editor reports no errors.
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE=CITE><style></style>
<font size=-1>Ed,</font>&nbsp;<font size=-1>I
don't see why Eclipse/Editor treats the sampel schema as an invalid schema.
I also</font><font size=-1>tried other schema, e.g., WSDL.XSD, but throws
the same message. The following is</font><font size=-1>the copy of WSDL
schema that I enclosed for the convenience purpose. Try to see</font><font size=-1>what
you get.</font>&nbsp;&nbsp;<font size=-1>Regards,</font>&nbsp;&nbsp;<font size=-1>Pae</font>&nbsp;<font size=-1>//
###################### WSDL Schema ######################</font><font color="#008080"><font size=-2>&lt;?xml
version="1.0" encoding="UTF-8"?></font></font>
<p><font color="#0000FF"><font size=-2>&lt;!--</font></font>
<p><font color="#808080"><font size=-2>Copyright 2001-2002 International
Business Machines Corporation, Microsoft Corporation. All rights reserved.</font></font>
<p><font color="#0000FF"><font size=-2>--></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">schema</font><font color="#FF0000">
targetNamespace</font><font color="#0000FF">="</font><A HREF="http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl/</A><font color="#0000FF">"</font><font color="#FF0000">
xmlns</font><font color="#0000FF">="</font><A HREF="http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchema</A><font color="#0000FF">"</font><font color="#FF0000">
xmlns:wsdl</font><font color="#0000FF">="</font><A HREF="http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl/</A><font color="#0000FF">"</font><font color="#FF0000">
elementFormDefault</font><font color="#0000FF">="</font>qualified<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">complexType</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>tDocumentation<font color="#0000FF">"</font><font color="#FF0000">
mixed</font><font color="#0000FF">="</font>true<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">sequence</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">any</font><font color="#FF0000">
processContents</font><font color="#0000FF">="</font>lax<font color="#0000FF">"</font><font color="#FF0000">
minOccurs</font><font color="#0000FF">="</font>0<font color="#0000FF">"</font><font color="#FF0000">
maxOccurs</font><font color="#0000FF">="</font>unbounded<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">sequence</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">complexType</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">complexType</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>tDocumented<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">annotation</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">documentation</font><font color="#0000FF">></font></font>
<p><font size=-2>This type is extended by component types</font>
<p><font size=-2>to allow them to be documented</font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">documentation</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">annotation</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">sequence</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">element</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>documentation<font color="#0000FF">"</font><font color="#FF0000">
type</font><font color="#0000FF">="</font>wsdl:tDocumentation<font color="#0000FF">"</font><font color="#FF0000">
minOccurs</font><font color="#0000FF">="</font>0<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">sequence</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">complexType</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">complexType</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>tExtensibleAttributesDocumented <font color="#0000FF">"</font><font color="#FF0000">
abstract</font><font color="#0000FF">="</font>true<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">annotation</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">documentation</font><font color="#0000FF">></font></font>
<p><font size=-2>This type is extended by component types</font>
<p><font size=-2>to allow attributes from other namespaces to be added.</font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">documentation</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">annotation</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">complexContent</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">extension</font><font color="#FF0000">
base</font><font color="#0000FF">="</font>wsdl:tDocumented<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">anyAttribute</font><font color="#FF0000">
namespace</font><font color="#0000FF">="</font>##other<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">extension</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">complexContent</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">complexType</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">complexType</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>tExtensibleDocumented<font color="#0000FF">"</font><font color="#FF0000">
abstract</font><font color="#0000FF">="</font>true<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">annotation</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">documentation</font><font color="#0000FF">></font></font>
<p><font size=-2>This type is extended by component types</font>
<p><font size=-2>to allow attributes from other namespaces to be added.</font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">documentation</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">annotation</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">complexContent</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">extension</font><font color="#FF0000">
base</font><font color="#0000FF">="</font>wsdl:tDocumented<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">sequence</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">any</font><font color="#FF0000">
namespace</font><font color="#0000FF">="</font>##other<font color="#0000FF">"</font><font color="#FF0000">
minOccurs</font><font color="#0000FF">="</font>0<font color="#0000FF">"</font><font color="#FF0000">
maxOccurs</font><font color="#0000FF">="</font>unbounded<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">sequence</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">extension</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">complexContent</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">complexType</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">element</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>definitions<font color="#0000FF">"</font><font color="#FF0000">
type</font><font color="#0000FF">="</font>wsdl:tDefinitions<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">key</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>message<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">selector</font><font color="#FF0000">
xpath</font><font color="#0000FF">="</font>wsdl:message<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">field</font><font color="#FF0000">
xpath</font><font color="#0000FF">="</font>@name<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">key</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">key</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>portType<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">selector</font><font color="#FF0000">
xpath</font><font color="#0000FF">="</font>wsdl:portType<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">field</font><font color="#FF0000">
xpath</font><font color="#0000FF">="</font>@name<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">key</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">key</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>binding<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">selector</font><font color="#FF0000">
xpath</font><font color="#0000FF">="</font>wsdl:binding<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">field</font><font color="#FF0000">
xpath</font><font color="#0000FF">="</font>@name<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">key</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">key</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>service<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">selector</font><font color="#FF0000">
xpath</font><font color="#0000FF">="</font>wsdl:service<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">field</font><font color="#FF0000">
xpath</font><font color="#0000FF">="</font>@name<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">key</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">key</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>import<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">selector</font><font color="#FF0000">
xpath</font><font color="#0000FF">="</font>wsdl:import<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">field</font><font color="#FF0000">
xpath</font><font color="#0000FF">="</font>@namespace<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">key</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">key</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>port<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">selector</font><font color="#FF0000">
xpath</font><font color="#0000FF">="</font>wsdl:service/wsdl:port<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">field</font><font color="#FF0000">
xpath</font><font color="#0000FF">="</font>@name<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">key</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">element</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">group</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>anyTopLevelOptionalElement<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">annotation</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">documentation</font><font color="#0000FF">></font></font>
<p><font size=-2>Any top level optional element allowed to appear more
then once-</font>
<p><font size=-2>any child of definitions element except wsdl:types.</font>
<p><font size=-2>Any extensibility element is allowed in any place</font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">documentation</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">annotation</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">choice</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">element</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>import<font color="#0000FF">"</font><font color="#FF0000">
type</font><font color="#0000FF">="</font>wsdl:tImport<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">element</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>types<font color="#0000FF">"</font><font color="#FF0000">
type</font><font color="#0000FF">="</font>wsdl:tTypes<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">element</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>message<font color="#0000FF">"</font><font color="#FF0000">
type</font><font color="#0000FF">="</font>wsdl:tMessage<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">unique</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>part<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">selector</font><font color="#FF0000">
xpath</font><font color="#0000FF">="</font>wsdl:part<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">field</font><font color="#FF0000">
xpath</font><font color="#0000FF">="</font>@name<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">unique</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">element</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">element</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>portType<font color="#0000FF">"</font><font color="#FF0000">
type</font><font color="#0000FF">="</font>wsdl:tPortType<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">element</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>binding<font color="#0000FF">"</font><font color="#FF0000">
type</font><font color="#0000FF">="</font>wsdl:tBinding<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">element</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>service<font color="#0000FF">"</font><font color="#FF0000">
type</font><font color="#0000FF">="</font>wsdl:tService<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">choice</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">group</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">complexType</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>tDefinitions<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">complexContent</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">extension</font><font color="#FF0000">
base</font><font color="#0000FF">="</font>wsdl:tExtensibleDocumented<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">sequence</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">group</font><font color="#FF0000">
ref</font><font color="#0000FF">="</font>wsdl:anyTopLevelOptionalElement <font color="#0000FF">"</font><font color="#FF0000">
minOccurs</font><font color="#0000FF">="</font>0<font color="#0000FF">"</font><font color="#FF0000">
maxOccurs</font><font color="#0000FF">="</font>unbounded<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">sequence</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">attribute</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>targetNamespace<font color="#0000FF">"</font><font color="#FF0000">
type</font><font color="#0000FF">="</font>anyURI<font color="#0000FF">"</font><font color="#FF0000">
use</font><font color="#0000FF">="</font>optional<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">attribute</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>name<font color="#0000FF">"</font><font color="#FF0000">
type</font><font color="#0000FF">="</font>NCName<font color="#0000FF">"</font><font color="#FF0000">
use</font><font color="#0000FF">="</font>optional<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">extension</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">complexContent</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">complexType</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">complexType</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>tImport<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">complexContent</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">extension</font><font color="#FF0000">
base</font><font color="#0000FF">="</font>wsdl:tExtensibleAttributesDocumented <font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">attribute</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>namespace<font color="#0000FF">"</font><font color="#FF0000">
type</font><font color="#0000FF">="</font>anyURI<font color="#0000FF">"</font><font color="#FF0000">
use</font><font color="#0000FF">="</font>required<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">attribute</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>location<font color="#0000FF">"</font><font color="#FF0000">
type</font><font color="#0000FF">="</font>anyURI<font color="#0000FF">"</font><font color="#FF0000">
use</font><font color="#0000FF">="</font>required<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">extension</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">complexContent</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">complexType</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">complexType</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>tTypes<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">complexContent</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">extension</font><font color="#FF0000">
base</font><font color="#0000FF">="</font>wsdl:tExtensibleDocumented<font color="#0000FF">"/></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">complexContent</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;/</font><font color="#800000">complexType</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">complexType</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>tMessage<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">complexContent</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">extension</font><font color="#FF0000">
base</font><font color="#0000FF">="</font>wsdl:tExtensibleDocumented<font color="#0000FF">"></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">sequence</font><font color="#0000FF">></font></font>
<p><font size=-2><font color="#0000FF">&lt;</font><font color="#800000">element</font><font color="#FF0000">
name</font><font color="#0000FF">="</font>part<font color="#0000FF">"</font><font color="#FF0000">
type</font><font color="#0000FF">="</font>wsdl:tPart<font color="#0000FF">"</font&


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: A Diagnostic Message for the Valid Schema [message #569320 is a reply to message #19818] Sat, 03 May 2003 11:03 Go to previous message
Ed Merks is currently offline Ed MerksFriend
Messages: 33142
Registered: July 2009
Senior Member
--------------E12CD32B5B06C63315FEC29B
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Pae,

The XSD model expects a DOM that's namespace aware, so this addition to
your sample code will improve your result:

private Document openXMLDOM(String uri) {
// Create a factory object for creating DOM parsers
DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
DocumentBuilder builder = null;
Document xmlDoc = null;

factory.setNamespaceAware(true);

Without this, element.getNamespaceURI and element.getLocalName both
return null...


Pae Choi wrote:

> Ed, I have a sample code that test a DOM of XML Schema with
> Eclipse/XSD andproducing two different results. With v1.0.2, it seems
> ok except the diagnostic message we are discussing.With v1.1.0, it
> throws an exception. Regards, Pae P.S.: The code snippet is as
> follows: // ################## CODE SNIPPET ##################/*
> * EclipseXSDDemo1.java
> *
> * Created on May 2, 2003, 11:13 PM
> */ package org.paechoi.xsd.test; // W3C/DOM
> import javax.xml.parsers.DocumentBuilderFactory;
> import javax.xml.parsers.DocumentBuilder;
> import org.w3c.dom.Document;
> import org.w3c.dom.Element;
> // Eclipse/XSD
> import org.eclipse.xsd.XSDFactory;
> import org.eclipse.xsd.XSDSchema;
> import org.eclipse.xsd.impl.XSDSchemaImpl;
> import org.eclipse.xsd.util.XSDResourceImpl;
> import org.eclipse.xsd.util.XSDResourceFactoryImpl;
> import org.eclipse.xsd.XSDDiagnostic;
> import org.eclipse.emf.ecore.resource.Resource;
> import org.eclipse.emf.ecore.resource.ResourceSet;
> import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
> import org.eclipse.emf.common.util.EList;
> import java.io.File;
> /**
> *
> * @author pae
> */
> public class EclipseXSDDemo1 {
> // private Document xmlDOM = null;
>
> // instance initializer
> {
> //
> Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd",
> new XSDResourceFactoryImpl());
> }
>
> /** Creates a new instance of EclipseXSDDemo1 */
> public EclipseXSDDemo1() {
> super();
> }
>
> /** Open a XML DOM */
> private Document openXMLDOM(String uri) {
> // Create a factory object for creating DOM parsers
> DocumentBuilderFactory factory =
> DocumentBuilderFactory.newInstance();
> DocumentBuilder builder = null;
> Document xmlDoc = null;
>
> // Build a new DOM
> try {
> // Now use the factory to create a DOM parser (a.k.a. a
> DocumentBuilder)
> builder = factory.newDocumentBuilder();
> xmlDoc = builder.parse(uri);
> }
> catch (Exception ex) {
> ex.printStackTrace();
> return null;
> }
>
> return xmlDoc;
> }
>
> /** doIt */
> private void doIt() {
> Document xmlDOM =
> openXMLDOM("http://schemas.xmlsoap.org/wsdl/");
> // Document xmlDOM = openXMLDOM("./wsdl.xsd"); Element
> rootElement = xmlDOM.getDocumentElement(); XSDSchema xsdSchema
> = XSDFactory.eINSTANCE.createXSDSchema();
> xsdSchema.setDocument(xmlDOM);
> xsdSchema.setElement(rootElement);
> xsdSchema.updateElement(); System.out.println("\n\n");
>
> XSDResourceImpl.serialize(System.out,
> xsdSchema.getElement());
> System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION
> >>>>>>>>>>>>>>>>>>>>>>>>>>");
> xsdSchema.validate();
> //EList eList = xsdMainSchema.getDiagnostics();
> EList eList = xsdSchema.getAllDiagnostics();
> for (int i = 0; i < eList.size(); i++) {
> XSDDiagnostic xsdDiagnostic = (XSDDiagnostic)eList.get(i);
>
> System.out.println(i + ": Diagnostic Message = [" +
> xsdDiagnostic.getMessage() + "]");
> }
>
> System.out.println("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<");
>
> }
>
> /** main - the main entry */
> public static void main(String[] args) {
> EclipseXSDDemo1 app = new EclipseXSDDemo1();
> app.doIt();
> }
> }
>
> "Ed Merks" <merks@ca.ibm.com> wrote in message
> news:3EB25ED9.AE2CB299@ca.ibm.com...Pae,
>
> I'm seeing this result with the just published 1.1.0 driver:
>
> [Image]
>
> The schema isn't valid.
>
>
> Pae Choi wrote:
>
> > I have a simple test schema as follows:
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <!--W3C Schema generated by Pae -->
> > <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > elementFormDefault="qualified">
> > <xsd:element name="CommonLogin">
> > <xsd:complexType>
> > <xsd:sequence>
> > <xsd:element name="username" ref="usernameRef"/>
> > <xsd:element name="password" ref="passwordRef"/>
> > </xsd:sequence>
> > </xsd:complexType>
> > </xsd:element>
> > <xsd:element name="passwordRef" type="xsd:string"/>
> > <xsd:element name="usernameRef" type="xsd:string"/>
> > </xsd:schema>
> >
> > This is a very simple sample, but it is a valid schema.
> > But when
> > I use the validate() and getDiagnostics() methods in the
> > XSDSchema
> > interface it gives me a message as follows:
> >
> > XSD: The element '#null' is not permitted as constrained
> > by 'XML Schema ';
> > expecting schema
> >
> > I do not understand what the message is saying. Any
> > comments?
> >
> > Pae
>

--------------E12CD32B5B06C63315FEC29B
Content-Type: multipart/related;
boundary="------------5F7B25AF02F305B397A1F7E4"


--------------5F7B25AF02F305B397A1F7E4
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<body bgcolor="#FFFFFF">
Pae,
<p>The XSD model expects a DOM that's namespace aware, so <font color="#3333FF">this</font>
addition to your sample code will improve your result:
<p>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String uri) {
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create a factory object
for creating DOM parsers
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilderFactory&nbsp;
factory = DocumentBuilderFactory.newInstance();
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;
builder = null;
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = null;
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#3333FF">&nbsp;&nbsp; factory.setNamespaceAware(true);</font>
<p>Without this, element.getNamespaceURI and element.getLocalName both
return null...
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE=CITE><style></style>
<font size=-1>Ed,</font>&nbsp;<font size=-1>I
have a sample code that test a DOM of XML Schema with Eclipse/XSD and</font><font size=-1>producing
two different results.</font>&nbsp;<font size=-1>With v1.0.2, it seems
ok except the diagnostic message we are discussing.</font><font size=-1>With
v1.1.0, it throws an exception.</font>&nbsp;<font size=-1>Regards,</font>&nbsp;&nbsp;<font size=-1>Pae</font>&nbsp;<font size=-1>P.S.:
The code snippet is as follows:</font>&nbsp;<font size=-1>// ##################
CODE SNIPPET ##################</font><font size=-1>/*</font>
<br><font size=-1>&nbsp;* EclipseXSDDemo1.java</font>
<br><font size=-1>&nbsp;*</font>
<br><font size=-1>&nbsp;* Created on May 2, 2003, 11:13 PM</font>
<br><font size=-1>&nbsp;*/</font>&nbsp;<font size=-1>package org.paechoi.xsd.test;</font>&nbsp;<font size=-1>//
W3C/DOM</font>
<br><font size=-1>import&nbsp; javax.xml.parsers.DocumentBuilderFactory;</font>
<br><font size=-1>import&nbsp; javax.xml.parsers.DocumentBuilder;</font>
<br><font size=-1>import&nbsp; org.w3c.dom.Document;</font>
<br><font size=-1>import&nbsp; org.w3c.dom.Element;</font>
<br><font size=-1>// Eclipse/XSD</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDFactory;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDSchema;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.impl.XSDSchemaImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.util.XSDResourceImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.util.XSDResourceFactoryImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDDiagnostic;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.Resource;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.ResourceSet;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.common.util.EList;</font>
<br><font size=-1>import&nbsp; java.io.File;</font>&nbsp;&nbsp;
<br><font size=-1>/**</font>
<br><font size=-1>&nbsp;*</font>
<br><font size=-1>&nbsp;* @author&nbsp; pae</font>
<br><font size=-1>&nbsp;*/</font>
<br><font size=-1>public class EclipseXSDDemo1 {</font>
<br><font size=-1>//&nbsp;&nbsp;&nbsp; private&nbsp;&nbsp;&nbsp;&nbsp;
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp; xmlDOM = null;</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; // instance initializer</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; {</font>
<br><font size=-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp; Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd",
new XSDResourceFactoryImpl());</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** Creates a new instance of EclipseXSDDemo1
*/</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; public EclipseXSDDemo1() {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; super();</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String
uri) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create
a factory object for creating DOM parsers</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilderFactory&nbsp;
factory = DocumentBuilderFactory.newInstance();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;
builder = null;</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = null;</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Build a
new DOM</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// Now use the factory to create a DOM parser (a.k.a. a DocumentBuilder)</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
builder = factory.newDocumentBuilder();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = builder.parse(uri);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch (Exception
ex) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ex.printStackTrace();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return null;</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; return xmlDoc;</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** doIt */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private void doIt() {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document xmlDOM
= openXMLDOM("<a href="http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl/</a>");</font>
<br><font size=-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp; Document
xmlDOM = openXMLDOM("./wsdl.xsd");</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
Element rootElement = xmlDOM.getDocumentElement();</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
XSDSchema xsdSchema = XSDFactory.eINSTANCE.createXSDSchema();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; xsdSchema.setDocument(xmlDOM);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; xsdSchema.setElement(rootElement);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; xsdSchema.updateElement();</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
System.out.println("\n\n");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; XSDResourceImpl.serialize(System.out,
xsdSchema.getElement());</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION >>>>>>>>>>>>>>>>>>>>>>>>>>");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; xsdSchema.validate();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; //EList eList
= xsdMainSchema.getDiagnostics();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; EList eList
= xsdSchema.getAllDiagnostics();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; for (int i
= 0; i &lt; eList.size(); i++) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
XSDDiagnostic xsdDiagnostic = (XSDDiagnostic)eList.get(i);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
System.out.println(i + ": Diagnostic Message = [" + xsdDiagnostic.getMessage()
+ "]");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; System.out.println(" &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; ");</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** main - the main entry */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; public static void main(String[] args)
{</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; EclipseXSDDemo1
app = new EclipseXSDDemo1();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; app.doIt();</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<br><font size=-1>}</font>
<blockquote dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed
Merks" &lt;<a href="mailto:merks@ca.ibm.com">merks@ca.ibm.com</a>> wrote
in message <a href="news:3EB25ED9.AE2CB299@ca.ibm.com">news:3EB25ED9.AE2CB299@ca.ibm.com</a>...Pae,
<p>I'm seeing this result with the just published 1.1.0 driver:
<blockquote><img SRC="cid:part1.3EB3A206.84713F24@ca.ibm.com" height=411 width=502></blockquote>
The schema isn't valid.
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE="CITE">I have a simple test schema as follows:
<p>&lt;?xml version="1.0" encoding="UTF-8"?>
<br>&lt;!--W3C Schema generated by Pae -->
<br>&lt;xsd:schema xmlns:xsd="<a href="http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchema</a>"
<br>elementFormDefault="qualified">
<br>&nbsp;&lt;xsd:element name="CommonLogin">
<br>&nbsp; &lt;xsd:complexType>
<br>&nbsp;&nbsp; &lt;xsd:sequence>
<br>&nbsp;&nbsp;&nbsp; &lt;xsd:element name="username" ref="usernameRef"/>
<br>&nbsp;&nbsp;&nbsp; &lt;xsd:element name="password" ref="passwordRef"/>
<br>&nbsp;&nbsp; &lt;/xsd:sequence>
<br>&nbsp; &lt;/xsd:complexType>
<br>&nbsp;&lt;/xsd:element>
<br>&nbsp;&lt;xsd:element name="passwordRef" type="xsd:string"/>
<br>&nbsp;&lt;xsd:element name="usernameRef" type="xsd:string"/>
<br>&lt;/xsd:schema>
<p>This is a very simple sample, but it is a valid schema. But when
<br>I use the validate() and getDiagnostics() methods in the XSDSchema
<br>interface it gives me a message as follows:
<p>XSD: The element '#null' is not permitted as constrained by 'XML Schema
';
<br>expecting schema
<p>I do not understand what the message is saying. Any comments?
<p>Pae</blockquote>
</blockquote>
</blockquote>

</body>
</html>

--------------5F7B25AF02F305B397A1F7E4
Content-Type: image/jpeg
Content-ID: <part1.3EB3A206.84713F24@ca.ibm.com>
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\nsmailFJ.jpeg"

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCws MGJGSjpQdGZ6
eHJmcG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAq MF40NF7GhHCE
xsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbG xsbGxsb/wAAR
CAGbAfYDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcI CQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS 0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1 dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW 19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcI CQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMz UvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0 dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU 1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDXghR49zbiST/EfU0m23yQ BKcHHG81Ja/6
kf7zfzNVLrfsTY5wGkLRrJsZueoPt6e9NK4FpIYJEDIWKnoQ5/xpfs0Xo3/f Z/xqKy2bmMbM
UZEcZ75zzjt2qMXc+1kYBbgkbYvLyRnJ67sNwDzkdPXikBZ+zRejf99n/Gj7 NF6N/wB9n/Gq
a31w+eI027VYMuTuLsmeD2xnHPpnvS/bZyJnHlhYELMNpy5DODg54zs9+veg C39mi9G/77P+
NH2aL0b/AL7P+NUEup4hIkMQZY2kdycYwZH4yWGPu9ef8b883lxs6FW2H5l7 n2HvyMDv075o
APs0Xo3/AH2f8aPs0Xo3/fZ/xqFriZWhLGMRPt/eKpdSSeFGDx2+YjBz26Uy 3kkmuraaQptk
gZlVVIKglDgnPP6UATyQxIudrH/gZpm2L+43/fw1NP8AcH1rJvJZbecG2Jlk dSWhOSAAPvD0
/r9aQGhti/uN/wB/DTDGBI65bAPHzH0B/rUdntNurLMZt3zFyep+nb6VM/8A r5f94fyFAxvl
j1b/AL6NHlj1b/vo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+ jTqKAG+WPVv+
+jR5Y9W/76NOooAb5Y9W/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igB vlj1b/vo0eWP
Vv8Avo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPV v++jR5Y9W/76
NOooAb5Y9W/76NHlj1b/AL6NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/AL6N Hlj1b/vo06ig
Bvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+jTqKAG+WPVv++jR5Y9W/ 76NOooAb5Y9W
/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/vo0eWPVv8Avo06 igBvlj1b/vo0
eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPVv++jR5Y9W/76NOooAb5Y 9W/76NHlj1b/
AL6NOooAb5Y9W/76NHlj1b/vo06igCvOTEV2MRnOcnP86KS76p+P9KKBF+1/ 1I/3m/majktG
kBVmiZNxYK8W7Gfx96hREIJKqTuPUe9O8uP+4v5U7gWIYnR3d3DFgBwuMYz/ AI0otoBEYhBG
I2OSgQYJ+lNdbaNlVkjDOcKu0ZP0FMcwRyBWtvlyFMmwbQT0Hqeo6DHP1oAm WCFF2pFGo44C
gdDkfrzTPscBn84xIXwMZUfKQScj3yaT/Q/+mH39nb73p9fahfsbruTyGHHI wepwP14oAkaC
FipaKMlCWUlRwSckj8ad5abt2xc53Zx3xjP5cVCVgFwsJgXLIXDbRjggEfqK k8iH/nkn/fIo
ABBCJBIIo94zhtoyM5zz+J/OhIIY5GkSKNXbqwUAn8ah8yw8vzN9tszt3ZXG fTNO/wBD87yf
3Hm/3ON3r0oAklUsoAGeagFuVZmEYDN94jGT9adusgwXNvuLbAMrkt6fXkUM 1ksvlMbcSZA2
ErnJ6cUANW3KZ2RhdxycYGT60j/6+X/eH8hUgFqZzCEiLgZIG3I6dR170f6H 53k/uPN/ucbv
XpQBHRUg+xs4QeQWJK7RjOR1H4U3zLDzPL322/O3blc59MUrANoprz2y3Bh+ ysSJFjyIxjJG
f0HWpf8ARvtPkeSN+0tkx4GBjv369qLAMoqx5EP/ADyT/vkVX8y33f8AHt+7 37PM2rtznGOu
evHT9KLAFFNee2W4MP2ViRIseRGMZIz+g61a8iH/AJ5J/wB8iiwFeipP9D87 yf3Hm/3ON3r0
oH2NnCDyCxJXaMZyOo/CiwEdFSH7GJDGfI3jGV4yM4xx+I/Oj/Q/O8n9x5v9 zjd69KLAR0Us
slpE4TZGz7lUqu3K5IAJHpyPzp4FqZzCEiLgZIG3I6dR170WAjoqQfY2cIPI LEldoxnI6j8K
R2skZlc26sgywJUED3/MfnRYBlFO8yw8zy99tvzt25XOfTFRvPbLcGH7KxIk WPIjGMkZ/Qda
LAOoprzQr5n+hMfLkEZwqck4xjn3H5/WkeeJHKf2fKxAYjCJ8wU4JAznuPrR YB9FN86Hz2iF
kxKvtJCp7c4znHzDt3q15EP/ADyT/vkUWAr0UeZb7v8Aj2/d79nmbV25zjHX PXjp+lNee2W4
MP2ViRIseRGMZIz+g60WAdRTnMEcgVrb5chTJsG0E9B6nqOgxz9aei20jMqp GWQ4ZdoyPqKL
ARUVY8iH/nkn/fIo8iH/AJ5J/wB8iiwFeirHkQ/88k/75FHkQ/8APJP++RRY CvRVjyIf+eSf
98ijyIf+eSf98iiwFeirHkQ/88k/75FHkQ/88k/75FFgK9FWPIh/55J/3yKP Ih/55J/3yKLA
V6KseRD/AM8k/wC+RR5EP/PJP++RRYCvRVjyIf8Ankn/AHyKPIh/55J/3yKL AV6KseRD/wA8
k/75FHkQ/wDPJP8AvkUWAr0VY8iH/nkn/fIo8iH/AJ5J/wB8iiwFeipngh2/ 6pOo/hFQbYv+
eUfPtQMWioJlTz4FCKAScgDrxUb3FsjlWj5Bx90UWGouWiQ676p+P9KKLtFR lAUDrnAooJJ4
/un/AHj/ADp1Nj+6f94/zp1AyXyWjmMkTAhz86vknr2PbqeOn05NOeMyTLuA MSjP3urZ4yMd
vr+HQ055Y42VWYBnOFXufoKDIBMsWDuZSw9MAj/EUxFb7PN9s+0Yj+/jZuON uMbun3+30496
rtp8zo2Y4AzCYZDE4L9D0/D6flWpRQBWdJzepIqRmNVK5LkHBKknGPb1qzVV 70L5n7iU+XII
zjbyTjGOfcfn9akFwPOEbRyKGJVXIGGIycevY9scfSgCP7M/2rOV+z58zb33 /Tpjv67uaiWy
dZuUDp5pkyZ3HVt33MY4/XFWGufnwkMki7gpdAMA5x65474/oanoAqwRTR3c 7mOLbK+dwc7s
BQAMY9vXvUf2WZp8lI1XzN2VlYjGc/cIxk+vrz1qb7WC2FhlZd+wOqgjOcHv kY55Ixx9KkM8
IkMZlj3jGV3DIzjHH4j86AInSc3qSKkZjVSuS5BwSpJxj29aZ9nmx5OI/K83 zN+47vv78bcf
h19/apo7mN5WjJ2OrlArEZbAByOeeCKd58PneT5sfm/3Nw3evSgCo9tOWnZY 4d0kyOCXIJVc
cH5f9n9T+Nn7NH5m/dLnOcec+Pyzj8Kcs8LruSWNhxyGB6nA/Xijz4fO8nzY /N/ubhu9elAD
vLTdu2LnO7OO+MZ/LioHSc3qSKkZjVSuS5BwSpJxj29as1E9zAjMrzxqyDLA uAQPf8x+dAC/
vvtH/LPyNnvu3Z/LGKr/AGebHk4j8rzfM37ju+/vxtx+HX39qsefD53k+bH5 v9zcN3r0oE8L
OEEsZYkrtDDOR1H4UAO8tN27Yuc7s474xn8uKdUfnw+d5Pmx+b/c3Dd69KT7 TAGC+fHuLbAN
4yW9PryKAKq2TrNygdPNMmTO46tu+5jHH64oe2nLTsscO6SZHBLkEquOD8v+ z+p/G358PneT
5sfm/wBzcN3r0pqXdu8zQrNGZFO0pu5z9KAIlgkVhGY4XjEpkDsSSCWJ4XHX nGc+/tSfZ5se
TiPyvN8zfuO77+/G3H4dff2qx58PneT5sfm/3Nw3evSmS3cUThNwZ9yqVVhl ckAEjPTkfnQB
XltZynlosLKs3nKzE5J37sdOOpGefpzxM6Tm9SRUjMaqVyXIOCVJOMe3rVmo IbuKXau4JIxI
EbMN3BIPAPsaAK7205adljh3STI4JcglVxwfl/2f1P4xypJ5i2wjDBZxKHKN 3fcecYGATzk9
MY5q613bLu3XEQ2na2XHB9D+R/KpqAIfs0fmb90uc5x5z4/LOPwqTy03bti5 zuzjvjGfy4qA
Xg81kaGRVRxGXO3GTjHfPOR271L58PneT5sfm/3Nw3evSgCB7aRpXA2eXJKk pYk5BXbxjHP3
eue/tUjxyG9ikATy1RlJLHOSQemP9n170/z4fO8nzY/N/ubhu9elSUAVYLYp eT3EkcYZz8rK
xJ24AweP9kH8fzk+zR+Zv3S5znHnPj8s4/CpqKAKP2N/P3bIs+Zv8/P7zGc7 enp8vXp+VXPL
Tdu2LnO7OO+MZ/LikSWORmVWBZDhl7j6in0ARPGZJl3AGJRn73Vs8ZGO31/D oab5LSTCSVgA
h+RUyD17nv0HHT68Gp6KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKAGyE
Bck4AIyT9az3EMjBmlOR0w4GKvyqrxlXUMD2IzVf7Lb/APPCL/vgf5/z+YBW lZWubfawOCe+
f4aZJYLJIz+cRuOcbP8A69WzbwqMrDGD6hR/n/P5t8uP+4v5UXsXCcoO8SG9 OXU+uaKbdKF2
BQAOen4UUiCxH90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51fJPXse3U8dPp yakKAzK+0ZVS
N2eRkjjH4fpQ8scbKrMAznCr3P0FJ58P/PWP7+z7w+96fX2piG/Zo/M37pc5 zjznx+WcfhR9
mj8zfulznOPOfH5Zx+FK1zAsvlNPGJMgbC4zk9OKbLdxROE3Bn3KpVWGVyQA SM9OR+dAEEti
73ZlDrtLhj6/wH/2mP8Avo+nMphka7WRljUIT8653MuDhSMdOc9eo6ek/mJ5 nl71343bc849
cUxrmBZfKaeMSZA2FxnJ6cUAMSOaJikflmIuX3MTuGTkjHfqecjr3xzYqMzw iQxmWPeMZXcM
jOMcfiPzpsdzG8rRk7HVygViMtgA5HPPBFAEDWsjz+Y0durbw3nICHCg8Dpz kDB5HXp6uWCR
WEZjheMSmQOxJIJYnhcdecZz7+1T+fD53k+bH5v9zcN3r0oWeF13JLGw45DA 9TgfrxQBUe2n
LTsscO6SZHBLkEquOD8v+z+p/EWydZuUDp5pkyZ3HVt33MY4/XFW/Ph87yfN j83+5uG716VJ
QBltp8zo2Y4AzCYZDE4L9D0/D6flT5bKcuSmziUSAmVgG+bONo4H15zjPU8X fPh/56x/f2fe
H3vT6+1Czwuu5JY2HHIYHqcD9eKAJKzJUk8xbYRhgs4lDlG7vuPOMDAJ5yem Mc1fMoFwsJVs
shcNxjggEfqKBPCzhBLGWJK7QwzkdR+FAFRbJ1m5QOnmmTJncdW3fcxjj9cU PbTlp2WOHdJM
jglyCVXHB+X/AGf1P42muYFl8pp4xJkDYXGcnpxT/MTzPL3rvxu255x64oAp LZOs3KB080yZ
M7jq277mMcfripYIpo7udzHFtlfO4Od2AoAGMe3r3qbz4f8AnrH9/Z94fe9P r7UjXMCy+U08
YkyBsLjOT04oApy2U5clNnEokBMrAN82cbRwPrznGep4srHNHcSFPLKSOHLE nI4Axjv0657+
3Ky3cUThNwZ9yqVVhlckAEjPTkfnS/a7bzPL+0Rb87du8Zz6YoArLZOs3KB0 80yZM7jq277m
McfriiW1nKeWiwsqzecrMTknfux046kZ5+nPEr3yLcGHypSRIseQvGSM/oOt SR3MbytGTsdX
KBWIy2ADkc88EUATVQitZwnlusKq03nMyk5B37sdOegGePpxzZS7t3maFZoz Ip2lN3OfpQl3
bvM0KzRmRTtKbuc/SgCBo99+YwH8skSyZQ4LLjHPv8p4/ue5q7UYnhZwgljL EldoYZyOo/Cn
eYnmeXvXfjdtzzj1xQBWitT9qmlmUYZwyASMRwAOV6Z4z3/SoZbKcuSmziUS AmVgG+bONo4H
15zjPU8XXl2zRxgZL5J56Ad/zIH40PLtmjjAyXyTz0A7/mQPxoAqLZOs3KB0 80yZM7jq277m
Mcfrir9Qtd2y7t1xENp2tlxwfQ/kfyoa7tl3briIbTtbLjg+h/I/lQAfZo/M 37pc5zjznx+W
cfhR9mj8zfulznOPOfH5Zx+FDXdsu7dcRDadrZccH0P5H8qmoAg8lpJhJKwA Q/IqZB69z36D
jp9eDU9Qtd2y7t1xENp2tlxwfQ/kfyoFwPOEbRyKGJVXIGGIycevY9scfSgC aiio/Ph87yfN
j83+5uG716UASUVF9pgDBfPj3FtgG8ZLen15FD3MCMyvPGrIMsC4BA9/zH50 AS0VG8u2aOMD
JfJPPQDv+ZA/Gmi4HnCNo5FDEqrkDDEZOPXse2OPpQBNRVf7Wu7/AFcnl79n mcbc5xjrnrx0
/Sj7Wu7/AFcnl79nmcbc5xjrnrx0/SgCxRUX2hPtPkYfftLZKkDAx379e1K8 u2aOMDJfJPPQ
Dv8AmQPxoAkoqq96Edk8iUsrhQo25bOcEc9OP5+hxHJqkUczxGKUusix4G3k tkjHPtQBeoqK
GfzZJU8t18ptpLYwTjPGD6EfnTPtYLYWGVl37A6qCM5we+RjnkjHH0oAsUVG Z4RIYzLHvGMr
uGRnGOPxH502O5jeVoydjq5QKxGWwAcjnngigCaio/Ph87yfNj83+5uG716U LPC67kljYcch
gepwP14oAkoqPz4fO8nzY/N/ubhu9elQvfItwYfKlJEix5C8ZIz+g60AWH+6 aj/z/n/P/wBe
R/umo/8AP+f8/wD1wBr/AHT/AJ/z/n8Y6kf7p/z/AJ/z+MdIZWu+qfj/AEoo u+qfj/SigRPH
90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51fJPXse3U8dPpyai+zzfbPtGI/ v42bjjbjG7p9
/t9OPerHnw+d5Pmx+b/c3Dd69KDKBcLCVbLIXDcY4IBH6imIq/ZZmnyUjVfM 3ZWViMZz9wjG
T6+vPWkltZynlosLKs3nKzE5J37sdOOpGefpzxb8+HzvJ82Pzf7m4bvXpQs8 LruSWNhxyGB6
nA/XigBvlv8AbPM2RbPL27sfPnPTPp/Wq/2WZp8lI1XzN2VlYjGc/cIxk+vr z1q158PneT5s
fm/3Nw3evSgTws4QSxliSu0MM5HUfhQBAsEisIzHC8YlMgdiSQSxPC4684zn 39qje2nLTssc
O6SZHBLkEquOD8v+z+p/Gyl3bvM0KzRmRTtKbuc/So/to89ohBKSr7SRt9uc Zzj5h270ARLZ
Os3KB080yZM7jq277mMcfriom0+Z0bMcAZhMMhicF+h6fh9PyrQ8+HzvJ82P zf7m4bvXpSfa
YAwXz49xbYBvGS3p9eRQBTlspy5KbOJRICZWAb5s42jgfXnOM9Txo1Gs8Lru SWNhxyGB6nA/
Xio1u1MzxtHIgV9m9sbSeCBwe+R1+nXigCP7PN9s+0Yj+/jZuONuMbun3+30 496rtp8zo2Y4
AzCYZDE4L9D0/D6flWh58PneT5sfm/3Nw3evSoX1C3W4WBXV3JwQHX5TnHc/ oMmgBXSc3qSK
kZjVSuS5BwSpJxj29ahe2nLTsscO6SZHBLkEquOD8v8As/qfxt+fD53k+bH5 v9zcN3r0o8+H
/nrH9/Z94fe9Pr7UAVfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVjy3+2eZsi2eX t3Y+fOemfT+t
OMoFwsJVsshcNxjggEfqKal3bvM0KzRmRTtKbuc/SgCH7PN9s+0Yj+/jZuON uMbun3+30496
b9lmafJSNV8zdlZWIxnP3CMZPr689asfa7bzPL+0Rb87du8Zz6YqN75FuDD5 UpIkWPIXjJGf
0HWgCKW1nKeWiwsqzecrMTknfux046kZ5+nPFn7NH5m/dLnOcec+Pyzj8KV7 mBGZXnjVkGWB
cAge/wCY/Ol8+H/nrH9/Z94fe9Pr7UAO8tN27Yuc7s474xn8uKpPbTlp2WOH dJMjglyCVXHB
+X/Z/U/jb8+HzvJ82Pzf7m4bvXpQZQLhYSrZZC4bjHBAI/UUARrHNHcSFPLK SOHLEnI4Axjv
0657+3Isc0dxIU8spI4csScjgDGO/Trnv7cyCeMzmEMpcDJAYZHTqOveoX1C 3W4WBXV3JwQH
X5TnHc/oMmgCBI3mu7kCIKhmRjIwIJCheBxyMqe/f87flv8AbPM2RbPL27sf PnPTPp/WnCeM
zmEMpcDJAYZHTqOvejz4fO8nzY/N/ubhu9elADYUbzJZZBhnO0D0UZx/U/jj tRCjeZLLIMM5
2geijOP6n8cdqSW7iicJuDPuVSqsMrkgAkZ6cj86Y98i3Bh8qUkSLHkLxkjP 6DrQAySzke5L
iQCNnVyOeo29v+Af+PH05JLOR7kuJAI2dXI56jb2/wCAf+PH05tJLHIzKrAs hwy9x9RT6AKU
lnI9yXEgEbOrkc9Rt7f8A/8AHj6c2f332j/ln5Gz33bs/ljFSUUAUpLOR7ku JAI2dXI56jb2
/wCAf+PH05kMMjXayMsahCfnXO5lwcKRjpznr1HT0s0UAR/vvtH/ACz8jZ77 t2fyxiq/2ebH
k4j8rzfM37ju+/vxtx+HX39quUUAVYIpo7udzHFtlfO4Od2AoAGMe3r3qtKk nmLbCMMFnEoc
o3d9x5xgYBPOT0xjmtOigCGFG8yWWQYZztA9FGcf1P447VGiXP2ou6xFckbt 5JCdgBjjtnn+
mLVFAFP7PNjycR+V5vmb9x3ff3424/Dr7+1H2ebHk4j8rzfM37ju+/vxtx+H X39quUUAVnSc
3qSKkZjVSuS5BwSpJxj29afCjeZLLIMM52geijOP6n8cdqmooApyR3ZnMqiL KnagLnGw9c/L
1OB+Q98xy2k7SSyBIixlV0JkI+Ubcg8d9g/P89CigCmI7tZpSgiCySq+7ech RtBGNvcD170j
Wsjz+Y0durbw3nICHCg8DpzkDB5HXp63aKAKiwSKwjMcLxiUyB2JJBLE8Ljr zjOff2qN7act
Oyxw7pJkcEuQSq44Py/7P6n8b9FAFBbJ1m5QOnmmTJncdW3fcxjj9cVE2nzO jZjgDMJhkMTg
v0PT8Pp+ValFAGdLZTlyU2cSiQEysA3zZxtHA+vOcZ6ni/5abt2xc53Zx3xj P5cU6igBr/dN
R/5/z/n/AOvI/wB01H/n/P8An/64A1/un/P+f8/jHUj/AHT/AJ/z/n8Y6Qyt d9U/H+lFF31T
8f6UUCJ4/un/AHj/ADp1Nj+6f94/zp1Axi2TrNygdPNMmTO46tu+5jHH64qZ 0nN6kipGY1Ur
kuQcEqScY9vWrNMeWONlVmAZzhV7n6CmIprZOs3KB080yZM7jq277mMcfrio m0+Z0bMcAZhM
MhicF+h6fh9PyrQ8+H/nrH9/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oAqrZO s3KB080yZM7j
q277mMcfrih7actOyxw7pJkcEuQSq44Py/7P6n8bEt3FE4TcGfcqlVYZXJAB Iz05H51L5ieZ
5e9d+N23POPXFAEKxzR3EhTyykjhyxJyOAMY79Oue/ty2C2KXk9xJHGGc/Ky sSduAMHj/ZB/
H85vPh87yfNj83+5uG716UGUC4WEq2WQuG4xwQCP1FAFf7PNjycR+V5vmb9x 3ff3424/Dr7+
1Ogimju53McW2V87g53YCgAYx7evepvPh87yfNj83+5uG716ULPC67kljYcc hgepwP14oAz2
0+Z0bMcAZhMMhicF+h6fh9PyqwLeZppfMEaxPKsmVYlvl24GMcfdB/T3qx58 PneT5sfm/wBz
cN3r0oE8LOEEsZYkrtDDOR1H4UAVFsnWblA6eaZMmdx1bd9zGOP1xUqpci8e Xy4tjBU/1hyA
CecbffpUiXdu8zQrNGZFO0pu5z9KmoAzpbKcuSmziUSAmVgG+bONo4H15zjP U8ST205aTyvL
KvKkvzEg5Xb8vT/Z6/hjvVkTws4QSxliSu0MM5HUfhR58PneT5sfm/3Nw3ev SgCJ0nN6kipG
Y1UrkuQcEqScY9vWlWOaO4kKeWUkcOWJORwBjHfp1z39uZFnhddySxsOOQwP U4H68UefD53k
+bH5v9zcN3r0oAb9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd8Yz+XFR/a7bz PL+0Rb87du8Z
z6YqN75FuDD5UpIkWPIXjJGf0HWgCvcxSxRqpjV41uBIGVWZuX3HgDjAJ5z2 96lntpy0nleW
VeVJfmJByu35en+z1/DHepmufnwkMki7gpdAMA5x65474/oaf58PneT5sfm/ 3Nw3evSgClLZ
TlyU2cSiQEysA3zZxtHA+vOcZ6niw6Tm9SRUjMaqVyXIOCVJOMe3rUqzwuu5 JY2HHIYHqcD9
eKFnhddySxsOOQwPU4H68UAROk5vUkVIzGqlclyDglSTjHt60ipci8eXy4tj BU/1hyACecbf
fpU3nw+d5Pmx+b/c3Dd69KBPCzhBLGWJK7QwzkdR+FAETpOb1JFSMxqpXJcg 4JUk4x7etQrZ
Os3KB080yZM7jq277mMcfrirUM/mySp5br5TbSWxgnGeMH0I/Ol8+HzvJ82P zf7m4bvXpQBU
ltZynlosLKs3nKzE5J37sdOOpGefpzxd8tN27Yuc7s474xn8uKY9zAjMrzxq yDLAuAQPf8x+
dKJ4zOYQylwMkBhkdOo696AGeS0kwklYAIfkVMg9e579Bx0+vBqeoxPCzhBL GWJK7QwzkdR+
FQvfItwYfKlJEix5C8ZIz+g60AWqKYkscjMqsCyHDL3H1FPoAKKKKACiiigA ooooAKKKKACi
iigAooooAKKKKACiiigAooooAKKKKACiiigBr/dNR/5/z/n/AOvI/wB01H/n /P8An/64A1/u
n/P+f8/jHUj/AHT/AJ/z/n8Y6Qytd9U/H+lFF31T8f6UUCJ4/un/AHj/ADp1 Nj+6f94/zp1A
y5UHktHMZImBDn51fJPXse3U8dPpyanopiKf2eb7Z9oxH9/GzccbcY3dPv8A b6ce9N+yzNPk
pGq+ZuysrEYzn7hGMn19eetW3ljjZVZgGc4Ve5+gpPPh/wCesf39n3h970+v tQBUltZynlos
LKs3nKzE5J37sdOOpGefpzxZ8t/tnmbItnl7d2Pnznpn0/rStcwLL5TTxiTI GwuM5PTimy3c
UThNwZ9yqVVhlckAEjPTkfnQBXWydZuUDp5pkyZ3HVt33MY4/XFTOk5vUkVI zGqlclyDglST
jHt61P5ieZ5e9d+N23POPXFNM8IkMZlj3jGV3DIzjHH4j86AKi2TrNygdPNM mTO46tu+5jHH
64qJtPmdGzHAGYTDIYnBfoen4fT8q0PPh87yfNj83+5uG716ULPC67kljYcc hgepwP14oAqL
ZOs3KB080yZM7jq277mMcfrih7actOyxw7pJkcEuQSq44Py/7P6n8bYnhZwg ljLEldoYZyOo
/CgygXCwlWyyFw3GOCAR+ooAjWOaO4kKeWUkcOWJORwBjHfp1z39ubFR+fD5 3k+bH5v9zcN3
r0o8+H/nrH9/Z94fe9Pr7UAVHtpy07LHDukmRwS5BKrjg/L/ALP6n8Wy2U5c lNnEokBMrAN8
2cbRwPrznGep4me+KOU+yXDEBiMBfmCnBIGc9x9ala7tl3briIbTtbLjg+h/ I/lQBRbT5nRs
xwBmEwyGJwX6Hp+H0/KpVsnWblA6eaZMmdx1bd9zGOP1xVsTws4QSxliSu0M M5HUfhR58Pne
T5sfm/3Nw3evSgBv2aPzN+6XOc4858flnH4VJ5abt2xc53Zx3xjP5cUiSxyM yqwLIcMvcfUU
+gCukc0TFI/LMRcvuYncMnJGO/U85HXvjmP7PNjycR+V5vmb9x3ff3424/Dr 7+1XKKAMttPm
dGzHAGYTDIYnBfoen4fT8qG0+Z0bMcAZhMMhicF+h6fh9PyrUooAp/Z5seTi PyvN8zfuO77+
/G3H4dff2pj205adljh3STI4JcglVxwfl/2f1P436KAKYju1mlKCILJKr7t5 yFG0EY29wPXv
R9nmx5OI/K83zN+47vv78bcfh19/arlFAGZKknmLbCMMFnEoco3d9x5xgYBP OT0xjmrTpOb1
JFSMxqpXJcg4JUk4x7etWaKAKD205adljh3STI4JcglVxwfl/wBn9T+N3y03 bti5zuzjvjGf
y4p1FAEHktJMJJWACH5FTIPXue/QcdPrwanoooAKKKKACiiigAooooAKKKKA CiiigAooooAK
KKKACiiigAooooAKKKKACiiigBr/AHTUf+f8/wCf/ryP901H/n/P+f8A64A1 /un/AD/n/P4x
1I/3T/n/AD/n8Y6Qytd9U/H+lFF31T8f6UUCJ4/un/eP86dTY/un/eP86dQM uUUUUxEHktHM
ZImBDn51fJPXse3U8dPpyai+zzfbPtGI/v42bjjbjG7p9/t9OPerlMeWONlV mAZzhV7n6CgC
p9lmafJSNV8zdlZWIxnP3CMZPr689aSW1nKeWiwsqzecrMTknfux046kZ5+n PFvz4f8AnrH9
/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oATy3+2eZsi2eXt3Y+fOemfT+tRLB IrCMxwvGJTIH
YkkEsTwuOvOM59/apJbuKJwm4M+5VKqwyuSACRnpyPzqXzE8zy9678btuece uKAKv2ebHk4j
8rzfM37ju+/vxtx+HX39qrtp8zo2Y4AzCYZDE4L9D0/D6flV9rmBZfKaeMSZ A2FxnJ6cUvnw
+d5Pmx+b/c3Dd69KAKSRvNd3IEQVDMjGRgQSFC8DjkZU9+/52HSc3qSKkZjV SuS5BwSpJxj2
9ake5gRmV541ZBlgXAIHv+Y/Ol8+H/nrH9/Z94fe9Pr7UAVFsnWblA6eaZMm dx1bd9zGOP1x
T/s832z7RiP7+Nm4424xu6ff7fTj3qx58PneT5sfm/3Nw3evSgTws4QSxliS u0MM5HUfhQAx
45DexSAJ5aoykljnJIPTH+z696haPffmMB/LJEsmUOCy4xz7/KeP7nuasmeE SGMyx7xjK7hk
Zxjj8R+dHnw+d5Pmx+b/AHNw3evSgCkkbzXdyBEFQzIxkYEEhQvA45GVPfv+ blsnWblA6eaZ
Mmdx1bd9zGOP1xVxJY5GZVYFkOGXuPqKfQBB5LSTCSVgAh+RUyD17nv0HHT6 8Gp6KKACiiig
AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKK
KKACiiigAooooAKKKKAGv901H/n/AD/n/wCvI/3TUf8An/P+f/rgDX+6f8/5 /wA/jHUj/dP+
f8/5/GOkMrXfVPx/pRRd9U/H+lFAieP7p/3j/OnVSaJmlYlpfmJ2ojkZ68+3 9T265WFf3yEN
Kpxu2PIWyOeR/h9D65NCuV2ubFFFFMkKg8lo5jJEwIc/Or5J69j26njp9OTU 9FAFP7PN9s+0
Yj+/jZuONuMbun3+30496b9lmafJSNV8zdlZWIxnP3CMZPr689a59Li9dWZZ 5yqjLHecD8aX
zr//AJ63P3d/3m+76/T3rTkJ5jeltZynlosLKs3nKzE5J37sdOOpGefpzxZ8 t/tnmbItnl7d
2Pnznpn0/rXMiXUWj8xXujHjO4FsfnTo3v5EL/aJ1TaSGZmw2ASQD68H8qOT zDmNz7LM0+Sk
ar5m7KysRjOfuEYyfX1560i2TrNygdPNMmTO46tu+5jHH64rA+03vl+Z59xs zjdvbGfTNL51
/wCV5vm3Pl/39zY/OjkDmNu5ilijVTGrxrcCQMqszcvuPAHGATznt71LPbTl pPK8sq8qS/MS
Dldvy9P9nr+GO9c+Li7MBlF3LgMFK+Y2eQSD+ho86/8AK83zbny/7+5sfnRy BzG8tk6zcoHT
zTJkzuOrbvuYxx+uKHtpy07LHDukmRwS5BKrjg/L/s/qfxwWmv0OGluVPPBZ h0GT+nNHnX/l
eb5tz5f9/c2Pzo5A5jolgkVhGY4XjEpkDsSSCWJ4XHXnGc+/tUa2TrNygdPN MmTO46tu+5jH
H64rBM1+E3mW5CgA5LNjB6GnM+opEJWkuRGRkNubGKOTzDmOk8lpJhJKwAQ/ IqZB69z36Djp
9eDU9cf9tuv+fmb/AL+Gnma/CbzLchQAclmxg9DR7MOY62iuS86/8rzfNufL /v7mx+dDTX6H
DS3Knngsw6DJ/TmjkDmOtorkvOv/ACvN8258v+/ubH507fqXl+Zuu9mM7stj Hrmjk8w5jq6K
5dTetAJftrAFGkwZWzgHH6npUXnX/wDz1ufu7/vN931+nvRyeYcx1tFcmJdR aPzFe6MeM7gW
x+dJ51/5Xm+bc+X/AH9zY/Ojk8w5jraK5PzdR2lt91gLuJy3T1+lIZr8JvMt yFAByWbGD0NH
J5hzHW0VyXnX/leb5tz5f9/c2Pzoaa/Q4aW5U88FmHQZP6c0cgcx1tFcl51/ 5Xm+bc+X/f3N
j86lU3rQCX7awBRpMGVs4Bx+p6UcnmHMdRRXH/bbr/n5m/7+GpPN1HaW33WA u4nLdPX6UezD
mOsorkvOv/K83zbny/7+5sfnUqjUWgMxnuFQDIJL/MMZ7fzNHJ5hzHUUVym/ UvL8zdd7MZ3Z
bGPXNPU3rQCX7awBRpMGVs4Bx+p6UuTzC51FFcl51/8A89bn7u/7zfd9fp70 ol1Fo/MV7ox4
zuBbH50+TzDmOsorkvOv/K83zbny/wC/ubH50vm6jtLb7rAXcTlunr9KOTzD mOsorkjNfhN5
luQoAOSzYweho86/8rzfNufL/v7mx+dHIHMdbRXJNNfocNLcqeeCzDoMn9Oa POv/ACvN8258
v+/ubH50cgcx1tFcvuu/LVhfMxZC4QO+cDOe2OMHv2qLzr/yvN8258v+/ubH 50cgcx1tFcuo
1FoDMZ7hUAyCS/zDGe38zQpvWgEv21gCjSYMrZwDj9T0pcnmFzqKK5JLm6aK SQ3UwCYA+c8k
9uvoCfwpHuL1FVmnnCsMqd5wfxp8gcx11FFFZlBRRRQA1/umo/8AP+f8/wD1 5H+6aj/z/n/P
/wBcAa/3T/n/AD/n8Y6kf7p/z/n/AD+NczxgkZPHH3TSGk3sRXfVPx/pRRdE MIyOhBI/SigB
u7MxdFLyR5AQd/mzn9enXp60Iha8Ezh03ZIVhyT3/D3+lOMcJ5aBJJGLYG0Z PJ70sAg3jFuk
UmNy8DkeoNLS5peXKalFFFUZBRRRQBx+/wAyIJIhyo+QpgfmO/Qc9frxUvmx /ZfI+f7md20Z
3Zzt6/d/rzXQyQWSMqvDAGc/KuwZb8KTy9P/ALlt9/Z0X73p9fatOdBZGB5y CHALsxj24Mag
5xj7+c49vTApYpog+9jMC8XlFVAwBt25689jjj/HdZNOWXymW1EhI+Qhc57c U2UWEb7PIgdy
yhlVVyuSACR6cj86OdBZHOZH2Ty8y79+7bn5MY649asG5DRDBKP5ezAhU/w4 +9nPP9a6D7PZ
eZ5fkwb8btu0Zx64pvl6f53k7Lbzf7mF3evSjnQWRzieV9keMtJ5jENgIMcA 8Zz71KbkNEME
o/l7MCFT/Dj72c8/1reMNr9oEJtI8spcNsXBwQD+PIo8vT/O8nZbeb/cwu71 6Uc6CyMVbuNX
Xa0xUGIgFQMhOo6/j9fzqM3IaIYJR/L2YEKn+HH3s55/rW8senyLuVLZgccg Kc5OB+uRR5en
+d5Oy283+5hd3r0o5kFkYKTRbYFZpsJE6kBB1bPI5/2v0HrUJMckEYYPvRCo AAweSc57demP
510gj09n2BLYsWI24XJI6j6imqNNkmaFVtjIGwU2rnP070c4WRy21vSrqTRb YFZpsJE6kBB1
bPI5/wBr9B610X2O1/59of8AvgVGI9PZ9gS2LFiNuFySOo+oocwtEw4rmIKA 4fmMoQI1JHy4
zuPJ+nHX83Ldxq67WmKgxEAqBkJ1HX8fr+dbXl6f53k7Lbzf7mF3evShY9Pk XcqWzA45AU5y
cD9cijmQWRgm5DRDBKP5ezAhU/w4+9nPP9ar+dL5ezZHjGP9UufzxnNdN5en +d5Oy283+5hd
3r0puNM8zy8Wm/djb8uc+mPWjnQWRzGZMYy2MYxntnOPz5qzDLEFj8wSArG0 Y2gHg7uev+10
/XtW07WS3Bh+w7j5ix5EQIJIz+g61MI9PZ9gS2LFiNuFySOo+oo5wsjA85BD gF2Yx7cGNQc4
x9/Oce3pgUpuQ0QwSj+XswIVP8OPvZzz/Wt7y9P87ydlt5v9zC7vXpSMmnLL 5TLaiQkfIQuc
9uKOdBZHPStHJbQory7o0wFKjbknJ5z7+nYVIk0W2BWabCROpAQdWzyOf9r9 B61usmnLL5TL
aiQkfIQuc9uKRhpi7twtBtbDZ28Hng+/Bo5wsjFiuYgoDh+YyhAjUkfLjO48 n6cdfzct3Grr
taYqDEQCoGQnUdfx+v51teXp/neTstvN/uYXd69KQpp27aVtdxbbjC5Len15 /WjmQWRhG5DR
DBKP5ezAhU/w4+9nPP8AWqmZMYy2MYxntnOPz5rppRYRvs8iB3LKGVVXK5IA JHpyPzpjtZLc
GH7DuPmLHkRAgkjP6DrRzoLI5ra3pVmVo5LaFFeXdGmApUbck5POff07Cum+ x2v/AD7Q/wDf
AqIpp27aVtdxbbjC5Len15/WnzhaJhG5DRDBKP5ezAhU/wAOPvZzz/Woz5LW iR7pd6ln/wBW
MEkDjr7frXReXp/neTstvN/uYXd69KheTThcCAQwO5bDABODnHOTyevAyaXO gsjn/Ol8vZsj
xjH+qXP54zmmZkxjLYxjGe2c4/PmunxpnmeXi037sbflzn0x61G7WS3Bh+w7 j5ix5EQIJIz+
g60+dBZGLDLEFj8wSArG0Y2gHg7uev8AtdP17UvnIIcAuzGPbgxqDnGPv5zj 29MCt8R6ez7A
lsWLEbcLkkdR9RR5en+d5Oy283+5hd3r0pc6CyME3IaIYJR/L2YEKn+HH3s5 5/rUcrRyW0KK
8u6NMBSo25Jyec+/p2FdCyacsvlMtqJCR8hC5z24oZNOWXymW1EhI+Qhc57c Uc6CyMJJotsC
s02EidSAg6tnkc/7X6D1p0VzEFAcPzGUIEakj5cZ3Hk/Tjr+e0w0xd24Wg2t hs7eDzwffg07
y9P87ydlt5v9zC7vXpRzoLIxVu41ddrTFQYiAVAyE6jr+P1/OozchohglH8v ZgQqf4cfeznn
+tbpTTt20ra7i23GFyW9Prz+tNlFhG+zyIHcsoZVVcrkgAkenI/OjmQWRh+e ggiiAYjyyrNs
AYZJPBznvjHGR9aU3IaIYJR/L2YEKn+HH3s55/rWz/onmujWIVVkCM5RMZOM d885HbvUvl6f
53k7Lbzf7mF3evSjnQWRzp8lrRI90u9Sz/6sYJIHHX2/WoMyYxlsYxjPbOcf nzXRvJpwuBAI
YHcthgAnBzjnJ5PXgZNDtZLcGH7DuPmLHkRAgkjP6DrRzhaJz8pzHFHHyqjc T6scZ/oPw96U
Psi2RISXHzF8H8h269ev0zXSvBarNHGLWFi+SfkHAHfp6kD8aVILKRnVYYCy n5l2DI+oo5ws
i1RRRWYBRRRQA1/umo/8/wCf8/8A15H+6aj/AM/5/wA//XAGv90/5/z/AJ/G qbdSSd7DJz2/
wq0/3T/n/P8An8apuFBI2McHHb/GguPN0I7lQqxqOgBH8qKLlgyxsOhBP8qK RL3HMrBhMil2
TICj13Eg02OJ5Lo3Dq6Drhxzk/0qxH90/wC8f506lYvndrFyiiiqMwoopjyx xsqswDOcKvc/
QUAVztimaSOVcFgJFcknqeh7Ac8dOD05NREEXhuC0XEm0puONuMbun3+CM9M AjPGatMypNDG
qAkg9ONqjr+u0Y9/agS24xiSIYbyxgjg/wB36+1BXulMofPJYxIqy5JWViOu fuEYzwcnscnq
KSZH2GNTAVjn80M7HOd+7HTjuM89D74uGe2SVYjLCsg+UJuAIz2x+VNkuYIX VBtZwVTahGUB
IAyM9OR+lAe6IXUXhkPk7Amwtj5856Z/u8H8QfSqwhVJm3bXQTbyTcOMZbd9 zGOOfyPTmr4M
QkEYKBwuQoxkL9PSmGe2SVYjLCsg+UJuAIz2x+VAe6QySP8AbVkHk+XGChJc g8kEnGO209/X
pg1CIVSZt210E28k3DjGW3fcxjjn8j05q6JbcTCESRCUDAQEbgOvSkae2iYq 0sKNGvILAFRx
+Q6fpQHumc9sSj7hbqx84E7icF+h+72wQfYH0IqUQqkzbtroJt5JuHGMtu+5 jHHP5HpzV0S2
4xiSIYbyxgjg/wB36+1AltxMIRJEJQMBARuA69KA90pSo+64YCDc06NkuQcL jg/L/sn2GT6V
OHMVxKVeLY8gZmYnK8AEAY5+6ec8c+lTLLb71RJItwyiqCM8dQP04o823WTy xJEHQAbcjKg4
xx+X6UB7o4zxDOXHBwf8/gfyPpVCVH3XDAQbmnRslyDhccH5f9k+wyfSrolt xMIRJEJQMBAR
uA69KWN4WYrGV3R/KVxgr+HYcfjQHumfNC29irx/LMHyZWAPzZxtHA6HnnoS ec4Y9sSj7hbq
x84E7icF+h+72wQfYH0IrWCqMYUDAwMDoKAqjGFAwMDA6CgPdM4QqkzbtroJ t5JuHGMtu+5j
HHP5HpzVkpbiQuZZMhskec+M/TOMcH24PpVgKoxhQMDAwOgoCqMYUDAwMDoK A90jL24YsdmQ
2Scd8Yz+QIz7H0qjkPdXIwiIZkYyNkMduOAMcjKt345P10gqjGFAwMDA6CgK oxhQMDAwOgoD
3TMmhbexV4/lmD5MrAH5s42jgdDzz0JPOcPKHzyWMSKsuSVlYjrn7hGM8HJ7 HJ6itAKoxhQM
DAwOgoCqMYUDAwMDoKA90zyh88ljEirLklZWI65+4RjPByexyeopZYs3Lv56 iMyKzDJ6jb27
/wCr6+7enN8KoxhQMDAwOgoCqMYUDAwMDoKA90okEAwlovKE3mF9x3ff3424 9iM57E9sU6Fj
Fd3DsIQsknLBzuAC4HG3noe/HPoauBVGMKBgYGB0FAVRjCgYGBgdBQHumdMj 7DGpgKxz+aGd
jnO/djpx3Geeh98XS9uGLHZkNknHfGM/kCM+x9KkCqMYUDAwMDoKAqjGFAwM DA6CgPdGmeIZ
y44OD/n8D+R9KqwsYru4dhCFkk5YOdwAXA4289D3459DVwKoxhQMDAwOgoCq MYUDAwMDoKA9
0zhCqTNu2ugm3km4cYy277mMcc/kenNSiSRLySUiHYdqH94cgAtzjb7n8jzV wKoxhQMDAwOg
oCqMYUDAwMDoKA90rlLcSFzLJkNkjznxn6Zxjg+3B9KkL24YsdmQ2Scd8Yz+ QIz7H0qQKoxh
QMDAwOgoCqMYUDAwMDoKA90zch7q5GERDMjGRshjtxwBjkZVu/HJ+qTQtvYq 8fyzB8mVgD82
cbRwOh556EnnONMKoxhQMDAwOgoCqMYUDAwMDoKA90zyh88ljEirLklZWI65 +4RjPByexyeo
oKHzyWMSKsuSVlYjrn7hGM8HJ7HJ6itAKoxhQMDAwOgoCqMYUDAwMDoKA90o SxZuXfz1EZkV
mGT1G3t3/wBX1929OVIIBhLReUJvML7ju+/vxtx7EZz2J7Yq8FUYwoGBgYHQ UBVGMKBgYGB0
FAe6U4WMV3cOwhCyScsHO4ALgcbeeh78c+hqKZH2GNTAVjn80M7HOd+7HTju M89D740QqjGF
AwMDA6CgKoxhQMDAwOgoD3TPMX+kTzM6AiUMq+YxVsDGGGMfw5zzgj/ZpBCq TNu2ugm3km4c
Yy277mMcc/kenNaIVRjCgYGBgdBQFUYwoGBgYHQUB7pTEkiXkkpEOw7UP7w5 ABbnG33P5Hmr
Be3DFjsyGyTjvjGfyBGfY+lSBVGMKBgYGB0FAVRjCgYGBgdBQHuleJ0WSaWV gGLbcZ6KM4/9
mPtkjtSHa83mTSqBG2FVCQRz3PccdOnBznGRZCqMYUDAwMDoKAqjGFAwMDA6 CgPdHUUUUEhR
RRQA1/umo/8AP+f8/wD15H+6aj/z/n/P/wBcAa/3T/n/AD/n8a5gjJJweefv GrD/AHT/AJ/z
/n8Y6Q02titdAKIwOgBA/Sii76p+P9KKAJ4/un/eP86dTY/un/eP86dQBcoo opiCoPJaOYyR
MCHPzq+SevY9up46fTk1I8scbKrMAznCr3P0FI8u2aOMDJfJPPQDv+ZA/GgB sKN5kssgwzna
B6KM4/qfxx2qH7PN9s+0Yj+/jZuONuMbun3+30496sefD/z1j+/s+8Pven19 qRrmBZfKaeMS
ZA2FxnJ6cUAVvsszT5KRqvmbsrKxGM5+4RjJ9fXnrSS2s5Ty0WFlWbzlZick 792OnHUjPP05
4sS3cUThNwZ9yqVVhlckAEjPTkfnUvmJ5nl71343bc849cUAR+W/2zzNkWzy 9u7Hz5z0z6f1
qv8AZZmnyUjVfM3ZWViMZz9wjGT6+vPWrRnhEhjMse8Yyu4ZGcY4/EfnR58P neT5sfm/3Nw3
evSgCotk6zcoHTzTJkzuOrbvuYxx+uKZcxSxRqpjV41uBIGVWZuX3HgDjAJ5 z296vLPC67kl
jYcchgepwP14oE8LOEEsZYkrtDDOR1H4UAVp7actJ5XllXlSX5iQcrt+Xp/s 9fwx3pq2TrNy
gdPNMmTO46tu+5jHH64q2ZQLhYSrZZC4bjHBAI/UUefD53k+bH5v9zcN3r0o AqPbTlp2WOHd
JMjglyCVXHB+X/Z/U/jIsEisIzHC8YlMgdiSQSxPC4684zn39qn8+H/nrH9/ Z94fe9Pr7VA9
8Ucp9kuGIDEYC/MFOCQM57j60ARrZOs3KB080yZM7jq277mMcfrirHktJMJJ WACH5FTIPXue
/QcdPrwaVru2XduuIhtO1suOD6H8j+VOE8LOEEsZYkrtDDOR1H4UASUVH58P neT5sfm/3Nw3
evSlSWORmVWBZDhl7j6igB9FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUANf7pqP/P8An/P/ ANeR/umo/wDP
+f8AP/1wBr/dP+f8/wCfxjqR/un/AD/n/P4x0hla76p+P9KKLvqn4/0ooETx /dP+8f506mx/
dP8AvH+dOoGXKKKY8scbKrMAznCr3P0FMRH5LRzGSJgQ5+dXyT17Ht1PHT6c mlhRvMllkGGc
7QPRRnH9T+OO1OeXbNHGBkvknnoB3/MgfjR58P8Az1j+/s+8Pven19qAK/2e b7Z9oxH9/Gzc
cbcY3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561Za5gWXymnjEmQNhc ZyenFNlu4onC
bgz7lUqrDK5IAJGenI/OgCvLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/bP M2RbPL27sfPn
PTPp/WpPMTzPL3rvxu255x64pvnw+d5Pmx+b/c3Dd69KAIFgkVhGY4XjEpkD sSSCWJ4XHXnG
c+/tSfZ5seTiPyvN8zfuO77+/G3H4dff2qwZQLhYSrZZC4bjHBAI/UUefD53 k+bH5v8Ac3Dd
69KAM9tPmdGzHAGYTDIYnBfoen4fT8qekbzXdyBEFQzIxkYEEhQvA45GVPfv +d1Z4XXcksbD
jkMD1OB+vFHnw+d5Pmx+b/c3Dd69KAInSc3qSKkZjVSuS5BwSpJxj29ahWyd ZuUDp5pkyZ3H
Vt33MY4/XFWxPCzhBLGWJK7QwzkdR+FNS7t3maFZozIp2lN3OfpQBD9nm+2f aMR/fxs3HG3G
N3T7/b6ce9SvHIb2KQBPLVGUksc5JB6Y/wBn171IkscjMqsCyHDL3H1FPoAp NHvvzGA/lkiW
TKHBZcY59/lPH9z3NRpG813cgRBUMyMZGBBIULwOORlT37/no0UAUFsnWblA 6eaZMmdx1bd9
zGOP1xVjyWkmEkrABD8ipkHr3PfoOOn14NT0UAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UANf7pqP/P8A
n/P/ANeR/umo/wDP+f8AP/1wBr/dP+f8/wCfxjqR/un/AD/n/P4x0hla76p+ P9KKLvqn4/0o
oETx/dP+8f506mx/dP8AvH+dOoGXKg8lo5jJEwIc/Or5J69j26njp9OTU9Me WONlVmAZzhV7
n6CmIZCjeZLLIMM52geijOP6n8cdqh+zzfbPtGI/v42bjjbjG7p9/t9OPerH nw/89Y/v7PvD
73p9faka5gWXymnjEmQNhcZyenFAFb7LM0+Skar5m7KysRjOfuEYyfX1560k trOU8tFhZVm8
5WYnJO/djpx1Izz9OeLEt3FE4TcGfcqlVYZXJABIz05H51L5ieZ5e9d+N23P OPXFAEflv9s8
zZFs8vbux8+c9M+n9arLZOs3KB080yZM7jq277mMcfrirfnw+d5Pmx+b/c3D d69KDKBcLCVb
LIXDcY4IBH6igCJ0nN6kipGY1UrkuQcEqScY9vWoVsnWblA6eaZMmdx1bd9z GOP1xVvz4fO8
nzY/N/ubhu9elCzwuu5JY2HHIYHqcD9eKAM9tPmdGzHAGYTDIYnBfoen4fT8 qlWydZuUDp5p
kyZ3HVt33MY4/XFW/Ph87yfNj83+5uG716UCeFnCCWMsSV2hhnI6j8KAKj20 5adljh3STI4J
cglVxwfl/wBn9T+M6xzR3EhTyykjhyxJyOAMY79Oue/ty5Lu3eZoVmjMinaU 3c5+lTUAQeS0
kwklYAIfkVMg9e579Bx0+vBqeoxPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3 Dd69KAJKKjWe
F13JLGw45DA9TgfrxR58PneT5sfm/wBzcN3r0oAkoqH7XbeZ5f2iLfnbt3jO fTFRvfItwYfK
lJEix5C8ZIz+g60AWqKjE8LOEEsZYkrtDDOR1H4UefD53k+bH5v9zcN3r0oA koqJrmBZfKae
MSZA2FxnJ6cUNcwLL5TTxiTIGwuM5PTigCWioWu7Zd264iG07Wy44PofyP5U 7z4fO8nzY/N/
ubhu9elAElFRfaYAwXz49xbYBvGS3p9eRTZbuKJwm4M+5VKqwyuSACRnpyPz oAnoqsLweayN
DIqo4jLnbjJxjvnnI7d6l8+HzvJ82Pzf7m4bvXpQBJRVV9Qt1uFgV1dycEB1 +U5x3P6DJoe+
Rbgw+VKSJFjyF4yRn9B1oAtUUVCl3bvM0KzRmRTtKbuc/SgCaioWu7Zd264i G07Wy44PofyP
5U4Tws4QSxliSu0MM5HUfhQBJRUfnw+d5Pmx+b/c3Dd69Kb9rtvM8v7RFvzt 27xnPpigCaiq
r3yLcGHypSRIseQvGSM/oOtTefD/AM9Y/v7PvD73p9fagCSiomuYFl8pp4xJ kDYXGcnpxTZb
uKJwm4M+5VKqwyuSACRnpyPzoAnopvmJ5nl71343bc849cUxrmBZfKaeMSZA 2FxnJ6cUAS0V
Cl3bvM0KzRmRTtKbuc/Sl+0wBgvnx7i2wDeMlvT68igCWioxPGZzCGUuBkgM Mjp1HXvQJ4Wc
IJYyxJXaGGcjqPwoAkoqJ7mBGZXnjVkGWBcAge/5j86ie+Rbgw+VKSJFjyF4 yRn9B1oAtUVG
8u2aOMDJfJPPQDv+ZA/GlSWORmVWBZDhl7j6igB9FFFABRRRQA1/umo/8/5/ z/8AXkf7pqP/
AD/n/P8A9cAa/wB0/wCf8/5/GOpH+6f8/wCf8/jHSGVrvqn4/wBKKLvqn4/0 ooETx/dP+8f5
06mx/dP+8f506gZcqDyWjmMkTAhz86vknr2PbqeOn05NT0x5Y42VWYBnOFXu foKYit9nm+2f
aMR/fxs3HG3GN3T7/b6ce9N+yzNPkpGq+ZuysrEYzn7hGMn19eetWvPh/wCe sf39n3h970+v
tSNcwLL5TTxiTIGwuM5PTigCrLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/ AGzzNkWzy9u7
Hz5z0z6f1pJbuKJwm4M+5VKqwyuSACRnpyPzqXzE8zy9678btueceuKAKS2T rNygdPNMmTO4
6tu+5jHH64qZ0nN6kipGY1UrkuQcEqScY9vWpfPh87yfNj83+5uG716UGUC4 WEq2WQuG4xwQ
CP1FAFRbJ1m5QOnmmTJncdW3fcxjj9cVE2nzOjZjgDMJhkMTgv0PT8Pp+VaH nw+d5Pmx+b/c
3Dd69KFnhddySxsOOQwPU4H68UAVFsnWblA6eaZMmdx1bd9zGOP1xQ9tOWnZ Y4d0kyOCXIJV
ccH5f9n9T+Nvz4fO8nzY/N/ubhu9elAnhZwgljLEldoYZyOo/CgCNY5o7iQp 5ZSRw5Yk5HAG
Md+nXPf25sVCl3bvM0KzRmRTtKbuc/SpqAKD205adljh3STI4JcglVxwfl/2 f1P4tlspy5Kb
OJRICZWAb5s42jgfXnOM9TxdE8LOEEsZYkrtDDOR1H4UefD53k+bH5v9zcN3 r0oAz20+Z0bM
cAZhMMhicF+h6fh9PyqVbJ1m5QOnmmTJncdW3fcxjj9cVbWeF13JLGw45DA9 TgfrxR58PneT
5sfm/wBzcN3r0oAb9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd8Yz+XFR/a7b zPL+0Rb87du8
Zz6YqN75FuDD5UpIkWPIXjJGf0HWgCBI3mu7kCIKhmRjIwIJCheBxyMqe/f8 yWynLkps4lEg
JlYBvmzjaOB9ec4z1PF3z4f+esf39n3h970+vtSNcwLL5TTxiTIGwuM5PTig Ct9lmafJSNV8
zdlZWIxnP3CMZPr689aPsszT5KRqvmbsrKxGM5+4RjJ9fXnrVrz4fO8nzY/N /ubhu9elJ9pg
DBfPj3FtgG8ZLen15FAFeSzke5LiQCNnVyOeo29v+Af+PH05X7PNjycR+V5v mb9x3ff3424/
Dr7+1WBPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3Dd69KAIYIpo7udzHFtlf O4Od2AoAGMe3
r3qKW1nKeWiwsqzecrMTknfux046kZ5+nPFtZ4XXcksbDjkMD1OB+vFHnw+d 5Pmx+b/c3Dd6
9KAKv2SU3E0x25MgdF8xirYAGGGMDpnPODj05RbJ1m5QOnmmTJncdW3fcxjj 9cVMLweayNDI
qo4jLnbjJxjvnnI7d6l8+HzvJ82Pzf7m4bvXpQBCqXIvHl8uLYwVP9YcgAnn G336VY8tN27Y
uc7s474xn8uKrvqFutwsCuruTggOvynOO5/QZND3yLcGHypSRIseQvGSM/oO tAFqq6xzR3Eh
TyykjhyxJyOAMY79Oue/tzYqFLu3eZoVmjMinaU3c5+lAEDR778xgP5ZIlky hwWXGOff5Tx/
c9zUaRvNd3IEQVDMjGRgQSFC8DjkZU9+/wCdtru2XduuIhtO1suOD6H8j+VO E8LOEEsZYkrt
DDOR1H4UAVFsnWblA6eaZMmdx1bd9zGOP1xVn7NH5m/dLnOcec+Pyzj8Kd58 PneT5sfm/wBz
cN3r0pv2u28zy/tEW/O3bvGc+mKAJPLTdu2LnO7OO+MZ/Liqv2eb7Z9oxH9/ GzccbcY3dPv9
vpx70575FuDD5UpIkWPIXjJGf0HWpvPh/wCesf39n3h970+vtQBV+yzNPkpG q+ZuysrEYzn7
hGMn19eetJLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tni01zAsvlNPGJMgbC4zk9 OKbLdxROE3Bn
3KpVWGVyQASM9OR+dAC+W/2zzNkWzy9u7Hz5z0z6f1qv9lmafJSNV8zdlZWI xnP3CMZPr689
aueYnmeXvXfjdtzzj1xTGuYFl8pp4xJkDYXGcnpxQAxY5o7iQp5ZSRw5Yk5H AGMd+nXPf25b
BFNHdzuY4tsr53BzuwFAAxj29e9SJd27zNCs0ZkU7Sm7nP0pftMAYL58e4ts A3jJb0+vIoAj
dJzepIqRmNVK5LkHBKknGPb1qF7actOyxw7pJkcEuQSq44Py/wCz+p/G2J4z OYQylwMkBhkd
Oo696BPCzhBLGWJK7QwzkdR+FAFCVJPMW2EYYLOJQ5Ru77jzjAwCecnpjHNa Plpu3bFzndnH
fGM/lxTHuYEZleeNWQZYFwCB7/mPzqJ75FuDD5UpIkWPIXjJGf0HWgCSFG8y WWQYZztA9FGc
f1P447UnktJMJJWACH5FTIPXue/QcdPrwae8u2aOMDJfJPPQDv8AmQPxpUlj kZlVgWQ4Ze4+
ooAfRRRQAUUUUANf7pqP/P8An/P/ANeR/umo/wDP+f8AP/1wBr/dP+f8/wCf xjqR/un/AD/n
/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/dP8AvH+dOoGXKg8lo5jJ EwIc/Or5J69j
26njp9OTUjyxxsqswDOcKvc/QUjy7Zo4wMl8k89AO/5kD8aYiv8AZ5vtn2jE f38bNxxtxjd0
+/2+nHvTfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVrz4f8AnrH9/Z94fe9Pr7Uj XMCy+U08YkyB
sLjOT04oAqy2s5Ty0WFlWbzlZick792OnHUjPP054s+W/wBs8zZFs8vbux8+ c9M+n9aSW7ii
cJuDPuVSqsMrkgAkZ6cj86l8xPM8veu/G7bnnHrigCktk6zcoHTzTJkzuOrb vuYxx+uKmdJz
epIqRmNVK5LkHBKknGPb1qRrmBZfKaeMSZA2FxnJ6cUpnhEhjMse8Yyu4ZGc Y4/EfnQBUWyd
ZuUDp5pkyZ3HVt33MY4/XFRNp8zo2Y4AzCYZDE4L9D0/D6flV6O5jeVoydjq 5QKxGWwAcjnn
ginefD53k+bH5v8Ac3Dd69KAKi2TrNygdPNMmTO46tu+5jHH64oe2nLTsscO 6SZHBLkEquOD
8v8As/qfxtrPC67kljYcchgepwP14o8+HzvJ82Pzf7m4bvXpQBGsc0dxIU8s pI4csScjgDGO
/Trnv7c2KYkscjMqsCyHDL3H1FPoAoPbTlp2WOHdJMjglyCVXHB+X/Z/U/i2 WynLkps4lEgJ
lYBvmzjaOB9ec4z1PGjRQBltp8zo2Y4AzCYZDE4L9D0/D6flUq2TrNygdPNM mTO46tu+5jHH
64q/RQBD9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd8Yz+XFOooApT205aTyv LKvKkvzEg5Xb
8vT/AGev4Y70n2WZp8lI1XzN2VlYjGc/cIxk+vrz1q9RQBQWydZuUDp5pkyZ 3HVt33MY4/XF
SwRTR3c7mOLbK+dwc7sBQAMY9vXvVqigCg9tOWnZY4d0kyOCXIJVccH5f9n9 T+LZbKcuSmzi
USAmVgG+bONo4H15zjPU8aNFAGW2nzOjZjgDMJhkMTgv0PT8Pp+VSrZOs3KB 080yZM7jq277
mMcfrir9FAFH7JKbiaY7cmQOi+YxVsADDDGB0znnBx6cotk6zcoHTzTJkzuO rbvuYxx+uKv0
UAVVS5F48vlxbGCp/rDkAE842+/SrHlpu3bFzndnHfGM/lxTqKACq6xzR3Eh TyykjhyxJyOA
MY79Oue/tzYooApNHvvzGA/lkiWTKHBZcY59/lPH9z3NRpG813cgRBUMyMZG BBIULwOORlT3
7/no0UAUFsnWblA6eaZMmdx1bd9zGOP1xVn7NH5m/dLnOcec+Pyzj8KmooAb 5abt2xc53Zx3
xjP5cVV+zzfbPtGI/v42bjjbjG7p9/t9OPerlFAFH7LM0+Skar5m7KysRjOf uEYyfX1560kt
rOU8tFhZVm85WYnJO/djpx1Izz9OeL9FAEPlv9s8zZFs8vbux8+c9M+n9ar/ AGWZp8lI1XzN
2VlYjGc/cIxk+vrz1q9RQBXWOaO4kKeWUkcOWJORwBjHfp1z39uWwRTR3c7m OLbK+dwc7sBQ
AMY9vXvVqigCs6Tm9SRUjMaqVyXIOCVJOMe3rUL205adljh3STI4JcglVxwf l/2f1P436KAM
yVJPMW2EYYLOJQ5Ru77jzjAwCecnpjHNaPlpu3bFzndnHfGM/lxTqKAIYUbz JZZBhnO0D0UZ
x/U/jjtSeS0kwklYAIfkVMg9e579Bx0+vBqeigAooooAKKKKAGv901H/AJ/z /n/68j/dNR/5
/wA/5/8ArgDX+6f8/wCf8/jHUj/dP+f8/wCfxjpDK131T8f6UUXfVPx/pRQI nj+6f94/zp1N
j+6f94/zp1AyXyWjmMkTAhz86vknr2PbqeOn05NLCjeZLLIMM52geijOP6n8 cdqmopiKf2eb
7Z9oxH9/GzccbcY3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561eooAo S2s5Ty0WFlWb
zlZick792OnHUjPP054s+W/2zzNkWzy9u7Hz5z0z6f1qaigCj9lmafJSNV8z dlZWIxnP3CMZ
Pr689aesEisIzHC8YlMgdiSQSxPC4684zn39qt0UAUHtpy07LHDukmRwS5BK rjg/L/s/qfxF
snWblA6eaZMmdx1bd9zGOP1xV+igDLbT5nRsxwBmEwyGJwX6Hp+H0/Kny2U5 clNnEokBMrAN
82cbRwPrznGep40aKAIPJaSYSSsAEPyKmQevc9+g46fXg1PRRQAUUUUAFFFF ABRRRQAUUUUA
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRR
RQAUUUUAFFFFABRRRQA1/umo/wDP+f8AP/15H+6aj/z/AJ/z/wDXAGv90/5/ z/n8Y6kf7p/z
/n/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/dP+8f506gZcooopiCi iigAooooAKKK
KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigA
ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAGv 93HqRVUzIDhi
oPu3/wBerUhAXJOACMk/WqDGBnVmKHb70AE0hM8ABwrE5wevBqWq8zh7qAhg xy2cH2NWKQyt
d9U/H+lFF31T8f6UUCJ4/un/AHj/ADp1Nj+6f94/zp1Ax7y7BkngAEkk1Bdz uLN3QlSVyCCc
jNLMYnyrOvQd+nFQ3bp9jdVdSQgHX0oEaGT6n/P+f89zJ9T/AJ/z/nun+f8A P+f/AK5/n/P+
f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuALk+p/wA/5/z3 Mn1P+f8AP+e6
f5/z/n/65/n/AD/n/wCuALk+p/z/AJ/z3Mn1P+f8/wCe6f5/z/n/AOuf5/z/ AJ/+uALk+p/z
/n/PcyfU/wCf8/57p/n/AD/n/wCuf5/z/n/64AuT6n/P+f8APcyfU/5/z/nu n+f8/wCf/rn+
f8/5/wDrgC5Pqf8AP+f89zJ9T/n/AD/nun+f8/5/+uf5/wA/5/8ArgC5Pqf8 /wCf89zJ9T/n
/P8Anun+f8/5/wDrn+f8/wCf/rgC5Pqf8/5/z3Mn1P8An/P+e6f5/wA/5/8A rn+f8/5/+uAL
k+p/z/n/AD3Mn1P+f8/57p/n/P8An/65/n/P+f8A64AuT6n/AD/n/PcyfU/5 /wA/57p/n/P+
f/rn+f8AP+f/AK4AuT6n/P8An/PcyfU/5/z/AJ7p/n/P+f8A65/n/P8An/64 AuT6n/P+f89z
J9T/AJ/z/nun+f8AP+f/AK5/n/P+f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/ AJ/+uf5/z/n/
AOuALk+p/wA/5/z3Mn1P+f8AP+e6f5/z/n/65/n/AD/n/wCuALk+p/z/AJ/z 3Mn1P+f8/wCe
6f5/z/n/AOuf5/z/AJ/+uALk+p/z/n/PcyfU/wCf8/57p/n/AD/n/wCuf5/z /n/64AuT6n/P
+f8APcyfU/5/z/nun+f8/wCf/rn+f8/5/wDrgC5Pqf8AP+f89zJ9T/n/AD/n un+f8/5/+uf5
/wA/5/8ArgC5Pqf8/wCf89zJ9T/n/P8Anun+f8/5/wDrn+f8/wCf/rgC5Pqf 8/5/z3Mn1P8A
n/P+e6f5/wA/5/8Arn+f8/5/+uALk+p/z/n/AD3Mn1P+f8/57p/n/P8An/65 /n/P+f8A64Au
T6n/AD/n/PcyfU/5/wA/57p/n/P+f/rn+f8AP+f/AK4AuT6n/P8An/PcyfU/ 5/z/AJ7p/n/P
+f8A65/n/P8An/64AuT6n/P+f89zJ9T/AJ/z/nun+f8AP+f/AK5/n/P+f/rg C5Pqf8/5/wA9
zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuAGTxyeo7/AOf8/rE0+1lU8FunJ/xq QkDknABySf8A
P+f51SYXdWdlIXoM8E0AFy5eWGNuUYncp5B4pfs8H/PGP/vkVHK6tdW+1geW 6fQ1YoGMWGJG
DLEikdwoFPoooArXfVPx/pRRd9U/H+lFAidFXYCQckn+Ijufel2r/dP/AH03 +NRThTaEO4Rc
nLN0+8eD7dqqxyKgCLJHBDlv3sQCq5+XGM5Hc/8AfNAy39ktv+fdP1/xo+yW 3/Pun6/41VW7
cIBKwSZnjwh4ODtzgH3LUJNJ5Fu01x5YkTcZMKMHAwOeO5P4fhQIv4Hof++2 /wAaaVzJjLAb
Qcbz6n3qpDNM14VZ0xuYGPPIAzg4xkduScc+4q1MAQ4Zyg8vlgcY5bnNAC7f 9p/++zRt/wBp
/wDvs1neZ5SEW5twpYbpowEUcHgnkZ4H/fVPE055M3QIPlAIO5yuckc8YPp+ FAy9t/2n/wC+
zRt/2n/77NZ893IkWRIFaPf99gokwxAHTk8c4x1/JZ2ma3k+dn81pYwmBxgN jGBnPyigC/t/
2n/77NG3/af/AL7NUjNiX5bgGMqu6b5eB8/fGOoA/wDr1IkxN2qed5ikDAQq eMZywxkfUcdP
xALO3/af/vs0bf8Aaf8A77NNkIKyKzbF2csDgjrzmqkTrErvF5BRCGd4UADD nI78jr+lAF3b
/tP/AN9mjb/tP/32apPJcKJXaQq0cQk2ALjJLHB47YA4oEhihlAlIcytwSoE eWJBJwcAj1z1
FAF3b/tP/wB9mjb/ALT/APfZqlHcu8SMZRzkOyjIUBiN2ffH074wDV+gBu3/ AGn/AO+zRt/2
n/77NOooAbt/2n/77NG3/af/AL7NOooAbt/2n/77NG3/AGn/AO+zTqKAG7f9 p/8Avs0bf9p/
++zTqKAG7f8Aaf8A77NG3/af/vs06igBu3/af/vs0bf9p/8Avs06igBu3/af /vs0bf8Aaf8A
77NOooAbt/2n/wC+zRt/2n/77NOooAbt/wBp/wDvs0bf9p/++zTqKAG7f9p/ ++zRt/2n/wC+
zTqKAG7f9p/++zRt/wBp/wDvs06igBu3/af/AL7NG3/af/vs06igBu3/AGn/ AO+zRt/2n/77
NOooAbt/2n/77NG3/af/AL7NOooAbt/2n/77NG3/AGn/AO+zTqKAG7f9p/8A vs0bf9p/++zT
qKAG7f8Aaf8A77NG3/af/vs06igBu3/af/vs0bf9p/8Avs06igBu3/af/vs0 bf8Aaf8A77NO
ooAY8SupV9zA9QWJqP7Hb/8APJanooAhW1gRgyxhSO44qTyx6t/30adRQA3y x6t/30aPLHq3
/fRp1FAFW6UKUxnv1JNFLd9U/H+lFAiXzVQbWV8gnoAR1J9aPtEf92T/AL5H +NV7i+S2cLIW
ywJG1M8ZI9R6VF/a0PrJ/wB+x/8AFVXK2F0XftEf92T/AL5H+NH2iP8Auyf9 8j/Gqf8Aa0Pr
J/37H/xVH9qw+sn/AH7H/wAVRyvsF0XPtEf92T/vkf400zrvJ2PjAA4+v+NV f7Vh9ZP+/Y/+
Ko/tSH1k/wC/Y/8AiqOV9gui19oX+4/5UfaF/uP+VVv7Uh9X/wC/Y/8AiqP7 Uh9X/wC/Y/8A
iqOVhdFn7Qv9x/yo+0L/AHH/ACqt/acXq/8A37H/AMVS/wBpxer/APfsf/FU crC6LH2hf7j/
AJUfaF/uP+VV/wC0ovV/+/Y/+Ko/tKL1f/v2P/iqOVhdE4nG8tsfBAHT60PK jjDRuRkHp3By
Kg/tGL1f/v2P/iqX+0YvV/8Av2P/AIqjlYXRP9oX+4/5UfaF/uP+VQf2jF6v /wB+x/8AFUf2
hH6v/wB+x/8AFUcrC6J/tC/3H/Kj7Qv9x/yqH+0I/V/+/Y/+Ko+3x+rf9+// ALKjlYXRN9oX
+4/5UfaF/uP+VQ/b4/Vv+/f/ANlR9uj/ALzf9+//ALKjlYXRN9oX+4/5UfaF /uP+VRfbo/7z
f9+//sqPtsf95v8Av3/9lRysLol+0L/cf8qPtC/3H/Kovtqf3m/79/8A2VL9 tT+83/fv/wCy
o5WF0SfaF/uP+VH2hf7j/lUf2xP7zf8Afv8A+yo+2J/eb/v3/wDZUcrC6JPt C/3H/Kj7Qv8A
cf8AKo/taf3m/wC/f/2VL9rT+83/AH7/APsqOVhdD/tC/wBx/wAqPtC/3H/K mfa0/vN/37/+
yo+1L/eP/fv/AOyo5WF0P+0L/cf8qPtC/wBx/wAqb9qX+8f+/f8A9lR9pX+8 f+/f/wBlRysL
od9oX+4/5UfaF/uP+VN+0r/eP/fv/wCyo+0L/eP/AH7/APsqOVhdDvtC/wBx /wAqPtC/3H/K
k+0L/eP/AHx/9lR56/3j/wB8f/Xo5WF0L9oX+4/5UfaF/uP+VJ54/vH/AL4/ +vS+eP7x/wC+
P/r0crC6D7Qv9x/yo+0L/cf8qPOH98/98f8A16POH98/98f/AF6OVhdB9oX+ 4/5UfaF/uP8A
lS+aP75/74/+vR5o/v8A/jn/ANejlYXQn2hf7j/lR9oX+4/5UvmD+/8A+Of/ AF6PM/2//HP/
AK9HKxXQn2hf7j/lR9oX+4/5U7zP9v8A8c/+vRv/ANv/AMc/+vRysd0N+0L/ AHH/ACo+0L/c
f8qdv/2//HP/AK9Lu/2//HP/AK9HKxXQz7Qv9x/yo+0L/cf8qfu/2/8Axz/6 9Gf9v/xz/wCv
RysLoZ9oX+4/5UfaF/uP+VPyf7//AI5/9elyf7//AI5/9ejlYXRH9oX+4/5U faF/uP8AlUnP
9/8A8c/+vRz/AHx/3x/9elysd0R/aF/uP+VH2hf7j/lUnP8AfH/fH/16Of74 /wC+P/r0crC6
I/tC/wBx/wAqPtC/3H/KpOf74/74/wDr0c/3x/3x/wDXo5WF0R/aF/uP+VH2 hf7j/lUnP98f
98f/AF6Of74/74/+vRysLoj+0L/cf8qPtC/3H/KpOf74/wC+P/r0c/3x/wB8 f/XoswuitO/m
bcKwxnqKKs8/3x/3x/8AXooswujKvv8AkJWv4f8AobVr/P521U7t95Pl745x 9Kx78hdRtiSA
BySf99qtXN2EmVoJbdgzEZ3cqTnk+2DVuLlZIV7DtSZjYzq6xBkZR+7z69+K yYIopI5GeR1K
DcQqA8ZA9R61qX8tqNLMMEyOwIJ55Y55J96yI5NiSrjO9dv05B/pVx20JYqw SMgZQGBOMKQT
1x061KLVvLboXDKBtcEYIbOSPpTkvdsPl4kHCjCyYUYIOQMcHjr6k0Ne5VlW MYYrncc7gM/e
wBk89fYd+arUWhC0TogdsAHoNwz+XWp4rQP8uX3iPzGCLuPJGAB9Dn8famTT rJEsaq2AersG
IHoDgYHtStMpjJHLPGI2HpgjB/ID8c0agSx2QdypMi8gDemDnKjkZ/2v5VCL aUkgBTg44ccn
0HPJ+lOguzBGFVASDuBJ91P/ALL+tPju/KQpGJVUHcoEmOcDrgcjj2pahoQv E8YUuuNwyOeo
9ae9rKm7co+XrhgenX8


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: A Diagnostic Message for the Valid Schema [message #569409 is a reply to message #19870] Sat, 03 May 2003 18:57 Go to previous message
Eclipse UserFriend
Originally posted by: paechoi.earthlink.net

This is a multi-part message in MIME format.

------=_NextPart_000_0020_01C31184.5E0ECF50
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0021_01C31184.5E0ECF50"


------=_NextPart_001_0021_01C31184.5E0ECF50
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Ed,

You are right. And THANK you.

Regards,


Pae

"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB3A05D.B2B6DA24@ca.ibm.com...
Pae,=20
The editor treats the schema as invalid because it contains this:=20

<xsd:element name=3D"username" ref=3D"usernameRef"/>
So it produces this message from plugin.properties:=20
src-element.2.1 =3D An element reference may not have a name
Which is there because of this constraint in the spec:=20
http://www.w3.org/TR/xmlschema-1/#src-element
Which states the following:=20
2.1 One of ref or name must be present, but not both.
And since ref and name are indeed both present, it's an invalid =
schema.=20
The schema below is valid and the editor reports no errors.=20
=20

Pae Choi wrote:=20

Ed, I don't see why Eclipse/Editor treats the sampel schema as an =
invalid schema. I alsotried other schema, e.g., WSDL.XSD, but throws the =
same message. The following isthe copy of WSDL schema that I enclosed =
for the convenience purpose. Try to seewhat you get. Regards, Pae // =
###################### WSDL Schema ######################<?xml =
version=3D"1.0" encoding=3D"UTF-8"?>=20
<!--=20

Copyright 2001-2002 International Business Machines Corporation, =
Microsoft Corporation. All rights reserved.=20

-->=20

<schema targetNamespace=3D"http://schemas.xmlsoap.org/wsdl/" =
xmlns=3D"http://www.w3.org/2001/XMLSchema" =
xmlns:wsdl=3D"http://schemas.xmlsoap.org/wsdl/" =
elementFormDefault=3D"qualified">=20

<complexType name=3D"tDocumentation" mixed=3D"true">=20

<sequence>=20

<any processContents=3D"lax" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>=20

</sequence>=20

</complexType>=20

<complexType name=3D"tDocumented">=20

<annotation>=20

<documentation>=20

This type is extended by component types=20

to allow them to be documented=20

</documentation>=20

</annotation>=20

<sequence>=20

<element name=3D"documentation" type=3D"wsdl:tDocumentation" =
minOccurs=3D"0"/>=20

</sequence>=20

</complexType>=20

<complexType name=3D"tExtensibleAttributesDocumented" =
abstract=3D"true">=20

<annotation>=20

<documentation>=20

This type is extended by component types=20

to allow attributes from other namespaces to be added.=20

</documentation>=20

</annotation>=20

<complexContent>=20

<extension base=3D"wsdl:tDocumented">=20

<anyAttribute namespace=3D"##other"/>=20

</extension>=20

</complexContent>=20

</complexType>=20

<complexType name=3D"tExtensibleDocumented" abstract=3D"true">=20

<annotation>=20

<documentation>=20

This type is extended by component types=20

to allow attributes from other namespaces to be added.=20

</documentation>=20

</annotation>=20

<complexContent>=20

<extension base=3D"wsdl:tDocumented">=20

<sequence>=20

<any namespace=3D"##other" minOccurs=3D"0" maxOccurs=3D"unbounded"/> =


</sequence>=20

</extension>=20

</complexContent>=20

</complexType>=20

<element name=3D"definitions" type=3D"wsdl:tDefinitions">=20

<key name=3D"message">=20

<selector xpath=3D"wsdl:message"/>=20

<field xpath=3D"@name"/>=20

</key>=20

<key name=3D"portType">=20

<selector xpath=3D"wsdl:portType"/>=20

<field xpath=3D"@name"/>=20

</key>=20

<key name=3D"binding">=20

<selector xpath=3D"wsdl:binding"/>=20

<field xpath=3D"@name"/>=20

</key>=20

<key name=3D"service">=20

<selector xpath=3D"wsdl:service"/>=20

<field xpath=3D"@name"/>=20

</key>=20

<key name=3D"import">=20

<selector xpath=3D"wsdl:import"/>=20

<field xpath=3D"@namespace"/>=20

</key>=20

<key name=3D"port">=20

<selector xpath=3D"wsdl:service/wsdl:port"/>=20

<field xpath=3D"@name"/>=20

</key>=20

</element>=20

<group name=3D"anyTopLevelOptionalElement">=20

<annotation>=20

<documentation>=20

Any top level optional element allowed to appear more then once-=20

any child of definitions element except wsdl:types.=20

Any extensibility element is allowed in any place=20

</documentation>=20

</annotation>=20

<choice>=20

<element name=3D"import" type=3D"wsdl:tImport"/>=20

<element name=3D"types" type=3D"wsdl:tTypes"/>=20

<element name=3D"message" type=3D"wsdl:tMessage">=20

<unique name=3D"part">=20

<selector xpath=3D"wsdl:part"/>=20

<field xpath=3D"@name"/>=20

</unique>=20

</element>=20

<element name=3D"portType" type=3D"wsdl:tPortType"/>=20

<element name=3D"binding" type=3D"wsdl:tBinding"/>=20

<element name=3D"service" type=3D"wsdl:tService"/>=20

</choice>=20

</group>=20

<complexType name=3D"tDefinitions">=20

<complexContent>=20

<extension base=3D"wsdl:tExtensibleDocumented">=20

<sequence>=20

<group ref=3D"wsdl:anyTopLevelOptionalElement" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>=20

</sequence>=20

<attribute name=3D"targetNamespace" type=3D"anyURI" =
use=3D"optional"/>=20

<attribute name=3D"name" type=3D"NCName" use=3D"optional"/>=20

</extension>=20

</complexContent>=20

</complexType>=20

<complexType name=3D"tImport">=20

<complexContent>=20

<extension base=3D"wsdl:tExtensibleAttributesDocumented">=20

<attribute name=3D"namespace" type=3D"anyURI" use=3D"required"/>=20

<attribute name=3D"location" type=3D"anyURI" use=3D"required"/>=20

</extension>=20

</complexContent>=20

</complexType>=20

<complexType name=3D"tTypes">=20

<complexContent>=20

<extension base=3D"wsdl:tExtensibleDocumented"/>=20

</complexContent>=20

</complexType>=20

<complexType name=3D"tMessage">=20

<complexContent>=20

<extension base=3D"wsdl:tExtensibleDocumented">=20

<sequence>=20

<element name=3D"part" type=3D"wsdl:tPart" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>=20

</sequence>=20

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>=20

</extension>=20

</complexContent>=20

</complexType>=20

<complexType name=3D"tPart">=20

<complexContent>=20

<extension base=3D"wsdl:tExtensibleAttributesDocumented">=20

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>=20

<attribute name=3D"element" type=3D"QName" use=3D"optional"/>=20

<attribute name=3D"type" type=3D"QName" use=3D"optional"/>=20

</extension>=20

</complexContent>=20

</complexType>=20

<complexType name=3D"tPortType">=20

<complexContent>=20

<extension base=3D"wsdl:tExtensibleAttributesDocumented">=20

<sequence>=20

<element name=3D"operation" type=3D"wsdl:tOperation" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>=20

</sequence>=20

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>=20

</extension>=20

</complexContent>=20

</complexType>=20

<complexType name=3D"tOperation">=20

<complexContent>=20

<extension base=3D"wsdl:tExtensibleDocumented">=20

<choice>=20

<group ref=3D"wsdl:request-response-one-way-operation"/>=20

<group ref=3D"wsdl:solicit-response-notification-operation"/>=20

</choice>=20

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>=20

<attribute name=3D"parameterOrder" type=3D"NMTOKENS" =
use=3D"optional"/>=20

</extension>=20

</complexContent>=20

</complexType>=20

<group name=3D"optional-response-fault">=20

<choice>=20

<sequence/>=20

<sequence>=20

<element name=3D"output" type=3D"wsdl:tParam"/>=20

<element name=3D"fault" type=3D"wsdl:tFault" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>=20

</sequence>=20

</choice>=20

</group>=20

<group name=3D"request-response-one-way-operation">=20

<sequence>=20

<element name=3D"input" type=3D"wsdl:tParam"/>=20

<group ref=3D"wsdl:optional-response-fault"/>=20

</sequence>=20

</group>=20

<group name=3D"optional-solicit-fault">=20

<choice>=20

<sequence/>=20

<sequence>=20

<element name=3D"input" type=3D"wsdl:tParam"/>=20

<element name=3D"fault" type=3D"wsdl:tFault" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>=20

</sequence>=20

</choice>=20

</group>=20

<group name=3D"solicit-response-notification-operation">=20

<sequence>=20

<element name=3D"output" type=3D"wsdl:tParam"/>=20

<group ref=3D"wsdl:optional-solicit-fault"/>=20

</sequence>=20

</group>=20

<complexType name=3D"tParam">=20

<complexContent>=20

<extension base=3D"wsdl:tExtensibleAttributesDocumented">=20

<attribute name=3D"name" type=3D"NCName" use=3D"optional"/>=20

<attribute name=3D"message" type=3D"QName" use=3D"required"/>=20

</extension>=20

</complexContent>=20

</complexType>=20

<complexType name=3D"tFault">=20

<complexContent>=20

<extension base=3D"wsdl:tExtensibleAttributesDocumented">=20

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>=20

<attribute name=3D"message" type=3D"QName" use=3D"required"/>=20

</extension>=20

</complexContent>=20

</complexType>=20

<complexType name=3D"tBinding">=20

<complexContent>=20

<extension base=3D"wsdl:tExtensibleDocumented">=20

<sequence>=20

<element name=3D"operation" type=3D"wsdl:tBindingOperation" =
minOccurs=3D"0" maxOccurs=3D"unbounded"/>=20

</sequence>=20

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>=20

<attribute name=3D"type" type=3D"QName" use=3D"required"/>=20

</extension>=20

</complexContent>=20

</complexType>=20

<complexType name=3D"tBindingOperationMessage">=20

<complexContent>=20

<extension base=3D"wsdl:tExtensibleDocumented">=20

<attribute name=3D"name" type=3D"NCName" use=3D"optional"/>=20

</extension>=20

</complexContent>=20

</complexType>=20

<complexType name=3D"tBindingOperationFault">=20

<complexContent>=20

<extension base=3D"wsdl:tExtensibleDocumented">=20

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>=20

</extension>=20

</complexContent>=20

</complexType>=20

<complexType name=3D"tBindingOperation">=20

<complexContent>=20

<extension base=3D"wsdl:tExtensibleDocumented">=20

<sequence>=20

<element name=3D"input" type=3D"wsdl:tBindingOperationMessage" =
minOccurs=3D"0"/>=20

<element name=3D"output" type=3D"wsdl:tBindingOperationMessage" =
minOccurs=3D"0"/>=20

<element name=3D"fault" type=3D"wsdl:tBindingOperationFault" =
minOccurs=3D"0" maxOccurs=3D"unbounded"/>=20

</sequence>=20

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>=20

</extension>=20

</complexContent>=20

</complexType>=20

<complexType name=3D"tService">=20

<complexContent>=20

<extension base=3D"wsdl:tExtensibleDocumented">=20

<sequence>=20

<element name=3D"port" type=3D"wsdl:tPort" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>=20

</sequence>=20

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>=20

</extension>=20

</complexContent>=20

</complexType>=20

<complexType name=3D"tPort">=20

<complexContent>=20

<extension base=3D"wsdl:tExtensibleDocumented">=20

<attribute name=3D"name" type=3D"NCName" use=3D"required"/>=20

<attribute name=3D"binding" type=3D"QName" use=3D"required"/>=20

</extension>=20

</complexContent>=20

</complexType>=20

<attribute name=3D"arrayType" type=3D"string"/>=20

<attribute name=3D"required" type=3D"boolean"/>=20

<complexType name=3D"tExtensibilityElement" abstract=3D"true">=20

<sequence/>=20

<attribute ref=3D"wsdl:required" use=3D"optional"/>=20

</complexType>=20

</schema> =20

"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB25ED9.AE2CB299@ca.ibm.com...Pae,=20
I'm seeing this result with the just published 1.1.0 driver:=20


The schema isn't valid.=20
=20
Pae Choi wrote:=20

I have a simple test schema as follows:=20
<?xml version=3D"1.0" encoding=3D"UTF-8"?>=20
<!--W3C Schema generated by Pae -->=20
<xsd:schema xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema"=20
elementFormDefault=3D"qualified">=20
<xsd:element name=3D"CommonLogin">=20
<xsd:complexType>=20
<xsd:sequence>=20
<xsd:element name=3D"username" ref=3D"usernameRef"/>=20
<xsd:element name=3D"password" ref=3D"passwordRef"/>=20
</xsd:sequence>=20
</xsd:complexType>=20
</xsd:element>=20
<xsd:element name=3D"passwordRef" type=3D"xsd:string"/>=20
<xsd:element name=3D"usernameRef" type=3D"xsd:string"/>=20
</xsd:schema>=20

This is a very simple sample, but it is a valid schema. But when =

I use the validate() and getDiagnostics() methods in the =
XSDSchema=20
interface it gives me a message as follows:=20

XSD: The element '#null' is not permitted as constrained by 'XML =
Schema ';=20
expecting schema=20

I do not understand what the message is saying. Any comments?=20

Pae


------=_NextPart_001_0021_01C31184.5E0ECF50
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2600.0" name=3DGENERATOR></HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT size=3D2>Ed,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>You are right. And&nbsp;THANK you.</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Regards,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Pae</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV>"Ed Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB3A05D.B2B6DA24@ca.ibm.com">news:3EB3A05D.B2B6DA24@ca.ibm.=
com</A>...</DIV>Pae,=20

<P>The editor treats the schema as invalid because it contains this:=20
<BLOCKQUOTE>&lt;xsd:element name=3D"username"=20
ref=3D"usernameRef"/&gt;</BLOCKQUOTE>So it produces this message from=20
plugin.properties:=20
<BLOCKQUOTE>src-element.2.1 =3D An element reference may not have a=20
name</BLOCKQUOTE>Which is there because of this constraint in the =
spec:=20
<BLOCKQUOTE><A=20
=
href=3D"http://www.w3.org/TR/xmlschema-1/#src-element">http://www.w3.org/=
TR/xmlschema-1/#src-element</A></BLOCKQUOTE>Which=20
states the following:=20
<BLOCKQUOTE>2.1 One of ref or name must be present, but not=20
both.</BLOCKQUOTE>And since ref and name are indeed both present, it's =
an=20
invalid schema.=20
<P>The schema below is valid and the editor reports no errors. =
<BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">
<STYLE></STYLE>
<FONT size=3D-1>Ed,</FONT>&nbsp;<FONT size=3D-1>I don't see why =
Eclipse/Editor=20
treats the sampel schema as an invalid schema. I also</FONT><FONT=20
size=3D-1>tried other schema, e.g., WSDL.XSD, but throws the same =
message. The=20
following is</FONT><FONT size=3D-1>the copy of WSDL schema that I =
enclosed for=20
the convenience purpose. Try to see</FONT><FONT size=3D-1>what you=20
get.</FONT>&nbsp;&nbsp;<FONT =
size=3D-1>Regards,</FONT>&nbsp;&nbsp;<FONT=20
size=3D-1>Pae</FONT>&nbsp;<FONT size=3D-1>// ###################### =
WSDL Schema=20
######################</FONT><FONT color=3D#008080><FONT =
size=3D-2>&lt;?xml=20
version=3D"1.0" encoding=3D"UTF-8"?&gt;</FONT></FONT>=20
<P><FONT color=3D#0000ff><FONT size=3D-2>&lt;!--</FONT></FONT>=20
<P><FONT color=3D#808080><FONT size=3D-2>Copyright 2001-2002 =
International=20
Business Machines Corporation, Microsoft Corporation. All rights=20
reserved.</FONT></FONT>=20
<P><FONT color=3D#0000ff><FONT size=3D-2>--&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>schema</FONT><FONT color=3D#ff0000> =
targetNamespace</FONT><FONT=20
color=3D#0000ff>=3D"</FONT><A=20
=
href=3D"http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl=
/</A><FONT=20
color=3D#0000ff>"</FONT><FONT color=3D#ff0000> xmlns</FONT><FONT=20
color=3D#0000ff>=3D"</FONT><A=20
=
href=3D"http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchem=
a</A><FONT=20
color=3D#0000ff>"</FONT><FONT color=3D#ff0000> =
xmlns:wsdl</FONT><FONT=20
color=3D#0000ff>=3D"</FONT><A=20
=
href=3D"http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl=
/</A><FONT=20
color=3D#0000ff>"</FONT><FONT color=3D#ff0000> =
elementFormDefault</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>qualified<FONT =
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>complexType</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>tDocumentation<FONT =
color=3D#0000ff>"</FONT><FONT=20
color=3D#ff0000> mixed</FONT><FONT =
color=3D#0000ff>=3D"</FONT>true<FONT=20
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>sequence</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>any</FONT><FONT color=3D#ff0000> =
processContents</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>lax<FONT color=3D#0000ff>"</FONT><FONT =
color=3D#ff0000>=20
minOccurs</FONT><FONT color=3D#0000ff>=3D"</FONT>0<FONT=20
color=3D#0000ff>"</FONT><FONT color=3D#ff0000> maxOccurs</FONT><FONT =

color=3D#0000ff>=3D"</FONT>unbounded<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>sequence</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>complexType</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>complexType</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>tDocumented<FONT =
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>annotation</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>documentation</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2>This type is extended by component types</FONT>=20
<P><FONT size=3D-2>to allow them to be documented</FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>documentation</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>annotation</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>sequence</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>element</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>documentation<FONT =
color=3D#0000ff>"</FONT><FONT=20
color=3D#ff0000> type</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>wsdl:tDocumentation<FONT =
color=3D#0000ff>"</FONT><FONT=20
color=3D#ff0000> minOccurs</FONT><FONT =
color=3D#0000ff>=3D"</FONT>0<FONT=20
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>sequence</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>complexType</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>complexType</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>tExtensibleAttributesDocumented <FONT=20
color=3D#0000ff>"</FONT><FONT color=3D#ff0000> abstract</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>true<FONT =
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>annotation</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>documentation</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2>This type is extended by component types</FONT>=20
<P><FONT size=3D-2>to allow attributes from other namespaces to be=20
added.</FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>documentation</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>annotation</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>complexContent</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>extension</FONT><FONT color=3D#ff0000> =
base</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>wsdl:tDocumented<FONT=20
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>anyAttribute</FONT><FONT color=3D#ff0000> =
namespace</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>##other<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>extension</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>complexContent</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>complexType</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>complexType</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>tExtensibleDocumented<FONT=20
color=3D#0000ff>"</FONT><FONT color=3D#ff0000> abstract</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>true<FONT =
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>annotation</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>documentation</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2>This type is extended by component types</FONT>=20
<P><FONT size=3D-2>to allow attributes from other namespaces to be=20
added.</FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>documentation</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>annotation</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>complexContent</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>extension</FONT><FONT color=3D#ff0000> =
base</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>wsdl:tDocumented<FONT=20
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>sequence</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>any</FONT><FONT color=3D#ff0000> =
namespace</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>##other<FONT =
color=3D#0000ff>"</FONT><FONT=20
color=3D#ff0000> minOccurs</FONT><FONT =
color=3D#0000ff>=3D"</FONT>0<FONT=20
color=3D#0000ff>"</FONT><FONT color=3D#ff0000> maxOccurs</FONT><FONT =

color=3D#0000ff>=3D"</FONT>unbounded<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>sequence</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>extension</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>complexContent</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>complexType</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>element</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>definitions<FONT =
color=3D#0000ff>"</FONT><FONT=20
color=3D#ff0000> type</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>wsdl:tDefinitions<FONT=20
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>key</FONT><FONT color=3D#ff0000> name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>message<FONT =
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>selector</FONT><FONT color=3D#ff0000> =
xpath</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>wsdl:message<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>field</FONT><FONT color=3D#ff0000> xpath</FONT><FONT =

color=3D#0000ff>=3D"</FONT>@name<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>key</FONT><FONT color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>key</FONT><FONT color=3D#ff0000> name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>portType<FONT =
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>selector</FONT><FONT color=3D#ff0000> =
xpath</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>wsdl:portType<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20

<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>field</FONT><FONT color=3D#ff0000> xpath</FONT><FONT =

color=3D#0000ff>=3D"</FONT>@name<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>key</FONT><FONT color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>key</FONT><FONT color=3D#ff0000> name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>binding<FONT =
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>selector</FONT><FONT color=3D#ff0000> =
xpath</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>wsdl:binding<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>field</FONT><FONT color=3D#ff0000> xpath</FONT><FONT =

color=3D#0000ff>=3D"</FONT>@name<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>key</FONT><FONT color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>key</FONT><FONT color=3D#ff0000> name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>service<FONT =
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>selector</FONT><FONT color=3D#ff0000> =
xpath</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>wsdl:service<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>field</FONT><FONT color=3D#ff0000> xpath</FONT><FONT =

color=3D#0000ff>=3D"</FONT>@name<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>key</FONT><FONT color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>key</FONT><FONT color=3D#ff0000> name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>import<FONT =
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>selector</FONT><FONT color=3D#ff0000> =
xpath</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>wsdl:import<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>field</FONT><FONT color=3D#ff0000> xpath</FONT><FONT =

color=3D#0000ff>=3D"</FONT>@namespace<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>key</FONT><FONT color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>key</FONT><FONT color=3D#ff0000> name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>port<FONT =
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>selector</FONT><FONT color=3D#ff0000> =
xpath</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>wsdl:service/wsdl:port<FONT=20
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>field</FONT><FONT color=3D#ff0000> xpath</FONT><FONT =

color=3D#0000ff>=3D"</FONT>@name<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>key</FONT><FONT color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>element</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>group</FONT><FONT color=3D#ff0000> name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>anyTopLevelOptionalElement<FONT=20
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>annotation</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>documentation</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2>Any top level optional element allowed to appear =
more then=20
once-</FONT>=20
<P><FONT size=3D-2>any child of definitions element except =
wsdl:types.</FONT>=20
<P><FONT size=3D-2>Any extensibility element is allowed in any =
place</FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>documentation</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>annotation</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>choice</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>element</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>import<FONT color=3D#0000ff>"</FONT><FONT =

color=3D#ff0000> type</FONT><FONT =
color=3D#0000ff>=3D"</FONT>wsdl:tImport<FONT=20
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>element</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>types<FONT color=3D#0000ff>"</FONT><FONT =
color=3D#ff0000>=20
type</FONT><FONT color=3D#0000ff>=3D"</FONT>wsdl:tTypes<FONT=20
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>element</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>message<FONT =
color=3D#0000ff>"</FONT><FONT=20
color=3D#ff0000> type</FONT><FONT =
color=3D#0000ff>=3D"</FONT>wsdl:tMessage<FONT=20
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>unique</FONT><FONT color=3D#ff0000> name</FONT><FONT =

color=3D#0000ff>=3D"</FONT>part<FONT =
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>selector</FONT><FONT color=3D#ff0000> =
xpath</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>wsdl:part<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>field</FONT><FONT color=3D#ff0000> xpath</FONT><FONT =

color=3D#0000ff>=3D"</FONT>@name<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>unique</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>element</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>element</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>portType<FONT =
color=3D#0000ff>"</FONT><FONT=20
color=3D#ff0000> type</FONT><FONT =
color=3D#0000ff>=3D"</FONT>wsdl:tPortType<FONT=20
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>element</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>binding<FONT =
color=3D#0000ff>"</FONT><FONT=20
color=3D#ff0000> type</FONT><FONT =
color=3D#0000ff>=3D"</FONT>wsdl:tBinding<FONT=20
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>element</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>service<FONT =
color=3D#0000ff>"</FONT><FONT=20
color=3D#ff0000> type</FONT><FONT =
color=3D#0000ff>=3D"</FONT>wsdl:tService<FONT=20
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>choice</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>group</FONT><FONT color=3D#0000ff>&gt;</FONT></FONT> =

<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>complexType</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>tDefinitions<FONT =
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>complexContent</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>extension</FONT><FONT color=3D#ff0000> =
base</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>wsdl:tExtensibleDocumented<FONT=20
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>sequence</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>group</FONT><FONT color=3D#ff0000> ref</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>wsdl:anyTopLevelOptionalElement <FONT=20
color=3D#0000ff>"</FONT><FONT color=3D#ff0000> minOccurs</FONT><FONT =

color=3D#0000ff>=3D"</FONT>0<FONT color=3D#0000ff>"</FONT><FONT =
color=3D#ff0000>=20
maxOccurs</FONT><FONT color=3D#0000ff>=3D"</FONT>unbounded<FONT=20
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>sequence</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>attribute</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>targetNamespace<FONT =
color=3D#0000ff>"</FONT><FONT=20
color=3D#ff0000> type</FONT><FONT =
color=3D#0000ff>=3D"</FONT>anyURI<FONT=20
color=3D#0000ff>"</FONT><FONT color=3D#ff0000> use</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>optional<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>attribute</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>name<FONT color=3D#0000ff>"</FONT><FONT =
color=3D#ff0000>=20
type</FONT><FONT color=3D#0000ff>=3D"</FONT>NCName<FONT=20
color=3D#0000ff>"</FONT><FONT color=3D#ff0000> use</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>optional<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>extension</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>complexContent</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>complexType</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>complexType</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>tImport<FONT =
color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>complexContent</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>extension</FONT><FONT color=3D#ff0000> =
base</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>wsdl:tExtensibleAttributesDocumented <FONT =

color=3D#0000ff>"&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>attribute</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>namespace<FONT =
color=3D#0000ff>"</FONT><FONT=20
color=3D#ff0000> type</FONT><FONT =
color=3D#0000ff>=3D"</FONT>anyURI<FONT=20
color=3D#0000ff>"</FONT><FONT color=3D#ff0000> use</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>required<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>attribute</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>location<FONT =
color=3D#0000ff>"</FONT><FONT=20
color=3D#ff0000> type</FONT><FONT =
color=3D#0000ff>=3D"</FONT>anyURI<FONT=20
color=3D#0000ff>"</FONT><FONT color=3D#ff0000> use</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>required<FONT =
color=3D#0000ff>"/&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>extension</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>complexContent</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;/</FONT><FONT=20
color=3D#800000>complexType</FONT><FONT =
color=3D#0000ff>&gt;</FONT></FONT>=20
<P><FONT size=3D-2><FONT color=3D#0000ff>&lt;</FONT><FONT=20
color=3D#800000>complexType</FONT><FONT color=3D#ff0000> =
name</FONT><FONT=20
color=3D#0000ff>=3D"</FONT>tTypes<FONT =
color=3D#0000ff>"&gt;</FONT></FONT>=20
Re: A Diagnostic Message for the Valid Schema [message #569443 is a reply to message #19930] Sat, 03 May 2003 19:00 Go to previous message
Eclipse UserFriend
Originally posted by: paechoi.earthlink.net

This is a multi-part message in MIME format.

------=_NextPart_000_002F_01C31184.B032A450
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0030_01C31184.B032A450"


------=_NextPart_001_0030_01C31184.B032A450
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Ed,

That surely helped with v1.0.2. And THANK you for that. One quick =
question is:

Do you also have an exception thrown when running with v1.1.0 as =
standalone.

Regards,


Pae

"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB3A206.9781C42@ca.ibm.com...
Pae,=20
The XSD model expects a DOM that's namespace aware, so this addition =
to your sample code will improve your result:=20

private Document openXMLDOM(String uri) {=20
// Create a factory object for creating DOM parsers=20
DocumentBuilderFactory factory =3D =
DocumentBuilderFactory.newInstance();=20
DocumentBuilder builder =3D null;=20
Document xmlDoc =3D null;=20

factory.setNamespaceAware(true);=20

Without this, element.getNamespaceURI and element.getLocalName both =
return null...=20
=20

Pae Choi wrote:=20

Ed, I have a sample code that test a DOM of XML Schema with =
Eclipse/XSD andproducing two different results. With v1.0.2, it seems ok =
except the diagnostic message we are discussing.With v1.1.0, it throws =
an exception. Regards, Pae P.S.: The code snippet is as follows: // =
################## CODE SNIPPET ##################/*=20
* EclipseXSDDemo1.java=20
*=20
* Created on May 2, 2003, 11:13 PM=20
*/ package org.paechoi.xsd.test; // W3C/DOM=20
import javax.xml.parsers.DocumentBuilderFactory;=20
import javax.xml.parsers.DocumentBuilder;=20
import org.w3c.dom.Document;=20
import org.w3c.dom.Element;=20
// Eclipse/XSD=20
import org.eclipse.xsd.XSDFactory;=20
import org.eclipse.xsd.XSDSchema;=20
import org.eclipse.xsd.impl.XSDSchemaImpl;=20
import org.eclipse.xsd.util.XSDResourceImpl;=20
import org.eclipse.xsd.util.XSDResourceFactoryImpl;=20
import org.eclipse.xsd.XSDDiagnostic;=20
import org.eclipse.emf.ecore.resource.Resource;=20
import org.eclipse.emf.ecore.resource.ResourceSet;=20
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;=20
import org.eclipse.emf.common.util.EList;=20
import java.io.File; =20
/**=20
*=20
* @author pae=20
*/=20
public class EclipseXSDDemo1 {=20
// private Document xmlDOM =3D null;=20
// instance initializer=20
{=20
// =
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =
new XSDResourceFactoryImpl());=20
}=20

/** Creates a new instance of EclipseXSDDemo1 */=20
public EclipseXSDDemo1() {=20
super();=20
}=20

/** Open a XML DOM */=20
private Document openXMLDOM(String uri) {=20
// Create a factory object for creating DOM parsers=20
DocumentBuilderFactory factory =3D =
DocumentBuilderFactory.newInstance();=20
DocumentBuilder builder =3D null;=20
Document xmlDoc =3D null;=20

// Build a new DOM=20
try {=20
// Now use the factory to create a DOM parser (a.k.a. a =
DocumentBuilder)=20
builder =3D factory.newDocumentBuilder();=20
xmlDoc =3D builder.parse(uri);=20
}=20
catch (Exception ex) {=20
ex.printStackTrace();=20
return null;=20
}=20

return xmlDoc;=20
}=20

/** doIt */=20
private void doIt() {=20
Document xmlDOM =3D =
openXMLDOM("http://schemas.xmlsoap.org/wsdl/");=20
// Document xmlDOM =3D openXMLDOM("./wsdl.xsd"); =
Element rootElement =3D xmlDOM.getDocumentElement(); XSDSchema =
xsdSchema =3D XSDFactory.eINSTANCE.createXSDSchema();=20
xsdSchema.setDocument(xmlDOM);=20
xsdSchema.setElement(rootElement);=20
xsdSchema.updateElement(); =
System.out.println("\n\n");=20
XSDResourceImpl.serialize(System.out, =
xsdSchema.getElement()); =
System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION =
>>>>>>>>>>>>>>>>>>>>>>>>>>");=20
xsdSchema.validate();=20
//EList eList =3D xsdMainSchema.getDiagnostics();=20
EList eList =3D xsdSchema.getAllDiagnostics();=20
for (int i =3D 0; i < eList.size(); i++) {=20
XSDDiagnostic xsdDiagnostic =3D =
(XSDDiagnostic)eList.get(i);=20
System.out.println(i + ": Diagnostic Message =3D [" + =
xsdDiagnostic.getMessage() + "]");=20
}=20
=
System.out.println("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<=
<<<<<<<");=20
}=20

/** main - the main entry */=20
public static void main(String[] args) {=20
EclipseXSDDemo1 app =3D new EclipseXSDDemo1();=20
app.doIt();=20
}=20
}=20

"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB25ED9.AE2CB299@ca.ibm.com...Pae,=20
I'm seeing this result with the just published 1.1.0 driver:=20


The schema isn't valid.=20
=20
Pae Choi wrote:=20

I have a simple test schema as follows:=20
<?xml version=3D"1.0" encoding=3D"UTF-8"?>=20
<!--W3C Schema generated by Pae -->=20
<xsd:schema xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema"=20
elementFormDefault=3D"qualified">=20
<xsd:element name=3D"CommonLogin">=20
<xsd:complexType>=20
<xsd:sequence>=20
<xsd:element name=3D"username" ref=3D"usernameRef"/>=20
<xsd:element name=3D"password" ref=3D"passwordRef"/>=20
</xsd:sequence>=20
</xsd:complexType>=20
</xsd:element>=20
<xsd:element name=3D"passwordRef" type=3D"xsd:string"/>=20
<xsd:element name=3D"usernameRef" type=3D"xsd:string"/>=20
</xsd:schema>=20

This is a very simple sample, but it is a valid schema. But when =

I use the validate() and getDiagnostics() methods in the =
XSDSchema=20
interface it gives me a message as follows:=20

XSD: The element '#null' is not permitted as constrained by 'XML =
Schema ';=20
expecting schema=20

I do not understand what the message is saying. Any comments?=20

Pae


------=_NextPart_001_0030_01C31184.B032A450
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2600.0" name=3DGENERATOR></HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT size=3D2>Ed,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>That surely helped with v1.0.2. And THANK you for =
that. One=20
quick question is:</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Do you also have an exception thrown when running =
with v1.1.0=20
as standalone.</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Regards,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Pae</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV>"Ed Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB3A206.9781C42@ca.ibm.com">news:3EB3A206.9781C42@ca.ibm.co=
m</A>...</DIV>Pae,=20

<P>The XSD model expects a DOM that's namespace aware, so <FONT=20
color=3D#3333ff>this</FONT> addition to your sample code will improve =
your=20
result:=20
<P>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String uri) {=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create a factory =
object for=20
creating DOM parsers <BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilderFactory&nbsp; factory =3D =
DocumentBuilderFactory.newInstance();=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp; =
builder =3D=20
null; <BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D null;=20
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=3D#3333ff>&nbsp;&nbsp;=20
factory.setNamespaceAware(true);</FONT>=20
<P>Without this, element.getNamespaceURI and element.getLocalName both =
return=20
null... <BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">
<STYLE></STYLE>
<FONT size=3D-1>Ed,</FONT>&nbsp;<FONT size=3D-1>I have a sample code =
that test a=20
DOM of XML Schema with Eclipse/XSD and</FONT><FONT =
size=3D-1>producing two=20
different results.</FONT>&nbsp;<FONT size=3D-1>With v1.0.2, it seems =
ok except=20
the diagnostic message we are discussing.</FONT><FONT size=3D-1>With =
v1.1.0,=20
it throws an exception.</FONT>&nbsp;<FONT=20
size=3D-1>Regards,</FONT>&nbsp;&nbsp;<FONT =
size=3D-1>Pae</FONT>&nbsp;<FONT=20
size=3D-1>P.S.: The code snippet is as follows:</FONT>&nbsp;<FONT =
size=3D-1>//=20
################## CODE SNIPPET ##################</FONT><FONT=20
size=3D-1>/*</FONT> <BR><FONT size=3D-1>&nbsp;* =
EclipseXSDDemo1.java</FONT>=20
<BR><FONT size=3D-1>&nbsp;*</FONT> <BR><FONT size=3D-1>&nbsp;* =
Created on May 2,=20
2003, 11:13 PM</FONT> <BR><FONT size=3D-1>&nbsp;*/</FONT>&nbsp;<FONT =

size=3D-1>package org.paechoi.xsd.test;</FONT>&nbsp;<FONT =
size=3D-1>//=20
W3C/DOM</FONT> <BR><FONT size=3D-1>import&nbsp;=20
javax.xml.parsers.DocumentBuilderFactory;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; javax.xml.parsers.DocumentBuilder;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; org.w3c.dom.Document;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; org.w3c.dom.Element;</FONT> <BR><FONT =
size=3D-1>//=20
Eclipse/XSD</FONT> <BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.xsd.XSDFactory;</FONT> <BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.xsd.XSDSchema;</FONT> <BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.xsd.impl.XSDSchemaImpl;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
org.eclipse.xsd.util.XSDResourceImpl;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
org.eclipse.xsd.util.XSDResourceFactoryImpl;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; org.eclipse.xsd.XSDDiagnostic;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; =
org.eclipse.emf.ecore.resource.Resource;</FONT>=20
<BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.emf.ecore.resource.ResourceSet;</FONT> <BR><FONT=20
size=3D-1>import&nbsp;=20
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; org.eclipse.emf.common.util.EList;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; java.io.File;</FONT>&nbsp;&nbsp; <BR><FONT=20
size=3D-1>/**</FONT> <BR><FONT size=3D-1>&nbsp;*</FONT> <BR><FONT=20
size=3D-1>&nbsp;* @author&nbsp; pae</FONT> <BR><FONT =
size=3D-1>&nbsp;*/</FONT>=20
<BR><FONT size=3D-1>public class EclipseXSDDemo1 {</FONT> <BR><FONT=20
size=3D-1>//&nbsp;&nbsp;&nbsp; private&nbsp;&nbsp;&nbsp;&nbsp;=20
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp; xmlDOM =3D =
null;</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; // instance initializer</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; {</FONT> <BR><FONT=20
size=3D-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;=20
=
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =
new=20
XSDResourceFactoryImpl());</FONT> <BR><FONT =
size=3D-1>&nbsp;&nbsp;&nbsp;=20
}</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** Creates a new instance of=20
EclipseXSDDemo1 */</FONT> <BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; =
public=20
EclipseXSDDemo1() {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; super();</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM */</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String uri) =
{</FONT>=20
<BR><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // =
Create a=20
factory object for creating DOM parsers</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilderFactory&nbsp; factory =3D=20
DocumentBuilderFactory.newInstance();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp; =
builder =3D=20
null;</FONT> <BR><FONT =
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D null;</FONT>=20
<P><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // =
Build a new=20
DOM</FONT> <BR><FONT =
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try=20
{</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
// Now use the factory to create a DOM parser (a.k.a. a=20
DocumentBuilder)</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
builder =3D factory.newDocumentBuilder();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xmlDoc =3D builder.parse(uri);</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT> =
<BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch =
(Exception ex)=20
{</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
ex.printStackTrace();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
return null;</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT>=20
<P><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; return =

xmlDoc;</FONT> <BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** doIt */</FONT> <BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; private void doIt() {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document xmlDOM =
=3D=20
openXMLDOM("<A=20
=
href=3D"http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl=
/</A>");</FONT>=20
<BR><FONT size=3D-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp; =
Document=20
xmlDOM =3D openXMLDOM("./wsdl.xsd");</FONT>&nbsp;<FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Element =
rootElement =3D=20
xmlDOM.getDocumentElement();</FONT>&nbsp;<FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; XSDSchema =
xsdSchema =3D=20
XSDFactory.eINSTANCE.createXSDSchema();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
xsdSchema.setDocument(xmlDOM);</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
xsdSchema.setElement(rootElement);</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
xsdSchema.updateElement();</FONT>&nbsp;<FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
System.out.println("\n\n");</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
XSDResourceImpl.serialize(System.out,=20
xsdSchema.getElement());</FONT>&nbsp;<FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
System.out.println(" &gt;&gt;&gt;&gt;&gt;&gt;&gt;& ;gt;&gt;&gt;&gt;&gt;&gt;&=
gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;& amp;gt;=20
VALIDATION=20
=
&gt;&gt;&gt;&gt;&gt;&gt;&gt;& ;gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt;&gt;&=
gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;"); </FONT>=20
<BR><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
xsdSchema.validate();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; //EList eList =
=3D=20
xsdMainSchema.getDiagnostics();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; EList eList =3D =

xsdSchema.getAllDiagnostics();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; for (int i =3D =
0; i &lt;=20
eList.size(); i++) {</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
XSDDiagnostic xsdDiagnostic =3D (XSDDiagnostic)eList.get(i);</FONT> =
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
System.out.println(i + ": Diagnostic Message =3D [" +=20
xsdDiagnostic.getMessage() + "]");</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT> =
<BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
System.out.println(" &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&=
lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;& amp;lt;&lt;&lt;&lt;&lt;&lt;&lt;& lt;&lt;&lt;&l=
t;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&a mp;lt;&lt;&lt;&lt;&lt;&lt;&lt;&l t;&lt;&lt;&lt=
;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&am p;lt;&lt;&lt; ");</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** main - the main entry =
*/</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; public static void =
main(String[] args)=20
{</FONT> <BR><FONT =
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
EclipseXSDDemo1 app =3D new EclipseXSDDemo1();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
app.doIt();</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT> <BR><FONT =
size=3D-1>}</FONT>=20
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed=20
Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB25ED9.AE2CB299@ca.ibm.com">news:3EB25ED9.AE2CB299@ca.ibm.=
com</A>...Pae,=20

<P>I'm seeing this result with the just published 1.1.0 driver:=20
<BLOCKQUOTE><IMG height=3D411=20
src=3D"cid:002a01c311a6$373995f0$0b01a8c0@dev1" =
width=3D502></BLOCKQUOTE>The=20
schema isn't valid. <BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">I have a simple test schema as follows:=20
<P>&lt;?xml version=3D"1.0" encoding=3D"UTF-8"?&gt; =
<BR>&lt;!--W3C Schema=20
generated by Pae --&gt; <BR>&lt;xsd:schema xmlns:xsd=3D"<A=20
=
href=3D"http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchem=
a</A>"=20
<BR>elementFormDefault=3D"qualified"&gt; =
<BR>&nbsp;&lt;xsd:element=20
name=3D"CommonLogin"&gt; <BR>&nbsp; &lt;xsd:complexType&gt;=20
<BR>&nbsp;&nbsp; &lt;xsd:sequence&gt; <BR>&nbsp;&nbsp;&nbsp;=20
&lt;xsd:element name=3D"username" ref=3D"usernameRef"/&gt;=20
<BR>&nbsp;&nbsp;&nbsp; &lt;xsd:element name=3D"password"=20
ref=3D"passwordRef"/&gt; <BR>&nbsp;&nbsp; &lt;/xsd:sequence&gt; =
<BR>&nbsp;=20
&lt;/xsd:complexType&gt; <BR>&nbsp;&lt;/xsd:element&gt;=20
<BR>&nbsp;&lt;xsd:element name=3D"passwordRef" =
type=3D"xsd:string"/&gt;=20
<BR>&nbsp;&lt;xsd:element name=3D"usernameRef" =
type=3D"xsd:string"/&gt;=20
<BR>&lt;/xsd:schema&gt;=20
<P>This is a very simple sample, but it is a valid schema. But =
when=20
<BR>I use the validate() and getDiagnostics() methods in the =
XSDSchema=20
<BR>interface it gives me a message as follows:=20
<P>XSD: The element '#null' is not permitted as constrained by =
'XML=20
Schema '; <BR>expecting schema=20
<P>I do not understand what the message is saying. Any comments? =

=
<P>Pae</P></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE ></BODY></HT=
ML>

------=_NextPart_001_0030_01C31184.B032A450--

------=_NextPart_000_002F_01C31184.B032A450
Content-Type: image/jpeg;
name="C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\nsmailFJ.jpeg"
Content-Transfer-Encoding: base64
Content-ID: <002a01c311a6$373995f0$0b01a8c0@dev1>

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCws MGJGSjpQdGZ6eHJm
cG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAqMF40 NF7GhHCExsbGxsbG
xsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsb/ wAARCAGbAfYDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA AgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcY GRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKT lJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP0 9fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQA AQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2 Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOk paanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMB AAIRAxEAPwDXghR4
9zbiST/EfU0m23yQBKcHHG81Ja/6kf7zfzNVLrfsTY5wGkLRrJsZueoPt6e9 NK4FpIYJEDIWKnoQ
5/xpfs0Xo3/fZ/xqKy2bmMbMUZEcZ75zzjt2qMXc+1kYBbgkbYvLyRnJ67sN wDzkdPXikBZ+zRej
f99n/Gj7NF6N/wB9n/Gqa31w+eI027VYMuTuLsmeD2xnHPpnvS/bZyJnHlhY ELMNpy5DODg54zs9
+vegC39mi9G/77P+NH2aL0b/AL7P+NUEup4hIkMQZY2kdycYwZH4yWGPu9ef 8b883lxs6FW2H5l7
n2HvyMDv075oAPs0Xo3/AH2f8aPs0Xo3/fZ/xqFriZWhLGMRPt/eKpdSSeFG Dx2+YjBz26Uy3kkm
uraaQptkgZlVVIKglDgnPP6UATyQxIudrH/gZpm2L+43/fw1NP8AcH1rJvJZ becG2JlkdSWhOSAA
PvD0/r9aQGhti/uN/wB/DTDGBI65bAPHzH0B/rUdntNurLMZt3zFyep+nb6V M/8Ar5f94fyFAxvl
j1b/AL6NHlj1b/vo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+ jTqKAG+WPVv++jR5
Y9W/76NOooAb5Y9W/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igBvlj1 b/vo0eWPVv8Avo06
igBvlj1b/vo0eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPVv++jR5Y9 W/76NOooAb5Y9W/7
6NHlj1b/AL6NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/AL6NHlj1b/vo06ig Bvlj1b/vo0eWPVv+
+jTqKAG+WPVv++jR5Y9W/wC+jTqKAG+WPVv++jR5Y9W/76NOooAb5Y9W/wC+ jR5Y9W/76NOooAb5
Y9W/76NHlj1b/vo06igBvlj1b/vo0eWPVv8Avo06igBvlj1b/vo0eWPVv++j TqKAG+WPVv8Avo0e
WPVv++jTqKAG+WPVv++jR5Y9W/76NOooAb5Y9W/76NHlj1b/AL6NOooAb5Y9 W/76NHlj1b/vo06i
gCvOTEV2MRnOcnP86KS76p+P9KKBF+1/1I/3m/majktGkBVmiZNxYK8W7Gfx 96hREIJKqTuPUe9O
8uP+4v5U7gWIYnR3d3DFgBwuMYz/AI0otoBEYhBGI2OSgQYJ+lNdbaNlVkjD OcKu0ZP0FMcwRyBW
tvlyFMmwbQT0Hqeo6DHP1oAmWCFF2pFGo44CgdDkfrzTPscBn84xIXwMZUfK QScj3yaT/Q/+mH39
nb73p9fahfsbruTyGHHIwepwP14oAkaCFipaKMlCWUlRwSckj8ad5abt2xc5 3Zx3xjP5cVCVgFws
JgXLIXDbRjggEfqKk8iH/nkn/fIoABBCJBIIo94zhtoyM5zz+J/OhIIY5GkS KNXbqwUAn8ah8yw8
vzN9tszt3ZXGfTNO/wBD87yf3Hm/3ON3r0oAklUsoAGeagFuVZmEYDN94jGT 9adusgwXNvuLbAMr
kt6fXkUM1ksvlMbcSZA2ErnJ6cUANW3KZ2RhdxycYGT60j/6+X/eH8hUgFqZ zCEiLgZIG3I6dR17
0f6H53k/uPN/ucbvXpQBHRUg+xs4QeQWJK7RjOR1H4U3zLDzPL322/O3blc5 9MUrANoprz2y3Bh+
ysSJFjyIxjJGf0HWpf8ARvtPkeSN+0tkx4GBjv369qLAMoqx5EP/ADyT/vkV X8y33f8AHt+737PM
2rtznGOuevHT9KLAFFNee2W4MP2ViRIseRGMZIz+g61a8iH/AJ5J/wB8iiwF eipP9D87yf3Hm/3O
N3r0oH2NnCDyCxJXaMZyOo/CiwEdFSH7GJDGfI3jGV4yM4xx+I/Oj/Q/O8n9 x5v9zjd69KLAR0Us
slpE4TZGz7lUqu3K5IAJHpyPzp4FqZzCEiLgZIG3I6dR170WAjoqQfY2cIPI LEldoxnI6j8KR2sk
Zlc26sgywJUED3/MfnRYBlFO8yw8zy99tvzt25XOfTFRvPbLcGH7KxIkWPIj GMkZ/QdaLAOoprzQ
r5n+hMfLkEZwqck4xjn3H5/WkeeJHKf2fKxAYjCJ8wU4JAznuPrRYB9FN86H z2iFkxKvtJCp7c4z
nHzDt3q15EP/ADyT/vkUWAr0UeZb7v8Aj2/d79nmbV25zjHXPXjp+lNee2W4 MP2ViRIseRGMZIz+
g60WAdRTnMEcgVrb5chTJsG0E9B6nqOgxz9aei20jMqpGWQ4ZdoyPqKLARUV Y8iH/nkn/fIo8iH/
AJ5J/wB8iiwFeirHkQ/88k/75FHkQ/8APJP++RRYCvRVjyIf+eSf98ijyIf+ eSf98iiwFeirHkQ/
88k/75FHkQ/88k/75FFgK9FWPIh/55J/3yKPIh/55J/3yKLAV6KseRD/AM8k /wC+RR5EP/PJP++R
RYCvRVjyIf8Ankn/AHyKPIh/55J/3yKLAV6KseRD/wA8k/75FHkQ/wDPJP8A vkUWAr0VY8iH/nkn
/fIo8iH/AJ5J/wB8iiwFeipngh2/6pOo/hFQbYv+eUfPtQMWioJlTz4FCKAS cgDrxUb3FsjlWj5B
x90UWGouWiQ676p+P9KKLtFRlAUDrnAooJJ4/un/AHj/ADp1Nj+6f94/zp1A yXyWjmMkTAhz86vk
nr2PbqeOn05NOeMyTLuAMSjP3urZ4yMdvr+HQ055Y42VWYBnOFXufoKDIBMs WDuZSw9MAj/EUxFb
7PN9s+0Yj+/jZuONuMbun3+30496rtp8zo2Y4AzCYZDE4L9D0/D6flWpRQBW dJzepIqRmNVK5LkH
BKknGPb1qzVV70L5n7iU+XIIzjbyTjGOfcfn9akFwPOEbRyKGJVXIGGIycev Y9scfSgCP7M/2rOV
+z58zb33/Tpjv67uaiWydZuUDp5pkyZ3HVt33MY4/XFWGufnwkMki7gpdAMA 5x65474/oanoAqwR
TR3c7mOLbK+dwc7sBQAMY9vXvUf2WZp8lI1XzN2VlYjGc/cIxk+vrz1qb7WC 2FhlZd+wOqgjOcHv
kY55Ixx9KkM8IkMZlj3jGV3DIzjHH4j86AInSc3qSKkZjVSuS5BwSpJxj29a Z9nmx5OI/K83zN+4
7vv78bcfh19/apo7mN5WjJ2OrlArEZbAByOeeCKd58PneT5sfm/3Nw3evSgC o9tOWnZY4d0kyOCX
IJVccH5f9n9T+Nn7NH5m/dLnOcec+Pyzj8Kcs8LruSWNhxyGB6nA/Xijz4fO 8nzY/N/ubhu9elAD
vLTdu2LnO7OO+MZ/LioHSc3qSKkZjVSuS5BwSpJxj29as1E9zAjMrzxqyDLA uAQPf8x+dAC/vvtH
/LPyNnvu3Z/LGKr/AGebHk4j8rzfM37ju+/vxtx+HX39qsefD53k+bH5v9zc N3r0oE8LOEEsZYkr
tDDOR1H4UAO8tN27Yuc7s474xn8uKdUfnw+d5Pmx+b/c3Dd69KT7TAGC+fHu LbAN4yW9PryKAKq2
TrNygdPNMmTO46tu+5jHH64oe2nLTsscO6SZHBLkEquOD8v+z+p/G358PneT 5sfm/wBzcN3r0pqX
du8zQrNGZFO0pu5z9KAIlgkVhGY4XjEpkDsSSCWJ4XHXnGc+/tSfZ5seTiPy vN8zfuO77+/G3H4d
ff2qx58PneT5sfm/3Nw3evSmS3cUThNwZ9yqVVhlckAEjPTkfnQBXltZynlo sLKs3nKzE5J37sdO
OpGefpzxM6Tm9SRUjMaqVyXIOCVJOMe3rVmoIbuKXau4JIxIEbMN3BIPAPsa AK7205adljh3STI4
JcglVxwfl/2f1P4xypJ5i2wjDBZxKHKN3fcecYGATzk9MY5q613bLu3XEQ2n a2XHB9D+R/KpqAIf
s0fmb90uc5x5z4/LOPwqTy03bti5zuzjvjGfy4qAXg81kaGRVRxGXO3GTjHf POR271L58PneT5sf
m/3Nw3evSgCB7aRpXA2eXJKkpYk5BXbxjHP3eue/tUjxyG9ikATy1RlJLHOS QemP9n170/z4fO8n
zY/N/ubhu9elSUAVYLYpeT3EkcYZz8rKxJ24AweP9kH8fzk+zR+Zv3S5znHn Pj8s4/CpqKAKP2N/
P3bIs+Zv8/P7zGc7enp8vXp+VXPLTdu2LnO7OO+MZ/LikSWORmVWBZDhl7j6 in0ARPGZJl3AGJRn
73Vs8ZGO31/Doab5LSTCSVgAh+RUyD17nv0HHT68Gp6KACiiigAooooAKKKK ACiiigAooooAKKKK
ACiiigAooooAKKKKAGyEBck4AIyT9az3EMjBmlOR0w4GKvyqrxlXUMD2IzVf 7Lb/APPCL/vgf5/z
+YBWlZWubfawOCe+f4aZJYLJIz+cRuOcbP8A69WzbwqMrDGD6hR/n/P5t8uP +4v5UXsXCcoO8SG9
OXU+uaKbdKF2BQAOen4UUiCxH90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51 fJPXse3U8dPpyakK
AzK+0ZVSN2eRkjjH4fpQ8scbKrMAznCr3P0FJ58P/PWP7+z7w+96fX2piG/Z o/M37pc5zjznx+Wc
fhR9mj8zfulznOPOfH5Zx+FK1zAsvlNPGJMgbC4zk9OKbLdxROE3Bn3KpVWG VyQASM9OR+dAEEti
73ZlDrtLhj6/wH/2mP8Avo+nMphka7WRljUIT8653MuDhSMdOc9eo6ek/mJ5 nl71343bc849cUxr
mBZfKaeMSZA2FxnJ6cUAMSOaJikflmIuX3MTuGTkjHfqecjr3xzYqMzwiQxm WPeMZXcMjOMcfiPz
psdzG8rRk7HVygViMtgA5HPPBFAEDWsjz+Y0durbw3nICHCg8DpzkDB5HXp6 uWCRWEZjheMSmQOx
JIJYnhcdecZz7+1T+fD53k+bH5v9zcN3r0oWeF13JLGw45DA9TgfrxQBUe2n LTsscO6SZHBLkEqu
OD8v+z+p/EWydZuUDp5pkyZ3HVt33MY4/XFW/Ph87yfNj83+5uG716VJQBlt p8zo2Y4AzCYZDE4L
9D0/D6flT5bKcuSmziUSAmVgG+bONo4H15zjPU8XfPh/56x/f2feH3vT6+1C zwuu5JY2HHIYHqcD
9eKAJKzJUk8xbYRhgs4lDlG7vuPOMDAJ5yemMc1fMoFwsJVsshcNxjggEfqK BPCzhBLGWJK7Qwzk
dR+FAFRbJ1m5QOnmmTJncdW3fcxjj9cUPbTlp2WOHdJMjglyCVXHB+X/AGf1 P42muYFl8pp4xJkD
YXGcnpxT/MTzPL3rvxu255x64oApLZOs3KB080yZM7jq277mMcfripYIpo7u dzHFtlfO4Od2AoAG
Me3r3qbz4f8AnrH9/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oApy2U5clNnEo kBMrAN82cbRwPrzn
Gep4srHNHcSFPLKSOHLEnI4Axjv0657+3Ky3cUThNwZ9yqVVhlckAEjPTkfn S/a7bzPL+0Rb87du
8Zz6YoArLZOs3KB080yZM7jq277mMcfriiW1nKeWiwsqzecrMTknfux046kZ 5+nPEr3yLcGHypSR
IseQvGSM/oOtSR3MbytGTsdXKBWIy2ADkc88EUATVQitZwnlusKq03nMyk5B 37sdOegGePpxzZS7
t3maFZozIp2lN3OfpQl3bvM0KzRmRTtKbuc/SgCBo99+YwH8skSyZQ4LLjHP v8p4/ue5q7UYnhZw
gljLEldoYZyOo/CneYnmeXvXfjdtzzj1xQBWitT9qmlmUYZwyASMRwAOV6Z4 z3/SoZbKcuSmziUS
AmVgG+bONo4H15zjPU8XXl2zRxgZL5J56Ad/zIH40PLtmjjAyXyTz0A7/mQP xoAqLZOs3KB080yZ
M7jq277mMcfrir9Qtd2y7t1xENp2tlxwfQ/kfyoa7tl3briIbTtbLjg+h/I/ lQAfZo/M37pc5zjz
nx+WcfhR9mj8zfulznOPOfH5Zx+FDXdsu7dcRDadrZccH0P5H8qmoAg8lpJh JKwAQ/IqZB69z36D
jp9eDU9Qtd2y7t1xENp2tlxwfQ/kfyoFwPOEbRyKGJVXIGGIycevY9scfSgC aiio/Ph87yfNj83+
5uG716UASUVF9pgDBfPj3FtgG8ZLen15FD3MCMyvPGrIMsC4BA9/zH50AS0V G8u2aOMDJfJPPQDv
+ZA/Gmi4HnCNo5FDEqrkDDEZOPXse2OPpQBNRVf7Wu7/AFcnl79nmcbc5xjr nrx0/Sj7Wu7/AFcn
l79nmcbc5xjrnrx0/SgCxRUX2hPtPkYfftLZKkDAx379e1K8u2aOMDJfJPPQ Dv8AmQPxoAkoqq96
Edk8iUsrhQo25bOcEc9OP5+hxHJqkUczxGKUusix4G3ktkjHPtQBeoqKGfzZ JU8t18ptpLYwTjPG
D6EfnTPtYLYWGVl37A6qCM5we+RjnkjHH0oAsUVGZ4RIYzLHvGMruGRnGOPx H502O5jeVoydjq5Q
KxGWwAcjnngigCaio/Ph87yfNj83+5uG716ULPC67kljYcchgepwP14oAkoq Pz4fO8nzY/N/ubhu
9elQvfItwYfKlJEix5C8ZIz+g60AWH+6aj/z/n/P/wBeR/umo/8AP+f8/wD1 wBr/AHT/AJ/z/n8Y
6kf7p/z/AJ/z+MdIZWu+qfj/AEoou+qfj/SigRPH90/7x/nTqbH90/7x/nTq BkvktHMZImBDn51f
JPXse3U8dPpyai+zzfbPtGI/v42bjjbjG7p9/t9OPerHnw+d5Pmx+b/c3Dd6 9KDKBcLCVbLIXDcY
4IBH6imIq/ZZmnyUjVfM3ZWViMZz9wjGT6+vPWkltZynlosLKs3nKzE5J37s dOOpGefpzxb8+Hzv
J82Pzf7m4bvXpQs8LruSWNhxyGB6nA/XigBvlv8AbPM2RbPL27sfPnPTPp/W q/2WZp8lI1XzN2Vl
YjGc/cIxk+vrz1q158PneT5sfm/3Nw3evSgTws4QSxliSu0MM5HUfhQBAsEi sIzHC8YlMgdiSQSx
PC4684zn39qje2nLTsscO6SZHBLkEquOD8v+z+p/Gyl3bvM0KzRmRTtKbuc/ So/to89ohBKSr7SR
t9ucZzj5h270ARLZOs3KB080yZM7jq277mMcfriom0+Z0bMcAZhMMhicF+h6 fh9PyrQ8+HzvJ82P
zf7m4bvXpSfaYAwXz49xbYBvGS3p9eRQBTlspy5KbOJRICZWAb5s42jgfXnO M9Txo1Gs8LruSWNh
xyGB6nA/Xio1u1MzxtHIgV9m9sbSeCBwe+R1+nXigCP7PN9s+0Yj+/jZuONu Mbun3+30496rtp8z
o2Y4AzCYZDE4L9D0/D6flWh58PneT5sfm/3Nw3evSoX1C3W4WBXV3JwQHX5T nHc/oMmgBXSc3qSK
kZjVSuS5BwSpJxj29ahe2nLTsscO6SZHBLkEquOD8v8As/qfxt+fD53k+bH5 v9zcN3r0o8+H/nrH
9/Z94fe9Pr7UAVfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVjy3+2eZsi2eXt3Y+ fOemfT+tOMoFwsJV
sshcNxjggEfqKal3bvM0KzRmRTtKbuc/SgCH7PN9s+0Yj+/jZuONuMbun3+3 0496b9lmafJSNV8z
dlZWIxnP3CMZPr689asfa7bzPL+0Rb87du8Zz6YqN75FuDD5UpIkWPIXjJGf 0HWgCKW1nKeWiwsq
zecrMTknfux046kZ5+nPFn7NH5m/dLnOcec+Pyzj8KV7mBGZXnjVkGWBcAge /wCY/Ol8+H/nrH9/
Z94fe9Pr7UAO8tN27Yuc7s474xn8uKpPbTlp2WOHdJMjglyCVXHB+X/Z/U/j b8+HzvJ82Pzf7m4b
vXpQZQLhYSrZZC4bjHBAI/UUARrHNHcSFPLKSOHLEnI4Axjv0657+3Isc0dx IU8spI4csScjgDGO
/Trnv7cyCeMzmEMpcDJAYZHTqOveoX1C3W4WBXV3JwQHX5TnHc/oMmgCBI3m u7kCIKhmRjIwIJCh
eBxyMqe/f87flv8AbPM2RbPL27sfPnPTPp/WnCeMzmEMpcDJAYZHTqOvejz4 fO8nzY/N/ubhu9el
ADYUbzJZZBhnO0D0UZx/U/jjtRCjeZLLIMM52geijOP6n8cdqSW7iicJuDPu VSqsMrkgAkZ6cj86
Y98i3Bh8qUkSLHkLxkjP6DrQAySzke5LiQCNnVyOeo29v+Af+PH05JLOR7ku JAI2dXI56jb2/wCA
f+PH05tJLHIzKrAshwy9x9RT6AKUlnI9yXEgEbOrkc9Rt7f8A/8AHj6c2f33 2j/ln5Gz33bs/ljF
SUUAUpLOR7kuJAI2dXI56jb2/wCAf+PH05kMMjXayMsahCfnXO5lwcKRjpzn r1HT0s0UAR/vvtH/
ACz8jZ77t2fyxiq/2ebHk4j8rzfM37ju+/vxtx+HX39quUUAVYIpo7udzHFt lfO4Od2AoAGMe3r3
qtKknmLbCMMFnEoco3d9x5xgYBPOT0xjmtOigCGFG8yWWQYZztA9FGcf1P44 7VGiXP2ou6xFckbt
5JCdgBjjtnn+mLVFAFP7PNjycR+V5vmb9x3ff3424/Dr7+1H2ebHk4j8rzfM 37ju+/vxtx+HX39q
uUUAVnSc3qSKkZjVSuS5BwSpJxj29afCjeZLLIMM52geijOP6n8cdqmooApy R3ZnMqiLKnagLnGw
9c/L1OB+Q98xy2k7SSyBIixlV0JkI+Ubcg8d9g/P89CigCmI7tZpSgiCySq+ 7echRtBGNvcD170j
Wsjz+Y0durbw3nICHCg8DpzkDB5HXp63aKAKiwSKwjMcLxiUyB2JJBLE8Ljr zjOff2qN7actOyxw
7pJkcEuQSq44Py/7P6n8b9FAFBbJ1m5QOnmmTJncdW3fcxjj9cVE2nzOjZjg DMJhkMTgv0PT8Pp+
ValFAGdLZTlyU2cSiQEysA3zZxtHA+vOcZ6ni/5abt2xc53Zx3xjP5cU6igB r/dNR/5/z/n/AOvI
/wB01H/n/P8An/64A1/un/P+f8/jHUj/AHT/AJ/z/n8Y6Qytd9U/H+lFF31T 8f6UUCJ4/un/AHj/
ADp1Nj+6f94/zp1Axi2TrNygdPNMmTO46tu+5jHH64qZ0nN6kipGY1UrkuQc EqScY9vWrNMeWONl
VmAZzhV7n6CmIprZOs3KB080yZM7jq277mMcfriom0+Z0bMcAZhMMhicF+h6 fh9PyrQ8+H/nrH9/
Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oAqrZOs3KB080yZM7jq277mMcfrih7 actOyxw7pJkcEuQS
q44Py/7P6n8bEt3FE4TcGfcqlVYZXJABIz05H51L5ieZ5e9d+N23POPXFAEK xzR3EhTyykjhyxJy
OAMY79Oue/ty2C2KXk9xJHGGc/KysSduAMHj/ZB/H85vPh87yfNj83+5uG71 6UGUC4WEq2WQuG4x
wQCP1FAFf7PNjycR+V5vmb9x3ff3424/Dr7+1Ogimju53McW2V87g53YCgAY x7evepvPh87yfNj8
3+5uG716ULPC67kljYcchgepwP14oAz20+Z0bMcAZhMMhicF+h6fh9PyqwLe ZppfMEaxPKsmVYlv
l24GMcfdB/T3qx58PneT5sfm/wBzcN3r0oE8LOEEsZYkrtDDOR1H4UAVFsnW blA6eaZMmdx1bd9z
GOP1xUqpci8eXy4tjBU/1hyACecbffpUiXdu8zQrNGZFO0pu5z9KmoAzpbKc uSmziUSAmVgG+bON
o4H15zjPU8ST205aTyvLKvKkvzEg5Xb8vT/Z6/hjvVkTws4QSxliSu0MM5HU fhR58PneT5sfm/3N
w3evSgCJ0nN6kipGY1UrkuQcEqScY9vWlWOaO4kKeWUkcOWJORwBjHfp1z39 uZFnhddySxsOOQwP
U4H68UefD53k+bH5v9zcN3r0oAb9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd 8Yz+XFR/a7bzPL+0
Rb87du8Zz6YqN75FuDD5UpIkWPIXjJGf0HWgCvcxSxRqpjV41uBIGVWZuX3H gDjAJ5z296lntpy0
nleWVeVJfmJByu35en+z1/DHepmufnwkMki7gpdAMA5x65474/oaf58PneT5 sfm/3Nw3evSgClLZ
TlyU2cSiQEysA3zZxtHA+vOcZ6niw6Tm9SRUjMaqVyXIOCVJOMe3rUqzwuu5 JY2HHIYHqcD9eKFn
hddySxsOOQwPU4H68UAROk5vUkVIzGqlclyDglSTjHt60ipci8eXy4tjBU/1 hyACecbffpU3nw+d
5Pmx+b/c3Dd69KBPCzhBLGWJK7QwzkdR+FAETpOb1JFSMxqpXJcg4JUk4x7e tQrZOs3KB080yZM7
jq277mMcfrirUM/mySp5br5TbSWxgnGeMH0I/Ol8+HzvJ82Pzf7m4bvXpQBU ltZynlosLKs3nKzE
5J37sdOOpGefpzxd8tN27Yuc7s474xn8uKY9zAjMrzxqyDLAuAQPf8x+dKJ4 zOYQylwMkBhkdOo6
96AGeS0kwklYAIfkVMg9e579Bx0+vBqeoxPCzhBLGWJK7QwzkdR+FQvfItwY fKlJEix5C8ZIz+g6
0AWqKYkscjMqsCyHDL3H1FPoAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKK
KACiiigBr/dNR/5/z/n/AOvI/wB01H/n/P8An/64A1/un/P+f8/jHUj/AHT/ AJ/z/n8Y6Qytd9U/
H+lFF31T8f6UUCJ4/un/AHj/ADp1Nj+6f94/zp1Ay5UHktHMZImBDn51fJPX se3U8dPpyanopiKf
2eb7Z9oxH9/GzccbcY3dPv8Ab6ce9N+yzNPkpGq+ZuysrEYzn7hGMn19eetW 3ljjZVZgGc4Ve5+g
pPPh/wCesf39n3h970+vtQBUltZynlosLKs3nKzE5J37sdOOpGefpzxZ8t/t nmbItnl7d2Pnznpn
0/rStcwLL5TTxiTIGwuM5PTimy3cUThNwZ9yqVVhlckAEjPTkfnQBXWydZuU Dp5pkyZ3HVt33MY4
/XFTOk5vUkVIzGqlclyDglSTjHt61P5ieZ5e9d+N23POPXFNM8IkMZlj3jGV 3DIzjHH4j86AKi2T
rNygdPNMmTO46tu+5jHH64qJtPmdGzHAGYTDIYnBfoen4fT8q0PPh87yfNj8 3+5uG716ULPC67kl
jYcchgepwP14oAqLZOs3KB080yZM7jq277mMcfrih7actOyxw7pJkcEuQSq4 4Py/7P6n8bYnhZwg
ljLEldoYZyOo/CgygXCwlWyyFw3GOCAR+ooAjWOaO4kKeWUkcOWJORwBjHfp 1z39ubFR+fD53k+b
H5v9zcN3r0o8+H/nrH9/Z94fe9Pr7UAVHtpy07LHDukmRwS5BKrjg/L/ALP6 n8Wy2U5clNnEokBM
rAN82cbRwPrznGep4me+KOU+yXDEBiMBfmCnBIGc9x9ala7tl3briIbTtbLj g+h/I/lQBRbT5nRs
xwBmEwyGJwX6Hp+H0/KpVsnWblA6eaZMmdx1bd9zGOP1xVsTws4QSxliSu0M M5HUfhR58PneT5sf
m/3Nw3evSgBv2aPzN+6XOc4858flnH4VJ5abt2xc53Zx3xjP5cUiSxyMyqwL IcMvcfUU+gCukc0T
FI/LMRcvuYncMnJGO/U85HXvjmP7PNjycR+V5vmb9x3ff3424/Dr7+1XKKAM ttPmdGzHAGYTDIYn
Bfoen4fT8qG0+Z0bMcAZhMMhicF+h6fh9PyrUooAp/Z5seTiPyvN8zfuO77+ /G3H4dff2pj205ad
ljh3STI4JcglVxwfl/2f1P436KAKYju1mlKCILJKr7t5yFG0EY29wPXvR9nm x5OI/K83zN+47vv7
8bcfh19/arlFAGZKknmLbCMMFnEoco3d9x5xgYBPOT0xjmrTpOb1JFSMxqpX Jcg4JUk4x7etWaKA
KD205adljh3STI4JcglVxwfl/wBn9T+N3y03bti5zuzjvjGfy4p1FAEHktJM JJWACH5FTIPXue/Q
cdPrwanoooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigBr/AHTU
f+f8/wCf/ryP901H/n/P+f8A64A1/un/AD/n/P4x1I/3T/n/AD/n8Y6Qytd9 U/H+lFF31T8f6UUC
J4/un/eP86dTY/un/eP86dQMuUUUUxEHktHMZImBDn51fJPXse3U8dPpyai+ zzfbPtGI/v42bjjb
jG7p9/t9OPerlMeWONlVmAZzhV7n6CgCp9lmafJSNV8zdlZWIxnP3CMZPr68 9aSW1nKeWiwsqzec
rMTknfux046kZ5+nPFvz4f8AnrH9/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04o ATy3+2eZsi2eXt3Y
+fOemfT+tRLBIrCMxwvGJTIHYkkEsTwuOvOM59/apJbuKJwm4M+5VKqwyuSA CRnpyPzqXzE8zy96
78btueceuKAKv2ebHk4j8rzfM37ju+/vxtx+HX39qrtp8zo2Y4AzCYZDE4L9 D0/D6flV9rmBZfKa
eMSZA2FxnJ6cUvnw+d5Pmx+b/c3Dd69KAKSRvNd3IEQVDMjGRgQSFC8DjkZU 9+/52HSc3qSKkZjV
SuS5BwSpJxj29ake5gRmV541ZBlgXAIHv+Y/Ol8+H/nrH9/Z94fe9Pr7UAVF snWblA6eaZMmdx1b
d9zGOP1xT/s832z7RiP7+Nm4424xu6ff7fTj3qx58PneT5sfm/3Nw3evSgTw s4QSxliSu0MM5HUf
hQAx45DexSAJ5aoykljnJIPTH+z696haPffmMB/LJEsmUOCy4xz7/KeP7nua smeESGMyx7xjK7hk
Zxjj8R+dHnw+d5Pmx+b/AHNw3evSgCkkbzXdyBEFQzIxkYEEhQvA45GVPfv+ blsnWblA6eaZMmdx
1bd9zGOP1xVxJY5GZVYFkOGXuPqKfQBB5LSTCSVgAh+RUyD17nv0HHT68Gp6 KKACiiigAooooAKK
KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooo
oAKKKKAGv901H/n/AD/n/wCvI/3TUf8An/P+f/rgDX+6f8/5/wA/jHUj/dP+ f8/5/GOkMrXfVPx/
pRRd9U/H+lFAieP7p/3j/OnVSaJmlYlpfmJ2ojkZ68+39T265WFf3yENKpxu 2PIWyOeR/h9D65NC
uV2ubFFFFMkKg8lo5jJEwIc/Or5J69j26njp9OTU9FAFP7PN9s+0Yj+/jZuO NuMbun3+30496b9l
mafJSNV8zdlZWIxnP3CMZPr689a59Li9dWZZ5yqjLHecD8aXzr//AJ63P3d/ 3m+76/T3rTkJ5jel
tZynlosLKs3nKzE5J37sdOOpGefpzxZ8t/tnmbItnl7d2Pnznpn0/rXMiXUW j8xXujHjO4FsfnTo
3v5EL/aJ1TaSGZmw2ASQD68H8qOTzDmNz7LM0+Skar5m7KysRjOfuEYyfX15 60i2TrNygdPNMmTO
46tu+5jHH64rA+03vl+Z59xszjdvbGfTNL51/wCV5vm3Pl/39zY/OjkDmNu5 ilijVTGrxrcCQMqs
zcvuPAHGATznt71LPbTlpPK8sq8qS/MSDldvy9P9nr+GO9c+Li7MBlF3LgMF K+Y2eQSD+ho86/8A
K83zbny/7+5sfnRyBzG8tk6zcoHTzTJkzuOrbvuYxx+uKHtpy07LHDukmRwS 5BKrjg/L/s/qfxwW
mv0OGluVPPBZh0GT+nNHnX/leb5tz5f9/c2Pzo5A5jolgkVhGY4XjEpkDsSS CWJ4XHXnGc+/tUa2
TrNygdPNMmTO46tu+5jHH64rBM1+E3mW5CgA5LNjB6GnM+opEJWkuRGRkNub GKOTzDmOk8lpJhJK
wAQ/IqZB69z36Djp9eDU9cf9tuv+fmb/AL+Gnma/CbzLchQAclmxg9DR7MOY 62iuS86/8rzfNufL
/v7mx+dDTX6HDS3Knngsw6DJ/TmjkDmOtorkvOv/ACvN8258v+/ubH507fqX l+Zuu9mM7stjHrmj
k8w5jq6K5dTetAJftrAFGkwZWzgHH6npUXnX/wDz1ufu7/vN931+nvRyeYcx 1tFcmJdRaPzFe6Me
M7gWx+dJ51/5Xm+bc+X/AH9zY/Ojk8w5jraK5PzdR2lt91gLuJy3T1+lIZr8 JvMtyFAByWbGD0NH
J5hzHW0VyXnX/leb5tz5f9/c2Pzoaa/Q4aW5U88FmHQZP6c0cgcx1tFcl51/ 5Xm+bc+X/f3Nj86l
U3rQCX7awBRpMGVs4Bx+p6UcnmHMdRRXH/bbr/n5m/7+GpPN1HaW33WAu4nL dPX6UezDmOsorkvO
v/K83zbny/7+5sfnUqjUWgMxnuFQDIJL/MMZ7fzNHJ5hzHUUVym/UvL8zdd7 MZ3ZbGPXNPU3rQCX
7awBRpMGVs4Bx+p6UuTzC51FFcl51/8A89bn7u/7zfd9fp70ol1Fo/MV7ox4 zuBbH50+TzDmOsor
kvOv/K83zbny/wC/ubH50vm6jtLb7rAXcTlunr9KOTzDmOsorkjNfhN5luQo AOSzYweho86/8rzf
NufL/v7mx+dHIHMdbRXJNNfocNLcqeeCzDoMn9OaPOv/ACvN8258v+/ubH50 cgcx1tFcvuu/LVhf
MxZC4QO+cDOe2OMHv2qLzr/yvN8258v+/ubH50cgcx1tFcuo1FoDMZ7hUAyC S/zDGe38zQpvWgEv
21gCjSYMrZwDj9T0pcnmFzqKK5JLm6aKSQ3UwCYA+c8k9uvoCfwpHuL1FVmn nCsMqd5wfxp8gcx1
1FFFZlBRRRQA1/umo/8AP+f8/wD15H+6aj/z/n/P/wBcAa/3T/n/AD/n8Y6k f7p/z/n/AD+Nczxg
kZPHH3TSGk3sRXfVPx/pRRdEMIyOhBI/SigBu7MxdFLyR5AQd/mzn9enXp60 Iha8Ezh03ZIVhyT3
/D3+lOMcJ5aBJJGLYG0ZPJ70sAg3jFukUmNy8DkeoNLS5peXKalFFFUZBRRR QBx+/wAyIJIhyo+Q
pgfmO/Qc9frxUvmx/ZfI+f7md20Z3Zzt6/d/rzXQyQWSMqvDAGc/KuwZb8KT y9P/ALlt9/Z0X73p
9fatOdBZGB5yCHALsxj24Mag5xj7+c49vTApYpog+9jMC8XlFVAwBt25689j jj/HdZNOWXymW1Eh
I+Qhc57cU2UWEb7PIgdyyhlVVyuSACR6cj86OdBZHOZH2Ty8y79+7bn5MY64 9asG5DRDBKP5ezAh
U/w4+9nPP9a6D7PZeZ5fkwb8btu0Zx64pvl6f53k7Lbzf7mF3evSjnQWRzie V9keMtJ5jENgIMcA
8Zz71KbkNEMEo/l7MCFT/Dj72c8/1reMNr9oEJtI8spcNsXBwQD+PIo8vT/O 8nZbeb/cwu716Uc6
CyMVbuNXXa0xUGIgFQMhOo6/j9fzqM3IaIYJR/L2YEKn+HH3s55/rW8senyL uVLZgccgKc5OB+uR
R5en+d5Oy283+5hd3r0o5kFkYKTRbYFZpsJE6kBB1bPI5/2v0HrUJMckEYYP vRCoAAweSc57demP
510gj09n2BLYsWI24XJI6j6imqNNkmaFVtjIGwU2rnP070c4WRy21vSrqTRb YFZpsJE6kBB1bPI5
/wBr9B610X2O1/59of8AvgVGI9PZ9gS2LFiNuFySOo+oocwtEw4rmIKA4fmM oQI1JHy4zuPJ+nHX
83Ldxq67WmKgxEAqBkJ1HX8fr+dbXl6f53k7Lbzf7mF3evShY9PkXcqWzA45 AU5ycD9cijmQWRgm
5DRDBKP5ezAhU/w4+9nPP9ar+dL5ezZHjGP9UufzxnNdN5en+d5Oy283+5hd 3r0puNM8zy8Wm/dj
b8uc+mPWjnQWRzGZMYy2MYxntnOPz5qzDLEFj8wSArG0Y2gHg7uev+10/XtW 07WS3Bh+w7j5ix5E
QIJIz+g61MI9PZ9gS2LFiNuFySOo+oo5wsjA85BDgF2Yx7cGNQc4x9/Oce3p gUpuQ0QwSj+XswIV
P8OPvZzz/Wt7y9P87ydlt5v9zC7vXpSMmnLL5TLaiQkfIQuc9uKOdBZHPStH JbQory7o0wFKjbkn
J5z7+nYVIk0W2BWabCROpAQdWzyOf9r9B61usmnLL5TLaiQkfIQuc9uKRhpi 7twtBtbDZ28Hng+/
Bo5wsjFiuYgoDh+YyhAjUkfLjO48n6cdfzct3GrrtaYqDEQCoGQnUdfx+v51 teXp/neTstvN/uYX
d69KQpp27aVtdxbbjC5Len15/WjmQWRhG5DRDBKP5ezAhU/w4+9nPP8AWqmZ MYy2MYxntnOPz5rp
pRYRvs8iB3LKGVVXK5IAJHpyPzpjtZLcGH7DuPmLHkRAgkjP6DrRzoLI5ra3 pVmVo5LaFFeXdGmA
pUbck5POff07Cum+x2v/AD7Q/wDfAqIpp27aVtdxbbjC5Len15/WnzhaJhG5 DRDBKP5ezAhU/wAO
PvZzz/Woz5LWiR7pd6ln/wBWMEkDjr7frXReXp/neTstvN/uYXd69KheTThc CAQwO5bDABODnHOT
yevAyaXOgsjn/Ol8vZsjxjH+qXP54zmmZkxjLYxjGe2c4/PmunxpnmeXi037 sbflzn0x61G7WS3B
h+w7j5ix5EQIJIz+g60+dBZGLDLEFj8wSArG0Y2gHg7uev8AtdP17UvnIIcA uzGPbgxqDnGPv5zj
29MCt8R6ez7AlsWLEbcLkkdR9RR5en+d5Oy283+5hd3r0pc6CyME3IaIYJR/ L2YEKn+HH3s55/rU
crRyW0KK8u6NMBSo25Jyec+/p2FdCyacsvlMtqJCR8hC5z24oZNOWXymW1Eh I+Qhc57cUc6CyMJJ
otsCs02EidSAg6tnkc/7X6D1p0VzEFAcPzGUIEakj5cZ3Hk/Tjr+e0w0xd24 Wg2ths7eDzwffg07
y9P87ydlt5v9zC7vXpRzoLIxVu41ddrTFQYiAVAyE6jr+P1/OozchohglH8v ZgQqf4cfeznn+tbp
TTt20ra7i23GFyW9Prz+tNlFhG+zyIHcsoZVVcrkgAkenI/OjmQWRh+eggii AYjyyrNsAYZJPBzn
vjHGR9aU3IaIYJR/L2YEKn+HH3s55/rWz/onmujWIVVkCM5RMZOMd885HbvU vl6f53k7Lbzf7mF3
evSjnQWRzp8lrRI90u9Sz/6sYJIHHX2/WoMyYxlsYxjPbOcfnzXRvJpwuBAI YHcthgAnBzjnJ5PX
gZNDtZLcGH7DuPmLHkRAgkjP6DrRzhaJz8pzHFHHyqjcT6scZ/oPw96UPsi2 RISXHzF8H8h269ev
0zXSvBarNHGLWFi+SfkHAHfp6kD8aVILKRnVYYCyn5l2DI+oo5wsi1RRRWYB RRRQA1/umo/8/wCf
8/8A15H+6aj/AM/5/wA//XAGv90/5/z/AJ/GqbdSSd7DJz2/wq0/3T/n/P8A n8apuFBI2McHHb/G
guPN0I7lQqxqOgBH8qKLlgyxsOhBP8qKRL3HMrBhMil2TICj13Eg02OJ5Lo3 Dq6Drhxzk/0qxH90
/wC8f506lYvndrFyiiiqMwoopjyxxsqswDOcKvc/QUAVztimaSOVcFgJFckn qeh7Ac8dOD05NREE
XhuC0XEm0puONuMbun3+CM9MAjPGatMypNDGqAkg9ONqjr+u0Y9/agS24xiS IYbyxgjg/wB36+1B
XulMofPJYxIqy5JWViOufuEYzwcnscnqKSZH2GNTAVjn80M7HOd+7HTjuM89 D74uGe2SVYjLCsg+
UJuAIz2x+VNkuYIXVBtZwVTahGUBIAyM9OR+lAe6IXUXhkPk7Amwtj5856Z/ u8H8QfSqwhVJm3bX
QTbyTcOMZbd9zGOOfyPTmr4MQkEYKBwuQoxkL9PSmGe2SVYjLCsg+UJuAIz2 x+VAe6QySP8AbVkH
k+XGChJcg8kEnGO209/Xpg1CIVSZt210E28k3DjGW3fcxjjn8j05q6JbcTCE SRCUDAQEbgOvSkae
2iYq0sKNGvILAFRx+Q6fpQHumc9sSj7hbqx84E7icF+h+72wQfYH0IqUQqkz btroJt5JuHGMtu+5
jHHP5HpzV0S24xiSIYbyxgjg/wB36+1AltxMIRJEJQMBARuA69KA90pSo+64 YCDc06NkuQcLjg/L
/sn2GT6VOHMVxKVeLY8gZmYnK8AEAY5+6ec8c+lTLLb71RJItwyiqCM8dQP0 4o823WTyxJEHQAbc
jKg4xx+X6UB7o4zxDOXHBwf8/gfyPpVCVH3XDAQbmnRslyDhccH5f9k+wyfS roltxMIRJEJQMBAR
uA69KWN4WYrGV3R/KVxgr+HYcfjQHumfNC29irx/LMHyZWAPzZxtHA6HnnoS ec4Y9sSj7hbqx84E
7icF+h+72wQfYH0IrWCqMYUDAwMDoKAqjGFAwMDA6CgPdM4QqkzbtroJt5Ju HGMtu+5jHHP5HpzV
kpbiQuZZMhskec+M/TOMcH24PpVgKoxhQMDAwOgoCqMYUDAwMDoKA90jL24Y sdmQ2Scd8Yz+QIz7
H0qjkPdXIwiIZkYyNkMduOAMcjKt345P10gqjGFAwMDA6CgKoxhQMDAwOgoD 3TMmhbexV4/lmD5M
rAH5s42jgdDzz0JPOcPKHzyWMSKsuSVlYjrn7hGM8HJ7HJ6itAKoxhQMDAwO goCqMYUDAwMDoKA9
0zyh88ljEirLklZWI65+4RjPByexyeopZYs3Lv56iMyKzDJ6jb27/wCr6+7e nN8KoxhQMDAwOgoC
qMYUDAwMDoKA90okEAwlovKE3mF9x3ff34249iM57E9sU6FjFd3DsIQsknLB zuAC4HG3noe/HPoa
uBVGMKBgYGB0FAVRjCgYGBgdBQHumdMj7DGpgKxz+aGdjnO/djpx3Geeh98X S9uGLHZkNknHfGM/
kCM+x9KkCqMYUDAwMDoKAqjGFAwMDA6CgPdGmeIZy44OD/n8D+R9KqwsYru4 dhCFkk5YOdwAXA42
89D3459DVwKoxhQMDAwOgoCqMYUDAwMDoKA90zhCqTNu2ugm3km4cYy277mM cc/kenNSiSRLySUi
HYdqH94cgAtzjb7n8jzVwKoxhQMDAwOgoCqMYUDAwMDoKA90rlLcSFzLJkNk jznxn6Zxjg+3B9Kk
L24YsdmQ2Scd8Yz+QIz7H0qQKoxhQMDAwOgoCqMYUDAwMDoKA90zch7q5GER DMjGRshjtxwBjkZV
u/HJ+qTQtvYq8fyzB8mVgD82cbRwOh556EnnONMKoxhQMDAwOgoCqMYUDAwM DoKA90zyh88ljEir
LklZWI65+4RjPByexyeooKHzyWMSKsuSVlYjrn7hGM8HJ7HJ6itAKoxhQMDA wOgoCqMYUDAwMDoK
A90oSxZuXfz1EZkVmGT1G3t3/wBX1929OVIIBhLReUJvML7ju+/vxtx7EZz2 J7Yq8FUYwoGBgYHQ
UBVGMKBgYGB0FAe6U4WMV3cOwhCyScsHO4ALgcbeeh78c+hqKZH2GNTAVjn8 0M7HOd+7HTjuM89D
740QqjGFAwMDA6CgKoxhQMDAwOgoD3TPMX+kTzM6AiUMq+YxVsDGGGMfw5zz gj/ZpBCqTNu2ugm3
km4cYy277mMcc/kenNaIVRjCgYGBgdBQFUYwoGBgYHQUB7pTEkiXkkpEOw7U P7w5ABbnG33P5Hmr
Be3DFjsyGyTjvjGfyBGfY+lSBVGMKBgYGB0FAVRjCgYGBgdBQHuleJ0WSaWV gGLbcZ6KM4/9mPtk
jtSHa83mTSqBG2FVCQRz3PccdOnBznGRZCqMYUDAwMDoKAqjGFAwMDA6CgPd HUUUUEhRRRQA1/um
o/8AP+f8/wD15H+6aj/z/n/P/wBcAa/3T/n/AD/n8a5gjJJweefvGrD/AHT/ AJ/z/n8Y6Q02titd
AKIwOgBA/Sii76p+P9KKAJ4/un/eP86dTY/un/eP86dQBcooopiCoPJaOYyR MCHPzq+SevY9up46
fTk1I8scbKrMAznCr3P0FI8u2aOMDJfJPPQDv+ZA/GgBsKN5kssgwznaB6KM 4/qfxx2qH7PN9s+0
Yj+/jZuONuMbun3+30496sefD/z1j+/s+8Pven19qRrmBZfKaeMSZA2FxnJ6 cUAVvsszT5KRqvmb
srKxGM5+4RjJ9fXnrSS2s5Ty0WFlWbzlZick792OnHUjPP054sS3cUThNwZ9 yqVVhlckAEjPTkfn
UvmJ5nl71343bc849cUAR+W/2zzNkWzy9u7Hz5z0z6f1qv8AZZmnyUjVfM3Z WViMZz9wjGT6+vPW
rRnhEhjMse8Yyu4ZGcY4/EfnR58PneT5sfm/3Nw3evSgCotk6zcoHTzTJkzu OrbvuYxx+uKZcxSx
RqpjV41uBIGVWZuX3HgDjAJ5z296vLPC67kljYcchgepwP14oE8LOEEsZYkr tDDOR1H4UAVp7act
J5XllXlSX5iQcrt+Xp/s9fwx3pq2TrNygdPNMmTO46tu+5jHH64q2ZQLhYSr ZZC4bjHBAI/UUefD
53k+bH5v9zcN3r0oAqPbTlp2WOHdJMjglyCVXHB+X/Z/U/jIsEisIzHC8YlM gdiSQSxPC4684zn3
9qn8+H/nrH9/Z94fe9Pr7VA98Ucp9kuGIDEYC/MFOCQM57j60ARrZOs3KB08 0yZM7jq277mMcfri
rHktJMJJWACH5FTIPXue/QcdPrwaVru2XduuIhtO1suOD6H8j+VOE8LOEEsZ YkrtDDOR1H4UASUV
H58PneT5sfm/3Nw3evSlSWORmVWBZDhl7j6igB9FFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUANf 7pqP/P8An/P/ANeR
/umo/wDP+f8AP/1wBr/dP+f8/wCfxjqR/un/AD/n/P4x0hla76p+P9KKLvqn 4/0ooETx/dP+8f50
6mx/dP8AvH+dOoGXKKKY8scbKrMAznCr3P0FMRH5LRzGSJgQ5+dXyT17Ht1P HT6cmlhRvMllkGGc
7QPRRnH9T+OO1OeXbNHGBkvknnoB3/MgfjR58P8Az1j+/s+8Pven19qAK/2e b7Z9oxH9/GzccbcY
3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561Za5gWXymnjEmQNhcZyen FNlu4onCbgz7lUqr
DK5IAJGenI/OgCvLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/bPM2RbPL27 sfPnPTPp/WpPMTzP
L3rvxu255x64pvnw+d5Pmx+b/c3Dd69KAIFgkVhGY4XjEpkDsSSCWJ4XHXnG c+/tSfZ5seTiPyvN
8zfuO77+/G3H4dff2qwZQLhYSrZZC4bjHBAI/UUefD53k+bH5v8Ac3Dd69KA M9tPmdGzHAGYTDIY
nBfoen4fT8qekbzXdyBEFQzIxkYEEhQvA45GVPfv+d1Z4XXcksbDjkMD1OB+ vFHnw+d5Pmx+b/c3
Dd69KAInSc3qSKkZjVSuS5BwSpJxj29ahWydZuUDp5pkyZ3HVt33MY4/XFWx PCzhBLGWJK7Qwzkd
R+FNS7t3maFZozIp2lN3OfpQBD9nm+2faMR/fxs3HG3GN3T7/b6ce9SvHIb2 KQBPLVGUksc5JB6Y
/wBn171IkscjMqsCyHDL3H1FPoApNHvvzGA/lkiWTKHBZcY59/lPH9z3NRpG 813cgRBUMyMZGBBI
ULwOORlT37/no0UAUFsnWblA6eaZMmdx1bd9zGOP1xVjyWkmEkrABD8ipkHr 3PfoOOn14NT0UAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUANf7pqP/P8An/P/ANeR/umo/wDP+f8AP/1wBr/dP+f8 /wCfxjqR/un/AD/n
/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/dP8AvH+dOoGXKg8lo5jJ EwIc/Or5J69j26nj
p9OTU9MeWONlVmAZzhV7n6CmIZCjeZLLIMM52geijOP6n8cdqh+zzfbPtGI/ v42bjjbjG7p9/t9O
PerHnw/89Y/v7PvD73p9faka5gWXymnjEmQNhcZyenFAFb7LM0+Skar5m7Ky sRjOfuEYyfX1560k
trOU8tFhZVm85WYnJO/djpx1Izz9OeLEt3FE4TcGfcqlVYZXJABIz05H51L5 ieZ5e9d+N23POPXF
AEflv9s8zZFs8vbux8+c9M+n9arLZOs3KB080yZM7jq277mMcfrirfnw+d5P mx+b/c3Dd69KDKBc
LCVbLIXDcY4IBH6igCJ0nN6kipGY1UrkuQcEqScY9vWoVsnWblA6eaZMmdx1 bd9zGOP1xVvz4fO8
nzY/N/ubhu9elCzwuu5JY2HHIYHqcD9eKAM9tPmdGzHAGYTDIYnBfoen4fT8 qlWydZuUDp5pkyZ3
HVt33MY4/XFW/Ph87yfNj83+5uG716UCeFnCCWMsSV2hhnI6j8KAKj205adl jh3STI4JcglVxwfl
/wBn9T+M6xzR3EhTyykjhyxJyOAMY79Oue/ty5Lu3eZoVmjMinaU3c5+lTUA QeS0kwklYAIfkVMg
9e579Bx0+vBqeoxPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3Dd69KAJKKjWe F13JLGw45DA9Tgfr
xR58PneT5sfm/wBzcN3r0oAkoqH7XbeZ5f2iLfnbt3jOfTFRvfItwYfKlJEi x5C8ZIz+g60AWqKj
E8LOEEsZYkrtDDOR1H4UefD53k+bH5v9zcN3r0oAkoqJrmBZfKaeMSZA2Fxn J6cUNcwLL5TTxiTI
GwuM5PTigCWioWu7Zd264iG07Wy44PofyP5U7z4fO8nzY/N/ubhu9elAElFR faYAwXz49xbYBvGS
3p9eRTZbuKJwm4M+5VKqwyuSACRnpyPzoAnoqsLweayNDIqo4jLnbjJxjvnn I7d6l8+HzvJ82Pzf
7m4bvXpQBJRVV9Qt1uFgV1dycEB1+U5x3P6DJoe+Rbgw+VKSJFjyF4yRn9B1 oAtUUVCl3bvM0KzR
mRTtKbuc/SgCaioWu7Zd264iG07Wy44PofyP5U4Tws4QSxliSu0MM5HUfhQB JRUfnw+d5Pmx+b/c
3Dd69Kb9rtvM8v7RFvzt27xnPpigCaiqr3yLcGHypSRIseQvGSM/oOtTefD/ AM9Y/v7PvD73p9fa
gCSiomuYFl8pp4xJkDYXGcnpxTZbuKJwm4M+5VKqwyuSACRnpyPzoAnopvmJ 5nl71343bc849cUx
rmBZfKaeMSZA2FxnJ6cUAS0VCl3bvM0KzRmRTtKbuc/Sl+0wBgvnx7i2wDeM lvT68igCWioxPGZz
CGUuBkgMMjp1HXvQJ4WcIJYyxJXaGGcjqPwoAkoqJ7mBGZXnjVkGWBcAge/5 j86ie+Rbgw+VKSJF
jyF4yRn9B1oAtUVG8u2aOMDJfJPPQDv+ZA/GlSWORmVWBZDhl7j6igB9FFFA BRRRQA1/umo/8/5/
z/8AXkf7pqP/AD/n/P8A9cAa/wB0/wCf8/5/GOpH+6f8/wCf8/jHSGVrvqn4 /wBKKLvqn4/0ooET
x/dP+8f506mx/dP+8f506gZcqDyWjmMkTAhz86vknr2PbqeOn05NT0x5Y42V WYBnOFXufoKYit9n
m+2faMR/fxs3HG3GN3T7/b6ce9N+yzNPkpGq+ZuysrEYzn7hGMn19eetWvPh /wCesf39n3h970+v
tSNcwLL5TTxiTIGwuM5PTigCrLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/ AGzzNkWzy9u7Hz5z
0z6f1pJbuKJwm4M+5VKqwyuSACRnpyPzqXzE8zy9678btueceuKAKS2TrNyg dPNMmTO46tu+5jHH
64qZ0nN6kipGY1UrkuQcEqScY9vWpfPh87yfNj83+5uG716UGUC4WEq2WQuG 4xwQCP1FAFRbJ1m5
QOnmmTJncdW3fcxjj9cVE2nzOjZjgDMJhkMTgv0PT8Pp+VaHnw+d5Pmx+b/c 3Dd69KFnhddySxsO
OQwPU4H68UAVFsnWblA6eaZMmdx1bd9zGOP1xQ9tOWnZY4d0kyOCXIJVccH5 f9n9T+Nvz4fO8nzY
/N/ubhu9elAnhZwgljLEldoYZyOo/CgCNY5o7iQp5ZSRw5Yk5HAGMd+nXPf2 5sVCl3bvM0KzRmRT
tKbuc/SpqAKD205adljh3STI4JcglVxwfl/2f1P4tlspy5KbOJRICZWAb5s4 2jgfXnOM9TxdE8LO
EEsZYkrtDDOR1H4UefD53k+bH5v9zcN3r0oAz20+Z0bMcAZhMMhicF+h6fh9 PyqVbJ1m5QOnmmTJ
ncdW3fcxjj9cVbWeF13JLGw45DA9TgfrxR58PneT5sfm/wBzcN3r0oAb9mj8 zfulznOPOfH5Zx+F
SeWm7dsXOd2cd8Yz+XFR/a7bzPL+0Rb87du8Zz6YqN75FuDD5UpIkWPIXjJG f0HWgCBI3mu7kCIK
hmRjIwIJCheBxyMqe/f8yWynLkps4lEgJlYBvmzjaOB9ec4z1PF3z4f+esf3 9n3h970+vtSNcwLL
5TTxiTIGwuM5PTigCt9lmafJSNV8zdlZWIxnP3CMZPr689aPsszT5KRqvmbs rKxGM5+4RjJ9fXnr
Vrz4fO8nzY/N/ubhu9elJ9pgDBfPj3FtgG8ZLen15FAFeSzke5LiQCNnVyOe o29v+Af+PH05X7PN
jycR+V5vmb9x3ff3424/Dr7+1WBPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3 Dd69KAIYIpo7udzH
FtlfO4Od2AoAGMe3r3qKW1nKeWiwsqzecrMTknfux046kZ5+nPFtZ4XXcksb DjkMD1OB+vFHnw+d
5Pmx+b/c3Dd69KAKv2SU3E0x25MgdF8xirYAGGGMDpnPODj05RbJ1m5QOnmm TJncdW3fcxjj9cVM
LweayNDIqo4jLnbjJxjvnnI7d6l8+HzvJ82Pzf7m4bvXpQBCqXIvHl8uLYwV P9YcgAnnG336VY8t
N27Yuc7s474xn8uKrvqFutwsCuruTggOvynOO5/QZND3yLcGHypSRIseQvGS M/oOtAFqq6xzR3Eh
TyykjhyxJyOAMY79Oue/tzYqFLu3eZoVmjMinaU3c5+lAEDR778xgP5ZIlky hwWXGOff5Tx/c9zU
aRvNd3IEQVDMjGRgQSFC8DjkZU9+/wCdtru2XduuIhtO1suOD6H8j+VOE8LO EEsZYkrtDDOR1H4U
AVFsnWblA6eaZMmdx1bd9zGOP1xVn7NH5m/dLnOcec+Pyzj8Kd58PneT5sfm /wBzcN3r0pv2u28z
y/tEW/O3bvGc+mKAJPLTdu2LnO7OO+MZ/Liqv2eb7Z9oxH9/GzccbcY3dPv9 vpx70575FuDD5UpI
kWPIXjJGf0HWpvPh/wCesf39n3h970+vtQBV+yzNPkpGq+ZuysrEYzn7hGMn 19eetJLazlPLRYWV
ZvOVmJyTv3Y6cdSM8/Tni01zAsvlNPGJMgbC4zk9OKbLdxROE3Bn3KpVWGVy QASM9OR+dAC+W/2z
zNkWzy9u7Hz5z0z6f1qv9lmafJSNV8zdlZWIxnP3CMZPr689aueYnmeXvXfj dtzzj1xTGuYFl8pp
4xJkDYXGcnpxQAxY5o7iQp5ZSRw5Yk5HAGMd+nXPf25bBFNHdzuY4tsr53Bz uwFAAxj29e9SJd27
zNCs0ZkU7Sm7nP0pftMAYL58e4tsA3jJb0+vIoAjdJzepIqRmNVK5LkHBKkn GPb1qF7actOyxw7p
JkcEuQSq44Py/wCz+p/G2J4zOYQylwMkBhkdOo696BPCzhBLGWJK7QwzkdR+ FAFCVJPMW2EYYLOJ
Q5Ru77jzjAwCecnpjHNaPlpu3bFzndnHfGM/lxTHuYEZleeNWQZYFwCB7/mP zqJ75FuDD5UpIkWP
IXjJGf0HWgCSFG8yWWQYZztA9FGcf1P447UnktJMJJWACH5FTIPXue/QcdPr wae8u2aOMDJfJPPQ
Dv8AmQPxpUljkZlVgWQ4Ze4+ooAfRRRQAUUUUANf7pqP/P8An/P/ANeR/umo /wDP+f8AP/1wBr/d
P+f8/wCfxjqR/un/AD/n/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/ dP8AvH+dOoGXKg8l
o5jJEwIc/Or5J69j26njp9OTUjyxxsqswDOcKvc/QUjy7Zo4wMl8k89AO/5k D8aYiv8AZ5vtn2jE
f38bNxxtxjd0+/2+nHvTfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVrz4f8AnrH9 /Z94fe9Pr7UjXMCy
+U08YkyBsLjOT04oAqy2s5Ty0WFlWbzlZick792OnHUjPP054s+W/wBs8zZF s8vbux8+c9M+n9aS
W7iicJuDPuVSqsMrkgAkZ6cj86l8xPM8veu/G7bnnHrigCktk6zcoHTzTJkz uOrbvuYxx+uKmdJz
epIqRmNVK5LkHBKknGPb1qRrmBZfKaeMSZA2FxnJ6cUpnhEhjMse8Yyu4ZGc Y4/EfnQBUWydZuUD
p5pkyZ3HVt33MY4/XFRNp8zo2Y4AzCYZDE4L9D0/D6flV6O5jeVoydjq5QKx GWwAcjnnginefD53
k+bH5v8Ac3Dd69KAKi2TrNygdPNMmTO46tu+5jHH64oe2nLTsscO6SZHBLkE quOD8v8As/qfxtrP
C67kljYcchgepwP14o8+HzvJ82Pzf7m4bvXpQBGsc0dxIU8spI4csScjgDGO /Trnv7c2KYkscjMq
sCyHDL3H1FPoAoPbTlp2WOHdJMjglyCVXHB+X/Z/U/i2WynLkps4lEgJlYBv mzjaOB9ec4z1PGjR
QBltp8zo2Y4AzCYZDE4L9D0/D6flUq2TrNygdPNMmTO46tu+5jHH64q/RQBD 9mj8zfulznOPOfH5
Zx+FSeWm7dsXOd2cd8Yz+XFOooApT205aTyvLKvKkvzEg5Xb8vT/AGev4Y70 n2WZp8lI1XzN2VlY
jGc/cIxk+vrz1q9RQBQWydZuUDp5pkyZ3HVt33MY4/XFSwRTR3c7mOLbK+dw c7sBQAMY9vXvVqig
Cg9tOWnZY4d0kyOCXIJVccH5f9n9T+LZbKcuSmziUSAmVgG+bONo4H15zjPU 8aNFAGW2nzOjZjgD
MJhkMTgv0PT8Pp+VSrZOs3KB080yZM7jq277mMcfrir9FAFH7JKbiaY7cmQO i+YxVsADDDGB0znn
Bx6cotk6zcoHTzTJkzuOrbvuYxx+uKv0UAVVS5F48vlxbGCp/rDkAE842+/S rHlpu3bFzndnHfGM
/lxTqKACq6xzR3EhTyykjhyxJyOAMY79Oue/tzYooApNHvvzGA/lkiWTKHBZ cY59/lPH9z3NRpG8
13cgRBUMyMZGBBIULwOORlT37/no0UAUFsnWblA6eaZMmdx1bd9zGOP1xVn7 NH5m/dLnOcec+Pyz
j8KmooAb5abt2xc53Zx3xjP5cVV+zzfbPtGI/v42bjjbjG7p9/t9OPerlFAF H7LM0+Skar5m7Kys
RjOfuEYyfX1560ktrOU8tFhZVm85WYnJO/djpx1Izz9OeL9FAEPlv9s8zZFs 8vbux8+c9M+n9ar/
AGWZp8lI1XzN2VlYjGc/cIxk+vrz1q9RQBXWOaO4kKeWUkcOWJORwBjHfp1z 39uWwRTR3c7mOLbK
+dwc7sBQAMY9vXvVqigCs6Tm9SRUjMaqVyXIOCVJOMe3rUL205adljh3STI4 JcglVxwfl/2f1P43
6KAMyVJPMW2EYYLOJQ5Ru77jzjAwCecnpjHNaPlpu3bFzndnHfGM/lxTqKAI YUbzJZZBhnO0D0UZ
x/U/jjtSeS0kwklYAIfkVMg9e579Bx0+vBqeigAooooAKKKKAGv901H/AJ/z /n/68j/dNR/5/wA/
5/8ArgDX+6f8/wCf8/jHUj/dP+f8/wCfxjpDK131T8f6UUXfVPx/pRQInj+6 f94/zp1Nj+6f94/z
p1AyXyWjmMkTAhz86vknr2PbqeOn05NLCjeZLLIMM52geijOP6n8cdqmopiK f2eb7Z9oxH9/Gzcc
bcY3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561eooAoS2s5Ty0WFlWb zlZick792OnHUjPP
054s+W/2zzNkWzy9u7Hz5z0z6f1qaigCj9lmafJSNV8zdlZWIxnP3CMZPr68 9aesEisIzHC8YlMg
diSQSxPC4684zn39qt0UAUHtpy07LHDukmRwS5BKrjg/L/s/qfxFsnWblA6e aZMmdx1bd9zGOP1x
V+igDLbT5nRsxwBmEwyGJwX6Hp+H0/Kny2U5clNnEokBMrAN82cbRwPrznGe p40aKAIPJaSYSSsA
EPyKmQevc9+g46fXg1PRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUA
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA1 /umo/wDP+f8AP/15
H+6aj/z/AJ/z/wDXAGv90/5/z/n8Y6kf7p/z/n/P4x0hla76p+P9KKLvqn4/ 0ooETx/dP+8f506m
x/dP+8f506gZcooopiCiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAoooo
AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigA
ooooAKKKKAGv93HqRVUzIDhioPu3/wBerUhAXJOACMk/WqDGBnVmKHb70AE0 hM8ABwrE5wevBqWq
8zh7qAhgxy2cH2NWKQytd9U/H+lFF31T8f6UUCJ4/un/AHj/ADp1Nj+6f94/ zp1Ax7y7BkngAEkk
1BdzuLN3QlSVyCCcjNLMYnyrOvQd+nFQ3bp9jdVdSQgHX0oEaGT6n/P+f89z J9T/AJ/z/nun+f8A
P+f/AK5/n/P+f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuA
Re: A Diagnostic Message for the Valid Schema [message #569502 is a reply to message #19645] Sat, 03 May 2003 22:51 Go to previous message
Eclipse UserFriend
Originally posted by: paechoi.earthlink.net

This is a multi-part message in MIME format.

------=_NextPart_000_0012_01C311A5.01FA6910
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0013_01C311A5.01FA6910"


------=_NextPart_001_0013_01C311A5.01FA6910
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Ed,

When I tried to get the line information by using the getLine() method =
in the
XSDDiagnostic interface. It seems like returning 1 unlike line 7 and =
line 8
shown in the screen capture in your privious message.

How should we do to get the line number? Thank you.

Regards,


Pae


"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB25ED9.AE2CB299@ca.ibm.com...
Pae,=20
I'm seeing this result with the just published 1.1.0 driver:=20


The schema isn't valid.=20
=20
Pae Choi wrote:=20

I have a simple test schema as follows:=20
<?xml version=3D"1.0" encoding=3D"UTF-8"?>=20
<!--W3C Schema generated by Pae -->=20
<xsd:schema xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema"=20
elementFormDefault=3D"qualified">=20
<xsd:element name=3D"CommonLogin">=20
<xsd:complexType>=20
<xsd:sequence>=20
<xsd:element name=3D"username" ref=3D"usernameRef"/>=20
<xsd:element name=3D"password" ref=3D"passwordRef"/>=20
</xsd:sequence>=20
</xsd:complexType>=20
</xsd:element>=20
<xsd:element name=3D"passwordRef" type=3D"xsd:string"/>=20
<xsd:element name=3D"usernameRef" type=3D"xsd:string"/>=20
</xsd:schema>=20

This is a very simple sample, but it is a valid schema. But when=20
I use the validate() and getDiagnostics() methods in the XSDSchema=20
interface it gives me a message as follows:=20

XSD: The element '#null' is not permitted as constrained by 'XML =
Schema ';=20
expecting schema=20

I do not understand what the message is saying. Any comments?=20

Pae


------=_NextPart_001_0013_01C311A5.01FA6910
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2600.0" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT size=3D2>Ed,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>When I tried to get the line information by using =
the=20
getLine() method in the</FONT></DIV>
<DIV><FONT size=3D2>XSDDiagnostic interface. It seems like returning 1 =
unlike line=20
7 and line 8</FONT></DIV>
<DIV><FONT size=3D2>shown in the screen capture&nbsp; in your privious=20
message.</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>How should we do to get the line number? Thank=20
you.</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Regards,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Pae</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV>"Ed Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB25ED9.AE2CB299@ca.ibm.com">news:3EB25ED9.AE2CB299@ca.ibm.=
com</A>...</DIV>Pae,=20

<P>I'm seeing this result with the just published 1.1.0 driver:=20
<BLOCKQUOTE><IMG height=3D411 =
src=3D"cid:000d01c311c6$8902e150$0b01a8c0@dev1"=20
width=3D502></BLOCKQUOTE>The schema isn't valid. <BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">I have a simple test schema as follows:=20
<P>&lt;?xml version=3D"1.0" encoding=3D"UTF-8"?&gt; <BR>&lt;!--W3C =
Schema=20
generated by Pae --&gt; <BR>&lt;xsd:schema xmlns:xsd=3D"<A=20
=
href=3D"http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchem=
a</A>"=20
<BR>elementFormDefault=3D"qualified"&gt; <BR>&nbsp;&lt;xsd:element=20
name=3D"CommonLogin"&gt; <BR>&nbsp; &lt;xsd:complexType&gt; =
<BR>&nbsp;&nbsp;=20
&lt;xsd:sequence&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;xsd:element =
name=3D"username"=20
ref=3D"usernameRef"/&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;xsd:element=20
name=3D"password" ref=3D"passwordRef"/&gt; <BR>&nbsp;&nbsp;=20
&lt;/xsd:sequence&gt; <BR>&nbsp; &lt;/xsd:complexType&gt;=20
<BR>&nbsp;&lt;/xsd:element&gt; <BR>&nbsp;&lt;xsd:element =
name=3D"passwordRef"=20
type=3D"xsd:string"/&gt; <BR>&nbsp;&lt;xsd:element =
name=3D"usernameRef"=20
type=3D"xsd:string"/&gt; <BR>&lt;/xsd:schema&gt;=20
<P>This is a very simple sample, but it is a valid schema. But when =
<BR>I=20
use the validate() and getDiagnostics() methods in the XSDSchema=20
<BR>interface it gives me a message as follows:=20
<P>XSD: The element '#null' is not permitted as constrained by 'XML =
Schema=20
'; <BR>expecting schema=20
<P>I do not understand what the message is saying. Any comments?=20
<P>Pae</P></BLOCKQUOTE></BLOCKQUOTE></BODY></HTML>

------=_NextPart_001_0013_01C311A5.01FA6910--

------=_NextPart_000_0012_01C311A5.01FA6910
Content-Type: image/jpeg;
name="C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\nsmailFJ.jpeg"
Content-Transfer-Encoding: base64
Content-ID: <000d01c311c6$8902e150$0b01a8c0@dev1>

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCws MGJGSjpQdGZ6eHJm
cG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAqMF40 NF7GhHCExsbGxsbG
xsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsb/ wAARCAGbAfYDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA AgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcY GRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKT lJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP0 9fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQA AQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2 Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOk paanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMB AAIRAxEAPwDXghR4
9zbiST/EfU0m23yQBKcHHG81Ja/6kf7zfzNVLrfsTY5wGkLRrJsZueoPt6e9 NK4FpIYJEDIWKnoQ
5/xpfs0Xo3/fZ/xqKy2bmMbMUZEcZ75zzjt2qMXc+1kYBbgkbYvLyRnJ67sN wDzkdPXikBZ+zRej
f99n/Gj7NF6N/wB9n/Gqa31w+eI027VYMuTuLsmeD2xnHPpnvS/bZyJnHlhY ELMNpy5DODg54zs9
+vegC39mi9G/77P+NH2aL0b/AL7P+NUEup4hIkMQZY2kdycYwZH4yWGPu9ef 8b883lxs6FW2H5l7
n2HvyMDv075oAPs0Xo3/AH2f8aPs0Xo3/fZ/xqFriZWhLGMRPt/eKpdSSeFG Dx2+YjBz26Uy3kkm
uraaQptkgZlVVIKglDgnPP6UATyQxIudrH/gZpm2L+43/fw1NP8AcH1rJvJZ becG2JlkdSWhOSAA
PvD0/r9aQGhti/uN/wB/DTDGBI65bAPHzH0B/rUdntNurLMZt3zFyep+nb6V M/8Ar5f94fyFAxvl
j1b/AL6NHlj1b/vo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+ jTqKAG+WPVv++jR5
Y9W/76NOooAb5Y9W/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igBvlj1 b/vo0eWPVv8Avo06
igBvlj1b/vo0eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPVv++jR5Y9 W/76NOooAb5Y9W/7
6NHlj1b/AL6NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/AL6NHlj1b/vo06ig Bvlj1b/vo0eWPVv+
+jTqKAG+WPVv++jR5Y9W/wC+jTqKAG+WPVv++jR5Y9W/76NOooAb5Y9W/wC+ jR5Y9W/76NOooAb5
Y9W/76NHlj1b/vo06igBvlj1b/vo0eWPVv8Avo06igBvlj1b/vo0eWPVv++j TqKAG+WPVv8Avo0e
WPVv++jTqKAG+WPVv++jR5Y9W/76NOooAb5Y9W/76NHlj1b/AL6NOooAb5Y9 W/76NHlj1b/vo06i
gCvOTEV2MRnOcnP86KS76p+P9KKBF+1/1I/3m/majktGkBVmiZNxYK8W7Gfx 96hREIJKqTuPUe9O
8uP+4v5U7gWIYnR3d3DFgBwuMYz/AI0otoBEYhBGI2OSgQYJ+lNdbaNlVkjD OcKu0ZP0FMcwRyBW
tvlyFMmwbQT0Hqeo6DHP1oAmWCFF2pFGo44CgdDkfrzTPscBn84xIXwMZUfK QScj3yaT/Q/+mH39
nb73p9fahfsbruTyGHHIwepwP14oAkaCFipaKMlCWUlRwSckj8ad5abt2xc5 3Zx3xjP5cVCVgFws
JgXLIXDbRjggEfqKk8iH/nkn/fIoABBCJBIIo94zhtoyM5zz+J/OhIIY5GkS KNXbqwUAn8ah8yw8
vzN9tszt3ZXGfTNO/wBD87yf3Hm/3ON3r0oAklUsoAGeagFuVZmEYDN94jGT 9adusgwXNvuLbAMr
kt6fXkUM1ksvlMbcSZA2ErnJ6cUANW3KZ2RhdxycYGT60j/6+X/eH8hUgFqZ zCEiLgZIG3I6dR17
0f6H53k/uPN/ucbvXpQBHRUg+xs4QeQWJK7RjOR1H4U3zLDzPL322/O3blc5 9MUrANoprz2y3Bh+
ysSJFjyIxjJGf0HWpf8ARvtPkeSN+0tkx4GBjv369qLAMoqx5EP/ADyT/vkV X8y33f8AHt+737PM
2rtznGOuevHT9KLAFFNee2W4MP2ViRIseRGMZIz+g61a8iH/AJ5J/wB8iiwF eipP9D87yf3Hm/3O
N3r0oH2NnCDyCxJXaMZyOo/CiwEdFSH7GJDGfI3jGV4yM4xx+I/Oj/Q/O8n9 x5v9zjd69KLAR0Us
slpE4TZGz7lUqu3K5IAJHpyPzp4FqZzCEiLgZIG3I6dR170WAjoqQfY2cIPI LEldoxnI6j8KR2sk
Zlc26sgywJUED3/MfnRYBlFO8yw8zy99tvzt25XOfTFRvPbLcGH7KxIkWPIj GMkZ/QdaLAOoprzQ
r5n+hMfLkEZwqck4xjn3H5/WkeeJHKf2fKxAYjCJ8wU4JAznuPrRYB9FN86H z2iFkxKvtJCp7c4z
nHzDt3q15EP/ADyT/vkUWAr0UeZb7v8Aj2/d79nmbV25zjHXPXjp+lNee2W4 MP2ViRIseRGMZIz+
g60WAdRTnMEcgVrb5chTJsG0E9B6nqOgxz9aei20jMqpGWQ4ZdoyPqKLARUV Y8iH/nkn/fIo8iH/
AJ5J/wB8iiwFeirHkQ/88k/75FHkQ/8APJP++RRYCvRVjyIf+eSf98ijyIf+ eSf98iiwFeirHkQ/
88k/75FHkQ/88k/75FFgK9FWPIh/55J/3yKPIh/55J/3yKLAV6KseRD/AM8k /wC+RR5EP/PJP++R
RYCvRVjyIf8Ankn/AHyKPIh/55J/3yKLAV6KseRD/wA8k/75FHkQ/wDPJP8A vkUWAr0VY8iH/nkn
/fIo8iH/AJ5J/wB8iiwFeipngh2/6pOo/hFQbYv+eUfPtQMWioJlTz4FCKAS cgDrxUb3FsjlWj5B
x90UWGouWiQ676p+P9KKLtFRlAUDrnAooJJ4/un/AHj/ADp1Nj+6f94/zp1A yXyWjmMkTAhz86vk
nr2PbqeOn05NOeMyTLuAMSjP3urZ4yMdvr+HQ055Y42VWYBnOFXufoKDIBMs WDuZSw9MAj/EUxFb
7PN9s+0Yj+/jZuONuMbun3+30496rtp8zo2Y4AzCYZDE4L9D0/D6flWpRQBW dJzepIqRmNVK5LkH
BKknGPb1qzVV70L5n7iU+XIIzjbyTjGOfcfn9akFwPOEbRyKGJVXIGGIycev Y9scfSgCP7M/2rOV
+z58zb33/Tpjv67uaiWydZuUDp5pkyZ3HVt33MY4/XFWGufnwkMki7gpdAMA 5x65474/oanoAqwR
TR3c7mOLbK+dwc7sBQAMY9vXvUf2WZp8lI1XzN2VlYjGc/cIxk+vrz1qb7WC 2FhlZd+wOqgjOcHv
kY55Ixx9KkM8IkMZlj3jGV3DIzjHH4j86AInSc3qSKkZjVSuS5BwSpJxj29a Z9nmx5OI/K83zN+4
7vv78bcfh19/apo7mN5WjJ2OrlArEZbAByOeeCKd58PneT5sfm/3Nw3evSgC o9tOWnZY4d0kyOCX
IJVccH5f9n9T+Nn7NH5m/dLnOcec+Pyzj8Kcs8LruSWNhxyGB6nA/Xijz4fO 8nzY/N/ubhu9elAD
vLTdu2LnO7OO+MZ/LioHSc3qSKkZjVSuS5BwSpJxj29as1E9zAjMrzxqyDLA uAQPf8x+dAC/vvtH
/LPyNnvu3Z/LGKr/AGebHk4j8rzfM37ju+/vxtx+HX39qsefD53k+bH5v9zc N3r0oE8LOEEsZYkr
tDDOR1H4UAO8tN27Yuc7s474xn8uKdUfnw+d5Pmx+b/c3Dd69KT7TAGC+fHu LbAN4yW9PryKAKq2
TrNygdPNMmTO46tu+5jHH64oe2nLTsscO6SZHBLkEquOD8v+z+p/G358PneT 5sfm/wBzcN3r0pqX
du8zQrNGZFO0pu5z9KAIlgkVhGY4XjEpkDsSSCWJ4XHXnGc+/tSfZ5seTiPy vN8zfuO77+/G3H4d
ff2qx58PneT5sfm/3Nw3evSmS3cUThNwZ9yqVVhlckAEjPTkfnQBXltZynlo sLKs3nKzE5J37sdO
OpGefpzxM6Tm9SRUjMaqVyXIOCVJOMe3rVmoIbuKXau4JIxIEbMN3BIPAPsa AK7205adljh3STI4
JcglVxwfl/2f1P4xypJ5i2wjDBZxKHKN3fcecYGATzk9MY5q613bLu3XEQ2n a2XHB9D+R/KpqAIf
s0fmb90uc5x5z4/LOPwqTy03bti5zuzjvjGfy4qAXg81kaGRVRxGXO3GTjHf POR271L58PneT5sf
m/3Nw3evSgCB7aRpXA2eXJKkpYk5BXbxjHP3eue/tUjxyG9ikATy1RlJLHOS QemP9n170/z4fO8n
zY/N/ubhu9elSUAVYLYpeT3EkcYZz8rKxJ24AweP9kH8fzk+zR+Zv3S5znHn Pj8s4/CpqKAKP2N/
P3bIs+Zv8/P7zGc7enp8vXp+VXPLTdu2LnO7OO+MZ/LikSWORmVWBZDhl7j6 in0ARPGZJl3AGJRn
73Vs8ZGO31/Doab5LSTCSVgAh+RUyD17nv0HHT68Gp6KACiiigAooooAKKKK ACiiigAooooAKKKK
ACiiigAooooAKKKKAGyEBck4AIyT9az3EMjBmlOR0w4GKvyqrxlXUMD2IzVf 7Lb/APPCL/vgf5/z
+YBWlZWubfawOCe+f4aZJYLJIz+cRuOcbP8A69WzbwqMrDGD6hR/n/P5t8uP +4v5UXsXCcoO8SG9
OXU+uaKbdKF2BQAOen4UUiCxH90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51 fJPXse3U8dPpyakK
AzK+0ZVSN2eRkjjH4fpQ8scbKrMAznCr3P0FJ58P/PWP7+z7w+96fX2piG/Z o/M37pc5zjznx+Wc
fhR9mj8zfulznOPOfH5Zx+FK1zAsvlNPGJMgbC4zk9OKbLdxROE3Bn3KpVWG VyQASM9OR+dAEEti
73ZlDrtLhj6/wH/2mP8Avo+nMphka7WRljUIT8653MuDhSMdOc9eo6ek/mJ5 nl71343bc849cUxr
mBZfKaeMSZA2FxnJ6cUAMSOaJikflmIuX3MTuGTkjHfqecjr3xzYqMzwiQxm WPeMZXcMjOMcfiPz
psdzG8rRk7HVygViMtgA5HPPBFAEDWsjz+Y0durbw3nICHCg8DpzkDB5HXp6 uWCRWEZjheMSmQOx
JIJYnhcdecZz7+1T+fD53k+bH5v9zcN3r0oWeF13JLGw45DA9TgfrxQBUe2n LTsscO6SZHBLkEqu
OD8v+z+p/EWydZuUDp5pkyZ3HVt33MY4/XFW/Ph87yfNj83+5uG716VJQBlt p8zo2Y4AzCYZDE4L
9D0/D6flT5bKcuSmziUSAmVgG+bONo4H15zjPU8XfPh/56x/f2feH3vT6+1C zwuu5JY2HHIYHqcD
9eKAJKzJUk8xbYRhgs4lDlG7vuPOMDAJ5yemMc1fMoFwsJVsshcNxjggEfqK BPCzhBLGWJK7Qwzk
dR+FAFRbJ1m5QOnmmTJncdW3fcxjj9cUPbTlp2WOHdJMjglyCVXHB+X/AGf1 P42muYFl8pp4xJkD
YXGcnpxT/MTzPL3rvxu255x64oApLZOs3KB080yZM7jq277mMcfripYIpo7u dzHFtlfO4Od2AoAG
Me3r3qbz4f8AnrH9/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oApy2U5clNnEo kBMrAN82cbRwPrzn
Gep4srHNHcSFPLKSOHLEnI4Axjv0657+3Ky3cUThNwZ9yqVVhlckAEjPTkfn S/a7bzPL+0Rb87du
8Zz6YoArLZOs3KB080yZM7jq277mMcfriiW1nKeWiwsqzecrMTknfux046kZ 5+nPEr3yLcGHypSR
IseQvGSM/oOtSR3MbytGTsdXKBWIy2ADkc88EUATVQitZwnlusKq03nMyk5B 37sdOegGePpxzZS7
t3maFZozIp2lN3OfpQl3bvM0KzRmRTtKbuc/SgCBo99+YwH8skSyZQ4LLjHP v8p4/ue5q7UYnhZw
gljLEldoYZyOo/CneYnmeXvXfjdtzzj1xQBWitT9qmlmUYZwyASMRwAOV6Z4 z3/SoZbKcuSmziUS
AmVgG+bONo4H15zjPU8XXl2zRxgZL5J56Ad/zIH40PLtmjjAyXyTz0A7/mQP xoAqLZOs3KB080yZ
M7jq277mMcfrir9Qtd2y7t1xENp2tlxwfQ/kfyoa7tl3briIbTtbLjg+h/I/ lQAfZo/M37pc5zjz
nx+WcfhR9mj8zfulznOPOfH5Zx+FDXdsu7dcRDadrZccH0P5H8qmoAg8lpJh JKwAQ/IqZB69z36D
jp9eDU9Qtd2y7t1xENp2tlxwfQ/kfyoFwPOEbRyKGJVXIGGIycevY9scfSgC aiio/Ph87yfNj83+
5uG716UASUVF9pgDBfPj3FtgG8ZLen15FD3MCMyvPGrIMsC4BA9/zH50AS0V G8u2aOMDJfJPPQDv
+ZA/Gmi4HnCNo5FDEqrkDDEZOPXse2OPpQBNRVf7Wu7/AFcnl79nmcbc5xjr nrx0/Sj7Wu7/AFcn
l79nmcbc5xjrnrx0/SgCxRUX2hPtPkYfftLZKkDAx379e1K8u2aOMDJfJPPQ Dv8AmQPxoAkoqq96
Edk8iUsrhQo25bOcEc9OP5+hxHJqkUczxGKUusix4G3ktkjHPtQBeoqKGfzZ JU8t18ptpLYwTjPG
D6EfnTPtYLYWGVl37A6qCM5we+RjnkjHH0oAsUVGZ4RIYzLHvGMruGRnGOPx H502O5jeVoydjq5Q
KxGWwAcjnngigCaio/Ph87yfNj83+5uG716ULPC67kljYcchgepwP14oAkoq Pz4fO8nzY/N/ubhu
9elQvfItwYfKlJEix5C8ZIz+g60AWH+6aj/z/n/P/wBeR/umo/8AP+f8/wD1 wBr/AHT/AJ/z/n8Y
6kf7p/z/AJ/z+MdIZWu+qfj/AEoou+qfj/SigRPH90/7x/nTqbH90/7x/nTq BkvktHMZImBDn51f
JPXse3U8dPpyai+zzfbPtGI/v42bjjbjG7p9/t9OPerHnw+d5Pmx+b/c3Dd6 9KDKBcLCVbLIXDcY
4IBH6imIq/ZZmnyUjVfM3ZWViMZz9wjGT6+vPWkltZynlosLKs3nKzE5J37s dOOpGefpzxb8+Hzv
J82Pzf7m4bvXpQs8LruSWNhxyGB6nA/XigBvlv8AbPM2RbPL27sfPnPTPp/W q/2WZp8lI1XzN2Vl
YjGc/cIxk+vrz1q158PneT5sfm/3Nw3evSgTws4QSxliSu0MM5HUfhQBAsEi sIzHC8YlMgdiSQSx
PC4684zn39qje2nLTsscO6SZHBLkEquOD8v+z+p/Gyl3bvM0KzRmRTtKbuc/ So/to89ohBKSr7SR
t9ucZzj5h270ARLZOs3KB080yZM7jq277mMcfriom0+Z0bMcAZhMMhicF+h6 fh9PyrQ8+HzvJ82P
zf7m4bvXpSfaYAwXz49xbYBvGS3p9eRQBTlspy5KbOJRICZWAb5s42jgfXnO M9Txo1Gs8LruSWNh
xyGB6nA/Xio1u1MzxtHIgV9m9sbSeCBwe+R1+nXigCP7PN9s+0Yj+/jZuONu Mbun3+30496rtp8z
o2Y4AzCYZDE4L9D0/D6flWh58PneT5sfm/3Nw3evSoX1C3W4WBXV3JwQHX5T nHc/oMmgBXSc3qSK
kZjVSuS5BwSpJxj29ahe2nLTsscO6SZHBLkEquOD8v8As/qfxt+fD53k+bH5 v9zcN3r0o8+H/nrH
9/Z94fe9Pr7UAVfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVjy3+2eZsi2eXt3Y+ fOemfT+tOMoFwsJV
sshcNxjggEfqKal3bvM0KzRmRTtKbuc/SgCH7PN9s+0Yj+/jZuONuMbun3+3 0496b9lmafJSNV8z
dlZWIxnP3CMZPr689asfa7bzPL+0Rb87du8Zz6YqN75FuDD5UpIkWPIXjJGf 0HWgCKW1nKeWiwsq
zecrMTknfux046kZ5+nPFn7NH5m/dLnOcec+Pyzj8KV7mBGZXnjVkGWBcAge /wCY/Ol8+H/nrH9/
Z94fe9Pr7UAO8tN27Yuc7s474xn8uKpPbTlp2WOHdJMjglyCVXHB+X/Z/U/j b8+HzvJ82Pzf7m4b
vXpQZQLhYSrZZC4bjHBAI/UUARrHNHcSFPLKSOHLEnI4Axjv0657+3Isc0dx IU8spI4csScjgDGO
/Trnv7cyCeMzmEMpcDJAYZHTqOveoX1C3W4WBXV3JwQHX5TnHc/oMmgCBI3m u7kCIKhmRjIwIJCh
eBxyMqe/f87flv8AbPM2RbPL27sfPnPTPp/WnCeMzmEMpcDJAYZHTqOvejz4 fO8nzY/N/ubhu9el
ADYUbzJZZBhnO0D0UZx/U/jjtRCjeZLLIMM52geijOP6n8cdqSW7iicJuDPu VSqsMrkgAkZ6cj86
Y98i3Bh8qUkSLHkLxkjP6DrQAySzke5LiQCNnVyOeo29v+Af+PH05JLOR7ku JAI2dXI56jb2/wCA
f+PH05tJLHIzKrAshwy9x9RT6AKUlnI9yXEgEbOrkc9Rt7f8A/8AHj6c2f33 2j/ln5Gz33bs/ljF
SUUAUpLOR7kuJAI2dXI56jb2/wCAf+PH05kMMjXayMsahCfnXO5lwcKRjpzn r1HT0s0UAR/vvtH/
ACz8jZ77t2fyxiq/2ebHk4j8rzfM37ju+/vxtx+HX39quUUAVYIpo7udzHFt lfO4Od2AoAGMe3r3
qtKknmLbCMMFnEoco3d9x5xgYBPOT0xjmtOigCGFG8yWWQYZztA9FGcf1P44 7VGiXP2ou6xFckbt
5JCdgBjjtnn+mLVFAFP7PNjycR+V5vmb9x3ff3424/Dr7+1H2ebHk4j8rzfM 37ju+/vxtx+HX39q
uUUAVnSc3qSKkZjVSuS5BwSpJxj29afCjeZLLIMM52geijOP6n8cdqmooApy R3ZnMqiLKnagLnGw
9c/L1OB+Q98xy2k7SSyBIixlV0JkI+Ubcg8d9g/P89CigCmI7tZpSgiCySq+ 7echRtBGNvcD170j
Wsjz+Y0durbw3nICHCg8DpzkDB5HXp63aKAKiwSKwjMcLxiUyB2JJBLE8Ljr zjOff2qN7actOyxw
7pJkcEuQSq44Py/7P6n8b9FAFBbJ1m5QOnmmTJncdW3fcxjj9cVE2nzOjZjg DMJhkMTgv0PT8Pp+
ValFAGdLZTlyU2cSiQEysA3zZxtHA+vOcZ6ni/5abt2xc53Zx3xjP5cU6igB r/dNR/5/z/n/AOvI
/wB01H/n/P8An/64A1/un/P+f8/jHUj/AHT/AJ/z/n8Y6Qytd9U/H+lFF31T 8f6UUCJ4/un/AHj/
ADp1Nj+6f94/zp1Axi2TrNygdPNMmTO46tu+5jHH64qZ0nN6kipGY1UrkuQc EqScY9vWrNMeWONl
VmAZzhV7n6CmIprZOs3KB080yZM7jq277mMcfriom0+Z0bMcAZhMMhicF+h6 fh9PyrQ8+H/nrH9/
Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oAqrZOs3KB080yZM7jq277mMcfrih7 actOyxw7pJkcEuQS
q44Py/7P6n8bEt3FE4TcGfcqlVYZXJABIz05H51L5ieZ5e9d+N23POPXFAEK xzR3EhTyykjhyxJy
OAMY79Oue/ty2C2KXk9xJHGGc/KysSduAMHj/ZB/H85vPh87yfNj83+5uG71 6UGUC4WEq2WQuG4x
wQCP1FAFf7PNjycR+V5vmb9x3ff3424/Dr7+1Ogimju53McW2V87g53YCgAY x7evepvPh87yfNj8
3+5uG716ULPC67kljYcchgepwP14oAz20+Z0bMcAZhMMhicF+h6fh9PyqwLe ZppfMEaxPKsmVYlv
l24GMcfdB/T3qx58PneT5sfm/wBzcN3r0oE8LOEEsZYkrtDDOR1H4UAVFsnW blA6eaZMmdx1bd9z
GOP1xUqpci8eXy4tjBU/1hyACecbffpUiXdu8zQrNGZFO0pu5z9KmoAzpbKc uSmziUSAmVgG+bON
o4H15zjPU8ST205aTyvLKvKkvzEg5Xb8vT/Z6/hjvVkTws4QSxliSu0MM5HU fhR58PneT5sfm/3N
w3evSgCJ0nN6kipGY1UrkuQcEqScY9vWlWOaO4kKeWUkcOWJORwBjHfp1z39 uZFnhddySxsOOQwP
U4H68UefD53k+bH5v9zcN3r0oAb9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd 8Yz+XFR/a7bzPL+0
Rb87du8Zz6YqN75FuDD5UpIkWPIXjJGf0HWgCvcxSxRqpjV41uBIGVWZuX3H gDjAJ5z296lntpy0
nleWVeVJfmJByu35en+z1/DHepmufnwkMki7gpdAMA5x65474/oaf58PneT5 sfm/3Nw3evSgClLZ
TlyU2cSiQEysA3zZxtHA+vOcZ6niw6Tm9SRUjMaqVyXIOCVJOMe3rUqzwuu5 JY2HHIYHqcD9eKFn
hddySxsOOQwPU4H68UAROk5vUkVIzGqlclyDglSTjHt60ipci8eXy4tjBU/1 hyACecbffpU3nw+d
5Pmx+b/c3Dd69KBPCzhBLGWJK7QwzkdR+FAETpOb1JFSMxqpXJcg4JUk4x7e tQrZOs3KB080yZM7
jq277mMcfrirUM/mySp5br5TbSWxgnGeMH0I/Ol8+HzvJ82Pzf7m4bvXpQBU ltZynlosLKs3nKzE
5J37sdOOpGefpzxd8tN27Yuc7s474xn8uKY9zAjMrzxqyDLAuAQPf8x+dKJ4 zOYQylwMkBhkdOo6
96AGeS0kwklYAIfkVMg9e579Bx0+vBqeoxPCzhBLGWJK7QwzkdR+FQvfItwY fKlJEix5C8ZIz+g6
0AWqKYkscjMqsCyHDL3H1FPoAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKK
KACiiigBr/dNR/5/z/n/AOvI/wB01H/n/P8An/64A1/un/P+f8/jHUj/AHT/ AJ/z/n8Y6Qytd9U/
H+lFF31T8f6UUCJ4/un/AHj/ADp1Nj+6f94/zp1Ay5UHktHMZImBDn51fJPX se3U8dPpyanopiKf
2eb7Z9oxH9/GzccbcY3dPv8Ab6ce9N+yzNPkpGq+ZuysrEYzn7hGMn19eetW 3ljjZVZgGc4Ve5+g
pPPh/wCesf39n3h970+vtQBUltZynlosLKs3nKzE5J37sdOOpGefpzxZ8t/t nmbItnl7d2Pnznpn
0/rStcwLL5TTxiTIGwuM5PTimy3cUThNwZ9yqVVhlckAEjPTkfnQBXWydZuU Dp5pkyZ3HVt33MY4
/XFTOk5vUkVIzGqlclyDglSTjHt61P5ieZ5e9d+N23POPXFNM8IkMZlj3jGV 3DIzjHH4j86AKi2T
rNygdPNMmTO46tu+5jHH64qJtPmdGzHAGYTDIYnBfoen4fT8q0PPh87yfNj8 3+5uG716ULPC67kl
jYcchgepwP14oAqLZOs3KB080yZM7jq277mMcfrih7actOyxw7pJkcEuQSq4 4Py/7P6n8bYnhZwg
ljLEldoYZyOo/CgygXCwlWyyFw3GOCAR+ooAjWOaO4kKeWUkcOWJORwBjHfp 1z39ubFR+fD53k+b
H5v9zcN3r0o8+H/nrH9/Z94fe9Pr7UAVHtpy07LHDukmRwS5BKrjg/L/ALP6 n8Wy2U5clNnEokBM
rAN82cbRwPrznGep4me+KOU+yXDEBiMBfmCnBIGc9x9ala7tl3briIbTtbLj g+h/I/lQBRbT5nRs
xwBmEwyGJwX6Hp+H0/KpVsnWblA6eaZMmdx1bd9zGOP1xVsTws4QSxliSu0M M5HUfhR58PneT5sf
m/3Nw3evSgBv2aPzN+6XOc4858flnH4VJ5abt2xc53Zx3xjP5cUiSxyMyqwL IcMvcfUU+gCukc0T
FI/LMRcvuYncMnJGO/U85HXvjmP7PNjycR+V5vmb9x3ff3424/Dr7+1XKKAM ttPmdGzHAGYTDIYn
Bfoen4fT8qG0+Z0bMcAZhMMhicF+h6fh9PyrUooAp/Z5seTiPyvN8zfuO77+ /G3H4dff2pj205ad
ljh3STI4JcglVxwfl/2f1P436KAKYju1mlKCILJKr7t5yFG0EY29wPXvR9nm x5OI/K83zN+47vv7
8bcfh19/arlFAGZKknmLbCMMFnEoco3d9x5xgYBPOT0xjmrTpOb1JFSMxqpX Jcg4JUk4x7etWaKA
KD205adljh3STI4JcglVxwfl/wBn9T+N3y03bti5zuzjvjGfy4p1FAEHktJM JJWACH5FTIPXue/Q
cdPrwanoooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigBr/AHTU
f+f8/wCf/ryP901H/n/P+f8A64A1/un/AD/n/P4x1I/3T/n/AD/n8Y6Qytd9 U/H+lFF31T8f6UUC
J4/un/eP86dTY/un/eP86dQMuUUUUxEHktHMZImBDn51fJPXse3U8dPpyai+ zzfbPtGI/v42bjjb
jG7p9/t9OPerlMeWONlVmAZzhV7n6CgCp9lmafJSNV8zdlZWIxnP3CMZPr68 9aSW1nKeWiwsqzec
rMTknfux046kZ5+nPFvz4f8AnrH9/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04o ATy3+2eZsi2eXt3Y
+fOemfT+tRLBIrCMxwvGJTIHYkkEsTwuOvOM59/apJbuKJwm4M+5VKqwyuSA CRnpyPzqXzE8zy96
78btueceuKAKv2ebHk4j8rzfM37ju+/vxtx+HX39qrtp8zo2Y4AzCYZDE4L9 D0/D6flV9rmBZfKa
eMSZA2FxnJ6cUvnw+d5Pmx+b/c3Dd69KAKSRvNd3IEQVDMjGRgQSFC8DjkZU 9+/52HSc3qSKkZjV
SuS5BwSpJxj29ake5gRmV541ZBlgXAIHv+Y/Ol8+H/nrH9/Z94fe9Pr7UAVF snWblA6eaZMmdx1b
d9zGOP1xT/s832z7RiP7+Nm4424xu6ff7fTj3qx58PneT5sfm/3Nw3evSgTw s4QSxliSu0MM5HUf
hQAx45DexSAJ5aoykljnJIPTH+z696haPffmMB/LJEsmUOCy4xz7/KeP7nua smeESGMyx7xjK7hk
Zxjj8R+dHnw+d5Pmx+b/AHNw3evSgCkkbzXdyBEFQzIxkYEEhQvA45GVPfv+ blsnWblA6eaZMmdx
1bd9zGOP1xVxJY5GZVYFkOGXuPqKfQBB5LSTCSVgAh+RUyD17nv0HHT68Gp6 KKACiiigAooooAKK
KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooo
oAKKKKAGv901H/n/AD/n/wCvI/3TUf8An/P+f/rgDX+6f8/5/wA/jHUj/dP+ f8/5/GOkMrXfVPx/
pRRd9U/H+lFAieP7p/3j/OnVSaJmlYlpfmJ2ojkZ68+39T265WFf3yENKpxu 2PIWyOeR/h9D65NC
uV2ubFFFFMkKg8lo5jJEwIc/Or5J69j26njp9OTU9FAFP7PN9s+0Yj+/jZuO NuMbun3+30496b9l
mafJSNV8zdlZWIxnP3CMZPr689a59Li9dWZZ5yqjLHecD8aXzr//AJ63P3d/ 3m+76/T3rTkJ5jel
tZynlosLKs3nKzE5J37sdOOpGefpzxZ8t/tnmbItnl7d2Pnznpn0/rXMiXUW j8xXujHjO4FsfnTo
3v5EL/aJ1TaSGZmw2ASQD68H8qOTzDmNz7LM0+Skar5m7KysRjOfuEYyfX15 60i2TrNygdPNMmTO
46tu+5jHH64rA+03vl+Z59xszjdvbGfTNL51/wCV5vm3Pl/39zY/OjkDmNu5 ilijVTGrxrcCQMqs
zcvuPAHGATznt71LPbTlpPK8sq8qS/MSDldvy9P9nr+GO9c+Li7MBlF3LgMF K+Y2eQSD+ho86/8A
K83zbny/7+5sfnRyBzG8tk6zcoHTzTJkzuOrbvuYxx+uKHtpy07LHDukmRwS 5BKrjg/L/s/qfxwW
mv0OGluVPPBZh0GT+nNHnX/leb5tz5f9/c2Pzo5A5jolgkVhGY4XjEpkDsSS CWJ4XHXnGc+/tUa2
TrNygdPNMmTO46tu+5jHH64rBM1+E3mW5CgA5LNjB6GnM+opEJWkuRGRkNub GKOTzDmOk8lpJhJK
wAQ/IqZB69z36Djp9eDU9cf9tuv+fmb/AL+Gnma/CbzLchQAclmxg9DR7MOY 62iuS86/8rzfNufL
/v7mx+dDTX6HDS3Knngsw6DJ/TmjkDmOtorkvOv/ACvN8258v+/ubH507fqX l+Zuu9mM7stjHrmj
k8w5jq6K5dTetAJftrAFGkwZWzgHH6npUXnX/wDz1ufu7/vN931+nvRyeYcx 1tFcmJdRaPzFe6Me
M7gWx+dJ51/5Xm+bc+X/AH9zY/Ojk8w5jraK5PzdR2lt91gLuJy3T1+lIZr8 JvMtyFAByWbGD0NH
J5hzHW0VyXnX/leb5tz5f9/c2Pzoaa/Q4aW5U88FmHQZP6c0cgcx1tFcl51/ 5Xm+bc+X/f3Nj86l
U3rQCX7awBRpMGVs4Bx+p6UcnmHMdRRXH/bbr/n5m/7+GpPN1HaW33WAu4nL dPX6UezDmOsorkvO
v/K83zbny/7+5sfnUqjUWgMxnuFQDIJL/MMZ7fzNHJ5hzHUUVym/UvL8zdd7 MZ3ZbGPXNPU3rQCX
7awBRpMGVs4Bx+p6UuTzC51FFcl51/8A89bn7u/7zfd9fp70ol1Fo/MV7ox4 zuBbH50+TzDmOsor
kvOv/K83zbny/wC/ubH50vm6jtLb7rAXcTlunr9KOTzDmOsorkjNfhN5luQo AOSzYweho86/8rzf
NufL/v7mx+dHIHMdbRXJNNfocNLcqeeCzDoMn9OaPOv/ACvN8258v+/ubH50 cgcx1tFcvuu/LVhf
MxZC4QO+cDOe2OMHv2qLzr/yvN8258v+/ubH50cgcx1tFcuo1FoDMZ7hUAyC S/zDGe38zQpvWgEv
21gCjSYMrZwDj9T0pcnmFzqKK5JLm6aKSQ3UwCYA+c8k9uvoCfwpHuL1FVmn nCsMqd5wfxp8gcx1
1FFFZlBRRRQA1/umo/8AP+f8/wD15H+6aj/z/n/P/wBcAa/3T/n/AD/n8Y6k f7p/z/n/AD+Nczxg
kZPHH3TSGk3sRXfVPx/pRRdEMIyOhBI/SigBu7MxdFLyR5AQd/mzn9enXp60 Iha8Ezh03ZIVhyT3
/D3+lOMcJ5aBJJGLYG0ZPJ70sAg3jFukUmNy8DkeoNLS5peXKalFFFUZBRRR QBx+/wAyIJIhyo+Q
pgfmO/Qc9frxUvmx/ZfI+f7md20Z3Zzt6/d/rzXQyQWSMqvDAGc/KuwZb8KT y9P/ALlt9/Z0X73p
9fatOdBZGB5yCHALsxj24Mag5xj7+c49vTApYpog+9jMC8XlFVAwBt25689j jj/HdZNOWXymW1Eh
I+Qhc57cU2UWEb7PIgdyyhlVVyuSACR6cj86OdBZHOZH2Ty8y79+7bn5MY64 9asG5DRDBKP5ezAh
U/w4+9nPP9a6D7PZeZ5fkwb8btu0Zx64pvl6f53k7Lbzf7mF3evSjnQWRzie V9keMtJ5jENgIMcA
8Zz71KbkNEMEo/l7MCFT/Dj72c8/1reMNr9oEJtI8spcNsXBwQD+PIo8vT/O 8nZbeb/cwu716Uc6
CyMVbuNXXa0xUGIgFQMhOo6/j9fzqM3IaIYJR/L2YEKn+HH3s55/rW8senyL uVLZgccgKc5OB+uR
R5en+d5Oy283+5hd3r0o5kFkYKTRbYFZpsJE6kBB1bPI5/2v0HrUJMckEYYP vRCoAAweSc57demP
510gj09n2BLYsWI24XJI6j6imqNNkmaFVtjIGwU2rnP070c4WRy21vSrqTRb YFZpsJE6kBB1bPI5
/wBr9B610X2O1/59of8AvgVGI9PZ9gS2LFiNuFySOo+oocwtEw4rmIKA4fmM oQI1JHy4zuPJ+nHX
83Ldxq67WmKgxEAqBkJ1HX8fr+dbXl6f53k7Lbzf7mF3evShY9PkXcqWzA45 AU5ycD9cijmQWRgm
5DRDBKP5ezAhU/w4+9nPP9ar+dL5ezZHjGP9UufzxnNdN5en+d5Oy283+5hd 3r0puNM8zy8Wm/dj
b8uc+mPWjnQWRzGZMYy2MYxntnOPz5qzDLEFj8wSArG0Y2gHg7uev+10/XtW 07WS3Bh+w7j5ix5E
QIJIz+g61MI9PZ9gS2LFiNuFySOo+oo5wsjA85BDgF2Yx7cGNQc4x9/Oce3p gUpuQ0QwSj+XswIV
P8OPvZzz/Wt7y9P87ydlt5v9zC7vXpSMmnLL5TLaiQkfIQuc9uKOdBZHPStH JbQory7o0wFKjbkn
J5z7+nYVIk0W2BWabCROpAQdWzyOf9r9B61usmnLL5TLaiQkfIQuc9uKRhpi 7twtBtbDZ28Hng+/
Bo5wsjFiuYgoDh+YyhAjUkfLjO48n6cdfzct3GrrtaYqDEQCoGQnUdfx+v51 teXp/neTstvN/uYX
d69KQpp27aVtdxbbjC5Len15/WjmQWRhG5DRDBKP5ezAhU/w4+9nPP8AWqmZ MYy2MYxntnOPz5rp
pRYRvs8iB3LKGVVXK5IAJHpyPzpjtZLcGH7DuPmLHkRAgkjP6DrRzoLI5ra3 pVmVo5LaFFeXdGmA
pUbck5POff07Cum+x2v/AD7Q/wDfAqIpp27aVtdxbbjC5Len15/WnzhaJhG5 DRDBKP5ezAhU/wAO
PvZzz/Woz5LWiR7pd6ln/wBWMEkDjr7frXReXp/neTstvN/uYXd69KheTThc CAQwO5bDABODnHOT
yevAyaXOgsjn/Ol8vZsjxjH+qXP54zmmZkxjLYxjGe2c4/PmunxpnmeXi037 sbflzn0x61G7WS3B
h+w7j5ix5EQIJIz+g60+dBZGLDLEFj8wSArG0Y2gHg7uev8AtdP17UvnIIcA uzGPbgxqDnGPv5zj
29MCt8R6ez7AlsWLEbcLkkdR9RR5en+d5Oy283+5hd3r0pc6CyME3IaIYJR/ L2YEKn+HH3s55/rU
crRyW0KK8u6NMBSo25Jyec+/p2FdCyacsvlMtqJCR8hC5z24oZNOWXymW1Eh I+Qhc57cUc6CyMJJ
otsCs02EidSAg6tnkc/7X6D1p0VzEFAcPzGUIEakj5cZ3Hk/Tjr+e0w0xd24 Wg2ths7eDzwffg07
y9P87ydlt5v9zC7vXpRzoLIxVu41ddrTFQYiAVAyE6jr+P1/OozchohglH8v ZgQqf4cfeznn+tbp
TTt20ra7i23GFyW9Prz+tNlFhG+zyIHcsoZVVcrkgAkenI/OjmQWRh+eggii AYjyyrNsAYZJPBzn
vjHGR9aU3IaIYJR/L2YEKn+HH3s55/rWz/onmujWIVVkCM5RMZOMd885HbvU vl6f53k7Lbzf7mF3
evSjnQWRzp8lrRI90u9Sz/6sYJIHHX2/WoMyYxlsYxjPbOcfnzXRvJpwuBAI YHcthgAnBzjnJ5PX
gZNDtZLcGH7DuPmLHkRAgkjP6DrRzhaJz8pzHFHHyqjcT6scZ/oPw96UPsi2 RISXHzF8H8h269ev
0zXSvBarNHGLWFi+SfkHAHfp6kD8aVILKRnVYYCyn5l2DI+oo5wsi1RRRWYB RRRQA1/umo/8/wCf
8/8A15H+6aj/AM/5/wA//XAGv90/5/z/AJ/GqbdSSd7DJz2/wq0/3T/n/P8A n8apuFBI2McHHb/G
guPN0I7lQqxqOgBH8qKLlgyxsOhBP8qKRL3HMrBhMil2TICj13Eg02OJ5Lo3 Dq6Drhxzk/0qxH90
/wC8f506lYvndrFyiiiqMwoopjyxxsqswDOcKvc/QUAVztimaSOVcFgJFckn qeh7Ac8dOD05NREE
XhuC0XEm0puONuMbun3+CM9MAjPGatMypNDGqAkg9ONqjr+u0Y9/agS24xiS IYbyxgjg/wB36+1B
XulMofPJYxIqy5JWViOufuEYzwcnscnqKSZH2GNTAVjn80M7HOd+7HTjuM89 D74uGe2SVYjLCsg+
UJuAIz2x+VNkuYIXVBtZwVTahGUBIAyM9OR+lAe6IXUXhkPk7Amwtj5856Z/ u8H8QfSqwhVJm3bX
QTbyTcOMZbd9zGOOfyPTmr4MQkEYKBwuQoxkL9PSmGe2SVYjLCsg+UJuAIz2 x+VAe6QySP8AbVkH
k+XGChJcg8kEnGO209/Xpg1CIVSZt210E28k3DjGW3fcxjjn8j05q6JbcTCE SRCUDAQEbgOvSkae
2iYq0sKNGvILAFRx+Q6fpQHumc9sSj7hbqx84E7icF+h+72wQfYH0IqUQqkz btroJt5JuHGMtu+5
jHHP5HpzV0S24xiSIYbyxgjg/wB36+1AltxMIRJEJQMBARuA69KA90pSo+64 YCDc06NkuQcLjg/L
/sn2GT6VOHMVxKVeLY8gZmYnK8AEAY5+6ec8c+lTLLb71RJItwyiqCM8dQP0 4o823WTyxJEHQAbc
jKg4xx+X6UB7o4zxDOXHBwf8/gfyPpVCVH3XDAQbmnRslyDhccH5f9k+wyfS roltxMIRJEJQMBAR
uA69KWN4WYrGV3R/KVxgr+HYcfjQHumfNC29irx/LMHyZWAPzZxtHA6HnnoS ec4Y9sSj7hbqx84E
7icF+h+72wQfYH0IrWCqMYUDAwMDoKAqjGFAwMDA6CgPdM4QqkzbtroJt5Ju HGMtu+5jHHP5HpzV
kpbiQuZZMhskec+M/TOMcH24PpVgKoxhQMDAwOgoCqMYUDAwMDoKA90jL24Y sdmQ2Scd8Yz+QIz7
H0qjkPdXIwiIZkYyNkMduOAMcjKt345P10gqjGFAwMDA6CgKoxhQMDAwOgoD 3TMmhbexV4/lmD5M
rAH5s42jgdDzz0JPOcPKHzyWMSKsuSVlYjrn7hGM8HJ7HJ6itAKoxhQMDAwO goCqMYUDAwMDoKA9
0zyh88ljEirLklZWI65+4RjPByexyeopZYs3Lv56iMyKzDJ6jb27/wCr6+7e nN8KoxhQMDAwOgoC
qMYUDAwMDoKA90okEAwlovKE3mF9x3ff34249iM57E9sU6FjFd3DsIQsknLB zuAC4HG3noe/HPoa
uBVGMKBgYGB0FAVRjCgYGBgdBQHumdMj7DGpgKxz+aGdjnO/djpx3Geeh98X S9uGLHZkNknHfGM/
kCM+x9KkCqMYUDAwMDoKAqjGFAwMDA6CgPdGmeIZy44OD/n8D+R9KqwsYru4 dhCFkk5YOdwAXA42
89D3459DVwKoxhQMDAwOgoCqMYUDAwMDoKA90zhCqTNu2ugm3km4cYy277mM cc/kenNSiSRLySUi
HYdqH94cgAtzjb7n8jzVwKoxhQMDAwOgoCqMYUDAwMDoKA90rlLcSFzLJkNk jznxn6Zxjg+3B9Kk
L24YsdmQ2Scd8Yz+QIz7H0qQKoxhQMDAwOgoCqMYUDAwMDoKA90zch7q5GER DMjGRshjtxwBjkZV
u/HJ+qTQtvYq8fyzB8mVgD82cbRwOh556EnnONMKoxhQMDAwOgoCqMYUDAwM DoKA90zyh88ljEir
LklZWI65+4RjPByexyeooKHzyWMSKsuSVlYjrn7hGM8HJ7HJ6itAKoxhQMDA wOgoCqMYUDAwMDoK
A90oSxZuXfz1EZkVmGT1G3t3/wBX1929OVIIBhLReUJvML7ju+/vxtx7EZz2 J7Yq8FUYwoGBgYHQ
UBVGMKBgYGB0FAe6U4WMV3cOwhCyScsHO4ALgcbeeh78c+hqKZH2GNTAVjn8 0M7HOd+7HTjuM89D
740QqjGFAwMDA6CgKoxhQMDAwOgoD3TPMX+kTzM6AiUMq+YxVsDGGGMfw5zz gj/ZpBCqTNu2ugm3
km4cYy277mMcc/kenNaIVRjCgYGBgdBQFUYwoGBgYHQUB7pTEkiXkkpEOw7U P7w5ABbnG33P5Hmr
Be3DFjsyGyTjvjGfyBGfY+lSBVGMKBgYGB0FAVRjCgYGBgdBQHuleJ0WSaWV gGLbcZ6KM4/9mPtk
jtSHa83mTSqBG2FVCQRz3PccdOnBznGRZCqMYUDAwMDoKAqjGFAwMDA6CgPd HUUUUEhRRRQA1/um
o/8AP+f8/wD15H+6aj/z/n/P/wBcAa/3T/n/AD/n8a5gjJJweefvGrD/AHT/ AJ/z/n8Y6Q02titd
AKIwOgBA/Sii76p+P9KKAJ4/un/eP86dTY/un/eP86dQBcooopiCoPJaOYyR MCHPzq+SevY9up46
fTk1I8scbKrMAznCr3P0FI8u2aOMDJfJPPQDv+ZA/GgBsKN5kssgwznaB6KM 4/qfxx2qH7PN9s+0
Yj+/jZuONuMbun3+30496sefD/z1j+/s+8Pven19qRrmBZfKaeMSZA2FxnJ6 cUAVvsszT5KRqvmb
srKxGM5+4RjJ9fXnrSS2s5Ty0WFlWbzlZick792OnHUjPP054sS3cUThNwZ9 yqVVhlckAEjPTkfn
UvmJ5nl71343bc849cUAR+W/2zzNkWzy9u7Hz5z0z6f1qv8AZZmnyUjVfM3Z WViMZz9wjGT6+vPW
rRnhEhjMse8Yyu4ZGcY4/EfnR58PneT5sfm/3Nw3evSgCotk6zcoHTzTJkzu OrbvuYxx+uKZcxSx
RqpjV41uBIGVWZuX3HgDjAJ5z296vLPC67kljYcchgepwP14oE8LOEEsZYkr tDDOR1H4UAVp7act
J5XllXlSX5iQcrt+Xp/s9fwx3pq2TrNygdPNMmTO46tu+5jHH64q2ZQLhYSr ZZC4bjHBAI/UUefD
53k+bH5v9zcN3r0oAqPbTlp2WOHdJMjglyCVXHB+X/Z/U/jIsEisIzHC8YlM gdiSQSxPC4684zn3
9qn8+H/nrH9/Z94fe9Pr7VA98Ucp9kuGIDEYC/MFOCQM57j60ARrZOs3KB08 0yZM7jq277mMcfri
rHktJMJJWACH5FTIPXue/QcdPrwaVru2XduuIhtO1suOD6H8j+VOE8LOEEsZ YkrtDDOR1H4UASUV
H58PneT5sfm/3Nw3evSlSWORmVWBZDhl7j6igB9FFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUANf 7pqP/P8An/P/ANeR
/umo/wDP+f8AP/1wBr/dP+f8/wCfxjqR/un/AD/n/P4x0hla76p+P9KKLvqn 4/0ooETx/dP+8f50
6mx/dP8AvH+dOoGXKKKY8scbKrMAznCr3P0FMRH5LRzGSJgQ5+dXyT17Ht1P HT6cmlhRvMllkGGc
7QPRRnH9T+OO1OeXbNHGBkvknnoB3/MgfjR58P8Az1j+/s+8Pven19qAK/2e b7Z9oxH9/GzccbcY
3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561Za5gWXymnjEmQNhcZyen FNlu4onCbgz7lUqr
DK5IAJGenI/OgCvLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/bPM2RbPL27 sfPnPTPp/WpPMTzP
L3rvxu255x64pvnw+d5Pmx+b/c3Dd69KAIFgkVhGY4XjEpkDsSSCWJ4XHXnG c+/tSfZ5seTiPyvN
8zfuO77+/G3H4dff2qwZQLhYSrZZC4bjHBAI/UUefD53k+bH5v8Ac3Dd69KA M9tPmdGzHAGYTDIY
nBfoen4fT8qekbzXdyBEFQzIxkYEEhQvA45GVPfv+d1Z4XXcksbDjkMD1OB+ vFHnw+d5Pmx+b/c3
Dd69KAInSc3qSKkZjVSuS5BwSpJxj29ahWydZuUDp5pkyZ3HVt33MY4/XFWx PCzhBLGWJK7Qwzkd
R+FNS7t3maFZozIp2lN3OfpQBD9nm+2faMR/fxs3HG3GN3T7/b6ce9SvHIb2 KQBPLVGUksc5JB6Y
/wBn171IkscjMqsCyHDL3H1FPoApNHvvzGA/lkiWTKHBZcY59/lPH9z3NRpG 813cgRBUMyMZGBBI
ULwOORlT37/no0UAUFsnWblA6eaZMmdx1bd9zGOP1xVjyWkmEkrABD8ipkHr 3PfoOOn14NT0UAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUANf7pqP/P8An/P/ANeR/umo/wDP+f8AP/1wBr/dP+f8 /wCfxjqR/un/AD/n
/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/dP8AvH+dOoGXKg8lo5jJ EwIc/Or5J69j26nj
p9OTU9MeWONlVmAZzhV7n6CmIZCjeZLLIMM52geijOP6n8cdqh+zzfbPtGI/ v42bjjbjG7p9/t9O
PerHnw/89Y/v7PvD73p9faka5gWXymnjEmQNhcZyenFAFb7LM0+Skar5m7Ky sRjOfuEYyfX1560k
trOU8tFhZVm85WYnJO/djpx1Izz9OeLEt3FE4TcGfcqlVYZXJABIz05H51L5 ieZ5e9d+N23POPXF
AEflv9s8zZFs8vbux8+c9M+n9arLZOs3KB080yZM7jq277mMcfrirfnw+d5P mx+b/c3Dd69KDKBc
LCVbLIXDcY4IBH6igCJ0nN6kipGY1UrkuQcEqScY9vWoVsnWblA6eaZMmdx1 bd9zGOP1xVvz4fO8
nzY/N/ubhu9elCzwuu5JY2HHIYHqcD9eKAM9tPmdGzHAGYTDIYnBfoen4fT8 qlWydZuUDp5pkyZ3
HVt33MY4/XFW/Ph87yfNj83+5uG716UCeFnCCWMsSV2hhnI6j8KAKj205adl jh3STI4JcglVxwfl
/wBn9T+M6xzR3EhTyykjhyxJyOAMY79Oue/ty5Lu3eZoVmjMinaU3c5+lTUA QeS0kwklYAIfkVMg
9e579Bx0+vBqeoxPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3Dd69KAJKKjWe F13JLGw45DA9Tgfr
xR58PneT5sfm/wBzcN3r0oAkoqH7XbeZ5f2iLfnbt3jOfTFRvfItwYfKlJEi x5C8ZIz+g60AWqKj
E8LOEEsZYkrtDDOR1H4UefD53k+bH5v9zcN3r0oAkoqJrmBZfKaeMSZA2Fxn J6cUNcwLL5TTxiTI
GwuM5PTigCWioWu7Zd264iG07Wy44PofyP5U7z4fO8nzY/N/ubhu9elAElFR faYAwXz49xbYBvGS
3p9eRTZbuKJwm4M+5VKqwyuSACRnpyPzoAnoqsLweayNDIqo4jLnbjJxjvnn I7d6l8+HzvJ82Pzf
7m4bvXpQBJRVV9Qt1uFgV1dycEB1+U5x3P6DJoe+Rbgw+VKSJFjyF4yRn9B1 oAtUUVCl3bvM0KzR
mRTtKbuc/SgCaioWu7Zd264iG07Wy44PofyP5U4Tws4QSxliSu0MM5HUfhQB JRUfnw+d5Pmx+b/c
3Dd69Kb9rtvM8v7RFvzt27xnPpigCaiqr3yLcGHypSRIseQvGSM/oOtTefD/ AM9Y/v7PvD73p9fa
gCSiomuYFl8pp4xJkDYXGcnpxTZbuKJwm4M+5VKqwyuSACRnpyPzoAnopvmJ 5nl71343bc849cUx
rmBZfKaeMSZA2FxnJ6cUAS0VCl3bvM0KzRmRTtKbuc/Sl+0wBgvnx7i2wDeM lvT68igCWioxPGZz
CGUuBkgMMjp1HXvQJ4WcIJYyxJXaGGcjqPwoAkoqJ7mBGZXnjVkGWBcAge/5 j86ie+Rbgw+VKSJF
jyF4yRn9B1oAtUVG8u2aOMDJfJPPQDv+ZA/GlSWORmVWBZDhl7j6igB9FFFA BRRRQA1/umo/8/5/
z/8AXkf7pqP/AD/n/P8A9cAa/wB0/wCf8/5/GOpH+6f8/wCf8/jHSGVrvqn4 /wBKKLvqn4/0ooET
x/dP+8f506mx/dP+8f506gZcqDyWjmMkTAhz86vknr2PbqeOn05NT0x5Y42V WYBnOFXufoKYit9n
m+2faMR/fxs3HG3GN3T7/b6ce9N+yzNPkpGq+ZuysrEYzn7hGMn19eetWvPh /wCesf39n3h970+v
tSNcwLL5TTxiTIGwuM5PTigCrLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/ AGzzNkWzy9u7Hz5z
0z6f1pJbuKJwm4M+5VKqwyuSACRnpyPzqXzE8zy9678btueceuKAKS2TrNyg dPNMmTO46tu+5jHH
64qZ0nN6kipGY1UrkuQcEqScY9vWpfPh87yfNj83+5uG716UGUC4WEq2WQuG 4xwQCP1FAFRbJ1m5
QOnmmTJncdW3fcxjj9cVE2nzOjZjgDMJhkMTgv0PT8Pp+VaHnw+d5Pmx+b/c 3Dd69KFnhddySxsO
OQwPU4H68UAVFsnWblA6eaZMmdx1bd9zGOP1xQ9tOWnZY4d0kyOCXIJVccH5 f9n9T+Nvz4fO8nzY
/N/ubhu9elAnhZwgljLEldoYZyOo/CgCNY5o7iQp5ZSRw5Yk5HAGMd+nXPf2 5sVCl3bvM0KzRmRT
tKbuc/SpqAKD205adljh3STI4JcglVxwfl/2f1P4tlspy5KbOJRICZWAb5s4 2jgfXnOM9TxdE8LO
EEsZYkrtDDOR1H4UefD53k+bH5v9zcN3r0oAz20+Z0bMcAZhMMhicF+h6fh9 PyqVbJ1m5QOnmmTJ
ncdW3fcxjj9cVbWeF13JLGw45DA9TgfrxR58PneT5sfm/wBzcN3r0oAb9mj8 zfulznOPOfH5Zx+F
SeWm7dsXOd2cd8Yz+XFR/a7bzPL+0Rb87du8Zz6YqN75FuDD5UpIkWPIXjJG f0HWgCBI3mu7kCIK
hmRjIwIJCheBxyMqe/f8yWynLkps4lEgJlYBvmzjaOB9ec4z1PF3z4f+esf3 9n3h970+vtSNcwLL
5TTxiTIGwuM5PTigCt9lmafJSNV8zdlZWIxnP3CMZPr689aPsszT5KRqvmbs rKxGM5+4RjJ9fXnr
Vrz4fO8nzY/N/ubhu9elJ9pgDBfPj3FtgG8ZLen15FAFeSzke5LiQCNnVyOe o29v+Af+PH05X7PN
jycR+V5vmb9x3ff3424/Dr7+1WBPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3 Dd69KAIYIpo7udzH
FtlfO4Od2AoAGMe3r3qKW1nKeWiwsqzecrMTknfux046kZ5+nPFtZ4XXcksb DjkMD1OB+vFHnw+d
5Pmx+b/c3Dd69KAKv2SU3E0x25MgdF8xirYAGGGMDpnPODj05RbJ1m5QOnmm TJncdW3fcxjj9cVM
LweayNDIqo4jLnbjJxjvnnI7d6l8+HzvJ82Pzf7m4bvXpQBCqXIvHl8uLYwV P9YcgAnnG336VY8t
N27Yuc7s474xn8uKrvqFutwsCuruTggOvynOO5/QZND3yLcGHypSRIseQvGS M/oOtAFqq6xzR3Eh
TyykjhyxJyOAMY79Oue/tzYqFLu3eZoVmjMinaU3c5+lAEDR778xgP5ZIlky hwWXGOff5Tx/c9zU
aRvNd3IEQVDMjGRgQSFC8DjkZU9+/wCdtru2XduuIhtO1suOD6H8j+VOE8LO EEsZYkrtDDOR1H4U
AVFsnWblA6eaZMmdx1bd9zGOP1xVn7NH5m/dLnOcec+Pyzj8Kd58PneT5sfm /wBzcN3r0pv2u28z
y/tEW/O3bvGc+mKAJPLTdu2LnO7OO+MZ/Liqv2eb7Z9oxH9/GzccbcY3dPv9 vpx70575FuDD5UpI
kWPIXjJGf0HWpvPh/wCesf39n3h970+vtQBV+yzNPkpGq+ZuysrEYzn7hGMn 19eetJLazlPLRYWV
ZvOVmJyTv3Y6cdSM8/Tni01zAsvlNPGJMgbC4zk9OKbLdxROE3Bn3KpVWGVy QASM9OR+dAC+W/2z
zNkWzy9u7Hz5z0z6f1qv9lmafJSNV8zdlZWIxnP3CMZPr689aueYnmeXvXfj dtzzj1xTGuYFl8pp
4xJkDYXGcnpxQAxY5o7iQp5ZSRw5Yk5HAGMd+nXPf25bBFNHdzuY4tsr53Bz uwFAAxj29e9SJd27
zNCs0ZkU7Sm7nP0pftMAYL58e4tsA3jJb0+vIoAjdJzepIqRmNVK5LkHBKkn GPb1qF7actOyxw7p
JkcEuQSq44Py/wCz+p/G2J4zOYQylwMkBhkdOo696BPCzhBLGWJK7QwzkdR+ FAFCVJPMW2EYYLOJ
Q5Ru77jzjAwCecnpjHNaPlpu3bFzndnHfGM/lxTHuYEZleeNWQZYFwCB7/mP zqJ75FuDD5UpIkWP
IXjJGf0HWgCSFG8yWWQYZztA9FGcf1P447UnktJMJJWACH5FTIPXue/QcdPr wae8u2aOMDJfJPPQ
Dv8AmQPxpUljkZlVgWQ4Ze4+ooAfRRRQAUUUUANf7pqP/P8An/P/ANeR/umo /wDP+f8AP/1wBr/d
P+f8/wCfxjqR/un/AD/n/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/ dP8AvH+dOoGXKg8l
o5jJEwIc/Or5J69j26njp9OTUjyxxsqswDOcKvc/QUjy7Zo4wMl8k89AO/5k D8aYiv8AZ5vtn2jE
f38bNxxtxjd0+/2+nHvTfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVrz4f8AnrH9 /Z94fe9Pr7UjXMCy
+U08YkyBsLjOT04oAqy2s5Ty0WFlWbzlZick792OnHUjPP054s+W/wBs8zZF s8vbux8+c9M+n9aS
W7iicJuDPuVSqsMrkgAkZ6cj86l8xPM8veu/G7bnnHrigCktk6zcoHTzTJkz uOrbvuYxx+uKmdJz
epIqRmNVK5LkHBKknGPb1qRrmBZfKaeMSZA2FxnJ6cUpnhEhjMse8Yyu4ZGc Y4/EfnQBUWydZuUD
p5pkyZ3HVt33MY4/XFRNp8zo2Y4AzCYZDE4L9D0/D6flV6O5jeVoydjq5QKx GWwAcjnnginefD53
k+bH5v8Ac3Dd69KAKi2TrNygdPNMmTO46tu+5jHH64oe2nLTsscO6SZHBLkE quOD8v8As/qfxtrP
C67kljYcchgepwP14o8+HzvJ82Pzf7m4bvXpQBGsc0dxIU8spI4csScjgDGO /Trnv7c2KYkscjMq
sCyHDL3H1FPoAoPbTlp2WOHdJMjglyCVXHB+X/Z/U/i2WynLkps4lEgJlYBv mzjaOB9ec4z1PGjR
QBltp8zo2Y4AzCYZDE4L9D0/D6flUq2TrNygdPNMmTO46tu+5jHH64q/RQBD 9mj8zfulznOPOfH5
Zx+FSeWm7dsXOd2cd8Yz+XFOooApT205aTyvLKvKkvzEg5Xb8vT/AGev4Y70 n2WZp8lI1XzN2VlY
jGc/cIxk+vrz1q9RQBQWydZuUDp5pkyZ3HVt33MY4/XFSwRTR3c7mOLbK+dw c7sBQAMY9vXvVqig
Cg9tOWnZY4d0kyOCXIJVccH5f9n9T+LZbKcuSmziUSAmVgG+bONo4H15zjPU 8aNFAGW2nzOjZjgD
MJhkMTgv0PT8Pp+VSrZOs3KB080yZM7jq277mMcfrir9FAFH7JKbiaY7cmQO i+YxVsADDDGB0znn
Bx6cotk6zcoHTzTJkzuOrbvuYxx+uKv0UAVVS5F48vlxbGCp/rDkAE842+/S rHlpu3bFzndnHfGM
/lxTqKACq6xzR3EhTyykjhyxJyOAMY79Oue/tzYooApNHvvzGA/lkiWTKHBZ cY59/lPH9z3NRpG8
13cgRBUMyMZGBBIULwOORlT37/no0UAUFsnWblA6eaZMmdx1bd9zGOP1xVn7 NH5m/dLnOcec+Pyz
j8KmooAb5abt2xc53Zx3xjP5cVV+zzfbPtGI/v42bjjbjG7p9/t9OPerlFAF H7LM0+Skar5m7Kys
RjOfuEYyfX1560ktrOU8tFhZVm85WYnJO/djpx1Izz9OeL9FAEPlv9s8zZFs 8vbux8+c9M+n9ar/
AGWZp8lI1XzN2VlYjGc/cIxk+vrz1q9RQBXWOaO4kKeWUkcOWJORwBjHfp1z 39uWwRTR3c7mOLbK
+dwc7sBQAMY9vXvVqigCs6Tm9SRUjMaqVyXIOCVJOMe3rUL205adljh3STI4 JcglVxwfl/2f1P43
6KAMyVJPMW2EYYLOJQ5Ru77jzjAwCecnpjHNaPlpu3bFzndnHfGM/lxTqKAI YUbzJZZBhnO0D0UZ
x/U/jjtSeS0kwklYAIfkVMg9e579Bx0+vBqeigAooooAKKKKAGv901H/AJ/z /n/68j/dNR/5/wA/
5/8ArgDX+6f8/wCf8/jHUj/dP+f8/wCfxjpDK131T8f6UUXfVPx/pRQInj+6 f94/zp1Nj+6f94/z
p1AyXyWjmMkTAhz86vknr2PbqeOn05NLCjeZLLIMM52geijOP6n8cdqmopiK f2eb7Z9oxH9/Gzcc
bcY3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561eooAoS2s5Ty0WFlWb zlZick792OnHUjPP
054s+W/2zzNkWzy9u7Hz5z0z6f1qaigCj9lmafJSNV8zdlZWIxnP3CMZPr68 9aesEisIzHC8YlMg
diSQSxPC4684zn39qt0UAUHtpy07LHDukmRwS5BKrjg/L/s/qfxFsnWblA6e aZMmdx1bd9zGOP1x
V+igDLbT5nRsxwBmEwyGJwX6Hp+H0/Kny2U5clNnEokBMrAN82cbRwPrznGe p40aKAIPJaSYSSsA
EPyKmQevc9+g46fXg1PRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUA
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA1 /umo/wDP+f8AP/15
H+6aj/z/AJ/z/wDXAGv90/5/z/n8Y6kf7p/z/n/P4x0hla76p+P9KKLvqn4/ 0ooETx/dP+8f506m
x/dP+8f506gZcooopiCiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAoooo
AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigA
ooooAKKKKAGv93HqRVUzIDhioPu3/wBerUhAXJOACMk/WqDGBnVmKHb70AE0 hM8ABwrE5wevBqWq
8zh7qAhgxy2cH2NWKQytd9U/H+lFF31T8f6UUCJ4/un/AHj/ADp1Nj+6f94/ zp1Ax7y7BkngAEkk
1BdzuLN3QlSVyCCcjNLMYnyrOvQd+nFQ3bp9jdVdSQgHX0oEaGT6n/P+f89z J9T/AJ/z/nun+f8A
P+f/AK5/n/P+f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuA Lk+p/wA/5/z3Mn1P
+f8AP+e6f5/z/n/65/n/AD/n/wCuALk+p/z/AJ/z3Mn1P+f8/wCe6f5/z/n/ AOuf5/z/AJ/+uALk
+p/z/n/PcyfU/wCf8/57p/n/AD/n/wCuf5/z/n/64AuT6n/P+f8APcyfU/5/ z/nun+f8/wCf/rn+
f8/5/wDrgC5Pqf8AP+f89zJ9T/n/AD/nun+f8/5/+uf5/wA/5/8ArgC5Pqf8 /wCf89zJ9T/n/P8A
nun+f8/5/wDrn+f8/wCf/rgC5Pqf8/5/z3Mn1P8An/P+e6f5/wA/5/8Arn+f 8/5/+uALk+p/z/n/
AD3Mn1P+f8/57p/n/P8An/65/n/P+f8A64AuT6n/AD/n/PcyfU/5/wA/57p/ n/P+f/rn+f8AP+f/
AK4AuT6n/P8An/PcyfU/5/z/AJ7p/n/P+f8A65/n/P8An/64AuT6n/P+f89z J9T/AJ/z/nun+f8A
P+f/AK5/n/P+f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuA Lk+p/wA/5/z3Mn1P
+f8AP+e6f5/z/n/65/n/AD/n/wCuALk+p/z/AJ/z3Mn1P+f8/wCe6f5/z/n/ AOuf5/z/AJ/+uALk
+p/z/n/PcyfU/wCf8/57p/n/AD/n/wCuf5/z/n/64AuT6n/P+f8APcyfU/5/ z/nun+f8/wCf/rn+
f8/5/wDrgC5Pqf8AP+f89zJ9T/n/AD/nun+f8/5/+uf5/wA/5/8ArgC5Pqf8 /wCf89zJ9T/n/P8A
nun+f8/5/wDrn+f8/wCf/rgC5Pqf8/5/z3Mn1P8An/P+e6f5/wA/5/8Arn+f 8/5/+uALk+p/z/n/
AD3Mn1P+f8/57p/n/P8An/65/n/P+f8A64AuT6n/AD/n/PcyfU/5/wA/57p/ n/P+f/rn+f8AP+f/
AK4AuT6n/P8An/PcyfU/5/z/AJ7p/n/P+f8A65/n/P8An/64AuT6n/P+f89z J9T/AJ/z/nun+f8A
P+f/AK5/n/P+f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuA GTxyeo7/AOf8/rE0
+1lU8FunJ/xqQkDknABySf8AP+f51SYXdWdlIXoM8E0AFy5eWGNuUYncp5B4 pfs8H/PGP/vkVHK6
tdW+1geW6fQ1YoGMWGJGDLEikdwoFPoooArXfVPx/pRRd9U/H+lFAidFXYCQ ckn+Ijufel2r/dP/
AH03+NRThTaEO4RcnLN0+8eD7dqqxyKgCLJHBDlv3sQCq5+XGM5Hc/8AfNAy 39ktv+fdP1/xo+yW
3/Pun6/41VW7cIBKwSZnjwh4ODtzgH3LUJNJ5Fu01x5YkTcZMKMHAwOeO5P4 fhQIv4Hof++2/wAa
aVzJjLAbQcbz6n3qpDNM14VZ0xuYGPPIAzg4xkduScc+4q1MAQ4Zyg8vlgcY 5bnNAC7f9p/++zRt
/wBp/wDvs1neZ5SEW5twpYbpowEUcHgnkZ4H/fVPE055M3QIPlAIO5yuckc8 YPp+FAy9t/2n/wC+
zRt/2n/77NZ893IkWRIFaPf99gokwxAHTk8c4x1/JZ2ma3k+dn81pYwmBxgN jGBnPyigC/t/2n/7
7NG3/af/AL7NUjNiX5bgGMqu6b5eB8/fGOoA/wDr1IkxN2qed5ikDAQqeMZy wxkfUcdPxALO3/af
/vs0bf8Aaf8A77NNkIKyKzbF2csDgjrzmqkTrErvF5BRCGd4UADDnI78jr+l AF3b/tP/AN9mjb/t
P/32apPJcKJXaQq0cQk2ALjJLHB47YA4oEhihlAlIcytwSoEeWJBJwcAj1z1 FAF3b/tP/wB9mjb/
ALT/APfZqlHcu8SMZRzkOyjIUBiN2ffH074wDV+gBu3/AGn/AO+zRt/2n/77 NOooAbt/2n/77NG3
/af/AL7NOooAbt/2n/77NG3/AGn/AO+zTqKAG7f9p/8Avs0bf9p/++zTqKAG 7f8Aaf8A77NG3/af
/vs06igBu3/af/vs0bf9p/8Avs06igBu3/af/vs0bf8Aaf8A77NOooAbt/2n /wC+zRt/2n/77NOo
oAbt/wBp/wDvs0bf9p/++zTqKAG7f9p/++zRt/2n/wC+zTqKAG7f9p/++zRt /wBp/wDvs06igBu3
/af/AL7NG3/af/vs06igBu3/AGn/AO+zRt/2n/77NOooAbt/2n/77NG3/af/ AL7NOooAbt/2n/77
NG3/AGn/AO+zTqKAG7f9p/8Avs0bf9p/++zTqKAG7f8Aaf8A77NG3/af/vs0 6igBu3/af/vs0bf9
p/8Avs06igBu3/af/vs0bf8Aaf8A77NOooAY8SupV9zA9QWJqP7Hb/8APJan ooAhW1gRgyxhSO44
qTyx6t/30adRQA3yx6t/30aPLHq3/fRp1FAFW6UKUxnv1JNFLd9U/H+lFAiX zVQbWV8gnoAR1J9a
PtEf92T/AL5H+NV7i+S2cLIWywJG1M8ZI9R6VF/a0PrJ/wB+x/8AFVXK2F0X ftEf92T/AL5H+NH2
iP8Auyf98j/Gqf8Aa0PrJ/37H/xVH9qw+sn/AH7H/wAVRyvsF0XPtEf92T/v kf400zrvJ2PjAA4+
v+NVf7Vh9ZP+/Y/+Ko/tSH1k/wC/Y/8AiqOV9gui19oX+4/5UfaF/uP+VVv7 Uh9X/wC/Y/8AiqP7
Uh9X/wC/Y/8AiqOVhdFn7Qv9x/yo+0L/AHH/ACqt/acXq/8A37H/AMVS/wBp xer/APfsf/FUcrC6
LH2hf7j/AJUfaF/uP+VV/wC0ovV/+/Y/+Ko/tKL1f/v2P/iqOVhdE4nG8tsf BAHT60PKjjDRuRkH
p3ByKg/tGL1f/v2P/iqX+0YvV/8Av2P/AIqjlYXRP9oX+4/5UfaF/uP+VQf2 jF6v/wB+x/8AFUf2
hH6v/wB+x/8AFUcrC6J/tC/3H/Kj7Qv9x/yqH+0I/V/+/Y/+Ko+3x+rf9+// ALKjlYXRN9oX+4/5
UfaF/uP+VQ/b4/Vv+/f/ANlR9uj/ALzf9+//ALKjlYXRN9oX+4/5UfaF/uP+ VRfbo/7zf9+//sqP
tsf95v8Av3/9lRysLol+0L/cf8qPtC/3H/Kovtqf3m/79/8A2VL9tT+83/fv /wCyo5WF0SfaF/uP
+VH2hf7j/lUf2xP7zf8Afv8A+yo+2J/eb/v3/wDZUcrC6JPtC/3H/Kj7Qv8A cf8AKo/taf3m/wC/
f/2VL9rT+83/AH7/APsqOVhdD/tC/wBx/wAqPtC/3H/Kmfa0/vN/37/+yo+1 L/eP/fv/AOyo5WF0
P+0L/cf8qPtC/wBx/wAqb9qX+8f+/f8A9lR9pX+8f+/f/wBlRysLod9oX+4/ 5UfaF/uP+VN+0r/e
P/fv/wCyo+0L/eP/AH7/APsqOVhdDvtC/wBx/wAqPtC/3H/Kk+0L/eP/AHx/ 9lR56/3j/wB8f/Xo
5WF0L9oX+4/5UfaF/uP+VJ54/vH/AL4/+vS+eP7x/wC+P/r0crC6D7Qv9x/y o+0L/cf8qPOH98/9
8f8A16POH98/98f/AF6OVhdB9oX+4/5UfaF/uP8AlS+aP75/74/+vR5o/v8A /jn/ANejlYXQn2hf
7j/lR9oX+4/5UvmD+/8A+Of/AF6PM/2//HP/AK9HKxXQn2hf7j/lR9oX+4/5 U7zP9v8A8c/+vRv/
ANv/AMc/+vRysd0N+0L/AHH/ACo+0L/cf8qdv/2//HP/AK9Lu/2//HP/AK9H KxXQz7Qv9x/yo+0L
/cf8qfu/2/8Axz/69Gf9v/xz/wCvRysLoZ9oX+4/5UfaF/uP+VPyf7//AI5/ 9elyf7//AI5/9ejl
YXRH9oX+4/5UfaF/uP8AlUnP9/8A8c/+vRz/AHx/3x/9elysd0R/aF/uP+VH 2hf7j/lUnP8AfH/f
H/16Of74/wC+P/r0crC6I/tC/wBx/wAqPtC/3H/KpOf74/74/wDr0c/3x/3x /wDXo5WF0R/aF/uP
+VH2hf7j/lUnP98f98f/AF6Of74/74/+vRysLoj+0L/cf8qPtC/3H/KpOf74 /wC+P/r0c/3x/wB8
f/XoswuitO/mbcKwxnqKKs8/3x/3x/8AXooswujKvv8AkJWv4f8AobVr/P52 1U7t95Pl745x9Kx7
8hdRtiSABySf99qtXN2EmVoJbdgzEZ3cqTnk+2DVuLlZIV7DtSZjYzq6xBkZ R+7z69+KyYIopI5G
eR1KDcQqA8ZA9R61qX8tqNLMMEyOwIJ55Y55J96yI5NiSrjO9dv05B/pVx20 JYqwSMgZQGBOMKQT
1x061KLVvLboXDKBtcEYIbOSPpTkvdsPl4kHCjCyYUYIOQMcHjr6k0Ne5VlW MYYrncc7gM/ewBk8
9fYd+arUWhC0TogdsAHoNwz+XWp4rQP8uX3iPzGCLuPJGAB9Dn8famTTrJEs aq2AersGIHoDgYHt
StMpjJHLPGI2HpgjB/ID8c0agSx2QdypMi8gDemDnKjkZ/2v5VCLaUkgBTg4 4ccn0HPJ+lOguzBG
FVASDuBJ91P/ALL+tPju/KQpGJVUHcoEmOcDrgcjj2pahoQvE8YUuuNwyOeo 9ae9rKm7co+Xrhge
nX8u/pTJZPMcNjGFVfyAH9Kma63OzbOrSN1/vDH6U9QEitncjlQCCchgccE4 PPHTvSw2zPKgfAVn
CnDDJ5xx6/WpDe5TbtfBPIL8AYIIUY46+/QUxLhFaNvLYmI/L83bdnB49zS1 DQb9nkyBhT/tBhj8
849PzFPhtXeZUcBVLAE7gM/T1/D2pILkxIEAYdclWwecdD/wGnrdDzFd0Ztj 71+fnt1JBz0HpRqG
hFEiucMzDsAq7iTQImMjIpVtvVs8fXNLDIiBgyMS3GVbBA79jRHIqM42ko4w RnnGc9ce3pQA8wbI
C7fe3YHzAY6c+/XtSJGrITvO4AnGOAPc/wCeoolm81VXbgKeOe2AB/KlEkfk hCjZ65DYBPYkYo1A
WKAyRlgQMZ6kAHBHfPvSLBIwXCg7sYGRnnpx2pY5gsXlspKnOcHB5x/8TUi3 ZATIc7dvG/5cDHb8
KNQ0IzBIB90H/dIOfypRF95SRvC7htYEHHXp7c/hSpPtUDB4XbkHB+9uzTjM pZnxg7doHUnPUk9+
Cf0o1AgpaSlpiFpaSloAWiiikAtLSUtAC0UUUALS0lLQAtLSUtABS0lLQAtL SUtABS0lLQAtLSUt
IApaSloAWlpKWgBaKKKAFooooAKKKKACiiikAUUUUDFooooAKKKKAKs+npdM skkjKRkAKvbcai/s
aH/ntJ/3yK0F+4Pqf/QjS1nzNGlkZn9lQ+f5Ylk+4WJwPUD+tP8A7Hh/57Sf 98irQ/4/f+2J/wDQ
hTLuaSPCIhJkGFbPQ0czCyKs2mQwwvJ5sh2jONo5qQ6PCCR5z8f7IqW4jEWn sg6KuKtv99vrRzML
Iz/7Ih/57P8A98imR6ZC+/8AeuArlfujngf41asAFs4wGDDnkfU0626Tf9dm /kKOZhZFb+yYv+ez
/wDfI/xpf7Ji/wCez/8AfI/xpUyq+aHcu05TBYkEbyOnsOePT60kV1cyJuEI +dN6DIHcf7XPB9un
vRzMLIP7Ki/57P8A98j/ABo/sqL/AJ7P/wB8j/GpIZpJnCq6YUAsTGRnkjAB PGNvvUX2mcxwOfLD
yoCOpAyyDpnnqf8APU5mFkL/AGXF/wA9n/75H+NL/ZcX/PZ/++R/jSrJM14s e9QUDBsKcN9w9M8H
5vemwXMjQo/y7AY0K8kksF5zn/a9+lHMwshf7Mi/57P/AN8j/Gj+zI/+ez/9 8j/Gn2s8r+V5pQ+b
H5g2qRt6cdTnr+lWqOZhZFP+zI/+ez/98j/Gj+zY/wDns3/fP/16uUUczCyK f9mx/wDPZv8Avn/6
9H9nR/8APVv++f8A69XKKOZhZFT+zo/+erf98/8A16P7Pj/56t/3z/8AXq3R RzMLIqf2en/PVv8A
vn/69L/Z6f8APVv++f8A69WqKOZhZFX7An/PVv8Avn/69H2BP+erf98//Xq1 RRzMLIq/YU/56t/3
z/8AXpfsKf8APVv++f8A69WaKOZhZFb7En/PVv8Avn/69H2Jf+ep/wC+f/r1 Zoo5mFkV/sS/89T/
AN8//Xo+xr/z1P8A3x/9erFFHMwsiv8AY1/56n/vj/69H2Rf+ep/74/+vVii jmYWRB9kX/nqf++P
/r0fZV/56n/vj/69T0UczCyIPso/56n/AL4/+vS/ZR/z0P8A3x/9epqKOZhZ FbyR5/l7z9wsTt9w
PX3p/wBmH/PQ/wDfH/16B/x+/wDbE/8AoQqtdswuJNvmfLGpVlfCoSW5YZ5H TseBRzMVkWvs4/56
H/vj/wCvR9nH/PT/AMc/+vULXE32llWMeWrqhJx3x3z79MH9eEW4mLCNtqSs wG0ofk4J65w33e2P
6UczCyJ/IH/PT/xz/wCvR5H/AE0/8c/+vUAu5PKuDhcxRkjjqQWH5fLSieZg P9WpeVo1OCcY3cn8
sfr7UczCyJ/I/wCmn/jn/wBejyf+mn/jn/16gNxOJyuwFEZUZuACSBzy3HXp g/WrdLmY7IiaPapY
ycAZ+5/9eiNC8SOXxuUNjb0yM+tPl/1T/wC6abEA1rEDnBiUcHH8Ip8zFZC+ V/00/wDHP/r0eX/0
0/8AHP8A69Uop5ktgwYFY7dZW35ZmJyTznjp71LdB3uIkTJGxiR5rJ3XuPrR zMLIseWf+en/AI5/
9el2H/np/wCOf/XqsJpEJ4UJG6RleWJJ287v+Benb3qvE8j2cIBUJG0KkYyT 9w5znjr6dqOZhZGj
sP8Az0/8c/8Ar0bD/wA9B/3x/wDXqkt5cGNXMSgSBSgYgdWAxwST97rgfTmr y52jcQTjkgYpczHZ
EcWZYg+8AEnA2ehI9fan7D/z0H/fH/16jtP+PWP/AIF/6Eaiilk+yWoUjfKq jc3P8Oc+/SjmYrIs
7D/z0H/fH/16Nh/56D/vj/69V4Z5ZpCgKLs++SpO75mHHPH3ffrUMl1M+FX5 VkKtG+3HG9R65PDe
3+BzMdkXth/56D/vj/69Gw/89B/3x/8AXqsssxuHhVkDZJLFSRwqds8fe9ab FdyyL5uEEe5F2YOf
mC98/wC16dqLsLIt7D/z0H/fH/16ZISmz5wSzhR8nqfrUtQ3HWH/AK7J/Oi7 CyJNh/56D/vj/wCv
RTqKLsLIjC3DD92se0E/eLZ6n0FHl3npD+bf4VMJhBYtKRnaW4zjPzGslry5 YGX7QVyT8oHGeMAe
3T/6+fmLDtctuJopfNka3UlCvzMQMZHPT/Oab9pb/n4s/wDv4f8ACq9/c/a7 FJCAG2MDg8Z3J/n/
ADmserjC6Ibsbs0pliaM3FmAwxkSH/CpXuW3tma0U56GQ5H6VztS3f8Ax9zf 9dG/nVezQcxt/aW/
5+LP/v4f8KRJTGrET2mHctkyHGcDjp/nNYFSt/x6R/8AXR/5LR7NBzGwrojl 0ewV26sGwT+lJuiw
43afhzlvm+99eOay1tgwB81QrBQrNwCxxkH0xzz7D1FPa0jUtvadAibzvhwe oAwN3v8ApS5EHMzS
LodmXsDs+5lvu/TjimyFJYwjS2O0YwA/YEHHTpwKyXgYZZPmTbvDdPlzjp9e KdbW/n7sttxhV4zu
c9F9s4PNHIg5jWDoFVQ9gFU5UbuAfUcUB0DKwewDKMKd3IHoOKx/s0piEgC7 SCQNwyQOpx17H8qS
OCSVdyAEZwMkDJ9B6n2FP2a7hzG0Jgu3E1iNowMOeB6dPYU77S3/AD8Wf/fw /wCFZD2j7h5YyCqk
ZYAklQSB69eg9qb9kmwCFU5AIG8Z55Axnqew6mlyLuHMzZ+0t/z8Wf8A38P+ FH2lv+fiz/7+H/Cs
VbWZgu1QSxAA3DPPTI6gcjk+op6Wcjb8lBtXcDvUqeQMZzgdf85o5F3DmZr/ AGlv+fiz/wC/h/wo
+0t/z8Wf/fw/4VhJDJJG7quVT7xz06/4VNFZu0oWQADBJww4wCcH+6eO/wDS jkQczNf7S3/PxZ/9
/D/hR9pb/n4s/wDv4f8ACsVrd8MyqNoJwN4JIHceo9xxwaU2kyyMjKqsvXc4 AH4k+39aORdw5mbP
2lv+fiz/AO/h/wAKPtLf8/Fn/wB/D/hWKbWZU3FQOCdpYbuCQfl69j+VH2WU MFIUHGTl1+X688fj
RyLuHMza+0t/z8Wf/fw/4UfaW/5+LP8A7+H/AArDEEjTeUAN+M8kAYxnOemM c5pWtpUxuCgE4zuG
B6Z9M9vWj2a7hzG39pb/AJ+LP/v4f8KPtLf8/Fn/AN/D/hWG8EkalmA2ggZB BBznGCOvQ/lSrbSt
LJHhQ0ed25gAOcdTx1o9mu4cxt/aW/5+LP8A7+H/AAo+0t/z8Wf/AH8P+FYo tZiSNoyDgZYfN9PX
t09R60k8Bh2ZZSHUMMEZ5API7daORBzM2/tLf8/Fn/38P+FH2lv+fiz/AO/h /wAKyLm0aGd0XaUD
lQd4OOeM+n4471E8EkalmA2ggZBBBznGCOvQ/lRyIOZm59pb/n4s/wDv4f8A Cj7S3/PxZ/8Afw/4
VitazKG3KAVJBG4Z464HUjg8j0NMiheXOzaSOxYAn6Dv+FHs13DmN37S3/Px Z/8Afw/4UfaW/wCf
iz/7+H/CsOKB5VZl2gKQCWcL1+p9jQIJCrHAyhIZSRuGOvHWn7NBzG59pb/n 4s/+/h/wo+0t/wA/
Fn/38P8AhWM9pNHu3Kvy5zhwenXoe3f0pkkEkS7nAAzg4IOD6H0PsaXIu4cz NsSnzTKJ7QkJtOJD
gDI56f5zR9o+Yt59lkjBPmH/AArFh/1U/wD1zH/oS01YXeMuNoUd2YDP0z1/ Cj2aDmNoOgZWD2AZ
RhTu5A9BxSBohGYw2nhCcld3B/DFZK2sr7doUhhnIdeOM888cA9fSl+yTEgb V5z/ABjA4zzzxwCR
60ci7hzM1XaJ1VXbT2CjCgtnH04pzSqyFGksShOSpfg859PWsoWj+UxIy4ZQ MMCpBDZOen8PX61D
JG0TYcDkZBBBB+hHWjkQcxtB0DKwewDKMKd3IHoOKf8AaW/5+LP/AL+H/CsT 7NLnGzvjqMHjOfpj
nPSpLezeS4RGKhC4UkSLz0zg55PPbNHIu4czNZrgspU3FngjH+sP+FHm7Y1i aWz2hAuGkPIx9O9Y
FTTqWmVVBJKIAB3+UU/ZoOY11dFUqr2AUjBAbgj06e5/OnfaPmDefZZAwD5h /wAKyFs5GyBtJBHR
1I6E8nPH3TSfZJiQNq85/jGBxnnnjgEj1pci7hzM1zKpkEhksS4GA2/kfjim loiysW08lAAp3dMd
McVmC0fymJGXDKBhgVIIbJz0/h6/WoZI2ibDgcjIIIIP0I60ciDmNoOiliHs AWOWIbqeuTxT/tLf
8/Fn/wB/D/hXP0U/ZoOY30lMUSIJ7TAyQTIeckn0/D8KjHkqrKDpwVvvANwf rxWTN/qoP+uZ/wDQ
mqaexdJXEeNisRl3Vf4mA6n/AGTS5EHMaRdDsy9gdn3Mt936ccUgaIMzBtPB cEMd3XPXPFZH2aUI
WKYxngkBuOvHX1/I+lOtoopjteR0bk8ICAAMk9R70ciDmNUtEybGbTyuc4Lc dMenpTvOBzmax5IJ
+c8kd+nsKwaKfs0HMdB9pb/n4s/+/h/wpDKZGjHn2hKuGAWQ5JB6dKwKltP+ PuH/AK6L/Oj2aDmO
i8u89Ifzb/CitCisiiqiJLaNE7YDFgcHB6msttOuQWQNG6dMkgD2OPxP69c/ NrwMEtizHABYk/ia
rteTkeaiR+TyeTz9PqaOaxcYt7FO/tTFaJFFulIRskc87k/LoayPstx/zwl/ 74NdbHKs0ccifdb/
AOvUtWp2M3E437Lcf88Jf++DUtzbTtdTFYZCC5IIU8811tNT7i/Sn7Ri5Tj/ ALLcf88Jf++DUrW0
/wBljHkyZDscbT6LXW00ffP0H9aPaMOU5bZKU8trOXywBgBSCDxk5x35/T0F SLvWNohZXHlEHjPz
ZJU9dv8AsjtW+15EgJbcMFgwxyoUEkkenT/voetI12y7d1rMGZtqrlMk4J/v e1LnCxzjxTPkfZJd
oXbGNp+XnOenPf8AOnQm7giCRW7Ah95YxZz0x1Hbn866aOZHA52sTtKtwQcZ x+XP056U24uUt9m8
Mdxx8v8ACO7H0A7n3o5w5TnXM7Sh1s5FAR0ChTxu3e3bd+lFu11BF5YguQAx YbCy5Jx1wORx7d66
Tz4fO8nzY/N/ubhu9elK80cbKskiKznChmALH2o5wsc6s10qhRb3KhQMBCy5 IUDnA5Hy+3emq1wr
q32SU7Wibof4Bj0710Ed1GwHmOkbM7IqswyxDEcf57077TAWK+fHuDbCN4yG 9PrwaOfyHY59JrpR
Fm3uTsK/LltmFx0GOvHv3qKITpB5LWszIS27AIPO08ceqiumM8Id0MsYZBuZ dwyo9T6VG19bKqP5
0ZRn2bww2g4J5P4frRzhY5kQ3AgeL7PL8zK2dp7A/wCNWZJrqQktb3JLBshi xAJUjgY4HPvXRtIi
EBnVSegJxnkD+ZH51DNeQxxSMskbGMhWG8fKScDPpzRzisc+rXQthD5FzwpU AFgpBz1GOTye/pSr
JcrLO32e5UTPvPlkqR14zjpzXRJcRsY0MkfmOoYKHByPb1HvQ1zAqb2njCZA 3FxjJGR+nNHP5Dsc
2xuWkVzay5COh4PO7dzz/vfpTg06zPKtrcq0oPmFSQeSD8vHHI9+K6Pz4fO8 nzY/N/ubhu9elJ9p
gAcmePEZw/zj5T7+lHOKxzJFybhpTbzHcpX5gSeV25J/z+FSK1wp/wCPSX+D scjapXI4685B7V0j
TRrF5rSII8A7ywxg9OaRZ4WDFZYyEAZiGHAIyCfwo5wsc/5lwZPM8m4BSLau 8Fyx3ZHOOx5/4Djv
VWOG4RJV+zynzF2/dPHIP9K6tJo5ApjkRwwJG1gcgdaR54Y41keWNUboxYAH 8aOcLHOB58xs1nMT
EVKYB6hVHPHI+UelQzRTy7D9mmDhQpO04OAAOMccCupM8K+XmWMeZ9zLD5vp 69aSC4jn3iNgWRir
LkZBBI5/KjnCxzoa4Esr/ZJf3kvmdDlfvdOOvzcH2pWluvOWRbe4+VNuXyxJ yWBzjscflW9bXkNx
biUSRjCBnAcHZkZ5qVJo5ApjkRwwJG1gcgdaOfyHY5pWuhbCHyLnhSoALBSD nqMcnk9/Sls2uLbH
+jXHDbvkyu72bg5HH6mujE8JdEEsZZxuVdwyw9R60rzRxsqySIrOcKGYAsfa jnFY5QQ3AgeL7PL8
zK2dp7A/41aM1wfN/wBFuF37/lUkL82eSMckZ6+wroJZ4YMedLHHnpvYDNKZ oxKIjIgkYZCFhkj6
Uc4WObZrhnZvsko3NK3Q/wAYx6dqS6a6uVw0FzktuIYsQD7DHA5966NLmCQq I543LEgbXByR1pyT
RyMyxyIzIcMFYEqfejnCxysVtOI5wYZBlAB8p5+YU6JZ44HjNtM27OARlRkY zjHX3zXUt1X6/wBK
R5o42VZJEVnOFDMAWPtRzhynPNNcGMr9luPmzwSSq5VhhRjgfN09qSFpdzCS 1mCsgBwp7Rsvp3z+
FdB9pgAcmePEZw/zj5T7+lH2mDazefHtUAsd4wAemfrRzDsc8klxGAsdpMqr gL13AfNnnHX5zz7D
rUUyzzMxa2uGO3apcsxHOc5x9RXSfaoy6bXRo2Rn8wMMAKQD/P8ASpY5ElQP G6up6MpyDRziscwB
MHQi1uEEfCFCQwXnjOPU5/E+2Hq8vmq7WMuI33oEG3njrx/sjpjvXR+dGFDe Ym0rvB3DBX1+nIqG
4voIbYzCWNhtYoN4+cjsKOcdjlvstx/zwl/74NTywTi4RxDN8qpyoIPCjocc GurpqdPxP86fOxcp
zZknw4FnL8wxkjk/KwyTjk/N19vxpYWl3MJLWYKyAHCntGy+nfP4VvfbLcjc JoymDlw4wMY9/cf5
xTvtMG1m8+PaoBY7xgA9M/Wlzjsc8klxGAsdpMqrgL13AfNnnHX5zz7DrUNx HczyBjBcHAwC+WP5
10v2qMum10aNkZ/MDDACkA/z/SpY5ElQPG6up6MpyDRziscf9luP+eEv/fBo +y3H/PCX/vg12VFP
2jDlOSltpzHABDIcIQflPHzGprlri4Rl+ySrubd0J7ufT/b/AErpV6t9f6VX iv4GgSSWSOHeAcO4
7gH+opc4WMSWa6kVx9nuV3FsKCwXBJPIxyeT+lVkhuEikQW8uXwCdp6dcfnj 8q6szRiURGRBIwyE
LDJH0qOa6WFiCjsEXe5XGEXnk5PsemelHOFjlPstx/zwl/74NH2W4/54S/8A fBrsqKftGHKcb9lu
P+eEv/fBqW2tp1uoS0MgAcEkqeOa62mv9xvpR7RhyhvX+8Pzop1FZlEEKCS1 KHo24H8zVKS1udvk
LEpj4w+7HPqe/wCFXbZVMOSAfmbt7mpdi/3R+VJq5UZuOxHBCIIYogc7e/r1 qamFVyvyjr6e1LsX
+6Pypkjqan3F+lGxf7o/KkRV2L8o6elAD6aPvn6D+tGxf7o/KkCrvPyjoO1A EIinWUzAoXYkMpOB
tGdo6df8T7YgFpMjpJFFBHtcHylchfusCc7ep3Dt2q9sX+6Pyo2L/dH5UAQx wurB2EZZ5N799vy7
fl/Ic/X6Uy5s2uZmLTOkZi8sBMZOT82cg+i1Z2L/AHR+VGxf7o/KgColrP5L CV0aRpY5CR0O0Jnt
/smi7s2nmZxhldAjAyMoABPOB97r0OOnvVvYv90flRsX+6PyoAz205yz52sJ NwI8xlABdj0H3uG6
HHTrzT5LKRo3UMmWSdRyertkVd2L/dH5UbF/uj8qAM+TTncTKNvzeYVZpG6s D/D0H3uvP054nmtp
GuxcR7CVC4ViRkgODzjj7/6VZ2L/AHR+VGxf7o/KgCN4d93FMQpEaMBnqCdv I/AH86pxac6LGvy/
u9gDGRm3AMpPB4X7vQZ+vFaGxf7o/KjYv90flQBUezZrtpOCjurkmRhggDja OD93qfX2pn2B0gtV
QKWhjKMqyNGCTjJyvPUfrV7Yv90flRsX+6PyoAqJZMkLRqUx5sbDGcYUJ9f7 ppptJjbQxEJ/o5Gw
rKylwFK8kDK9c8Z9Ku7F/uj8qNi/3R+VAFcWzC0SIbQRIrn5if4wx5PJ+vf2 qM2cwwUdQR5vQkZ3
OGxntwCM9s8Vc2L/AHR+VGxf7o/KgDPFpKqkfMkkkvDJIzlVKAHLEZ7ZHvtq 5JDlrfYFVYnzjpxt
IwPzFSbF/uj8qNi/3R+VAFE2UwWdVMZE4ZGJJGwFnII454fpx0q1bxvEHRtp XezKwPJySTkdsZqT
Yv8AdH5UbF/uj8qAKYs5lht1V1DRQeWcEjJ+XgHtnaRnqM01LGXy3O7y5Gky CsrMQpUKRuIz2yPc
D0q9sX+6Pyo2L/dH5UAUzYkXJZVXyy6v/rGAXaAANg4P3ev+FLqFtNcK6xkF WQqAZGQKeeeB83bg
+nvVvYv90flRsX+6PyoAY0ZN1HLkbVRlPrklf8DVJbG4CQIWVhH5fPmsAu3G Rtxhuh5Pr7VobF/u
j8qNi/3R+VAFKOykWNFLJlUgU8nqjZNOsrNrdl3YPlpsVvMZiRxzg8L06DP6 c29i/wB0flRsX+6P
yoAG6r9f6VBLDI10kkRCcAO+85IBJ27cY/HIPP5zFVyvyjr6e1LsX+6PyoAz /sNw0yO7KduMsZWO
751bO0jC/dPA9aJ7WZVRkCuVkY4yf4plYdvQc1obF/uj8qNi/wB0flQBQlsJ ZnaRiisxLFVY8HMe
BnGf4OvbPerFtDJCvAQb33OC7OcbcdT1PA9OKn2L/dH5UbF/uj8qAKhtH2SZ SNjKQxUOU2sDkAMB
nHf65PfhklrdGGUbo5Xmi8ti7bdv3sdBz97HQdPer2xf7o/KjYv90flQA6op EElvIhUMGDDaTgHr
xntT9i/3R+VIqrj7o6nt70AUjZ3DtGzyKdh4BbO0b0OM45+6eTzz+NNntZlV GQK5WRjjJ/imVh29
BzWhsX+6Pyo2L/dH5UAUJbCWZ2kYorMSxVWPBzHgZxn+Dr2z3q1aQmFG3ABn bcQHZ+wHU8np7VLs
X+6Pyo2L/dH5UAOopuxf7o/KjYv90flQAL1b6/0qlY2UlvIjOyEKm3gnrtjH /sh/SrgVct8o6+nt
S7F/uj8qAM+DTniMYbawGwsfMYAFQo+6OD93qfXpxU13avPIWURtlNqsx5iP PzLx15Hp90c+lrYv
90flRsX+6PyoAdRTdi/3R+VGxf7o/KgB1Nf7jfSjYv8AdH5UjquxvlHT0oAf RTdi/wB0flRQB//Z

------=_NextPart_000_0012_01C311A5.01FA6910--
Re: A Diagnostic Message for the Valid Schema [message #569600 is a reply to message #20019] Sun, 04 May 2003 11:09 Go to previous message
Ed Merks is currently offline Ed MerksFriend
Messages: 33142
Registered: July 2009
Senior Member
--------------BC3C71FEC4FD07018A44F6C1
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Pae,

No, the standalone version worked too. What exception did you see?


Pae Choi wrote:

> Ed, That surely helped with v1.0.2. And THANK you for that. One quick
> question is: Do you also have an exception thrown when running with
> v1.1.0 as standalone. Regards, Pae
>
> "Ed Merks" <merks@ca.ibm.com> wrote in message
> news:3EB3A206.9781C42@ca.ibm.com...Pae,
>
> The XSD model expects a DOM that's namespace aware, so this
> addition to your sample code will improve your result:
>
> private Document openXMLDOM(String uri) {
> // Create a factory object for creating DOM parsers
> DocumentBuilderFactory factory =
> DocumentBuilderFactory.newInstance();
> DocumentBuilder builder = null;
> Document xmlDoc = null;
>
> factory.setNamespaceAware(true);
>
> Without this, element.getNamespaceURI and
> element.getLocalName both return null...
>
>
> Pae Choi wrote:
>
> > Ed, I have a sample code that test a DOM of XML Schema
> > with Eclipse/XSD andproducing two different results. With
> > v1.0.2, it seems ok except the diagnostic message we are
> > discussing.With v1.1.0, it throws an exception. Regards,
> > Pae P.S.: The code snippet is as follows: //
> > ################## CODE SNIPPET ##################/*
> > * EclipseXSDDemo1.java
> > *
> > * Created on May 2, 2003, 11:13 PM
> > */ package org.paechoi.xsd.test; // W3C/DOM
> > import javax.xml.parsers.DocumentBuilderFactory;
> > import javax.xml.parsers.DocumentBuilder;
> > import org.w3c.dom.Document;
> > import org.w3c.dom.Element;
> > // Eclipse/XSD
> > import org.eclipse.xsd.XSDFactory;
> > import org.eclipse.xsd.XSDSchema;
> > import org.eclipse.xsd.impl.XSDSchemaImpl;
> > import org.eclipse.xsd.util.XSDResourceImpl;
> > import org.eclipse.xsd.util.XSDResourceFactoryImpl;
> > import org.eclipse.xsd.XSDDiagnostic;
> > import org.eclipse.emf.ecore.resource.Resource;
> > import org.eclipse.emf.ecore.resource.ResourceSet;
> > import
> > org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
> > import org.eclipse.emf.common.util.EList;
> > import java.io.File;
> > /**
> > *
> > * @author pae
> > */
> > public class EclipseXSDDemo1 {
> > // private Document xmlDOM = null;
> >
> > // instance initializer
> > {
> > //
> > Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd",
> > new XSDResourceFactoryImpl());
> > }
> >
> > /** Creates a new instance of EclipseXSDDemo1 */
> > public EclipseXSDDemo1() {
> > super();
> > }
> >
> > /** Open a XML DOM */
> > private Document openXMLDOM(String uri) {
> > // Create a factory object for creating DOM
> > parsers
> > DocumentBuilderFactory factory =
> > DocumentBuilderFactory.newInstance();
> > DocumentBuilder builder = null;
> > Document xmlDoc = null;
> >
> > // Build a new DOM
> > try {
> > // Now use the factory to create a DOM parser
> > (a.k.a. a DocumentBuilder)
> > builder = factory.newDocumentBuilder();
> > xmlDoc = builder.parse(uri);
> > }
> > catch (Exception ex) {
> > ex.printStackTrace();
> > return null;
> > }
> >
> > return xmlDoc;
> > }
> >
> > /** doIt */
> > private void doIt() {
> > Document xmlDOM =
> > openXMLDOM("http://schemas.xmlsoap.org/wsdl/");
> > // Document xmlDOM =
> > openXMLDOM("./wsdl.xsd"); Element rootElement =
> > xmlDOM.getDocumentElement(); XSDSchema xsdSchema =
> > XSDFactory.eINSTANCE.createXSDSchema();
> > xsdSchema.setDocument(xmlDOM);
> > xsdSchema.setElement(rootElement);
> > xsdSchema.updateElement();
> > System.out.println("\n\n");
> > XSDResourceImpl.serialize(System.out,
> > xsdSchema.getElement());
> > System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION
> > >>>>>>>>>>>>>>>>>>>>>>>>>>");
> > xsdSchema.validate();
> > //EList eList = xsdMainSchema.getDiagnostics();
> > EList eList = xsdSchema.getAllDiagnostics();
> > for (int i = 0; i < eList.size(); i++) {
> > XSDDiagnostic xsdDiagnostic =
> > (XSDDiagnostic)eList.get(i);
> > System.out.println(i + ": Diagnostic Message =
> > [" + xsdDiagnostic.getMessage() + "]");
> > }
> >
> > System.out.println("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<");
> >
> > }
> >
> > /** main - the main entry */
> > public static void main(String[] args) {
> > EclipseXSDDemo1 app = new EclipseXSDDemo1();
> > app.doIt();
> > }
> > }
> >
> > "Ed Merks" <merks@ca.ibm.com> wrote in message
> > news:3EB25ED9.AE2CB299@ca.ibm.com...Pae,
> >
> > I'm seeing this result with the just published
> > 1.1.0 driver:
> >
> > [Image]
> >
> > The schema isn't valid.
> >
> >
> > Pae Choi wrote:
> >
> > > I have a simple test schema as follows:
> > >
> > > <?xml version="1.0" encoding="UTF-8"?>
> > > <!--W3C Schema generated by Pae -->
> > > <xsd:schema
> > > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > > elementFormDefault="qualified">
> > > <xsd:element name="CommonLogin">
> > > <xsd:complexType>
> > > <xsd:sequence>
> > > <xsd:element name="username"
> > > ref="usernameRef"/>
> > > <xsd:element name="password"
> > > ref="passwordRef"/>
> > > </xsd:sequence>
> > > </xsd:complexType>
> > > </xsd:element>
> > > <xsd:element name="passwordRef"
> > > type="xsd:string"/>
> > > <xsd:element name="usernameRef"
> > > type="xsd:string"/>
> > > </xsd:schema>
> > >
> > > This is a very simple sample, but it is a valid
> > > schema. But when
> > > I use the validate() and getDiagnostics()
> > > methods in the XSDSchema
> > > interface it gives me a message as follows:
> > >
> > > XSD: The element '#null' is not permitted as
> > > constrained by 'XML Schema ';
> > > expecting schema
> > >
> > > I do not understand what the message is saying.
> > > Any comments?
> > >
> > > Pae
> >

--------------BC3C71FEC4FD07018A44F6C1
Content-Type: multipart/related;
boundary="------------1E3B66AE2FD2F1BDF1096BB7"


--------------1E3B66AE2FD2F1BDF1096BB7
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<body bgcolor="#FFFFFF">
Pae,
<p>No, the standalone version worked too.&nbsp; What exception did you
see?
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE=CITE>&nbsp;<font size=-1>Ed,</font>&nbsp;<font size=-1>That
surely helped with v1.0.2. And THANK you for that. One quick question is:</font>&nbsp;<font size=-1>Do
you also have an exception thrown when running with v1.1.0 as standalone.</font>&nbsp;<font size=-1>Regards,</font>&nbsp;&nbsp;<font size=-1>Pae</font>&nbsp;
<blockquote dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed
Merks" &lt;<a href="mailto:merks@ca.ibm.com">merks@ca.ibm.com</a>> wrote
in message <a href="news:3EB3A206.9781C42@ca.ibm.com">news:3EB3A206.9781C42@ca.ibm.com</a>...Pae,
<p>The XSD model expects a DOM that's namespace aware, so <font color="#3333FF">this</font>
addition to your sample code will improve your result:
<p>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String uri) {
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create a factory object
for creating DOM parsers
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilderFactory&nbsp;
factory = DocumentBuilderFactory.newInstance();
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;
builder = null;
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = null;
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#3333FF">&nbsp;&nbsp; factory.setNamespaceAware(true);</font>
<p>Without this, element.getNamespaceURI and element.getLocalName both
return null...
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE="CITE"><style></style>
<font size=-1>Ed,</font> <font size=-1>I
have a sample code that test a DOM of XML Schema with Eclipse/XSD andproducing
two different results.</font> <font size=-1>With v1.0.2, it seems ok except
the diagnostic message we are discussing.With v1.1.0, it throws an exception.</font>
<font size=-1>Regards,</font>&nbsp; <font size=-1>Pae</font> <font size=-1>P.S.:
The code snippet is as follows:</font> <font size=-1>// ##################
CODE SNIPPET ##################/*</font>
<br><font size=-1>&nbsp;* EclipseXSDDemo1.java</font>
<br><font size=-1>&nbsp;*</font>
<br><font size=-1>&nbsp;* Created on May 2, 2003, 11:13 PM</font>
<br><font size=-1>&nbsp;*/</font> <font size=-1>package org.paechoi.xsd.test;</font>
<font size=-1>// W3C/DOM</font>
<br><font size=-1>import&nbsp; javax.xml.parsers.DocumentBuilderFactory;</font>
<br><font size=-1>import&nbsp; javax.xml.parsers.DocumentBuilder;</font>
<br><font size=-1>import&nbsp; org.w3c.dom.Document;</font>
<br><font size=-1>import&nbsp; org.w3c.dom.Element;</font>
<br><font size=-1>// Eclipse/XSD</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDFactory;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDSchema;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.impl.XSDSchemaImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.util.XSDResourceImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.util.XSDResourceFactoryImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDDiagnostic;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.Resource;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.ResourceSet;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.common.util.EList;</font>
<br><font size=-1>import&nbsp; java.io.File;</font>
<br><font size=-1>/**</font>
<br><font size=-1>&nbsp;*</font>
<br><font size=-1>&nbsp;* @author&nbsp; pae</font>
<br><font size=-1>&nbsp;*/</font>
<br><font size=-1>public class EclipseXSDDemo1 {</font>
<br><font size=-1>//&nbsp;&nbsp;&nbsp; private&nbsp;&nbsp;&nbsp;&nbsp;
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp; xmlDOM = null;</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; // instance initializer</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; {</font>
<br><font size=-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp; Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd",
new XSDResourceFactoryImpl());</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** Creates a new instance of EclipseXSDDemo1
*/</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; public EclipseXSDDemo1() {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; super();</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String
uri) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create
a factory object for creating DOM parsers</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilderFactory&nbsp;
factory = DocumentBuilderFactory.newInstance();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;
builder = null;</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = null;</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Build a
new DOM</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// Now use the factory to create a DOM parser (a.k.a. a DocumentBuilder)</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
builder = factory.newDocumentBuilder();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = builder.parse(uri);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch (Exception
ex) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ex.printStackTrace();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return null;</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; return xmlDoc;</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** doIt */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private void doIt() {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document xmlDOM
= openXMLDOM("<a href="http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl/</a>");</font>
<br><font size=-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp; Document
xmlDOM = openXMLDOM("./wsdl.xsd");</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
Element rootElement = xmlDOM.getDocumentElement();</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
XSDSchema xsdSchema = XSDFactory.eINSTANCE.createXSDSchema();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; xsdSchema.setDocument(xmlDOM);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; xsdSchema.setElement(rootElement);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; xsdSchema.updateElement();</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
System.out.println("\n\n");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; XSDResourceImpl.serialize(System.out,
xsdSchema.getElement());</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION >>>>>>>>>>>>>>>>>>>>>>>>>>");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; xsdSchema.validate();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; //EList eList
= xsdMainSchema.getDiagnostics();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; EList eList
= xsdSchema.getAllDiagnostics();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; for (int i
= 0; i &lt; eList.size(); i++) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
XSDDiagnostic xsdDiagnostic = (XSDDiagnostic)eList.get(i);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
System.out.println(i + ": Diagnostic Message = [" + xsdDiagnostic.getMessage()
+ "]");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; System.out.println(" &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; ");</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** main - the main entry */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; public static void main(String[] args)
{</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; EclipseXSDDemo1
app = new EclipseXSDDemo1();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; app.doIt();</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<br><font size=-1>}</font>
<blockquote dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed
Merks" &lt;<a href="mailto:merks@ca.ibm.com">merks@ca.ibm.com</a>> wrote
in message <a href="news:3EB25ED9.AE2CB299@ca.ibm.com">news:3EB25ED9.AE2CB299@ca.ibm.com</a>...Pae,
<p>I'm seeing this result with the just published 1.1.0 driver:
<blockquote><img SRC="cid:part1.3EB4F504.D90CA68B@ca.ibm.com" height=411 width=502></blockquote>
The schema isn't valid.
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE="CITE">I have a simple test schema as follows:
<p>&lt;?xml version="1.0" encoding="UTF-8"?>
<br>&lt;!--W3C Schema generated by Pae -->
<br>&lt;xsd:schema xmlns:xsd="<a href="http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchema</a>"
<br>elementFormDefault="qualified">
<br>&nbsp;&lt;xsd:element name="CommonLogin">
<br>&nbsp; &lt;xsd:complexType>
<br>&nbsp;&nbsp; &lt;xsd:sequence>
<br>&nbsp;&nbsp;&nbsp; &lt;xsd:element name="username" ref="usernameRef"/>
<br>&nbsp;&nbsp;&nbsp; &lt;xsd:element name="password" ref="passwordRef"/>
<br>&nbsp;&nbsp; &lt;/xsd:sequence>
<br>&nbsp; &lt;/xsd:complexType>
<br>&nbsp;&lt;/xsd:element>
<br>&nbsp;&lt;xsd:element name="passwordRef" type="xsd:string"/>
<br>&nbsp;&lt;xsd:element name="usernameRef" type="xsd:string"/>
<br>&lt;/xsd:schema>
<p>This is a very simple sample, but it is a valid schema. But when
<br>I use the validate() and getDiagnostics() methods in the XSDSchema
<br>interface it gives me a message as follows:
<p>XSD: The element '#null' is not permitted as constrained by 'XML Schema
';
<br>expecting schema
<p>I do not understand what the message is saying. Any comments?
<p>Pae</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>

</body>
</html>

--------------1E3B66AE2FD2F1BDF1096BB7
Content-Type: image/jpeg
Content-ID: <part1.3EB4F504.D90CA68B@ca.ibm.com>
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\nsmailFJ.jpeg"

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCws MGJGSjpQdGZ6
eHJmcG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAq MF40NF7GhHCE
xsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbG xsbGxsb/wAAR
CAGbAfYDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcI CQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS 0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1 dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW 19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcI CQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMz UvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0 dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU 1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDXghR49zbiST/EfU0m23yQ BKcHHG81Ja/6
kf7zfzNVLrfsTY5wGkLRrJsZueoPt6e9NK4FpIYJEDIWKnoQ5/xpfs0Xo3/f Z/xqKy2bmMbM
UZEcZ75zzjt2qMXc+1kYBbgkbYvLyRnJ67sNwDzkdPXikBZ+zRejf99n/Gj7 NF6N/wB9n/Gq
a31w+eI027VYMuTuLsmeD2xnHPpnvS/bZyJnHlhYELMNpy5DODg54zs9+veg C39mi9G/77P+
NH2aL0b/AL7P+NUEup4hIkMQZY2kdycYwZH4yWGPu9ef8b883lxs6FW2H5l7 n2HvyMDv075o
APs0Xo3/AH2f8aPs0Xo3/fZ/xqFriZWhLGMRPt/eKpdSSeFGDx2+YjBz26Uy 3kkmuraaQptk
gZlVVIKglDgnPP6UATyQxIudrH/gZpm2L+43/fw1NP8AcH1rJvJZbecG2Jlk dSWhOSAAPvD0
/r9aQGhti/uN/wB/DTDGBI65bAPHzH0B/rUdntNurLMZt3zFyep+nb6VM/8A r5f94fyFAxvl
j1b/AL6NHlj1b/vo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+ jTqKAG+WPVv+
+jR5Y9W/76NOooAb5Y9W/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igB vlj1b/vo0eWP
Vv8Avo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPV v++jR5Y9W/76
NOooAb5Y9W/76NHlj1b/AL6NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/AL6N Hlj1b/vo06ig
Bvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+jTqKAG+WPVv++jR5Y9W/ 76NOooAb5Y9W
/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/vo0eWPVv8Avo06 igBvlj1b/vo0
eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPVv++jR5Y9W/76NOooAb5Y 9W/76NHlj1b/
AL6NOooAb5Y9W/76NHlj1b/vo06igCvOTEV2MRnOcnP86KS76p+P9KKBF+1/ 1I/3m/majktG
kBVmiZNxYK8W7Gfx96hREIJKqTuPUe9O8uP+4v5U7gWIYnR3d3DFgBwuMYz/ AI0otoBEYhBG
I2OSgQYJ+lNdbaNlVkjDOcKu0ZP0FMcwRyBWtvlyFMmwbQT0Hqeo6DHP1oAm WCFF2pFGo44C
gdDkfrzTPscBn84xIXwMZUfKQScj3yaT/Q/+mH39nb73p9fahfsbruTyGHHI wepwP14oAkaC
FipaKMlCWUlRwSckj8ad5abt2xc53Zx3xjP5cVCVgFwsJgXLIXDbRjggEfqK k8iH/nkn/fIo
ABBCJBIIo94zhtoyM5zz+J/OhIIY5GkSKNXbqwUAn8ah8yw8vzN9tszt3ZXG fTNO/wBD87yf
3Hm/3ON3r0oAklUsoAGeagFuVZmEYDN94jGT9adusgwXNvuLbAMrkt6fXkUM 1ksvlMbcSZA2
ErnJ6cUANW3KZ2RhdxycYGT60j/6+X/eH8hUgFqZzCEiLgZIG3I6dR170f6H 53k/uPN/ucbv
XpQBHRUg+xs4QeQWJK7RjOR1H4U3zLDzPL322/O3blc59MUrANoprz2y3Bh+ ysSJFjyIxjJG
f0HWpf8ARvtPkeSN+0tkx4GBjv369qLAMoqx5EP/ADyT/vkVX8y33f8AHt+7 37PM2rtznGOu
evHT9KLAFFNee2W4MP2ViRIseRGMZIz+g61a8iH/AJ5J/wB8iiwFeipP9D87 yf3Hm/3ON3r0
oH2NnCDyCxJXaMZyOo/CiwEdFSH7GJDGfI3jGV4yM4xx+I/Oj/Q/O8n9x5v9 zjd69KLAR0Us
slpE4TZGz7lUqu3K5IAJHpyPzp4FqZzCEiLgZIG3I6dR170WAjoqQfY2cIPI LEldoxnI6j8K
R2skZlc26sgywJUED3/MfnRYBlFO8yw8zy99tvzt25XOfTFRvPbLcGH7KxIk WPIjGMkZ/Qda
LAOoprzQr5n+hMfLkEZwqck4xjn3H5/WkeeJHKf2fKxAYjCJ8wU4JAznuPrR YB9FN86Hz2iF
kxKvtJCp7c4znHzDt3q15EP/ADyT/vkUWAr0UeZb7v8Aj2/d79nmbV25zjHX PXjp+lNee2W4
MP2ViRIseRGMZIz+g60WAdRTnMEcgVrb5chTJsG0E9B6nqOgxz9aei20jMqp GWQ4ZdoyPqKL
ARUVY8iH/nkn/fIo8iH/AJ5J/wB8iiwFeirHkQ/88k/75FHkQ/8APJP++RRY CvRVjyIf+eSf
98ijyIf+eSf98iiwFeirHkQ/88k/75FHkQ/88k/75FFgK9FWPIh/55J/3yKP Ih/55J/3yKLA
V6KseRD/AM8k/wC+RR5EP/PJP++RRYCvRVjyIf8Ankn/AHyKPIh/55J/3yKL AV6KseRD/wA8
k/75FHkQ/wDPJP8AvkUWAr0VY8iH/nkn/fIo8iH/AJ5J/wB8iiwFeipngh2/ 6pOo/hFQbYv+
eUfPtQMWioJlTz4FCKAScgDrxUb3FsjlWj5Bx90UWGouWiQ676p+P9KKLtFR lAUDrnAooJJ4
/un/AHj/ADp1Nj+6f94/zp1AyXyWjmMkTAhz86vknr2PbqeOn05NOeMyTLuA MSjP3urZ4yMd
vr+HQ055Y42VWYBnOFXufoKDIBMsWDuZSw9MAj/EUxFb7PN9s+0Yj+/jZuON uMbun3+30496
rtp8zo2Y4AzCYZDE4L9D0/D6flWpRQBWdJzepIqRmNVK5LkHBKknGPb1qzVV 70L5n7iU+XII
zjbyTjGOfcfn9akFwPOEbRyKGJVXIGGIycevY9scfSgCP7M/2rOV+z58zb33 /Tpjv67uaiWy
dZuUDp5pkyZ3HVt33MY4/XFWGufnwkMki7gpdAMA5x65474/oanoAqwRTR3c 7mOLbK+dwc7s
BQAMY9vXvUf2WZp8lI1XzN2VlYjGc/cIxk+vrz1qb7WC2FhlZd+wOqgjOcHv kY55Ixx9KkM8
IkMZlj3jGV3DIzjHH4j86AInSc3qSKkZjVSuS5BwSpJxj29aZ9nmx5OI/K83 zN+47vv78bcf
h19/apo7mN5WjJ2OrlArEZbAByOeeCKd58PneT5sfm/3Nw3evSgCo9tOWnZY 4d0kyOCXIJVc
cH5f9n9T+Nn7NH5m/dLnOcec+Pyzj8Kcs8LruSWNhxyGB6nA/Xijz4fO8nzY /N/ubhu9elAD
vLTdu2LnO7OO+MZ/LioHSc3qSKkZjVSuS5BwSpJxj29as1E9zAjMrzxqyDLA uAQPf8x+dAC/
vvtH/LPyNnvu3Z/LGKr/AGebHk4j8rzfM37ju+/vxtx+HX39qsefD53k+bH5 v9zcN3r0oE8L
OEEsZYkrtDDOR1H4UAO8tN27Yuc7s474xn8uKdUfnw+d5Pmx+b/c3Dd69KT7 TAGC+fHuLbAN
4yW9PryKAKq2TrNygdPNMmTO46tu+5jHH64oe2nLTsscO6SZHBLkEquOD8v+ z+p/G358PneT
5sfm/wBzcN3r0pqXdu8zQrNGZFO0pu5z9KAIlgkVhGY4XjEpkDsSSCWJ4XHX nGc+/tSfZ5se
TiPyvN8zfuO77+/G3H4dff2qx58PneT5sfm/3Nw3evSmS3cUThNwZ9yqVVhl ckAEjPTkfnQB
XltZynlosLKs3nKzE5J37sdOOpGefpzxM6Tm9SRUjMaqVyXIOCVJOMe3rVmo IbuKXau4JIxI
EbMN3BIPAPsaAK7205adljh3STI4JcglVxwfl/2f1P4xypJ5i2wjDBZxKHKN 3fcecYGATzk9
MY5q613bLu3XEQ2na2XHB9D+R/KpqAIfs0fmb90uc5x5z4/LOPwqTy03bti5 zuzjvjGfy4qA
Xg81kaGRVRxGXO3GTjHfPOR271L58PneT5sfm/3Nw3evSgCB7aRpXA2eXJKk pYk5BXbxjHP3
eue/tUjxyG9ikATy1RlJLHOSQemP9n170/z4fO8nzY/N/ubhu9elSUAVYLYp eT3EkcYZz8rK
xJ24AweP9kH8fzk+zR+Zv3S5znHnPj8s4/CpqKAKP2N/P3bIs+Zv8/P7zGc7 enp8vXp+VXPL
Tdu2LnO7OO+MZ/LikSWORmVWBZDhl7j6in0ARPGZJl3AGJRn73Vs8ZGO31/D oab5LSTCSVgA
h+RUyD17nv0HHT68Gp6KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKAGyE
Bck4AIyT9az3EMjBmlOR0w4GKvyqrxlXUMD2IzVf7Lb/APPCL/vgf5/z+YBW lZWubfawOCe+
f4aZJYLJIz+cRuOcbP8A69WzbwqMrDGD6hR/n/P5t8uP+4v5UXsXCcoO8SG9 OXU+uaKbdKF2
BQAOen4UUiCxH90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51fJPXse3U8dPp yakKAzK+0ZVS
N2eRkjjH4fpQ8scbKrMAznCr3P0FJ58P/PWP7+z7w+96fX2piG/Zo/M37pc5 zjznx+WcfhR9
mj8zfulznOPOfH5Zx+FK1zAsvlNPGJMgbC4zk9OKbLdxROE3Bn3KpVWGVyQA SM9OR+dAEEti
73ZlDrtLhj6/wH/2mP8Avo+nMphka7WRljUIT8653MuDhSMdOc9eo6ek/mJ5 nl71343bc849
cUxrmBZfKaeMSZA2FxnJ6cUAMSOaJikflmIuX3MTuGTkjHfqecjr3xzYqMzw iQxmWPeMZXcM
jOMcfiPzpsdzG8rRk7HVygViMtgA5HPPBFAEDWsjz+Y0durbw3nICHCg8Dpz kDB5HXp6uWCR
WEZjheMSmQOxJIJYnhcdecZz7+1T+fD53k+bH5v9zcN3r0oWeF13JLGw45DA 9TgfrxQBUe2n
LTsscO6SZHBLkEquOD8v+z+p/EWydZuUDp5pkyZ3HVt33MY4/XFW/Ph87yfN j83+5uG716VJ
QBltp8zo2Y4AzCYZDE4L9D0/D6flT5bKcuSmziUSAmVgG+bONo4H15zjPU8X fPh/56x/f2fe
H3vT6+1Czwuu5JY2HHIYHqcD9eKAJKzJUk8xbYRhgs4lDlG7vuPOMDAJ5yem Mc1fMoFwsJVs
shcNxjggEfqKBPCzhBLGWJK7QwzkdR+FAFRbJ1m5QOnmmTJncdW3fcxjj9cU PbTlp2WOHdJM
jglyCVXHB+X/AGf1P42muYFl8pp4xJkDYXGcnpxT/MTzPL3rvxu255x64oAp LZOs3KB080yZ
M7jq277mMcfripYIpo7udzHFtlfO4Od2AoAGMe3r3qbz4f8AnrH9/Z94fe9P r7UjXMCy+U08
YkyBsLjOT04oApy2U5clNnEokBMrAN82cbRwPrznGep4srHNHcSFPLKSOHLE nI4Axjv0657+
3Ky3cUThNwZ9yqVVhlckAEjPTkfnS/a7bzPL+0Rb87du8Zz6YoArLZOs3KB0 80yZM7jq277m
McfriiW1nKeWiwsqzecrMTknfux046kZ5+nPEr3yLcGHypSRIseQvGSM/oOt SR3MbytGTsdX
KBWIy2ADkc88EUATVQitZwnlusKq03nMyk5B37sdOegGePpxzZS7t3maFZoz Ip2lN3OfpQl3
bvM0KzRmRTtKbuc/SgCBo99+YwH8skSyZQ4LLjHPv8p4/ue5q7UYnhZwgljL EldoYZyOo/Cn
eYnmeXvXfjdtzzj1xQBWitT9qmlmUYZwyASMRwAOV6Z4z3/SoZbKcuSmziUS AmVgG+bONo4H
15zjPU8XXl2zRxgZL5J56Ad/zIH40PLtmjjAyXyTz0A7/mQPxoAqLZOs3KB0 80yZM7jq277m
Mcfrir9Qtd2y7t1xENp2tlxwfQ/kfyoa7tl3briIbTtbLjg+h/I/lQAfZo/M 37pc5zjznx+W
cfhR9mj8zfulznOPOfH5Zx+FDXdsu7dcRDadrZccH0P5H8qmoAg8lpJhJKwA Q/IqZB69z36D
jp9eDU9Qtd2y7t1xENp2tlxwfQ/kfyoFwPOEbRyKGJVXIGGIycevY9scfSgC aiio/Ph87yfN
j83+5uG716UASUVF9pgDBfPj3FtgG8ZLen15FD3MCMyvPGrIMsC4BA9/zH50 AS0VG8u2aOMD
JfJPPQDv+ZA/Gmi4HnCNo5FDEqrkDDEZOPXse2OPpQBNRVf7Wu7/AFcnl79n mcbc5xjrnrx0
/Sj7Wu7/AFcnl79nmcbc5xjrnrx0/SgCxRUX2hPtPkYfftLZKkDAx379e1K8 u2aOMDJfJPPQ
Dv8AmQPxoAkoqq96Edk8iUsrhQo25bOcEc9OP5+hxHJqkUczxGKUusix4G3k tkjHPtQBeoqK
GfzZJU8t18ptpLYwTjPGD6EfnTPtYLYWGVl37A6qCM5we+RjnkjHH0oAsUVG Z4RIYzLHvGMr
uGRnGOPxH502O5jeVoydjq5QKxGWwAcjnngigCaio/Ph87yfNj83+5uG716U LPC67kljYcch
gepwP14oAkoqPz4fO8nzY/N/ubhu9elQvfItwYfKlJEix5C8ZIz+g60AWH+6 aj/z/n/P/wBe
R/umo/8AP+f8/wD1wBr/AHT/AJ/z/n8Y6kf7p/z/AJ/z+MdIZWu+qfj/AEoo u+qfj/SigRPH
90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51fJPXse3U8dPpyai+zzfbPtGI/ v42bjjbjG7p9
/t9OPerHnw+d5Pmx+b/c3Dd69KDKBcLCVbLIXDcY4IBH6imIq/ZZmnyUjVfM 3ZWViMZz9wjG
T6+vPWkltZynlosLKs3nKzE5J37sdOOpGefpzxb8+HzvJ82Pzf7m4bvXpQs8 LruSWNhxyGB6
nA/XigBvlv8AbPM2RbPL27sfPnPTPp/Wq/2WZp8lI1XzN2VlYjGc/cIxk+vr z1q158PneT5s
fm/3Nw3evSgTws4QSxliSu0MM5HUfhQBAsEisIzHC8YlMgdiSQSxPC4684zn 39qje2nLTssc
O6SZHBLkEquOD8v+z+p/Gyl3bvM0KzRmRTtKbuc/So/to89ohBKSr7SRt9uc Zzj5h270ARLZ
Os3KB080yZM7jq277mMcfriom0+Z0bMcAZhMMhicF+h6fh9PyrQ8+HzvJ82P zf7m4bvXpSfa
YAwXz49xbYBvGS3p9eRQBTlspy5KbOJRICZWAb5s42jgfXnOM9Txo1Gs8Lru SWNhxyGB6nA/
Xio1u1MzxtHIgV9m9sbSeCBwe+R1+nXigCP7PN9s+0Yj+/jZuONuMbun3+30 496rtp8zo2Y4
AzCYZDE4L9D0/D6flWh58PneT5sfm/3Nw3evSoX1C3W4WBXV3JwQHX5TnHc/ oMmgBXSc3qSK
kZjVSuS5BwSpJxj29ahe2nLTsscO6SZHBLkEquOD8v8As/qfxt+fD53k+bH5 v9zcN3r0o8+H
/nrH9/Z94fe9Pr7UAVfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVjy3+2eZsi2eX t3Y+fOemfT+t
OMoFwsJVsshcNxjggEfqKal3bvM0KzRmRTtKbuc/SgCH7PN9s+0Yj+/jZuON uMbun3+30496
b9lmafJSNV8zdlZWIxnP3CMZPr689asfa7bzPL+0Rb87du8Zz6YqN75FuDD5 UpIkWPIXjJGf
0HWgCKW1nKeWiwsqzecrMTknfux046kZ5+nPFn7NH5m/dLnOcec+Pyzj8KV7 mBGZXnjVkGWB
cAge/wCY/Ol8+H/nrH9/Z94fe9Pr7UAO8tN27Yuc7s474xn8uKpPbTlp2WOH dJMjglyCVXHB
+X/Z/U/jb8+HzvJ82Pzf7m4bvXpQZQLhYSrZZC4bjHBAI/UUARrHNHcSFPLK SOHLEnI4Axjv
0657+3Isc0dxIU8spI4csScjgDGO/Trnv7cyCeMzmEMpcDJAYZHTqOveoX1C 3W4WBXV3JwQH
X5TnHc/oMmgCBI3mu7kCIKhmRjIwIJCheBxyMqe/f87flv8AbPM2RbPL27sf PnPTPp/WnCeM
zmEMpcDJAYZHTqOvejz4fO8nzY/N/ubhu9elADYUbzJZZBhnO0D0UZx/U/jj tRCjeZLLIMM5
2geijOP6n8cdqSW7iicJuDPuVSqsMrkgAkZ6cj86Y98i3Bh8qUkSLHkLxkjP 6DrQAySzke5L
iQCNnVyOeo29v+Af+PH05JLOR7kuJAI2dXI56jb2/wCAf+PH05tJLHIzKrAs hwy9x9RT6AKU
lnI9yXEgEbOrkc9Rt7f8A/8AHj6c2f332j/ln5Gz33bs/ljFSUUAUpLOR7ku JAI2dXI56jb2
/wCAf+PH05kMMjXayMsahCfnXO5lwcKRjpznr1HT0s0UAR/vvtH/ACz8jZ77 t2fyxiq/2ebH
k4j8rzfM37ju+/vxtx+HX39quUUAVYIpo7udzHFtlfO4Od2AoAGMe3r3qtKk nmLbCMMFnEoc
o3d9x5xgYBPOT0xjmtOigCGFG8yWWQYZztA9FGcf1P447VGiXP2ou6xFckbt 5JCdgBjjtnn+
mLVFAFP7PNjycR+V5vmb9x3ff3424/Dr7+1H2ebHk4j8rzfM37ju+/vxtx+H X39quUUAVnSc
3qSKkZjVSuS5BwSpJxj29afCjeZLLIMM52geijOP6n8cdqmooApyR3ZnMqiL KnagLnGw9c/L
1OB+Q98xy2k7SSyBIixlV0JkI+Ubcg8d9g/P89CigCmI7tZpSgiCySq+7ech RtBGNvcD170j
Wsjz+Y0durbw3nICHCg8DpzkDB5HXp63aKAKiwSKwjMcLxiUyB2JJBLE8Ljr zjOff2qN7act
Oyxw7pJkcEuQSq44Py/7P6n8b9FAFBbJ1m5QOnmmTJncdW3fcxjj9cVE2nzO jZjgDMJhkMTg
v0PT8Pp+ValFAGdLZTlyU2cSiQEysA3zZxtHA+vOcZ6ni/5abt2xc53Zx3xj P5cU6igBr/dN
R/5/z/n/AOvI/wB01H/n/P8An/64A1/un/P+f8/jHUj/AHT/AJ/z/n8Y6Qyt d9U/H+lFF31T
8f6UUCJ4/un/AHj/ADp1Nj+6f94/zp1Axi2TrNygdPNMmTO46tu+5jHH64qZ 0nN6kipGY1Ur
kuQcEqScY9vWrNMeWONlVmAZzhV7n6CmIprZOs3KB080yZM7jq277mMcfrio m0+Z0bMcAZhM
MhicF+h6fh9PyrQ8+H/nrH9/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oAqrZO s3KB080yZM7j
q277mMcfrih7actOyxw7pJkcEuQSq44Py/7P6n8bEt3FE4TcGfcqlVYZXJAB Iz05H51L5ieZ
5e9d+N23POPXFAEKxzR3EhTyykjhyxJyOAMY79Oue/ty2C2KXk9xJHGGc/Ky sSduAMHj/ZB/
H85vPh87yfNj83+5uG716UGUC4WEq2WQuG4xwQCP1FAFf7PNjycR+V5vmb9x 3ff3424/Dr7+
1Ogimju53McW2V87g53YCgAYx7evepvPh87yfNj83+5uG716ULPC67kljYcc hgepwP14oAz2
0+Z0bMcAZhMMhicF+h6fh9PyqwLeZppfMEaxPKsmVYlvl24GMcfdB/T3qx58 PneT5sfm/wBz
cN3r0oE8LOEEsZYkrtDDOR1H4UAVFsnWblA6eaZMmdx1bd9zGOP1xUqpci8e Xy4tjBU/1hyA
CecbffpUiXdu8zQrNGZFO0pu5z9KmoAzpbKcuSmziUSAmVgG+bONo4H15zjP U8ST205aTyvL
KvKkvzEg5Xb8vT/Z6/hjvVkTws4QSxliSu0MM5HUfhR58PneT5sfm/3Nw3ev SgCJ0nN6kipG
Y1UrkuQcEqScY9vWlWOaO4kKeWUkcOWJORwBjHfp1z39uZFnhddySxsOOQwP U4H68UefD53k
+bH5v9zcN3r0oAb9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd8Yz+XFR/a7bz PL+0Rb87du8Z
z6YqN75FuDD5UpIkWPIXjJGf0HWgCvcxSxRqpjV41uBIGVWZuX3HgDjAJ5z2 96lntpy0nleW
VeVJfmJByu35en+z1/DHepmufnwkMki7gpdAMA5x65474/oaf58PneT5sfm/ 3Nw3evSgClLZ
TlyU2cSiQEysA3zZxtHA+vOcZ6niw6Tm9SRUjMaqVyXIOCVJOMe3rUqzwuu5 JY2HHIYHqcD9
eKFnhddySxsOOQwPU4H68UAROk5vUkVIzGqlclyDglSTjHt60ipci8eXy4tj BU/1hyACecbf
fpU3nw+d5Pmx+b/c3Dd69KBPCzhBLGWJK7QwzkdR+FAETpOb1JFSMxqpXJcg 4JUk4x7etQrZ
Os3KB080yZM7jq277mMcfrirUM/mySp5br5TbSWxgnGeMH0I/Ol8+HzvJ82P zf7m4bvXpQBU
ltZynlosLKs3nKzE5J37sdOOpGefpzxd8tN27Yuc7s474xn8uKY9zAjMrzxq yDLAuAQPf8x+
dKJ4zOYQylwMkBhkdOo696AGeS0kwklYAIfkVMg9e579Bx0+vBqeoxPCzhBL GWJK7QwzkdR+
FQvfItwYfKlJEix5C8ZIz+g60AWqKYkscjMqsCyHDL3H1FPoAKKKKACiiigA ooooAKKKKACi
iigAooooAKKKKACiiigAooooAKKKKACiiigBr/dNR/5/z/n/AOvI/wB01H/n /P8An/64A1/u
n/P+f8/jHUj/AHT/AJ/z/n8Y6Qytd9U/H+lFF31T8f6UUCJ4/un/AHj/ADp1 Nj+6f94/zp1A
y5UHktHMZImBDn51fJPXse3U8dPpyanopiKf2eb7Z9oxH9/GzccbcY3dPv8A b6ce9N+yzNPk
pGq+ZuysrEYzn7hGMn19eetW3ljjZVZgGc4Ve5+gpPPh/wCesf39n3h970+v tQBUltZynlos
LKs3nKzE5J37sdOOpGefpzxZ8t/tnmbItnl7d2Pnznpn0/rStcwLL5TTxiTI GwuM5PTimy3c
UThNwZ9yqVVhlckAEjPTkfnQBXWydZuUDp5pkyZ3HVt33MY4/XFTOk5vUkVI zGqlclyDglST
jHt61P5ieZ5e9d+N23POPXFNM8IkMZlj3jGV3DIzjHH4j86AKi2TrNygdPNM mTO46tu+5jHH
64qJtPmdGzHAGYTDIYnBfoen4fT8q0PPh87yfNj83+5uG716ULPC67kljYcc hgepwP14oAqL
ZOs3KB080yZM7jq277mMcfrih7actOyxw7pJkcEuQSq44Py/7P6n8bYnhZwg ljLEldoYZyOo
/CgygXCwlWyyFw3GOCAR+ooAjWOaO4kKeWUkcOWJORwBjHfp1z39ubFR+fD5 3k+bH5v9zcN3
r0o8+H/nrH9/Z94fe9Pr7UAVHtpy07LHDukmRwS5BKrjg/L/ALP6n8Wy2U5c lNnEokBMrAN8
2cbRwPrznGep4me+KOU+yXDEBiMBfmCnBIGc9x9ala7tl3briIbTtbLjg+h/ I/lQBRbT5nRs
xwBmEwyGJwX6Hp+H0/KpVsnWblA6eaZMmdx1bd9zGOP1xVsTws4QSxliSu0M M5HUfhR58Pne
T5sfm/3Nw3evSgBv2aPzN+6XOc4858flnH4VJ5abt2xc53Zx3xjP5cUiSxyM yqwLIcMvcfUU
+gCukc0TFI/LMRcvuYncMnJGO/U85HXvjmP7PNjycR+V5vmb9x3ff3424/Dr 7+1XKKAMttPm
dGzHAGYTDIYnBfoen4fT8qG0+Z0bMcAZhMMhicF+h6fh9PyrUooAp/Z5seTi PyvN8zfuO77+
/G3H4dff2pj205adljh3STI4JcglVxwfl/2f1P436KAKYju1mlKCILJKr7t5 yFG0EY29wPXv
R9nmx5OI/K83zN+47vv78bcfh19/arlFAGZKknmLbCMMFnEoco3d9x5xgYBP OT0xjmrTpOb1
JFSMxqpXJcg4JUk4x7etWaKAKD205adljh3STI4JcglVxwfl/wBn9T+N3y03 bti5zuzjvjGf
y4p1FAEHktJMJJWACH5FTIPXue/QcdPrwanoooAKKKKACiiigAooooAKKKKA CiiigAooooAK
KKKACiiigAooooAKKKKACiiigBr/AHTUf+f8/wCf/ryP901H/n/P+f8A64A1 /un/AD/n/P4x
1I/3T/n/AD/n8Y6Qytd9U/H+lFF31T8f6UUCJ4/un/eP86dTY/un/eP86dQM uUUUUxEHktHM
ZImBDn51fJPXse3U8dPpyai+zzfbPtGI/v42bjjbjG7p9/t9OPerlMeWONlV mAZzhV7n6CgC
p9lmafJSNV8zdlZWIxnP3CMZPr689aSW1nKeWiwsqzecrMTknfux046kZ5+n PFvz4f8AnrH9
/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oATy3+2eZsi2eXt3Y+fOemfT+tRLB IrCMxwvGJTIH
YkkEsTwuOvOM59/apJbuKJwm4M+5VKqwyuSACRnpyPzqXzE8zy9678btuece uKAKv2ebHk4j
8rzfM37ju+/vxtx+HX39qrtp8zo2Y4AzCYZDE4L9D0/D6flV9rmBZfKaeMSZ A2FxnJ6cUvnw
+d5Pmx+b/c3Dd69KAKSRvNd3IEQVDMjGRgQSFC8DjkZU9+/52HSc3qSKkZjV SuS5BwSpJxj2
9ake5gRmV541ZBlgXAIHv+Y/Ol8+H/nrH9/Z94fe9Pr7UAVFsnWblA6eaZMm dx1bd9zGOP1x
T/s832z7RiP7+Nm4424xu6ff7fTj3qx58PneT5sfm/3Nw3evSgTws4QSxliS u0MM5HUfhQAx
45DexSAJ5aoykljnJIPTH+z696haPffmMB/LJEsmUOCy4xz7/KeP7nuasmeE SGMyx7xjK7hk
Zxjj8R+dHnw+d5Pmx+b/AHNw3evSgCkkbzXdyBEFQzIxkYEEhQvA45GVPfv+ blsnWblA6eaZ
Mmdx1bd9zGOP1xVxJY5GZVYFkOGXuPqKfQBB5LSTCSVgAh+RUyD17nv0HHT6 8Gp6KKACiiig
AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKK
KKACiiigAooooAKKKKAGv901H/n/AD/n/wCvI/3TUf8An/P+f/rgDX+6f8/5 /wA/jHUj/dP+
f8/5/GOkMrXfVPx/pRRd9U/H+lFAieP7p/3j/OnVSaJmlYlpfmJ2ojkZ68+3 9T265WFf3yEN
Kpxu2PIWyOeR/h9D65NCuV2ubFFFFMkKg8lo5jJEwIc/Or5J69j26njp9OTU 9FAFP7PN9s+0
Yj+/jZuONuMbun3+30496b9lmafJSNV8zdlZWIxnP3CMZPr689a59Li9dWZZ 5yqjLHecD8aX
zr//AJ63P3d/3m+76/T3rTkJ5jeltZynlosLKs3nKzE5J37sdOOpGefpzxZ8 t/tnmbItnl7d
2Pnznpn0/rXMiXUWj8xXujHjO4FsfnTo3v5EL/aJ1TaSGZmw2ASQD68H8qOT zDmNz7LM0+Sk
ar5m7KysRjOfuEYyfX1560i2TrNygdPNMmTO46tu+5jHH64rA+03vl+Z59xs zjdvbGfTNL51
/wCV5vm3Pl/39zY/OjkDmNu5ilijVTGrxrcCQMqszcvuPAHGATznt71LPbTl pPK8sq8qS/MS
Dldvy9P9nr+GO9c+Li7MBlF3LgMFK+Y2eQSD+ho86/8AK83zbny/7+5sfnRy BzG8tk6zcoHT
zTJkzuOrbvuYxx+uKHtpy07LHDukmRwS5BKrjg/L/s/qfxwWmv0OGluVPPBZ h0GT+nNHnX/l
eb5tz5f9/c2Pzo5A5jolgkVhGY4XjEpkDsSSCWJ4XHXnGc+/tUa2TrNygdPN MmTO46tu+5jH
H64rBM1+E3mW5CgA5LNjB6GnM+opEJWkuRGRkNubGKOTzDmOk8lpJhJKwAQ/ IqZB69z36Djp
9eDU9cf9tuv+fmb/AL+Gnma/CbzLchQAclmxg9DR7MOY62iuS86/8rzfNufL /v7mx+dDTX6H
DS3Knngsw6DJ/TmjkDmOtorkvOv/ACvN8258v+/ubH507fqXl+Zuu9mM7stj Hrmjk8w5jq6K
5dTetAJftrAFGkwZWzgHH6npUXnX/wDz1ufu7/vN931+nvRyeYcx1tFcmJdR aPzFe6MeM7gW
x+dJ51/5Xm+bc+X/AH9zY/Ojk8w5jraK5PzdR2lt91gLuJy3T1+lIZr8JvMt yFAByWbGD0NH
J5hzHW0VyXnX/leb5tz5f9/c2Pzoaa/Q4aW5U88FmHQZP6c0cgcx1tFcl51/ 5Xm+bc+X/f3N
j86lU3rQCX7awBRpMGVs4Bx+p6UcnmHMdRRXH/bbr/n5m/7+GpPN1HaW33WA u4nLdPX6UezD
mOsorkvOv/K83zbny/7+5sfnUqjUWgMxnuFQDIJL/MMZ7fzNHJ5hzHUUVym/ UvL8zdd7MZ3Z
bGPXNPU3rQCX7awBRpMGVs4Bx+p6UuTzC51FFcl51/8A89bn7u/7zfd9fp70 ol1Fo/MV7ox4
zuBbH50+TzDmOsorkvOv/K83zbny/wC/ubH50vm6jtLb7rAXcTlunr9KOTzD mOsorkjNfhN5
luQoAOSzYweho86/8rzfNufL/v7mx+dHIHMdbRXJNNfocNLcqeeCzDoMn9Oa POv/ACvN8258
v+/ubH50cgcx1tFcvuu/LVhfMxZC4QO+cDOe2OMHv2qLzr/yvN8258v+/ubH 50cgcx1tFcuo
1FoDMZ7hUAyCS/zDGe38zQpvWgEv21gCjSYMrZwDj9T0pcnmFzqKK5JLm6aK SQ3UwCYA+c8k
9uvoCfwpHuL1FVmnnCsMqd5wfxp8gcx11FFFZlBRRRQA1/umo/8AP+f8/wD1 5H+6aj/z/n/P
/wBcAa/3T/n/AD/n8Y6kf7p/z/n/AD+NczxgkZPHH3TSGk3sRXfVPx/pRRdE MIyOhBI/SigB
u7MxdFLyR5AQd/mzn9enXp60Iha8Ezh03ZIVhyT3/D3+lOMcJ5aBJJGLYG0Z PJ70sAg3jFuk
UmNy8DkeoNLS5peXKalFFFUZBRRRQBx+/wAyIJIhyo+QpgfmO/Qc9frxUvmx /ZfI+f7md20Z
3Zzt6/d/rzXQyQWSMqvDAGc/KuwZb8KTy9P/ALlt9/Z0X73p9fatOdBZGB5y CHALsxj24Mag
5xj7+c49vTApYpog+9jMC8XlFVAwBt25689jjj/HdZNOWXymW1EhI+Qhc57c U2UWEb7PIgdy
yhlVVyuSACR6cj86OdBZHOZH2Ty8y79+7bn5MY649asG5DRDBKP5ezAhU/w4 +9nPP9a6D7PZ
eZ5fkwb8btu0Zx64pvl6f53k7Lbzf7mF3evSjnQWRzieV9keMtJ5jENgIMcA 8Zz71KbkNEME
o/l7MCFT/Dj72c8/1reMNr9oEJtI8spcNsXBwQD+PIo8vT/O8nZbeb/cwu71 6Uc6CyMVbuNX
Xa0xUGIgFQMhOo6/j9fzqM3IaIYJR/L2YEKn+HH3s55/rW8senyLuVLZgccg Kc5OB+uRR5en
+d5Oy283+5hd3r0o5kFkYKTRbYFZpsJE6kBB1bPI5/2v0HrUJMckEYYPvRCo AAweSc57demP
510gj09n2BLYsWI24XJI6j6imqNNkmaFVtjIGwU2rnP070c4WRy21vSrqTRb YFZpsJE6kBB1
bPI5/wBr9B610X2O1/59of8AvgVGI9PZ9gS2LFiNuFySOo+oocwtEw4rmIKA 4fmMoQI1JHy4
zuPJ+nHX83Ldxq67WmKgxEAqBkJ1HX8fr+dbXl6f53k7Lbzf7mF3evShY9Pk XcqWzA45AU5y
cD9cijmQWRgm5DRDBKP5ezAhU/w4+9nPP9ar+dL5ezZHjGP9UufzxnNdN5en +d5Oy283+5hd
3r0puNM8zy8Wm/djb8uc+mPWjnQWRzGZMYy2MYxntnOPz5qzDLEFj8wSArG0 Y2gHg7uev+10
/XtW07WS3Bh+w7j5ix5EQIJIz+g61MI9PZ9gS2LFiNuFySOo+oo5wsjA85BD gF2Yx7cGNQc4
x9/Oce3pgUpuQ0QwSj+XswIVP8OPvZzz/Wt7y9P87ydlt5v9zC7vXpSMmnLL 5TLaiQkfIQuc
9uKOdBZHPStHJbQory7o0wFKjbknJ5z7+nYVIk0W2BWabCROpAQdWzyOf9r9 B61usmnLL5TL
aiQkfIQuc9uKRhpi7twtBtbDZ28Hng+/Bo5wsjFiuYgoDh+YyhAjUkfLjO48 n6cdfzct3Grr
taYqDEQCoGQnUdfx+v51teXp/neTstvN/uYXd69KQpp27aVtdxbbjC5Len15 /WjmQWRhG5DR
DBKP5ezAhU/w4+9nPP8AWqmZMYy2MYxntnOPz5rppRYRvs8iB3LKGVVXK5IA JHpyPzpjtZLc
GH7DuPmLHkRAgkjP6DrRzoLI5ra3pVmVo5LaFFeXdGmApUbck5POff07Cum+ x2v/AD7Q/wDf
AqIpp27aVtdxbbjC5Len15/WnzhaJhG5DRDBKP5ezAhU/wAOPvZzz/Woz5LW iR7pd6ln/wBW
MEkDjr7frXReXp/neTstvN/uYXd69KheTThcCAQwO5bDABODnHOTyevAyaXO gsjn/Ol8vZsj
xjH+qXP54zmmZkxjLYxjGe2c4/PmunxpnmeXi037sbflzn0x61G7WS3Bh+w7 j5ix5EQIJIz+
g60+dBZGLDLEFj8wSArG0Y2gHg7uev8AtdP17UvnIIcAuzGPbgxqDnGPv5zj 29MCt8R6ez7A
lsWLEbcLkkdR9RR5en+d5Oy283+5hd3r0pc6CyME3IaIYJR/L2YEKn+HH3s5 5/rUcrRyW0KK
8u6NMBSo25Jyec+/p2FdCyacsvlMtqJCR8hC5z24oZNOWXymW1EhI+Qhc57c Uc6CyMJJotsC
s02EidSAg6tnkc/7X6D1p0VzEFAcPzGUIEakj5cZ3Hk/Tjr+e0w0xd24Wg2t hs7eDzwffg07
y9P87ydlt5v9zC7vXpRzoLIxVu41ddrTFQYiAVAyE6jr+P1/OozchohglH8v ZgQqf4cfeznn
+tbpTTt20ra7i23GFyW9Prz+tNlFhG+zyIHcsoZVVcrkgAkenI/OjmQWRh+e ggiiAYjyyrNs
AYZJPBznvjHGR9aU3IaIYJR/L2YEKn+HH3s55/rWz/onmujWIVVkCM5RMZOM d885HbvUvl6f
53k7Lbzf7mF3evSjnQWRzp8lrRI90u9Sz/6sYJIHHX2/WoMyYxlsYxjPbOcf nzXRvJpwuBAI
YHcthgAnBzjnJ5PXgZNDtZLcGH7DuPmLHkRAgkjP6DrRzhaJz8pzHFHHyqjc T6scZ/oPw96U
Psi2RISXHzF8H8h269ev0zXSvBarNHGLWFi+SfkHAHfp6kD8aVILKRnVYYCy n5l2DI+oo5ws
i1RRRWYBRRRQA1/umo/8/wCf8/8A15H+6aj/AM/5/wA//XAGv90/5/z/AJ/G qbdSSd7DJz2/
wq0/3T/n/P8An8apuFBI2McHHb/GguPN0I7lQqxqOgBH8qKLlgyxsOhBP8qK RL3HMrBhMil2
TICj13Eg02OJ5Lo3Dq6Drhxzk/0qxH90/wC8f506lYvndrFyiiiqMwoopjyx xsqswDOcKvc/
QUAVztimaSOVcFgJFcknqeh7Ac8dOD05NREEXhuC0XEm0puONuMbun3+CM9M AjPGatMypNDG
qAkg9ONqjr+u0Y9/agS24xiSIYbyxgjg/wB36+1BXulMofPJYxIqy5JWViOu fuEYzwcnscnq
KSZH2GNTAVjn80M7HOd+7HTjuM89D74uGe2SVYjLCsg+UJuAIz2x+VNkuYIX VBtZwVTahGUB
IAyM9OR+lAe6IXUXhkPk7Amwtj5856Z/u8H8QfSqwhVJm3bXQTbyTcOMZbd9 zGOOfyPTmr4M
QkEYKBwuQoxkL9PSmGe2SVYjLCsg+UJuAIz2x+VAe6QySP8AbVkHk+XGChJc g8kEnGO209/X
pg1CIVSZt210E28k3DjGW3fcxjjn8j05q6JbcTCESRCUDAQEbgOvSkae2iYq 0sKNGvILAFRx
+Q6fpQHumc9sSj7hbqx84E7icF+h+72wQfYH0IqUQqkzbtroJt5JuHGMtu+5 jHHP5HpzV0S2
4xiSIYbyxgjg/wB36+1AltxMIRJEJQMBARuA69KA90pSo+64YCDc06NkuQcL jg/L/sn2GT6V
OHMVxKVeLY8gZmYnK8AEAY5+6ec8c+lTLLb71RJItwyiqCM8dQP04o823WTy xJEHQAbcjKg4
xx+X6UB7o4zxDOXHBwf8/gfyPpVCVH3XDAQbmnRslyDhccH5f9k+wyfSrolt xMIRJEJQMBAR
uA69KWN4WYrGV3R/KVxgr+HYcfjQHumfNC29irx/LMHyZWAPzZxtHA6HnnoS ec4Y9sSj7hbq
x84E7icF+h+72wQfYH0IrWCqMYUDAwMDoKAqjGFAwMDA6CgPdM4QqkzbtroJ t5JuHGMtu+5j
HHP5HpzVkpbiQuZZMhskec+M/TOMcH24PpVgKoxhQMDAwOgoCqMYUDAwMDoK A90jL24YsdmQ
2Scd8Yz+QIz7H0qjkPdXIwiIZkYyNkMduOAMcjKt345P10gqjGFAwMDA6CgK oxhQMDAwOgoD
3TMmhbexV4/lmD5MrAH5s42jgdDzz0JPOcPKHzyWMSKsuSVlYjrn7hGM8HJ7 HJ6itAKoxhQM
DAwOgoCqMYUDAwMDoKA90zyh88ljEirLklZWI65+4RjPByexyeopZYs3Lv56 iMyKzDJ6jb27
/wCr6+7enN8KoxhQMDAwOgoCqMYUDAwMDoKA90okEAwlovKE3mF9x3ff3424 9iM57E9sU6Fj
Fd3DsIQsknLBzuAC4HG3noe/HPoauBVGMKBgYGB0FAVRjCgYGBgdBQHumdMj 7DGpgKxz+aGd
jnO/djpx3Geeh98XS9uGLHZkNknHfGM/kCM+x9KkCqMYUDAwMDoKAqjGFAwM DA6CgPdGmeIZ
y44OD/n8D+R9KqwsYru4dhCFkk5YOdwAXA4289D3459DVwKoxhQMDAwOgoCq MYUDAwMDoKA9
0zhCqTNu2ugm3km4cYy277mMcc/kenNSiSRLySUiHYdqH94cgAtzjb7n8jzV wKoxhQMDAwOg
oCqMYUDAwMDoKA90rlLcSFzLJkNkjznxn6Zxjg+3B9KkL24YsdmQ2Scd8Yz+ QIz7H0qQKoxh
QMDAwOgoCqMYUDAwMDoKA90zch7q5GERDMjGRshjtxwBjkZVu/HJ+qTQtvYq 8fyzB8mVgD82
cbRwOh556EnnONMKoxhQMDAwOgoCqMYUDAwMDoKA90zyh88ljEirLklZWI65 +4RjPByexyeo
oKHzyWMSKsuSVlYjrn7hGM8HJ7HJ6itAKoxhQMDAwOgoCqMYUDAwMDoKA90o SxZuXfz1EZkV
mGT1G3t3/wBX1929OVIIBhLReUJvML7ju+/vxtx7EZz2J7Yq8FUYwoGBgYHQ UBVGMKBgYGB0
FAe6U4WMV3cOwhCyScsHO4ALgcbeeh78c+hqKZH2GNTAVjn80M7HOd+7HTju M89D740QqjGF
AwMDA6CgKoxhQMDAwOgoD3TPMX+kTzM6AiUMq+YxVsDGGGMfw5zzgj/ZpBCq TNu2ugm3km4c
Yy277mMcc/kenNaIVRjCgYGBgdBQFUYwoGBgYHQUB7pTEkiXkkpEOw7UP7w5 ABbnG33P5Hmr
Be3DFjsyGyTjvjGfyBGfY+lSBVGMKBgYGB0FAVRjCgYGBgdBQHuleJ0WSaWV gGLbcZ6KM4/9
mPtkjtSHa83mTSqBG2FVCQRz3PccdOnBznGRZCqMYUDAwMDoKAqjGFAwMDA6 CgPdHUUUUEhR
RRQA1/umo/8AP+f8/wD15H+6aj/z/n/P/wBcAa/3T/n/AD/n8a5gjJJweefv GrD/AHT/AJ/z
/n8Y6Q02titdAKIwOgBA/Sii76p+P9KKAJ4/un/eP86dTY/un/eP86dQBcoo opiCoPJaOYyR
MCHPzq+SevY9up46fTk1I8scbKrMAznCr3P0FI8u2aOMDJfJPPQDv+ZA/GgB sKN5kssgwzna
B6KM4/qfxx2qH7PN9s+0Yj+/jZuONuMbun3+30496sefD/z1j+/s+8Pven19 qRrmBZfKaeMS
ZA2FxnJ6cUAVvsszT5KRqvmbsrKxGM5+4RjJ9fXnrSS2s5Ty0WFlWbzlZick 792OnHUjPP05
4sS3cUThNwZ9yqVVhlckAEjPTkfnUvmJ5nl71343bc849cUAR+W/2zzNkWzy 9u7Hz5z0z6f1
qv8AZZmnyUjVfM3ZWViMZz9wjGT6+vPWrRnhEhjMse8Yyu4ZGcY4/EfnR58P neT5sfm/3Nw3
evSgCotk6zcoHTzTJkzuOrbvuYxx+uKZcxSxRqpjV41uBIGVWZuX3HgDjAJ5 z296vLPC67kl
jYcchgepwP14oE8LOEEsZYkrtDDOR1H4UAVp7actJ5XllXlSX5iQcrt+Xp/s 9fwx3pq2TrNy
gdPNMmTO46tu+5jHH64q2ZQLhYSrZZC4bjHBAI/UUefD53k+bH5v9zcN3r0o AqPbTlp2WOHd
JMjglyCVXHB+X/Z/U/jIsEisIzHC8YlMgdiSQSxPC4684zn39qn8+H/nrH9/ Z94fe9Pr7VA9
8Ucp9kuGIDEYC/MFOCQM57j60ARrZOs3KB080yZM7jq277mMcfrirHktJMJJ WACH5FTIPXue
/QcdPrwaVru2XduuIhtO1suOD6H8j+VOE8LOEEsZYkrtDDOR1H4UASUVH58P neT5sfm/3Nw3
evSlSWORmVWBZDhl7j6igB9FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUANf7pqP/P8An/P/ ANeR/umo/wDP
+f8AP/1wBr/dP+f8/wCfxjqR/un/AD/n/P4x0hla76p+P9KKLvqn4/0ooETx /dP+8f506mx/
dP8AvH+dOoGXKKKY8scbKrMAznCr3P0FMRH5LRzGSJgQ5+dXyT17Ht1PHT6c mlhRvMllkGGc
7QPRRnH9T+OO1OeXbNHGBkvknnoB3/MgfjR58P8Az1j+/s+8Pven19qAK/2e b7Z9oxH9/Gzc
cbcY3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561Za5gWXymnjEmQNhc ZyenFNlu4onC
bgz7lUqrDK5IAJGenI/OgCvLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/bP M2RbPL27sfPn
PTPp/WpPMTzPL3rvxu255x64pvnw+d5Pmx+b/c3Dd69KAIFgkVhGY4XjEpkD sSSCWJ4XHXnG
c+/tSfZ5seTiPyvN8zfuO77+/G3H4dff2qwZQLhYSrZZC4bjHBAI/UUefD53 k+bH5v8Ac3Dd
69KAM9tPmdGzHAGYTDIYnBfoen4fT8qekbzXdyBEFQzIxkYEEhQvA45GVPfv +d1Z4XXcksbD
jkMD1OB+vFHnw+d5Pmx+b/c3Dd69KAInSc3qSKkZjVSuS5BwSpJxj29ahWyd ZuUDp5pkyZ3H
Vt33MY4/XFWxPCzhBLGWJK7QwzkdR+FNS7t3maFZozIp2lN3OfpQBD9nm+2f aMR/fxs3HG3G
N3T7/b6ce9SvHIb2KQBPLVGUksc5JB6Y/wBn171IkscjMqsCyHDL3H1FPoAp NHvvzGA/lkiW
TKHBZcY59/lPH9z3NRpG813cgRBUMyMZGBBIULwOORlT37/no0UAUFsnWblA 6eaZMmdx1bd9
zGOP1xVjyWkmEkrABD8ipkHr3PfoOOn14NT0UAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UANf7pqP/P8A
n/P/ANeR/umo/wDP+f8AP/1wBr/dP+f8/wCfxjqR/un/AD/n/P4x0hla76p+ P9KKLvqn4/0o
oETx/dP+8f506mx/dP8AvH+dOoGXKg8lo5jJEwIc/Or5J69j26njp9OTU9Me WONlVmAZzhV7
n6CmIZCjeZLLIMM52geijOP6n8cdqh+zzfbPtGI/v42bjjbjG7p9/t9OPerH nw/89Y/v7PvD
73p9faka5gWXymnjEmQNhcZyenFAFb7LM0+Skar5m7KysRjOfuEYyfX1560k trOU8tFhZVm8
5WYnJO/djpx1Izz9OeLEt3FE4TcGfcqlVYZXJABIz05H51L5ieZ5e9d+N23P OPXFAEflv9s8
zZFs8vbux8+c9M+n9arLZOs3KB080yZM7jq277mMcfrirfnw+d5Pmx+b/c3D d69KDKBcLCVb
LIXDcY4IBH6igCJ0nN6kipGY1UrkuQcEqScY9vWoVsnWblA6eaZMmdx1bd9z GOP1xVvz4fO8
nzY/N/ubhu9elCzwuu5JY2HHIYHqcD9eKAM9tPmdGzHAGYTDIYnBfoen4fT8 qlWydZuUDp5p
kyZ3HVt33MY4/XFW/Ph87yfNj83+5uG716UCeFnCCWMsSV2hhnI6j8KAKj20 5adljh3STI4J
cglVxwfl/wBn9T+M6xzR3EhTyykjhyxJyOAMY79Oue/ty5Lu3eZoVmjMinaU 3c5+lTUAQeS0
kwklYAIfkVMg9e579Bx0+vBqeoxPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3 Dd69KAJKKjWe
F13JLGw45DA9TgfrxR58PneT5sfm/wBzcN3r0oAkoqH7XbeZ5f2iLfnbt3jO fTFRvfItwYfK
lJEix5C8ZIz+g60AWqKjE8LOEEsZYkrtDDOR1H4UefD53k+bH5v9zcN3r0oA koqJrmBZfKae
MSZA2FxnJ6cUNcwLL5TTxiTIGwuM5PTigCWioWu7Zd264iG07Wy44PofyP5U 7z4fO8nzY/N/
ubhu9elAElFRfaYAwXz49xbYBvGS3p9eRTZbuKJwm4M+5VKqwyuSACRnpyPz oAnoqsLweayN
DIqo4jLnbjJxjvnnI7d6l8+HzvJ82Pzf7m4bvXpQBJRVV9Qt1uFgV1dycEB1 +U5x3P6DJoe+
Rbgw+VKSJFjyF4yRn9B1oAtUUVCl3bvM0KzRmRTtKbuc/SgCaioWu7Zd264i G07Wy44PofyP
5U4Tws4QSxliSu0MM5HUfhQBJRUfnw+d5Pmx+b/c3Dd69Kb9rtvM8v7RFvzt 27xnPpigCaiq
r3yLcGHypSRIseQvGSM/oOtTefD/AM9Y/v7PvD73p9fagCSiomuYFl8pp4xJ kDYXGcnpxTZb
uKJwm4M+5VKqwyuSACRnpyPzoAnopvmJ5nl71343bc849cUxrmBZfKaeMSZA 2FxnJ6cUAS0V
Cl3bvM0KzRmRTtKbuc/Sl+0wBgvnx7i2wDeMlvT68igCWioxPGZzCGUuBkgM Mjp1HXvQJ4Wc
IJYyxJXaGGcjqPwoAkoqJ7mBGZXnjVkGWBcAge/5j86ie+Rbgw+VKSJFjyF4 yRn9B1oAtUVG
8u2aOMDJfJPPQDv+ZA/GlSWORmVWBZDhl7j6igB9FFFABRRRQA1/umo/8/5/ z/8AXkf7pqP/
AD/n/P8A9cAa/wB0/wCf8/5/GOpH+6f8/wCf8/jHSGVrvqn4/wBKKLvqn4/0 ooETx/dP+8f5
06mx/dP+8f506gZcqDyWjmMkTAhz86vknr2PbqeOn05NT0x5Y42VWYBnOFXu foKYit9nm+2f
aMR/fxs3HG3GN3T7/b6ce9N+yzNPkpGq+ZuysrEYzn7hGMn19eetWvPh/wCe sf39n3h970+v
tSNcwLL5TTxiTIGwuM5PTigCrLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/ AGzzNkWzy9u7
Hz5z0z6f1pJbuKJwm4M+5VKqwyuSACRnpyPzqXzE8zy9678btueceuKAKS2T rNygdPNMmTO4
6tu+5jHH64qZ0nN6kipGY1UrkuQcEqScY9vWpfPh87yfNj83+5uG716UGUC4 WEq2WQuG4xwQ
CP1FAFRbJ1m5QOnmmTJncdW3fcxjj9cVE2nzOjZjgDMJhkMTgv0PT8Pp+VaH nw+d5Pmx+b/c
3Dd69KFnhddySxsOOQwPU4H68UAVFsnWblA6eaZMmdx1bd9zGOP1xQ9tOWnZ Y4d0kyOCXIJV
ccH5f9n9T+Nvz4fO8nzY/N/ubhu9elAnhZwgljLEldoYZyOo/CgCNY5o7iQp 5ZSRw5Yk5HAG
Md+nXPf25sVCl3bvM0KzRmRTtKbuc/SpqAKD205adljh3STI4JcglVxwfl/2 f1P4tlspy5Kb
OJRICZWAb5s42jgfXnOM9TxdE8LOEEsZYkrtDDOR1H4UefD53k+bH5v9zcN3 r0oAz20+Z0bM
cAZhMMhicF+h6fh9PyqVbJ1m5QOnmmTJncdW3fcxjj9cVbWeF13JLGw45DA9 TgfrxR58PneT
5sfm/wBzcN3r0oAb9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd8Yz+XFR/a7b zPL+0Rb87du8
Zz6YqN75FuDD5UpIkWPIXjJGf0HWgCBI3mu7kCIKhmRjIwIJCheBxyMqe/f8 yWynLkps4lEg
JlYBvmzjaOB9ec4z1PF3z4f+esf39n3h970+vtSNcwLL5TTxiTIGwuM5PTig Ct9lmafJSNV8
zdlZWIxnP3CMZPr689aPsszT5KRqvmbsrKxGM5+4RjJ9fXnrVrz4fO8nzY/N /ubhu9elJ9pg
DBfPj3FtgG8ZLen15FAFeSzke5LiQCNnVyOeo29v+Af+PH05X7PNjycR+V5v mb9x3ff3424/
Dr7+1WBPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3Dd69KAIYIpo7udzHFtlf O4Od2AoAGMe3
r3qKW1nKeWiwsqzecrMTknfux046kZ5+nPFtZ4XXcksbDjkMD1OB+vFHnw+d 5Pmx+b/c3Dd6
9KAKv2SU3E0x25MgdF8xirYAGGGMDpnPODj05RbJ1m5QOnmmTJncdW3fcxjj 9cVMLweayNDI
qo4jLnbjJxjvnnI7d6l8+HzvJ82Pzf7m4bvXpQBCqXIvHl8uLYwVP9YcgAnn G336VY8tN27Y
uc7s474xn8uKrvqFutwsCuruTggOvynOO5/QZND3yLcGHypSRIseQvGSM/oO tAFqq6xzR3Eh
TyykjhyxJyOAMY79Oue/tzYqFLu3eZoVmjMinaU3c5+lAEDR778xgP5ZIlky hwWXGOff5Tx/
c9zUaRvNd3IEQVDMjGRgQSFC8DjkZU9+/wCdtru2XduuIhtO1suOD6H8j+VO E8LOEEsZYkrt
DDOR1H4UAVFsnWblA6eaZMmdx1bd9zGOP1xVn7NH5m/dLnOcec+Pyzj8Kd58 PneT5sfm/wBz
cN3r0pv2u28zy/tEW/O3bvGc+mKAJPLTdu2LnO7OO+MZ/Liqv2eb7Z9oxH9/ GzccbcY3dPv9
vpx70575FuDD5UpIkWPIXjJGf0HWpvPh/wCesf39n3h970+vtQBV+yzNPkpG q+ZuysrEYzn7
hGMn19eetJLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tni01zAsvlNPGJMgbC4zk9 OKbLdxROE3Bn
3KpVWGVyQASM9OR+dAC+W/2zzNkWzy9u7Hz5z0z6f1qv9lmafJSNV8zdlZWI xnP3CMZPr689
aueYnmeXvXfjdtzzj1xTGuYFl8pp4xJkDYXGcnpxQAxY5o7iQp5ZSRw5Yk5H AGMd+nXPf25b
BFNHdzuY4tsr53BzuwFAAxj29e9SJd27zNCs0ZkU7Sm7nP0pftMAYL58e4ts A3jJb0+vIoAj
dJzepIqRmNVK5LkHBKknGPb1qF7actOyxw7pJkcEuQSq44Py/wCz+p/G2J4z OYQylwMkBhkd
Oo696BPCzhBLGWJK7QwzkdR+FAFCVJPMW2EYYLOJQ5Ru77jzjAwCecnpjHNa Plpu3bFzndnH
fGM/lxTHuYEZleeNWQZYFwCB7/mPzqJ75FuDD5UpIkWPIXjJGf0HWgCSFG8y WWQYZztA9FGc
f1P447UnktJMJJWACH5FTIPXue/QcdPrwae8u2aOMDJfJPPQDv8AmQPxpUlj kZlVgWQ4Ze4+
ooAfRRRQAUUUUANf7pqP/P8An/P/ANeR/umo/wDP+f8AP/1wBr/dP+f8/wCf xjqR/un/AD/n
/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/dP8AvH+dOoGXKg8lo5jJ EwIc/Or5J69j
26njp9OTUjyxxsqswDOcKvc/QUjy7Zo4wMl8k89AO/5kD8aYiv8AZ5vtn2jE f38bNxxtxjd0
+/2+nHvTfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVrz4f8AnrH9/Z94fe9Pr7Uj XMCy+U08YkyB
sLjOT04oAqy2s5Ty0WFlWbzlZick792OnHUjPP054s+W/wBs8zZFs8vbux8+ c9M+n9aSW7ii
cJuDPuVSqsMrkgAkZ6cj86l8xPM8veu/G7bnnHrigCktk6zcoHTzTJkzuOrb vuYxx+uKmdJz
epIqRmNVK5LkHBKknGPb1qRrmBZfKaeMSZA2FxnJ6cUpnhEhjMse8Yyu4ZGc Y4/EfnQBUWyd
ZuUDp5pkyZ3HVt33MY4/XFRNp8zo2Y4AzCYZDE4L9D0/D6flV6O5jeVoydjq 5QKxGWwAcjnn
ginefD53k+bH5v8Ac3Dd69KAKi2TrNygdPNMmTO46tu+5jHH64oe2nLTsscO 6SZHBLkEquOD
8v8As/qfxtrPC67kljYcchgepwP14o8+HzvJ82Pzf7m4bvXpQBGsc0dxIU8s pI4csScjgDGO
/Trnv7c2KYkscjMqsCyHDL3H1FPoAoPbTlp2WOHdJMjglyCVXHB+X/Z/U/i2 WynLkps4lEgJ
lYBvmzjaOB9ec4z1PGjRQBltp8zo2Y4AzCYZDE4L9D0/D6flUq2TrNygdPNM mTO46tu+5jHH
64q/RQBD9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd8Yz+XFOooApT205aTyv LKvKkvzEg5Xb
8vT/AGev4Y70n2WZp8lI1XzN2VlYjGc/cIxk+vrz1q9RQBQWydZuUDp5pkyZ 3HVt33MY4/XF
SwRTR3c7mOLbK+dwc7sBQAMY9vXvVqigCg9tOWnZY4d0kyOCXIJVccH5f9n9 T+LZbKcuSmzi
USAmVgG+bONo4H15zjPU8aNFAGW2nzOjZjgDMJhkMTgv0PT8Pp+VSrZOs3KB 080yZM7jq277
mMcfrir9FAFH7JKbiaY7cmQOi+YxVsADDDGB0znnBx6cotk6zcoHTzTJkzuO rbvuYxx+uKv0
UAVVS5F48vlxbGCp/rDkAE842+/SrHlpu3bFzndnHfGM/lxTqKACq6xzR3Eh TyykjhyxJyOA
MY79Oue/tzYooApNHvvzGA/lkiWTKHBZcY59/lPH9z3NRpG813cgRBUMyMZG BBIULwOORlT3
7/no0UAUFsnWblA6eaZMmdx1bd9zGOP1xVn7NH5m/dLnOcec+Pyzj8KmooAb 5abt2xc53Zx3
xjP5cVV+zzfbPtGI/v42bjjbjG7p9/t9OPerlFAFH7LM0+Skar5m7KysRjOf uEYyfX1560kt
rOU8tFhZVm85WYnJO/djpx1Izz9OeL9FAEPlv9s8zZFs8vbux8+c9M+n9ar/ AGWZp8lI1XzN
2VlYjGc/cIxk+vrz1q9RQBXWOaO4kKeWUkcOWJORwBjHfp1z39uWwRTR3c7m OLbK+dwc7sBQ
AMY9vXvVqigCs6Tm9SRUjMaqVyXIOCVJOMe3rUL205adljh3STI4JcglVxwf l/2f1P436KAM
yVJPMW2EYYLOJQ5Ru77jzjAwCecnpjHNaPlpu3bFzndnHfGM/lxTqKAIYUbz JZZBhnO0D0UZ
x/U/jjtSeS0kwklYAIfkVMg9e579Bx0+vBqeigAooooAKKKKAGv901H/AJ/z /n/68j/dNR/5
/wA/5/8ArgDX+6f8/wCf8/jHUj/dP+f8/wCfxjpDK131T8f6UUXfVPx/pRQI nj+6f94/zp1N
j+6f94/zp1AyXyWjmMkTAhz86vknr2PbqeOn05NLCjeZLLIMM52geijOP6n8 cdqmopiKf2eb
7Z9oxH9/GzccbcY3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561eooAo S2s5Ty0WFlWb
zlZick792OnHUjPP054s+W/2zzNkWzy9u7Hz5z0z6f1qaigCj9lmafJSNV8z dlZWIxnP3CMZ
Pr689aesEisIzHC8YlMgdiSQSxPC4684zn39qt0UAUHtpy07LHDukmRwS5BK rjg/L/s/qfxF
snWblA6eaZMmdx1bd9zGOP1xV+igDLbT5nRsxwBmEwyGJwX6Hp+H0/Kny2U5 clNnEokBMrAN
82cbRwPrznGep40aKAIPJaSYSSsAEPyKmQevc9+g46fXg1PRRQAUUUUAFFFF ABRRRQAUUUUA
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRR
RQAUUUUAFFFFABRRRQA1/umo/wDP+f8AP/15H+6aj/z/AJ/z/wDXAGv90/5/ z/n8Y6kf7p/z
/n/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/dP+8f506gZcooopiCi iigAooooAKKK
KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigA
ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAGv 93HqRVUzIDhi
oPu3/wBerUhAXJOACMk/WqDGBnVmKHb70AE0hM8ABwrE5wevBqWq8zh7qAhg xy2cH2NWKQyt
d9U/H+lFF31T8f6UUCJ4/un/AHj/ADp1Nj+6f94/zp1Ax7y7BkngAEkk1Bdz uLN3QlSVyCCc
jNLMYnyrOvQd+nFQ3bp9jdVdSQgHX0oEaGT6n/P+f89zJ9T/AJ/z/nun+f8A P+f/AK5/n/P+
f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuALk+p/wA/5/z3 Mn1P+f8AP+e6
f5/z/n/65/n/AD/n/wCuALk+p/z/AJ/z3Mn1P+f8/wCe6f5/z/n/AOuf5/z/ AJ/+uALk+p/z
/n/PcyfU/wCf8/57p/n/AD/n/wCuf5/z/n/64AuT6n/P+f8APcyfU/5/z/nu n+f8/wCf/rn+
f8/5/wDrgC5Pqf8AP+f89zJ9T/n/AD/nun+f8/5/+uf5/wA/5/8ArgC5Pqf8 /wCf89zJ9T/n
/P8Anun+f8/5/wDrn+f8/wCf/rgC5Pqf8/5/z3Mn1P8An/P+e6f5/wA/5/8A rn+f8/5/+uAL
k+p/z/n/AD3Mn1P+f8/57p/n/P8An/65/n/P+f8A64AuT6n/AD/n/PcyfU/5 /wA/57p/n/P+
f/rn+f8AP+f/AK4AuT6n/P8An/PcyfU/5/z/AJ7p/n/P+f8A65/n/P8An/64 AuT6n/P+f89z
J9T/AJ/z/nun+f8AP+f/AK5/n/P+f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/ AJ/+uf5/z/n/
AOuALk+p/wA/5/z3Mn1P+f8AP+e6f5/z/n/65/n/AD/n/wCuALk+p/z/AJ/z 3Mn1P+f8/wCe
6f5/z/n/AOuf5/z/AJ/+uALk+p/z/n/PcyfU/wCf8/57p/n/AD/n/wCuf5/z /n/64AuT6n/P
+f8APcyfU/5/z/nun+f8/wCf/rn+f8/5/wDrgC5Pqf8AP+f89zJ9T/n/AD/n un+f8/5/+uf5
/wA/5/8ArgC5Pqf8/wCf89zJ9T/n/P8Anun+f8/5/wDrn+f8/wCf/rgC5Pqf 8/5/z3Mn1P8A
n/P+e6f5/wA/5/8Arn+f8/5/+uALk+p/z/n/AD3Mn1P+f8/57p/n/P8An/65 /n/P+f8A64Au
T6n/AD/n/PcyfU/5/wA/57p/n/P+f/rn+f8AP+f/AK4AuT6n/P8An/PcyfU/ 5/z/AJ7p/n/P
+f8A65/n/P8An/64AuT6n/P+f89zJ9T/AJ/z/nun+f8AP+f/AK5/n/P+f/rg C5Pqf8/5/wA9
zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuAGTxyeo7/AOf8/rE0+1lU8FunJ/xq QkDknABySf8A
P+f51SYXdWdlIXoM8E0AFy5eWGNuUYncp5B4pfs8H/PGP/vkVHK6tdW+1geW 6fQ1YoGMWGJG
DLEikdwoFPoooArXfVPx/pRRd9U/H+lFAidFXYCQckn+Ijufel2r/dP/AH03 +NRThTaEO4Rc
nLN0+8eD7dqqxyKgCLJHBDlv3sQCq5+XGM5Hc/8AfNAy39ktv+fdP1/xo+yW 3/Pun6/41VW7
cIBKwSZnjwh4ODtzgH3LUJNJ5Fu01x5YkTcZMKMHAwOeO5P4fhQIv4Hof++2 /wAaaVzJjLAb
Qcbz6n3qpDNM14VZ0xuYGPPIAzg4xkduScc+4q1MAQ4Zyg8vlgc


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: A Diagnostic Message for the Valid Schema [message #569672 is a reply to message #20058] Sun, 04 May 2003 11:13 Go to previous message
Ed Merks is currently offline Ed MerksFriend
Messages: 33142
Registered: July 2009
Senior Member
--------------3A1C5D50D2378940A4524F08
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Pae,

You have to use the org.eclipse.xsd.util.XSDParser to construct your DOM
if you want line numbers.

Pae Choi wrote:

> Ed, When I tried to get the line information by using the getLine()
> method in theXSDDiagnostic interface. It seems like returning 1 unlike
> line 7 and line 8shown in the screen capture in your privious
> message. How should we do to get the line number? Thank
> you. Regards, Pae
>
> "Ed Merks" <merks@ca.ibm.com> wrote in message
> news:3EB25ED9.AE2CB299@ca.ibm.com...Pae,
>
> I'm seeing this result with the just published 1.1.0 driver:
>
> [Image]
>
> The schema isn't valid.
>
>
> Pae Choi wrote:
>
> > I have a simple test schema as follows:
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <!--W3C Schema generated by Pae -->
> > <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > elementFormDefault="qualified">
> > <xsd:element name="CommonLogin">
> > <xsd:complexType>
> > <xsd:sequence>
> > <xsd:element name="username" ref="usernameRef"/>
> > <xsd:element name="password" ref="passwordRef"/>
> > </xsd:sequence>
> > </xsd:complexType>
> > </xsd:element>
> > <xsd:element name="passwordRef" type="xsd:string"/>
> > <xsd:element name="usernameRef" type="xsd:string"/>
> > </xsd:schema>
> >
> > This is a very simple sample, but it is a valid schema.
> > But when
> > I use the validate() and getDiagnostics() methods in the
> > XSDSchema
> > interface it gives me a message as follows:
> >
> > XSD: The element '#null' is not permitted as constrained
> > by 'XML Schema ';
> > expecting schema
> >
> > I do not understand what the message is saying. Any
> > comments?
> >
> > Pae
>

--------------3A1C5D50D2378940A4524F08
Content-Type: multipart/related;
boundary="------------CBDBA64989AC3158CF9910D2"


--------------CBDBA64989AC3158CF9910D2
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<body bgcolor="#FFFFFF">
Pae,
<p>You have to use the org.eclipse.xsd.util.XSDParser to construct your
DOM if you want line numbers.
<p>Pae Choi wrote:
<blockquote TYPE=CITE><style></style>
<font size=-1>Ed,</font>&nbsp;<font size=-1>When
I tried to get the line information by using the getLine() method in the</font><font size=-1>XSDDiagnostic
interface. It seems like returning 1 unlike line 7 and line 8</font><font size=-1>shown
in the screen capture&nbsp; in your privious message.</font>&nbsp;<font size=-1>How
should we do to get the line number? Thank you.</font>&nbsp;<font size=-1>Regards,</font>&nbsp;&nbsp;<font size=-1>Pae</font>&nbsp;&nbsp;
<blockquote dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed
Merks" &lt;<a href="mailto:merks@ca.ibm.com">merks@ca.ibm.com</a>> wrote
in message <a href="news:3EB25ED9.AE2CB299@ca.ibm.com">news:3EB25ED9.AE2CB299@ca.ibm.com</a>...Pae,
<p>I'm seeing this result with the just published 1.1.0 driver:
<blockquote><img SRC="cid:part1.3EB4F5F7.77F6A70E@ca.ibm.com" height=411 width=502></blockquote>
The schema isn't valid.
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE="CITE">I have a simple test schema as follows:
<p>&lt;?xml version="1.0" encoding="UTF-8"?>
<br>&lt;!--W3C Schema generated by Pae -->
<br>&lt;xsd:schema xmlns:xsd="<a href="http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchema</a>"
<br>elementFormDefault="qualified">
<br>&nbsp;&lt;xsd:element name="CommonLogin">
<br>&nbsp; &lt;xsd:complexType>
<br>&nbsp;&nbsp; &lt;xsd:sequence>
<br>&nbsp;&nbsp;&nbsp; &lt;xsd:element name="username" ref="usernameRef"/>
<br>&nbsp;&nbsp;&nbsp; &lt;xsd:element name="password" ref="passwordRef"/>
<br>&nbsp;&nbsp; &lt;/xsd:sequence>
<br>&nbsp; &lt;/xsd:complexType>
<br>&nbsp;&lt;/xsd:element>
<br>&nbsp;&lt;xsd:element name="passwordRef" type="xsd:string"/>
<br>&nbsp;&lt;xsd:element name="usernameRef" type="xsd:string"/>
<br>&lt;/xsd:schema>
<p>This is a very simple sample, but it is a valid schema. But when
<br>I use the validate() and getDiagnostics() methods in the XSDSchema
<br>interface it gives me a message as follows:
<p>XSD: The element '#null' is not permitted as constrained by 'XML Schema
';
<br>expecting schema
<p>I do not understand what the message is saying. Any comments?
<p>Pae</blockquote>
</blockquote>
</blockquote>

</body>
</html>

--------------CBDBA64989AC3158CF9910D2
Content-Type: image/jpeg
Content-ID: <part1.3EB4F5F7.77F6A70E@ca.ibm.com>
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\nsmailFJ.jpeg"

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCws MGJGSjpQdGZ6
eHJmcG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAq MF40NF7GhHCE
xsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbG xsbGxsb/wAAR
CAGbAfYDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcI CQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS 0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1 dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW 19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcI CQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMz UvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0 dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU 1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDXghR49zbiST/EfU0m23yQ BKcHHG81Ja/6
kf7zfzNVLrfsTY5wGkLRrJsZueoPt6e9NK4FpIYJEDIWKnoQ5/xpfs0Xo3/f Z/xqKy2bmMbM
UZEcZ75zzjt2qMXc+1kYBbgkbYvLyRnJ67sNwDzkdPXikBZ+zRejf99n/Gj7 NF6N/wB9n/Gq
a31w+eI027VYMuTuLsmeD2xnHPpnvS/bZyJnHlhYELMNpy5DODg54zs9+veg C39mi9G/77P+
NH2aL0b/AL7P+NUEup4hIkMQZY2kdycYwZH4yWGPu9ef8b883lxs6FW2H5l7 n2HvyMDv075o
APs0Xo3/AH2f8aPs0Xo3/fZ/xqFriZWhLGMRPt/eKpdSSeFGDx2+YjBz26Uy 3kkmuraaQptk
gZlVVIKglDgnPP6UATyQxIudrH/gZpm2L+43/fw1NP8AcH1rJvJZbecG2Jlk dSWhOSAAPvD0
/r9aQGhti/uN/wB/DTDGBI65bAPHzH0B/rUdntNurLMZt3zFyep+nb6VM/8A r5f94fyFAxvl
j1b/AL6NHlj1b/vo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+ jTqKAG+WPVv+
+jR5Y9W/76NOooAb5Y9W/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igB vlj1b/vo0eWP
Vv8Avo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPV v++jR5Y9W/76
NOooAb5Y9W/76NHlj1b/AL6NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/AL6N Hlj1b/vo06ig
Bvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+jTqKAG+WPVv++jR5Y9W/ 76NOooAb5Y9W
/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/vo0eWPVv8Avo06 igBvlj1b/vo0
eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPVv++jR5Y9W/76NOooAb5Y 9W/76NHlj1b/
AL6NOooAb5Y9W/76NHlj1b/vo06igCvOTEV2MRnOcnP86KS76p+P9KKBF+1/ 1I/3m/majktG
kBVmiZNxYK8W7Gfx96hREIJKqTuPUe9O8uP+4v5U7gWIYnR3d3DFgBwuMYz/ AI0otoBEYhBG
I2OSgQYJ+lNdbaNlVkjDOcKu0ZP0FMcwRyBWtvlyFMmwbQT0Hqeo6DHP1oAm WCFF2pFGo44C
gdDkfrzTPscBn84xIXwMZUfKQScj3yaT/Q/+mH39nb73p9fahfsbruTyGHHI wepwP14oAkaC
FipaKMlCWUlRwSckj8ad5abt2xc53Zx3xjP5cVCVgFwsJgXLIXDbRjggEfqK k8iH/nkn/fIo
ABBCJBIIo94zhtoyM5zz+J/OhIIY5GkSKNXbqwUAn8ah8yw8vzN9tszt3ZXG fTNO/wBD87yf
3Hm/3ON3r0oAklUsoAGeagFuVZmEYDN94jGT9adusgwXNvuLbAMrkt6fXkUM 1ksvlMbcSZA2
ErnJ6cUANW3KZ2RhdxycYGT60j/6+X/eH8hUgFqZzCEiLgZIG3I6dR170f6H 53k/uPN/ucbv
XpQBHRUg+xs4QeQWJK7RjOR1H4U3zLDzPL322/O3blc59MUrANoprz2y3Bh+ ysSJFjyIxjJG
f0HWpf8ARvtPkeSN+0tkx4GBjv369qLAMoqx5EP/ADyT/vkVX8y33f8AHt+7 37PM2rtznGOu
evHT9KLAFFNee2W4MP2ViRIseRGMZIz+g61a8iH/AJ5J/wB8iiwFeipP9D87 yf3Hm/3ON3r0
oH2NnCDyCxJXaMZyOo/CiwEdFSH7GJDGfI3jGV4yM4xx+I/Oj/Q/O8n9x5v9 zjd69KLAR0Us
slpE4TZGz7lUqu3K5IAJHpyPzp4FqZzCEiLgZIG3I6dR170WAjoqQfY2cIPI LEldoxnI6j8K
R2skZlc26sgywJUED3/MfnRYBlFO8yw8zy99tvzt25XOfTFRvPbLcGH7KxIk WPIjGMkZ/Qda
LAOoprzQr5n+hMfLkEZwqck4xjn3H5/WkeeJHKf2fKxAYjCJ8wU4JAznuPrR YB9FN86Hz2iF
kxKvtJCp7c4znHzDt3q15EP/ADyT/vkUWAr0UeZb7v8Aj2/d79nmbV25zjHX PXjp+lNee2W4
MP2ViRIseRGMZIz+g60WAdRTnMEcgVrb5chTJsG0E9B6nqOgxz9aei20jMqp GWQ4ZdoyPqKL
ARUVY8iH/nkn/fIo8iH/AJ5J/wB8iiwFeirHkQ/88k/75FHkQ/8APJP++RRY CvRVjyIf+eSf
98ijyIf+eSf98iiwFeirHkQ/88k/75FHkQ/88k/75FFgK9FWPIh/55J/3yKP Ih/55J/3yKLA
V6KseRD/AM8k/wC+RR5EP/PJP++RRYCvRVjyIf8Ankn/AHyKPIh/55J/3yKL AV6KseRD/wA8
k/75FHkQ/wDPJP8AvkUWAr0VY8iH/nkn/fIo8iH/AJ5J/wB8iiwFeipngh2/ 6pOo/hFQbYv+
eUfPtQMWioJlTz4FCKAScgDrxUb3FsjlWj5Bx90UWGouWiQ676p+P9KKLtFR lAUDrnAooJJ4
/un/AHj/ADp1Nj+6f94/zp1AyXyWjmMkTAhz86vknr2PbqeOn05NOeMyTLuA MSjP3urZ4yMd
vr+HQ055Y42VWYBnOFXufoKDIBMsWDuZSw9MAj/EUxFb7PN9s+0Yj+/jZuON uMbun3+30496
rtp8zo2Y4AzCYZDE4L9D0/D6flWpRQBWdJzepIqRmNVK5LkHBKknGPb1qzVV 70L5n7iU+XII
zjbyTjGOfcfn9akFwPOEbRyKGJVXIGGIycevY9scfSgCP7M/2rOV+z58zb33 /Tpjv67uaiWy
dZuUDp5pkyZ3HVt33MY4/XFWGufnwkMki7gpdAMA5x65474/oanoAqwRTR3c 7mOLbK+dwc7s
BQAMY9vXvUf2WZp8lI1XzN2VlYjGc/cIxk+vrz1qb7WC2FhlZd+wOqgjOcHv kY55Ixx9KkM8
IkMZlj3jGV3DIzjHH4j86AInSc3qSKkZjVSuS5BwSpJxj29aZ9nmx5OI/K83 zN+47vv78bcf
h19/apo7mN5WjJ2OrlArEZbAByOeeCKd58PneT5sfm/3Nw3evSgCo9tOWnZY 4d0kyOCXIJVc
cH5f9n9T+Nn7NH5m/dLnOcec+Pyzj8Kcs8LruSWNhxyGB6nA/Xijz4fO8nzY /N/ubhu9elAD
vLTdu2LnO7OO+MZ/LioHSc3qSKkZjVSuS5BwSpJxj29as1E9zAjMrzxqyDLA uAQPf8x+dAC/
vvtH/LPyNnvu3Z/LGKr/AGebHk4j8rzfM37ju+/vxtx+HX39qsefD53k+bH5 v9zcN3r0oE8L
OEEsZYkrtDDOR1H4UAO8tN27Yuc7s474xn8uKdUfnw+d5Pmx+b/c3Dd69KT7 TAGC+fHuLbAN
4yW9PryKAKq2TrNygdPNMmTO46tu+5jHH64oe2nLTsscO6SZHBLkEquOD8v+ z+p/G358PneT
5sfm/wBzcN3r0pqXdu8zQrNGZFO0pu5z9KAIlgkVhGY4XjEpkDsSSCWJ4XHX nGc+/tSfZ5se
TiPyvN8zfuO77+/G3H4dff2qx58PneT5sfm/3Nw3evSmS3cUThNwZ9yqVVhl ckAEjPTkfnQB
XltZynlosLKs3nKzE5J37sdOOpGefpzxM6Tm9SRUjMaqVyXIOCVJOMe3rVmo IbuKXau4JIxI
EbMN3BIPAPsaAK7205adljh3STI4JcglVxwfl/2f1P4xypJ5i2wjDBZxKHKN 3fcecYGATzk9
MY5q613bLu3XEQ2na2XHB9D+R/KpqAIfs0fmb90uc5x5z4/LOPwqTy03bti5 zuzjvjGfy4qA
Xg81kaGRVRxGXO3GTjHfPOR271L58PneT5sfm/3Nw3evSgCB7aRpXA2eXJKk pYk5BXbxjHP3
eue/tUjxyG9ikATy1RlJLHOSQemP9n170/z4fO8nzY/N/ubhu9elSUAVYLYp eT3EkcYZz8rK
xJ24AweP9kH8fzk+zR+Zv3S5znHnPj8s4/CpqKAKP2N/P3bIs+Zv8/P7zGc7 enp8vXp+VXPL
Tdu2LnO7OO+MZ/LikSWORmVWBZDhl7j6in0ARPGZJl3AGJRn73Vs8ZGO31/D oab5LSTCSVgA
h+RUyD17nv0HHT68Gp6KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKAGyE
Bck4AIyT9az3EMjBmlOR0w4GKvyqrxlXUMD2IzVf7Lb/APPCL/vgf5/z+YBW lZWubfawOCe+
f4aZJYLJIz+cRuOcbP8A69WzbwqMrDGD6hR/n/P5t8uP+4v5UXsXCcoO8SG9 OXU+uaKbdKF2
BQAOen4UUiCxH90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51fJPXse3U8dPp yakKAzK+0ZVS
N2eRkjjH4fpQ8scbKrMAznCr3P0FJ58P/PWP7+z7w+96fX2piG/Zo/M37pc5 zjznx+WcfhR9
mj8zfulznOPOfH5Zx+FK1zAsvlNPGJMgbC4zk9OKbLdxROE3Bn3KpVWGVyQA SM9OR+dAEEti
73ZlDrtLhj6/wH/2mP8Avo+nMphka7WRljUIT8653MuDhSMdOc9eo6ek/mJ5 nl71343bc849
cUxrmBZfKaeMSZA2FxnJ6cUAMSOaJikflmIuX3MTuGTkjHfqecjr3xzYqMzw iQxmWPeMZXcM
jOMcfiPzpsdzG8rRk7HVygViMtgA5HPPBFAEDWsjz+Y0durbw3nICHCg8Dpz kDB5HXp6uWCR
WEZjheMSmQOxJIJYnhcdecZz7+1T+fD53k+bH5v9zcN3r0oWeF13JLGw45DA 9TgfrxQBUe2n
LTsscO6SZHBLkEquOD8v+z+p/EWydZuUDp5pkyZ3HVt33MY4/XFW/Ph87yfN j83+5uG716VJ
QBltp8zo2Y4AzCYZDE4L9D0/D6flT5bKcuSmziUSAmVgG+bONo4H15zjPU8X fPh/56x/f2fe
H3vT6+1Czwuu5JY2HHIYHqcD9eKAJKzJUk8xbYRhgs4lDlG7vuPOMDAJ5yem Mc1fMoFwsJVs
shcNxjggEfqKBPCzhBLGWJK7QwzkdR+FAFRbJ1m5QOnmmTJncdW3fcxjj9cU PbTlp2WOHdJM
jglyCVXHB+X/AGf1P42muYFl8pp4xJkDYXGcnpxT/MTzPL3rvxu255x64oAp LZOs3KB080yZ
M7jq277mMcfripYIpo7udzHFtlfO4Od2AoAGMe3r3qbz4f8AnrH9/Z94fe9P r7UjXMCy+U08
YkyBsLjOT04oApy2U5clNnEokBMrAN82cbRwPrznGep4srHNHcSFPLKSOHLE nI4Axjv0657+
3Ky3cUThNwZ9yqVVhlckAEjPTkfnS/a7bzPL+0Rb87du8Zz6YoArLZOs3KB0 80yZM7jq277m
McfriiW1nKeWiwsqzecrMTknfux046kZ5+nPEr3yLcGHypSRIseQvGSM/oOt SR3MbytGTsdX
KBWIy2ADkc88EUATVQitZwnlusKq03nMyk5B37sdOegGePpxzZS7t3maFZoz Ip2lN3OfpQl3
bvM0KzRmRTtKbuc/SgCBo99+YwH8skSyZQ4LLjHPv8p4/ue5q7UYnhZwgljL EldoYZyOo/Cn
eYnmeXvXfjdtzzj1xQBWitT9qmlmUYZwyASMRwAOV6Z4z3/SoZbKcuSmziUS AmVgG+bONo4H
15zjPU8XXl2zRxgZL5J56Ad/zIH40PLtmjjAyXyTz0A7/mQPxoAqLZOs3KB0 80yZM7jq277m
Mcfrir9Qtd2y7t1xENp2tlxwfQ/kfyoa7tl3briIbTtbLjg+h/I/lQAfZo/M 37pc5zjznx+W
cfhR9mj8zfulznOPOfH5Zx+FDXdsu7dcRDadrZccH0P5H8qmoAg8lpJhJKwA Q/IqZB69z36D
jp9eDU9Qtd2y7t1xENp2tlxwfQ/kfyoFwPOEbRyKGJVXIGGIycevY9scfSgC aiio/Ph87yfN
j83+5uG716UASUVF9pgDBfPj3FtgG8ZLen15FD3MCMyvPGrIMsC4BA9/zH50 AS0VG8u2aOMD
JfJPPQDv+ZA/Gmi4HnCNo5FDEqrkDDEZOPXse2OPpQBNRVf7Wu7/AFcnl79n mcbc5xjrnrx0
/Sj7Wu7/AFcnl79nmcbc5xjrnrx0/SgCxRUX2hPtPkYfftLZKkDAx379e1K8 u2aOMDJfJPPQ
Dv8AmQPxoAkoqq96Edk8iUsrhQo25bOcEc9OP5+hxHJqkUczxGKUusix4G3k tkjHPtQBeoqK
GfzZJU8t18ptpLYwTjPGD6EfnTPtYLYWGVl37A6qCM5we+RjnkjHH0oAsUVG Z4RIYzLHvGMr
uGRnGOPxH502O5jeVoydjq5QKxGWwAcjnngigCaio/Ph87yfNj83+5uG716U LPC67kljYcch
gepwP14oAkoqPz4fO8nzY/N/ubhu9elQvfItwYfKlJEix5C8ZIz+g60AWH+6 aj/z/n/P/wBe
R/umo/8AP+f8/wD1wBr/AHT/AJ/z/n8Y6kf7p/z/AJ/z+MdIZWu+qfj/AEoo u+qfj/SigRPH
90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51fJPXse3U8dPpyai+zzfbPtGI/ v42bjjbjG7p9
/t9OPerHnw+d5Pmx+b/c3Dd69KDKBcLCVbLIXDcY4IBH6imIq/ZZmnyUjVfM 3ZWViMZz9wjG
T6+vPWkltZynlosLKs3nKzE5J37sdOOpGefpzxb8+HzvJ82Pzf7m4bvXpQs8 LruSWNhxyGB6
nA/XigBvlv8AbPM2RbPL27sfPnPTPp/Wq/2WZp8lI1XzN2VlYjGc/cIxk+vr z1q158PneT5s
fm/3Nw3evSgTws4QSxliSu0MM5HUfhQBAsEisIzHC8YlMgdiSQSxPC4684zn 39qje2nLTssc
O6SZHBLkEquOD8v+z+p/Gyl3bvM0KzRmRTtKbuc/So/to89ohBKSr7SRt9uc Zzj5h270ARLZ
Os3KB080yZM7jq277mMcfriom0+Z0bMcAZhMMhicF+h6fh9PyrQ8+HzvJ82P zf7m4bvXpSfa
YAwXz49xbYBvGS3p9eRQBTlspy5KbOJRICZWAb5s42jgfXnOM9Txo1Gs8Lru SWNhxyGB6nA/
Xio1u1MzxtHIgV9m9sbSeCBwe+R1+nXigCP7PN9s+0Yj+/jZuONuMbun3+30 496rtp8zo2Y4
AzCYZDE4L9D0/D6flWh58PneT5sfm/3Nw3evSoX1C3W4WBXV3JwQHX5TnHc/ oMmgBXSc3qSK
kZjVSuS5BwSpJxj29ahe2nLTsscO6SZHBLkEquOD8v8As/qfxt+fD53k+bH5 v9zcN3r0o8+H
/nrH9/Z94fe9Pr7UAVfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVjy3+2eZsi2eX t3Y+fOemfT+t
OMoFwsJVsshcNxjggEfqKal3bvM0KzRmRTtKbuc/SgCH7PN9s+0Yj+/jZuON uMbun3+30496
b9lmafJSNV8zdlZWIxnP3CMZPr689asfa7bzPL+0Rb87du8Zz6YqN75FuDD5 UpIkWPIXjJGf
0HWgCKW1nKeWiwsqzecrMTknfux046kZ5+nPFn7NH5m/dLnOcec+Pyzj8KV7 mBGZXnjVkGWB
cAge/wCY/Ol8+H/nrH9/Z94fe9Pr7UAO8tN27Yuc7s474xn8uKpPbTlp2WOH dJMjglyCVXHB
+X/Z/U/jb8+HzvJ82Pzf7m4bvXpQZQLhYSrZZC4bjHBAI/UUARrHNHcSFPLK SOHLEnI4Axjv
0657+3Isc0dxIU8spI4csScjgDGO/Trnv7cyCeMzmEMpcDJAYZHTqOveoX1C 3W4WBXV3JwQH
X5TnHc/oMmgCBI3mu7kCIKhmRjIwIJCheBxyMqe/f87flv8AbPM2RbPL27sf PnPTPp/WnCeM
zmEMpcDJAYZHTqOvejz4fO8nzY/N/ubhu9elADYUbzJZZBhnO0D0UZx/U/jj tRCjeZLLIMM5
2geijOP6n8cdqSW7iicJuDPuVSqsMrkgAkZ6cj86Y98i3Bh8qUkSLHkLxkjP 6DrQAySzke5L
iQCNnVyOeo29v+Af+PH05JLOR7kuJAI2dXI56jb2/wCAf+PH05tJLHIzKrAs hwy9x9RT6AKU
lnI9yXEgEbOrkc9Rt7f8A/8AHj6c2f332j/ln5Gz33bs/ljFSUUAUpLOR7ku JAI2dXI56jb2
/wCAf+PH05kMMjXayMsahCfnXO5lwcKRjpznr1HT0s0UAR/vvtH/ACz8jZ77 t2fyxiq/2ebH
k4j8rzfM37ju+/vxtx+HX39quUUAVYIpo7udzHFtlfO4Od2AoAGMe3r3qtKk nmLbCMMFnEoc
o3d9x5xgYBPOT0xjmtOigCGFG8yWWQYZztA9FGcf1P447VGiXP2ou6xFckbt 5JCdgBjjtnn+
mLVFAFP7PNjycR+V5vmb9x3ff3424/Dr7+1H2ebHk4j8rzfM37ju+/vxtx+H X39quUUAVnSc
3qSKkZjVSuS5BwSpJxj29afCjeZLLIMM52geijOP6n8cdqmooApyR3ZnMqiL KnagLnGw9c/L
1OB+Q98xy2k7SSyBIixlV0JkI+Ubcg8d9g/P89CigCmI7tZpSgiCySq+7ech RtBGNvcD170j
Wsjz+Y0durbw3nICHCg8DpzkDB5HXp63aKAKiwSKwjMcLxiUyB2JJBLE8Ljr zjOff2qN7act
Oyxw7pJkcEuQSq44Py/7P6n8b9FAFBbJ1m5QOnmmTJncdW3fcxjj9cVE2nzO jZjgDMJhkMTg
v0PT8Pp+ValFAGdLZTlyU2cSiQEysA3zZxtHA+vOcZ6ni/5abt2xc53Zx3xj P5cU6igBr/dN
R/5/z/n/AOvI/wB01H/n/P8An/64A1/un/P+f8/jHUj/AHT/AJ/z/n8Y6Qyt d9U/H+lFF31T
8f6UUCJ4/un/AHj/ADp1Nj+6f94/zp1Axi2TrNygdPNMmTO46tu+5jHH64qZ 0nN6kipGY1Ur
kuQcEqScY9vWrNMeWONlVmAZzhV7n6CmIprZOs3KB080yZM7jq277mMcfrio m0+Z0bMcAZhM
MhicF+h6fh9PyrQ8+H/nrH9/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oAqrZO s3KB080yZM7j
q277mMcfrih7actOyxw7pJkcEuQSq44Py/7P6n8bEt3FE4TcGfcqlVYZXJAB Iz05H51L5ieZ
5e9d+N23POPXFAEKxzR3EhTyykjhyxJyOAMY79Oue/ty2C2KXk9xJHGGc/Ky sSduAMHj/ZB/
H85vPh87yfNj83+5uG716UGUC4WEq2WQuG4xwQCP1FAFf7PNjycR+V5vmb9x 3ff3424/Dr7+
1Ogimju53McW2V87g53YCgAYx7evepvPh87yfNj83+5uG716ULPC67kljYcc hgepwP14oAz2
0+Z0bMcAZhMMhicF+h6fh9PyqwLeZppfMEaxPKsmVYlvl24GMcfdB/T3qx58 PneT5sfm/wBz
cN3r0oE8LOEEsZYkrtDDOR1H4UAVFsnWblA6eaZMmdx1bd9zGOP1xUqpci8e Xy4tjBU/1hyA
CecbffpUiXdu8zQrNGZFO0pu5z9KmoAzpbKcuSmziUSAmVgG+bONo4H15zjP U8ST205aTyvL
KvKkvzEg5Xb8vT/Z6/hjvVkTws4QSxliSu0MM5HUfhR58PneT5sfm/3Nw3ev SgCJ0nN6kipG
Y1UrkuQcEqScY9vWlWOaO4kKeWUkcOWJORwBjHfp1z39uZFnhddySxsOOQwP U4H68UefD53k
+bH5v9zcN3r0oAb9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd8Yz+XFR/a7bz PL+0Rb87du8Z
z6YqN75FuDD5UpIkWPIXjJGf0HWgCvcxSxRqpjV41uBIGVWZuX3HgDjAJ5z2 96lntpy0nleW
VeVJfmJByu35en+z1/DHepmufnwkMki7gpdAMA5x65474/oaf58PneT5sfm/ 3Nw3evSgClLZ
TlyU2cSiQEysA3zZxtHA+vOcZ6niw6Tm9SRUjMaqVyXIOCVJOMe3rUqzwuu5 JY2HHIYHqcD9
eKFnhddySxsOOQwPU4H68UAROk5vUkVIzGqlclyDglSTjHt60ipci8eXy4tj BU/1hyACecbf
fpU3nw+d5Pmx+b/c3Dd69KBPCzhBLGWJK7QwzkdR+FAETpOb1JFSMxqpXJcg 4JUk4x7etQrZ
Os3KB080yZM7jq277mMcfrirUM/mySp5br5TbSWxgnGeMH0I/Ol8+HzvJ82P zf7m4bvXpQBU
ltZynlosLKs3nKzE5J37sdOOpGefpzxd8tN27Yuc7s474xn8uKY9zAjMrzxq yDLAuAQPf8x+
dKJ4zOYQylwMkBhkdOo696AGeS0kwklYAIfkVMg9e579Bx0+vBqeoxPCzhBL GWJK7QwzkdR+
FQvfItwYfKlJEix5C8ZIz+g60AWqKYkscjMqsCyHDL3H1FPoAKKKKACiiigA ooooAKKKKACi
iigAooooAKKKKACiiigAooooAKKKKACiiigBr/dNR/5/z/n/AOvI/wB01H/n /P8An/64A1/u
n/P+f8/jHUj/AHT/AJ/z/n8Y6Qytd9U/H+lFF31T8f6UUCJ4/un/AHj/ADp1 Nj+6f94/zp1A
y5UHktHMZImBDn51fJPXse3U8dPpyanopiKf2eb7Z9oxH9/GzccbcY3dPv8A b6ce9N+yzNPk
pGq+ZuysrEYzn7hGMn19eetW3ljjZVZgGc4Ve5+gpPPh/wCesf39n3h970+v tQBUltZynlos
LKs3nKzE5J37sdOOpGefpzxZ8t/tnmbItnl7d2Pnznpn0/rStcwLL5TTxiTI GwuM5PTimy3c
UThNwZ9yqVVhlckAEjPTkfnQBXWydZuUDp5pkyZ3HVt33MY4/XFTOk5vUkVI zGqlclyDglST
jHt61P5ieZ5e9d+N23POPXFNM8IkMZlj3jGV3DIzjHH4j86AKi2TrNygdPNM mTO46tu+5jHH
64qJtPmdGzHAGYTDIYnBfoen4fT8q0PPh87yfNj83+5uG716ULPC67kljYcc hgepwP14oAqL
ZOs3KB080yZM7jq277mMcfrih7actOyxw7pJkcEuQSq44Py/7P6n8bYnhZwg ljLEldoYZyOo
/CgygXCwlWyyFw3GOCAR+ooAjWOaO4kKeWUkcOWJORwBjHfp1z39ubFR+fD5 3k+bH5v9zcN3
r0o8+H/nrH9/Z94fe9Pr7UAVHtpy07LHDukmRwS5BKrjg/L/ALP6n8Wy2U5c lNnEokBMrAN8
2cbRwPrznGep4me+KOU+yXDEBiMBfmCnBIGc9x9ala7tl3briIbTtbLjg+h/ I/lQBRbT5nRs
xwBmEwyGJwX6Hp+H0/KpVsnWblA6eaZMmdx1bd9zGOP1xVsTws4QSxliSu0M M5HUfhR58Pne
T5sfm/3Nw3evSgBv2aPzN+6XOc4858flnH4VJ5abt2xc53Zx3xjP5cUiSxyM yqwLIcMvcfUU
+gCukc0TFI/LMRcvuYncMnJGO/U85HXvjmP7PNjycR+V5vmb9x3ff3424/Dr 7+1XKKAMttPm
dGzHAGYTDIYnBfoen4fT8qG0+Z0bMcAZhMMhicF+h6fh9PyrUooAp/Z5seTi PyvN8zfuO77+
/G3H4dff2pj205adljh3STI4JcglVxwfl/2f1P436KAKYju1mlKCILJKr7t5 yFG0EY29wPXv
R9nmx5OI/K83zN+47vv78bcfh19/arlFAGZKknmLbCMMFnEoco3d9x5xgYBP OT0xjmrTpOb1
JFSMxqpXJcg4JUk4x7etWaKAKD205adljh3STI4JcglVxwfl/wBn9T+N3y03 bti5zuzjvjGf
y4p1FAEHktJMJJWACH5FTIPXue/QcdPrwanoooAKKKKACiiigAooooAKKKKA CiiigAooooAK
KKKACiiigAooooAKKKKACiiigBr/AHTUf+f8/wCf/ryP901H/n/P+f8A64A1 /un/AD/n/P4x
1I/3T/n/AD/n8Y6Qytd9U/H+lFF31T8f6UUCJ4/un/eP86dTY/un/eP86dQM uUUUUxEHktHM
ZImBDn51fJPXse3U8dPpyai+zzfbPtGI/v42bjjbjG7p9/t9OPerlMeWONlV mAZzhV7n6CgC
p9lmafJSNV8zdlZWIxnP3CMZPr689aSW1nKeWiwsqzecrMTknfux046kZ5+n PFvz4f8AnrH9
/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oATy3+2eZsi2eXt3Y+fOemfT+tRLB IrCMxwvGJTIH
YkkEsTwuOvOM59/apJbuKJwm4M+5VKqwyuSACRnpyPzqXzE8zy9678btuece uKAKv2ebHk4j
8rzfM37ju+/vxtx+HX39qrtp8zo2Y4AzCYZDE4L9D0/D6flV9rmBZfKaeMSZ A2FxnJ6cUvnw
+d5Pmx+b/c3Dd69KAKSRvNd3IEQVDMjGRgQSFC8DjkZU9+/52HSc3qSKkZjV SuS5BwSpJxj2
9ake5gRmV541ZBlgXAIHv+Y/Ol8+H/nrH9/Z94fe9Pr7UAVFsnWblA6eaZMm dx1bd9zGOP1x
T/s832z7RiP7+Nm4424xu6ff7fTj3qx58PneT5sfm/3Nw3evSgTws4QSxliS u0MM5HUfhQAx
45DexSAJ5aoykljnJIPTH+z696haPffmMB/LJEsmUOCy4xz7/KeP7nuasmeE SGMyx7xjK7hk
Zxjj8R+dHnw+d5Pmx+b/AHNw3evSgCkkbzXdyBEFQzIxkYEEhQvA45GVPfv+ blsnWblA6eaZ
Mmdx1bd9zGOP1xVxJY5GZVYFkOGXuPqKfQBB5LSTCSVgAh+RUyD17nv0HHT6 8Gp6KKACiiig
AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKK
KKACiiigAooooAKKKKAGv901H/n/AD/n/wCvI/3TUf8An/P+f/rgDX+6f8/5 /wA/jHUj/dP+
f8/5/GOkMrXfVPx/pRRd9U/H+lFAieP7p/3j/OnVSaJmlYlpfmJ2ojkZ68+3 9T265WFf3yEN
Kpxu2PIWyOeR/h9D65NCuV2ubFFFFMkKg8lo5jJEwIc/Or5J69j26njp9OTU 9FAFP7PN9s+0
Yj+/jZuONuMbun3+30496b9lmafJSNV8zdlZWIxnP3CMZPr689a59Li9dWZZ 5yqjLHecD8aX
zr//AJ63P3d/3m+76/T3rTkJ5jeltZynlosLKs3nKzE5J37sdOOpGefpzxZ8 t/tnmbItnl7d
2Pnznpn0/rXMiXUWj8xXujHjO4FsfnTo3v5EL/aJ1TaSGZmw2ASQD68H8qOT zDmNz7LM0+Sk
ar5m7KysRjOfuEYyfX1560i2TrNygdPNMmTO46tu+5jHH64rA+03vl+Z59xs zjdvbGfTNL51
/wCV5vm3Pl/39zY/OjkDmNu5ilijVTGrxrcCQMqszcvuPAHGATznt71LPbTl pPK8sq8qS/MS
Dldvy9P9nr+GO9c+Li7MBlF3LgMFK+Y2eQSD+ho86/8AK83zbny/7+5sfnRy BzG8tk6zcoHT
zTJkzuOrbvuYxx+uKHtpy07LHDukmRwS5BKrjg/L/s/qfxwWmv0OGluVPPBZ h0GT+nNHnX/l
eb5tz5f9/c2Pzo5A5jolgkVhGY4XjEpkDsSSCWJ4XHXnGc+/tUa2TrNygdPN MmTO46tu+5jH
H64rBM1+E3mW5CgA5LNjB6GnM+opEJWkuRGRkNubGKOTzDmOk8lpJhJKwAQ/ IqZB69z36Djp
9eDU9cf9tuv+fmb/AL+Gnma/CbzLchQAclmxg9DR7MOY62iuS86/8rzfNufL /v7mx+dDTX6H
DS3Knngsw6DJ/TmjkDmOtorkvOv/ACvN8258v+/ubH507fqXl+Zuu9mM7stj Hrmjk8w5jq6K
5dTetAJftrAFGkwZWzgHH6npUXnX/wDz1ufu7/vN931+nvRyeYcx1tFcmJdR aPzFe6MeM7gW
x+dJ51/5Xm+bc+X/AH9zY/Ojk8w5jraK5PzdR2lt91gLuJy3T1+lIZr8JvMt yFAByWbGD0NH
J5hzHW0VyXnX/leb5tz5f9/c2Pzoaa/Q4aW5U88FmHQZP6c0cgcx1tFcl51/ 5Xm+bc+X/f3N
j86lU3rQCX7awBRpMGVs4Bx+p6UcnmHMdRRXH/bbr/n5m/7+GpPN1HaW33WA u4nLdPX6UezD
mOsorkvOv/K83zbny/7+5sfnUqjUWgMxnuFQDIJL/MMZ7fzNHJ5hzHUUVym/ UvL8zdd7MZ3Z
bGPXNPU3rQCX7awBRpMGVs4Bx+p6UuTzC51FFcl51/8A89bn7u/7zfd9fp70 ol1Fo/MV7ox4
zuBbH50+TzDmOsorkvOv/K83zbny/wC/ubH50vm6jtLb7rAXcTlunr9KOTzD mOsorkjNfhN5
luQoAOSzYweho86/8rzfNufL/v7mx+dHIHMdbRXJNNfocNLcqeeCzDoMn9Oa POv/ACvN8258
v+/ubH50cgcx1tFcvuu/LVhfMxZC4QO+cDOe2OMHv2qLzr/yvN8258v+/ubH 50cgcx1tFcuo
1FoDMZ7hUAyCS/zDGe38zQpvWgEv21gCjSYMrZwDj9T0pcnmFzqKK5JLm6aK SQ3UwCYA+c8k
9uvoCfwpHuL1FVmnnCsMqd5wfxp8gcx11FFFZlBRRRQA1/umo/8AP+f8/wD1 5H+6aj/z/n/P
/wBcAa/3T/n/AD/n8Y6kf7p/z/n/AD+NczxgkZPHH3TSGk3sRXfVPx/pRRdE MIyOhBI/SigB
u7MxdFLyR5AQd/mzn9enXp60Iha8Ezh03ZIVhyT3/D3+lOMcJ5aBJJGLYG0Z PJ70sAg3jFuk
UmNy8DkeoNLS5peXKalFFFUZBRRRQBx+/wAyIJIhyo+QpgfmO/Qc9frxUvmx /ZfI+f7md20Z
3Zzt6/d/rzXQyQWSMqvDAGc/KuwZb8KTy9P/ALlt9/Z0X73p9fatOdBZGB5y CHALsxj24Mag
5xj7+c49vTApYpog+9jMC8XlFVAwBt25689jjj/HdZNOWXymW1EhI+Qhc57c U2UWEb7PIgdy
yhlVVyuSACR6cj86OdBZHOZH2Ty8y79+7bn5MY649asG5DRDBKP5ezAhU/w4 +9nPP9a6D7PZ
eZ5fkwb8btu0Zx64pvl6f53k7Lbzf7mF3evSjnQWRzieV9keMtJ5jENgIMcA 8Zz71KbkNEME
o/l7MCFT/Dj72c8/1reMNr9oEJtI8spcNsXBwQD+PIo8vT/O8nZbeb/cwu71 6Uc6CyMVbuNX
Xa0xUGIgFQMhOo6/j9fzqM3IaIYJR/L2YEKn+HH3s55/rW8senyLuVLZgccg Kc5OB+uRR5en
+d5Oy283+5hd3r0o5kFkYKTRbYFZpsJE6kBB1bPI5/2v0HrUJMckEYYPvRCo AAweSc57demP
510gj09n2BLYsWI24XJI6j6imqNNkmaFVtjIGwU2rnP070c4WRy21vSrqTRb YFZpsJE6kBB1
bPI5/wBr9B610X2O1/59of8AvgVGI9PZ9gS2LFiNuFySOo+oocwtEw4rmIKA 4fmMoQI1JHy4
zuPJ+nHX83Ldxq67WmKgxEAqBkJ1HX8fr+dbXl6f53k7Lbzf7mF3evShY9Pk XcqWzA45AU5y
cD9cijmQWRgm5DRDBKP5ezAhU/w4+9nPP9ar+dL5ezZHjGP9UufzxnNdN5en +d5Oy283+5hd
3r0puNM8zy8Wm/djb8uc+mPWjnQWRzGZMYy2MYxntnOPz5qzDLEFj8wSArG0 Y2gHg7uev+10
/XtW07WS3Bh+w7j5ix5EQIJIz+g61MI9PZ9gS2LFiNuFySOo+oo5wsjA85BD gF2Yx7cGNQc4
x9/Oce3pgUpuQ0QwSj+XswIVP8OPvZzz/Wt7y9P87ydlt5v9zC7vXpSMmnLL 5TLaiQkfIQuc
9uKOdBZHPStHJbQory7o0wFKjbknJ5z7+nYVIk0W2BWabCROpAQdWzyOf9r9 B61usmnLL5TL
aiQkfIQuc9uKRhpi7twtBtbDZ28Hng+/Bo5wsjFiuYgoDh+YyhAjUkfLjO48 n6cdfzct3Grr
taYqDEQCoGQnUdfx+v51teXp/neTstvN/uYXd69KQpp27aVtdxbbjC5Len15 /WjmQWRhG5DR
DBKP5ezAhU/w4+9nPP8AWqmZMYy2MYxntnOPz5rppRYRvs8iB3LKGVVXK5IA JHpyPzpjtZLc
GH7DuPmLHkRAgkjP6DrRzoLI5ra3pVmVo5LaFFeXdGmApUbck5POff07Cum+ x2v/AD7Q/wDf
AqIpp27aVtdxbbjC5Len15/WnzhaJhG5DRDBKP5ezAhU/wAOPvZzz/Woz5LW iR7pd6ln/wBW
MEkDjr7frXReXp/neTstvN/uYXd69KheTThcCAQwO5bDABODnHOTyevAyaXO gsjn/Ol8vZsj
xjH+qXP54zmmZkxjLYxjGe2c4/PmunxpnmeXi037sbflzn0x61G7WS3Bh+w7 j5ix5EQIJIz+
g60+dBZGLDLEFj8wSArG0Y2gHg7uev8AtdP17UvnIIcAuzGPbgxqDnGPv5zj 29MCt8R6ez7A
lsWLEbcLkkdR9RR5en+d5Oy283+5hd3r0pc6CyME3IaIYJR/L2YEKn+HH3s5 5/rUcrRyW0KK
8u6NMBSo25Jyec+/p2FdCyacsvlMtqJCR8hC5z24oZNOWXymW1EhI+Qhc57c Uc6CyMJJotsC
s02EidSAg6tnkc/7X6D1p0VzEFAcPzGUIEakj5cZ3Hk/Tjr+e0w0xd24Wg2t hs7eDzwffg07
y9P87ydlt5v9zC7vXpRzoLIxVu41ddrTFQYiAVAyE6jr+P1/OozchohglH8v ZgQqf4cfeznn
+tbpTTt20ra7i23GFyW9Prz+tNlFhG+zyIHcsoZVVcrkgAkenI/OjmQWRh+e ggiiAYjyyrNs
AYZJPBznvjHGR9aU3IaIYJR/L2YEKn+HH3s55/rWz/onmujWIVVkCM5RMZOM d885HbvUvl6f
53k7Lbzf7mF3evSjnQWRzp8lrRI90u9Sz/6sYJIHHX2/WoMyYxlsYxjPbOcf nzXRvJpwuBAI
YHcthgAnBzjnJ5PXgZNDtZLcGH7DuPmLHkRAgkjP6DrRzhaJz8pzHFHHyqjc T6scZ/oPw96U
Psi2RISXHzF8H8h269ev0zXSvBarNHGLWFi+SfkHAHfp6kD8aVILKRnVYYCy n5l2DI+oo5ws
i1RRRWYBRRRQA1/umo/8/wCf8/8A15H+6aj/AM/5/wA//XAGv90/5/z/AJ/G qbdSSd7DJz2/
wq0/3T/n/P8An8apuFBI2McHHb/GguPN0I7lQqxqOgBH8qKLlgyxsOhBP8qK RL3HMrBhMil2
TICj13Eg02OJ5Lo3Dq6Drhxzk/0qxH90/wC8f506lYvndrFyiiiqMwoopjyx xsqswDOcKvc/
QUAVztimaSOVcFgJFcknqeh7Ac8dOD05NREEXhuC0XEm0puONuMbun3+CM9M AjPGatMypNDG
qAkg9ONqjr+u0Y9/agS24xiSIYbyxgjg/wB36+1BXulMofPJYxIqy5JWViOu fuEYzwcnscnq
KSZH2GNTAVjn80M7HOd+7HTjuM89D74uGe2SVYjLCsg+UJuAIz2x+VNkuYIX VBtZwVTahGUB
IAyM9OR+lAe6IXUXhkPk7Amwtj5856Z/u8H8QfSqwhVJm3bXQTbyTcOMZbd9 zGOOfyPTmr4M
QkEYKBwuQoxkL9PSmGe2SVYjLCsg+UJuAIz2x+VAe6QySP8AbVkHk+XGChJc g8kEnGO209/X
pg1CIVSZt210E28k3DjGW3fcxjjn8j05q6JbcTCESRCUDAQEbgOvSkae2iYq 0sKNGvILAFRx
+Q6fpQHumc9sSj7hbqx84E7icF+h+72wQfYH0IqUQqkzbtroJt5JuHGMtu+5 jHHP5HpzV0S2
4xiSIYbyxgjg/wB36+1AltxMIRJEJQMBARuA69KA90pSo+64YCDc06NkuQcL jg/L/sn2GT6V
OHMVxKVeLY8gZmYnK8AEAY5+6ec8c+lTLLb71RJItwyiqCM8dQP04o823WTy xJEHQAbcjKg4
xx+X6UB7o4zxDOXHBwf8/gfyPpVCVH3XDAQbmnRslyDhccH5f9k+wyfSrolt xMIRJEJQMBAR
uA69KWN4WYrGV3R/KVxgr+HYcfjQHumfNC29irx/LMHyZWAPzZxtHA6HnnoS ec4Y9sSj7hbq
x84E7icF+h+72wQfYH0IrWCqMYUDAwMDoKAqjGFAwMDA6CgPdM4QqkzbtroJ t5JuHGMtu+5j
HHP5HpzVkpbiQuZZMhskec+M/TOMcH24PpVgKoxhQMDAwOgoCqMYUDAwMDoK A90jL24YsdmQ
2Scd8Yz+QIz7H0qjkPdXIwiIZkYyNkMduOAMcjKt345P10gqjGFAwMDA6CgK oxhQMDAwOgoD
3TMmhbexV4/lmD5MrAH5s42jgdDzz0JPOcPKHzyWMSKsuSVlYjrn7hGM8HJ7 HJ6itAKoxhQM
DAwOgoCqMYUDAwMDoKA90zyh88ljEirLklZWI65+4RjPByexyeopZYs3Lv56 iMyKzDJ6jb27
/wCr6+7enN8KoxhQMDAwOgoCqMYUDAwMDoKA90okEAwlovKE3mF9x3ff3424 9iM57E9sU6Fj
Fd3DsIQsknLBzuAC4HG3noe/HPoauBVGMKBgYGB0FAVRjCgYGBgdBQHumdMj 7DGpgKxz+aGd
jnO/djpx3Geeh98XS9uGLHZkNknHfGM/kCM+x9KkCqMYUDAwMDoKAqjGFAwM DA6CgPdGmeIZ
y44OD/n8D+R9KqwsYru4dhCFkk5YOdwAXA4289D3459DVwKoxhQMDAwOgoCq MYUDAwMDoKA9
0zhCqTNu2ugm3km4cYy277mMcc/kenNSiSRLySUiHYdqH94cgAtzjb7n8jzV wKoxhQMDAwOg
oCqMYUDAwMDoKA90rlLcSFzLJkNkjznxn6Zxjg+3B9KkL24YsdmQ2Scd8Yz+ QIz7H0qQKoxh
QMDAwOgoCqMYUDAwMDoKA90zch7q5GERDMjGRshjtxwBjkZVu/HJ+qTQtvYq 8fyzB8mVgD82
cbRwOh556EnnONMKoxhQMDAwOgoCqMYUDAwMDoKA90zyh88ljEirLklZWI65 +4RjPByexyeo
oKHzyWMSKsuSVlYjrn7hGM8HJ7HJ6itAKoxhQMDAwOgoCqMYUDAwMDoKA90o SxZuXfz1EZkV
mGT1G3t3/wBX1929OVIIBhLReUJvML7ju+/vxtx7EZz2J7Yq8FUYwoGBgYHQ UBVGMKBgYGB0
FAe6U4WMV3cOwhCyScsHO4ALgcbeeh78c+hqKZH2GNTAVjn80M7HOd+7HTju M89D740QqjGF
AwMDA6CgKoxhQMDAwOgoD3TPMX+kTzM6AiUMq+YxVsDGGGMfw5zzgj/ZpBCq TNu2ugm3km4c
Yy277mMcc/kenNaIVRjCgYGBgdBQFUYwoGBgYHQUB7pTEkiXkkpEOw7UP7w5 ABbnG33P5Hmr
Be3DFjsyGyTjvjGfyBGfY+lSBVGMKBgYGB0FAVRjCgYGBgdBQHuleJ0WSaWV gGLbcZ6KM4/9
mPtkjtSHa83mTSqBG2FVCQRz3PccdOnBznGRZCqMYUDAwMDoKAqjGFAwMDA6 CgPdHUUUUEhR
RRQA1/umo/8AP+f8/wD15H+6aj/z/n/P/wBcAa/3T/n/AD/n8a5gjJJweefv GrD/AHT/AJ/z
/n8Y6Q02titdAKIwOgBA/Sii76p+P9KKAJ4/un/eP86dTY/un/eP86dQBcoo opiCoPJaOYyR
MCHPzq+SevY9up46fTk1I8scbKrMAznCr3P0FI8u2aOMDJfJPPQDv+ZA/GgB sKN5kssgwzna
B6KM4/qfxx2qH7PN9s+0Yj+/jZuONuMbun3+30496sefD/z1j+/s+8Pven19 qRrmBZfKaeMS
ZA2FxnJ6cUAVvsszT5KRqvmbsrKxGM5+4RjJ9fXnrSS2s5Ty0WFlWbzlZick 792OnHUjPP05
4sS3cUThNwZ9yqVVhlckAEjPTkfnUvmJ5nl71343bc849cUAR+W/2zzNkWzy 9u7Hz5z0z6f1
qv8AZZmnyUjVfM3ZWViMZz9wjGT6+vPWrRnhEhjMse8Yyu4ZGcY4/EfnR58P neT5sfm/3Nw3
evSgCotk6zcoHTzTJkzuOrbvuYxx+uKZcxSxRqpjV41uBIGVWZuX3HgDjAJ5 z296vLPC67kl
jYcchgepwP14oE8LOEEsZYkrtDDOR1H4UAVp7actJ5XllXlSX5iQcrt+Xp/s 9fwx3pq2TrNy
gdPNMmTO46tu+5jHH64q2ZQLhYSrZZC4bjHBAI/UUefD53k+bH5v9zcN3r0o AqPbTlp2WOHd
JMjglyCVXHB+X/Z/U/jIsEisIzHC8YlMgdiSQSxPC4684zn39qn8+H/nrH9/ Z94fe9Pr7VA9
8Ucp9kuGIDEYC/MFOCQM57j60ARrZOs3KB080yZM7jq277mMcfrirHktJMJJ WACH5FTIPXue
/QcdPrwaVru2XduuIhtO1suOD6H8j+VOE8LOEEsZYkrtDDOR1H4UASUVH58P neT5sfm/3Nw3
evSlSWORmVWBZDhl7j6igB9FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUANf7pqP/P8An/P/ ANeR/umo/wDP
+f8AP/1wBr/dP+f8/wCfxjqR/un/AD/n/P4x0hla76p+P9KKLvqn4/0ooETx /dP+8f506mx/
dP8AvH+dOoGXKKKY8scbKrMAznCr3P0FMRH5LRzGSJgQ5+dXyT17Ht1PHT6c mlhRvMllkGGc
7QPRRnH9T+OO1OeXbNHGBkvknnoB3/MgfjR58P8Az1j+/s+8Pven19qAK/2e b7Z9oxH9/Gzc
cbcY3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561Za5gWXymnjEmQNhc ZyenFNlu4onC
bgz7lUqrDK5IAJGenI/OgCvLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/bP M2RbPL27sfPn
PTPp/WpPMTzPL3rvxu255x64pvnw+d5Pmx+b/c3Dd69KAIFgkVhGY4XjEpkD sSSCWJ4XHXnG
c+/tSfZ5seTiPyvN8zfuO77+/G3H4dff2qwZQLhYSrZZC4bjHBAI/UUefD53 k+bH5v8Ac3Dd
69KAM9tPmdGzHAGYTDIYnBfoen4fT8qekbzXdyBEFQzIxkYEEhQvA45GVPfv +d1Z4XXcksbD
jkMD1OB+vFHnw+d5Pmx+b/c3Dd69KAInSc3qSKkZjVSuS5BwSpJxj29ahWyd ZuUDp5pkyZ3H
Vt33MY4/XFWxPCzhBLGWJK7QwzkdR+FNS7t3maFZozIp2lN3OfpQBD9nm+2f aMR/fxs3HG3G
N3T7/b6ce9SvHIb2KQBPLVGUksc5JB6Y/wBn171IkscjMqsCyHDL3H1FPoAp NHvvzGA/lkiW
TKHBZcY59/lPH9z3NRpG813cgRBUMyMZGBBIULwOORlT37/no0UAUFsnWblA 6eaZMmdx1bd9
zGOP1xVjyWkmEkrABD8ipkHr3PfoOOn14NT0UAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UANf7pqP/P8A
n/P/ANeR/umo/wDP+f8AP/1wBr/dP+f8/wCfxjqR/un/AD/n/P4x0hla76p+ P9KKLvqn4/0o
oETx/dP+8f506mx/dP8AvH+dOoGXKg8lo5jJEwIc/Or5J69j26njp9OTU9Me WONlVmAZzhV7
n6CmIZCjeZLLIMM52geijOP6n8cdqh+zzfbPtGI/v42bjjbjG7p9/t9OPerH nw/89Y/v7PvD
73p9faka5gWXymnjEmQNhcZyenFAFb7LM0+Skar5m7KysRjOfuEYyfX1560k trOU8tFhZVm8
5WYnJO/djpx1Izz9OeLEt3FE4TcGfcqlVYZXJABIz05H51L5ieZ5e9d+N23P OPXFAEflv9s8
zZFs8vbux8+c9M+n9arLZOs3KB080yZM7jq277mMcfrirfnw+d5Pmx+b/c3D d69KDKBcLCVb
LIXDcY4IBH6igCJ0nN6kipGY1UrkuQcEqScY9vWoVsnWblA6eaZMmdx1bd9z GOP1xVvz4fO8
nzY/N/ubhu9elCzwuu5JY2HHIYHqcD9eKAM9tPmdGzHAGYTDIYnBfoen4fT8 qlWydZuUDp5p
kyZ3HVt33MY4/XFW/Ph87yfNj83+5uG716UCeFnCCWMsSV2hhnI6j8KAKj20 5adljh3STI4J
cglVxwfl/wBn9T+M6xzR3EhTyykjhyxJyOAMY79Oue/ty5Lu3eZoVmjMinaU 3c5+lTUAQeS0
kwklYAIfkVMg9e579Bx0+vBqeoxPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3 Dd69KAJKKjWe
F13JLGw45DA9TgfrxR58PneT5sfm/wBzcN3r0oAkoqH7XbeZ5f2iLfnbt3jO fTFRvfItwYfK
lJEix5C8ZIz+g60AWqKjE8LOEEsZYkrtDDOR1H4UefD53k+bH5v9zcN3r0oA koqJrmBZfKae
MSZA2FxnJ6cUNcwLL5TTxiTIGwuM5PTigCWioWu7Zd264iG07Wy44PofyP5U 7z4fO8nzY/N/
ubhu9elAElFRfaYAwXz49xbYBvGS3p9eRTZbuKJwm4M+5VKqwyuSACRnpyPz oAnoqsLweayN
DIqo4jLnbjJxjvnnI7d6l8+HzvJ82Pzf7m4bvXpQBJRVV9Qt1uFgV1dycEB1 +U5x3P6DJoe+
Rbgw+VKSJFjyF4yRn9B1oAtUUVCl3bvM0KzRmRTtKbuc/SgCaioWu7Zd264i G07Wy44PofyP
5U4Tws4QSxliSu0MM5HUfhQBJRUfnw+d5Pmx+b/c3Dd69Kb9rtvM8v7RFvzt 27xnPpigCaiq
r3yLcGHypSRIseQvGSM/oOtTefD/AM9Y/v7PvD73p9fagCSiomuYFl8pp4xJ kDYXGcnpxTZb
uKJwm4M+5VKqwyuSACRnpyPzoAnopvmJ5nl71343bc849cUxrmBZfKaeMSZA 2FxnJ6cUAS0V
Cl3bvM0KzRmRTtKbuc/Sl+0wBgvnx7i2wDeMlvT68igCWioxPGZzCGUuBkgM Mjp1HXvQJ4Wc
IJYyxJXaGGcjqPwoAkoqJ7mBGZXnjVkGWBcAge/5j86ie+Rbgw+VKSJFjyF4 yRn9B1oAtUVG
8u2aOMDJfJPPQDv+ZA/GlSWORmVWBZDhl7j6igB9FFFABRRRQA1/umo/8/5/ z/8AXkf7pqP/
AD/n/P8A9cAa/wB0/wCf8/5/GOpH+6f8/wCf8/jHSGVrvqn4/wBKKLvqn4/0 ooETx/dP+8f5
06mx/dP+8f506gZcqDyWjmMkTAhz86vknr2PbqeOn05NT0x5Y42VWYBnOFXu foKYit9nm+2f
aMR/fxs3HG3GN3T7/b6ce9N+yzNPkpGq+ZuysrEYzn7hGMn19eetWvPh/wCe sf39n3h970+v
tSNcwLL5TTxiTIGwuM5PTigCrLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/ AGzzNkWzy9u7
Hz5z0z6f1pJbuKJwm4M+5VKqwyuSACRnpyPzqXzE8zy9678btueceuKAKS2T rNygdPNMmTO4
6tu+5jHH64qZ0nN6kipGY1UrkuQcEqScY9vWpfPh87yfNj83+5uG716UGUC4 WEq2WQuG4xwQ
CP1FAFRbJ1m5QOnmmTJncdW3fcxjj9cVE2nzOjZjgDMJhkMTgv0PT8Pp+VaH nw+d5Pmx+b/c
3Dd69KFnhddySxsOOQwPU4H68UAVFsnWblA6eaZMmdx1bd9zGOP1xQ9tOWnZ Y4d0kyOCXIJV
ccH5f9n9T+Nvz4fO8nzY/N/ubhu9elAnhZwgljLEldoYZyOo/CgCNY5o7iQp 5ZSRw5Yk5HAG
Md+nXPf25sVCl3bvM0KzRmRTtKbuc/SpqAKD205adljh3STI4JcglVxwfl/2 f1P4tlspy5Kb
OJRICZWAb5s42jgfXnOM9TxdE8LOEEsZYkrtDDOR1H4UefD53k+bH5v9zcN3 r0oAz20+Z0bM
cAZhMMhicF+h6fh9PyqVbJ1m5QOnmmTJncdW3fcxjj9cVbWeF13JLGw45DA9 TgfrxR58PneT
5sfm/wBzcN3r0oAb9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd8Yz+XFR/a7b zPL+0Rb87du8
Zz6YqN75FuDD5UpIkWPIXjJGf0HWgCBI3mu7kCIKhmRjIwIJCheBxyMqe/f8 yWynLkps4lEg
JlYBvmzjaOB9ec4z1PF3z4f+esf39n3h970+vtSNcwLL5TTxiTIGwuM5PTig Ct9lmafJSNV8
zdlZWIxnP3CMZPr689aPsszT5KRqvmbsrKxGM5+4RjJ9fXnrVrz4fO8nzY/N /ubhu9elJ9pg
DBfPj3FtgG8ZLen15FAFeSzke5LiQCNnVyOeo29v+Af+PH05X7PNjycR+V5v mb9x3ff3424/
Dr7+1WBPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3Dd69KAIYIpo7udzHFtlf O4Od2AoAGMe3
r3qKW1nKeWiwsqzecrMTknfux046kZ5+nPFtZ4XXcksbDjkMD1OB+vFHnw+d 5Pmx+b/c3Dd6
9KAKv2SU3E0x25MgdF8xirYAGGGMDpnPODj05RbJ1m5QOnmmTJncdW3fcxjj 9cVMLweayNDI
qo4jLnbjJxjvnnI7d6l8+HzvJ82Pzf7m4bvXpQBCqXIvHl8uLYwVP9YcgAnn G336VY8tN27Y
uc7s474xn8uKrvqFutwsCuruTggOvynOO5/QZND3yLcGHypSRIseQvGSM/oO tAFqq6xzR3Eh
TyykjhyxJyOAMY79Oue/tzYqFLu3eZoVmjMinaU3c5+lAEDR778xgP5ZIlky hwWXGOff5Tx/
c9zUaRvNd3IEQVDMjGRgQSFC8DjkZU9+/wCdtru2XduuIhtO1suOD6H8j+VO E8LOEEsZYkrt
DDOR1H4UAVFsnWblA6eaZMmdx1bd9zGOP1xVn7NH5m/dLnOcec+Pyzj8Kd58 PneT5sfm/wBz
cN3r0pv2u28zy/tEW/O3bvGc+mKAJPLTdu2LnO7OO+MZ/Liqv2eb7Z9oxH9/ GzccbcY3dPv9
vpx70575FuDD5UpIkWPIXjJGf0HWpvPh/wCesf39n3h970+vtQBV+yzNPkpG q+ZuysrEYzn7
hGMn19eetJLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tni01zAsvlNPGJMgbC4zk9 OKbLdxROE3Bn
3KpVWGVyQASM9OR+dAC+W/2zzNkWzy9u7Hz5z0z6f1qv9lmafJSNV8zdlZWI xnP3CMZPr689
aueYnmeXvXfjdtzzj1xTGuYFl8pp4xJkDYXGcnpxQAxY5o7iQp5ZSRw5Yk5H AGMd+nXPf25b
BFNHdzuY4tsr53BzuwFAAxj29e9SJd27zNCs0ZkU7Sm7nP0pftMAYL58e4ts A3jJb0+vIoAj
dJzepIqRmNVK5LkHBKknGPb1qF7actOyxw7pJkcEuQSq44Py/wCz+p/G2J4z OYQylwMkBhkd
Oo696BPCzhBLGWJK7QwzkdR+FAFCVJPMW2EYYLOJQ5Ru77jzjAwCecnpjHNa Plpu3bFzndnH
fGM/lxTHuYEZleeNWQZYFwCB7/mPzqJ75FuDD5UpIkWPIXjJGf0HWgCSFG8y WWQYZztA9FGc
f1P447UnktJMJJWACH5FTIPXue/QcdPrwae8u2aOMDJfJPPQDv8AmQPxpUlj kZlVgWQ4Ze4+
ooAfRRRQAUUUUANf7pqP/P8An/P/ANeR/umo/wDP+f8AP/1wBr/dP+f8/wCf xjqR/un/AD/n
/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/dP8AvH+dOoGXKg8lo5jJ EwIc/Or5J69j
26njp9OTUjyxxsqswDOcKvc/QUjy7Zo4wMl8k89AO/5kD8aYiv8AZ5vtn2jE f38bNxxtxjd0
+/2+nHvTfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVrz4f8AnrH9/Z94fe9Pr7Uj XMCy+U08YkyB
sLjOT04oAqy2s5Ty0WFlWbzlZick792OnHUjPP054s+W/wBs8zZFs8vbux8+ c9M+n9aSW7ii
cJuDPuVSqsMrkgAkZ6cj86l8xPM8veu/G7bnnHrigCktk6zcoHTzTJkzuOrb vuYxx+uKmdJz
epIqRmNVK5LkHBKknGPb1qRrmBZfKaeMSZA2FxnJ6cUpnhEhjMse8Yyu4ZGc Y4/EfnQBUWyd
ZuUDp5pkyZ3HVt33MY4/XFRNp8zo2Y4AzCYZDE4L9D0/D6flV6O5jeVoydjq 5QKxGWwAcjnn
ginefD53k+bH5v8Ac3Dd69KAKi2TrNygdPNMmTO46tu+5jHH64oe2nLTsscO 6SZHBLkEquOD
8v8As/qfxtrPC67kljYcchgepwP14o8+HzvJ82Pzf7m4bvXpQBGsc0dxIU8s pI4csScjgDGO
/Trnv7c2KYkscjMqsCyHDL3H1FPoAoPbTlp2WOHdJMjglyCVXHB+X/Z/U/i2 WynLkps4lEgJ
lYBvmzjaOB9ec4z1PGjRQBltp8zo2Y4AzCYZDE4L9D0/D6flUq2TrNygdPNM mTO46tu+5jHH
64q/RQBD9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd8Yz+XFOooApT205aTyv LKvKkvzEg5Xb
8vT/AGev4Y70n2WZp8lI1XzN2VlYjGc/cIxk+vrz1q9RQBQWydZuUDp5pkyZ 3HVt33MY4/XF
SwRTR3c7mOLbK+dwc7sBQAMY9vXvVqigCg9tOWnZY4d0kyOCXIJVccH5f9n9 T+LZbKcuSmzi
USAmVgG+bONo4H15zjPU8aNFAGW2nzOjZjgDMJhkMTgv0PT8Pp+VSrZOs3KB 080yZM7jq277
mMcfrir9FAFH7JKbiaY7cmQOi+YxVsADDDGB0znnBx6cotk6zcoHTzTJkzuO rbvuYxx+uKv0
UAVVS5F48vlxbGCp/rDkAE842+/SrHlpu3bFzndnHfGM/lxTqKACq6xzR3Eh TyykjhyxJyOA
MY79Oue/tzYooApNHvvzGA/lkiWTKHBZcY59/lPH9z3NRpG813cgRBUMyMZG BBIULwOORlT3
7/no0UAUFsnWblA6eaZMmdx1bd9zGOP1xVn7NH5m/dLnOcec+Pyzj8KmooAb 5abt2xc53Zx3
xjP5cVV+zzfbPtGI/v42bjjbjG7p9/t9OPerlFAFH7LM0+Skar5m7KysRjOf uEYyfX1560kt
rOU8tFhZVm85WYnJO/djpx1Izz9OeL9FAEPlv9s8zZFs8vbux8+c9M+n9ar/ AGWZp8lI1XzN
2VlYjGc/cIxk+vrz1q9RQBXWOaO4kKeWUkcOWJORwBjHfp1z39uWwRTR3c7m OLbK+dwc7sBQ
AMY9vXvVqigCs6Tm9SRUjMaqVyXIOCVJOMe3rUL205adljh3STI4JcglVxwf l/2f1P436KAM
yVJPMW2EYYLOJQ5Ru77jzjAwCecnpjHNaPlpu3bFzndnHfGM/lxTqKAIYUbz JZZBhnO0D0UZ
x/U/jjtSeS0kwklYAIfkVMg9e579Bx0+vBqeigAooooAKKKKAGv901H/AJ/z /n/68j/dNR/5
/wA/5/8ArgDX+6f8/wCf8/jHUj/dP+f8/wCfxjpDK131T8f6UUXfVPx/pRQI nj+6f94/zp1N
j+6f94/zp1AyXyWjmMkTAhz86vknr2PbqeOn05NLCjeZLLIMM52geijOP6n8 cdqmopiKf2eb
7Z9oxH9/GzccbcY3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561eooAo S2s5Ty0WFlWb
zlZick792OnHUjPP054s+W/2zzNkWzy9u7Hz5z0z6f1qaigCj9lmafJSNV8z dlZWIxnP3CMZ
Pr689aesEisIzHC8YlMgdiSQSxPC4684zn39qt0UAUHtpy07LHDukmRwS5BK rjg/L/s/qfxF
snWblA6eaZMmdx1bd9zGOP1xV+igDLbT5nRsxwBmEwyGJwX6Hp+H0/Kny2U5 clNnEokBMrAN
82cbRwPrznGep40aKAIPJaSYSSsAEPyKmQevc9+g46fXg1PRRQAUUUUAFFFF ABRRRQAUUUUA
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRR
RQAUUUUAFFFFABRRRQA1/umo/wDP+f8AP/15H+6aj/z/AJ/z/wDXAGv90/5/ z/n8Y6kf7p/z
/n/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/dP+8f506gZcooopiCi iigAooooAKKK
KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigA
ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAGv 93HqRVUzIDhi
oPu3/wBerUhAXJOACMk/WqDGBnVmKHb70AE0hM8ABwrE5wevBqWq8zh7qAhg xy2cH2NWKQyt
d9U/H+lFF31T8f6UUCJ4/un/AHj/ADp1Nj+6f94/zp1Ax7y7BkngAEkk1Bdz uLN3QlSVyCCc
jNLMYnyrOvQd+nFQ3bp9jdVdSQgHX0oEaGT6n/P+f89zJ9T/AJ/z/nun+f8A P+f/AK5/n/P+
f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuALk+p/wA/5/z3 Mn1P+f8AP+e6
f5/z/n/65/n/AD/n/wCuALk+p/z/AJ/z3Mn1P+f8/wCe6f5/z/n/AOuf5/z/ AJ/+uALk+p/z
/n/PcyfU/wCf8/57p/n/AD/n/wCuf5/z/n/64AuT6n/P+f8APcyfU/5/z/nu n+f8/wCf/rn+
f8/5/wDrgC5Pqf8AP+f89zJ9T/n/AD/nun+f8/5/+uf5/wA/5/8ArgC5Pqf8 /wCf89zJ9T/n
/P8Anun+f8/5/wDrn+f8/wCf/rgC5Pqf8/5/z3Mn1P8An/P+e6f5/wA/5/8A rn+f8/5/+uAL
k+p/z/n/AD3Mn1P+f8/57p/n/P8An/65/n/P+f8A64AuT6n/AD/n/PcyfU/5 /wA/57p/n/P+
f/rn+f8AP+f/AK4AuT6n/P8An/PcyfU/5/z/AJ7p/n/P+f8A65/n/P8An/64 AuT6n/P+f89z
J9T/AJ/z/nun+f8AP+f/AK5/n/P+f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/ AJ/+uf5/z/n/
AOuALk+p/wA/5/z3Mn1P+f8AP+e6f5/z/n/65/n/AD/n/wCuALk+p/z/AJ/z 3Mn1P+f8/wCe
6f5/z/n/AOuf5/z/AJ/+uALk+p/z/n/PcyfU/wCf8/57p/n/AD/n/wCuf5/z /n/64AuT6n/P
+f8APcyfU/5/z/nun+f8/wCf/rn+f8/5/wDrgC5Pqf8AP+f89zJ9T/n/AD/n un+f8/5/+uf5
/wA/5/8ArgC5Pqf8/wCf89zJ9T/n/P8Anun+f8/5/wDrn+f8/wCf/rgC5Pqf 8/5/z3Mn1P8A
n/P+e6f5/wA/5/8Arn+f8/5/+uALk+p/z/n/AD3Mn1P+f8/57p/n/P8An/65 /n/P+f8A64Au
T6n/AD/n/PcyfU/5/wA/57p/n/P+f/rn+f8AP+f/AK4AuT6n/P8An/PcyfU/ 5/z/AJ7p/n/P
+f8A65/n/P8An/64AuT6n/P+f89zJ9T/AJ/z/nun+f8AP+f/AK5/n/P+f/rg C5Pqf8/5/wA9
zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuAGTxyeo7/AOf8/rE0+1lU8FunJ/xq QkDknABySf8A
P+f51SYXdWdlIXoM8E0AFy5eWGNuUYncp5B4pfs8H/PGP/vkVHK6tdW+1geW 6fQ1YoGMWGJG
DLEikdwoFPoooArXfVPx/pRRd9U/H+lFAidFXYCQckn+Ijufel2r/dP/AH03 +NRThTaEO4Rc
nLN0+8eD7dqqxyKgCLJHBDlv3sQCq5+XGM5Hc/8AfNAy39ktv+fdP1/xo+yW 3/Pun6/41VW7
cIBKwSZnjwh4ODtzgH3LUJNJ5Fu01x5YkTcZMKMHAwOeO5P4fhQIv4Hof++2 /wAaaVzJjLAb
Qcbz6n3qpDNM14VZ0xuYGPPIAzg4xkduScc+4q1MAQ4Zyg8vlgcY5bnNAC7f 9p/++zRt/wBp
/wDvs1neZ5SEW5twpYbpowEUcHgnkZ4H/fVPE055M3QIPlAIO5yuckc8YPp+ FAy9t/2n/wC+
zRt/2n/77NZ893IkWRIFaPf99gokwxAHTk8c4x1/JZ2ma3k+dn81pYwmBxgN jGBnPyigC/t/
2n/77NG3/af/AL7NUjNiX5bgGMqu6b5eB8/fGOoA/wDr1IkxN2qed5ikDAQq eMZywxkfUcdP
xALO3/af/vs0bf8Aaf8A77NNkIKyKzbF2csDgjrzmqkTrErvF5BRCGd4UADD nI78jr+lAF3b
/tP/AN9mjb/tP/32apPJcKJXaQq0cQk2ALjJLHB47YA4oEhihlAlIcytwSoE eWJBJwcAj1z1
FAF3b/tP/wB9mjb/ALT/APfZqlHcu8SMZRzkOyjIUBiN2ffH074wDV+gBu3/ AGn/AO+zRt/2
n/77NOooAbt/2n/77NG3/af/AL7NOooAbt/2n/77NG3/AGn/AO+zTqKAG7f9 p/8Avs0bf9p/
++zTqKAG7f8Aaf8A77NG3/af/vs06igBu3/af/vs0bf9p/8Avs06igBu3/af /vs0bf8Aaf8A
77NOooAbt/2n/wC+zRt/2n/77NOooAbt/wBp/wDvs0bf9p/++zTqKAG7f9p/ ++zRt/2n/wC+
zTqKAG7f9p/++zRt/wBp/wDvs06igBu3/af/AL7NG3/af/vs06igBu3/AGn/ AO+zRt/2n/77
NOooAbt/2n/77NG3/af/AL7NOooAbt/2n/77NG3/AGn/AO+zTqKAG7f9p/8A vs0bf9p/++zT
qKAG7f8Aaf8A77NG3/af/vs06igBu3/af/vs0bf9p/8Avs06igBu3/af/vs0 bf8Aaf8A77NO
ooAY8SupV9zA9QWJqP7Hb/8APJanooAhW1gRgyxhSO44qTyx6t/30adRQA3y x6t/30aPLHq3
/fRp1FAFW6UKUxnv1JNFLd9U/H+lFAiXzVQbWV8gnoAR1J9aPtEf92T/AL5H +NV7i+S2cLIW
ywJG1M8ZI9R6VF/a0PrJ/wB+x/8AFVXK2F0XftEf92T/AL5H+NH2iP8Auyf9 8j/Gqf8Aa0Pr
J/37H/xVH9qw+sn/AH7H/wAVRyvsF0XPtEf92T/vkf400zrvJ2PjAA4+v+NV f7Vh9ZP+/Y/+
Ko/tSH1k/wC/Y/8AiqOV9gui19oX+4/5UfaF/uP+VVv7Uh9X/wC/Y/8AiqP7 Uh9X/wC/Y/8A
iqOVhdFn7Qv9x/yo+0L/AHH/ACqt/acXq/8A37H/AMVS/wBpxer/APfsf/FU crC6LH2hf7j/
AJUfaF/uP+VV/wC0ovV/+/Y/+Ko/tKL1f/v2P/iqOVhdE4nG8tsfBAHT60PK jjDRuRkHp3By
Kg/tGL1f/v2P/iqX+0YvV/8Av2P/AIqjlYXRP9oX+4/5UfaF/uP+VQf2jF6v /wB+x/8AFUf2
hH6v/wB+x/8AFUcrC6J/tC/3H/Kj7Qv9x/yqH+0I/V/+/Y/+Ko+3x+rf9+// ALKjlYXRN9oX
+4/5UfaF/uP+VQ/b4/Vv+/f/ANlR9uj/ALzf9+//ALKjlYXRN9oX+4/5UfaF /uP+VRfbo/7z
f9+//sqPtsf95v8Av3/9lRysLol+0L/cf8qPtC/3H/Kovtqf3m/79/8A2VL9 tT+83/fv/wCy
o5WF0SfaF/uP+VH2hf7j/lUf2xP7zf8Afv8A+yo+2J/eb/v3/wDZUcrC6JPt C/3H/Kj7Qv8A
cf8AKo/taf3m/wC/f/2VL9rT+83/AH7/APsqOVhdD/tC/wBx/wAqPtC/3H/K mfa0/vN/37/+
yo+1L/eP/fv/AOyo5WF0P+0L/cf8qPtC/wBx/wAqb9qX+8f+/f8A9lR9pX+8 f+/f/wBlRysL
od9oX+4/5UfaF/uP+VN+0r/eP/fv/wCyo+0L/eP/AH7/APsqOVhdDvtC/wBx /wAqPtC/3H/K
k+0L/eP/AHx/9lR56/3j/wB8f/Xo5WF0L9oX+4/5UfaF/uP+VJ54/vH/AL4/ +vS+eP7x/wC+
P/r0crC6D7Qv9x/yo+0L/cf8qPOH98/98f8A16POH98/98f/AF6OVhdB9oX+ 4/5UfaF/uP8A
lS+aP75/74/+vR5o/v8A/jn/ANejlYXQn2hf7j/lR9oX+4/5UvmD+/8A+Of/ AF6PM/2//HP/
AK9HKxXQn2hf7j/lR9oX+4/5U7zP9v8A8c/+vRv/ANv/AMc/+vRysd0N+0L/ AHH/ACo+0L/c
f8qdv/2//HP/AK9Lu/2//HP/AK9HKxXQz7Qv9x/yo+0L/cf8qfu/2/8Axz/6 9Gf9v/xz/wCv
RysLoZ9oX+4/5UfaF/uP+VPyf7//AI5/9elyf7//AI5/9ejlYXRH9oX+4/5U faF/uP8AlUnP
9/8A8c/+vRz/AHx/3x/9elysd0R/aF/uP+VH2hf7j/lUnP8AfH/fH/16Of74 /wC+P/r0crC6
I/tC/wBx/wAqPtC/3H/KpOf74/74/wDr0c/3x/3x/wDXo5WF0R/aF/uP+VH2 hf7j/lUnP98f
98f/AF6Of74/74/+vRysLoj+0L/cf8qPtC/3H/KpOf74/wC+P/r0c/3x/wB8 f/XoswuitO/m
bcKwxnqKKs8/3x/3x/8AXooswujKvv8AkJWv4f8AobVr/P521U7t95Pl745x 9Kx78hdRtiSA
BySf99qtXN2EmVoJbdgzEZ3cqTnk+2DVuLlZIV7DtSZjYzq6xBkZR+7z69+K yYIopI5GeR1K
DcQqA8ZA9R61qX8tqNLMMEyOwIJ55Y55J96yI5NiSrjO9dv05B/pVx20JYqw SMgZQGBOMKQT
1x061KLVvLboXDKBtcEYIbOSPpTkvdsPl4kHCjCyYUYIOQMcHjr6k0Ne5VlW MYYrncc7gM/e
wBk89fYd+arUWhC0TogdsAHoNwz+XWp4rQP8uX3iPzGCLuPJGAB9Dn8famTT rJEsaq2AersG
IHoDgYHtStMpjJHLPGI2HpgjB/ID8c0agSx2QdypMi8gDemDnKjkZ/2v5VCL aUkgBTg44ccn
0HPJ+lOguzBGFVASDuBJ91P/ALL+tPju/KQpGJVUHcoEmOcDrgcjj2pahoQv E8YUuuNwyOeo
9ae9rKm7co+XrhgenX8u/pTJZPMcNjGFVfyAH9Kma63OzbOrSN1/vDH6U9QE itncjlQCCchg
ccE4PPHTvSw2zPKgfAVnCnDDJ5xx6/WpDe5TbtfBPIL8AYIIUY46+/QUxLhF aNvLYmI/L83b
dnB49zS1DQb9nkyBhT/tBhj8849PzFPhtXeZUcBVLAE7gM/T1/D2pILkxIEA YdclWwecdD/w
GnrdDzFd0Ztj71+fnt1JBz0HpRqGhFEiucMzDsAq7iTQImMjIpVtvVs8fXNL DIiBgyMS3GVb
BA79jRHIqM42ko4wRnnGc9ce3pQA8wbIC7fe3YHzAY6c+/XtSJGrITvO4AnG OAPc/wCeoolm
81VXbgKeOe2AB/KlEkfkhCjZ65DYBPYkYo1AWKAyRlgQMZ6kAHBHfPvSLBIw XCg7sYGRnnpx
2pY5gsXlspKnOcHB5x/8TUi3ZATIc7dvG/5cDHb8KNQ0IzBIB90H/dIOfypR F95SRvC7htYE
HHXp7c/hSpPtUDB4XbkHB+9uzTjMpZnxg7doHUnPUk9+Cf0o1AgpaSlpiFpa SloAWiiikAtL
SUtAC0UUUALS0lLQAtLSUtABS0lLQAtLSUtABS0lLQAtLSUtIApaSloAWlpK WgBaKKKAFooo
oAKKKKACiiikAUUUUDFooooAKKKKAKs+npdMskkjKRkAKvbcai/saH/ntJ/3 yK0F+4Pqf/Qj
S1nzNGlkZn9lQ+f5Ylk+4WJwPUD+tP8A7Hh/57Sf98irQ/4/f+2J/wDQhTLu aSPCIhJkGFbP
Q0czCyKs2mQwwvJ5sh2jONo5qQ6PCCR5z8f7IqW4jEWnsg6KuKtv99vrRzML Iz/7Ih/57P8A
98imR6ZC+/8AeuArlfujngf41asAFs4wGDDnkfU0626Tf9dm/kKOZhZFb+yY v+ez/wDfI/xp
f7Ji/wCez/8AfI/xpUyq+aHcu05TBYkEbyOnsOePT60kV1cyJuEI+dN6DIHc f7XPB9unvRzM
LIP7Ki/57P8A98j/ABo/sqL/AJ7P/wB8j/GpIZpJnCq6YUAsTGRnkjABPGNv vUX2mcxwOfLD
yoCOpAyyDpnnqf8APU5mFkL/AGXF/wA9n/75H+NL/ZcX/PZ/++R/jSrJM14s e9QUDBsKcN9w
9M8H5vemwXMjQo/y7AY0K8kksF5zn/a9+lHMwshf7Mi/57P/AN8j/Gj+zI/+ ez/98j/Gn2s8
r+V5pQ+bH5g2qRt6cdTnr+lWqOZhZFP+zI/+ez/98j/Gj+zY/wDns3/fP/16 uUUczCyKf9mx
/wDPZv8Avn/69H9nR/8APVv++f8A69XKKOZhZFT+zo/+erf98/8A16P7Pj/5 6t/3z/8AXq3R
RzMLIqf2en/PVv8Avn/69L/Z6f8APVv++f8A69WqKOZhZFX7An/PVv8Avn/6 9H2BP+erf98/
/Xq1RRzMLIq/YU/56t/3z/8AXpfsKf8APVv++f8A69WaKOZhZFb7En/PVv8A vn/69H2Jf+ep
/wC+f/r1Zoo5mFkV/sS/89T/AN8//Xo+xr/z1P8A3x/9erFFHMwsiv8AY1/5 6n/vj/69H2Rf
+ep/74/+vViijmYWRB9kX/nqf++P/r0fZV/56n/vj/69T0UczCyIPso/56n/ AL4/+vS/ZR/z
0P8A3x/9epqKOZhZFbyR5/l7z9wsTt9wPX3p/wBmH/PQ/wDfH/16B/x+/wDb E/8AoQqtdswu
JNvmfLGpVlfCoSW5YZ5HTseBRzMVkWvs4/56H/vj/wCvR9nH/PT/AMc/+vUL XE32llWMeWrq
hJx3x3z79MH9eEW4mLCNtqSswG0ofk4J65w33e2P6UczCyJ/IH/PT/xz/wCv R5H/AE0/8c/+
vUAu5PKuDhcxRkjjqQWH5fLSieZgP9WpeVo1OCcY3cn8sfr7UczCyJ/I/wCm n/jn/wBejyf+
mn/jn/16gNxOJyuwFEZUZuACSBzy3HXpg/WrdLmY7IiaPapYycAZ+5/9eiNC 8SOXxuUNjb0y
M+tPl/1T/wC6abEA1rEDnBiUcHH8Ip8zFZC+V/00/wDHP/r0eX/00/8AHP8A 69Uop5ktgwYF
Y7dZW35ZmJyTznjp71LdB3uIkTJGxiR5rJ3XuPrRzMLIseWf+en/AI5/9el2 H/np/wCOf/Xq
sJpEJ4UJG6RleWJJ287v+Benb3qvE8j2cIBUJG0KkYyT9w5znjr6dqOZhZGj sP8Az0/8c/8A
r0bD/wA9B/3x/wDXqkt5cGNXMSgSBSgYgdWAxwST97rgfTmry52jcQTjkgYp czHZEcWZYg+8
AEnA2ehI9fan7D/z0H/fH/16jtP+PWP/AIF/6Eaiilk+yWoUjfKqjc3P8Oc+ /SjmYrIs7D/z
0H/fH/16Nh/56D/vj/69V4Z5ZpCgKLs++SpO75mHHPH3ffrUMl1M+FX5VkKt G+3HG9R65PDe
3+BzMdkXth/56D/vj/69Gw/89B/3x/8AXqsssxuHhVkDZJLFSRwqds8fe9ab FdyyL5uEEe5F
2YOfmC98/wC16dqLsLIt7D/z0H/fH/16ZISmz5wSzhR8nqfrUtQ3HWH/AK7J /Oi7CyJNh/56
D/vj/wCvRTqKLsLIjC3DD92se0E/eLZ6n0FHl3npD+bf4VMJhBYtKRnaW4zj PzGslry5YGX7
QVyT8oHGeMAe3T/6+fmLDtctuJopfNka3UlCvzMQMZHPT/Oab9pb/n4s/wDv 4f8ACq9/c/a7
FJCAG2MDg8Z3J/n/ADmserjC6Ibsbs0pliaM3FmAwxkSH/CpXuW3tma0U56G Q5H6VztS3f8A
x9zf9dG/nVezQcxt/aW/5+LP/v4f8KRJTGrET2mHctkyHGcDjp/nNYFSt/x6 R/8AXR/5LR7N
BzGwrojl0ewV26sGwT+lJuiw43afhzlvm+99eOay1tgwB81QrBQrNwCxxkH0 xzz7D1FPa0jU
tvadAibzvhweoAwN3v8ApS5EHMzSLodmXsDs+5lvu/TjimyFJYwjS2O0YwA/ YEHHTpwKyXgY
ZZPmTbvDdPlzjp9eKdbW/n7sttxhV4zuc9F9s4PNHIg5jWDoFVQ9gFU5UbuA fUcUB0DKwewD
KMKd3IHoOKx/s0piEgC7SCQNwyQOpx17H8qSOCSVdyAEZwMkDJ9B6n2FP2a7 hzG0Jgu3E1iN
owMOeB6dPYU77S3/AD8Wf/fw/wCFZD2j7h5YyCqkZYAklQSB69eg9qb9kmwC FU5AIG8Z55Ax
nqew6mlyLuHMzZ+0t/z8Wf8A38P+FH2lv+fiz/7+H/CsVbWZgu1QSxAA3DPP TI6gcjk+op6W
cjb8lBtXcDvUqeQMZzgdf85o5F3DmZr/AGlv+fiz/wC/h/wo+0t/z8Wf/fw/ 4VhJDJJG7quV
T7xz06/4VNFZu0oWQADBJww4wCcH+6eO/wDSjkQczNf7S3/PxZ/9/D/hR9pb /n4s/wDv4f8A
CsVrd8MyqNoJwN4JIHceo9xxwaU2kyyMjKqsvXc4AH4k+39aORdw5mbP2lv+ fiz/AO/h/wAK
PtLf8/Fn/wB/D/hWKbWZU3FQOCdpYbuCQfl69j+VH2WUMFIUHGTl1+X688fj RyLuHMza+0t/
z8Wf/fw/4UfaW/5+LP8A7+H/AArDEEjTeUAN+M8kAYxnOemMc5pWtpUxuCgE 4zuGB6Z9M9vW
j2a7hzG39pb/AJ+LP/v4f8KPtLf8/Fn/AN/D/hWG8EkalmA2ggZBBBznGCOv Q/lSrbStLJHh
Q0ed25gAOcdTx1o9mu4cxt/aW/5+LP8A7+H/AAo+0t/z8Wf/AH8P+FYotZiS NoyDgZYfN9PX
t09R60k8Bh2ZZSHUMMEZ5API7daORBzM2/tLf8/Fn/38P+FH2lv+fiz/AO/h /wAKyLm0aGd0
XaUDlQd4OOeM+n4471E8EkalmA2ggZBBBznGCOvQ/lRyIOZm59pb/n4s/wDv 4f8ACj7S3/Px
Z/8Afw/4VitazKG3KAVJBG4Z464HUjg8j0NMiheXOzaSOxYAn6Dv+FHs13Dm N37S3/PxZ/8A
fw/4UfaW/wCfiz/7+H/CsOKB5VZl2gKQCWcL1+p9jQIJCrHAyhIZSRuGOvHW n7NBzG59pb/n
4s/+/h/wo+0t/wA/Fn/38P8AhWM9pNHu3Kvy5zhwenXoe3f0pkkEkS7nAAzg 4IOD6H0PsaXI
u4czNsSnzTKJ7QkJtOJDgDI56f5zR9o+Yt59lkjBPmH/AArFh/1U/wD1zH/o S01YXeMuNoUd
2YDP0z1/Cj2aDmNoOgZWD2AZRhTu5A9BxSBohGYw2nhCcld3B/DFZK2sr7do UhhnIdeOM888
cA9fSl+yTEgbV5z/ABjA4zzzxwCR60ci7hzM1XaJ1VXbT2CjCgtnH04pzSqy FGksShOSpfg8
59PWsoWj+UxIy4ZQMMCpBDZOen8PX61DJG0TYcDkZBBBB+hHWjkQcxtB0DKw ewDKMKd3IHoO
Kf8AaW/5+LP/AL+H/CsT7NLnGzvjqMHjOfpjnPSpLezeS4RGKhC4UkSLz0zg 55PPbNHIu4cz
NZrgspU3FngjH+sP+FHm7Y1iaWz2hAuGkPIx9O9YFTTqWmVVBJKIAB3+UU/Z oOY11dFUqr2A
UjBAbgj06e5/OnfaPmDefZZAwD5h/wAKyFs5GyBtJBHR1I6E8nPH3TSfZJiQ Nq85/jGBxnnn
jgEj1pci7hzM1zKpkEhksS4GA2/kfjimloiysW08lAAp3dMdMcVmC0fymJGX DKBhgVIIbJz0
/h6/WoZI2ibDgcjIIIIP0I60ciDmNoOiliHsAWOWIbqeuTxT/tLf8/Fn/wB/ D/hXP0U/ZoOY
30lMUSIJ7TAyQTIeckn0/D8KjHkqrKDpwVvvANwfrxWTN/qoP+uZ/wDQmqae xdJXEeNisRl3
Vf4mA6n/AGTS5EHMaRdDsy9gdn3Mt936ccUgaIMzBtPBcEMd3XPXPFZH2aUI WKYxngkBuOvH
X1/I+lOtoopjteR0bk8ICAAMk9R70ciDmNUtEybGbTyuc4LcdMenpTvOBzma x5IJ+c8kd+ns
KwaKfs0HMdB9pb/n4s/+/h/wpDKZGjHn2hKuGAWQ5JB6dKwKltP+PuH/AK6L /Oj2aDmOi8u8
9Ifzb/CitCisiiqiJLaNE7YDFgcHB6msttOuQWQNG6dMkgD2OPxP69c/NrwM EtizHABYk/ia
rteTkeaiR+TyeTz9PqaOaxcYt7FO/tTFaJFFulIRskc87k/LoayPstx/zwl/ 74NdbHKs0cci
fdb/AOvUtWp2M3E437Lcf88Jf++DUtzbTtdTFYZCC5IIU8811tNT7i/Sn7Ri 5Tj/ALLcf88J
f++DUrW0/wBljHkyZDscbT6LXW00ffP0H9aPaMOU5bZKU8trOXywBgBSCDxk 5x35/T0FSLvW
NohZXHlEHjPzZJU9dv8AsjtW+15EgJbcMFgwxyoUEkkenT/voetI12y7d1rM GZtqrlMk4J/v
e1LnCxzjxTPkfZJdoXbGNp+XnOenPf8AOnQm7giCRW7Ah95YxZz0x1Hbn866 aOZHA52sTtKt
wQcZx+XP056U24uUt9m8Mdxx8v8ACO7H0A7n3o5w5TnXM7Sh1s5FAR0ChTxu 3e3bd+lFu11B
F5YguQAxYbCy5Jx1wORx7d66Tz4fO8nzY/N/ubhu9elK80cbKskiKznChmAL H2o5wsc6s10q
hRb3KhQMBCy5IUDnA5Hy+3emq1wrq32SU7Wibof4Bj0710Ed1GwHmOkbM7Iq swyxDEcf5707
7TAWK+fHuDbCN4yG9PrwaOfyHY59JrpRFm3uTsK/LltmFx0GOvHv3qKITpB5 LWszIS27AIPO
08ceqiumM8Id0MsYZBuZdwyo9T6VG19bKqP50ZRn2bww2g4J5P4frRzhY5kQ 3AgeL7PL8zK2
dp7A/wCNWZJrqQktb3JLBshixAJUjgY4HPvXRtIiEBnVSegJxnkD+ZH51DNe QxxSMskbGMhW
G8fKScDPpzRzisc+rXQthD5FzwpUAFgpBz1GOTye/pSrJcrLO32e5UTPvPlk qR14zjpzXRJc
RsY0MkfmOoYKHByPb1HvQ1zAqb2njCZA3FxjJGR+nNHP5Dsc2xuWkVzay5CO h4PO7dzz/vfp
Tg06zPKtrcq0oPmFSQeSD8vHHI9+K6Pz4fO8nzY/N/ubhu9elJ9pgAcmePEZ w/zj5T7+lHOK
xzJFybhpTbzHcpX5gSeV25J/z+FSK1wp/wCPSX+DscjapXI4685B7V0jTRrF 5rSII8A7ywxg
9OaRZ4WDFZYyEAZiGHAIyCfwo5wsc/5lwZPM8m4BSLau8Fyx3ZHOOx5/4Djv VWOG4RJV+zyn
zF2/dPHIP9K6tJo5ApjkRwwJG1gcgdaR54Y41keWNUboxYAH8aOcLHOB58xs 1nMTEVKYB6hV
HPHI+UelQzRTy7D9mmDhQpO04OAAOMccCupM8K+XmWMeZ9zLD5vp69aSC4jn 3iNgWRirLkZB
BI5/KjnCxzoa4Esr/ZJf3kvmdDlfvdOOvzcH2pWluvOWRbe4+VNuXyxJyWBz jscflW9bXkNx
biUSRjCBnAcHZkZ5qVJo5ApjkRwwJG1gcgdaOfyHY5pWuhbCHyLnhSoALBSD nqMcnk9/Sls2
uLbH+jXHDbvkyu72bg5HH6mujE8JdEEsZZxuVdwyw9R60rzRxsqySIrOcKGY AsfajnFY5QQ3
AgeL7PL8zK2dp7A/41aM1wfN/wBFuF37/lUkL82eSMckZ6+wroJZ4YMedLHH npvYDNKZoxKI
jIgkYZCFhkj6Uc4WObZrhnZvsko3NK3Q/wAYx6dqS6a6uVw0FzktuIYsQD7D HA5966NLmCQq
I543LEgbXByR1pyTRyMyxyIzIcMFYEqfejnCxysVtOI5wYZBlAB8p5+YU6JZ 44HjNtM27OAR
lRkYzjHX3zXUt1X6/wBKR5o42VZJEVnOFDMAWPtRzhynPNNcGMr9luPmzwSS q5VhhRjgfN09
qSFpdzCS1mCsgBwp7Rsvp3z+FdB9pgAcmePEZw/zj5T7+lH2mDazefHtUAsd 4wAemfrRzDsc
8klxGAsdpMqrgL13AfNnnHX5zz7DrUUyzzMxa2uGO3apcsxHOc5x9RXSfaoy 6bXRo2Rn8wMM
AKQD/P8ASpY5ElQPG6up6MpyDRziscwBMHQi1uEEfCFCQwXnjOPU5/E+2Hq8 vmq7WMuI33oE
G3njrx/sjpjvXR+dGFDeYm0rvB3DBX1+nIqG4voIbYzCWNhtYoN4+cjsKOcd jlvstx/zwl/7
4NTywTi4RxDN8qpyoIPCjoccGurpqdPxP86fOxcpzZknw4FnL8wxkjk/KwyT jk/N19vxpYWl
3MJLWYKyAHCntGy+nfP4VvfbLcjcJoymDlw4wMY9/cf5xTvtMG1m8+PaoBY7 xgA9M/Wlzjsc
8klxGAsdpMqrgL13AfNnnHX5zz7DrUNxHczyBjBcHAwC+WP510v2qMum10aN kZ/MDDACkA/z
/SpY5ElQPG6up6MpyDRziscf9luP+eEv/fBo+y3H/PCX/vg12VFP2jDlOSlt pzHABDIcIQfl
PHzGprlri4Rl+ySrubd0J7ufT/b/AErpV6t9f6VXiv4GgSSWSOHeAcO47gH+ opc4WMSWa6kV
x9nuV3FsKCwXBJPIxyeT+lVkhuEikQW8uXwCdp6dcfnj8q6szRiURGRBIwyE LDJH0qOa6WFi
CjsEXe5XGEXnk5PsemelHOFjlPstx/zwl/74NH2W4/54S/8AfBrsqKftGHKc b9luP+eEv/fB
qW2tp1uoS0MgAcEkqeOa62mv9xvpR7RhyhvX+8Pzop1FZlEEKCS1KHo24H8z VKS1udvkLEpj
4w+7HPqe/wCFXbZVMOSAfmbt7mpdi/3R+VJq5UZuOxHBCIIYogc7e/r1qamF Vyvyjr6e1LsX
+6Pypkjqan3F+lGxf7o/KkRV2L8o6elAD6aPvn6D+tGxf7o/KkCrvPyjoO1A EIinWUzAoXYk
MpOBtGdo6df8T7YgFpMjpJFFBHtcHylchfusCc7ep3Dt2q9sX+6Pyo2L/dH5 UAQxwurB2EZZ
5N799vy7fl/Ic/X6Uy5s2uZmLTOkZi8sBMZOT82cg+i1Z2L/AHR+VGxf7o/K gColrP5LCV0a
RpY5CR0O0Jnt/smi7s2nmZxhldAjAyMoABPOB97r0OOnvVvYv90flRsX+6Py oAz205yz52sJ
NwI8xlABdj0H3uG6HHTrzT5LKRo3UMmWSdRyertkVd2L/dH5UbF/uj8qAM+T TncTKNvzeYVZ
pG6sD/D0H3uvP054nmtpGuxcR7CVC4ViRkgODzjj7/6VZ2L/AHR+VGxf7o/K gCN4d93FMQpE
aMBnqCdvI/AH86pxac6LGvy/u9gDGRm3AMpPB4X7vQZ+vFaGxf7o/KjYv90f lQBUezZrtpOC
jurkmRhggDjaOD93qfX2pn2B0gtVQKWhjKMqyNGCTjJyvPUfrV7Yv90flRsX +6PyoAqJZMkL
RqUx5sbDGcYUJ9f7ppptJjbQxEJ/o5GwrKylwFK8kDK9c8Z9Ku7F/uj8qNi/ 3R+VAFcWzC0S
IbQRIrn5if4wx5PJ+vf2qM2cwwUdQR5vQkZ3OGxntwCM9s8Vc2L/AHR+VGxf 7o/KgDPFpKqk
fMkkkvDJIzlVKAHLEZ7ZHvtq5JDlrfYFVYnzjpxtIwPzFSbF/uj8qNi/3R+V AFE2UwWdVMZE
4ZGJJGwFnII454fpx0q1bxvEHRtpXezKwPJySTkdsZqTYv8AdH5UbF/uj8qA KYs5lht1V1DR
QeWcEjJ+XgHtnaRnqM01LGXy3O7y5GkyCsrMQpUKRuIz2yPcD0q9sX+6Pyo2 L/dH5UAUzYkX
JZVXyy6v/rGAXaAANg4P3ev+FLqFtNcK6xkFWQqAZGQKeeeB83bg+nvVvYv9 0flRsX+6PyoA
Y0ZN1HLkbVRlPrklf8DVJbG4CQIWVhH5fPmsAu3GRtxhuh5Pr7VobF/uj8qN i/3R+VAFKOyk
WNFLJlUgU8nqjZNOsrNrdl3YPlpsVvMZiRxzg8L06DP6c29i/wB0flRsX+6P yoAG6r9f6VBL
DI10kkRCcAO+85IBJ27cY/HIPP5zFVyvyjr6e1LsX+6PyoAz/sNw0yO7KduM sZWO751bO0jC
/dPA9aJ7WZVRkCuVkY4yf4plYdvQc1obF/uj8qNi/wB0flQBQlsJZnaRiisx LFVY8HMeBnGf
4OvbPerFtDJCvAQb33OC7OcbcdT1PA9OKn2L/dH5UbF/uj8qAKhtH2SZSNjK QxUOU2sDkAMB
nHf65PfhklrdGGUbo5Xmi8ti7bdv3sdBz97HQdPer2xf7o/KjYv90flQA6op EElvIhUMGDDa
TgHrxntT9i/3R+VIqrj7o6nt70AUjZ3DtGzyKdh4BbO0b0OM45+6eTzz+NNn tZlVGQK5WRjj
J/imVh29BzWhsX+6Pyo2L/dH5UAUJbCWZ2kYorMSxVWPBzHgZxn+Dr2z3q1a QmFG3ABnbcQH
Z+wHU8np7VLsX+6Pyo2L/dH5UAOopuxf7o/KjYv90flQAL1b6/0qlY2UlvIj OyEKm3gnrtjH
/sh/SrgVct8o6+ntS7F/uj8qAM+DTniMYbawGwsfMYAFQo+6OD93qfXpxU13 avPIWURtlNqs
x5iPPzLx15Hp90c+lrYv90flRsX+6PyoAdRTdi/3R+VGxf7o/KgB1Nf7jfSj Yv8AdH5Ujqux
vlHT0oAfRTdi/wB0flRQB//Z
--------------CBDBA64989AC3158CF9910D2--

--------------3A1C5D50D2378940A4524F08--


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: A Diagnostic Message for the Valid Schema [message #569764 is a reply to message #20113] Sun, 04 May 2003 16:55 Go to previous message
Eclipse UserFriend
Originally posted by: paechoi.earthlink.net

This is a multi-part message in MIME format.

------=_NextPart_000_0040_01C3123C.779D96A0
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0041_01C3123C.779D96A0"


------=_NextPart_001_0041_01C3123C.779D96A0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Ed,

Enclosed please find the exception I captured as below. The line #s may =
not reflect the
exact lines in the code snippet in the previous message because I added =
some debugging
codes. But the code is mainly remain same. Thank you.

java.lang.NoSuchMethodError: =
org.eclipse.emf.ecore.impl.EObjectImpl.eDerivedStructuralFea tureID(Lorg/e=
clipse/emf/ecore/EStructuralFeature;)I
at org.eclipse.xsd.impl.XSDSchemaImpl.eIsSet(XSDSchemaImpl.java :2659)
at =
org.eclipse.emf.ecore.util.EContentsEList.size(EContentsELis t.java:130)
at java.util.ArrayList.<init>(ArrayList.java:128)
at =
org.eclipse.xsd.impl.XSDConcreteComponentImpl.reconcileConte nts(XSDConcre=
teComponentImpl.java:977)
at =
org.eclipse.xsd.impl.XSDConcreteComponentImpl.reconcile(XSDC oncreteCompon=
entImpl.java:952)
at =
org.eclipse.xsd.impl.XSDConcreteComponentImpl.changeAttribut e(XSDConcrete=
ComponentImpl.java:1232)
at =
org.eclipse.xsd.impl.XSDSchemaImpl.changeAttribute(XSDSchema Impl.java:224=
4)
at =
org.eclipse.xsd.impl.XSDConcreteComponentImpl.eNotify(XSDCon creteComponen=
tImpl.java:1205)
at =
org.eclipse.xsd.impl.XSDConcreteComponentImpl.setElementGen( XSDConcreteCo=
mponentImpl.java:2797)
at =
org.eclipse.xsd.impl.XSDConcreteComponentImpl.setElement(XSD ConcreteCompo=
nentImpl.java:2829)
at =
org.eclipse.xsd.impl.XSDSchemaImpl.setElement(XSDSchemaImpl. java:2367)
at org.paechoi.xsd.test.EclipseXSDDemo1.doIt(EclipseXSDDemo1.ja va:104)
at org.paechoi.xsd.test.EclipseXSDDemo1.main(EclipseXSDDemo1.ja va:128)

Regards,


Pae

P.S.: I am using XSD v1.1.0 and EMF v1.0.2

"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB4F504.6527C9F2@ca.ibm.com...
Pae,=20
No, the standalone version worked too. What exception did you see?=20
=20

Pae Choi wrote:=20

Ed, That surely helped with v1.0.2. And THANK you for that. One =
quick question is: Do you also have an exception thrown when running =
with v1.1.0 as standalone. Regards, Pae =20
"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB3A206.9781C42@ca.ibm.com...Pae,=20
The XSD model expects a DOM that's namespace aware, so this =
addition to your sample code will improve your result:=20

private Document openXMLDOM(String uri) {=20
// Create a factory object for creating DOM parsers=20
DocumentBuilderFactory factory =3D =
DocumentBuilderFactory.newInstance();=20
DocumentBuilder builder =3D null;=20
Document xmlDoc =3D null;=20

factory.setNamespaceAware(true);=20

Without this, element.getNamespaceURI and element.getLocalName =
both return null...=20
=20

Pae Choi wrote:=20

Ed, I have a sample code that test a DOM of XML Schema with =
Eclipse/XSD andproducing two different results. With v1.0.2, it seems ok =
except the diagnostic message we are discussing.With v1.1.0, it throws =
an exception. Regards, Pae P.S.: The code snippet is as follows: // =
################## CODE SNIPPET ##################/*=20
* EclipseXSDDemo1.java=20
*=20
* Created on May 2, 2003, 11:13 PM=20
*/ package org.paechoi.xsd.test; // W3C/DOM=20
import javax.xml.parsers.DocumentBuilderFactory;=20
import javax.xml.parsers.DocumentBuilder;=20
import org.w3c.dom.Document;=20
import org.w3c.dom.Element;=20
// Eclipse/XSD=20
import org.eclipse.xsd.XSDFactory;=20
import org.eclipse.xsd.XSDSchema;=20
import org.eclipse.xsd.impl.XSDSchemaImpl;=20
import org.eclipse.xsd.util.XSDResourceImpl;=20
import org.eclipse.xsd.util.XSDResourceFactoryImpl;=20
import org.eclipse.xsd.XSDDiagnostic;=20
import org.eclipse.emf.ecore.resource.Resource;=20
import org.eclipse.emf.ecore.resource.ResourceSet;=20
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;=20
import org.eclipse.emf.common.util.EList;=20
import java.io.File;=20
/**=20
*=20
* @author pae=20
*/=20
public class EclipseXSDDemo1 {=20
// private Document xmlDOM =3D null;=20
// instance initializer=20
{=20
// =
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =
new XSDResourceFactoryImpl());=20
}=20

/** Creates a new instance of EclipseXSDDemo1 */=20
public EclipseXSDDemo1() {=20
super();=20
}=20

/** Open a XML DOM */=20
private Document openXMLDOM(String uri) {=20
// Create a factory object for creating DOM parsers=20
DocumentBuilderFactory factory =3D =
DocumentBuilderFactory.newInstance();=20
DocumentBuilder builder =3D null;=20
Document xmlDoc =3D null;=20

// Build a new DOM=20
try {=20
// Now use the factory to create a DOM parser =
(a.k.a. a DocumentBuilder)=20
builder =3D factory.newDocumentBuilder();=20
xmlDoc =3D builder.parse(uri);=20
}=20
catch (Exception ex) {=20
ex.printStackTrace();=20
return null;=20
}=20

return xmlDoc;=20
}=20

/** doIt */=20
private void doIt() {=20
Document xmlDOM =3D =
openXMLDOM("http://schemas.xmlsoap.org/wsdl/");=20
// Document xmlDOM =3D openXMLDOM("./wsdl.xsd"); =
Element rootElement =3D xmlDOM.getDocumentElement(); XSDSchema =
xsdSchema =3D XSDFactory.eINSTANCE.createXSDSchema();=20
xsdSchema.setDocument(xmlDOM);=20
xsdSchema.setElement(rootElement);=20
xsdSchema.updateElement(); =
System.out.println("\n\n");=20
XSDResourceImpl.serialize(System.out, =
xsdSchema.getElement()); =
System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION =
>>>>>>>>>>>>>>>>>>>>>>>>>>");=20
xsdSchema.validate();=20
//EList eList =3D xsdMainSchema.getDiagnostics();=20
EList eList =3D xsdSchema.getAllDiagnostics();=20
for (int i =3D 0; i < eList.size(); i++) {=20
XSDDiagnostic xsdDiagnostic =3D =
(XSDDiagnostic)eList.get(i);=20
System.out.println(i + ": Diagnostic Message =3D [" =
+ xsdDiagnostic.getMessage() + "]");=20
}=20
=
System.out.println("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<=
<<<<<<<");=20
}=20

/** main - the main entry */=20
public static void main(String[] args) {=20
EclipseXSDDemo1 app =3D new EclipseXSDDemo1();=20
app.doIt();=20
}=20
}=20

"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB25ED9.AE2CB299@ca.ibm.com...Pae,=20
I'm seeing this result with the just published 1.1.0 driver:=20


The schema isn't valid.=20
=20
Pae Choi wrote:=20

I have a simple test schema as follows:=20
<?xml version=3D"1.0" encoding=3D"UTF-8"?>=20
<!--W3C Schema generated by Pae -->=20
<xsd:schema xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema"=20
elementFormDefault=3D"qualified">=20
<xsd:element name=3D"CommonLogin">=20
<xsd:complexType>=20
<xsd:sequence>=20
<xsd:element name=3D"username" ref=3D"usernameRef"/>=20
<xsd:element name=3D"password" ref=3D"passwordRef"/>=20
</xsd:sequence>=20
</xsd:complexType>=20
</xsd:element>=20
<xsd:element name=3D"passwordRef" type=3D"xsd:string"/>=20
<xsd:element name=3D"usernameRef" type=3D"xsd:string"/>=20
</xsd:schema>=20

This is a very simple sample, but it is a valid schema. But =
when=20
I use the validate() and getDiagnostics() methods in the =
XSDSchema=20
interface it gives me a message as follows:=20

XSD: The element '#null' is not permitted as constrained by =
'XML Schema ';=20
expecting schema=20

I do not understand what the message is saying. Any =
comments?=20

Pae


------=_NextPart_001_0041_01C3123C.779D96A0
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2600.0" name=3DGENERATOR></HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT size=3D2>Ed,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Enclosed please find the exception I captured as =
below. The=20
line #s may not reflect the</FONT></DIV>
<DIV><FONT size=3D2>exact lines in the code snippet in the previous =
message=20
because I added some debugging</FONT></DIV>
<DIV><FONT size=3D2>codes. But the code is mainly remain same. Thank=20
you.</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>java.lang.NoSuchMethodError:=20
org.eclipse.emf.ecore.impl.EObjectImpl.eDerivedStructuralFea tureID(Lorg/e=
clipse/emf/ecore/EStructuralFeature;)I<BR>&nbsp;at=20
org.eclipse.xsd.impl.XSDSchemaImpl.eIsSet(XSDSchemaImpl.java :2659) <BR>&nb=
sp;at=20
org.eclipse.emf.ecore.util.EContentsEList.size(EContentsELis t.java:130) <B=
R>&nbsp;at=20
java.util.ArrayList.&lt;init&gt;(ArrayList.java:128) <BR>&nbsp;at=20
org.eclipse.xsd.impl.XSDConcreteComponentImpl.reconcileConte nts(XSDConcre=
teComponentImpl.java:977)<BR>&nbsp;at=20
org.eclipse.xsd.impl.XSDConcreteComponentImpl.reconcile(XSDC oncreteCompon=
entImpl.java:952)<BR>&nbsp;at=20
org.eclipse.xsd.impl.XSDConcreteComponentImpl.changeAttribut e(XSDConcrete=
ComponentImpl.java:1232)<BR>&nbsp;at=20
org.eclipse.xsd.impl.XSDSchemaImpl.changeAttribute(XSDSchema Impl.java:224=
4)<BR>&nbsp;at=20
org.eclipse.xsd.impl.XSDConcreteComponentImpl.eNotify(XSDCon creteComponen=
tImpl.java:1205)<BR>&nbsp;at=20
org.eclipse.xsd.impl.XSDConcreteComponentImpl.setElementGen( XSDConcreteCo=
mponentImpl.java:2797)<BR>&nbsp;at=20
org.eclipse.xsd.impl.XSDConcreteComponentImpl.setElement(XSD ConcreteCompo=
nentImpl.java:2829)<BR>&nbsp;at=20
org.eclipse.xsd.impl.XSDSchemaImpl.setElement(XSDSchemaImpl. java:2367) <BR=
>&nbsp;at=20
org.paechoi.xsd.test.EclipseXSDDemo1.doIt(EclipseXSDDemo1.ja va:104) <BR>&n=
bsp;at=20
org.paechoi.xsd.test.EclipseXSDDemo1.main(EclipseXSDDemo1.ja va:128) </FONT=
></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Regards,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Pae</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>P.S.: I am using XSD v1.1.0 and EMF =
v1.0.2</FONT></DIV>
<DIV>&nbsp;</DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV>"Ed Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB4F504.6527C9F2@ca.ibm.com">news:3EB4F504.6527C9F2@ca.ibm.=
com</A>...</DIV>Pae,=20

<P>No, the standalone version worked too.&nbsp; What exception did you =
see?=20
<BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">&nbsp;<FONT size=3D-1>Ed,</FONT>&nbsp;<FONT=20
size=3D-1>That surely helped with v1.0.2. And THANK you for that. =
One quick=20
question is:</FONT>&nbsp;<FONT size=3D-1>Do you also have an =
exception thrown=20
when running with v1.1.0 as standalone.</FONT>&nbsp;<FONT=20
size=3D-1>Regards,</FONT>&nbsp;&nbsp;<FONT =
size=3D-1>Pae</FONT>&nbsp;=20
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed=20
Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB3A206.9781C42@ca.ibm.com">news:3EB3A206.9781C42@ca.ibm.co=
m</A>...Pae,=20

<P>The XSD model expects a DOM that's namespace aware, so <FONT=20
color=3D#3333ff>this</FONT> addition to your sample code will =
improve your=20
result:=20
<P>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String uri) {=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create a factory =
object=20
for creating DOM parsers =
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilderFactory&nbsp; factory =3D=20
DocumentBuilderFactory.newInstance();=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp; =
builder =3D=20
null; <BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D null;=20
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT =
color=3D#3333ff>&nbsp;&nbsp;=20
factory.setNamespaceAware(true);</FONT>=20
<P>Without this, element.getNamespaceURI and element.getLocalName =
both=20
return null... <BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">
<STYLE></STYLE>
<FONT size=3D-1>Ed,</FONT> <FONT size=3D-1>I have a sample code =
that test a=20
DOM of XML Schema with Eclipse/XSD andproducing two different=20
results.</FONT> <FONT size=3D-1>With v1.0.2, it seems ok except =
the=20
diagnostic message we are discussing.With v1.1.0, it throws an=20
exception.</FONT> <FONT size=3D-1>Regards,</FONT>&nbsp; <FONT=20
size=3D-1>Pae</FONT> <FONT size=3D-1>P.S.: The code snippet is =
as=20
follows:</FONT> <FONT size=3D-1>// ################## CODE =
SNIPPET=20
##################/*</FONT> <BR><FONT size=3D-1>&nbsp;*=20
EclipseXSDDemo1.java</FONT> <BR><FONT size=3D-1>&nbsp;*</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;* Created on May 2, 2003, 11:13 PM</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;*/</FONT> <FONT size=3D-1>package=20
org.paechoi.xsd.test;</FONT> <FONT size=3D-1>// W3C/DOM</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; =
javax.xml.parsers.DocumentBuilderFactory;</FONT>=20
<BR><FONT size=3D-1>import&nbsp; =
javax.xml.parsers.DocumentBuilder;</FONT>=20
<BR><FONT size=3D-1>import&nbsp; org.w3c.dom.Document;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; org.w3c.dom.Element;</FONT> <BR><FONT =
size=3D-1>//=20
Eclipse/XSD</FONT> <BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.xsd.XSDFactory;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
org.eclipse.xsd.XSDSchema;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
org.eclipse.xsd.impl.XSDSchemaImpl;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; =
org.eclipse.xsd.util.XSDResourceImpl;</FONT>=20
<BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.xsd.util.XSDResourceFactoryImpl;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; org.eclipse.xsd.XSDDiagnostic;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; =
org.eclipse.emf.ecore.resource.Resource;</FONT>=20
<BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.emf.ecore.resource.ResourceSet;</FONT> <BR><FONT=20
size=3D-1>import&nbsp;=20
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; org.eclipse.emf.common.util.EList;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; java.io.File;</FONT> <BR><FONT =
size=3D-1>/**</FONT>=20
<BR><FONT size=3D-1>&nbsp;*</FONT> <BR><FONT size=3D-1>&nbsp;* =
@author&nbsp;=20
pae</FONT> <BR><FONT size=3D-1>&nbsp;*/</FONT> <BR><FONT =
size=3D-1>public=20
class EclipseXSDDemo1 {</FONT> <BR><FONT =
size=3D-1>//&nbsp;&nbsp;&nbsp;=20
private&nbsp;&nbsp;&nbsp;&nbsp;=20
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp; xmlDOM =3D =
null;</FONT>=20

<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; // instance =
initializer</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; {</FONT> <BR><FONT=20
size=3D-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;=20
=
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =

new XSDResourceFactoryImpl());</FONT> <BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** Creates a new instance =
of=20
EclipseXSDDemo1 */</FONT> <BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; =
public=20
EclipseXSDDemo1() {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
super();</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM =
*/</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; private Document =
openXMLDOM(String=20
uri) {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create a =
factory=20
object for creating DOM parsers</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilderFactory&nbsp; factory =3D=20
DocumentBuilderFactory.newInstance();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp; =
builder=20
=3D null;</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D null;</FONT>=20
<P><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // =
Build a=20
new DOM</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try =
{</FONT>=20
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
// Now use the factory to create a DOM parser (a.k.a. a=20
DocumentBuilder)</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
builder =3D factory.newDocumentBuilder();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xmlDoc =3D builder.parse(uri);</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT> =
<BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch =
(Exception ex)=20
{</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
ex.printStackTrace();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
return null;</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT>=20
<P><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
return=20
xmlDoc;</FONT> <BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** doIt */</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; private void doIt() {</FONT> =
<BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document =
xmlDOM =3D=20
openXMLDOM("<A=20
=
href=3D"http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl=
/</A>");</FONT>=20
<BR><FONT size=3D-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp; =
Document=20
xmlDOM =3D openXMLDOM("./wsdl.xsd");</FONT>&nbsp;<FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Element =
rootElement =3D=20
xmlDOM.getDocumentElement();</FONT>&nbsp;<FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; XSDSchema =
xsdSchema =3D=20
XSDFactory.eINSTANCE.createXSDSchema();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
xsdSchema.setDocument(xmlDOM);</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
xsdSchema.setElement(rootElement);</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
xsdSchema.updateElement();</FONT>&nbsp;<FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
System.out.println("\n\n");</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
XSDResourceImpl.serialize(System.out,=20
xsdSchema.getElement());</FONT>&nbsp;<FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
System.out.println(" &gt;&gt;&gt;&gt;&gt;&gt;&gt;& ;gt;&gt;&gt;&gt;&gt;&gt;&=
gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;& amp;gt;=20
VALIDATION=20
=
&gt;&gt;&gt;&gt;&gt;&gt;&gt;& ;gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt;&gt;&=
gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;"); </FONT>=20
<BR><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
xsdSchema.validate();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; //EList =
eList =3D=20
xsdMainSchema.getDiagnostics();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; EList eList =
=3D=20
xsdSchema.getAllDiagnostics();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; for (int i =
=3D 0; i=20
&lt; eList.size(); i++) {</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
XSDDiagnostic xsdDiagnostic =3D =
(XSDDiagnostic)eList.get(i);</FONT>=20
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
System.out.println(i + ": Diagnostic Message =3D [" +=20
xsdDiagnostic.getMessage() + "]");</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT> =
<BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
System.out.println(" &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&=
lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;& amp;lt;&lt;&lt;&lt;&lt;&lt;&lt;& lt;&lt;&lt;&l=
t;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&a mp;lt;&lt;&lt;&lt;&lt;&lt;&lt;&l t;&lt;&lt;&lt=
;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&am p;lt;&lt;&lt; ");</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** main - the main entry =
*/</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; public static void =
main(String[]=20
args) {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
EclipseXSDDemo1 app =3D=20
new EclipseXSDDemo1();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
app.doIt();</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT> <BR><FONT =
size=3D-1>}</FONT>=20

<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: =
5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed=20
Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB25ED9.AE2CB299@ca.ibm.com">news:3EB25ED9.AE2CB299@ca.ibm.=
com</A>...Pae,=20

<P>I'm seeing this result with the just published 1.1.0 =
driver:=20
<BLOCKQUOTE><IMG height=3D411=20
src=3D"cid:003b01c3125d$fe9ff460$0b01a8c0@dev1"=20
width=3D502></BLOCKQUOTE>The schema isn't valid. <BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">I have a simple test schema as =
follows:=20
<P>&lt;?xml version=3D"1.0" encoding=3D"UTF-8"?&gt; =
<BR>&lt;!--W3C=20
Schema generated by Pae --&gt; <BR>&lt;xsd:schema =
xmlns:xsd=3D"<A=20
=
href=3D"http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchem=
a</A>"=20
<BR>elementFormDefault=3D"qualified"&gt; =
<BR>&nbsp;&lt;xsd:element=20
name=3D"CommonLogin"&gt; <BR>&nbsp; &lt;xsd:complexType&gt;=20
<BR>&nbsp;&nbsp; &lt;xsd:sequence&gt; <BR>&nbsp;&nbsp;&nbsp; =

&lt;xsd:element name=3D"username" ref=3D"usernameRef"/&gt;=20
<BR>&nbsp;&nbsp;&nbsp; &lt;xsd:element name=3D"password"=20
ref=3D"passwordRef"/&gt; <BR>&nbsp;&nbsp; =
&lt;/xsd:sequence&gt;=20
<BR>&nbsp; &lt;/xsd:complexType&gt; =
<BR>&nbsp;&lt;/xsd:element&gt;=20
<BR>&nbsp;&lt;xsd:element name=3D"passwordRef" =
type=3D"xsd:string"/&gt;=20
<BR>&nbsp;&lt;xsd:element name=3D"usernameRef" =
type=3D"xsd:string"/&gt;=20
<BR>&lt;/xsd:schema&gt;=20
<P>This is a very simple sample, but it is a valid schema. =
But when=20
<BR>I use the validate() and getDiagnostics() methods in the =

XSDSchema <BR>interface it gives me a message as follows:=20
<P>XSD: The element '#null' is not permitted as constrained =
by 'XML=20
Schema '; <BR>expecting schema=20
<P>I do not understand what the message is saying. Any =
comments?=20
=
<P>Pae</P></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE ></BLOCKQUOT=
E></BLOCKQUOTE></BODY></HTML>

------=_NextPart_001_0041_01C3123C.779D96A0--

------=_NextPart_000_0040_01C3123C.779D96A0
Content-Type: image/jpeg;
name="C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\nsmailFJ.jpeg"
Content-Transfer-Encoding: base64
Content-ID: <003b01c3125d$fe9ff460$0b01a8c0@dev1>

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCws MGJGSjpQdGZ6eHJm
cG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAqMF40 NF7GhHCExsbGxsbG
xsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsb/ wAARCAGbAfYDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA AgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcY GRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKT lJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP0 9fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQA AQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2 Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOk paanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMB AAIRAxEAPwDXghR4
9zbiST/EfU0m23yQBKcHHG81Ja/6kf7zfzNVLrfsTY5wGkLRrJsZueoPt6e9 NK4FpIYJEDIWKnoQ
5/xpfs0Xo3/fZ/xqKy2bmMbMUZEcZ75zzjt2qMXc+1kYBbgkbYvLyRnJ67sN wDzkdPXikBZ+zRej
f99n/Gj7NF6N/wB9n/Gqa31w+eI027VYMuTuLsmeD2xnHPpnvS/bZyJnHlhY ELMNpy5DODg54zs9
+vegC39mi9G/77P+NH2aL0b/AL7P+NUEup4hIkMQZY2kdycYwZH4yWGPu9ef 8b883lxs6FW2H5l7
n2HvyMDv075oAPs0Xo3/AH2f8aPs0Xo3/fZ/xqFriZWhLGMRPt/eKpdSSeFG Dx2+YjBz26Uy3kkm
uraaQptkgZlVVIKglDgnPP6UATyQxIudrH/gZpm2L+43/fw1NP8AcH1rJvJZ becG2JlkdSWhOSAA
PvD0/r9aQGhti/uN/wB/DTDGBI65bAPHzH0B/rUdntNurLMZt3zFyep+nb6V M/8Ar5f94fyFAxvl
j1b/AL6NHlj1b/vo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+ jTqKAG+WPVv++jR5
Y9W/76NOooAb5Y9W/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igBvlj1 b/vo0eWPVv8Avo06
igBvlj1b/vo0eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPVv++jR5Y9 W/76NOooAb5Y9W/7
6NHlj1b/AL6NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/AL6NHlj1b/vo06ig Bvlj1b/vo0eWPVv+
+jTqKAG+WPVv++jR5Y9W/wC+jTqKAG+WPVv++jR5Y9W/76NOooAb5Y9W/wC+ jR5Y9W/76NOooAb5
Y9W/76NHlj1b/vo06igBvlj1b/vo0eWPVv8Avo06igBvlj1b/vo0eWPVv++j TqKAG+WPVv8Avo0e
WPVv++jTqKAG+WPVv++jR5Y9W/76NOooAb5Y9W/76NHlj1b/AL6NOooAb5Y9 W/76NHlj1b/vo06i
gCvOTEV2MRnOcnP86KS76p+P9KKBF+1/1I/3m/majktGkBVmiZNxYK8W7Gfx 96hREIJKqTuPUe9O
8uP+4v5U7gWIYnR3d3DFgBwuMYz/AI0otoBEYhBGI2OSgQYJ+lNdbaNlVkjD OcKu0ZP0FMcwRyBW
tvlyFMmwbQT0Hqeo6DHP1oAmWCFF2pFGo44CgdDkfrzTPscBn84xIXwMZUfK QScj3yaT/Q/+mH39
nb73p9fahfsbruTyGHHIwepwP14oAkaCFipaKMlCWUlRwSckj8ad5abt2xc5 3Zx3xjP5cVCVgFws
JgXLIXDbRjggEfqKk8iH/nkn/fIoABBCJBIIo94zhtoyM5zz+J/OhIIY5GkS KNXbqwUAn8ah8yw8
vzN9tszt3ZXGfTNO/wBD87yf3Hm/3ON3r0oAklUsoAGeagFuVZmEYDN94jGT 9adusgwXNvuLbAMr
kt6fXkUM1ksvlMbcSZA2ErnJ6cUANW3KZ2RhdxycYGT60j/6+X/eH8hUgFqZ zCEiLgZIG3I6dR17
0f6H53k/uPN/ucbvXpQBHRUg+xs4QeQWJK7RjOR1H4U3zLDzPL322/O3blc5 9MUrANoprz2y3Bh+
ysSJFjyIxjJGf0HWpf8ARvtPkeSN+0tkx4GBjv369qLAMoqx5EP/ADyT/vkV X8y33f8AHt+737PM
2rtznGOuevHT9KLAFFNee2W4MP2ViRIseRGMZIz+g61a8iH/AJ5J/wB8iiwF eipP9D87yf3Hm/3O
N3r0oH2NnCDyCxJXaMZyOo/CiwEdFSH7GJDGfI3jGV4yM4xx+I/Oj/Q/O8n9 x5v9zjd69KLAR0Us
slpE4TZGz7lUqu3K5IAJHpyPzp4FqZzCEiLgZIG3I6dR170WAjoqQfY2cIPI LEldoxnI6j8KR2sk
Zlc26sgywJUED3/MfnRYBlFO8yw8zy99tvzt25XOfTFRvPbLcGH7KxIkWPIj GMkZ/QdaLAOoprzQ
r5n+hMfLkEZwqck4xjn3H5/WkeeJHKf2fKxAYjCJ8wU4JAznuPrRYB9FN86H z2iFkxKvtJCp7c4z
nHzDt3q15EP/ADyT/vkUWAr0UeZb7v8Aj2/d79nmbV25zjHXPXjp+lNee2W4 MP2ViRIseRGMZIz+
g60WAdRTnMEcgVrb5chTJsG0E9B6nqOgxz9aei20jMqpGWQ4ZdoyPqKLARUV Y8iH/nkn/fIo8iH/
AJ5J/wB8iiwFeirHkQ/88k/75FHkQ/8APJP++RRYCvRVjyIf+eSf98ijyIf+ eSf98iiwFeirHkQ/
88k/75FHkQ/88k/75FFgK9FWPIh/55J/3yKPIh/55J/3yKLAV6KseRD/AM8k /wC+RR5EP/PJP++R
RYCvRVjyIf8Ankn/AHyKPIh/55J/3yKLAV6KseRD/wA8k/75FHkQ/wDPJP8A vkUWAr0VY8iH/nkn
/fIo8iH/AJ5J/wB8iiwFeipngh2/6pOo/hFQbYv+eUfPtQMWioJlTz4FCKAS cgDrxUb3FsjlWj5B
x90UWGouWiQ676p+P9KKLtFRlAUDrnAooJJ4/un/AHj/ADp1Nj+6f94/zp1A yXyWjmMkTAhz86vk
nr2PbqeOn05NOeMyTLuAMSjP3urZ4yMdvr+HQ055Y42VWYBnOFXufoKDIBMs WDuZSw9MAj/EUxFb
7PN9s+0Yj+/jZuONuMbun3+30496rtp8zo2Y4AzCYZDE4L9D0/D6flWpRQBW dJzepIqRmNVK5LkH
BKknGPb1qzVV70L5n7iU+XIIzjbyTjGOfcfn9akFwPOEbRyKGJVXIGGIycev Y9scfSgCP7M/2rOV
+z58zb33/Tpjv67uaiWydZuUDp5pkyZ3HVt33MY4/XFWGufnwkMki7gpdAMA 5x65474/oanoAqwR
TR3c7mOLbK+dwc7sBQAMY9vXvUf2WZp8lI1XzN2VlYjGc/cIxk+vrz1qb7WC 2FhlZd+wOqgjOcHv
kY55Ixx9KkM8IkMZlj3jGV3DIzjHH4j86AInSc3qSKkZjVSuS5BwSpJxj29a Z9nmx5OI/K83zN+4
7vv78bcfh19/apo7mN5WjJ2OrlArEZbAByOeeCKd58PneT5sfm/3Nw3evSgC o9tOWnZY4d0kyOCX
IJVccH5f9n9T+Nn7NH5m/dLnOcec+Pyzj8Kcs8LruSWNhxyGB6nA/Xijz4fO 8nzY/N/ubhu9elAD
vLTdu2LnO7OO+MZ/LioHSc3qSKkZjVSuS5BwSpJxj29as1E9zAjMrzxqyDLA uAQPf8x+dAC/vvtH
/LPyNnvu3Z/LGKr/AGebHk4j8rzfM37ju+/vxtx+HX39qsefD53k+bH5v9zc N3r0oE8LOEEsZYkr
tDDOR1H4UAO8tN27Yuc7s474xn8uKdUfnw+d5Pmx+b/c3Dd69KT7TAGC+fHu LbAN4yW9PryKAKq2
TrNygdPNMmTO46tu+5jHH64oe2nLTsscO6SZHBLkEquOD8v+z+p/G358PneT 5sfm/wBzcN3r0pqX
du8zQrNGZFO0pu5z9KAIlgkVhGY4XjEpkDsSSCWJ4XHXnGc+/tSfZ5seTiPy vN8zfuO77+/G3H4d
ff2qx58PneT5sfm/3Nw3evSmS3cUThNwZ9yqVVhlckAEjPTkfnQBXltZynlo sLKs3nKzE5J37sdO
OpGefpzxM6Tm9SRUjMaqVyXIOCVJOMe3rVmoIbuKXau4JIxIEbMN3BIPAPsa AK7205adljh3STI4
JcglVxwfl/2f1P4xypJ5i2wjDBZxKHKN3fcecYGATzk9MY5q613bLu3XEQ2n a2XHB9D+R/KpqAIf
s0fmb90uc5x5z4/LOPwqTy03bti5zuzjvjGfy4qAXg81kaGRVRxGXO3GTjHf POR271L58PneT5sf
m/3Nw3evSgCB7aRpXA2eXJKkpYk5BXbxjHP3eue/tUjxyG9ikATy1RlJLHOS QemP9n170/z4fO8n
zY/N/ubhu9elSUAVYLYpeT3EkcYZz8rKxJ24AweP9kH8fzk+zR+Zv3S5znHn Pj8s4/CpqKAKP2N/
P3bIs+Zv8/P7zGc7enp8vXp+VXPLTdu2LnO7OO+MZ/LikSWORmVWBZDhl7j6 in0ARPGZJl3AGJRn
73Vs8ZGO31/Doab5LSTCSVgAh+RUyD17nv0HHT68Gp6KACiiigAooooAKKKK ACiiigAooooAKKKK
ACiiigAooooAKKKKAGyEBck4AIyT9az3EMjBmlOR0w4GKvyqrxlXUMD2IzVf 7Lb/APPCL/vgf5/z
+YBWlZWubfawOCe+f4aZJYLJIz+cRuOcbP8A69WzbwqMrDGD6hR/n/P5t8uP +4v5UXsXCcoO8SG9
OXU+uaKbdKF2BQAOen4UUiCxH90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51 fJPXse3U8dPpyakK
AzK+0ZVSN2eRkjjH4fpQ8scbKrMAznCr3P0FJ58P/PWP7+z7w+96fX2piG/Z o/M37pc5zjznx+Wc
fhR9mj8zfulznOPOfH5Zx+FK1zAsvlNPGJMgbC4zk9OKbLdxROE3Bn3KpVWG VyQASM9OR+dAEEti
73ZlDrtLhj6/wH/2mP8Avo+nMphka7WRljUIT8653MuDhSMdOc9eo6ek/mJ5 nl71343bc849cUxr
mBZfKaeMSZA2FxnJ6cUAMSOaJikflmIuX3MTuGTkjHfqecjr3xzYqMzwiQxm WPeMZXcMjOMcfiPz
psdzG8rRk7HVygViMtgA5HPPBFAEDWsjz+Y0durbw3nICHCg8DpzkDB5HXp6 uWCRWEZjheMSmQOx
JIJYnhcdecZz7+1T+fD53k+bH5v9zcN3r0oWeF13JLGw45DA9TgfrxQBUe2n LTsscO6SZHBLkEqu
OD8v+z+p/EWydZuUDp5pkyZ3HVt33MY4/XFW/Ph87yfNj83+5uG716VJQBlt p8zo2Y4AzCYZDE4L
9D0/D6flT5bKcuSmziUSAmVgG+bONo4H15zjPU8XfPh/56x/f2feH3vT6+1C zwuu5JY2HHIYHqcD
9eKAJKzJUk8xbYRhgs4lDlG7vuPOMDAJ5yemMc1fMoFwsJVsshcNxjggEfqK BPCzhBLGWJK7Qwzk
dR+FAFRbJ1m5QOnmmTJncdW3fcxjj9cUPbTlp2WOHdJMjglyCVXHB+X/AGf1 P42muYFl8pp4xJkD
YXGcnpxT/MTzPL3rvxu255x64oApLZOs3KB080yZM7jq277mMcfripYIpo7u dzHFtlfO4Od2AoAG
Me3r3qbz4f8AnrH9/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oApy2U5clNnEo kBMrAN82cbRwPrzn
Gep4srHNHcSFPLKSOHLEnI4Axjv0657+3Ky3cUThNwZ9yqVVhlckAEjPTkfn S/a7bzPL+0Rb87du
8Zz6YoArLZOs3KB080yZM7jq277mMcfriiW1nKeWiwsqzecrMTknfux046kZ 5+nPEr3yLcGHypSR
IseQvGSM/oOtSR3MbytGTsdXKBWIy2ADkc88EUATVQitZwnlusKq03nMyk5B 37sdOegGePpxzZS7
t3maFZozIp2lN3OfpQl3bvM0KzRmRTtKbuc/SgCBo99+YwH8skSyZQ4LLjHP v8p4/ue5q7UYnhZw
gljLEldoYZyOo/CneYnmeXvXfjdtzzj1xQBWitT9qmlmUYZwyASMRwAOV6Z4 z3/SoZbKcuSmziUS
AmVgG+bONo4H15zjPU8XXl2zRxgZL5J56Ad/zIH40PLtmjjAyXyTz0A7/mQP xoAqLZOs3KB080yZ
M7jq277mMcfrir9Qtd2y7t1xENp2tlxwfQ/kfyoa7tl3briIbTtbLjg+h/I/ lQAfZo/M37pc5zjz
nx+WcfhR9mj8zfulznOPOfH5Zx+FDXdsu7dcRDadrZccH0P5H8qmoAg8lpJh JKwAQ/IqZB69z36D
jp9eDU9Qtd2y7t1xENp2tlxwfQ/kfyoFwPOEbRyKGJVXIGGIycevY9scfSgC aiio/Ph87yfNj83+
5uG716UASUVF9pgDBfPj3FtgG8ZLen15FD3MCMyvPGrIMsC4BA9/zH50AS0V G8u2aOMDJfJPPQDv
+ZA/Gmi4HnCNo5FDEqrkDDEZOPXse2OPpQBNRVf7Wu7/AFcnl79nmcbc5xjr nrx0/Sj7Wu7/AFcn
l79nmcbc5xjrnrx0/SgCxRUX2hPtPkYfftLZKkDAx379e1K8u2aOMDJfJPPQ Dv8AmQPxoAkoqq96
Edk8iUsrhQo25bOcEc9OP5+hxHJqkUczxGKUusix4G3ktkjHPtQBeoqKGfzZ JU8t18ptpLYwTjPG
D6EfnTPtYLYWGVl37A6qCM5we+RjnkjHH0oAsUVGZ4RIYzLHvGMruGRnGOPx H502O5jeVoydjq5Q
KxGWwAcjnngigCaio/Ph87yfNj83+5uG716ULPC67kljYcchgepwP14oAkoq Pz4fO8nzY/N/ubhu
9elQvfItwYfKlJEix5C8ZIz+g60AWH+6aj/z/n/P/wBeR/umo/8AP+f8/wD1 wBr/AHT/AJ/z/n8Y
6kf7p/z/AJ/z+MdIZWu+qfj/AEoou+qfj/SigRPH90/7x/nTqbH90/7x/nTq BkvktHMZImBDn51f
JPXse3U8dPpyai+zzfbPtGI/v42bjjbjG7p9/t9OPerHnw+d5Pmx+b/c3Dd6 9KDKBcLCVbLIXDcY
4IBH6imIq/ZZmnyUjVfM3ZWViMZz9wjGT6+vPWkltZynlosLKs3nKzE5J37s dOOpGefpzxb8+Hzv
J82Pzf7m4bvXpQs8LruSWNhxyGB6nA/XigBvlv8AbPM2RbPL27sfPnPTPp/W q/2WZp8lI1XzN2Vl
YjGc/cIxk+vrz1q158PneT5sfm/3Nw3evSgTws4QSxliSu0MM5HUfhQBAsEi sIzHC8YlMgdiSQSx
PC4684zn39qje2nLTsscO6SZHBLkEquOD8v+z+p/Gyl3bvM0KzRmRTtKbuc/ So/to89ohBKSr7SR
t9ucZzj5h270ARLZOs3KB080yZM7jq277mMcfriom0+Z0bMcAZhMMhicF+h6 fh9PyrQ8+HzvJ82P
zf7m4bvXpSfaYAwXz49xbYBvGS3p9eRQBTlspy5KbOJRICZWAb5s42jgfXnO M9Txo1Gs8LruSWNh
xyGB6nA/Xio1u1MzxtHIgV9m9sbSeCBwe+R1+nXigCP7PN9s+0Yj+/jZuONu Mbun3+30496rtp8z
o2Y4AzCYZDE4L9D0/D6flWh58PneT5sfm/3Nw3evSoX1C3W4WBXV3JwQHX5T nHc/oMmgBXSc3qSK
kZjVSuS5BwSpJxj29ahe2nLTsscO6SZHBLkEquOD8v8As/qfxt+fD53k+bH5 v9zcN3r0o8+H/nrH
9/Z94fe9Pr7UAVfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVjy3+2eZsi2eXt3Y+ fOemfT+tOMoFwsJV
sshcNxjggEfqKal3bvM0KzRmRTtKbuc/SgCH7PN9s+0Yj+/jZuONuMbun3+3 0496b9lmafJSNV8z
dlZWIxnP3CMZPr689asfa7bzPL+0Rb87du8Zz6YqN75FuDD5UpIkWPIXjJGf 0HWgCKW1nKeWiwsq
zecrMTknfux046kZ5+nPFn7NH5m/dLnOcec+Pyzj8KV7mBGZXnjVkGWBcAge /wCY/Ol8+H/nrH9/
Z94fe9Pr7UAO8tN27Yuc7s474xn8uKpPbTlp2WOHdJMjglyCVXHB+X/Z/U/j b8+HzvJ82Pzf7m4b
vXpQZQLhYSrZZC4bjHBAI/UUARrHNHcSFPLKSOHLEnI4Axjv0657+3Isc0dx IU8spI4csScjgDGO
/Trnv7cyCeMzmEMpcDJAYZHTqOveoX1C3W4WBXV3JwQHX5TnHc/oMmgCBI3m u7kCIKhmRjIwIJCh
eBxyMqe/f87flv8AbPM2RbPL27sfPnPTPp/WnCeMzmEMpcDJAYZHTqOvejz4 fO8nzY/N/ubhu9el
ADYUbzJZZBhnO0D0UZx/U/jjtRCjeZLLIMM52geijOP6n8cdqSW7iicJuDPu VSqsMrkgAkZ6cj86
Y98i3Bh8qUkSLHkLxkjP6DrQAySzke5LiQCNnVyOeo29v+Af+PH05JLOR7ku JAI2dXI56jb2/wCA
f+PH05tJLHIzKrAshwy9x9RT6AKUlnI9yXEgEbOrkc9Rt7f8A/8AHj6c2f33 2j/ln5Gz33bs/ljF
SUUAUpLOR7kuJAI2dXI56jb2/wCAf+PH05kMMjXayMsahCfnXO5lwcKRjpzn r1HT0s0UAR/vvtH/
ACz8jZ77t2fyxiq/2ebHk4j8rzfM37ju+/vxtx+HX39quUUAVYIpo7udzHFt lfO4Od2AoAGMe3r3
qtKknmLbCMMFnEoco3d9x5xgYBPOT0xjmtOigCGFG8yWWQYZztA9FGcf1P44 7VGiXP2ou6xFckbt
5JCdgBjjtnn+mLVFAFP7PNjycR+V5vmb9x3ff3424/Dr7+1H2ebHk4j8rzfM 37ju+/vxtx+HX39q
uUUAVnSc3qSKkZjVSuS5BwSpJxj29afCjeZLLIMM52geijOP6n8cdqmooApy R3ZnMqiLKnagLnGw
9c/L1OB+Q98xy2k7SSyBIixlV0JkI+Ubcg8d9g/P89CigCmI7tZpSgiCySq+ 7echRtBGNvcD170j
Wsjz+Y0durbw3nICHCg8DpzkDB5HXp63aKAKiwSKwjMcLxiUyB2JJBLE8Ljr zjOff2qN7actOyxw
7pJkcEuQSq44Py/7P6n8b9FAFBbJ1m5QOnmmTJncdW3fcxjj9cVE2nzOjZjg DMJhkMTgv0PT8Pp+
ValFAGdLZTlyU2cSiQEysA3zZxtHA+vOcZ6ni/5abt2xc53Zx3xjP5cU6igB r/dNR/5/z/n/AOvI
/wB01H/n/P8An/64A1/un/P+f8/jHUj/AHT/AJ/z/n8Y6Qytd9U/H+lFF31T 8f6UUCJ4/un/AHj/
ADp1Nj+6f94/zp1Axi2TrNygdPNMmTO46tu+5jHH64qZ0nN6kipGY1UrkuQc EqScY9vWrNMeWONl
VmAZzhV7n6CmIprZOs3KB080yZM7jq277mMcfriom0+Z0bMcAZhMMhicF+h6 fh9PyrQ8+H/nrH9/
Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oAqrZOs3KB080yZM7jq277mMcfrih7 actOyxw7pJkcEuQS
q44Py/7P6n8bEt3FE4TcGfcqlVYZXJABIz05H51L5ieZ5e9d+N23POPXFAEK xzR3EhTyykjhyxJy
OAMY79Oue/ty2C2KXk9xJHGGc/KysSduAMHj/ZB/H85vPh87yfNj83+5uG71 6UGUC4WEq2WQuG4x
wQCP1FAFf7PNjycR+V5vmb9x3ff3424/Dr7+1Ogimju53McW2V87g53YCgAY x7evepvPh87yfNj8
3+5uG716ULPC67kljYcchgepwP14oAz20+Z0bMcAZhMMhicF+h6fh9PyqwLe ZppfMEaxPKsmVYlv
l24GMcfdB/T3qx58PneT5sfm/wBzcN3r0oE8LOEEsZYkrtDDOR1H4UAVFsnW blA6eaZMmdx1bd9z
GOP1xUqpci8eXy4tjBU/1hyACecbffpUiXdu8zQrNGZFO0pu5z9KmoAzpbKc uSmziUSAmVgG+bON
o4H15zjPU8ST205aTyvLKvKkvzEg5Xb8vT/Z6/hjvVkTws4QSxliSu0MM5HU fhR58PneT5sfm/3N
w3evSgCJ0nN6kipGY1UrkuQcEqScY9vWlWOaO4kKeWUkcOWJORwBjHfp1z39 uZFnhddySxsOOQwP
U4H68UefD53k+bH5v9zcN3r0oAb9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd 8Yz+XFR/a7bzPL+0
Rb87du8Zz6YqN75FuDD5UpIkWPIXjJGf0HWgCvcxSxRqpjV41uBIGVWZuX3H gDjAJ5z296lntpy0
nleWVeVJfmJByu35en+z1/DHepmufnwkMki7gpdAMA5x65474/oaf58PneT5 sfm/3Nw3evSgClLZ
TlyU2cSiQEysA3zZxtHA+vOcZ6niw6Tm9SRUjMaqVyXIOCVJOMe3rUqzwuu5 JY2HHIYHqcD9eKFn
hddySxsOOQwPU4H68UAROk5vUkVIzGqlclyDglSTjHt60ipci8eXy4tjBU/1 hyACecbffpU3nw+d
5Pmx+b/c3Dd69KBPCzhBLGWJK7QwzkdR+FAETpOb1JFSMxqpXJcg4JUk4x7e tQrZOs3KB080yZM7
jq277mMcfrirUM/mySp5br5TbSWxgnGeMH0I/Ol8+HzvJ82Pzf7m4bvXpQBU ltZynlosLKs3nKzE
5J37sdOOpGefpzxd8tN27Yuc7s474xn8uKY9zAjMrzxqyDLAuAQPf8x+dKJ4 zOYQylwMkBhkdOo6
96AGeS0kwklYAIfkVMg9e579Bx0+vBqeoxPCzhBLGWJK7QwzkdR+FQvfItwY fKlJEix5C8ZIz+g6
0AWqKYkscjMqsCyHDL3H1FPoAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKK
KACiiigBr/dNR/5/z/n/AOvI/wB01H/n/P8An/64A1/un/P+f8/jHUj/AHT/ AJ/z/n8Y6Qytd9U/
H+lFF31T8f6UUCJ4/un/AHj/ADp1Nj+6f94/zp1Ay5UHktHMZImBDn51fJPX se3U8dPpyanopiKf
2eb7Z9oxH9/GzccbcY3dPv8Ab6ce9N+yzNPkpGq+ZuysrEYzn7hGMn19eetW 3ljjZVZgGc4Ve5+g
pPPh/wCesf39n3h970+vtQBUltZynlosLKs3nKzE5J37sdOOpGefpzxZ8t/t nmbItnl7d2Pnznpn
0/rStcwLL5TTxiTIGwuM5PTimy3cUThNwZ9yqVVhlckAEjPTkfnQBXWydZuU Dp5pkyZ3HVt33MY4
/XFTOk5vUkVIzGqlclyDglSTjHt61P5ieZ5e9d+N23POPXFNM8IkMZlj3jGV 3DIzjHH4j86AKi2T
rNygdPNMmTO46tu+5jHH64qJtPmdGzHAGYTDIYnBfoen4fT8q0PPh87yfNj8 3+5uG716ULPC67kl
jYcchgepwP14oAqLZOs3KB080yZM7jq277mMcfrih7actOyxw7pJkcEuQSq4 4Py/7P6n8bYnhZwg
ljLEldoYZyOo/CgygXCwlWyyFw3GOCAR+ooAjWOaO4kKeWUkcOWJORwBjHfp 1z39ubFR+fD53k+b
H5v9zcN3r0o8+H/nrH9/Z94fe9Pr7UAVHtpy07LHDukmRwS5BKrjg/L/ALP6 n8Wy2U5clNnEokBM
rAN82cbRwPrznGep4me+KOU+yXDEBiMBfmCnBIGc9x9ala7tl3briIbTtbLj g+h/I/lQBRbT5nRs
xwBmEwyGJwX6Hp+H0/KpVsnWblA6eaZMmdx1bd9zGOP1xVsTws4QSxliSu0M M5HUfhR58PneT5sf
m/3Nw3evSgBv2aPzN+6XOc4858flnH4VJ5abt2xc53Zx3xjP5cUiSxyMyqwL IcMvcfUU+gCukc0T
FI/LMRcvuYncMnJGO/U85HXvjmP7PNjycR+V5vmb9x3ff3424/Dr7+1XKKAM ttPmdGzHAGYTDIYn
Bfoen4fT8qG0+Z0bMcAZhMMhicF+h6fh9PyrUooAp/Z5seTiPyvN8zfuO77+ /G3H4dff2pj205ad
ljh3STI4JcglVxwfl/2f1P436KAKYju1mlKCILJKr7t5yFG0EY29wPXvR9nm x5OI/K83zN+47vv7
8bcfh19/arlFAGZKknmLbCMMFnEoco3d9x5xgYBPOT0xjmrTpOb1JFSMxqpX Jcg4JUk4x7etWaKA
KD205adljh3STI4JcglVxwfl/wBn9T+N3y03bti5zuzjvjGfy4p1FAEHktJM JJWACH5FTIPXue/Q
cdPrwanoooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigBr/AHTU
f+f8/wCf/ryP901H/n/P+f8A64A1/un/AD/n/P4x1I/3T/n/AD/n8Y6Qytd9 U/H+lFF31T8f6UUC
J4/un/eP86dTY/un/eP86dQMuUUUUxEHktHMZImBDn51fJPXse3U8dPpyai+ zzfbPtGI/v42bjjb
jG7p9/t9OPerlMeWONlVmAZzhV7n6CgCp9lmafJSNV8zdlZWIxnP3CMZPr68 9aSW1nKeWiwsqzec
rMTknfux046kZ5+nPFvz4f8AnrH9/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04o ATy3+2eZsi2eXt3Y
+fOemfT+tRLBIrCMxwvGJTIHYkkEsTwuOvOM59/apJbuKJwm4M+5VKqwyuSA CRnpyPzqXzE8zy96
78btueceuKAKv2ebHk4j8rzfM37ju+/vxtx+HX39qrtp8zo2Y4AzCYZDE4L9 D0/D6flV9rmBZfKa
eMSZA2FxnJ6cUvnw+d5Pmx+b/c3Dd69KAKSRvNd3IEQVDMjGRgQSFC8DjkZU 9+/52HSc3qSKkZjV
SuS5BwSpJxj29ake5gRmV541ZBlgXAIHv+Y/Ol8+H/nrH9/Z94fe9Pr7UAVF snWblA6eaZMmdx1b
d9zGOP1xT/s832z7RiP7+Nm4424xu6ff7fTj3qx58PneT5sfm/3Nw3evSgTw s4QSxliSu0MM5HUf
hQAx45DexSAJ5aoykljnJIPTH+z696haPffmMB/LJEsmUOCy4xz7/KeP7nua smeESGMyx7xjK7hk
Zxjj8R+dHnw+d5Pmx+b/AHNw3evSgCkkbzXdyBEFQzIxkYEEhQvA45GVPfv+ blsnWblA6eaZMmdx
1bd9zGOP1xVxJY5GZVYFkOGXuPqKfQBB5LSTCSVgAh+RUyD17nv0HHT68Gp6 KKACiiigAooooAKK
KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooo
oAKKKKAGv901H/n/AD/n/wCvI/3TUf8An/P+f/rgDX+6f8/5/wA/jHUj/dP+ f8/5/GOkMrXfVPx/
pRRd9U/H+lFAieP7p/3j/OnVSaJmlYlpfmJ2ojkZ68+39T265WFf3yENKpxu 2PIWyOeR/h9D65NC
uV2ubFFFFMkKg8lo5jJEwIc/Or5J69j26njp9OTU9FAFP7PN9s+0Yj+/jZuO NuMbun3+30496b9l
mafJSNV8zdlZWIxnP3CMZPr689a59Li9dWZZ5yqjLHecD8aXzr//AJ63P3d/ 3m+76/T3rTkJ5jel
tZynlosLKs3nKzE5J37sdOOpGefpzxZ8t/tnmbItnl7d2Pnznpn0/rXMiXUW j8xXujHjO4FsfnTo
3v5EL/aJ1TaSGZmw2ASQD68H8qOTzDmNz7LM0+Skar5m7KysRjOfuEYyfX15 60i2TrNygdPNMmTO
46tu+5jHH64rA+03vl+Z59xszjdvbGfTNL51/wCV5vm3Pl/39zY/OjkDmNu5 ilijVTGrxrcCQMqs
zcvuPAHGATznt71LPbTlpPK8sq8qS/MSDldvy9P9nr+GO9c+Li7MBlF3LgMF K+Y2eQSD+ho86/8A
K83zbny/7+5sfnRyBzG8tk6zcoHTzTJkzuOrbvuYxx+uKHtpy07LHDukmRwS 5BKrjg/L/s/qfxwW
mv0OGluVPPBZh0GT+nNHnX/leb5tz5f9/c2Pzo5A5jolgkVhGY4XjEpkDsSS CWJ4XHXnGc+/tUa2
TrNygdPNMmTO46tu+5jHH64rBM1+E3mW5CgA5LNjB6GnM+opEJWkuRGRkNub GKOTzDmOk8lpJhJK
wAQ/IqZB69z36Djp9eDU9cf9tuv+fmb/AL+Gnma/CbzLchQAclmxg9DR7MOY 62iuS86/8rzfNufL
/v7mx+dDTX6HDS3Knngsw6DJ/TmjkDmOtorkvOv/ACvN8258v+/ubH507fqX l+Zuu9mM7stjHrmj
k8w5jq6K5dTetAJftrAFGkwZWzgHH6npUXnX/wDz1ufu7/vN931+nvRyeYcx 1tFcmJdRaPzFe6Me
M7gWx+dJ51/5Xm+bc+X/AH9zY/Ojk8w5jraK5PzdR2lt91gLuJy3T1+lIZr8 JvMtyFAByWbGD0NH
J5hzHW0VyXnX/leb5tz5f9/c2Pzoaa/Q4aW5U88FmHQZP6c0cgcx1tFcl51/ 5Xm+bc+X/f3Nj86l
U3rQCX7awBRpMGVs4Bx+p6UcnmHMdRRXH/bbr/n5m/7+GpPN1HaW33WAu4nL dPX6UezDmOsorkvO
v/K83zbny/7+5sfnUqjUWgMxnuFQDIJL/MMZ7fzNHJ5hzHUUVym/UvL8zdd7 MZ3ZbGPXNPU3rQCX
7awBRpMGVs4Bx+p6UuTzC51FFcl51/8A89bn7u/7zfd9fp70ol1Fo/MV7ox4 zuBbH50+TzDmOsor
kvOv/K83zbny/wC/ubH50vm6jtLb7rAXcTlunr9KOTzDmOsorkjNfhN5luQo AOSzYweho86/8rzf
NufL/v7mx+dHIHMdbRXJNNfocNLcqeeCzDoMn9OaPOv/ACvN8258v+/ubH50 cgcx1tFcvuu/LVhf
MxZC4QO+cDOe2OMHv2qLzr/yvN8258v+/ubH50cgcx1tFcuo1FoDMZ7hUAyC S/zDGe38zQpvWgEv
21gCjSYMrZwDj9T0pcnmFzqKK5JLm6aKSQ3UwCYA+c8k9uvoCfwpHuL1FVmn nCsMqd5wfxp8gcx1
1FFFZlBRRRQA1/umo/8AP+f8/wD15H+6aj/z/n/P/wBcAa/3T/n/AD/n8Y6k f7p/z/n/AD+Nczxg
kZPHH3TSGk3sRXfVPx/pRRdEMIyOhBI/SigBu7MxdFLyR5AQd/mzn9enXp60 Iha8Ezh03ZIVhyT3
/D3+lOMcJ5aBJJGLYG0ZPJ70sAg3jFukUmNy8DkeoNLS5peXKalFFFUZBRRR QBx+/wAyIJIhyo+Q
pgfmO/Qc9frxUvmx/ZfI+f7md20Z3Zzt6/d/rzXQyQWSMqvDAGc/KuwZb8KT y9P/ALlt9/Z0X73p
9fatOdBZGB5yCHALsxj24Mag5xj7+c49vTApYpog+9jMC8XlFVAwBt25689j jj/HdZNOWXymW1Eh
I+Qhc57cU2UWEb7PIgdyyhlVVyuSACR6cj86OdBZHOZH2Ty8y79+7bn5MY64 9asG5DRDBKP5ezAh
U/w4+9nPP9a6D7PZeZ5fkwb8btu0Zx64pvl6f53k7Lbzf7mF3evSjnQWRzie V9keMtJ5jENgIMcA
8Zz71KbkNEMEo/l7MCFT/Dj72c8/1reMNr9oEJtI8spcNsXBwQD+PIo8vT/O 8nZbeb/cwu716Uc6
CyMVbuNXXa0xUGIgFQMhOo6/j9fzqM3IaIYJR/L2YEKn+HH3s55/rW8senyL uVLZgccgKc5OB+uR
R5en+d5Oy283+5hd3r0o5kFkYKTRbYFZpsJE6kBB1bPI5/2v0HrUJMckEYYP vRCoAAweSc57demP
510gj09n2BLYsWI24XJI6j6imqNNkmaFVtjIGwU2rnP070c4WRy21vSrqTRb YFZpsJE6kBB1bPI5
/wBr9B610X2O1/59of8AvgVGI9PZ9gS2LFiNuFySOo+oocwtEw4rmIKA4fmM oQI1JHy4zuPJ+nHX
83Ldxq67WmKgxEAqBkJ1HX8fr+dbXl6f53k7Lbzf7mF3evShY9PkXcqWzA45 AU5ycD9cijmQWRgm
5DRDBKP5ezAhU/w4+9nPP9ar+dL5ezZHjGP9UufzxnNdN5en+d5Oy283+5hd 3r0puNM8zy8Wm/dj
b8uc+mPWjnQWRzGZMYy2MYxntnOPz5qzDLEFj8wSArG0Y2gHg7uev+10/XtW 07WS3Bh+w7j5ix5E
QIJIz+g61MI9PZ9gS2LFiNuFySOo+oo5wsjA85BDgF2Yx7cGNQc4x9/Oce3p gUpuQ0QwSj+XswIV
P8OPvZzz/Wt7y9P87ydlt5v9zC7vXpSMmnLL5TLaiQkfIQuc9uKOdBZHPStH JbQory7o0wFKjbkn
J5z7+nYVIk0W2BWabCROpAQdWzyOf9r9B61usmnLL5TLaiQkfIQuc9uKRhpi 7twtBtbDZ28Hng+/
Bo5wsjFiuYgoDh+YyhAjUkfLjO48n6cdfzct3GrrtaYqDEQCoGQnUdfx+v51 teXp/neTstvN/uYX
d69KQpp27aVtdxbbjC5Len15/WjmQWRhG5DRDBKP5ezAhU/w4+9nPP8AWqmZ MYy2MYxntnOPz5rp
pRYRvs8iB3LKGVVXK5IAJHpyPzpjtZLcGH7DuPmLHkRAgkjP6DrRzoLI5ra3 pVmVo5LaFFeXdGmA
pUbck5POff07Cum+x2v/AD7Q/wDfAqIpp27aVtdxbbjC5Len15/WnzhaJhG5 DRDBKP5ezAhU/wAO
PvZzz/Woz5LWiR7pd6ln/wBWMEkDjr7frXReXp/neTstvN/uYXd69KheTThc CAQwO5bDABODnHOT
yevAyaXOgsjn/Ol8vZsjxjH+qXP54zmmZkxjLYxjGe2c4/PmunxpnmeXi037 sbflzn0x61G7WS3B
h+w7j5ix5EQIJIz+g60+dBZGLDLEFj8wSArG0Y2gHg7uev8AtdP17UvnIIcA uzGPbgxqDnGPv5zj
29MCt8R6ez7AlsWLEbcLkkdR9RR5en+d5Oy283+5hd3r0pc6CyME3IaIYJR/ L2YEKn+HH3s55/rU
crRyW0KK8u6NMBSo25Jyec+/p2FdCyacsvlMtqJCR8hC5z24oZNOWXymW1Eh I+Qhc57cUc6CyMJJ
otsCs02EidSAg6tnkc/7X6D1p0VzEFAcPzGUIEakj5cZ3Hk/Tjr+e0w0xd24 Wg2ths7eDzwffg07
y9P87ydlt5v9zC7vXpRzoLIxVu41ddrTFQYiAVAyE6jr+P1/OozchohglH8v ZgQqf4cfeznn+tbp
TTt20ra7i23GFyW9Prz+tNlFhG+zyIHcsoZVVcrkgAkenI/OjmQWRh+eggii AYjyyrNsAYZJPBzn
vjHGR9aU3IaIYJR/L2YEKn+HH3s55/rWz/onmujWIVVkCM5RMZOMd885HbvU vl6f53k7Lbzf7mF3
evSjnQWRzp8lrRI90u9Sz/6sYJIHHX2/WoMyYxlsYxjPbOcfnzXRvJpwuBAI YHcthgAnBzjnJ5PX
gZNDtZLcGH7DuPmLHkRAgkjP6DrRzhaJz8pzHFHHyqjcT6scZ/oPw96UPsi2 RISXHzF8H8h269ev
0zXSvBarNHGLWFi+SfkHAHfp6kD8aVILKRnVYYCyn5l2DI+oo5wsi1RRRWYB RRRQA1/umo/8/wCf
8/8A15H+6aj/AM/5/wA//XAGv90/5/z/AJ/GqbdSSd7DJz2/wq0/3T/n/P8A n8apuFBI2McHHb/G
guPN0I7lQqxqOgBH8qKLlgyxsOhBP8qKRL3HMrBhMil2TICj13Eg02OJ5Lo3 Dq6Drhxzk/0qxH90
/wC8f506lYvndrFyiiiqMwoopjyxxsqswDOcKvc/QUAVztimaSOVcFgJFckn qeh7Ac8dOD05NREE
XhuC0XEm0puONuMbun3+CM9MAjPGatMypNDGqAkg9ONqjr+u0Y9/agS24xiS IYbyxgjg/wB36+1B
XulMofPJYxIqy5JWViOufuEYzwcnscnqKSZH2GNTAVjn80M7HOd+7HTjuM89 D74uGe2SVYjLCsg+
UJuAIz2x+VNkuYIXVBtZwVTahGUBIAyM9OR+lAe6IXUXhkPk7Amwtj5856Z/ u8H8QfSqwhVJm3bX
QTbyTcOMZbd9zGOOfyPTmr4MQkEYKBwuQoxkL9PSmGe2SVYjLCsg+UJuAIz2 x+VAe6QySP8AbVkH
k+XGChJcg8kEnGO209/Xpg1CIVSZt210E28k3DjGW3fcxjjn8j05q6JbcTCE SRCUDAQEbgOvSkae
2iYq0sKNGvILAFRx+Q6fpQHumc9sSj7hbqx84E7icF+h+72wQfYH0IqUQqkz btroJt5JuHGMtu+5
jHHP5HpzV0S24xiSIYbyxgjg/wB36+1AltxMIRJEJQMBARuA69KA90pSo+64 YCDc06NkuQcLjg/L
/sn2GT6VOHMVxKVeLY8gZmYnK8AEAY5+6ec8c+lTLLb71RJItwyiqCM8dQP0 4o823WTyxJEHQAbc
jKg4xx+X6UB7o4zxDOXHBwf8/gfyPpVCVH3XDAQbmnRslyDhccH5f9k+wyfS roltxMIRJEJQMBAR
uA69KWN4WYrGV3R/KVxgr+HYcfjQHumfNC29irx/LMHyZWAPzZxtHA6HnnoS ec4Y9sSj7hbqx84E
7icF+h+72wQfYH0IrWCqMYUDAwMDoKAqjGFAwMDA6CgPdM4QqkzbtroJt5Ju HGMtu+5jHHP5HpzV
kpbiQuZZMhskec+M/TOMcH24PpVgKoxhQMDAwOgoCqMYUDAwMDoKA90jL24Y sdmQ2Scd8Yz+QIz7
H0qjkPdXIwiIZkYyNkMduOAMcjKt345P10gqjGFAwMDA6CgKoxhQMDAwOgoD 3TMmhbexV4/lmD5M
rAH5s42jgdDzz0JPOcPKHzyWMSKsuSVlYjrn7hGM8HJ7HJ6itAKoxhQMDAwO goCqMYUDAwMDoKA9
0zyh88ljEirLklZWI65+4RjPByexyeopZYs3Lv56iMyKzDJ6jb27/wCr6+7e nN8KoxhQMDAwOgoC
qMYUDAwMDoKA90okEAwlovKE3mF9x3ff34249iM57E9sU6FjFd3DsIQsknLB zuAC4HG3noe/HPoa
uBVGMKBgYGB0FAVRjCgYGBgdBQHumdMj7DGpgKxz+aGdjnO/djpx3Geeh98X S9uGLHZkNknHfGM/
kCM+x9KkCqMYUDAwMDoKAqjGFAwMDA6CgPdGmeIZy44OD/n8D+R9KqwsYru4 dhCFkk5YOdwAXA42
89D3459DVwKoxhQMDAwOgoCqMYUDAwMDoKA90zhCqTNu2ugm3km4cYy277mM cc/kenNSiSRLySUi
HYdqH94cgAtzjb7n8jzVwKoxhQMDAwOgoCqMYUDAwMDoKA90rlLcSFzLJkNk jznxn6Zxjg+3B9Kk
L24YsdmQ2Scd8Yz+QIz7H0qQKoxhQMDAwOgoCqMYUDAwMDoKA90zch7q5GER DMjGRshjtxwBjkZV
u/HJ+qTQtvYq8fyzB8mVgD82cbRwOh556EnnONMKoxhQMDAwOgoCqMYUDAwM DoKA90zyh88ljEir
LklZWI65+4RjPByexyeooKHzyWMSKsuSVlYjrn7hGM8HJ7HJ6itAKoxhQMDA wOgoCqMYUDAwMDoK
A90oSxZuXfz1EZkVmGT1G3t3/wBX1929OVIIBhLReUJvML7ju+/vxtx7EZz2 J7Yq8FUYwoGBgYHQ
UBVGMKBgYGB0FAe6U4WMV3cOwhCyScsHO4ALgcbeeh78c+hqKZH2GNTAVjn8 0M7HOd+7HTjuM89D
740QqjGFAwMDA6CgKoxhQMDAwOgoD3TPMX+kTzM6AiUMq+YxVsDGGGMfw5zz gj/ZpBCqTNu2ugm3
km4cYy277mMcc/kenNaIVRjCgYGBgdBQFUYwoGBgYHQUB7pTEkiXkkpEOw7U P7w5ABbnG33P5Hmr
Be3DFjsyGyTjvjGfyBGfY+lSBVGMKBgYGB0FAVRjCgYGBgdBQHuleJ0WSaWV gGLbcZ6KM4/9mPtk
jtSHa83mTSqBG2FVCQRz3PccdOnBznGRZCqMYUDAwMDoKAqjGFAwMDA6CgPd HUUUUEhRRRQA1/um
o/8AP+f8/wD15H+6aj/z/n/P/wBcAa/3T/n/AD/n8a5gjJJweefvGrD/AHT/ AJ/z/n8Y6Q02titd
AKIwOgBA/Sii76p+P9KKAJ4/un/eP86dTY/un/eP86dQBcooopiCoPJaOYyR MCHPzq+SevY9up46
fTk1I8scbKrMAznCr3P0FI8u2aOMDJfJPPQDv+ZA/GgBsKN5kssgwznaB6KM 4/qfxx2qH7PN9s+0
Yj+/jZuONuMbun3+30496sefD/z1j+/s+8Pven19qRrmBZfKaeMSZA2FxnJ6 cUAVvsszT5KRqvmb
srKxGM5+4RjJ9fXnrSS2s5Ty0WFlWbzlZick792OnHUjPP054sS3cUThNwZ9 yqVVhlckAEjPTkfn
UvmJ5nl71343bc849cUAR+W/2zzNkWzy9u7Hz5z0z6f1qv8AZZmnyUjVfM3Z WViMZz9wjGT6+vPW
rRnhEhjMse8Yyu4ZGcY4/EfnR58PneT5sfm/3Nw3evSgCotk6zcoHTzTJkzu OrbvuYxx+uKZcxSx
RqpjV41uBIGVWZuX3HgDjAJ5z296vLPC67kljYcchgepwP14oE8LOEEsZYkr tDDOR1H4UAVp7act
J5XllXlSX5iQcrt+Xp/s9fwx3pq2TrNygdPNMmTO46tu+5jHH64q2ZQLhYSr ZZC4bjHBAI/UUefD
53k+bH5v9zcN3r0oAqPbTlp2WOHdJMjglyCVXHB+X/Z/U/jIsEisIzHC8YlM gdiSQSxPC4684zn3
9qn8+H/nrH9/Z94fe9Pr7VA98Ucp9kuGIDEYC/MFOCQM57j60ARrZOs3KB08 0yZM7jq277mMcfri
rHktJMJJWACH5FTIPXue/QcdPrwaVru2XduuIhtO1suOD6H8j+VOE8LOEEsZ YkrtDDOR1H4UASUV
H58PneT5sfm/3Nw3evSlSWORmVWBZDhl7j6igB9FFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUANf 7pqP/P8An/P/ANeR
/umo/wDP+f8AP/1wBr/dP+f8/wCfxjqR/un/AD/n/P4x0hla76p+P9KKLvqn 4/0ooETx/dP+8f50
6mx/dP8AvH+dOoGXKKKY8scbKrMAznCr3P0FMRH5LRzGSJgQ5+dXyT17Ht1P HT6cmlhRvMllkGGc
7QPRRnH9T+OO1OeXbNHGBkvknnoB3/MgfjR58P8Az1j+/s+8Pven19qAK/2e b7Z9oxH9/GzccbcY
3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561Za5gWXymnjEmQNhcZyen FNlu4onCbgz7lUqr
DK5IAJGenI/OgCvLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/bPM2RbPL27 sfPnPTPp/WpPMTzP
L3rvxu255x64pvnw+d5Pmx+b/c3Dd69KAIFgkVhGY4XjEpkDsSSCWJ4XHXnG c+/tSfZ5seTiPyvN
8zfuO77+/G3H4dff2qwZQLhYSrZZC4bjHBAI/UUefD53k+bH5v8Ac3Dd69KA M9tPmdGzHAGYTDIY
nBfoen4fT8qekbzXdyBEFQzIxkYEEhQvA45GVPfv+d1Z4XXcksbDjkMD1OB+ vFHnw+d5Pmx+b/c3
Dd69KAInSc3qSKkZjVSuS5BwSpJxj29ahWydZuUDp5pkyZ3HVt33MY4/XFWx PCzhBLGWJK7Qwzkd
R+FNS7t3maFZozIp2lN3OfpQBD9nm+2faMR/fxs3HG3GN3T7/b6ce9SvHIb2 KQBPLVGUksc5JB6Y
/wBn171IkscjMqsCyHDL3H1FPoApNHvvzGA/lkiWTKHBZcY59/lPH9z3NRpG 813cgRBUMyMZGBBI
ULwOORlT37/no0UAUFsnWblA6eaZMmdx1bd9zGOP1xVjyWkmEkrABD8ipkHr 3PfoOOn14NT0UAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUANf7pqP/P8An/P/ANeR/umo/wDP+f8AP/1wBr/dP+f8 /wCfxjqR/un/AD/n
/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/dP8AvH+dOoGXKg8lo5jJ EwIc/Or5J69j26nj
p9OTU9MeWONlVmAZzhV7n6CmIZCjeZLLIMM52geijOP6n8cdqh+zzfbPtGI/ v42bjjbjG7p9/t9O
PerHnw/89Y/v7PvD73p9faka5gWXymnjEmQNhcZyenFAFb7LM0+Skar5m7Ky sRjOfuEYyfX1560k
trOU8tFhZVm85WYnJO/djpx1Izz9OeLEt3FE4TcGfcqlVYZXJABIz05H51L5 ieZ5e9d+N23POPXF
AEflv9s8zZFs8vbux8+c9M+n9arLZOs3KB080yZM7jq277mMcfrirfnw+d5P mx+b/c3Dd69KDKBc
LCVbLIXDcY4IBH6igCJ0nN6kipGY1UrkuQcEqScY9vWoVsnWblA6eaZMmdx1 bd9zGOP1xVvz4fO8
nzY/N/ubhu9elCzwuu5JY2HHIYHqcD9eKAM9tPmdGzHAGYTDIYnBfoen4fT8 qlWydZuUDp5pkyZ3
HVt33MY4/XFW/Ph87yfNj83+5uG716UCeFnCCWMsSV2hhnI6j8KAKj205adl jh3STI4JcglVxwfl
/wBn9T+M6xzR3EhTyykjhyxJyOAMY79Oue/ty5Lu3eZoVmjMinaU3c5+lTUA QeS0kwklYAIfkVMg
9e579Bx0+vBqeoxPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3Dd69KAJKKjWe F13JLGw45DA9Tgfr
xR58PneT5sfm/wBzcN3r0oAkoqH7XbeZ5f2iLfnbt3jOfT
Re: A Diagnostic Message for the Valid Schema [message #569799 is a reply to message #21027] Sun, 04 May 2003 17:13 Go to previous message
Eclipse UserFriend
Originally posted by: paechoi.earthlink.net

This is a multi-part message in MIME format.

------=_NextPart_000_004F_01C3123E.E5BEE0B0
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0050_01C3123E.E5BEE0B0"


------=_NextPart_001_0050_01C3123E.E5BEE0B0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Ed,

Cool! Thank you much.

Regards,


Pae


"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB4F5F7.C85AE04B@ca.ibm.com...
Pae,=20
You have to use the org.eclipse.xsd.util.XSDParser to construct your =
DOM if you want line numbers.=20

Pae Choi wrote:=20

Ed, When I tried to get the line information by using the getLine() =
method in theXSDDiagnostic interface. It seems like returning 1 unlike =
line 7 and line 8shown in the screen capture in your privious message. =
How should we do to get the line number? Thank you. Regards, Pae =20
"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB25ED9.AE2CB299@ca.ibm.com...Pae,=20
I'm seeing this result with the just published 1.1.0 driver:=20


The schema isn't valid.=20
=20
Pae Choi wrote:=20

I have a simple test schema as follows:=20
<?xml version=3D"1.0" encoding=3D"UTF-8"?>=20
<!--W3C Schema generated by Pae -->=20
<xsd:schema xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema"=20
elementFormDefault=3D"qualified">=20
<xsd:element name=3D"CommonLogin">=20
<xsd:complexType>=20
<xsd:sequence>=20
<xsd:element name=3D"username" ref=3D"usernameRef"/>=20
<xsd:element name=3D"password" ref=3D"passwordRef"/>=20
</xsd:sequence>=20
</xsd:complexType>=20
</xsd:element>=20
<xsd:element name=3D"passwordRef" type=3D"xsd:string"/>=20
<xsd:element name=3D"usernameRef" type=3D"xsd:string"/>=20
</xsd:schema>=20

This is a very simple sample, but it is a valid schema. But when =

I use the validate() and getDiagnostics() methods in the =
XSDSchema=20
interface it gives me a message as follows:=20

XSD: The element '#null' is not permitted as constrained by 'XML =
Schema ';=20
expecting schema=20

I do not understand what the message is saying. Any comments?=20

Pae


------=_NextPart_001_0050_01C3123E.E5BEE0B0
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2600.0" name=3DGENERATOR></HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT size=3D2>Ed,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Cool! Thank you much.</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Regards,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Pae</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV>"Ed Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB4F5F7.C85AE04B@ca.ibm.com">news:3EB4F5F7.C85AE04B@ca.ibm.=
com</A>...</DIV>Pae,=20

<P>You have to use the org.eclipse.xsd.util.XSDParser to construct =
your DOM if=20
you want line numbers.=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">
<STYLE></STYLE>
<FONT size=3D-1>Ed,</FONT>&nbsp;<FONT size=3D-1>When I tried to get =
the line=20
information by using the getLine() method in the</FONT><FONT=20
size=3D-1>XSDDiagnostic interface. It seems like returning 1 unlike =
line 7 and=20
line 8</FONT><FONT size=3D-1>shown in the screen capture&nbsp; in =
your=20
privious message.</FONT>&nbsp;<FONT size=3D-1>How should we do to =
get the line=20
number? Thank you.</FONT>&nbsp;<FONT=20
size=3D-1>Regards,</FONT>&nbsp;&nbsp;<FONT =
size=3D-1>Pae</FONT>&nbsp;&nbsp;=20
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed=20
Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB25ED9.AE2CB299@ca.ibm.com">news:3EB25ED9.AE2CB299@ca.ibm.=
com</A>...Pae,=20

<P>I'm seeing this result with the just published 1.1.0 driver:=20
<BLOCKQUOTE><IMG height=3D411=20
src=3D"cid:004a01c31260$6cc758f0$0b01a8c0@dev1" =
width=3D502></BLOCKQUOTE>The=20
schema isn't valid. <BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">I have a simple test schema as follows:=20
<P>&lt;?xml version=3D"1.0" encoding=3D"UTF-8"?&gt; =
<BR>&lt;!--W3C Schema=20
generated by Pae --&gt; <BR>&lt;xsd:schema xmlns:xsd=3D"<A=20
=
href=3D"http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchem=
a</A>"=20
<BR>elementFormDefault=3D"qualified"&gt; =
<BR>&nbsp;&lt;xsd:element=20
name=3D"CommonLogin"&gt; <BR>&nbsp; &lt;xsd:complexType&gt;=20
<BR>&nbsp;&nbsp; &lt;xsd:sequence&gt; <BR>&nbsp;&nbsp;&nbsp;=20
&lt;xsd:element name=3D"username" ref=3D"usernameRef"/&gt;=20
<BR>&nbsp;&nbsp;&nbsp; &lt;xsd:element name=3D"password"=20
ref=3D"passwordRef"/&gt; <BR>&nbsp;&nbsp; &lt;/xsd:sequence&gt; =
<BR>&nbsp;=20
&lt;/xsd:complexType&gt; <BR>&nbsp;&lt;/xsd:element&gt;=20
<BR>&nbsp;&lt;xsd:element name=3D"passwordRef" =
type=3D"xsd:string"/&gt;=20
<BR>&nbsp;&lt;xsd:element name=3D"usernameRef" =
type=3D"xsd:string"/&gt;=20
<BR>&lt;/xsd:schema&gt;=20
<P>This is a very simple sample, but it is a valid schema. But =
when=20
<BR>I use the validate() and getDiagnostics() methods in the =
XSDSchema=20
<BR>interface it gives me a message as follows:=20
<P>XSD: The element '#null' is not permitted as constrained by =
'XML=20
Schema '; <BR>expecting schema=20
<P>I do not understand what the message is saying. Any comments? =

=
<P>Pae</P></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE ></BODY></HT=
ML>

------=_NextPart_001_0050_01C3123E.E5BEE0B0--

------=_NextPart_000_004F_01C3123E.E5BEE0B0
Content-Type: image/jpeg;
name="C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\nsmailFJ.jpeg"
Content-Transfer-Encoding: base64
Content-ID: <004a01c31260$6cc758f0$0b01a8c0@dev1>

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCws MGJGSjpQdGZ6eHJm
cG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAqMF40 NF7GhHCExsbGxsbG
xsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsb/ wAARCAGbAfYDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA AgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcY GRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKT lJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP0 9fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQA AQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2 Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOk paanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMB AAIRAxEAPwDXghR4
9zbiST/EfU0m23yQBKcHHG81Ja/6kf7zfzNVLrfsTY5wGkLRrJsZueoPt6e9 NK4FpIYJEDIWKnoQ
5/xpfs0Xo3/fZ/xqKy2bmMbMUZEcZ75zzjt2qMXc+1kYBbgkbYvLyRnJ67sN wDzkdPXikBZ+zRej
f99n/Gj7NF6N/wB9n/Gqa31w+eI027VYMuTuLsmeD2xnHPpnvS/bZyJnHlhY ELMNpy5DODg54zs9
+vegC39mi9G/77P+NH2aL0b/AL7P+NUEup4hIkMQZY2kdycYwZH4yWGPu9ef 8b883lxs6FW2H5l7
n2HvyMDv075oAPs0Xo3/AH2f8aPs0Xo3/fZ/xqFriZWhLGMRPt/eKpdSSeFG Dx2+YjBz26Uy3kkm
uraaQptkgZlVVIKglDgnPP6UATyQxIudrH/gZpm2L+43/fw1NP8AcH1rJvJZ becG2JlkdSWhOSAA
PvD0/r9aQGhti/uN/wB/DTDGBI65bAPHzH0B/rUdntNurLMZt3zFyep+nb6V M/8Ar5f94fyFAxvl
j1b/AL6NHlj1b/vo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+ jTqKAG+WPVv++jR5
Y9W/76NOooAb5Y9W/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igBvlj1 b/vo0eWPVv8Avo06
igBvlj1b/vo0eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPVv++jR5Y9 W/76NOooAb5Y9W/7
6NHlj1b/AL6NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/AL6NHlj1b/vo06ig Bvlj1b/vo0eWPVv+
+jTqKAG+WPVv++jR5Y9W/wC+jTqKAG+WPVv++jR5Y9W/76NOooAb5Y9W/wC+ jR5Y9W/76NOooAb5
Y9W/76NHlj1b/vo06igBvlj1b/vo0eWPVv8Avo06igBvlj1b/vo0eWPVv++j TqKAG+WPVv8Avo0e
WPVv++jTqKAG+WPVv++jR5Y9W/76NOooAb5Y9W/76NHlj1b/AL6NOooAb5Y9 W/76NHlj1b/vo06i
gCvOTEV2MRnOcnP86KS76p+P9KKBF+1/1I/3m/majktGkBVmiZNxYK8W7Gfx 96hREIJKqTuPUe9O
8uP+4v5U7gWIYnR3d3DFgBwuMYz/AI0otoBEYhBGI2OSgQYJ+lNdbaNlVkjD OcKu0ZP0FMcwRyBW
tvlyFMmwbQT0Hqeo6DHP1oAmWCFF2pFGo44CgdDkfrzTPscBn84xIXwMZUfK QScj3yaT/Q/+mH39
nb73p9fahfsbruTyGHHIwepwP14oAkaCFipaKMlCWUlRwSckj8ad5abt2xc5 3Zx3xjP5cVCVgFws
JgXLIXDbRjggEfqKk8iH/nkn/fIoABBCJBIIo94zhtoyM5zz+J/OhIIY5GkS KNXbqwUAn8ah8yw8
vzN9tszt3ZXGfTNO/wBD87yf3Hm/3ON3r0oAklUsoAGeagFuVZmEYDN94jGT 9adusgwXNvuLbAMr
kt6fXkUM1ksvlMbcSZA2ErnJ6cUANW3KZ2RhdxycYGT60j/6+X/eH8hUgFqZ zCEiLgZIG3I6dR17
0f6H53k/uPN/ucbvXpQBHRUg+xs4QeQWJK7RjOR1H4U3zLDzPL322/O3blc5 9MUrANoprz2y3Bh+
ysSJFjyIxjJGf0HWpf8ARvtPkeSN+0tkx4GBjv369qLAMoqx5EP/ADyT/vkV X8y33f8AHt+737PM
2rtznGOuevHT9KLAFFNee2W4MP2ViRIseRGMZIz+g61a8iH/AJ5J/wB8iiwF eipP9D87yf3Hm/3O
N3r0oH2NnCDyCxJXaMZyOo/CiwEdFSH7GJDGfI3jGV4yM4xx+I/Oj/Q/O8n9 x5v9zjd69KLAR0Us
slpE4TZGz7lUqu3K5IAJHpyPzp4FqZzCEiLgZIG3I6dR170WAjoqQfY2cIPI LEldoxnI6j8KR2sk
Zlc26sgywJUED3/MfnRYBlFO8yw8zy99tvzt25XOfTFRvPbLcGH7KxIkWPIj GMkZ/QdaLAOoprzQ
r5n+hMfLkEZwqck4xjn3H5/WkeeJHKf2fKxAYjCJ8wU4JAznuPrRYB9FN86H z2iFkxKvtJCp7c4z
nHzDt3q15EP/ADyT/vkUWAr0UeZb7v8Aj2/d79nmbV25zjHXPXjp+lNee2W4 MP2ViRIseRGMZIz+
g60WAdRTnMEcgVrb5chTJsG0E9B6nqOgxz9aei20jMqpGWQ4ZdoyPqKLARUV Y8iH/nkn/fIo8iH/
AJ5J/wB8iiwFeirHkQ/88k/75FHkQ/8APJP++RRYCvRVjyIf+eSf98ijyIf+ eSf98iiwFeirHkQ/
88k/75FHkQ/88k/75FFgK9FWPIh/55J/3yKPIh/55J/3yKLAV6KseRD/AM8k /wC+RR5EP/PJP++R
RYCvRVjyIf8Ankn/AHyKPIh/55J/3yKLAV6KseRD/wA8k/75FHkQ/wDPJP8A vkUWAr0VY8iH/nkn
/fIo8iH/AJ5J/wB8iiwFeipngh2/6pOo/hFQbYv+eUfPtQMWioJlTz4FCKAS cgDrxUb3FsjlWj5B
x90UWGouWiQ676p+P9KKLtFRlAUDrnAooJJ4/un/AHj/ADp1Nj+6f94/zp1A yXyWjmMkTAhz86vk
nr2PbqeOn05NOeMyTLuAMSjP3urZ4yMdvr+HQ055Y42VWYBnOFXufoKDIBMs WDuZSw9MAj/EUxFb
7PN9s+0Yj+/jZuONuMbun3+30496rtp8zo2Y4AzCYZDE4L9D0/D6flWpRQBW dJzepIqRmNVK5LkH
BKknGPb1qzVV70L5n7iU+XIIzjbyTjGOfcfn9akFwPOEbRyKGJVXIGGIycev Y9scfSgCP7M/2rOV
+z58zb33/Tpjv67uaiWydZuUDp5pkyZ3HVt33MY4/XFWGufnwkMki7gpdAMA 5x65474/oanoAqwR
TR3c7mOLbK+dwc7sBQAMY9vXvUf2WZp8lI1XzN2VlYjGc/cIxk+vrz1qb7WC 2FhlZd+wOqgjOcHv
kY55Ixx9KkM8IkMZlj3jGV3DIzjHH4j86AInSc3qSKkZjVSuS5BwSpJxj29a Z9nmx5OI/K83zN+4
7vv78bcfh19/apo7mN5WjJ2OrlArEZbAByOeeCKd58PneT5sfm/3Nw3evSgC o9tOWnZY4d0kyOCX
IJVccH5f9n9T+Nn7NH5m/dLnOcec+Pyzj8Kcs8LruSWNhxyGB6nA/Xijz4fO 8nzY/N/ubhu9elAD
vLTdu2LnO7OO+MZ/LioHSc3qSKkZjVSuS5BwSpJxj29as1E9zAjMrzxqyDLA uAQPf8x+dAC/vvtH
/LPyNnvu3Z/LGKr/AGebHk4j8rzfM37ju+/vxtx+HX39qsefD53k+bH5v9zc N3r0oE8LOEEsZYkr
tDDOR1H4UAO8tN27Yuc7s474xn8uKdUfnw+d5Pmx+b/c3Dd69KT7TAGC+fHu LbAN4yW9PryKAKq2
TrNygdPNMmTO46tu+5jHH64oe2nLTsscO6SZHBLkEquOD8v+z+p/G358PneT 5sfm/wBzcN3r0pqX
du8zQrNGZFO0pu5z9KAIlgkVhGY4XjEpkDsSSCWJ4XHXnGc+/tSfZ5seTiPy vN8zfuO77+/G3H4d
ff2qx58PneT5sfm/3Nw3evSmS3cUThNwZ9yqVVhlckAEjPTkfnQBXltZynlo sLKs3nKzE5J37sdO
OpGefpzxM6Tm9SRUjMaqVyXIOCVJOMe3rVmoIbuKXau4JIxIEbMN3BIPAPsa AK7205adljh3STI4
JcglVxwfl/2f1P4xypJ5i2wjDBZxKHKN3fcecYGATzk9MY5q613bLu3XEQ2n a2XHB9D+R/KpqAIf
s0fmb90uc5x5z4/LOPwqTy03bti5zuzjvjGfy4qAXg81kaGRVRxGXO3GTjHf POR271L58PneT5sf
m/3Nw3evSgCB7aRpXA2eXJKkpYk5BXbxjHP3eue/tUjxyG9ikATy1RlJLHOS QemP9n170/z4fO8n
zY/N/ubhu9elSUAVYLYpeT3EkcYZz8rKxJ24AweP9kH8fzk+zR+Zv3S5znHn Pj8s4/CpqKAKP2N/
P3bIs+Zv8/P7zGc7enp8vXp+VXPLTdu2LnO7OO+MZ/LikSWORmVWBZDhl7j6 in0ARPGZJl3AGJRn
73Vs8ZGO31/Doab5LSTCSVgAh+RUyD17nv0HHT68Gp6KACiiigAooooAKKKK ACiiigAooooAKKKK
ACiiigAooooAKKKKAGyEBck4AIyT9az3EMjBmlOR0w4GKvyqrxlXUMD2IzVf 7Lb/APPCL/vgf5/z
+YBWlZWubfawOCe+f4aZJYLJIz+cRuOcbP8A69WzbwqMrDGD6hR/n/P5t8uP +4v5UXsXCcoO8SG9
OXU+uaKbdKF2BQAOen4UUiCxH90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51 fJPXse3U8dPpyakK
AzK+0ZVSN2eRkjjH4fpQ8scbKrMAznCr3P0FJ58P/PWP7+z7w+96fX2piG/Z o/M37pc5zjznx+Wc
fhR9mj8zfulznOPOfH5Zx+FK1zAsvlNPGJMgbC4zk9OKbLdxROE3Bn3KpVWG VyQASM9OR+dAEEti
73ZlDrtLhj6/wH/2mP8Avo+nMphka7WRljUIT8653MuDhSMdOc9eo6ek/mJ5 nl71343bc849cUxr
mBZfKaeMSZA2FxnJ6cUAMSOaJikflmIuX3MTuGTkjHfqecjr3xzYqMzwiQxm WPeMZXcMjOMcfiPz
psdzG8rRk7HVygViMtgA5HPPBFAEDWsjz+Y0durbw3nICHCg8DpzkDB5HXp6 uWCRWEZjheMSmQOx
JIJYnhcdecZz7+1T+fD53k+bH5v9zcN3r0oWeF13JLGw45DA9TgfrxQBUe2n LTsscO6SZHBLkEqu
OD8v+z+p/EWydZuUDp5pkyZ3HVt33MY4/XFW/Ph87yfNj83+5uG716VJQBlt p8zo2Y4AzCYZDE4L
9D0/D6flT5bKcuSmziUSAmVgG+bONo4H15zjPU8XfPh/56x/f2feH3vT6+1C zwuu5JY2HHIYHqcD
9eKAJKzJUk8xbYRhgs4lDlG7vuPOMDAJ5yemMc1fMoFwsJVsshcNxjggEfqK BPCzhBLGWJK7Qwzk
dR+FAFRbJ1m5QOnmmTJncdW3fcxjj9cUPbTlp2WOHdJMjglyCVXHB+X/AGf1 P42muYFl8pp4xJkD
YXGcnpxT/MTzPL3rvxu255x64oApLZOs3KB080yZM7jq277mMcfripYIpo7u dzHFtlfO4Od2AoAG
Me3r3qbz4f8AnrH9/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oApy2U5clNnEo kBMrAN82cbRwPrzn
Gep4srHNHcSFPLKSOHLEnI4Axjv0657+3Ky3cUThNwZ9yqVVhlckAEjPTkfn S/a7bzPL+0Rb87du
8Zz6YoArLZOs3KB080yZM7jq277mMcfriiW1nKeWiwsqzecrMTknfux046kZ 5+nPEr3yLcGHypSR
IseQvGSM/oOtSR3MbytGTsdXKBWIy2ADkc88EUATVQitZwnlusKq03nMyk5B 37sdOegGePpxzZS7
t3maFZozIp2lN3OfpQl3bvM0KzRmRTtKbuc/SgCBo99+YwH8skSyZQ4LLjHP v8p4/ue5q7UYnhZw
gljLEldoYZyOo/CneYnmeXvXfjdtzzj1xQBWitT9qmlmUYZwyASMRwAOV6Z4 z3/SoZbKcuSmziUS
AmVgG+bONo4H15zjPU8XXl2zRxgZL5J56Ad/zIH40PLtmjjAyXyTz0A7/mQP xoAqLZOs3KB080yZ
M7jq277mMcfrir9Qtd2y7t1xENp2tlxwfQ/kfyoa7tl3briIbTtbLjg+h/I/ lQAfZo/M37pc5zjz
nx+WcfhR9mj8zfulznOPOfH5Zx+FDXdsu7dcRDadrZccH0P5H8qmoAg8lpJh JKwAQ/IqZB69z36D
jp9eDU9Qtd2y7t1xENp2tlxwfQ/kfyoFwPOEbRyKGJVXIGGIycevY9scfSgC aiio/Ph87yfNj83+
5uG716UASUVF9pgDBfPj3FtgG8ZLen15FD3MCMyvPGrIMsC4BA9/zH50AS0V G8u2aOMDJfJPPQDv
+ZA/Gmi4HnCNo5FDEqrkDDEZOPXse2OPpQBNRVf7Wu7/AFcnl79nmcbc5xjr nrx0/Sj7Wu7/AFcn
l79nmcbc5xjrnrx0/SgCxRUX2hPtPkYfftLZKkDAx379e1K8u2aOMDJfJPPQ Dv8AmQPxoAkoqq96
Edk8iUsrhQo25bOcEc9OP5+hxHJqkUczxGKUusix4G3ktkjHPtQBeoqKGfzZ JU8t18ptpLYwTjPG
D6EfnTPtYLYWGVl37A6qCM5we+RjnkjHH0oAsUVGZ4RIYzLHvGMruGRnGOPx H502O5jeVoydjq5Q
KxGWwAcjnngigCaio/Ph87yfNj83+5uG716ULPC67kljYcchgepwP14oAkoq Pz4fO8nzY/N/ubhu
9elQvfItwYfKlJEix5C8ZIz+g60AWH+6aj/z/n/P/wBeR/umo/8AP+f8/wD1 wBr/AHT/AJ/z/n8Y
6kf7p/z/AJ/z+MdIZWu+qfj/AEoou+qfj/SigRPH90/7x/nTqbH90/7x/nTq BkvktHMZImBDn51f
JPXse3U8dPpyai+zzfbPtGI/v42bjjbjG7p9/t9OPerHnw+d5Pmx+b/c3Dd6 9KDKBcLCVbLIXDcY
4IBH6imIq/ZZmnyUjVfM3ZWViMZz9wjGT6+vPWkltZynlosLKs3nKzE5J37s dOOpGefpzxb8+Hzv
J82Pzf7m4bvXpQs8LruSWNhxyGB6nA/XigBvlv8AbPM2RbPL27sfPnPTPp/W q/2WZp8lI1XzN2Vl
YjGc/cIxk+vrz1q158PneT5sfm/3Nw3evSgTws4QSxliSu0MM5HUfhQBAsEi sIzHC8YlMgdiSQSx
PC4684zn39qje2nLTsscO6SZHBLkEquOD8v+z+p/Gyl3bvM0KzRmRTtKbuc/ So/to89ohBKSr7SR
t9ucZzj5h270ARLZOs3KB080yZM7jq277mMcfriom0+Z0bMcAZhMMhicF+h6 fh9PyrQ8+HzvJ82P
zf7m4bvXpSfaYAwXz49xbYBvGS3p9eRQBTlspy5KbOJRICZWAb5s42jgfXnO M9Txo1Gs8LruSWNh
xyGB6nA/Xio1u1MzxtHIgV9m9sbSeCBwe+R1+nXigCP7PN9s+0Yj+/jZuONu Mbun3+30496rtp8z
o2Y4AzCYZDE4L9D0/D6flWh58PneT5sfm/3Nw3evSoX1C3W4WBXV3JwQHX5T nHc/oMmgBXSc3qSK
kZjVSuS5BwSpJxj29ahe2nLTsscO6SZHBLkEquOD8v8As/qfxt+fD53k+bH5 v9zcN3r0o8+H/nrH
9/Z94fe9Pr7UAVfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVjy3+2eZsi2eXt3Y+ fOemfT+tOMoFwsJV
sshcNxjggEfqKal3bvM0KzRmRTtKbuc/SgCH7PN9s+0Yj+/jZuONuMbun3+3 0496b9lmafJSNV8z
dlZWIxnP3CMZPr689asfa7bzPL+0Rb87du8Zz6YqN75FuDD5UpIkWPIXjJGf 0HWgCKW1nKeWiwsq
zecrMTknfux046kZ5+nPFn7NH5m/dLnOcec+Pyzj8KV7mBGZXnjVkGWBcAge /wCY/Ol8+H/nrH9/
Z94fe9Pr7UAO8tN27Yuc7s474xn8uKpPbTlp2WOHdJMjglyCVXHB+X/Z/U/j b8+HzvJ82Pzf7m4b
vXpQZQLhYSrZZC4bjHBAI/UUARrHNHcSFPLKSOHLEnI4Axjv0657+3Isc0dx IU8spI4csScjgDGO
/Trnv7cyCeMzmEMpcDJAYZHTqOveoX1C3W4WBXV3JwQHX5TnHc/oMmgCBI3m u7kCIKhmRjIwIJCh
eBxyMqe/f87flv8AbPM2RbPL27sfPnPTPp/WnCeMzmEMpcDJAYZHTqOvejz4 fO8nzY/N/ubhu9el
ADYUbzJZZBhnO0D0UZx/U/jjtRCjeZLLIMM52geijOP6n8cdqSW7iicJuDPu VSqsMrkgAkZ6cj86
Y98i3Bh8qUkSLHkLxkjP6DrQAySzke5LiQCNnVyOeo29v+Af+PH05JLOR7ku JAI2dXI56jb2/wCA
f+PH05tJLHIzKrAshwy9x9RT6AKUlnI9yXEgEbOrkc9Rt7f8A/8AHj6c2f33 2j/ln5Gz33bs/ljF
SUUAUpLOR7kuJAI2dXI56jb2/wCAf+PH05kMMjXayMsahCfnXO5lwcKRjpzn r1HT0s0UAR/vvtH/
ACz8jZ77t2fyxiq/2ebHk4j8rzfM37ju+/vxtx+HX39quUUAVYIpo7udzHFt lfO4Od2AoAGMe3r3
qtKknmLbCMMFnEoco3d9x5xgYBPOT0xjmtOigCGFG8yWWQYZztA9FGcf1P44 7VGiXP2ou6xFckbt
5JCdgBjjtnn+mLVFAFP7PNjycR+V5vmb9x3ff3424/Dr7+1H2ebHk4j8rzfM 37ju+/vxtx+HX39q
uUUAVnSc3qSKkZjVSuS5BwSpJxj29afCjeZLLIMM52geijOP6n8cdqmooApy R3ZnMqiLKnagLnGw
9c/L1OB+Q98xy2k7SSyBIixlV0JkI+Ubcg8d9g/P89CigCmI7tZpSgiCySq+ 7echRtBGNvcD170j
Wsjz+Y0durbw3nICHCg8DpzkDB5HXp63aKAKiwSKwjMcLxiUyB2JJBLE8Ljr zjOff2qN7actOyxw
7pJkcEuQSq44Py/7P6n8b9FAFBbJ1m5QOnmmTJncdW3fcxjj9cVE2nzOjZjg DMJhkMTgv0PT8Pp+
ValFAGdLZTlyU2cSiQEysA3zZxtHA+vOcZ6ni/5abt2xc53Zx3xjP5cU6igB r/dNR/5/z/n/AOvI
/wB01H/n/P8An/64A1/un/P+f8/jHUj/AHT/AJ/z/n8Y6Qytd9U/H+lFF31T 8f6UUCJ4/un/AHj/
ADp1Nj+6f94/zp1Axi2TrNygdPNMmTO46tu+5jHH64qZ0nN6kipGY1UrkuQc EqScY9vWrNMeWONl
VmAZzhV7n6CmIprZOs3KB080yZM7jq277mMcfriom0+Z0bMcAZhMMhicF+h6 fh9PyrQ8+H/nrH9/
Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oAqrZOs3KB080yZM7jq277mMcfrih7 actOyxw7pJkcEuQS
q44Py/7P6n8bEt3FE4TcGfcqlVYZXJABIz05H51L5ieZ5e9d+N23POPXFAEK xzR3EhTyykjhyxJy
OAMY79Oue/ty2C2KXk9xJHGGc/KysSduAMHj/ZB/H85vPh87yfNj83+5uG71 6UGUC4WEq2WQuG4x
wQCP1FAFf7PNjycR+V5vmb9x3ff3424/Dr7+1Ogimju53McW2V87g53YCgAY x7evepvPh87yfNj8
3+5uG716ULPC67kljYcchgepwP14oAz20+Z0bMcAZhMMhicF+h6fh9PyqwLe ZppfMEaxPKsmVYlv
l24GMcfdB/T3qx58PneT5sfm/wBzcN3r0oE8LOEEsZYkrtDDOR1H4UAVFsnW blA6eaZMmdx1bd9z
GOP1xUqpci8eXy4tjBU/1hyACecbffpUiXdu8zQrNGZFO0pu5z9KmoAzpbKc uSmziUSAmVgG+bON
o4H15zjPU8ST205aTyvLKvKkvzEg5Xb8vT/Z6/hjvVkTws4QSxliSu0MM5HU fhR58PneT5sfm/3N
w3evSgCJ0nN6kipGY1UrkuQcEqScY9vWlWOaO4kKeWUkcOWJORwBjHfp1z39 uZFnhddySxsOOQwP
U4H68UefD53k+bH5v9zcN3r0oAb9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd 8Yz+XFR/a7bzPL+0
Rb87du8Zz6YqN75FuDD5UpIkWPIXjJGf0HWgCvcxSxRqpjV41uBIGVWZuX3H gDjAJ5z296lntpy0
nleWVeVJfmJByu35en+z1/DHepmufnwkMki7gpdAMA5x65474/oaf58PneT5 sfm/3Nw3evSgClLZ
TlyU2cSiQEysA3zZxtHA+vOcZ6niw6Tm9SRUjMaqVyXIOCVJOMe3rUqzwuu5 JY2HHIYHqcD9eKFn
hddySxsOOQwPU4H68UAROk5vUkVIzGqlclyDglSTjHt60ipci8eXy4tjBU/1 hyACecbffpU3nw+d
5Pmx+b/c3Dd69KBPCzhBLGWJK7QwzkdR+FAETpOb1JFSMxqpXJcg4JUk4x7e tQrZOs3KB080yZM7
jq277mMcfrirUM/mySp5br5TbSWxgnGeMH0I/Ol8+HzvJ82Pzf7m4bvXpQBU ltZynlosLKs3nKzE
5J37sdOOpGefpzxd8tN27Yuc7s474xn8uKY9zAjMrzxqyDLAuAQPf8x+dKJ4 zOYQylwMkBhkdOo6
96AGeS0kwklYAIfkVMg9e579Bx0+vBqeoxPCzhBLGWJK7QwzkdR+FQvfItwY fKlJEix5C8ZIz+g6
0AWqKYkscjMqsCyHDL3H1FPoAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKK
KACiiigBr/dNR/5/z/n/AOvI/wB01H/n/P8An/64A1/un/P+f8/jHUj/AHT/ AJ/z/n8Y6Qytd9U/
H+lFF31T8f6UUCJ4/un/AHj/ADp1Nj+6f94/zp1Ay5UHktHMZImBDn51fJPX se3U8dPpyanopiKf
2eb7Z9oxH9/GzccbcY3dPv8Ab6ce9N+yzNPkpGq+ZuysrEYzn7hGMn19eetW 3ljjZVZgGc4Ve5+g
pPPh/wCesf39n3h970+vtQBUltZynlosLKs3nKzE5J37sdOOpGefpzxZ8t/t nmbItnl7d2Pnznpn
0/rStcwLL5TTxiTIGwuM5PTimy3cUThNwZ9yqVVhlckAEjPTkfnQBXWydZuU Dp5pkyZ3HVt33MY4
/XFTOk5vUkVIzGqlclyDglSTjHt61P5ieZ5e9d+N23POPXFNM8IkMZlj3jGV 3DIzjHH4j86AKi2T
rNygdPNMmTO46tu+5jHH64qJtPmdGzHAGYTDIYnBfoen4fT8q0PPh87yfNj8 3+5uG716ULPC67kl
jYcchgepwP14oAqLZOs3KB080yZM7jq277mMcfrih7actOyxw7pJkcEuQSq4 4Py/7P6n8bYnhZwg
ljLEldoYZyOo/CgygXCwlWyyFw3GOCAR+ooAjWOaO4kKeWUkcOWJORwBjHfp 1z39ubFR+fD53k+b
H5v9zcN3r0o8+H/nrH9/Z94fe9Pr7UAVHtpy07LHDukmRwS5BKrjg/L/ALP6 n8Wy2U5clNnEokBM
rAN82cbRwPrznGep4me+KOU+yXDEBiMBfmCnBIGc9x9ala7tl3briIbTtbLj g+h/I/lQBRbT5nRs
xwBmEwyGJwX6Hp+H0/KpVsnWblA6eaZMmdx1bd9zGOP1xVsTws4QSxliSu0M M5HUfhR58PneT5sf
m/3Nw3evSgBv2aPzN+6XOc4858flnH4VJ5abt2xc53Zx3xjP5cUiSxyMyqwL IcMvcfUU+gCukc0T
FI/LMRcvuYncMnJGO/U85HXvjmP7PNjycR+V5vmb9x3ff3424/Dr7+1XKKAM ttPmdGzHAGYTDIYn
Bfoen4fT8qG0+Z0bMcAZhMMhicF+h6fh9PyrUooAp/Z5seTiPyvN8zfuO77+ /G3H4dff2pj205ad
ljh3STI4JcglVxwfl/2f1P436KAKYju1mlKCILJKr7t5yFG0EY29wPXvR9nm x5OI/K83zN+47vv7
8bcfh19/arlFAGZKknmLbCMMFnEoco3d9x5xgYBPOT0xjmrTpOb1JFSMxqpX Jcg4JUk4x7etWaKA
KD205adljh3STI4JcglVxwfl/wBn9T+N3y03bti5zuzjvjGfy4p1FAEHktJM JJWACH5FTIPXue/Q
cdPrwanoooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigBr/AHTU
f+f8/wCf/ryP901H/n/P+f8A64A1/un/AD/n/P4x1I/3T/n/AD/n8Y6Qytd9 U/H+lFF31T8f6UUC
J4/un/eP86dTY/un/eP86dQMuUUUUxEHktHMZImBDn51fJPXse3U8dPpyai+ zzfbPtGI/v42bjjb
jG7p9/t9OPerlMeWONlVmAZzhV7n6CgCp9lmafJSNV8zdlZWIxnP3CMZPr68 9aSW1nKeWiwsqzec
rMTknfux046kZ5+nPFvz4f8AnrH9/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04o ATy3+2eZsi2eXt3Y
+fOemfT+tRLBIrCMxwvGJTIHYkkEsTwuOvOM59/apJbuKJwm4M+5VKqwyuSA CRnpyPzqXzE8zy96
78btueceuKAKv2ebHk4j8rzfM37ju+/vxtx+HX39qrtp8zo2Y4AzCYZDE4L9 D0/D6flV9rmBZfKa
eMSZA2FxnJ6cUvnw+d5Pmx+b/c3Dd69KAKSRvNd3IEQVDMjGRgQSFC8DjkZU 9+/52HSc3qSKkZjV
SuS5BwSpJxj29ake5gRmV541ZBlgXAIHv+Y/Ol8+H/nrH9/Z94fe9Pr7UAVF snWblA6eaZMmdx1b
d9zGOP1xT/s832z7RiP7+Nm4424xu6ff7fTj3qx58PneT5sfm/3Nw3evSgTw s4QSxliSu0MM5HUf
hQAx45DexSAJ5aoykljnJIPTH+z696haPffmMB/LJEsmUOCy4xz7/KeP7nua smeESGMyx7xjK7hk
Zxjj8R+dHnw+d5Pmx+b/AHNw3evSgCkkbzXdyBEFQzIxkYEEhQvA45GVPfv+ blsnWblA6eaZMmdx
1bd9zGOP1xVxJY5GZVYFkOGXuPqKfQBB5LSTCSVgAh+RUyD17nv0HHT68Gp6 KKACiiigAooooAKK
KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooo
oAKKKKAGv901H/n/AD/n/wCvI/3TUf8An/P+f/rgDX+6f8/5/wA/jHUj/dP+ f8/5/GOkMrXfVPx/
pRRd9U/H+lFAieP7p/3j/OnVSaJmlYlpfmJ2ojkZ68+39T265WFf3yENKpxu 2PIWyOeR/h9D65NC
uV2ubFFFFMkKg8lo5jJEwIc/Or5J69j26njp9OTU9FAFP7PN9s+0Yj+/jZuO NuMbun3+30496b9l
mafJSNV8zdlZWIxnP3CMZPr689a59Li9dWZZ5yqjLHecD8aXzr//AJ63P3d/ 3m+76/T3rTkJ5jel
tZynlosLKs3nKzE5J37sdOOpGefpzxZ8t/tnmbItnl7d2Pnznpn0/rXMiXUW j8xXujHjO4FsfnTo
3v5EL/aJ1TaSGZmw2ASQD68H8qOTzDmNz7LM0+Skar5m7KysRjOfuEYyfX15 60i2TrNygdPNMmTO
46tu+5jHH64rA+03vl+Z59xszjdvbGfTNL51/wCV5vm3Pl/39zY/OjkDmNu5 ilijVTGrxrcCQMqs
zcvuPAHGATznt71LPbTlpPK8sq8qS/MSDldvy9P9nr+GO9c+Li7MBlF3LgMF K+Y2eQSD+ho86/8A
K83zbny/7+5sfnRyBzG8tk6zcoHTzTJkzuOrbvuYxx+uKHtpy07LHDukmRwS 5BKrjg/L/s/qfxwW
mv0OGluVPPBZh0GT+nNHnX/leb5tz5f9/c2Pzo5A5jolgkVhGY4XjEpkDsSS CWJ4XHXnGc+/tUa2
TrNygdPNMmTO46tu+5jHH64rBM1+E3mW5CgA5LNjB6GnM+opEJWkuRGRkNub GKOTzDmOk8lpJhJK
wAQ/IqZB69z36Djp9eDU9cf9tuv+fmb/AL+Gnma/CbzLchQAclmxg9DR7MOY 62iuS86/8rzfNufL
/v7mx+dDTX6HDS3Knngsw6DJ/TmjkDmOtorkvOv/ACvN8258v+/ubH507fqX l+Zuu9mM7stjHrmj
k8w5jq6K5dTetAJftrAFGkwZWzgHH6npUXnX/wDz1ufu7/vN931+nvRyeYcx 1tFcmJdRaPzFe6Me
M7gWx+dJ51/5Xm+bc+X/AH9zY/Ojk8w5jraK5PzdR2lt91gLuJy3T1+lIZr8 JvMtyFAByWbGD0NH
J5hzHW0VyXnX/leb5tz5f9/c2Pzoaa/Q4aW5U88FmHQZP6c0cgcx1tFcl51/ 5Xm+bc+X/f3Nj86l
U3rQCX7awBRpMGVs4Bx+p6UcnmHMdRRXH/bbr/n5m/7+GpPN1HaW33WAu4nL dPX6UezDmOsorkvO
v/K83zbny/7+5sfnUqjUWgMxnuFQDIJL/MMZ7fzNHJ5hzHUUVym/UvL8zdd7 MZ3ZbGPXNPU3rQCX
7awBRpMGVs4Bx+p6UuTzC51FFcl51/8A89bn7u/7zfd9fp70ol1Fo/MV7ox4 zuBbH50+TzDmOsor
kvOv/K83zbny/wC/ubH50vm6jtLb7rAXcTlunr9KOTzDmOsorkjNfhN5luQo AOSzYweho86/8rzf
NufL/v7mx+dHIHMdbRXJNNfocNLcqeeCzDoMn9OaPOv/ACvN8258v+/ubH50 cgcx1tFcvuu/LVhf
MxZC4QO+cDOe2OMHv2qLzr/yvN8258v+/ubH50cgcx1tFcuo1FoDMZ7hUAyC S/zDGe38zQpvWgEv
21gCjSYMrZwDj9T0pcnmFzqKK5JLm6aKSQ3UwCYA+c8k9uvoCfwpHuL1FVmn nCsMqd5wfxp8gcx1
1FFFZlBRRRQA1/umo/8AP+f8/wD15H+6aj/z/n/P/wBcAa/3T/n/AD/n8Y6k f7p/z/n/AD+Nczxg
kZPHH3TSGk3sRXfVPx/pRRdEMIyOhBI/SigBu7MxdFLyR5AQd/mzn9enXp60 Iha8Ezh03ZIVhyT3
/D3+lOMcJ5aBJJGLYG0ZPJ70sAg3jFukUmNy8DkeoNLS5peXKalFFFUZBRRR QBx+/wAyIJIhyo+Q
pgfmO/Qc9frxUvmx/ZfI+f7md20Z3Zzt6/d/rzXQyQWSMqvDAGc/KuwZb8KT y9P/ALlt9/Z0X73p
9fatOdBZGB5yCHALsxj24Mag5xj7+c49vTApYpog+9jMC8XlFVAwBt25689j jj/HdZNOWXymW1Eh
I+Qhc57cU2UWEb7PIgdyyhlVVyuSACR6cj86OdBZHOZH2Ty8y79+7bn5MY64 9asG5DRDBKP5ezAh
U/w4+9nPP9a6D7PZeZ5fkwb8btu0Zx64pvl6f53k7Lbzf7mF3evSjnQWRzie V9keMtJ5jENgIMcA
8Zz71KbkNEMEo/l7MCFT/Dj72c8/1reMNr9oEJtI8spcNsXBwQD+PIo8vT/O 8nZbeb/cwu716Uc6
CyMVbuNXXa0xUGIgFQMhOo6/j9fzqM3IaIYJR/L2YEKn+HH3s55/rW8senyL uVLZgccgKc5OB+uR
R5en+d5Oy283+5hd3r0o5kFkYKTRbYFZpsJE6kBB1bPI5/2v0HrUJMckEYYP vRCoAAweSc57demP
510gj09n2BLYsWI24XJI6j6imqNNkmaFVtjIGwU2rnP070c4WRy21vSrqTRb YFZpsJE6kBB1bPI5
/wBr9B610X2O1/59of8AvgVGI9PZ9gS2LFiNuFySOo+oocwtEw4rmIKA4fmM oQI1JHy4zuPJ+nHX
83Ldxq67WmKgxEAqBkJ1HX8fr+dbXl6f53k7Lbzf7mF3evShY9PkXcqWzA45 AU5ycD9cijmQWRgm
5DRDBKP5ezAhU/w4+9nPP9ar+dL5ezZHjGP9UufzxnNdN5en+d5Oy283+5hd 3r0puNM8zy8Wm/dj
b8uc+mPWjnQWRzGZMYy2MYxntnOPz5qzDLEFj8wSArG0Y2gHg7uev+10/XtW 07WS3Bh+w7j5ix5E
QIJIz+g61MI9PZ9gS2LFiNuFySOo+oo5wsjA85BDgF2Yx7cGNQc4x9/Oce3p gUpuQ0QwSj+XswIV
P8OPvZzz/Wt7y9P87ydlt5v9zC7vXpSMmnLL5TLaiQkfIQuc9uKOdBZHPStH JbQory7o0wFKjbkn
J5z7+nYVIk0W2BWabCROpAQdWzyOf9r9B61usmnLL5TLaiQkfIQuc9uKRhpi 7twtBtbDZ28Hng+/
Bo5wsjFiuYgoDh+YyhAjUkfLjO48n6cdfzct3GrrtaYqDEQCoGQnUdfx+v51 teXp/neTstvN/uYX
d69KQpp27aVtdxbbjC5Len15/WjmQWRhG5DRDBKP5ezAhU/w4+9nPP8AWqmZ MYy2MYxntnOPz5rp
pRYRvs8iB3LKGVVXK5IAJHpyPzpjtZLcGH7DuPmLHkRAgkjP6DrRzoLI5ra3 pVmVo5LaFFeXdGmA
pUbck5POff07Cum+x2v/AD7Q/wDfAqIpp27aVtdxbbjC5Len15/WnzhaJhG5 DRDBKP5ezAhU/wAO
PvZzz/Woz5LWiR7pd6ln/wBWMEkDjr7frXReXp/neTstvN/uYXd69KheTThc CAQwO5bDABODnHOT
yevAyaXOgsjn/Ol8vZsjxjH+qXP54zmmZkxjLYxjGe2c4/PmunxpnmeXi037 sbflzn0x61G7WS3B
h+w7j5ix5EQIJIz+g60+dBZGLDLEFj8wSArG0Y2gHg7uev8AtdP17UvnIIcA uzGPbgxqDnGPv5zj
29MCt8R6ez7AlsWLEbcLkkdR9RR5en+d5Oy283+5hd3r0pc6CyME3IaIYJR/ L2YEKn+HH3s55/rU
crRyW0KK8u6NMBSo25Jyec+/p2FdCyacsvlMtqJCR8hC5z24oZNOWXymW1Eh I+Qhc57cUc6CyMJJ
otsCs02EidSAg6tnkc/7X6D1p0VzEFAcPzGUIEakj5cZ3Hk/Tjr+e0w0xd24 Wg2ths7eDzwffg07
y9P87ydlt5v9zC7vXpRzoLIxVu41ddrTFQYiAVAyE6jr+P1/OozchohglH8v ZgQqf4cfeznn+tbp
TTt20ra7i23GFyW9Prz+tNlFhG+zyIHcsoZVVcrkgAkenI/OjmQWRh+eggii AYjyyrNsAYZJPBzn
vjHGR9aU3IaIYJR/L2YEKn+HH3s55/rWz/onmujWIVVkCM5RMZOMd885HbvU vl6f53k7Lbzf7mF3
evSjnQWRzp8lrRI90u9Sz/6sYJIHHX2/WoMyYxlsYxjPbOcfnzXRvJpwuBAI YHcthgAnBzjnJ5PX
gZNDtZLcGH7DuPmLHkRAgkjP6DrRzhaJz8pzHFHHyqjcT6scZ/oPw96UPsi2 RISXHzF8H8h269ev
0zXSvBarNHGLWFi+SfkHAHfp6kD8aVILKRnVYYCyn5l2DI+oo5wsi1RRRWYB RRRQA1/umo/8/wCf
8/8A15H+6aj/AM/5/wA//XAGv90/5/z/AJ/GqbdSSd7DJz2/wq0/3T/n/P8A n8apuFBI2McHHb/G
guPN0I7lQqxqOgBH8qKLlgyxsOhBP8qKRL3HMrBhMil2TICj13Eg02OJ5Lo3 Dq6Drhxzk/0qxH90
/wC8f506lYvndrFyiiiqMwoopjyxxsqswDOcKvc/QUAVztimaSOVcFgJFckn qeh7Ac8dOD05NREE
XhuC0XEm0puONuMbun3+CM9MAjPGatMypNDGqAkg9ONqjr+u0Y9/agS24xiS IYbyxgjg/wB36+1B
XulMofPJYxIqy5JWViOufuEYzwcnscnqKSZH2GNTAVjn80M7HOd+7HTjuM89 D74uGe2SVYjLCsg+
UJuAIz2x+VNkuYIXVBtZwVTahGUBIAyM9OR+lAe6IXUXhkPk7Amwtj5856Z/ u8H8QfSqwhVJm3bX
QTbyTcOMZbd9zGOOfyPTmr4MQkEYKBwuQoxkL9PSmGe2SVYjLCsg+UJuAIz2 x+VAe6QySP8AbVkH
k+XGChJcg8kEnGO209/Xpg1CIVSZt210E28k3DjGW3fcxjjn8j05q6JbcTCE SRCUDAQEbgOvSkae
2iYq0sKNGvILAFRx+Q6fpQHumc9sSj7hbqx84E7icF+h+72wQfYH0IqUQqkz btroJt5JuHGMtu+5
jHHP5HpzV0S24xiSIYbyxgjg/wB36+1AltxMIRJEJQMBARuA69KA90pSo+64 YCDc06NkuQcLjg/L
/sn2GT6VOHMVxKVeLY8gZmYnK8AEAY5+6ec8c+lTLLb71RJItwyiqCM8dQP0 4o823WTyxJEHQAbc
jKg4xx+X6UB7o4zxDOXHBwf8/gfyPpVCVH3XDAQbmnRslyDhccH5f9k+wyfS roltxMIRJEJQMBAR
uA69KWN4WYrGV3R/KVxgr+HYcfjQHumfNC29irx/LMHyZWAPzZxtHA6HnnoS ec4Y9sSj7hbqx84E
7icF+h+72wQfYH0IrWCqMYUDAwMDoKAqjGFAwMDA6CgPdM4QqkzbtroJt5Ju HGMtu+5jHHP5HpzV
kpbiQuZZMhskec+M/TOMcH24PpVgKoxhQMDAwOgoCqMYUDAwMDoKA90jL24Y sdmQ2Scd8Yz+QIz7
H0qjkPdXIwiIZkYyNkMduOAMcjKt345P10gqjGFAwMDA6CgKoxhQMDAwOgoD 3TMmhbexV4/lmD5M
rAH5s42jgdDzz0JPOcPKHzyWMSKsuSVlYjrn7hGM8HJ7HJ6itAKoxhQMDAwO goCqMYUDAwMDoKA9
0zyh88ljEirLklZWI65+4RjPByexyeopZYs3Lv56iMyKzDJ6jb27/wCr6+7e nN8KoxhQMDAwOgoC
qMYUDAwMDoKA90okEAwlovKE3mF9x3ff34249iM57E9sU6FjFd3DsIQsknLB zuAC4HG3noe/HPoa
uBVGMKBgYGB0FAVRjCgYGBgdBQHumdMj7DGpgKxz+aGdjnO/djpx3Geeh98X S9uGLHZkNknHfGM/
kCM+x9KkCqMYUDAwMDoKAqjGFAwMDA6CgPdGmeIZy44OD/n8D+R9KqwsYru4 dhCFkk5YOdwAXA42
89D3459DVwKoxhQMDAwOgoCqMYUDAwMDoKA90zhCqTNu2ugm3km4cYy277mM cc/kenNSiSRLySUi
HYdqH94cgAtzjb7n8jzVwKoxhQMDAwOgoCqMYUDAwMDoKA90rlLcSFzLJkNk jznxn6Zxjg+3B9Kk
L24YsdmQ2Scd8Yz+QIz7H0qQKoxhQMDAwOgoCqMYUDAwMDoKA90zch7q5GER DMjGRshjtxwBjkZV
u/HJ+qTQtvYq8fyzB8mVgD82cbRwOh556EnnONMKoxhQMDAwOgoCqMYUDAwM DoKA90zyh88ljEir
LklZWI65+4RjPByexyeooKHzyWMSKsuSVlYjrn7hGM8HJ7HJ6itAKoxhQMDA wOgoCqMYUDAwMDoK
A90oSxZuXfz1EZkVmGT1G3t3/wBX1929OVIIBhLReUJvML7ju+/vxtx7EZz2 J7Yq8FUYwoGBgYHQ
UBVGMKBgYGB0FAe6U4WMV3cOwhCyScsHO4ALgcbeeh78c+hqKZH2GNTAVjn8 0M7HOd+7HTjuM89D
740QqjGFAwMDA6CgKoxhQMDAwOgoD3TPMX+kTzM6AiUMq+YxVsDGGGMfw5zz gj/ZpBCqTNu2ugm3
km4cYy277mMcc/kenNaIVRjCgYGBgdBQFUYwoGBgYHQUB7pTEkiXkkpEOw7U P7w5ABbnG33P5Hmr
Be3DFjsyGyTjvjGfyBGfY+lSBVGMKBgYGB0FAVRjCgYGBgdBQHuleJ0WSaWV gGLbcZ6KM4/9mPtk
jtSHa83mTSqBG2FVCQRz3PccdOnBznGRZCqMYUDAwMDoKAqjGFAwMDA6CgPd HUUUUEhRRRQA1/um
o/8AP+f8/wD15H+6aj/z/n/P/wBcAa/3T/n/AD/n8a5gjJJweefvGrD/AHT/ AJ/z/n8Y6Q02titd
AKIwOgBA/Sii76p+P9KKAJ4/un/eP86dTY/un/eP86dQBcooopiCoPJaOYyR MCHPzq+SevY9up46
fTk1I8scbKrMAznCr3P0FI8u2aOMDJfJPPQDv+ZA/GgBsKN5kssgwznaB6KM 4/qfxx2qH7PN9s+0
Yj+/jZuONuMbun3+30496sefD/z1j+/s+8Pven19qRrmBZfKaeMSZA2FxnJ6 cUAVvsszT5KRqvmb
srKxGM5+4RjJ9fXnrSS2s5Ty0WFlWbzlZick792OnHUjPP054sS3cUThNwZ9 yqVVhlckAEjPTkfn
UvmJ5nl71343bc849cUAR+W/2zzNkWzy9u7Hz5z0z6f1qv8AZZmnyUjVfM3Z WViMZz9wjGT6+vPW
rRnhEhjMse8Yyu4ZGcY4/EfnR58PneT5sfm/3Nw3evSgCotk6zcoHTzTJkzu OrbvuYxx+uKZcxSx
RqpjV41uBIGVWZuX3HgDjAJ5z296vLPC67kljYcchgepwP14oE8LOEEsZYkr tDDOR1H4UAVp7act
J5XllXlSX5iQcrt+Xp/s9fwx3pq2TrNygdPNMmTO46tu+5jHH64q2ZQLhYSr ZZC4bjHBAI/UUefD
53k+bH5v9zcN3r0oAqPbTlp2WOHdJMjglyCVXHB+X/Z/U/jIsEisIzHC8YlM gdiSQSxPC4684zn3
9qn8+H/nrH9/Z94fe9Pr7VA98Ucp9kuGIDEYC/MFOCQM57j60ARrZOs3KB08 0yZM7jq277mMcfri
rHktJMJJWACH5FTIPXue/QcdPrwaVru2XduuIhtO1suOD6H8j+VOE8LOEEsZ YkrtDDOR1H4UASUV
H58PneT5sfm/3Nw3evSlSWORmVWBZDhl7j6igB9FFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUANf 7pqP/P8An/P/ANeR
/umo/wDP+f8AP/1wBr/dP+f8/wCfxjqR/un/AD/n/P4x0hla76p+P9KKLvqn 4/0ooETx/dP+8f50
6mx/dP8AvH+dOoGXKKKY8scbKrMAznCr3P0FMRH5LRzGSJgQ5+dXyT17Ht1P HT6cmlhRvMllkGGc
7QPRRnH9T+OO1OeXbNHGBkvknnoB3/MgfjR58P8Az1j+/s+8Pven19qAK/2e b7Z9oxH9/GzccbcY
3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561Za5gWXymnjEmQNhcZyen FNlu4onCbgz7lUqr
DK5IAJGenI/OgCvLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/bPM2RbPL27 sfPnPTPp/WpPMTzP
L3rvxu255x64pvnw+d5Pmx+b/c3Dd69KAIFgkVhGY4XjEpkDsSSCWJ4XHXnG c+/tSfZ5seTiPyvN
8zfuO77+/G3H4dff2qwZQLhYSrZZC4bjHBAI/UUefD53k+bH5v8Ac3Dd69KA M9tPmdGzHAGYTDIY
nBfoen4fT8qekbzXdyBEFQzIxkYEEhQvA45GVPfv+d1Z4XXcksbDjkMD1OB+ vFHnw+d5Pmx+b/c3
Dd69KAInSc3qSKkZjVSuS5BwSpJxj29ahWydZuUDp5pkyZ3HVt33MY4/XFWx PCzhBLGWJK7Qwzkd
R+FNS7t3maFZozIp2lN3OfpQBD9nm+2faMR/fxs3HG3GN3T7/b6ce9SvHIb2 KQBPLVGUksc5JB6Y
/wBn171IkscjMqsCyHDL3H1FPoApNHvvzGA/lkiWTKHBZcY59/lPH9z3NRpG 813cgRBUMyMZGBBI
ULwOORlT37/no0UAUFsnWblA6eaZMmdx1bd9zGOP1xVjyWkmEkrABD8ipkHr 3PfoOOn14NT0UAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUANf7pqP/P8An/P/ANeR/umo/wDP+f8AP/1wBr/dP+f8 /wCfxjqR/un/AD/n
/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/dP8AvH+dOoGXKg8lo5jJ EwIc/Or5J69j26nj
p9OTU9MeWONlVmAZzhV7n6CmIZCjeZLLIMM52geijOP6n8cdqh+zzfbPtGI/ v42bjjbjG7p9/t9O
PerHnw/89Y/v7PvD73p9faka5gWXymnjEmQNhcZyenFAFb7LM0+Skar5m7Ky sRjOfuEYyfX1560k
trOU8tFhZVm85WYnJO/djpx1Izz9OeLEt3FE4TcGfcqlVYZXJABIz05H51L5 ieZ5e9d+N23POPXF
AEflv9s8zZFs8vbux8+c9M+n9arLZOs3KB080yZM7jq277mMcfrirfnw+d5P mx+b/c3Dd69KDKBc
LCVbLIXDcY4IBH6igCJ0nN6kipGY1UrkuQcEqScY9vWoVsnWblA6eaZMmdx1 bd9zGOP1xVvz4fO8
nzY/N/ubhu9elCzwuu5JY2HHIYHqcD9eKAM9tPmdGzHAGYTDIYnBfoen4fT8 qlWydZuUDp5pkyZ3
HVt33MY4/XFW/Ph87yfNj83+5uG716UCeFnCCWMsSV2hhnI6j8KAKj205adl jh3STI4JcglVxwfl
/wBn9T+M6xzR3EhTyykjhyxJyOAMY79Oue/ty5Lu3eZoVmjMinaU3c5+lTUA QeS0kwklYAIfkVMg
9e579Bx0+vBqeoxPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3Dd69KAJKKjWe F13JLGw45DA9Tgfr
xR58PneT5sfm/wBzcN3r0oAkoqH7XbeZ5f2iLfnbt3jOfTFRvfItwYfKlJEi x5C8ZIz+g60AWqKj
E8LOEEsZYkrtDDOR1H4UefD53k+bH5v9zcN3r0oAkoqJrmBZfKaeMSZA2Fxn J6cUNcwLL5TTxiTI
GwuM5PTigCWioWu7Zd264iG07Wy44PofyP5U7z4fO8nzY/N/ubhu9elAElFR faYAwXz49xbYBvGS
3p9eRTZbuKJwm4M+5VKqwyuSACRnpyPzoAnoqsLweayNDIqo4jLnbjJxjvnn I7d6l8+HzvJ82Pzf
7m4bvXpQBJRVV9Qt1uFgV1dycEB1+U5x3P6DJoe+Rbgw+VKSJFjyF4yRn9B1 oAtUUVCl3bvM0KzR
mRTtKbuc/SgCaioWu7Zd264iG07Wy44PofyP5U4Tws4QSxliSu0MM5HUfhQB JRUfnw+d5Pmx+b/c
3Dd69Kb9rtvM8v7RFvzt27xnPpigCaiqr3yLcGHypSRIseQvGSM/oOtTefD/ AM9Y/v7PvD73p9fa
gCSiomuYFl8pp4xJkDYXGcnpxTZbuKJwm4M+5VKqwyuSACRnpyPzoAnopvmJ 5nl71343bc849cUx
rmBZfKaeMSZA2FxnJ6cUAS0VCl3bvM0KzRmRTtKbuc/Sl+0wBgvnx7i2wDeM lvT68igCWioxPGZz
CGUuBkgMMjp1HXvQJ4WcIJYyxJXaGGcjqPwoAkoqJ7mBGZXnjVkGWBcAge/5 j86ie+Rbgw+VKSJF
jyF4yRn9B1oAtUVG8u2aOMDJfJPPQDv+ZA/GlSWORmVWBZDhl7j6igB9FFFA BRRRQA1/umo/8/5/
z/8AXkf7pqP/AD/n/P8A9cAa/wB0/wCf8/5/GOpH+6f8/wCf8/jHSGVrvqn4 /wBKKLvqn4/0ooET
x/dP+8f506mx/dP+8f506gZcqDyWjmMkTAhz86vknr2PbqeOn05NT0x5Y42V WYBnOFXufoKYit9n
m+2faMR/fxs3HG3GN3T7/b6ce9N+yzNPkpGq+ZuysrEYzn7hGMn19eetWvPh /wCesf39n3h970+v
tSNcwLL5TTxiTIGwuM5PTigCrLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/ AGzzNkWzy9u7Hz5z
0z6f1pJbuKJwm4M+5VKqwyuSACRnpyPzqXzE8zy9678btueceuKAKS2TrNyg dPNMmTO46tu+5jHH
64qZ0nN6kipGY1UrkuQcEqScY9vWpfPh87yfNj83+5uG716UGUC4WEq2WQuG 4xwQCP1FAFRbJ1m5
QOnmmTJncdW3fcxjj9cVE2nzOjZjgDMJhkMTgv0PT8Pp+VaHnw+d5Pmx+b/c 3Dd69KFnhddySxsO
OQwPU4H68UAVFsnWblA6eaZMmdx1bd9zGOP1xQ9tOWnZY4d0kyOCXIJVccH5 f9n9T+Nvz4fO8nzY
/N/ubhu9elAnhZwgljLEldoYZyOo/CgCNY5o7iQp5ZSRw5Yk5HAGMd+nXPf2 5sVCl3bvM0KzRmRT
tKbuc/SpqAKD205adljh3STI4JcglVxwfl/2f1P4tlspy5KbOJRICZWAb5s4 2jgfXnOM9TxdE8LO
EEsZYkrtDDOR1H4UefD53k+bH5v9zcN3r0oAz20+Z0bMcAZhMMhicF+h6fh9 PyqVbJ1m5QOnmmTJ
ncdW3fcxjj9cVbWeF13JLGw45DA9TgfrxR58PneT5sfm/wBzcN3r0oAb9mj8 zfulznOPOfH5Zx+F
SeWm7dsXOd2cd8Yz+XFR/a7bzPL+0Rb87du8Zz6YqN75FuDD5UpIkWPIXjJG f0HWgCBI3mu7kCIK
hmRjIwIJCheBxyMqe/f8yWynLkps4lEgJlYBvmzjaOB9ec4z1PF3z4f+esf3 9n3h970+vtSNcwLL
5TTxiTIGwuM5PTigCt9lmafJSNV8zdlZWIxnP3CMZPr689aPsszT5KRqvmbs rKxGM5+4RjJ9fXnr
Vrz4fO8nzY/N/ubhu9elJ9pgDBfPj3FtgG8ZLen15FAFeSzke5LiQCNnVyOe o29v+Af+PH05X7PN
jycR+V5vmb9x3ff3424/Dr7+1WBPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3 Dd69KAIYIpo7udzH
FtlfO4Od2AoAGMe3r3qKW1nKeWiwsqzecrMTknfux046kZ5+nPFtZ4XXcksb DjkMD1OB+vFHnw+d
5Pmx+b/c3Dd69KAKv2SU3E0x25MgdF8xirYAGGGMDpnPODj05RbJ1m5QOnmm TJncdW3fcxjj9cVM
LweayNDIqo4jLnbjJxjvnnI7d6l8+HzvJ82Pzf7m4bvXpQBCqXIvHl8uLYwV P9YcgAnnG336VY8t
N27Yuc7s474xn8uKrvqFutwsCuruTggOvynOO5/QZND3yLcGHypSRIseQvGS M/oOtAFqq6xzR3Eh
TyykjhyxJyOAMY79Oue/tzYqFLu3eZoVmjMinaU3c5+lAEDR778xgP5ZIlky hwWXGOff5Tx/c9zU
aRvNd3IEQVDMjGRgQSFC8DjkZU9+/wCdtru2XduuIhtO1suOD6H8j+VOE8LO EEsZYkrtDDOR1H4U
AVFsnWblA6eaZMmdx1bd9zGOP1xVn7NH5m/dLnOcec+Pyzj8Kd58PneT5sfm /wBzcN3r0pv2u28z
y/tEW/O3bvGc+mKAJPLTdu2LnO7OO+MZ/Liqv2eb7Z9oxH9/GzccbcY3dPv9 vpx70575FuDD5UpI
kWPIXjJGf0HWpvPh/wCesf39n3h970+vtQBV+yzNPkpGq+ZuysrEYzn7hGMn 19eetJLazlPLRYWV
ZvOVmJyTv3Y6cdSM8/Tni01zAsvlNPGJMgbC4zk9OKbLdxROE3Bn3KpVWGVy QASM9OR+dAC+W/2z
zNkWzy9u7Hz5z0z6f1qv9lmafJSNV8zdlZWIxnP3CMZPr689aueYnmeXvXfj dtzzj1xTGuYFl8pp
4xJkDYXGcnpxQAxY5o7iQp5ZSRw5Yk5HAGMd+nXPf25bBFNHdzuY4tsr53Bz uwFAAxj29e9SJd27
zNCs0ZkU7Sm7nP0pftMAYL58e4tsA3jJb0+vIoAjdJzepIqRmNVK5LkHBKkn GPb1qF7actOyxw7p
JkcEuQSq44Py/wCz+p/G2J4zOYQylwMkBhkdOo696BPCzhBLGWJK7QwzkdR+ FAFCVJPMW2EYYLOJ
Q5Ru77jzjAwCecnpjHNaPlpu3bFzndnHfGM/lxTHuYEZleeNWQZYFwCB7/mP zqJ75FuDD5UpIkWP
IXjJGf0HWgCSFG8yWWQYZztA9FGcf1P447UnktJMJJWACH5FTIPXue/QcdPr wae8u2aOMDJfJPPQ
Dv8AmQPxpUljkZlVgWQ4Ze4+ooAfRRRQAUUUUANf7pqP/P8An/P/ANeR/umo /wDP+f8AP/1wBr/d
P+f8/wCfxjqR/un/AD/n/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/ dP8AvH+dOoGXKg8l
o5jJEwIc/Or5J69j26njp9OTUjyxxsqswDOcKvc/QUjy7Zo4wMl8k89AO/5k D8aYiv8AZ5vtn2jE
f38bNxxtxjd0+/2+nHvTfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVrz4f8AnrH9 /Z94fe9Pr7UjXMCy
+U08YkyBsLjOT04oAqy2s5Ty0WFlWbzlZick792OnHUjPP054s+W/wBs8zZF s8vbux8+c9M+n9aS
W7iicJuDPuVSqsMrkgAkZ6cj86l8xPM8veu/G7bnnHrigCktk6zcoHTzTJkz uOrbvuYxx+uKmdJz
epIqRmNVK5LkHBKknGPb1qRrmBZfKaeMSZA2FxnJ6cUpnhEhjMse8Yyu4ZGc Y4/EfnQBUWydZuUD
p5pkyZ3HVt33MY4/XFRNp8zo2Y4AzCYZDE4L9D0/D6flV6O5jeVoydjq5QKx GWwAcjnnginefD53
k+bH5v8Ac3Dd69KAKi2TrNygdPNMmTO46tu+5jHH64oe2nLTsscO6SZHBLkE quOD8v8As/qfxtrP
C67kljYcchgepwP14o8+HzvJ82Pzf7m4bvXpQBGsc0dxIU8spI4csScjgDGO /Trnv7c2KYkscjMq
sCyHDL3H1FPoAoPbTlp2WOHdJMjglyCVXHB+X/Z/U/i2WynLkps4lEgJlYBv mzjaOB9ec4z1PGjR
QBltp8zo2Y4AzCYZDE4L9D0/D6flUq2TrNygdPNMmTO46tu+5jHH64q/RQBD 9mj8zfulznOPOfH5
Zx+FSeWm7dsXOd2cd8Yz+XFOooApT205aTyvLKvKkvzEg5Xb8vT/AGev4Y70 n2WZp8lI1XzN2VlY
jGc/cIxk+vrz1q9RQBQWydZuUDp5pkyZ3HVt33MY4/XFSwRTR3c7mOLbK+dw c7sBQAMY9vXvVqig
Cg9tOWnZY4d0kyOCXIJVccH5f9n9T+LZbKcuSmziUSAmVgG+bONo4H15zjPU 8aNFAGW2nzOjZjgD
MJhkMTgv0PT8Pp+VSrZOs3KB080yZM7jq277mMcfrir9FAFH7JKbiaY7cmQO i+YxVsADDDGB0znn
Bx6cotk6zcoHTzTJkzuOrbvuYxx+uKv0UAVVS5F48vlxbGCp/rDkAE842+/S rHlpu3bFzndnHfGM
/lxTqKACq6xzR3EhTyykjhyxJyOAMY79Oue/tzYooApNHvvzGA/lkiWTKHBZ cY59/lPH9z3NRpG8
13cgRBUMyMZGBBIULwOORlT37/no0UAUFsnWblA6eaZMmdx1bd9zGOP1xVn7 NH5m/dLnOcec+Pyz
j8KmooAb5abt2xc53Zx3xjP5cVV+zzfbPtGI/v42bjjbjG7p9/t9OPerlFAF H7LM0+Skar5m7Kys
RjOfuEYyfX1560ktrOU8tFhZVm85WYnJO/djpx1Izz9OeL9FAEPlv9s8zZFs 8vbux8+c9M+n9ar/
AGWZp8lI1XzN2VlYjGc/cIxk+vrz1q9RQBXWOaO4kKeWUkcOWJORwBjHfp1z 39uWwRTR3c7mOLbK
+dwc7sBQAMY9vXvVqigCs6Tm9SRUjMaqVyXIOCVJOMe3rUL205adljh3STI4 JcglVxwfl/2f1P43
6KAMyVJPMW2EYYLOJQ5Ru77jzjAwCecnpjHNaPlpu3bFzndnHfGM/lxTqKAI YUbzJZZBhnO0D0UZ
x/U/jjtSeS0kwklYAIfkVMg9e579Bx0+vBqeigAooooAKKKKAGv901H/AJ/z /n/68j/dNR/5/wA/
5/8ArgDX+6f8/wCf8/jHUj/dP+f8/wCfxjpDK131T8f6UUXfVPx/pRQInj+6 f94/zp1Nj+6f94/z
p1AyXyWjmMkTAhz86vknr2PbqeOn05NLCjeZLLIMM52geijOP6n8cdqmopiK f2eb7Z9oxH9/Gzcc
bcY3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561eooAoS2s5Ty0WFlWb zlZick792OnHUjPP
054s+W/2zzNkWzy9u7Hz5z0z6f1qaigCj9lmafJSNV8zdlZWIxnP3CMZPr68 9aesEisIzHC8YlMg
diSQSxPC4684zn39qt0UAUHtpy07LHDukmRwS5BKrjg/L/s/qfxFsnWblA6e aZMmdx1bd9zGOP1x
V+igDLbT5nRsxwBmEwyGJwX6Hp+H0/Kny2U5clNnEokBMrAN82cbRwPrznGe p40aKAIPJaSYSSsA
EPyKmQevc9+g46fXg1PRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUA
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA1 /umo/wDP+f8AP/15
H+6aj/z/AJ/z/wDXAGv90/5/z/n8Y6kf7p/z/n/P4x0hla76p+P9KKLvqn4/ 0ooETx/dP+8f506m
x/dP+8f506gZcooopiCiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAoooo
AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigA
ooooAKKKKAGv93HqRVUzIDhioPu3/wBerUhAXJOACMk/WqDGBnVmKHb70AE0 hM8ABwrE5wevBqWq
8zh7qAhgxy2cH2NWKQytd9U/H+lFF31T8f6UUCJ4/un/AHj/ADp1Nj+6f94/ zp1Ax7y7BkngAEkk
1BdzuLN3QlSVyCCcjNLMYnyrOvQd+nFQ3bp9jdVdSQgHX0oEaGT6n/P+f89z J9T/AJ/z/nun+f8A
P+f/AK5/n/P+f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuA Lk+p/wA/5/z3Mn1P
+f8AP+e6f5/z/n/65/n/AD/n/wCuALk+p/z/AJ/z3Mn1P+f8/wCe6f5/z/n/ AOuf5/z/AJ/+uALk
+p/z/n/PcyfU/wCf8/57p/n/AD/n/wCuf5/z/n/64AuT6n/P+f8APcyfU/5/ z/nun+f8/wCf/rn+
f8/5/wDrgC5Pqf8AP+f89zJ9T/n/AD/nun+f8/5/+uf5/wA/5/8ArgC5Pqf8 /wCf89zJ9T/n/P8A
nun+f8/5/wDrn+f8/wCf/rgC5Pqf8/5/z3Mn1P8An/P+e6f5/wA/5/8Arn+f 8/5/+uALk+p/z/n/
AD3Mn1P+f8/57p/n/P8An/65/n/P+f8A64AuT6n/AD/n/PcyfU/5/wA/57p/ n/P+f/rn+f8AP+f/
AK4AuT6n/P8An/PcyfU/5/z/AJ7p/n/P+f8A65/n/P8An/64AuT6n/P+f89z J9T/AJ/z/nun+f8A
P+f/AK5/n/P+f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuA Lk+p/wA/5/z3Mn1P
+f8AP+e6f5/z/n/65/n/AD/n/wCuALk+p/z/AJ/z3Mn1P+f8/wCe6f5/z/n/ AOuf5/z/AJ/+uALk
+p/z/n/PcyfU/wCf8/57p/n/AD/n/wCuf5/z/n/64AuT6n/P+f8APcyfU/5/ z/nun+f8/wCf/rn+
f8/5/wDrgC5Pqf8AP+f89zJ9T/n/AD/nun+f8/5/+uf5/wA/5/8ArgC5Pqf8 /wCf89zJ9T/n/P8A
nun+f8/5/wDrn+f8/wCf/rgC5Pqf8/5/z3Mn1P8An/P+e6f5/wA/5/8Arn+f 8/5/+uALk+p/z/n/
AD3Mn1P+f8/57p/n/P8An/65/n/P+f8A64AuT6n/AD/n/PcyfU/5/wA/57p/ n/P+f/rn+f8AP+f/
AK4AuT6n/P8An/PcyfU/5/z/AJ7p/n/P+f8A65/n/P8An/64AuT6n/P+f89z J9T/AJ/z/nun+f8A
P+f/AK5/n/P+f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuA GTxyeo7/AOf8/rE0
+1lU8FunJ/xqQkDknABySf8AP+f51SYXdWdlIXoM8E0AFy5eWGNuUYncp5B4 pfs8H/PGP/vkVHK6
tdW+1geW6fQ1YoGMWGJGDLEikdwoFPoooArXfVPx/pRRd9U/H+lFAidFXYCQ ckn+Ijufel2r/dP/
AH03+NRThTaEO4RcnLN0+8eD7dqqxyKgCLJHBDlv3sQCq5+XGM5Hc/8AfNAy 39ktv+fdP1/xo+yW
3/Pun6/41VW7cIBKwSZnjwh4ODtzgH3LUJNJ5Fu01x5YkTcZMKMHAwOeO5P4 fhQIv4Hof++2/wAa
aVzJjLAbQcbz6n3qpDNM14VZ0xuYGPPIAzg4xkduScc+4q1MAQ4Zyg8vlgcY 5bnNAC7f9p/++zRt
/wBp/wDvs1neZ5SEW5twpYbpowEUcHgnkZ4H/fVPE055M3QIPlAIO5yuckc8 YPp+FAy9t/2n/wC+
zRt/2n/77NZ893IkWRIFaPf99gokwxAHTk8c4x1/JZ2ma3k+dn81pYwmBxgN jGBnPyigC/t/2n/7
7NG3/af/AL7NUjNiX5bgGMqu6b5eB8/fGOoA/wDr1IkxN2qed5ikDAQqeMZy wxkfUcdPxALO3/af
/vs0bf8Aaf8A77NNkIKyKzbF2csDgjrzmqkTrErvF5BRCGd4UADDnI78jr+l AF3b/tP/AN9mjb/t
P/32apPJcKJXaQq0cQk2ALjJLHB47YA4oEhihlAlIcytwSoEeWJBJwcAj1z1 FAF3b/tP/wB9mjb/
ALT/APfZqlHcu8SMZRzkOyjIUBiN2ffH074wDV+gBu3/AGn/AO+zRt/2n/77 NOooAbt/2n/77NG3
/af/AL7NOooAbt/2n/77NG3/AGn/AO+zTqKAG7f9p/8Avs0bf9p/++zTqKAG 7f8Aaf8A77NG3/af
/vs06igBu3/af/vs0bf9p/8Avs06igBu3/af/vs0bf8Aaf8A77NOooAbt/2n /wC+zRt/2n/77NOo
oAbt/wBp/wDvs0bf9p/++zTqKAG7f9p/++zRt/2n/wC+zTqKAG7f9p/++zRt /wBp/wDvs06igBu3
/af/AL7NG3/af/vs06igBu3/AGn/AO+zRt/2n/77NOooAbt/2n/77NG3/af/ AL7NOooAbt/2n/77
NG3/AGn/AO+zTqKAG7f9p/8Avs0bf9p/++zTqKAG7f8Aaf8A77NG3/af/vs0 6igBu3/af/vs0bf9
p/8Avs06igBu3/af/vs0bf8Aaf8A77NOooAY8SupV9zA9QWJqP7Hb/8APJan ooAhW1gRgyxhSO44
qTyx6t/30adRQA3yx6t/30aPLHq3/fRp1FAFW6UKUxnv1JNFLd9U/H+lFAiX zVQbWV8gnoAR1J9a
PtEf92T/AL5H+NV7i+S2cLIWywJG1M8ZI9R6VF/a0PrJ/wB+x/8AFVXK2F0X ftEf92T/AL5H+NH2
iP8Auyf98j/Gqf8Aa0PrJ/37H/xVH9qw+sn/AH7H/wAVRyvsF0XPtEf92T/v kf400zrvJ2PjAA4+
v+NVf7Vh9ZP+/Y/+Ko/tSH1k/wC/Y/8AiqOV9gui19oX+4/5UfaF/uP+VVv7 Uh9X/wC/Y/8AiqP7
Uh9X/wC/Y/8AiqOVhdFn7Qv9x/yo+0L/AHH/ACqt/acXq/8A37H/AMVS/wBp xer/APfsf/FUcrC6
LH2hf7j/AJUfaF/uP+VV/wC0ovV/+/Y/+Ko/tKL1f/v2P/iqOVhdE4nG8tsf BAHT60PKjjDRuRkH
p3ByKg/tGL1f/v2P/iqX+0YvV/8Av2P/AIqjlYXRP9oX+4/5UfaF/uP+VQf2 jF6v/wB+x/8AFUf2
hH6v/wB+x/8AFUcrC6J/tC/3H/Kj7Qv9x/yqH+0I/V/+/Y/+Ko+3x+rf9+// ALKjlYXRN9oX+4/5
UfaF/uP+VQ/b4/Vv+/f/ANlR9uj/ALzf9+//ALKjlYXRN9oX+4/5UfaF/uP+ VRfbo/7zf9+//sqP
tsf95v8Av3/9lRysLol+0L/cf8qPtC/3H/Kovtqf3m/79/8A2VL9tT+83/fv /wCyo5WF0SfaF/uP
+VH2hf7j/lUf2xP7zf8Afv8A+yo+2J/eb/v3/wDZUcrC6JPtC/3H/Kj7Qv8A cf8AKo/taf3m/wC/
f/2VL9rT+83/AH7/APsqOVhdD/tC/wBx/wAqPtC/3H/Kmfa0/vN/37/+yo+1 L/eP/fv/AOyo5WF0
P+0L/cf8qPtC/wBx/wAqb9qX+8f+/f8A9lR9pX+8f+/f/wBlRysLod9oX+4/ 5UfaF/uP+VN+0r/e
P/fv/wCyo+0L/eP/AH7/APsqOVhdDvtC/wBx/wAqPtC/3H/Kk+0L/eP/AHx/ 9lR56/3j/wB8f/Xo
5WF0L9oX+4/5UfaF/uP+VJ54/vH/AL4/+vS+eP7x/wC+P/r0crC6D7Qv9x/y o+0L/cf8qPOH98/9
8f8A16POH98/98f/AF6OVhdB9oX+4/5UfaF/uP8AlS+aP75/74/+vR5o/v8A /jn/ANejlYXQn2hf
7j/lR9oX+4/5UvmD+/8A+Of/AF6PM/2//HP/AK9HKxXQn2hf7j/lR9oX+4/5 U7zP9v8A8c/+vRv/
ANv/AMc/+vRysd0N+0L/AHH/ACo+0L/cf8qdv/2//HP/AK9Lu/2//HP/AK9H KxXQz7Qv9x/yo+0L
/cf8qfu/2/8Axz/69Gf9v/xz/wCvRysLoZ9oX+4/5UfaF/uP+VPyf7//AI5/ 9elyf7//AI5/9ejl
YXRH9oX+4/5UfaF/uP8AlUnP9/8A8c/+vRz/AHx/3x/9elysd0R/aF/uP+VH 2hf7j/lUnP8AfH/f
H/16Of74/wC+P/r0crC6I/tC/wBx/wAqPtC/3H/KpOf74/74/wDr0c/3x/3x /wDXo5WF0R/aF/uP
+VH2hf7j/lUnP98f98f/AF6Of74/74/+vRysLoj+0L/cf8qPtC/3H/KpOf74 /wC+P/r0c/3x/wB8
f/XoswuitO/mbcKwxnqKKs8/3x/3x/8AXooswujKvv8AkJWv4f8AobVr/P52 1U7t95Pl745x9Kx7
8hdRtiSABySf99qtXN2EmVoJbdgzEZ3cqTnk+2DVuLlZIV7DtSZjYzq6xBkZ R+7z69+KyYIopI5G
eR1KDcQqA8ZA9R61qX8tqNLMMEyOwIJ55Y55J96yI5NiSrjO9dv05B/pVx20 JYqwSMgZQGBOMKQT
1x061KLVvLboXDKBtcEYIbOSPpTkvdsPl4kHCjCyYUYIOQMcHjr6k0Ne5VlW MYYrncc7gM/ewBk8
9fYd+arUWhC0TogdsAHoNwz+XWp4rQP8uX3iPzGCLuPJGAB9Dn8famTTrJEs aq2AersGIHoDgYHt
StMpjJHLPGI2HpgjB/ID8c0agSx2QdypMi8gDemDnKjkZ/2v5VCLaUkgBTg4 4ccn0HPJ+lOguzBG
FVASDuBJ91P/ALL+tPju/KQpGJVUHcoEmOcDrgcjj2pahoQvE8YUuuNwyOeo 9ae9rKm7co+Xrhge
nX8u/pTJZPMcNjGFVfyAH9Kma63OzbOrSN1/vDH6U9QEitncjlQCCchgccE4 PPHTvSw2zPKgfAVn
CnDDJ5xx6/WpDe5TbtfBPIL8AYIIUY46+/QUxLhFaNvLYmI/L83bdnB49zS1 DQb9nkyBhT/tBhj8
849PzFPhtXeZUcBVLAE7gM/T1/D2pILkxIEAYdclWwecdD/wGnrdDzFd0Ztj 71+fnt1JBz0HpRqG
hFEiucMzDsAq7iTQImMjIpVtvVs8fXNLDIiBgyMS3GVbBA79jRHIqM42ko4w RnnGc9ce3pQA8wbI
C7fe3YHzAY6c+/XtSJGrITvO4AnGOAPc/wCeoolm81VXbgKeOe2AB/KlEkfk hCjZ65DYBPYkYo1A
WKAyRlgQMZ6kAHBHfPvSLBIwXCg7sYGRnnpx2pY5gsXlspKnOcHB5x/8TUi3 ZATIc7dvG/5cDHb8
KNQ0IzBIB90H/dIOfypRF95SRvC7htYEHHXp7c/hSpPtUDB4XbkHB+9uzTjM pZnxg7doHUnPUk9+
Cf0o1AgpaSlpiFpaSloAWiiikAtLSUtAC0UUUALS0lLQAtLSUtABS0lLQAtL SUtABS0lLQAtLSUt
IApaSloAWlpKWgBaKKKAFooooAKKKKACiiikAUUUUDFooooAKKKKAKs+npdM skkjKRkAKvbcai/s
aH/ntJ/3yK0F+4Pqf/QjS1nzNGlkZn9lQ+f5Ylk+4WJwPUD+tP8A7Hh/57Sf 98irQ/4/f+2J/wDQ
hTLuaSPCIhJkGFbPQ0czCyKs2mQwwvJ5sh2jONo5qQ6PCCR5z8f7IqW4jEWn sg6KuKtv99vrRzML
Iz/7Ih/57P8A98imR6ZC+/8AeuArlfujngf41asAFs4wGDDnkfU0626Tf9dm /kKOZhZFb+yYv+ez
/wDfI/xpf7Ji/wCez/8AfI/xpUyq+aHcu05TBYkEbyOnsOePT60kV1cyJuEI +dN6DIHcf7XPB9un
vRzMLIP7Ki/57P8A98j/ABo/sqL/AJ7P/wB8j/GpIZpJnCq6YUAsTGRnkjAB PGNvvUX2mcxwOfLD
yoCOpAyyDpnnqf8APU5mFkL/AGXF/wA9n/75H+NL/ZcX/PZ/++R/jSrJM14s e9QUDBsKcN9w9M8H
5vemwXMjQo/y7AY0K8kksF5zn/a9+lHMwshf7Mi/57P/AN8j/Gj+zI/+ez/9 8j/Gn2s8r+V5pQ+b
H5g2qRt6cdTnr+lWqOZhZFP+zI/+ez/98j/Gj+zY/wDns3/fP/16uUUczCyK f9mx/wDPZv8Avn/6
9H9nR/8APVv++f8A69XKKOZhZFT+zo/+erf98/8A16P7Pj/56t/3z/8AXq3R RzMLIqf2en/PVv8A
vn/69L/Z6f8APVv++f8A69WqKOZhZFX7An/PVv8Avn/69H2BP+erf98//Xq1 RRzMLIq/YU/56t/3
z/8AXpfsKf8APVv++f8A69WaKOZhZFb7En/PVv8Avn/69H2Jf+ep/wC+f/r1 Zoo5mFkV/sS/89T/
AN8//Xo+xr/z1P8A3x/9erFFHMwsiv8AY1/56n/vj/69H2Rf+ep/74/+vVii jmYWRB9kX/nqf++P
/r0fZV/56n/vj/69T0UczCyIPso/56n/AL4/+vS/ZR/z0P8A3x/9epqKOZhZ FbyR5/l7z9wsTt9w
PX3p/wBmH/PQ/wDfH/16B/x+/wDbE/8AoQqtdswuJNvmfLGpVlfCoSW5YZ5H TseBRzMVkWvs4/56
H/vj/wCvR9nH/PT/AMc/+vULXE32llWMeWrqhJx3x3z79MH9eEW4mLCNtqSs wG0ofk4J65w33e2P
6UczCyJ/IH/PT/xz/wCvR5H/AE0/8c/+vUAu5PKuDhcxRkjjqQWH5fLSieZg P9WpeVo1OCcY3cn8
sfr7UczCyJ/I/wCmn/jn/wBejyf+mn/jn/16gNxOJyuwFEZUZuACSBzy3HXp g/WrdLmY7IiaPapY
ycAZ+5/9eiNC8SOXxuUNjb0yM+tPl/1T/wC6abEA1rEDnBiUcHH8Ip8zFZC+ V/00/wDHP/r0eX/0
0/8AHP8A69Uop5ktgwYFY7dZW35ZmJyTznjp71LdB3uIkTJGxiR5rJ3XuPrR zMLIseWf+en/AI5/
9el2H/np/wCOf/XqsJpEJ4UJG6RleWJJ287v+Benb3qvE8j2cIBUJG0KkYyT 9w5znjr6dqOZhZGj
sP8Az0/8c/8Ar0bD/wA9B/3x/wDXqkt5cGNXMSgSBSgYgdWAxwST97rgfTmr y52jcQTjkgYpczHZ
EcWZYg+8AEnA2ehI9fan7D/z0H/fH/16jtP+PWP/AIF/6Eaiilk+yWoUjfKq jc3P8Oc+/SjmYrIs
7D/z0H/fH/16Nh/56D/vj/69V4Z5ZpCgKLs++SpO75mHHPH3ffrUMl1M+FX5 VkKtG+3HG9R65PDe
3+BzMdkXth/56D/vj/69Gw/89B/3x/8AXqsssxuHhVkDZJLFSRwqds8fe9ab FdyyL5uEEe5F2YOf
mC98/wC16dqLsLIt7D/z0H/fH/16ZISmz5wSzhR8nqfrUtQ3HWH/AK7J/Oi7 CyJNh/56D/vj/wCv
RTqKLsLIjC3DD92se0E/eLZ6n0FHl3npD+bf4VMJhBYtKRnaW4zjPzGslry5 YGX7QVyT8oHGeMAe
3T/6+fmLDtctuJopfNka3UlCvzMQMZHPT/Oab9pb/n4s/wDv4f8ACq9/c/a7 FJCAG2MDg8Z3J/n/
ADmserjC6Ibsbs0pliaM3FmAwxkSH/CpXuW3tma0U56GQ5H6VztS3f8Ax9zf 9dG/nVezQcxt/aW/
5+LP/v4f8KRJTGrET2mHctkyHGcDjp/nNYFSt/x6R/8AXR/5LR7NBzGwrojl 0ewV26sGwT+lJuiw
43afhzlvm+99eOay1tgwB81QrBQrNwCxxkH0xzz7D1FPa0jUtvadAibzvhwe oAwN3v8ApS5EHMzS
LodmXsDs+5lvu/TjimyFJYwjS2O0YwA/YEHHTpwKyXgYZZPmTbvDdPlzjp9e KdbW/n7sttxhV4zu
c9F9s4PNHIg5jWDoFVQ9gFU5UbuAfUcUB0DKwewDKMKd3IHoOKx/s0piEgC7 SCQNwyQOpx17H8qS
OCSVdyAEZwMkDJ9B6n2FP2a7hzG0Jgu3E1iNowMOeB6dPYU77S3/AD8Wf/fw /wCFZD2j7h5YyCqk
ZYAklQSB69eg9qb9kmwCFU5AIG8Z55Axnqew6mlyLuHMzZ+0t/z8Wf8A38P+ FH2lv+fiz/7+H/Cs
VbWZgu1QSxAA3DPPTI6gcjk+op6Wcjb8lBtXcDvUqeQMZzgdf85o5F3DmZr/ AGlv+fiz/wC/h/wo
+0t/z8Wf/fw/4VhJDJJG7quVT7xz06/4VNFZu0oWQADBJww4wCcH+6eO/wDS jkQczNf7S3/PxZ/9
/D/hR9pb/n4s/wDv4f8ACsVrd8MyqNoJwN4JIHceo9xxwaU2kyyMjKqsvXc4 AH4k+39aORdw5mbP
2lv+fiz/AO/h/wAKPtLf8/Fn/wB/D/hWKbWZU3FQOCdpYbuCQfl69j+VH2WU MFIUHGTl1+X688fj
RyLuHMza+0t/z8Wf/fw/4UfaW/5+LP8A7+H/AArDEEjTeUAN+M8kAYxnOemM c5pWtpUxuCgE4zuG
B6Z9M9vWj2a7hzG39pb/AJ+LP/v4f8KPtLf8/Fn/AN/D/hWG8EkalmA2ggZB BBznGCOvQ/lSrbSt
LJHhQ0ed25gAOcdTx1o9mu4cxt/aW/5+LP8A7+H/AAo+0t/z8Wf/AH8P+FYo tZiSNoyDgZYfN9PX
t09R60k8Bh2ZZSHUMMEZ5API7daORBzM2/tLf8/Fn/38P+FH2lv+fiz/AO/h /wAKyLm0aGd0XaUD
lQd4OOeM+n4471E8EkalmA2ggZBBBznGCOvQ/lRyIOZm59pb/n4s/wDv4f8A Cj7S3/PxZ/8Afw/4
VitazKG3KAVJBG4Z464HUjg8j0NMiheXOzaSOxYAn6Dv+FHs13DmN37S3/Px Z/8Afw/4UfaW/wCf
iz/7+H/CsOKB5VZl2gKQCWcL1+p9jQIJCrHAyhIZSRuGOvHWn7NBzG59pb/n 4s/+/h/wo+0t/wA/
Fn/38P8AhWM9pNHu3Kvy5zhwenXoe3f0pkkEkS7nAAzg4IOD6H0PsaXIu4cz NsSnzTKJ7QkJtOJD
gDI56f5zR9o+Yt59lkjBPmH/AArFh/1U/wD1zH/oS01YXeMuNoUd2YDP0z1/ Cj2aDmNoOgZWD2AZ
RhTu5A9BxSBohGYw2nhCcld3B/DFZK2sr7doUhhnIdeOM888cA9fSl+yTEgb V5z/ABjA4zzzxwCR
60ci7hzM1XaJ1VXbT2CjCgtnH04pzSqyFGksShOSpfg859PWsoWj+UxIy4ZQ MMCpBDZOen8PX61D
JG0TYcDkZBBBB+hHWjkQcxtB0DKwewDKMKd3IHoOKf8AaW/5+LP/AL+H/CsT 7NLnGzvjqMHjOfpj
nPSpLezeS4RGKhC4UkSLz0zg55PPbNHIu4czNZrgspU3FngjH+sP+FHm7Y1i aWz2hAuGkPIx9O9Y
FTTqWmVVBJKIAB3+UU/ZoOY11dFUqr2AUjBAbgj06e5/OnfaPmDefZZAwD5h /wAKyFs5GyBtJBHR
1I6E8nPH3TSfZJiQNq85/jGBxnnnjgEj1pci7hzM1zKpkEhksS4GA2/kfjim loiysW08lAAp3dMd
McVmC0fymJGXDKBhgVIIbJz0/h6/WoZI2ibDgcjIIIIP0I60ciDmNoOiliHs AWOWIbqeuTxT/tLf
8/Fn/wB/D/hXP0U/ZoOY30lMUSIJ7TAyQTIeckn0/D8KjHkqrKDpwVvvANwf rxWTN/qoP+uZ/wDQ
mqaexdJXEeNisRl3Vf4mA6n/AGTS5EHMaRdDsy9gdn3Mt936ccUgaIMzBtPB cEMd3XPXPFZH2aUI
WKYxngkBuOvHX1/I+lOtoopjteR0bk8ICAAMk9R70ciDmNUtEybGbTyuc4Lc dMenpTvOBzmax5IJ
+c8kd+nsKwaKfs0HMdB9pb/n4s/+/h/wpDKZGjHn2hKuGAWQ5JB6dKwKltP+ PuH/AK6L/Oj2aDmO
i8u89Ifzb/CitCisiiqiJLaNE7YDFgcHB6msttOuQWQNG6dMkgD2OPxP69c/ NrwMEtizHABYk/ia
rteTkeaiR+TyeTz9PqaOaxcYt7FO/tTFaJFFulIRskc87k/LoayPstx/zwl/ 74NdbHKs0ccifdb/
AOvUtWp2M3E437Lcf88Jf++DUtzbTtdTFYZCC5IIU8811tNT7i/Sn7Ri5Tj/ ALLcf88Jf++DUrW0
/wBljHkyZDscbT6LXW00ffP0H9aPaMOU5bZKU8trOXywBgBSCDxk5x35/T0F SLvWNohZXHlEHjPz
ZJU9dv8AsjtW+15EgJbcMFgwxyoUEkkenT/voetI12y7d1rMGZtqrlMk4J/v e1LnCxzjxTPkfZJd
oXbGNp+XnOenPf8AOnQm7giCRW7Ah95YxZz0x1Hbn866aOZHA52sTtKtwQcZ x+XP056U24uUt9m8
Mdxx8v8ACO7H0A7n3o5w5TnXM7Sh1s5FAR0ChTxu3e3bd+lFu11BF5YguQAx YbCy5Jx1wORx7d66
Tz4fO8nzY/N/ubhu9elK80cbKskiKznChmALH2o5wsc6s10qhRb3KhQMBCy5 IUDnA5Hy+3emq1wr
q32SU7Wibof4Bj0710Ed1GwHmOkbM7IqswyxDEcf57077TAWK+fHuDbCN4yG 9PrwaOfyHY59JrpR
Fm3uTsK/LltmFx0GOvHv3qKITpB5LWszIS27AIPO08ceqiumM8Id0MsYZBuZ dwyo9T6VG19bKqP5
0ZRn2bww2g4J5P4frRzhY5kQ3AgeL7PL8zK2dp7A/wCNWZJrqQktb3JLBshi xAJUjgY4HPvXRtIi
EBnVSegJxnkD+ZH51DNeQxxSMskbGMhWG8fKScDPpzRzisc+rXQthD5FzwpU AFgpBz1GOTye/pSr
JcrLO32e5UTPvPlkqR14zjpzXRJcRsY0MkfmOoYKHByPb1HvQ1zAqb2njCZA 3FxjJGR+nNHP5Dsc
2xuWkVzay5COh4PO7dzz/vfpTg06zPKtrcq0oPmFSQeSD8vHHI9+K6Pz4fO8 nzY/N/ubhu9elJ9p
gAcmePEZw/zj5T7+lHOKxzJFybhpTbzHcpX5gSeV25J/z+FSK1wp/wCPSX+D scjapXI4685B7V0j
TRrF5rSII8A7ywxg9OaRZ4WDFZYyEAZiGHAIyCfwo5wsc/5lwZPM8m4BSLau 8Fyx3ZHOOx5/4Djv
VWOG4RJV+zynzF2/dPHIP9K6tJo5ApjkRwwJG1gcgdaR54Y41keWNUboxYAH 8aOcLHOB58xs1nMT
EVKYB6hVHPHI+UelQzRTy7D9mmDhQpO04OAAOMccCupM8K+XmWMeZ9zLD5vp 69aSC4jn3iNgWRir
LkZBBI5/KjnCxzoa4Esr/ZJf3kvmdDlfvdOOvzcH2pWluvOWRbe4+VNuXyxJ yWBzjscflW9bXkNx
biUSRjCBnAcHZkZ5qVJo5ApjkRwwJG1gcgdaOfyHY5pWuhbCHyLnhSoALBSD nqMcnk9/Sls2uLbH
+jXHDbvkyu72bg5HH6mujE8JdEEsZZxuVdwyw9R60rzRxsqySIrOcKGYAsfa jnFY5QQ3AgeL7PL8
zK2dp7A/41aM1wfN/wBFuF37/lUkL82eSMckZ6+wroJZ4YMedLHHnpvYDNKZ oxKIjIgkYZCFhkj6
Uc4WObZrhnZvsko3NK3Q/wAYx6dqS6a6uVw0FzktuIYsQD7DHA5966NLmCQq I543LEgbXByR1pyT
RyMyxyIzIcMFYEqfejnCxysVtOI5wYZBlAB8p5+YU6JZ44HjNtM27OARlRkY zjHX3zXUt1X6/wBK
R5o42VZJEVnOFDMAWPtRzhynPNNcGMr9luPmzwSSq5VhhRjgfN09qSFpdzCS 1mCsgBwp7Rsvp3z+
FdB9pgAcmePEZw/zj5T7+lH2mDazefHtUAsd4wAemfrRzDsc8klxGAsdpMqr gL13AfNnnHX5zz7D
rUUyzzMxa2uGO3apcsxHOc5x9RXSfaoy6bXRo2Rn8wMMAKQD/P8ASpY5ElQP G6up6MpyDRziscwB
MHQi1uEEfCFCQwXnjOPU5/E+2Hq8vmq7WMuI33oEG3njrx/sjpjvXR+dGFDe Ym0rvB3DBX1+nIqG
4voIbYzCWNhtYoN4+cjsKOcdjlvstx/zwl/74NTywTi4RxDN8qpyoIPCjocc GurpqdPxP86fOxcp
zZknw4FnL8wxkjk/KwyTjk/N19vxpYWl3MJLWYKyAHCntGy+nfP4VvfbLcjc JoymDlw4wMY9/cf5
xTvtMG1m8+PaoBY7xgA9M/Wlzjsc8klxGAsdpMqrgL13AfNnnHX5zz7DrUNx HczyBjBcHAwC+WP5
10v2qMum10aNkZ/MDDACkA/z/SpY5ElQPG6up6MpyDRziscf9luP+eEv/fBo +y3H/PCX/vg12VFP
2jDlOSltpzHABDIcIQflPHzGprlri4Rl+ySrubd0J7ufT/b/AErpV6t9f6VX iv4GgSSWSOHeAcO4
7gH+opc4WMSWa6kVx9nuV3FsKCwXBJPIxyeT+lVkhuEikQW8uXwCdp6dcfnj 8q6szRiURGRBIwyE
LDJH0qOa6WFiCjsEXe5XGEXnk5PsemelHOFjlPstx/zwl/74NH2W4/54S/8A fBrsqKftGHKcb9lu
P+eEv/fBqW2tp1uoS0MgAcEkqeOa62mv9xvpR7RhyhvX+8Pzop1FZlEEKCS1 KHo24H8zVKS1udvk
LEpj4w+7HPqe/wCFXbZVMOSAfmbt7mpdi/3R+VJq5UZuOxHBCIIYogc7e/r1 qamFVyvyjr6e1LsX
+6Pypkjqan3F+lGxf7o/KkRV2L8o6elAD6aPvn6D+tGxf7o/KkCrvPyjoO1A EIinWUzAoXYkMpOB
tGdo6df8T7YgFpMjpJFFBHtcHylchfusCc7ep3Dt2q9sX+6Pyo2L/dH5UAQx wurB2EZZ5N799vy7
fl/Ic/X6Uy5s2uZmLTOkZi8sBMZOT82cg+i1Z2L/AHR+VGxf7o/KgColrP5L CV0aRpY5CR0O0Jnt
/smi7s2nmZxhldAjAyMoABPOB97r0OOnvVvYv90flRsX+6PyoAz205yz52sJ NwI8xlABdj0H3uG6
HHTrzT5LKRo3UMmWSdRyertkVd2L/dH5UbF/uj8qAM+TTncTKNvzeYVZpG6s D/D0H3uvP054nmtp
GuxcR7CVC4ViRkgODzjj7/6VZ2L/AHR+VGxf7o/KgCN4d93FMQpEaMBnqCdv I/AH86pxac6LGvy/
u9gDGRm3AMpPB4X7vQZ+vFaGxf7o/KjYv90flQBUezZrtpOCjurkmRhggDja OD93qfX2pn2B0gtV
QKWhjKMqyNGCTjJyvPUfrV7Yv90flRsX+6PyoAqJZMkLRqUx5sbDGcYUJ9f7 ppptJjbQxEJ/o5Gw
rKylwFK8kDK9c8Z9Ku7F/uj8qNi/3R+VAFcWzC0SIbQRIrn5if4wx5PJ+vf2 qM2cwwUdQR5vQkZ3
OGxntwCM9s8Vc2L/AHR+VGxf7o/KgDPFpKqkfMkkkvDJIzlVKAHLEZ7ZHvtq 5JDlrfYFVYnzjpxt
IwPzFSbF/uj8qNi/3R+VAFE2UwWdVMZE4ZGJJGwFnII454fpx0q1bxvEHRtp XezKwPJySTkdsZqT
Yv8AdH5UbF/uj8qAKYs5lht1V1DRQeWcEjJ+XgHtnaRnqM01LGXy3O7y5Gky CsrMQpUKRuIz2yPc
D0q9sX+6Pyo2L/dH5UAUzYkXJZVXyy6v/rGAXaAANg4P3ev+FLqFtNcK6xkF WQqAZGQKeeeB83bg
+nvVvYv90flRsX+6PyoAY0ZN1HLkbVRlPrklf8DVJbG4CQIWVhH5fPmsAu3G Rtxhuh5Pr7VobF/u
j8qNi/3R+VAFKOykWNFLJlUgU8nqjZNOsrNrdl3YPlpsVvMZiRxzg8L06DP6 c29i/wB0flRsX+6P
yoAG6r9f6VBLDI10kkRCcAO+85IBJ27cY/HIPP5zFVyvyjr6e1LsX+6PyoAz /sNw0yO7KduMsZWO
751bO0jC/dPA9aJ7WZVRkCuVkY4yf4plYdvQc1obF/uj8qNi/wB0flQBQlsJ ZnaRiisxLFVY8HMe
BnGf4OvbPerFtDJCvAQb33OC7OcbcdT1PA9OKn2L/dH5UbF/uj8qAKhtH2SZ SNjKQxUOU2sDkAMB
nHf65PfhklrdGGUbo5Xmi8ti7bdv3sdBz97HQdPer2xf7o/KjYv90flQA6op EElvIhUMGDDaTgHr
xntT9i/3R+VIqrj7o6nt70AUjZ3DtGzyKdh4BbO0b0OM45+6eTzz+NNntZlV GQK5WRjjJ/imVh29
BzWhsX+6Pyo2L/dH5UAUJbCWZ2kYorMSxVWPBzHgZxn+Dr2z3q1aQmFG3ABn bcQHZ+wHU8np7VLs
X+6Pyo2L/dH5UAOopuxf7o/KjYv90flQAL1b6/0qlY2UlvIjOyEKm3gnrtjH /sh/SrgVct8o6+nt
S7F/uj8qAM+DTniMYbawGwsfMYAFQo+6OD93qfXpxU13avPIWURtlNqsx5iP PzLx15Hp90c+lrYv
90flRsX+6PyoAdRTdi/3R+VGxf7o/KgB1Nf7jfSjYv8AdH5UjquxvlHT0oAf RTdi/wB0flRQB//Z

------=_NextPart_000_004F_01C3123E.E5BEE0B0--
Re: A Diagnostic Message for the Valid Schema [message #569830 is a reply to message #20113] Sun, 04 May 2003 18:06 Go to previous message
Eclipse UserFriend
Originally posted by: paechoi.earthlink.net

This is a multi-part message in MIME format.

------=_NextPart_000_0080_01C31246.638A8920
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0081_01C31246.638A8920"


------=_NextPart_001_0081_01C31246.638A8920
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Ed,

I also tested with XSD v1.1.0 + EMF v1.1.0 with xerces v2.2.1 and =
v2.4.0, but
am still having an exception. However, the exceptions are not same as =
previous
one. The exceptions and the associated code snippet are as follows:

// ### Exception with xerces v2.2.1 ###
java.lang.NullPointerException
at org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263)
at org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown Source)
at =
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDe=
cl(Unknown Source)
at =
org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(=
Unknown Source)
at =
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknow=
n Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
at org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)
at =
org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDD=
emo2.java:87)
at org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101)
at org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)
java.lang.NullPointerException
at org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104)
at org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)


// ### Exception with xerces v2.4.0 ###
java.lang.NullPointerException
at org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263)
at org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown Source)
at =
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDe=
cl(Unknown Source)
at =
org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(=
Unknown Source)
at =
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknow=
n Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
at org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)
at =
org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDD=
emo2.java:87)
at org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101)
at org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)
java.lang.NullPointerException
at org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104)
at org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)


// ### Code Snippet ###
/*
* EclipseXSDDemo2.java
*
* Created on May 2, 2003, 11:13 PM
*
*/

package org.paechoi.xsd.test;

// W3C/DOM
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
// Eclipse/XSD
import org.eclipse.xsd.util.XSDParser;
import org.eclipse.xsd.XSDFactory;
import org.eclipse.xsd.XSDSchema;
import org.eclipse.xsd.impl.XSDSchemaImpl;
import org.eclipse.xsd.util.XSDResourceImpl;
import org.eclipse.xsd.util.XSDResourceFactoryImpl;
import org.eclipse.xsd.XSDDiagnostic;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.emf.common.util.EList;
import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.io.FileNotFoundException;


/**
*
* @author pae
*/
public class EclipseXSDDemo2 {
// private Document xmlDOM =3D null;
private XSDParser xsdParser =3D null;

// instance initializer
{
// =
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =
new XSDResourceFactoryImpl());
}
=20
/** Creates a new instance of EclipseXSDDemo2 */
public EclipseXSDDemo2() {
super();

// Redirect the System.err
try {
System.setErr(new PrintStream(new =
FileOutputStream("errors.log", true)));
}
catch (FileNotFoundException fileNotFoundException) {
}
}
=20
/** Open a XML DOM */
private Document openXMLDOM(String uri) {
// Create a factory object for creating DOM parsers
DocumentBuilderFactory factory =3D =
DocumentBuilderFactory.newInstance();
DocumentBuilder builder =3D null;
Document xmlDoc =3D null;
=20
// Build a new DOM
try {
// Now use the factory to create a DOM parser (a.k.a. a =
DocumentBuilder)
factory.setNamespaceAware(true);=20
builder =3D factory.newDocumentBuilder();
xmlDoc =3D builder.parse(uri);
}
catch (Exception ex) {
ex.printStackTrace();
return null;
}
=20
return xmlDoc;
}
=20
/** Open a XML DOM using XSDParser */
private Document openXMLDOMUsingXSDParser(String uri) {
Document xmlDoc =3D null;
=20
// Build a new DOM
try {
xsdParser =3D new XSDParser();
xsdParser.parse(uri);
xmlDoc =3D xsdParser.getDocument();
}
catch (Exception ex) {
ex.printStackTrace();
return null;
}
=20
return xmlDoc;
}
=20
/** doIt */
private void doIt() {
try {
Document xmlDOM =3D =
openXMLDOMUsingXSDParser("http://schemas.xmlsoap.org/wsdl/");
// Document xmlDOM =3D =
openXMLDOMUsingXSDParser("./wsdl.xsd");

Element rootElement =3D xmlDOM.getDocumentElement();

XSDSchema xsdSchema =3D =
XSDFactory.eINSTANCE.createXSDSchema();
xsdSchema.setDocument(xmlDOM);
xsdSchema.setElement(rootElement);
xsdSchema.updateElement();

System.out.println("\n\n");
XSDResourceImpl.serialize(System.out, =
xsdSchema.getElement());

System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION =
>>>>>>>>>>>>>>>>>>>>>>>>>>");
xsdSchema.validate();
//EList eList =3D xsdMainSchema.getDiagnostics();
EList eList =3D xsdSchema.getAllDiagnostics();
for (int i =3D 0; i < eList.size(); i++) {
XSDDiagnostic xsdDiagnostic =3D =
(XSDDiagnostic)eList.get(i);
System.out.println(i + ": At line #" + =
xsdDiagnostic.getLine() + "(" + xsdDiagnostic.getColumn() + "), " + =
xsdDiagnostic.getMessage() + "; Node =3D [" + =
xsdDiagnostic.getNode().getNodeName() + "]");
}
=
System.out.println("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<=
<<<<<<<");
}
catch (Exception ex) {
ex.printStackTrace();
}
}
=20
/** main - the main entry */
public static void main(String[] args) {
EclipseXSDDemo2 app =3D new EclipseXSDDemo2();
app.doIt();
}
}

Regards,


Pae

"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB4F504.6527C9F2@ca.ibm.com...
Pae,=20
No, the standalone version worked too. What exception did you see?=20
=20

Pae Choi wrote:=20

Ed, That surely helped with v1.0.2. And THANK you for that. One =
quick question is: Do you also have an exception thrown when running =
with v1.1.0 as standalone. Regards, Pae =20
"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB3A206.9781C42@ca.ibm.com...Pae,=20
The XSD model expects a DOM that's namespace aware, so this =
addition to your sample code will improve your result:=20

private Document openXMLDOM(String uri) {=20
// Create a factory object for creating DOM parsers=20
DocumentBuilderFactory factory =3D =
DocumentBuilderFactory.newInstance();=20
DocumentBuilder builder =3D null;=20
Document xmlDoc =3D null;=20

factory.setNamespaceAware(true);=20

Without this, element.getNamespaceURI and element.getLocalName =
both return null...=20
=20

Pae Choi wrote:=20

Ed, I have a sample code that test a DOM of XML Schema with =
Eclipse/XSD andproducing two different results. With v1.0.2, it seems ok =
except the diagnostic message we are discussing.With v1.1.0, it throws =
an exception. Regards, Pae P.S.: The code snippet is as follows: // =
################## CODE SNIPPET ##################/*=20
* EclipseXSDDemo1.java=20
*=20
* Created on May 2, 2003, 11:13 PM=20
*/ package org.paechoi.xsd.test; // W3C/DOM=20
import javax.xml.parsers.DocumentBuilderFactory;=20
import javax.xml.parsers.DocumentBuilder;=20
import org.w3c.dom.Document;=20
import org.w3c.dom.Element;=20
// Eclipse/XSD=20
import org.eclipse.xsd.XSDFactory;=20
import org.eclipse.xsd.XSDSchema;=20
import org.eclipse.xsd.impl.XSDSchemaImpl;=20
import org.eclipse.xsd.util.XSDResourceImpl;=20
import org.eclipse.xsd.util.XSDResourceFactoryImpl;=20
import org.eclipse.xsd.XSDDiagnostic;=20
import org.eclipse.emf.ecore.resource.Resource;=20
import org.eclipse.emf.ecore.resource.ResourceSet;=20
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;=20
import org.eclipse.emf.common.util.EList;=20
import java.io.File;=20
/**=20
*=20
* @author pae=20
*/=20
public class EclipseXSDDemo1 {=20
// private Document xmlDOM =3D null;=20
// instance initializer=20
{=20
// =
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =
new XSDResourceFactoryImpl());=20
}=20

/** Creates a new instance of EclipseXSDDemo1 */=20
public EclipseXSDDemo1() {=20
super();=20
}=20

/** Open a XML DOM */=20
private Document openXMLDOM(String uri) {=20
// Create a factory object for creating DOM parsers=20
DocumentBuilderFactory factory =3D =
DocumentBuilderFactory.newInstance();=20
DocumentBuilder builder =3D null;=20
Document xmlDoc =3D null;=20

// Build a new DOM=20
try {=20
// Now use the factory to create a DOM parser =
(a.k.a. a DocumentBuilder)=20
builder =3D factory.newDocumentBuilder();=20
xmlDoc =3D builder.parse(uri);=20
}=20
catch (Exception ex) {=20
ex.printStackTrace();=20
return null;=20
}=20

return xmlDoc;=20
}=20

/** doIt */=20
private void doIt() {=20
Document xmlDOM =3D =
openXMLDOM("http://schemas.xmlsoap.org/wsdl/");=20
// Document xmlDOM =3D openXMLDOM("./wsdl.xsd"); =
Element rootElement =3D xmlDOM.getDocumentElement(); XSDSchema =
xsdSchema =3D XSDFactory.eINSTANCE.createXSDSchema();=20
xsdSchema.setDocument(xmlDOM);=20
xsdSchema.setElement(rootElement);=20
xsdSchema.updateElement(); =
System.out.println("\n\n");=20
XSDResourceImpl.serialize(System.out, =
xsdSchema.getElement()); =
System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION =
>>>>>>>>>>>>>>>>>>>>>>>>>>");=20
xsdSchema.validate();=20
//EList eList =3D xsdMainSchema.getDiagnostics();=20
EList eList =3D xsdSchema.getAllDiagnostics();=20
for (int i =3D 0; i < eList.size(); i++) {=20
XSDDiagnostic xsdDiagnostic =3D =
(XSDDiagnostic)eList.get(i);=20
System.out.println(i + ": Diagnostic Message =3D [" =
+ xsdDiagnostic.getMessage() + "]");=20
}=20
=
System.out.println("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<=
<<<<<<<");=20
}=20

/** main - the main entry */=20
public static void main(String[] args) {=20
EclipseXSDDemo1 app =3D new EclipseXSDDemo1();=20
app.doIt();=20
}=20
}=20

"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB25ED9.AE2CB299@ca.ibm.com...Pae,=20
I'm seeing this result with the just published 1.1.0 driver:=20


The schema isn't valid.=20
=20
Pae Choi wrote:=20

I have a simple test schema as follows:=20
<?xml version=3D"1.0" encoding=3D"UTF-8"?>=20
<!--W3C Schema generated by Pae -->=20
<xsd:schema xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema"=20
elementFormDefault=3D"qualified">=20
<xsd:element name=3D"CommonLogin">=20
<xsd:complexType>=20
<xsd:sequence>=20
<xsd:element name=3D"username" ref=3D"usernameRef"/>=20
<xsd:element name=3D"password" ref=3D"passwordRef"/>=20
</xsd:sequence>=20
</xsd:complexType>=20
</xsd:element>=20
<xsd:element name=3D"passwordRef" type=3D"xsd:string"/>=20
<xsd:element name=3D"usernameRef" type=3D"xsd:string"/>=20
</xsd:schema>=20

This is a very simple sample, but it is a valid schema. But =
when=20
I use the validate() and getDiagnostics() methods in the =
XSDSchema=20
interface it gives me a message as follows:=20

XSD: The element '#null' is not permitted as constrained by =
'XML Schema ';=20
expecting schema=20

I do not understand what the message is saying. Any =
comments?=20

Pae


------=_NextPart_001_0081_01C31246.638A8920
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2600.0" name=3DGENERATOR></HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT size=3D2>Ed,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>I also tested with XSD v1.1.0 + EMF v1.1.0 with =
xerces v2.2.1=20
and v2.4.0, but</FONT></DIV>
<DIV><FONT size=3D2>am still having an exception. However, </FONT><FONT =
size=3D2>the=20
exceptions are not same as previous</FONT></DIV>
<DIV><FONT size=3D2>one. The exceptions and the associated code snippet =
are as=20
follows:</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>// ### Exception with xerces v2.2.1 ###</FONT></DIV>
<DIV><FONT size=3D2>java.lang.NullPointerException<BR>&nbsp;at=20
org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263) <BR>&nbsp;at =

org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown =
Source)<BR>&nbsp;at=20
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDe=
cl(Unknown=20
Source)<BR>&nbsp;at=20
org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(=
Unknown=20
Source)<BR>&nbsp;at=20
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknow=
n=20
Source)<BR>&nbsp;at =
org.apache.xerces.parsers.DTDConfiguration.parse(Unknown=20
Source)<BR>&nbsp;at =
org.apache.xerces.parsers.DTDConfiguration.parse(Unknown=20
Source)<BR>&nbsp;at org.apache.xerces.parsers.XMLParser.parse(Unknown=20
Source)<BR>&nbsp;at =
org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown=20
Source)<BR>&nbsp;at=20
javax.xml.parsers.SAXParser.parse(SAXParser.java:345)<BR>&nbsp;at=20
org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)<BR >&nbsp;at=20
org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDD=
emo2.java:87)<BR>&nbsp;at=20
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101) <BR>&n=
bsp;at=20
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) <BR>ja=
va.lang.NullPointerException<BR>&nbsp;at=20
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104) <BR>&n=
bsp;at=20
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) <BR></=
FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>// ### Exception with xerces v2.4.0 ###</FONT></DIV>
<DIV><FONT size=3D2>java.lang.NullPointerException<BR>&nbsp;at=20
org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263) <BR>&nbsp;at =

org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown =
Source)<BR>&nbsp;at=20
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDe=
cl(Unknown=20
Source)<BR>&nbsp;at=20
org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(=
Unknown=20
Source)<BR>&nbsp;at=20
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknow=
n=20
Source)<BR>&nbsp;at =
org.apache.xerces.parsers.XML11Configuration.parse(Unknown=2 0
Source)<BR>&nbsp;at =
org.apache.xerces.parsers.DTDConfiguration.parse(Unknown=20
Source)<BR>&nbsp;at org.apache.xerces.parsers.XMLParser.parse(Unknown=20
Source)<BR>&nbsp;at =
org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown=20
Source)<BR>&nbsp;at=20
javax.xml.parsers.SAXParser.parse(SAXParser.java:345)<BR>&nbsp;at=20
org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)<BR >&nbsp;at=20
org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDD=
emo2.java:87)<BR>&nbsp;at=20
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101) <BR>&n=
bsp;at=20
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) <BR>ja=
va.lang.NullPointerException<BR>&nbsp;at=20
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104) <BR>&n=
bsp;at=20
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) <BR><B=
R></FONT></DIV>
<DIV><FONT size=3D2>// ### Code Snippet ###</FONT></DIV>
<DIV><FONT size=3D2>/*<BR>&nbsp;* =
EclipseXSDDemo2.java<BR>&nbsp;*<BR>&nbsp;*=20
Created on May 2, 2003, 11:13 PM<BR>&nbsp;*<BR>&nbsp;*/</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=3D2>package org.paechoi.xsd.test;</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=3D2>// W3C/DOM<BR>import&nbsp;=20
javax.xml.parsers.DocumentBuilderFactory;<BR>import&nbsp;=20
javax.xml.parsers.DocumentBuilder;<BR>import&nbsp;=20
org.w3c.dom.Document;<BR>import&nbsp; org.w3c.dom.Element;<BR>//=20
Eclipse/XSD<BR>import&nbsp; =
org.eclipse.xsd.util.XSDParser;<BR>import&nbsp;=20
org.eclipse.xsd.XSDFactory;<BR>import&nbsp;=20
org.eclipse.xsd.XSDSchema;<BR>import&nbsp;=20
org.eclipse.xsd.impl.XSDSchemaImpl;<BR>import&nbsp;=20
org.eclipse.xsd.util.XSDResourceImpl;<BR>import&nbsp;=20
org.eclipse.xsd.util.XSDResourceFactoryImpl;<BR>import&nbsp;=20
org.eclipse.xsd.XSDDiagnostic;<BR>import&nbsp;=20
org.eclipse.emf.ecore.resource.Resource;<BR>import&nbsp;=20
org.eclipse.emf.ecore.resource.ResourceSet;<BR>import&nbsp;=20
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;<BR>import&nbsp;=20
org.eclipse.emf.common.util.EList;<BR>import&nbsp; =
java.io.File;<BR>import&nbsp;=20
java.io.FileOutputStream;<BR>import&nbsp; =
java.io.PrintStream;<BR>import&nbsp;=20
java.io.FileNotFoundException;</FONT></DIV>
<DIV>&nbsp;</DIV><FONT size=3D2>
<DIV><BR>/**<BR>&nbsp;*<BR>&nbsp;* @author&nbsp; =
pae<BR>&nbsp;*/<BR>public class=20
EclipseXSDDemo2 {<BR>//&nbsp;&nbsp;&nbsp; =
private&nbsp;&nbsp;&nbsp;&nbsp;=20
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp; xmlDOM =3D=20
null;<BR>&nbsp;&nbsp;&nbsp;=20
private&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&am p;nbsp;&nbsp;&nbsp; =
XSDParser&nbsp;&nbsp;=20
xsdParser =3D null;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp; // instance initializer<BR>&nbsp;&nbsp;&nbsp;=20
{<BR> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;=20
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =
new=20
XSDResourceFactoryImpl());<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; =

<BR>&nbsp;&nbsp;&nbsp; /** Creates a new instance of EclipseXSDDemo2=20
*/<BR>&nbsp;&nbsp;&nbsp; public EclipseXSDDemo2()=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; super();</DIV>
<DIV>&nbsp;</DIV>
<DIV> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Redirect the=20
System.err<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; try=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;=20
System.setErr(new PrintStream(new FileOutputStream("errors.log",=20
true)));<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;=20
}<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; catch=20
(FileNotFoundException fileNotFoundException)=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; =
}<BR>&nbsp;&nbsp;&nbsp;=20
}<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; /** Open a XML DOM=20
*/<BR>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String uri)=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create a factory =
object for=20
creating DOM parsers<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilderFactory&nbsp; factory =3D=20
DocumentBuilderFactory.newInstance();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;=20
DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp; builder =
=3D=20
null;<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D null;<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Build a new=20
DOM<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
// Now=20
use the factory to create a DOM parser (a.k.a. a=20
DocumentBuilder)<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;=20
factory.setNamespaceAware(true);=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
builder =3D=20
factory.newDocumentBuilder();<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D =
builder.parse(uri);<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
}<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch (Exception ex)=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
ex.printStackTrace();<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;=20
return null;<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
}<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; return=20
xmlDoc;<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; =
<BR>&nbsp;&nbsp;&nbsp; /**=20
Open a XML DOM using XSDParser */<BR>&nbsp;&nbsp;&nbsp; private Document =

openXMLDOMUsingXSDParser(String uri)=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
Document&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D null;<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Build a new=20
DOM<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
xsdParser =3D new=20
XSDParser();<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;=20
xsdParser.parse(uri);<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D =
xsdParser.getDocument();<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
}<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch (Exception ex)=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
ex.printStackTrace();<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;=20
return null;<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
}<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; return=20
xmlDoc;<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; =
<BR>&nbsp;&nbsp;&nbsp; /**=20
doIt */<BR>&nbsp;&nbsp;&nbsp; private void doIt()=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
Document=20
xmlDOM =3D openXMLDOMUsingXSDParser("<A=20
href=3D"http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl=
/</A>");<BR> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;=20
Document xmlDOM =3D openXMLDOMUsingXSDParser("./wsdl.xsd");</DIV>
<DIV>&nbsp;</DIV>
<DIV> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
Element=20
rootElement =3D xmlDOM.getDocumentElement();</DIV>
<DIV>&nbsp;</DIV>
<DIV> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
XSDSchema xsdSchema =3D=20
XSDFactory.eINSTANCE.createXSDSchema();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =20
xsdSchema.setDocument(xmlDOM);<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;=20
xsdSchema.setElement(rootElement);<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
xsdSchema.updateElement();</DIV>
<DIV>&nbsp;</DIV>
<DIV> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
System.out.println("\n\n");<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;=20
XSDResourceImpl.serialize(System.out, xsdSchema.getElement());</DIV>
<DIV>&nbsp;</DIV>
<DIV> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
System.out.println(" &gt;&gt;&gt;&gt;&gt;&gt;&gt;& ;gt;&gt;&gt;&gt;&gt;&gt;&=
gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;& amp;gt;=20
VALIDATION=20
&gt;&gt;&gt;&gt;&gt;&gt;&gt;& ;gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt;&gt;&=
gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;"); <BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
xsdSchema.validate();<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;=20
//EList eList =3D=20
xsdMainSchema.getDiagnostics();<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
EList eList =3D=20
xsdSchema.getAllDiagnostics();<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;=20
for (int i =3D 0; i &lt; eList.size(); i++)=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;=20
XSDDiagnostic xsdDiagnostic =3D=20
(XSDDiagnostic)eList.get(i);<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;&nbsp;=20
System.out.println(i + ": At line #" + xsdDiagnostic.getLine() + "(" +=20
xsdDiagnostic.getColumn() + "), " + xsdDiagnostic.getMessage() + "; Node =
=3D [" +=20
xsdDiagnostic.getNode().getNodeName() +=20
"]");<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;=20
}<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
System.out.println(" &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&=
lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;& amp;lt;&lt;&lt;&lt;&lt;&lt;&lt;& lt;&lt;&lt;&l=
t;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&a mp;lt;&lt;&lt;&lt;&lt;&lt;&lt;&l t;&lt;&lt;&lt=
;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&am p;lt;&lt;&lt; ");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;=20
}<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch (Exception ex)=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
ex.printStackTrace();<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
}<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; =
/** main=20
- the main entry */<BR>&nbsp;&nbsp;&nbsp; public static void =
main(String[] args)=20
{<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; EclipseXSDDemo2 app =3D =
new=20
EclipseXSDDemo2();<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
app.doIt();<BR>&nbsp;&nbsp;&nbsp; }<BR>}<BR></DIV>
<DIV>Regards,</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>Pae</DIV></FONT>
<DIV><FONT size=3D2>&nbsp;</DIV></FONT>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV>"Ed Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB4F504.6527C9F2@ca.ibm.com">news:3EB4F504.6527C9F2@ca.ibm.=
com</A>...</DIV>Pae,=20

<P>No, the standalone version worked too.&nbsp; What exception did you =
see?=20
<BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">&nbsp;<FONT size=3D-1>Ed,</FONT>&nbsp;<FONT=20
size=3D-1>That surely helped with v1.0.2. And THANK you for that. =
One quick=20
question is:</FONT>&nbsp;<FONT size=3D-1>Do you also have an =
exception thrown=20
when running with v1.1.0 as standalone.</FONT>&nbsp;<FONT=20
size=3D-1>Regards,</FONT>&nbsp;&nbsp;<FONT =
size=3D-1>Pae</FONT>&nbsp;=20
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed=20
Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB3A206.9781C42@ca.ibm.com">news:3EB3A206.9781C42@ca.ibm.co=
m</A>...Pae,=20

<P>The XSD model expects a DOM that's namespace aware, so <FONT=20
color=3D#3333ff>this</FONT> addition to your sample code will =
improve your=20
result:=20
<P>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String uri) {=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create a factory =
object=20
for creating DOM parsers =
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilderFactory&nbsp; factory =3D=20
DocumentBuilderFactory.newInstance();=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp; =
builder =3D=20
null; <BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D null;=20
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT =
color=3D#3333ff>&nbsp;&nbsp;=20
factory.setNamespaceAware(true);</FONT>=20
<P>Without this, element.getNamespaceURI and element.getLocalName =
both=20
return null... <BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">
<STYLE></STYLE>
<FONT size=3D-1>Ed,</FONT> <FONT size=3D-1>I have a sample code =
that test a=20
DOM of XML Schema with Eclipse/XSD andproducing two different=20
results.</FONT> <FONT size=3D-1>With v1.0.2, it seems ok except =
the=20
diagnostic message we are discussing.With v1.1.0, it throws an=20
exception.</FONT> <FONT size=3D-1>Regards,</FONT>&nbsp; <FONT=20
size=3D-1>Pae</FONT> <FONT size=3D-1>P.S.: The code snippet is =
as=20
follows:</FONT> <FONT size=3D-1>// ################## CODE =
SNIPPET=20
##################/*</FONT> <BR><FONT size=3D-1>&nbsp;*=20
EclipseXSDDemo1.java</FONT> <BR><FONT size=3D-1>&nbsp;*</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;* Created on May 2, 2003, 11:13 PM</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;*/</FONT> <FONT size=3D-1>package=20
org.paechoi.xsd.test;</FONT> <FONT size=3D-1>// W3C/DOM</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; =
javax.xml.parsers.DocumentBuilderFactory;</FONT>=20
<BR><FONT size=3D-1>import&nbsp; =
javax.xml.parsers.DocumentBuilder;</FONT>=20
<BR><FONT size=3D-1>import&nbsp; org.w3c.dom.Document;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; org.w3c.dom.Element;</FONT> <BR><FONT =
size=3D-1>//=20
Eclipse/XSD</FONT> <BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.xsd.XSDFactory;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
org.eclipse.xsd.XSDSchema;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
org.eclipse.xsd.impl.XSDSchemaImpl;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; =
org.eclipse.xsd.util.XSDResourceImpl;</FONT>=20
<BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.xsd.util.XSDResourceFactoryImpl;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; org.eclipse.xsd.XSDDiagnostic;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; =
org.eclipse.emf.ecore.resource.Resource;</FONT>=20
<BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.emf.ecore.resource.ResourceSet;</FONT> <BR><FONT=20
size=3D-1>import&nbsp;=20
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; org.eclipse.emf.common.util.EList;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; java.io.File;</FONT> <BR><FONT =
size=3D-1>/**</FONT>=20
<BR><FONT size=3D-1>&nbsp;*</FONT> <BR><FONT size=3D-1>&nbsp;* =
@author&nbsp;=20
pae</FONT> <BR><FONT size=3D-1>&nbsp;*/</FONT> <BR><FONT =
size=3D-1>public=20
class EclipseXSDDemo1 {</FONT> <BR><FONT =
size=3D-1>//&nbsp;&nbsp;&nbsp;=20
private&nbsp;&nbsp;&nbsp;&nbsp;=20
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp; xmlDOM =3D =
null;</FONT>=20

<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; // instance =
initializer</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; {</FONT> <BR><FONT=20
size=3D-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;=20
=
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =

new XSDResourceFactoryImpl());</FONT> <BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** Creates a new instance =
of=20
EclipseXSDDemo1 */</FONT> <BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; =
public=20
EclipseXSDDemo1() {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
super();</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM =
*/</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; private Document =
openXMLDOM(String=20
uri) {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create a =
factory=20
object for creating DOM parsers</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilderFactory&nbsp; factory =3D=20
DocumentBuilderFactory.newInstance();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp; =
builder=20
=3D null;</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D null;</FONT>=20
<P><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // =
Build a=20
new DOM</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try =
{</FONT>=20
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
// Now use the factory to create a DOM parser (a.k.a. a=20
DocumentBuilder)</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
builder =3D factory.newDocumentBuilder();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xmlDoc =3D builder.parse(uri);</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT> =
<BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch =
(Exception ex)=20
{</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
ex.printStackTrace();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
return null;</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT>=20
<P><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
return=20
xmlDoc;</FONT> <BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** doIt */</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; private void doIt() {</FONT> =
<BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document =
xmlDOM =3D=20
openXMLDOM("<A=20
=
href=3D"http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl=
/</A>");</FONT>=20
<BR><FONT size=3D-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp; =
Document=20
xmlDOM =3D openXMLDOM("./wsdl.xsd");</FONT>&nbsp;<FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Element =
rootElement =3D=20
xmlDOM.getDocumentElement();</FONT>&nbsp;<FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; XSDSchema =
xsdSchema =3D=20
XSDFactory.eINSTANCE.createXSDSchema();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
xsdSchema.setDocument(xmlDOM);</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
xsdSchema.setElement(rootElement);</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
xsdSchema.updateElement();</FONT>&nbsp;<FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
System.out.println("\n\n");</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
XSDResourceImpl.serialize(System.out,=20
xsdSchema.getElement());</FONT>&nbsp;<FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
System.out.println(" &gt;&gt;&gt;&gt;&gt;&gt;&gt;& ;gt;&gt;&gt;&gt;&gt;&gt;&=
gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;& amp;gt;=20
VALIDATION=20
=
&gt;&gt;&gt;&gt;&gt;&gt;&gt;& ;gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt;&gt;&=
gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;"); </FONT>=20
<BR><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
xsdSchema.validate();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; //EList =
eList =3D=20
xsdMainSchema.getDiagnostics();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; EList eList =
=3D=20
xsdSchema.getAllDiagnostics();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; for (int i =
=3D 0; i=20
&lt; eList.size(); i++) {</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
XSDDiagnostic xsdDiagnostic =3D =
(XSDDiagnostic)eList.get(i);</FONT>=20
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
System.out.println(i + ": Diagnostic Message =3D [" +=20
xsdDiagnostic.getMessage() + "]");</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT> =
<BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
System.out.println(" &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&=
lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;& amp;lt;&lt;&lt;&lt;&lt;&lt;&lt;& lt;&lt;&lt;&l=
t;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&a mp;lt;&lt;&lt;&lt;&lt;&lt;&lt;&l t;&lt;&lt;&lt=
;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&am p;lt;&lt;&lt; ");</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** main - the main entry =
*/</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; public static void =
main(String[]=20
args) {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
EclipseXSDDemo1 app =3D=20
new EclipseXSDDemo1();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
app.doIt();</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT> <BR><FONT =
size=3D-1>}</FONT>=20

<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: =
5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed=20
Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB25ED9.AE2CB299@ca.ibm.com">news:3EB25ED9.AE2CB299@ca.ibm.=
com</A>...Pae,=20

<P>I'm seeing this result with the just published 1.1.0 =
driver:=20
<BLOCKQUOTE><IMG height=3D411=20
src=3D"cid:007b01c31267$ea8545c0$0b01a8c0@dev1"=20
width=3D502></BLOCKQUOTE>The schema isn't valid. <BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">I have a simple test schema as =
follows:=20
<P>&lt;?xml version=3D"1.0" encoding=3D"UTF-8"?&gt; =
<BR>&lt;!--W3C=20
Schema generated by Pae --&gt; <BR>&lt;xsd:schema =
xmlns:xsd=3D"<A=20
=
href=3D"http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchem=
a</A>"=20
<BR>elementFormDefault=3D"qualified"&gt; =
<BR>&nbsp;&lt;xsd:element=20
name=3D"CommonLogin"&gt; <BR>&nbsp; &lt;xsd:complexType&gt;=20
<BR>&nbsp;&nbsp; &lt;xsd:sequence&gt; <BR>&nbsp;&nbsp;&nbsp; =

&lt;xsd:element name=3D"username" ref=3D"usernameRef"/&gt;=20
<BR>&nbsp;&nbsp;&nbsp; &lt;xsd:element name=3D"password"=20
ref=3D"passwordRef"/&gt; <BR>&nbsp;&nbsp; =
&lt;/xsd:sequence&gt;=20
<BR>&nbsp; &lt;/xsd:complexType&gt; =
<BR>&nbsp;&lt;/xsd:element&gt;=20
<BR>&nbsp;&lt;xsd:element name=3D"passwordRef" =
type=3D"xsd:string"/&gt;=20
<BR>&nbsp;&lt;xsd:element name=3D"usernameRef" =
type=3D"xsd:string"/&gt;=20
<BR>&lt;/xsd:schema&gt;=20
<P>This is a very simple sample, but it is a valid schema. =
But when=20
<BR>I use the validate() and getDiagnostics() methods in the =

XSDSchema <BR>interface it gives me a message as follows:=20
<P>XSD: The element '#null' is not permitted as constrained =
by 'XML=20
Schema '; <BR>expecting schema=20
<P>I do not understand what the message is saying. Any =
comments?=20
=
<P>Pae</P></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE ></BLOCKQUOT=
E></BLOCKQUOTE></BODY></HTML>

------=_NextPart_001_0081_01C31246.638A8920--

------=_NextPart_000_0080_01C31246.638A8920
Content-Type: image/jpeg;
name="C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\nsmailFJ.jpeg"
Content-Transfer-Encoding: base64
Content-ID: <007b01c31267$ea8545c0$0b01a8c0@dev1>

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCws MGJGSjpQdGZ6eHJm
cG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAqMF40 NF7GhHCExsbGxsbG
xsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsb/ wAARCAGbAfYDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA AgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcY GRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKT lJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP0 9fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQA AQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2 Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOk paanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMB AAIRAxEAPwDXghR4
9zbiST/EfU0m23yQBKcHHG81Ja/6kf7zfzNVLrfsTY5wGkLRrJsZueoPt6e9 NK4FpIYJEDIWKnoQ
5/xpfs0Xo3/fZ/xqKy2bmMbMUZEcZ75zzjt2qMXc+1kYBbgkbYvLyRnJ67sN wDzkdPXikBZ+zRej
f99n/Gj7NF6N/wB9n/Gqa31w+eI027VYMuTuLsmeD2xnHPpnvS/bZyJnHlhY ELMNpy5DODg54zs9
+vegC39mi9G/77P+NH2aL0b/AL7P+NUEup4hIkMQZY2kdycYwZH4yWGPu9ef 8b883lxs6FW2H5l7
n2HvyMDv075oAPs0Xo3/AH2f8aPs0Xo3/fZ/xqFriZWhLGMRPt/eKpdSSeFG
Re: A Diagnostic Message for the Valid Schema [message #569898 is a reply to message #21068] Mon, 05 May 2003 10:35 Go to previous message
Ed Merks is currently offline Ed MerksFriend
Messages: 33142
Registered: July 2009
Senior Member
--------------E5727D4B5E6356173617E3FC
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit


--------------E5727D4B5E6356173617E3FC
Content-Type: multipart/related;
boundary="------------44F6D1A322AAB865BF26D246"


--------------44F6D1A322AAB865BF26D246
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<body bgcolor="#FFFFFF">
Pae,
<p>This exception is what you would get if you used XSD 1.1.0 with an older
EMF.
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE=CITE>&nbsp;<font size=-1>Ed,</font>&nbsp;<font size=-1>Enclosed
please find the exception I captured as below. The line #s may not reflect
the</font><font size=-1>exact lines in the code snippet in the previous
message because I added some debugging</font><font size=-1>codes. But the
code is mainly remain same. Thank you.</font>&nbsp;<font size=-1>java.lang.NoSuchMethodError:
org.eclipse.emf.ecore.impl.EObjectImpl.eDerivedStructuralFea tureID(Lorg/eclipse/emf/ecore/EStructuralFeature;)I </font>
<br><font size=-1>&nbsp;at org.eclipse.xsd.impl.XSDSchemaImpl.eIsSet(XSDSchemaImpl.java :2659) </font>
<br><font size=-1>&nbsp;at org.eclipse.emf.ecore.util.EContentsEList.size(EContentsELis t.java:130) </font>
<br><font size=-1>&nbsp;at java.util.ArrayList.&lt;init>(ArrayList.java:128)</font >
<br><font size=-1>&nbsp;at org.eclipse.xsd.impl.XSDConcreteComponentImpl.reconcileConte nts(XSDConcreteComponentImpl.java:977) </font>
<br><font size=-1>&nbsp;at org.eclipse.xsd.impl.XSDConcreteComponentImpl.reconcile(XSDC oncreteComponentImpl.java:952) </font>
<br><font size=-1>&nbsp;at org.eclipse.xsd.impl.XSDConcreteComponentImpl.changeAttribut e(XSDConcreteComponentImpl.java:1232) </font>
<br><font size=-1>&nbsp;at org.eclipse.xsd.impl.XSDSchemaImpl.changeAttribute(XSDSchema Impl.java:2244) </font>
<br><font size=-1>&nbsp;at org.eclipse.xsd.impl.XSDConcreteComponentImpl.eNotify(XSDCon creteComponentImpl.java:1205) </font>
<br><font size=-1>&nbsp;at org.eclipse.xsd.impl.XSDConcreteComponentImpl.setElementGen( XSDConcreteComponentImpl.java:2797) </font>
<br><font size=-1>&nbsp;at org.eclipse.xsd.impl.XSDConcreteComponentImpl.setElement(XSD ConcreteComponentImpl.java:2829) </font>
<br><font size=-1>&nbsp;at org.eclipse.xsd.impl.XSDSchemaImpl.setElement(XSDSchemaImpl. java:2367) </font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo1.doIt(EclipseXSDDemo1.ja va:104) </font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo1.main(EclipseXSDDemo1.ja va:128) </font>&nbsp;<font size=-1>Regards,</font>&nbsp;&nbsp;<font size=-1>Pae</font>&nbsp;<font size=-1>P.S.:
I am using XSD v1.1.0 and EMF v1.0.2</font>&nbsp;
<blockquote dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed
Merks" &lt;<a href="mailto:merks@ca.ibm.com">merks@ca.ibm.com</a>> wrote
in message <a href="news:3EB4F504.6527C9F2@ca.ibm.com">news:3EB4F504.6527C9F2@ca.ibm.com</a>...Pae,
<p>No, the standalone version worked too.&nbsp; What exception did you
see?
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE="CITE">&nbsp;<font size=-1>Ed,</font> <font size=-1>That
surely helped with v1.0.2. And THANK you for that. One quick question is:</font>
<font size=-1>Do you also have an exception thrown when running with v1.1.0
as standalone.</font> <font size=-1>Regards,</font>&nbsp; <font size=-1>Pae</font>
<blockquote dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed
Merks" &lt;<a href="mailto:merks@ca.ibm.com">merks@ca.ibm.com</a>> wrote
in message <a href="news:3EB3A206.9781C42@ca.ibm.com">news:3EB3A206.9781C42@ca.ibm.com</a>...Pae,
<p>The XSD model expects a DOM that's namespace aware, so <font color="#3333FF">this</font>
addition to your sample code will improve your result:
<p>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String uri) {
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create a factory object
for creating DOM parsers
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilderFactory&nbsp;
factory = DocumentBuilderFactory.newInstance();
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;
builder = null;
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = null;
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#3333FF">&nbsp;&nbsp; factory.setNamespaceAware(true);</font>
<p>Without this, element.getNamespaceURI and element.getLocalName both
return null...
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE="CITE"><style></style>
<font size=-1>Ed,</font> <font size=-1>I
have a sample code that test a DOM of XML Schema with Eclipse/XSD andproducing
two different results.</font> <font size=-1>With v1.0.2, it seems ok except
the diagnostic message we are discussing.With v1.1.0, it throws an exception.</font>
<font size=-1>Regards,</font>&nbsp; <font size=-1>Pae</font> <font size=-1>P.S.:
The code snippet is as follows:</font> <font size=-1>// ##################
CODE SNIPPET ##################/*</font>
<br><font size=-1>&nbsp;* EclipseXSDDemo1.java</font>
<br><font size=-1>&nbsp;*</font>
<br><font size=-1>&nbsp;* Created on May 2, 2003, 11:13 PM</font>
<br><font size=-1>&nbsp;*/</font> <font size=-1>package org.paechoi.xsd.test;</font>
<font size=-1>// W3C/DOM</font>
<br><font size=-1>import&nbsp; javax.xml.parsers.DocumentBuilderFactory;</font>
<br><font size=-1>import&nbsp; javax.xml.parsers.DocumentBuilder;</font>
<br><font size=-1>import&nbsp; org.w3c.dom.Document;</font>
<br><font size=-1>import&nbsp; org.w3c.dom.Element;</font>
<br><font size=-1>// Eclipse/XSD</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDFactory;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDSchema;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.impl.XSDSchemaImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.util.XSDResourceImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.util.XSDResourceFactoryImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDDiagnostic;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.Resource;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.ResourceSet;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.common.util.EList;</font>
<br><font size=-1>import&nbsp; java.io.File;</font>
<br><font size=-1>/**</font>
<br><font size=-1>&nbsp;*</font>
<br><font size=-1>&nbsp;* @author&nbsp; pae</font>
<br><font size=-1>&nbsp;*/</font>
<br><font size=-1>public class EclipseXSDDemo1 {</font>
<br><font size=-1>//&nbsp;&nbsp;&nbsp; private&nbsp;&nbsp;&nbsp;&nbsp;
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp; xmlDOM = null;</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; // instance initializer</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; {</font>
<br><font size=-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp; Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd",
new XSDResourceFactoryImpl());</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** Creates a new instance of EclipseXSDDemo1
*/</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; public EclipseXSDDemo1() {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; super();</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String
uri) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create
a factory object for creating DOM parsers</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilderFactory&nbsp;
factory = DocumentBuilderFactory.newInstance();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;
builder = null;</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = null;</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Build a
new DOM</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// Now use the factory to create a DOM parser (a.k.a. a DocumentBuilder)</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
builder = factory.newDocumentBuilder();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = builder.parse(uri);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch (Exception
ex) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ex.printStackTrace();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return null;</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; return xmlDoc;</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** doIt */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private void doIt() {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document xmlDOM
= openXMLDOM("<a href="http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl/</a>");</font>
<br><font size=-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp; Document
xmlDOM = openXMLDOM("./wsdl.xsd");</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
Element rootElement = xmlDOM.getDocumentElement();</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
XSDSchema xsdSchema = XSDFactory.eINSTANCE.createXSDSchema();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; xsdSchema.setDocument(xmlDOM);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; xsdSchema.setElement(rootElement);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; xsdSchema.updateElement();</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
System.out.println("\n\n");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; XSDResourceImpl.serialize(System.out,
xsdSchema.getElement());</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION >>>>>>>>>>>>>>>>>>>>>>>>>>");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; xsdSchema.validate();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; //EList eList
= xsdMainSchema.getDiagnostics();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; EList eList
= xsdSchema.getAllDiagnostics();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; for (int i
= 0; i &lt; eList.size(); i++) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
XSDDiagnostic xsdDiagnostic = (XSDDiagnostic)eList.get(i);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
System.out.println(i + ": Diagnostic Message = [" + xsdDiagnostic.getMessage()
+ "]");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; System.out.println(" &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; ");</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** main - the main entry */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; public static void main(String[] args)
{</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; EclipseXSDDemo1
app = new EclipseXSDDemo1();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; app.doIt();</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<br><font size=-1>}</font>
<blockquote dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed
Merks" &lt;<a href="mailto:merks@ca.ibm.com">merks@ca.ibm.com</a>> wrote
in message <a href="news:3EB25ED9.AE2CB299@ca.ibm.com">news:3EB25ED9.AE2CB299@ca.ibm.com</a>...Pae,
<p>I'm seeing this result with the just published 1.1.0 driver:
<blockquote><img SRC="cid:part1.3EB63E8D.8348861E@ca.ibm.com" height=411 width=502></blockquote>
The schema isn't valid.
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE="CITE">I have a simple test schema as follows:
<p>&lt;?xml version="1.0" encoding="UTF-8"?>
<br>&lt;!--W3C Schema generated by Pae -->
<br>&lt;xsd:schema xmlns:xsd="<a href="http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchema</a>"
<br>elementFormDefault="qualified">
<br>&nbsp;&lt;xsd:element name="CommonLogin">
<br>&nbsp; &lt;xsd:complexType>
<br>&nbsp;&nbsp; &lt;xsd:sequence>
<br>&nbsp;&nbsp;&nbsp; &lt;xsd:element name="username" ref="usernameRef"/>
<br>&nbsp;&nbsp;&nbsp; &lt;xsd:element name="password" ref="passwordRef"/>
<br>&nbsp;&nbsp; &lt;/xsd:sequence>
<br>&nbsp; &lt;/xsd:complexType>
<br>&nbsp;&lt;/xsd:element>
<br>&nbsp;&lt;xsd:element name="passwordRef" type="xsd:string"/>
<br>&nbsp;&lt;xsd:element name="usernameRef" type="xsd:string"/>
<br>&lt;/xsd:schema>
<p>This is a very simple sample, but it is a valid schema. But when
<br>I use the validate() and getDiagnostics() methods in the XSDSchema
<br>interface it gives me a message as follows:
<p>XSD: The element '#null' is not permitted as constrained by 'XML Schema
';
<br>expecting schema
<p>I do not understand what the message is saying. Any comments?
<p>Pae</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>

</body>
</html>

--------------44F6D1A322AAB865BF26D246
Content-Type: image/jpeg
Content-ID: <part1.3EB63E8D.8348861E@ca.ibm.com>
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\nsmailFJ.jpeg"

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCws MGJGSjpQdGZ6
eHJmcG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAq MF40NF7GhHCE
xsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbG xsbGxsb/wAAR
CAGbAfYDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcI CQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS 0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1 dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW 19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcI CQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMz UvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0 dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU 1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDXghR49zbiST/EfU0m23yQ BKcHHG81Ja/6
kf7zfzNVLrfsTY5wGkLRrJsZueoPt6e9NK4FpIYJEDIWKnoQ5/xpfs0Xo3/f Z/xqKy2bmMbM
UZEcZ75zzjt2qMXc+1kYBbgkbYvLyRnJ67sNwDzkdPXikBZ+zRejf99n/Gj7 NF6N/wB9n/Gq
a31w+eI027VYMuTuLsmeD2xnHPpnvS/bZyJnHlhYELMNpy5DODg54zs9+veg C39mi9G/77P+
NH2aL0b/AL7P+NUEup4hIkMQZY2kdycYwZH4yWGPu9ef8b883lxs6FW2H5l7 n2HvyMDv075o
APs0Xo3/AH2f8aPs0Xo3/fZ/xqFriZWhLGMRPt/eKpdSSeFGDx2+YjBz26Uy 3kkmuraaQptk
gZlVVIKglDgnPP6UATyQxIudrH/gZpm2L+43/fw1NP8AcH1rJvJZbecG2Jlk dSWhOSAAPvD0
/r9aQGhti/uN/wB/DTDGBI65bAPHzH0B/rUdntNurLMZt3zFyep+nb6VM/8A r5f94fyFAxvl
j1b/AL6NHlj1b/vo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+ jTqKAG+WPVv+
+jR5Y9W/76NOooAb5Y9W/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igB vlj1b/vo0eWP
Vv8Avo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPV v++jR5Y9W/76
NOooAb5Y9W/76NHlj1b/AL6NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/AL6N Hlj1b/vo06ig
Bvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+jTqKAG+WPVv++jR5Y9W/ 76NOooAb5Y9W
/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/vo0eWPVv8Avo06 igBvlj1b/vo0
eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPVv++jR5Y9W/76NOooAb5Y 9W/76NHlj1b/
AL6NOooAb5Y9W/76NHlj1b/vo06igCvOTEV2MRnOcnP86KS76p+P9KKBF+1/ 1I/3m/majktG
kBVmiZNxYK8W7Gfx96hREIJKqTuPUe9O8uP+4v5U7gWIYnR3d3DFgBwuMYz/ AI0otoBEYhBG
I2OSgQYJ+lNdbaNlVkjDOcKu0ZP0FMcwRyBWtvlyFMmwbQT0Hqeo6DHP1oAm WCFF2pFGo44C
gdDkfrzTPscBn84xIXwMZUfKQScj3yaT/Q/+mH39nb73p9fahfsbruTyGHHI wepwP14oAkaC
FipaKMlCWUlRwSckj8ad5abt2xc53Zx3xjP5cVCVgFwsJgXLIXDbRjggEfqK k8iH/nkn/fIo
ABBCJBIIo94zhtoyM5zz+J/OhIIY5GkSKNXbqwUAn8ah8yw8vzN9tszt3ZXG fTNO/wBD87yf
3Hm/3ON3r0oAklUsoAGeagFuVZmEYDN94jGT9adusgwXNvuLbAMrkt6fXkUM 1ksvlMbcSZA2
ErnJ6cUANW3KZ2RhdxycYGT60j/6+X/eH8hUgFqZzCEiLgZIG3I6dR170f6H 53k/uPN/ucbv
XpQBHRUg+xs4QeQWJK7RjOR1H4U3zLDzPL322/O3blc59MUrANoprz2y3Bh+ ysSJFjyIxjJG
f0HWpf8ARvtPkeSN+0tkx4GBjv369qLAMoqx5EP/ADyT/vkVX8y33f8AHt+7 37PM2rtznGOu
evHT9KLAFFNee2W4MP2ViRIseRGMZIz+g61a8iH/AJ5J/wB8iiwFeipP9D87 yf3Hm/3ON3r0
oH2NnCDyCxJXaMZyOo/CiwEdFSH7GJDGfI3jGV4yM4xx+I/Oj/Q/O8n9x5v9 zjd69KLAR0Us
slpE4TZGz7lUqu3K5IAJHpyPzp4FqZzCEiLgZIG3I6dR170WAjoqQfY2cIPI LEldoxnI6j8K
R2skZlc26sgywJUED3/MfnRYBlFO8yw8zy99tvzt25XOfTFRvPbLcGH7KxIk WPIjGMkZ/Qda
LAOoprzQr5n+hMfLkEZwqck4xjn3H5/WkeeJHKf2fKxAYjCJ8wU4JAznuPrR YB9FN86Hz2iF
kxKvtJCp7c4znHzDt3q15EP/ADyT/vkUWAr0UeZb7v8Aj2/d79nmbV25zjHX PXjp+lNee2W4
MP2ViRIseRGMZIz+g60WAdRTnMEcgVrb5chTJsG0E9B6nqOgxz9aei20jMqp GWQ4ZdoyPqKL
ARUVY8iH/nkn/fIo8iH/AJ5J/wB8iiwFeirHkQ/88k/75FHkQ/8APJP++RRY CvRVjyIf+eSf
98ijyIf+eSf98iiwFeirHkQ/88k/75FHkQ/88k/75FFgK9FWPIh/55J/3yKP Ih/55J/3yKLA
V6KseRD/AM8k/wC+RR5EP/PJP++RRYCvRVjyIf8Ankn/AHyKPIh/55J/3yKL AV6KseRD/wA8
k/75FHkQ/wDPJP8AvkUWAr0VY8iH/nkn/fIo8iH/AJ5J/wB8iiwFeipngh2/ 6pOo/hFQbYv+
eUfPtQMWioJlTz4FCKAScgDrxUb3FsjlWj5Bx90UWGouWiQ676p+P9KKLtFR lAUDrnAooJJ4
/un/AHj/ADp1Nj+6f94/zp1AyXyWjmMkTAhz86vknr2PbqeOn05NOeMyTLuA MSjP3urZ4yMd
vr+HQ055Y42VWYBnOFXufoKDIBMsWDuZSw9MAj/EUxFb7PN9s+0Yj+/jZuON uMbun3+30496
rtp8zo2Y4AzCYZDE4L9D0/D6flWpRQBWdJzepIqRmNVK5LkHBKknGPb1qzVV 70L5n7iU+XII
zjbyTjGOfcfn9akFwPOEbRyKGJVXIGGIycevY9scfSgCP7M/2rOV+z58zb33 /Tpjv67uaiWy
dZuUDp5pkyZ3HVt33MY4/XFWGufnwkMki7gpdAMA5x65474/oanoAqwRTR3c 7mOLbK+dwc7s
BQAMY9vXvUf2WZp8lI1XzN2VlYjGc/cIxk+vrz1qb7WC2FhlZd+wOqgjOcHv kY55Ixx9KkM8
IkMZlj3jGV3DIzjHH4j86AInSc3qSKkZjVSuS5BwSpJxj29aZ9nmx5OI/K83 zN+47vv78bcf
h19/apo7mN5WjJ2OrlArEZbAByOeeCKd58PneT5sfm/3Nw3evSgCo9tOWnZY 4d0kyOCXIJVc
cH5f9n9T+Nn7NH5m/dLnOcec+Pyzj8Kcs8LruSWNhxyGB6nA/Xijz4fO8nzY /N/ubhu9elAD
vLTdu2LnO7OO+MZ/LioHSc3qSKkZjVSuS5BwSpJxj29as1E9zAjMrzxqyDLA uAQPf8x+dAC/
vvtH/LPyNnvu3Z/LGKr/AGebHk4j8rzfM37ju+/vxtx+HX39qsefD53k+bH5 v9zcN3r0oE8L
OEEsZYkrtDDOR1H4UAO8tN27Yuc7s474xn8uKdUfnw+d5Pmx+b/c3Dd69KT7 TAGC+fHuLbAN
4yW9PryKAKq2TrNygdPNMmTO46tu+5jHH64oe2nLTsscO6SZHBLkEquOD8v+ z+p/G358PneT
5sfm/wBzcN3r0pqXdu8zQrNGZFO0pu5z9KAIlgkVhGY4XjEpkDsSSCWJ4XHX nGc+/tSfZ5se
TiPyvN8zfuO77+/G3H4dff2qx58PneT5sfm/3Nw3evSmS3cUThNwZ9yqVVhl ckAEjPTkfnQB
XltZynlosLKs3nKzE5J37sdOOpGefpzxM6Tm9SRUjMaqVyXIOCVJOMe3rVmo IbuKXau4JIxI
EbMN3BIPAPsaAK7205adljh3STI4JcglVxwfl/2f1P4xypJ5i2wjDBZxKHKN 3fcecYGATzk9
MY5q613bLu3XEQ2na2XHB9D+R/KpqAIfs0fmb90uc5x5z4/LOPwqTy03bti5 zuzjvjGfy4qA
Xg81kaGRVRxGXO3GTjHfPOR271L58PneT5sfm/3Nw3evSgCB7aRpXA2eXJKk pYk5BXbxjHP3
eue/tUjxyG9ikATy1RlJLHOSQemP9n170/z4fO8nzY/N/ubhu9elSUAVYLYp eT3EkcYZz8rK
xJ24AweP9kH8fzk+zR+Zv3S5znHnPj8s4/CpqKAKP2N/P3bIs+Zv8/P7zGc7 enp8vXp+VXPL
Tdu2LnO7OO+MZ/LikSWORmVWBZDhl7j6in0ARPGZJl3AGJRn73Vs8ZGO31/D oab5LSTCSVgA
h+RUyD17nv0HHT68Gp6KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKAGyE
Bck4AIyT9az3EMjBmlOR0w4GKvyqrxlXUMD2IzVf7Lb/APPCL/vgf5/z+YBW lZWubfawOCe+
f4aZJYLJIz+cRuOcbP8A69WzbwqMrDGD6hR/n/P5t8uP+4v5UXsXCcoO8SG9 OXU+uaKbdKF2
BQAOen4UUiCxH90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51fJPXse3U8dPp yakKAzK+0ZVS
N2eRkjjH4fpQ8scbKrMAznCr3P0FJ58P/PWP7+z7w+96fX2piG/Zo/M37pc5 zjznx+WcfhR9
mj8zfulznOPOfH5Zx+FK1zAsvlNPGJMgbC4zk9OKbLdxROE3Bn3KpVWGVyQA SM9OR+dAEEti
73ZlDrtLhj6/wH/2mP8Avo+nMphka7WRljUIT8653MuDhSMdOc9eo6ek/mJ5 nl71343bc849
cUxrmBZfKaeMSZA2FxnJ6cUAMSOaJikflmIuX3MTuGTkjHfqecjr3xzYqMzw iQxmWPeMZXcM
jOMcfiPzpsdzG8rRk7HVygViMtgA5HPPBFAEDWsjz+Y0durbw3nICHCg8Dpz kDB5HXp6uWCR
WEZjheMSmQOxJIJYnhcdecZz7+1T+fD53k+bH5v9zcN3r0oWeF13JLGw45DA 9TgfrxQBUe2n
LTsscO6SZHBLkEquOD8v+z+p/EWydZuUDp5pkyZ3HVt33MY4/XFW/Ph87yfN j83+5uG716VJ
QBltp8zo2Y4AzCYZDE4L9D0/D6flT5bKcuSmziUSAmVgG+bONo4H15zjPU8X fPh/56x/f2fe
H3vT6+1Czwuu5JY2HHIYHqcD9eKAJKzJUk8xbYRhgs4lDlG7vuPOMDAJ5yem Mc1fMoFwsJVs
shcNxjggEfqKBPCzhBLGWJK7QwzkdR+FAFRbJ1m5QOnmmTJncdW3fcxjj9cU PbTlp2WOHdJM
jglyCVXHB+X/AGf1P42muYFl8pp4xJkDYXGcnpxT/MTzPL3rvxu255x64oAp LZOs3KB080yZ
M7jq277mMcfripYIpo7udzHFtlfO4Od2AoAGMe3r3qbz4f8AnrH9/Z94fe9P r7UjXMCy+U08
YkyBsLjOT04oApy2U5clNnEokBMrAN82cbRwPrznGep4srHNHcSFPLKSOHLE nI4Axjv0657+
3Ky3cUThNwZ9yqVVhlckAEjPTkfnS/a7bzPL+0Rb87du8Zz6YoArLZOs3KB0 80yZM7jq277m
McfriiW1nKeWiwsqzecrMTknfux046kZ5+nPEr3yLcGHypSRIseQvGSM/oOt SR3MbytGTsdX
KBWIy2ADkc88EUATVQitZwnlusKq03nMyk5B37sdOegGePpxzZS7t3maFZoz Ip2lN3OfpQl3
bvM0KzRmRTtKbuc/SgCBo99+YwH8skSyZQ4LLjHPv8p4/ue5q7UYnhZwgljL EldoYZyOo/Cn
eYnmeXvXfjdtzzj1xQBWitT9qmlmUYZwyASMRwAOV6Z4z3/SoZbKcuSmziUS AmVgG+bONo4H
15zjPU8XXl2zRxgZL5J56Ad/zIH40PLtmjjAyXyTz0A7/mQPxoAqLZOs3KB0 80yZM7jq277m
Mcfrir9Qtd2y7t1xENp2tlxwfQ/kfyoa7tl3briIbTtbLjg+h/I/lQAfZo/M 37pc5zjznx+W
cfhR9mj8zfulznOPOfH5Zx+FDXdsu7dcRDadrZccH0P5H8qmoAg8lpJhJKwA Q/IqZB69z36D
jp9eDU9Qtd2y7t1xENp2tlxwfQ/kfyoFwPOEbRyKGJVXIGGIycevY9scfSgC aiio/Ph87yfN
j83+5uG716UASUVF9pgDBfPj3FtgG8ZLen15FD3MCMyvPGrIMsC4BA9/zH50 AS0VG8u2aOMD
JfJPPQDv+ZA/Gmi4HnCNo5FDEqrkDDEZOPXse2OPpQBNRVf7Wu7/AFcnl79n mcbc5xjrnrx0
/Sj7Wu7/AFcnl79nmcbc5xjrnrx0/SgCxRUX2hPtPkYfftLZKkDAx379e1K8 u2aOMDJfJPPQ
Dv8AmQPxoAkoqq96Edk8iUsrhQo25bOcEc9OP5+hxHJqkUczxGKUusix4G3k tkjHPtQBeoqK
GfzZJU8t18ptpLYwTjPGD6EfnTPtYLYWGVl37A6qCM5we+RjnkjHH0oAsUVG Z4RIYzLHvGMr
uGRnGOPxH502O5jeVoydjq5QKxGWwAcjnngigCaio/Ph87yfNj83+5uG716U LPC67kljYcch
gepwP14oAkoqPz4fO8nzY/N/ubhu9elQvfItwYfKlJEix5C8ZIz+g60AWH+6 aj/z/n/P/wBe
R/umo/8AP+f8/wD1wBr/AHT/AJ/z/n8Y6kf7p/z/AJ/z+MdIZWu+qfj/AEoo u+qfj/SigRPH
90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51fJPXse3U8dPpyai+zzfbPtGI/ v42bjjbjG7p9
/t9OPerHnw+d5Pmx+b/c3Dd69KDKBcLCVbLIXDcY4IBH6imIq/ZZmnyUjVfM 3ZWViMZz9wjG
T6+vPWkltZynlosLKs3nKzE5J37sdOOpGefpzxb8+HzvJ82Pzf7m4bvXpQs8 LruSWNhxyGB6
nA/XigBvlv8AbPM2RbPL27sfPnPTPp/Wq/2WZp8lI1XzN2VlYjGc/cIxk+vr z1q158PneT5s
fm/3Nw3evSgTws4QSxliSu0MM5HUfhQBAsEisIzHC8YlMgdiSQSxPC4684zn 39qje2nLTssc
O6SZHBLkEquOD8v+z+p/Gyl3bvM0KzRmRTtKbuc/So/to89ohBKSr7SRt9uc Zzj5h270ARLZ
Os3KB080yZM7jq277mMcfriom0+Z0bMcAZhMMhicF+h6fh9PyrQ8+HzvJ82P zf7m4bvXpSfa
YAwXz49xbYBvGS3p9eRQBTlspy5KbOJRICZWAb5s42jgfXnOM9Txo1Gs8Lru SWNhxyGB6nA/
Xio1u1MzxtHIgV9m9sbSeCBwe+R1+nXigCP7PN9s+0Yj+/jZuONuMbun3+30 496rtp8zo2Y4
AzCYZDE4L9D0/D6flWh58PneT5sfm/3Nw3evSoX1C3W4WBXV3JwQHX5TnHc/ oMmgBXSc3qSK
kZjVSuS5BwSpJxj29ahe2nLTsscO6SZHBLkEquOD8v8As/qfxt+fD53k+bH5 v9zcN3r0o8+H
/nrH9/Z94fe9Pr7UAVfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVjy3+2eZsi2eX t3Y+fOemfT+t
OMoFwsJVsshcNxjggEfqKal3bvM0KzRmRTtKbuc/SgCH7PN9s+0Yj+/jZuON uMbun3+30496
b9lmafJSNV8zdlZWIxnP3CMZPr689asfa7bzPL+0Rb87du8Zz6YqN75FuDD5 UpIkWPIXjJGf
0HWgCKW1nKeWiwsqzecrMTknfux046kZ5+nPFn7NH5m/dLnOcec+Pyzj8KV7 mBGZXnjVkGWB
cAge/wCY/Ol8+H/nrH9/Z94fe9Pr7UAO8tN27Yuc7s474xn8uKpPbTlp2WOH dJMjglyCVXHB
+X/Z/U/jb8+HzvJ82Pzf7m4bvXpQZQLhYSrZZC4bjHBAI/UUARrHNHcSFPLK SOHLEnI4Axjv
0657+3Isc0dxIU8spI4csScjgDGO/Trnv7cyCeMzmEMpcDJAYZHTqOveoX1C 3W4WBXV3JwQH
X5TnHc/oMmgCBI3mu7kCIKhmRjIwIJCheBxyMqe/f87flv8AbPM2RbPL27sf PnPTPp/WnCeM
zmEMpcDJAYZHTqOvejz4fO8nzY/N/ubhu9elADYUbzJZZBhnO0D0UZx/U/jj tRCjeZLLIMM5
2geijOP6n8cdqSW7iicJuDPuVSqsMrkgAkZ6cj86Y98i3Bh8qUkSLHkLxkjP 6DrQAySzke5L
iQCNnVyOeo29v+Af+PH05JLOR7kuJAI2dXI56jb2/wCAf+PH05tJLHIzKrAs hwy9x9RT6AKU
lnI9yXEgEbOrkc9Rt7f8A/8AHj6c2f332j/ln5Gz33bs/ljFSUUAUpLOR7ku JAI2dXI56jb2
/wCAf+PH05kMMjXayMsahCfnXO5lwcKRjpznr1HT0s0UAR/vvtH/ACz8jZ77 t2fyxiq/2ebH
k4j8rzfM37ju+/vxtx+HX39quUUAVYIpo7udzHFtlfO4Od2AoAGMe3r3qtKk nmLbCMMFnEoc
o3d9x5xgYBPOT0xjmtOigCGFG8yWWQYZztA9FGcf1P447VGiXP2ou6xFckbt 5JCdgBjjtnn+
mLVFAFP7PNjycR+V5vmb9x3ff3424/Dr7+1H2ebHk4j8rzfM37ju+/vxtx+H X39quUUAVnSc
3qSKkZjVSuS5BwSpJxj29afCjeZLLIMM52geijOP6n8cdqmooApyR3ZnMqiL KnagLnGw9c/L
1OB+Q98xy2k7SSyBIixlV0JkI+Ubcg8d9g/P89CigCmI7tZpSgiCySq+7ech RtBGNvcD170j
Wsjz+Y0durbw3nICHCg8DpzkDB5HXp63aKAKiwSKwjMcLxiUyB2JJBLE8Ljr zjOff2qN7act
Oyxw7pJkcEuQSq44Py/7P6n8b9FAFBbJ1m5QOnmmTJncdW3fcxjj9cVE2nzO jZjgDMJhkMTg
v0PT8Pp+ValFAGdLZTlyU2cSiQEysA3zZxtHA+vOcZ6ni/5abt2xc53Zx3xj P5cU6igBr/dN
R/5/z/n/AOvI/wB01H/n/P8An/64A1/un/P+f8/jHUj/AHT/AJ/z/n8Y6Qyt d9U/H+lFF31T
8f6UUCJ4/un/AHj/ADp1Nj+6f94/zp1Axi2TrNygdPNMmTO46tu+5jHH64qZ 0nN6kipGY1Ur
kuQcEqScY9vWrNMeWONlVmAZzhV7n6CmIprZOs3KB080yZM7jq277mMcfrio m0+Z0bMcAZhM
MhicF+h6fh9PyrQ8+H/nrH9/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oAqrZO s3KB080yZM7j
q277mMcfrih7actOyxw7pJkcEuQSq44Py/7P6n8bEt3FE4TcGfcqlVYZXJAB Iz05H51L5ieZ
5e9d+N23POPXFAEKxzR3EhTyykjhyxJyOAMY79Oue/ty2C2KXk9xJHGGc/Ky sSduAMHj/ZB/
H85vPh87yfNj83+5uG716UGUC4WEq2WQuG4xwQCP1FAFf7PNjycR+V5vmb9x 3ff3424/Dr7+
1Ogimju53McW2V87g53YCgAYx7evepvPh87yfNj83+5uG716ULPC67kljYcc hgepwP14oAz2
0+Z0bMcAZhMMhicF+h6fh9PyqwLeZppfMEaxPKsmVYlvl24GMcfdB/T3qx58 PneT5sfm/wBz
cN3r0oE8LOEEsZYkrtDDOR1H4UAVFsnWblA6eaZMmdx1bd9zGOP1xUqpci8e Xy4tjBU/1hyA
CecbffpUiXdu8zQrNGZFO0pu5z9KmoAzpbKcuSmziUSAmVgG+bONo4H15zjP U8ST205aTyvL
KvKkvzEg5Xb8vT/Z6/hjvVkTws4QSxliSu0MM5HUfhR58PneT5sfm/3Nw3ev SgCJ0nN6kipG
Y1UrkuQcEqScY9vWlWOaO4kKeWUkcOWJORwBjHfp1z39uZFnhddySxsOOQwP U4H68UefD53k
+bH5v9zcN3r0oAb9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd8Yz+XFR/a7bz PL+0Rb87du8Z
z6YqN75FuDD5UpIkWPIXjJGf0HWgCvcxSxRqpjV41uBIGVWZuX3HgDjAJ5z2 96lntpy0nleW
VeVJfmJByu35en+z1/DHepmufnwkMki7gpdAMA5x65474/oaf58PneT5sfm/ 3Nw3evSgClLZ
TlyU2cSiQEysA3zZxtHA+vOcZ6niw6Tm9SRUjMaqVyXIOCVJOMe3rUqzwuu5 JY2HHIYHqcD9
eKFnhddySxsOOQwPU4H68UAROk5vUkVIzGqlclyDglSTjHt60ipci8eXy4tj BU/1hyACecbf
fpU3nw+d5Pmx+b/c3Dd69KBPCzhBLGWJK7QwzkdR+FAETpOb1JFSMxqpXJcg 4JUk4x7etQrZ
Os3KB080yZM7jq277mMcfrirUM/mySp5br5TbSWxgnGeMH0I/Ol8+HzvJ82P zf7m4bvXpQBU
ltZynlosLKs3nKzE5J37sdOOpGefpzxd8tN27Yuc7s474xn8uKY9zAjMrzxq yDLAuAQPf8x+
dKJ4zOYQylwMkBhkdOo696AGeS0kwklYAIfkVMg9e579Bx0+vBqeoxPCzhBL GWJK7QwzkdR+
FQvfItwYfKlJEix5C8ZIz+g60AWqKYkscjMqsCyHDL3H1FPoAKKKKACiiigA ooooAKKKKACi
iigAooooAKKKKACiiigAooooAKKKKACiiigBr/dNR/5/z/n/AOvI/wB01H/n /P8An/64A1/u
n/P+f8/jHUj/AHT/AJ/z/n8Y6Qytd9U/H+lFF31T8f6UUCJ4/un/AHj/ADp1 Nj+6f94/zp1A
y5UHktHMZImBDn51fJPXse3U8dPpyanopiKf2eb7Z9oxH9/GzccbcY3dPv8A b6ce9N+yzNPk
pGq+ZuysrEYzn7hGMn19eetW3ljjZVZgGc4Ve5+gpPPh/wCesf39n3h970+v tQBUltZynlos
LKs3nKzE5J37sdOOpGefpzxZ8t/tnmbItnl7d2Pnznpn0/rStcwLL5TTxiTI GwuM5PTimy3c
UThNwZ9yqVVhlckAEjPTkfnQBXWydZuUDp5pkyZ3HVt33MY4/XFTOk5vUkVI zGqlclyDglST
jHt61P5ieZ5e9d+N23POPXFNM8IkMZlj3jGV3DIzjHH4j86AKi2TrNygdPNM mTO46tu+5jHH
64qJtPmdGzHAGYTDIYnBfoen4fT8q0PPh87yfNj83+5uG716ULPC67kljYcc hgepwP14oAqL
ZOs3KB080yZM7jq277mMcfrih7actOyxw7pJkcEuQSq44Py/7P6n8bYnhZwg ljLEldoYZyOo
/CgygXCwlWyyFw3GOCAR+ooAjWOaO4kKeWUkcOWJORwBjHfp1z39ubFR+fD5 3k+bH5v9zcN3
r0o8+H/nrH9/Z94fe9Pr7UAVHtpy07LHDukmRwS5BKrjg/L/ALP6n8Wy2U5c lNnEokBMrAN8
2cbRwPrznGep4me+KOU+yXDEBiMBfmCnBIGc9x9ala7tl3briIbTtbLjg+h/ I/lQBRbT5nRs
xwBmEwyGJwX6Hp+H0/KpVsnWblA6eaZMmdx1bd9zGOP1xVsTws4QSxliSu0M M5HUfhR58Pne
T5sfm/3Nw3evSgBv2aPzN+6XOc4858flnH4VJ5abt2xc53Zx3xjP5cUiSxyM yqwLIcMvcfUU
+gCukc0TFI/LMRcvuYncMnJGO/U85HXvjmP7PNjycR+V5vmb9x3ff3424/Dr 7+1XKKAMttPm
dGzHAGYTDIYnBfoen4fT8qG0+Z0bMcAZhMMhicF+h6fh9PyrUooAp/Z5seTi PyvN8zfuO77+
/G3H4dff2pj205adljh3STI4JcglVxwfl/2f1P436KAKYju1mlKCILJKr7t5 yFG0EY29wPXv
R9nmx5OI/K83zN+47vv78bcfh19/arlFAGZKknmLbCMMFnEoco3d9x5xgYBP OT0xjmrTpOb1
JFSMxqpXJcg4JUk4x7etWaKAKD205adljh3STI4JcglVxwfl/wBn9T+N3y03 bti5zuzjvjGf
y4p1FAEHktJMJJWACH5FTIPXue/QcdPrwanoooAKKKKACiiigAooooAKKKKA CiiigAooooAK
KKKACiiigAooooAKKKKACiiigBr/AHTUf+f8/wCf/ryP901H/n/P+f8A64A1 /un/AD/n/P4x
1I/3T/n/AD/n8Y6Qytd9U/H+lFF31T8f6UUCJ4/un/eP86dTY/un/eP86dQM uUUUUxEHktHM
ZImBDn51fJPXse3U8dPpyai+zzfbPtGI/v42bjjbjG7p9/t9OPerlMeWONlV mAZzhV7n6CgC
p9lmafJSNV8zdlZWIxnP3CMZPr689aSW1nKeWiwsqzecrMTknfux046kZ5+n PFvz4f8AnrH9
/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oATy3+2eZsi2eXt3Y+fOemfT+tRLB IrCMxwvGJTIH
YkkEsTwuOvOM59/apJbuKJwm4M+5VKqwyuSACRnpyPzqXzE8zy9678btuece uKAKv2ebHk4j
8rzfM37ju+/vxtx+HX39qrtp8zo2Y4AzCYZDE4L9D0/D6flV9rmBZfKaeMSZ A2FxnJ6cUvnw
+d5Pmx+b/c3Dd69KAKSRvNd3IEQVDMjGRgQSFC8DjkZU9+/52HSc3qSKkZjV SuS5BwSpJxj2
9ake5gRmV541ZBlgXAIHv+Y/Ol8+H/nrH9/Z94fe9Pr7UAVFsnWblA6eaZMm dx1bd9zGOP1x
T/s832z7RiP7+Nm4424xu6ff7fTj3qx58PneT5sfm/3Nw3evSgTws4QSxliS u0MM5HUfhQAx
45DexSAJ5aoykljnJIPTH+z696haPffmMB/LJEsmUOCy4xz7/KeP7nuasmeE SGMyx7xjK7hk
Zxjj8R+dHnw+d5Pmx+b/AHNw3evSgCkkbzXdyBEFQzIxkYEEhQvA45GVPfv+ blsnWblA6eaZ
Mmdx1bd9zGOP1xVxJY5GZVYFkOGXuPqKfQBB5LSTCSVgAh+RUyD17nv0HHT6 8Gp6KKACiiig
AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKK
KKACiiigAooooAKKKKAGv901H/n/AD/n/wCvI/3TUf8An/P+f/rgDX+6f8/5 /wA/jHUj/dP+
f8/5/GOkMrXfVPx/pRRd9U/H+lFAieP7p/3j/OnVSaJmlYlpfmJ2ojkZ68+3 9T265WFf3yEN
Kpxu2PIWyOeR/h9D65NCuV2ubFFFFMkKg8lo5jJEwIc/Or5J69j26njp9OTU 9FAFP7PN9s+0
Yj+/jZuONuMbun3+30496b9lmafJSNV8zdlZWIxnP3CMZPr689a59Li9dWZZ 5yqjLHecD8aX
zr//AJ63P3d/3m+76/T3rTkJ5jeltZynlosLKs3nKzE5J37sdOOpGefpzxZ8 t/tnmbItnl7d
2Pnznpn0/rXMiXUWj8xXujHjO4FsfnTo3v5EL/aJ1TaSGZmw2ASQD68H8qOT zDmNz7LM0+Sk
ar5m7KysRjOfuEYyfX1560i2TrNygdPNMmTO46tu+5jHH64rA+03vl+Z59xs zjdvbGfTNL51
/wCV5vm3Pl/39zY/OjkDmNu5ilijVTGrxrcCQMqszcvuPAHGATznt71LPbTl pPK8sq8qS/MS
Dldvy9P9nr+GO9c+Li7MBlF3LgMFK+Y2eQSD+ho86/8AK83zbny/7+5sfnRy BzG8tk6zcoHT
zTJkzuOrbvuYxx+uKHtpy07LHDukmRwS5BKrjg/L/s/qfxwWmv0OGluVPPBZ h0GT+nNHnX/l
eb5tz5f9/c2Pzo5A5jolgkVhGY4XjEpkDsSSCWJ4XHXnGc+/tUa2TrNygdPN MmTO46tu+5jH
H64rBM1+E3mW5CgA5LNjB6GnM+opEJWkuRGRkNubGKOTzDmOk8lpJhJKwAQ/ IqZB69z36Djp
9eDU9cf9tuv+fmb/AL+Gnma/CbzLchQAclmxg9DR7MOY62iuS86/8rzfNufL /v7mx+dDTX6H
DS3Knngsw6DJ/TmjkDmOtorkvOv/ACvN8258v+/ubH507fqXl+Zuu9mM7stj Hrmjk8w5jq6K
5dTetAJftrAFGkwZWzgHH6npUXnX/wDz1ufu7/vN931+nvRyeYcx1tFcmJdR aPzFe6MeM7gW
x+dJ51/5Xm+bc+X/AH9zY/Ojk8w5jraK5PzdR2lt91gLuJy3T1+lIZr8JvMt yFAByWbGD0NH
J5hzHW0VyXnX/leb5tz5f9/c2Pzoaa/Q4aW5U88FmHQZP6c0cgcx1tFcl51/ 5Xm+bc+X/f3N
j86lU3rQCX7awBRpMGVs4Bx+p6UcnmHMdRRXH/bbr/n5m/7+GpPN1HaW33WA u4nLdPX6UezD
mOsorkvOv/K83zbny/7+5sfnUqjUWgMxnuFQDIJL/MMZ7fzNHJ5hzHUUVym/ UvL8zdd7MZ3Z
bGPXNPU3rQCX7awBRpMGVs4Bx+p6UuTzC51FFcl51/8A89bn7u/7zfd9fp70 ol1Fo/MV7ox4
zuBbH50+TzDmOsorkvOv/K83zbny/wC/ubH50vm6jtLb7rAXcTlunr9KOTzD mOsorkjNfhN5
luQoAOSzYweho86/8rzfNufL/v7mx+dHIHMdbRXJNNfocNLcqeeCzDoMn9Oa POv/ACvN8258
v+/ubH50cgcx1tFcvuu/LVhfMxZC4QO+cDOe2OMHv2qLzr/yvN8258v+/ubH 50cgcx1tFcuo
1FoDMZ7hUAyCS/zDGe38zQpvWgEv21gCjSYMrZwDj9T0pcnmFzqKK5JLm6aK SQ3UwCYA+c8k
9uvoCfwpHuL1FVmnnCsMqd5wfxp8gcx11FFFZlBRRRQA1/umo/8AP+f8/wD1 5H+6aj/z/n/P
/wBcAa/3T/n/AD/n8Y6kf7p/z/n/AD+NczxgkZPHH3TSGk3sRXfVPx/pRRdE MIyOhBI/SigB
u7MxdFLyR5AQd/mzn9enXp60Iha8Ezh03ZIVhyT3/D3+lOMcJ5aBJJGLYG0Z PJ70sAg3jFuk
UmNy8DkeoNLS5peXKalFFFUZBRRRQBx+/wAyIJIhyo+QpgfmO/Qc9frxUvmx /ZfI+f7md20Z
3Zzt6/d/rzXQyQWSMqvDAGc/KuwZb8KTy9P/ALlt9/Z0X73p9fatOdBZGB5y CHALsxj24Mag
5xj7+c49vTApYpog+9jMC8XlFVAwBt25689jjj/HdZNOWXymW1EhI+Qhc57c U2UWEb7PIgdy
yhlVVyuSACR6cj86OdBZHOZH2Ty8y79+7bn5MY649asG5DRDBKP5ezAhU/w4 +9nPP9a6D7PZ
eZ5fkwb8btu0Zx64pvl6f53k7Lbzf7mF3evSjnQWRzieV9keMtJ5jENgIMcA 8Zz71KbkNEME
o/l7MCFT/Dj72c8/1reMNr9oEJtI8spcNsXBwQD+PIo8vT/O8nZbeb/cwu71 6Uc6CyMVbuNX
Xa0xUGIgFQMhOo6/j9fzqM3IaIYJR/L2YEKn+HH3s55/rW8senyLuVLZgccg Kc5OB+uRR5en
+d5Oy283+5hd3r0o5kFkYKTRbYFZpsJE6kBB1bPI5/2v0HrUJMckEYYPvRCo AAweSc57demP
510gj09n2BLYsWI24XJI6j6imqNNkmaFVtjIGwU2rnP070c4WRy21vSrqTRb YFZpsJE6kBB1
bPI5/wBr9B610X2O1/59of8AvgVGI9PZ9gS2LFiNuFySOo+oocwtEw4rmIKA 4fmMoQI1JHy4
zuPJ+nHX83Ldxq67WmKgxEAqBkJ1HX8fr+dbXl6f53k7Lbzf7mF3evShY9Pk XcqWzA45AU5y
cD9cijmQWRgm5DRDBKP5ezAhU/w4+9nPP9ar+dL5ezZHjGP9UufzxnNdN5en +d5Oy283+5hd
3r0puNM8zy8Wm/djb8uc+mPWjnQWRzGZMYy2MYxntnOPz5qzDLEFj8wSArG0 Y2gHg7uev+10
/XtW07WS3Bh+w7j5ix5EQIJIz+g61MI9PZ9gS2LFiNuFySOo+oo5wsjA85BD gF2Yx7cGNQc4
x9/Oce3pgUpuQ0QwSj+XswIVP8OPvZzz/Wt7y9P87ydlt5v9zC7vXpSMmnLL 5TLaiQkfIQuc
9uKOdBZHPStHJbQory7o0wFKjbknJ5z7+nYVIk0W2BWabCROpAQdWzyOf9r9 B61usmnLL5TL
aiQkfIQuc9uKRhpi7twtBtbDZ28Hng+/Bo5wsjFiuYgoDh+YyhAjUkfLjO48 n6cdfzct3Grr
taYqDEQCoGQnUdfx+v51teXp/neTstvN/uYXd69KQpp27aVtdxbbjC5Len15 /WjmQWRhG5DR
DBKP5ezAhU/w4+9nPP8AWqmZMYy2MYxntnOPz5rppRYRvs8iB3LKGVVXK5IA JHpyPzpjtZLc
GH7DuPmLHkRAgkjP6DrRzoLI5ra3pVmVo5LaFFeXdGmApUbck5POff07Cum+ x2v/AD7Q/wDf
AqIpp27aVtdxbbjC5Len15/WnzhaJhG5DRDBKP5ezAhU/wAOPvZzz/Woz5LW iR7pd6ln/wBW
MEkDjr7frXReXp/neTstvN/uYXd69KheTThcCAQwO5bDABODnHOTyevAyaXO gsjn/Ol8vZsj
xjH+qXP54zmmZkxjLYxjGe2c4/PmunxpnmeXi037sbflzn0x61G7WS3Bh+w7 j5ix5EQIJIz+
g60+dBZGLDLEFj8wSArG0Y2gHg7uev8AtdP17UvnIIcAuzGPbgxqDnGPv5zj 29MCt8R6ez7A
lsWLEbcLkkdR9RR5en+d5Oy283+5hd3r0pc6CyME3IaIYJR/L2YEKn+HH3s5 5/rUcrRyW0KK
8u6NMBSo25Jyec+/p2FdCyacsvlMtqJCR8hC5z24oZNOWXymW1EhI+Qhc57c Uc6CyMJJotsC
s02EidSAg6tnkc/7X6D1p0VzEFAcPzGUIEakj5cZ3Hk/Tjr+e0w0xd24Wg2t hs7eDzwffg07
y9P87ydlt5v9zC7vXpRzoLIxVu41ddrTFQYiAVAyE6jr+P1/OozchohglH8v ZgQqf4cfeznn
+tbpTTt20ra7i23GFyW9Prz+tNlFhG+zyIHcsoZVVcrkgAkenI/OjmQWRh+e ggiiAYjyyrNs
AYZJPBznvjHGR9aU3IaIYJR/L2YEKn+HH3s55/rWz/onmujWIVVkCM5RMZOM d885HbvUvl6f
53k7Lbzf7mF3evSjnQWRzp8lrRI90u9Sz/6sYJIHHX2/WoMyYxlsYxjPbOcf nzXRvJpwuBAI
YHcthgAnBzjnJ5PXgZNDtZLcGH7DuPmLHkRAgkjP6DrRzhaJz8pzHFHHyqjc T6scZ/oPw96U
Psi2RISXHzF8H8h269ev0zXSvBarNHGLWFi+SfkHAHfp6kD8aVILKRnVYYCy n5l2DI+oo5ws
i1RRRWYBRRRQA1/umo/8/wCf8/8A15H+6aj/AM/5/wA//XAGv90/5/z/AJ/G qbdSSd7DJz2/
wq0/3T/n/P8An8apuFBI2McHHb/GguPN0I7lQqxqOgBH8qKLlgyxsOhBP8qK RL3HMrBhMil2
TICj13Eg02OJ5Lo3Dq6Drhxzk/0qxH90/wC8f506lYvndrFyiiiqMwoopjyx xsqswDOcKvc/
QUAVztimaSOVcFgJFcknqeh7Ac8dOD05NREEXhuC0XEm0puONuMbun3+CM9M AjPGatMypNDG
qAkg9ONqjr+u0Y9/agS24xiSIYbyxgjg/wB36+1BXulMofPJYxIqy5JWViOu fuEYzwcnscnq
KSZH2GNTAVjn80M7HOd+7HTjuM89D74uGe2SVYjLCsg+UJuAIz2x+VNkuYIX VBtZwVTahGUB
IAyM9OR+lAe6IXUXhkPk7Amwtj5856Z/u8H8QfSqwhVJm3bXQTbyTcOMZbd9 zGOOfyPTmr4M
QkEYKBwuQoxkL9PSmGe2SVYjLCsg+UJuAIz2x+VAe6QySP8AbVkHk+XGChJc g8kEnGO209/X
pg1CIVSZt210E28k3DjGW3fcxjjn8j05q6JbcTCESRCUDAQEbgOvSkae2iYq 0sKNGvILAFRx
+Q6fpQHumc9sSj7hbqx84E7icF+h+72wQfYH0IqUQqkzbtroJt5JuHGMtu+5 jHHP5HpzV0S2
4xiSIYbyxgjg/wB36+1AltxMIRJEJQMBARuA69KA90pSo+64YCDc06NkuQcL jg/L/sn2GT6V
OHMVxKVeLY8gZmYnK8AEAY5+6ec8c+lTLLb71RJItwyiqCM8dQP04o823WTy xJEHQAbcjKg4
xx+X6UB7o4zxDOXHBwf8/gfyPpVCVH3XDAQbmnRslyDhccH5f9k+wyfSrolt xMIRJEJQMBAR
uA69KWN4WYrGV3R/KVxgr+HYcfjQHumfNC29irx/LMHyZWAPzZxtHA6HnnoS ec4Y9sSj7hbq
x84E7icF+h+72wQfYH0IrWCqMYUDAwMDoKAqjGFAwMDA6CgPdM4QqkzbtroJ t5JuHGMtu+5j
HHP5HpzVkpbiQuZZMhskec+M/TOMcH24PpVgKoxhQMDAwOgoCqMYUDAwMDoK A90jL24YsdmQ
2Scd8Yz+QIz7H0qjkPdXIwiIZkYyNkMduOAMcjKt345P10gqjGFAwMDA6CgK oxhQMDAwOgoD
3TMmhbexV4/lmD5MrAH5s42jgdDzz0JPOcPKHzyWMSKsuSVlYjrn7hGM8HJ7 HJ6itAKoxhQM
DAwOgoCqMYUDAwMDoKA90zyh88ljEirLklZWI65+4RjPByexyeopZYs3Lv56 iMyKzDJ6jb27
/wCr6+7enN8KoxhQMDAwOgoCqMYUDAwMDoKA90okEAwlovKE3mF9x3ff3424 9iM57E9sU6Fj
Fd3DsIQsknLBzuAC4HG3noe/HPoauBVGMKBgYGB0FAVRjCgYGBgdBQHumdMj 7DGpgKxz+aGd
jnO/djpx3Geeh98XS9uGLHZkNknHfGM/kCM+x9KkCqMYUDAwMDoKAqjGFAwM DA6CgPdGmeIZ
y44OD/n8D+R9KqwsYru4dhCFkk5YOdwAXA4289D3459DVwKoxhQMDAwOgoCq MYUDAwMDoKA9
0zhCqTNu2ugm3km4cYy277mMcc/kenNSiSRLySUiHYdqH94cgAtzjb7n8jzV wKoxhQMDAwOg
oCqMYUDAwMDoKA90rlLcSFzLJkNkjznxn6Zxjg+3B9KkL24YsdmQ2Scd8Yz+ QIz7H0qQKoxh
QMDAwOgoCqMYUDAwMDoKA90zch7q5GERDMjGRshjtxwBjkZVu/HJ+qTQtvYq 8fyzB8mVgD82
cbRwOh556EnnONMKoxhQMDAwOgoCqMYUDAwMDoKA90zyh88ljEirLklZWI65 +4RjPByexyeo
oKHzyWMSKsuSVlYjrn7hGM8HJ7HJ6itAKoxhQMDAwOgoCqMYUDAwMDoKA90o SxZuXfz1EZkV
mGT1G3t3/wBX1929OVIIBhLReUJvML7ju+/vxtx7EZz2J7Yq8FUYwoGBgYHQ UBVGMKBgYGB0
FAe6U4WMV3cOwhCyScsHO4ALgcbeeh78c+hqKZH2GNTAVjn80M7HOd+7HTju M89D740QqjGF
AwMDA6CgKoxhQMDAwOgoD3TPMX+kTzM6AiUMq+YxVsDGGGMfw5zzgj/ZpBCq TNu2ugm3km4c
Yy277mMcc/kenNaIVRjCgYGBgdBQFUYwoGBgYHQUB7pTEkiXkkpEOw7UP7w5 ABbnG33P5Hmr
Be3DFjsyGyTjvjGfyBGfY+lSBVGMKBgYGB0FAVRjCgYGBgdBQHuleJ0WSaWV gGLbcZ6KM4/9
mPtkjtSHa83mTSqBG2FVCQRz3PccdOnBznGRZCqMYUDAwMDoKAqjGFAwMDA6 CgPdHUUUUEhR
RRQA1/umo/8AP+f8/wD15H+6aj/z/n/P/wBcAa/3T/n/AD/n8a5gjJJweefv GrD/AHT/AJ/z
/n8Y6Q02titdAKIwOgBA/Sii76p+P9KKAJ4/un/eP86dTY/un/eP86dQBcoo opiCoPJaOYyR
MCHPzq+SevY9up46fTk1I8scbKrMAznCr3P0FI8u2aOMDJfJPPQDv+ZA/GgB sKN5kssgwzna
B6KM4/qfxx2qH7PN9s+0Yj+/jZuONuMbun3+30496sefD/z1j+/s+8Pven19 qRrmBZfKaeMS
ZA2FxnJ6cUAVvsszT5KRqvmbsrKxGM5+4RjJ9fXnrSS2s5Ty0WFlWbzlZick 792OnHUjPP05
4sS3cUThNwZ9yqVVhlckAEjPTkfnUvmJ5nl71343bc849cUAR+W/2zzNkWzy 9u7Hz5z0z6f1
qv8AZZmnyUjVfM3ZWViMZz9wjGT6+vPWrRnhEhjMse8Yyu4ZGcY4/EfnR58P neT5sfm/3Nw3
evSgCotk6zcoHTzTJkzuOrbvuYxx+uKZcxSxRqpjV41uBIGVWZuX3HgDjAJ5 z296vLPC67kl
jYcchgepwP14oE8LOEEsZYkrtDDOR1H4UAVp7actJ5XllXlSX5iQcrt+Xp/s 9fwx3pq2TrNy
gdPNMmTO46tu+5jHH64q2ZQLhYSrZZC4bjHBAI/UUefD53k+bH5v9zcN3r0o AqPbTlp2WOHd
JMjglyCVXHB+X/Z/U/jIsEisIzHC8YlMgdiSQSxPC4684zn39qn8+H/nrH9/ Z94fe9Pr7VA9
8Ucp9kuGIDEYC/MFOCQM57j60ARrZOs3KB080yZM7jq277mMcfrirHktJMJJ WACH5FTIPXue
/QcdPrwaVru2XduuIhtO1suOD6H8j+VOE8LOEEsZYkrtDDOR1H4UASUVH58P neT5sfm/3Nw3
evSlSWORmVWBZDhl7j6igB9FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUANf7pqP/P8An/P/ ANeR/umo/wDP
+f8AP/1wBr/dP+f8/wCfxjqR/un/AD/n/P4x0hla76p+P9KKLvqn4/0ooETx /dP+8f506mx/
dP8AvH+dOoGXKKKY8scbKrMAznCr3P0FMRH5LRzGSJgQ5+dXyT17Ht1PHT6c mlhRvMllkGGc
7QPRRnH9T+OO1OeXbNHGBkvknnoB3/MgfjR58P8Az1j+/s+8Pven19qAK/2e b7Z9oxH9/Gzc
cbcY3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561Za5gWXymnjEmQNhc ZyenFNlu4onC
bgz7lUqrDK5IAJGenI/OgCvLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/bP M2RbPL27sfPn
PTPp/WpPMTzPL3rvxu255x64pvnw+d5Pmx+b/c3Dd69KAIFgkVhGY4XjEpkD sSSCWJ4XHXnG
c+/tSfZ5seTiPyvN8zfuO77+/G3H4dff2qwZQLhYSrZZC4bjHBAI/UUefD53 k+bH5v8Ac3Dd
69KAM9tPmdGzHAGYTDIYnBfoen4fT8qekbzXdyBEFQzIxkYEEhQvA45GVPfv +d1Z4XXcksbD
jkMD1OB+vFHnw+d5Pmx+b/c3Dd69KAInSc3qSKkZjVSuS5BwSpJxj29ahWyd ZuUDp5pkyZ3H
Vt33MY4/XFWxPCzhBLGWJK7QwzkdR+FNS7t3maFZozIp2lN3OfpQBD9nm+2f aMR/fxs3HG3G
N3T7/b6ce9SvHIb2KQBPLVGUksc5JB6Y/wBn171IkscjMqsCyHDL3H1FPoAp NHvvzGA/lkiW
TKHBZcY59/lPH9z3NRpG813cgRBUMyMZGBBIULwOORlT37/no0UAUFsnWblA 6eaZMmdx1bd9
zGOP1xVjyWkmEkrABD8ipkHr3PfoOOn14NT0UAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UANf7pqP/P8A
n/P/ANeR/umo/wDP+f8AP/1wBr/dP+f8/wCfxjqR/un/AD/n/P4x0hla76p+ P9KKLvqn4/0o
oETx/dP+8f506mx/dP8AvH+dOoGXKg8lo5jJEwIc/Or5J69j26njp9OTU9Me WONlVmAZzhV7
n6CmIZCjeZLLIMM52geijOP6n8cdqh+zzfbPtGI/v42bjjbjG7p9/t9OPerH nw/89Y/v7PvD
73p9faka5gWXymnjEmQNhcZyenFAFb7LM0+Skar5m7KysRjOfuEYyfX1560k trOU8tFhZVm8
5WYnJO/djpx1Izz9OeLEt3FE4TcGfcqlVYZXJABIz05H51L5ieZ5e9d+N23P OPXFAEflv9s8
zZFs8vbux8+c9M+n9arLZOs3KB080yZM7jq277mMcfrirfnw+d5Pmx+b/c3D d69KDKBcLCVb
LIXDcY4IBH6igCJ0nN6kipGY1UrkuQcEqScY9vWoVsnWblA6eaZMmdx1bd9z GOP1xVvz4fO8
nzY/N/ubhu9elCzwuu5JY2HHIYHqcD9eKAM9tPmdGzHAGYTDIYnBfoen4fT8 qlWydZuUDp5p
kyZ3HVt33MY4/XFW/Ph87yfNj83+5uG716UCeFnCCWMsSV2hhnI6j8KAKj20 5adljh3STI4J
cglVxwfl/wBn9T+M6xzR3EhTyykjhyxJyOAMY79Oue/ty5Lu3eZoVmjMinaU 3c5+lTUAQeS0
kwklYAIfkVMg9e579Bx0+vBqeoxPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3 Dd69KAJKKjWe
F13JLGw45DA9TgfrxR58PneT5sfm/wBzcN3r0oAkoqH7XbeZ5f2iLfnbt3jO fTFRvfItwYfK
lJEix5C8ZIz+g60AWqKjE8LOEEsZYkrtDDOR1H4UefD53k+bH5v9zcN3r0oA koqJrmBZfKae
MSZA2FxnJ6cUNcwLL5TTxiTIGwuM5PTigCWioWu7Zd264iG07Wy44PofyP5U 7z4fO8nzY/N/
ubhu9elAElFRfaYAwXz49xbYBvGS3p9eRTZbuKJwm4M+5VKqwyuSACRnpyPz oAnoqsLweayN
DIqo4jLnbjJxjvnnI7d6l8+HzvJ82Pzf7m4bvXpQBJRVV9Qt1uFgV1dycEB1 +U5x3P6DJoe+
Rbgw+VKSJFjyF4yRn9B1oAtUUVCl3bvM0KzRmRTtKbuc/SgCaioWu7Zd264i G07Wy44PofyP
5U4Tws4QSxliSu0MM5HUfhQBJRUfnw+d5Pmx+b/c3Dd69Kb9rtvM8v7RFvzt 27xnPpigCaiq
r3yLcGHypSRIseQvGSM/oOtTefD/AM9Y/v7PvD73p9fagCSiomuYFl8pp4xJ kDYXGcnpxTZb
uKJwm4M+5VKqwyuSACRnpyPzoAnopvmJ5nl71343bc849cUxrmBZfKaeMSZA 2FxnJ6cUAS0V
Cl3bvM0KzRmRTtKbuc/Sl+0wBgvnx7i2wDeMlvT68igCWioxPGZzCGUuBkgM Mjp1HXvQJ4Wc
IJYyxJXaGGcjqPwoAkoqJ7mBGZXnjVkGWBcAge/5j86ie+Rbgw+VKSJFjyF4 yRn9B1oAtUVG
8u2aOMDJfJPPQDv+ZA/GlSWORmVWBZDhl7j6igB9FFFABRRRQA1/umo/8/5/ z/8AXkf7pqP/
AD/n/P8A9cAa/wB0/wCf8/5/GOpH+6f8/wCf8/jHSGVrvqn4/wBKKLvqn4/0 ooETx/dP+8f5
06mx/dP+8f506gZcqDyWjmMkTAhz86vknr2PbqeOn05NT0x5Y42VWYBnOFXu foKYit9nm+2f
aMR/fxs3HG3GN3T7/b6ce9N+yzNPkpGq+ZuysrEYzn7hGMn19eetWvPh/wCe sf39n3h970+v
tSNcwLL5TTxiTIGwuM5PTigCrLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tniz5b/ AGzzNkWzy9u7
Hz5z0z6f1pJbuKJwm4M+5VKqwyuSACRnpyPzqXzE8zy9678btueceuKAKS2T rNygdPNMmTO4
6tu+5jHH64qZ0nN6kipGY1UrkuQcEqScY9vWpfPh87yfNj83+5uG716UGUC4 WEq2WQuG4xwQ
CP1FAFRbJ1m5QOnmmTJncdW3fcxjj9cVE2nzOjZjgDMJhkMTgv0PT8Pp+VaH nw+d5Pmx+b/c
3Dd69KFnhddySxsOOQwPU4H68UAVFsnWblA6eaZMmdx1bd9zGOP1xQ9tOWnZ Y4d0kyOCXIJV
ccH5f9n9T+Nvz4fO8nzY/N/ubhu9elAnhZwgljLEldoYZyOo/CgCNY5o7iQp 5ZSRw5Yk5HAG
Md+nXPf25sVCl3bvM0KzRmRTtKbuc/SpqAKD205adljh3STI4JcglVxwfl/2 f1P4tlspy5Kb
OJRICZWAb5s42jgfXnOM9TxdE8LOEEsZYkrtDDOR1H4UefD53k+bH5v9zcN3 r0oAz20+Z0bM
cAZhMMhicF+h6fh9PyqVbJ1m5QOnmmTJncdW3fcxjj9cVbWeF13JLGw45DA9 TgfrxR58PneT
5sfm/wBzcN3r0oAb9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd8Yz+XFR/a7b zPL+0Rb87du8
Zz6YqN75FuDD5UpIkWPIXjJGf0HWgCBI3mu7kCIKhmRjIwIJCheBxyMqe/f8 yWynLkps4lEg
JlYBvmzjaOB9ec4z1PF3z4f+esf39n3h970+vtSNcwLL5TTxiTIGwuM5PTig Ct9lmafJSNV8
zdlZWIxnP3CMZPr689aPsszT5KRqvmbsrKxGM5+4RjJ9fXnrVrz4fO8nzY/N /ubhu9elJ9pg
DBfPj3FtgG8ZLen15FAFeSzke5LiQCNnVyOeo29v+Af+PH05X7PNjycR+V5v mb9x3ff3424/
Dr7+1WBPCzhBLGWJK7QwzkdR+FHnw+d5Pmx+b/c3Dd69KAIYIpo7udzHFtlf O4Od2AoAGMe3
r3qKW1nKeWiwsqzecrMTknfux046kZ5+nPFtZ4XXcksbDjkMD1OB+vFHnw+d 5Pmx+b/c3Dd6
9KAKv2SU3E0x25MgdF8xirYAGGGMDpnPODj05RbJ1m5QOnmmTJncdW3fcxjj 9cVMLweayNDI
qo4jLnbjJxjvnnI7d6l8+HzvJ82Pzf7m4bvXpQBCqXIvHl8uLYwVP9YcgAnn G336VY8tN27Y
uc7s474xn8uKrvqFutwsCuruTggOvynOO5/QZND3yLcGHypSRIseQvGSM/oO tAFqq6xzR3Eh
TyykjhyxJyOAMY79Oue/tzYqFLu3eZoVmjMinaU3c5+lAEDR778xgP5ZIlky hwWXGOff5Tx/
c9zUaRvNd3IEQVDMjGRgQSFC8DjkZU9+/wCdtru2XduuIhtO1suOD6H8j+VO E8LOEEsZYkrt
DDOR1H4UAVFsnWblA6eaZMmdx1bd9zGOP1xVn7NH5m/dLnOcec+Pyzj8Kd58 PneT5sfm/wBz
cN3r0pv2u28zy/tEW/O3bvGc+mKAJPLTdu2LnO7OO+MZ/Liqv2eb7Z9oxH9/ GzccbcY3dPv9
vpx70575FuDD5UpIkWPIXjJGf0HWpvPh/wCesf39n3h970+vtQBV+yzNPkpG q+ZuysrEYzn7
hGMn19eetJLazlPLRYWVZvOVmJyTv3Y6cdSM8/Tni01zAsvlNPGJMgbC4zk9 OKbLdxROE3Bn
3KpVWGVyQASM9OR+dAC+W/2zzNkWzy9u7Hz5z0z6f1qv9lmafJSNV8zdlZWI xnP3CMZPr689
aueYnmeXvXfjdtzzj1xTGuYFl8pp4xJkDYXGcnpxQAxY5o7iQp5ZSRw5Yk5H AGMd+nXPf25b
BFNHdzuY4tsr53BzuwFAAxj29e9SJd27zNCs0ZkU7Sm7nP0pftMAYL58e4ts A3jJb0+vIoAj
dJzepIqRmNVK5LkHBKknGPb1qF7actOyxw7pJkcEuQSq44Py/wCz+p/G2J4z OYQylwMkBhkd
Oo696BPCzhBLGWJK7QwzkdR+FAFCVJPMW2EYYLOJQ5Ru77jzjAwCecnpjHNa Plpu3bFzndnH
fGM/lxTHuYEZleeNWQZYFwCB7/mPzqJ75FuDD5UpIkWPIXjJGf0HWgCSFG8y WWQYZztA9FGc
f1P447UnktJMJJWACH5FTIPXue/QcdPrwae8u2aOMDJfJPPQDv8AmQPxpUlj kZlVgWQ4Ze4+
ooAfRRRQAUUUUANf7pqP/P8An/P/ANeR/umo/wDP+f8AP/1wBr/dP+f8/wCf xjqR/un/AD/n
/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/dP8AvH+dOoGXKg8lo5jJ EwIc/Or5J69j
26njp9OTUjyxxsqswDOcKvc/QUjy7Zo4wMl8k89AO/5kD8aYiv8AZ5vtn2jE f38bNxxtxjd0
+/2+nHvTfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVrz4f8AnrH9/Z94fe9Pr7Uj XMCy+U08YkyB
sLjOT04oAqy2s5Ty0WFlWbzlZick792OnHUjPP054s+W/wBs8zZFs8vbux8+ c9M+n9aSW7ii
cJuDPuVSqsMrkgAkZ6cj86l8xPM8veu/G7bnnHrigCktk6zcoHTzTJkzuOrb vuYxx+uKmdJz
epIqRmNVK5LkHBKknGPb1qRrmBZfKaeMSZA2FxnJ6cUpnhEhjMse8Yyu4ZGc Y4/EfnQBUWyd
ZuUDp5pkyZ3HVt33MY4/XFRNp8zo2Y4AzCYZDE4L9D0/D6flV6O5jeVoydjq 5QKxGWwAcjnn
ginefD53k+bH5v8Ac3Dd69KAKi2TrNygdPNMmTO46tu+5jHH64oe2nLTsscO 6SZHBLkEquOD
8v8As/qfxtrPC67kljYcchgepwP14o8+HzvJ82Pzf7m4bvXpQBGsc0dxIU8s pI4csScjgDGO
/Trnv7c2KYkscjMqsCyHDL3H1FPoAoPbTlp2WOHdJMjglyCVXHB+X/Z/U/i2 WynLkps4lEgJ
lYBvmzjaOB9ec4z1PGjRQBltp8zo2Y4AzCYZDE4L9D0/D6flUq2TrNygdPNM mTO46tu+5jHH
64q/RQBD9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd8Yz+XFOooApT205aTyv LKvKkvzEg5Xb
8vT/AGev4Y70n2WZp8lI1XzN2VlYjGc/cIxk+vrz1q9RQBQWydZuUDp5pkyZ 3HVt33MY4/XF
SwRTR3c7mOLbK+dwc7sBQAMY9vXvVqigCg9tOWnZY4d0kyOCXIJVccH5f9n9 T+LZbKcuSmzi
USAmVgG+bONo4H15zjPU8aNFAGW2nzOjZjgDMJhkMTgv0PT8Pp+VSrZOs3KB 080yZM7jq277
mMcfrir9FAFH7JKbiaY7cmQOi+YxVsADDDGB0znnBx6cotk6zcoHTzTJkzuO rbvuYxx+uKv0
UAVVS5F48vlxbGCp/rDkAE842+/SrHlpu3bFzndnHfGM/lxTqKACq6xzR3Eh TyykjhyxJyOA
MY79Oue/tzYooApNHvvzGA/lkiWTKHBZcY59/lPH9z3NRpG813cgRBUMyMZG BBIULwOORlT3
7/no0UAUFsnWblA6eaZMmdx1bd9zGOP1xVn7NH5m/dLnOcec+Pyzj8KmooAb 5abt2xc53Zx3
xjP5cVV+zzfbPtGI/v42bjjbjG7p9/t9OPerlFAFH7LM0+Skar5m7KysRjOf uEYyfX1560kt
rOU8tFhZVm85WYnJO/djpx1Izz9OeL9FAEPlv9s8zZFs8vbux8+c9M+n9ar/ AGWZp8lI1XzN
2VlYjGc/cIxk+vrz1q9RQBXWOaO4kKeWUkcOWJORwBjHfp1z39uWwRTR3c7m OLbK+dwc7sBQ
AMY9vXvVqigCs6Tm9SRUjMaqVyXIOCVJOMe3rUL205adljh3STI4JcglVxwf l/2f1P436KAM
yVJPMW2EYYLOJQ5Ru77jzjAwCecnpjHNaPlpu3bFzndnHfGM/lxTqKAIYUbz JZZBhnO0D0UZ
x/U/jjtSeS0kwklYAIfkVMg9e579Bx0+vBqeigAooooAKKKKAGv901H/AJ/z /n/68j/dNR/5
/wA/5/8ArgDX+6f8/wCf8/jHUj/dP+f8/wCfxjpDK131T8f6UUXfVPx/pRQI nj+6f94/zp1N
j+6f94/zp1AyXyWjmMkTAhz86vknr2PbqeOn05NLCjeZLLIMM52geijOP6n8 cdqmopiKf2eb
7Z9oxH9/GzccbcY3dPv9vpx7037LM0+Skar5m7KysRjOfuEYyfX1561eooAo S2s5Ty0WFlWb
zlZick792OnHUjPP054s+W/2zzNkWzy9u7Hz5z0z6f1qaigCj9lmafJSNV8z dlZWIxnP3CMZ
Pr689aesEisIzHC8YlMgdiSQSxPC4684zn39qt0UAUHtpy07LHDukmRwS5BK rjg/L/s/qfxF
snWblA6eaZMmdx1bd9zGOP1xV+igDLbT5nRsxwBmEwyGJwX6Hp+H0/Kny2U5 clNnEokBMrAN
82cbRwPrznGep40aKAIPJaSYSSsAEPyKmQevc9+g46fXg1PRRQAUUUUAFFFF ABRRRQAUUUUA
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRR
RQAUUUUAFFFFABRRRQA1/umo/wDP+f8AP/15H+6aj/z/AJ/z/wDXAGv90/5/ z/n8Y6kf7p/z
/n/P4x0hla76p+P9KKLvqn4/0ooETx/dP+8f506mx/dP+8f506gZcooopiCi iigAooooAKKK
KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigA
ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAGv 93HqRVUzIDhi
oPu3/wBerUhAXJOACMk/WqDGBnVmKHb70AE0hM8ABwrE5wevBqWq8zh7qAhg xy2cH2NWKQyt
d9U/H+lFF31T8f6UUCJ4/un/AHj/ADp1Nj+6f94/zp1Ax7y7BkngAEkk1Bdz uLN3QlSVyCCc
jNLMYnyrOvQd+nFQ3bp9jdVdSQgHX0oEaGT6n/P+f89zJ9T/AJ/z/nun+f8A P+f/AK5/n/P+
f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuALk+p/wA/5/z3 Mn1P+f8AP+e6
f5/z/n/65/n/AD/n/wCuALk+p/z/AJ/z3Mn1P+f8/wCe6f5/z/n/AOuf5/z/ AJ/+uALk+p/z
/n/PcyfU/wCf8/57p/n/AD/n/wCuf5/z/n/64AuT6n/P+f8APcyfU/5/z/nu n+f8/wCf/rn+
f8/5/wDrgC5Pqf8AP+f89zJ9T/n/AD/nun+f8/5/+uf5/wA/5/8ArgC5Pqf8 /wCf89zJ9T/n
/P8Anun+f8/5/wDrn+f8/wCf/rgC5Pqf8/5/z3Mn1P8An/P+e6f5/wA/5/8A rn+f8/5/+uAL
k+p/z/n/AD3Mn1P+f8/57p/n/P8An/65/n/P+f8A64AuT6n/AD/n/PcyfU/5 /wA/57p/n/P+
f/rn+f8AP+f/AK4AuT6n/P8An/PcyfU/5/z/AJ7p/n/P+f8A65/n/P8An/64 AuT6n/P+f89z
J9T/AJ/z/nun+f8AP+f/AK5/n/P+f/rgC5Pqf8/5/wA9zJ9T/n/P+e6f5/z/ AJ/+uf5/z/n/
AOuALk+p/wA/5/z3Mn1P+f8AP+e6f5/z/n/65/n/AD/n/wCuALk+p/z/AJ/z 3Mn1P+f8/wCe
6f5/z/n/AOuf5/z/AJ/+uALk+p/z/n/PcyfU/wCf8/57p/n/AD/n/wCuf5/z /n/64AuT6n/P
+f8APcyfU/5/z/nun+f8/wCf/rn+f8/5/wDrgC5Pqf8AP+f89zJ9T/n/AD/n un+f8/5/+uf5
/wA/5/8ArgC5Pqf8/wCf89zJ9T/n/P8Anun+f8/5/wDrn+f8/wCf/rgC5Pqf 8/5/z3Mn1P8A
n/P+e6f5/wA/5/8Arn+f8/5/+uALk+p/z/n/AD3Mn1P+f8/57p/n/P8An/65 /n/P+f8A64Au
T6n/AD/n/PcyfU/5/wA/57p/n/P+f/rn+f8AP+f/AK4AuT6n/P8An/PcyfU/ 5/z/AJ7p/n/P
+f8A65/n/P8An/64AuT6n/P+f89zJ9T/AJ/z/nun+f8AP+f/AK5/n/P+f/rg C5Pqf8/5/wA9
zJ9T/n/P+e6f5/z/AJ/+uf5/z/n/AOuAGTxyeo7/AOf8/rE0+1lU8FunJ/xq QkDknABySf8A
P+f51SYXdWdlIXoM8E0AFy5eWGNuUYncp5B4pfs8H/PGP/vkVHK6tdW+1geW 6fQ1YoGMWGJG
DLEikdwoFPoooArXfVPx/pRRd9U/H+lFAidFXYCQckn+Ijufel2r/dP/AH03 +NRThTaEO4Rc
nLN0+8eD7dqqxyKgCLJHBDlv3sQCq5+XGM5Hc/8AfNAy39ktv+fdP1/xo+yW 3/Pun6/41VW7
cIBKwSZnjwh4ODtzgH3LUJNJ5Fu01x5YkTcZMKMHAwOeO5P4fhQIv4Hof++2 /wAaaVzJjLAb
Qcbz6n3qpDNM14VZ0xuYGPPIAzg4xkduScc+4q1MAQ4Zyg8vlgcY5bnNAC7f 9p/++zRt/wBp
/wDvs1neZ5SEW5twpYbpowEUcHgnkZ4H/fVPE055M3QIPlAIO5yuckc8YPp+ FAy9t/2n/wC+
zRt/2n/77NZ893IkWRIFaPf99gokwxAHTk8c4x1/JZ2ma3k+dn81pYwmBxgN jGBnPyigC/t/
2n/77NG3/af/AL7NUjNiX5bgGMqu6b5eB8/fGOoA/wDr1IkxN2qed5ikDAQq eMZywxkfUcdP
xALO3/af/vs0bf8Aaf8A77NNkIKyKzbF2csDgjrzmqkTrErvF5BRCGd4UADD nI78jr+lAF3b
/tP/AN9mjb/tP/32apPJcKJXaQq0cQk2ALjJLHB47YA4oEhihlAlIcytwSoE eWJBJwcAj1z1
FAF3b/tP/wB9mjb/ALT/APfZqlHcu8SMZRzkOyjIUBiN2ffH074wDV+gBu3/ AGn/AO+zRt/2
n/77NOooAbt/2n/77NG3/af/AL7NOooAbt/2n/77NG3/AGn/AO+zTqKAG7f9 p/8Avs0bf9p/
++zTqKAG7f8Aaf8A77NG3/af/vs06igBu3/af/vs0bf9p/8Avs06igBu3/af /vs0bf8Aaf8A
77NOooAbt/2n/wC+zRt/2n/77NOooAbt/wBp/wDvs0bf9p/++zTqKAG7f9p/ ++zRt/2n/wC+
zTqKAG7f9p/++zRt/wBp/wDvs06igBu3/af/AL7NG3/af/vs06igBu3/AGn/ AO+zRt/2n/77
NOooAbt/2n/77NG3/af/AL7NOooAbt/2n/77NG3/AGn/AO+zTqKAG7f9p/8A vs0bf9p/++zT
qKAG7f8Aaf8A77NG3/af/vs06igBu3/af/vs0bf9p/8Avs06igBu3/af/vs0 bf8Aaf8A77NO
ooAY8SupV9zA9QWJqP7Hb/8APJanooAhW1gRgyxhSO44qTyx6t/30adRQA3y x6t/30aPLHq3
/fRp1FAFW6UKUxnv1JNFLd9U/H+lFAiXzVQbWV8gnoAR1J9aPtEf92T/AL5H +NV7i+S2cLIW
ywJG1M8ZI9R6VF/a0PrJ/wB+x/8AFVXK2F0XftEf92T/AL5H+NH2iP8Auyf9 8j/Gqf8Aa0Pr
J/37H/xVH9qw+sn/AH7H/wAVRyvsF0XPtEf92T/vkf400zrvJ2PjAA4+v+NV f7Vh9ZP+/Y/+
Ko/tSH1k/wC/Y/8AiqOV9gui19oX+4/5UfaF/uP+VVv7Uh9X/wC/Y/8AiqP7 Uh9X/wC/Y/8A
iqOVhdFn7Qv9x/yo+0L/AHH/ACqt/acXq/8A37H/AMVS/wBpxer/APfsf/FU crC6LH2hf7j/
AJUfaF/uP+VV/wC0ovV/+/Y/+Ko/tKL1f/v2P/iqOVhdE4nG8tsfBAHT60PK jjDRuRkHp3By
Kg/tGL1f/v2P/iqX+0YvV/8Av2P/AIqjlYXRP9oX+4/5UfaF/uP+VQf2jF6v /wB+x/8AFUf2
hH6v/wB+x/8AFUcrC6J/tC/3H/Kj7Qv9x/yqH+0I/V/+/Y/+Ko+3x+rf9+// ALKjlYXRN9oX
+4/5UfaF/uP+VQ/b4/Vv+/f/ANlR9uj/ALzf9+//ALKjlYXRN9oX+4/5UfaF /uP+VRfbo/7z
f9+//sqPtsf95v8Av3/9lRysLol+0L/cf8qPtC/3H/Kovtqf3m/79/8A2VL9 tT+83/fv/wCy
o5WF0SfaF/uP+VH2hf7j/lUf2xP7zf8Afv8A+yo+2J/eb/v3/wDZUcrC6JPt C/3H/Kj7Qv8A
cf8AKo/taf3m/wC/f/2VL9rT+83/AH7/APsqOVhdD/tC/wBx/wAqPtC/3H/K mfa0/vN/37/+
yo+1L/eP/fv/AOyo5WF0P+0L/cf8qPtC/wBx/wAqb9qX+8f+/f8A9lR9pX+8 f+/f/wBlRysL
od9oX+4/5UfaF/uP+VN+0r/eP/fv/wCyo+0L/eP/AH7/APsqOVhdDvtC/wBx /wAqPtC/3H/K
k+0L/eP/AHx/9lR56/3j/wB8f/Xo5WF0L9oX+4/5UfaF/uP+VJ54/vH/AL4/ +vS+eP7x/wC+
P/r0crC6D7Qv9x/yo+0L/cf8qPOH98/98f8A16POH98/98f/AF6OVhdB9oX+ 4/5UfaF/uP8A
lS+aP75/74/+vR5o/v8A/jn/ANejlYXQn2hf7j/lR9oX+4/5UvmD+/8A+Of/ AF6PM/2//HP/
AK9HKxXQn2hf7j/lR9oX+4/5U7zP9v8A8c/+vRv/ANv/AMc/+vRysd0N+0L/ AHH/ACo+0L/c
f8qdv/2//HP/AK9Lu/2//HP/AK9HKxXQz7Qv9x/yo+0L/cf8qfu/2/8Axz/6 9Gf9v/xz/wCv
RysLoZ9oX+4/5UfaF/uP+VPyf7//AI5/9elyf7//AI5/9ejlYXRH9oX+4/5U faF/uP8AlUnP
9/8A8c/+vRz/AHx/3x/9elysd0R/aF/uP+VH2hf7j/lUnP8AfH/fH/16Of74 /wC+P/r0crC6
I/tC/wBx/wAqPtC/3H/KpOf74/74/wDr0c/3x/3x/wDXo5WF0R/aF/uP+VH2 hf7j/lUnP98f
98f/AF6Of74/74/+vRysLoj+0L/cf8qPtC/3H/KpOf74/wC+P/r0c/3x/wB8 f/XoswuitO/m
bcKwxnqKKs8/3x/3x/8AXooswujKvv8AkJWv4f8AobVr/P521U7t95Pl745x 9Kx78hdRtiSA
BySf99qtXN2EmVoJbdgzEZ3cqTnk+2DVuLlZIV7DtSZjYzq6xBkZR+7z69+K yYIopI5GeR1K
DcQqA8ZA9R61qX8tqNLMMEyOwIJ55Y55J96yI5NiSrjO9dv05B/pVx20JYqw SMgZQGBOMKQT
1x061KLVvLboXDKBtcEYIbOSPpTkvdsPl4kHCjCyYUYIOQMcHjr6k0Ne5VlW MYYrncc7gM/e
wBk89fYd+arUWhC0TogdsAHoNwz+XWp4rQP8uX3iPzGCLuPJGAB9Dn8famTT rJEsaq2AersG
IHoDgYHtStMpjJHLPGI2HpgjB/ID8c0agSx2QdypMi8gDemDnKjkZ/2v5VCL aUkgBTg44ccn
0HPJ+lOguzBGFVASDuBJ91P/ALL+tPju/KQpGJVUHcoEmOcDrgcjj2pahoQv E8YUuuNwyOeo
9ae9rKm7co+XrhgenX8u/pTJZPMcNjGFVfyAH9Kma63OzbOrSN1/vDH6U9QE itncjlQCCchg
ccE4PPHTvSw2zPKgfAVnCnDDJ5xx6/WpDe5TbtfBPIL8AYIIUY46+/QUxLhF aNvLYmI/L83b
dnB49zS1DQb9nkyBhT/tBhj8849PzFPhtXeZUcBVLAE7gM/T1/D2pILkxIEA YdclWwecdD/w
GnrdDzFd0Ztj71+fnt1JBz0HpRqGhFEiucMzDsAq7iTQImMjIpVtvVs8fXNL DIiBgyMS3GVb
BA79jRHIqM42ko4wRnnGc9ce3pQA8wbIC7fe3YHzAY6c+/XtSJGrITvO4AnG OAPc/wCeoolm
81VXbgKeOe2AB/KlEkfkhCjZ65DYBPYkYo1AWKAyRlgQMZ6kAHBHfPvSLBIw XCg7sYGRnnpx
2pY5gsXlspKnOcHB5x/8TUi3ZATIc7dvG/5cDHb8KNQ0IzBIB90H/dIOfypR F95SRvC7htYE
HHXp7c/hSpPtUDB4XbkHB+9uzTjMpZnxg7doHUnPUk9+Cf0o1AgpaSlpiFpa SloAWiiikAtL
SUtAC0UUUALS0lLQAtLSUtABS0lLQAtLSUtABS0lLQAtLSUtIApaSloAWlpK WgBaKKKAFooo
oAKKKKACiiikAUUUUDFooooAKKKKAKs+npdMskkjKRkAKvbcai/saH/ntJ/3 yK0F+4Pqf/Qj
S1nzNGlkZn9lQ+f5Ylk+4WJwPUD+tP8A7Hh/57Sf98irQ/4/f+2J/wDQhTLu aSPCIhJkGFbP
Q0czCyKs2mQwwvJ5sh2jONo5qQ6PCCR5z8f7IqW4jEWnsg6KuKtv99vrRzML Iz/7Ih/57P8A
98imR6ZC+/8AeuArlfujngf41asAFs4wGDDnkfU0626Tf9dm/kKOZhZFb+yY v+ez/wDfI/xp
f7Ji/wCez/8AfI/xpUyq+aHcu05TBYkEbyOnsOePT60kV1cyJuEI+dN6DIHc f7XPB9unvRzM
LIP7Ki/57P8A98j/ABo/sqL/AJ7P/wB8j/GpIZpJnCq6YUAsTGRnkjABPGNv vUX2mcxwOfLD
yoCOpAyyDpnnqf8APU5mFkL/AGXF/wA9n/75H+NL/ZcX/PZ/++R/jSrJM14s e9QUDBsKcN9w
9M8H5vemwXMjQo/y7AY0K8kksF5zn/a9+lHMwshf7Mi/57P/AN8j/Gj+zI/+ ez/98j/Gn2s8
r+V5pQ+bH5g2qRt6cdTnr+lWqOZhZFP+zI/+ez/98j/Gj+zY/wDns3/fP/16 uUUczCyKf9mx
/wDPZv8Avn/69H9nR/8APVv++f8A69XKKOZhZFT+zo/+erf98/8A16P7Pj/5 6t/3z/8AXq3R
RzMLIqf2en/PVv8Avn/69L/Z6f8APVv++f8A69WqKOZhZFX7An/PVv8Avn/6 9H2BP+erf98/
/Xq1RRzMLIq/YU/56t/3z/8AXpfsKf8APVv++f8A69WaKOZhZFb7En/PVv8A vn/69H2Jf+ep
/wC+f/r1Zoo5mFkV/sS/89T/AN8//Xo+xr/z1P8A3x/9erFFHMwsiv8AY1/5 6n/vj/69H2Rf
+ep/74/+vViijmYWRB9kX/nqf++P/r0fZV/56n/vj/69T0UczCyIPso/56n/ AL4/+vS/ZR/z
0P8A3x/9epqKOZhZFbyR5/l7z9wsTt9wPX3p/wBmH/PQ/wDfH/16B/x+/wDb E/8AoQqtdswu
JNvmfLGpVlfCoSW5YZ5HTseBRzMVkWvs4/56H/vj/wCvR9nH/PT/AMc/+vUL XE32llWMeWrq
hJx3x3z79MH9eEW4mLCNtqSswG0ofk4J65w33e2P6UczCyJ/IH/PT/xz/wCv R5H/AE0/8c/+
vUAu5PKuDhcxRkjjqQWH5fLSieZgP9WpeVo1OCcY3cn8sfr7UczCyJ/I/wCm n/jn/wBejyf+
mn/jn/16gNxOJyuwFEZUZuACSBzy3HXpg/WrdLmY7IiaPapYycAZ+5/9eiNC 8SOXxuUNjb0y
M+tPl/1T/wC6abEA1rEDnBiUcHH8Ip8zFZC+V/00/wDHP/r0eX/00/8AHP8A 69Uop5ktgwYF
Y7dZW35ZmJyTznjp71LdB3uIkTJGxiR5rJ3XuPrRzMLIseWf+en/AI5/9el2 H/np/wCOf/Xq
sJpEJ4UJG6RleWJJ287v+Benb3qvE8j2cIBUJG0KkYyT9w5znjr6dqOZhZGj sP8Az0/8c/8A
r0bD/wA9B/3x/wDXqkt5cGNXMSgSBSgYgdWAxwST97rgfTmry52jcQTjkgYp czHZEcWZYg+8
AEnA2ehI9fan7D/z0H/fH/16jtP+PWP/AIF/6Eaiilk+yWoUjfKqjc3P8Oc+ /SjmYrIs7D/z
0H/fH/16Nh/56D/vj/69V4Z5ZpCgKLs++SpO75mHHPH3ffrUMl1M+FX5VkKt G+3HG9R65PDe
3+BzMdkXth/56D/vj/69Gw/89B/3x/8AXqsssxuHhVkDZJLFSRwqds8fe9ab FdyyL5uEEe5F
2YOfmC98/wC16dqLsLIt7D/z0H/fH/16ZISmz5wSzhR8nqfrUtQ3HWH/AK7J /Oi7CyJNh/56
D/vj/wCvRTqKLsLIjC3DD92se0E/eLZ6n0FHl3npD+bf4VMJhBYtKRnaW4zj PzGslry5YGX7
QVyT8oHGeMAe3T/6+fmLDtctuJopfNka3UlCvzMQMZHPT/Oab9pb/n4s/wDv 4f8ACq9/c/a7
FJCAG2MDg8Z3J/n/ADmserjC6Ibsbs0pliaM3FmAwxkSH/CpXuW3tma0U56G Q5H6VztS3f8A
x9zf9dG/nVezQcxt/aW/5+LP/v4f8KRJTGrET2mHctkyHGcDjp/nNYFSt/x6 R/8AXR/5LR7N
BzGwrojl0ewV26sGwT+lJuiw43afhzlvm+99eOay1t


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: A Diagnostic Message for the Valid Schema [message #569935 is a reply to message #21114] Mon, 05 May 2003 10:43 Go to previous message
Ed Merks is currently offline Ed MerksFriend
Messages: 33142
Registered: July 2009
Senior Member
--------------C068699DAC14639E7F4EDFD9
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit


--------------C068699DAC14639E7F4EDFD9
Content-Type: multipart/related;
boundary="------------9B290DEBE186F321FA04206E"


--------------9B290DEBE186F321FA04206E
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<body bgcolor="#FFFFFF">
Pae,
<p>XSD only is tested to work with the version of Xerces in Eclipse.
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE=CITE>&nbsp;<font size=-1>Ed,</font> <font size=-1>I also
tested with XSD v1.1.0 + EMF v1.1.0 with xerces v2.2.1 and v2.4.0, butam
still having an exception. However, the exceptions are not same as previousone.
The exceptions and the associated code snippet are as follows:</font> <font size=-1>//
### Exception with xerces v2.2.1 ###java.lang.NullPointerException</font>
<br><font size=-1>&nbsp;at org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263) </font>
<br><font size=-1>&nbsp;at org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDecl(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.parsers.XMLParser.parse(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
Source)</font>
<br><font size=-1>&nbsp;at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)</font >
<br><font size=-1>&nbsp;at org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)</font >
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDDemo2.java:87) </font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101) </font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) </font>
<br><font size=-1>java.lang.NullPointerException</font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104) </font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) </font>
<font size=-1>// ### Exception with xerces v2.4.0 ###java.lang.NullPointerException</font>
<br><font size=-1>&nbsp;at org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263) </font>
<br><font size=-1>&nbsp;at org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDecl(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.parsers.XMLParser.parse(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
Source)</font>
<br><font size=-1>&nbsp;at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)</font >
<br><font size=-1>&nbsp;at org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)</font >
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDDemo2.java:87) </font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101) </font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) </font>
<br><font size=-1>java.lang.NullPointerException</font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104) </font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) </font>
<br>&nbsp;<font size=-1>// ### Code Snippet ###/*</font>
<br><font size=-1>&nbsp;* EclipseXSDDemo2.java</font>
<br><font size=-1>&nbsp;*</font>
<br><font size=-1>&nbsp;* Created on May 2, 2003, 11:13 PM</font>
<br><font size=-1>&nbsp;*</font>
<br><font size=-1>&nbsp;*/</font> <font size=-1>package org.paechoi.xsd.test;</font>
<font size=-1>// W3C/DOM</font>
<br><font size=-1>import&nbsp; javax.xml.parsers.DocumentBuilderFactory;</font>
<br><font size=-1>import&nbsp; javax.xml.parsers.DocumentBuilder;</font>
<br><font size=-1>import&nbsp; org.w3c.dom.Document;</font>
<br><font size=-1>import&nbsp; org.w3c.dom.Element;</font>
<br><font size=-1>// Eclipse/XSD</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.util.XSDParser;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDFactory;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDSchema;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.impl.XSDSchemaImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.util.XSDResourceImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.util.XSDResourceFactoryImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDDiagnostic;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.Resource;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.ResourceSet;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.common.util.EList;</font>
<br><font size=-1>import&nbsp; java.io.File;</font>
<br><font size=-1>import&nbsp; java.io.FileOutputStream;</font>
<br><font size=-1>import&nbsp; java.io.PrintStream;</font>
<br><font size=-1>import&nbsp; java.io.FileNotFoundException;</font>
<br><font size=-1>/**</font>
<br><font size=-1>&nbsp;*</font>
<br><font size=-1>&nbsp;* @author&nbsp; pae</font>
<br><font size=-1>&nbsp;*/</font>
<br><font size=-1>public class EclipseXSDDemo2 {</font>
<br><font size=-1>//&nbsp;&nbsp;&nbsp; private&nbsp;&nbsp;&nbsp;&nbsp;
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp; xmlDOM = null;</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&am p;nbsp;&nbsp;&nbsp;
XSDParser&nbsp;&nbsp; xsdParser = null;</font>&nbsp;<font size=-1>&nbsp;&nbsp;&nbsp;
// instance initializer</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; {</font>
<br><font size=-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp; Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd",
new XSDResourceFactoryImpl());</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** Creates a new instance of EclipseXSDDemo2
*/</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; public EclipseXSDDemo2() {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; super();</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
// Redirect the System.err</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; try
{</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
System.setErr(new PrintStream(new FileOutputStream("errors.log", true)));</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; }</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; catch
(FileNotFoundException fileNotFoundException) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; }</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String
uri) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create
a factory object for creating DOM parsers</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilderFactory&nbsp;
factory = DocumentBuilderFactory.newInstance();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;
builder = null;</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = null;</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Build a
new DOM</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// Now use the factory to create a DOM parser (a.k.a. a DocumentBuilder)</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
factory.setNamespaceAware(true);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
builder = factory.newDocumentBuilder();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = builder.parse(uri);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch (Exception
ex) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ex.printStackTrace();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return null;</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; return xmlDoc;</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM using XSDParser
*/</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private Document openXMLDOMUsingXSDParser(String
uri) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document&nbsp;&nbsp;&nbsp;
xmlDoc = null;</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Build a
new DOM</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xsdParser = new XSDParser();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xsdParser.parse(uri);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = xsdParser.getDocument();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch (Exception
ex) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ex.printStackTrace();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return null;</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; return xmlDoc;</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** doIt */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private void doIt() {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Document xmlDOM = openXMLDOMUsingXSDParser("<a href="http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl/</a>");</font>
<br><font size=-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Document xmlDOM = openXMLDOMUsingXSDParser("./wsdl.xsd");</font>&nbsp; <font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Element rootElement = xmlDOM.getDocumentElement();</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
XSDSchema xsdSchema = XSDFactory.eINSTANCE.createXSDSchema();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xsdSchema.setDocument(xmlDOM);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xsdSchema.setElement(rootElement);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xsdSchema.updateElement();</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
System.out.println("\n\n");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
XSDResourceImpl.serialize(System.out, xsdSchema.getElement());</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION >>>>>>>>>>>>>>>>>>>>>>>>>>");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xsdSchema.validate();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
//EList eList = xsdMainSchema.getDiagnostics();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
EList eList = xsdSchema.getAllDiagnostics();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
for (int i = 0; i &lt; eList.size(); i++) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
XSDDiagnostic xsdDiagnostic = (XSDDiagnostic)eList.get(i);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
System.out.println(i + ": At line #" + xsdDiagnostic.getLine() + "(" +
xsdDiagnostic.getColumn() + "), " + xsdDiagnostic.getMessage() + "; Node
= [" + xsdDiagnostic.getNode().getNodeName() + "]");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
System.out.println(" &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; ");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch (Exception
ex) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ex.printStackTrace();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** main - the main entry */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; public static void main(String[] args)
{</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; EclipseXSDDemo2
app = new EclipseXSDDemo2();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; app.doIt();</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<br><font size=-1>}Regards,</font>&nbsp; <font size=-1>Pae</font>
<blockquote dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed
Merks" &lt;<a href="mailto:merks@ca.ibm.com">merks@ca.ibm.com</a>> wrote
in message <a href="news:3EB4F504.6527C9F2@ca.ibm.com">news:3EB4F504.6527C9F2@ca.ibm.com</a>...Pae,
<p>No, the standalone version worked too.&nbsp; What exception did you
see?
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE="CITE">&nbsp;<font size=-1>Ed,</font> <font size=-1>That
surely helped with v1.0.2. And THANK you for that. One quick question is:Do
you also have an exception thrown when running with v1.1.0 as standalone.</font>
<font size=-1>Regards,</font>&nbsp; <font size=-1>Pae</font>
<blockquote dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed
Merks" &lt;<a href="mailto:merks@ca.ibm.com">merks@ca.ibm.com</a>> wrote
in message <a href="news:3EB3A206.9781C42@ca.ibm.com">news:3EB3A206.9781C42@ca.ibm.com</a>...Pae,
<p>The XSD model expects a DOM that's namespace aware, so <font color="#3333FF">this</font>
addition to your sample code will improve your result:
<p>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String uri) {
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create a factory object
for creating DOM parsers
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilderFactory&nbsp;
factory = DocumentBuilderFactory.newInstance();
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;
builder = null;
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = null;
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#3333FF">&nbsp;&nbsp; factory.setNamespaceAware(true);</font>
<p>Without this, element.getNamespaceURI and element.getLocalName both
return null...
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE="CITE"><style></style>
<font size=-1>Ed,</font> <font size=-1>I
have a sample code that test a DOM of XML Schema with Eclipse/XSD andproducing
two different results.</font> <font size=-1>With v1.0.2, it seems ok except
the diagnostic message we are discussing.With v1.1.0, it throws an exception.Regards,</font>&nbsp;
<font size=-1>Pae</font> <font size=-1>P.S.: The code snippet is as follows:</font>
<font size=-1>// ################## CODE SNIPPET ##################/*</font>
<br><font size=-1>&nbsp;* EclipseXSDDemo1.java</font>
<br><font size=-1>&nbsp;*</font>
<br><font size=-1>&nbsp;* Created on May 2, 2003, 11:13 PM</font>
<br><font size=-1>&nbsp;*/</font> <font size=-1>package org.paechoi.xsd.test;//
W3C/DOM</font>
<br><font size=-1>import&nbsp; javax.xml.parsers.DocumentBuilderFactory;</font>
<br><font size=-1>import&nbsp; javax.xml.parsers.DocumentBuilder;</font>
<br><font size=-1>import&nbsp; org.w3c.dom.Document;</font>
<br><font size=-1>import&nbsp; org.w3c.dom.Element;</font>
<br><font size=-1>// Eclipse/XSD</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDFactory;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDSchema;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.impl.XSDSchemaImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.util.XSDResourceImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.util.XSDResourceFactoryImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDDiagnostic;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.Resource;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.ResourceSet;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.common.util.EList;</font>
<br><font size=-1>import&nbsp; java.io.File;</font>
<br><font size=-1>/**</font>
<br><font size=-1>&nbsp;*</font>
<br><font size=-1>&nbsp;* @author&nbsp; pae</font>
<br><font size=-1>&nbsp;*/</font>
<br><font size=-1>public class EclipseXSDDemo1 {</font>
<br><font size=-1>//&nbsp;&nbsp;&nbsp; private&nbsp;&nbsp;&nbsp;&nbsp;
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp; xmlDOM = null;</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; // instance initializer</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; {</font>
<br><font size=-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp; Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd",
new XSDResourceFactoryImpl());</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** Creates a new instance of EclipseXSDDemo1
*/</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; public EclipseXSDDemo1() {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; super();</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String
uri) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create
a factory object for creating DOM parsers</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilderFactory&nbsp;
factory = DocumentBuilderFactory.newInstance();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;
builder = null;</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = null;</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Build a
new DOM</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// Now use the factory to create a DOM parser (a.k.a. a DocumentBuilder)</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
builder = factory.newDocumentBuilder();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = builder.parse(uri);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch (Exception
ex) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ex.printStackTrace();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return null;</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; return xmlDoc;</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** doIt */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private void doIt() {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document xmlDOM
= openXMLDOM("<a href="http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl/</a>");</font>
<br><font size=-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp; Document
xmlDOM = openXMLDOM("./wsdl.xsd");</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
Element rootElement = xmlDOM.getDocumentElement();</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
XSDSchema xsdSchema = XSDFactory.eINSTANCE.createXSDSchema();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; xsdSchema.setDocument(xmlDOM);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; xsdSchema.setElement(rootElement);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; xsdSchema.updateElement();</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
System.out.println("\n\n");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; XSDResourceImpl.serialize(System.out,
xsdSchema.getElement());</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION >>>>>>>>>>>>>>>>>>>>>>>>>>");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; xsdSchema.validate();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; //EList eList
= xsdMainSchema.getDiagnostics();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; EList eList
= xsdSchema.getAllDiagnostics();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; for (int i
= 0; i &lt; eList.size(); i++) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
XSDDiagnostic xsdDiagnostic = (XSDDiagnostic)eList.get(i);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
System.out.println(i + ": Diagnostic Message = [" + xsdDiagnostic.getMessage()
+ "]");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; System.out.println(" &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; ");</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** main - the main entry */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; public static void main(String[] args)
{</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; EclipseXSDDemo1
app = new EclipseXSDDemo1();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; app.doIt();</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<br><font size=-1>}</font>
<blockquote dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed
Merks" &lt;<a href="mailto:merks@ca.ibm.com">merks@ca.ibm.com</a>> wrote
in message <a href="news:3EB25ED9.AE2CB299@ca.ibm.com">news:3EB25ED9.AE2CB299@ca.ibm.com</a>...Pae,
<p>I'm seeing this result with the just published 1.1.0 driver:
<blockquote><img SRC="cid:part1.3EB64063.DBD15D05@ca.ibm.com" height=411 width=502></blockquote>
The schema isn't valid.
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE="CITE">I have a simple test schema as follows:
<p>&lt;?xml version="1.0" encoding="UTF-8"?>
<br>&lt;!--W3C Schema generated by Pae -->
<br>&lt;xsd:schema xmlns:xsd="<a href="http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchema</a>"
<br>elementFormDefault="qualified">
<br>&nbsp;&lt;xsd:element name="CommonLogin">
<br>&nbsp; &lt;xsd:complexType>
<br>&nbsp;&nbsp; &lt;xsd:sequence>
<br>&nbsp;&nbsp;&nbsp; &lt;xsd:element name="username" ref="usernameRef"/>
<br>&nbsp;&nbsp;&nbsp; &lt;xsd:element name="password" ref="passwordRef"/>
<br>&nbsp;&nbsp; &lt;/xsd:sequence>
<br>&nbsp; &lt;/xsd:complexType>
<br>&nbsp;&lt;/xsd:element>
<br>&nbsp;&lt;xsd:element name="passwordRef" type="xsd:string"/>
<br>&nbsp;&lt;xsd:element name="usernameRef" type="xsd:string"/>
<br>&lt;/xsd:schema>
<p>This is a very simple sample, but it is a valid schema. But when
<br>I use the validate() and getDiagnostics() methods in the XSDSchema
<br>interface it gives me a message as follows:
<p>XSD: The element '#null' is not permitted as constrained by 'XML Schema
';
<br>expecting schema
<p>I do not understand what the message is saying. Any comments?
<p>Pae</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>

</body>
</html>

--------------9B290DEBE186F321FA04206E
Content-Type: image/jpeg
Content-ID: <part1.3EB64063.DBD15D05@ca.ibm.com>
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\nsmailFJ.jpeg"

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCws MGJGSjpQdGZ6
eHJmcG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAq MF40NF7GhHCE
xsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbG xsbGxsb/wAAR
CAGbAfYDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcI CQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS 0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1 dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW 19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcI CQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMz UvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0 dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU 1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDXghR49zbiST/EfU0m23yQ BKcHHG81Ja/6
kf7zfzNVLrfsTY5wGkLRrJsZueoPt6e9NK4FpIYJEDIWKnoQ5/xpfs0Xo3/f Z/xqKy2bmMbM
UZEcZ75zzjt2qMXc+1kYBbgkbYvLyRnJ67sNwDzkdPXikBZ+zRejf99n/Gj7 NF6N/wB9n/Gq
a31w+eI027VYMuTuLsmeD2xnHPpnvS/bZyJnHlhYELMNpy5DODg54zs9+veg C39mi9G/77P+
NH2aL0b/AL7P+NUEup4hIkMQZY2kdycYwZH4yWGPu9ef8b883lxs6FW2H5l7 n2HvyMDv075o
APs0Xo3/AH2f8aPs0Xo3/fZ/xqFriZWhLGMRPt/eKpdSSeFGDx2+YjBz26Uy 3kkmuraaQptk
gZlVVIKglDgnPP6UATyQxIudrH/gZpm2L+43/fw1NP8AcH1rJvJZbecG2Jlk dSWhOSAAPvD0
/r9aQGhti/uN/wB/DTDGBI65bAPHzH0B/rUdntNurLMZt3zFyep+nb6VM/8A r5f94fyFAxvl
j1b/AL6NHlj1b/vo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+ jTqKAG+WPVv+
+jR5Y9W/76NOooAb5Y9W/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igB vlj1b/vo0eWP
Vv8Avo06igBvlj1b/vo0eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPV v++jR5Y9W/76
NOooAb5Y9W/76NHlj1b/AL6NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/AL6N Hlj1b/vo06ig
Bvlj1b/vo0eWPVv++jTqKAG+WPVv++jR5Y9W/wC+jTqKAG+WPVv++jR5Y9W/ 76NOooAb5Y9W
/wC+jR5Y9W/76NOooAb5Y9W/76NHlj1b/vo06igBvlj1b/vo0eWPVv8Avo06 igBvlj1b/vo0
eWPVv++jTqKAG+WPVv8Avo0eWPVv++jTqKAG+WPVv++jR5Y9W/76NOooAb5Y 9W/76NHlj1b/
AL6NOooAb5Y9W/76NHlj1b/vo06igCvOTEV2MRnOcnP86KS76p+P9KKBF+1/ 1I/3m/majktG
kBVmiZNxYK8W7Gfx96hREIJKqTuPUe9O8uP+4v5U7gWIYnR3d3DFgBwuMYz/ AI0otoBEYhBG
I2OSgQYJ+lNdbaNlVkjDOcKu0ZP0FMcwRyBWtvlyFMmwbQT0Hqeo6DHP1oAm WCFF2pFGo44C
gdDkfrzTPscBn84xIXwMZUfKQScj3yaT/Q/+mH39nb73p9fahfsbruTyGHHI wepwP14oAkaC
FipaKMlCWUlRwSckj8ad5abt2xc53Zx3xjP5cVCVgFwsJgXLIXDbRjggEfqK k8iH/nkn/fIo
ABBCJBIIo94zhtoyM5zz+J/OhIIY5GkSKNXbqwUAn8ah8yw8vzN9tszt3ZXG fTNO/wBD87yf
3Hm/3ON3r0oAklUsoAGeagFuVZmEYDN94jGT9adusgwXNvuLbAMrkt6fXkUM 1ksvlMbcSZA2
ErnJ6cUANW3KZ2RhdxycYGT60j/6+X/eH8hUgFqZzCEiLgZIG3I6dR170f6H 53k/uPN/ucbv
XpQBHRUg+xs4QeQWJK7RjOR1H4U3zLDzPL322/O3blc59MUrANoprz2y3Bh+ ysSJFjyIxjJG
f0HWpf8ARvtPkeSN+0tkx4GBjv369qLAMoqx5EP/ADyT/vkVX8y33f8AHt+7 37PM2rtznGOu
evHT9KLAFFNee2W4MP2ViRIseRGMZIz+g61a8iH/AJ5J/wB8iiwFeipP9D87 yf3Hm/3ON3r0
oH2NnCDyCxJXaMZyOo/CiwEdFSH7GJDGfI3jGV4yM4xx+I/Oj/Q/O8n9x5v9 zjd69KLAR0Us
slpE4TZGz7lUqu3K5IAJHpyPzp4FqZzCEiLgZIG3I6dR170WAjoqQfY2cIPI LEldoxnI6j8K
R2skZlc26sgywJUED3/MfnRYBlFO8yw8zy99tvzt25XOfTFRvPbLcGH7KxIk WPIjGMkZ/Qda
LAOoprzQr5n+hMfLkEZwqck4xjn3H5/WkeeJHKf2fKxAYjCJ8wU4JAznuPrR YB9FN86Hz2iF
kxKvtJCp7c4znHzDt3q15EP/ADyT/vkUWAr0UeZb7v8Aj2/d79nmbV25zjHX PXjp+lNee2W4
MP2ViRIseRGMZIz+g60WAdRTnMEcgVrb5chTJsG0E9B6nqOgxz9aei20jMqp GWQ4ZdoyPqKL
ARUVY8iH/nkn/fIo8iH/AJ5J/wB8iiwFeirHkQ/88k/75FHkQ/8APJP++RRY CvRVjyIf+eSf
98ijyIf+eSf98iiwFeirHkQ/88k/75FHkQ/88k/75FFgK9FWPIh/55J/3yKP Ih/55J/3yKLA
V6KseRD/AM8k/wC+RR5EP/PJP++RRYCvRVjyIf8Ankn/AHyKPIh/55J/3yKL AV6KseRD/wA8
k/75FHkQ/wDPJP8AvkUWAr0VY8iH/nkn/fIo8iH/AJ5J/wB8iiwFeipngh2/ 6pOo/hFQbYv+
eUfPtQMWioJlTz4FCKAScgDrxUb3FsjlWj5Bx90UWGouWiQ676p+P9KKLtFR lAUDrnAooJJ4
/un/AHj/ADp1Nj+6f94/zp1AyXyWjmMkTAhz86vknr2PbqeOn05NOeMyTLuA MSjP3urZ4yMd
vr+HQ055Y42VWYBnOFXufoKDIBMsWDuZSw9MAj/EUxFb7PN9s+0Yj+/jZuON uMbun3+30496
rtp8zo2Y4AzCYZDE4L9D0/D6flWpRQBWdJzepIqRmNVK5LkHBKknGPb1qzVV 70L5n7iU+XII
zjbyTjGOfcfn9akFwPOEbRyKGJVXIGGIycevY9scfSgCP7M/2rOV+z58zb33 /Tpjv67uaiWy
dZuUDp5pkyZ3HVt33MY4/XFWGufnwkMki7gpdAMA5x65474/oanoAqwRTR3c 7mOLbK+dwc7s
BQAMY9vXvUf2WZp8lI1XzN2VlYjGc/cIxk+vrz1qb7WC2FhlZd+wOqgjOcHv kY55Ixx9KkM8
IkMZlj3jGV3DIzjHH4j86AInSc3qSKkZjVSuS5BwSpJxj29aZ9nmx5OI/K83 zN+47vv78bcf
h19/apo7mN5WjJ2OrlArEZbAByOeeCKd58PneT5sfm/3Nw3evSgCo9tOWnZY 4d0kyOCXIJVc
cH5f9n9T+Nn7NH5m/dLnOcec+Pyzj8Kcs8LruSWNhxyGB6nA/Xijz4fO8nzY /N/ubhu9elAD
vLTdu2LnO7OO+MZ/LioHSc3qSKkZjVSuS5BwSpJxj29as1E9zAjMrzxqyDLA uAQPf8x+dAC/
vvtH/LPyNnvu3Z/LGKr/AGebHk4j8rzfM37ju+/vxtx+HX39qsefD53k+bH5 v9zcN3r0oE8L
OEEsZYkrtDDOR1H4UAO8tN27Yuc7s474xn8uKdUfnw+d5Pmx+b/c3Dd69KT7 TAGC+fHuLbAN
4yW9PryKAKq2TrNygdPNMmTO46tu+5jHH64oe2nLTsscO6SZHBLkEquOD8v+ z+p/G358PneT
5sfm/wBzcN3r0pqXdu8zQrNGZFO0pu5z9KAIlgkVhGY4XjEpkDsSSCWJ4XHX nGc+/tSfZ5se
TiPyvN8zfuO77+/G3H4dff2qx58PneT5sfm/3Nw3evSmS3cUThNwZ9yqVVhl ckAEjPTkfnQB
XltZynlosLKs3nKzE5J37sdOOpGefpzxM6Tm9SRUjMaqVyXIOCVJOMe3rVmo IbuKXau4JIxI
EbMN3BIPAPsaAK7205adljh3STI4JcglVxwfl/2f1P4xypJ5i2wjDBZxKHKN 3fcecYGATzk9
MY5q613bLu3XEQ2na2XHB9D+R/KpqAIfs0fmb90uc5x5z4/LOPwqTy03bti5 zuzjvjGfy4qA
Xg81kaGRVRxGXO3GTjHfPOR271L58PneT5sfm/3Nw3evSgCB7aRpXA2eXJKk pYk5BXbxjHP3
eue/tUjxyG9ikATy1RlJLHOSQemP9n170/z4fO8nzY/N/ubhu9elSUAVYLYp eT3EkcYZz8rK
xJ24AweP9kH8fzk+zR+Zv3S5znHnPj8s4/CpqKAKP2N/P3bIs+Zv8/P7zGc7 enp8vXp+VXPL
Tdu2LnO7OO+MZ/LikSWORmVWBZDhl7j6in0ARPGZJl3AGJRn73Vs8ZGO31/D oab5LSTCSVgA
h+RUyD17nv0HHT68Gp6KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKAGyE
Bck4AIyT9az3EMjBmlOR0w4GKvyqrxlXUMD2IzVf7Lb/APPCL/vgf5/z+YBW lZWubfawOCe+
f4aZJYLJIz+cRuOcbP8A69WzbwqMrDGD6hR/n/P5t8uP+4v5UXsXCcoO8SG9 OXU+uaKbdKF2
BQAOen4UUiCxH90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51fJPXse3U8dPp yakKAzK+0ZVS
N2eRkjjH4fpQ8scbKrMAznCr3P0FJ58P/PWP7+z7w+96fX2piG/Zo/M37pc5 zjznx+WcfhR9
mj8zfulznOPOfH5Zx+FK1zAsvlNPGJMgbC4zk9OKbLdxROE3Bn3KpVWGVyQA SM9OR+dAEEti
73ZlDrtLhj6/wH/2mP8Avo+nMphka7WRljUIT8653MuDhSMdOc9eo6ek/mJ5 nl71343bc849
cUxrmBZfKaeMSZA2FxnJ6cUAMSOaJikflmIuX3MTuGTkjHfqecjr3xzYqMzw iQxmWPeMZXcM
jOMcfiPzpsdzG8rRk7HVygViMtgA5HPPBFAEDWsjz+Y0durbw3nICHCg8Dpz kDB5HXp6uWCR
WEZjheMSmQOxJIJYnhcdecZz7+1T+fD53k+bH5v9zcN3r0oWeF13JLGw45DA 9TgfrxQBUe2n
LTsscO6SZHBLkEquOD8v+z+p/EWydZuUDp5pkyZ3HVt33MY4/XFW/Ph87yfN j83+5uG716VJ
QBltp8zo2Y4AzCYZDE4L9D0/D6flT5bKcuSmziUSAmVgG+bONo4H15zjPU8X fPh/56x/f2fe
H3vT6+1Czwuu5JY2HHIYHqcD9eKAJKzJUk8xbYRhgs4lDlG7vuPOMDAJ5yem Mc1fMoFwsJVs
shcNxjggEfqKBPCzhBLGWJK7QwzkdR+FAFRbJ1m5QOnmmTJncdW3fcxjj9cU PbTlp2WOHdJM
jglyCVXHB+X/AGf1P42muYFl8pp4xJkDYXGcnpxT/MTzPL3rvxu255x64oAp LZOs3KB080yZ
M7jq277mMcfripYIpo7udzHFtlfO4Od2AoAGMe3r3qbz4f8AnrH9/Z94fe9P r7UjXMCy+U08
YkyBsLjOT04oApy2U5clNnEokBMrAN82cbRwPrznGep4srHNHcSFPLKSOHLE nI4Axjv0657+
3Ky3cUThNwZ9yqVVhlckAEjPTkfnS/a7bzPL+0Rb87du8Zz6YoArLZOs3KB0 80yZM7jq277m
McfriiW1nKeWiwsqzecrMTknfux046kZ5+nPEr3yLcGHypSRIseQvGSM/oOt SR3MbytGTsdX
KBWIy2ADkc88EUATVQitZwnlusKq03nMyk5B37sdOegGePpxzZS7t3maFZoz Ip2lN3OfpQl3
bvM0KzRmRTtKbuc/SgCBo99+YwH8skSyZQ4LLjHPv8p4/ue5q7UYnhZwgljL EldoYZyOo/Cn
eYnmeXvXfjdtzzj1xQBWitT9qmlmUYZwyASMRwAOV6Z4z3/SoZbKcuSmziUS AmVgG+bONo4H
15zjPU8XXl2zRxgZL5J56Ad/zIH40PLtmjjAyXyTz0A7/mQPxoAqLZOs3KB0 80yZM7jq277m
Mcfrir9Qtd2y7t1xENp2tlxwfQ/kfyoa7tl3briIbTtbLjg+h/I/lQAfZo/M 37pc5zjznx+W
cfhR9mj8zfulznOPOfH5Zx+FDXdsu7dcRDadrZccH0P5H8qmoAg8lpJhJKwA Q/IqZB69z36D
jp9eDU9Qtd2y7t1xENp2tlxwfQ/kfyoFwPOEbRyKGJVXIGGIycevY9scfSgC aiio/Ph87yfN
j83+5uG716UASUVF9pgDBfPj3FtgG8ZLen15FD3MCMyvPGrIMsC4BA9/zH50 AS0VG8u2aOMD
JfJPPQDv+ZA/Gmi4HnCNo5FDEqrkDDEZOPXse2OPpQBNRVf7Wu7/AFcnl79n mcbc5xjrnrx0
/Sj7Wu7/AFcnl79nmcbc5xjrnrx0/SgCxRUX2hPtPkYfftLZKkDAx379e1K8 u2aOMDJfJPPQ
Dv8AmQPxoAkoqq96Edk8iUsrhQo25bOcEc9OP5+hxHJqkUczxGKUusix4G3k tkjHPtQBeoqK
GfzZJU8t18ptpLYwTjPGD6EfnTPtYLYWGVl37A6qCM5we+RjnkjHH0oAsUVG Z4RIYzLHvGMr
uGRnGOPxH502O5jeVoydjq5QKxGWwAcjnngigCaio/Ph87yfNj83+5uG716U LPC67kljYcch
gepwP14oAkoqPz4fO8nzY/N/ubhu9elQvfItwYfKlJEix5C8ZIz+g60AWH+6 aj/z/n/P/wBe
R/umo/8AP+f8/wD1wBr/AHT/AJ/z/n8Y6kf7p/z/AJ/z+MdIZWu+qfj/AEoo u+qfj/SigRPH
90/7x/nTqbH90/7x/nTqBkvktHMZImBDn51fJPXse3U8dPpyai+zzfbPtGI/ v42bjjbjG7p9
/t9OPerHnw+d5Pmx+b/c3Dd69KDKBcLCVbLIXDcY4IBH6imIq/ZZmnyUjVfM 3ZWViMZz9wjG
T6+vPWkltZynlosLKs3nKzE5J37sdOOpGefpzxb8+HzvJ82Pzf7m4bvXpQs8 LruSWNhxyGB6
nA/XigBvlv8AbPM2RbPL27sfPnPTPp/Wq/2WZp8lI1XzN2VlYjGc/cIxk+vr z1q158PneT5s
fm/3Nw3evSgTws4QSxliSu0MM5HUfhQBAsEisIzHC8YlMgdiSQSxPC4684zn 39qje2nLTssc
O6SZHBLkEquOD8v+z+p/Gyl3bvM0KzRmRTtKbuc/So/to89ohBKSr7SRt9uc Zzj5h270ARLZ
Os3KB080yZM7jq277mMcfriom0+Z0bMcAZhMMhicF+h6fh9PyrQ8+HzvJ82P zf7m4bvXpSfa
YAwXz49xbYBvGS3p9eRQBTlspy5KbOJRICZWAb5s42jgfXnOM9Txo1Gs8Lru SWNhxyGB6nA/
Xio1u1MzxtHIgV9m9sbSeCBwe+R1+nXigCP7PN9s+0Yj+/jZuONuMbun3+30 496rtp8zo2Y4
AzCYZDE4L9D0/D6flWh58PneT5sfm/3Nw3evSoX1C3W4WBXV3JwQHX5TnHc/ oMmgBXSc3qSK
kZjVSuS5BwSpJxj29ahe2nLTsscO6SZHBLkEquOD8v8As/qfxt+fD53k+bH5 v9zcN3r0o8+H
/nrH9/Z94fe9Pr7UAVfsszT5KRqvmbsrKxGM5+4RjJ9fXnrVjy3+2eZsi2eX t3Y+fOemfT+t
OMoFwsJVsshcNxjggEfqKal3bvM0KzRmRTtKbuc/SgCH7PN9s+0Yj+/jZuON uMbun3+30496
b9lmafJSNV8zdlZWIxnP3CMZPr689asfa7bzPL+0Rb87du8Zz6YqN75FuDD5 UpIkWPIXjJGf
0HWgCKW1nKeWiwsqzecrMTknfux046kZ5+nPFn7NH5m/dLnOcec+Pyzj8KV7 mBGZXnjVkGWB
cAge/wCY/Ol8+H/nrH9/Z94fe9Pr7UAO8tN27Yuc7s474xn8uKpPbTlp2WOH dJMjglyCVXHB
+X/Z/U/jb8+HzvJ82Pzf7m4bvXpQZQLhYSrZZC4bjHBAI/UUARrHNHcSFPLK SOHLEnI4Axjv
0657+3Isc0dxIU8spI4csScjgDGO/Trnv7cyCeMzmEMpcDJAYZHTqOveoX1C 3W4WBXV3JwQH
X5TnHc/oMmgCBI3mu7kCIKhmRjIwIJCheBxyMqe/f87flv8AbPM2RbPL27sf PnPTPp/WnCeM
zmEMpcDJAYZHTqOvejz4fO8nzY/N/ubhu9elADYUbzJZZBhnO0D0UZx/U/jj tRCjeZLLIMM5
2geijOP6n8cdqSW7iicJuDPuVSqsMrkgAkZ6cj86Y98i3Bh8qUkSLHkLxkjP 6DrQAySzke5L
iQCNnVyOeo29v+Af+PH05JLOR7kuJAI2dXI56jb2/wCAf+PH05tJLHIzKrAs hwy9x9RT6AKU
lnI9yXEgEbOrkc9Rt7f8A/8AHj6c2f332j/ln5Gz33bs/ljFSUUAUpLOR7ku JAI2dXI56jb2
/wCAf+PH05kMMjXayMsahCfnXO5lwcKRjpznr1HT0s0UAR/vvtH/ACz8jZ77 t2fyxiq/2ebH
k4j8rzfM37ju+/vxtx+HX39quUUAVYIpo7udzHFtlfO4Od2AoAGMe3r3qtKk nmLbCMMFnEoc
o3d9x5xgYBPOT0xjmtOigCGFG8yWWQYZztA9FGcf1P447VGiXP2ou6xFckbt 5JCdgBjjtnn+
mLVFAFP7PNjycR+V5vmb9x3ff3424/Dr7+1H2ebHk4j8rzfM37ju+/vxtx+H X39quUUAVnSc
3qSKkZjVSuS5BwSpJxj29afCjeZLLIMM52geijOP6n8cdqmooApyR3ZnMqiL KnagLnGw9c/L
1OB+Q98xy2k7SSyBIixlV0JkI+Ubcg8d9g/P89CigCmI7tZpSgiCySq+7ech RtBGNvcD170j
Wsjz+Y0durbw3nICHCg8DpzkDB5HXp63aKAKiwSKwjMcLxiUyB2JJBLE8Ljr zjOff2qN7act
Oyxw7pJkcEuQSq44Py/7P6n8b9FAFBbJ1m5QOnmmTJncdW3fcxjj9cVE2nzO jZjgDMJhkMTg
v0PT8Pp+ValFAGdLZTlyU2cSiQEysA3zZxtHA+vOcZ6ni/5abt2xc53Zx3xj P5cU6igBr/dN
R/5/z/n/AOvI/wB01H/n/P8An/64A1/un/P+f8/jHUj/AHT/AJ/z/n8Y6Qyt d9U/H+lFF31T
8f6UUCJ4/un/AHj/ADp1Nj+6f94/zp1Axi2TrNygdPNMmTO46tu+5jHH64qZ 0nN6kipGY1Ur
kuQcEqScY9vWrNMeWONlVmAZzhV7n6CmIprZOs3KB080yZM7jq277mMcfrio m0+Z0bMcAZhM
MhicF+h6fh9PyrQ8+H/nrH9/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oAqrZO s3KB080yZM7j
q277mMcfrih7actOyxw7pJkcEuQSq44Py/7P6n8bEt3FE4TcGfcqlVYZXJAB Iz05H51L5ieZ
5e9d+N23POPXFAEKxzR3EhTyykjhyxJyOAMY79Oue/ty2C2KXk9xJHGGc/Ky sSduAMHj/ZB/
H85vPh87yfNj83+5uG716UGUC4WEq2WQuG4xwQCP1FAFf7PNjycR+V5vmb9x 3ff3424/Dr7+
1Ogimju53McW2V87g53YCgAYx7evepvPh87yfNj83+5uG716ULPC67kljYcc hgepwP14oAz2
0+Z0bMcAZhMMhicF+h6fh9PyqwLeZppfMEaxPKsmVYlvl24GMcfdB/T3qx58 PneT5sfm/wBz
cN3r0oE8LOEEsZYkrtDDOR1H4UAVFsnWblA6eaZMmdx1bd9zGOP1xUqpci8e Xy4tjBU/1hyA
CecbffpUiXdu8zQrNGZFO0pu5z9KmoAzpbKcuSmziUSAmVgG+bONo4H15zjP U8ST205aTyvL
KvKkvzEg5Xb8vT/Z6/hjvVkTws4QSxliSu0MM5HUfhR58PneT5sfm/3Nw3ev SgCJ0nN6kipG
Y1UrkuQcEqScY9vWlWOaO4kKeWUkcOWJORwBjHfp1z39uZFnhddySxsOOQwP U4H68UefD53k
+bH5v9zcN3r0oAb9mj8zfulznOPOfH5Zx+FSeWm7dsXOd2cd8Yz+XFR/a7bz PL+0Rb87du8Z
z6YqN75FuDD5UpIkWPIXjJGf0HWgCvcxSxRqpjV41uBIGVWZuX3HgDjAJ5z2 96lntpy0nleW
VeVJfmJByu35en+z1/DHepmufnwkMki7gpdAMA5x65474/oaf58PneT5sfm/ 3Nw3evSgClLZ
TlyU2cSiQEysA3zZxtHA+vOcZ6niw6Tm9SRUjMaqVyXIOCVJOMe3rUqzwuu5 JY2HHIYHqcD9
eKFnhddySxsOOQwPU4H68UAROk5vUkVIzGqlclyDglSTjHt60ipci8eXy4tj BU/1hyACecbf
fpU3nw+d5Pmx+b/c3Dd69KBPCzhBLGWJK7QwzkdR+FAETpOb1JFSMxqpXJcg 4JUk4x7etQrZ
Os3KB080yZM7jq277mMcfrirUM/mySp5br5TbSWxgnGeMH0I/Ol8+HzvJ82P zf7m4bvXpQBU
ltZynlosLKs3nKzE5J37sdOOpGefpzxd8tN27Yuc7s474xn8uKY9zAjMrzxq yDLAuAQPf8x+
dKJ4zOYQylwMkBhkdOo696AGeS0kwklYAIfkVMg9e579Bx0+vBqeoxPCzhBL GWJK7QwzkdR+
FQvfItwYfKlJEix5C8ZIz+g60AWqKYkscjMqsCyHDL3H1FPoAKKKKACiiigA ooooAKKKKACi
iigAooooAKKKKACiiigAooooAKKKKACiiigBr/dNR/5/z/n/AOvI/wB01H/n /P8An/64A1/u
n/P+f8/jHUj/AHT/AJ/z/n8Y6Qytd9U/H+lFF31T8f6UUCJ4/un/AHj/ADp1 Nj+6f94/zp1A
y5UHktHMZImBDn51fJPXse3U8dPpyanopiKf2eb7Z9oxH9/GzccbcY3dPv8A b6ce9N+yzNPk
pGq+ZuysrEYzn7hGMn19eetW3ljjZVZgGc4Ve5+gpPPh/wCesf39n3h970+v tQBUltZynlos
LKs3nKzE5J37sdOOpGefpzxZ8t/tnmbItnl7d2Pnznpn0/rStcwLL5TTxiTI GwuM5PTimy3c
UThNwZ9yqVVhlckAEjPTkfnQBXWydZuUDp5pkyZ3HVt33MY4/XFTOk5vUkVI zGqlclyDglST
jHt61P5ieZ5e9d+N23POPXFNM8IkMZlj3jGV3DIzjHH4j86AKi2TrNygdPNM mTO46tu+5jHH
64qJtPmdGzHAGYTDIYnBfoen4fT8q0PPh87yfNj83+5uG716ULPC67kljYcc hgepwP14oAqL
ZOs3KB080yZM7jq277mMcfrih7actOyxw7pJkcEuQSq44Py/7P6n8bYnhZwg ljLEldoYZyOo
/CgygXCwlWyyFw3GOCAR+ooAjWOaO4kKeWUkcOWJORwBjHfp1z39ubFR+fD5 3k+bH5v9zcN3
r0o8+H/nrH9/Z94fe9Pr7UAVHtpy07LHDukmRwS5BKrjg/L/ALP6n8Wy2U5c lNnEokBMrAN8
2cbRwPrznGep4me+KOU+yXDEBiMBfmCnBIGc9x9ala7tl3briIbTtbLjg+h/ I/lQBRbT5nRs
xwBmEwyGJwX6Hp+H0/KpVsnWblA6eaZMmdx1bd9zGOP1xVsTws4QSxliSu0M M5HUfhR58Pne
T5sfm/3Nw3evSgBv2aPzN+6XOc4858flnH4VJ5abt2xc53Zx3xjP5cUiSxyM yqwLIcMvcfUU
+gCukc0TFI/LMRcvuYncMnJGO/U85HXvjmP7PNjycR+V5vmb9x3ff3424/Dr 7+1XKKAMttPm
dGzHAGYTDIYnBfoen4fT8qG0+Z0bMcAZhMMhicF+h6fh9PyrUooAp/Z5seTi PyvN8zfuO77+
/G3H4dff2pj205adljh3STI4JcglVxwfl/2f1P436KAKYju1mlKCILJKr7t5 yFG0EY29wPXv
R9nmx5OI/K83zN+47vv78bcfh19/arlFAGZKknmLbCMMFnEoco3d9x5xgYBP OT0xjmrTpOb1
JFSMxqpXJcg4JUk4x7etWaKAKD205adljh3STI4JcglVxwfl/wBn9T+N3y03 bti5zuzjvjGf
y4p1FAEHktJMJJWACH5FTIPXue/QcdPrwanoooAKKKKACiiigAooooAKKKKA CiiigAooooAK
KKKACiiigAooooAKKKKACiiigBr/AHTUf+f8/wCf/ryP901H/n/P+f8A64A1 /un/AD/n/P4x
1I/3T/n/AD/n8Y6Qytd9U/H+lFF31T8f6UUCJ4/un/eP86dTY/un/eP86dQM uUUUUxEHktHM
ZImBDn51fJPXse3U8dPpyai+zzfbPtGI/v42bjjbjG7p9/t9OPerlMeWONlV mAZzhV7n6CgC
p9lmafJSNV8zdlZWIxnP3CMZPr689aSW1nKeWiwsqzecrMTknfux046kZ5+n PFvz4f8AnrH9
/Z94fe9Pr7UjXMCy+U08YkyBsLjOT04oATy3+2eZsi2eXt3Y+fOemfT+tRLB IrCMxwvGJTIH
YkkEsTwuOvOM59/apJbuKJwm4M+5VKqwyuSACRnpyPzqXzE8zy9678btuece uKAKv2ebHk4j
8rzfM37ju+/vxtx+HX39qrtp8zo2Y4AzCYZDE4L9D0/D6flV9rmBZfKaeMSZ A2FxnJ6cUvnw
+d5Pmx+b/c3Dd69KAKSRvNd3IEQVDMjGRgQSFC8DjkZU9+/52HSc3qSKkZjV SuS5BwSpJxj2
9ake5gRmV541ZBlgXAIHv+Y/Ol8+H/nrH9/Z94fe9Pr7UAVFsnWblA6eaZMm dx1bd9zGOP1x
T/s832z7RiP7+Nm4424xu6ff7fTj3qx58PneT5sfm/3Nw3evSgTws4QSxliS u0MM5HUfhQAx
45DexSAJ5aoykljnJIPTH+z696haPffmMB/LJEsmUOCy4xz7/KeP7nuasmeE SGMyx7xjK7hk
Zxjj8R+dHnw+d5Pmx+b/AHNw3evSgCkkbzXdyBEFQzIxkYEEhQvA45GVPfv+ blsnWblA6eaZ
Mmdx1bd9zGOP1xVxJY5GZVYFkOGXuPqKfQBB5LSTCSVgAh+RUyD17nv0HHT6 8Gp6KKACiiig
AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKK
KKACiiigAooooAKKKKAGv901H/n/AD/n/wCvI/3TUf8An/P+f/rgDX+6f8/5 /wA/jHUj/dP+
f8/5/GOkMrXfVPx/pRRd9U/H+lFAieP7p/3j/OnVSaJmlYlpfmJ2ojkZ68+3 9T265WFf3yEN
Kpxu2PIWyOeR/h9D65NCuV2ubFFFFMkKg8lo5jJEwIc/Or5J69j26njp9OTU 9FAFP7PN9s+0
Yj+/jZuONuMbun3+30496b9lmafJSNV8zdlZWIxnP3CMZPr689a59Li9dWZZ 5yqjLHecD8aX
zr//AJ63P3d/3m+76/T3rTkJ5jeltZynlosLKs3nKzE5J37sdOOpGefpzxZ8 t/tnmbItnl7d
2Pnznpn0/rXMiXUWj8xXujHjO4FsfnTo3v5EL/aJ1TaSGZmw2ASQD68H8qOT zDmNz7LM0+Sk
ar5m7KysRjOfuEYyfX1560i2TrNygdPNMmTO46tu+5jHH64rA+03vl+Z59xs zjdvbGfTNL51
/wCV5vm3Pl/39zY/OjkDmNu5ilijVTGrxrcCQMqszcvuPAHGATznt71LPbTl pPK8sq8qS/MS
Dldvy9P9nr+GO9c+Li7MBlF3LgMFK+Y2eQSD+ho86/8AK83zbny/7+5sfnRy BzG8tk6zcoHT
zTJkzuOrbvuYxx+uKHtpy07LHDukmRwS5BKrjg/L/s/qfxwWmv0OGluVPPBZ h0GT+nNHnX/l
eb5tz5f9/c2Pzo5A5jolgkVhGY4XjEpkDsSSCWJ4XHXnGc+/tUa2TrNygdPN MmTO46tu+5jH
H64rBM1+E3mW5CgA5LNjB6GnM+opEJWkuRGRkNubGKOTzDmOk8lpJhJKwAQ/ IqZB69z36Djp
9eDU9cf9tuv+fmb/AL+Gnma/CbzLchQAclmxg9DR7MOY62iuS86/8rzfNufL /v7mx+dDTX6H
DS3Knngsw6DJ/TmjkDmOtorkvOv/ACvN8258v+/ubH507fqXl+Zuu9mM7stj Hrmjk8w5jq6K
5dTetAJftrAFGkwZWzgHH6npUXnX/wDz1ufu7/vN931+nvRyeYcx1tFcmJdR aPzFe6MeM7gW
x+dJ51/5Xm+bc+X/AH9zY/Ojk8w5jraK5PzdR2lt91gLuJy3T1+lIZr8JvMt yFAByWbGD0NH
J5hzHW0VyXnX/leb5tz5f9/c2Pzoaa/Q4aW5U88FmHQZP6c0cgcx1tFcl51/ 5Xm+bc+X/f3N
j86lU3rQCX7awBRpMGVs4Bx+p6UcnmHMdRRXH/bbr/n5m/7+GpPN1HaW33WA u4nLdPX6UezD
mOsorkvOv/K83zbny/7+5sfnUqjUWgMxnuFQDIJL/MMZ7fzNHJ5hzHUUVym/ UvL8zdd7MZ3Z
bGPXNPU3rQCX7awBRpMGVs4Bx+p6UuTzC51FFcl51/8A89bn7u/7zfd9fp70 ol1Fo/MV7ox4
zuBbH50+TzDmOsorkvOv/K83zbny/wC/ubH50vm6jtLb7rAXcTlunr9KOTzD mOsorkjNfhN5
luQoAOSzYweho86/8rzfNufL/v7mx+dHIHMdbRXJNNfocNLcqeeCzDoMn9Oa POv/ACvN8258
v+/ubH50cgcx1tFcvuu/LVhfMxZC4QO+cDOe2OMHv2qLzr/yvN8258v+/ubH 50cgcx1tFcuo
1FoDMZ7hUAyCS/zDGe38zQpvWgEv21gCjSYMrZwDj9T0pcnmFzqKK5JLm6aK SQ3UwCYA+c8k
9uvoCfwpHuL1FVmnnCsMqd5wfxp8gcx11FFFZlBRRRQA1/umo/8AP+f8/wD1 5H+6aj/z/n/P
/wBcAa/3T/n/AD/n8Y6kf7p/z/n/AD+NczxgkZPHH3TSGk3sRXfVPx/pRRdE MIyOhBI/SigB
u7MxdFLyR5AQd/mzn9enXp60Iha8Ezh03ZIVhyT3/D3+lOMcJ5aBJJGLYG0Z PJ70sAg3jFuk
UmNy8DkeoNLS5peXKalFFFUZBRRRQBx+/wAyIJIhyo+QpgfmO/Qc9frxUvmx /ZfI+f7md20Z
3Zzt6/d/rzXQyQWSMqvDAGc/KuwZb8KTy9P/ALlt9/Z0X73p9fatOdBZGB5y CHALsxj24Mag
5xj7+c49vTApYpog+9jMC8XlFVAwBt25689jjj/HdZNOWXymW1EhI+Qhc57c U2UWEb7PIgdy
yhlVVyuSACR6cj86OdBZHOZH2Ty8y79+7bn5MY649asG5DRDBKP5ezAhU/w4 +9nPP9a6D7PZ
eZ5fkwb8btu0Zx64pvl6f53k7Lbzf7mF3evSjnQWRzieV9keMtJ5jENgIMcA 8Zz71KbkNEME
o/l7MCFT/Dj72c8/1reMNr9oEJtI8spcNsXBwQD+PIo8vT/O8nZbeb/cwu71 6Uc6CyMVbuNX
Xa0xUGIgFQMhOo6/j9fzqM3IaIYJR/L2YEKn+HH3s55/rW8senyLuVLZgccg Kc5OB+uRR5en
+d5Oy283+5hd3r0o5kFkYKTRbYFZpsJE6kBB1bPI5/2v0HrUJMckEYYPvRCo AAweSc57demP
510gj09n2BLYsWI24XJI6j6imqNNkmaFVtjIGwU2rnP070c4WRy21vSrqTRb YFZpsJE6kBB1
bPI5/wBr9B610X2O1/59of8AvgVGI9PZ9gS2LFiNuFySOo+oocwtEw4rmIKA 4fmMoQI1JHy4
zuPJ+nHX83Ldxq67WmKgxEAqBkJ1HX8fr+dbXl6f53k7Lbzf7mF3evShY9Pk XcqWzA45AU5y
cD9cijmQWRgm5DRDBKP5ezAhU/w4+9nPP9ar+dL5ezZHjGP9UufzxnNdN5en +d5Oy283+5hd
3r0puNM8zy8Wm/djb8uc+mPWjnQWRzGZMYy2MYxntnOPz5qzDLEFj8wSArG0 Y2gHg7uev+10
/XtW07WS3Bh+w7j5ix5EQIJIz+g61MI9PZ9gS2LFiNuFySOo+oo5wsjA85BD gF2Yx7cGNQc4
x9/Oce3pgUpuQ0QwSj+XswIVP8OPvZzz/Wt7y9P87ydlt5v9zC7vXpSMmnLL 5TLaiQkfIQuc
9uKOdBZHPStHJbQory7o0wFKjbknJ5z7+nYVIk0W2BWabCROpAQdWzyOf9r9 B61usmnLL5TL
aiQkfIQuc9uKRhpi7twtBtbDZ28Hng+/Bo5wsjFiuYgoDh+YyhAjUkfLjO48 n6cdfzct3Grr
taYqDEQCoGQnUdfx+v51teXp/neTstvN/uYXd69KQpp27aVtdxbbjC5Len15 /WjmQWRhG5DR
DBKP5ezAhU/w4+9nPP8AWqmZMYy2MYxntnOPz5rppRYRvs8iB3LKGVVXK5IA JHpyPzpjtZLc
GH7DuPmLHkRAgkjP6DrRzoLI5ra3pVmVo5LaFFeXdGmApUbck5POff07Cum+ x2v/AD7Q/wDf
AqIpp27aVtdxbbjC5Len15/WnzhaJhG5DRDBKP5ezAhU/wAOPvZzz/Woz5LW iR7pd6ln/wBW
MEkDjr7frXReXp/neTstvN/uYXd69KheTThcCAQwO5bDABODnHOTyevAyaXO gsjn/Ol8vZsj
xjH+qXP54zmmZkxjLYxjGe2c4/PmunxpnmeXi037sbflzn0x61G7WS3Bh+w7 j5ix5EQIJIz+
g60+dBZGLDLEFj8wSArG0Y2gHg7uev8AtdP17UvnIIcAuzGPbgxqDnGPv5zj 29MCt8R6ez7A
lsWLEbcLkkdR9RR5en+d5Oy283+5hd3r0pc6CyME3IaIYJR/L2YEKn+HH3s5 5/rUcrRyW0KK
8u6NMBSo25Jyec+/p2FdCyacsvlMtqJCR8hC5z24oZNOWXymW1EhI+Qhc57c Uc6CyMJJotsC
s02EidSAg6tnkc/7X6D1p0VzEFAcPzGUIEakj5cZ3Hk/Tjr+e0w0xd24Wg2t hs7eDzwffg07
y9P87ydlt5v9zC7vXpRzoLIxVu41ddrTFQYiAVAyE6jr+P1/OozchohglH8v ZgQqf4cfeznn
+tbpTTt20ra7i23GFyW9Prz+tNlFhG+zyIHcsoZVVcrkgAkenI/OjmQWRh+e ggiiAYjyyrNs
AYZJPBznvjHGR9aU3IaIYJR/L2YEKn+HH3s55/rWz/onmujWIVVkCM5RMZOM d885HbvUvl6f
53k7Lbzf7mF3evSjnQWRzp8lrRI90u9Sz/6sYJIHHX2/WoMyYxlsYxjPbOcf nzXRvJpwuBAI
YHcthgAnBzjnJ5PXgZNDtZLcGH7DuPmLHkRAgkjP6DrRzhaJz8pzHFHHyqjc T6scZ/oPw96U
Psi2RISXHzF8H8h269ev0zXSvBarNHGLWFi+SfkHAHfp6kD8aVILKRnVYYCy n5l2DI+oo5ws
i1RRRWYBRRRQA1/umo/8/wCf8/8A15H+6aj/AM/5/wA//XAGv90/5/z/AJ/G qbdSSd7DJz2/
wq0/3T/n/P8An8apuFBI2McHHb/GguPN0I7lQqxqOgBH8qKLlgyxsOhBP8qK RL3HMrBhMil2
TICj13Eg02OJ5Lo3Dq6Drhxzk/0qxH90/wC8f506lYvndrFyiiiqMwoopjyx xsqswDOcKvc/
QUAVztimaSOVcFgJFcknqeh7Ac8dOD05NREEXhuC0XEm0puONuMbun3+CM9M AjPGatMypNDG
qAkg9ONqjr+u0Y9/agS24xiSIYbyxgjg/wB36+1BXulMofPJYxIqy5JWViOu fuEYzwcnscnq
KSZH2GNTAVjn80M7HOd+7HTjuM89D74uGe2SVYjLCsg+UJuAIz2x+VNkuYIX VBtZwVTahGUB
IAyM9OR+lAe6IXUXhkPk7Amwtj5856Z/u8H8QfSqwhVJm3bXQTbyTcOMZbd9 zGOOfyPTmr4M
QkEYKBwuQoxkL9PSmGe2SVYjLCsg+UJuAIz2x+VAe6QySP8AbVkHk+XGChJc g8kEnGO209/X
pg1CIVSZt210E28k3DjGW3fcxjjn8j05q6JbcTCESRCUDAQEbgOvSkae2iYq 0sKNGvILAFRx
+Q6fpQHumc9sSj7hbqx84E7icF+h+72wQfYH0IqUQqkzbtroJt5JuHGMtu+5 jHHP5HpzV0S2
4xiSIYbyxgjg/wB36+1AltxMIRJEJQMBARuA69KA90pSo+64YCDc06NkuQcL jg/L/sn2GT6V
OHMVxKVeLY8gZmYnK8AEAY5+6ec8c+lTLLb71RJItwyiqCM8dQP04o823WTy xJEHQAbcjKg4
xx+X6UB7o4zxDOXHBwf8/gfyPpVCVH3XDAQbmnRslyDhccH5f9k+wyfSrolt xMIRJEJQMBAR
uA69KWN4WYrGV3R/KVxgr+HYcfjQHumfNC29irx/LMHyZWAPzZxtHA6HnnoS ec4Y9sSj7hbq
x84E7icF+h+72wQfYH0IrWCqMYUDAwMDoKAqjGFAwMDA6CgPdM4QqkzbtroJ t5JuHGMtu+5j
HHP5HpzVkpbiQuZZMhskec+M/TOMcH24PpVgKoxhQMDAwOgoCqMYUDAwMDoK A90jL24YsdmQ
2Scd8Yz+QIz7H0qjkPdXIwiIZkYyNkMduOAMcjKt345P10gqjGFAwMDA6CgK oxhQMDAwOgoD
3TMmhbexV4/lmD5MrAH5s42jgdDzz0JPOcPKHzyWMSKsuSVlYjrn7hGM8HJ7 HJ6itAKoxhQM
DAwOgoCqMYUDAwMDoKA90zyh88ljEirLklZWI65+4RjPByexyeopZYs3Lv56 iMyKzDJ6jb27
/wCr6+7enN8KoxhQMDAwOgoCqMYUDAwMDoKA90okEAwlovKE3mF9x3ff3424 9iM57E9sU6Fj
Fd3DsIQsknLBzuAC4HG3noe/HPoauBVGMKBgYGB0FAVRjCgYGBgdBQHumdMj 7DGpgKxz+aGd
jnO/djpx3Geeh98XS9uGLHZkNknHfGM/kCM+x9KkCqMYUDAwMDoKAqjGFAwM DA6CgPdGmeIZ
y44OD/n8D+R9KqwsYru4dhCFkk5YOdwAXA4289D3459DVwKoxhQMDAwO


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: A Diagnostic Message for the Valid Schema [message #570047 is a reply to message #21174] Mon, 05 May 2003 10:47 Go to previous message
Eclipse UserFriend
Originally posted by: paechoi.earthlink.net

This is a multi-part message in MIME format.

------=_NextPart_000_0046_01C312D2.3011F060
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0047_01C312D2.3011F060"


------=_NextPart_001_0047_01C312D2.3011F060
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Ed,

Where could I get those two JARs for the xerces you mentioned. And
what version is that? Thank you.

Regards,


Pae

"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB64063.883B5444@ca.ibm.com...
Pae,=20
XSD only is tested to work with the version of Xerces in Eclipse.=20
=20

Pae Choi wrote:=20

Ed, I also tested with XSD v1.1.0 + EMF v1.1.0 with xerces v2.2.1 =
and v2.4.0, butam still having an exception. However, the exceptions are =
not same as previousone. The exceptions and the associated code snippet =
are as follows: // ### Exception with xerces v2.2.1 =
###java.lang.NullPointerException=20
at org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263) =20
at org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown =
Source)=20
at =
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDe=
cl(Unknown Source)=20
at =
org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(=
Unknown Source)=20
at =
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknow=
n Source)=20
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source) =

at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source) =

at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)=20
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown =
Source)=20
at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)=20
at org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDD=
emo2.java:87)=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101)=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)=20
java.lang.NullPointerException=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104)=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) // =
### Exception with xerces v2.4.0 ###java.lang.NullPointerException=20
at org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263) =20
at org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown =
Source)=20
at =
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDe=
cl(Unknown Source)=20
at =
org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(=
Unknown Source)=20
at =
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknow=
n Source)=20
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown =
Source)=20
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source) =

at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)=20
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown =
Source)=20
at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)=20
at org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDD=
emo2.java:87)=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101)=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)=20
java.lang.NullPointerException=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104)=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)=20
// ### Code Snippet ###/*=20
* EclipseXSDDemo2.java=20
*=20
* Created on May 2, 2003, 11:13 PM=20
*=20
*/ package org.paechoi.xsd.test; // W3C/DOM=20
import javax.xml.parsers.DocumentBuilderFactory;=20
import javax.xml.parsers.DocumentBuilder;=20
import org.w3c.dom.Document;=20
import org.w3c.dom.Element;=20
// Eclipse/XSD=20
import org.eclipse.xsd.util.XSDParser;=20
import org.eclipse.xsd.XSDFactory;=20
import org.eclipse.xsd.XSDSchema;=20
import org.eclipse.xsd.impl.XSDSchemaImpl;=20
import org.eclipse.xsd.util.XSDResourceImpl;=20
import org.eclipse.xsd.util.XSDResourceFactoryImpl;=20
import org.eclipse.xsd.XSDDiagnostic;=20
import org.eclipse.emf.ecore.resource.Resource;=20
import org.eclipse.emf.ecore.resource.ResourceSet;=20
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;=20
import org.eclipse.emf.common.util.EList;=20
import java.io.File;=20
import java.io.FileOutputStream;=20
import java.io.PrintStream;=20
import java.io.FileNotFoundException;=20
/**=20
*=20
* @author pae=20
*/=20
public class EclipseXSDDemo2 {=20
// private Document xmlDOM =3D null;=20
private XSDParser xsdParser =3D null; // instance =
initializer=20
{=20
// =
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =
new XSDResourceFactoryImpl());=20
}=20
/** Creates a new instance of EclipseXSDDemo2 */=20
public EclipseXSDDemo2() {=20
super(); // Redirect the System.err=20
try {=20
System.setErr(new PrintStream(new =
FileOutputStream("errors.log", true)));=20
}=20
catch (FileNotFoundException fileNotFoundException) {=20
}=20
}=20

/** Open a XML DOM */=20
private Document openXMLDOM(String uri) {=20
// Create a factory object for creating DOM parsers=20
DocumentBuilderFactory factory =3D =
DocumentBuilderFactory.newInstance();=20
DocumentBuilder builder =3D null;=20
Document xmlDoc =3D null;=20

// Build a new DOM=20
try {=20
// Now use the factory to create a DOM parser (a.k.a. a =
DocumentBuilder)=20
factory.setNamespaceAware(true);=20
builder =3D factory.newDocumentBuilder();=20
xmlDoc =3D builder.parse(uri);=20
}=20
catch (Exception ex) {=20
ex.printStackTrace();=20
return null;=20
}=20

return xmlDoc;=20
}=20

/** Open a XML DOM using XSDParser */=20
private Document openXMLDOMUsingXSDParser(String uri) {=20
Document xmlDoc =3D null;=20

// Build a new DOM=20
try {=20
xsdParser =3D new XSDParser();=20
xsdParser.parse(uri);=20
xmlDoc =3D xsdParser.getDocument();=20
}=20
catch (Exception ex) {=20
ex.printStackTrace();=20
return null;=20
}=20

return xmlDoc;=20
}=20

/** doIt */=20
private void doIt() {=20
try {=20
Document xmlDOM =3D =
openXMLDOMUsingXSDParser("http://schemas.xmlsoap.org/wsdl/");=20
// Document xmlDOM =3D =
openXMLDOMUsingXSDParser("./wsdl.xsd"); Element rootElement =
=3D xmlDOM.getDocumentElement(); XSDSchema xsdSchema =3D =
XSDFactory.eINSTANCE.createXSDSchema();=20
xsdSchema.setDocument(xmlDOM);=20
xsdSchema.setElement(rootElement);=20
xsdSchema.updateElement(); =
System.out.println("\n\n");=20
XSDResourceImpl.serialize(System.out, =
xsdSchema.getElement()); =
System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION =
>>>>>>>>>>>>>>>>>>>>>>>>>>");=20
xsdSchema.validate();=20
//EList eList =3D xsdMainSchema.getDiagnostics();=20
EList eList =3D xsdSchema.getAllDiagnostics();=20
for (int i =3D 0; i < eList.size(); i++) {=20
XSDDiagnostic xsdDiagnostic =3D =
(XSDDiagnostic)eList.get(i);=20
System.out.println(i + ": At line #" + =
xsdDiagnostic.getLine() + "(" + xsdDiagnostic.getColumn() + "), " + =
xsdDiagnostic.getMessage() + "; Node =3D [" + =
xsdDiagnostic.getNode().getNodeName() + "]");=20
}=20
=
System.out.println("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<=
<<<<<<<");=20
}=20
catch (Exception ex) {=20
ex.printStackTrace();=20
}=20
}=20

/** main - the main entry */=20
public static void main(String[] args) {=20
EclipseXSDDemo2 app =3D new EclipseXSDDemo2();=20
app.doIt();=20
}=20
}Regards, Pae=20

"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB4F504.6527C9F2@ca.ibm.com...Pae,=20
No, the standalone version worked too. What exception did you =
see?=20
=20

Pae Choi wrote:=20

Ed, That surely helped with v1.0.2. And THANK you for that. One =
quick question is:Do you also have an exception thrown when running with =
v1.1.0 as standalone. Regards, Pae=20
"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB3A206.9781C42@ca.ibm.com...Pae,=20
The XSD model expects a DOM that's namespace aware, so this =
addition to your sample code will improve your result:=20

private Document openXMLDOM(String uri) {=20
// Create a factory object for creating DOM parsers=20
DocumentBuilderFactory factory =3D =
DocumentBuilderFactory.newInstance();=20
DocumentBuilder builder =3D null;=20
Document xmlDoc =3D null;=20

factory.setNamespaceAware(true);=20

Without this, element.getNamespaceURI and element.getLocalName =
both return null...=20
=20

Pae Choi wrote:=20

Ed, I have a sample code that test a DOM of XML Schema with =
Eclipse/XSD andproducing two different results. With v1.0.2, it seems ok =
except the diagnostic message we are discussing.With v1.1.0, it throws =
an exception.Regards, Pae P.S.: The code snippet is as follows: // =
################## CODE SNIPPET ##################/*=20
* EclipseXSDDemo1.java=20
*=20
* Created on May 2, 2003, 11:13 PM=20
*/ package org.paechoi.xsd.test;// W3C/DOM=20
import javax.xml.parsers.DocumentBuilderFactory;=20
import javax.xml.parsers.DocumentBuilder;=20
import org.w3c.dom.Document;=20
import org.w3c.dom.Element;=20
// Eclipse/XSD=20
import org.eclipse.xsd.XSDFactory;=20
import org.eclipse.xsd.XSDSchema;=20
import org.eclipse.xsd.impl.XSDSchemaImpl;=20
import org.eclipse.xsd.util.XSDResourceImpl;=20
import org.eclipse.xsd.util.XSDResourceFactoryImpl;=20
import org.eclipse.xsd.XSDDiagnostic;=20
import org.eclipse.emf.ecore.resource.Resource;=20
import org.eclipse.emf.ecore.resource.ResourceSet;=20
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; =

import org.eclipse.emf.common.util.EList;=20
import java.io.File;=20
/**=20
*=20
* @author pae=20
*/=20
public class EclipseXSDDemo1 {=20
// private Document xmlDOM =3D null;=20
// instance initializer=20
{=20
// =
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =
new XSDResourceFactoryImpl());=20
}=20

/** Creates a new instance of EclipseXSDDemo1 */=20
public EclipseXSDDemo1() {=20
super();=20
}=20

/** Open a XML DOM */=20
private Document openXMLDOM(String uri) {=20
// Create a factory object for creating DOM parsers=20
DocumentBuilderFactory factory =3D =
DocumentBuilderFactory.newInstance();=20
DocumentBuilder builder =3D null;=20
Document xmlDoc =3D null;=20

// Build a new DOM=20
try {=20
// Now use the factory to create a DOM parser =
(a.k.a. a DocumentBuilder)=20
builder =3D factory.newDocumentBuilder();=20
xmlDoc =3D builder.parse(uri);=20
}=20
catch (Exception ex) {=20
ex.printStackTrace();=20
return null;=20
}=20

return xmlDoc;=20
}=20

/** doIt */=20
private void doIt() {=20
Document xmlDOM =3D =
openXMLDOM("http://schemas.xmlsoap.org/wsdl/");=20
// Document xmlDOM =3D openXMLDOM("./wsdl.xsd"); =
Element rootElement =3D xmlDOM.getDocumentElement(); =
XSDSchema xsdSchema =3D XSDFactory.eINSTANCE.createXSDSchema();=20
xsdSchema.setDocument(xmlDOM);=20
xsdSchema.setElement(rootElement);=20
xsdSchema.updateElement(); =
System.out.println("\n\n");=20
XSDResourceImpl.serialize(System.out, =
xsdSchema.getElement()); =
System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION =
>>>>>>>>>>>>>>>>>>>>>>>>>>");=20
xsdSchema.validate();=20
//EList eList =3D xsdMainSchema.getDiagnostics();=20
EList eList =3D xsdSchema.getAllDiagnostics();=20
for (int i =3D 0; i < eList.size(); i++) {=20
XSDDiagnostic xsdDiagnostic =3D =
(XSDDiagnostic)eList.get(i);=20
System.out.println(i + ": Diagnostic Message =3D =
[" + xsdDiagnostic.getMessage() + "]");=20
}=20
=
System.out.println("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<=
<<<<<<<");=20
}=20

/** main - the main entry */=20
public static void main(String[] args) {=20
EclipseXSDDemo1 app =3D new EclipseXSDDemo1();=20
app.doIt();=20
}=20
}=20

"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB25ED9.AE2CB299@ca.ibm.com...Pae,=20
I'm seeing this result with the just published 1.1.0 =
driver:=20


The schema isn't valid.=20
=20
Pae Choi wrote:=20

I have a simple test schema as follows:=20
<?xml version=3D"1.0" encoding=3D"UTF-8"?>=20
<!--W3C Schema generated by Pae -->=20
<xsd:schema =
xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema"=20
elementFormDefault=3D"qualified">=20
<xsd:element name=3D"CommonLogin">=20
<xsd:complexType>=20
<xsd:sequence>=20
<xsd:element name=3D"username" ref=3D"usernameRef"/> =

<xsd:element name=3D"password" ref=3D"passwordRef"/> =

</xsd:sequence>=20
</xsd:complexType>=20
</xsd:element>=20
<xsd:element name=3D"passwordRef" type=3D"xsd:string"/> =

<xsd:element name=3D"usernameRef" type=3D"xsd:string"/> =

</xsd:schema>=20

This is a very simple sample, but it is a valid schema. =
But when=20
I use the validate() and getDiagnostics() methods in the =
XSDSchema=20
interface it gives me a message as follows:=20

XSD: The element '#null' is not permitted as constrained =
by 'XML Schema ';=20
expecting schema=20

I do not understand what the message is saying. Any =
comments?=20

Pae


------=_NextPart_001_0047_01C312D2.3011F060
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2600.0" name=3DGENERATOR></HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT size=3D2>Ed,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Where could I get those two JARs for the xerces you =
mentioned.=20
And</FONT></DIV>
<DIV><FONT size=3D2>what version is that? Thank you.</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Regards,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Pae</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV>"Ed Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB64063.883B5444@ca.ibm.com">news:3EB64063.883B5444@ca.ibm.=
com</A>...</DIV>Pae,=20

<P>XSD only is tested to work with the version of Xerces in Eclipse.=20
<BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">&nbsp;<FONT size=3D-1>Ed,</FONT> <FONT =
size=3D-1>I also=20
tested with XSD v1.1.0 + EMF v1.1.0 with xerces v2.2.1 and v2.4.0, =
butam=20
still having an exception. However, the exceptions are not same as=20
previousone. The exceptions and the associated code snippet are as=20
follows:</FONT> <FONT size=3D-1>// ### Exception with xerces v2.2.1=20
###java.lang.NullPointerException</FONT> <BR><FONT =
size=3D-1>&nbsp;at=20
org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263) </FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown =
Source)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
=
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDe=
cl(Unknown=20
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
=
org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(=
Unknown=20
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
=
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknow=
n=20
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.parsers.DTDConfiguration.parse(Unknown =
Source)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.parsers.DTDConfiguration.parse(Unknown =
Source)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at =
org.apache.xerces.parsers.XMLParser.parse(Unknown=20
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown =
Source)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
javax.xml.parsers.SAXParser.parse(SAXParser.java:345)</FONT > =
<BR><FONT=20
size=3D-1>&nbsp;at=20
org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)</FONT > =
<BR><FONT=20
size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDD=
emo2.java:87)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101) </FONT=
>=20
<BR><FONT size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) </FONT=
>=20
<BR><FONT size=3D-1>java.lang.NullPointerException</FONT> <BR><FONT=20
size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104) </FONT=
>=20
<BR><FONT size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) </FONT=
>=20
<FONT size=3D-1>// ### Exception with xerces v2.4.0=20
###java.lang.NullPointerException</FONT> <BR><FONT =
size=3D-1>&nbsp;at=20
org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263) </FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown =
Source)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
=
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDe=
cl(Unknown=20
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
=
org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(=
Unknown=20
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
=
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknow=
n=20
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.parsers.XML11Configuration.parse(Unknown =
Source)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.parsers.DTDConfiguration.parse(Unknown =
Source)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at =
org.apache.xerces.parsers.XMLParser.parse(Unknown=20
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown =
Source)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
javax.xml.parsers.SAXParser.parse(SAXParser.java:345)</FONT > =
<BR><FONT=20
size=3D-1>&nbsp;at=20
org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)</FONT > =
<BR><FONT=20
size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDD=
emo2.java:87)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101) </FONT=
>=20
<BR><FONT size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) </FONT=
>=20
<BR><FONT size=3D-1>java.lang.NullPointerException</FONT> <BR><FONT=20
size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104) </FONT=
>=20
<BR><FONT size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) </FONT=
>=20
<BR>&nbsp;<FONT size=3D-1>// ### Code Snippet ###/*</FONT> <BR><FONT =

size=3D-1>&nbsp;* EclipseXSDDemo2.java</FONT> <BR><FONT =
size=3D-1>&nbsp;*</FONT>=20
<BR><FONT size=3D-1>&nbsp;* Created on May 2, 2003, 11:13 PM</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;*</FONT> <BR><FONT size=3D-1>&nbsp;*/</FONT> <FONT=20
size=3D-1>package org.paechoi.xsd.test;</FONT> <FONT size=3D-1>// =
W3C/DOM</FONT>=20
<BR><FONT size=3D-1>import&nbsp;=20
javax.xml.parsers.DocumentBuilderFactory;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; javax.xml.parsers.DocumentBuilder;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; org.w3c.dom.Document;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; org.w3c.dom.Element;</FONT> <BR><FONT =
size=3D-1>//=20
Eclipse/XSD</FONT> <BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.xsd.util.XSDParser;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
org.eclipse.xsd.XSDFactory;</FONT> <BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.xsd.XSDSchema;</FONT> <BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.xsd.impl.XSDSchemaImpl;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
org.eclipse.xsd.util.XSDResourceImpl;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
org.eclipse.xsd.util.XSDResourceFactoryImpl;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; org.eclipse.xsd.XSDDiagnostic;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; =
org.eclipse.emf.ecore.resource.Resource;</FONT>=20
<BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.emf.ecore.resource.ResourceSet;</FONT> <BR><FONT=20
size=3D-1>import&nbsp;=20
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; org.eclipse.emf.common.util.EList;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; java.io.File;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
java.io.FileOutputStream;</FONT> <BR><FONT size=3D-1>import&nbsp;=20
java.io.PrintStream;</FONT> <BR><FONT size=3D-1>import&nbsp;=20
java.io.FileNotFoundException;</FONT> <BR><FONT size=3D-1>/**</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;*</FONT> <BR><FONT size=3D-1>&nbsp;* @author&nbsp; =
pae</FONT>=20
<BR><FONT size=3D-1>&nbsp;*/</FONT> <BR><FONT size=3D-1>public class =

EclipseXSDDemo2 {</FONT> <BR><FONT size=3D-1>//&nbsp;&nbsp;&nbsp;=20
private&nbsp;&nbsp;&nbsp;&nbsp;=20
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp; xmlDOM =3D =
null;</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp;=20
private&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&am p;nbsp;&nbsp;&nbsp;=20
XSDParser&nbsp;&nbsp; xsdParser =3D null;</FONT>&nbsp;<FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; // instance initializer</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; {</FONT> <BR><FONT=20
size=3D-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;=20
=
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =
new=20
XSDResourceFactoryImpl());</FONT> <BR><FONT =
size=3D-1>&nbsp;&nbsp;&nbsp;=20
}</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** Creates a new instance of=20
EclipseXSDDemo2 */</FONT> <BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; =
public=20
EclipseXSDDemo2() {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
super();</FONT>&nbsp;<FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Redirect the =

System.err</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; try =
{</FONT>=20
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;=20
System.setErr(new PrintStream(new FileOutputStream("errors.log",=20
true)));</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; }</FONT> =
<BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; catch=20
(FileNotFoundException fileNotFoundException) {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; }</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM */</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String uri) =
{</FONT>=20
<BR><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // =
Create a=20
factory object for creating DOM parsers</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilderFactory&nbsp; factory =3D=20
DocumentBuilderFactory.newInstance();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp; =
builder =3D=20
null;</FONT> <BR><FONT =
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D null;</FONT>=20
<P><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // =
Build a new=20
DOM</FONT> <BR><FONT =
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try=20
{</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
// Now use the factory to create a DOM parser (a.k.a. a=20
DocumentBuilder)</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
factory.setNamespaceAware(true);</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
builder =3D factory.newDocumentBuilder();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xmlDoc =3D builder.parse(uri);</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT> =
<BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch =
(Exception ex)=20
{</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
ex.printStackTrace();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
return null;</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT>=20
<P><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; return =

xmlDoc;</FONT> <BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM using =
XSDParser=20
*/</FONT> <BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; private Document=20
openXMLDOMUsingXSDParser(String uri) {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
Document&nbsp;&nbsp;&nbsp; xmlDoc =3D null;</FONT>=20
<P><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // =
Build a new=20
DOM</FONT> <BR><FONT =
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try=20
{</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xsdParser =3D new XSDParser();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xsdParser.parse(uri);</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xmlDoc =3D xsdParser.getDocument();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT> =
<BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch =
(Exception ex)=20
{</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
ex.printStackTrace();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
return null;</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT>=20
<P><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; return =

xmlDoc;</FONT> <BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** doIt */</FONT> <BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; private void doIt() {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try {</FONT> =
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
Document xmlDOM =3D openXMLDOMUsingXSDParser("<A=20
=
href=3D"http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl=
/</A>");</FONT>=20
<BR><FONT=20
=
size=3D-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;=20
Document xmlDOM =3D =
openXMLDOMUsingXSDParser("./wsdl.xsd");</FONT>&nbsp; <FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
Element rootElement =3D =
xmlDOM.getDocumentElement();</FONT>&nbsp;<FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
XSDSchema xsdSchema =3D =
XSDFactory.eINSTANCE.createXSDSchema();</FONT>=20
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xsdSchema.setDocument(xmlDOM);</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xsdSchema.setElement(rootElement);</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xsdSchema.updateElement();</FONT>&nbsp;<FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
System.out.println("\n\n");</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
XSDResourceImpl.serialize(System.out,=20
xsdSchema.getElement());</FONT>&nbsp;<FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
=
System.out.println(" &gt;&gt;&gt;&gt;&gt;&gt;&gt;& ;gt;&gt;&gt;&gt;&gt;&gt;&=
gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;& amp;gt;=20
VALIDATION=20
=
&gt;&gt;&gt;&gt;&gt;&gt;&gt;& ;gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt;&gt;&=
gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;"); </FONT>=20
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xsdSchema.validate();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
//EList eList =3D xsdMainSchema.getDiagnostics();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
EList eList =3D xsdSchema.getAllDiagnostics();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
for (int i =3D 0; i &lt; eList.size(); i++) {</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;=20
XSDDiagnostic xsdDiagnostic =3D (XSDDiagnostic)eList.get(i);</FONT> =
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;=20
System.out.println(i + ": At line #" + xsdDiagnostic.getLine() + "(" =
+=20
xsdDiagnostic.getColumn() + "), " + xsdDiagnostic.getMessage() + "; =
Node =3D=20
[" + xsdDiagnostic.getNode().getNodeName() + "]");</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
}</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
=
System.out.println(" &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&=
lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;& amp;lt;&lt;&lt;&lt;&lt;&lt;&lt;& lt;&lt;&lt;&l=
t;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&a mp;lt;&lt;&lt;&lt;&lt;&lt;&lt;&l t;&lt;&lt;&lt=
;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&am p;lt;&lt;&lt; ");</FONT>=20
<BR><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
}</FONT>=20
<BR><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch =

(Exception ex) {</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
ex.printStackTrace();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** main - the main entry =
*/</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; public static void =
main(String[] args)=20
{</FONT> <BR><FONT =
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
EclipseXSDDemo2 app =3D new EclipseXSDDemo2();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
app.doIt();</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT> <BR><FONT=20
size=3D-1>}Regards,</FONT>&nbsp; <FONT size=3D-1>Pae</FONT>=20
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed=20
Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB4F504.6527C9F2@ca.ibm.com">news:3EB4F504.6527C9F2@ca.ibm.=
com</A>...Pae,=20

<P>No, the standalone version worked too.&nbsp; What exception did =
you=20
see? <BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">&nbsp;<FONT size=3D-1>Ed,</FONT> <FONT=20
size=3D-1>That surely helped with v1.0.2. And THANK you for =
that. One=20
quick question is:Do you also have an exception thrown when =
running with=20
v1.1.0 as standalone.</FONT> <FONT =
size=3D-1>Regards,</FONT>&nbsp; <FONT=20
size=3D-1>Pae</FONT>=20
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: =
5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed=20
Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB3A206.9781C42@ca.ibm.com">news:3EB3A206.9781C42@ca.ibm.co=
m</A>...Pae,=20

<P>The XSD model expects a DOM that's namespace aware, so =
<FONT=20
color=3D#3333ff>this</FONT> addition to your sample code will =
improve=20
your result:=20
<P>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String uri) =
{=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create a =
factory=20
object for creating DOM parsers=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilderFactory&nbsp; factory =3D=20
DocumentBuilderFactory.newInstance();=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;=20
builder =3D null; =
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D null;=20
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT =
color=3D#3333ff>&nbsp;&nbsp;=20
factory.setNamespaceAware(true);</FONT>=20
<P>Without this, element.getNamespaceURI and =
element.getLocalName both=20
return null... <BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">
<STYLE></STYLE>
<FONT size=3D-1>Ed,</FONT> <FONT size=3D-1>I have a sample =
code that=20
test a DOM of XML Schema with Eclipse/XSD andproducing two =
different=20
results.</FONT> <FONT size=3D-1>With v1.0.2, it seems ok =
except the=20
diagnostic message we are discussing.With v1.1.0, it throws =
an=20
exception.Regards,</FONT>&nbsp; <FONT size=3D-1>Pae</FONT> =
<FONT=20
size=3D-1>P.S.: The code snippet is as follows:</FONT> <FONT =

size=3D-1>// ################## CODE SNIPPET=20
##################/*</FONT> <BR><FONT size=3D-1>&nbsp;*=20
EclipseXSDDemo1.java</FONT> <BR><FONT =
size=3D-1>&nbsp;*</FONT>=20
<BR><FONT size=3D-1>&nbsp;* Created on May 2, 2003, 11:13 =
PM</FONT>=20
<BR><FONT size=3D-1>&nbsp;*/</FONT> <FONT size=3D-1>package=20
org.paechoi.xsd.test;// W3C/DOM</FONT> <BR><FONT=20
size=3D-1>import&nbsp;=20
javax.xml.parsers.DocumentBuilderFactory;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; =
javax.xml.parsers.DocumentBuilder;</FONT>=20
<BR><FONT size=3D-1>import&nbsp; =
org.w3c.dom.Document;</FONT>=20
<BR><FONT size=3D-1>import&nbsp; org.w3c.dom.Element;</FONT> =
<BR><FONT=20
size=3D-1>// Eclipse/XSD</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
org.eclipse.xsd.XSDFactory;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
org.eclipse.xsd.XSDSchema;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
org.eclipse.xsd.impl.XSDSchemaImpl;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; =
org.eclipse.xsd.util.XSDResourceImpl;</FONT>=20
<BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.xsd.util.XSDResourceFactoryImpl;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; org.eclipse.xsd.XSDDiagnostic;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; =
org.eclipse.emf.ecore.resource.Resource;</FONT>=20
<BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.emf.ecore.resource.ResourceSet;</FONT> <BR><FONT =

size=3D-1>import&nbsp;=20
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;</FONT>=20
<BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.emf.common.util.EList;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; java.io.File;</FONT> <BR><FONT=20
size=3D-1>/**</FONT> <BR><FONT size=3D-1>&nbsp;*</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;* @author&nbsp; pae</FONT> <BR><FONT=20
size=3D-1>&nbsp;*/</FONT> <BR><FONT size=3D-1>public class=20
EclipseXSDDemo1 {</FONT> <BR><FONT =
size=3D-1>//&nbsp;&nbsp;&nbsp;=20
private&nbsp;&nbsp;&nbsp;&nbsp;=20
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp; xmlDOM =
=3D=20
null;</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; // instance =
initializer</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; {</FONT> <BR><FONT=20
size=3D-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;=20
=
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =

new XSDResourceFactoryImpl());</FONT> <BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** Creates a new =
instance of=20
EclipseXSDDemo1 */</FONT> <BR><FONT =
size=3D-1>&nbsp;&nbsp;&nbsp;=20
public EclipseXSDDemo1() {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
super();</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM =
*/</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; private Document=20
openXMLDOM(String uri) {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // =
Create a=20
factory object for creating DOM parsers</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilderFactory&nbsp; factory =3D=20
DocumentBuilderFactory.newInstance();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;=20
builder =3D null;</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D null;</FONT>=20
<P><FONT =
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Build=20
a new DOM</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try =
{</FONT>=20
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
// Now use the factory to create a DOM parser (a.k.a. a=20
DocumentBuilder)</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
builder =3D factory.newDocumentBuilder();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xmlDoc =3D builder.parse(uri);</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
}</FONT>=20
<BR><FONT =
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch=20
(Exception ex) {</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
ex.printStackTrace();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
return null;</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
}</FONT>=20
<P><FONT =
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; return=20
xmlDoc;</FONT> <BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; =
}</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** doIt */</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; private void doIt() {</FONT> =
<BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
Document xmlDOM =3D=20
openXMLDOM("<A=20
=
href=3D"http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl=
/</A>");</FONT>=20
<BR><FONT =
size=3D-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;=20
Document xmlDOM =3D =
openXMLDOM("./wsdl.xsd");</FONT>&nbsp;<FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Element =

rootElement =3D =
xmlDOM.getDocumentElement();</FONT>&nbsp;<FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
XSDSchema=20
xsdSchema =3D XSDFactory.eINSTANCE.createXSDSchema();</FONT> =
<BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
xsdSchema.setDocument(xmlDOM);</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;
Re: A Diagnostic Message for the Valid Schema [message #570264 is a reply to message #21214] Mon, 05 May 2003 11:19 Go to previous message
Ed Merks is currently offline Ed MerksFriend
Messages: 33142
Registered: July 2009
Senior Member
--------------06FA1DA87AC1B7722CE0378E
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Pae,

This is described in the FAQ.

The files are plugins/org.apache.xerces_4.0.7/xmlParserAPIs.jar, and
plugins/org.apache.xerces_4.0.7/xercesImpl.jar. Version Xerces-J 2.0.2
(or XML4J 4.0.7) comes with Eclipse 2.1.0.


Pae Choi wrote:

> Ed, Where could I get those two JARs for the xerces you mentioned.
> Andwhat version is that? Thank you. Regards, Pae
>
> "Ed Merks" <merks@ca.ibm.com> wrote in message
> news:3EB64063.883B5444@ca.ibm.com...Pae,
>
> XSD only is tested to work with the version of Xerces in
> Eclipse.
>
>
> Pae Choi wrote:
>
> > Ed, I also tested with XSD v1.1.0 + EMF v1.1.0 with
> > xerces v2.2.1 and v2.4.0, butam still having an exception.
> > However, the exceptions are not same as previousone. The
> > exceptions and the associated code snippet are as
> > follows:// ### Exception with xerces v2.2.1
> > ###java.lang.NullPointerException
> > at
> > org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263)
> >
> > at
> > org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown
> > Source)
> > at
> > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDecl(Unknown
> > Source)
> > at
> > org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(Unknown
> > Source)
> > at
> > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknown
> > Source)
> > at
> > org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
> > Source)
> > at
> > org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
> > Source)
> > at org.apache.xerces.parsers.XMLParser.parse(Unknown
> > Source)
> > at
> > org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
> > Source)
> > at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
> > at
> > org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)
> > at
> > org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDDemo2.java:87)
> >
> > at
> > org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101)
> >
> > at
> > org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)
> >
> > java.lang.NullPointerException
> > at
> > org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104)
> >
> > at
> > org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)//
> > ### Exception with xerces v2.4.0
> > ###java.lang.NullPointerException
> > at
> > org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263)
> >
> > at
> > org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown
> > Source)
> > at
> > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDecl(Unknown
> > Source)
> > at
> > org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(Unknown
> > Source)
> > at
> > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknown
> > Source)
> > at
> > org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> > Source)
> > at
> > org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
> > Source)
> > at org.apache.xerces.parsers.XMLParser.parse(Unknown
> > Source)
> > at
> > org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
> > Source)
> > at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
> > at
> > org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)
> > at
> > org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDDemo2.java:87)
> >
> > at
> > org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101)
> >
> > at
> > org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)
> >
> > java.lang.NullPointerException
> > at
> > org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104)
> >
> > at
> > org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)
> >
> > // ### Code Snippet ###/*
> > * EclipseXSDDemo2.java
> > *
> > * Created on May 2, 2003, 11:13 PM
> > *
> > */ package org.paechoi.xsd.test;// W3C/DOM
> > import javax.xml.parsers.DocumentBuilderFactory;
> > import javax.xml.parsers.DocumentBuilder;
> > import org.w3c.dom.Document;
> > import org.w3c.dom.Element;
> > // Eclipse/XSD
> > import org.eclipse.xsd.util.XSDParser;
> > import org.eclipse.xsd.XSDFactory;
> > import org.eclipse.xsd.XSDSchema;
> > import org.eclipse.xsd.impl.XSDSchemaImpl;
> > import org.eclipse.xsd.util.XSDResourceImpl;
> > import org.eclipse.xsd.util.XSDResourceFactoryImpl;
> > import org.eclipse.xsd.XSDDiagnostic;
> > import org.eclipse.emf.ecore.resource.Resource;
> > import org.eclipse.emf.ecore.resource.ResourceSet;
> > import
> > org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
> > import org.eclipse.emf.common.util.EList;
> > import java.io.File;
> > import java.io.FileOutputStream;
> > import java.io.PrintStream;
> > import java.io.FileNotFoundException;
> > /**
> > *
> > * @author pae
> > */
> > public class EclipseXSDDemo2 {
> > // private Document xmlDOM = null;
> > private XSDParser xsdParser = null; //
> > instance initializer
> > {
> > //
> > Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd",
> > new XSDResourceFactoryImpl());
> > }
> >
> > /** Creates a new instance of EclipseXSDDemo2 */
> > public EclipseXSDDemo2() {
> > super(); // Redirect the System.err
> > try {
> > System.setErr(new PrintStream(new
> > FileOutputStream("errors.log", true)));
> > }
> > catch (FileNotFoundException
> > fileNotFoundException) {
> > }
> > }
> >
> > /** Open a XML DOM */
> > private Document openXMLDOM(String uri) {
> > // Create a factory object for creating DOM
> > parsers
> > DocumentBuilderFactory factory =
> > DocumentBuilderFactory.newInstance();
> > DocumentBuilder builder = null;
> > Document xmlDoc = null;
> >
> > // Build a new DOM
> > try {
> > // Now use the factory to create a DOM parser
> > (a.k.a. a DocumentBuilder)
> > factory.setNamespaceAware(true);
> > builder = factory.newDocumentBuilder();
> > xmlDoc = builder.parse(uri);
> > }
> > catch (Exception ex) {
> > ex.printStackTrace();
> > return null;
> > }
> >
> > return xmlDoc;
> > }
> >
> > /** Open a XML DOM using XSDParser */
> > private Document openXMLDOMUsingXSDParser(String uri)
> > {
> > Document xmlDoc = null;
> >
> > // Build a new DOM
> > try {
> > xsdParser = new XSDParser();
> > xsdParser.parse(uri);
> > xmlDoc = xsdParser.getDocument();
> > }
> > catch (Exception ex) {
> > ex.printStackTrace();
> > return null;
> > }
> >
> > return xmlDoc;
> > }
> >
> > /** doIt */
> > private void doIt() {
> > try {
> > Document xmlDOM =
> > openXMLDOMUsingXSDParser("http://schemas.xmlsoap.org/wsdl/");
> >
> > // Document xmlDOM =
> > openXMLDOMUsingXSDParser("./wsdl.xsd");
> > Element rootElement =
> > xmlDOM.getDocumentElement(); XSDSchema
> > xsdSchema = XSDFactory.eINSTANCE.createXSDSchema();
> > xsdSchema.setDocument(xmlDOM);
> > xsdSchema.setElement(rootElement);
> > xsdSchema.updateElement();
> > System.out.println("\n\n");
> > XSDResourceImpl.serialize(System.out,
> > xsdSchema.getElement());
> > System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION
> > >>>>>>>>>>>>>>>>>>>>>>>>>>");
> > xsdSchema.validate();
> > //EList eList =
> > xsdMainSchema.getDiagnostics();
> > EList eList = xsdSchema.getAllDiagnostics();
> > for (int i = 0; i < eList.size(); i++) {
> > XSDDiagnostic xsdDiagnostic =
> > (XSDDiagnostic)eList.get(i);
> > System.out.println(i + ": At line #" +
> > xsdDiagnostic.getLine() + "(" + xsdDiagnostic.getColumn()
> > + "), " + xsdDiagnostic.getMessage() + "; Node = [" +
> > xsdDiagnostic.getNode().getNodeName() + "]");
> > }
> >
> > System.out.println("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<");
> >
> > }
> > catch (Exception ex) {
> > ex.printStackTrace();
> > }
> > }
> >
> > /** main - the main entry */
> > public static void main(String[] args) {
> > EclipseXSDDemo2 app = new EclipseXSDDemo2();
> > app.doIt();
> > }
> > }Regards, Pae
> >
> > "Ed Merks" <merks@ca.ibm.com> wrote in message
> > news:3EB4F504.6527C9F2@ca.ibm.com...Pae,
> >
> > No, the standalone version worked too. What
> > exception did you see?
> >
> >
> > Pae Choi wrote:
> >
> > > Ed, That surely helped with v1.0.2. And THANK
> > > you for that. One quick question is:Do you also
> > > have an exception thrown when running with
> > > v1.1.0 as standalone.Regards, Pae
> > >
> > > "Ed Merks" <merks@ca.ibm.com> wrote
> > > in message
> > > news:3EB3A206.9781C42@ca.ibm.com...Pae,
> > >
> > > The XSD model expects a DOM that's
> > > namespace aware, so this addition to
> > > your sample code will improve your
> > > result:
> > >
> > > private Document
> > > openXMLDOM(String uri) {
> > > // Create a factory object
> > > for creating DOM parsers
> > > DocumentBuilderFactory
> > > factory =
> > > DocumentBuilderFactory.newInstance();
> > >
> > > DocumentBuilder
> > > builder = null;
> > > Document
> > > xmlDoc = null;
> > >
> > >
> > > factory.setNamespaceAware(true);
> > >
> > > Without this, element.getNamespaceURI
> > > and element.getLocalName both return
> > > null...
> > >
> > >
> > > Pae Choi wrote:
> > >
> > > > Ed, I have a sample code that test
> > > > a DOM of XML Schema with
> > > > Eclipse/XSD andproducing two
> > > > different results. With v1.0.2, it
> > > > seems ok except the diagnostic
> > > > message we are discussing.With
> > > > v1.1.0, it throws an
> > > > exception.Regards, Pae P.S.: The
> > > > code snippet is as follows://
> > > > ################## CODE SNIPPET
> > > > ##################/*
> > > > * EclipseXSDDemo1.java
> > > > *
> > > > * Created on May 2, 2003, 11:13 PM
> > > >
> > > > */ package org.paechoi.xsd.test;//
> > > > W3C/DOM
> > > > import
> > > > javax.xml.parsers.DocumentBuilderFactory;
> > > >
> > > > import
> > > > javax.xml.parsers.DocumentBuilder;
> > > > import org.w3c.dom.Document;
> > > > import org.w3c.dom.Element;
> > > > // Eclipse/XSD
> > > > import org.eclipse.xsd.XSDFactory;
> > > >
> > > > import org.eclipse.xsd.XSDSchema;
> > > > import
> > > > org.eclipse.xsd.impl.XSDSchemaImpl;
> > > >
> > > > import
> > > > org.eclipse.xsd.util.XSDResourceImpl;
> > > >
> > > > import
> > > > org.eclipse.xsd.util.XSDResourceFactoryImpl;
> > > >
> > > > import
> > > > org.eclipse.xsd.XSDDiagnostic;
> > > > import
> > > > org.eclipse.emf.ecore.resource.Resource;
> > > >
> > > > import
> > > > org.eclipse.emf.ecore.resource.ResourceSet;
> > > >
> > > > import
> > > > org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
> > > >
> > > > import
> > > > org.eclipse.emf.common.util.EList;
> > > > import java.io.File;
> > > > /**
> > > > *
> > > > * @author pae
> > > > */
> > > > public class EclipseXSDDemo1 {
> > > > // private Document
> > > > xmlDOM = null;
> > > >
> > > > // instance initializer
> > > > {
> > > > //
> > > > Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd",
> > > > new XSDResourceFactoryImpl());
> > > > }
> > > >
> > > > /** Creates a new instance of
> > > > EclipseXSDDemo1 */
> > > > public EclipseXSDDemo1() {
> > > > super();
> > > > }
> > > >
> > > > /** Open a XML DOM */
> > > > private Document
> > > > openXMLDOM(String uri) {
> > > > // Create a factory object
> > > > for creating DOM parsers
> > > > DocumentBuilderFactory
> > > > factory =
> > > > DocumentBuilderFactory.newInstance();
> > > >
> > > > DocumentBuilder
> > > > builder = null;
> > > > Document
> > > > xmlDoc = null;
> > > >
> > > > // Build a new DOM
> > > > try {
> > > > // Now use the factory
> > > > to create a DOM parser (a.k.a. a
> > > > DocumentBuilder)
> > > > builder =
> > > > factory.newDocumentBuilder();
> > > > xmlDoc =
> > > > builder.parse(uri);
> > > > }
> > > > catch (Exception ex) {
> > > > ex.printStackTrace();
> > > > return null;
> > > > }
> > > >
> > > > return xmlDoc;
> > > > }
> > > >
> > > > /** doIt */
> > > > private void doIt() {
> > > > Document xmlDOM =
> > > > openXMLDOM("http://schemas.xmlsoap.org/wsdl/");
> > > >
> > > > // Document xmlDOM =
> > > > openXMLDOM("./wsdl.xsd");
> > > > Element rootElement =
> > > > xmlDOM.getDocumentElement();
> > > > XSDSchema xsdSchema =
> > > > XSDFactory.eINSTANCE.createXSDSchema();
> > > >
> > > >
> > > > xsdSchema.setDocument(xmlDOM);
> > > >
> > > > xsdSchema.setElement(rootElement);
> > > >
> > > > xsdSchema.updateElement();
> > > > System.out.println("\n\n");
> > > >
> > > > XSDResourceImpl.serialize(System.out,
> > > > xsdSchema.getElement());
> > > > System.out.println(">>>>>>>>>>>>>>>>>>>>>>
> > > > VALIDATION
> > > > >>>>>>>>>>>>>>>>>>>>>>>>>>");
> > > > xsdSchema.validate();
> > > > //EList eList =
> > > > xsdMainSchema.getDiagnostics();
> > > > EList eList =
> > > > xsdSchema.getAllDiagnostics();
> > > > for (int i = 0; i <
> > > > eList.size(); i++) {
> > > > XSDDiagnostic
> > > > xsdDiagnostic =
> > > > (XSDDiagnostic)eList.get(i);
> > > > System.out.println(i +
> > > > ": Diagnostic Message = [" +
> > > > xsdDiagnostic.getMessage() + "]");
> > > > }
> > > >
> > > > System.out.println("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<");
> > > >
> > > > }
> > > >
> > > > /** main - the main entry */
> > > > public static void
> > > > main(String[] args) {
> > > > EclipseXSDDemo1 app = new
> > > > EclipseXSDDemo1();
> > > > app.doIt();
> > > > }
> > > > }
> > > >
> > > > "Ed Merks"
> > > > <merks@ca.ibm.com> wrote
> > > > in message
> > > > news:3EB25ED9.AE2CB299@ca.ibm.com...Pae,
> > > >
> > > > I'm seeing this result
> > > > with the just published
> > > > 1.1.0 driver:
> > > >
> > > > [Image]
> > > >
> > > > The schema isn't valid.
> > > >
> > > >
> > > > Pae Choi wrote:
> > > >
> > > > > I have a simple test
> > > > > schema as follows:
> > > > >
> > > > > <?xml version="1.0"
> > > > > encoding="UTF-8"?>
> > > > > <!--W3C Schema
> > > > > generated by Pae -->
> > > > > <xsd:schema
> > > > > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > > > >
> > > > > elementFormDefault="qualified">
> > > > >
> > > > > <xsd:element
> > > > > name="CommonLogin">
> > > > > <xsd:complexType>
> > > > > <xsd:sequence>
> > > > > <xsd:element
> > > > > name="username"
> > > > > ref="usernameRef"/>
> > > > > <xsd:element
> > > > > name="password"
> > > > > ref="passwordRef"/>
> > > > > </xsd:sequence>
> > > > > </xsd:complexType>
> > > > > </xsd:element>
> > > > > <xsd:element
> > > > > name="passwordRef"
> > > > > type="xsd:string"/>
> > > > > <xsd:element
> > > > > name="usernameRef"
> > > > > type="xsd:string"/>
> > > > > </xsd:schema>
> > > > >
> > > > > This is a very simple
> > > > > sample, but it is a
> > > > > valid schema. But when
> > > > > I use the validate()
> > > > > and getDiagnostics()
> > > > > methods in the
> > > > > XSDSchema
> > > > > interface it gives me a
> > > > > message as follows:
> > > > >
> > > > > XSD: The element
> > > > > '#null' is not
> > > > > permitted as
> > > > > constrained by 'XML
> > > > > Schema ';
> > > > > expecting schema
> > > > >
> > > > > I do not understand
> > > > > what the message is
> > > > > saying. Any comments?
> > > > >
> > > > > Pae
> > > >

--------------06FA1DA87AC1B7722CE0378E
Content-Type: multipart/related;
boundary="------------20A806D4F97B98082D27D354"


--------------20A806D4F97B98082D27D354
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<body bgcolor="#FFFFFF">
Pae,
<p>This is described in the FAQ.
<p>The files are plugins/org.apache.xerces_4.0.7/xmlParserAPIs.jar, and
plugins/org.apache.xerces_4.0.7/xercesImpl.jar. Version Xerces-J 2.0.2
(or XML4J 4.0.7) comes with Eclipse 2.1.0.
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE=CITE>&nbsp;<font size=-1>Ed,</font> <font size=-1>Where
could I get those two JARs for the xerces you mentioned. Andwhat version
is that? Thank you.</font> <font size=-1>Regards,</font>&nbsp; <font size=-1>Pae</font>
<blockquote dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed
Merks" &lt;<a href="mailto:merks@ca.ibm.com">merks@ca.ibm.com</a>> wrote
in message <a href="news:3EB64063.883B5444@ca.ibm.com">news:3EB64063.883B5444@ca.ibm.com</a>...Pae,
<p>XSD only is tested to work with the version of Xerces in Eclipse.
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE="CITE">&nbsp;<font size=-1>Ed,</font> <font size=-1>I
also tested with XSD v1.1.0 + EMF v1.1.0 with xerces v2.2.1 and v2.4.0,
butam still having an exception. However, the exceptions are not same as
previousone. The exceptions and the associated code snippet are as follows://
### Exception with xerces v2.2.1 ###java.lang.NullPointerException</font>
<br><font size=-1>&nbsp;at org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263) </font>
<br><font size=-1>&nbsp;at org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDecl(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.parsers.XMLParser.parse(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
Source)</font>
<br><font size=-1>&nbsp;at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)</font >
<br><font size=-1>&nbsp;at org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)</font >
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDDemo2.java:87) </font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101) </font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) </font>
<br><font size=-1>java.lang.NullPointerException</font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104) </font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)//
### Exception with xerces v2.4.0 ###java.lang.NullPointerException</font>
<br><font size=-1>&nbsp;at org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263) </font>
<br><font size=-1>&nbsp;at org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDecl(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.parsers.XMLParser.parse(Unknown
Source)</font>
<br><font size=-1>&nbsp;at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
Source)</font>
<br><font size=-1>&nbsp;at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)</font >
<br><font size=-1>&nbsp;at org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)</font >
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDDemo2.java:87) </font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101) </font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) </font>
<br><font size=-1>java.lang.NullPointerException</font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104) </font>
<br><font size=-1>&nbsp;at org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) </font>
<br>&nbsp;<font size=-1>// ### Code Snippet ###/*</font>
<br><font size=-1>&nbsp;* EclipseXSDDemo2.java</font>
<br><font size=-1>&nbsp;*</font>
<br><font size=-1>&nbsp;* Created on May 2, 2003, 11:13 PM</font>
<br><font size=-1>&nbsp;*</font>
<br><font size=-1>&nbsp;*/</font> <font size=-1>package org.paechoi.xsd.test;//
W3C/DOM</font>
<br><font size=-1>import&nbsp; javax.xml.parsers.DocumentBuilderFactory;</font>
<br><font size=-1>import&nbsp; javax.xml.parsers.DocumentBuilder;</font>
<br><font size=-1>import&nbsp; org.w3c.dom.Document;</font>
<br><font size=-1>import&nbsp; org.w3c.dom.Element;</font>
<br><font size=-1>// Eclipse/XSD</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.util.XSDParser;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDFactory;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDSchema;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.impl.XSDSchemaImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.util.XSDResourceImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.util.XSDResourceFactoryImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDDiagnostic;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.Resource;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.ResourceSet;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.common.util.EList;</font>
<br><font size=-1>import&nbsp; java.io.File;</font>
<br><font size=-1>import&nbsp; java.io.FileOutputStream;</font>
<br><font size=-1>import&nbsp; java.io.PrintStream;</font>
<br><font size=-1>import&nbsp; java.io.FileNotFoundException;</font>
<br><font size=-1>/**</font>
<br><font size=-1>&nbsp;*</font>
<br><font size=-1>&nbsp;* @author&nbsp; pae</font>
<br><font size=-1>&nbsp;*/</font>
<br><font size=-1>public class EclipseXSDDemo2 {</font>
<br><font size=-1>//&nbsp;&nbsp;&nbsp; private&nbsp;&nbsp;&nbsp;&nbsp;
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp; xmlDOM = null;</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&am p;nbsp;&nbsp;&nbsp;
XSDParser&nbsp;&nbsp; xsdParser = null;</font>&nbsp;<font size=-1>&nbsp;&nbsp;&nbsp;
// instance initializer</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; {</font>
<br><font size=-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp; Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd",
new XSDResourceFactoryImpl());</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** Creates a new instance of EclipseXSDDemo2
*/</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; public EclipseXSDDemo2() {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; super();</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
// Redirect the System.err</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; try
{</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
System.setErr(new PrintStream(new FileOutputStream("errors.log", true)));</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; }</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; catch
(FileNotFoundException fileNotFoundException) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; }</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String
uri) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create
a factory object for creating DOM parsers</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilderFactory&nbsp;
factory = DocumentBuilderFactory.newInstance();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;
builder = null;</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = null;</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Build a
new DOM</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// Now use the factory to create a DOM parser (a.k.a. a DocumentBuilder)</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
factory.setNamespaceAware(true);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
builder = factory.newDocumentBuilder();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = builder.parse(uri);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch (Exception
ex) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ex.printStackTrace();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return null;</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; return xmlDoc;</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM using XSDParser
*/</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private Document openXMLDOMUsingXSDParser(String
uri) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document&nbsp;&nbsp;&nbsp;
xmlDoc = null;</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Build a
new DOM</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xsdParser = new XSDParser();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xsdParser.parse(uri);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = xsdParser.getDocument();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch (Exception
ex) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ex.printStackTrace();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return null;</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; return xmlDoc;</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** doIt */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private void doIt() {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Document xmlDOM = openXMLDOMUsingXSDParser("<a href="http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl/</a>");</font>
<br><font size=-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Document xmlDOM = openXMLDOMUsingXSDParser("./wsdl.xsd");</font>&nbsp; <font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Element rootElement = xmlDOM.getDocumentElement();</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
XSDSchema xsdSchema = XSDFactory.eINSTANCE.createXSDSchema();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xsdSchema.setDocument(xmlDOM);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xsdSchema.setElement(rootElement);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xsdSchema.updateElement();</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
System.out.println("\n\n");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
XSDResourceImpl.serialize(System.out, xsdSchema.getElement());</font>&nbsp;<font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION >>>>>>>>>>>>>>>>>>>>>>>>>>");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xsdSchema.validate();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
//EList eList = xsdMainSchema.getDiagnostics();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
EList eList = xsdSchema.getAllDiagnostics();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
for (int i = 0; i &lt; eList.size(); i++) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
XSDDiagnostic xsdDiagnostic = (XSDDiagnostic)eList.get(i);</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
System.out.println(i + ": At line #" + xsdDiagnostic.getLine() + "(" +
xsdDiagnostic.getColumn() + "), " + xsdDiagnostic.getMessage() + "; Node
= [" + xsdDiagnostic.getNode().getNodeName() + "]");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
System.out.println(" &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; ");</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch (Exception
ex) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ex.printStackTrace();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** main - the main entry */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; public static void main(String[] args)
{</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; EclipseXSDDemo2
app = new EclipseXSDDemo2();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; app.doIt();</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<br><font size=-1>}Regards,</font>&nbsp; <font size=-1>Pae</font>
<blockquote dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed
Merks" &lt;<a href="mailto:merks@ca.ibm.com">merks@ca.ibm.com</a>> wrote
in message <a href="news:3EB4F504.6527C9F2@ca.ibm.com">news:3EB4F504.6527C9F2@ca.ibm.com</a>...Pae,
<p>No, the standalone version worked too.&nbsp; What exception did you
see?
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE="CITE">&nbsp;<font size=-1>Ed,</font> <font size=-1>That
surely helped with v1.0.2. And THANK you for that. One quick question is:Do
you also have an exception thrown when running with v1.1.0 as standalone.Regards,</font>&nbsp;
<font size=-1>Pae</font>
<blockquote dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed
Merks" &lt;<a href="mailto:merks@ca.ibm.com">merks@ca.ibm.com</a>> wrote
in message <a href="news:3EB3A206.9781C42@ca.ibm.com">news:3EB3A206.9781C42@ca.ibm.com</a>...Pae,
<p>The XSD model expects a DOM that's namespace aware, so <font color="#3333FF">this</font>
addition to your sample code will improve your result:
<p>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String uri) {
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create a factory object
for creating DOM parsers
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilderFactory&nbsp;
factory = DocumentBuilderFactory.newInstance();
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;
builder = null;
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = null;
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#3333FF">&nbsp;&nbsp; factory.setNamespaceAware(true);</font>
<p>Without this, element.getNamespaceURI and element.getLocalName both
return null...
<br>&nbsp;
<p>Pae Choi wrote:
<blockquote TYPE="CITE"><style></style>
<font size=-1>Ed,</font> <font size=-1>I
have a sample code that test a DOM of XML Schema with Eclipse/XSD andproducing
two different results.</font> <font size=-1>With v1.0.2, it seems ok except
the diagnostic message we are discussing.With v1.1.0, it throws an exception.Regards,</font>

<font size=-1>Pae</font> <font size=-1>P.S.: The code snippet is as follows://
################## CODE SNIPPET ##################/*</font>
<br><font size=-1>&nbsp;* EclipseXSDDemo1.java</font>
<br><font size=-1>&nbsp;*</font>
<br><font size=-1>&nbsp;* Created on May 2, 2003, 11:13 PM</font>
<br><font size=-1>&nbsp;*/</font> <font size=-1>package org.paechoi.xsd.test;//
W3C/DOM</font>
<br><font size=-1>import&nbsp; javax.xml.parsers.DocumentBuilderFactory;</font>
<br><font size=-1>import&nbsp; javax.xml.parsers.DocumentBuilder;</font>
<br><font size=-1>import&nbsp; org.w3c.dom.Document;</font>
<br><font size=-1>import&nbsp; org.w3c.dom.Element;</font>
<br><font size=-1>// Eclipse/XSD</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDFactory;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDSchema;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.impl.XSDSchemaImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.util.XSDResourceImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.util.XSDResourceFactoryImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.xsd.XSDDiagnostic;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.Resource;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.ResourceSet;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;</font>
<br><font size=-1>import&nbsp; org.eclipse.emf.common.util.EList;</font>
<br><font size=-1>import&nbsp; java.io.File;</font>
<br><font size=-1>/**</font>
<br><font size=-1>&nbsp;*</font>
<br><font size=-1>&nbsp;* @author&nbsp; pae</font>
<br><font size=-1>&nbsp;*/</font>
<br><font size=-1>public class EclipseXSDDemo1 {</font>
<br><font size=-1>//&nbsp;&nbsp;&nbsp; private&nbsp;&nbsp;&nbsp;&nbsp;
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp; xmlDOM = null;</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; // instance initializer</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; {</font>
<br><font size=-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp; Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd",
new XSDResourceFactoryImpl());</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** Creates a new instance of EclipseXSDDemo1
*/</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; public EclipseXSDDemo1() {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; super();</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; }</font>
<p><font size=-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM */</font>
<br><font size=-1>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String
uri) {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create
a factory object for creating DOM parsers</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilderFactory&nbsp;
factory = DocumentBuilderFactory.newInstance();</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;
builder = null;</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;
xmlDoc = null;</font>
<p><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Build a
new DOM</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try {</font>
<br><font size=-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// Now use the


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: A Diagnostic Message for the Valid Schema [message #570432 is a reply to message #21253] Mon, 05 May 2003 11:58 Go to previous message
Eclipse UserFriend
Originally posted by: paechoi.earthlink.net

This is a multi-part message in MIME format.

------=_NextPart_000_006F_01C312DC.27C590B0
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0070_01C312DC.27C71750"


------=_NextPart_001_0070_01C312DC.27C71750
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Ed,

I thought I saw somthing related to Xerces issue, but I wasn't sure =
exactly
where it was.

Unlike many *smart and charming users*, you need to have at least one =
like
me who ask dumb and silly questions. I will try to improve the user's =
responsibilities,
to meet the DEVELOPER's EXPECTATIONS, but am not so sure how effectively
I will achieve that goal. Have a pleasant day! :-)

Regards,


Pae


"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB648CF.EECF4637@ca.ibm.com...
Pae,=20
This is described in the FAQ.=20

The files are plugins/org.apache.xerces_4.0.7/xmlParserAPIs.jar, and =
plugins/org.apache.xerces_4.0.7/xercesImpl.jar. Version Xerces-J 2.0.2 =
(or XML4J 4.0.7) comes with Eclipse 2.1.0.=20
=20

Pae Choi wrote:=20

Ed, Where could I get those two JARs for the xerces you mentioned. =
Andwhat version is that? Thank you. Regards, Pae=20
"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB64063.883B5444@ca.ibm.com...Pae,=20
XSD only is tested to work with the version of Xerces in Eclipse.=20
=20

Pae Choi wrote:=20

Ed, I also tested with XSD v1.1.0 + EMF v1.1.0 with xerces =
v2.2.1 and v2.4.0, butam still having an exception. However, the =
exceptions are not same as previousone. The exceptions and the =
associated code snippet are as follows:// ### Exception with xerces =
v2.2.1 ###java.lang.NullPointerException=20
at org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263) =

at org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown =
Source)=20
at =
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDe=
cl(Unknown Source)=20
at =
org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(=
Unknown Source)=20
at =
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknow=
n Source)=20
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown =
Source)=20
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown =
Source)=20
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)=20
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown =
Source)=20
at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)=20
at org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDD=
emo2.java:87)=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101)=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)=20
java.lang.NullPointerException=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104)=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)// =
### Exception with xerces v2.4.0 ###java.lang.NullPointerException=20
at org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263) =

at org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown =
Source)=20
at =
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDe=
cl(Unknown Source)=20
at =
org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(=
Unknown Source)=20
at =
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknow=
n Source)=20
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown =
Source)=20
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown =
Source)=20
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)=20
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown =
Source)=20
at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)=20
at org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDD=
emo2.java:87)=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101)=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)=20
java.lang.NullPointerException=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104)=20
at =
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)=20
// ### Code Snippet ###/*=20
* EclipseXSDDemo2.java=20
*=20
* Created on May 2, 2003, 11:13 PM=20
*=20
*/ package org.paechoi.xsd.test;// W3C/DOM=20
import javax.xml.parsers.DocumentBuilderFactory;=20
import javax.xml.parsers.DocumentBuilder;=20
import org.w3c.dom.Document;=20
import org.w3c.dom.Element;=20
// Eclipse/XSD=20
import org.eclipse.xsd.util.XSDParser;=20
import org.eclipse.xsd.XSDFactory;=20
import org.eclipse.xsd.XSDSchema;=20
import org.eclipse.xsd.impl.XSDSchemaImpl;=20
import org.eclipse.xsd.util.XSDResourceImpl;=20
import org.eclipse.xsd.util.XSDResourceFactoryImpl;=20
import org.eclipse.xsd.XSDDiagnostic;=20
import org.eclipse.emf.ecore.resource.Resource;=20
import org.eclipse.emf.ecore.resource.ResourceSet;=20
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;=20
import org.eclipse.emf.common.util.EList;=20
import java.io.File;=20
import java.io.FileOutputStream;=20
import java.io.PrintStream;=20
import java.io.FileNotFoundException;=20
/**=20
*=20
* @author pae=20
*/=20
public class EclipseXSDDemo2 {=20
// private Document xmlDOM =3D null;=20
private XSDParser xsdParser =3D null; // =
instance initializer=20
{=20
// =
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =
new XSDResourceFactoryImpl());=20
}=20
/** Creates a new instance of EclipseXSDDemo2 */=20
public EclipseXSDDemo2() {=20
super(); // Redirect the System.err=20
try {=20
System.setErr(new PrintStream(new =
FileOutputStream("errors.log", true)));=20
}=20
catch (FileNotFoundException fileNotFoundException) {=20
}=20
}=20

/** Open a XML DOM */=20
private Document openXMLDOM(String uri) {=20
// Create a factory object for creating DOM parsers=20
DocumentBuilderFactory factory =3D =
DocumentBuilderFactory.newInstance();=20
DocumentBuilder builder =3D null;=20
Document xmlDoc =3D null;=20

// Build a new DOM=20
try {=20
// Now use the factory to create a DOM parser =
(a.k.a. a DocumentBuilder)=20
factory.setNamespaceAware(true);=20
builder =3D factory.newDocumentBuilder();=20
xmlDoc =3D builder.parse(uri);=20
}=20
catch (Exception ex) {=20
ex.printStackTrace();=20
return null;=20
}=20

return xmlDoc;=20
}=20

/** Open a XML DOM using XSDParser */=20
private Document openXMLDOMUsingXSDParser(String uri) {=20
Document xmlDoc =3D null;=20

// Build a new DOM=20
try {=20
xsdParser =3D new XSDParser();=20
xsdParser.parse(uri);=20
xmlDoc =3D xsdParser.getDocument();=20
}=20
catch (Exception ex) {=20
ex.printStackTrace();=20
return null;=20
}=20

return xmlDoc;=20
}=20

/** doIt */=20
private void doIt() {=20
try {=20
Document xmlDOM =3D =
openXMLDOMUsingXSDParser("http://schemas.xmlsoap.org/wsdl/");=20
// Document xmlDOM =3D =
openXMLDOMUsingXSDParser("./wsdl.xsd"); Element rootElement =
=3D xmlDOM.getDocumentElement(); XSDSchema xsdSchema =3D =
XSDFactory.eINSTANCE.createXSDSchema();=20
xsdSchema.setDocument(xmlDOM);=20
xsdSchema.setElement(rootElement);=20
xsdSchema.updateElement(); =
System.out.println("\n\n");=20
XSDResourceImpl.serialize(System.out, =
xsdSchema.getElement()); =
System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION =
>>>>>>>>>>>>>>>>>>>>>>>>>>");=20
xsdSchema.validate();=20
//EList eList =3D xsdMainSchema.getDiagnostics();=20
EList eList =3D xsdSchema.getAllDiagnostics();=20
for (int i =3D 0; i < eList.size(); i++) {=20
XSDDiagnostic xsdDiagnostic =3D =
(XSDDiagnostic)eList.get(i);=20
System.out.println(i + ": At line #" + =
xsdDiagnostic.getLine() + "(" + xsdDiagnostic.getColumn() + "), " + =
xsdDiagnostic.getMessage() + "; Node =3D [" + =
xsdDiagnostic.getNode().getNodeName() + "]");=20
}=20
=
System.out.println("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<=
<<<<<<<");=20
}=20
catch (Exception ex) {=20
ex.printStackTrace();=20
}=20
}=20

/** main - the main entry */=20
public static void main(String[] args) {=20
EclipseXSDDemo2 app =3D new EclipseXSDDemo2();=20
app.doIt();=20
}=20
}Regards, Pae=20

"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB4F504.6527C9F2@ca.ibm.com...Pae,=20
No, the standalone version worked too. What exception did you =
see?=20
=20

Pae Choi wrote:=20

Ed, That surely helped with v1.0.2. And THANK you for that. =
One quick question is:Do you also have an exception thrown when running =
with v1.1.0 as standalone.Regards, Pae=20
"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB3A206.9781C42@ca.ibm.com...Pae,=20
The XSD model expects a DOM that's namespace aware, so =
this addition to your sample code will improve your result:=20

private Document openXMLDOM(String uri) {=20
// Create a factory object for creating DOM =
parsers=20
DocumentBuilderFactory factory =3D =
DocumentBuilderFactory.newInstance();=20
DocumentBuilder builder =3D null;=20
Document xmlDoc =3D null;=20

factory.setNamespaceAware(true);=20

Without this, element.getNamespaceURI and =
element.getLocalName both return null...=20
=20

Pae Choi wrote:=20

Ed, I have a sample code that test a DOM of XML Schema =
with Eclipse/XSD andproducing two different results. With v1.0.2, it =
seems ok except the diagnostic message we are discussing.With v1.1.0, it =
throws an exception.Regards, Pae P.S.: The code snippet is as follows:// =
################## CODE SNIPPET ##################/*=20
* EclipseXSDDemo1.java=20
*=20
* Created on May 2, 2003, 11:13 PM=20
*/ package org.paechoi.xsd.test;// W3C/DOM=20
import javax.xml.parsers.DocumentBuilderFactory;=20
import javax.xml.parsers.DocumentBuilder;=20
import org.w3c.dom.Document;=20
import org.w3c.dom.Element;=20
// Eclipse/XSD=20
import org.eclipse.xsd.XSDFactory;=20
import org.eclipse.xsd.XSDSchema;=20
import org.eclipse.xsd.impl.XSDSchemaImpl;=20
import org.eclipse.xsd.util.XSDResourceImpl;=20
import org.eclipse.xsd.util.XSDResourceFactoryImpl;=20
import org.eclipse.xsd.XSDDiagnostic;=20
import org.eclipse.emf.ecore.resource.Resource;=20
import org.eclipse.emf.ecore.resource.ResourceSet;=20
import =
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;=20
import org.eclipse.emf.common.util.EList;=20
import java.io.File;=20
/**=20
*=20
* @author pae=20
*/=20
public class EclipseXSDDemo1 {=20
// private Document xmlDOM =3D null;=20
// instance initializer=20
{=20
// =
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =
new XSDResourceFactoryImpl());=20
}=20

/** Creates a new instance of EclipseXSDDemo1 */=20
public EclipseXSDDemo1() {=20
super();=20
}=20

/** Open a XML DOM */=20
private Document openXMLDOM(String uri) {=20
// Create a factory object for creating DOM =
parsers=20
DocumentBuilderFactory factory =3D =
DocumentBuilderFactory.newInstance();=20
DocumentBuilder builder =3D null;=20
Document xmlDoc =3D null;=20

// Build a new DOM=20
try {=20
// Now use the factory to create a DOM =
parser (a.k.a. a DocumentBuilder)=20
builder =3D factory.newDocumentBuilder();=20
xmlDoc =3D builder.parse(uri);=20
}=20
catch (Exception ex) {=20
ex.printStackTrace();=20
return null;=20
}=20

return xmlDoc;=20
}=20

/** doIt */=20
private void doIt() {=20
Document xmlDOM =3D =
openXMLDOM("http://schemas.xmlsoap.org/wsdl/");=20
// Document xmlDOM =3D openXMLDOM("./wsdl.xsd"); =
Element rootElement =3D xmlDOM.getDocumentElement(); =
XSDSchema xsdSchema =3D XSDFactory.eINSTANCE.createXSDSchema();=20
xsdSchema.setDocument(xmlDOM);=20
xsdSchema.setElement(rootElement);=20
xsdSchema.updateElement(); =
System.out.println("\n\n");=20
XSDResourceImpl.serialize(System.out, =
xsdSchema.getElement()); =
System.out.println(">>>>>>>>>>>>>>>>>>>>>> VALIDATION =
>>>>>>>>>>>>>>>>>>>>>>>>>>");=20
xsdSchema.validate();=20
//EList eList =3D =
xsdMainSchema.getDiagnostics();=20
EList eList =3D xsdSchema.getAllDiagnostics();=20
for (int i =3D 0; i < eList.size(); i++) {=20
XSDDiagnostic xsdDiagnostic =3D =
(XSDDiagnostic)eList.get(i);=20
System.out.println(i + ": Diagnostic Message =
=3D [" + xsdDiagnostic.getMessage() + "]");=20
}=20
=
System.out.println("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<=
<<<<<<<");=20
}=20

/** main - the main entry */=20
public static void main(String[] args) {=20
EclipseXSDDemo1 app =3D new EclipseXSDDemo1();=20
app.doIt();=20
}=20
}=20

"Ed Merks" <merks@ca.ibm.com> wrote in message =
news:3EB25ED9.AE2CB299@ca.ibm.com...Pae,=20
I'm seeing this result with the just published 1.1.0 =
driver:=20


The schema isn't valid.=20
=20
Pae Choi wrote:=20

I have a simple test schema as follows:=20
<?xml version=3D"1.0" encoding=3D"UTF-8"?>=20
<!--W3C Schema generated by Pae -->=20
<xsd:schema =
xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema"=20
elementFormDefault=3D"qualified">=20
<xsd:element name=3D"CommonLogin">=20
<xsd:complexType>=20
<xsd:sequence>=20
<xsd:element name=3D"username" =
ref=3D"usernameRef"/>=20
<xsd:element name=3D"password" =
ref=3D"passwordRef"/>=20
</xsd:sequence>=20
</xsd:complexType>=20
</xsd:element>=20
<xsd:element name=3D"passwordRef" =
type=3D"xsd:string"/>=20
<xsd:element name=3D"usernameRef" =
type=3D"xsd:string"/>=20
</xsd:schema>=20

This is a very simple sample, but it is a valid =
schema. But when=20
I use the validate() and getDiagnostics() methods in =
the XSDSchema=20
interface it gives me a message as follows:=20

XSD: The element '#null' is not permitted as =
constrained by 'XML Schema ';=20
expecting schema=20

I do not understand what the message is saying. Any =
comments?=20

Pae


------=_NextPart_001_0070_01C312DC.27C71750
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2600.0" name=3DGENERATOR></HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT size=3D2>Ed,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>I thought I saw somthing related to Xerces issue, =
but I wasn't=20
sure exactly</FONT></DIV>
<DIV><FONT size=3D2>where it was.</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Unlike many *smart and charming users*, you need to =
have at=20
least one like</FONT></DIV>
<DIV><FONT size=3D2>me who ask dumb and silly questions. I will try to =
improve the=20
user's responsibilities,</FONT></DIV>
<DIV><FONT size=3D2>to meet the DEVELOPER's EXPECTATIONS, but am not so =
sure how=20
effectively</FONT></DIV>
<DIV><FONT size=3D2>I will achieve that goal. Have a pleasant day!=20
:-)</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Regards,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Pae</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV>"Ed Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB648CF.EECF4637@ca.ibm.com">news:3EB648CF.EECF4637@ca.ibm.=
com</A>...</DIV>Pae,=20

<P>This is described in the FAQ.=20
<P>The files are plugins/org.apache.xerces_4.0.7/xmlParserAPIs.jar, =
and=20
plugins/org.apache.xerces_4.0.7/xercesImpl.jar. Version Xerces-J 2.0.2 =
(or=20
XML4J 4.0.7) comes with Eclipse 2.1.0. <BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">&nbsp;<FONT size=3D-1>Ed,</FONT> <FONT =
size=3D-1>Where=20
could I get those two JARs for the xerces you mentioned. Andwhat =
version is=20
that? Thank you.</FONT> <FONT size=3D-1>Regards,</FONT>&nbsp; <FONT=20
size=3D-1>Pae</FONT>=20
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed=20
Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB64063.883B5444@ca.ibm.com">news:3EB64063.883B5444@ca.ibm.=
com</A>...Pae,=20

<P>XSD only is tested to work with the version of Xerces in =
Eclipse.=20
<BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">&nbsp;<FONT size=3D-1>Ed,</FONT> <FONT =
size=3D-1>I=20
also tested with XSD v1.1.0 + EMF v1.1.0 with xerces v2.2.1 and =
v2.4.0,=20
butam still having an exception. However, the exceptions are not =
same as=20
previousone. The exceptions and the associated code snippet are =
as=20
follows:// ### Exception with xerces v2.2.1=20
###java.lang.NullPointerException</FONT> <BR><FONT =
size=3D-1>&nbsp;at=20
=
org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263) </FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown=2 0
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
=
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDe=
cl(Unknown=20
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
=
org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(=
Unknown=20
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
=
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknow=
n=20
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.parsers.DTDConfiguration.parse(Unknown =
Source)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.parsers.DTDConfiguration.parse(Unknown =
Source)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.parsers.XMLParser.parse(Unknown Source)</FONT> =

<BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown =
Source)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
javax.xml.parsers.SAXParser.parse(SAXParser.java:345)</FONT > =
<BR><FONT=20
size=3D-1>&nbsp;at=20
org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)</FONT >=20
<BR><FONT size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDD=
emo2.java:87)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101) </FONT=
>=20
<BR><FONT size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) </FONT=
>=20
<BR><FONT size=3D-1>java.lang.NullPointerException</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104) </FONT=
>=20
<BR><FONT size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132)//=20
### Exception with xerces v2.4.0=20
###java.lang.NullPointerException</FONT> <BR><FONT =
size=3D-1>&nbsp;at=20
=
org.eclipse.xsd.util.XSDParser$2.xmlDecl(XSDParser.java:263) </FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.impl.dtd.XMLDTDValidator.xmlDecl(Unknown=2 0
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
=
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXM LDeclOrTextDe=
cl(Unknown=20
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
=
org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatc her.dispatch(=
Unknown=20
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
=
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDo cument(Unknow=
n=20
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.parsers.XML11Configuration.parse(Unknown=2 0
Source)</FONT> <BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.parsers.DTDConfiguration.parse(Unknown =
Source)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.parsers.XMLParser.parse(Unknown Source)</FONT> =

<BR><FONT size=3D-1>&nbsp;at=20
org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown =
Source)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
javax.xml.parsers.SAXParser.parse(SAXParser.java:345)</FONT > =
<BR><FONT=20
size=3D-1>&nbsp;at=20
org.eclipse.xsd.util.XSDParser.parse(XSDParser.java:406)</FONT >=20
<BR><FONT size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.openXMLDOMUsingXSDParse r(EclipseXSDD=
emo2.java:87)</FONT>=20
<BR><FONT size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:101) </FONT=
>=20
<BR><FONT size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) </FONT=
>=20
<BR><FONT size=3D-1>java.lang.NullPointerException</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.doIt(EclipseXSDDemo2.ja va:104) </FONT=
>=20
<BR><FONT size=3D-1>&nbsp;at=20
=
org.paechoi.xsd.test.EclipseXSDDemo2.main(EclipseXSDDemo2.ja va:132) </FONT=
>=20
<BR>&nbsp;<FONT size=3D-1>// ### Code Snippet ###/*</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;* EclipseXSDDemo2.java</FONT> <BR><FONT=20
size=3D-1>&nbsp;*</FONT> <BR><FONT size=3D-1>&nbsp;* Created on =
May 2, 2003,=20
11:13 PM</FONT> <BR><FONT size=3D-1>&nbsp;*</FONT> <BR><FONT=20
size=3D-1>&nbsp;*/</FONT> <FONT size=3D-1>package =
org.paechoi.xsd.test;//=20
W3C/DOM</FONT> <BR><FONT size=3D-1>import&nbsp;=20
javax.xml.parsers.DocumentBuilderFactory;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; javax.xml.parsers.DocumentBuilder;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; org.w3c.dom.Document;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; org.w3c.dom.Element;</FONT> <BR><FONT =
size=3D-1>//=20
Eclipse/XSD</FONT> <BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.xsd.util.XSDParser;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
org.eclipse.xsd.XSDFactory;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
org.eclipse.xsd.XSDSchema;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
org.eclipse.xsd.impl.XSDSchemaImpl;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; =
org.eclipse.xsd.util.XSDResourceImpl;</FONT>=20
<BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.xsd.util.XSDResourceFactoryImpl;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; org.eclipse.xsd.XSDDiagnostic;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; =
org.eclipse.emf.ecore.resource.Resource;</FONT>=20
<BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.emf.ecore.resource.ResourceSet;</FONT> <BR><FONT=20
size=3D-1>import&nbsp;=20
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; org.eclipse.emf.common.util.EList;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; java.io.File;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
java.io.FileOutputStream;</FONT> <BR><FONT =
size=3D-1>import&nbsp;=20
java.io.PrintStream;</FONT> <BR><FONT size=3D-1>import&nbsp;=20
java.io.FileNotFoundException;</FONT> <BR><FONT =
size=3D-1>/**</FONT>=20
<BR><FONT size=3D-1>&nbsp;*</FONT> <BR><FONT size=3D-1>&nbsp;* =
@author&nbsp;=20
pae</FONT> <BR><FONT size=3D-1>&nbsp;*/</FONT> <BR><FONT =
size=3D-1>public=20
class EclipseXSDDemo2 {</FONT> <BR><FONT =
size=3D-1>//&nbsp;&nbsp;&nbsp;=20
private&nbsp;&nbsp;&nbsp;&nbsp;=20
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp; xmlDOM =3D =
null;</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp;=20
private&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&am p;nbsp;&nbsp;&nbsp;=20
XSDParser&nbsp;&nbsp; xsdParser =3D null;</FONT>&nbsp;<FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; // instance initializer</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; {</FONT> <BR><FONT=20
size=3D-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;=20
=
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =

new XSDResourceFactoryImpl());</FONT> <BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** Creates a new instance =
of=20
EclipseXSDDemo2 */</FONT> <BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; =
public=20
EclipseXSDDemo2() {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
super();</FONT>&nbsp;<FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Redirect =
the=20
System.err</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; try =
{</FONT>=20
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;=20
System.setErr(new PrintStream(new FileOutputStream("errors.log", =

true)));</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; =
}</FONT>=20
<BR><FONT =
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; catch=20
(FileNotFoundException fileNotFoundException) {</FONT> <BR><FONT =

size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; =
}</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM =
*/</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; private Document =
openXMLDOM(String=20
uri) {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create a =
factory=20
object for creating DOM parsers</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilderFactory&nbsp; factory =3D=20
DocumentBuilderFactory.newInstance();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp; =
builder=20
=3D null;</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D null;</FONT>=20
<P><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // =
Build a=20
new DOM</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try =
{</FONT>=20
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
// Now use the factory to create a DOM parser (a.k.a. a=20
DocumentBuilder)</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
factory.setNamespaceAware(true);</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
builder =3D factory.newDocumentBuilder();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xmlDoc =3D builder.parse(uri);</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT> =
<BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch =
(Exception ex)=20
{</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
ex.printStackTrace();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
return null;</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT>=20
<P><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
return=20
xmlDoc;</FONT> <BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** Open a XML DOM using =
XSDParser=20
*/</FONT> <BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; private =
Document=20
openXMLDOMUsingXSDParser(String uri) {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
Document&nbsp;&nbsp;&nbsp; xmlDoc =3D null;</FONT>=20
<P><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // =
Build a=20
new DOM</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try =
{</FONT>=20
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xsdParser =3D new XSDParser();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xsdParser.parse(uri);</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xmlDoc =3D xsdParser.getDocument();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT> =
<BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; catch =
(Exception ex)=20
{</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
ex.printStackTrace();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
return null;</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT>=20
<P><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
return=20
xmlDoc;</FONT> <BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** doIt */</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; private void doIt() {</FONT> =
<BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; try =
{</FONT>=20
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
Document xmlDOM =3D openXMLDOMUsingXSDParser("<A=20
=
href=3D"http://schemas.xmlsoap.org/wsdl/">http://schemas.xmlsoap.org/wsdl=
/</A>");</FONT>=20
<BR><FONT=20
=
size=3D-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;=20
Document xmlDOM =3D=20
openXMLDOMUsingXSDParser("./wsdl.xsd");</FONT>&nbsp; <FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
Element rootElement =3D =
xmlDOM.getDocumentElement();</FONT>&nbsp;<FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
XSDSchema xsdSchema =3D =
XSDFactory.eINSTANCE.createXSDSchema();</FONT>=20
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xsdSchema.setDocument(xmlDOM);</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xsdSchema.setElement(rootElement);</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xsdSchema.updateElement();</FONT>&nbsp;<FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
System.out.println("\n\n");</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
XSDResourceImpl.serialize(System.out,=20
xsdSchema.getElement());</FONT>&nbsp;<FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
=
System.out.println(" &gt;&gt;&gt;&gt;&gt;&gt;&gt;& ;gt;&gt;&gt;&gt;&gt;&gt;&=
gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;& amp;gt;=20
VALIDATION=20
=
&gt;&gt;&gt;&gt;&gt;&gt;&gt;& ;gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt;&gt;&=
gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;"); </FONT>=20
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
xsdSchema.validate();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
//EList eList =3D xsdMainSchema.getDiagnostics();</FONT> =
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
EList eList =3D xsdSchema.getAllDiagnostics();</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
for (int i =3D 0; i &lt; eList.size(); i++) {</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;=20
XSDDiagnostic xsdDiagnostic =3D =
(XSDDiagnostic)eList.get(i);</FONT>=20
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;=20
System.out.println(i + ": At line #" + xsdDiagnostic.getLine() + =
"(" +=20
xsdDiagnostic.getColumn() + "), " + xsdDiagnostic.getMessage() + =
"; Node=20
=3D [" + xsdDiagnostic.getNode().getNodeName() + "]");</FONT> =
<BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
}</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
=
System.out.println(" &lt;&lt;&lt;&lt;&lt;&lt;&lt;& ;lt;&lt;&lt;&lt;&lt;&lt;&=
lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;& amp;lt;&lt;&lt;&lt;&lt;&lt;&lt;& lt;&lt;&lt;&l=
t;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&a mp;lt;&lt;&lt;&lt;&lt;&lt;&lt;&l t;&lt;&lt;&lt=
;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&am p;lt;&lt;&lt; ");</FONT>=20
<BR><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
}</FONT>=20
<BR><FONT size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
catch=20
(Exception ex) {</FONT> <BR><FONT=20
=
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
ex.printStackTrace();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; /** main - the main entry =
*/</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; public static void =
main(String[]=20
args) {</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
EclipseXSDDemo2 app =3D=20
new EclipseXSDDemo2();</FONT> <BR><FONT=20
size=3D-1> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
app.doIt();</FONT>=20
<BR><FONT size=3D-1>&nbsp;&nbsp;&nbsp; }</FONT> <BR><FONT=20
size=3D-1>}Regards,</FONT>&nbsp; <FONT size=3D-1>Pae</FONT>=20
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: =
5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed=20
Merks" &lt;<A =
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt;=20
wrote in message <A=20
=
href=3D"news:3EB4F504.6527C9F2@ca.ibm.com">news:3EB4F504.6527C9F2@ca.ibm.=
com</A>...Pae,=20

<P>No, the standalone version worked too.&nbsp; What exception =
did you=20
see? <BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">&nbsp;<FONT size=3D-1>Ed,</FONT> =
<FONT=20
size=3D-1>That surely helped with v1.0.2. And THANK you for =
that. One=20
quick question is:Do you also have an exception thrown when =
running=20
with v1.1.0 as standalone.Regards,</FONT>&nbsp; <FONT=20
size=3D-1>Pae</FONT>=20
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: =
5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Ed=20
Merks" &lt;<A=20
href=3D"mailto:merks@ca.ibm.com">merks@ca.ibm.com</A>&gt; =
wrote in=20
message <A=20
=
href=3D"news:3EB3A206.9781C42@ca.ibm.com">news:3EB3A206.9781C42@ca.ibm.co=
m</A>...Pae,=20

<P>The XSD model expects a DOM that's namespace aware, so =
<FONT=20
color=3D#3333ff>this</FONT> addition to your sample code =
will=20
improve your result:=20
<P>&nbsp;&nbsp;&nbsp; private Document openXMLDOM(String =
uri) {=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; // Create a =
factory=20
object for creating DOM parsers=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
DocumentBuilderFactory&nbsp; factory =3D=20
DocumentBuilderFactory.newInstance();=20
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
DocumentBuilder&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;=20
builder =3D null; =
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=20
=
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;=20
xmlDoc =3D null;=20
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT =
color=3D#3333ff>&nbsp;&nbsp;=20
factory.setNamespaceAware(true);</FONT>=20
<P>Without this, element.getNamespaceURI and =
element.getLocalName=20
both return null... <BR>&nbsp;=20
<P>Pae Choi wrote:=20
<BLOCKQUOTE TYPE=3D"CITE">
<STYLE></STYLE>
<FONT size=3D-1>Ed,</FONT> <FONT size=3D-1>I have a =
sample code that=20
test a DOM of XML Schema with Eclipse/XSD andproducing =
two=20
different results.</FONT> <FONT size=3D-1>With v1.0.2, =
it seems ok=20
except the diagnostic message we are discussing.With =
v1.1.0, it=20
throws an exception.Regards,</FONT> <FONT =
size=3D-1>Pae</FONT>=20
<FONT size=3D-1>P.S.: The code snippet is as follows://=20
################## CODE SNIPPET =
##################/*</FONT>=20
<BR><FONT size=3D-1>&nbsp;* EclipseXSDDemo1.java</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;*</FONT> <BR><FONT size=3D-1>&nbsp;* =
Created on May=20
2, 2003, 11:13 PM</FONT> <BR><FONT =
size=3D-1>&nbsp;*/</FONT> <FONT=20
size=3D-1>package org.paechoi.xsd.test;// W3C/DOM</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp;=20
javax.xml.parsers.DocumentBuilderFactory;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; =
javax.xml.parsers.DocumentBuilder;</FONT>=20
<BR><FONT size=3D-1>import&nbsp; =
org.w3c.dom.Document;</FONT>=20
<BR><FONT size=3D-1>import&nbsp; =
org.w3c.dom.Element;</FONT>=20
<BR><FONT size=3D-1>// Eclipse/XSD</FONT> <BR><FONT=20
size=3D-1>import&nbsp; =
org.eclipse.xsd.XSDFactory;</FONT>=20
<BR><FONT size=3D-1>import&nbsp; =
org.eclipse.xsd.XSDSchema;</FONT>=20
<BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.xsd.impl.XSDSchemaImpl;</FONT> <BR><FONT=20
size=3D-1>import&nbsp;=20
org.eclipse.xsd.util.XSDResourceImpl;</FONT> <BR><FONT=20
size=3D-1>import&nbsp;=20
org.eclipse.xsd.util.XSDResourceFactoryImpl;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp; =
org.eclipse.xsd.XSDDiagnostic;</FONT>=20
<BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.emf.ecore.resource.Resource;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp;=20
org.eclipse.emf.ecore.resource.ResourceSet;</FONT> =
<BR><FONT=20
size=3D-1>import&nbsp;=20
=
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;</FONT>=20
<BR><FONT size=3D-1>import&nbsp;=20
org.eclipse.emf.common.util.EList;</FONT> <BR><FONT=20
size=3D-1>import&nbsp; java.io.File;</FONT> <BR><FONT=20
size=3D-1>/**</FONT> <BR><FONT size=3D-1>&nbsp;*</FONT> =
<BR><FONT=20
size=3D-1>&nbsp;* @author&nbsp; pae</FONT> <BR><FONT=20
size=3D-1>&nbsp;*/</FONT> <BR><FONT size=3D-1>public =
class=20
EclipseXSDDemo1 {</FONT> <BR><FONT =
size=3D-1>//&nbsp;&nbsp;&nbsp;=20
private&nbsp;&nbsp;&nbsp;&nbsp;=20
Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&a mp;nbsp;&nbsp; =
xmlDOM =3D=20
null;</FONT>=20
<P><FONT size=3D-1>&nbsp;&nbsp;&nbsp; // instance=20
initializer</FONT> <BR><FONT =
size=3D-1>&nbsp;&nbsp;&nbsp; {</FONT>=20
<BR><FONT =
size=3D-1> //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;=20
=
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put( "xsd", =

new XSDResourceFactoryImpl());</FONT> <BR><FONT=20
size=3D-1>&nbsp;&nbsp;&nbsp;
Previous Topic:org.apache.xml.serialize.OutputFormat
Next Topic:Cannot run XSDFindTypesMissingFacets in V1.1.0
Goto Forum:
  


Current Time: Fri Apr 26 18:36:07 GMT 2024

Powered by FUDForum. Page generated in 0.10016 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top