<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:"Lucida Sans";
        panose-1:0 0 0 0 0 0 0 0 0 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:blue;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:Arial;
        color:navy;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
 /* List Definitions */
 @list l0
        {mso-list-id:52239861;
        mso-list-template-ids:-910682198;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
-->
</style>

</head>

<body lang=EN-US link=blue vlink=blue>

<div class=Section1>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>The gui use case is exactly what we are
doing. We have a web based application and we use wicket for our presentation
layer. We have created a primitive mdx designer to create mdx views and save
the mdx string to a database. When the user wants to edit the mdx then it poses
an issue of parsing. We can do some ugly string manipulation but it starts to
get ugly and as we all know that kind of thing is brittle. That&#8217;s why we
need the parser. I&#8217;m assuming I can create a ParseTreeVisitor
implementation that can parse the string and build up our objects.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>If there is another class that is better
suited for that please feel free to let me know.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Thanks,<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Josh<o:p></o:p></span></font></p>

<div>

<div class=MsoNormal align=center style='text-align:center'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>

<hr size=2 width="100%" align=center tabindex=-1>

</span></font></div>

<p class=MsoNormal><b><font size=2 face=Tahoma><span style='font-size:10.0pt;
font-family:Tahoma;font-weight:bold'>From:</span></font></b><font size=2
face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma'>
mondrian-bounces@pentaho.org [mailto:mondrian-bounces@pentaho.org] <b><span
style='font-weight:bold'>On Behalf Of </span></b>Julian Hyde<br>
<b><span style='font-weight:bold'>Sent:</span></b> Tuesday, April 06, 2010 8:57
PM<br>
<b><span style='font-weight:bold'>To:</span></b> 'Luc Boudreau'<br>
<b><span style='font-weight:bold'>Cc:</span></b>
olap4j-devel@lists.sourceforge.net; 'Mondrian developer mailing list'<br>
<b><span style='font-weight:bold'>Subject:</span></b> RE: [Olap4j-devel]
[Mondrian] Convert Connection to OlapConnection</span></font><o:p></o:p></p>

</div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<div>

<p class=MsoNormal><font size=2 color=navy face="Lucida Sans"><span
style='font-size:10.0pt;font-family:"Lucida Sans";color:navy'>I agree with the
4 bundles of functionality you have proposed. But did you realize that the
parser bundle is already present? It's in the org.olap4j.mdx.parser package:</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>&nbsp;<o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><a
href="http://www.olap4j.org/api/org/olap4j/mdx/parser/package-summary.html">http://www.olap4j.org/api/org/olap4j/mdx/parser/package-summary.html</a><o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>&nbsp;<o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 color=navy face="Lucida Sans"><span
style='font-size:10.0pt;font-family:"Lucida Sans";color:navy'>The GUI use case
you cite is a good one. But it can be done today using MdxParser,
MdxParserFactory, and the parse tree object model classes in the org.olap4j.mdx
package.&nbsp;And by the way, to get a parser factory, you call
OlapConnection.getParserFactory.</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>&nbsp;<o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 color=navy face="Lucida Sans"><span
style='font-size:10.0pt;font-family:"Lucida Sans";color:navy'>Behind the
scenes, the olap4j driver is probably using DefaultMdxParserImpl. (It is for
both olap4j drivers that exist today.) But the app does not need to know about
DefaultMdxParserImpl in order to do what it needs to do, only MdxParser.</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>&nbsp;<o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 color=navy face="Lucida Sans"><span
style='font-size:10.0pt;font-family:"Lucida Sans";color:navy'>Julian</span></font><o:p></o:p></p>

</div>

<blockquote style='border:none;border-left:solid navy 1.5pt;padding:0in 0in 0in 4.0pt;
margin-left:3.75pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<div class=MsoNormal align=center style='text-align:center'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>

<hr size=2 width="100%" align=center tabIndex=-1>

</span></font></div>

<p class=MsoNormal style='margin-bottom:12.0pt'><b><font size=2 face=Tahoma><span
style='font-size:10.0pt;font-family:Tahoma;font-weight:bold'>From:</span></font></b><font
size=2 face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma'> Luc
Boudreau [mailto:lucboudreau@gmail.com] <br>
<b><span style='font-weight:bold'>Sent:</span></b> Tuesday, April 06, 2010 6:28
PM<br>
<b><span style='font-weight:bold'>To:</span></b> jhyde@pentaho.com<br>
<b><span style='font-weight:bold'>Cc:</span></b> Mondrian developer mailing
list; olap4j-devel@lists.sourceforge.net<br>
<b><span style='font-weight:bold'>Subject:</span></b> Re: [Olap4j-devel]
[Mondrian] Convert Connection to OlapConnection</span></font><o:p></o:p></p>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><br>
Database drivers who implement their own parser and grammar are free to not use
the one provided by olap4j. An OlapConnection still has to provide a parser
factory to public code. Nothing should change there. Yet this does not
constitute an argument for not exposing the internal parser. Olap4j contains
the only MDX parser available as far as I know and it would be a shame to bury
it at the bottom of the library.<br>
<br>
I agree with keeping DefaultMdxParserImpl part of the SPI only. There is no
need to expose it and as I said in my previous email, I'd much rather see a
unified standard way of obtaining a MdxParser implementation. I'm not talking
about core API changes. Here's a very common and realistic use case for it; a
syntax-aware GUI editor for MDX queries which is not a query tool.<br>
<br>
If your objection is related to the separation of intent of the different
components of olap4j, then I can assure you that I am fully aware of the mixup
that is already in place. Olap4j includes already an four distinctive
components bundled together... We talked about separating those in the past and
never got to doing it. Should we decide to do the actual work, I believe that
the natural separation of components should be as follows.<o:p></o:p></span></font></p>

<ul type=disc>
 <li class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:12.0pt;
     mso-list:l0 level1 lfo1'><font size=3 face="Times New Roman"><span
     style='font-size:12.0pt'>API (org.olap4j.* pagkages, minus the ones below)<br>
     This is the bulk of the olap4j code.<o:p></o:p></span></font></li>
 <li class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:12.0pt;
     mso-list:l0 level1 lfo1'><font size=3 face="Times New Roman"><span
     style='font-size:12.0pt'>XML/A Generic Driver (org.olap4j.driver.xmla.*)<br>
     The XML/A driver depends on the API only.<o:p></o:p></span></font></li>
 <li class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:12.0pt;
     mso-list:l0 level1 lfo1'><font size=3 face="Times New Roman"><span
     style='font-size:12.0pt'>Query Model (org.olap4j.query.*)<br>
     The query model classes would depend on the API only.<o:p></o:p></span></font></li>
 <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l0 level1 lfo1'><font size=3 face="Times New Roman"><span
     style='font-size:12.0pt'>MDX Parser (some package that is non existent
     yet)<br>
     The MDX parser would be a very simplistic wrapper over the default parser
     SPI classes and exposed as a MdxParser factory. It would depend on the API
     core only.<o:p></o:p></span></font></li>
</ul>

<p class=MsoNormal style='margin-bottom:12.0pt'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>Each of those components
can be part of the olap4j source tree for now, but I'd like to take the
opportunity to initiate a discussion about their separation and get feedback
about the ramifications. I don't mind doing the actual work.<br>
<br clear=all>
_____________________________<br>
Luc Boudreau<br>
<br>
<o:p></o:p></span></font></p>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>On Tue, Apr 6, 2010 at 7:49 PM, Julian Hyde &lt;<a
href="mailto:jhyde@pentaho.com">jhyde@pentaho.com</a>&gt; wrote:<o:p></o:p></span></font></p>

<div>

<div>

<p class=MsoNormal><font size=2 color=navy face="Lucida Sans"><span
style='font-size:10.0pt;font-family:"Lucida Sans";color:navy'>I stand by the
comments I made in that forum post. MdxParser is part of olap4j's public API,
but DefaultMdxParserImpl is not and will never be.</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>&nbsp;<o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><a
href="http://www.olap4j.org/api/org/olap4j/mdx/parser/package-summary.html"
target="_blank">http://www.olap4j.org/api/org/olap4j/mdx/parser/package-summary.html</a><o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>&nbsp;<o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 color=navy face="Lucida Sans"><span
style='font-size:10.0pt;font-family:"Lucida Sans";color:navy'>The public API,
remember, is for people building OLAP applications. To them, olap4j needs to
look like JDBC, but with one exception. JDBC drivers don't supply a SQL parser,
but parsing is more important to MDX applications so every olap4j driver must
supply an MDX parser that implements the MdxParser interface.</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>&nbsp;<o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 color=navy face="Lucida Sans"><span
style='font-size:10.0pt;font-family:"Lucida Sans";color:navy'>The other
important audience is developers of drivers. To a limited extent, the olap4j
code base gives them an SPI to help them build drivers. DefaultMdxParserImpl is
part of that SPI, as are the classes in org.olap4j.impl. We will try to keep
the SPI stable as olap4j eveolves but we won't bust a gut over it.</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>&nbsp;<o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 color=navy face="Lucida Sans"><span
style='font-size:10.0pt;font-family:"Lucida Sans";color:navy'>Remember that
different drivers might be talking to different OLAP engines, and different
engines have different dialects of MDX, so naturally the driver writers might
want to create their own parser. They can write a parser from scratch, or they
can start with the default MDX parser.</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>&nbsp;<o:p></o:p></span></font></p>

</div>

<div>

<div>

<p class=MsoNormal><font size=2 color=navy face="Lucida Sans"><span
style='font-size:10.0pt;font-family:"Lucida Sans";color:navy'>If you want to
dismember the olap4j project to get the MDX parser, then go ahead. olap4j is
after all an open source project. But you're on your own. You are in a small
minority of olap4j users, and we don't intend to change the olap4j API for your
benefit.<o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 color=navy face="Lucida Sans"><span
style='font-size:10.0pt;font-family:"Lucida Sans";color:navy'>&nbsp;<o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 color=navy face="Lucida Sans"><span
style='font-size:10.0pt;font-family:"Lucida Sans";color:navy'>It sounds like <o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 color=navy face="Lucida Sans"><span
style='font-size:10.0pt;font-family:"Lucida Sans";color:navy'>&nbsp;<o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 color=navy face="Lucida Sans"><span
style='font-size:10.0pt;font-family:"Lucida Sans";color:navy'>Julian<o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 color=navy face="Lucida Sans"><span
style='font-size:10.0pt;font-family:"Lucida Sans";color:navy'>&nbsp;<o:p></o:p></span></font></p>

</div>

</div>

<blockquote style='border:none;border-left:solid navy 1.5pt;padding:0in 0in 0in 4.0pt;
margin-left:3.75pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<div class=MsoNormal align=center style='text-align:center'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>

<hr size=2 width="100%" align=center>

</span></font></div>

<p class=MsoNormal style='margin-bottom:12.0pt'><b><font size=2 face=Tahoma><span
style='font-size:10.0pt;font-family:Tahoma;font-weight:bold'>From:</span></font></b><font
size=2 face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma'> Luc
Boudreau [mailto:<a href="mailto:lucboudreau@gmail.com" target="_blank">lucboudreau@gmail.com</a>]
<br>
<b><span style='font-weight:bold'>Sent:</span></b> Tuesday, April 06, 2010 3:58
PM<br>
<b><span style='font-weight:bold'>To:</span></b> Mondrian developer mailing
list<br>
<b><span style='font-weight:bold'>Cc:</span></b> <a
href="mailto:olap4j-devel@lists.sourceforge.net" target="_blank">olap4j-devel@lists.sourceforge.net</a><br>
<b><span style='font-weight:bold'>Subject:</span></b> Re: [Olap4j-devel]
[Mondrian] Convert Connection to OlapConnection</span></font><o:p></o:p></p>

<div>

<div>

<p class=MsoNormal style='margin-bottom:12.0pt'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'><br>
As of olap4j revision 307 ( <a
href="http://olap4j.svn.sourceforge.net/viewvc/olap4j?view=rev&amp;revision=307"
target="_blank">http://olap4j.svn.sourceforge.net/viewvc/olap4j?view=rev&amp;revision=307</a>
) the default MDX parser does not depend on OlapConnection. It should not have
been dependent on it in the first place. <br>
<br>
Mondrian developers: please modify the olap4j connection implementation and
remove the now deprecated call to DefaultMdxParserImpl(OlapConnection).
Modifications to the generic XML/A driver have already been performed.<br>
<br>
This does not mean that DefaultMdxParserImpl is part of the public API yet.
There should be a default parser factory exposed to developers. In the
meanwhile, developers can directly instantiate it, but be advised that we do
not provide any guarantees on this object's signature and we reserve the right
to modify it in the future. To create a parser, developers can call the empty
constructor.<br>
<br>
A compiled binary which includes those changes can be picked from the CI server
as of now :<br>
<br>
<a href="http://ci.pentaho.com/view/Analysis/job/olap4j/258/" target="_blank">http://ci.pentaho.com/view/Analysis/job/olap4j/258/</a><br>
<br clear=all>
_____________________________<br>
Luc Boudreau<br>
<br>
<o:p></o:p></span></font></p>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>On Tue, Apr 6, 2010 at 5:38 PM, Luc Boudreau &lt;<a
href="mailto:lucboudreau@gmail.com" target="_blank">lucboudreau@gmail.com</a>&gt;
wrote:<o:p></o:p></span></font></p>

<p class=MsoNormal style='margin-bottom:12.0pt'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'><br>
This topic was discussed in olap4j forums.<br>
<br>
<a
href="http://sourceforge.net/projects/olap4j/forums/forum/577988/topic/3545015"
target="_blank">http://sourceforge.net/projects/olap4j/forums/forum/577988/topic/3545015</a><br>
<br>
Although Julian's last comment mentioned that the parser is not officially part
of the public API, I for one would like to make it part of the public API.
There are many use cases for it and your request confirms it.<br>
<br>
I'll see what I can do to detach the parser from the connection classes.<br>
<br clear=all>
_____________________________<br>
Luc Boudreau<br>
<br>
<o:p></o:p></span></font></p>

<div>

<div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>On Tue, Apr 6, 2010 at 5:32 PM, Josh Chappelle &lt;<a
href="mailto:jchappelle@4redi.com" target="_blank">jchappelle@4redi.com</a>&gt;
wrote:<o:p></o:p></span></font></p>

</div>

</div>

<blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;
margin-left:4.8pt;margin-right:0in'>

<div>

<div>

<div link=blue vlink=purple>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Hi,</span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=3 face="Times New Roman"><span style='font-size:12.0pt'>&nbsp;<o:p></o:p></span></font></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>We have a
need to use the MdxParser component from the Olap4j project. However up until
this point we have not been using olap4j at all. To instantiate a
DefaultMdxParserImpl you have to provide an org.olap4j.OlapConnection object in
the constructor. Our software is using a mondrian.olap.Connection. Is there a
way to convert between these two connection objects? If not does it mean that
we will have to use the org.olap4j.OlapConnection in order to use the
MdxParser?</span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=3 face="Times New Roman"><span style='font-size:12.0pt'>&nbsp;<o:p></o:p></span></font></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Thanks,</span></font><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=3 face="Times New Roman"><span style='font-size:12.0pt'>&nbsp;<o:p></o:p></span></font></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 color="#888888" face=Arial><span style='font-size:10.0pt;font-family:
Arial;color:#888888'>Josh </span></font><font color="#888888"><span
style='color:#888888'><o:p></o:p></span></font></p>

</div>

</div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

</div>

</div>

<p class=MsoNormal style='margin-bottom:12.0pt'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>_______________________________________________<br>
Mondrian mailing list<br>
<a href="mailto:Mondrian@pentaho.org" target="_blank">Mondrian@pentaho.org</a><br>
<a href="http://lists.pentaho.org/mailman/listinfo/mondrian" target="_blank">http://lists.pentaho.org/mailman/listinfo/mondrian</a><o:p></o:p></span></font></p>

</blockquote>

</div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

</div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

</div>

</div>

</blockquote>

</div>

</div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

</blockquote>

</div>

</body>

</html>