From: "Salvo pelo Windows Internet Explorer 9"
Subject: =?Windows-1252?Q?Portal_do_Volunt=E1rio?=
Date: Thu, 27 Oct 2011 17:17:09 -0200
MIME-Version: 1.0
Content-Type: multipart/related;
	type="text/html";
	boundary="----=_NextPart_000_0000_01CC94CC.424DB590"
X-MimeOLE: Produced By Microsoft MimeOLE V6.1.7600.16807

This is a multi-part message in MIME format.

------=_NextPart_000_0000_01CC94CC.424DB590
Content-Type: text/html;
	charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idconteudo=2306

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Portal do Volunt=E1rio</TITLE><LINK rel=3Dstylesheet=20
type=3Dtext/css=20
href=3D"http://www.portaldovoluntariohsbc.com.br/site/Themes/hsbcHome/Sty=
le.css"=20
media=3Dscreen><LINK rel=3D"shortcut icon" =
href=3D"/site/img/icoURL.ico">
<META content=3Dtext/html;charset=3Dwindows-1252 =
http-equiv=3Dcontent-type>
<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.portaldovoluntariohsbc.com.br/site/js/prototype.js"></S=
CRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.portaldovoluntariohsbc.com.br/site/js/effects.js"></SCR=
IPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.portaldovoluntariohsbc.com.br/site/js/glider.js"></SCRI=
PT>

<SCRIPT language=3DJavascript1.2>
      function PopUP(Page,NewWindow,Size) {=20
      window.open(Page,NewWindow,Size);
      }
    </SCRIPT>

<META name=3DGENERATOR content=3D"MSHTML 9.00.8112.16437"></HEAD>
<BODY><A name=3Dpage_topo></A>
<TABLE border=3D0 cellSpacing=3D0 cellPadding=3D0 width=3D999 =
align=3Dcenter=20
height=3D"100%">
  <TBODY>
  <TR>
    <TD height=3D120 vAlign=3Dtop>
      <CENTER>
      <DIV class=3Dcabecalho>
      <UL class=3Dlogos>
        <LI><A class=3DinstitutoHSBC=20
        href=3D"http://www.hsbc.com.br/sustentabilidade">Instituto HSBC=20
        Solidariedade</A> </LI>
        <LI><A class=3DpvHSBC=20
        href=3D"http://www.portaldovoluntariohsbc.com.br/site">Portal do =

        Volunt=E1rio HSBC</A> </LI></UL>
      <DIV class=3DbarraLogin>
      <DIV class=3Dbusca>
      <FORM method=3Dget name=3DBusca =
action=3D/resultado_busca.php><INPUT=20
      class=3DcampoBusca name=3Ds_keyword maxLength=3D150 =
size=3D12><INPUT class=3DbotaoBusca name=3DButton align=3Dmiddle =
value=3DBuscar width=3D54 height=3D17 type=3Dsubmit>=20
      </FORM></DIV>
      <DIV class=3Dlogin>
      <FORM method=3Dpost name=3DLogin =
action=3D/login.php?ccsForm=3DLogin>
      <UL class=3DloginMenu>
        <LI class=3Dborder><A=20
        =
href=3D"http://www.portaldovoluntariohsbc.com.br/login.php?ret_link=3D/si=
te/pagina.php?idconteudo=3D2306">logar</A>=20
        </LI>
        <LI><A=20
        =
href=3D"http://www.portaldovoluntariohsbc.com.br/cadastro.php">cadastrar<=
/A>=20
        </LI></UL></FORM></DIV></DIV></DIV>
      <DIV class=3DmenuHorizontal>
      <UL class=3Dmenu>
        <LI><A id=3Dnav=20
        href=3D"http://www.portaldovoluntariohsbc.com.br/site">Home</A> =
</LI>
        <LI><A id=3Dnav=20
        =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idmenu=3D=
1">Sou=20
        Volunt=E1rio</A> </LI>
        <LI><A id=3Dnavbr=20
        =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idmenu=3D=
27">Quero=20
        ser<BR>volunt=E1rio</A> </LI>
        <LI><A id=3Dnavbr=20
        =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idmenu=3D=
77">Blog=20
        Comit=EAs Regionais<BR>de A=E7=E3o Volunt=E1ria</A> </LI>
        <LI><A id=3Dnav=20
        =
href=3D"http://www.portaldovoluntariohsbc.com.br/v2v.php">V2V</A> </LI>
        <LI><A id=3Dnav=20
        =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idmenu=3D=
34">Ajuda</A>=20
        </LI></UL></DIV></CENTER></TD></TR>
  <TR>
    <TD vAlign=3Dtop>
      <TABLE class=3Dcaminho border=3D0 cellSpacing=3D0 cellPadding=3D0 =
width=3D"100%"=20
      align=3Dcenter>
        <TBODY>
        <TR>
          <TD class=3DBgCaminho vAlign=3Dbottom width=3D7></TD>
          <TD class=3DBgCaminho><A class=3Dcaminho=20
            =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/index.php"><STRONG>=
Principal</STRONG></A>=20
            =BB <A class=3Dcaminho=20
            =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idmenu=3D=
1">Sou=20
            Volunt=E1rio</A> =BB <A class=3Dcaminho=20
            =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idmenu=3D=
60">Not=EDcias</A>=20
          </TD></TR></TBODY></TABLE>
      <TABLE border=3D0 cellSpacing=3D0 cellPadding=3D0 width=3D999 =
align=3Dcenter>
        <TBODY>
        <TR>
          <TD class=3DTD_menu vAlign=3Dtop width=3D"25%">&nbsp;&nbsp;=BB =
<A class=3Dmenu=20
            =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idmenu=3D=
105">Quero=20
            ser Volunt=E1rio</A><BR>&nbsp;&nbsp;=BB <A class=3Dmenu=20
            =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idmenu=3D=
78">O=20
            que =E9 ser volunt=E1rio?</A><BR>&nbsp;&nbsp;=BB <A =
class=3Dmenu=20
            =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idmenu=3D=
80">Programa=20
            HSBC de Voluntariado</A><BR>&nbsp;&nbsp;=BB <A class=3Dmenu=20
            =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idmenu=3D=
77">Comit=EAs=20
            Regionais de A=E7=E3o Volunt=E1ria</A><BR>&nbsp;&nbsp;=BB <A =
class=3Dmenu=20
            =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idmenu=3D=
83">HSBC=20
            Climate Partnership</A><BR>&nbsp;&nbsp;=BB <A class=3Dmenu=20
            =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idmenu=3D=
81">Projetos=20
            de Prateleira</A><BR>&nbsp;&nbsp;=BB <A class=3Dmenu=20
            =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idmenu=3D=
82">Sistema=20
            de Volunt=E1rios HSBC</A><BR>&nbsp;&nbsp;=BB <A class=3Dmenu =

            =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idmenu=3D=
116">Centros=20
            de A=E7=E3o Volunt=E1ria Brasil</A><BR>&nbsp;&nbsp;=BB <A =
class=3Dmenu=20
            =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idmenu=3D=
76">Destaques</A><BR>&nbsp;&nbsp;=BB=20
            <A class=3Dmenu=20
            =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idmenu=3D=
60">Not=EDcias</A><BR>&nbsp;&nbsp;=BB=20
            <A class=3Dmenu=20
            =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idmenu=3D=
4">Entrevistas</A><BR>&nbsp;&nbsp;=BB=20
            <A class=3Dmenu=20
            =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idmenu=3D=
5">Hist=F3rico</A><BR></TD>
          <TD vAlign=3Dtop width=3D"75%" colSpan=3D3>
            <TABLE border=3D0 cellPadding=3D7 width=3D"100%">
              <TBODY>
              <TR>
                <TD class=3DTD_corpo>
                  <TABLE border=3D0 cellSpacing=3D0 cellPadding=3D0 =
width=3D"100%">
                    <TBODY>
                    <TR>
                      <TD class=3Dtitulo><IMG=20
                        =
src=3D"http://www.portaldovoluntariohsbc.com.br/site/img/spacer.gif"=20
                        width=3D1 =
height=3D5>Not=EDcias</TD></TR></TBODY></TABLE>
                  <P><STRONG class=3Dsubtitulo>Volunt=E1rios em defesa =
dos=20
                  animais</STRONG><BR><BR>A <A=20
                  href=3D"http://www.pea.org.br/"><SPAN =
class=3Dcaps><SPAN=20
                  class=3Dcaps>PEA</SPAN></SPAN></A> (Projeto =
Esperan=E7a Animal) =E9=20
                  uma entidade sem fins lucrativos que funciona apenas =
com=20
                  trabalho volunt=E1rio. Focada na conscientiza=E7=E3o =
da sociedade=20
                  sobre o bem-estar dos animais =96 tanto dom=E9sticos =
quanto=20
                  silvestres =96, a entidade conta com a iniciativa =
pessoal de=20
                  seus cerca de 8,6 mil ativistas, como s=E3o chamados =
os=20
                  volunt=E1rios.=20
                  <P>Eles atuam na propaga=E7=E3o de informa=E7=F5es =96 =
seja=20
                  individualmente, conscientizando familiares e amigos, =
seja em=20
                  campanhas mais amplas. =93=C9 poss=EDvel colaborar =
tanto=20
                  tecnicamente, com suas habilidades profissionais, =
quanto=20
                  simplesmente divulgando nosso site e disseminando =
informa=E7=F5es=20
                  em prol da conscientiza=E7=E3o=94, conta, nesta =
entrevista, o=20
                  diretor geral da <SPAN class=3Dcaps><SPAN=20
                  class=3Dcaps>PEA</SPAN></SPAN>, <B>Carlos =
Rosolen</B>.</P>
                  <P><I>Por Vinicius Neder</I></P>
                  <P><B>Como come=E7ou a <SPAN class=3Dcaps><SPAN=20
                  class=3Dcaps>PEA</SPAN></SPAN>?</B><BR><B>Carlos =
Rosolen</B> =96 A=20
                  entidade come=E7ou a partir do trabalho de conclus=E3o =
de curso de=20
                  gradua=E7=E3o da fundadora [Ana Gabriela de Toledo] e =
tomou forma=20
                  em 2003, quando reuniu outras pessoas engajadas no =
tema, com a=20
                  mesma vis=E3o. Em 2003, a entidade foi oficializada. =
Todos os=20
                  colaboradores s=E3o volunt=E1rios e a entidade =
funciona num modelo=20
                  de <I>home office</I>, cada um trabalhando de casa ou =
de seus=20
                  escrit=F3rios. Temos colaboradores de v=E1rias =
=E1reas, como=20
                  veterin=E1rios, designers, advogados, comunicadores =
etc.</P>
                  <TABLE style=3D"WIDTH: 180px; HEIGHT: 177px" =
border=3D0=20
                  cellSpacing=3D1 cellPadding=3D1 align=3Dleft>
                    <TBODY>
                    <TR align=3Dcenter>
                      <TD><IMG alt=3D""=20
                        =
src=3D"http://portaldovoluntario.v2v.net/photos/0046/0646/pea_chique_smal=
l.jpg"></TD></TR>
                    <TR align=3Dcenter>
                      <TD>
                        <DIV style=3D"WIDTH: 180px; FONT-SIZE: =
10px">Cartaz=20
                        dispon=EDvel no site da <SPAN class=3Dcaps><SPAN =

                        class=3Dcaps>PEA</SPAN></SPAN></DIV><SPAN =
class=3Dcaps><SPAN=20
                        =
class=3Dcaps></SPAN></SPAN></TD></TR></TBODY></TABLE>
                  <P><B>O foco do trabalho da <SPAN class=3Dcaps><SPAN=20
                  class=3Dcaps>PEA</SPAN></SPAN> =E9 na =
conscientiza=E7=E3o. Por que foi=20
                  feita essa op=E7=E3o?</B><BR><B>Rosolen</B> =96 Na =
=E9poca da=20
                  funda=E7=E3o, ap=F3s uma avalia=E7=E3o das entidades =
que atuavam em=20
                  temas relacionados =E0 fauna, verificamos que n=E3o =
adiantaria=20
                  abrir mais um abrigo para animais. Ele lotaria e n=E3o =

                  resolveria o problema. Resolvemos, ent=E3o, que seria =
melhor=20
                  atacar o problema pela base, ou seja, na =
conscientiza=E7=E3o da=20
                  sociedade.</P>
                  <P><B>Quais s=E3o as principais a=E7=F5es =
desenvolvidas pela <SPAN=20
                  class=3Dcaps><SPAN=20
                  class=3Dcaps>PEA</SPAN></SPAN>?</B><BR><B>Rosolen</B> =
=96 O=20
                  conceito do nosso trabalho est=E1 baseado na =
iniciativa=20
                  individual de nossos ativistas, que =E9 como chamamos =
nossos=20
                  volunt=E1rios. Eles atuam na propaga=E7=E3o de =
informa=E7=F5es para=20
                  conscientiza=E7=E3o ou em a=E7=F5es imediatas contra =
situa=E7=F5es=20
                  extremas, como no caso de maus-tratos. Em nosso site, =
temos=20
                  uma cartilha, o <A=20
                  =
href=3D"http://www.pea.org.br/educativo/pdf/cartilha_didatica.pdf">Manual=
=20
                  do Ativista</A>, que detalha como cada um dos =
volunt=E1rios deve=20
                  atuar. Dentro desse conceito, portanto, fazemos =
encontros e=20
                  reuni=F5es com os ativistas para incentivar a atitude =
individual=20
                  de cada um, principalmente repassando informa=E7=F5es. =
O primeiro=20
                  passo =E9 cada ativista olhar para sua pr=F3pria casa =
e mudar seus=20
                  h=E1bitos. N=E3o acreditamos no ditado popular de que =
uma=20
                  andorinha sozinha n=E3o faz ver=E3o.</P>
                  <P><B>Que tipo de campanha a entidade=20
                  organiza?</B><BR><B>Rosolen</B> =96 Por exemplo, =
fizemos uma <A=20
                  =
href=3D"http://portaldovoluntario.v2v.net/photos/0046/0658/pea_rodeio.jpg=
">campanha=20
                  contra rodeios</A>. A campanha identificou empresas=20
                  patrocinadoras de rodeios e incentivava as pessoas a =
pararem=20
                  de comprar os produtos ou servi=E7os dessas empresas =
por=20
                  patrocinarem esse tipo de atividade. Al=E9m de trocar =
de=20
                  fornecedor, incentiv=E1vamos as pessoas a informar as =
empresas=20
                  que estavam deixando de ser seus clientes porque eles=20
                  patrocinavam rodeios. A campanha teve uma ades=E3o =
muito grande,=20
                  a ponto de organizadores de rodeio terem acionado a =
entidade=20
                  judicialmente, j=E1 que come=E7aram a perder =
patrocinadores. A=20
                  a=E7=E3o judicial impediu que trat=E1ssemos dos =
rodeios em nossas=20
                  campanhas. A disputa chegou ao Supremo Tribunal =
Federal (<SPAN=20
                  class=3Dcaps><SPAN class=3Dcaps>STF</SPAN></SPAN>), =
mas=20
                  recentemente voltamos a ter o direito de nos =
posicionar sobre=20
                  o tema. Estamos agora aguardando a decis=E3o final do=20
                  processo.</P>
                  <P><B>Qual a estrutura de pessoal da <SPAN =
class=3Dcaps><SPAN=20
                  class=3Dcaps>PEA</SPAN></SPAN>?</B><BR><B>Rosolen</B> =
=96 A=20
                  estrutura de gest=E3o e dire=E7=E3o tem oito pessoas, =
todos=20
                  volunt=E1rios. Al=E9m disso, estamos estruturando o =
Conselho=20
                  Fiscal, com tr=EAs membros, e o Conselho de =
Administra=E7=E3o, que=20
                  hoje tem cinco membros, mas passar=E1 a ter nove. Em =
nossa base=20
                  de dados, temos 200 mil pessoas inscritas atrav=E9s do =
site,=20
                  para receber informa=E7=F5es ou fazer qualquer tipo de =
contato. O=20
                  n=FAmero de ativistas, as pessoas que p=F5em a m=E3o =
na massa, =E9 de=20
                  8,6 mil.<BR></P>
                  <DIV class=3D"content subtitle right">
                  <DIV style=3D"TEXT-ALIGN: center"></DIV>
                  <TABLE border=3D0 cellSpacing=3D1 cellPadding=3D1 =
width=3D130=20
                  align=3Dright>
                    <TBODY>
                    <TR>
                      <TD style=3D"TEXT-ALIGN: center"><IMG alt=3D""=20
                        =
src=3D"http://portaldovoluntario.v2v.net/photos/0046/0652/pea_tela__Small=
__small.jpg"></TD></TR>
                    <TR>
                      <TD>
                        <DIV style=3D"TEXT-ALIGN: center"></DIV>
                        <DIV=20
                        style=3D"TEXT-ALIGN: center; WIDTH: 100px; =
FONT-SIZE: 10px">Cartaz=20
                        educativo</DIV></TD></TR></TBODY></TABLE><B>Como =
=E9 poss=EDvel=20
                  colaborar com a entidade?</B><B><BR>Rosolen</B> =96 =
H=E1 diversas=20
                  formas de colaborar. Se o ativista tem especialidade =
em=20
                  desenvolver estampas, por exemplo, pode ajudar criando =

                  camisetas. Temos muitos ativistas da =E1rea de =
comunica=E7=E3o, que=20
                  contribuem com o desenvolvimento de pe=E7as para as =
campanhas.=20
                  Al=E9m disso, temos muita colabora=E7=E3o de =
advogados. Portanto, =E9=20
                  poss=EDvel colaborar tanto tecnicamente, com suas =
habilidades=20
                  profissionais, quanto simplesmente divulgando nosso =
site e=20
                  disseminando informa=E7=F5es em prol da =
conscientiza=E7=E3o.</DIV>
                  <P><B>Como a entidade =E9 custeada? =C9 poss=EDvel =
colaborar fazendo=20
                  doa=E7=F5es?</B><BR><B>Rosolen</B> =96 Temos planos de =
associados=20
                  dispon=EDveis em nosso <A=20
                  href=3D"http://www.pea.org.br/">site</A>. =C9 =
poss=EDvel doar apenas=20
                  uma vez ou fazer um plano de doa=E7=F5es mensais, com =
dura=E7=E3o de=20
                  um ano. Tamb=E9m aceitamos doa=E7=F5es de =
medicamentos, que=20
                  utilizamos ou encaminhamos para institui=E7=F5es de =
atendimento=20
                  direto, ou material gr=E1fico por exemplo. Uma vez, =
recebemos=20
                  uma grande doa=E7=E3o de papel, que usamos para a =
produ=E7=E3o de=20
                  folders. Mas o n=FAmero de doadores =E9 muito menor do =
que de=20
                  ativistas e n=E3o chega nem a 200.</P>
                  <P><B>A institui=E7=E3o n=E3o atua diretamente no =
recolhimento e=20
                  encaminhamento de animais abandonados, mas h=E1 algum =
trabalho=20
                  relacionado a essa atividade?</B><BR><B>Rosolen</B> =
=96 Sim.=20
                  Atuamos no chamado corredor da morte, com os animais=20
                  recolhidos pelas carrocinhas das prefeituras. Nesse =
sentido,=20
                  desenvolvemos e mantemos o site <A=20
                  =
href=3D"http://www.queroumbicho.com.br/">Queroumbicho.com.br</A>.=20
                  O sistema de cadastro =E9 oferecido =E0s prefeituras =
para ser=20
                  utilizado como forma de encaminhar os animais =
abandonados e=20
                  recolhidos nos abrigos p=FAblicos. O site =E9 =
divulgado para que=20
                  as pessoas interessadas em adotar um animal possam=20
                  encontr=E1-lo. Um levantamento feito h=E1 um ano =
apontou que o=20
                  site estava proporcionando a ado=E7=E3o de 6 mil =
bichos por ano.=20
                  Hoje, temos cerca de 50 prefeituras cadastradas.</P>
                  <P><B>O sistema do site =E9 mantido pela <SPAN =
class=3Dcaps><SPAN=20
                  class=3Dcaps>PEA</SPAN></SPAN>?</B><BR><B>Rosolen</B> =
=96 Sim. A=20
                  prefeitura cadastrada ganha login e senha de acesso =
para uma=20
                  p=E1gina administrada por ela, onde faz toda a =
gest=E3o de seu=20
                  cadastro, mas o sistema funcional continua sendo =
gerido por=20
                  equipe da <SPAN class=3Dcaps><SPAN =
class=3Dcaps>PEA</SPAN></SPAN>,=20
                  que usa sua rede para divulgar o site. =C9 uma =
ferramenta de=20
                  potencial enorme. Temos cerca de mil acessos por dia =
na=20
                  p=E1gina, o que pode ser considerado muito pouco na =
internet=20
                  atualmente.</P>
                  <P><B>De 2003, quando a entidade foi criada, at=E9 =
hoje o que=20
                  mudou em termos da conscientiza=E7=E3o da sociedade =
sobre o=20
                  bem-estar dos animais?</B><BR><B>Rosolen</B> =96 A =
principal=20
                  mudan=E7a de comportamento que pode ser observada =E9 =
a queda do=20
                  preconceito contra os vira-latas, uma causa de =
d=E9cadas de quem=20
                  atua nessa =E1rea. A situa=E7=E3o est=E1 muito melhor =
hoje.=20
                  Atualmente, nos bairros nobres de S=E3o Paulo, j=E1 =
=E9 poss=EDvel ver=20
                  =93madames=94 andando com vira-latas, o que era =
impens=E1vel h=E1 dez=20
                  anos. Hoje, =E9 chique adotar um vira-lata.</P>
                  <P><B>Neste per=EDodo, foi aprovada a Lei Arouca, que =
trata do=20
                  uso de animais em pesquisa cient=EDfica. Na =
avalia=E7=E3o da <SPAN=20
                  class=3Dcaps><SPAN class=3Dcaps>PEA</SPAN></SPAN>, =
houve avan=E7os=20
                  nessa =E1rea?</B><BR><B>Rosolen</B> =96 A lei sobre =
uso cient=EDfico=20
                  dos animais veio mais a favor dos cientistas e serviu =
mais=20
                  para confundir o judici=E1rio. Desde 1998, a Lei de =
Crimes=20
                  Ambientais considerava crime usar animais em testes, =
pesquisas=20
                  e salas de aula, desde que houvesse alternativas. Mas =
algumas=20
                  universidades usavam animais mesmo havendo op=E7=F5es. =
Um estudo=20
                  feito na Europa apontou que animais seguiam sendo =
usados em=20
                  testes e pesquisas porque =E9 mais barato e porque os =
resultados=20
                  podem ser manipulados mais facilmente. Com a Lei =
Arouca,=20
                  gerou-se uma confus=E3o, pois ningu=E9m sabe o que =
vale mais, se=20
                  ela ou a Lei de Crimes Ambientais. A Lei Arouca exige =
a=20
                  exist=EAncia de um conselho de =E9tica para aprovar =
testes e=20
                  pesquisas, mas n=E3o h=E1 nenhuma fiscaliza=E7=E3o do =
cumprimento da=20
                  lei, ou mesmo do modo de atua=E7=E3o deste =
conselho.</P>
                  <P>&nbsp;</P>
                  <P><SPAN style=3D"FONT-STYLE: italic">*Mat=E9ria =
retirada do <A=20
                  href=3D"http://portaldovoluntario.v2v.net/">Portal do =
Volunt=E1rio=20
                  Brasil</A></SPAN><BR></P>
                  <P></P>
                  <P></P>
                  <P><IMG=20
                  =
src=3D"http://www.portaldovoluntariohsbc.com.br/site/img/Topo.png">=20
                  <A class=3DtopoVoltar=20
                  =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idconteu=
do=3D2306#page_topo">topo</A>&nbsp;&nbsp;&nbsp;<IMG=20
                  =
src=3D"http://www.portaldovoluntariohsbc.com.br/site/img/Voltar.png">=20
                  <A class=3DtopoVoltar=20
                  href=3D"javascript:history.go(-1)">voltar</A>=20
            </P></TD></TR></TBODY></TABLE>
            <CENTER class=3Dsubtitulo>
            <TABLE style=3D"DISPLAY: none" border=3D0 cellPadding=3D7 =
width=3D"100%">
              <TBODY>
              <TR>
                <TD class=3DTD_corpo>
                  <TABLE border=3D0 cellSpacing=3D0 cellPadding=3D0 =
width=3D"100%">
                    <TBODY>
                    <TR>
                      <TD class=3Dtitulo><IMG=20
                        =
src=3D"http://www.portaldovoluntariohsbc.com.br/site/img/spacer.gif"=20
                        width=3D1 =
height=3D5>Not=EDcias</TD></TR></TBODY></TABLE><FONT=20
                  class=3DFormHeaderFont>&nbsp; </FONT>
                  <TABLE cellSpacing=3D0 cellPadding=3D2 width=3D"100%">
                    <TBODY>
                    <TR>
                      <TD class=3DDataTD vAlign=3Dtop><A =
class=3DDataLink=20
                        =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idconteu=
do=3D2363">A=E7=F5es=20
                        Espont=E2neas</A> <BR><EM>Publicada em:=20
                        24/10/2011</EM><BR>A=E7=F5es realizadas de forma =
espont=E2nea=20
                        pelos colaboradores tamb=E9m ganham pontos no =
Programa=20
                        HSBC de Voluntariado - Reconhecimento.</TD></TR>
                    <TR>
                      <TD class=3DAltDataTD vAlign=3Dtop><A =
class=3DDataLink=20
                        =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idconteu=
do=3D2362">Workshop=20
                        Comit=EAs Regionais de A=E7=E3o Volunt=E1ria</A> =

                        <BR><EM>Publicada em: 24/10/2011</EM><BR>Grupos =
se=20
                        re=FAnem para discutir sobre =
voluntariado</TD></TR>
                    <TR>
                      <TD class=3DDataTD vAlign=3Dtop><A =
class=3DDataLink=20
                        =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idconteu=
do=3D2359">Sem=20
                        nenhuma ideia de a=E7=E3o para realizar no Dia =
das=20
                        Crian=E7as?</A> <BR><EM>Publicada em:=20
                        05/10/2011</EM><BR>Clique aqui e confira nossas =
dicas=20
                    </TD></TR>
                    <TR>
                      <TD class=3DAltDataTD vAlign=3Dtop><A =
class=3DDataLink=20
                        =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idconteu=
do=3D2351">Projetos=20
                        de Volunt=E1rios apoiados pelo Instituto HSBC=20
                        Solidariedade </A><BR><EM>Publicada em:=20
                        26/09/2011</EM><BR>Saiba como organizar o seu =
projeto e=20
                        participar da Sele=E7=E3o Projetos de =
Volunt=E1rios 2011</TD></TR>
                    <TR>
                      <TD class=3DDataTD vAlign=3Dtop><A =
class=3DDataLink=20
                        =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idconteu=
do=3D2350">Comemora=E7=E3o=20
                        Dia Mundial Sem Carro e Dia da =C1rvore=20
                        </A><BR><EM>Publicada em: =
26/09/2011</EM><BR>Veja=20
                        exemplos de a=E7=F5es organizadas pelos =
colaboradores em=20
                        prol do meio ambiente.</TD></TR>
                    <TR>
                      <TD class=3DAltDataTD vAlign=3Dtop><A =
class=3DDataLink=20
                        =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idconteu=
do=3D2335">Pr=EAmio=20
                        =C9poca Empresa Verde </A><BR><EM>Publicada em:=20
                        16/09/2011</EM><BR>HSBC =E9 reconhecido pela =
terceira vez=20
                        pela revista. Confira.</TD></TR>
                    <TR>
                      <TD class=3DDataTD vAlign=3Dtop><A =
class=3DDataLink=20
                        =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idconteu=
do=3D2334">Dia=20
                        Sustent=E1vel no centro administrativo Xaxim=20
                        </A><BR><EM>Publicada em: =
16/09/2011</EM><BR>Evento=20
                        convida colaboradores a praticarem atitudes=20
                        sustent=E1veis. Saiba mais.</TD></TR>
                    <TR>
                      <TD class=3DAltDataTD vAlign=3Dtop><A =
class=3DDataLink=20
                        =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idconteu=
do=3D2333">Encontro=20
                        de Climate Champions </A><BR><EM>Publicada em:=20
                        09/09/2011</EM><BR>=DAltimo time de Climate =
Champions=20
                        brasileiros recebeu visita mais do que especial =
no=20
                        Centro Regional Clim=E1tico. Confira! </TD></TR>
                    <TR>
                      <TD class=3DDataTD vAlign=3Dtop><A =
class=3DDataLink=20
                        =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idconteu=
do=3D2331">Pr=EAmio=20
                        Instituto HSBC Solidariedade =
</A><BR><EM>Publicada em:=20
                        06/09/2011</EM><BR>Pr=EAmio Instituto HSBC =
Solidariedade=20
                        valoriza l=EDderes de projetos socioambientais =
no estado=20
                        do Paran=E1</TD></TR>
                    <TR>
                      <TD class=3DAltDataTD vAlign=3Dtop><A =
class=3DDataLink=20
                        =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idconteu=
do=3D2328">1=BA=20
                        lista de pontua=E7=E3o dos participantes do =
Programa HSBC de=20
                        Voluntariado - Reconhecimento</A> =
<BR><EM>Publicada em:=20
                        01/09/2011</EM><BR>Confira seus pontos e veja se =
j=E1 =E9=20
                        poss=EDvel resgatar algum presente especial da=20
                    campanha.</TD></TR>
                    <TR>
                      <TD class=3DFooterTD>Primeiro Anterior &nbsp; =
1&nbsp;<A=20
                        class=3DNavigatorLink=20
                        =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idconteu=
do=3D2306&amp;DestaquesAnteriores2Page=3D2">2</A>&nbsp;<A=20
                        class=3DNavigatorLink=20
                        =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idconteu=
do=3D2306&amp;DestaquesAnteriores2Page=3D3">3</A>&nbsp;<A=20
                        class=3DNavigatorLink=20
                        =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idconteu=
do=3D2306&amp;DestaquesAnteriores2Page=3D4">4</A>&nbsp;<A=20
                        class=3DNavigatorLink=20
                        =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idconteu=
do=3D2306&amp;DestaquesAnteriores2Page=3D5">5</A>&nbsp;<A=20
                        class=3DNavigatorLink=20
                        =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idconteu=
do=3D2306&amp;DestaquesAnteriores2Page=3D6">6</A>&nbsp;<A=20
                        class=3DNavigatorLink=20
                        =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idconteu=
do=3D2306&amp;DestaquesAnteriores2Page=3D7">7</A>&nbsp;<A=20
                        class=3DNavigatorLink=20
                        =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idconteu=
do=3D2306&amp;DestaquesAnteriores2Page=3D8">8</A>&nbsp;<A=20
                        class=3DNavigatorLink=20
                        =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idconteu=
do=3D2306&amp;DestaquesAnteriores2Page=3D9">9</A>&nbsp;<A=20
                        class=3DNavigatorLink=20
                        =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idconteu=
do=3D2306&amp;DestaquesAnteriores2Page=3D10">10</A>&nbsp;de=20
                        39&nbsp; <A class=3DNavigatorLink=20
                        =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idconteu=
do=3D2306&amp;DestaquesAnteriores2Page=3D2">Pr=F3xima</A>=20
                        <A class=3DNavigatorLink=20
                        =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idconteu=
do=3D2306&amp;DestaquesAnteriores2Page=3D39">=DAltimo</A>=20
                        &nbsp; </TD></TR></TBODY></TABLE><BR><IMG=20
                  =
src=3D"http://www.portaldovoluntariohsbc.com.br/site/img/Topo.png">=20
                  <A class=3DtopoVoltar=20
                  =
href=3D"http://www.portaldovoluntariohsbc.com.br/site/pagina.php?idconteu=
do=3D2306#page_topo">topo</A>&nbsp;&nbsp;&nbsp;<IMG=20
                  =
src=3D"http://www.portaldovoluntariohsbc.com.br/site/img/Voltar.png">=20
                  <A class=3DtopoVoltar=20
                  href=3D"javascript:history.go(-1)">voltar</A>=20
            =
</TD></TR></TBODY></TABLE></CENTER></TD></TR></TBODY></TABLE></TD></TR></=
TBODY></TABLE>
<CENTER>
<SCRIPT type=3Dtext/javascript>
var gaJsHost =3D (("https:" =3D=3D document.location.protocol) ? =
"https://ssl." : "http://www.");
document.write(unescape("%3Cscript src=3D'" + gaJsHost + =
"google-analytics.com/ga.js' =
type=3D'text/javascript'%3E%3C/script%3E"));
</SCRIPT>

<SCRIPT type=3Dtext/javascript>
var pageTracker =3D _gat._getTracker("UA-271542-4");
pageTracker._initData();
pageTracker._trackPageview();
</SCRIPT>

<DIV class=3Drodape>
<P>=A9 2004 Projeto: Portal do Volunt=E1rio HSBC</P><IMG=20
src=3D"http://www.portaldovoluntariohsbc.com.br/site/img/logoHSBC.png"><A=
=20
href=3D"http://www.portaldovoluntario.org.br/"><IMG border=3D0=20
src=3D"http://www.portaldovoluntariohsbc.com.br/site/img/logoPV.png"></A>=
=20
</DIV></CENTER></BODY></HTML>

------=_NextPart_000_0000_01CC94CC.424DB590
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.portaldovoluntariohsbc.com.br/site/img/spacer.gif

R0lGODlhcQADAIAAAP//////zCH5BAUUAAAALAAAAABxAAMAAAIQhI+py+0Po5y02ouz3rzLAgA7

------=_NextPart_000_0000_01CC94CC.424DB590
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://portaldovoluntario.v2v.net/photos/0046/0646/pea_chique_small.jpg

/9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCACWAGoDASIA
AhEBAxEB/8QAHgAAAgMAAwEBAQAAAAAAAAAACAkGBwoABAUDCwL/xAA5EAABBAIBAwMDAgUCBAcB
AAADAQIEBQYHEQgSEwAUIQkVIjFBFhcjMkJRYSRDcaEKMzREVYGR8P/EABwBAAEEAwEAAAAAAAAA
AAAAAAcDBAUGAAEIAv/EADURAAICAQMEAgEDAwIEBwAAAAECAxEEBRIhAAYTMSJBUQcUYTJxgRUj
CEKRoSQzQ1JiscH/2gAMAwEAAhEDEQA/AMEa2F8nHddWTUT45fYy2Nbz8fLnyWtbyvx8qnK8J+vr
rklXKuQjrSY9Xc9r/uB3q/hePwd51V6p+6Mc7jhVX4RfToOizHWaw6VvqF9W+voVEXfega3pJxTW
uQ3ONY1l0jU2Ib/3JkeJ7V21jdJl1Ve0MDKQAxrEdaVOZSaeTLw+LsW2NSyK25tYNhGIPo/z3WfV
lL+pXlXVrQ0WBYdl/SF0y2Gxbrp10VqaDmhL3Duqvpa1kDO9TY5eBx7D8DzbZwbeZOz+fjM7GsKu
Zl9kd0bH5zGVdMJskocKQQC1kAgegQPocUR9/gVfXgOpAN+/x9f546zuCZbTlVPeyXuXnhhZRle/
sTlysa8iuejE4Vyt5RqKiqqJ6/tH3IFUTZ84fC8KxsqSxP8Apw0yJ/29OvzrpTjdNeq/rD63XYz7
mR0n720Hrt8dusMAmRNo0lJ1H7J1zCyWNnN6KfsHV1pDNXx7uRjeBSoNRlobJ9bmVlYwKKtrj+l1
TfTr0r09aY2HkQs/27fbx6fdudJup971sugwOPrGzndSvTtmnURbz9StjnHlzx6+gYu3Ca5cwnrD
zWarsrbLo66aOmrth2K7uOFYm64KGmAPPIrd/wBOs38XXH/b3Xv6/wA10kN6Xjk4fYT1T5VUdKlK
i/onK9xVT/X9v+3PH28+QCY1EuLNrU4RrWzpiI3hPhERJCInCfsnH+3p/fUX9LDXOrcoZhGsNnZv
leT2/wBSqZ0FY43YeP4tTUpKaz0/qDY2GZ5YnxohpjsgJa7UFXZdVxmDp62BCjpS+/kndMcLvX10
ZaR6bcxosX0ju2Nte0hXe48I2djMnLNU5jkuEZJqDYjsIrslsJGoLa5x/Hse3BV9+VYpgmSSf5gY
K6pvcdyyVcnixbeTp5HQMSB8Apb16Y0K4/I/7dZuP4/zfHNV9fzfNcdKgKS5OiuLbTSdicu80yS5
G/PCcqQ7kTlVRG/py5yNT5VPXVFNt4xUcG0nhLyiIQUyUJ6crx8OYVrk/wD309D6afSrhNnrjcnU
5tXcmsdJ4zLzROjPEM52VG0ZYV+tcy2rqDMth5BuIlRvizjVlszFsYx6rw2PVa3prvcHtdg3+TYB
Jxu8xODYyEqQ6oHuFWSrEZCE95kEquarYzHOIgnOXue1Gjcglf8Ak5varvyVePQkOxGPG4WLA44B
HHNejx/+11ssFAJ+x/j/AK/j+evJfYZIn9Z15aufx/f9zmuInKIqI5ySVc1VRUciOVFVqo5EVFRV
7IJeTyF+MgtEIrUd2LazVL2coiO7Pdd6jRV470RWovwqovx60S9f3RRW4J9OvpCyqtw7XlHnvS/f
m6eN12mG5xrfKsozou/NY1nVTiOV7RqsMyK7yHBckxzbcjf+kKuo2TAx7IWVGJ0cUVcseMowyPqb
6RNe9O/Qzl3SnhUq2zDeWBfUz6YNY7QznMcP19QVBNn7Q6QM9ubOm1rlVPCNsX+UsS/tKyrNWZra
2MYz8Wj59URYEjKLSor97yN3o7VDevytgCrP19/Q/jrN3vj0AeTXv/H1/wDfHWbiSfKore593b9q
p/8AIz05/wBP/c//ANz66cadkJ3uYO6tWvXlXcWE78v9VVUkJz88cqvx60D5r9Nzp0w3fvS/igdi
7f2Brqw+qDefTI6qsfyGnw7Ac1bsjW2W6wi5JnWnLKlNcxoesdi0GeTm4/FyqPNzfCD0REtp1pKt
4DocC6S/pvaL6tOsTqZ1hj9zuvXumcK3viGjNaZGez0dBDi2T7V2llOvMUHsXNNnZjjlVlc+sJil
rYYnqTWdVkO2dxwYc8FGaiJQXN0Tfzo8Dd6A498G7rkUK/uP4vrLP4rkDm+eAT6B/kX/AAT66Ryj
r8D1f92sRqq/k9s2W1XcL/q06Odz+vzz/t6ImgsbX7FS90+yV32mu5X3cteV9mHn/np+/wD09F3R
9J/T+7oN2X1O7E2ftip3JS9Qdt056y1riWBYlb66yfLoeu8a2fW3OW5dZZJDyqgx4+PNzaFZHraO
fJjXAMUFFAeJKuJYRqqWjFVVgmxjdo6+ENv9JP0ZGG1P2X9k/wBV/wCvpF5doUuRZ9cfzR/sRX39
g9JO/rgfX365Fj2Pr/p+R1amhN4746asxvc50zc1tWbJsQvNcbExjLMOxTZGt9la6yMkUt7gWzNa
55T32FZ3iU6ZAr7JKq+qJKQLetrrqokV1rCjTBkK7qI6opl1uDYhsxwiTcdRuE611psiudpzUQsY
fr3VWR4blWssBw3EAYaDGNcYnh1tr/CftFLgtVRRfYYzVQJySwBf5O7p7E8cnut4d+6ON0iG+SBx
Ea1XNe1U5ajkTu4Vf0RV+eF4X9unpXSN91DdVWAdM9dn1Rr9cts8rbjeUXlHdX1SllimCZRn9dTl
rsfKGcpciHi5qCFPkHjVdXLnAn28gUAJlWtDMzpzFHhuqDc29fiQTQNCwOCf/kAOG/s2jmQkAlhv
A2AGix4sfdCvq65/seunsrfHVHnDupuPsK7xiwH1uZbi2bdRkn+V+toJs3ybEcslZzQ2lQaBi8Y2
Ae2yudOupoMDJj8e3mTZb7UctJBO4ndkdYmd7g6PTdMW7ZORbGzpu0enbJMHz+NR6nx2srtdaG1T
sLUcHH9l2NFjVTsramaFxPPI9FS5tl1tkFjV4zh2K499zjwYksUu/cG6SqvbWV6RwmbtzDcbh7G6
I6jrY/j+7w7NTUGN4qfWGytoXmDW9ZWgmZAa7oKnVWTwZGQRYa1NrJFHJTQZnvayNYRzq36OMd6e
NaztuYjvXCdxRaPINDxb2gx7ANjYXd02DdV2pck3N035rNfmcCNCfYZniOIXzM0wGCSVc6wtX0UC
4tLdbh7oC8c+olyJYD4wkiThHjOxigdjtV97HbIr2t1u5oX0q5KxsykkggNv5ocMaAIsgG/fPu64
A7be6zuqXeeP4lrrdGzouRYhgGaUGz8dSn1vq3Cso/mPjWA1Os6rYV5nuF4bR51kmbphtBQV1tk9
3kEu3yCRR0Nleyp82jqCwqs6jd8bd6n8kbn+2sjrcmvAR7VWTaXXuutcRrGxvpgbPLMwv6zW2LYp
XZXsHN7WNFtM52HkMezy3Kp0SKWzsXsjhCwqfp1Ydr3bHUrh2D7SwfAc2o9v1mY6jpI+wqyXa0uL
bJ2Hh1vR6dzqOGLa1LmSsb2yXC1lJJkEiyaSbdQTCY+SKVGszWmhBZ1ufo06doetdF45luKadnLu
ew2ngOwbmp2LtbYWE7F2zVUu7qjCsuocgsbrXOvv5eUdKSimYdArM0mrYZUp6uNLjqrDNNICzZC7
N6RMklg7t0QRGNck+TcoskhW6SSUyWd/x3AeiTuGwLf1zusc/TH66VnqTqO6i9AYvs3ENMZJTQcS
2eXH7TLKLJtd6+2RWxMrxCPcQ8Q2VhcbYWMZMPAdsYhByG+gYxs3Dm1GX0tfcTo0Wzax0dY1MYnq
4+MScYzmtkV6XdRc0d5XAuaytu6tbSqsYtlWssaW8jzam7hLMihWfVW8ObXWkdDQrGLKiHOIjF9E
dPmHUPR3VdTmx9v4yG3znZWTanwbSsrEM1PsHJ77D6/UuQZHYByoVcuBwq2Bgm14Odyp1nPgx0iU
8+lEUt0T28Txetvog2Z06x+nu8xe3yvaFd1C5vlOCa8xdulNna7ya0z/ABKJqy0ZBwDFs0iDyjZO
HZa3beOV+us0h0OPSsutoF1Hi4lGifZZ9ug76hkCJsVwsIAlLBkZTG5pSBuumcGvse/yD6D2LYMV
ABWiLIJrdQNgcEjgn811CNjbw6w5+I9T1VcX2BSsZ63M5xjZXUfFiaZ1LWEzXNsVvJ2R47eUc6qw
6LL10aBe21xbMFgB8cAefdXcszCHuLF8m39s9VfVl1CaeptSbhzyRluChtNa5JIgs15qmiv7fKtS
4PN1zgOWZJsHHcHqtjZVltHg85cWLlV7lUu+uaGsoau4nzolHAGwh9b0yJ0d9duP7c04HHt5aSd0
pYyMWxcQuKvZulskzbqIrcIz+ECrsZFfIx7ILHFpTqubXX1PLPBQ4pY4oZLGOXxukzQ2Q9VsDaQc
XyCbAJq2vspw6+HqjPcvq5r6jWmw9onk5lsGjFGwrUuLGqtczsZqLrJLG3vL3NbyirqvDpVBHyLJ
KT3j5GfPsVyQ8iS2ifFlKSvHIrlqW9yORRJonkWR1oyEfFGZjJZW+GoGyCCeOd1ng+zyT0GnUFvb
q03BnetNm5TsgdjmGqc6j7ZxS8oMJwHCZhNvtl4dNnbnzMeIY1Sxdg7lvz6+wZmV7LzWNdZTk0bF
KaJbTTxwGHIl2ourrrd1Ltfau48NyXBcYy7d+y9d7izZkPQGjZeJC2lq2+sMi19sLCNfWmAzMK13
mGN2FzkIoeQ4XSVFqeDlOTxZkqS+9myXnFlvTvg1boTpu2vj2RXd1me8cq3LBtMSsMM9pjON4lra
Pqo0DK1ywFwUxFUux68FvWrSTLCxl2seNTRYwcYtJl53Oo7pdn6GvNY1s21vLqDsjGs6yDHJOQ6r
zHT149Nb7BLrnIJD8Kz9W5SDG7ewWBkGA3ltEpLPJcUtIs+0xfFrMcqoHmTlZ2MpcDeipHJKwZT4
/I2yM0Ddkgg8Gh/VV31iySOCwPChWBtSaYDmufqwQDdcfY6Vpk+z9rO107QeQEpR6lyLeMrf1jTh
19gVVMdty2x+XiUzIImUV2ORMkp6h+OTzU0fCqe1hYdDgNBHiUoRxxcXdR6Ewg9JTmfJiNearryv
apGorXEiBe5FTn4VFVUVP29WtkOARrqle67gh8cCwC1hWBXysanDkcXlEchFThUVOU5RFRf9JfV0
GsRVlcMll2kHBiMe1X/LXsjja5q/n+qORUX/AHT0ymy55iBuG5QpIY8ANTCqHPJJJ/J4J4pBJ46t
2J5pbJXgEE8AEV9CxfQNTqyJklCA+Kz3QbupieULxKqeYLkVHhcn+Y0RqqiLyiLx+y8+pf0tWu0t
cb71Lu/DR0cvPNWZhEy2lBlFcS1xu3PFjzaqfSZJWAmV0ufj+QUdlbUN1Fh2MCa6ss5LoE+JLaCS
IsIGisWwXTOTWmQvHUZpSMnxe072tcqi5YEDIqKpP6vw5q9vyjvnhOPUM0B03b2sqeNsewrVqceH
MIgShGQxpoXl5jSGOTljQkZ43u4RVTuX5bxx6qOna9jsmbJHkeP9nlNEPMArGRBvbxE20igAEgC1
J5FEdeoYvIYZHVFEa7z86LpdqQBdFqPBqwPqr6L6dtPe/wDMrHMwrtR9NGNixfpLsujjFcFxHDtm
V2vajVNthWxtfwnS48zbtjl1rmGN4XtDIaKgvpOXDHwKBa5FAyK8WbYyYlty+6htj6wzbB8011pS
lxrLw9JQLS8xPHdiAyVqdGerbzT+skrJN5s68pY8m/w7IrRmeFmUc8VpPKOdTRaEwRKhMyseNR4/
TkWuluu7AgXFPKbwESojUU5OVXhiN7uPnnlUVERq8+ovm25IULAMiqZAopi1vuokVzRo5zpKo3zF
V/yvYxOGJxyvP9vynrQ7tykjnypZoZIMgMkBjigLvMVWIiljLhmCIlcXRoXz1mTJ5cjwY5ZBuLTo
wV1VPGLIYr62ckggc/8ALxa89X4suA5JXzYM11ZZ1s6DcV01D+A0GZVTQWEKZGM1eRniWEYJgcL3
NMJjvhWrxN6LrB2fhnXXd9QN9OwDOtlbF2hn+y8iTLqS7Lgxcu2REvaqd247jmWY5dCoaqmvG1tH
WxcpiEhCrKxHnOGO8BJg7Ud/lWspGdU7JSPew5QBAJCo8ZGcqsnuTkbEcrXInLUb+qfk5VQKsU6U
cozHZbbAsuxl2kwacRGyTIRk1H8ieFqIqiYFGoo2s44Xn9U49K6dqkk8OS2RkRwyNUsY27zHlwgm
GQKRscw7mJDB1LAB91cNUdGZkgmZACrBmA2/Gtpb48j8/wAMBRvq2OtC0vqfpy0xoXDxYMKk1bnm
S7Ups2qKjIYOwTZbluC4bgd9WWRDZfZYmfEH0mAYkStrFxZbiLLp0LKv7Fs+xZLHnq8+odsjrJpK
muzfVGldWZJW7w2D1DW2ZaejbIx/Lsk2/tTD9dYpsnKLWdkmycqhQUyidq7Fstj12N1tFDxi6itg
YolRRMSvL2+oHBdgavjzCZfcyiSa2YeD7CxKrzjjPRGsVRuRHOXx/wDlkVqqicpyn7hxU64Zmc1t
lX2wQ+U4iF72uMF6Lx3tVGcvF8L8qidyIny1UTlHvb+o5GDpRGdnxZEURaIZEcCx0EdiIyqRoRt3
2GFsSeSa5kiYjjhkUmZk/oUjcwA+JUeyP6j9cWODx0a3R/1R5rorDt4a4m6n0/1BY91FF1rK2DA3
uDaeRzJbtXZm/YeLur7nBNq66uI5y5b7e0u582fZT7JkGPAIdkAs2NLJbQf1B92apynZrp+k+nzI
IWweo/NOpOIHNMJzxmPa2zvYGtc+0zmEDXNTheyMNZFxWw1VsG0wevqckNkZcWgQq23xiXWZCORZ
nHfANS2uOCr8mSO2RHroj2yXCErgq1FaoCOV6Iq8qnHDuF4VUdx6++08hsMtoJbsWp2BmjasfzOY
waEeJitN7VqL3IT4XhScfpxx3cemund8JqGY8GDPC0UcnillpA2PMztZdmX5BtzNTE1Z+x1CY2bJ
lySR4pYvjAGRWjAaNiTuUkgW3LGjdXYBNkHZiXWzj1Fj/TZoulucGdbaby8uRY9lTsXmyNgtlZGP
CPvGNsmHyh2Gw8JuMj1zguT2UGbhtpk3v8cjVtblMGksrqFOYR1O6tzjblHhmbzYWmsUdXWG9cuq
afUODZpi8uXkPUNsiDtrO52RW2abS2HKunnzkNrkgCBBXSGT8ms61DJjVZjtPXZItbYBkj9kV13L
SSE8exDPd3uIhXOjGaRqo93z3d7UTtXhU5c35VOU0H5D1f3MDK9M4zYTniqYsmJHu2GVWtcF0FXN
EjnLwn9QaK7n4c1exeFX071jWpMSSPBEyzplY7+YCOMkLEN1EhbUKWajYIG0BuAAv5DHBOzO26Mw
KQFAX+sgAffxBLbvfFegB0O17lt/jIMjwzYMRIFkxSfb5YhqGRKAxnYx6o5var0XtR3aq9vKK34R
3oHSutnkI9t2RrXve5rXFd3NRzlVGrw5E5RF4Xj909N763azBdsMxPJ8CJHdPEOJInPhdhAu+FZL
AVWcr3qP9EVP7lb3N/f0Cy6nw7lfI0yE/wCYik4VH/5oqdvx+XPx+36eozB1vGxoQciVpjKd0fxD
MiKQArerAPCn8Cr4sNXyVnkZQFDRhAQlVQr5HngsbsWaN8D11aHXznEbKswPkeFOWGE1f33VXGe4
Th2MZ6I5XBVyD7nMVydrxd/KL/snot+hnfuRZTpuHrm5lCeyM50cUghG9yRVanhVU4RXmYxOxvCI
v7KnCIvrv7Y0LqrPcjLlaS31K2B2Hu0IBA1bGx2p5nnM7gTCqif1Wu4Vyqvwqqnqmtn7B6fOm8VC
LFSXky6gsHb2kStGypaaKNf+HaeXMjkHHjS0Z3MeGMU6ichPE1XsVzfLghlx1xsfG3yrIHilhjVi
szqAQzkhTYJ3ljtFA8AX1N6boefqUmQcdmCQtvLSMY4hExFBpW2ou1SpVS1kml98n1sC2DkFrU4J
XzGwrAsZjxHdw5jwxAK13ejfyV7VRHOa3l3HHKOThPQT7R0Jk+NwrFtzd48SJKngdUwZ2S1NbaT/
AHRmdrmVMuWOfNJJlr4lA4Y3CVF8jOxUeoM23X/ufdOZ48DCQU+H/drAmO4wDGqaPHt4tfLneyAQ
1uT3FgeQfteeValLGd4Qq+OEEdCI+/OkONa9U/VvmeQ5vYzA9PuqL4FbjzLEI5VDdTMeGOJOsLNJ
rJMXKLWZYhkWJBOmg7ox2zCvcrQq6l6hp+qaErGU4yY2n4s+q5zSvJLKwWaGKLGgjUKq5GTPI0cA
ZipXHyHYgRU5b0TsXt3UsRTlZedPl5+dBp2FHg7Y13yQNI8k7zI+7Fx4og8/jS1M2Ko3GbahY9KG
zp9feXmo9i45aY2sNpq59dd1MuuO4UrvaE6Bljajwqre0JRuIIqIjhEcxU9SIuJZfo/euK59Hxaf
dYfaTkjPPVVkyy9i7ud7Mk4MMEhYwHjRrXlK1jQq5rnq1OVR4lPnuP7Egs+0Y3SFqRDFBi382Mhy
OfBaqHkxJBGJPl8AaoZTSIgYEhEACQ6UQkcdf3Va8MGaGvr0gtI2M0liyIaQZBzXyGpL9rHR41iq
MLHDWRJIhBcmIzzuVrKHD+qSxq5ydDbBY/BUjzPMab/1X3QxtE6UzlT5SeVAJNC/6f8A8MuDJkys
e7JZ45Duji/0yOMwlvGAjS/vpBkc2o2Rwkt8mIA2nMH9UMF9tbZdJZ1eE5QKuuoElZ82Bi14+uYe
IrFK082PXvjAOMJRlVhijcjH+TjhefS24vTtszFCwLbGUyaFHmSowXeetnx4vY57VRso0iM2Mqfm
1GuJ2ryqdvKuRPWvinub2Ns3LK18qzi1NV9rhWCFdISY5sp3gBZSgM7xQjqBEYMnLgGE4YpDWNLH
YjBNA6ebmjbaqviyZNWvaWPPimkvIjZDkRB+NjZDHsa5WlR5Fa6Mj1G0Lmva9shk/qzJBiYUONgi
QOqyT47bSs8Uo8l28e1H2snDXVC+eekNT/4YDC+VkR98S6fjwBuG0dMrawIBQOupRMV3EC1DOoIA
Dc3jnze72vrnUsCri4dNurOyixWqtIAlkcikc1jTFHHGqoL5VxFXlGDRXub2MV/oeK6NsTARcZpj
lpTWM0QLKTXWUQkdWjtRtkwjxu/mN/XjFYdWsI5fAVhHNavx6/Ql3t0Z6323j5taTavHqaYbFzQM
Yv4kCHGZJO2vfF+3Wbq6NGlsM4TBSY8gZvcRpCo8CKJpxPxo9Ru7dkdAu4i9Je9cdyXIMfpjzfYN
NHk2qX+KWMpXx72uk3LD1iyGAcMU2K6ESLILGYrSPG9Ao57O7owsxtR07RO2HfUPLNmZ0D5Stk5q
BVd3w2MSR7cfcGMLbTtdZFcKpurv+jmm6LiQZGX3ZjL+7EG3Pk09o4wZmeOJ8r/xBapXAXyIWCyK
0Mi79o6imlddUF0KJkFoFvnMRr1CQTHI3v7FcjEaru9fw5VP7eVRznIvrpbtBhFlmcGqhjZJuozO
6JERrzSyuVrRMe0YnKgkH2KrXuRqN5cvKJ8+rS1JvvVWVnZkuDAppVDGKWvuhwaevqbCobJYrlkW
VZGciV52I9jmESO2OQ6uisIIysZ6DmfsSFjnUfOtbuKpY0o7mVoGSPmTEV6vGVpiqjXKUbmuViqq
IzhFRPVh0jAz9X1bJllGdjHHxJXTEyR4pUYsuzHKsLUFSGO4AkcmjwKD3f2vL2li48c2Tp+rw6nM
0mPqeBcuNKIh84vIQAJoyQ23+krbIWAJDFaWlxnX2o22l610axkRPL2SzdpPIRiqj2te9FXu/dXO
/RE5X59Lrss1R1jPcMZHMdNlOY5JLeHMU5FavwvHynC/Hx/p6NeNlNltu0mVzqOW+tHE7I8KNGFM
7ADCpRK56kXnvXhXqrE7lREX8F9CrPxIQ500aYzYCQcuSxBqGQijRpntRio0StRWInaqNVWpx8fH
pWGL9pkSpPFNNK0cTFIg8kcQLGl3BuWs/L1x9DoUyZDRNu8DfMkAJQYqu0BnJHthyACePfuury3f
1HVMrGchi49ZKOqyCTCrKxg1Usdl195RZRGnRPI9pAsYhI/AnDRjCtKRCuYMHeq7IW3RpFfBmukN
h14YxyS3KslY9U2MBpwnc5VR1hIcRSKxVarGO4bGCvLaSrcY2H7fZOIZCMkadjNwPLaaK4BkKl1V
NOk+vaYoefFYw2jfFG5yBbPAI/HPKrHLnY8HP8UNVzguZkkGAWPIe1yIQ8ckiEhBllySGOSQMfkM
dWtagE8rBsY1OULmFpUKiHxMjyY+Uk05U2279vEsfIAI4W2HAL2RwTZm07W/DpX7VjtQ6c+HHtFK
ZGyGnm3AHl3E0ZBKkha4sArI+ltks21STWLJLa0eE2bKA4jJ2xMhyFBYtj8hoEjkCRa0l579saMx
pHx4iIIscYiyEfTiIsI0drHEdbYUMTsbx1PDLnObHi2+ZW5390rJrUYjtYRLYpDTo6L4yKJWCIRp
pBmKgrp/mhq8ibAZIb7vJb/A6iI9rCrLHV1dkTIbacN6coFrx1sWs86PCvglvY17hedFcHHux3dt
GixbfHWXgYqiqxX80gIpUG1rRuGgoMp7xAGghje2Ox7Ub5HkAxqEZQu80kytSyYCjlJI4TSgkPHD
GTEwFMbWfJy1QUdrNI5s7bKHYsMMeBiZbyRgwGey7AGKSaYRyD5GiXx8bEY+rAQA0x6fL0O2K7BC
Qs1LCHXh9uGujCis+3tYKW852AgDWOdApYtaFqwzSHlR7lI4JJXBWXbXmTcGpIVXHxCnl/fnBfKt
IzAtRj58vudCcw4nOKUACjGMjCAEVOxohuSIxS5XehL6oWd03VRhnTpdZNjmGU2JkOlisOoqZCZb
a1jzWBqNk80GRJQNq1ogxpsaQKIwDkYZBmjDd60Sb66k6G/l1tVXTITXZbTTLCKOMV0KDXSoBkaO
wWY9wzujDedggOCiskERXhNJCQw2cxd+6Hq3amcyZdl9SWKaB4UMiJjTbtoWQja5OwB9g3Kr0KIK
g8dk67g90ZUBwkX9tpjzJlLLIyM+TilNo8SlWFbiyb2ZHZKFAgkSI9rS025LhDUorltlliW2USpZ
TEgS2RgusIsNAtYxrIjvATuIZ0fhEIKO330Xlrcta2xbaBVWmOwB11MeMNBAQb2BbB7nP8bwCY4g
gIdGu72uecjEax7kIN6pnu1ZuKJIqZeRWIEm2My9nYwILCojnFj38mlYc4TNXzGbCSXKgEDH9u0n
BFawrnEawfdXXJH6c+n3HMyxRcfrKapgDkWVffmdNuLeG9C1zYMEQnNYlmhBynDc+URzXcEVgmdz
WwMMesatqONgxQSxtI0UEEccTKzSKEi2BlC2Qdwa7BG0WaA6tXc8un4eHJktJE4RppJmlmuBISC7
SFbe2O1FTapIIJ4Hpq8jNVPkwK+w5aSvI5XSRhCxFmOK1jEAvjE5qMIo3qisa8hiK1qPaVFYo7/x
DnRfE6jOkjH+qDVuGOudz6hBFiZOsal7bXJMBsTFh2lec7O0bI1XMdGsItmdGrACw7Byo6OdGfLu
mnrjwTqXwXEsgPS2OANvYQFp7GbYMn15QKrm1j2SwynToCIcZRuPbgA6chxHjyXkd2vZw+6BlevM
swXJe27jXWGzKskOe1zlSvvK5IBJSpFlATtEUrSmlBfHUzEYwLSCeY/qzaBqmX2X3CuTnoRPBJEJ
Vn/rWSKQB0YCjTwCSE+zIsri1PKjXunt7F7g0TT8jSWAhKNFIsRAjmx8ldjPERuQVO0WQFZ4xA8M
RIYFR1+Rjhme7k1rncyRRFu4WT0losmxixhtlHU7FUBoNoFGGDbQJolWJMq5rJALETlCjWEehWtP
uoFJtLF8D2TTQY0STdY+LIqysKsxGVl6OTJr8gwphJjEcKPCuIcwFHIkOaJg3gilK9rvIoqdYOO5
v0qdUU+6w6+nUWYRri7iWvtQgbKq8ox21lVVkBopvv3Ip4/jlw5Zg97WSO6OvY1rlsLRWzb/ACHW
8iqzSVLkXQbS1zSstXhY92T0uQTBsu2GG4XtoltRZBEHcLGEglOyzLJGjXL89i61OZ8LSO5NMghI
nWATtAxD5WJkRsro8QQeQQTCN4pRIXSKSYgBGlcc3aLgYk+RrHZ+vzyeBv3C4yzDaMLUcVwY8iCZ
5B4ZJoDMHQIFlZYkbediNanTP1zB0/uiXT5ZRqlPPEtakaWpQTK2zinUDwmCbhwvljhPA9GKMjXd
yfPw5cW6ddWoh2jaGP22Q2T28R46p2zGpIThe75Tgn6+s6+zdY49uPI499RWgYGdtaMRnvQcKHk6
QmO9qCeTyNdXZI0QmAgzlY6NPGwMWeoDiHJW/KeqzWNUVUf+P3B8FbBD4SLwQXiiiZ43or+e9nb2
u5+e5F5+fUbrGBiTR4OViZQwJpYQMmF43c7120doW1+wCQoYAfEcgCPujT30TKTFaQtFukWGdApi
nEZRd6Md4B2sheMMdrH2QVJM/UOBZXsjeOQ/xtTy2Ct+5jEA1iBkPaZwZHuGq3xlawKcuG57kI1z
v8fj0E3W50jP6W9sLeY7LFb62z6utplEVzXMlUN1GZHNa45YicrvxahGz6+W3uSRE7gk5LDVxHb4
fsrHsdmSL99Y2Jbw46jiRzNQXuZKqjGkanaiuUr3/kqKqqjlReOePQ69SOssz6l4OPy3/bHlj5XF
up9HaWzqiG+oHDkQraCO1YMq15/bEU8UjRFa8zGscN3HCt9I7jijyky8t/23m3QZEIFRnaCUcKAx
dyapgRtuv+Y9ONPy8jxYyTQRxxyZhxZsp22oJgW8RYsRs3FVG5vjTG6PtD+jo15J2dQSYQ2P+2xr
a2Uh1e4KOLDLBAo2jKxHtj+5XhGorRvcny7hWLct9mGcz8xh1mQ5BL13jlhCsoq5VFqXXMlk2nEc
McQ/GikrYMm6E2BbSojSTaqE6MYbWsMWTHY/rXpnqMNu8caCKEBZOOErYrAlQ7JEmzySylzJMKQS
M15RDExfG/tIbwCRrmFRe5au3lr2uo7u4x+1riup7GxmSoXuBqns7Eg3tjSQGGJCRhSlagCyAKxj
njEZq8CRVZp3tpuXrmQTjGjE2LFJtQTxCF5t00fmR4jIpkEqpJHInxKlT10CvZefHoEEcOcpfemf
NEHcQZCyx44WKRoWjl8TGJoy0ciN8gyvXHSlo95J1rt0uWVxwX1jjwq2Q/IJCXns7qcRqAsLWMe8
kFnK6aZvl+D+xMimZCYKEqR01ddHW3oWwsTq7LaazQ3EnH4cXFsVlmehamtkQgSXHcAg2PjmvZYG
mcJxiHYGY10WLG8bo0jPRK19Q/fcblRwNliJOYGY6UJ7ySTR3jUkeO6QUriRIxQiawrkd2E/JFR7
iJ6YJr/LIljkUTF8SlSnwo3iWedpCRXL4WMUr40hjnN5jl8Yleh2vGdohjQDg8skO/NHj7ox9NGL
ijKlCGSXKmgQqkabaVURFiUyPZQIgBtlT4s1s/08zj21m6lLnZgwot6RQYkczAySuPm5Zy0rKsdK
wZt1kM3IW2l5hEow61tqynorqbJrRhtamRA9skmqtoGSEkRSKveSUM4445UtyoUrXPYaIdHq5j1S
J1EbXyXa0a7r5US/gY/gw59tcHe+SkQ4ROktmwYVQiumeaWRg2EG/v8AKjylkuiDWSUjscN2hjuF
1C4/Sza60vbeWMLIcsCyBLHlf0pEVXwrAjRKVzvJLYcUlj3MYRBCe4aKJ+d9LrtgbRnDwq9kUNtf
Fg1c5jDz6kbyz08rYpZDXK17Z6OWJMMv4leKIruBGVHUXR4MDtXX8abW8Z0gnSWTFyFi5inDDfao
CCGQLQvcF9G2oELuM5HdegZaaFmxST4zok8HlNS47qDW5yxQq5JvawJFVQFiN09dUW+9K2Grpa4r
T7Lxe1iWDpdHQzMYqa6Hg0SFFM2dWX0WyWyJHjVdfbiztMlr4EGrZCrnQCTFOsUWp3pt6pg7LO0l
TZHrK2iwenCWtsoEmpsIUy6YWdAhWdVavGWBY1VRLB3wrFZQ1iS4rCjGA0SUIUtcdFonj1Fjmybm
9zO2xwXkxHVpZ+MxqbHgR5riMurOI2pgPsoEae8c1I+ROmwCzFeIbzHe0xjh21i2M9MWpM1t5/tj
5pmx726sbeSsSWGxujxgxEmoyujRUixmQIceKOKFznxHx1Mx/tiOaEf/AKsav2xrkMeLpmKkusJK
iHUcbHGBEUeaOXxtjCXKLyxKhRpmeNmd2IjRQvVi/TfTdf0ZpH1LJaLRciEFdMyZxnymaOHxySxZ
DRY+2GRnJCCNwqKLdmYjrMv1j9MlB1gddN9/DVXJjgxrYF1J2dZzTQkiWdbCpYZsdBSF7RntjzjH
9paEfERKZkUUXsI1EOirOsnFcz0JsqupKtBhg1QZMSqHCb4YQYb0TywSwUXxFjnE5WyPxV5eVJ3o
RGObo111h+Q2VzbbBBJLAY2gfZyxsjvGWdKJGNIMRs55SFc9wEARUV73ta5F5VEVjM/HUxYZFtHO
cuvLmIeYWrspcCvPKkuejAiM9rHRwo3xOavane9VVz1T/FqIno3dkCbB0vQIc1xLhYOg6bjRiVg4
MuRjxNLQc2SHdkLCh41ReQB1y13trMuqd29w5GLIIg2u5pMcKiIVBkPFG543tINm/cCBvLMAN7XQ
mEZTTXsmLZklMqrIEYX3atmkbEIOQPtX3df3PGKRXo5qNZ29xI7lRslg0d5VgVpvYyWdikWTMdGS
fMSO7tRe4CSCeJ3Pd88j7V5/f148ijmSI8mPY1wnOiqiq5ERGq1UVqPRi8cKioqL+6L+v7+vGTAJ
T0R7Yz0a9EcidjV4Rycp8oz5+F/X0RYYMMs7Ha8Z2iNG9IL+mXlgQVAsAhQASSeqtqWadRTHTNWN
Zccy/wC4eDLvMY3EKCAfgGJHBLWAPR0sdQmHZnm2M5HtXAYoIVVikhXPgRu8TvZxSNWRKQatRSPV
E8jflOVYvKcoiL5e0BZjrbX9Fk7LT7iS4x6LZ2EeMZ5CMiliDIVyRxNcrPIr+XPI5icp28q5eFtu
82EHB6yTQRJ8S4x/OAjhvxqSg39zZr0HMkeVFRwxB71V6PX5enKORefXVvdl69pMjymjvBEscdLh
UejhjQSfb2pGr2PfBc5Ef/SEViJ5ERyvViKv6/IzfGwZY9P8JAjjgmy8ouobaqeMISw5G9gxIJBD
KWA4rpHG3ah+6LI7Z2Vm4aYcKuEVZZ3LJKIVBDlFAUfEH5cnk3LcSjV+TU+s9hRlWIRmOVJ1kuY5
kpJEqsVAkMRrHr7NyEcHtGrW8qR5XKJCNFRe+oFLcQhSrSWGHKSQwbpUpzXdwRie9jCHb7kx3RnO
aRkgaDip8tI96uQTY5pnZsfJcWm69FKDEv8AGmSjYlJWOHzSMYkHI4VUIhp0EcoNcV5o5QKJZkJp
QSY7yqhgEq7f77E2AZJNKOXHt8SdHuQoMx0Da14zAq5sSK8rXI18Ms5pXgDIcrRo93lK8bCtGGFg
5L9xYEybv2c2S0ZDWWjaVqiZgC3wkuO3PBAa9pUhetpsxcLRcuHIeMajiYce/YNqSiNVM3hsqaFs
UQ217aBsbg0zOxqG2mV3dcJImI4dCihd7UxAzZgzs7jxa4iEeVtrdzJA2OkMc00QDTFYwXiY1sK1
tt+oh5ZTh99W4/k2SkDjsF5jFj00JhSsGcClQaDBFivK33ZgRmkId55z5Q/IqtLrTXTpC23ilbiV
hVXziXFUybAtoaRq6VbWc8qe3chpciW07hEX4YxjZE6NHNBaKKYin9Lk2RgAsXz9YBZeRV07Dcnk
RoT58kK10l8l7q6W0pEgt9vPQkcAnDZJQMiGI7gu8rF9dc4UC6Xh4qGOGWU46BzMjOP6AwVFojeW
PJcUaNe9o5d1HJbUc2adpJERshmVUYCvlXJsfHaCSFIs1ZAHDMcd2dExvL4dhZ7RwGfbPjkFEgMy
E0Sz+3Pkkro1jMpZMZJEGnFOYwUa4hzxTqk7o89kawhwprVZPqPYEeupv5q51kh5Aknw8dhXMcYo
VpbXcG2gMbDkCGYCwsgxt/t1FIimKNze9tlJMJAu9Z89L6SwHZNnYTrq8zZdpuxyFQ0WIU8WjlY3
kMyxMBg7OzyqwI4uM0NZCSRMtwwwGtbBfFDpyxzSTlDof3BpnH9fdDVhW5JYyZOSElwstpnQjJ2x
LSDCIW3tq6FGqrJI4iGAGNZhs7Cumw5JCEcrRMYd1d7j0rF1vHCy48JlUrNAAqARSx8lgeaJsBlW
wVJtRZuw9s61laPlM8ORIsEieHJCvId8bkccmiBVgkGqB4O0dPmiP19gWdx86t73H7GDn+DQ1r72
YZHTQij9s8Ba2X7182BJmx5I1kxhoMpbAVg851YwbXKr63t4Tdt51T0uOBPKrbCasNoxjmOjTa+r
isg1iAiOlNDXmtiuST4xO7SjiHeaO5/KqkTS/V9s7ZEmxuLG/mjw7EhTKegGexCOuJazzBlJFcR6
siPjxkeY0dSj7nslMgxGuGoxtMuhz2PFhnvr9stamirZdrJtixSSalho3gIOFBhlZDknPMEdiAPD
kOkskuIaWVXJ4A8h5/aEul68sGQiu25nnCFmWKSYh75Wt0aPv2gUrME420OloO7f9W0gZMLmqWDH
NKhnSELEKUX/AObIipa1vCb/AJE31aWb5+TC9OblrsVs40u6FPkVUZPcFaWqi10cNdZRIgz9i8im
DIAyiRWD7Va17mo1zkBybjKMjty1Z68iGedTvejVVpTI9U/HnlXMXuRzkVV5X4X5/V5erMEZubpw
tcztYZJd9DuMrtzOQbmSZIbN8mURXsVVISMR517PNyr0Y16KvwvpV7MVyLG82prqTVOZRxLeK0s5
REUCwEOwMxqkVqta5GL3KjlcqK1efhfRw0HUYU0qMyeMxwExv5GA2SK2yNCTywAQKoFH41VDceQO
7I4sTuXX45bhkTNLxul07PtlkbivlIzbhdWzMCOo3rXpQyjZmVsxmQMtZOuAlkRTymeKN4U5IpVV
yfkvK8I3jlFc1UXhfknV+mPnAFUH3Fr/AAqou9oWK13j/DuT8/0d28p/svpqm5qLDcH0DiW5dbTK
wmVU9S2a4bGtkENDeJjTj7BcuVOefjlOFRHfoip6TtO62NuEmzHrfzRq+VIeo2SCsYxXFeqsYz/B
ree1rf8AFERP29JZU/eGXlO2jzYkOCI4tvnAO5ze7YSCaCgH3XIq/uteTHktppZPKzBiEYKQhI2s
1/8AuO6qJ5H5PUV6l5mTaq2Bd48a4WbLp48aRVlGVVUEc7/K/wDFy/jyT4ciIifkiInx688+TSbn
XtXdJZOJapICcwPIrjkReFMBWq0jijL8o5nY5XIvZ2qvwoj7SzzLt07NPldtJkGqrtIoYslHIwhg
Da1ovM5rUZ+vPKJwifDu1FX1dWN4Fe0vs3utlNXeNsoRUc5wo7WKhCI9WtcqOYiNYjWoj1c5O1eV
TmyargYuPgTIrrDUJdIyaMqeMK0LtyWFm6IBB5NknqZ0GCd+5O3ZYJDE0GbiGamBJt1JbaSN319f
Hj0OOpdKnW+N3lDl1VJlUjXTYxwmexzWnaZiRrKCQDkYRg5A3Gb2vRUkN5YQXeq+pNc5W7YMTLaC
tn1sPIDQ3UD1fI7a+WO7RkWJFrDkcQMaC2SvndKjlcdGqkUDYxVkk9RfJZbJtUWnkCCMUiIeRWli
hGqQzjR53OkE8itPIYZgCI9jVIBjiMaJrlepg3zDILPErCNMY93ZJFNaZrEcsNLEZhzCu8KOGV3e
gR2UQon+cTpBGxV7hkV1X7Uwmyf9uwk0TDwCkYSRpIJFV7vd/SyNbABgXQpwvXQ3fWWMZlnryRyK
VyG+SFWZDGCtEUKdJFK1xaNuAPT4tXDxXQGGx7TKKtpcuWA4dbFsb2eUrbmJGOwb6oxzDj0VWIg2
TqqLFGGY2OwUkEgEqcx4kkbGzRuRZ3kTayVZX9hkMuzHIjvip43pPkPe2Ce2tpEIMo0ZGJI97JOk
ZhgPa0jjOa5GHYV1AweqOq003Nj1y1mL05qTJoYpMmLkJsqA4w40qyWOhGOpbWsHzUWLuTHtwErJ
JVkMYxGFWX05+nPYkQFpZUVxixztfEFdY3kBLT+IgHiiSJaFEUyuZ4jOc2K8kSKx3tXjloRxpJvR
XbuLGSaPDzSMdooVU73CBtpo0wVrcG7G0DaQLvoNHSnkiM+O29XckBVLFQVBAIBsqLI3DkkG1J4V
MWvbvNNN5pglLsOiSitZ2P4jcUEFJ9BNkzcVnpHnwJ9ZYYrd28QpCwnFUKDmpYR1aZJUJqse1H89
X+zLTePQLjOO4Z93sJ2V5QLB8agU8GJHMuSTIkQjyXdvFrHjlWOQQWS5cNtgkGVM9wM5pbXBR7Jn
cfS06HNQ6OJeSIgLPN8hkwpMPIciuzQLmIh7BsWMgqKAcbhmiPQlkSe5BHJHjy0CVrECqDZ0w5dd
ZBq7NMHbHYzGde5/dho8lFIuwRbWI3JYiQpMW5mR2gYM9WOSaayHG+4jgkFKmSREsBxjbfVcWQt4
NsqAA7gysq7uAQaG4+7Ci2oi7HSa4U6AFiwJNFFFcgX8voL6NsAFNe7srB6S9eytcYktflEBs0sH
JZEWxoxVKuLE4kzASrO9bZ8OGB71SLWLBlMt6wUczpLVYYofV5bYyeRHh1mDV0uL5G1ZxSiRkI73
FbKYJ8GOsc8uYYbSGKSzleUgXmUYRKxwGC5I3dMWu1pFZBCYAz2PgbDgQDx4ZrgZkbKCd02TFhSE
rY5JHtEM6K9xRMklGpniYUYm6Pxe123tWtqyPPOlWOWQYTUD41ilr4CMrYwAyFKjI4myCMeFpTK2
YRqNZy8aIod7xSPGx9S17KCRmNZJ3VgCF2gMvvhm2KQTQWgoJJtuix2VI+Tn6bo0DPIu5Ik5JXcT
QcfgbnFck2CVoADohtbbkzrpzvcewOZTzUxy912S3mpYNL4pNiac5smFJET/ANIRYJgmjtRf6oC+
Vo2IzlxGdO59XdQ2tdiQnQa+AWFMuGR4Ml4HHjHahVeNr3cK1yuVPGqfDuUd/dx6Or6ifSpgePa/
wLMMJeyRLtcMrsWyTxBG8MLJaamaevsxMRg5ECXZwmkbMikRRGaJhI5Hf1mrnR6fcO29r6HltvTX
po6XF5MHa1vDmj7PePYMwV7kcwrxdq/pyqp3L+iL6H2jftu7u1ctMLMXCy0/01iTK4ikyfNI8rEg
GmY87gdooeg1CmfqpoORg9y5j5URZJcmfKV2QRF8FfHHGGU+mhAKkHazbWq/fVRZjuTbWsMtvdSr
PmWevx2E+vrwSilOSGB5no6I3uV6e3ReFCir+Q1Rqf28JXJO+QR8j2hk873G4SMNUTyuV/CKrOVT
8vhV+VT0x3MOnwMTEVzzJoEmdOkISyLKUKvMYiqpOxvLVRVVWon48cIi/Koq+g6LnlCAhAJjvKBe
8SK5e1yoNysTubwnC/j8pwnC/Ho06fmpi4mPjSBXyYMeFMiSMjZKyqq+Tcxos1Fmrmzz0J3gxnfy
4qyMrqm4m7scjgWALJI9X+LJ6B/B7iydfuxqLGfJrYslw4P497wMG9rTDTt/uVOfxRF5avLV/Tj0
7ihxjEqrSEGQ2rVb6VHJIedG8ljtag2mIg3KnKtcqNYN7kaR/wAOTsRyIAelsIwFNqSgy5cdWitJ
zUOIicOepGmiiIzud4/IRGovKJ8L2/KLz6ZnfzIUsFHAqAvrokU610xEZ2cNlIMfkTkT0apFG/xO
e3scru1V5VGOie9dWgEcKBZo4yEMjf0o3kAWMm/ZY2STYF7jXroidiRw5eu6YkcMEz/7km8/KaB4
Y452LKLryICiPXLBgOeCAmfY8tM1sokZ7YrDSTwTqhZUoLHFVHjJJEBkdJRytLIfFE1g2jGIIBj7
e1FxbHyE9lkF8ORFQSKVj0jujOaxyK0jSOBFbwZiOjFaQfYR7UfHKFvc9UGVz+18PlSMfNBhSJLi
rOnxIMeQM6KJ0RFcIQGo9xHPlvOcsWS57mEORPKYTSLyoXceHS6/JcftWogauXGBHklapZTxlY5I
yPYU7WqYHkRF4aaUgiqrVVRk7PUr2lAIpkldQDkRv4nBoAoVkYcWbkAZr+m9Vxd37yzly8Roo2a8
WUCVSeSG/wBsE7qPwDAXwKG0XyRMumPMA4PkdTkp/ZMkRjGiqg5JgmNHktc1zlax/wDxQRhONqyH
8kkI5ymERy96Wb1Pln7EyODlOD3eV1LJanEeTGtbNkKTLD+f/B10OUMcpIZyk7y1cWSGKQ6+Qwnu
cz1AcfxXWP8ADCjg1trc5M2skFtigPMaIcpiq8ZI8cUiIFkEZXKcZvDNEYyrEjSGoQoVnGO2c+yy
KLVSZUHtiij1sdk2O9XwozyoVFCCCcsYf216kPJkjhBrEK88sxfK8LW3GTFjlzkzlBE0QkA3gBWR
hyrAhvjzuoj6Xj1Q8jynjxHxG2mKVoyRyWDCiWBoDdXxsG/YuuDSNZlOwNa5hhd1k1pleRpjtk1t
1DyWxtp8czBMY+RGeGyNKRkiLFlkPGGondpRjExHIRPLrewHautMu1zQBqI1HTRpoAmHA7e2DDkk
CArZfbDjSUCWZ41kJHeMclWNMGM5ghiK1D95rerzDFxzgujnLHkNGw53NGO0fEOCTI5A8b5UMTuI
UGJNt3OlqF7zIKGJj2rbfStto1OO0xmzmwI9Hj0Vzz/fl8MqBArIU4bDPRVcd8+KUUaVJjIB0YIH
yI6uYWN5GxGfp7ZGTh5qxgSY2+OfbW2RZH3oCq8KY3sqQOFaifiR0+xs5YMXJxTJUc5SRFPBVkVU
Y3dncAFNmiVBA5PRWdZ4sZsraOlKoZ7ljx4jYkcsOJOnNlgX7lMbZTpJ/t77AqtjhEEc1YEAEeJG
DNnvK714X036Fr84tLtIcyPCxzLIKyGi8A2zJtUxLGWsQk0YSoCIUqkb5SKQ3YwkjwqjmNjO54KZ
dXtnSJMgl2WvBJYSDFr6mrV/DmEiXMmvWYsyKMjHvr4zXVz1V6MJCli8rnWJ0HZB/AeHZZaWB6oz
x3l5KnErrD20qAdyrB80ZhGmr0dHGg2SxlcQTEa4JPJ+A1Fv6yNI/amXBAxD5eVhwFTuBp3LOQAQ
pJCFBuo8+7ron/pAYou5Y8qZVZMXEnlUEKBuBjVCSwJFbtwIFWAD9jpuXVhncjI/4CxkFhMkVNw2
0SKQ4RxSGLAjK90Y42o1pBA9wUgmu8qRi9zAEaNRqqe3ae2ADI7aTQWYX1o8nEQtW9VQaJ52EeIy
sXnkg3OROFX+5F4VF9GvvKbf4JoI3UjkFZeZHjWu52aZpPje5j15nVUbDrSdBhR5CNIGIOxHXuBG
OkWSNkqTH8oAyCuA8J5+8epSny6WKB0543VBNrc+3zvseoLE51YHDKfIteYnby2y6rCjzDWFbb7V
wRZqiqz1cett5V864fTY/ksyno/6M9t6rLoOQmDgtmQx5E0GVL5MaMx5AnEkQ2zTxs1Y20hgDSle
bNdRP695Umq90SkGkGJhftYqKq0BgAmYEKqc5Sy2ePlu44JDXJttBusGxjAMh15Ufb3Q2RpMzyjZ
Ma5w2te9yKje5GtXu7eVV36J8/HofZX09dPzZUmYNITGS5BpLGcr+DDkcVrf7f8AFHon/wBegXwX
6g2Ubzi6EizdC5PhmNb+vdl4rrjYjdl4pfxG3uqadlplf3OgqaUV3A9skmAKqSzLXCugnlTaks6N
XTEZX0vrw3JWSpNaOxGQdfINBGQkNFI9kQjgNe9eE5e5o0Vy8Jy5V+PRaaCXAy5NPzsaTAyEhiyE
SeWCXz40s0sSTo2O8wAMkEq7JCsikXtognn3w5kTPtjdQxXaEagFUADhDQs2QDzfJ5PSr9LWDsL6
vYOMz2fd66XaxXmG5V7SKpWuRHNerUThGtbynKrxzyn6K/CZSVlvaszAUFkKsi3EaC6AGQ5JCsRU
7nNYoXQ3I5yNRzXtR6ojCMKMohqnPXPUD+p3Onae1sGk0/FLlWZbJ3WaUgAmhZAF0L6Nv6SRxicz
+OPzFSDIUUsQsQAFkH0Cf7/fVu5rj9ZOwSxIGlhyIWQhLBFHl2U4SRJEoBTstBDKC1QUoUcclPEh
jC9y9hRKFiqxiD9p4XXz5N+OSAT4NNbyY9UAsiWdQRY8rwWIGse5keOkkrkcJWBMqsT+sruFY7nr
nqw9iO76Rhl3diFFMzMzCyoPyJLVRIAugOBQ69d3fHUMkKAoZ3JUABSRsIO0Crskk1ZPJs9UNTYI
WtjMsqyTCJAmGNFr6+bGc10aVCESXyWQLyvSO5gCh4jqPvY5jShdwjmTSHJaGmhhGJ9dNfNV0M8E
yGG15Xt9wyakkKLMByc5YY3NT2hiK9FKTkq89c9ElWZgdxJplIv8kEE/ySFFk2T9+zdEkAVFYCiS
ST/fb/j7P/b8CvSrtr5TMlTYhJcgTIQKVAKCYdrTllL7oxDx3o6OxGhAwIkawna/tI/vQfY/0dbV
bbHKK2wkWdgAtzY2QlaFo5Cx6qW6SaZBUsgvllJMO5ZcxZLiJJkct/pDcvHPXPSuUBHjOE+Nx2dv
Fnavs++k4eZoyeSDxfPrn7/kdFxlVrLak2OEzXliVfmHKfGbGe2OFpIsMQWhMUovELwKQbpJo6u8
/hGJ72FbcPRrlwpC6611Mr0KmXZBHKcDHRm1U0knIjRZrLFxIhTjAU4CKNgY0h/gI5pHvc9UZz1z
0He940ydDInXyeOZZEskbXEE9NakE1ZoGx/HRQ7KkeDNlaFijPAUYija+aDjmwPQ5FHgc8DrRF1n
6wxbJfp7dZOs57Xo+q6Xtt5zXyI8UcUA73CaB9/FkEOKQpno07Er4zFiqxlY1I5Wv7lRuCer60eo
Wv2bsHbMuRgF/kO09b4fqvJq+/xdJuONwfCJev7THqSmphGijo4gZ2tcWNOjVpxQ7YIrWstIsuov
beBM5656kP0BVY9C15UG1Rq8BAskAthQbiASeTQs/wADpj+qDtLqOlyyHdIcKZC5ADFUyXKgkAWF
LtV+tx6sDQ/WXu9t9pTVNtPx42ute5Pjl1h2P11FFgpjFxiWttiYYSxx4rEalOfNIeb2tlslILAC
zq9j01zdhLOpKskYkZGQyZUg8owhKaSYpyqiLwpDPcR6pyvPCucvHPrnrnq395wRNqmNM0atKdOi
jLkWxRcjJdVv8BnZh/J6EeRNLFKBG5UFFJArk+Q/kdf/2Q==

------=_NextPart_000_0000_01CC94CC.424DB590
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://portaldovoluntario.v2v.net/photos/0046/0652/pea_tela__Small__small.jpg

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
ntpv7YzGYD//2Q==

------=_NextPart_000_0000_01CC94CC.424DB590
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.portaldovoluntariohsbc.com.br/site/img/Topo.png

iVBORw0KGgoAAAANSUhEUgAAAAcAAAAECAIAAADNpLIqAAAAA3NCSVQICAjb4U/gAAAACXBIWXMA
AAsSAAALEgHS3X78AAAAFnRFWHRDcmVhdGlvbiBUaW1lADA5LzI0LzA0eYqinQAAACB0RVh0U29m
dHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgTVi7kSokAAAALElEQVR4nFWHsQ0AIAzDrPJr8mB/
yhkwUYEHy2ZfJE0XANgeA/XO9ErCT3cf0TwczUs1+kAAAAAASUVORK5CYII=

------=_NextPart_000_0000_01CC94CC.424DB590
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.portaldovoluntariohsbc.com.br/site/img/Voltar.png

iVBORw0KGgoAAAANSUhEUgAAAAQAAAAHCAIAAACgB3uHAAAAA3NCSVQICAjb4U/gAAAACXBIWXMA
AAsSAAALEgHS3X78AAAAFnRFWHRDcmVhdGlvbiBUaW1lADA5LzI0LzA0eYqinQAAACB0RVh0U29m
dHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgTVi7kSokAAAAMklEQVR4nEXMsQHAMAgEMZkMy0xM
yBiksON8dWp+zQyQmXELwezC092+RVX9wPU52H4BQLkPwPk8y9AAAAAASUVORK5CYII=

------=_NextPart_000_0000_01CC94CC.424DB590
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.portaldovoluntariohsbc.com.br/site/img/logoHSBC.png

iVBORw0KGgoAAAANSUhEUgAAAHkAAAAyCAYAAAB4ZXTmAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A
/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kGAhMbO9rx5fsAAATnSURBVHja
7Zs7aBRrFMf/iUkwxBSjESwkysRXIYpOKosIMguiRTA4Mem0mWDhAywm2AjaTGFh6cYXBh84axOw
2xW0UFRGIQg+ApvGRpDdjaggifK/xTizMzuzj+u97s1Nzh8+wp75vm8evznnfN/ZTQtJQrSk1SqP
QCCLBLJIIIsEskggiwSySCCLBLJAFglkkUAWCWSRQBYJZJFAFgnk5ak2eQS/qakpYHIS+PYN6Oys
3ffHD+DnT+DAAeDYMaCrq7nXyj8owzAIINIURQmOW5YVOw6ArutW7aOqKg3DoGEYJElFURLn8Jtl
WVWvz7Ks2Hhd16nrOm3brn5j09PkmTNkKkUCjbWtW8mzZ8lMhs0W/vQJHMcJHmTSg3Ndl6qqEgBN
04wc0zSNmqYxn8+TJIvFInVdJ4AAMknath17gYrFIjVNC8BVnlNRFCqKErkmx3GCMVUhv3tHbtlC
Dg+Tc3Pk4GB9wOvXk8+ekffvkz095MTE0oIc9rawh1bCBEDHcQJbOp0mAKbT6cT+Yciu68Ygk2Q2
mw081H9R8vl8ANi3hVUsFmPwA719S/b3e+BGRjzbp0/koUPVAff2kk+e+G8R2dZGdneT1641DfKi
XXjNzs4CAEqlUuyYZVkNzaEoSsw2Pj6OUqkE0zShqmriGNM045O9fg2MjgKu631uafH+9vQAV68C
R47Ex2zeDNy7B+zZU7a1twNfvgCnTgHXr///c/K/4cmKoiR6c2X4TfJkfw5N0wIv9j07m802fgPT
0+Tu3VEPHR2N9ikUPJt/fNOmsgeX8wHZ2Vnu09VFXr68fMM1ySD/+gAty0oMsUmQHcehqqrUdZ3F
YjEWvn1bTX38SD56RO7cGQ/DlZC9WO/Zd+0inz5NWqBEIfugL10iZ2aWBuR6rRJyeFEVboZhRCD5
kCubaZqROR3H+XuQp6bIoaHkXJsEmfQWWNUiTxJkgFyzhjx3bmnkZNd18evFijRN06qOsSwLJGHb
dtAvk8kglUol5tPwvIqiYHh4GKlUKjG319W+fcDFi8DBg431f/8eOHECuHABuHOnsTEbNwK3bwPH
jy+/nFxrb1u5n66Wk8Mh3zTN38/JhUJ8BV3pyW/eRPP2qlXkzZu1PXnDBvLx4+W7uu7r60v0Ptu2
g1VzI97pe38ul4OqqsHniYmJqmNKpRL6+/vLhtWrgXQaGBxMHjAzAxw9Crx6VbZ9/QqcPAncuFHd
gycngYGB5V27Hhsbq7k90nW97hy5XA4Agu2SbdtByM9kMoljxsfHYRhG1Lh2LXDlCjA05IfAMuCR
EeDFi/hEnz8Dp0+XQbe2At+/A729nq0JgJsSrv3iQ60qkl/xChc4wtWq8IraNM1YkcTfKlWGYT+0
K4oSSRXhBVi47JnP56nreuQ6YpqbI/fvJw2DfPmS3LGjfsVr5Ury7l3y1i1y2zby4cOlU/H6J7Vr
TdNommYAO1xbDufueit3PxcnvXyV59d1ve6enCT54QN5/jy5d68HcN262q2ri9y+3Rvz/HnTa9ct
i/n/kwuFAjo6OtDd3d3U887Pz6Ojo6NW+ANyOeDBAy/81vsWan7eq5ANDACHDwMrVjT1fhY15IWF
hV+VwHb5anOpQhbJL0NEAlkkkAWySCCLBLJIIIsEskggiwSySCALZJFAFglkkUAW/Wf6C9erlHg3
e49UAAAAAElFTkSuQmCC

------=_NextPart_000_0000_01CC94CC.424DB590
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.portaldovoluntariohsbc.com.br/site/img/logoPV.png

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

------=_NextPart_000_0000_01CC94CC.424DB590
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.portaldovoluntariohsbc.com.br/site/Themes/hsbcHome/Style.css

BODY {
	MARGIN: 0px; FONT-FAMILY: Arial; BACKGROUND: =
url(/site/img/barraLateral.png) repeat-y center top; FONT-SIZE: 12px; =
TEXT-DECORATION: none
}
TABLE {
	FONT-SIZE: 12px
}
A {
	COLOR: #616161; TEXT-DECORATION: none
}
IMG {
	BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-TOP: =
medium none; BORDER-RIGHT: medium none
}
H4 {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; FONT-SIZE: 12px; FONT-WEIGHT: bold; TEXT-DECORATION: underline; =
PADDING-TOP: 0px
}
FORM {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
INPUT {
	BORDER-BOTTOM: #d1d1d1 1px solid; BORDER-LEFT: #d1d1d1 1px solid; =
BACKGROUND: #fff; COLOR: #b51d1f; FONT-SIZE: 12px; BORDER-TOP: #d1d1d1 =
1px solid; BORDER-RIGHT: #d1d1d1 1px solid
}
SELECT {
	BORDER-BOTTOM: #d1d1d1 1px solid; BORDER-LEFT: #d1d1d1 1px solid; =
BACKGROUND: #fff; COLOR: #b51d1f; FONT-SIZE: 12px; BORDER-TOP: #d1d1d1 =
1px solid; BORDER-RIGHT: #d1d1d1 1px solid
}
TEXTAREA {
	BORDER-BOTTOM: #d1d1d1 1px solid; BORDER-LEFT: #d1d1d1 1px solid; =
BACKGROUND: #fff; COLOR: #b51d1f; FONT-SIZE: 12px; BORDER-TOP: #d1d1d1 =
1px solid; BORDER-RIGHT: #d1d1d1 1px solid
}
UL.grid {
	PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: =
0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
.imgAlbum {
	PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: =
0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
UL.grid LI {
	PADDING-BOTTOM: 10px; LIST-STYLE-TYPE: none; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; PADDING-TOP: 5px
}
.Button {
	PADDING-BOTTOM: 5px; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; =
PADDING-TOP: 5px
}
.Button:hover {
	BORDER-BOTTOM: #616161 1px solid; BORDER-LEFT: #616161 1px solid; =
BORDER-TOP: #616161 1px solid; CURSOR: pointer; BORDER-RIGHT: #616161 =
1px solid
}
H1 {
	FONT-WEIGHT: normal
}
.cabecalho {
	MARGIN: 10px 0px 0px; WIDTH: 999px; BACKGROUND: =
url(/site/img/fundoCabecalho.png) repeat-x; HEIGHT: 72px
}
.logos {
	PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; TEXT-INDENT: -15000px; =
MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 432px; PADDING-RIGHT: 0px; FLOAT: =
left; HEIGHT: 72px; PADDING-TOP: 0px
}
.logos LI {
	FLOAT: left
}
.institutoHSBC {
	WIDTH: 227px; DISPLAY: block; BACKGROUND: =
url(/site/img/logoInstitutoHSBC.png) no-repeat; HEIGHT: 72px
}
.pvHSBC {
	WIDTH: 205px; DISPLAY: block; BACKGROUND: url(/site/img/logoPVHSBC.png) =
no-repeat; HEIGHT: 72px
}
.menuHorizontal {
	WIDTH: 1001px; BACKGROUND: url(/site/img/normalMenuButton.png) =
repeat-x; CLEAR: both
}
UL.menu {
	PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: =
0px; PADDING-RIGHT: 0px; DISPLAY: block; HEIGHT: 50px; COLOR: #fff; =
PADDING-TOP: 0px
}
UL.menu LI {
	WIDTH: 166px; FLOAT: left; HEIGHT: 50px; COLOR: #fff
}
#nav {
	COLOR: #fff
}
#navbr {
	COLOR: #fff
}
A#nav:link {
	BORDER-BOTTOM: medium none; TEXT-ALIGN: center; BORDER-LEFT: medium =
none; PADDING-BOTTOM: 10px; LINE-HEIGHT: 28px; MARGIN: 0px; =
PADDING-LEFT: 0px; WIDTH: 166px; PADDING-RIGHT: 0px; DISPLAY: block; =
FLOAT: left; COLOR: #fff; BORDER-TOP: medium none; FONT-WEIGHT: bold; =
BORDER-RIGHT: medium none; TEXT-DECORATION: none; PADDING-TOP: 10px
}
A#nav:visited {
	BORDER-BOTTOM: medium none; TEXT-ALIGN: center; BORDER-LEFT: medium =
none; PADDING-BOTTOM: 10px; LINE-HEIGHT: 28px; MARGIN: 0px; =
PADDING-LEFT: 0px; WIDTH: 166px; PADDING-RIGHT: 0px; DISPLAY: block; =
FLOAT: left; COLOR: #fff; BORDER-TOP: medium none; FONT-WEIGHT: bold; =
BORDER-RIGHT: medium none; TEXT-DECORATION: none; PADDING-TOP: 10px
}
A#navbr:link {
	BORDER-BOTTOM: medium none; TEXT-ALIGN: center; BORDER-LEFT: medium =
none; PADDING-BOTTOM: 10px; LINE-HEIGHT: 28px; MARGIN: 0px; =
PADDING-LEFT: 0px; WIDTH: 166px; PADDING-RIGHT: 0px; DISPLAY: block; =
FLOAT: left; COLOR: #fff; BORDER-TOP: medium none; FONT-WEIGHT: bold; =
BORDER-RIGHT: medium none; TEXT-DECORATION: none; PADDING-TOP: 10px
}
A#navbr:visited {
	BORDER-BOTTOM: medium none; TEXT-ALIGN: center; BORDER-LEFT: medium =
none; PADDING-BOTTOM: 10px; LINE-HEIGHT: 28px; MARGIN: 0px; =
PADDING-LEFT: 0px; WIDTH: 166px; PADDING-RIGHT: 0px; DISPLAY: block; =
FLOAT: left; COLOR: #fff; BORDER-TOP: medium none; FONT-WEIGHT: bold; =
BORDER-RIGHT: medium none; TEXT-DECORATION: none; PADDING-TOP: 10px
}
A#navbr:link {
	LINE-HEIGHT: 15px
}
A#navbr:visited {
	LINE-HEIGHT: 15px
}
.busca {
	MARGIN: 14px 10px 0px 0px; WIDTH: 190px; FLOAT: right
}
.login {
	MARGIN: 9px 10px 0px 0px; FLOAT: right
}
.barraLogin {
	WIDTH: 560px; FLOAT: right
}
.logado {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 495px; =
PADDING-RIGHT: 0px; FLOAT: right; HEIGHT: 30px; PADDING-TOP: 0px
}
.campoBusca {
	BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: =
0px; MARGIN: 5px 0px; PADDING-LEFT: 4px; WIDTH: 120px; PADDING-RIGHT: =
0px; BACKGROUND: url(/site/img/campoBusca.png) no-repeat; HEIGHT: 22px; =
FONT-SIZE: 12px; BORDER-TOP: medium none; BORDER-RIGHT: medium none; =
PADDING-TOP: 3px
}
.border {
	BACKGROUND: url(/site/img/border.png) no-repeat right top
}
.botaoBusca {
	BORDER-BOTTOM: 0px; BORDER-LEFT: medium none; PADDING-BOTTOM: 20px; =
LINE-HEIGHT: 0px; TEXT-INDENT: -15000px; MARGIN: 7px 0px; PADDING-LEFT: =
0px; WIDTH: 65px; PADDING-RIGHT: 0px; BACKGROUND: =
url(/site/img/botaoBusca.png) no-repeat; HEIGHT: 20px; FONT-SIZE: 0px; =
BORDER-TOP: 0px; BORDER-RIGHT: 0px; PADDING-TOP: 1px
}

@media Unknown   =20
{
.campoBusca {
	PADDING-BOTTOM: 22px; PADDING-LEFT: 4px; PADDING-RIGHT: 0px; =
PADDING-TOP: 0px
}
.botaoBusca {
	HEIGHT: 22px
}
    }
.loginMenu {
	PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: =
0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
.loginMenu LI {
	PADDING-BOTTOM: 16px; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; FLOAT: =
left; PADDING-TOP: 16px
}
.loginMenu A {
	COLOR: #b51d1f; FONT-WEIGHT: bold; TEXT-DECORATION: underline
}
.Coluna1 {
	TEXT-ALIGN: center; PADDING-LEFT: 10px; WIDTH: 24%; PADDING-RIGHT: =
10px; FONT-FAMILY: Arial; TEXT-DECORATION: none; PADDING-TOP: 5px
}
.destaque IMG {
	BORDER-BOTTOM: #d1d1d1 2px solid; BORDER-LEFT: #d1d1d1 2px solid; =
BORDER-TOP: #d1d1d1 2px solid; BORDER-RIGHT: #d1d1d1 2px solid
}
.verMais {
	COLOR: #b51d1f; FONT-WEIGHT: bold; TEXT-DECORATION: underline
}
.verMais2 {
	COLOR: #b51d1f; FONT-WEIGHT: bold; TEXT-DECORATION: underline
}
.descricao {
	TEXT-ALIGN: center; PADDING-BOTTOM: 0px; PADDING-LEFT: 30px; =
PADDING-RIGHT: 30px; DISPLAY: block; PADDING-TOP: 0px
}
.noticiasEspaco {
	MARGIN-BOTTOM: 5px
}
#calendarHsbc {
	BACKGROUND-COLOR: white; MARGIN: 0px 57px; FLOAT: left; HEIGHT: 150px
}
.mesHsbc {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 50px; PADDING-RIGHT: 50px; COLOR: =
#666; FONT-SIZE: 12px; FONT-WEIGHT: normal; PADDING-TOP: 0px
}
.DataTD {
	BORDER-BOTTOM: #d1d1d1 1px solid; PADDING-BOTTOM: 6px; PADDING-LEFT: =
10px; PADDING-RIGHT: 10px; PADDING-TOP: 6px
}
.AltDataTD {
	BORDER-BOTTOM: #d1d1d1 1px solid; PADDING-BOTTOM: 6px; PADDING-LEFT: =
10px; PADDING-RIGHT: 10px; PADDING-TOP: 6px
}
.FooterTD {
	PADDING-BOTTOM: 20px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; =
PADDING-TOP: 20px
}
.estiloCalendario {
	BORDER-BOTTOM: #d1d1d1 1px solid; BORDER-LEFT: #d1d1d1 1px solid; =
BORDER-TOP: #d1d1d1 1px solid; BORDER-RIGHT: #d1d1d1 1px solid
}
.estiloCalendario TH {
	BORDER-BOTTOM: #b51d1f 1px solid; FONT-WEIGHT: normal
}
.feriado {
	BACKGROUND-COLOR: #b51d1f; COLOR: #fff
}
.diasFeriado {
	TEXT-ALIGN: left; MARGIN-TOP: 5%; COLOR: #666; MARGIN-LEFT: 18%; =
FONT-SIZE: 10px
}
.diasFeriado A {
	COLOR: #b51d1f
}
.imgCalendar1 {
	MARGIN-TOP: 23px; PADDING-LEFT: 50px; FLOAT: left; MARGIN-LEFT: 48px
}
.imgCalendar2 {
	MARGIN: -30px 47px; FLOAT: right
}
#calendario {
	HEIGHT: 325px
}
.Coluna2 {
	BACKGROUND-COLOR: #f3f2f2; PADDING-LEFT: 10px; WIDTH: 25%; =
PADDING-RIGHT: 10px; FONT-FAMILY: Arial; TEXT-DECORATION: none; =
PADDING-TOP: 5px
}
.noticias {
	TEXT-ALIGN: left; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
.noticias2 {
	BORDER-BOTTOM: #d1d1d1 1px solid; PADDING-BOTTOM: 5px; PADDING-LEFT: =
0px; PADDING-RIGHT: 0px; PADDING-TOP: 5px
}
.comites {
	TEXT-ALIGN: center; PADDING-BOTTOM: 0px; MARGIN: 50px auto; =
PADDING-LEFT: 0px; WIDTH: 268px; PADDING-RIGHT: 0px; DISPLAY: block; =
BACKGROUND: url(/site/img/fundoComites.png) no-repeat; HEIGHT: 85px; =
COLOR: #fff; FONT-SIZE: 14px; FONT-WEIGHT: bold; PADDING-TOP: 10px
}
.textoBotaoVolun {
	MARGIN: 6px 0px; COLOR: #fff; FONT-SIZE: 10px; FONT-WEIGHT: normal
}
.imgEntrevista IMG {
	MARGIN: 0px 10px 5px 0px; FLOAT: left
}
.imgNoticia IMG {
	MARGIN: 0px 10px 5px 0px; FLOAT: left
}
.entrevista {
	TEXT-ALIGN: justify; PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; =
MARGIN: 10px 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: =
0px
}
.noticia {
	TEXT-ALIGN: justify; PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; =
MARGIN: 10px 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: =
0px
}
.noticia LI {
	MARGIN: 0px 0px 15px
}
.noticia LI P {
	MARGIN: 5px 0px 2px
}
.noticia IMG {
	MARGIN: 0px 10px 5px 0px; FLOAT: left
}
.noticia .ver_mais {
	TEXT-ALIGN: right; CLEAR: both
}
.descricaoNoticia {
	BORDER-BOTTOM: #d1d1d1 1px solid; PADDING-BOTTOM: 17px; MARGIN: 20px =
0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 17px
}
.Coluna3 {
	BACKGROUND-COLOR: #e9e9e9; PADDING-LEFT: 10px; WIDTH: 20%; =
PADDING-RIGHT: 10px; FONT-FAMILY: Arial; TEXT-DECORATION: none; =
PADDING-TOP: 5px
}
.Coluna3 A {
	COLOR: #b51d1f
}
.linhaDivisor {
	BORDER-BOTTOM: #d1d1d1 1px solid; ; BORDER-BOTTOM: =
expression(this.nextSibling =3D=3D null ? '0' : '1px solid #d1d1d1'); =
TEXT-ALIGN: left; PADDING-BOTTOM: 5px; MIN-HEIGHT: 50px; PADDING-LEFT: =
0px; PADDING-RIGHT: 0px; HEIGHT: 50px; PADDING-TOP: 5px
}
.linhaDivisor:unknown {
	BORDER-BOTTOM: 0px
}
.linha {
	PADDING-BOTTOM: 5px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; COLOR: =
#b51d1f; BORDER-TOP: #d1d1d1 1px solid; PADDING-TOP: 5px
}
.boxInscrever {
	TEXT-ALIGN: center; PADDING-BOTTOM: 0px; TEXT-INDENT: -15000px; MARGIN: =
50px auto; PADDING-LEFT: 0px; WIDTH: 268px; PADDING-RIGHT: 0px; DISPLAY: =
block; BACKGROUND: url(/site/img/fundoSistemaVoluntarios.png) no-repeat; =
HEIGHT: 81px; COLOR: #fff; FONT-SIZE: 14px; FONT-WEIGHT: bold; =
PADDING-TOP: 10px
}
.RedLinks {
	BORDER-BOTTOM: #d1d1d1 1px solid; MARGIN: 0px 0px 5px; FONT-WEIGHT: =
bold
}
.RedLinks A {
	COLOR: #b51d1f; FONT-SIZE: 14px
}
.tituloLinks {
	TEXT-ALIGN: left; LINE-HEIGHT: 30px; MARGIN-BOTTOM: 10px; FONT-WEIGHT: =
bold
}
.TD_textoPreto {
	BORDER-BOTTOM: #d1d1d1 1px solid; ; BORDER-BOTTOM: =
expression(this.nextSibling =3D=3D null ? '0' : '1px solid #d1d1d1'); =
PADDING-BOTTOM: 5px; LIST-STYLE-TYPE: none; MARGIN: 10px 0px 0px; =
PADDING-LEFT: 5px; PADDING-RIGHT: 5px; PADDING-TOP: 0px
}
.TD_img {
	BORDER-BOTTOM: #d1d1d1 1px solid; ; BORDER-BOTTOM: =
expression(this.nextSibling =3D=3D null ? '0' : '1px solid #d1d1d1'); =
PADDING-BOTTOM: 5px; LIST-STYLE-TYPE: none; MARGIN: 10px 0px 0px; =
PADDING-LEFT: 5px; PADDING-RIGHT: 5px; PADDING-TOP: 0px
}
.TD_textoPreto:unknown {
	BORDER-BOTTOM: 0px
}
.select {
	BORDER-BOTTOM: #d1d1d1 1px solid; BORDER-LEFT: #d1d1d1 1px solid; =
BACKGROUND-COLOR: #f9f9f9; WIDTH: 98px; HEIGHT: 18px; COLOR: #616161; =
FONT-SIZE: 10px; BORDER-TOP: #d1d1d1 1px solid; BORDER-RIGHT: #d1d1d1 =
1px solid
}
.rodape {
	TEXT-ALIGN: center; MARGIN: 0px; FONT-FAMILY: Arial; BACKGROUND: =
url(/site/img/fundoRodape.png) #fff no-repeat center top; COLOR: =
#ffffff; FONT-SIZE: 10px
}
.rodape P {
	PADDING-BOTTOM: 14px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 8px
}
.rodape .tech {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 230px; =
PADDING-RIGHT: 0px; HEIGHT: 20px; COLOR: #616161; PADDING-TOP: 0px
}
.rodape .techText {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FLOAT: =
left; PADDING-TOP: 0px
}
.rodape .techImg {
	TEXT-INDENT: -15000px; WIDTH: 116px; DISPLAY: block; BACKGROUND: =
url(/site/img/logoPV.png) no-repeat center top; FLOAT: left; HEIGHT: =
18px
}
.caminho {
	MARGIN: 10px 0px; PADDING-LEFT: 5px
}
.TD_menu {
	PADDING-LEFT: 10px
}
.BgCaminho {
	BORDER-BOTTOM: #e9e9e9 1px solid; PADDING-BOTTOM: 5px; PADDING-LEFT: =
0px; PADDING-RIGHT: 0px; HEIGHT: 40px; PADDING-TOP: 5px
}
.TD_corpo {
	LINE-HEIGHT: 1.5
}
.TD_corpo .titulo {
	BORDER-BOTTOM: #e9e9e9 1px solid; PADDING-BOTTOM: 5px; PADDING-LEFT: =
0px; PADDING-RIGHT: 0px; COLOR: #b51d1f; FONT-SIZE: 20px; FONT-WEIGHT: =
bold; PADDING-TOP: 5px
}
.subtitulo {
	COLOR: #b51d1f; FONT-SIZE: 16px; FONT-WEIGHT: bold
}
.TD_corpo A {
	COLOR: #b51d1f; FONT-WEIGHT: bold; TEXT-DECORATION: underline
}
.TD_corpo A:hover {
	TEXT-DECORATION: underline
}
.TD_avatar {
	BORDER-BOTTOM: #d1d1d1 1px solid; BORDER-LEFT: #d1d1d1 1px solid; =
BACKGROUND: url(/site/img/fundoCabecalho.png) repeat-x center bottom; =
BORDER-TOP: #d1d1d1 1px solid; BORDER-RIGHT: #d1d1d1 1px solid
}
.menu {
	LINE-HEIGHT: 2em
}
.formulario {
	BORDER-BOTTOM: #e9e9e9 1px solid; BORDER-LEFT: #e9e9e9 1px solid; =
BACKGROUND: url(/site/img/fundoCabecalho.png) repeat-x center bottom; =
BORDER-TOP: #e9e9e9 1px solid; BORDER-RIGHT: #e9e9e9 1px solid
}
.formulario INPUT {
	COLOR: #616161; FONT-SIZE: 12px
}
.formulario TEXTAREA {
	COLOR: #616161; FONT-SIZE: 12px
}
.alerta {
	BORDER-BOTTOM: #d1d1d1 1px solid; BORDER-LEFT: #d1d1d1 1px solid; =
PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #eee; PADDING-LEFT: 10px; =
PADDING-RIGHT: 10px; COLOR: #616161; FONT-SIZE: 14px; BORDER-TOP: =
#d1d1d1 1px solid; FONT-WEIGHT: bold; BORDER-RIGHT: #d1d1d1 1px solid; =
PADDING-TOP: 10px
}
.scroller {
	WIDTH: 690px; BACKGROUND: url(/site/img/projPrateleira/frameBg.png) =
no-repeat center top; HEIGHT: 800px; OVERFLOW: hidden
}
#rail {
	TEXT-ALIGN: center; WIDTH: 690px
}
.section {
	WIDTH: 690px; HEIGHT: 800px
}
#rail H3 {
	MARGIN: 20px 0px 10px; FONT-SIZE: 18px; FONT-WEIGHT: normal
}
#rail H3 A {
	COLOR: #b51d1f
}
#rail H4 {
	MARGIN: 2px 0px 38px; FONT-SIZE: 14px; FONT-WEIGHT: normal
}
#rail P {
	LINE-HEIGHT: 14px
}
#home {
	PADDING-BOTTOM: 38px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; =
BACKGROUND: url(/site/img/projPrateleira/homeBg.png) no-repeat center =
120px; PADDING-TOP: 38px
}
#comunidade {
	TEXT-ALIGN: left; PADDING-BOTTOM: 20px; PADDING-LEFT: 10px; =
PADDING-RIGHT: 0px; PADDING-TOP: 20px
}
#meioAmbiente {
	TEXT-ALIGN: left; PADDING-BOTTOM: 20px; PADDING-LEFT: 10px; =
PADDING-RIGHT: 0px; PADDING-TOP: 20px
}
#educacao {
	TEXT-ALIGN: left; PADDING-BOTTOM: 20px; PADDING-LEFT: 10px; =
PADDING-RIGHT: 0px; PADDING-TOP: 20px
}
#oldProjects {
	TEXT-ALIGN: left; PADDING-BOTTOM: 20px; PADDING-LEFT: 10px; =
PADDING-RIGHT: 0px; PADDING-TOP: 20px
}
#comunidade A {
	TEXT-DECORATION: underline
}
#meioAmbiente A {
	TEXT-DECORATION: underline
}
#educacao A {
	TEXT-DECORATION: underline
}
#oldProjects A {
	TEXT-DECORATION: underline
}
#options {
	MARGIN: 0px auto; WIDTH: 327px; HEIGHT: 155px
}
#options #btnComunidade {
	TEXT-INDENT: -15000px; MARGIN: 0px; WIDTH: 105px; DISPLAY: block; =
BACKGROUND: url(/site/img/projPrateleira/btnProjects.png) no-repeat; =
FLOAT: left; HEIGHT: 155px
}
#options #btnMeioAmbiente {
	TEXT-INDENT: -15000px; MARGIN: 0px; WIDTH: 105px; DISPLAY: block; =
BACKGROUND: url(/site/img/projPrateleira/btnProjects.png) no-repeat; =
FLOAT: left; HEIGHT: 155px
}
#options #btnEducacao {
	TEXT-INDENT: -15000px; MARGIN: 0px; WIDTH: 105px; DISPLAY: block; =
BACKGROUND: url(/site/img/projPrateleira/btnProjects.png) no-repeat; =
FLOAT: left; HEIGHT: 155px
}
#options #btnComunidade {
	BACKGROUND-POSITION: left top
}
#options #btnComunidade:hover {
	BACKGROUND-POSITION: left bottom
}
#options #btnMeioAmbiente {
	BACKGROUND-POSITION: center top
}
#options #btnMeioAmbiente:hover {
	BACKGROUND-POSITION: center bottom
}
#options #btnEducacao {
	BACKGROUND-POSITION: right top
}
#options #btnEducacao:hover {
	BACKGROUND-POSITION: right bottom
}
#btnOldProjects {
	TEXT-INDENT: -15000px; MARGIN: 35px auto 0px; WIDTH: 201px; DISPLAY: =
block; BACKGROUND: url(/site/img/projPrateleira/btnOldProjects.png) =
no-repeat; HEIGHT: 77px
}
.breadcrumb {
	TEXT-ALIGN: left; COLOR: #000; FONT-SIZE: 16px
}
.breadcrumb A {
	TEXT-ALIGN: left; COLOR: #000; FONT-SIZE: 16px
}
.breadcrumb A {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; WIDTH: 70px; PADDING-RIGHT: =
0px; DISPLAY: block; BACKGROUND: =
url(/site/img/projPrateleira/breadcrumbArrow.gif) no-repeat 46px 12px; =
FLOAT: left; HEIGHT: 35px; COLOR: #b51d1f; PADDING-TOP: 13px
}
.breadcrumb {
	HEIGHT: 48px
}
.breadcrumb .arrow {
	MARGIN: 0px 10px; VERTICAL-ALIGN: middle
}
.breadcrumb A:hover {
	TEXT-DECORATION: underline
}
.breadcrumb #icoComunidade {
	PADDING-BOTTOM: 14px; PADDING-LEFT: 53px; PADDING-RIGHT: 0px; DISPLAY: =
block; FLOAT: left; HEIGHT: 34px; PADDING-TOP: 16px
}
.breadcrumb #icoMeioAmbiente {
	PADDING-BOTTOM: 14px; PADDING-LEFT: 53px; PADDING-RIGHT: 0px; DISPLAY: =
block; FLOAT: left; HEIGHT: 34px; PADDING-TOP: 16px
}
.breadcrumb #icoEducacao {
	PADDING-BOTTOM: 14px; PADDING-LEFT: 53px; PADDING-RIGHT: 0px; DISPLAY: =
block; FLOAT: left; HEIGHT: 34px; PADDING-TOP: 16px
}
.breadcrumb #icoComunidade {
	BACKGROUND: url(/site/img/projPrateleira/icoComunidade.png) no-repeat =
left center
}
.breadcrumb #icoMeioAmbiente {
	BACKGROUND: url(/site/img/projPrateleira/icoMeioAmbiente.png) no-repeat =
left center
}
.breadcrumb #icoEducacao {
	BACKGROUND: url(/site/img/projPrateleira/icoEducacao.png) no-repeat =
left center
}
.breadcrumb #oldProjects {
	PADDING-BOTTOM: 14px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: =
block; FLOAT: left; HEIGHT: 34px; PADDING-TOP: 14px
}
.breadcrumb #linkProjPrateleira {
	PADDING-BOTTOM: 7px; PADDING-LEFT: 53px; WIDTH: 210px; PADDING-RIGHT: =
0px; DISPLAY: block; BACKGROUND: =
url(/site/img/projPrateleira/icoProjPrateleira.png) no-repeat left =
center; FLOAT: right; HEIGHT: 42px; FONT-SIZE: 12px; PADDING-TOP: 7px
}
.breadcrumb #linkProjPrateleira DIV {
	FONT-SIZE: 16px
}
.tabela TR:hover {
	BACKGROUND: #fff
}
.tabela {
	MARGIN: 5px 0px; WIDTH: 100%
}
.tabela TH {
	BACKGROUND: #eee; FONT-WEIGHT: bold
}
.tabela TH {
	BORDER-BOTTOM: #ccc 1px solid; PADDING-BOTTOM: 4px; PADDING-LEFT: 5px; =
PADDING-RIGHT: 10px; FONT-SIZE: 12px; PADDING-TOP: 4px
}
.tabela TD {
	BORDER-BOTTOM: #ccc 1px solid; PADDING-BOTTOM: 4px; PADDING-LEFT: 5px; =
PADDING-RIGHT: 10px; FONT-SIZE: 12px; PADDING-TOP: 4px
}
.tabela TR:hover {
	BACKGROUND: #eee
}
.tabela TR.even TD {
	BACKGROUND: #e5ecf9
}
.tabela TFOOT {
	FONT-STYLE: italic
}
.tabela CAPTION {
	BACKGROUND: #eee
}

------=_NextPart_000_0000_01CC94CC.424DB590
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.portaldovoluntariohsbc.com.br/site/js/prototype.js

/*  Prototype JavaScript framework, version 1.5.0=0A=
 *  (c) 2005-2007 Sam Stephenson=0A=
 *=0A=
 *  Prototype is freely distributable under the terms of an MIT-style =
license.=0A=
 *  For details, see the Prototype web site: http://prototype.conio.net/=0A=
 *=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
var Prototype =3D {=0A=
  Version: '1.5.0',=0A=
  BrowserFeatures: {=0A=
    XPath: !!document.evaluate=0A=
  },=0A=
=0A=
  ScriptFragment: '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)',=0A=
  emptyFunction: function() {},=0A=
  K: function(x) { return x }=0A=
}=0A=
=0A=
var Class =3D {=0A=
  create: function() {=0A=
    return function() {=0A=
      this.initialize.apply(this, arguments);=0A=
    }=0A=
  }=0A=
}=0A=
=0A=
var Abstract =3D new Object();=0A=
=0A=
Object.extend =3D function(destination, source) {=0A=
  for (var property in source) {=0A=
    destination[property] =3D source[property];=0A=
  }=0A=
  return destination;=0A=
}=0A=
=0A=
Object.extend(Object, {=0A=
  inspect: function(object) {=0A=
    try {=0A=
      if (object =3D=3D=3D undefined) return 'undefined';=0A=
      if (object =3D=3D=3D null) return 'null';=0A=
      return object.inspect ? object.inspect() : object.toString();=0A=
    } catch (e) {=0A=
      if (e instanceof RangeError) return '...';=0A=
      throw e;=0A=
    }=0A=
  },=0A=
=0A=
  keys: function(object) {=0A=
    var keys =3D [];=0A=
    for (var property in object)=0A=
      keys.push(property);=0A=
    return keys;=0A=
  },=0A=
=0A=
  values: function(object) {=0A=
    var values =3D [];=0A=
    for (var property in object)=0A=
      values.push(object[property]);=0A=
    return values;=0A=
  },=0A=
=0A=
  clone: function(object) {=0A=
    return Object.extend({}, object);=0A=
  }=0A=
});=0A=
=0A=
Function.prototype.bind =3D function() {=0A=
  var __method =3D this, args =3D $A(arguments), object =3D args.shift();=0A=
  return function() {=0A=
    return __method.apply(object, args.concat($A(arguments)));=0A=
  }=0A=
}=0A=
=0A=
Function.prototype.bindAsEventListener =3D function(object) {=0A=
  var __method =3D this, args =3D $A(arguments), object =3D args.shift();=0A=
  return function(event) {=0A=
    return __method.apply(object, [( event || =
window.event)].concat(args).concat($A(arguments)));=0A=
  }=0A=
}=0A=
=0A=
Object.extend(Number.prototype, {=0A=
  toColorPart: function() {=0A=
    var digits =3D this.toString(16);=0A=
    if (this < 16) return '0' + digits;=0A=
    return digits;=0A=
  },=0A=
=0A=
  succ: function() {=0A=
    return this + 1;=0A=
  },=0A=
=0A=
  times: function(iterator) {=0A=
    $R(0, this, true).each(iterator);=0A=
    return this;=0A=
  }=0A=
});=0A=
=0A=
var Try =3D {=0A=
  these: function() {=0A=
    var returnValue;=0A=
=0A=
    for (var i =3D 0, length =3D arguments.length; i < length; i++) {=0A=
      var lambda =3D arguments[i];=0A=
      try {=0A=
        returnValue =3D lambda();=0A=
        break;=0A=
      } catch (e) {}=0A=
    }=0A=
=0A=
    return returnValue;=0A=
  }=0A=
}=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
var PeriodicalExecuter =3D Class.create();=0A=
PeriodicalExecuter.prototype =3D {=0A=
  initialize: function(callback, frequency) {=0A=
    this.callback =3D callback;=0A=
    this.frequency =3D frequency;=0A=
    this.currentlyExecuting =3D false;=0A=
=0A=
    this.registerCallback();=0A=
  },=0A=
=0A=
  registerCallback: function() {=0A=
    this.timer =3D setInterval(this.onTimerEvent.bind(this), =
this.frequency * 1000);=0A=
  },=0A=
=0A=
  stop: function() {=0A=
    if (!this.timer) return;=0A=
    clearInterval(this.timer);=0A=
    this.timer =3D null;=0A=
  },=0A=
=0A=
  onTimerEvent: function() {=0A=
    if (!this.currentlyExecuting) {=0A=
      try {=0A=
        this.currentlyExecuting =3D true;=0A=
        this.callback(this);=0A=
      } finally {=0A=
        this.currentlyExecuting =3D false;=0A=
      }=0A=
    }=0A=
  }=0A=
}=0A=
String.interpret =3D function(value){=0A=
  return value =3D=3D null ? '' : String(value);=0A=
}=0A=
=0A=
Object.extend(String.prototype, {=0A=
  gsub: function(pattern, replacement) {=0A=
    var result =3D '', source =3D this, match;=0A=
    replacement =3D arguments.callee.prepareReplacement(replacement);=0A=
=0A=
    while (source.length > 0) {=0A=
      if (match =3D source.match(pattern)) {=0A=
        result +=3D source.slice(0, match.index);=0A=
        result +=3D String.interpret(replacement(match));=0A=
        source  =3D source.slice(match.index + match[0].length);=0A=
      } else {=0A=
        result +=3D source, source =3D '';=0A=
      }=0A=
    }=0A=
    return result;=0A=
  },=0A=
=0A=
  sub: function(pattern, replacement, count) {=0A=
    replacement =3D this.gsub.prepareReplacement(replacement);=0A=
    count =3D count =3D=3D=3D undefined ? 1 : count;=0A=
=0A=
    return this.gsub(pattern, function(match) {=0A=
      if (--count < 0) return match[0];=0A=
      return replacement(match);=0A=
    });=0A=
  },=0A=
=0A=
  scan: function(pattern, iterator) {=0A=
    this.gsub(pattern, iterator);=0A=
    return this;=0A=
  },=0A=
=0A=
  truncate: function(length, truncation) {=0A=
    length =3D length || 30;=0A=
    truncation =3D truncation =3D=3D=3D undefined ? '...' : truncation;=0A=
    return this.length > length ?=0A=
      this.slice(0, length - truncation.length) + truncation : this;=0A=
  },=0A=
=0A=
  strip: function() {=0A=
    return this.replace(/^\s+/, '').replace(/\s+$/, '');=0A=
  },=0A=
=0A=
  stripTags: function() {=0A=
    return this.replace(/<\/?[^>]+>/gi, '');=0A=
  },=0A=
=0A=
  stripScripts: function() {=0A=
    return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');=0A=
  },=0A=
=0A=
  extractScripts: function() {=0A=
    var matchAll =3D new RegExp(Prototype.ScriptFragment, 'img');=0A=
    var matchOne =3D new RegExp(Prototype.ScriptFragment, 'im');=0A=
    return (this.match(matchAll) || []).map(function(scriptTag) {=0A=
      return (scriptTag.match(matchOne) || ['', ''])[1];=0A=
    });=0A=
  },=0A=
=0A=
  evalScripts: function() {=0A=
    return this.extractScripts().map(function(script) { return =
eval(script) });=0A=
  },=0A=
=0A=
  escapeHTML: function() {=0A=
    var div =3D document.createElement('div');=0A=
    var text =3D document.createTextNode(this);=0A=
    div.appendChild(text);=0A=
    return div.innerHTML;=0A=
  },=0A=
=0A=
  unescapeHTML: function() {=0A=
    var div =3D document.createElement('div');=0A=
    div.innerHTML =3D this.stripTags();=0A=
    return div.childNodes[0] ? (div.childNodes.length > 1 ?=0A=
      $A(div.childNodes).inject('',function(memo,node){ return =
memo+node.nodeValue }) :=0A=
      div.childNodes[0].nodeValue) : '';=0A=
  },=0A=
=0A=
  toQueryParams: function(separator) {=0A=
    var match =3D this.strip().match(/([^?#]*)(#.*)?$/);=0A=
    if (!match) return {};=0A=
=0A=
    return match[1].split(separator || '&').inject({}, function(hash, =
pair) {=0A=
      if ((pair =3D pair.split('=3D'))[0]) {=0A=
        var name =3D decodeURIComponent(pair[0]);=0A=
        var value =3D pair[1] ? decodeURIComponent(pair[1]) : undefined;=0A=
=0A=
        if (hash[name] !=3D=3D undefined) {=0A=
          if (hash[name].constructor !=3D Array)=0A=
            hash[name] =3D [hash[name]];=0A=
          if (value) hash[name].push(value);=0A=
        }=0A=
        else hash[name] =3D value;=0A=
      }=0A=
      return hash;=0A=
    });=0A=
  },=0A=
=0A=
  toArray: function() {=0A=
    return this.split('');=0A=
  },=0A=
=0A=
  succ: function() {=0A=
    return this.slice(0, this.length - 1) +=0A=
      String.fromCharCode(this.charCodeAt(this.length - 1) + 1);=0A=
  },=0A=
=0A=
  camelize: function() {=0A=
    var parts =3D this.split('-'), len =3D parts.length;=0A=
    if (len =3D=3D 1) return parts[0];=0A=
=0A=
    var camelized =3D this.charAt(0) =3D=3D '-'=0A=
      ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1)=0A=
      : parts[0];=0A=
=0A=
    for (var i =3D 1; i < len; i++)=0A=
      camelized +=3D parts[i].charAt(0).toUpperCase() + =
parts[i].substring(1);=0A=
=0A=
    return camelized;=0A=
  },=0A=
=0A=
  capitalize: function(){=0A=
    return this.charAt(0).toUpperCase() + =
this.substring(1).toLowerCase();=0A=
  },=0A=
=0A=
  underscore: function() {=0A=
    return this.gsub(/::/, =
'/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{=
1}_#{2}').gsub(/-/,'_').toLowerCase();=0A=
  },=0A=
=0A=
  dasherize: function() {=0A=
    return this.gsub(/_/,'-');=0A=
  },=0A=
=0A=
  inspect: function(useDoubleQuotes) {=0A=
    var escapedString =3D this.replace(/\\/g, '\\\\');=0A=
    if (useDoubleQuotes)=0A=
      return '"' + escapedString.replace(/"/g, '\\"') + '"';=0A=
    else=0A=
      return "'" + escapedString.replace(/'/g, '\\\'') + "'";=0A=
  }=0A=
});=0A=
=0A=
String.prototype.gsub.prepareReplacement =3D function(replacement) {=0A=
  if (typeof replacement =3D=3D 'function') return replacement;=0A=
  var template =3D new Template(replacement);=0A=
  return function(match) { return template.evaluate(match) };=0A=
}=0A=
=0A=
String.prototype.parseQuery =3D String.prototype.toQueryParams;=0A=
=0A=
var Template =3D Class.create();=0A=
Template.Pattern =3D /(^|.|\r|\n)(#\{(.*?)\})/;=0A=
Template.prototype =3D {=0A=
  initialize: function(template, pattern) {=0A=
    this.template =3D template.toString();=0A=
    this.pattern  =3D pattern || Template.Pattern;=0A=
  },=0A=
=0A=
  evaluate: function(object) {=0A=
    return this.template.gsub(this.pattern, function(match) {=0A=
      var before =3D match[1];=0A=
      if (before =3D=3D '\\') return match[2];=0A=
      return before + String.interpret(object[match[3]]);=0A=
    });=0A=
  }=0A=
}=0A=
=0A=
var $break    =3D new Object();=0A=
var $continue =3D new Object();=0A=
=0A=
var Enumerable =3D {=0A=
  each: function(iterator) {=0A=
    var index =3D 0;=0A=
    try {=0A=
      this._each(function(value) {=0A=
        try {=0A=
          iterator(value, index++);=0A=
        } catch (e) {=0A=
          if (e !=3D $continue) throw e;=0A=
        }=0A=
      });=0A=
    } catch (e) {=0A=
      if (e !=3D $break) throw e;=0A=
    }=0A=
    return this;=0A=
  },=0A=
=0A=
  eachSlice: function(number, iterator) {=0A=
    var index =3D -number, slices =3D [], array =3D this.toArray();=0A=
    while ((index +=3D number) < array.length)=0A=
      slices.push(array.slice(index, index+number));=0A=
    return slices.map(iterator);=0A=
  },=0A=
=0A=
  all: function(iterator) {=0A=
    var result =3D true;=0A=
    this.each(function(value, index) {=0A=
      result =3D result && !!(iterator || Prototype.K)(value, index);=0A=
      if (!result) throw $break;=0A=
    });=0A=
    return result;=0A=
  },=0A=
=0A=
  any: function(iterator) {=0A=
    var result =3D false;=0A=
    this.each(function(value, index) {=0A=
      if (result =3D !!(iterator || Prototype.K)(value, index))=0A=
        throw $break;=0A=
    });=0A=
    return result;=0A=
  },=0A=
=0A=
  collect: function(iterator) {=0A=
    var results =3D [];=0A=
    this.each(function(value, index) {=0A=
      results.push((iterator || Prototype.K)(value, index));=0A=
    });=0A=
    return results;=0A=
  },=0A=
=0A=
  detect: function(iterator) {=0A=
    var result;=0A=
    this.each(function(value, index) {=0A=
      if (iterator(value, index)) {=0A=
        result =3D value;=0A=
        throw $break;=0A=
      }=0A=
    });=0A=
    return result;=0A=
  },=0A=
=0A=
  findAll: function(iterator) {=0A=
    var results =3D [];=0A=
    this.each(function(value, index) {=0A=
      if (iterator(value, index))=0A=
        results.push(value);=0A=
    });=0A=
    return results;=0A=
  },=0A=
=0A=
  grep: function(pattern, iterator) {=0A=
    var results =3D [];=0A=
    this.each(function(value, index) {=0A=
      var stringValue =3D value.toString();=0A=
      if (stringValue.match(pattern))=0A=
        results.push((iterator || Prototype.K)(value, index));=0A=
    })=0A=
    return results;=0A=
  },=0A=
=0A=
  include: function(object) {=0A=
    var found =3D false;=0A=
    this.each(function(value) {=0A=
      if (value =3D=3D object) {=0A=
        found =3D true;=0A=
        throw $break;=0A=
      }=0A=
    });=0A=
    return found;=0A=
  },=0A=
=0A=
  inGroupsOf: function(number, fillWith) {=0A=
    fillWith =3D fillWith =3D=3D=3D undefined ? null : fillWith;=0A=
    return this.eachSlice(number, function(slice) {=0A=
      while(slice.length < number) slice.push(fillWith);=0A=
      return slice;=0A=
    });=0A=
  },=0A=
=0A=
  inject: function(memo, iterator) {=0A=
    this.each(function(value, index) {=0A=
      memo =3D iterator(memo, value, index);=0A=
    });=0A=
    return memo;=0A=
  },=0A=
=0A=
  invoke: function(method) {=0A=
    var args =3D $A(arguments).slice(1);=0A=
    return this.map(function(value) {=0A=
      return value[method].apply(value, args);=0A=
    });=0A=
  },=0A=
=0A=
  max: function(iterator) {=0A=
    var result;=0A=
    this.each(function(value, index) {=0A=
      value =3D (iterator || Prototype.K)(value, index);=0A=
      if (result =3D=3D undefined || value >=3D result)=0A=
        result =3D value;=0A=
    });=0A=
    return result;=0A=
  },=0A=
=0A=
  min: function(iterator) {=0A=
    var result;=0A=
    this.each(function(value, index) {=0A=
      value =3D (iterator || Prototype.K)(value, index);=0A=
      if (result =3D=3D undefined || value < result)=0A=
        result =3D value;=0A=
    });=0A=
    return result;=0A=
  },=0A=
=0A=
  partition: function(iterator) {=0A=
    var trues =3D [], falses =3D [];=0A=
    this.each(function(value, index) {=0A=
      ((iterator || Prototype.K)(value, index) ?=0A=
        trues : falses).push(value);=0A=
    });=0A=
    return [trues, falses];=0A=
  },=0A=
=0A=
  pluck: function(property) {=0A=
    var results =3D [];=0A=
    this.each(function(value, index) {=0A=
      results.push(value[property]);=0A=
    });=0A=
    return results;=0A=
  },=0A=
=0A=
  reject: function(iterator) {=0A=
    var results =3D [];=0A=
    this.each(function(value, index) {=0A=
      if (!iterator(value, index))=0A=
        results.push(value);=0A=
    });=0A=
    return results;=0A=
  },=0A=
=0A=
  sortBy: function(iterator) {=0A=
    return this.map(function(value, index) {=0A=
      return {value: value, criteria: iterator(value, index)};=0A=
    }).sort(function(left, right) {=0A=
      var a =3D left.criteria, b =3D right.criteria;=0A=
      return a < b ? -1 : a > b ? 1 : 0;=0A=
    }).pluck('value');=0A=
  },=0A=
=0A=
  toArray: function() {=0A=
    return this.map();=0A=
  },=0A=
=0A=
  zip: function() {=0A=
    var iterator =3D Prototype.K, args =3D $A(arguments);=0A=
    if (typeof args.last() =3D=3D 'function')=0A=
      iterator =3D args.pop();=0A=
=0A=
    var collections =3D [this].concat(args).map($A);=0A=
    return this.map(function(value, index) {=0A=
      return iterator(collections.pluck(index));=0A=
    });=0A=
  },=0A=
=0A=
  size: function() {=0A=
    return this.toArray().length;=0A=
  },=0A=
=0A=
  inspect: function() {=0A=
    return '#<Enumerable:' + this.toArray().inspect() + '>';=0A=
  }=0A=
}=0A=
=0A=
Object.extend(Enumerable, {=0A=
  map:     Enumerable.collect,=0A=
  find:    Enumerable.detect,=0A=
  select:  Enumerable.findAll,=0A=
  member:  Enumerable.include,=0A=
  entries: Enumerable.toArray=0A=
});=0A=
var $A =3D Array.from =3D function(iterable) {=0A=
  if (!iterable) return [];=0A=
  if (iterable.toArray) {=0A=
    return iterable.toArray();=0A=
  } else {=0A=
    var results =3D [];=0A=
    for (var i =3D 0, length =3D iterable.length; i < length; i++)=0A=
      results.push(iterable[i]);=0A=
    return results;=0A=
  }=0A=
}=0A=
=0A=
Object.extend(Array.prototype, Enumerable);=0A=
=0A=
if (!Array.prototype._reverse)=0A=
  Array.prototype._reverse =3D Array.prototype.reverse;=0A=
=0A=
Object.extend(Array.prototype, {=0A=
  _each: function(iterator) {=0A=
    for (var i =3D 0, length =3D this.length; i < length; i++)=0A=
      iterator(this[i]);=0A=
  },=0A=
=0A=
  clear: function() {=0A=
    this.length =3D 0;=0A=
    return this;=0A=
  },=0A=
=0A=
  first: function() {=0A=
    return this[0];=0A=
  },=0A=
=0A=
  last: function() {=0A=
    return this[this.length - 1];=0A=
  },=0A=
=0A=
  compact: function() {=0A=
    return this.select(function(value) {=0A=
      return value !=3D null;=0A=
    });=0A=
  },=0A=
=0A=
  flatten: function() {=0A=
    return this.inject([], function(array, value) {=0A=
      return array.concat(value && value.constructor =3D=3D Array ?=0A=
        value.flatten() : [value]);=0A=
    });=0A=
  },=0A=
=0A=
  without: function() {=0A=
    var values =3D $A(arguments);=0A=
    return this.select(function(value) {=0A=
      return !values.include(value);=0A=
    });=0A=
  },=0A=
=0A=
  indexOf: function(object) {=0A=
    for (var i =3D 0, length =3D this.length; i < length; i++)=0A=
      if (this[i] =3D=3D object) return i;=0A=
    return -1;=0A=
  },=0A=
=0A=
  reverse: function(inline) {=0A=
    return (inline !=3D=3D false ? this : this.toArray())._reverse();=0A=
  },=0A=
=0A=
  reduce: function() {=0A=
    return this.length > 1 ? this : this[0];=0A=
  },=0A=
=0A=
  uniq: function() {=0A=
    return this.inject([], function(array, value) {=0A=
      return array.include(value) ? array : array.concat([value]);=0A=
    });=0A=
  },=0A=
=0A=
  clone: function() {=0A=
    return [].concat(this);=0A=
  },=0A=
=0A=
  size: function() {=0A=
    return this.length;=0A=
  },=0A=
=0A=
  inspect: function() {=0A=
    return '[' + this.map(Object.inspect).join(', ') + ']';=0A=
  }=0A=
});=0A=
=0A=
Array.prototype.toArray =3D Array.prototype.clone;=0A=
=0A=
function $w(string){=0A=
  string =3D string.strip();=0A=
  return string ? string.split(/\s+/) : [];=0A=
}=0A=
=0A=
if(window.opera){=0A=
  Array.prototype.concat =3D function(){=0A=
    var array =3D [];=0A=
    for(var i =3D 0, length =3D this.length; i < length; i++) =
array.push(this[i]);=0A=
    for(var i =3D 0, length =3D arguments.length; i < length; i++) {=0A=
      if(arguments[i].constructor =3D=3D Array) {=0A=
        for(var j =3D 0, arrayLength =3D arguments[i].length; j < =
arrayLength; j++)=0A=
          array.push(arguments[i][j]);=0A=
      } else {=0A=
        array.push(arguments[i]);=0A=
      }=0A=
    }=0A=
    return array;=0A=
  }=0A=
}=0A=
var Hash =3D function(obj) {=0A=
  Object.extend(this, obj || {});=0A=
};=0A=
=0A=
Object.extend(Hash, {=0A=
  toQueryString: function(obj) {=0A=
    var parts =3D [];=0A=
=0A=
	  this.prototype._each.call(obj, function(pair) {=0A=
      if (!pair.key) return;=0A=
=0A=
      if (pair.value && pair.value.constructor =3D=3D Array) {=0A=
        var values =3D pair.value.compact();=0A=
        if (values.length < 2) pair.value =3D values.reduce();=0A=
        else {=0A=
        	key =3D encodeURIComponent(pair.key);=0A=
          values.each(function(value) {=0A=
            value =3D value !=3D undefined ? encodeURIComponent(value) : =
'';=0A=
            parts.push(key + '=3D' + encodeURIComponent(value));=0A=
          });=0A=
          return;=0A=
        }=0A=
      }=0A=
      if (pair.value =3D=3D undefined) pair[1] =3D '';=0A=
      parts.push(pair.map(encodeURIComponent).join('=3D'));=0A=
	  });=0A=
=0A=
    return parts.join('&');=0A=
  }=0A=
});=0A=
=0A=
Object.extend(Hash.prototype, Enumerable);=0A=
Object.extend(Hash.prototype, {=0A=
  _each: function(iterator) {=0A=
    for (var key in this) {=0A=
      var value =3D this[key];=0A=
      if (value && value =3D=3D Hash.prototype[key]) continue;=0A=
=0A=
      var pair =3D [key, value];=0A=
      pair.key =3D key;=0A=
      pair.value =3D value;=0A=
      iterator(pair);=0A=
    }=0A=
  },=0A=
=0A=
  keys: function() {=0A=
    return this.pluck('key');=0A=
  },=0A=
=0A=
  values: function() {=0A=
    return this.pluck('value');=0A=
  },=0A=
=0A=
  merge: function(hash) {=0A=
    return $H(hash).inject(this, function(mergedHash, pair) {=0A=
      mergedHash[pair.key] =3D pair.value;=0A=
      return mergedHash;=0A=
    });=0A=
  },=0A=
=0A=
  remove: function() {=0A=
    var result;=0A=
    for(var i =3D 0, length =3D arguments.length; i < length; i++) {=0A=
      var value =3D this[arguments[i]];=0A=
      if (value !=3D=3D undefined){=0A=
        if (result =3D=3D=3D undefined) result =3D value;=0A=
        else {=0A=
          if (result.constructor !=3D Array) result =3D [result];=0A=
          result.push(value)=0A=
        }=0A=
      }=0A=
      delete this[arguments[i]];=0A=
    }=0A=
    return result;=0A=
  },=0A=
=0A=
  toQueryString: function() {=0A=
    return Hash.toQueryString(this);=0A=
  },=0A=
=0A=
  inspect: function() {=0A=
    return '#<Hash:{' + this.map(function(pair) {=0A=
      return pair.map(Object.inspect).join(': ');=0A=
    }).join(', ') + '}>';=0A=
  }=0A=
});=0A=
=0A=
function $H(object) {=0A=
  if (object && object.constructor =3D=3D Hash) return object;=0A=
  return new Hash(object);=0A=
};=0A=
ObjectRange =3D Class.create();=0A=
Object.extend(ObjectRange.prototype, Enumerable);=0A=
Object.extend(ObjectRange.prototype, {=0A=
  initialize: function(start, end, exclusive) {=0A=
    this.start =3D start;=0A=
    this.end =3D end;=0A=
    this.exclusive =3D exclusive;=0A=
  },=0A=
=0A=
  _each: function(iterator) {=0A=
    var value =3D this.start;=0A=
    while (this.include(value)) {=0A=
      iterator(value);=0A=
      value =3D value.succ();=0A=
    }=0A=
  },=0A=
=0A=
  include: function(value) {=0A=
    if (value < this.start)=0A=
      return false;=0A=
    if (this.exclusive)=0A=
      return value < this.end;=0A=
    return value <=3D this.end;=0A=
  }=0A=
});=0A=
=0A=
var $R =3D function(start, end, exclusive) {=0A=
  return new ObjectRange(start, end, exclusive);=0A=
}=0A=
=0A=
var Ajax =3D {=0A=
  getTransport: function() {=0A=
    return Try.these(=0A=
      function() {return new XMLHttpRequest()},=0A=
      function() {return new ActiveXObject('Msxml2.XMLHTTP')},=0A=
      function() {return new ActiveXObject('Microsoft.XMLHTTP')}=0A=
    ) || false;=0A=
  },=0A=
=0A=
  activeRequestCount: 0=0A=
}=0A=
=0A=
Ajax.Responders =3D {=0A=
  responders: [],=0A=
=0A=
  _each: function(iterator) {=0A=
    this.responders._each(iterator);=0A=
  },=0A=
=0A=
  register: function(responder) {=0A=
    if (!this.include(responder))=0A=
      this.responders.push(responder);=0A=
  },=0A=
=0A=
  unregister: function(responder) {=0A=
    this.responders =3D this.responders.without(responder);=0A=
  },=0A=
=0A=
  dispatch: function(callback, request, transport, json) {=0A=
    this.each(function(responder) {=0A=
      if (typeof responder[callback] =3D=3D 'function') {=0A=
        try {=0A=
          responder[callback].apply(responder, [request, transport, =
json]);=0A=
        } catch (e) {}=0A=
      }=0A=
    });=0A=
  }=0A=
};=0A=
=0A=
Object.extend(Ajax.Responders, Enumerable);=0A=
=0A=
Ajax.Responders.register({=0A=
  onCreate: function() {=0A=
    Ajax.activeRequestCount++;=0A=
  },=0A=
  onComplete: function() {=0A=
    Ajax.activeRequestCount--;=0A=
  }=0A=
});=0A=
=0A=
Ajax.Base =3D function() {};=0A=
Ajax.Base.prototype =3D {=0A=
  setOptions: function(options) {=0A=
    this.options =3D {=0A=
      method:       'post',=0A=
      asynchronous: true,=0A=
      contentType:  'application/x-www-form-urlencoded',=0A=
      encoding:     'UTF-8',=0A=
      parameters:   ''=0A=
    }=0A=
    Object.extend(this.options, options || {});=0A=
=0A=
    this.options.method =3D this.options.method.toLowerCase();=0A=
    if (typeof this.options.parameters =3D=3D 'string')=0A=
      this.options.parameters =3D =
this.options.parameters.toQueryParams();=0A=
  }=0A=
}=0A=
=0A=
Ajax.Request =3D Class.create();=0A=
Ajax.Request.Events =3D=0A=
  ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];=0A=
=0A=
Ajax.Request.prototype =3D Object.extend(new Ajax.Base(), {=0A=
  _complete: false,=0A=
=0A=
  initialize: function(url, options) {=0A=
    this.transport =3D Ajax.getTransport();=0A=
    this.setOptions(options);=0A=
    this.request(url);=0A=
  },=0A=
=0A=
  request: function(url) {=0A=
    this.url =3D url;=0A=
    this.method =3D this.options.method;=0A=
    var params =3D this.options.parameters;=0A=
=0A=
    if (!['get', 'post'].include(this.method)) {=0A=
      // simulate other verbs over post=0A=
      params['_method'] =3D this.method;=0A=
      this.method =3D 'post';=0A=
    }=0A=
=0A=
    params =3D Hash.toQueryString(params);=0A=
    if (params && /Konqueror|Safari|KHTML/.test(navigator.userAgent)) =
params +=3D '&_=3D'=0A=
=0A=
    // when GET, append parameters to URL=0A=
    if (this.method =3D=3D 'get' && params)=0A=
      this.url +=3D (this.url.indexOf('?') > -1 ? '&' : '?') + params;=0A=
=0A=
    try {=0A=
      Ajax.Responders.dispatch('onCreate', this, this.transport);=0A=
=0A=
      this.transport.open(this.method.toUpperCase(), this.url,=0A=
        this.options.asynchronous);=0A=
=0A=
      if (this.options.asynchronous)=0A=
        setTimeout(function() { this.respondToReadyState(1) =
}.bind(this), 10);=0A=
=0A=
      this.transport.onreadystatechange =3D =
this.onStateChange.bind(this);=0A=
      this.setRequestHeaders();=0A=
=0A=
      var body =3D this.method =3D=3D 'post' ? (this.options.postBody || =
params) : null;=0A=
=0A=
      this.transport.send(body);=0A=
=0A=
      /* Force Firefox to handle ready state 4 for synchronous requests =
*/=0A=
      if (!this.options.asynchronous && this.transport.overrideMimeType)=0A=
        this.onStateChange();=0A=
=0A=
    }=0A=
    catch (e) {=0A=
      this.dispatchException(e);=0A=
    }=0A=
  },=0A=
=0A=
  onStateChange: function() {=0A=
    var readyState =3D this.transport.readyState;=0A=
    if (readyState > 1 && !((readyState =3D=3D 4) && this._complete))=0A=
      this.respondToReadyState(this.transport.readyState);=0A=
  },=0A=
=0A=
  setRequestHeaders: function() {=0A=
    var headers =3D {=0A=
      'X-Requested-With': 'XMLHttpRequest',=0A=
      'X-Prototype-Version': Prototype.Version,=0A=
      'Accept': 'text/javascript, text/html, application/xml, text/xml, =
*/*'=0A=
    };=0A=
=0A=
    if (this.method =3D=3D 'post') {=0A=
      headers['Content-type'] =3D this.options.contentType +=0A=
        (this.options.encoding ? '; charset=3D' + this.options.encoding =
: '');=0A=
=0A=
      /* Force "Connection: close" for older Mozilla browsers to work=0A=
       * around a bug where XMLHttpRequest sends an incorrect=0A=
       * Content-length header. See Mozilla Bugzilla #246651.=0A=
       */=0A=
      if (this.transport.overrideMimeType &&=0A=
          (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < =
2005)=0A=
            headers['Connection'] =3D 'close';=0A=
    }=0A=
=0A=
    // user-defined headers=0A=
    if (typeof this.options.requestHeaders =3D=3D 'object') {=0A=
      var extras =3D this.options.requestHeaders;=0A=
=0A=
      if (typeof extras.push =3D=3D 'function')=0A=
        for (var i =3D 0, length =3D extras.length; i < length; i +=3D 2)=0A=
          headers[extras[i]] =3D extras[i+1];=0A=
      else=0A=
        $H(extras).each(function(pair) { headers[pair.key] =3D =
pair.value });=0A=
    }=0A=
=0A=
    for (var name in headers)=0A=
      this.transport.setRequestHeader(name, headers[name]);=0A=
  },=0A=
=0A=
  success: function() {=0A=
    return !this.transport.status=0A=
        || (this.transport.status >=3D 200 && this.transport.status < =
300);=0A=
  },=0A=
=0A=
  respondToReadyState: function(readyState) {=0A=
    var state =3D Ajax.Request.Events[readyState];=0A=
    var transport =3D this.transport, json =3D this.evalJSON();=0A=
=0A=
    if (state =3D=3D 'Complete') {=0A=
      try {=0A=
        this._complete =3D true;=0A=
        (this.options['on' + this.transport.status]=0A=
         || this.options['on' + (this.success() ? 'Success' : 'Failure')]=0A=
         || Prototype.emptyFunction)(transport, json);=0A=
      } catch (e) {=0A=
        this.dispatchException(e);=0A=
      }=0A=
=0A=
      if ((this.getHeader('Content-type') || 'text/javascript').strip().=0A=
        match(/^(text|application)\/(x-)?(java|ecma)script(;.*)?$/i))=0A=
          this.evalResponse();=0A=
    }=0A=
=0A=
    try {=0A=
      (this.options['on' + state] || Prototype.emptyFunction)(transport, =
json);=0A=
      Ajax.Responders.dispatch('on' + state, this, transport, json);=0A=
    } catch (e) {=0A=
      this.dispatchException(e);=0A=
    }=0A=
=0A=
    if (state =3D=3D 'Complete') {=0A=
      // avoid memory leak in MSIE: clean up=0A=
      this.transport.onreadystatechange =3D Prototype.emptyFunction;=0A=
    }=0A=
  },=0A=
=0A=
  getHeader: function(name) {=0A=
    try {=0A=
      return this.transport.getResponseHeader(name);=0A=
    } catch (e) { return null }=0A=
  },=0A=
=0A=
  evalJSON: function() {=0A=
    try {=0A=
      var json =3D this.getHeader('X-JSON');=0A=
      return json ? eval('(' + json + ')') : null;=0A=
    } catch (e) { return null }=0A=
  },=0A=
=0A=
  evalResponse: function() {=0A=
    try {=0A=
      return eval(this.transport.responseText);=0A=
    } catch (e) {=0A=
      this.dispatchException(e);=0A=
    }=0A=
  },=0A=
=0A=
  dispatchException: function(exception) {=0A=
    (this.options.onException || Prototype.emptyFunction)(this, =
exception);=0A=
    Ajax.Responders.dispatch('onException', this, exception);=0A=
  }=0A=
});=0A=
=0A=
Ajax.Updater =3D Class.create();=0A=
=0A=
Object.extend(Object.extend(Ajax.Updater.prototype, =
Ajax.Request.prototype), {=0A=
  initialize: function(container, url, options) {=0A=
    this.container =3D {=0A=
      success: (container.success || container),=0A=
      failure: (container.failure || (container.success ? null : =
container))=0A=
    }=0A=
=0A=
    this.transport =3D Ajax.getTransport();=0A=
    this.setOptions(options);=0A=
=0A=
    var onComplete =3D this.options.onComplete || =
Prototype.emptyFunction;=0A=
    this.options.onComplete =3D (function(transport, param) {=0A=
      this.updateContent();=0A=
      onComplete(transport, param);=0A=
    }).bind(this);=0A=
=0A=
    this.request(url);=0A=
  },=0A=
=0A=
  updateContent: function() {=0A=
    var receiver =3D this.container[this.success() ? 'success' : =
'failure'];=0A=
    var response =3D this.transport.responseText;=0A=
=0A=
    if (!this.options.evalScripts) response =3D response.stripScripts();=0A=
=0A=
    if (receiver =3D $(receiver)) {=0A=
      if (this.options.insertion)=0A=
        new this.options.insertion(receiver, response);=0A=
      else=0A=
        receiver.update(response);=0A=
    }=0A=
=0A=
    if (this.success()) {=0A=
      if (this.onComplete)=0A=
        setTimeout(this.onComplete.bind(this), 10);=0A=
    }=0A=
  }=0A=
});=0A=
=0A=
Ajax.PeriodicalUpdater =3D Class.create();=0A=
Ajax.PeriodicalUpdater.prototype =3D Object.extend(new Ajax.Base(), {=0A=
  initialize: function(container, url, options) {=0A=
    this.setOptions(options);=0A=
    this.onComplete =3D this.options.onComplete;=0A=
=0A=
    this.frequency =3D (this.options.frequency || 2);=0A=
    this.decay =3D (this.options.decay || 1);=0A=
=0A=
    this.updater =3D {};=0A=
    this.container =3D container;=0A=
    this.url =3D url;=0A=
=0A=
    this.start();=0A=
  },=0A=
=0A=
  start: function() {=0A=
    this.options.onComplete =3D this.updateComplete.bind(this);=0A=
    this.onTimerEvent();=0A=
  },=0A=
=0A=
  stop: function() {=0A=
    this.updater.options.onComplete =3D undefined;=0A=
    clearTimeout(this.timer);=0A=
    (this.onComplete || Prototype.emptyFunction).apply(this, arguments);=0A=
  },=0A=
=0A=
  updateComplete: function(request) {=0A=
    if (this.options.decay) {=0A=
      this.decay =3D (request.responseText =3D=3D this.lastText ?=0A=
        this.decay * this.options.decay : 1);=0A=
=0A=
      this.lastText =3D request.responseText;=0A=
    }=0A=
    this.timer =3D setTimeout(this.onTimerEvent.bind(this),=0A=
      this.decay * this.frequency * 1000);=0A=
  },=0A=
=0A=
  onTimerEvent: function() {=0A=
    this.updater =3D new Ajax.Updater(this.container, this.url, =
this.options);=0A=
  }=0A=
});=0A=
function $(element) {=0A=
  if (arguments.length > 1) {=0A=
    for (var i =3D 0, elements =3D [], length =3D arguments.length; i < =
length; i++)=0A=
      elements.push($(arguments[i]));=0A=
    return elements;=0A=
  }=0A=
  if (typeof element =3D=3D 'string')=0A=
    element =3D document.getElementById(element);=0A=
  return Element.extend(element);=0A=
}=0A=
=0A=
if (Prototype.BrowserFeatures.XPath) {=0A=
  document._getElementsByXPath =3D function(expression, parentElement) {=0A=
    var results =3D [];=0A=
    var query =3D document.evaluate(expression, $(parentElement) || =
document,=0A=
      null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);=0A=
    for (var i =3D 0, length =3D query.snapshotLength; i < length; i++)=0A=
      results.push(query.snapshotItem(i));=0A=
    return results;=0A=
  };=0A=
}=0A=
=0A=
document.getElementsByClassName =3D function(className, parentElement) {=0A=
  if (Prototype.BrowserFeatures.XPath) {=0A=
    var q =3D ".//*[contains(concat(' ', @class, ' '), ' " + className + =
" ')]";=0A=
    return document._getElementsByXPath(q, parentElement);=0A=
  } else {=0A=
    var children =3D ($(parentElement) || =
document.body).getElementsByTagName('*');=0A=
    var elements =3D [], child;=0A=
    for (var i =3D 0, length =3D children.length; i < length; i++) {=0A=
      child =3D children[i];=0A=
      if (Element.hasClassName(child, className))=0A=
        elements.push(Element.extend(child));=0A=
    }=0A=
    return elements;=0A=
  }=0A=
};=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
if (!window.Element)=0A=
  var Element =3D new Object();=0A=
=0A=
Element.extend =3D function(element) {=0A=
  if (!element || _nativeExtensions || element.nodeType =3D=3D 3) return =
element;=0A=
=0A=
  if (!element._extended && element.tagName && element !=3D window) {=0A=
    var methods =3D Object.clone(Element.Methods), cache =3D =
Element.extend.cache;=0A=
=0A=
    if (element.tagName =3D=3D 'FORM')=0A=
      Object.extend(methods, Form.Methods);=0A=
    if (['INPUT', 'TEXTAREA', 'SELECT'].include(element.tagName))=0A=
      Object.extend(methods, Form.Element.Methods);=0A=
=0A=
    Object.extend(methods, Element.Methods.Simulated);=0A=
=0A=
    for (var property in methods) {=0A=
      var value =3D methods[property];=0A=
      if (typeof value =3D=3D 'function' && !(property in element))=0A=
        element[property] =3D cache.findOrStore(value);=0A=
    }=0A=
  }=0A=
=0A=
  element._extended =3D true;=0A=
  return element;=0A=
};=0A=
=0A=
Element.extend.cache =3D {=0A=
  findOrStore: function(value) {=0A=
    return this[value] =3D this[value] || function() {=0A=
      return value.apply(null, [this].concat($A(arguments)));=0A=
    }=0A=
  }=0A=
};=0A=
=0A=
Element.Methods =3D {=0A=
  visible: function(element) {=0A=
    return $(element).style.display !=3D 'none';=0A=
  },=0A=
=0A=
  toggle: function(element) {=0A=
    element =3D $(element);=0A=
    Element[Element.visible(element) ? 'hide' : 'show'](element);=0A=
    return element;=0A=
  },=0A=
=0A=
  hide: function(element) {=0A=
    $(element).style.display =3D 'none';=0A=
    return element;=0A=
  },=0A=
=0A=
  show: function(element) {=0A=
    $(element).style.display =3D '';=0A=
    return element;=0A=
  },=0A=
=0A=
  remove: function(element) {=0A=
    element =3D $(element);=0A=
    element.parentNode.removeChild(element);=0A=
    return element;=0A=
  },=0A=
=0A=
  update: function(element, html) {=0A=
    html =3D typeof html =3D=3D 'undefined' ? '' : html.toString();=0A=
    $(element).innerHTML =3D html.stripScripts();=0A=
    setTimeout(function() {html.evalScripts()}, 10);=0A=
    return element;=0A=
  },=0A=
=0A=
  replace: function(element, html) {=0A=
    element =3D $(element);=0A=
    html =3D typeof html =3D=3D 'undefined' ? '' : html.toString();=0A=
    if (element.outerHTML) {=0A=
      element.outerHTML =3D html.stripScripts();=0A=
    } else {=0A=
      var range =3D element.ownerDocument.createRange();=0A=
      range.selectNodeContents(element);=0A=
      element.parentNode.replaceChild(=0A=
        range.createContextualFragment(html.stripScripts()), element);=0A=
    }=0A=
    setTimeout(function() {html.evalScripts()}, 10);=0A=
    return element;=0A=
  },=0A=
=0A=
  inspect: function(element) {=0A=
    element =3D $(element);=0A=
    var result =3D '<' + element.tagName.toLowerCase();=0A=
    $H({'id': 'id', 'className': 'class'}).each(function(pair) {=0A=
      var property =3D pair.first(), attribute =3D pair.last();=0A=
      var value =3D (element[property] || '').toString();=0A=
      if (value) result +=3D ' ' + attribute + '=3D' + =
value.inspect(true);=0A=
    });=0A=
    return result + '>';=0A=
  },=0A=
=0A=
  recursivelyCollect: function(element, property) {=0A=
    element =3D $(element);=0A=
    var elements =3D [];=0A=
    while (element =3D element[property])=0A=
      if (element.nodeType =3D=3D 1)=0A=
        elements.push(Element.extend(element));=0A=
    return elements;=0A=
  },=0A=
=0A=
  ancestors: function(element) {=0A=
    return $(element).recursivelyCollect('parentNode');=0A=
  },=0A=
=0A=
  descendants: function(element) {=0A=
    return $A($(element).getElementsByTagName('*'));=0A=
  },=0A=
=0A=
  immediateDescendants: function(element) {=0A=
    if (!(element =3D $(element).firstChild)) return [];=0A=
    while (element && element.nodeType !=3D 1) element =3D =
element.nextSibling;=0A=
    if (element) return [element].concat($(element).nextSiblings());=0A=
    return [];=0A=
  },=0A=
=0A=
  previousSiblings: function(element) {=0A=
    return $(element).recursivelyCollect('previousSibling');=0A=
  },=0A=
=0A=
  nextSiblings: function(element) {=0A=
    return $(element).recursivelyCollect('nextSibling');=0A=
  },=0A=
=0A=
  siblings: function(element) {=0A=
    element =3D $(element);=0A=
    return =
element.previousSiblings().reverse().concat(element.nextSiblings());=0A=
  },=0A=
=0A=
  match: function(element, selector) {=0A=
    if (typeof selector =3D=3D 'string')=0A=
      selector =3D new Selector(selector);=0A=
    return selector.match($(element));=0A=
  },=0A=
=0A=
  up: function(element, expression, index) {=0A=
    return Selector.findElement($(element).ancestors(), expression, =
index);=0A=
  },=0A=
=0A=
  down: function(element, expression, index) {=0A=
    return Selector.findElement($(element).descendants(), expression, =
index);=0A=
  },=0A=
=0A=
  previous: function(element, expression, index) {=0A=
    return Selector.findElement($(element).previousSiblings(), =
expression, index);=0A=
  },=0A=
=0A=
  next: function(element, expression, index) {=0A=
    return Selector.findElement($(element).nextSiblings(), expression, =
index);=0A=
  },=0A=
=0A=
  getElementsBySelector: function() {=0A=
    var args =3D $A(arguments), element =3D $(args.shift());=0A=
    return Selector.findChildElements(element, args);=0A=
  },=0A=
=0A=
  getElementsByClassName: function(element, className) {=0A=
    return document.getElementsByClassName(className, element);=0A=
  },=0A=
=0A=
  readAttribute: function(element, name) {=0A=
    element =3D $(element);=0A=
    if (document.all && !window.opera) {=0A=
      var t =3D Element._attributeTranslations;=0A=
      if (t.values[name]) return t.values[name](element, name);=0A=
      if (t.names[name])  name =3D t.names[name];=0A=
      var attribute =3D element.attributes[name];=0A=
      if(attribute) return attribute.nodeValue;=0A=
    }=0A=
    return element.getAttribute(name);=0A=
  },=0A=
=0A=
  getHeight: function(element) {=0A=
    return $(element).getDimensions().height;=0A=
  },=0A=
=0A=
  getWidth: function(element) {=0A=
    return $(element).getDimensions().width;=0A=
  },=0A=
=0A=
  classNames: function(element) {=0A=
    return new Element.ClassNames(element);=0A=
  },=0A=
=0A=
  hasClassName: function(element, className) {=0A=
    if (!(element =3D $(element))) return;=0A=
    var elementClassName =3D element.className;=0A=
    if (elementClassName.length =3D=3D 0) return false;=0A=
    if (elementClassName =3D=3D className ||=0A=
        elementClassName.match(new RegExp("(^|\\s)" + className + =
"(\\s|$)")))=0A=
      return true;=0A=
    return false;=0A=
  },=0A=
=0A=
  addClassName: function(element, className) {=0A=
    if (!(element =3D $(element))) return;=0A=
    Element.classNames(element).add(className);=0A=
    return element;=0A=
  },=0A=
=0A=
  removeClassName: function(element, className) {=0A=
    if (!(element =3D $(element))) return;=0A=
    Element.classNames(element).remove(className);=0A=
    return element;=0A=
  },=0A=
=0A=
  toggleClassName: function(element, className) {=0A=
    if (!(element =3D $(element))) return;=0A=
    Element.classNames(element)[element.hasClassName(className) ? =
'remove' : 'add'](className);=0A=
    return element;=0A=
  },=0A=
=0A=
  observe: function() {=0A=
    Event.observe.apply(Event, arguments);=0A=
    return $A(arguments).first();=0A=
  },=0A=
=0A=
  stopObserving: function() {=0A=
    Event.stopObserving.apply(Event, arguments);=0A=
    return $A(arguments).first();=0A=
  },=0A=
=0A=
  // removes whitespace-only text node children=0A=
  cleanWhitespace: function(element) {=0A=
    element =3D $(element);=0A=
    var node =3D element.firstChild;=0A=
    while (node) {=0A=
      var nextNode =3D node.nextSibling;=0A=
      if (node.nodeType =3D=3D 3 && !/\S/.test(node.nodeValue))=0A=
        element.removeChild(node);=0A=
      node =3D nextNode;=0A=
    }=0A=
    return element;=0A=
  },=0A=
=0A=
  empty: function(element) {=0A=
    return $(element).innerHTML.match(/^\s*$/);=0A=
  },=0A=
=0A=
  descendantOf: function(element, ancestor) {=0A=
    element =3D $(element), ancestor =3D $(ancestor);=0A=
    while (element =3D element.parentNode)=0A=
      if (element =3D=3D ancestor) return true;=0A=
    return false;=0A=
  },=0A=
=0A=
  scrollTo: function(element) {=0A=
    element =3D $(element);=0A=
    var pos =3D Position.cumulativeOffset(element);=0A=
    window.scrollTo(pos[0], pos[1]);=0A=
    return element;=0A=
  },=0A=
=0A=
  getStyle: function(element, style) {=0A=
    element =3D $(element);=0A=
    if (['float','cssFloat'].include(style))=0A=
      style =3D (typeof element.style.styleFloat !=3D 'undefined' ? =
'styleFloat' : 'cssFloat');=0A=
    style =3D style.camelize();=0A=
    var value =3D element.style[style];=0A=
    if (!value) {=0A=
      if (document.defaultView && document.defaultView.getComputedStyle) =
{=0A=
        var css =3D document.defaultView.getComputedStyle(element, null);=0A=
        value =3D css ? css[style] : null;=0A=
      } else if (element.currentStyle) {=0A=
        value =3D element.currentStyle[style];=0A=
      }=0A=
    }=0A=
=0A=
    if((value =3D=3D 'auto') && ['width','height'].include(style) && =
(element.getStyle('display') !=3D 'none'))=0A=
      value =3D element['offset'+style.capitalize()] + 'px';=0A=
=0A=
    if (window.opera && ['left', 'top', 'right', =
'bottom'].include(style))=0A=
      if (Element.getStyle(element, 'position') =3D=3D 'static') value =
=3D 'auto';=0A=
    if(style =3D=3D 'opacity') {=0A=
      if(value) return parseFloat(value);=0A=
      if(value =3D (element.getStyle('filter') || =
'').match(/alpha\(opacity=3D(.*)\)/))=0A=
        if(value[1]) return parseFloat(value[1]) / 100;=0A=
      return 1.0;=0A=
    }=0A=
    return value =3D=3D 'auto' ? null : value;=0A=
  },=0A=
=0A=
  setStyle: function(element, style) {=0A=
    element =3D $(element);=0A=
    for (var name in style) {=0A=
      var value =3D style[name];=0A=
      if(name =3D=3D 'opacity') {=0A=
        if (value =3D=3D 1) {=0A=
          value =3D (/Gecko/.test(navigator.userAgent) &&=0A=
            !/Konqueror|Safari|KHTML/.test(navigator.userAgent)) ? =
0.999999 : 1.0;=0A=
          if(/MSIE/.test(navigator.userAgent) && !window.opera)=0A=
            element.style.filter =3D =
element.getStyle('filter').replace(/alpha\([^\)]*\)/gi,'');=0A=
        } else if(value =3D=3D '') {=0A=
          if(/MSIE/.test(navigator.userAgent) && !window.opera)=0A=
            element.style.filter =3D =
element.getStyle('filter').replace(/alpha\([^\)]*\)/gi,'');=0A=
        } else {=0A=
          if(value < 0.00001) value =3D 0;=0A=
          if(/MSIE/.test(navigator.userAgent) && !window.opera)=0A=
            element.style.filter =3D =
element.getStyle('filter').replace(/alpha\([^\)]*\)/gi,'') +=0A=
              'alpha(opacity=3D'+value*100+')';=0A=
        }=0A=
      } else if(['float','cssFloat'].include(name)) name =3D (typeof =
element.style.styleFloat !=3D 'undefined') ? 'styleFloat' : 'cssFloat';=0A=
      element.style[name.camelize()] =3D value;=0A=
    }=0A=
    return element;=0A=
  },=0A=
=0A=
  getDimensions: function(element) {=0A=
    element =3D $(element);=0A=
    var display =3D $(element).getStyle('display');=0A=
    if (display !=3D 'none' && display !=3D null) // Safari bug=0A=
      return {width: element.offsetWidth, height: element.offsetHeight};=0A=
=0A=
    // All *Width and *Height properties give 0 on elements with display =
none,=0A=
    // so enable the element temporarily=0A=
    var els =3D element.style;=0A=
    var originalVisibility =3D els.visibility;=0A=
    var originalPosition =3D els.position;=0A=
    var originalDisplay =3D els.display;=0A=
    els.visibility =3D 'hidden';=0A=
    els.position =3D 'absolute';=0A=
    els.display =3D 'block';=0A=
    var originalWidth =3D element.clientWidth;=0A=
    var originalHeight =3D element.clientHeight;=0A=
    els.display =3D originalDisplay;=0A=
    els.position =3D originalPosition;=0A=
    els.visibility =3D originalVisibility;=0A=
    return {width: originalWidth, height: originalHeight};=0A=
  },=0A=
=0A=
  makePositioned: function(element) {=0A=
    element =3D $(element);=0A=
    var pos =3D Element.getStyle(element, 'position');=0A=
    if (pos =3D=3D 'static' || !pos) {=0A=
      element._madePositioned =3D true;=0A=
      element.style.position =3D 'relative';=0A=
      // Opera returns the offset relative to the positioning context, =
when an=0A=
      // element is position relative but top and left have not been =
defined=0A=
      if (window.opera) {=0A=
        element.style.top =3D 0;=0A=
        element.style.left =3D 0;=0A=
      }=0A=
    }=0A=
    return element;=0A=
  },=0A=
=0A=
  undoPositioned: function(element) {=0A=
    element =3D $(element);=0A=
    if (element._madePositioned) {=0A=
      element._madePositioned =3D undefined;=0A=
      element.style.position =3D=0A=
        element.style.top =3D=0A=
        element.style.left =3D=0A=
        element.style.bottom =3D=0A=
        element.style.right =3D '';=0A=
    }=0A=
    return element;=0A=
  },=0A=
=0A=
  makeClipping: function(element) {=0A=
    element =3D $(element);=0A=
    if (element._overflow) return element;=0A=
    element._overflow =3D element.style.overflow || 'auto';=0A=
    if ((Element.getStyle(element, 'overflow') || 'visible') !=3D =
'hidden')=0A=
      element.style.overflow =3D 'hidden';=0A=
    return element;=0A=
  },=0A=
=0A=
  undoClipping: function(element) {=0A=
    element =3D $(element);=0A=
    if (!element._overflow) return element;=0A=
    element.style.overflow =3D element._overflow =3D=3D 'auto' ? '' : =
element._overflow;=0A=
    element._overflow =3D null;=0A=
    return element;=0A=
  }=0A=
};=0A=
=0A=
Object.extend(Element.Methods, {childOf: Element.Methods.descendantOf});=0A=
=0A=
Element._attributeTranslations =3D {};=0A=
=0A=
Element._attributeTranslations.names =3D {=0A=
  colspan:   "colSpan",=0A=
  rowspan:   "rowSpan",=0A=
  valign:    "vAlign",=0A=
  datetime:  "dateTime",=0A=
  accesskey: "accessKey",=0A=
  tabindex:  "tabIndex",=0A=
  enctype:   "encType",=0A=
  maxlength: "maxLength",=0A=
  readonly:  "readOnly",=0A=
  longdesc:  "longDesc"=0A=
};=0A=
=0A=
Element._attributeTranslations.values =3D {=0A=
  _getAttr: function(element, attribute) {=0A=
    return element.getAttribute(attribute, 2);=0A=
  },=0A=
=0A=
  _flag: function(element, attribute) {=0A=
    return $(element).hasAttribute(attribute) ? attribute : null;=0A=
  },=0A=
=0A=
  style: function(element) {=0A=
    return element.style.cssText.toLowerCase();=0A=
  },=0A=
=0A=
  title: function(element) {=0A=
    var node =3D element.getAttributeNode('title');=0A=
    return node.specified ? node.nodeValue : null;=0A=
  }=0A=
};=0A=
=0A=
Object.extend(Element._attributeTranslations.values, {=0A=
  href: Element._attributeTranslations.values._getAttr,=0A=
  src:  Element._attributeTranslations.values._getAttr,=0A=
  disabled: Element._attributeTranslations.values._flag,=0A=
  checked:  Element._attributeTranslations.values._flag,=0A=
  readonly: Element._attributeTranslations.values._flag,=0A=
  multiple: Element._attributeTranslations.values._flag=0A=
});=0A=
=0A=
Element.Methods.Simulated =3D {=0A=
  hasAttribute: function(element, attribute) {=0A=
    var t =3D Element._attributeTranslations;=0A=
    attribute =3D t.names[attribute] || attribute;=0A=
    return $(element).getAttributeNode(attribute).specified;=0A=
  }=0A=
};=0A=
=0A=
// IE is missing .innerHTML support for TABLE-related elements=0A=
if (document.all && !window.opera){=0A=
  Element.Methods.update =3D function(element, html) {=0A=
    element =3D $(element);=0A=
    html =3D typeof html =3D=3D 'undefined' ? '' : html.toString();=0A=
    var tagName =3D element.tagName.toUpperCase();=0A=
    if (['THEAD','TBODY','TR','TD'].include(tagName)) {=0A=
      var div =3D document.createElement('div');=0A=
      switch (tagName) {=0A=
        case 'THEAD':=0A=
        case 'TBODY':=0A=
          div.innerHTML =3D '<table><tbody>' +  html.stripScripts() + =
'</tbody></table>';=0A=
          depth =3D 2;=0A=
          break;=0A=
        case 'TR':=0A=
          div.innerHTML =3D '<table><tbody><tr>' +  html.stripScripts() =
+ '</tr></tbody></table>';=0A=
          depth =3D 3;=0A=
          break;=0A=
        case 'TD':=0A=
          div.innerHTML =3D '<table><tbody><tr><td>' +  =
html.stripScripts() + '</td></tr></tbody></table>';=0A=
          depth =3D 4;=0A=
      }=0A=
      $A(element.childNodes).each(function(node){=0A=
        element.removeChild(node)=0A=
      });=0A=
      depth.times(function(){ div =3D div.firstChild });=0A=
=0A=
      $A(div.childNodes).each(=0A=
        function(node){ element.appendChild(node) });=0A=
    } else {=0A=
      element.innerHTML =3D html.stripScripts();=0A=
    }=0A=
    setTimeout(function() {html.evalScripts()}, 10);=0A=
    return element;=0A=
  }=0A=
};=0A=
=0A=
Object.extend(Element, Element.Methods);=0A=
=0A=
var _nativeExtensions =3D false;=0A=
=0A=
if(/Konqueror|Safari|KHTML/.test(navigator.userAgent))=0A=
  ['', 'Form', 'Input', 'TextArea', 'Select'].each(function(tag) {=0A=
    var className =3D 'HTML' + tag + 'Element';=0A=
    if(window[className]) return;=0A=
    var klass =3D window[className] =3D {};=0A=
    klass.prototype =3D document.createElement(tag ? tag.toLowerCase() : =
'div').__proto__;=0A=
  });=0A=
=0A=
Element.addMethods =3D function(methods) {=0A=
  Object.extend(Element.Methods, methods || {});=0A=
=0A=
  function copy(methods, destination, onlyIfAbsent) {=0A=
    onlyIfAbsent =3D onlyIfAbsent || false;=0A=
    var cache =3D Element.extend.cache;=0A=
    for (var property in methods) {=0A=
      var value =3D methods[property];=0A=
      if (!onlyIfAbsent || !(property in destination))=0A=
        destination[property] =3D cache.findOrStore(value);=0A=
    }=0A=
  }=0A=
=0A=
  if (typeof HTMLElement !=3D 'undefined') {=0A=
    copy(Element.Methods, HTMLElement.prototype);=0A=
    copy(Element.Methods.Simulated, HTMLElement.prototype, true);=0A=
    copy(Form.Methods, HTMLFormElement.prototype);=0A=
    [HTMLInputElement, HTMLTextAreaElement, =
HTMLSelectElement].each(function(klass) {=0A=
      copy(Form.Element.Methods, klass.prototype);=0A=
    });=0A=
    _nativeExtensions =3D true;=0A=
  }=0A=
}=0A=
=0A=
var Toggle =3D new Object();=0A=
Toggle.display =3D Element.toggle;=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Abstract.Insertion =3D function(adjacency) {=0A=
  this.adjacency =3D adjacency;=0A=
}=0A=
=0A=
Abstract.Insertion.prototype =3D {=0A=
  initialize: function(element, content) {=0A=
    this.element =3D $(element);=0A=
    this.content =3D content.stripScripts();=0A=
=0A=
    if (this.adjacency && this.element.insertAdjacentHTML) {=0A=
      try {=0A=
        this.element.insertAdjacentHTML(this.adjacency, this.content);=0A=
      } catch (e) {=0A=
        var tagName =3D this.element.tagName.toUpperCase();=0A=
        if (['TBODY', 'TR'].include(tagName)) {=0A=
          this.insertContent(this.contentFromAnonymousTable());=0A=
        } else {=0A=
          throw e;=0A=
        }=0A=
      }=0A=
    } else {=0A=
      this.range =3D this.element.ownerDocument.createRange();=0A=
      if (this.initializeRange) this.initializeRange();=0A=
      =
this.insertContent([this.range.createContextualFragment(this.content)]);=0A=
    }=0A=
=0A=
    setTimeout(function() {content.evalScripts()}, 10);=0A=
  },=0A=
=0A=
  contentFromAnonymousTable: function() {=0A=
    var div =3D document.createElement('div');=0A=
    div.innerHTML =3D '<table><tbody>' + this.content + =
'</tbody></table>';=0A=
    return $A(div.childNodes[0].childNodes[0].childNodes);=0A=
  }=0A=
}=0A=
=0A=
var Insertion =3D new Object();=0A=
=0A=
Insertion.Before =3D Class.create();=0A=
Insertion.Before.prototype =3D Object.extend(new =
Abstract.Insertion('beforeBegin'), {=0A=
  initializeRange: function() {=0A=
    this.range.setStartBefore(this.element);=0A=
  },=0A=
=0A=
  insertContent: function(fragments) {=0A=
    fragments.each((function(fragment) {=0A=
      this.element.parentNode.insertBefore(fragment, this.element);=0A=
    }).bind(this));=0A=
  }=0A=
});=0A=
=0A=
Insertion.Top =3D Class.create();=0A=
Insertion.Top.prototype =3D Object.extend(new =
Abstract.Insertion('afterBegin'), {=0A=
  initializeRange: function() {=0A=
    this.range.selectNodeContents(this.element);=0A=
    this.range.collapse(true);=0A=
  },=0A=
=0A=
  insertContent: function(fragments) {=0A=
    fragments.reverse(false).each((function(fragment) {=0A=
      this.element.insertBefore(fragment, this.element.firstChild);=0A=
    }).bind(this));=0A=
  }=0A=
});=0A=
=0A=
Insertion.Bottom =3D Class.create();=0A=
Insertion.Bottom.prototype =3D Object.extend(new =
Abstract.Insertion('beforeEnd'), {=0A=
  initializeRange: function() {=0A=
    this.range.selectNodeContents(this.element);=0A=
    this.range.collapse(this.element);=0A=
  },=0A=
=0A=
  insertContent: function(fragments) {=0A=
    fragments.each((function(fragment) {=0A=
      this.element.appendChild(fragment);=0A=
    }).bind(this));=0A=
  }=0A=
});=0A=
=0A=
Insertion.After =3D Class.create();=0A=
Insertion.After.prototype =3D Object.extend(new =
Abstract.Insertion('afterEnd'), {=0A=
  initializeRange: function() {=0A=
    this.range.setStartAfter(this.element);=0A=
  },=0A=
=0A=
  insertContent: function(fragments) {=0A=
    fragments.each((function(fragment) {=0A=
      this.element.parentNode.insertBefore(fragment,=0A=
        this.element.nextSibling);=0A=
    }).bind(this));=0A=
  }=0A=
});=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Element.ClassNames =3D Class.create();=0A=
Element.ClassNames.prototype =3D {=0A=
  initialize: function(element) {=0A=
    this.element =3D $(element);=0A=
  },=0A=
=0A=
  _each: function(iterator) {=0A=
    this.element.className.split(/\s+/).select(function(name) {=0A=
      return name.length > 0;=0A=
    })._each(iterator);=0A=
  },=0A=
=0A=
  set: function(className) {=0A=
    this.element.className =3D className;=0A=
  },=0A=
=0A=
  add: function(classNameToAdd) {=0A=
    if (this.include(classNameToAdd)) return;=0A=
    this.set($A(this).concat(classNameToAdd).join(' '));=0A=
  },=0A=
=0A=
  remove: function(classNameToRemove) {=0A=
    if (!this.include(classNameToRemove)) return;=0A=
    this.set($A(this).without(classNameToRemove).join(' '));=0A=
  },=0A=
=0A=
  toString: function() {=0A=
    return $A(this).join(' ');=0A=
  }=0A=
};=0A=
=0A=
Object.extend(Element.ClassNames.prototype, Enumerable);=0A=
var Selector =3D Class.create();=0A=
Selector.prototype =3D {=0A=
  initialize: function(expression) {=0A=
    this.params =3D {classNames: []};=0A=
    this.expression =3D expression.toString().strip();=0A=
    this.parseExpression();=0A=
    this.compileMatcher();=0A=
  },=0A=
=0A=
  parseExpression: function() {=0A=
    function abort(message) { throw 'Parse error in selector: ' + =
message; }=0A=
=0A=
    if (this.expression =3D=3D '')  abort('empty expression');=0A=
=0A=
    var params =3D this.params, expr =3D this.expression, match, =
modifier, clause, rest;=0A=
    while (match =3D =
expr.match(/^(.*)\[([a-z0-9_:-]+?)(?:([~\|!]?=3D)(?:"([^"]*)"|([^\]\s]*))=
)?\]$/i)) {=0A=
      params.attributes =3D params.attributes || [];=0A=
      params.attributes.push({name: match[2], operator: match[3], value: =
match[4] || match[5] || ''});=0A=
      expr =3D match[1];=0A=
    }=0A=
=0A=
    if (expr =3D=3D '*') return this.params.wildcard =3D true;=0A=
=0A=
    while (match =3D expr.match(/^([^a-z0-9_-])?([a-z0-9_-]+)(.*)/i)) {=0A=
      modifier =3D match[1], clause =3D match[2], rest =3D match[3];=0A=
      switch (modifier) {=0A=
        case '#':       params.id =3D clause; break;=0A=
        case '.':       params.classNames.push(clause); break;=0A=
        case '':=0A=
        case undefined: params.tagName =3D clause.toUpperCase(); break;=0A=
        default:        abort(expr.inspect());=0A=
      }=0A=
      expr =3D rest;=0A=
    }=0A=
=0A=
    if (expr.length > 0) abort(expr.inspect());=0A=
  },=0A=
=0A=
  buildMatchExpression: function() {=0A=
    var params =3D this.params, conditions =3D [], clause;=0A=
=0A=
    if (params.wildcard)=0A=
      conditions.push('true');=0A=
    if (clause =3D params.id)=0A=
      conditions.push('element.readAttribute("id") =3D=3D ' + =
clause.inspect());=0A=
    if (clause =3D params.tagName)=0A=
      conditions.push('element.tagName.toUpperCase() =3D=3D ' + =
clause.inspect());=0A=
    if ((clause =3D params.classNames).length > 0)=0A=
      for (var i =3D 0, length =3D clause.length; i < length; i++)=0A=
        conditions.push('element.hasClassName(' + clause[i].inspect() + =
')');=0A=
    if (clause =3D params.attributes) {=0A=
      clause.each(function(attribute) {=0A=
        var value =3D 'element.readAttribute(' + =
attribute.name.inspect() + ')';=0A=
        var splitValueBy =3D function(delimiter) {=0A=
          return value + ' && ' + value + '.split(' + =
delimiter.inspect() + ')';=0A=
        }=0A=
=0A=
        switch (attribute.operator) {=0A=
          case '=3D':       conditions.push(value + ' =3D=3D ' + =
attribute.value.inspect()); break;=0A=
          case '~=3D':      conditions.push(splitValueBy(' ') + =
'.include(' + attribute.value.inspect() + ')'); break;=0A=
          case '|=3D':      conditions.push(=0A=
                            splitValueBy('-') + '.first().toUpperCase() =
=3D=3D ' + attribute.value.toUpperCase().inspect()=0A=
                          ); break;=0A=
          case '!=3D':      conditions.push(value + ' !=3D ' + =
attribute.value.inspect()); break;=0A=
          case '':=0A=
          case undefined: conditions.push('element.hasAttribute(' + =
attribute.name.inspect() + ')'); break;=0A=
          default:        throw 'Unknown operator ' + attribute.operator =
+ ' in selector';=0A=
        }=0A=
      });=0A=
    }=0A=
=0A=
    return conditions.join(' && ');=0A=
  },=0A=
=0A=
  compileMatcher: function() {=0A=
    this.match =3D new Function('element', 'if (!element.tagName) return =
false; \=0A=
      element =3D $(element); \=0A=
      return ' + this.buildMatchExpression());=0A=
  },=0A=
=0A=
  findElements: function(scope) {=0A=
    var element;=0A=
=0A=
    if (element =3D $(this.params.id))=0A=
      if (this.match(element))=0A=
        if (!scope || Element.childOf(element, scope))=0A=
          return [element];=0A=
=0A=
    scope =3D (scope || =
document).getElementsByTagName(this.params.tagName || '*');=0A=
=0A=
    var results =3D [];=0A=
    for (var i =3D 0, length =3D scope.length; i < length; i++)=0A=
      if (this.match(element =3D scope[i]))=0A=
        results.push(Element.extend(element));=0A=
=0A=
    return results;=0A=
  },=0A=
=0A=
  toString: function() {=0A=
    return this.expression;=0A=
  }=0A=
}=0A=
=0A=
Object.extend(Selector, {=0A=
  matchElements: function(elements, expression) {=0A=
    var selector =3D new Selector(expression);=0A=
    return =
elements.select(selector.match.bind(selector)).map(Element.extend);=0A=
  },=0A=
=0A=
  findElement: function(elements, expression, index) {=0A=
    if (typeof expression =3D=3D 'number') index =3D expression, =
expression =3D false;=0A=
    return Selector.matchElements(elements, expression || '*')[index || =
0];=0A=
  },=0A=
=0A=
  findChildElements: function(element, expressions) {=0A=
    return expressions.map(function(expression) {=0A=
      return =
expression.match(/[^\s"]+(?:"[^"]*"[^\s"]+)*/g).inject([null], =
function(results, expr) {=0A=
        var selector =3D new Selector(expr);=0A=
        return results.inject([], function(elements, result) {=0A=
          return elements.concat(selector.findElements(result || =
element));=0A=
        });=0A=
      });=0A=
    }).flatten();=0A=
  }=0A=
});=0A=
=0A=
function $$() {=0A=
  return Selector.findChildElements(document, $A(arguments));=0A=
}=0A=
var Form =3D {=0A=
  reset: function(form) {=0A=
    $(form).reset();=0A=
    return form;=0A=
  },=0A=
=0A=
  serializeElements: function(elements, getHash) {=0A=
    var data =3D elements.inject({}, function(result, element) {=0A=
      if (!element.disabled && element.name) {=0A=
        var key =3D element.name, value =3D $(element).getValue();=0A=
        if (value !=3D undefined) {=0A=
          if (result[key]) {=0A=
            if (result[key].constructor !=3D Array) result[key] =3D =
[result[key]];=0A=
            result[key].push(value);=0A=
          }=0A=
          else result[key] =3D value;=0A=
        }=0A=
      }=0A=
      return result;=0A=
    });=0A=
=0A=
    return getHash ? data : Hash.toQueryString(data);=0A=
  }=0A=
};=0A=
=0A=
Form.Methods =3D {=0A=
  serialize: function(form, getHash) {=0A=
    return Form.serializeElements(Form.getElements(form), getHash);=0A=
  },=0A=
=0A=
  getElements: function(form) {=0A=
    return $A($(form).getElementsByTagName('*')).inject([],=0A=
      function(elements, child) {=0A=
        if (Form.Element.Serializers[child.tagName.toLowerCase()])=0A=
          elements.push(Element.extend(child));=0A=
        return elements;=0A=
      }=0A=
    );=0A=
  },=0A=
=0A=
  getInputs: function(form, typeName, name) {=0A=
    form =3D $(form);=0A=
    var inputs =3D form.getElementsByTagName('input');=0A=
=0A=
    if (!typeName && !name) return $A(inputs).map(Element.extend);=0A=
=0A=
    for (var i =3D 0, matchingInputs =3D [], length =3D inputs.length; i =
< length; i++) {=0A=
      var input =3D inputs[i];=0A=
      if ((typeName && input.type !=3D typeName) || (name && input.name =
!=3D name))=0A=
        continue;=0A=
      matchingInputs.push(Element.extend(input));=0A=
    }=0A=
=0A=
    return matchingInputs;=0A=
  },=0A=
=0A=
  disable: function(form) {=0A=
    form =3D $(form);=0A=
    form.getElements().each(function(element) {=0A=
      element.blur();=0A=
      element.disabled =3D 'true';=0A=
    });=0A=
    return form;=0A=
  },=0A=
=0A=
  enable: function(form) {=0A=
    form =3D $(form);=0A=
    form.getElements().each(function(element) {=0A=
      element.disabled =3D '';=0A=
    });=0A=
    return form;=0A=
  },=0A=
=0A=
  findFirstElement: function(form) {=0A=
    return $(form).getElements().find(function(element) {=0A=
      return element.type !=3D 'hidden' && !element.disabled &&=0A=
        ['input', 'select', =
'textarea'].include(element.tagName.toLowerCase());=0A=
    });=0A=
  },=0A=
=0A=
  focusFirstElement: function(form) {=0A=
    form =3D $(form);=0A=
    form.findFirstElement().activate();=0A=
    return form;=0A=
  }=0A=
}=0A=
=0A=
Object.extend(Form, Form.Methods);=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Form.Element =3D {=0A=
  focus: function(element) {=0A=
    $(element).focus();=0A=
    return element;=0A=
  },=0A=
=0A=
  select: function(element) {=0A=
    $(element).select();=0A=
    return element;=0A=
  }=0A=
}=0A=
=0A=
Form.Element.Methods =3D {=0A=
  serialize: function(element) {=0A=
    element =3D $(element);=0A=
    if (!element.disabled && element.name) {=0A=
      var value =3D element.getValue();=0A=
      if (value !=3D undefined) {=0A=
        var pair =3D {};=0A=
        pair[element.name] =3D value;=0A=
        return Hash.toQueryString(pair);=0A=
      }=0A=
    }=0A=
    return '';=0A=
  },=0A=
=0A=
  getValue: function(element) {=0A=
    element =3D $(element);=0A=
    var method =3D element.tagName.toLowerCase();=0A=
    return Form.Element.Serializers[method](element);=0A=
  },=0A=
=0A=
  clear: function(element) {=0A=
    $(element).value =3D '';=0A=
    return element;=0A=
  },=0A=
=0A=
  present: function(element) {=0A=
    return $(element).value !=3D '';=0A=
  },=0A=
=0A=
  activate: function(element) {=0A=
    element =3D $(element);=0A=
    element.focus();=0A=
    if (element.select && ( element.tagName.toLowerCase() !=3D 'input' ||=0A=
      !['button', 'reset', 'submit'].include(element.type) ) )=0A=
      element.select();=0A=
    return element;=0A=
  },=0A=
=0A=
  disable: function(element) {=0A=
    element =3D $(element);=0A=
    element.disabled =3D true;=0A=
    return element;=0A=
  },=0A=
=0A=
  enable: function(element) {=0A=
    element =3D $(element);=0A=
    element.blur();=0A=
    element.disabled =3D false;=0A=
    return element;=0A=
  }=0A=
}=0A=
=0A=
Object.extend(Form.Element, Form.Element.Methods);=0A=
var Field =3D Form.Element;=0A=
var $F =3D Form.Element.getValue;=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Form.Element.Serializers =3D {=0A=
  input: function(element) {=0A=
    switch (element.type.toLowerCase()) {=0A=
      case 'checkbox':=0A=
      case 'radio':=0A=
        return Form.Element.Serializers.inputSelector(element);=0A=
      default:=0A=
        return Form.Element.Serializers.textarea(element);=0A=
    }=0A=
  },=0A=
=0A=
  inputSelector: function(element) {=0A=
    return element.checked ? element.value : null;=0A=
  },=0A=
=0A=
  textarea: function(element) {=0A=
    return element.value;=0A=
  },=0A=
=0A=
  select: function(element) {=0A=
    return this[element.type =3D=3D 'select-one' ?=0A=
      'selectOne' : 'selectMany'](element);=0A=
  },=0A=
=0A=
  selectOne: function(element) {=0A=
    var index =3D element.selectedIndex;=0A=
    return index >=3D 0 ? this.optionValue(element.options[index]) : =
null;=0A=
  },=0A=
=0A=
  selectMany: function(element) {=0A=
    var values, length =3D element.length;=0A=
    if (!length) return null;=0A=
=0A=
    for (var i =3D 0, values =3D []; i < length; i++) {=0A=
      var opt =3D element.options[i];=0A=
      if (opt.selected) values.push(this.optionValue(opt));=0A=
    }=0A=
    return values;=0A=
  },=0A=
=0A=
  optionValue: function(opt) {=0A=
    // extend element because hasAttribute may not be native=0A=
    return Element.extend(opt).hasAttribute('value') ? opt.value : =
opt.text;=0A=
  }=0A=
}=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Abstract.TimedObserver =3D function() {}=0A=
Abstract.TimedObserver.prototype =3D {=0A=
  initialize: function(element, frequency, callback) {=0A=
    this.frequency =3D frequency;=0A=
    this.element   =3D $(element);=0A=
    this.callback  =3D callback;=0A=
=0A=
    this.lastValue =3D this.getValue();=0A=
    this.registerCallback();=0A=
  },=0A=
=0A=
  registerCallback: function() {=0A=
    setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);=0A=
  },=0A=
=0A=
  onTimerEvent: function() {=0A=
    var value =3D this.getValue();=0A=
    var changed =3D ('string' =3D=3D typeof this.lastValue && 'string' =
=3D=3D typeof value=0A=
      ? this.lastValue !=3D value : String(this.lastValue) !=3D =
String(value));=0A=
    if (changed) {=0A=
      this.callback(this.element, value);=0A=
      this.lastValue =3D value;=0A=
    }=0A=
  }=0A=
}=0A=
=0A=
Form.Element.Observer =3D Class.create();=0A=
Form.Element.Observer.prototype =3D Object.extend(new =
Abstract.TimedObserver(), {=0A=
  getValue: function() {=0A=
    return Form.Element.getValue(this.element);=0A=
  }=0A=
});=0A=
=0A=
Form.Observer =3D Class.create();=0A=
Form.Observer.prototype =3D Object.extend(new Abstract.TimedObserver(), {=0A=
  getValue: function() {=0A=
    return Form.serialize(this.element);=0A=
  }=0A=
});=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Abstract.EventObserver =3D function() {}=0A=
Abstract.EventObserver.prototype =3D {=0A=
  initialize: function(element, callback) {=0A=
    this.element  =3D $(element);=0A=
    this.callback =3D callback;=0A=
=0A=
    this.lastValue =3D this.getValue();=0A=
    if (this.element.tagName.toLowerCase() =3D=3D 'form')=0A=
      this.registerFormCallbacks();=0A=
    else=0A=
      this.registerCallback(this.element);=0A=
  },=0A=
=0A=
  onElementEvent: function() {=0A=
    var value =3D this.getValue();=0A=
    if (this.lastValue !=3D value) {=0A=
      this.callback(this.element, value);=0A=
      this.lastValue =3D value;=0A=
    }=0A=
  },=0A=
=0A=
  registerFormCallbacks: function() {=0A=
    =
Form.getElements(this.element).each(this.registerCallback.bind(this));=0A=
  },=0A=
=0A=
  registerCallback: function(element) {=0A=
    if (element.type) {=0A=
      switch (element.type.toLowerCase()) {=0A=
        case 'checkbox':=0A=
        case 'radio':=0A=
          Event.observe(element, 'click', =
this.onElementEvent.bind(this));=0A=
          break;=0A=
        default:=0A=
          Event.observe(element, 'change', =
this.onElementEvent.bind(this));=0A=
          break;=0A=
      }=0A=
    }=0A=
  }=0A=
}=0A=
=0A=
Form.Element.EventObserver =3D Class.create();=0A=
Form.Element.EventObserver.prototype =3D Object.extend(new =
Abstract.EventObserver(), {=0A=
  getValue: function() {=0A=
    return Form.Element.getValue(this.element);=0A=
  }=0A=
});=0A=
=0A=
Form.EventObserver =3D Class.create();=0A=
Form.EventObserver.prototype =3D Object.extend(new =
Abstract.EventObserver(), {=0A=
  getValue: function() {=0A=
    return Form.serialize(this.element);=0A=
  }=0A=
});=0A=
if (!window.Event) {=0A=
  var Event =3D new Object();=0A=
}=0A=
=0A=
Object.extend(Event, {=0A=
  KEY_BACKSPACE: 8,=0A=
  KEY_TAB:       9,=0A=
  KEY_RETURN:   13,=0A=
  KEY_ESC:      27,=0A=
  KEY_LEFT:     37,=0A=
  KEY_UP:       38,=0A=
  KEY_RIGHT:    39,=0A=
  KEY_DOWN:     40,=0A=
  KEY_DELETE:   46,=0A=
  KEY_HOME:     36,=0A=
  KEY_END:      35,=0A=
  KEY_PAGEUP:   33,=0A=
  KEY_PAGEDOWN: 34,=0A=
=0A=
  element: function(event) {=0A=
    return event.target || event.srcElement;=0A=
  },=0A=
=0A=
  isLeftClick: function(event) {=0A=
    return (((event.which) && (event.which =3D=3D 1)) ||=0A=
            ((event.button) && (event.button =3D=3D 1)));=0A=
  },=0A=
=0A=
  pointerX: function(event) {=0A=
    return event.pageX || (event.clientX +=0A=
      (document.documentElement.scrollLeft || document.body.scrollLeft));=0A=
  },=0A=
=0A=
  pointerY: function(event) {=0A=
    return event.pageY || (event.clientY +=0A=
      (document.documentElement.scrollTop || document.body.scrollTop));=0A=
  },=0A=
=0A=
  stop: function(event) {=0A=
    if (event.preventDefault) {=0A=
      event.preventDefault();=0A=
      event.stopPropagation();=0A=
    } else {=0A=
      event.returnValue =3D false;=0A=
      event.cancelBubble =3D true;=0A=
    }=0A=
  },=0A=
=0A=
  // find the first node with the given tagName, starting from the=0A=
  // node the event was triggered on; traverses the DOM upwards=0A=
  findElement: function(event, tagName) {=0A=
    var element =3D Event.element(event);=0A=
    while (element.parentNode && (!element.tagName ||=0A=
        (element.tagName.toUpperCase() !=3D tagName.toUpperCase())))=0A=
      element =3D element.parentNode;=0A=
    return element;=0A=
  },=0A=
=0A=
  observers: false,=0A=
=0A=
  _observeAndCache: function(element, name, observer, useCapture) {=0A=
    if (!this.observers) this.observers =3D [];=0A=
    if (element.addEventListener) {=0A=
      this.observers.push([element, name, observer, useCapture]);=0A=
      element.addEventListener(name, observer, useCapture);=0A=
    } else if (element.attachEvent) {=0A=
      this.observers.push([element, name, observer, useCapture]);=0A=
      element.attachEvent('on' + name, observer);=0A=
    }=0A=
  },=0A=
=0A=
  unloadCache: function() {=0A=
    if (!Event.observers) return;=0A=
    for (var i =3D 0, length =3D Event.observers.length; i < length; =
i++) {=0A=
      Event.stopObserving.apply(this, Event.observers[i]);=0A=
      Event.observers[i][0] =3D null;=0A=
    }=0A=
    Event.observers =3D false;=0A=
  },=0A=
=0A=
  observe: function(element, name, observer, useCapture) {=0A=
    element =3D $(element);=0A=
    useCapture =3D useCapture || false;=0A=
=0A=
    if (name =3D=3D 'keypress' &&=0A=
        (navigator.appVersion.match(/Konqueror|Safari|KHTML/)=0A=
        || element.attachEvent))=0A=
      name =3D 'keydown';=0A=
=0A=
    Event._observeAndCache(element, name, observer, useCapture);=0A=
  },=0A=
=0A=
  stopObserving: function(element, name, observer, useCapture) {=0A=
    element =3D $(element);=0A=
    useCapture =3D useCapture || false;=0A=
=0A=
    if (name =3D=3D 'keypress' &&=0A=
        (navigator.appVersion.match(/Konqueror|Safari|KHTML/)=0A=
        || element.detachEvent))=0A=
      name =3D 'keydown';=0A=
=0A=
    if (element.removeEventListener) {=0A=
      element.removeEventListener(name, observer, useCapture);=0A=
    } else if (element.detachEvent) {=0A=
      try {=0A=
        element.detachEvent('on' + name, observer);=0A=
      } catch (e) {}=0A=
    }=0A=
  }=0A=
});=0A=
=0A=
/* prevent memory leaks in IE */=0A=
if (navigator.appVersion.match(/\bMSIE\b/))=0A=
  Event.observe(window, 'unload', Event.unloadCache, false);=0A=
var Position =3D {=0A=
  // set to true if needed, warning: firefox performance problems=0A=
  // NOT neeeded for page scrolling, only if draggable contained in=0A=
  // scrollable elements=0A=
  includeScrollOffsets: false,=0A=
=0A=
  // must be called before calling withinIncludingScrolloffset, every =
time the=0A=
  // page is scrolled=0A=
  prepare: function() {=0A=
    this.deltaX =3D  window.pageXOffset=0A=
                || document.documentElement.scrollLeft=0A=
                || document.body.scrollLeft=0A=
                || 0;=0A=
    this.deltaY =3D  window.pageYOffset=0A=
                || document.documentElement.scrollTop=0A=
                || document.body.scrollTop=0A=
                || 0;=0A=
  },=0A=
=0A=
  realOffset: function(element) {=0A=
    var valueT =3D 0, valueL =3D 0;=0A=
    do {=0A=
      valueT +=3D element.scrollTop  || 0;=0A=
      valueL +=3D element.scrollLeft || 0;=0A=
      element =3D element.parentNode;=0A=
    } while (element);=0A=
    return [valueL, valueT];=0A=
  },=0A=
=0A=
  cumulativeOffset: function(element) {=0A=
    var valueT =3D 0, valueL =3D 0;=0A=
    do {=0A=
      valueT +=3D element.offsetTop  || 0;=0A=
      valueL +=3D element.offsetLeft || 0;=0A=
      element =3D element.offsetParent;=0A=
    } while (element);=0A=
    return [valueL, valueT];=0A=
  },=0A=
=0A=
  positionedOffset: function(element) {=0A=
    var valueT =3D 0, valueL =3D 0;=0A=
    do {=0A=
      valueT +=3D element.offsetTop  || 0;=0A=
      valueL +=3D element.offsetLeft || 0;=0A=
      element =3D element.offsetParent;=0A=
      if (element) {=0A=
        if(element.tagName=3D=3D'BODY') break;=0A=
        var p =3D Element.getStyle(element, 'position');=0A=
        if (p =3D=3D 'relative' || p =3D=3D 'absolute') break;=0A=
      }=0A=
    } while (element);=0A=
    return [valueL, valueT];=0A=
  },=0A=
=0A=
  offsetParent: function(element) {=0A=
    if (element.offsetParent) return element.offsetParent;=0A=
    if (element =3D=3D document.body) return element;=0A=
=0A=
    while ((element =3D element.parentNode) && element !=3D =
document.body)=0A=
      if (Element.getStyle(element, 'position') !=3D 'static')=0A=
        return element;=0A=
=0A=
    return document.body;=0A=
  },=0A=
=0A=
  // caches x/y coordinate pair to use with overlap=0A=
  within: function(element, x, y) {=0A=
    if (this.includeScrollOffsets)=0A=
      return this.withinIncludingScrolloffsets(element, x, y);=0A=
    this.xcomp =3D x;=0A=
    this.ycomp =3D y;=0A=
    this.offset =3D this.cumulativeOffset(element);=0A=
=0A=
    return (y >=3D this.offset[1] &&=0A=
            y <  this.offset[1] + element.offsetHeight &&=0A=
            x >=3D this.offset[0] &&=0A=
            x <  this.offset[0] + element.offsetWidth);=0A=
  },=0A=
=0A=
  withinIncludingScrolloffsets: function(element, x, y) {=0A=
    var offsetcache =3D this.realOffset(element);=0A=
=0A=
    this.xcomp =3D x + offsetcache[0] - this.deltaX;=0A=
    this.ycomp =3D y + offsetcache[1] - this.deltaY;=0A=
    this.offset =3D this.cumulativeOffset(element);=0A=
=0A=
    return (this.ycomp >=3D this.offset[1] &&=0A=
            this.ycomp <  this.offset[1] + element.offsetHeight &&=0A=
            this.xcomp >=3D this.offset[0] &&=0A=
            this.xcomp <  this.offset[0] + element.offsetWidth);=0A=
  },=0A=
=0A=
  // within must be called directly before=0A=
  overlap: function(mode, element) {=0A=
    if (!mode) return 0;=0A=
    if (mode =3D=3D 'vertical')=0A=
      return ((this.offset[1] + element.offsetHeight) - this.ycomp) /=0A=
        element.offsetHeight;=0A=
    if (mode =3D=3D 'horizontal')=0A=
      return ((this.offset[0] + element.offsetWidth) - this.xcomp) /=0A=
        element.offsetWidth;=0A=
  },=0A=
=0A=
  page: function(forElement) {=0A=
    var valueT =3D 0, valueL =3D 0;=0A=
=0A=
    var element =3D forElement;=0A=
    do {=0A=
      valueT +=3D element.offsetTop  || 0;=0A=
      valueL +=3D element.offsetLeft || 0;=0A=
=0A=
      // Safari fix=0A=
      if (element.offsetParent=3D=3Ddocument.body)=0A=
        if (Element.getStyle(element,'position')=3D=3D'absolute') break;=0A=
=0A=
    } while (element =3D element.offsetParent);=0A=
=0A=
    element =3D forElement;=0A=
    do {=0A=
      if (!window.opera || element.tagName=3D=3D'BODY') {=0A=
        valueT -=3D element.scrollTop  || 0;=0A=
        valueL -=3D element.scrollLeft || 0;=0A=
      }=0A=
    } while (element =3D element.parentNode);=0A=
=0A=
    return [valueL, valueT];=0A=
  },=0A=
=0A=
  clone: function(source, target) {=0A=
    var options =3D Object.extend({=0A=
      setLeft:    true,=0A=
      setTop:     true,=0A=
      setWidth:   true,=0A=
      setHeight:  true,=0A=
      offsetTop:  0,=0A=
      offsetLeft: 0=0A=
    }, arguments[2] || {})=0A=
=0A=
    // find page position of source=0A=
    source =3D $(source);=0A=
    var p =3D Position.page(source);=0A=
=0A=
    // find coordinate system to use=0A=
    target =3D $(target);=0A=
    var delta =3D [0, 0];=0A=
    var parent =3D null;=0A=
    // delta [0,0] will do fine with position: fixed elements,=0A=
    // position:absolute needs offsetParent deltas=0A=
    if (Element.getStyle(target,'position') =3D=3D 'absolute') {=0A=
      parent =3D Position.offsetParent(target);=0A=
      delta =3D Position.page(parent);=0A=
    }=0A=
=0A=
    // correct by body offsets (fixes Safari)=0A=
    if (parent =3D=3D document.body) {=0A=
      delta[0] -=3D document.body.offsetLeft;=0A=
      delta[1] -=3D document.body.offsetTop;=0A=
    }=0A=
=0A=
    // set position=0A=
    if(options.setLeft)   target.style.left  =3D (p[0] - delta[0] + =
options.offsetLeft) + 'px';=0A=
    if(options.setTop)    target.style.top   =3D (p[1] - delta[1] + =
options.offsetTop) + 'px';=0A=
    if(options.setWidth)  target.style.width =3D source.offsetWidth + =
'px';=0A=
    if(options.setHeight) target.style.height =3D source.offsetHeight + =
'px';=0A=
  },=0A=
=0A=
  absolutize: function(element) {=0A=
    element =3D $(element);=0A=
    if (element.style.position =3D=3D 'absolute') return;=0A=
    Position.prepare();=0A=
=0A=
    var offsets =3D Position.positionedOffset(element);=0A=
    var top     =3D offsets[1];=0A=
    var left    =3D offsets[0];=0A=
    var width   =3D element.clientWidth;=0A=
    var height  =3D element.clientHeight;=0A=
=0A=
    element._originalLeft   =3D left - parseFloat(element.style.left  || =
0);=0A=
    element._originalTop    =3D top  - parseFloat(element.style.top || =
0);=0A=
    element._originalWidth  =3D element.style.width;=0A=
    element._originalHeight =3D element.style.height;=0A=
=0A=
    element.style.position =3D 'absolute';=0A=
    element.style.top    =3D top + 'px';=0A=
    element.style.left   =3D left + 'px';=0A=
    element.style.width  =3D width + 'px';=0A=
    element.style.height =3D height + 'px';=0A=
  },=0A=
=0A=
  relativize: function(element) {=0A=
    element =3D $(element);=0A=
    if (element.style.position =3D=3D 'relative') return;=0A=
    Position.prepare();=0A=
=0A=
    element.style.position =3D 'relative';=0A=
    var top  =3D parseFloat(element.style.top  || 0) - =
(element._originalTop || 0);=0A=
    var left =3D parseFloat(element.style.left || 0) - =
(element._originalLeft || 0);=0A=
=0A=
    element.style.top    =3D top + 'px';=0A=
    element.style.left   =3D left + 'px';=0A=
    element.style.height =3D element._originalHeight;=0A=
    element.style.width  =3D element._originalWidth;=0A=
  }=0A=
}=0A=
=0A=
// Safari returns margins on body which is incorrect if the child is =
absolutely=0A=
// positioned.  For performance reasons, redefine =
Position.cumulativeOffset for=0A=
// KHTML/WebKit only.=0A=
if (/Konqueror|Safari|KHTML/.test(navigator.userAgent)) {=0A=
  Position.cumulativeOffset =3D function(element) {=0A=
    var valueT =3D 0, valueL =3D 0;=0A=
    do {=0A=
      valueT +=3D element.offsetTop  || 0;=0A=
      valueL +=3D element.offsetLeft || 0;=0A=
      if (element.offsetParent =3D=3D document.body)=0A=
        if (Element.getStyle(element, 'position') =3D=3D 'absolute') =
break;=0A=
=0A=
      element =3D element.offsetParent;=0A=
    } while (element);=0A=
=0A=
    return [valueL, valueT];=0A=
  }=0A=
}=0A=
=0A=
Element.addMethods();
------=_NextPart_000_0000_01CC94CC.424DB590
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.portaldovoluntariohsbc.com.br/site/js/effects.js

// Copyright (c) 2005, 2006 Thomas Fuchs (http://script.aculo.us, =
http://mir.aculo.us)=0A=
// Contributors:=0A=
//  Justin Palmer (http://encytemedia.com/)=0A=
//  Mark Pilgrim (http://diveintomark.org/)=0A=
//  Martin Bialasinki=0A=
// =0A=
// script.aculo.us is freely distributable under the terms of an =
MIT-style license.=0A=
// For details, see the script.aculo.us web site: =
http://script.aculo.us/ =0A=
=0A=
// converts rgb() and #xxx to #xxxxxx format,  =0A=
// returns self (or first argument) if not convertable  =0A=
String.prototype.parseColor =3D function() {  =0A=
  var color =3D '#';=0A=
  if(this.slice(0,4) =3D=3D 'rgb(') {  =0A=
    var cols =3D this.slice(4,this.length-1).split(',');  =0A=
    var i=3D0; do { color +=3D parseInt(cols[i]).toColorPart() } while =
(++i<3);  =0A=
  } else {  =0A=
    if(this.slice(0,1) =3D=3D '#') {  =0A=
      if(this.length=3D=3D4) for(var i=3D1;i<4;i++) color +=3D =
(this.charAt(i) + this.charAt(i)).toLowerCase();  =0A=
      if(this.length=3D=3D7) color =3D this.toLowerCase();  =0A=
    }  =0A=
  }  =0A=
  return(color.length=3D=3D7 ? color : (arguments[0] || this));  =0A=
}=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Element.collectTextNodes =3D function(element) {  =0A=
  return $A($(element).childNodes).collect( function(node) {=0A=
    return (node.nodeType=3D=3D3 ? node.nodeValue : =0A=
      (node.hasChildNodes() ? Element.collectTextNodes(node) : ''));=0A=
  }).flatten().join('');=0A=
}=0A=
=0A=
Element.collectTextNodesIgnoreClass =3D function(element, className) {  =0A=
  return $A($(element).childNodes).collect( function(node) {=0A=
    return (node.nodeType=3D=3D3 ? node.nodeValue : =0A=
      ((node.hasChildNodes() && !Element.hasClassName(node,className)) ? =0A=
        Element.collectTextNodesIgnoreClass(node, className) : ''));=0A=
  }).flatten().join('');=0A=
}=0A=
=0A=
Element.setContentZoom =3D function(element, percent) {=0A=
  element =3D $(element);  =0A=
  element.setStyle({fontSize: (percent/100) + 'em'});   =0A=
  if(navigator.appVersion.indexOf('AppleWebKit')>0) window.scrollBy(0,0);=0A=
  return element;=0A=
}=0A=
=0A=
Element.getOpacity =3D function(element){=0A=
  element =3D $(element);=0A=
  var opacity;=0A=
  if (opacity =3D element.getStyle('opacity'))  =0A=
    return parseFloat(opacity);  =0A=
  if (opacity =3D (element.getStyle('filter') || =
'').match(/alpha\(opacity=3D(.*)\)/))  =0A=
    if(opacity[1]) return parseFloat(opacity[1]) / 100;  =0A=
  return 1.0;  =0A=
}=0A=
=0A=
Element.setOpacity =3D function(element, value){  =0A=
  element=3D $(element);  =0A=
  if (value =3D=3D 1){=0A=
    element.setStyle({ opacity: =0A=
      (/Gecko/.test(navigator.userAgent) && =
!/Konqueror|Safari|KHTML/.test(navigator.userAgent)) ? =0A=
      0.999999 : 1.0 });=0A=
    if(/MSIE/.test(navigator.userAgent) && !window.opera)  =0A=
      element.setStyle({filter: =
Element.getStyle(element,'filter').replace(/alpha\([^\)]*\)/gi,'')});  =0A=
  } else {  =0A=
    if(value < 0.00001) value =3D 0;  =0A=
    element.setStyle({opacity: value});=0A=
    if(/MSIE/.test(navigator.userAgent) && !window.opera)  =0A=
      element.setStyle(=0A=
        { filter: =
element.getStyle('filter').replace(/alpha\([^\)]*\)/gi,'') +=0A=
            'alpha(opacity=3D'+value*100+')' });  =0A=
  }=0A=
  return element;=0A=
}  =0A=
 =0A=
Element.getInlineOpacity =3D function(element){  =0A=
  return $(element).style.opacity || '';=0A=
}  =0A=
=0A=
Element.forceRerendering =3D function(element) {=0A=
  try {=0A=
    element =3D $(element);=0A=
    var n =3D document.createTextNode(' ');=0A=
    element.appendChild(n);=0A=
    element.removeChild(n);=0A=
  } catch(e) { }=0A=
};=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Array.prototype.call =3D function() {=0A=
  var args =3D arguments;=0A=
  this.each(function(f){ f.apply(this, args) });=0A=
}=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
var Effect =3D {=0A=
  _elementDoesNotExistError: {=0A=
    name: 'ElementDoesNotExistError',=0A=
    message: 'The specified DOM element does not exist, but is required =
for this effect to operate'=0A=
  },=0A=
  tagifyText: function(element) {=0A=
    if(typeof Builder =3D=3D 'undefined')=0A=
      throw("Effect.tagifyText requires including script.aculo.us' =
builder.js library");=0A=
      =0A=
    var tagifyStyle =3D 'position:relative';=0A=
    if(/MSIE/.test(navigator.userAgent) && !window.opera) tagifyStyle =
+=3D ';zoom:1';=0A=
    =0A=
    element =3D $(element);=0A=
    $A(element.childNodes).each( function(child) {=0A=
      if(child.nodeType=3D=3D3) {=0A=
        child.nodeValue.toArray().each( function(character) {=0A=
          element.insertBefore(=0A=
            Builder.node('span',{style: tagifyStyle},=0A=
              character =3D=3D ' ' ? String.fromCharCode(160) : =
character), =0A=
              child);=0A=
        });=0A=
        Element.remove(child);=0A=
      }=0A=
    });=0A=
  },=0A=
  multiple: function(element, effect) {=0A=
    var elements;=0A=
    if(((typeof element =3D=3D 'object') || =0A=
        (typeof element =3D=3D 'function')) && =0A=
       (element.length))=0A=
      elements =3D element;=0A=
    else=0A=
      elements =3D $(element).childNodes;=0A=
      =0A=
    var options =3D Object.extend({=0A=
      speed: 0.1,=0A=
      delay: 0.0=0A=
    }, arguments[2] || {});=0A=
    var masterDelay =3D options.delay;=0A=
=0A=
    $A(elements).each( function(element, index) {=0A=
      new effect(element, Object.extend(options, { delay: index * =
options.speed + masterDelay }));=0A=
    });=0A=
  },=0A=
  PAIRS: {=0A=
    'slide':  ['SlideDown','SlideUp'],=0A=
    'blind':  ['BlindDown','BlindUp'],=0A=
    'appear': ['Appear','Fade']=0A=
  },=0A=
  toggle: function(element, effect) {=0A=
    element =3D $(element);=0A=
    effect =3D (effect || 'appear').toLowerCase();=0A=
    var options =3D Object.extend({=0A=
      queue: { position:'end', scope:(element.id || 'global'), limit: 1 }=0A=
    }, arguments[2] || {});=0A=
    Effect[element.visible() ? =0A=
      Effect.PAIRS[effect][1] : Effect.PAIRS[effect][0]](element, =
options);=0A=
  }=0A=
};=0A=
=0A=
var Effect2 =3D Effect; // deprecated=0A=
=0A=
/* ------------- transitions ------------- */=0A=
=0A=
Effect.Transitions =3D {=0A=
  linear: Prototype.K,=0A=
  sinoidal: function(pos) {=0A=
    return (-Math.cos(pos*Math.PI)/2) + 0.5;=0A=
  },=0A=
  reverse: function(pos) {=0A=
    return 1-pos;=0A=
  },=0A=
  flicker: function(pos) {=0A=
    return ((-Math.cos(pos*Math.PI)/4) + 0.75) + Math.random()/4;=0A=
  },=0A=
  wobble: function(pos) {=0A=
    return (-Math.cos(pos*Math.PI*(9*pos))/2) + 0.5;=0A=
  },=0A=
  pulse: function(pos, pulses) { =0A=
    pulses =3D pulses || 5; =0A=
    return (=0A=
      Math.round((pos % (1/pulses)) * pulses) =3D=3D 0 ? =0A=
            ((pos * pulses * 2) - Math.floor(pos * pulses * 2)) : =0A=
        1 - ((pos * pulses * 2) - Math.floor(pos * pulses * 2))=0A=
      );=0A=
  },=0A=
  none: function(pos) {=0A=
    return 0;=0A=
  },=0A=
  full: function(pos) {=0A=
    return 1;=0A=
  }=0A=
};=0A=
=0A=
/* ------------- core effects ------------- */=0A=
=0A=
Effect.ScopedQueue =3D Class.create();=0A=
Object.extend(Object.extend(Effect.ScopedQueue.prototype, Enumerable), {=0A=
  initialize: function() {=0A=
    this.effects  =3D [];=0A=
    this.interval =3D null;=0A=
  },=0A=
  _each: function(iterator) {=0A=
    this.effects._each(iterator);=0A=
  },=0A=
  add: function(effect) {=0A=
    var timestamp =3D new Date().getTime();=0A=
    =0A=
    var position =3D (typeof effect.options.queue =3D=3D 'string') ? =0A=
      effect.options.queue : effect.options.queue.position;=0A=
    =0A=
    switch(position) {=0A=
      case 'front':=0A=
        // move unstarted effects after this effect  =0A=
        this.effects.findAll(function(e){ return e.state=3D=3D'idle' =
}).each( function(e) {=0A=
            e.startOn  +=3D effect.finishOn;=0A=
            e.finishOn +=3D effect.finishOn;=0A=
          });=0A=
        break;=0A=
      case 'with-last':=0A=
        timestamp =3D this.effects.pluck('startOn').max() || timestamp;=0A=
        break;=0A=
      case 'end':=0A=
        // start effect after last queued effect has finished=0A=
        timestamp =3D this.effects.pluck('finishOn').max() || timestamp;=0A=
        break;=0A=
    }=0A=
    =0A=
    effect.startOn  +=3D timestamp;=0A=
    effect.finishOn +=3D timestamp;=0A=
=0A=
    if(!effect.options.queue.limit || (this.effects.length < =
effect.options.queue.limit))=0A=
      this.effects.push(effect);=0A=
    =0A=
    if(!this.interval) =0A=
      this.interval =3D setInterval(this.loop.bind(this), 40);=0A=
  },=0A=
  remove: function(effect) {=0A=
    this.effects =3D this.effects.reject(function(e) { return =
e=3D=3Deffect });=0A=
    if(this.effects.length =3D=3D 0) {=0A=
      clearInterval(this.interval);=0A=
      this.interval =3D null;=0A=
    }=0A=
  },=0A=
  loop: function() {=0A=
    var timePos =3D new Date().getTime();=0A=
    this.effects.invoke('loop', timePos);=0A=
  }=0A=
});=0A=
=0A=
Effect.Queues =3D {=0A=
  instances: $H(),=0A=
  get: function(queueName) {=0A=
    if(typeof queueName !=3D 'string') return queueName;=0A=
    =0A=
    if(!this.instances[queueName])=0A=
      this.instances[queueName] =3D new Effect.ScopedQueue();=0A=
      =0A=
    return this.instances[queueName];=0A=
  }=0A=
}=0A=
Effect.Queue =3D Effect.Queues.get('global');=0A=
=0A=
Effect.DefaultOptions =3D {=0A=
  transition: Effect.Transitions.sinoidal,=0A=
  duration:   1.0,   // seconds=0A=
  fps:        25.0,  // max. 25fps due to Effect.Queue implementation=0A=
  sync:       false, // true for combining=0A=
  from:       0.0,=0A=
  to:         1.0,=0A=
  delay:      0.0,=0A=
  queue:      'parallel'=0A=
}=0A=
=0A=
Effect.Base =3D function() {};=0A=
Effect.Base.prototype =3D {=0A=
  position: null,=0A=
  start: function(options) {=0A=
    this.options      =3D =
Object.extend(Object.extend({},Effect.DefaultOptions), options || {});=0A=
    this.currentFrame =3D 0;=0A=
    this.state        =3D 'idle';=0A=
    this.startOn      =3D this.options.delay*1000;=0A=
    this.finishOn     =3D this.startOn + (this.options.duration*1000);=0A=
    this.event('beforeStart');=0A=
    if(!this.options.sync)=0A=
      Effect.Queues.get(typeof this.options.queue =3D=3D 'string' ? =0A=
        'global' : this.options.queue.scope).add(this);=0A=
  },=0A=
  loop: function(timePos) {=0A=
    if(timePos >=3D this.startOn) {=0A=
      if(timePos >=3D this.finishOn) {=0A=
        this.render(1.0);=0A=
        this.cancel();=0A=
        this.event('beforeFinish');=0A=
        if(this.finish) this.finish(); =0A=
        this.event('afterFinish');=0A=
        return;  =0A=
      }=0A=
      var pos   =3D (timePos - this.startOn) / (this.finishOn - =
this.startOn);=0A=
      var frame =3D Math.round(pos * this.options.fps * =
this.options.duration);=0A=
      if(frame > this.currentFrame) {=0A=
        this.render(pos);=0A=
        this.currentFrame =3D frame;=0A=
      }=0A=
    }=0A=
  },=0A=
  render: function(pos) {=0A=
    if(this.state =3D=3D 'idle') {=0A=
      this.state =3D 'running';=0A=
      this.event('beforeSetup');=0A=
      if(this.setup) this.setup();=0A=
      this.event('afterSetup');=0A=
    }=0A=
    if(this.state =3D=3D 'running') {=0A=
      if(this.options.transition) pos =3D this.options.transition(pos);=0A=
      pos *=3D (this.options.to-this.options.from);=0A=
      pos +=3D this.options.from;=0A=
      this.position =3D pos;=0A=
      this.event('beforeUpdate');=0A=
      if(this.update) this.update(pos);=0A=
      this.event('afterUpdate');=0A=
    }=0A=
  },=0A=
  cancel: function() {=0A=
    if(!this.options.sync)=0A=
      Effect.Queues.get(typeof this.options.queue =3D=3D 'string' ? =0A=
        'global' : this.options.queue.scope).remove(this);=0A=
    this.state =3D 'finished';=0A=
  },=0A=
  event: function(eventName) {=0A=
    if(this.options[eventName + 'Internal']) this.options[eventName + =
'Internal'](this);=0A=
    if(this.options[eventName]) this.options[eventName](this);=0A=
  },=0A=
  inspect: function() {=0A=
    return '#<Effect:' + $H(this).inspect() + ',options:' + =
$H(this.options).inspect() + '>';=0A=
  }=0A=
}=0A=
=0A=
Effect.Parallel =3D Class.create();=0A=
Object.extend(Object.extend(Effect.Parallel.prototype, =
Effect.Base.prototype), {=0A=
  initialize: function(effects) {=0A=
    this.effects =3D effects || [];=0A=
    this.start(arguments[1]);=0A=
  },=0A=
  update: function(position) {=0A=
    this.effects.invoke('render', position);=0A=
  },=0A=
  finish: function(position) {=0A=
    this.effects.each( function(effect) {=0A=
      effect.render(1.0);=0A=
      effect.cancel();=0A=
      effect.event('beforeFinish');=0A=
      if(effect.finish) effect.finish(position);=0A=
      effect.event('afterFinish');=0A=
    });=0A=
  }=0A=
});=0A=
=0A=
Effect.Event =3D Class.create();=0A=
Object.extend(Object.extend(Effect.Event.prototype, =
Effect.Base.prototype), {=0A=
  initialize: function() {=0A=
    var options =3D Object.extend({=0A=
      duration: 0=0A=
    }, arguments[0] || {});=0A=
    this.start(options);=0A=
  },=0A=
  update: Prototype.emptyFunction=0A=
});=0A=
=0A=
Effect.Opacity =3D Class.create();=0A=
Object.extend(Object.extend(Effect.Opacity.prototype, =
Effect.Base.prototype), {=0A=
  initialize: function(element) {=0A=
    this.element =3D $(element);=0A=
    if(!this.element) throw(Effect._elementDoesNotExistError);=0A=
    // make this work on IE on elements without 'layout'=0A=
    if(/MSIE/.test(navigator.userAgent) && !window.opera && =
(!this.element.currentStyle.hasLayout))=0A=
      this.element.setStyle({zoom: 1});=0A=
    var options =3D Object.extend({=0A=
      from: this.element.getOpacity() || 0.0,=0A=
      to:   1.0=0A=
    }, arguments[1] || {});=0A=
    this.start(options);=0A=
  },=0A=
  update: function(position) {=0A=
    this.element.setOpacity(position);=0A=
  }=0A=
});=0A=
=0A=
Effect.Move =3D Class.create();=0A=
Object.extend(Object.extend(Effect.Move.prototype, =
Effect.Base.prototype), {=0A=
  initialize: function(element) {=0A=
    this.element =3D $(element);=0A=
    if(!this.element) throw(Effect._elementDoesNotExistError);=0A=
    var options =3D Object.extend({=0A=
      x:    0,=0A=
      y:    0,=0A=
      mode: 'relative'=0A=
    }, arguments[1] || {});=0A=
    this.start(options);=0A=
  },=0A=
  setup: function() {=0A=
    // Bug in Opera: Opera returns the "real" position of a static =
element or=0A=
    // relative element that does not have top/left explicitly set.=0A=
    // =3D=3D> Always set top and left for position relative elements in =
your stylesheets =0A=
    // (to 0 if you do not need them) =0A=
    this.element.makePositioned();=0A=
    this.originalLeft =3D parseFloat(this.element.getStyle('left') || =
'0');=0A=
    this.originalTop  =3D parseFloat(this.element.getStyle('top')  || =
'0');=0A=
    if(this.options.mode =3D=3D 'absolute') {=0A=
      // absolute movement, so we need to calc deltaX and deltaY=0A=
      this.options.x =3D this.options.x - this.originalLeft;=0A=
      this.options.y =3D this.options.y - this.originalTop;=0A=
    }=0A=
  },=0A=
  update: function(position) {=0A=
    this.element.setStyle({=0A=
      left: Math.round(this.options.x  * position + this.originalLeft) + =
'px',=0A=
      top:  Math.round(this.options.y  * position + this.originalTop)  + =
'px'=0A=
    });=0A=
  }=0A=
});=0A=
=0A=
// for backwards compatibility=0A=
Effect.MoveBy =3D function(element, toTop, toLeft) {=0A=
  return new Effect.Move(element, =0A=
    Object.extend({ x: toLeft, y: toTop }, arguments[3] || {}));=0A=
};=0A=
=0A=
Effect.Scale =3D Class.create();=0A=
Object.extend(Object.extend(Effect.Scale.prototype, =
Effect.Base.prototype), {=0A=
  initialize: function(element, percent) {=0A=
    this.element =3D $(element);=0A=
    if(!this.element) throw(Effect._elementDoesNotExistError);=0A=
    var options =3D Object.extend({=0A=
      scaleX: true,=0A=
      scaleY: true,=0A=
      scaleContent: true,=0A=
      scaleFromCenter: false,=0A=
      scaleMode: 'box',        // 'box' or 'contents' or {} with =
provided values=0A=
      scaleFrom: 100.0,=0A=
      scaleTo:   percent=0A=
    }, arguments[2] || {});=0A=
    this.start(options);=0A=
  },=0A=
  setup: function() {=0A=
    this.restoreAfterFinish =3D this.options.restoreAfterFinish || false;=0A=
    this.elementPositioning =3D this.element.getStyle('position');=0A=
    =0A=
    this.originalStyle =3D {};=0A=
    ['top','left','width','height','fontSize'].each( function(k) {=0A=
      this.originalStyle[k] =3D this.element.style[k];=0A=
    }.bind(this));=0A=
      =0A=
    this.originalTop  =3D this.element.offsetTop;=0A=
    this.originalLeft =3D this.element.offsetLeft;=0A=
    =0A=
    var fontSize =3D this.element.getStyle('font-size') || '100%';=0A=
    ['em','px','%','pt'].each( function(fontSizeType) {=0A=
      if(fontSize.indexOf(fontSizeType)>0) {=0A=
        this.fontSize     =3D parseFloat(fontSize);=0A=
        this.fontSizeType =3D fontSizeType;=0A=
      }=0A=
    }.bind(this));=0A=
    =0A=
    this.factor =3D (this.options.scaleTo - this.options.scaleFrom)/100;=0A=
    =0A=
    this.dims =3D null;=0A=
    if(this.options.scaleMode=3D=3D'box')=0A=
      this.dims =3D [this.element.offsetHeight, =
this.element.offsetWidth];=0A=
    if(/^content/.test(this.options.scaleMode))=0A=
      this.dims =3D [this.element.scrollHeight, =
this.element.scrollWidth];=0A=
    if(!this.dims)=0A=
      this.dims =3D [this.options.scaleMode.originalHeight,=0A=
                   this.options.scaleMode.originalWidth];=0A=
  },=0A=
  update: function(position) {=0A=
    var currentScale =3D (this.options.scaleFrom/100.0) + (this.factor * =
position);=0A=
    if(this.options.scaleContent && this.fontSize)=0A=
      this.element.setStyle({fontSize: this.fontSize * currentScale + =
this.fontSizeType });=0A=
    this.setDimensions(this.dims[0] * currentScale, this.dims[1] * =
currentScale);=0A=
  },=0A=
  finish: function(position) {=0A=
    if(this.restoreAfterFinish) =
this.element.setStyle(this.originalStyle);=0A=
  },=0A=
  setDimensions: function(height, width) {=0A=
    var d =3D {};=0A=
    if(this.options.scaleX) d.width =3D Math.round(width) + 'px';=0A=
    if(this.options.scaleY) d.height =3D Math.round(height) + 'px';=0A=
    if(this.options.scaleFromCenter) {=0A=
      var topd  =3D (height - this.dims[0])/2;=0A=
      var leftd =3D (width  - this.dims[1])/2;=0A=
      if(this.elementPositioning =3D=3D 'absolute') {=0A=
        if(this.options.scaleY) d.top =3D this.originalTop-topd + 'px';=0A=
        if(this.options.scaleX) d.left =3D this.originalLeft-leftd + =
'px';=0A=
      } else {=0A=
        if(this.options.scaleY) d.top =3D -topd + 'px';=0A=
        if(this.options.scaleX) d.left =3D -leftd + 'px';=0A=
      }=0A=
    }=0A=
    this.element.setStyle(d);=0A=
  }=0A=
});=0A=
=0A=
Effect.Highlight =3D Class.create();=0A=
Object.extend(Object.extend(Effect.Highlight.prototype, =
Effect.Base.prototype), {=0A=
  initialize: function(element) {=0A=
    this.element =3D $(element);=0A=
    if(!this.element) throw(Effect._elementDoesNotExistError);=0A=
    var options =3D Object.extend({ startcolor: '#ffff99' }, =
arguments[1] || {});=0A=
    this.start(options);=0A=
  },=0A=
  setup: function() {=0A=
    // Prevent executing on elements not in the layout flow=0A=
    if(this.element.getStyle('display')=3D=3D'none') { this.cancel(); =
return; }=0A=
    // Disable background image during the effect=0A=
    this.oldStyle =3D {=0A=
      backgroundImage: this.element.getStyle('background-image') };=0A=
    this.element.setStyle({backgroundImage: 'none'});=0A=
    if(!this.options.endcolor)=0A=
      this.options.endcolor =3D =
this.element.getStyle('background-color').parseColor('#ffffff');=0A=
    if(!this.options.restorecolor)=0A=
      this.options.restorecolor =3D =
this.element.getStyle('background-color');=0A=
    // init color calculations=0A=
    this._base  =3D $R(0,2).map(function(i){ return =
parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16) }.bind(this));=0A=
    this._delta =3D $R(0,2).map(function(i){ return =
parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i] =
}.bind(this));=0A=
  },=0A=
  update: function(position) {=0A=
    this.element.setStyle({backgroundColor: =
$R(0,2).inject('#',function(m,v,i){=0A=
      return =
m+(Math.round(this._base[i]+(this._delta[i]*position)).toColorPart()); =
}.bind(this)) });=0A=
  },=0A=
  finish: function() {=0A=
    this.element.setStyle(Object.extend(this.oldStyle, {=0A=
      backgroundColor: this.options.restorecolor=0A=
    }));=0A=
  }=0A=
});=0A=
=0A=
Effect.ScrollTo =3D Class.create();=0A=
Object.extend(Object.extend(Effect.ScrollTo.prototype, =
Effect.Base.prototype), {=0A=
  initialize: function(element) {=0A=
    this.element =3D $(element);=0A=
    this.start(arguments[1] || {});=0A=
  },=0A=
  setup: function() {=0A=
    Position.prepare();=0A=
    var offsets =3D Position.cumulativeOffset(this.element);=0A=
    if(this.options.offset) offsets[1] +=3D this.options.offset;=0A=
    var max =3D window.innerHeight ? =0A=
      window.height - window.innerHeight :=0A=
      document.body.scrollHeight - =0A=
        (document.documentElement.clientHeight ? =0A=
          document.documentElement.clientHeight : =
document.body.clientHeight);=0A=
    this.scrollStart =3D Position.deltaY;=0A=
    this.delta =3D (offsets[1] > max ? max : offsets[1]) - =
this.scrollStart;=0A=
  },=0A=
  update: function(position) {=0A=
    Position.prepare();=0A=
    window.scrollTo(Position.deltaX, =0A=
      this.scrollStart + (position*this.delta));=0A=
  }=0A=
});=0A=
=0A=
/* ------------- combination effects ------------- */=0A=
=0A=
Effect.Fade =3D function(element) {=0A=
  element =3D $(element);=0A=
  var oldOpacity =3D element.getInlineOpacity();=0A=
  var options =3D Object.extend({=0A=
  from: element.getOpacity() || 1.0,=0A=
  to:   0.0,=0A=
  afterFinishInternal: function(effect) { =0A=
    if(effect.options.to!=3D0) return;=0A=
    effect.element.hide().setStyle({opacity: oldOpacity}); =0A=
  }}, arguments[1] || {});=0A=
  return new Effect.Opacity(element,options);=0A=
}=0A=
=0A=
Effect.Appear =3D function(element) {=0A=
  element =3D $(element);=0A=
  var options =3D Object.extend({=0A=
  from: (element.getStyle('display') =3D=3D 'none' ? 0.0 : =
element.getOpacity() || 0.0),=0A=
  to:   1.0,=0A=
  // force Safari to render floated elements properly=0A=
  afterFinishInternal: function(effect) {=0A=
    effect.element.forceRerendering();=0A=
  },=0A=
  beforeSetup: function(effect) {=0A=
    effect.element.setOpacity(effect.options.from).show(); =0A=
  }}, arguments[1] || {});=0A=
  return new Effect.Opacity(element,options);=0A=
}=0A=
=0A=
Effect.Puff =3D function(element) {=0A=
  element =3D $(element);=0A=
  var oldStyle =3D { =0A=
    opacity: element.getInlineOpacity(), =0A=
    position: element.getStyle('position'),=0A=
    top:  element.style.top,=0A=
    left: element.style.left,=0A=
    width: element.style.width,=0A=
    height: element.style.height=0A=
  };=0A=
  return new Effect.Parallel(=0A=
   [ new Effect.Scale(element, 200, =0A=
      { sync: true, scaleFromCenter: true, scaleContent: true, =
restoreAfterFinish: true }), =0A=
     new Effect.Opacity(element, { sync: true, to: 0.0 } ) ], =0A=
     Object.extend({ duration: 1.0, =0A=
      beforeSetupInternal: function(effect) {=0A=
        Position.absolutize(effect.effects[0].element)=0A=
      },=0A=
      afterFinishInternal: function(effect) {=0A=
         effect.effects[0].element.hide().setStyle(oldStyle); }=0A=
     }, arguments[1] || {})=0A=
   );=0A=
}=0A=
=0A=
Effect.BlindUp =3D function(element) {=0A=
  element =3D $(element);=0A=
  element.makeClipping();=0A=
  return new Effect.Scale(element, 0,=0A=
    Object.extend({ scaleContent: false, =0A=
      scaleX: false, =0A=
      restoreAfterFinish: true,=0A=
      afterFinishInternal: function(effect) {=0A=
        effect.element.hide().undoClipping();=0A=
      } =0A=
    }, arguments[1] || {})=0A=
  );=0A=
}=0A=
=0A=
Effect.BlindDown =3D function(element) {=0A=
  element =3D $(element);=0A=
  var elementDimensions =3D element.getDimensions();=0A=
  return new Effect.Scale(element, 100, Object.extend({ =0A=
    scaleContent: false, =0A=
    scaleX: false,=0A=
    scaleFrom: 0,=0A=
    scaleMode: {originalHeight: elementDimensions.height, originalWidth: =
elementDimensions.width},=0A=
    restoreAfterFinish: true,=0A=
    afterSetup: function(effect) {=0A=
      effect.element.makeClipping().setStyle({height: '0px'}).show(); =0A=
    },  =0A=
    afterFinishInternal: function(effect) {=0A=
      effect.element.undoClipping();=0A=
    }=0A=
  }, arguments[1] || {}));=0A=
}=0A=
=0A=
Effect.SwitchOff =3D function(element) {=0A=
  element =3D $(element);=0A=
  var oldOpacity =3D element.getInlineOpacity();=0A=
  return new Effect.Appear(element, Object.extend({=0A=
    duration: 0.4,=0A=
    from: 0,=0A=
    transition: Effect.Transitions.flicker,=0A=
    afterFinishInternal: function(effect) {=0A=
      new Effect.Scale(effect.element, 1, { =0A=
        duration: 0.3, scaleFromCenter: true,=0A=
        scaleX: false, scaleContent: false, restoreAfterFinish: true,=0A=
        beforeSetup: function(effect) { =0A=
          effect.element.makePositioned().makeClipping();=0A=
        },=0A=
        afterFinishInternal: function(effect) {=0A=
          =
effect.element.hide().undoClipping().undoPositioned().setStyle({opacity: =
oldOpacity});=0A=
        }=0A=
      })=0A=
    }=0A=
  }, arguments[1] || {}));=0A=
}=0A=
=0A=
Effect.DropOut =3D function(element) {=0A=
  element =3D $(element);=0A=
  var oldStyle =3D {=0A=
    top: element.getStyle('top'),=0A=
    left: element.getStyle('left'),=0A=
    opacity: element.getInlineOpacity() };=0A=
  return new Effect.Parallel(=0A=
    [ new Effect.Move(element, {x: 0, y: 100, sync: true }), =0A=
      new Effect.Opacity(element, { sync: true, to: 0.0 }) ],=0A=
    Object.extend(=0A=
      { duration: 0.5,=0A=
        beforeSetup: function(effect) {=0A=
          effect.effects[0].element.makePositioned(); =0A=
        },=0A=
        afterFinishInternal: function(effect) {=0A=
          =
effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle);=0A=
        } =0A=
      }, arguments[1] || {}));=0A=
}=0A=
=0A=
Effect.Shake =3D function(element) {=0A=
  element =3D $(element);=0A=
  var oldStyle =3D {=0A=
    top: element.getStyle('top'),=0A=
    left: element.getStyle('left') };=0A=
    return new Effect.Move(element, =0A=
      { x:  20, y: 0, duration: 0.05, afterFinishInternal: =
function(effect) {=0A=
    new Effect.Move(effect.element,=0A=
      { x: -40, y: 0, duration: 0.1,  afterFinishInternal: =
function(effect) {=0A=
    new Effect.Move(effect.element,=0A=
      { x:  40, y: 0, duration: 0.1,  afterFinishInternal: =
function(effect) {=0A=
    new Effect.Move(effect.element,=0A=
      { x: -40, y: 0, duration: 0.1,  afterFinishInternal: =
function(effect) {=0A=
    new Effect.Move(effect.element,=0A=
      { x:  40, y: 0, duration: 0.1,  afterFinishInternal: =
function(effect) {=0A=
    new Effect.Move(effect.element,=0A=
      { x: -20, y: 0, duration: 0.05, afterFinishInternal: =
function(effect) {=0A=
        effect.element.undoPositioned().setStyle(oldStyle);=0A=
  }}) }}) }}) }}) }}) }});=0A=
}=0A=
=0A=
Effect.SlideDown =3D function(element) {=0A=
  element =3D $(element).cleanWhitespace();=0A=
  // SlideDown need to have the content of the element wrapped in a =
container element with fixed height!=0A=
  var oldInnerBottom =3D element.down().getStyle('bottom');=0A=
  var elementDimensions =3D element.getDimensions();=0A=
  return new Effect.Scale(element, 100, Object.extend({ =0A=
    scaleContent: false, =0A=
    scaleX: false, =0A=
    scaleFrom: window.opera ? 0 : 1,=0A=
    scaleMode: {originalHeight: elementDimensions.height, originalWidth: =
elementDimensions.width},=0A=
    restoreAfterFinish: true,=0A=
    afterSetup: function(effect) {=0A=
      effect.element.makePositioned();=0A=
      effect.element.down().makePositioned();=0A=
      if(window.opera) effect.element.setStyle({top: ''});=0A=
      effect.element.makeClipping().setStyle({height: '0px'}).show(); =0A=
    },=0A=
    afterUpdateInternal: function(effect) {=0A=
      effect.element.down().setStyle({bottom:=0A=
        (effect.dims[0] - effect.element.clientHeight) + 'px' }); =0A=
    },=0A=
    afterFinishInternal: function(effect) {=0A=
      effect.element.undoClipping().undoPositioned();=0A=
      effect.element.down().undoPositioned().setStyle({bottom: =
oldInnerBottom}); }=0A=
    }, arguments[1] || {})=0A=
  );=0A=
}=0A=
=0A=
Effect.SlideUp =3D function(element) {=0A=
  element =3D $(element).cleanWhitespace();=0A=
  var oldInnerBottom =3D element.down().getStyle('bottom');=0A=
  return new Effect.Scale(element, window.opera ? 0 : 1,=0A=
   Object.extend({ scaleContent: false, =0A=
    scaleX: false, =0A=
    scaleMode: 'box',=0A=
    scaleFrom: 100,=0A=
    restoreAfterFinish: true,=0A=
    beforeStartInternal: function(effect) {=0A=
      effect.element.makePositioned();=0A=
      effect.element.down().makePositioned();=0A=
      if(window.opera) effect.element.setStyle({top: ''});=0A=
      effect.element.makeClipping().show();=0A=
    },  =0A=
    afterUpdateInternal: function(effect) {=0A=
      effect.element.down().setStyle({bottom:=0A=
        (effect.dims[0] - effect.element.clientHeight) + 'px' });=0A=
    },=0A=
    afterFinishInternal: function(effect) {=0A=
      =
effect.element.hide().undoClipping().undoPositioned().setStyle({bottom: =
oldInnerBottom});=0A=
      effect.element.down().undoPositioned();=0A=
    }=0A=
   }, arguments[1] || {})=0A=
  );=0A=
}=0A=
=0A=
// Bug in opera makes the TD containing this element expand for a =
instance after finish =0A=
Effect.Squish =3D function(element) {=0A=
  return new Effect.Scale(element, window.opera ? 1 : 0, { =0A=
    restoreAfterFinish: true,=0A=
    beforeSetup: function(effect) {=0A=
      effect.element.makeClipping(); =0A=
    },  =0A=
    afterFinishInternal: function(effect) {=0A=
      effect.element.hide().undoClipping(); =0A=
    }=0A=
  });=0A=
}=0A=
=0A=
Effect.Grow =3D function(element) {=0A=
  element =3D $(element);=0A=
  var options =3D Object.extend({=0A=
    direction: 'center',=0A=
    moveTransition: Effect.Transitions.sinoidal,=0A=
    scaleTransition: Effect.Transitions.sinoidal,=0A=
    opacityTransition: Effect.Transitions.full=0A=
  }, arguments[1] || {});=0A=
  var oldStyle =3D {=0A=
    top: element.style.top,=0A=
    left: element.style.left,=0A=
    height: element.style.height,=0A=
    width: element.style.width,=0A=
    opacity: element.getInlineOpacity() };=0A=
=0A=
  var dims =3D element.getDimensions();    =0A=
  var initialMoveX, initialMoveY;=0A=
  var moveX, moveY;=0A=
  =0A=
  switch (options.direction) {=0A=
    case 'top-left':=0A=
      initialMoveX =3D initialMoveY =3D moveX =3D moveY =3D 0; =0A=
      break;=0A=
    case 'top-right':=0A=
      initialMoveX =3D dims.width;=0A=
      initialMoveY =3D moveY =3D 0;=0A=
      moveX =3D -dims.width;=0A=
      break;=0A=
    case 'bottom-left':=0A=
      initialMoveX =3D moveX =3D 0;=0A=
      initialMoveY =3D dims.height;=0A=
      moveY =3D -dims.height;=0A=
      break;=0A=
    case 'bottom-right':=0A=
      initialMoveX =3D dims.width;=0A=
      initialMoveY =3D dims.height;=0A=
      moveX =3D -dims.width;=0A=
      moveY =3D -dims.height;=0A=
      break;=0A=
    case 'center':=0A=
      initialMoveX =3D dims.width / 2;=0A=
      initialMoveY =3D dims.height / 2;=0A=
      moveX =3D -dims.width / 2;=0A=
      moveY =3D -dims.height / 2;=0A=
      break;=0A=
  }=0A=
  =0A=
  return new Effect.Move(element, {=0A=
    x: initialMoveX,=0A=
    y: initialMoveY,=0A=
    duration: 0.01, =0A=
    beforeSetup: function(effect) {=0A=
      effect.element.hide().makeClipping().makePositioned();=0A=
    },=0A=
    afterFinishInternal: function(effect) {=0A=
      new Effect.Parallel(=0A=
        [ new Effect.Opacity(effect.element, { sync: true, to: 1.0, =
from: 0.0, transition: options.opacityTransition }),=0A=
          new Effect.Move(effect.element, { x: moveX, y: moveY, sync: =
true, transition: options.moveTransition }),=0A=
          new Effect.Scale(effect.element, 100, {=0A=
            scaleMode: { originalHeight: dims.height, originalWidth: =
dims.width }, =0A=
            sync: true, scaleFrom: window.opera ? 1 : 0, transition: =
options.scaleTransition, restoreAfterFinish: true})=0A=
        ], Object.extend({=0A=
             beforeSetup: function(effect) {=0A=
               effect.effects[0].element.setStyle({height: =
'0px'}).show(); =0A=
             },=0A=
             afterFinishInternal: function(effect) {=0A=
               =
effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldSty=
le); =0A=
             }=0A=
           }, options)=0A=
      )=0A=
    }=0A=
  });=0A=
}=0A=
=0A=
Effect.Shrink =3D function(element) {=0A=
  element =3D $(element);=0A=
  var options =3D Object.extend({=0A=
    direction: 'center',=0A=
    moveTransition: Effect.Transitions.sinoidal,=0A=
    scaleTransition: Effect.Transitions.sinoidal,=0A=
    opacityTransition: Effect.Transitions.none=0A=
  }, arguments[1] || {});=0A=
  var oldStyle =3D {=0A=
    top: element.style.top,=0A=
    left: element.style.left,=0A=
    height: element.style.height,=0A=
    width: element.style.width,=0A=
    opacity: element.getInlineOpacity() };=0A=
=0A=
  var dims =3D element.getDimensions();=0A=
  var moveX, moveY;=0A=
  =0A=
  switch (options.direction) {=0A=
    case 'top-left':=0A=
      moveX =3D moveY =3D 0;=0A=
      break;=0A=
    case 'top-right':=0A=
      moveX =3D dims.width;=0A=
      moveY =3D 0;=0A=
      break;=0A=
    case 'bottom-left':=0A=
      moveX =3D 0;=0A=
      moveY =3D dims.height;=0A=
      break;=0A=
    case 'bottom-right':=0A=
      moveX =3D dims.width;=0A=
      moveY =3D dims.height;=0A=
      break;=0A=
    case 'center':  =0A=
      moveX =3D dims.width / 2;=0A=
      moveY =3D dims.height / 2;=0A=
      break;=0A=
  }=0A=
  =0A=
  return new Effect.Parallel(=0A=
    [ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, =
transition: options.opacityTransition }),=0A=
      new Effect.Scale(element, window.opera ? 1 : 0, { sync: true, =
transition: options.scaleTransition, restoreAfterFinish: true}),=0A=
      new Effect.Move(element, { x: moveX, y: moveY, sync: true, =
transition: options.moveTransition })=0A=
    ], Object.extend({            =0A=
         beforeStartInternal: function(effect) {=0A=
           effect.effects[0].element.makePositioned().makeClipping(); =0A=
         },=0A=
         afterFinishInternal: function(effect) {=0A=
           =
effect.effects[0].element.hide().undoClipping().undoPositioned().setStyle=
(oldStyle); }=0A=
       }, options)=0A=
  );=0A=
}=0A=
=0A=
Effect.Pulsate =3D function(element) {=0A=
  element =3D $(element);=0A=
  var options    =3D arguments[1] || {};=0A=
  var oldOpacity =3D element.getInlineOpacity();=0A=
  var transition =3D options.transition || Effect.Transitions.sinoidal;=0A=
  var reverser   =3D function(pos){ return =
transition(1-Effect.Transitions.pulse(pos, options.pulses)) };=0A=
  reverser.bind(transition);=0A=
  return new Effect.Opacity(element, =0A=
    Object.extend(Object.extend({  duration: 2.0, from: 0,=0A=
      afterFinishInternal: function(effect) { =
effect.element.setStyle({opacity: oldOpacity}); }=0A=
    }, options), {transition: reverser}));=0A=
}=0A=
=0A=
Effect.Fold =3D function(element) {=0A=
  element =3D $(element);=0A=
  var oldStyle =3D {=0A=
    top: element.style.top,=0A=
    left: element.style.left,=0A=
    width: element.style.width,=0A=
    height: element.style.height };=0A=
  element.makeClipping();=0A=
  return new Effect.Scale(element, 5, Object.extend({   =0A=
    scaleContent: false,=0A=
    scaleX: false,=0A=
    afterFinishInternal: function(effect) {=0A=
    new Effect.Scale(element, 1, { =0A=
      scaleContent: false, =0A=
      scaleY: false,=0A=
      afterFinishInternal: function(effect) {=0A=
        effect.element.hide().undoClipping().setStyle(oldStyle);=0A=
      } });=0A=
  }}, arguments[1] || {}));=0A=
};=0A=
=0A=
Effect.Morph =3D Class.create();=0A=
Object.extend(Object.extend(Effect.Morph.prototype, =
Effect.Base.prototype), {=0A=
  initialize: function(element) {=0A=
    this.element =3D $(element);=0A=
    if(!this.element) throw(Effect._elementDoesNotExistError);=0A=
    var options =3D Object.extend({=0A=
      style: ''=0A=
    }, arguments[1] || {});=0A=
    this.start(options);=0A=
  },=0A=
  setup: function(){=0A=
    function parseColor(color){=0A=
      if(!color || ['rgba(0, 0, 0, 0)','transparent'].include(color)) =
color =3D '#ffffff';=0A=
      color =3D color.parseColor();=0A=
      return $R(0,2).map(function(i){=0A=
        return parseInt( color.slice(i*2+1,i*2+3), 16 ) =0A=
      });=0A=
    }=0A=
    this.transforms =3D =
this.options.style.parseStyle().map(function(property){=0A=
      var originalValue =3D this.element.getStyle(property[0]);=0A=
      return $H({ =0A=
        style: property[0], =0A=
        originalValue: property[1].unit=3D=3D'color' ? =0A=
          parseColor(originalValue) : parseFloat(originalValue || 0), =0A=
        targetValue: property[1].unit=3D=3D'color' ? =0A=
          parseColor(property[1].value) : property[1].value,=0A=
        unit: property[1].unit=0A=
      });=0A=
    }.bind(this)).reject(function(transform){=0A=
      return (=0A=
        (transform.originalValue =3D=3D transform.targetValue) ||=0A=
        (=0A=
          transform.unit !=3D 'color' &&=0A=
          (isNaN(transform.originalValue) || =
isNaN(transform.targetValue))=0A=
        )=0A=
      )=0A=
    });=0A=
  },=0A=
  update: function(position) {=0A=
    var style =3D $H(), value =3D null;=0A=
    this.transforms.each(function(transform){=0A=
      value =3D transform.unit=3D=3D'color' ?=0A=
        $R(0,2).inject('#',function(m,v,i){=0A=
          return m+(Math.round(transform.originalValue[i]+=0A=
            (transform.targetValue[i] - =
transform.originalValue[i])*position)).toColorPart() }) : =0A=
        transform.originalValue + Math.round(=0A=
          ((transform.targetValue - transform.originalValue) * position) =
* 1000)/1000 + transform.unit;=0A=
      style[transform.style] =3D value;=0A=
    });=0A=
    this.element.setStyle(style);=0A=
  }=0A=
});=0A=
=0A=
Effect.Transform =3D Class.create();=0A=
Object.extend(Effect.Transform.prototype, {=0A=
  initialize: function(tracks){=0A=
    this.tracks  =3D [];=0A=
    this.options =3D arguments[1] || {};=0A=
    this.addTracks(tracks);=0A=
  },=0A=
  addTracks: function(tracks){=0A=
    tracks.each(function(track){=0A=
      var data =3D $H(track).values().first();=0A=
      this.tracks.push($H({=0A=
        ids:     $H(track).keys().first(),=0A=
        effect:  Effect.Morph,=0A=
        options: { style: data }=0A=
      }));=0A=
    }.bind(this));=0A=
    return this;=0A=
  },=0A=
  play: function(){=0A=
    return new Effect.Parallel(=0A=
      this.tracks.map(function(track){=0A=
        var elements =3D [$(track.ids) || $$(track.ids)].flatten();=0A=
        return elements.map(function(e){ return new track.effect(e, =
Object.extend({ sync:true }, track.options)) });=0A=
      }).flatten(),=0A=
      this.options=0A=
    );=0A=
  }=0A=
});=0A=
=0A=
Element.CSS_PROPERTIES =3D ['azimuth', 'backgroundAttachment', =
'backgroundColor', 'backgroundImage', =0A=
  'backgroundPosition', 'backgroundRepeat', 'borderBottomColor', =
'borderBottomStyle', =0A=
  'borderBottomWidth', 'borderCollapse', 'borderLeftColor', =
'borderLeftStyle', 'borderLeftWidth',=0A=
  'borderRightColor', 'borderRightStyle', 'borderRightWidth', =
'borderSpacing', 'borderTopColor',=0A=
  'borderTopStyle', 'borderTopWidth', 'bottom', 'captionSide', 'clear', =
'clip', 'color', 'content',=0A=
  'counterIncrement', 'counterReset', 'cssFloat', 'cueAfter', =
'cueBefore', 'cursor', 'direction',=0A=
  'display', 'elevation', 'emptyCells', 'fontFamily', 'fontSize', =
'fontSizeAdjust', 'fontStretch',=0A=
  'fontStyle', 'fontVariant', 'fontWeight', 'height', 'left', =
'letterSpacing', 'lineHeight',=0A=
  'listStyleImage', 'listStylePosition', 'listStyleType', =
'marginBottom', 'marginLeft', 'marginRight',=0A=
  'marginTop', 'markerOffset', 'marks', 'maxHeight', 'maxWidth', =
'minHeight', 'minWidth', 'opacity',=0A=
  'orphans', 'outlineColor', 'outlineOffset', 'outlineStyle', =
'outlineWidth', 'overflowX', 'overflowY',=0A=
  'paddingBottom', 'paddingLeft', 'paddingRight', 'paddingTop', 'page', =
'pageBreakAfter', 'pageBreakBefore',=0A=
  'pageBreakInside', 'pauseAfter', 'pauseBefore', 'pitch', 'pitchRange', =
'position', 'quotes',=0A=
  'richness', 'right', 'size', 'speakHeader', 'speakNumeral', =
'speakPunctuation', 'speechRate', 'stress',=0A=
  'tableLayout', 'textAlign', 'textDecoration', 'textIndent', =
'textShadow', 'textTransform', 'top',=0A=
  'unicodeBidi', 'verticalAlign', 'visibility', 'voiceFamily', 'volume', =
'whiteSpace', 'widows',=0A=
  'width', 'wordSpacing', 'zIndex'];=0A=
  =0A=
Element.CSS_LENGTH =3D =
/^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/;=0A=
=0A=
String.prototype.parseStyle =3D function(){=0A=
  var element =3D Element.extend(document.createElement('div'));=0A=
  element.innerHTML =3D '<div style=3D"' + this + '"></div>';=0A=
  var style =3D element.down().style, styleRules =3D $H();=0A=
  =0A=
  Element.CSS_PROPERTIES.each(function(property){=0A=
   if(style[property]) styleRules[property] =3D style[property]; =0A=
  });=0A=
  =0A=
  var result =3D $H();=0A=
  =0A=
  styleRules.each(function(pair){=0A=
    var property =3D pair[0], value =3D pair[1], unit =3D null;=0A=
    =0A=
    if(value.parseColor('#zzzzzz') !=3D '#zzzzzz') {=0A=
      value =3D value.parseColor();=0A=
      unit  =3D 'color';=0A=
    } else if(Element.CSS_LENGTH.test(value)) =0A=
      var components =3D value.match(/^([\+\-]?[0-9\.]+)(.*)$/),=0A=
          value =3D parseFloat(components[1]), unit =3D =
(components.length =3D=3D 3) ? components[2] : null;=0A=
    =0A=
    result[property.underscore().dasherize()] =3D $H({ value:value, =
unit:unit });=0A=
  }.bind(this));=0A=
  =0A=
  return result;=0A=
};=0A=
=0A=
Element.morph =3D function(element, style) {=0A=
  new Effect.Morph(element, Object.extend({ style: style }, arguments[2] =
|| {}));=0A=
  return element;=0A=
};=0A=
=0A=
['setOpacity','getOpacity','getInlineOpacity','forceRerendering','setCont=
entZoom',=0A=
 'collectTextNodes','collectTextNodesIgnoreClass','morph'].each( =0A=
  function(f) { Element.Methods[f] =3D Element[f]; }=0A=
);=0A=
=0A=
Element.Methods.visualEffect =3D function(element, effect, options) {=0A=
  s =3D effect.gsub(/_/, '-').camelize();=0A=
  effect_class =3D s.charAt(0).toUpperCase() + s.substring(1);=0A=
  new Effect[effect_class](element, options);=0A=
  return $(element);=0A=
};=0A=
=0A=
Element.addMethods();
------=_NextPart_000_0000_01CC94CC.424DB590
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.portaldovoluntariohsbc.com.br/site/js/glider.js

/**=0A=
 * @author Bruno Bornsztein <bruno@missingmethod.com>=0A=
 * @copyright 2007 Curbly LLC=0A=
 * @package Glider=0A=
 * @license MIT=0A=
 * @url http://www.missingmethod.com/projects/glider/=0A=
 * @version 0.0.3=0A=
 * @dependencies prototype.js 1.5.1+, effects.js=0A=
 */=0A=
=0A=
/*  Thanks to Andrew Dupont for refactoring help and code cleanup - =
http://andrewdupont.net/  */=0A=
=0A=
Glider =3D Class.create();=0A=
Object.extend(Object.extend(Glider.prototype, Abstract.prototype), {=0A=
	initialize: function(wrapper, options){=0A=
	    this.scrolling  =3D false;=0A=
	    this.wrapper    =3D $(wrapper);=0A=
	    this.scroller   =3D this.wrapper.down('div.scroller');=0A=
	    this.sections   =3D =
this.wrapper.getElementsBySelector('div.section');=0A=
	    this.options    =3D Object.extend({ duration: 1.0, frequency: 3 }, =
options || {});=0A=
=0A=
	    this.sections.each( function(section, index) {=0A=
	      section._index =3D index;=0A=
	    });    =0A=
=0A=
	    this.events =3D {=0A=
	      click: this.click.bind(this)=0A=
	    };=0A=
=0A=
	    this.addObservers();=0A=
			if(this.options.initialSection) =
this.moveTo(this.options.initialSection, this.scroller, { =
duration:this.options.duration });  // initialSection should be the id =
of the section you want to show up on load=0A=
			if(this.options.autoGlide) this.start();=0A=
	  },=0A=
	=0A=
  addObservers: function() {=0A=
    var controls =3D this.wrapper.getElementsBySelector('a.controls');=0A=
    controls.invoke('observe', 'click', this.events.click);=0A=
  },	=0A=
=0A=
  click: function(event) {=0A=
		this.stop();=0A=
    var element =3D Event.findElement(event, 'a');=0A=
    if (this.scrolling) this.scrolling.cancel();=0A=
    =0A=
    this.moveTo(element.href.split("#")[1], this.scroller, { =
duration:this.options.duration });     =0A=
    Event.stop(event);=0A=
  },=0A=
=0A=
	moveTo: function(element, container, options){=0A=
			this.current =3D $(element);=0A=
=0A=
			Position.prepare();=0A=
	    var containerOffset =3D Position.cumulativeOffset(container),=0A=
	     elementOffset =3D Position.cumulativeOffset($(element));=0A=
=0A=
		  this.scrolling 	=3D new Effect.SmoothScroll(container, =0A=
				{duration:options.duration, x:(elementOffset[0]-containerOffset[0]), =
y:(elementOffset[1]-containerOffset[1])});=0A=
		  return false;=0A=
		},=0A=
		=0A=
  next: function(){=0A=
    if (this.current) {=0A=
      var currentIndex =3D this.current._index;=0A=
      var nextIndex =3D (this.sections.length - 1 =3D=3D currentIndex) ? =
0 : currentIndex + 1;      =0A=
    } else var nextIndex =3D 1;=0A=
=0A=
    this.moveTo(this.sections[nextIndex], this.scroller, { =0A=
      duration: this.options.duration=0A=
    });=0A=
  },=0A=
	=0A=
  previous: function(){=0A=
    if (this.current) {=0A=
      var currentIndex =3D this.current._index;=0A=
      var prevIndex =3D (currentIndex =3D=3D 0) ? this.sections.length - =
1 : =0A=
       currentIndex - 1;=0A=
    } else var prevIndex =3D this.sections.length - 1;=0A=
    =0A=
    this.moveTo(this.sections[prevIndex], this.scroller, { =0A=
      duration: this.options.duration=0A=
    });=0A=
  },=0A=
=0A=
	stop: function()=0A=
	{=0A=
		clearTimeout(this.timer);=0A=
	},=0A=
	=0A=
	start: function()=0A=
	{=0A=
		this.periodicallyUpdate();=0A=
	},=0A=
		=0A=
	periodicallyUpdate: function()=0A=
	{ =0A=
		if (this.timer !=3D null) {=0A=
			clearTimeout(this.timer);=0A=
			this.next();=0A=
		}=0A=
		this.timer =3D setTimeout(this.periodicallyUpdate.bind(this), =
this.options.frequency*1000);=0A=
	}=0A=
=0A=
});=0A=
=0A=
Effect.SmoothScroll =3D Class.create();=0A=
Object.extend(Object.extend(Effect.SmoothScroll.prototype, =
Effect.Base.prototype), {=0A=
  initialize: function(element) {=0A=
    this.element =3D $(element);=0A=
    var options =3D Object.extend({=0A=
      x:    0,=0A=
      y:    0,=0A=
      mode: 'absolute'=0A=
    } , arguments[1] || {}  );=0A=
    this.start(options);=0A=
  },=0A=
  setup: function() {=0A=
    if (this.options.continuous && !this.element._ext ) {=0A=
      this.element.cleanWhitespace();=0A=
      this.element._ext=3Dtrue;=0A=
      this.element.appendChild(this.element.firstChild);=0A=
    }=0A=
   =0A=
    this.originalLeft=3Dthis.element.scrollLeft;=0A=
    this.originalTop=3Dthis.element.scrollTop;=0A=
   =0A=
    if(this.options.mode =3D=3D 'absolute') {=0A=
      this.options.x -=3D this.originalLeft;=0A=
      this.options.y -=3D this.originalTop;=0A=
    } =0A=
  },=0A=
  update: function(position) {   =0A=
    this.element.scrollLeft =3D this.options.x * position + =
this.originalLeft;=0A=
    this.element.scrollTop  =3D this.options.y * position + =
this.originalTop;=0A=
  }=0A=
});=0A=
=0A=
=0A=

------=_NextPart_000_0000_01CC94CC.424DB590--

