Re: CvsNT API implemented in shared library

"kaczoroj" <[email protected]> Tue, 28 Nov 2006 00:20:03 -0000
Newsgroups gmane.comp.version-control.cvs.gui.devel
Message-ID <[email protected]>
--NkibcVsRWPLmpkHxNHUlBmm8MTKjBhbCkYTdqOe
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Guy,

To make a long story short: There is a lot more things to do and=20
piping works pretty well. Piping also has some advantages other=20
linking with API's thanks to a separation from cvs client binary.

On top of that I would be very cautious with recent CVSNT project=20
releases. Ever since it become commercial things are not going well=20
from a cvsgui point of view, but that is a story for another=20
discussion...

Best Regards,
Jerzy

--- In [email protected], Guy Rouillier <guyr-ml1@...> wrote:
>
> While setting up a new Linux instance in a virtual machine, I=20
downloaded
> the latest stable CvsNT version.  While building, I noticed a new
> subdirectory called "cvsapi" and investigated.  At the bottom of=20
this
> email is an exchange I had on the CvsNT Dev mailing list.  I=20
haven't had
> a chance yet to read the code Arthur pointed me to, but I thought=20
others
> on this list might find this interesting. Finally, we have an
> alternative to piping input and output from a separate CVS process.
>=20
> I'd prefer an API implementation, assuming of course it has all the
> options the command line provides.  I'd like to solicit other=20
opinions.
>  Of course, such a move would require use of CvsNT, since the old=20
CVS
> doesn't have this option.
>=20
> Here's my email and a reply from the CvsNT Dev list:
>=20
> Guy,
>=20
> The CVSAPI provides a bunch of methods that are useful for CVS GUI=20
clients,
> including spawning CVS processes, finding CVS Servers (browse and=20
define
> servers) etc.
>=20
> There is not (yet) an API for the CVS/Entries - but that will be=20
done as a
> part of the EVS project (I think) - check out the evs-dev newsgroup=20
for
> more
> info on that.
>=20
> The documentation is what is in the source code... If you checkout=20
the
> cvsnt
> project and look in the WorkspaceViewer folder - that is a sample=20
app that
> uses most of the main features of CVSAPI...
>=20
> Regards,
>=20
>=20
> Arthur
>=20
> "Guy Rouillier" <guyr-ml1@...> wrote in message
> news:mailman.238.1164500728.16616.cvsnt-dev@...
> > >I originally asked this on the users list, and a suggestion=20
there was to
> > >post over here.
> > >
> > > I work on gCvs, one of the CvsGui family of products.  We=20
currently use
> > > the cvsgui pipe implementation to provide CVS input and receive
> output. I
> > > noticed when building the latest cvsnt that it builds a shared=20
cvsapi
> > > library.  I couldn't locate any documentation.  Is this library
> intended
> > > to be a direct API replacement for the old pipe method of=20
invoking CVS?
> > > If so, that would be great!  Does any documentation exist?=20=20
Does the
> API
> > > provide functions to navigate the local sandbox, e.g.,=20
retrieving a
> > > filtered set of CVS entries in the sandbox?  Thanks.
> > >
> > > --
> > > Guy Rouillier
>=20
>=20
>=20
> --=20
> Guy Rouillier
>



--NkibcVsRWPLmpkHxNHUlBmm8MTKjBhbCkYTdqOe
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
</head>

<!-- Network content -->


<body style="background-color: #ffffff;">

<!--~-|**|PrettyHtmlStartT|**|-~-->
<div id="ygrp-mlmsg" style="width:655px; position:relative;">
  <div id="ygrp-msg" style="width: 490px; padding: 0 15px 0 0; float:left;  z-index:1;">
<!--~-|**|PrettyHtmlEndT|**|-~-->

    <div id="ygrp-text">
            <p>Guy,<br>
<br>
To make a long story short: There is a lot more things to do and <br>
piping works pretty well. Piping also has some advantages other <br>
linking with API's thanks to a separation from cvs client binary.<br>
<br>
On top of that I would be very cautious with recent CVSNT project <br>
releases. Ever since it become commercial things are not going well <br>
from a cvsgui point of view, but that is a story for another <br>
discussion..<wbr>.<br>
<br>
Best Regards,<br>
Jerzy<br>
<br>
--- In <a href="mailto:cvsgui-dev%40yahoogroups.com">cvsgui-dev@yahoogro<wbr>ups.com</a>, Guy Rouillier &lt;guyr-ml1@..<wbr>.&gt; wrote:<br>
&gt;<br>
&gt; While setting up a new Linux instance in a virtual machine, I <br>
downloaded<br>
&gt; the latest stable CvsNT version.  While building, I noticed a new<br>
&gt; subdirectory called &quot;cvsapi&quot; and investigated.  At the bottom of <br>
this<br>
&gt; email is an exchange I had on the CvsNT Dev mailing list.  I <br>
haven't had<br>
&gt; a chance yet to read the code Arthur pointed me to, but I thought <br>
others<br>
&gt; on this list might find this interesting. Finally, we have an<br>
&gt; alternative to piping input and output from a separate CVS process.<br>
&gt; <br>
&gt; I'd prefer an API implementation, assuming of course it has all the<br>
&gt; options the command line provides.  I'd like to solicit other <br>
opinions.<br>
&gt;  Of course, such a move would require use of CvsNT, since the old <br>
CVS<br>
&gt; doesn't have this option.<br>
&gt; <br>
&gt; Here's my email and a reply from the CvsNT Dev list:<br>
&gt; <br>
&gt; Guy,<br>
&gt; <br>
&gt; The CVSAPI provides a bunch of methods that are useful for CVS GUI <br>
clients,<br>
&gt; including spawning CVS processes, finding CVS Servers (browse and <br>
define<br>
&gt; servers) etc.<br>
&gt; <br>
&gt; There is not (yet) an API for the CVS/Entries - but that will be <br>
done as a<br>
&gt; part of the EVS project (I think) - check out the evs-dev newsgroup <br>
for<br>
&gt; more<br>
&gt; info on that.<br>
&gt; <br>
&gt; The documentation is what is in the source code... If you checkout <br>
the<br>
&gt; cvsnt<br>
&gt; project and look in the WorkspaceViewer folder - that is a sample <br>
app that<br>
&gt; uses most of the main features of CVSAPI...<br>
&gt; <br>
&gt; Regards,<br>
&gt; <br>
&gt; <br>
&gt; Arthur<br>
&gt; <br>
&gt; &quot;Guy Rouillier&quot; &lt;guyr-ml1@..<wbr>.&gt; wrote in message<br>
&gt; news:mailman.<wbr>238.1164500728.<wbr>16616.cvsnt-<wbr>dev@...<br>
&gt; &gt; &gt;I originally asked this on the users list, and a suggestion <br>
there was to<br>
&gt; &gt; &gt;post over here.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; I work on gCvs, one of the CvsGui family of products.  We <br>
currently use<br>
&gt; &gt; &gt; the cvsgui pipe implementation to provide CVS input and receive<br>
&gt; output. I<br>
&gt; &gt; &gt; noticed when building the latest cvsnt that it builds a shared <br>
cvsapi<br>
&gt; &gt; &gt; library.  I couldn't locate any documentation.  Is this library<br>
&gt; intended<br>
&gt; &gt; &gt; to be a direct API replacement for the old pipe method of <br>
invoking CVS?<br>
&gt; &gt; &gt; If so, that would be great!  Does any documentation exist?  <br>
Does the<br>
&gt; API<br>
&gt; &gt; &gt; provide functions to navigate the local sandbox, e.g., <br>
retrieving a<br>
&gt; &gt; &gt; filtered set of CVS entries in the sandbox?  Thanks.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; --<br>
&gt; &gt; &gt; Guy Rouillier<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; -- <br>
&gt; Guy Rouillier<br>
&gt;<br>
<br>
</p>
    </div>  

    <!--~-|**|PrettyHtmlStart|**|-~-->
    <span width="1" style="color: white;">__._,_.___</span>
    <!-- Start the section with Message In topic -->
    <div id="ygrp-actbar">
              <span class="left">
          <a href="http://groups.yahoo.com/group/cvsgui-dev/message/1460;_ylc=X3oDMTM0MWwzMGgyBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBG1zZ0lkAzE0NjEEc2VjA2Z0cgRzbGsDdnRwYwRzdGltZQMxMTY0NjczODE3BHRwY0lkAzE0NjA-">
            Messages in this topic          </a> (<span class="bld">2</span>)
        </span>
        <a href="http://groups.yahoo.com/group/cvsgui-dev/post;_ylc=X3oDMTJwaDdtZzFxBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBG1zZ0lkAzE0NjEEc2VjA2Z0cgRzbGsDcnBseQRzdGltZQMxMTY0NjczODE3?act=reply&messageNum=1461">
          <span class="bld">
            Reply          </span> (via web post)
        </a>  | 
        <a href="http://groups.yahoo.com/group/cvsgui-dev/post;_ylc=X3oDMTJlcWZhYXUxBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTE2NDY3MzgxNw--" class="bld">
          Start a new topic        </a>
          </div> 
    <!-------     Start Nav Bar  ------>
    <!-- |**|begin egp html banner|**| -->
    <div id="ygrp-vitnav">
                <a href="http://groups.yahoo.com/group/cvsgui-dev/messages;_ylc=X3oDMTJlZXBjNzJkBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA21zZ3MEc3RpbWUDMTE2NDY3MzgxNw--">Messages</a>  
            |    <a href="http://groups.yahoo.com/group/cvsgui-dev/files;_ylc=X3oDMTJmOTBubHBnBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA2ZpbGVzBHN0aW1lAzExNjQ2NzM4MTc-">Files</a>  
            |    <a href="http://groups.yahoo.com/group/cvsgui-dev/photos;_ylc=X3oDMTJla2s0bjNwBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA3Bob3QEc3RpbWUDMTE2NDY3MzgxNw--">Photos</a>  
            |    <a href="http://groups.yahoo.com/group/cvsgui-dev/links;_ylc=X3oDMTJmaWs3ajJqBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA2xpbmtzBHN0aW1lAzExNjQ2NzM4MTc-">Links</a>  
            |    <a href="http://groups.yahoo.com/group/cvsgui-dev/database;_ylc=X3oDMTJjMm04ODl0BF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA2RiBHN0aW1lAzExNjQ2NzM4MTc-">Database</a>  
            |    <a href="http://groups.yahoo.com/group/cvsgui-dev/polls;_ylc=X3oDMTJmbGFjbDZsBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA3BvbGxzBHN0aW1lAzExNjQ2NzM4MTc-">Polls</a>  
            |    <a href="http://groups.yahoo.com/group/cvsgui-dev/members;_ylc=X3oDMTJlYnNjZ25jBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA21icnMEc3RpbWUDMTE2NDY3MzgxNw--">Members</a>  
            |    <a href="http://groups.yahoo.com/group/cvsgui-dev/calendar;_ylc=X3oDMTJkMjlmcG8zBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA2NhbARzdGltZQMxMTY0NjczODE3">Calendar</a>  
    </div>  
    <!-- |**|end egp html banner|**| -->

    <!-- Do not have place to put it yet -->
    <div id="ygrp-grft">
          </div>

    <!-- yahoo logo -->
    <!-- |**|begin egp html banner|**| -->
    <div id="ygrp-ft">
      <a href="http://groups.yahoo.com/;_ylc=X3oDMTJka2x2NWxuBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA2dmcARzdGltZQMxMTY0NjczODE3">
      <img src="http://us.i1.yimg.com/us.yimg.com/i/yg/img/logo/ma_grp_160.gif" height="15" width="106" border="0" alt="Yahoo! Groups"></a> <br>
      <a href="http://groups.yahoo.com/group/cvsgui-dev/join;_ylc=X3oDMTJmdTV1NHBvBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA3N0bmdzBHN0aW1lAzExNjQ2NzM4MTc-">Change settings via the Web</a> (Yahoo! ID required) <br>
      Change settings via email: <a href="mailto:[email protected]?subject=Email Delivery: Digest">Switch delivery to Daily Digest</a> | <a href = "mailto:[email protected]?subject=Change Delivery Format: Traditional">Switch format to Traditional</a> <br>

      <a href="http://groups.yahoo.com/group/cvsgui-dev;_ylc=X3oDMTJkaW9wMWRyBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA2hwZgRzdGltZQMxMTY0NjczODE3">
        Visit Your Group 
      </a> |
      <a href="http://docs.yahoo.com/info/terms/">
        Yahoo! Groups Terms of Use      </a> |
      <a href="mailto:[email protected]?subject=">
        Unsubscribe      </a> 
    </div>     <!-- |**|end egp html banner|**| -->
  </div> <!-- ygrp-msg -->

  
  <!-- Sponsor -->
  <!-- |**|begin egp html banner|**| -->
  <div id="ygrp-sponsor" style="width:140px;float: left; clear: none; margin-left: 5px; background:white; margin-bottom:25px ;position:absolute; top:0; right: 0;">
    <!-- Network content -->
    
    <!-- Start vitality -->
    <div id="ygrp-vital">
            <a href="http://groups.yahoo.com/group/cvsgui-dev;_ylc=X3oDMTJlNGdmODlmBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTE2NDY3MzgxNw--">
        Visit Your Group      </a>
    </div> 
                <div id="hd">SPONSORED LINKS</div>
      <div id="ov">
        <ul>
                    <li><a href="http://groups.yahoo.com/gads;_ylc=X3oDMTJjM2RtdXQ3BF9TAzk3MzU5NzE0BF9wAzEEZ3JwSWQDMjQ5MzI0NQRncnBzcElkAzE3MDUwMDcxODEEc2VjA3NsbW9kBHN0aW1lAzExNjQ2NzM4MTk-?t=ms&k=Software+development+services&w1=Software+development+services&w2=Software+development&w3=Development+software&w4=Software+development+company&w5=Custom+software+development&c=5&s=154&g=2&.sig=7x2qo6dMYy1p5AU1pt1tiQ">Software development services</a></li>
                    <li><a href="http://groups.yahoo.com/gads;_ylc=X3oDMTJjbHEyYjY2BF9TAzk3MzU5NzE0BF9wAzIEZ3JwSWQDMjQ5MzI0NQRncnBzcElkAzE3MDUwMDcxODEEc2VjA3NsbW9kBHN0aW1lAzExNjQ2NzM4MTk-?t=ms&k=Software+development&w1=Software+development+services&w2=Software+development&w3=Development+software&w4=Software+development+company&w5=Custom+software+development&c=5&s=154&g=2&.sig=BN1lrlsQSEiIXBpRBgFwvg">Software development</a></li>
                    <li><a href="http://groups.yahoo.com/gads;_ylc=X3oDMTJjMjhhaTByBF9TAzk3MzU5NzE0BF9wAzMEZ3JwSWQDMjQ5MzI0NQRncnBzcElkAzE3MDUwMDcxODEEc2VjA3NsbW9kBHN0aW1lAzExNjQ2NzM4MTk-?t=ms&k=Development+software&w1=Software+development+services&w2=Software+development&w3=Development+software&w4=Software+development+company&w5=Custom+software+development&c=5&s=154&g=2&.sig=tCpQXu3D1f1U1uy5lsC3_g">Development software</a></li>
                    <li><a href="http://groups.yahoo.com/gads;_ylc=X3oDMTJjMzh0NHU4BF9TAzk3MzU5NzE0BF9wAzQEZ3JwSWQDMjQ5MzI0NQRncnBzcElkAzE3MDUwMDcxODEEc2VjA3NsbW9kBHN0aW1lAzExNjQ2NzM4MTk-?t=ms&k=Software+development+company&w1=Software+development+services&w2=Software+development&w3=Development+software&w4=Software+development+company&w5=Custom+software+development&c=5&s=154&g=2&.sig=vprGpfTz1GxuQRXlltd5Og">Software development company</a></li>
                    <li><a href="http://groups.yahoo.com/gads;_ylc=X3oDMTJjdHF0cmlvBF9TAzk3MzU5NzE0BF9wAzUEZ3JwSWQDMjQ5MzI0NQRncnBzcElkAzE3MDUwMDcxODEEc2VjA3NsbW9kBHN0aW1lAzExNjQ2NzM4MTk-?t=ms&k=Custom+software+development&w1=Software+development+services&w2=Software+development&w3=Development+software&w4=Software+development+company&w5=Custom+software+development&c=5&s=154&g=2&.sig=GblHBdeKJR4WCTYIwY_tYA">Custom software development</a></li>
                  </ul>
      </div>
    
    <!-- Network content -->
                <div id="nc">
              <div class="ad">
                      <div id="hd1">Yahoo! Mail</div> 
<p><a href="http://us.ard.yahoo.com/SIG=12hhkrhjd/M=493064.8985657.9760727.8674578/D=groups/S=1705007181:NC/Y=YAHOO/EXP=1164681019/A=3848568/R=0/SIG=12jllrvsk/*http://us.rd.yahoo.com/evt=42409/*http://advision.webevents.yahoo.com/handraisers">Next gen email?</a></p> 
<p>Try the all-new</p> 
<p>Yahoo! Mail Beta.</p>                  </div>
                    <div class="ad">
                      <div id="hd1">Y! Messenger</div> 
<p><a href="http://us.ard.yahoo.com/SIG=12hmv3qab/M=493064.8985659.9760753.8674578/D=groups/S=1705007181:NC/Y=YAHOO/EXP=1164681019/A=3848589/R=0/SIG=12dds2hov/*http://us.rd.yahoo.com/evt=42403/*http://messenger.yahoo.com/feat_voice.php">Talk it up - free!</a></p> 
<p>Call your friends</p> 
<p>worldwide - free!</p>                  </div>
                    <div class="ad">
                      <div id="hd1">Search Ads</div> 
<p><a href="http://us.ard.yahoo.com/SIG=12hl67o4q/M=493064.8985663.9760769.8674578/D=groups/S=1705007181:NC/Y=YAHOO/EXP=1164681019/A=3848641/R=0/SIG=1312g85fq/*http://searchmarketing.yahoo.com/arp/srchv2.php?o=US2003&cmp=Yahoo&ctv=Groups2&s=Y&s2=&s3=&b=50">Get new customers.</a></p> 
<p>List your web site</p> 
<p>in Yahoo! Search.</p>                  </div>
          </div>
      
  </div>   <!-- |**|end egp html banner|**| -->
  <div style="clear:both; color: #FFF; font-size:1px;">.</div>
</div> <img src="http://geo.yahoo.com/serv?s=97359714/grpId=2493245/grpspId=1705007181/msgId=1461/stime=1164673817/nc1=3848568/nc2=3848589/nc3=3848641" width="1" height="1"> <br>
<span  style="color: white;">__,_._,___</span>
<!--~-|**|PrettyHtmlEnd|**|-~-->
</body>
<!--~-|**|PrettyHtmlStart|**|-~-->
<head>
<style type="text/css">
<!--
#ygrp-mlmsg {font-size:13px; font-family: arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;}
#ygrp-mlmsg table {font-size:inherit;font:100%;}
#ygrp-mlmsg select, input, textarea {font:99% arial,helvetica,clean,sans-serif;}
#ygrp-mlmsg pre, code {font:115% monospace;*font-size:100%;}
#ygrp-mlmsg * {line-height:1.22em;}
#ygrp-text{
    font-family: Georgia;	
}
#ygrp-text p{
    margin: 0 0 1em 0;
}
#ygrp-tpmsgs{
    font-family: Arial;	
    clear: both;
}
#ygrp-vitnav{
	padding-top: 10px;
	font-family: Verdana;
	font-size: 77%;
	margin: 0;
}
#ygrp-vitnav a{
	padding: 0 1px;
}
#ygrp-actbar{
	clear: both;
	margin: 25px 0;
	white-space:nowrap;
	color: #666;
	text-align: right;
}
#ygrp-actbar .left{
	float: left;
	white-space:nowrap;
}
.bld{font-weight:bold;}
#ygrp-grft{
	font-family: Verdana;
	font-size: 77%;
	padding: 15px 0;
}
#ygrp-ft{
  font-family: verdana;
  font-size: 77%;
  border-top: 1px solid #666; 
  padding: 5px 0; 
}
#ygrp-mlmsg #logo{
  padding-bottom: 10px;
}

#ygrp-vital{
	background-color: #e0ecee;
	margin-bottom: 20px;
	padding: 2px 0 8px 8px;
}
#ygrp-vital #vithd{
	font-size: 77%;
	font-family: Verdana;
	font-weight: bold;
	color: #333;
	text-transform: uppercase;
}
#ygrp-vital ul{
	padding: 0;
	margin: 2px 0;
}
#ygrp-vital ul li{
  list-style-type: none;
  clear: both;
  border: 1px solid #e0ecee;  
}
#ygrp-vital ul li .ct{
  font-weight: bold;
  color: #ff7900;
  float: right;
  width: 2em;
  text-align:right;
  padding-right: .5em;
}
#ygrp-vital ul li .cat{
  font-weight: bold;
}
#ygrp-vital a {
	text-decoration: none;
}

#ygrp-vital a:hover{
  text-decoration: underline;
}

#ygrp-sponsor #hd{
	color: #999;
	font-size: 77%;
}
#ygrp-sponsor #ov{
	padding: 6px 13px;
	background-color: #e0ecee;
	margin-bottom: 20px;
}
#ygrp-sponsor #ov ul{
	padding: 0 0 0 8px;
	margin: 0;
}
#ygrp-sponsor #ov li{
	list-style-type: square;
	padding: 6px 0;
	font-size: 77%;
}
#ygrp-sponsor #ov li a{
	text-decoration: none;
	font-size: 130%;
}
#ygrp-sponsor #nc {
  background-color: #eee;
  margin-bottom: 20px;
  padding: 0 8px;
}
#ygrp-sponsor .ad{
	padding: 8px 0;
}
#ygrp-sponsor .ad #hd1{
	font-family: Arial;
	font-weight: bold;
	color: #628c2a;
	font-size: 100%;
	line-height: 122%;
}
#ygrp-sponsor .ad a{
	text-decoration: none;
}
#ygrp-sponsor .ad a:hover{
	text-decoration: underline;
}
#ygrp-sponsor .ad p{
	margin: 0;
}
o {font-size: 0; }
.MsoNormal {
   margin: 0 0 0 0;
}
#ygrp-text tt{
  font-size: 120%;
}
blockquote{margin: 0 0 0 4px;}
.replbq {margin:4}
-->
</style>
</head>
<!--~-|**|PrettyHtmlEnd|**|-~-->
</html><!--End group email -->


--NkibcVsRWPLmpkHxNHUlBmm8MTKjBhbCkYTdqOe--