[br-gnome-org.wiki] adiciona extra



commit fc8f7e46a56bc2eee962088b2019dc7054602195
Author: Rafael Fontenelle <rafaelff gnome org>
Date:   Mon Oct 1 10:56:34 2018 -0300

    adiciona extra

 .../extra/Apresentacoes/Acessibilidade_GNOME.pdf   |  Bin 0 -> 822242 bytes
 site-antigo/extra/Apresentacoes/ENSL2010.tar.gz    |  Bin 0 -> 133199 bytes
 ...E2008-Contribuindo_com_o_gnome-JorgePereira.pdf |  Bin 0 -> 1442168 bytes
 site-antigo/extra/Apresentacoes/FISL.pdf           |  Bin 0 -> 1157051 bytes
 site-antigo/extra/Apresentacoes/GNOME-Shell.odp    |  Bin 0 -> 1791331 bytes
 site-antigo/extra/Apresentacoes/GNOME.odp          |  Bin 0 -> 4469565 bytes
 .../extra/Apresentacoes/GNOME_Foundation.odp       |  Bin 0 -> 5237373 bytes
 .../Apresentacoes/GNOME_Trans_Latinoware-2010.odp  |  Bin 0 -> 124242 bytes
 .../Apresentacoes/GNOME_e_as_distribuicoes.odp     |  Bin 0 -> 2377065 bytes
 .../extra/Apresentacoes/GnomeBazarOrganizadoV2.odp |  Bin 0 -> 3402941 bytes
 .../extra/Apresentacoes/GnomeBazarOrganizado_.odp  |  Bin 0 -> 1801967 bytes
 site-antigo/extra/Apresentacoes/Gnomesysadmin.odp  |  Bin 0 -> 1099685 bytes
 .../extra/Apresentacoes/O_Projeto_GNOME.pdf        |  Bin 0 -> 3128019 bytes
 .../extra/Apresentacoes/TabalhoTrocoDeNada_.odp    |  Bin 0 -> 1043099 bytes
 .../Apresentacoes/Traduzindo_GNOME_IV-ENSL.odp     |  Bin 0 -> 151754 bytes
 site-antigo/extra/Apresentacoes/apresentacao.pdf   |  Bin 0 -> 2189528 bytes
 site-antigo/extra/Apresentacoes/contribua.pdf      |  Bin 0 -> 700892 bytes
 .../extra/Apresentacoes/contribuindo_Wendell.pdf   |  Bin 0 -> 972241 bytes
 site-antigo/extra/Apresentacoes/ensol2011.odp      |  Bin 0 -> 674070 bytes
 site-antigo/extra/Apresentacoes/envolvendo-se.pdf  |  Bin 0 -> 2357178 bytes
 .../extra/Apresentacoes/gnome-presentation.png     |  Bin 0 -> 12370 bytes
 .../extra/Apresentacoes/traduzindo-gnome.odp       |  Bin 0 -> 4884920 bytes
 .../traduzindo_gnome-FelipeBorges.pdf              |  Bin 0 -> 575819 bytes
 site-antigo/extra/DicasManhas/DIcasGNOME.png       |  Bin 0 -> 9384 bytes
 .../extra/Documentacao/ArtigosAcademicos.png       |  Bin 0 -> 15531 bytes
 site-antigo/extra/Documentacao/DIcasGNOME.png      |  Bin 0 -> 9384 bytes
 .../extra/Documentacao/gnome-help-community.png    |  Bin 0 -> 18671 bytes
 .../extra/Documentacao/gnome-presentation.png      |  Bin 0 -> 12370 bytes
 .../extra/Documentacao/gnome-tutorial-text.png     |  Bin 0 -> 8870 bytes
 .../extra/Documentacao/gnome-tutorial-video.png    |  Bin 0 -> 11139 bytes
 site-antigo/extra/Download/cd-with-foot.png        |  Bin 0 -> 20484 bytes
 site-antigo/extra/ENSL/bannerweb_468x60.png        |  Bin 0 -> 22655 bytes
 ...P2008-Contribuindo_com_o_gnome-JorgePereira.pdf |  Bin 0 -> 2048205 bytes
 site-antigo/extra/FerramentasDeTraducao/muda-aspas |   13 +
 .../extra/FerramentasDeTraducao/muda-iniciais      |  466 +
 .../pt_BR-palavras-em-maiusculo.dic                | 9457 ++++++++++++++++++++
 site-antigo/extra/FerramentasDeTraducao/review     |  346 +
 site-antigo/extra/Forum/bannerFixo_468x60.png      |  Bin 0 -> 18471 bytes
 site-antigo/extra/LayoutTemplate/logo.gif          |  Bin 0 -> 5687 bytes
 .../extra/MaterialDivulgacao/BannerA4_A1-thumb.png |  Bin 0 -> 23598 bytes
 .../extra/MaterialDivulgacao/BannerA4_A1.png       |  Bin 0 -> 293768 bytes
 .../extra/MaterialDivulgacao/BannerA4_A1.svg       |  483 +
 .../extra/MaterialDivulgacao/BannerA4_A1.xcf       |  Bin 0 -> 876742 bytes
 .../extra/MaterialDivulgacao/BannerWeb_468x60.svg  |  459 +
 .../extra/MaterialDivulgacao/bannerFixo_468x60.png |  Bin 0 -> 18471 bytes
 .../extra/PaginasAmigas/gnome-br-120x35.png        |  Bin 0 -> 5247 bytes
 .../extra/PaginasAmigas/gnome-br-171x50.png        |  Bin 0 -> 8414 bytes
 .../extra/PaginasAmigas/gnome-br-274x80.png        |  Bin 0 -> 11739 bytes
 site-antigo/extra/PaginasAmigas/gnome_80x15-3.png  |  Bin 0 -> 637 bytes
 .../extra/PaginasAmigas/made_for_gnome_88x31.png   |  Bin 0 -> 2763 bytes
 .../extra/PaginasAmigas/made_with_gnome_88x31.png  |  Bin 0 -> 2789 bytes
 .../extra/PaginasAmigas/revista-espirito-livre.jpg |  Bin 0 -> 7888 bytes
 .../extra/PaginasAmigas/training-tecnologia.jpg    |  Bin 0 -> 10914 bytes
 .../extra/PaginasAmigas/yata-technology.png        |  Bin 0 -> 7886 bytes
 site-antigo/extra/ProjetoGrafico/GnomeBR.ico       |  Bin 0 -> 1150 bytes
 site-antigo/extra/ProjetoGrafico/prototype.js      | 3277 +++++++
 .../PublicacaoAcademica/ArtigosAcad\352micod.png"  |  Bin 0 -> 15531 bytes
 .../SuporteComunitario/gnome-help-community.png    |  Bin 0 -> 18671 bytes
 .../gnome-br-2008-04-23-20h23.log.gz               |  Bin 0 -> 11112 bytes
 .../extra/Tutoriais/Manual_Usuario_Gnome.pdf       |  Bin 0 -> 1748807 bytes
 .../extra/Tutoriais/gnome-tutorial-text.png        |  Bin 0 -> 8870 bytes
 site-antigo/extra/VForum/bannerVForumMed.png       |  Bin 0 -> 54552 bytes
 site-antigo/extra/Videos/gnome-tutorial-video.png  |  Bin 0 -> 11139 bytes
 .../extra/WebCSS/bg-content-right-bottom.png       |  Bin 0 -> 156 bytes
 site-antigo/extra/WebCSS/bg-content-right.png      |  Bin 0 -> 157 bytes
 site-antigo/extra/WebCSS/bg-content.png            |  Bin 0 -> 175 bytes
 site-antigo/extra/WebCSS/bg-header-div.gif         |  Bin 0 -> 14364 bytes
 site-antigo/extra/WebCSS/bg-header.png             |  Bin 0 -> 194 bytes
 site-antigo/extra/WebCSS/bg-menu.png               |  Bin 0 -> 182 bytes
 site-antigo/extra/WebCSS/bg-top.png                |  Bin 0 -> 179 bytes
 site-antigo/extra/WebCSS/line.png                  |  Bin 0 -> 1357 bytes
 site-antigo/extra/WebHome/3.0-release3.jpg         |  Bin 0 -> 193930 bytes
 site-antigo/extra/WebHome/fisl11_display.png       |  Bin 0 -> 5837 bytes
 .../WebHome/window-selection-3.20-420x236.png      |  Bin 0 -> 105769 bytes
 74 files changed, 14501 insertions(+)
---
diff --git a/site-antigo/extra/Apresentacoes/Acessibilidade_GNOME.pdf 
b/site-antigo/extra/Apresentacoes/Acessibilidade_GNOME.pdf
new file mode 100644
index 0000000..f586d9b
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/Acessibilidade_GNOME.pdf differ
diff --git a/site-antigo/extra/Apresentacoes/ENSL2010.tar.gz b/site-antigo/extra/Apresentacoes/ENSL2010.tar.gz
new file mode 100644
index 0000000..16f3553
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/ENSL2010.tar.gz differ
diff --git a/site-antigo/extra/Apresentacoes/ESLPE2008-Contribuindo_com_o_gnome-JorgePereira.pdf 
b/site-antigo/extra/Apresentacoes/ESLPE2008-Contribuindo_com_o_gnome-JorgePereira.pdf
new file mode 100644
index 0000000..18f6b08
Binary files /dev/null and 
b/site-antigo/extra/Apresentacoes/ESLPE2008-Contribuindo_com_o_gnome-JorgePereira.pdf differ
diff --git a/site-antigo/extra/Apresentacoes/FISL.pdf b/site-antigo/extra/Apresentacoes/FISL.pdf
new file mode 100644
index 0000000..e350f66
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/FISL.pdf differ
diff --git a/site-antigo/extra/Apresentacoes/GNOME-Shell.odp b/site-antigo/extra/Apresentacoes/GNOME-Shell.odp
new file mode 100644
index 0000000..a931f5a
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/GNOME-Shell.odp differ
diff --git a/site-antigo/extra/Apresentacoes/GNOME.odp b/site-antigo/extra/Apresentacoes/GNOME.odp
new file mode 100644
index 0000000..a164ae9
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/GNOME.odp differ
diff --git a/site-antigo/extra/Apresentacoes/GNOME_Foundation.odp 
b/site-antigo/extra/Apresentacoes/GNOME_Foundation.odp
new file mode 100644
index 0000000..77b2e73
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/GNOME_Foundation.odp differ
diff --git a/site-antigo/extra/Apresentacoes/GNOME_Trans_Latinoware-2010.odp 
b/site-antigo/extra/Apresentacoes/GNOME_Trans_Latinoware-2010.odp
new file mode 100644
index 0000000..558c261
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/GNOME_Trans_Latinoware-2010.odp differ
diff --git a/site-antigo/extra/Apresentacoes/GNOME_e_as_distribuicoes.odp 
b/site-antigo/extra/Apresentacoes/GNOME_e_as_distribuicoes.odp
new file mode 100644
index 0000000..c854bf5
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/GNOME_e_as_distribuicoes.odp differ
diff --git a/site-antigo/extra/Apresentacoes/GnomeBazarOrganizadoV2.odp 
b/site-antigo/extra/Apresentacoes/GnomeBazarOrganizadoV2.odp
new file mode 100644
index 0000000..4beb611
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/GnomeBazarOrganizadoV2.odp differ
diff --git a/site-antigo/extra/Apresentacoes/GnomeBazarOrganizado_.odp 
b/site-antigo/extra/Apresentacoes/GnomeBazarOrganizado_.odp
new file mode 100644
index 0000000..a7dacc4
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/GnomeBazarOrganizado_.odp differ
diff --git a/site-antigo/extra/Apresentacoes/Gnomesysadmin.odp 
b/site-antigo/extra/Apresentacoes/Gnomesysadmin.odp
new file mode 100644
index 0000000..01df447
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/Gnomesysadmin.odp differ
diff --git a/site-antigo/extra/Apresentacoes/O_Projeto_GNOME.pdf 
b/site-antigo/extra/Apresentacoes/O_Projeto_GNOME.pdf
new file mode 100644
index 0000000..e2de43b
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/O_Projeto_GNOME.pdf differ
diff --git a/site-antigo/extra/Apresentacoes/TabalhoTrocoDeNada_.odp 
b/site-antigo/extra/Apresentacoes/TabalhoTrocoDeNada_.odp
new file mode 100644
index 0000000..1539260
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/TabalhoTrocoDeNada_.odp differ
diff --git a/site-antigo/extra/Apresentacoes/Traduzindo_GNOME_IV-ENSL.odp 
b/site-antigo/extra/Apresentacoes/Traduzindo_GNOME_IV-ENSL.odp
new file mode 100644
index 0000000..a71c21e
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/Traduzindo_GNOME_IV-ENSL.odp differ
diff --git a/site-antigo/extra/Apresentacoes/apresentacao.pdf 
b/site-antigo/extra/Apresentacoes/apresentacao.pdf
new file mode 100644
index 0000000..daa6107
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/apresentacao.pdf differ
diff --git a/site-antigo/extra/Apresentacoes/contribua.pdf b/site-antigo/extra/Apresentacoes/contribua.pdf
new file mode 100644
index 0000000..25de2d2
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/contribua.pdf differ
diff --git a/site-antigo/extra/Apresentacoes/contribuindo_Wendell.pdf 
b/site-antigo/extra/Apresentacoes/contribuindo_Wendell.pdf
new file mode 100644
index 0000000..e70a974
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/contribuindo_Wendell.pdf differ
diff --git a/site-antigo/extra/Apresentacoes/ensol2011.odp b/site-antigo/extra/Apresentacoes/ensol2011.odp
new file mode 100644
index 0000000..824411f
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/ensol2011.odp differ
diff --git a/site-antigo/extra/Apresentacoes/envolvendo-se.pdf 
b/site-antigo/extra/Apresentacoes/envolvendo-se.pdf
new file mode 100644
index 0000000..f1dda8e
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/envolvendo-se.pdf differ
diff --git a/site-antigo/extra/Apresentacoes/gnome-presentation.png 
b/site-antigo/extra/Apresentacoes/gnome-presentation.png
new file mode 100644
index 0000000..5647f93
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/gnome-presentation.png differ
diff --git a/site-antigo/extra/Apresentacoes/traduzindo-gnome.odp 
b/site-antigo/extra/Apresentacoes/traduzindo-gnome.odp
new file mode 100644
index 0000000..6cc7a09
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/traduzindo-gnome.odp differ
diff --git a/site-antigo/extra/Apresentacoes/traduzindo_gnome-FelipeBorges.pdf 
b/site-antigo/extra/Apresentacoes/traduzindo_gnome-FelipeBorges.pdf
new file mode 100644
index 0000000..d80eb10
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/traduzindo_gnome-FelipeBorges.pdf differ
diff --git a/site-antigo/extra/DicasManhas/DIcasGNOME.png b/site-antigo/extra/DicasManhas/DIcasGNOME.png
new file mode 100644
index 0000000..b983b80
Binary files /dev/null and b/site-antigo/extra/DicasManhas/DIcasGNOME.png differ
diff --git a/site-antigo/extra/Documentacao/ArtigosAcademicos.png 
b/site-antigo/extra/Documentacao/ArtigosAcademicos.png
new file mode 100644
index 0000000..b4c8710
Binary files /dev/null and b/site-antigo/extra/Documentacao/ArtigosAcademicos.png differ
diff --git a/site-antigo/extra/Documentacao/DIcasGNOME.png b/site-antigo/extra/Documentacao/DIcasGNOME.png
new file mode 100644
index 0000000..b983b80
Binary files /dev/null and b/site-antigo/extra/Documentacao/DIcasGNOME.png differ
diff --git a/site-antigo/extra/Documentacao/gnome-help-community.png 
b/site-antigo/extra/Documentacao/gnome-help-community.png
new file mode 100644
index 0000000..2e8defe
Binary files /dev/null and b/site-antigo/extra/Documentacao/gnome-help-community.png differ
diff --git a/site-antigo/extra/Documentacao/gnome-presentation.png 
b/site-antigo/extra/Documentacao/gnome-presentation.png
new file mode 100644
index 0000000..5647f93
Binary files /dev/null and b/site-antigo/extra/Documentacao/gnome-presentation.png differ
diff --git a/site-antigo/extra/Documentacao/gnome-tutorial-text.png 
b/site-antigo/extra/Documentacao/gnome-tutorial-text.png
new file mode 100644
index 0000000..417a559
Binary files /dev/null and b/site-antigo/extra/Documentacao/gnome-tutorial-text.png differ
diff --git a/site-antigo/extra/Documentacao/gnome-tutorial-video.png 
b/site-antigo/extra/Documentacao/gnome-tutorial-video.png
new file mode 100644
index 0000000..277b291
Binary files /dev/null and b/site-antigo/extra/Documentacao/gnome-tutorial-video.png differ
diff --git a/site-antigo/extra/Download/cd-with-foot.png b/site-antigo/extra/Download/cd-with-foot.png
new file mode 100644
index 0000000..731f1a3
Binary files /dev/null and b/site-antigo/extra/Download/cd-with-foot.png differ
diff --git a/site-antigo/extra/ENSL/bannerweb_468x60.png b/site-antigo/extra/ENSL/bannerweb_468x60.png
new file mode 100644
index 0000000..6bba0f8
Binary files /dev/null and b/site-antigo/extra/ENSL/bannerweb_468x60.png differ
diff --git a/site-antigo/extra/ESLUCAP/ESLUCAP2008-Contribuindo_com_o_gnome-JorgePereira.pdf 
b/site-antigo/extra/ESLUCAP/ESLUCAP2008-Contribuindo_com_o_gnome-JorgePereira.pdf
new file mode 100644
index 0000000..8142898
Binary files /dev/null and b/site-antigo/extra/ESLUCAP/ESLUCAP2008-Contribuindo_com_o_gnome-JorgePereira.pdf 
differ
diff --git a/site-antigo/extra/FerramentasDeTraducao/muda-aspas 
b/site-antigo/extra/FerramentasDeTraducao/muda-aspas
new file mode 100644
index 0000000..50177ca
--- /dev/null
+++ b/site-antigo/extra/FerramentasDeTraducao/muda-aspas
@@ -0,0 +1,13 @@
+#!/bin/sh
+#
+
+uso() {
+       meu_nome="$(basename $0)"
+       echo "$meu_nome: converte aspas 'assim', \`assim' e “assim” para \"assim\"."
+       echo "Sintaxe: $meu_nome ARQUIVO"
+       exit 1
+} 
+
+[ "$#" = "1" ] || uso
+
+msgfilter -i "$1" -o "$1" --keep-header sed "s/[\`'“]\([^\`'“”]*\)['”]/\\\"\1\\\"/g"
diff --git a/site-antigo/extra/FerramentasDeTraducao/muda-iniciais 
b/site-antigo/extra/FerramentasDeTraducao/muda-iniciais
new file mode 100644
index 0000000..de3a1a0
--- /dev/null
+++ b/site-antigo/extra/FerramentasDeTraducao/muda-iniciais
@@ -0,0 +1,466 @@
+#!/usr/bin/env python
+#-*- coding:utf-8 -*-
+
+# (c) 2008 João S. O. Bueno
+#   This program is free software; you can redistribute it and/or modify
+#   it under the terms of the GNU General Public License as published by
+#   the Free Software Foundation; either version 3 of the License, or
+#   (at your option) any later version.
+#
+#   This program is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU General Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License
+#   along with this program; if not, write to the Free Software
+#   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+#
+
+#
+#  Projeto LDP-BR
+#
+# script:   muda-iniciais
+#
+# objetivo: Altera o estilo de maiúsculas de strings em .po
+#
+# 27/06/08 - Versão 1.0 - Criado por Joao S. O. Bueno (gwidion mpc com br)
+# 28/06/08 - Versão 1.1 - Adicionado o suporte a dicionario
+                          # (sugestão Fernando Boaglio)
+# 28/06/08 - Versão 1.2 - correções de bugs por Joao S. O. Bueno (gwidion mpc com br)
+# 29/06/08 - Versão 1.3 - refatoração do código principal para facilitar 
+#                         leitura e correção de bugs (João)
+
+import sys, os
+
+VERSION = "1.3"
+
+class MyDict(dict):
+    def __getitem__(self, key):
+        if isinstance(key, tuple):
+            default = key[1]
+            key = key[0]
+        else:
+            default = ""
+        try:
+            return dict.__getitem__(self,key)
+        except KeyError:
+            return default
+            
+WHITESPACE = (" ", "\t", "\n", "\r")
+
+class Msgstr(object):
+    """
+    Recebe um bloco de linhas contendo uma msgstr
+    -decide se a mensagem propriamente dita no bloco de linhas
+      prcisa ser alterada
+    - disponibiliza o bloco de linhas, alterado ou não
+    - disponibilzia um contador ed alterações realizdas
+    
+    """
+    #Variaeis de clase, incializadas para cada cada 
+    #arquivo processado. 
+    MNEMONICCHAR = u"_"
+    set_of_capitalized_words = set()
+    
+    def __init__(self, po_lines):
+        
+        self.po_lines = po_lines
+        #self.lines
+        #self.line_wrappers = []
+
+        self._extract_message_text()
+        
+        #self.alter
+        
+        self.changeable = True
+        #self.changed_lines = []
+        #self.chars_changed
+        self.change_lines()
+        self.changed = bool(self.chars_changed)
+
+    def get_changed_lines(self):
+        out_buffer = []
+        for wrapper, line in zip(self.line_wrappers, self.changed_lines):
+            out_buffer.append(wrapper % line)
+        return out_buffer
+
+    
+    def change_lines(self):
+        self.changed_lines = []
+        self.chars_changed = 0
+        line_num = 0 
+        for line in self.lines:
+            self.changed_lines.append(self._change_line(line_num, line))
+            #para efeito de perdoar a primeira letra da Msgstr, só
+            #contamos as linhas com conteúdo
+            if self.changed_lines[-1]:
+                line_num += 1
+        #popriedade self.changeable é atualizada em _change_line
+        if not self.changeable:
+            self.changed_lines = self.lines
+            self.chars_changed = 0
+
+    def _next_word(self, position, line):
+        return line[position:].split()[0]
+
+    def _at_word_start(self, position, in_line):
+        char = in_line[position]
+        if not char.isalpha():
+            return False
+        if position == 0:
+            return True
+        if in_line[position - 1].isspace() or in_line[position - 1] == self.MNEMONICCHAR:
+            return True
+        return False
+    
+    def _next_word(self, position, in_line):
+        return in_line[position:].split()[0]
+
+    def _change_line (self, line_num, line):
+        if not self.changeable:
+            return line
+        in_line = line.decode("utf-8")
+        out_line_buffer = []
+        at_first_word = True
+
+        for position, char in enumerate(in_line):
+            if self._at_word_start(position, in_line):
+                this_char_changeable = True
+                if line_num == 0 and at_first_word:
+                    if  not char.isupper():
+                        self.changeable = False
+                        return
+                    this_char_changeable = False
+                next_word = self._next_word(position, in_line)
+
+                if next_word in self.set_of_capitalized_words:
+                    this_char_changeable = False
+                elif len(next_word) >= 2 and self._isupper(next_word):
+                    this_char_changeable = False
+                elif char.islower():
+                    this_char_changeable = False
+                    if len(next_word) > 3 and next_word != "para":
+                        #assume que a mensagem toda não está com maiusculas repetidas
+                        #a preposição "para" pode não ter as inicial em maiuscula em
+                        #strings desse tipo. Pode haver outras palvras nessa categoria
+                        self.changeable = False
+                        return
+                at_first_word = False
+            else:
+                this_char_changeable = False
+
+            if this_char_changeable:
+                #e, a linha que manda na bodega toda:
+                out_line_buffer.append(char.lower())
+                self.chars_changed += 1
+            else:
+                out_line_buffer.append(char)
+
+        return "".join(out_line_buffer).encode("utf-8")
+
+    def _isupper(self, word):
+        word = word.replace(self.MNEMONICCHAR, u"")
+        return word.isupper()
+
+    def _extract_message_text(self):
+        self.lines = []
+        self.line_wrappers = []
+        for line in self.po_lines:
+            wrapper, text = self.grab_quoted(line)
+            self.lines.append(text)
+            self.line_wrappers.append(wrapper)
+
+    
+    def get_text(self):
+        return "".join(self.lines)
+    def get_changed_text(self):
+        return "".join(self.changed_lines)
+    
+    def grab_quoted(self, line):
+        """separa o texto entre aspas duplas na linha passada"""
+        start = line.find('"')
+        end = line.rfind('"')
+        if start == -1 or start == end:
+            return "", None
+        wrapper = line[:start+1] + "%s" + line[end:]
+        return  wrapper, line[start + 1 : end]
+    
+
+    #changeable = property(self.is_changeable)
+    text = property(get_text)
+    changed_text = property(get_changed_text)
+
+class Changer(object):
+    """
+    - Recebe streams de entrada e saída
+    - Lê linha por linha essas strings -
+    - junta os blocos de linha que contém as msgstrs, e passa-os 
+      a um objeto da classe Msgstr para tratamento
+    - se for o caso:
+        - confirma a alteração de forma interativa
+        - atualiza a linha que indica se a msgstr é fuzzy
+    - senão: escreve o bloco inalterado
+    - escreve as linhas na stream de saída
+    - imprime as informações em sdterr, no nível de verbosidade desejado
+    """
+    def __init__(self, **kwargs):
+        """
+        atributos:
+        self.in_stream - file stream de entrada
+        self.out_stream - file stream de saída
+       
+        """
+        object.__init__(self)
+        options = MyDict(kwargs)
+        self.message_stream = sys.stderr
+        
+        self.in_stream = options["in_stream"]
+        self.out_stream = options["out_stream"]
+        
+        self.fuzzy = options["fuzzy", True]
+        self.interactive = options["interactive", False]
+        self.verbosity = options["verbosity", 1]
+        
+        #altera as variáveis da classe Msgstr- todas as instancias de Msgstr nesta
+        #execução do programa:
+        
+        #FIXME: deveriam ser executados uma vez só para todos os arquivos.
+
+        Msgstr.MNEMONICCHAR = options["mnemonic", "_"].decode("utf-8")
+        Msgstr.set_of_capitalized_words = DictLoaderSet(options["dict_file", None])
+        
+
+               
+    def ask_user(self, new, current):
+        #FIXME: se o usuário abortar, deveriamos salvar as alterações já feitas
+        #a alteração interativa pode ser tediosa.
+        sys.stdout.write("Original:\n%s \n\nSugestão:\n%s\n\n" % (current, new))
+        answer = raw_input("Alterar? [S/n]")
+        if answer.lower() in ("", "s", "y"):
+            return True
+        return False
+            
+    def change_fuzzy_line(self, index, out_buffer):
+        if "fuzzy" in out_buffer[index]:
+            return
+        if "c-format" in out_buffer[index]:
+            out_buffer[index] = out_buffer[index][:-1] + ", fuzzy\n"
+        else:
+            out_buffer.insert(index + 1, "#, fuzzy\n")
+
+    def commit_msgstr(self, out_buffer, msgstr_buffer, fuzzy_line_position, line=""):
+        #this does all the processing as well:
+        msgstr = Msgstr(msgstr_buffer)
+        if msgstr.changed and (not self.interactive or 
+            self.ask_user(msgstr.changed_text, msgstr.text)):
+            out_buffer += msgstr.get_changed_lines()
+            self.msgstrs_changed += 1
+            self.chars_changed += msgstr.chars_changed
+            if self.fuzzy:
+                self.change_fuzzy_line (fuzzy_line_position, out_buffer)
+            if self.verbosity == 2:
+                    self.message_stream.write ("Linha %d:\nMensagem: \n %sAlterada para:\n %s \n\n\n" % 
(len(out_buffer),msgstr.text, msgstr.changed_text))
+        else:
+            out_buffer += msgstr_buffer
+        out_buffer.append(line)
+        
+    def do_it(self):
+        #total changes in file:
+        self.chars_changed = 0
+        self.msgstrs_changed = 0
+
+        #line being processed is part of a msgstr:
+        in_msgstr = False
+
+        # position of the line that should containa  fuzzy statement inside the out_buffer
+        fuzzy_line_position = 0
+
+        #buffers output text,a cummllating copied and chanegd text:
+        out_buffer = []
+        for line in self.in_stream.readlines():
+            #if current line is not part of a msfstr>
+            if not in_msgstr:
+                #is it the begniing of a msgstr?
+                if line.startswith("msgstr"):
+                    #print msgstrs_changed
+                    in_msgstr = True
+                    msgstr_buffer = []
+                elif line.startswith("msgid"):
+                    fuzzy_line_position = len(out_buffer) - 1
+                    if out_buffer[fuzzy_line_position].startswith("msgctxt"):
+                        fuzzy_line_position -= 1
+
+            if not in_msgstr:
+                out_buffer.append(line)
+            else:
+                if line.startswith("msgstr") or line[0] in ("\'", "\""):
+                    msgstr_buffer.append(line)
+                else:
+                    in_msgstr = False
+                    self.commit_msgstr(out_buffer, msgstr_buffer, fuzzy_line_position, line)
+        
+        #Fim do processamento do arquivo
+        if in_msgstr: #o maldito arquivo podia ter um \n no final  !!!
+                      #agora eu sei por que o gcc pede isso! :-)
+            self.commit_msgstr(out_buffer, msgstr_buffer, fuzzy_line_position)
+        #Fim da interação sobre as linhas do arquivo
+        self.out_stream.write("".join(out_buffer))
+        if self.verbosity >= 3:
+            self.message_stream.write("".join(out_buffer))
+        if self.verbosity >= 1:
+            self.message_stream.write("   Alterados %d caracteres em %d mensagens\n\n" %  
(self.chars_changed, self.msgstrs_changed))
+
+    def close_streams(self):
+        self.out_stream.close()
+        self.in_stream.close()
+
+
+class DictLoaderSet(set):
+    def __init__(self, file_name="pt_BR-palavras-em-maiusculo.dic", encoding="iso-8859-1"):
+        set.__init__(self)
+        try:
+            dict_file = open(file_name, "rt")
+            for line in dict_file.xreadlines():
+                self.add(line.decode(encoding).strip())
+            dict_file.close()
+        except IOError, error:
+            sys.stderr.write ("""Aviso: não foi possível abrir o arquivo de dicionários de maiúsculas 
"%s":\n%s\nProsseguindo com dicionário em branco\n\n""" % (file_name, error))
+
+   
+def command_line_mode():
+    from optparse import OptionParser
+    
+    usage = u"""prog [opções] [caminho_para/pt_BR.po outro_caminho_para/pt_BR.po]"""
+    
+    #FIXME: a formatação que o OptionParser impõe para a description atrapalha um pouco:
+    #não há coo forçar quebras de linha na description.
+    description= u"""Elimina a maiúsculas repetidas das mensagens de um arquivo .po,
+    colocando-o em conformidade com as regras da ABL, como acordado no projeto LDP-BR.
+    Use "-" como nome de arquivo para processar <stdin>. Esse script faz parte do projeto
+    LDP-BR.  Autor - João S. O. Bueno, 2008, licenciado sob a GPL v.3.0
+"""
+    parser = OptionParser(usage=usage, description=description, version="%%prog v%s" % VERSION )
+    
+    parser.add_option("-n", "--no-fuzzy", dest="fuzzy",
+                      action="store_false",
+                      default=True, 
+                      help = u"Não marca as mensagens alteradas pelo programa como fuzzy. (Por padrão elas 
são marcadas.)")
+
+    parser.add_option("-i", "--interactive", dest="interactive",
+                      action="store_true",
+                      default=False,
+                      help=u"Confirma cada mudança de mensagem")
+
+    parser.add_option("-m", "--mnemonic", dest="mnemonic",
+                      action="store",
+                      default="_",
+                      help=u"Caractére que representa os mnemônicos aceleradores (por padrão \"_\")")
+                      
+    parser.add_option("--dry-run", dest="dry_run",
+                      action="store_true",
+                      default=False,
+                      help=u"Apenas exibe o que seria alterado, não grava alterações")
+                      
+    parser.add_option("--output-file", "-o", dest="output",
+                      default=[], action="append",
+                      help=u"Arquivo destino. Por padrão é o próprio arquivo de entrada. Se houver mais de 
um arquivo de entrada, deve haver um número correspondente de opções '-o'. Use o nome '-' para <stdout>")
+                      
+    parser.add_option("--no-backup", dest="no_backup",
+                      action="store_true",
+                      default=False,
+                      help=u"Se especificado, não cria uma cópia de segurança do arquivo .po"
+                     )
+    parser.add_option("--verbosity", "-v", dest="verbosity", type="int",
+                      default=1,
+                      help=u"Nível de verbosidade (0-3), padrão: 1"
+                     )
+    parser.add_option("--dict", dest="dict_file",
+                      default="pt_BR-palavras-em-maiusculo.dic",
+                      help=u"Arquivo com dicionário de palávras maiúsculas. (1 por linha, codificação 
iso-8859-1)"
+                     )
+    parser.add_option("--quiet", "-q", dest="quiet",
+                      action="store_true",
+                      default=False,
+                      help=u"Não gera saída (equivale a --verbosity=0)"
+                     )
+    options, files_to_change = parser.parse_args()
+    
+    if options.quiet:
+        options.verbosity = 0
+    
+    if options.interactive and "-" in files_to_change:
+        parser.error("Não é possível confirmar as alterações interativamente se <stdin> é usado como arquivo 
de entrada")
+        sys.exit(1)
+    if "-" in files_to_change and len(files_to_change) > 1:
+        parser.error("Não é possível combinar outros arquivos com <stdin> (\"-\") ")
+        sys.exit(2)
+    output_files = files_to_change
+    if options.output:
+        if "-" in options.output and len(options.output) == 1:
+            output_files = ["-"] * len(files_to_change)
+        elif len(options.output) != len(files_to_change):
+            parser.error("Número de arquivos de saída difere do número de arquivos de entrada!")
+            sys.exit(3)
+        else:
+            output_files = options.output
+
+    if not files_to_change:
+        parser.print_help()
+        sys.exit(0)
+
+    #### começo da ação:
+    changer = Changer(fuzzy=options.fuzzy, 
+                      interactive=options.interactive,
+                      verbosity=options.verbosity,
+                      mnemonic=options.mnemonic,
+                      dict_file=options.dict_file)
+    for input_file, output_file in zip(files_to_change, output_files):
+        new_input = ""
+
+        if input_file == "-":
+            in_stream = sys.stdin
+        else:
+            in_stream = open(input_file, "rt")
+
+        if options.dry_run:
+            if os.name == "posix":
+                out_stream = open("/dev/null", "wt")
+            else:
+                import cStringIO
+                out_stream = cStringIO.StringIO()
+        elif output_file == "-":
+            out_stream = sys.stdout
+        elif input_file == output_file:
+            #se alguma dessas operaçõe de arquivo der ume rro, deixe
+            # o programa abortar -  as mensagens padrão do python
+            # devem ser o suficiente para o usuário acertar a 
+            #situação
+            new_output = output_file + "#"
+            if os.path.exists(new_output):
+                os.unlink(new_output)
+            out_stream = open(new_output, "wt")
+        else:
+            out_stream = open(output_file, "wt")
+        changer.in_stream = in_stream
+        changer.out_stream = out_stream
+        
+        if options.verbosity >= 1:
+            sys.stderr.write("Lendo de %s e escrevendo em %s\n" % (input_file, output_file))
+
+        changer.do_it()
+        
+        changer.close_streams()
+        if input_file == output_file and not options.dry_run and not output_file == "-":
+            new_input = input_file + "~"
+            if os.path.exists(new_input):
+                os.unlink(new_input)
+            os.rename(input_file, new_input)
+            os.rename(new_output, input_file)
+        
+        if new_input and options.no_backup:
+            os.unlink(new_input)
+    
+if __name__ == "__main__":
+    command_line_mode()
\ No newline at end of file
diff --git a/site-antigo/extra/FerramentasDeTraducao/pt_BR-palavras-em-maiusculo.dic 
b/site-antigo/extra/FerramentasDeTraducao/pt_BR-palavras-em-maiusculo.dic
new file mode 100644
index 0000000..2d72c1b
--- /dev/null
+++ b/site-antigo/extra/FerramentasDeTraducao/pt_BR-palavras-em-maiusculo.dic
@@ -0,0 +1,9457 @@
+�dila
+�gabo
+GIMP
+Image
+Manipulation
+Program
+�gueda
+�jax
+�lcimo
+�lfio
+�lida
+�lika
+�lisson
+�lvares
+�lvaro
+�mico
+�ndrocles
+�ries
+�rtemas
+�rtemis
+�talo
+�tio
+�tis
+�xel
+�zem
+�mpelo
+�ngelo
+�ngica
+�ber
+�berle
+�bulo
+�cio
+�der
+�dina
+�dipo
+�dnie
+�feso
+�frem
+�lbio
+�lcana
+�lcio
+�lder
+�lio
+�lmer
+�lson
+�lton
+�lvia
+�lvis
+�merson
+�mi
+�nio
+�nomo
+�olo
+�piro
+�rico
+�ris
+�rone
+�sio
+�vagon
+�vodo
+�vora
+�zio
+�aco
+�nio
+�ubio
+�ubulo
+�ucaris
+�ucles
+�udia
+�uporo
+�utico
+�utiques
+�bis
+�caro
+�nclito
+�ndico
+�sis
+�taca
+�bidos
+�rion
+�lmer
+�rano
+�rsidas
+�rsula
+A�ail�ndia
+A�u
+A�uzinho
+A�cio
+A�lia
+A�da
+A�lson
+A�lton
+A�rton
+A.
+A.C.
+AAC
+AB
+ABNT
+AC
+ACD
+ACP
+ADCT
+ADH
+ADIn
+ADIns
+AFP
+AG
+AIP
+AL
+AM
+AML
+AMP
+ANC
+ANMP
+AP
+APDL
+APEL
+APL
+APT
+ARS
+ASCII
+AVC
+AXO
+Aar�o
+Ab�
+Ab�rcio
+Ab�lio
+Ab�ndio
+Aba�ai
+Aba�ra
+Abac�lio
+Abace
+Abadi�nia
+Abaetetuba
+Abaiara
+Abd�o
+Abd�nio
+Abdeel
+Abdias
+Abdiel
+Abeau
+Abeba
+Abednego
+Abeguar
+Abel
+Abelardo
+Abessal�o
+Abiel
+Abimael
+Abimeleque
+Abino�o
+Abr�o
+Abr.
+Abrantes
+Abrar
+Abreu
+Abreul�ndia
+Abrienda
+Abrona
+Absal�o
+Abt�dio
+Abuja
+Abund�ncio
+Ac�
+Ac�lia
+Ac�rio
+Acaiaca
+Acantocerat�deos
+Acar�-fantasma
+Acar
+Acara�
+Acarap�
+Acazias
+Acegu�
+Aceldama
+Acelino
+Acemira
+Ach�a
+Achila
+Aci
+Acilino
+Acindino
+Acir
+Aconc�gua
+Acopiara
+Acorizal
+Acr�sio
+Acrabim
+Acre�na
+Acrel�ndia
+Acube
+Ad�lia
+Ad�
+Ad�o
+Ad�lio
+Ad�lio
+Ad�lson
+Ad�lio
+Ada�as
+Adada
+Adair
+Adalai
+Adalardo
+Adalb�ria
+Adalbero
+Adalberto
+Adalelmo
+Adalfredo
+Adalfrida
+Adalgiso
+Adaline
+Adalmar
+Adalmir
+Adalmiro
+Adalrico
+Adalrique
+Adaltina
+Adaltiva
+Adalto
+Adalvino
+Adalzira
+Adam�ncio
+Adami
+Adamine
+Adamir
+Adanelia
+Adara
+Adari
+Adarico
+Adauto
+Adeano
+Adeilce
+Adeilton
+Adel�ndia
+Adelardo
+Adelbar
+Adelberto
+Adelelmo
+Adelindo
+Adeline
+Adelino
+Adelmar
+Adelmaria
+Adelmarino
+Adelmaro
+Adelmiro
+Adelmo
+Adelson
+Adeltrudes
+Ademar
+Ademir
+Adena
+Adenir
+Adenocarcinona
+Adeodato
+Aderaldo
+Aderbal
+Aderico
+Adessio
+Adiel
+Adim
+Adino
+Adirm�rquidas
+Adirson
+Aditaim
+Adlai
+Adler
+Adm�
+Adma
+Admeto
+Adn�rio
+Adne
+Adolar
+Adolfine
+Adolfino
+Adolfo
+Adom
+Adonaide
+Adoni
+Adonias
+Adonibezeque
+Adonic�o
+Adonir�o
+Adoniram
+Adonisedeque
+Ador�o
+Adorabela
+Adoraim
+Adorinda
+Adosindo
+Adoxogr�ficoK
+Adozina
+Adrameleque
+Adrast�ia
+Adrastea
+Adrastria
+Adri�o
+Adrian�polis
+Adriane
+Adriano
+Adriel
+Adroaldo
+Adrovaldo
+Adulfo
+Adumim
+Adur�o
+Adustina
+Aedes
+Aedona
+Aegla
+Aemiliano
+Aeropa
+Afavaca
+Afeca
+Afeganist�o
+Afeque
+Afr�nio
+Afrod�sio
+Afrodite
+Afsana
+Afu�
+Ag�pio
+Ag�pis
+Ag�tocles
+Ag�lio
+Ag�nidas
+Agague
+Agamedes
+Agapenor
+Agapito
+Agasias
+Agat�o
+Agda
+Agelau
+Agesilau
+Ageu
+Agilberto
+Agildo
+Aginaldo
+Agla�
+Aglea
+Agliberto
+Agn�s
+Agnaldo
+Agnese
+Agnolo
+Agostina
+Agr�cio
+Agraciana
+Agricol�ndia
+Agrol�ndia
+Aguanil
+Aguape�
+Aguiar
+Aguiarn�polis
+Aguiberto
+Aguidinha
+Aguilar
+Aguimar
+Aguinaldo
+Aguirre
+Agustine
+Ai�ar
+Aidoneus
+Aids
+Aila
+Ailude
+Aim�s
+Aim�
+Aim�o
+Aim�
+Aim�e
+Aim�
+Aim
+Aima�s
+Aimber�
+Aime�
+Aimeleque
+Aino�
+Aiquara
+Air�
+Airum�
+Aisamaque
+Aiuruoca
+Ajagun�
+Ajalom
+Ajax
+Aju
+Ajuricaba
+Ajuru
+Al�a
+Al�cio
+Al�rcio
+Al�ssio
+Al�xis
+Al�cio
+Al�pio
+Al�rio
+Ala�de
+Aladim
+Alagoinha
+Alain
+Alair
+Alambari
+Alameleque
+Alamote
+Alan
+Alanis
+Alaor
+Alarice
+Alarico
+Alasca
+Alastair
+Alb�nia
+Alb�rico
+Alb�lio
+Albaque
+Albaran
+Albarino
+Alberique
+Alberon
+Albertano
+Alberte
+Albertim
+Albertine
+Albertino
+Alberto
+Albin
+Albine
+Albion
+Albo�no
+Albom
+Albuquerque
+Alc�dio
+Alca�ova
+Alcander
+Alcandro
+Alcanena
+Alceb�ade
+Alceb�des
+Alceni
+Alceste
+Alceu
+Alcib�ades
+Alcidamo
+Alcido
+Alcin�polis
+Alcindo
+Alcione
+Alcioneu
+Alcipe
+Alcir
+Alcis
+Alcochete
+Alcoutim
+Aldebar�
+Aldebar�o
+Aldeberto
+Aldebrandus
+Aldegunde
+Aldeli
+Aldemiro
+Alder
+Alderico
+Alderique
+Alderise
+Alderita
+Aldete
+Aldevino
+Aldine
+Aldo
+Aldobrando
+Aldon�a
+Aldora
+Aldrique
+Aldrovandi
+Aldrovando
+Aleardo
+Aleixo
+Aleja
+Alejandrina
+Alejandro
+Alemanha
+Alemete
+Alencar
+Alenica
+Alenis
+Aleo
+Alessander
+Alessandro
+Alete
+Alex�nia
+Alex
+Alexa
+Alexander
+Alexandre
+Alexandria
+Alexandro
+Alexino
+Alexsander
+Alexsandro
+Alfeu
+Alfons
+Alfonso
+Alfredino
+Alfredo
+Alg�s
+Algodres
+Alhandra
+Alheli
+Alhena
+Ali�zio
+Alice
+Alienor
+Alij�
+Alim
+Aline
+Aliomar
+Alita
+Alm�quio
+Alm�o
+Alm�ria
+Alm�rico
+Alm�rindo
+Almada
+Almadino
+Almagesto
+Almasor
+Almeda
+Almeida
+Almeirim
+Almeno
+Almerico
+Almerinda
+Almeta
+Almino
+Almir
+Almiro
+Almom
+Almort�o
+Alo�ndia
+Alo�sio
+Alondra
+Alosio
+Alpiar�a
+Alpin�polis
+Alpiniano
+Alportel
+Alpos
+Alriana
+Alt�nia
+Altagracia
+Altair
+Altamir
+Altamirana
+Altamirando
+Altamiro
+Altin�polis
+AltivirR
+Alu�sio
+Alu�zio
+Aludra
+Alura
+Alus
+Alv�
+Alvai�zere
+Alvar�es
+Alvarengo
+Alves
+Alvim
+Alvin�polis
+Alvinl�ndia
+Alvito
+Alzamora
+Alzheimer
+Alziro
+Alzubra
+Am�lio
+Am�ria
+Am�ncio
+Am�ndio
+Am�lie
+Am�rico
+Am�lcar
+Am�s
+Am�lio
+Amab�lia
+Amade
+Amadeo
+Amajari
+Amal
+Amalarico
+Amalberga
+Amaleque
+Amalie
+Amalrico
+Amalrique
+Amamba�
+Amanayara
+Amanca�
+Amandino
+Amani
+Amantino
+Amanzio
+Amap�
+Amapari
+Amapor�
+Amar�lio
+Amaraji
+Amaralina
+Amari
+Amarilda
+Amarilla
+Amarino
+Amasa
+Amasai
+Amatur�
+Amauri
+Amaury
+Amber
+Ambrogina
+Ambrogio
+Ambros
+Ambrose
+Amelinha
+Amenem�s
+American�polis
+Amerigo
+Amesterd�o
+Ami
+Amiano
+Amiclas
+Amiel
+Amilton
+Amin
+Amirom
+Amisadai
+Amitai
+Amod�tidas
+Amom
+Amoracir
+Amorin�polis
+Amp�re
+Ampliato
+Amr�o
+Amsterd�
+Amsterdam
+An�lia
+An�pio
+An�polis
+An�tole
+An�m
+An�sio
+An�bal
+An�cia
+An�sio
+An�sis
+An�
+An�bis
+Ana�as
+Ana
+Anabe
+AnabelQ
+Anabelia
+Anabete
+Anac
+Anadia
+Anadil
+Anael
+Anag�
+Anaide
+Anajatuba
+Anal�ndia
+Analdino
+Analiel
+Analilia
+Anam�
+Anameleque
+Anami
+Anamim
+Anan�
+Ananda
+Ananias
+Ananindeua
+Anapu
+Anari
+Anarosa
+Anast�sius
+Anastas
+Anastase
+Anastasio
+Anastese
+Anatote
+Anauel
+Anauril�ndia
+Anax�goras
+Anax�menes
+Anaxarco
+Anaxarete
+Anaximandro
+Anbar
+Ancara
+Ancel
+Ancelmo
+Anchieta
+And�cides
+Andaluzia
+Andara�
+Anderson
+Andiberto
+Andir
+Andocl�ia
+Andomar
+Andorra
+Andr�maco
+Andr�
+Andr�e
+Andr�ia
+Andr�nico
+Andrade
+Andradina
+Andrea
+Andreana
+Andreazza
+Andrei
+Andreina
+Andrel�ndia
+Andrelino
+Andreoli
+Andressa
+Andreza
+Andria
+Andrino
+Androgeu
+Andruscha
+Aneci
+Anelina
+Anelise
+Anelizia
+Aner
+Anf�polis
+Anfil�quio
+Anfito
+Anfitrite
+Anfr�sio
+Ang�line
+Ang�lique
+Angara
+Angatuba
+Angeiras
+Angel�ndia
+Angele
+Angeles
+Angelice
+Angelito
+Angeloni
+Angelus
+Angicia
+Angilberto
+Anguera
+Anguila
+Anhaia
+Anhatomirim
+Anhembi
+Ani
+Aniano
+Aniceto
+Anicuns
+Aniel
+Anim
+Anira
+Anit�polis
+Anito
+Anjum
+Anjuta
+AnorR
+Anquises
+Anr�o
+Anrafel
+Ansaldo
+Ansberto
+Ansel
+Anselmino
+Anselmo
+Ant�rtida
+Ant�mio
+Ant�gua
+Ant�loco
+Ant�oco
+Ant�para
+Ant�patro
+Ant�stenes
+Ant�nio
+Antananarivo
+Antelmo
+Antenor
+Antenore
+Antero
+Anteu
+Anticiro
+Anticl�a
+Antidesm�ceas
+Antilhas
+Antin�polis
+Antioquia
+Antip�tride
+Antipas
+Antoine
+Antoniete
+Antoninho
+Antonita
+Antotias
+Antu�rpia
+Antunes
+Anuar
+Anube
+Anunciato
+Ao�
+Ao�
+Aode
+Aol�
+Aoliabe
+Aolib�
+Aolibama
+Ap�ricio
+Ap�lia
+Apaim
+Apar�cio
+Aperib�
+Aperip�
+Api�na
+Apia�
+Apia
+Apodi
+Apoema
+ApoinarR
+Apol�nio
+Apolino
+Apoliom
+Apolodoro
+Apor�
+Apr�gio
+Apuarema
+Apucarana
+Apuiar�s
+Apuleu
+Aqu�mines
+Aqu�lio
+Aquias
+Aquidab�
+Aquidauana
+Aquim
+Aquimeleque
+Aquino�o
+Aquino
+Aquior
+Aquiraz
+Aquis
+Aquisgrana
+Aquit�nia
+Aquitobe
+Ar�tor
+Ar�
+Ar�cio
+Ar�sio
+Ar�s
+Ar�cia
+Ar�stocles
+Ara�o
+Ara�a�
+Ara�agi
+Ara�ariguama
+Ara�as
+Ara�atuba
+Ara�oiaba
+Ara�u
+Ara�ua�
+Ara�
+Ara�ba
+Ara�jo
+Ara�na
+Arabe
+Arabele
+Arac�
+Araca�
+Aracaju
+Aracangu�
+Aracar�
+Aracatu
+Araceli
+Aracelia
+Aracema
+Aracitaba
+Aracruz
+Aracunda
+Aragar�as
+Aragoi�nia
+Aragominas
+Aragua�u
+Aragua�na
+Araguacema
+Araguaia
+Araguainha
+Araguan�
+Araguapaz
+Araguara
+Araguatins
+Araioses
+Aral
+Araldino
+Araldo
+Aramari
+Arambar�
+Aramis
+Arandu
+Arani
+Aranjuez
+Arantina
+Arape�
+Arapoema
+Arapor�
+Arapoti
+Araputanga
+Araqu�m
+Araquari
+Araquitu
+Arar�
+Ararangu�
+Araraquara
+Ararate
+Ararend�
+Araric�
+Araripe
+Araripina
+Araruna
+Aratama
+Aratiba
+Arato
+Aratu�pe
+Aratuba
+Arau�
+Arauar�
+Arba
+Arbel
+Arbogasto
+Arc�ngelo
+Arceburgo
+Arcesilau
+Arcibaldo
+Arcoverde
+Ardenas
+Ardila
+Ardom
+Ardovino
+Ardu�no
+Arealva
+Arei�polis
+Areial
+Areli
+Arella
+Aren�polis
+Aren�polis
+Aresqui
+Aretas
+Aretusa
+Aretuza
+Arfaxade
+Arg�lia
+Arg�via
+Argemiro
+Argens
+Arges
+Argeu
+Argirita
+Argobe
+Ari�dena
+Ari�o
+Ari�
+Ari
+Ariadna
+Arialdo
+Ariane
+Ariberto
+Aricanduva
+Aricema
+Aricina
+ArielQ
+Ariene
+Arildo
+Arim
+Arimat�ia
+Arina
+Arinos
+Arionte
+Arioque
+Ariosto
+Ariosvaldo
+Ariovaldo
+Aripuan�
+Arisla
+Arissa
+Arist�goras
+Arist�bulo
+Arist�demo
+Arist�fane
+Arist�filo
+Arist�teles
+Arist�nico
+Aristeo
+Aristeu
+Aristide
+Aristilo
+Aristipo
+Aristocl�a
+Ariston
+Aristotelina
+Arivaldo
+Arizona
+Arlei
+Arlene
+Arles
+Arlete
+Arli
+Arlindo
+Arline
+Arm�nio
+Armaged�o
+Armagedom
+Armanda
+Armandina
+Armia
+Armida
+Armindo
+Armiteu
+Armoni
+Arn�
+Arn�bio
+Arnaldino
+Arnaldo
+Arne
+Arnira
+Arno
+Arnoldina
+Arnoldo
+Arnolfo
+Arnulfo
+Aroazes
+Arode
+Arodi
+Aroer
+Arolde
+Aroldo
+Aron
+Arouca
+Arpade
+Arquelau
+Arquias
+Arquibaldo
+Arquimedes
+Arquipo
+Arrabal
+Arraes
+Arrieta
+Arriola
+Arronches
+Ars�nia
+Ars�sio
+Ars�o
+Arsa
+Arsene
+Arsenius
+Artemidoro
+Artemiso
+Artenir
+Artilano
+Artur
+Arturo
+Aruan�
+Aruba
+Arubote
+Aruj�
+Aruma
+Arvade
+As�lia
+As�ncrito
+Asa�as
+Asadel
+Asael
+Asafe
+Asarela
+Asariel
+Asb�ia
+Asbel
+Asc�ri
+Asc�rio
+Asc�nio
+Ascalom
+Ascen��o
+Ascurra
+Asdode
+Asdote
+Asdr�bal
+Asiel
+Asil
+Asileu
+Asim
+Asmara
+Ass�s
+Assalim
+Assar�
+Assarad�o
+Assir
+Assis
+Assuero
+Assur
+Assurban�pal
+Assurbanipa
+Assurd�
+Assurim
+Ast�rix
+Ast�rias
+Astarote
+Asterote
+Astolfo
+Astor
+Astorga
+Astreu
+Astride
+Astrogildo
+Astrolgilda
+Asvero
+At�lia
+At�lio
+Ata�as
+Ata�de
+Ata�lfo
+Atal�a
+Atal�ia
+Atalia
+Ataliba
+Atan�sio
+Atanagildo
+Atanarico
+Atarote
+Atarvaveda
+Ataualpa
+Aten�goras
+Aten�genes
+Atena�de
+Atena
+Atenodoro
+Athan�sia
+Atibaia
+Atilano
+Atimno
+Atl�ntida
+Atlai
+Atossa
+Atotes
+Atreo
+Atreu
+Att.
+Augias
+Augustin�polis
+Augustine
+Auleste
+Aumai
+Aur�lio
+Aur�ncio
+Aurelie
+Aurelindo
+Aurelino
+Aurelius
+Auril�ndia
+Aus�nio
+Austine
+Austrag�silo
+Austreg�silo
+Ausubel
+Aut�dico
+Aut�lico
+Autazes
+Autodemonte
+Auz�o
+Auzate
+Ava�
+Avait�
+Avanza
+Aveiro
+Avelaine
+Aveleda
+Avelin�polis
+Avelino
+Avellina
+Aventino
+Averr�is
+Avest�
+Aviano
+Avicena
+Avinh�o
+Avintes
+Avite
+Axada
+Axaiel
+Axix�
+Azaca
+Azael
+Azair
+Azal�a
+Azalias
+Azanias
+Azarel
+Azaz
+Azazias
+Azeca
+Azenate
+Azer
+Azerbaidj�o
+Azevedo
+Aziel
+Azim
+Azize
+Azmavete
+Azmom
+Aznote
+Azor
+Azric�o
+Azriel
+Azuba
+Azucena
+Azul�a
+Azur
+B�dui
+B�lc�s
+B�lder
+B�rbrio
+B�rea
+B�tea
+B�traco
+B�vio
+B�ngalas
+B�lgio
+B�rtolo
+B�ril
+B�tias
+B�ris
+B�vidas
+B�palo
+B
+BA
+BACEN
+BC
+BCE
+BCG
+BCI
+BCM
+BCP
+BD
+BDI
+BE
+BFE
+BH
+BMG
+BMW
+BNU
+BP
+BPA
+BPI
+BPSM
+BR
+BSE
+BT
+BTA
+BTN
+BVL
+Ba�ra
+Baas�ias
+Bab�lia
+Baba�ul�ndia
+Babil�na
+Babis
+Bacabal
+Bacbuque
+Bacbuquias
+Bacurituba
+Bacute
+Badajoz
+Badar�
+Badia
+Badri
+Baependi
+Bag�
+Bag�
+Bagd�
+Bagdade
+Bahamas
+Bahia
+Baian�polis
+Baiardo
+Baical
+Baira�
+Bajite
+Bala�o
+Balad�
+Balandina
+Balantidium
+Balaque
+Balbino
+Baldassare
+Balderico
+Baldim
+Baldino
+Baldoinho
+Baldomar
+Baldomero
+Baldovino
+Balsamino
+Balsem�o
+Baltara
+Baltazar
+Baltes
+Bam�
+Bamaco
+Bambi
+Bambu�
+Bamote
+Ban�bal
+Bana�as
+Banaboi�o
+Banabui�
+Banese
+Banespa
+Bangladeche
+Banguecoque
+Bangui
+Banza�
+Baquebacar
+Bara
+Barahona
+Baraque
+Baraquel
+Baraquias
+Barbacena
+Barbare
+Barber�
+Barbosa
+Barcarena
+Bari�
+Barleta
+Barnab�s
+Barnaldo
+Barnine
+Barrab�s
+Barreirinha
+Barrol�ndia
+Barroquinha
+Barsab�s
+Barsante
+Barsine
+Bartimeu
+Bartinique
+Bartira
+Bartolo
+Baruer�
+Baruque
+Barzilai
+Bas�
+Bas�lio
+Baselisa
+Basem�
+Basemate
+Basileu
+Basilicata
+Basilindo
+Basilino
+Basilissa
+Basino
+Bassano
+Bassas
+Bassor�
+Bat�lia
+Batagua�u
+Bataipor�
+Batilde
+Batildina
+Batilo
+Bator
+Batr�quidas
+Batraqu�deos
+Batuel
+Batul
+Baturit�
+Baudelaire
+Baur�
+Baviera
+Bealias
+Bealote
+Beatrice
+Beatriz
+Bebai
+Bebel
+Beberibe
+Bebeto
+Becorate
+Bedade
+Bedias
+Belas�rio
+Belcagem
+Belcantino
+Belcanto
+Beles�rius
+Belesis
+Belfast
+Belford
+Belgrado
+Beli
+Belial
+Belido
+Belieno
+Belinda
+Belisa
+Belito
+Belmir
+Belmiro
+Belmonte
+Belquior
+Belterra
+Beltessazar
+Belzebu
+Ben�cio
+Benaia
+Benardo
+Benavente
+Benazir
+Benevaldo
+Benevenuto
+Benevides
+Beniamino
+Benilde
+Beninu
+Benito
+Benote
+Bentes
+Bentim
+Bequer
+Bequim�o
+Ber�ia
+Bera�as
+Beraldo
+Beraque
+Berberia
+Berdine
+Berede
+Berenice
+Berias
+Bernadete
+Bernadinha
+Bernado
+Bernaldo
+Bernardes
+Bernardim
+Bernardino
+Bernice
+Bernolfo
+Bernulfo
+Berodaque
+Berota
+Berotai
+Berseba
+Bert�rio
+Bert�lio
+Bert�polis
+Bertilda
+Bertilo
+Bertino
+Bertioga
+Berto
+Bertolesa
+Bertolfo
+Bertrando
+Bertuola
+Berualdo
+Beruldo
+Beruri
+Berzelai
+Besai
+Besete
+Besodias
+Bet�nia
+Betim
+Betina
+Betinho
+Betonim
+Betsab�
+Betsaida
+Bevil�quia
+Biagio
+Bianor
+Biante
+Biara
+Bib�rio
+Biblos
+Bicaco
+Bilgai
+Bils�
+Bine�
+Binui
+Biritiba
+Biritinga
+Birm�nia
+Birniniano
+Birsa
+Birzavite
+Bis�ncio
+Bismarque
+Bisol
+Bit�nia
+Bitia
+Bitrom
+Bitu
+Bituruna
+Bizioti�
+Bl�s
+Blandino
+Blando
+Blanes
+Blantina
+Blasco
+Bo�
+Bo�cio
+Boaventura
+Boavista
+Boaz
+Boc�cio
+Bocage
+Bodoc�
+Boemundo
+Bogomil
+Bogot�
+Boituva
+Bol�via
+Bolena
+Bolivariano
+Bolonha
+Bomb�cidas
+Bombarral
+Bon�polis
+Bona
+Bonafide
+Bonaire
+Bonami
+Bonanza
+Bonaparte
+BonarR
+Bonates
+Bonato
+Bonfilho
+Bonfim
+Bonfin�polis
+Bonif�cio
+Bonifante
+Bonifatia
+Bonjardim
+Boquira
+Bor�stenes
+Borac�ia
+Borba
+Borborema
+Borebi
+Borges
+Borguinh�es
+Borja
+Born�u
+Borragin�ceas
+Borraz�polis
+Borromeu
+Bortoli
+Bosco
+Bosete
+Bossoroca
+Boston
+Botox
+Botucatu
+Botumirim
+Botupor�
+Botuver�
+Boudica
+Boulos
+Bourdieu
+Bovis
+Bozenai
+Bozi
+Bozra
+Br�s
+Br�ulio
+Br�scia
+Br�cio
+Br�gido
+BrOffice.org
+Bracara
+Bradesco
+Bradi
+Bragan�a
+Brahams
+Brand�nio
+Brandenburgo
+Branderico
+Branderigo
+Brandini
+Bras�polis
+Brasil
+Brasil�ndia
+Brasil�ia
+Brasilino
+Brasnorte
+Bratislava
+Braz
+Brazabrantes
+Brazar�o
+Brejetuba
+Brejol�ndia
+Brenda
+Breno
+Bressane
+Brigida
+Brigite
+Briolanja
+Briseida
+Briseu
+Bristol
+Britaldo
+Briteiros
+Brizola
+Brod�squi
+Brona
+Bruce
+Bruges
+Brummel
+Brun�polis
+Brun�rio
+Brunei
+Bruneilda
+Brunelda
+Bruner
+Brunilda
+Bruninho
+Brusque
+Brutus
+Bruxelas
+Bu�aco
+Bu�que
+Buaiz
+Buarque
+Bucareste
+Budail
+Budapeste
+Budur
+Buen�polis
+Bueno
+Buerarema
+Buf�nidas
+Buingelas
+Bujari
+Bujaru
+Bujumbura
+Bulb�quer
+Bulg�ria
+Buni
+Bupr�stidas
+Buqui
+Buquias
+Bur�nidas
+Burcardo
+Burchardo
+Buric�
+Buritama
+Buriticupu
+Buritin�polis
+Buritirama
+Buritirana
+BurnierR
+Burser�ceas
+But�o
+Butu�
+C�ceres
+C�dson
+C�rio
+C�rita
+C�rites
+C�rlisson
+C�rmen
+C�rmine
+C�rpatos
+C�scula
+C�sper
+C�spio
+C�ssio
+C�tia
+C�vado
+C�ncio
+C�ndito
+C�nidas
+C�cil
+C�culo
+C�ladon
+C�li
+C�lio
+C�cero
+C�lidas
+C�ntia
+C�rdova
+C�rsega
+C�sico
+C�rcio
+C
+CAD
+CAM
+CBN
+CBS
+CC
+CCB
+CCC
+CCCI
+CCCII
+CCCIII
+CCCIV
+CCCIX
+CCCL
+CCCLI
+CCCLII
+CCCLIII
+CCCLIV
+CCCLIX
+CCCLV
+CCCLVI
+CCCLVII
+CCCLVIII
+CCCLX
+CCCLXI
+CCCLXII
+CCCLXIII
+CCCLXIV
+CCCLXIX
+CCCLXV
+CCCLXVI
+CCCLXVII
+CCCLXVIII
+CCCLXX
+CCCLXXI
+CCCLXXII
+CCCLXXIII
+CCCLXXIV
+CCCLXXIX
+CCCLXXV
+CCCLXXVI
+CCCLXXVII
+CCCLXXVIII
+CCCLXXX
+CCCLXXXI
+CCCLXXXII
+CCCLXXXIII
+CCCLXXXIV
+CCCLXXXIX
+CCCLXXXV
+CCCLXXXVI
+CCCLXXXVII
+CCCLXXXVIII
+CCCV
+CCCVI
+CCCVII
+CCCVIII
+CCCX
+CCCXC
+CCCXCI
+CCCXCII
+CCCXCIII
+CCCXCIV
+CCCXCIX
+CCCXCV
+CCCXCVI
+CCCXCVII
+CCCXCVIII
+CCCXI
+CCCXII
+CCCXIII
+CCCXIV
+CCCXIX
+CCCXL
+CCCXLI
+CCCXLII
+CCCXLIII
+CCCXLIV
+CCCXLIX
+CCCXLV
+CCCXLVI
+CCCXLVII
+CCCXLVIII
+CCCXV
+CCCXVI
+CCCXVII
+CCCXVIII
+CCCXX
+CCCXXI
+CCCXXII
+CCCXXIII
+CCCXXIV
+CCCXXIX
+CCCXXV
+CCCXXVI
+CCCXXVII
+CCCXXVIII
+CCCXXX
+CCCXXXI
+CCCXXXII
+CCCXXXIII
+CCCXXXIV
+CCCXXXIX
+CCCXXXV
+CCCXXXVI
+CCCXXXVII
+CCCXXXVIII
+CCI
+CCII
+CCIII
+CCIV
+CCIX
+CCL
+CCLI
+CCLII
+CCLIII
+CCLIV
+CCLIX
+CCLV
+CCLVI
+CCLVII
+CCLVIII
+CCLX
+CCLXI
+CCLXII
+CCLXIII
+CCLXIV
+CCLXIX
+CCLXV
+CCLXVI
+CCLXVII
+CCLXVIII
+CCLXX
+CCLXXI
+CCLXXII
+CCLXXIII
+CCLXXIV
+CCLXXIX
+CCLXXV
+CCLXXVI
+CCLXXVII
+CCLXXVIII
+CCLXXX
+CCLXXXI
+CCLXXXII
+CCLXXXIII
+CCLXXXIV
+CCLXXXIX
+CCLXXXV
+CCLXXXVI
+CCLXXXVII
+CCLXXXVIII
+CCRN
+CCV
+CCVI
+CCVII
+CCVIII
+CCX
+CCXC
+CCXCI
+CCXCII
+CCXCIII
+CCXCIV
+CCXCIX
+CCXCV
+CCXCVI
+CCXCVII
+CCXCVIII
+CCXI
+CCXII
+CCXIII
+CCXIV
+CCXIX
+CCXL
+CCXLI
+CCXLII
+CCXLIII
+CCXLIV
+CCXLIX
+CCXLV
+CCXLVI
+CCXLVII
+CCXLVIII
+CCXV
+CCXVI
+CCXVII
+CCXVIII
+CCXX
+CCXXI
+CCXXII
+CCXXIII
+CCXXIV
+CCXXIX
+CCXXV
+CCXXVI
+CCXXVII
+CCXXVIII
+CCXXX
+CCXXXI
+CCXXXII
+CCXXXIII
+CCXXXIV
+CCXXXIX
+CCXXXV
+CCXXXVI
+CCXXXVII
+CCXXXVIII
+CCom
+CD
+CDC
+CDI
+CDII
+CDIII
+CDIV
+CDIX
+CDL
+CDLI
+CDLII
+CDLIII
+CDLIV
+CDLIX
+CDLV
+CDLVI
+CDLVII
+CDLVIII
+CDLX
+CDLXI
+CDLXII
+CDLXIII
+CDLXIV
+CDLXIX
+CDLXV
+CDLXVI
+CDLXVII
+CDLXVIII
+CDLXX
+CDLXXI
+CDLXXII
+CDLXXIII
+CDLXXIV
+CDLXXIX
+CDLXXV
+CDLXXVI
+CDLXXVII
+CDLXXVIII
+CDLXXX
+CDLXXXI
+CDLXXXII
+CDLXXXIII
+CDLXXXIV
+CDLXXXIX
+CDLXXXV
+CDLXXXVI
+CDLXXXVII
+CDLXXXVIII
+CDU
+CDV
+CDVI
+CDVII
+CDVIII
+CDX
+CDXC
+CDXCI
+CDXCII
+CDXCIII
+CDXCIV
+CDXCIX
+CDXCV
+CDXCVI
+CDXCVII
+CDXCVIII
+CDXI
+CDXII
+CDXIII
+CDXIV
+CDXIX
+CDXL
+CDXLI
+CDXLII
+CDXLIII
+CDXLIV
+CDXLIX
+CDXLV
+CDXLVI
+CDXLVII
+CDXLVIII
+CDXV
+CDXVI
+CDXVII
+CDXVIII
+CDXX
+CDXXI
+CDXXII
+CDXXIII
+CDXXIV
+CDXXIX
+CDXXV
+CDXXVI
+CDXXVII
+CDXXVIII
+CDXXX
+CDXXXI
+CDXXXII
+CDXXXIII
+CDXXXIV
+CDXXXIX
+CDXXXV
+CDXXXVI
+CDXXXVII
+CDXXXVIII
+CDs
+CE
+CEERGS
+CEI
+CELEPAR
+CEP
+CETEF
+CF
+CGC
+CGD
+CGTP
+CI
+CIF
+CIG
+CII
+CIII
+CIP
+CISC
+CIV
+CIX
+CL
+CLI
+CLII
+CLIII
+CLIV
+CLIX
+CLT
+CLV
+CLVI
+CLVII
+CLVIII
+CLX
+CLXI
+CLXII
+CLXIII
+CLXIV
+CLXIX
+CLXV
+CLXVI
+CLXVII
+CLXVIII
+CLXX
+CLXXI
+CLXXII
+CLXXIII
+CLXXIV
+CLXXIX
+CLXXV
+CLXXVI
+CLXXVII
+CLXXVIII
+CLXXX
+CLXXXI
+CLXXXII
+CLXXXIII
+CLXXXIV
+CLXXXIX
+CLXXXV
+CLXXXVI
+CLXXXVII
+CLXXXVIII
+CMI
+CMII
+CMIII
+CMIV
+CMIX
+CML
+CMLI
+CMLII
+CMLIII
+CMLIV
+CMLIX
+CMLV
+CMLVI
+CMLVII
+CMLVIII
+CMLX
+CMLXI
+CMLXII
+CMLXIII
+CMLXIV
+CMLXIX
+CMLXV
+CMLXVI
+CMLXVII
+CMLXVIII
+CMLXX
+CMLXXI
+CMLXXII
+CMLXXIII
+CMLXXIV
+CMLXXIX
+CMLXXV
+CMLXXVI
+CMLXXVII
+CMLXXVIII
+CMLXXX
+CMLXXXI
+CMLXXXII
+CMLXXXIII
+CMLXXXIV
+CMLXXXIX
+CMLXXXV
+CMLXXXVI
+CMLXXXVII
+CMLXXXVIII
+CMP
+CMV
+CMVI
+CMVII
+CMVIII
+CMVM
+CMX
+CMXC
+CMXCI
+CMXCII
+CMXCIII
+CMXCIV
+CMXCIX
+CMXCV
+CMXCVI
+CMXCVII
+CMXCVIII
+CMXI
+CMXII
+CMXIII
+CMXIV
+CMXIX
+CMXL
+CMXLI
+CMXLII
+CMXLIII
+CMXLIV
+CMXLIX
+CMXLV
+CMXLVI
+CMXLVII
+CMXLVIII
+CMXV
+CMXVI
+CMXVII
+CMXVIII
+CMXX
+CMXXI
+CMXXII
+CMXXIII
+CMXXIV
+CMXXIX
+CMXXV
+CMXXVI
+CMXXVII
+CMXXVIII
+CMXXX
+CMXXXI
+CMXXXII
+CMXXXIII
+CMXXXIV
+CMXXXIX
+CMXXXV
+CMXXXVI
+CMXXXVII
+CMXXXVIII
+CNDA
+CNE
+CNN
+CNPJ
+CNPq
+COAF
+COFINS
+COI
+CONIN
+CONMETRO
+CONTRAN
+CP
+CPC
+CPF
+CPI
+CPK
+CPLP
+CPMF
+CPP
+CRIL
+CRP
+CSCE
+CTN
+CTPS
+CTT
+CV
+CVI
+CVII
+CVIII
+CX
+CXC
+CXCI
+CXCII
+CXCIII
+CXCIV
+CXCIX
+CXCV
+CXCVI
+CXCVII
+CXCVIII
+CXI
+CXII
+CXIII
+CXIV
+CXIX
+CXL
+CXLI
+CXLII
+CXLIII
+CXLIV
+CXLIX
+CXLV
+CXLVI
+CXLVII
+CXLVIII
+CXV
+CXVI
+CXVII
+CXVIII
+CXX
+CXXI
+CXXII
+CXXIII
+CXXIV
+CXXIX
+CXXV
+CXXVI
+CXXVII
+CXXVIII
+CXXX
+CXXXI
+CXXXII
+CXXXIII
+CXXXIV
+CXXXIX
+CXXXV
+CXXXVI
+CXXXVII
+CXXXVIII
+Ca�apava
+Ca�m
+Caacala
+Caapor�
+Caapotyragu�
+Caapu�
+Caarap�
+Caasli
+Caatiba
+Cabaleiro
+Cabanelas
+Cabayba
+Cabom
+Cabr�lia
+Cabral
+Cabre�va
+Cabrob�
+Cabul
+Cabzeel
+Cac�
+Cac�m
+Cacaul�ndia
+Cacequi
+Cachoeirinha
+Cacildo
+Cacilhas
+Cacilie
+Cacimbinhas
+Cacoal
+Caconde
+Cacul�
+Cades-Barn�ia
+Cadmiel
+Cadu
+Caetan�polis
+Caetano
+Caetit�
+Cafarnaum
+Cafeara
+Cafel�ndia
+Caftor
+Caftorim
+Cai�
+Cai�uara
+Caiabu
+Caibat�
+Caibi
+Caico
+Caimans
+Cain�
+Caique
+Caira
+Cairu
+Caitano
+Caitlina
+Caiubi
+Caius
+Cajamar
+Cajapi�
+Cajari
+Cajobi
+Cal�oene
+Cal�maco
+Calanta
+Calatrava
+Calazanz
+Calcol
+Calcut�
+Caldazinha
+Caldelas
+Calebe
+Calhamares
+Caliane
+Calidora
+Caliel
+Calil
+Calim�rio
+Calipo
+Calistene
+Calistro
+Calixte
+Calixto
+Calmon
+Caloi
+Calp�rnio
+Caludinho
+Calvin
+Cama�ari
+Camacho
+Camael
+Camala�
+Camamu
+Camanducaia
+Camapu�
+Camaragibe
+Camargo
+Camata
+Camb�
+Camberra
+Cambira
+Cambises
+Camboat�
+Cambodja
+Camboja
+Cambori�
+Cambri
+Cambridge
+Cambu�
+Cambuc�
+Cambuci
+Cambuquira
+Camele�ntidas
+Camet�
+Camilo
+Caminho�
+Camiro
+Camocim
+Camom
+Camp�nia
+Campanari
+Campanh�
+Campelo
+Campin�polis
+Campina�u
+Campinorte
+Campisa
+Camutanga
+Can�
+Can�polis
+Cana�
+Canabarro
+Canabis
+Canabrava
+Canad�
+Canale
+Canapi
+Canarana
+Canario
+Canaveral
+Canaveses
+Canciano
+Cancinila
+Cand�i
+Candace
+Candiba
+Candide
+Candiota
+Cane
+Canedo
+Canef�rias
+Canefora
+Canguaretama
+Canhoba
+Canind�
+Canitar
+Cannes
+Canopeia
+Canopus
+Cant�bria
+Cant�dio
+Cant�lio
+Cantagalo
+Cantanhede
+Cantu�ria
+Cantu
+Canutama
+Canute
+Capad�cia
+Capanema
+Capara�
+Caparica
+Capetinga
+Capibaribe
+Capiberibe
+Capin�polis
+Capistrano
+Capitu
+Capivari
+Capotyra
+Capr�nia
+Capra
+Caprin�deos
+Caputira
+Caputo
+Car�ntia
+Car�sio
+Car�
+Cara�
+Cara�
+Cara�bas
+Caracara�
+Carachi
+Caraguatatuba
+Carambe�
+Carana�ba
+Caranda�
+Carandiru
+Carangola
+Carap�
+Carapebus
+Carapicu�ba
+Carapitanga
+Caratinga
+Carauari
+Carayba
+Carazinho
+Carbonita
+Carca
+Cardoso
+Carea�u
+Cari�s
+Cariacica
+Cariberto
+Carine
+Carinhanha
+Carir�
+Carira
+Cariria�u
+Carissa
+Caritina
+Carl�polis
+Carlene
+Carlinda
+Carline
+Carlinha
+Carlinhos
+Carlito
+Carlo
+Carlomagno
+Carlomano
+Carlote
+Carloto
+Carm�lia
+Carm�sia
+Carm�polis
+Carmelindo
+Carmelino
+Carmem
+Carmencita
+Carmenta
+Carmi
+Carminda
+Carmita
+Carmo
+Carmol�ndia
+Carmosina
+Carna�ba
+Carnaim
+Carnamagia
+Carnegie
+Carniano
+Caroba
+Caroebe
+Carol
+Carole
+Caroline
+Caronte
+Carquemis
+Carrazeda
+Carrel
+Carriacou
+Carriel
+Carrol
+Cartagena
+Cartago
+Caruana
+Carula
+Carupano
+Caruso
+Carutapera
+Carvajal
+Carvalh�polis
+Cas�rio
+Casablanca
+Casadei
+Casagrande
+Casandra
+Casculo
+Casifia
+Casilda
+Casimir
+Casluim
+Caspar
+Cassal
+Cassandro
+Casserengue
+Cassiane
+Cassiano
+Cassil�ndia
+Cassildo
+Cassinga
+Cassiodoro
+Cassiop�ia
+Cassius
+Castel�ndia
+Castel
+Castelar
+Castora
+Castorinho
+Castorino
+Castries
+Cat�nia
+Cat�te
+Cataguases
+Cataldo
+Cataline
+Catalunha
+Catarine
+Catate
+Catende
+Catigu�
+Catmandu
+Catol�ndia
+Catol�
+Catone
+Catos
+Catu�pe
+Catu
+Catuji
+Catumbi
+Catunda
+Catura�
+Caturama
+Caturit�
+Catuti
+Cau�
+Cauanne
+Caubi
+Caucaia
+Cavalcante
+Cavati
+Caxambu
+Caxang�
+Caxing�
+Cazaquist�o
+Cazerim
+Cazim
+Cazuza
+Cebeles
+Cecatti
+Ceci
+Cecile
+Cecilia
+Cecrope
+Cedar
+Cedofeita
+Cedral
+Cedrom
+Cefas
+Cefira
+Ceil�o
+Cel�o
+Cel�sia
+Celene
+Celerin
+Celestin
+Celi
+Celie
+Celine
+Celino
+Celiste
+Celmiro
+Celorico
+Celsius
+Cencr�ia
+Cendi
+Cendira
+Centralina
+Ceratit�deos
+Ceroni
+Cerquilho
+Cerrito
+Certeau
+Cervantes
+Cerveira
+Cesar�ia
+Cesaria
+Cesarone
+Cesca
+Cesinha
+Cesira
+Cetes
+Ceuta
+Cezarina
+Chade
+Chaim
+Chalassa
+Chalita
+Chan
+Chanchu
+Chandler
+Chang
+Chantal
+Chapec�
+Charis
+Charlene
+Charlier
+Charmontiano
+Chau�
+Chaval
+Chavantes
+Checoslov�quia
+Chianca
+Chiapeta
+Chiaradia
+Chibolete
+Chicago
+Childerico
+Ching
+Chipre
+Chogloctuz
+Choiti
+Chopinzinho
+Chor�
+Chorozinho
+Chorroch�
+Chupinguaia
+Chutro
+Cianorte
+Cibele
+Cicer�o
+Cicinho
+Cid�lia
+Cidel�ndia
+Cil�cia
+Cilea
+Cilene
+Cilvandro
+Cimbros
+Cin�pidas
+Cinar�ceas
+Cinara
+Cincinato
+Cinderela
+Cinegiro
+Cinf�es
+Cingapura
+Cintra
+Cipi�o
+Cipo�na
+Cipot�nea
+Cipr�nidas
+Cipriano
+Cips�lidas
+Cir�nio
+Cir�aco
+Cirano
+Cirene
+Cireno
+Cirilo
+Cirineu
+Cirino
+Cirne
+Ciro
+Citin�ceas
+Cl�ria
+Cl�cio
+Cl�ia
+Cl�lio
+Cl�mence
+Cl�o
+Cl�opas
+Cl�ver
+Cl�cie
+Cl�maco
+Cl�mene
+Cl�nio
+Cl�tarco
+Cl�dio
+Cl�e
+Cl�vis
+Claire
+Claito
+Clar�ncio
+Claraval
+Clarence
+Clarice
+Clarimundo
+Clarindo
+Clarisse
+Claude
+Claudel
+Claudemir
+Claudete
+Claudiano
+Claudie
+Claudine
+Claudionor
+Cle�bulo
+Cle�maco
+Cle�patra
+Cle�mbroto
+Cle�menes
+Cle�nidas
+Cleandro
+Cleanto
+Clearco
+Cleber
+Cleide
+Cleidson
+Clemen�o
+Clemenciano
+Clenilce
+Cleodoro
+Cleom�nia
+Cleomedes
+Cleon�ncio
+Cleonice
+Cleonir
+Cleopt�lemo
+Clete
+Cleto
+Cleuza
+Clevel�ndia
+Clim�rio
+Clim�maco
+Clio
+Clistenes
+Clito
+Clo�
+Clodoaldo
+Clodolfo
+Clodomiro
+Clodorico
+Clodoveu
+Clodovico
+Clodovil
+Clodoviu
+Clodulfo
+Clopas
+Clorinda
+Clostridium
+Clot�rio
+Clotilde
+Coaraci
+Coaracyara�
+Coari
+Cocalinho
+Cod�
+Codaj�s
+Codomano
+Coiguara
+CoimbraO
+Coit�
+Coitezeiro
+Col�der
+Col�mbia
+Col�mbia
+Cola�as
+Colberto
+Colene
+Colmano
+Colodino
+Colomano
+Colombano
+Colombe
+Colvara
+Conde�ba
+Condeixa
+Conf�cio
+Confresa
+Coni�
+Conias
+Conradinho
+Conrado
+Constan�a
+Constance
+Constantinopla
+Constantinus
+Consuelo
+Contardo
+Cop�rdia
+Copacabana
+Copenhaga
+Copenhague
+Copertino
+Cor�lia
+Cor�
+Coras�
+Corazim
+Corb�
+Corb�lia
+Corba
+Corbiniano
+Cord�lia
+Cordeir�polis
+Cordisburgo
+Cordisl�ndia
+Corea�
+Corguinho
+Coribaba
+Coribe
+Corinebacterium
+Corinthians
+Corn�lia
+Coromandel
+Corr�a
+Corral
+Correntina
+Corsi
+Cortez
+Corumb�
+Corumba�ba
+Corumbata�
+Corumbiara
+Corup�
+Coruripe
+Cos�
+Cosme
+Costanobre
+Cotegipe
+Cotipor�
+Cotrigua�u
+Coutinho
+Couviniano
+Covilh�
+Cox
+Coxixola
+Coz
+Cozeba
+Cr�tero
+Cr�ssida
+Cr�spulo
+Cr�stias
+Cr
+Cra�bas
+Cranau
+Crate�s
+Crates
+Cravol�ndia
+Cred�
+Cresc�ncio
+Crescenciano
+Crescentino
+Crescenzio
+Creso
+Creteu
+Creusa
+Cribari
+Crici�ma
+Crimeia
+Crinis
+Cript�fita
+Cris�gono
+Cris�malo
+Cris�polis
+Crisniano
+Crispim
+Crispiniano
+Crispino
+Crispinus
+Crissiumal
+Crist�lia
+Crist�foro
+Crist�polis
+Crist�v�o
+Cristal�ndia
+Cristian�polis
+Cristiane
+Cristiano
+Cristin�polis
+Cristininha
+Cristodoro
+Cristolino
+Crix�s
+Croat�
+Crom�nia
+Crucil�ndia
+Cruz�lia
+Cruz�lia
+Cruzi
+Cruzmaltina
+Cubat�o
+Cubati
+Cuiab�
+Cuitegi
+Cujubim
+Cumaru
+Cumbe
+Cumbica
+Cunene
+Cunhambebe
+Cunhata�
+Cuparaque
+Cupelo
+Cupertino
+Cupira
+Cura��
+Cura�ao
+Curdist�o
+Curi�cio
+Curi�cios
+Curiati
+Curimat�
+Curion�polis
+Curitiba
+Curituba
+Curralinho
+Curricula
+Cursino
+Curu�
+Curu��
+Curu
+Cururupeba
+Cururupu
+Curvel�ndia
+Curvelo
+Cus�
+Cusa�as
+Cusi
+Cust�ias
+Cuxe
+Cuza
+Cyprianus
+Cz
+D�cia
+D�lton
+D�maso
+D�mocles
+D�rio
+D�vila
+D�maris
+D�a
+D�bora
+D�cio
+D�li
+D�lcio
+D
+D.
+DC
+DCC
+DCCC
+DCCCI
+DCCCII
+DCCCIII
+DCCCIV
+DCCCIX
+DCCCL
+DCCCLI
+DCCCLII
+DCCCLIII
+DCCCLIV
+DCCCLIX
+DCCCLV
+DCCCLVI
+DCCCLVII
+DCCCLVIII
+DCCCLX
+DCCCLXI
+DCCCLXII
+DCCCLXIII
+DCCCLXIV
+DCCCLXIX
+DCCCLXV
+DCCCLXVI
+DCCCLXVII
+DCCCLXVIII
+DCCCLXX
+DCCCLXXI
+DCCCLXXII
+DCCCLXXIII
+DCCCLXXIV
+DCCCLXXIX
+DCCCLXXV
+DCCCLXXVI
+DCCCLXXVII
+DCCCLXXVIII
+DCCCLXXX
+DCCCLXXXI
+DCCCLXXXII
+DCCCLXXXIII
+DCCCLXXXIV
+DCCCLXXXIX
+DCCCLXXXV
+DCCCLXXXVI
+DCCCLXXXVII
+DCCCLXXXVIII
+DCCCV
+DCCCVI
+DCCCVII
+DCCCVIII
+DCCCX
+DCCCXC
+DCCCXCI
+DCCCXCII
+DCCCXCIII
+DCCCXCIV
+DCCCXCIX
+DCCCXCV
+DCCCXCVI
+DCCCXCVII
+DCCCXCVIII
+DCCCXI
+DCCCXII
+DCCCXIII
+DCCCXIV
+DCCCXIX
+DCCCXL
+DCCCXLI
+DCCCXLII
+DCCCXLIII
+DCCCXLIV
+DCCCXLIX
+DCCCXLV
+DCCCXLVI
+DCCCXLVII
+DCCCXLVIII
+DCCCXV
+DCCCXVI
+DCCCXVII
+DCCCXVIII
+DCCCXX
+DCCCXXI
+DCCCXXII
+DCCCXXIII
+DCCCXXIV
+DCCCXXIX
+DCCCXXV
+DCCCXXVI
+DCCCXXVII
+DCCCXXVIII
+DCCCXXX
+DCCCXXXI
+DCCCXXXII
+DCCCXXXIII
+DCCCXXXIV
+DCCCXXXIX
+DCCCXXXV
+DCCCXXXVI
+DCCCXXXVII
+DCCCXXXVIII
+DCCI
+DCCII
+DCCIII
+DCCIV
+DCCIX
+DCCL
+DCCLI
+DCCLII
+DCCLIII
+DCCLIV
+DCCLIX
+DCCLV
+DCCLVI
+DCCLVII
+DCCLVIII
+DCCLX
+DCCLXI
+DCCLXII
+DCCLXIII
+DCCLXIV
+DCCLXIX
+DCCLXV
+DCCLXVI
+DCCLXVII
+DCCLXVIII
+DCCLXX
+DCCLXXI
+DCCLXXII
+DCCLXXIII
+DCCLXXIV
+DCCLXXIX
+DCCLXXV
+DCCLXXVI
+DCCLXXVII
+DCCLXXVIII
+DCCLXXX
+DCCLXXXI
+DCCLXXXII
+DCCLXXXIII
+DCCLXXXIV
+DCCLXXXIX
+DCCLXXXV
+DCCLXXXVI
+DCCLXXXVII
+DCCLXXXVIII
+DCCV
+DCCVI
+DCCVII
+DCCVIII
+DCCX
+DCCXC
+DCCXCI
+DCCXCII
+DCCXCIII
+DCCXCIV
+DCCXCIX
+DCCXCV
+DCCXCVI
+DCCXCVII
+DCCXCVIII
+DCCXI
+DCCXII
+DCCXIII
+DCCXIV
+DCCXIX
+DCCXL
+DCCXLI
+DCCXLII
+DCCXLIII
+DCCXLIV
+DCCXLIX
+DCCXLV
+DCCXLVI
+DCCXLVII
+DCCXLVIII
+DCCXV
+DCCXVI
+DCCXVII
+DCCXVIII
+DCCXX
+DCCXXI
+DCCXXII
+DCCXXIII
+DCCXXIV
+DCCXXIX
+DCCXXV
+DCCXXVI
+DCCXXVII
+DCCXXVIII
+DCCXXX
+DCCXXXI
+DCCXXXII
+DCCXXXIII
+DCCXXXIV
+DCCXXXIX
+DCCXXXV
+DCCXXXVI
+DCCXXXVII
+DCCXXXVIII
+DCI
+DCII
+DCIII
+DCIV
+DCIX
+DCL
+DCLI
+DCLII
+DCLIII
+DCLIV
+DCLIX
+DCLV
+DCLVI
+DCLVII
+DCLVIII
+DCLX
+DCLXI
+DCLXII
+DCLXIII
+DCLXIV
+DCLXIX
+DCLXV
+DCLXVI
+DCLXVII
+DCLXVIII
+DCLXX
+DCLXXI
+DCLXXII
+DCLXXIII
+DCLXXIV
+DCLXXIX
+DCLXXV
+DCLXXVI
+DCLXXVII
+DCLXXVIII
+DCLXXX
+DCLXXXI
+DCLXXXII
+DCLXXXIII
+DCLXXXIV
+DCLXXXIX
+DCLXXXV
+DCLXXXVI
+DCLXXXVII
+DCLXXXVIII
+DCV
+DCVI
+DCVII
+DCVIII
+DCX
+DCXC
+DCXCI
+DCXCII
+DCXCIII
+DCXCIV
+DCXCIX
+DCXCV
+DCXCVI
+DCXCVII
+DCXCVIII
+DCXI
+DCXII
+DCXIII
+DCXIV
+DCXIX
+DCXL
+DCXLI
+DCXLII
+DCXLIII
+DCXLIV
+DCXLIX
+DCXLV
+DCXLVI
+DCXLVII
+DCXLVIII
+DCXV
+DCXVI
+DCXVII
+DCXVIII
+DCXX
+DCXXI
+DCXXII
+DCXXIII
+DCXXIV
+DCXXIX
+DCXXV
+DCXXVI
+DCXXVII
+DCXXVIII
+DCXXX
+DCXXXI
+DCXXXII
+DCXXXIII
+DCXXXIV
+DCXXXIX
+DCXXXV
+DCXXXVI
+DCXXXVII
+DCXXXVIII
+DF
+DI
+DIEESE
+DII
+DIII
+DIS
+DIV
+DIX
+DJ
+DJU
+DLI
+DLII
+DLIII
+DLIV
+DLIX
+DLV
+DLVI
+DLVII
+DLVIII
+DLX
+DLXI
+DLXII
+DLXIII
+DLXIV
+DLXIX
+DLXV
+DLXVI
+DLXVII
+DLXVIII
+DLXX
+DLXXI
+DLXXII
+DLXXIII
+DLXXIV
+DLXXIX
+DLXXV
+DLXXVI
+DLXXVII
+DLXXVIII
+DLXXX
+DLXXXI
+DLXXXII
+DLXXXIII
+DLXXXIV
+DLXXXIX
+DLXXXV
+DLXXXVI
+DLXXXVII
+DLXXXVIII
+DNA
+DOC
+DPOC
+DPT
+DV
+DVI
+DVII
+DVIII
+DX
+DXC
+DXCI
+DXCII
+DXCIII
+DXCIV
+DXCIX
+DXCV
+DXCVI
+DXCVII
+DXCVIII
+DXI
+DXII
+DXIII
+DXIV
+DXIX
+DXL
+DXLI
+DXLII
+DXLIII
+DXLIV
+DXLIX
+DXLV
+DXLVI
+DXLVII
+DXLVIII
+DXV
+DXVI
+DXVII
+DXVIII
+DXX
+DXXI
+DXXII
+DXXIII
+DXXIV
+DXXIX
+DXXV
+DXXVI
+DXXVII
+DXXVIII
+DXXX
+DXXXI
+DXXXII
+DXXXIII
+DXXXIV
+DXXXIX
+DXXXV
+DXXXVI
+DXXXVII
+DXXXVIII
+Daciano
+Dadr�
+Dafn�
+Dafn�idas
+Dafni�deos
+Dagmar
+Dago
+Dagoberto
+Dagom
+Daiana
+Daima
+Dala�as
+Dale
+Dalia
+Dalila
+Dalita
+Dalm�cia
+Dalmanuta
+Dalmiro
+Dalmo
+Daltivo
+Dalva
+Dalvina
+Dalziza
+Dam�sio
+Dam�o
+Damarina
+Dami�o
+Damian�polis
+Damiano
+Damol�ndia
+Dan�bio
+Dan�sa
+Dandara
+Danelise
+Daniano
+Daniel
+Daniele
+Danilo
+Dantas
+Dantinho
+Danton
+Danuta
+Daom�
+Dara
+Darci
+Darcin�polis
+Darcom
+Dardanelos
+Dardano
+Dariana
+Darlene
+Darlise
+Daros
+Darvin
+Darvina
+Darwin
+Dasi�ridas
+Dasip�didas
+Dasipod�deos
+Dasiur�deos
+Davi
+David
+Davidson
+Davin�polis
+Davino
+Dayse
+Dec�pole
+Dec�polis
+Decamer�o
+Decaro
+Deise
+Dela�as
+Delamare
+Delf�nidas
+Delfin�polis
+Delfino
+Delfos
+Delila
+Delma
+Delmar
+Delmiro
+Delourdes
+Delza
+Dem�ter
+Dem�trio
+Dem�crates
+Dem�crito
+Dem�dico
+Dem�doco
+Dem�stenes
+Demades
+Demar
+Demarato
+Demelza
+Demerval
+Demetriano
+Demi
+Dena
+Denilson
+Denise
+Denivaldo
+Deocl�cio
+Deocleciano
+Deod�polis
+Deodato
+Deodoro
+Deogr�cias
+Deolindo
+Dep.
+Derlinda
+Dermest�deos
+Dermeval
+Dernival
+Desemb.
+Desid�rio
+Detroit
+Di�lia
+Di�neces
+Di�genes
+Di�scoro
+Di�trefes
+Dian�polis
+Diane
+Dido
+Diego
+Dilermando
+Dilma
+Dilmar
+Dilza
+Dimitri
+Din�
+Din�sio
+Dinab�
+Dinalva
+Dinamarco
+Dinarte
+Diniz
+Dinor�
+Diocl�cio
+Diocl�ia
+Diocleciano
+Diodoro
+Diofanto
+Diogo
+Dioguina
+Diomar
+Diomedes
+Dion�a
+Dione
+Dioniro
+Dionysius
+Dips�ceas
+Dirce
+Dirceu
+Divaldo
+Divin�sia
+Divin�polis
+Divinol�ndia
+Divis�polis
+DjalmaO
+Djamena
+Djanira
+Djavan
+Djibuti
+Dolar�cio
+Dolc�dio
+Dolcin�polis
+Dolcina
+Dom�nico
+Dom�cio
+Domiciano
+Dominica
+Dominique
+Domiriano
+Domitila
+Domno
+Don�rio
+Don
+Donaciano
+Donaldo
+Dores�polis
+Doriano
+Dorina
+Dorinda
+Dorinha
+Dorot�ia
+Dorot�o
+Douglas
+Douradina
+Douradoquara
+Dourival
+Doverl�ndia
+Dpto.
+Dra.
+Drisana
+Dromice�deos
+Droser�ceas
+Drummond
+Du�la
+Du�lio
+Duarte
+Duartina
+Dulc�dio
+Dulce
+Dulcelene
+Dulcelina
+Dulcie
+Dulcilene
+Dulcin�a
+Dulcino
+Dumar�
+Duncan
+Dunga
+Dunia
+Dunquerque
+Durand�
+Durval
+Durvalino
+E�cido
+E�a�
+E�a�na
+E�a
+E�abara
+E�araia
+E.
+EC
+EDP
+EFTA
+EN
+ES
+ESA
+ETAR
+EUA
+EXM�.
+EXM�.
+EXO
+Ebe
+Eben�zer
+Eberardina
+Eberardo
+Eberarto
+Ebes
+Ebiasafe
+Ebraim
+Ebro
+Ebru
+Echapor�
+Ecl�ia
+Eclesiastes
+Ecocuaba
+Ecomonhanga
+Ecoporanga
+Ecrom
+Ed�ia
+Ed�sio
+Ed�lio
+Edberto
+Edealina
+Edegar
+Edel
+Edelberto
+Edeleine
+Edelfrida
+Edeline
+Edelmar
+Edelmira
+Edeltrudes
+Edemar
+Edgar
+Edgardo
+Edila
+Edilberto
+Edilene
+Edileusa
+Edilia
+Edilson
+Edimburgo
+Edimercia
+Ediraldo
+Edissa
+Edivaldo
+Edm�lson
+Edmagna
+Edmar
+Edmo
+Edmondo
+Edmundo
+Ednaldo
+Ednalva
+Ednei
+Ednilson
+Edno
+Edoardo
+Edom
+Edrealdo
+Edrei
+Edson
+Edu�no
+Edu
+Eduardo
+Edvaldo
+Edvino
+Ef�
+Efat�
+Efig�nio
+Efraim
+Efrate
+Egbaldo
+Egberto
+Eginardo
+Egipto
+Egito
+Eguinardo
+Eiffel
+Einardo
+Eirunep�
+El�dio
+El�o
+El�usis
+El�cio
+El�gio
+El�i
+Elaine
+Elane
+Eldoro
+Eleanor
+Eleaquim
+Eleonor
+Eleonore
+Elesb�o
+Eletrobr�s
+Eli�zer
+Eliane
+Eliano
+Eliaquim
+Elice
+Eliel
+Elienai
+Eliete
+Eliezer
+Elifaz
+Elimas
+Elimeleque
+Elis�rio
+Elis�ngela
+Elisabete
+Elisandra
+Elisb�o
+Elise
+Elisete
+Eliseu
+Elisi�rio
+Elissa
+Elma
+Elmad�
+Elmano
+Elmiro
+Elo�
+Eloim
+Elvino
+Elvire
+Elviro
+Em�rico
+Em�lio
+Emanuel
+Emanuele
+Emater
+Emba�ba
+Embrapa
+Embratel
+Embratur
+Embu
+Emer�ncio
+Emerenciano
+Emerentiana
+Emilian�polis
+Emiline
+En�as
+En�dio
+Enedina
+Eng
+Eng.�
+Eng.�
+Eng.
+Engelberto
+Engr�cio
+Enos
+Enriqueta
+Er�clio
+Er�neas
+Eraldo
+Erasmo
+Erc�lio
+Eremildo
+ErenaldoPO
+Erenilda
+Eriberto
+Erinaldo
+Erm�nio
+Erm�rio
+Ermelinda
+Ermelino
+Ermengarda
+Ermesindo
+Ermino
+Ern�ni
+Ern�
+Ernestine
+Ernesto
+Erondino
+Ers�lio
+Erv�lia
+Ervino
+Es�
+Es�dio
+Esa�
+Esb�
+Escandin�via
+Escarabeidas
+Escobar
+Escorp�nidas
+Escrib�nio
+Esdaras
+Esdra
+Eslov�nia
+Esm�ria
+Esmeriano
+Esp�ridas
+Esp�rtaco
+Esp�ndola
+Esp�nola
+Esp.
+Espanha
+Esparta
+Esperantin�polis
+Esperantina
+Esperidi�o
+Espin�cidas
+Espinac�deos
+Espinosa
+Espiridi�o
+Est�cio
+Est�nio
+Est�v�o
+Est�ria
+Est�nio
+Est�nia
+Estaline
+Estalinegrado
+Estancinha
+Estanislau
+Estelazinha
+Estelinha
+Estelita
+Ester
+Estern�deos
+Estocolmo
+Estrasburgo
+Et�ocles
+Etelberto
+Etelvino
+Eter
+Etevaldo
+Eti�pia
+Euc�rio
+Eucl�ia
+Euclides
+Eud�ria
+Eud�ssio
+Eud�xio
+Eudemo
+Eudes
+Eudine
+EudorR
+Eudorico
+Euf�mio
+Eufr�sio
+Eufrates
+Eufrone
+Eufrosino
+Eug�mio
+Eug�nio
+Eugen�polis
+Eugeniano
+Eul�dio
+Eul�lio
+Euler
+Eulino
+Eum�nio
+Eum�nis
+Eun�pio
+Eun�polis
+Eun�cio
+Eunice
+Euniciano
+Eur�sia
+Eur�alo
+Eur�bio
+Eur�dice
+Eur�maco
+Eur�ndio
+Eur�pede
+Eur�pides
+Eurib�ades
+Euricl�ia
+Euricles
+Eurico
+Eurides
+Eurodo
+Europa
+Europarlamento
+Eus�bio
+Eust�quio
+Eust�rgio
+Eut�lio
+Eut�crates
+Eutuber�ceas
+Euvaldo
+Euz�bio
+Ev�ngelo
+Ev�lio
+Ev�ncio
+Ev�dio
+Evair
+Evaldo
+Evaline
+Evandro
+Evangelino
+Evanildo
+Evanina
+Evanira
+Evariste
+Evaristo
+Eveline
+Evelise
+Everaldino
+Everaldo
+Everardo
+Everest
+Evil�sio
+Exa.
+Ez�m
+Ezel
+Ezelino
+Ezeque
+Ezequias
+Ezequiel
+Ezer
+Eziom
+F�bio
+F�lix
+F�lvio
+FAB
+FAO
+FAP
+FBI
+FC
+FCP
+FCUP
+FCVS
+FEBRABAN
+FENABAN
+FEO
+FGTS
+FGV
+FILs
+FM
+FMI
+FOS
+FPF
+FSF
+Fab�ola
+Fabiane
+Fabinho
+Fabr�cio
+Fabr�zio
+Fagundo
+Fal�pio
+Falc�dio
+Farol�ndia
+Faustiniano
+Fedato
+Federico
+Feij�
+Feitosa
+Fel�cio
+Feliciano
+Felinto
+Felipe
+Felisbelo
+Felisberto
+Felisbino
+Felisburgo
+Felismino
+Felixl�ndia
+Ferdinando
+Fermo
+Fern�o
+Fernand�polis
+Fernandes
+Fernandinha
+FernandoPOVW
+Ferrari
+Ferraz
+Fess�nia
+Fev.
+Fi�crio
+Fid�lio
+Fid�lis
+Fid�nciano
+Fid�ncio
+Fidel
+Fidelino
+Figueir�o
+Figueir�
+Figueir�polis
+Figueredo
+Fil�nico
+Filad�lfia
+Filaletes
+Filem�o
+Filemon
+Filiberto
+Filinto
+Finl�ndia
+Fl�vio
+Fl�rida
+Flauzino
+Flaviano
+Flavina
+Flodoaldo
+Flor�nia
+Florbela
+Floren�o
+Florence
+Florenciano
+Florest�polis
+Florestano
+Florian�polis
+Florinda
+Florino
+Florisbela
+Florismundo
+Florisvaldo
+Florival
+Fonseca
+Fontoura
+Fort�nio
+Fortunato
+Fr�is
+Fraiburgo
+Franc�lio
+Francelino
+Frances
+Francesco
+Francin�polis
+Francine
+Francisc�polis
+Frankfurt
+Fraz�o
+Fredegundo
+Frederico
+Friburgo
+Fridolino
+Frieda
+Frontiniano
+Fulberto
+Fulg�ncio
+Funil�ndia
+G�brio
+G�lio
+G�rson
+G�sio
+G�ncio
+G�ngora
+G.
+GATT
+GH
+GNR
+GO
+GP
+GPL
+Gab�nio
+Gabeira
+Gaborone
+GabrielR
+Gabriele
+Gadiel
+Gaet�
+Gaetano
+Gal�cia
+Gal�sio
+Gal�rio
+Galag�deos
+Galambos
+Galassi
+Galdo
+Galiano
+Galieno
+Galindo
+Galv�o
+Gamaliel
+Gamboarota
+Gandolfo
+Ganges
+Garamb�u
+Gararu
+Garatuba
+Garcez
+Garcia
+Garcindo
+Gardner
+Garibaldi
+Garopaba
+Garruchos
+Gaud�ncio
+Gaudiano
+Gaurama
+Gavino
+Ge�rgio
+Gebal
+Gedalias
+Gede�o
+Geder�
+Geisel
+Geison
+Gelmiro
+Gelsomino
+Gelvira
+Gem�nio
+Gen�sio
+Genaro
+Genebaldo
+Genesar�
+Genildo
+Genito
+Genival
+Genivaldo
+Geno�no
+George
+Georgete
+Georgine
+Georgino
+Geovani
+Ger�s
+Ger�lamo
+Ger�ncio
+Ger�ncio
+Geraldes
+Geraldine
+Geraldo
+Gerardo
+Gerberto
+Gercino
+Geremaro
+Geremia
+Germiniano
+Geron
+Gerusa
+Gerute
+Gerv�sio
+Gervais
+Gervase
+Gervino
+Geslinda
+Gestapo
+Gesu�no
+Gesualdo
+Get�lio
+Gi�o
+Gi�como
+Giancarlo
+Gianfranco
+Gibe�
+Gibe�o
+Gibral
+Gibraltar
+Gibson
+Gidel
+Gilberto
+Gild�sio
+Gild�o
+Gildete
+Gildo
+GilmarR
+Gilsania
+Gilson
+Gilton
+Gilv�nia
+Gilvan
+Ginate
+Gines
+Gino
+Giobre
+Gioconda
+Giocondiano
+Giocondino
+Giordano
+Giorgino
+Giraldo
+Girardo
+Giru�
+Gis�lia
+Giselda
+Gisele
+Gislaine
+Gislane
+Gislene
+Gisleno
+Giuliano
+Givanildo
+Giz�
+Gl�uber
+Gl�lia
+Gl�nio
+Glacinda
+Gladistone
+Glauce
+Glaucil�ndia
+Gleice
+Gleide
+Gleusa
+Glorinha
+Goai�nia
+Goberto
+God�i
+Godardo
+Godofredo
+Godovino
+Godu�no
+Goi�nia
+Goiabal
+Goian�
+Goian�polis
+Goian�sia
+Goiandira
+Goianinha
+Goianira
+Goianorte
+Goiatins
+Goiatuba
+Goiim
+Goim
+Goioer�
+Goioxim
+Goitacases
+Gol�
+Gon�alo
+Gon�alves
+Gondolfo
+Gontijo
+Gontr�o
+Gonzaga
+Gonzaguinha
+Gonzales
+Goulart
+Gouveia
+Gouvel�ndia
+Gr�cio
+Gr�ndola
+Gr�cia
+Grac�lio
+Gracho
+Graciano
+Graciema
+Graciete
+Gracila
+Graciliano
+Gracindo
+Graciniano
+Graco
+Grageru
+Graham
+Graja�
+Gramsci
+Gratiniano
+Gratio
+Gratulino
+Gravat�
+Gravata�
+Gravatal
+Gravino
+Gravis
+Graz
+Graziano
+Graziela
+Greenwich
+Greg�rio
+Gregori
+Grimaldo
+Griselda
+Groa�ras
+Groenl�ndia
+Gronel�ndia
+Grupiara
+Gu�lter
+Gua�u�
+Gua�u
+Gua�ba
+Guabiju
+Guabiruba
+Guacira
+Guadalajara
+Guadalquivir
+Guadalupe
+Guadiana
+Guai�ara
+Guai�ba
+Guaiani
+Guaimb�
+Guaira��
+Guaixar�
+Guajeru
+Gualberto
+Gualt�rio
+Gualtar
+Gualtiero
+Guam�
+Guam
+Guamar�
+Guamiranga
+Guanabara
+Guanambi
+Guanh�es
+Guant�namo
+Guap�
+Guap�
+Guapia�u
+Guapiara
+Guapimirim
+Guapirama
+Guapor�
+Guapor�
+Guaporema
+Guar�obi
+Guara�a�
+Guara�
+Guara�ta
+Guarabira
+Guaraci
+Guaraciaba
+Guaraciama
+Guaraciba
+Guaramiranga
+Guaramirim
+Guaran�sia
+Guarania�u
+Guarapari
+Guarapiranta
+Guarapuava
+Guaraque�aba
+Guarar�
+Guararapes
+Guararema
+Guaratinga
+Guaratinguet�
+Guaratuba
+Guare�
+Guaru
+Guaruj�
+Guata�ara
+Guatamb�
+Guatapar�
+Guataporanga
+Guatemala
+Guattari
+Guaxup�
+Guayana
+Gudgod�
+Guercino
+Guerda
+Guerino
+Guevara
+Guga
+Gugelmin
+Guidinha
+Guidoval
+Guigiu
+Guilhermino
+Guimar�nia
+Guimar�es
+Guin�-Bissau
+Guinevere
+Guiomar
+Guiomarzinha
+Guiratinga
+Guiricema
+Guldalii
+Guliver
+Gurgel
+Gurgu�ia
+Gurinh�m
+Gurinhat�
+Gurj�o
+Gurup�
+Gurupi
+Gusm�o
+Gustavo
+Gutemberg
+Guzol�ndia
+H�lia
+H�ber
+H�cuba
+H�dia
+H�lber
+H�lcio
+H�lder
+H�rcules
+H�rica
+H�ber
+H�mero
+H.
+HAV
+HB
+HBS
+HBV
+HCG
+HCV
+HDL
+HDV
+HIS
+HIV
+HPV
+Haba�as
+Habacuque
+Habazinias
+Habermas
+Habor
+Habsburgos
+Habur
+Hacalias
+Hacat�
+Had�
+Hadade
+Hadadezer
+Hadar
+Hadassa
+Hadata
+Hadom
+Hador�o
+Hadraque
+Hafa
+Hafaraim
+Hagabe
+Hagar
+Hagi
+Hagias
+Hagri
+Haia
+Haiaiel
+Haid�
+Haifa
+Hail
+Haimon
+Hairote
+Haiti
+Hajar
+Hajime
+Halaque
+Hali
+Halim
+Halo�s
+Halul
+Hamal
+Hamaleque
+Hamas
+Hamate
+Hamburgo
+Hamilton
+Hamim
+Hamolequete
+Hamom
+Hamur�bi
+Hamutal
+Han�
+Han�bal
+Han�i
+Han�ver
+Hananel
+Hanani
+Hanbal
+Handel
+Hanes
+Hani
+Haniel
+Hanr�o
+Hans
+Hansel
+Hanuc�
+Haquer�m
+Haquerem
+Haquil�
+Har�s
+Har�
+Hara�as
+Harade
+Harahel
+Harare
+Harefe
+Hares.
+Haresete
+Hariberto
+Hariel
+Harim
+Haro�
+Haroldo
+Harosete
+Hartz
+Hasabias
+Hasabn�
+Hasabn�ias
+Hasadias
+Hasbadana
+Hasem
+Hasita
+Hasmona
+Hasor
+Hasub�
+Hasube
+Hasufa
+Hasum
+Hataav�
+Hatate
+Haticom
+Hatifa
+Hatil
+Hatim
+Hatita
+Haur�
+Hava�
+Havil�
+Havote
+Haza�as
+Hazael
+Hazar
+Hazarmav�
+Hazazom
+Hazebaim
+Hazel
+Hazelelponi
+Hazer
+Hazerote
+Haziel
+Hazim
+Hazine
+Hazo
+Hazor
+Hazurim
+Hebe
+Hecat�nquiros
+Hecate
+Hector
+Heda
+Hefer
+Hefesto
+Hefzib�
+HegarR
+Hegel
+Heide
+Heidi
+Heitor
+Heitora�
+Hel�
+Hel�dio
+Hel�
+Hel�m
+Helaine
+Helam
+Helba
+Helbom
+Helcai
+Helcate
+Helcias
+Heldai
+Hele
+Helede
+Helefe
+Helemenas
+Helen
+Heleonora
+Heleque
+Helez
+Helga
+Heli�polis
+Heli
+Heliberto
+Helicobacter
+Helier
+Heliodoro
+Helma
+Helmuti
+Helo�sa
+Helom
+Hels�nquia
+Helton
+Hem�
+Hemam
+Hemet�rio
+Hemo
+Hemor
+Henadade
+Hend�
+Henderson
+Henedita
+Henoque
+Henri
+Henrique
+Henriqueta
+Henry
+Her�cles
+Her�clio
+Her�clito
+Her�dio
+Her�doto
+Heracleias
+Herberto
+Herbes
+Herc�lio
+Hercul�ndia
+Herete
+Heribaldo
+Heriberto
+Herivaldo
+Herm�genes
+Hermano
+Hermenegildo
+Hermeto
+Hermine
+Hermos
+Hern�ni
+Hernandes
+Herocles
+Herod�ades
+Herodes
+Herodi�o
+Herodias
+Herondina
+Heros
+Hers�lio
+Herta
+Herval
+Herveiras
+Hes�odo
+Hesbom
+Hesede
+Hesmom
+Hesrai
+Hetangiano
+Hibrael
+Hidai
+Hidalgo
+Hidelbrando
+Hideo
+Hidequel
+Hidrol�ndia
+Hidrolina
+Hiel
+Hier�polis
+Hiero
+Hieto
+Higaiom
+Higino
+Higuchi
+Hil�m
+Hilal
+Hilde
+Hildeberto
+Hildefonso
+Hildegardo
+Hildemar
+Hilderico
+Hildete
+Hildo
+Hilel
+Hileu
+Hilmar
+Hilmi
+Hilquias
+Hilton
+Himalia
+Hinom
+Hiponax
+Hir�o
+Hir�nides
+Hiram
+Hirieu
+Hiro�to
+Hirom
+Hiromi
+Hiromitsu
+Hiroshima
+Hisp�nia
+Hitler
+Ho�o
+Hoare
+Hob�
+Hoba�as
+Hobabe
+Hodavias
+Hode
+Hodes
+Hodeva
+Hofra
+Hogla
+Holambra
+Holom
+Hom�
+Homer
+Homero
+Hon�rio
+Honda
+Honduras
+Hong
+Honorato
+Honorico
+Honorinda
+Honorino
+Honorius
+Honos
+Hope
+Hor�cio
+Hor�cios
+Hor�m
+Horace
+Horebe
+Horm�
+Horom
+Horonaim
+Hort�ncio
+Hort�nsio
+Hortol�ndia
+Hos�
+Hosa�as
+Hosa
+Hosama
+Hosea
+Host�lio
+Hot�o
+Hotir
+Houdini
+Houri
+Huberte
+Hucoque
+Huda
+Hudson
+Huf�
+Hugo
+Hugolino
+Hulda
+Humam
+Humberto
+Hume
+Hungria
+Hunta
+Hupa
+Hupim
+Hur�o
+Hur
+Hurai
+Huraiva
+Hurass�
+Hus�
+Hus�o
+Husai
+Husam
+Husim
+Husna
+Huzote
+Hz
+I�sio
+I�men
+I�mene
+I�na
+I
+I.
+IBGE
+IBM
+IBOVESPA
+ICEP
+ICMS
+ICV
+ICVM
+IGA
+IGP
+II
+III
+IM
+INCC
+INPC
+INPI
+INSS
+IOF
+IPA
+IPC
+IPCA
+IPE
+IPI
+IPPAR
+IPPC
+IRC
+IRPJ
+IRS
+ISBN
+ISO
+ISS
+ISSN
+ITE
+ITR
+IURD
+IV
+IX
+Ia�u
+Ia�
+Iac�
+Iacanga
+Iaci
+Iaciara
+Iaco
+Iacri
+Iandeyara
+Iapuama
+Iasi�o
+Iasmim
+Iaund�
+Ibaiti
+Ibama
+Ibar
+Ibarama
+Ibaretama
+Ibat�
+Ibateguara
+Ibatiba
+Iber�
+Ibertioga
+Ibi�
+Ibi�
+Ibi�na
+Ibia��
+Ibia�
+Ibiam
+Ibiapaba
+Ibiapina
+Ibiara
+Ibiassuc�
+Ibicar�
+Ibicara�
+Ibicoara
+Ibicu�
+Ibicuitinga
+Ibidas
+Ibimirim
+Ibinayaya
+Ibipeba
+Ibipor�
+Ibiquera
+Ibir�
+Ibira�u
+Ibiracatu
+Ibiraci
+Ibiraiaras
+Ibirajuba
+Ibirama
+Ibirapu�
+Ibirapuit�
+Ibirataia
+Ibirit�
+Ibiti�ra
+Ibitiara
+Ibitinga
+Ibitipoca
+Ibitirama
+Ibitit�
+Ibituruna
+Ible�
+Ible�o
+Ibn�ias
+Ibnijas
+Ibotirama
+Ibrahim
+Ibraim
+Ibri
+Ibs�o
+Ibsen
+Ic�dio
+Ic�m
+Ic�lio
+Ic�nio
+Icabode
+Icanor
+Icapu�
+Icara�
+Icara�ma
+Icatu
+Ichiro
+Ichu
+Iconha
+Ictino
+Id�lio
+Idala
+Idalino
+Idbas
+Ideu
+Idiene
+Ieda
+Ielmo
+Iemanj�
+Iep�
+Iezalel
+Ifd�ias
+Ifig�nio
+Ift�
+Igal
+Igapor�
+Igapor�
+Igarapava
+Igarassu
+Igarat�
+Igaratinga
+Igeal
+Igino
+Iglesias
+Ign�cio
+Igor
+Igrapi�na
+Igua�
+Iguaba
+Iguap�
+Iguara�u
+Iguara
+Iguassu
+Iguatama
+Iguatemi
+Iguatu
+Ijaci
+Ije
+Ijom
+Iju�
+Il�dio
+Il�one
+Il�tia
+Il�polis
+Ilana
+Ilce
+IldaO
+Ildebrando
+Ildefonso
+Ilia
+Ilirio
+Ilium
+Ilma
+Ilona
+Ilsa
+Iluminato
+Ilza
+Imaru�
+Imba�
+Imbituva
+Imelda
+In�
+In�cio
+In�s
+Inaciol�ndia
+Inam
+Inand�
+Inara
+Inari
+Inaya
+Incra
+Indaiabira
+Indaial
+Indaiatuba
+Indian�polis
+Indiapor�
+Indiara
+Indiaroba
+Indiava�
+Indira
+Infraero
+Inglaterra
+Ingmar
+Ingomar
+Ingram
+Inhacor�
+Inhambupe
+Inhangapi
+Inhelder
+Inhu�
+Inimutaba
+Inl�
+Inoc�ncio
+Insc.
+Intel
+Interlagos
+Intisar
+Iolanda
+Iomer�
+Ion�
+Iori
+Iorque
+Ip�lito
+Ipa�u
+Ipaba
+Ipameri
+Ipanema
+Ipangua�u
+Ipaporanga
+Ipatinga
+Ipau�u
+Ipaumirim
+Ipaussu
+Ipecaet�
+Iper�
+Ipia�u
+Ipia�
+Ipigu�
+Ipir�
+Ipiranga
+Ipixuna
+Ipojuca
+Ipor�
+Ipor�
+Iporanga
+Ipubi
+Ipui�na
+Ipumirim
+Iqbal
+Iques
+Ira�
+Ira�des
+Iracem�polis
+IracemaO
+Iraci
+Iraj�
+Irajuba
+Iramaia
+Iranduba
+Irapu�
+Irapuan
+Iraquara
+Iraque
+Irati
+Irau�uba
+Irec�
+Iretama
+Irine�polis
+Irineu
+Irirvam
+Irituia
+Irom
+Iroqueses
+Irupi
+Is�crates
+Isa�as
+Isadora
+Isaltina
+Isao
+Isaque
+Isaurinha
+Isbosete
+Iseu
+Isidore
+Isidro
+Isl�ndia
+Isma�as
+Isma
+Ismail
+Ismaquias
+Ismerai
+Isnar
+Isnardo
+Isodose
+Isolda
+Israel�ndia
+Israfil
+IssacarR
+Issias
+Istambul
+Isv�
+Isvi
+It�lia
+It�polis
+Ita�ca
+Ita�
+Itaara
+Itabapoana
+Itabela
+Itaber�
+Itabera�
+Itabi
+ItabiraO
+Itabora�
+Itabuna
+Itacaj�
+Itacambira
+Itacar�
+Itacarambi
+Itacolomi
+Itacurubi
+Itaenga
+Itaet�
+Itagi
+Itagib�
+Itagimirim
+Itagua�u
+Itagua�
+Itaguaj�
+Itaguara
+Itaguari
+Itaguaru
+Itaguatins
+Itai�aba
+Itai�polis
+Itai
+Itain�polis
+Itaip�
+Itaipu
+Itaipul�ndia
+Itaitinga
+Itaituba
+Itaj�
+Itaja�
+Itajobi
+Itaju�pe
+Itaju
+Itajub�
+Italva
+Itamar
+Itamaraju
+Itamarandiba
+Itamaraty
+Itamari
+Itambacuri
+Itambarac�
+Itamogi
+Itamonte
+Itanagra
+Itanh�m
+Itanha�m
+Itanhandu
+Itanhomi
+Itanhy
+Itaobim
+Itaocara
+Itap�
+Itapaci
+Itapag�
+Itapagipe
+Itapebi
+Itapecuru
+Itapejara
+Itapemirim
+Itaperi�
+Itaperu�u
+Itaperuna
+Itapetim
+Itapetinga
+Itapetininga
+Itapevi
+Itapipoca
+Itapira
+Itapirapu�
+Itapiratins
+Itapissuma
+Itapo�
+Itapor�
+Itaporanga
+Itapororoca
+Itapu�
+Itapuca
+Itapura
+Itapuranga
+Itaquaquecetuba
+Itaqui
+Itaquira�
+Itaquitinga
+Itarana
+Itarantim
+Itarema
+Itariri
+Itarum�
+Itatiaia
+Itatiaiu�u
+Itatim
+Itatinga
+Itatira
+Itatuba
+Itau�u
+Itaubal
+Itaueira
+Itaverava
+Iti�ba
+Itidal
+Itiel
+Itinga
+Itiquira
+Itirapina
+Itirapu�
+Itiru�u
+Itla
+Itma
+Itn�
+Itor
+Itre�o
+Itua�u
+Ituber�
+Itueto
+Ituiutaba
+Itumbiara
+Itumirim
+Itupiranga
+Ituporanga
+Iturama
+Itutinga
+Ituverava
+Iucyara
+Iugosl�via
+Iuruara
+Iutaka
+Iv�
+Ivaipor�
+Ivan
+Ivana
+Ivaneide
+Ivani
+Ivanilde
+Ivat�
+Ivatuba
+Ives
+Ivete
+Ivo
+Ivol�ndia
+Ivone
+Ivor�
+Ivoti
+Ixi�ceas
+Izilda
+Izlias
+Izolita
+J�peto
+J�rio
+J�sen
+J�sper
+J�nie
+J�nio
+J�nifer
+J�ssica
+J�
+J�natas
+J�lio
+J�nia
+J�piter
+J.
+JAE
+JECC
+JS
+JSD
+Ja�
+Ja�ba
+Jaac�
+Jaacob�
+Jaal�
+Jaar�
+Jaaresias
+Jaasai
+Jaasiel
+Jaate
+Jaazanias
+Jaazias
+Jaaziel
+Jabal
+Jabim
+Jaboat�o
+Jaboque
+Jabor�
+Jaboti
+Jaboticaba
+Jaboticabal
+Jaboticatubas
+Jabriel
+Jac�
+Jac�
+Jacara�
+Jacaraci
+Jacareacanga
+Jacarepagu�
+Jacarezinho
+Jacarta
+Jacayru
+Jaciara
+Jaciema
+Jaciendi
+Jacilei
+Jacimar
+JacintaO
+JacirR
+Jackson
+Jacobi
+Jacobsen
+Jacqueline
+Jacques
+Jacu�pe
+Jacuizinho
+Jacupiranga
+Jacuri
+Jadai
+Jadiel
+Jadson
+Jael
+Jaer�
+Jaf�
+Jafa
+Jafar
+Jafia
+Jaflete
+Jafleti
+Jaguapit�
+Jaguaquara
+Jaguara�u
+Jaguarari
+Jaguaretama
+Jaguari�na
+Jaguari
+Jaguaribara
+Jaguaribe
+Jailson
+Jaime
+Jair
+Jairo
+Jamai
+Jamal
+James
+Jamie
+Jamil
+Jamile
+Jamim
+Jampruca
+Jandineia
+Jandira
+Janete
+Jani�polis
+Jani
+Janice
+Janim
+Janine
+Janir
+Janitra
+Janleque
+Janoa
+Japara�ba
+Japaratinga
+Japaratuba
+Japeri
+Japoat�
+Japonvar
+Japor�
+Jaqueline
+Jaquim
+Jaquirana
+Jaraguari
+Jarbas
+Jarcom
+Jardel
+Jardin�polis
+Jarebe
+Jarete
+Jargal
+Jari
+Jaribe
+Jarinu
+Jarir
+Jarmute
+Jaroa
+Jarvis
+Jas�o
+Jasa
+Jase�as
+Jasmine
+Jasobe�o
+Jasom
+Jason
+Jataizinho
+Jate�
+Jater
+Jatir
+Jatniel
+Jaul
+Jaun
+Jaupaci
+Jauru
+Jav�
+Javier
+Jawa
+Je�
+Je�de
+Je�s
+Jeatarai
+Jeaziel
+Jeberequias
+Jecame�o
+Jecamias
+Jeceaba
+Jecolia
+Jeconias
+Jecutiel
+Jeda�as
+Jeosaf�
+Jequi�
+Jequitinhonha
+Jer�
+Jerede
+Jeremai
+Jeremote
+Jericoacoara
+Jeriel
+Jerimote
+Jeriote
+Jeriquara
+Jero�o
+Jerobo�o
+Jerome
+Jeronimo
+Jes�polis
+Jesa�as
+Jesana
+Jesarela
+Jesebeabe
+Jesoa�as
+Jesu�
+Jesu�nia
+Jesu�no
+Jesualdo
+Jesurum
+Jeter
+Jetete
+Jetro
+Jeub�
+Jezabel
+Jezanias
+Jezer
+Jezias
+Jeziel
+Jezra�as
+Jezreel
+Jibril
+Jibuti
+Jilan
+Jim
+Jino
+Jiquiri��
+Jiro
+Jisbaque
+Jita�na
+Jizar
+Jo�
+Jo�s
+Joa�aba
+Joa�ma
+Joabe
+Joacaz
+Joaci
+Joad�
+Joaldo
+Joan�
+Joan�polis
+Joanesburgo
+Joanides
+Joaquim
+Joat�o
+Jobabe
+Jobim
+Joca
+Jocasta
+Jocde�o
+Jocelim
+Joceline
+Jocme�o
+Jocne�o
+Jocs�
+Joct�
+Jod�
+Jodie
+Joede
+Joel
+Joela
+Joelma
+Joelmir
+Joerama
+Joice
+Joinville
+Jon�
+Jonadabe
+Jonat�
+Jonival
+Jope
+Joquebede
+Jor�o
+Jord�o
+Jorque�o
+Jos�
+Josaf�
+Josavias
+Josbecasa
+Joseane
+Josefo
+Josel�ndia
+Joseline
+Joselito
+Joselma
+Josemar
+Josen�polis
+Josias
+Josibias
+Josie
+Josifias
+Josilene
+Josu�
+Josualdo
+Jot�o
+Jotb�
+Jotbat�
+Jotniano
+Joudiner
+Jovi�nia
+Jovino
+Jovito
+Jr.
+Ju�na
+Juacema
+Juara
+Juarez
+Juarina
+Juatuba
+Jubal
+Juca
+Jucal
+Jucati
+Jucilene
+Jucuru�u
+Jud�
+Judeia
+Jugosl�via
+Julian
+Juliane
+Julieta
+Julinho
+Julita
+Julius
+June
+Juninho
+Junior
+Juno
+Junqueir�polis
+Jupercio
+Jupi
+Juquinha
+Juquitiba
+Jur�ia
+Juracema
+Juraci
+Jurandir
+Jurdelina
+Jurecema
+Jurer�
+Jurides
+Juripari
+Juripiranga
+Juru�
+Juruaia
+Jurubatuba
+Juruena
+Jusabe
+Juscelino
+Juscimeira
+Jussara
+Jussari
+Jussiape
+Justine
+Justino
+Jut�
+Juti
+Juventus
+K�lia
+K�nia
+K.
+KGB
+Kabir
+Kadar
+Kadu
+KalilQ
+Kalina
+Kalo
+Kalor�
+Kaluan�
+Kamada
+Kamaitior�
+Kamal
+Kamaria
+Kame
+Kamei
+Kampala
+Kan�
+Kanapina
+Kansas
+Kapipa
+Kardal
+Karida
+Karoline
+Kartane
+Kate
+Katia
+Kazim
+KcalRV
+Kelda
+Kentaro
+Kerina
+Kiliano
+Kim
+King
+Kioto
+Klaus
+Kleber
+L�brea
+L�ia
+L�lio
+L�lis
+L�o
+L�rio
+L�nis
+L�dice
+L�lia
+L�vio
+L�ide
+L
+L.
+LBA
+LDL
+LICC
+LII
+LIII
+LISP
+LIV
+LIX
+LNEC
+LP
+LTC
+LV
+LVI
+LVII
+LVIII
+LX
+LXI
+LXII
+LXIII
+LXIV
+LXIX
+LXV
+LXVI
+LXVII
+LXVIII
+LXX
+LXXI
+LXXII
+LXXIII
+LXXIV
+LXXIX
+LXXV
+LXXVI
+LXXVII
+LXXVIII
+LXXX
+LXXXI
+LXXXII
+LXXXIII
+LXXXIV
+LXXXIX
+LXXXV
+LXXXVI
+LXXXVII
+LXXXVIII
+La�rcio
+La�s
+La�sa
+Laam�s
+Lab�
+Lab�rio
+Labma
+Lacerd�polis
+Lacerda
+Ladiniano
+LaerteP
+Lafaiete
+Lafite
+Lafontaine
+Lageado
+Lagonegro
+Lagrange
+Laila
+Laio
+Lajed�o
+Lamar
+Lamartine
+Landerico
+Landolfo
+Landulfo
+Laod�mia
+Laodic�ia
+Lara
+Larissa
+Larrosa
+Lat�ncio
+Latari�ceas
+Latuc�ceas
+Laud�lio
+Laudelino
+Laudemir
+Laudemiro
+Laudicena
+Laureano
+Laurence
+Lauriano
+Laurindo
+Laurinha
+Le�polis
+Le�ncio
+Le�nidas
+Lebana
+Leblon
+Leci
+Lediano
+Leide
+Leilane
+Lemuel
+Lenemar
+Lenine
+Leninegrado
+Lenita
+Leoberto
+Leocrates
+Leodomir
+Leomil
+Leomir
+Leonardo
+Leonel
+Leonilda
+Leonor
+Leonorzinha
+Leopoldo
+Leroi
+Les�m
+Lib�rio
+Liberato
+Lic�rio
+Lica�nia
+Lidian�polis
+Lidiane
+Ligurgo
+Liliam
+Lilian
+Liliane
+Lind�ia
+Lindalva
+Lindolfo
+Lineu
+Lins
+Linus
+Linux
+Lionel
+Lirio
+Lisabete
+Lisana
+Lisandro
+Lisboazinha
+Loanda
+Lodovico
+Lola
+Lolita
+Lomanto
+Lombard
+Lombardia
+Londres
+Lorenzo
+Loreto
+Louise
+Lourdes
+Louredo
+Lourival
+Lourivaldo
+Lourosa
+Louvre
+Ltda.
+Lu�sa
+Lu�z
+Luc�lio
+Luc�dio
+Luc�lio
+Luci�ra
+Luci
+Lucian�polis
+Luciane
+Luciano
+Lucidoro
+Luciene
+Lucinda
+Lucr�ia
+Ludicea
+Ludim
+Ludolfo
+Ludovico
+Luduvice
+Luigi
+Luisburgo
+Luisinha
+Luisl�ndia
+LuizOV
+Luiza
+Luizi�nia
+Luiziana
+Luma
+Lumen
+Lumi�re
+Lup�rcio
+Lupic�nio
+Lupion�polis
+Lurdes
+Lusia
+Lustosa
+Lutero
+Luxemburgo
+Luyse
+Luzardo
+Luzi�nia
+Luzil�ndia
+Luzin�polis
+Luzinete
+Luzit�nia
+M�rio
+M�rjore
+M�ncio
+M�ntua
+M�dici
+M�rcurio
+M�rida
+M�rtola
+M�da
+M�nfis
+M�ria
+M�riam
+M�lidas
+M�s
+M�naco
+M�cio
+M�rcia
+M
+M.
+MC
+MCC
+MCCC
+MCCCI
+MCCCII
+MCCCIII
+MCCCIV
+MCCCIX
+MCCCL
+MCCCLI
+MCCCLII
+MCCCLIII
+MCCCLIV
+MCCCLIX
+MCCCLV
+MCCCLVI
+MCCCLVII
+MCCCLVIII
+MCCCLX
+MCCCLXI
+MCCCLXII
+MCCCLXIII
+MCCCLXIV
+MCCCLXIX
+MCCCLXV
+MCCCLXVI
+MCCCLXVII
+MCCCLXVIII
+MCCCLXX
+MCCCLXXI
+MCCCLXXII
+MCCCLXXIII
+MCCCLXXIV
+MCCCLXXIX
+MCCCLXXV
+MCCCLXXVI
+MCCCLXXVII
+MCCCLXXVIII
+MCCCLXXX
+MCCCLXXXI
+MCCCLXXXII
+MCCCLXXXIII
+MCCCLXXXIV
+MCCCLXXXIX
+MCCCLXXXV
+MCCCLXXXVI
+MCCCLXXXVII
+MCCCLXXXVIII
+MCCCV
+MCCCVI
+MCCCVII
+MCCCVIII
+MCCCX
+MCCCXC
+MCCCXCI
+MCCCXCII
+MCCCXCIII
+MCCCXCIV
+MCCCXCIX
+MCCCXCV
+MCCCXCVI
+MCCCXCVII
+MCCCXCVIII
+MCCCXI
+MCCCXII
+MCCCXIII
+MCCCXIV
+MCCCXIX
+MCCCXL
+MCCCXLI
+MCCCXLII
+MCCCXLIII
+MCCCXLIV
+MCCCXLIX
+MCCCXLV
+MCCCXLVI
+MCCCXLVII
+MCCCXLVIII
+MCCCXV
+MCCCXVI
+MCCCXVII
+MCCCXVIII
+MCCCXX
+MCCCXXI
+MCCCXXII
+MCCCXXIII
+MCCCXXIV
+MCCCXXIX
+MCCCXXV
+MCCCXXVI
+MCCCXXVII
+MCCCXXVIII
+MCCCXXX
+MCCCXXXI
+MCCCXXXII
+MCCCXXXIII
+MCCCXXXIV
+MCCCXXXIX
+MCCCXXXV
+MCCCXXXVI
+MCCCXXXVII
+MCCCXXXVIII
+MCCI
+MCCII
+MCCIII
+MCCIV
+MCCIX
+MCCL
+MCCLI
+MCCLII
+MCCLIII
+MCCLIV
+MCCLIX
+MCCLV
+MCCLVI
+MCCLVII
+MCCLVIII
+MCCLX
+MCCLXI
+MCCLXII
+MCCLXIII
+MCCLXIV
+MCCLXIX
+MCCLXV
+MCCLXVI
+MCCLXVII
+MCCLXVIII
+MCCLXX
+MCCLXXI
+MCCLXXII
+MCCLXXIII
+MCCLXXIV
+MCCLXXIX
+MCCLXXV
+MCCLXXVI
+MCCLXXVII
+MCCLXXVIII
+MCCLXXX
+MCCLXXXI
+MCCLXXXII
+MCCLXXXIII
+MCCLXXXIV
+MCCLXXXIX
+MCCLXXXV
+MCCLXXXVI
+MCCLXXXVII
+MCCLXXXVIII
+MCCV
+MCCVI
+MCCVII
+MCCVIII
+MCCX
+MCCXC
+MCCXCI
+MCCXCII
+MCCXCIII
+MCCXCIV
+MCCXCIX
+MCCXCV
+MCCXCVI
+MCCXCVII
+MCCXCVIII
+MCCXI
+MCCXII
+MCCXIII
+MCCXIV
+MCCXIX
+MCCXL
+MCCXLI
+MCCXLII
+MCCXLIII
+MCCXLIV
+MCCXLIX
+MCCXLV
+MCCXLVI
+MCCXLVII
+MCCXLVIII
+MCCXV
+MCCXVI
+MCCXVII
+MCCXVIII
+MCCXX
+MCCXXI
+MCCXXII
+MCCXXIII
+MCCXXIV
+MCCXXIX
+MCCXXV
+MCCXXVI
+MCCXXVII
+MCCXXVIII
+MCCXXX
+MCCXXXI
+MCCXXXII
+MCCXXXIII
+MCCXXXIV
+MCCXXXIX
+MCCXXXV
+MCCXXXVI
+MCCXXXVII
+MCCXXXVIII
+MCD
+MCDI
+MCDII
+MCDIII
+MCDIV
+MCDIX
+MCDL
+MCDLI
+MCDLII
+MCDLIII
+MCDLIV
+MCDLIX
+MCDLV
+MCDLVI
+MCDLVII
+MCDLVIII
+MCDLX
+MCDLXI
+MCDLXII
+MCDLXIII
+MCDLXIV
+MCDLXIX
+MCDLXV
+MCDLXVI
+MCDLXVII
+MCDLXVIII
+MCDLXX
+MCDLXXI
+MCDLXXII
+MCDLXXIII
+MCDLXXIV
+MCDLXXIX
+MCDLXXV
+MCDLXXVI
+MCDLXXVII
+MCDLXXVIII
+MCDLXXX
+MCDLXXXI
+MCDLXXXII
+MCDLXXXIII
+MCDLXXXIV
+MCDLXXXIX
+MCDLXXXV
+MCDLXXXVI
+MCDLXXXVII
+MCDLXXXVIII
+MCDV
+MCDVI
+MCDVII
+MCDVIII
+MCDX
+MCDXC
+MCDXCI
+MCDXCII
+MCDXCIII
+MCDXCIV
+MCDXCIX
+MCDXCV
+MCDXCVI
+MCDXCVII
+MCDXCVIII
+MCDXI
+MCDXII
+MCDXIII
+MCDXIV
+MCDXIX
+MCDXL
+MCDXLI
+MCDXLII
+MCDXLIII
+MCDXLIV
+MCDXLIX
+MCDXLV
+MCDXLVI
+MCDXLVII
+MCDXLVIII
+MCDXV
+MCDXVI
+MCDXVII
+MCDXVIII
+MCDXX
+MCDXXI
+MCDXXII
+MCDXXIII
+MCDXXIV
+MCDXXIX
+MCDXXV
+MCDXXVI
+MCDXXVII
+MCDXXVIII
+MCDXXX
+MCDXXXI
+MCDXXXII
+MCDXXXIII
+MCDXXXIV
+MCDXXXIX
+MCDXXXV
+MCDXXXVI
+MCDXXXVII
+MCDXXXVIII
+MCI
+MCII
+MCIII
+MCIV
+MCIX
+MCL
+MCLI
+MCLII
+MCLIII
+MCLIV
+MCLIX
+MCLV
+MCLVI
+MCLVII
+MCLVIII
+MCLX
+MCLXI
+MCLXII
+MCLXIII
+MCLXIV
+MCLXIX
+MCLXV
+MCLXVI
+MCLXVII
+MCLXVIII
+MCLXX
+MCLXXI
+MCLXXII
+MCLXXIII
+MCLXXIV
+MCLXXIX
+MCLXXV
+MCLXXVI
+MCLXXVII
+MCLXXVIII
+MCLXXX
+MCLXXXI
+MCLXXXII
+MCLXXXIII
+MCLXXXIV
+MCLXXXIX
+MCLXXXV
+MCLXXXVI
+MCLXXXVII
+MCLXXXVIII
+MCM
+MCMI
+MCMII
+MCMIII
+MCMIV
+MCMIX
+MCML
+MCMLI
+MCMLII
+MCMLIII
+MCMLIV
+MCMLIX
+MCMLV
+MCMLVI
+MCMLVII
+MCMLVIII
+MCMLX
+MCMLXI
+MCMLXII
+MCMLXIII
+MCMLXIV
+MCMLXIX
+MCMLXV
+MCMLXVI
+MCMLXVII
+MCMLXVIII
+MCMLXX
+MCMLXXI
+MCMLXXII
+MCMLXXIII
+MCMLXXIV
+MCMLXXIX
+MCMLXXV
+MCMLXXVI
+MCMLXXVII
+MCMLXXVIII
+MCMLXXX
+MCMLXXXI
+MCMLXXXII
+MCMLXXXIII
+MCMLXXXIV
+MCMLXXXIX
+MCMLXXXV
+MCMLXXXVI
+MCMLXXXVII
+MCMLXXXVIII
+MCMV
+MCMVI
+MCMVII
+MCMVIII
+MCMX
+MCMXC
+MCMXCI
+MCMXCII
+MCMXCIII
+MCMXCIV
+MCMXCIX
+MCMXCV
+MCMXCVI
+MCMXCVII
+MCMXCVIII
+MCMXI
+MCMXII
+MCMXIII
+MCMXIV
+MCMXIX
+MCMXL
+MCMXLI
+MCMXLII
+MCMXLIII
+MCMXLIV
+MCMXLIX
+MCMXLV
+MCMXLVI
+MCMXLVII
+MCMXLVIII
+MCMXV
+MCMXVI
+MCMXVII
+MCMXVIII
+MCMXX
+MCMXXI
+MCMXXII
+MCMXXIII
+MCMXXIV
+MCMXXIX
+MCMXXV
+MCMXXVI
+MCMXXVII
+MCMXXVIII
+MCMXXX
+MCMXXXI
+MCMXXXII
+MCMXXXIII
+MCMXXXIV
+MCMXXXIX
+MCMXXXV
+MCMXXXVI
+MCMXXXVII
+MCMXXXVIII
+MCV
+MCVI
+MCVII
+MCVIII
+MCX
+MCXC
+MCXCI
+MCXCII
+MCXCIII
+MCXCIV
+MCXCIX
+MCXCV
+MCXCVI
+MCXCVII
+MCXCVIII
+MCXI
+MCXII
+MCXIII
+MCXIV
+MCXIX
+MCXL
+MCXLI
+MCXLII
+MCXLIII
+MCXLIV
+MCXLIX
+MCXLV
+MCXLVI
+MCXLVII
+MCXLVIII
+MCXV
+MCXVI
+MCXVII
+MCXVIII
+MCXX
+MCXXI
+MCXXII
+MCXXIII
+MCXXIV
+MCXXIX
+MCXXV
+MCXXVI
+MCXXVII
+MCXXVIII
+MCXXX
+MCXXXI
+MCXXXII
+MCXXXIII
+MCXXXIV
+MCXXXIX
+MCXXXV
+MCXXXVI
+MCXXXVII
+MCXXXVIII
+MD
+MDC
+MDCC
+MDCCC
+MDCCCI
+MDCCCII
+MDCCCIII
+MDCCCIV
+MDCCCIX
+MDCCCL
+MDCCCLI
+MDCCCLII
+MDCCCLIII
+MDCCCLIV
+MDCCCLIX
+MDCCCLV
+MDCCCLVI
+MDCCCLVII
+MDCCCLVIII
+MDCCCLX
+MDCCCLXI
+MDCCCLXII
+MDCCCLXIII
+MDCCCLXIV
+MDCCCLXIX
+MDCCCLXV
+MDCCCLXVI
+MDCCCLXVII
+MDCCCLXVIII
+MDCCCLXX
+MDCCCLXXI
+MDCCCLXXII
+MDCCCLXXIII
+MDCCCLXXIV
+MDCCCLXXIX
+MDCCCLXXV
+MDCCCLXXVI
+MDCCCLXXVII
+MDCCCLXXVIII
+MDCCCLXXX
+MDCCCLXXXI
+MDCCCLXXXII
+MDCCCLXXXIII
+MDCCCLXXXIV
+MDCCCLXXXIX
+MDCCCLXXXV
+MDCCCLXXXVI
+MDCCCLXXXVII
+MDCCCLXXXVIII
+MDCCCV
+MDCCCVI
+MDCCCVII
+MDCCCVIII
+MDCCCX
+MDCCCXC
+MDCCCXCI
+MDCCCXCII
+MDCCCXCIII
+MDCCCXCIV
+MDCCCXCIX
+MDCCCXCV
+MDCCCXCVI
+MDCCCXCVII
+MDCCCXCVIII
+MDCCCXI
+MDCCCXII
+MDCCCXIII
+MDCCCXIV
+MDCCCXIX
+MDCCCXL
+MDCCCXLI
+MDCCCXLII
+MDCCCXLIII
+MDCCCXLIV
+MDCCCXLIX
+MDCCCXLV
+MDCCCXLVI
+MDCCCXLVII
+MDCCCXLVIII
+MDCCCXV
+MDCCCXVI
+MDCCCXVII
+MDCCCXVIII
+MDCCCXX
+MDCCCXXI
+MDCCCXXII
+MDCCCXXIII
+MDCCCXXIV
+MDCCCXXIX
+MDCCCXXV
+MDCCCXXVI
+MDCCCXXVII
+MDCCCXXVIII
+MDCCCXXX
+MDCCCXXXI
+MDCCCXXXII
+MDCCCXXXIII
+MDCCCXXXIV
+MDCCCXXXIX
+MDCCCXXXV
+MDCCCXXXVI
+MDCCCXXXVII
+MDCCCXXXVIII
+MDCCI
+MDCCII
+MDCCIII
+MDCCIV
+MDCCIX
+MDCCL
+MDCCLI
+MDCCLII
+MDCCLIII
+MDCCLIV
+MDCCLIX
+MDCCLV
+MDCCLVI
+MDCCLVII
+MDCCLVIII
+MDCCLX
+MDCCLXI
+MDCCLXII
+MDCCLXIII
+MDCCLXIV
+MDCCLXIX
+MDCCLXV
+MDCCLXVI
+MDCCLXVII
+MDCCLXVIII
+MDCCLXX
+MDCCLXXI
+MDCCLXXII
+MDCCLXXIII
+MDCCLXXIV
+MDCCLXXIX
+MDCCLXXV
+MDCCLXXVI
+MDCCLXXVII
+MDCCLXXVIII
+MDCCLXXX
+MDCCLXXXI
+MDCCLXXXII
+MDCCLXXXIII
+MDCCLXXXIV
+MDCCLXXXIX
+MDCCLXXXV
+MDCCLXXXVI
+MDCCLXXXVII
+MDCCLXXXVIII
+MDCCV
+MDCCVI
+MDCCVII
+MDCCVIII
+MDCCX
+MDCCXC
+MDCCXCI
+MDCCXCII
+MDCCXCIII
+MDCCXCIV
+MDCCXCIX
+MDCCXCV
+MDCCXCVI
+MDCCXCVII
+MDCCXCVIII
+MDCCXI
+MDCCXII
+MDCCXIII
+MDCCXIV
+MDCCXIX
+MDCCXL
+MDCCXLI
+MDCCXLII
+MDCCXLIII
+MDCCXLIV
+MDCCXLIX
+MDCCXLV
+MDCCXLVI
+MDCCXLVII
+MDCCXLVIII
+MDCCXV
+MDCCXVI
+MDCCXVII
+MDCCXVIII
+MDCCXX
+MDCCXXI
+MDCCXXII
+MDCCXXIII
+MDCCXXIV
+MDCCXXIX
+MDCCXXV
+MDCCXXVI
+MDCCXXVII
+MDCCXXVIII
+MDCCXXX
+MDCCXXXI
+MDCCXXXII
+MDCCXXXIII
+MDCCXXXIV
+MDCCXXXIX
+MDCCXXXV
+MDCCXXXVI
+MDCCXXXVII
+MDCCXXXVIII
+MDCI
+MDCII
+MDCIII
+MDCIV
+MDCIX
+MDCL
+MDCLI
+MDCLII
+MDCLIII
+MDCLIV
+MDCLIX
+MDCLV
+MDCLVI
+MDCLVII
+MDCLVIII
+MDCLX
+MDCLXI
+MDCLXII
+MDCLXIII
+MDCLXIV
+MDCLXIX
+MDCLXV
+MDCLXVI
+MDCLXVII
+MDCLXVIII
+MDCLXX
+MDCLXXI
+MDCLXXII
+MDCLXXIII
+MDCLXXIV
+MDCLXXIX
+MDCLXXV
+MDCLXXVI
+MDCLXXVII
+MDCLXXVIII
+MDCLXXX
+MDCLXXXI
+MDCLXXXII
+MDCLXXXIII
+MDCLXXXIV
+MDCLXXXIX
+MDCLXXXV
+MDCLXXXVI
+MDCLXXXVII
+MDCLXXXVIII
+MDCV
+MDCVI
+MDCVII
+MDCVIII
+MDCX
+MDCXC
+MDCXCI
+MDCXCII
+MDCXCIII
+MDCXCIV
+MDCXCIX
+MDCXCV
+MDCXCVI
+MDCXCVII
+MDCXCVIII
+MDCXI
+MDCXII
+MDCXIII
+MDCXIV
+MDCXIX
+MDCXL
+MDCXLI
+MDCXLII
+MDCXLIII
+MDCXLIV
+MDCXLIX
+MDCXLV
+MDCXLVI
+MDCXLVII
+MDCXLVIII
+MDCXV
+MDCXVI
+MDCXVII
+MDCXVIII
+MDCXX
+MDCXXI
+MDCXXII
+MDCXXIII
+MDCXXIV
+MDCXXIX
+MDCXXV
+MDCXXVI
+MDCXXVII
+MDCXXVIII
+MDCXXX
+MDCXXXI
+MDCXXXII
+MDCXXXIII
+MDCXXXIV
+MDCXXXIX
+MDCXXXV
+MDCXXXVI
+MDCXXXVII
+MDCXXXVIII
+MDI
+MDII
+MDIII
+MDIV
+MDIX
+MDL
+MDLI
+MDLII
+MDLIII
+MDLIV
+MDLIX
+MDLV
+MDLVI
+MDLVII
+MDLVIII
+MDLX
+MDLXI
+MDLXII
+MDLXIII
+MDLXIV
+MDLXIX
+MDLXV
+MDLXVI
+MDLXVII
+MDLXVIII
+MDLXX
+MDLXXI
+MDLXXII
+MDLXXIII
+MDLXXIV
+MDLXXIX
+MDLXXV
+MDLXXVI
+MDLXXVII
+MDLXXVIII
+MDLXXX
+MDLXXXI
+MDLXXXII
+MDLXXXIII
+MDLXXXIV
+MDLXXXIX
+MDLXXXV
+MDLXXXVI
+MDLXXXVII
+MDLXXXVIII
+MDV
+MDVI
+MDVII
+MDVIII
+MDX
+MDXC
+MDXCI
+MDXCII
+MDXCIII
+MDXCIV
+MDXCIX
+MDXCV
+MDXCVI
+MDXCVII
+MDXCVIII
+MDXI
+MDXII
+MDXIII
+MDXIV
+MDXIX
+MDXL
+MDXLI
+MDXLII
+MDXLIII
+MDXLIV
+MDXLIX
+MDXLV
+MDXLVI
+MDXLVII
+MDXLVIII
+MDXV
+MDXVI
+MDXVII
+MDXVIII
+MDXX
+MDXXI
+MDXXII
+MDXXIII
+MDXXIV
+MDXXIX
+MDXXV
+MDXXVI
+MDXXVII
+MDXXVIII
+MDXXX
+MDXXXI
+MDXXXII
+MDXXXIII
+MDXXXIV
+MDXXXIX
+MDXXXV
+MDXXXVI
+MDXXXVII
+MDXXXVIII
+MF
+MII
+MIII
+MIV
+MIX
+MLI
+MLII
+MLIII
+MLIV
+MLIX
+MLV
+MLVI
+MLVII
+MLVIII
+MLX
+MLXI
+MLXII
+MLXIII
+MLXIV
+MLXIX
+MLXV
+MLXVI
+MLXVII
+MLXVIII
+MLXX
+MLXXI
+MLXXII
+MLXXIII
+MLXXIV
+MLXXIX
+MLXXV
+MLXXVI
+MLXXVII
+MLXXVIII
+MLXXX
+MLXXXI
+MLXXXII
+MLXXXIII
+MLXXXIV
+MLXXXIX
+MLXXXV
+MLXXXVI
+MLXXXVII
+MLXXXVIII
+MM.
+MMC
+MMI
+MMII
+MMIII
+MMIV
+MMIX
+MML
+MMLI
+MMLII
+MMLIII
+MMLIV
+MMLIX
+MMLV
+MMLVI
+MMLVII
+MMLVIII
+MMLX
+MMLXI
+MMLXII
+MMLXIII
+MMLXIV
+MMLXIX
+MMLXV
+MMLXVI
+MMLXVII
+MMLXVIII
+MMLXX
+MMLXXI
+MMLXXII
+MMLXXIII
+MMLXXIV
+MMLXXIX
+MMLXXV
+MMLXXVI
+MMLXXVII
+MMLXXVIII
+MMLXXX
+MMLXXXI
+MMLXXXII
+MMLXXXIII
+MMLXXXIV
+MMLXXXIX
+MMLXXXV
+MMLXXXVI
+MMLXXXVII
+MMLXXXVIII
+MMR
+MMV
+MMVI
+MMVII
+MMVIII
+MMX
+MMXC
+MMXCI
+MMXCII
+MMXCIII
+MMXCIV
+MMXCIX
+MMXCV
+MMXCVI
+MMXCVII
+MMXCVIII
+MMXI
+MMXII
+MMXIII
+MMXIV
+MMXIX
+MMXL
+MMXLI
+MMXLII
+MMXLIII
+MMXLIV
+MMXLIX
+MMXLV
+MMXLVI
+MMXLVII
+MMXLVIII
+MMXV
+MMXVI
+MMXVII
+MMXVIII
+MMXX
+MMXXI
+MMXXII
+MMXXIII
+MMXXIV
+MMXXIX
+MMXXV
+MMXXVI
+MMXXVII
+MMXXVIII
+MMXXX
+MMXXXI
+MMXXXII
+MMXXXIII
+MMXXXIV
+MMXXXIX
+MMXXXV
+MMXXXVI
+MMXXXVII
+MMXXXVIII
+MP
+MPLA
+MRPP
+MSH
+MST
+MT
+MV
+MVI
+MVII
+MVIII
+MX
+MXC
+MXCI
+MXCII
+MXCIII
+MXCIV
+MXCIX
+MXCV
+MXCVI
+MXCVII
+MXCVIII
+MXI
+MXII
+MXIII
+MXIV
+MXIX
+MXL
+MXLI
+MXLII
+MXLIII
+MXLIV
+MXLIX
+MXLV
+MXLVI
+MXLVII
+MXLVIII
+MXV
+MXVI
+MXVII
+MXVIII
+MXX
+MXXI
+MXXII
+MXXIII
+MXXIV
+MXXIX
+MXXV
+MXXVI
+MXXVII
+MXXVIII
+MXXX
+MXXXI
+MXXXII
+MXXXIII
+MXXXIV
+MXXXIX
+MXXXV
+MXXXVI
+MXXXVII
+MXXXVIII
+Ma�ambara
+Ma�ra
+Ma�sa
+Mabea
+Mabel
+Maca�na
+Macabu
+Macap�
+Macaparana
+Macarani
+Macatuba
+Macaubal
+Macaz
+Macbanai
+Macbena
+Macedina
+Machiavel
+Maciel
+Macurur�
+Madeleine
+Madeline
+Madmena
+Madom
+Madrep�ridas
+Madri
+Madrid
+Madson
+Maetinga
+MafaldaO
+Mag�
+Magad�
+Magalh�es
+Magali
+Magdala
+Magdalene
+Magdeburgo
+Magdiel
+Magnum
+Mai.
+Maica
+Maida
+Maim
+Maiote
+Maiquinique
+Mait�
+Mal�vi
+Mal�
+Mal�
+Malaquias
+Malau�
+Malco
+Malcolm
+Maliha
+Malquir�o
+Mamede
+Mamor�
+Mampituba
+Man�gua
+Mana�m
+Mana�ra
+Manacapuru
+Manacorda
+Manaibar�
+Manal
+Manama
+Manaquiri
+Manari
+Manass�s
+Manchester
+Mancini
+Mandagua�u
+Mandanela
+Mandela
+Mandirituba
+Mandrado
+Manfredo
+Manfrin�polis
+Mangaratiba
+Manh�es
+Manhua�u
+Manhumirim
+Manicor�
+Mano�
+Manoel
+Manoela
+Manoelina
+Manrico
+Manten�polis
+Manteninha
+Mantus
+Manu�no
+Manualdo
+ManuelaO
+Manzano
+Manzuma
+Maom�
+Maom
+Maoque
+Maputo
+Maqued�
+Maqueda
+Maquelote
+Maquiavel
+Maquir
+Mar�al
+Mar�lia
+Mar�sia
+Mara�
+Mara�
+Maraca�um�
+Maraca�
+Maracajara
+Maracaju
+Maracana�
+Maragogi
+Maraial
+Maral�
+Maraneyma
+Maranguape
+Marapanim
+Marapendi
+Marapoama
+Marat�
+Marata�zes
+Marc�lio
+Marcabote
+Marcacini
+Marcel�ndia
+Marcel
+Marcelo
+Marcinha
+Marcion�lio
+Marcionilo
+Marcol�ndia
+Marcola
+Marcolino
+Marcondes
+Marcus
+Marcuse
+Mardecerva
+Mardoqueu
+Marduque
+Marg�o
+Marg�
+Margarete
+Margarido
+Margerie
+Mari�polis
+Mari�polis
+Mariabela
+Mariam
+Marian�polis
+Mariane
+Mariang�lica
+Mariazinha
+Maridel
+Marie
+Mariel
+Marieli
+Marielsa
+Marieta
+Maril�ndia
+Marilda
+Marilene
+Marilisa
+Marilu
+Marilze
+Marin�polis
+Maringoni
+Mario
+Marise
+Marissa
+Maristela
+Marituba
+Marivaldo
+Mariz�polis
+Mariz
+Marjani
+Marjorie
+Marla
+Marlene
+Marli�ria
+Marli
+Marlon
+Marlova
+Marluce
+Marlus
+Marly
+Marmel�polis
+Marote
+Mars�lio
+Marselha
+Mart�nez
+Martin�pole
+Martin�polis
+Martina
+Martinez
+Marucia
+Maruxa
+Marv�o
+Marvel
+Marx
+Marzag�o
+Masako
+Masal
+Masaru
+Maseru
+Massachusetts
+Massalino
+Massao
+Massaranduba
+Massarelos
+Massimo
+Mastod�ntidas
+Masumi
+Matan�
+Matanias
+Matapo�
+Mataraca
+Matarazzo
+Mataripe
+Matat�
+Matatas
+Matatias
+Matel�ndia
+Matenai
+Materl�ndia
+Matilde
+Matip�
+Matitias
+Matur�ia
+Mau�
+Mauar�
+Maui
+Maur�cio
+Maur�lio
+Maurer
+Mauric�a
+Maurice
+Maurici
+Mauril�ndia
+Mauriti
+Maviael
+Mavilde
+Mavino
+Max
+Maximiano
+Maximiniano
+Maximino
+Maxine
+Mayer
+Maynard
+Mazag�o
+Mazzaroto
+Mbaeupeguara
+Mbarajara
+Mcklim
+Mecejana
+Mecona
+Med�
+Med�ia
+Medade
+Medauar
+Medea
+Medeba
+Medicil�ndia
+Mefibosete
+Megan
+Megido
+Meguido
+Meire
+Meireles
+Melatias
+Mele�
+Meleque
+Melila
+Melinde
+Melipona
+Melisso
+Melit�o
+Melqui
+Melquiades
+Melquias
+Melquior
+Melquisedeque
+Melvino
+Membrosa
+Memon�
+Men�s
+Men�dios
+Menacela
+Menadel
+Menandro
+Menardo
+Mendel
+Mendelson
+Mendez
+Mendon�a
+Menezes
+Menipo
+Meol�
+Meom
+Meonenim
+Meonotai
+Mer�pe
+Mercedes
+Mercosul
+Meredite
+Meremote
+Meribe
+Merodaque
+Meruoca
+Mes�polis
+Mesaque
+Meselemias
+Meseque
+Mesilemite
+Mesilemote
+Mesobabe
+Messina
+Mesul�o
+Mesulemete
+Metegue
+Meunim
+Meyer
+Miaral�
+Miarar�
+MicaelRO
+Miceli
+MichaelRO
+Michel
+Michele
+Micheline
+Michigan
+Michiko
+Michio
+Miclote
+Micn�ias
+Micobacterium
+Midi�
+Midim
+Midori
+Miglioransa
+Miguel�polis
+Miguelinho
+Mihael
+Mike
+Milane
+Milc�ades
+Milca
+Milene
+Mileto
+Milit�o
+Militino
+Milton
+Mimen�
+Mina�u
+Mindelo
+Minervino
+Minho
+Minite
+Minnesota
+Minoru
+Minosso
+Mipibu
+Miqu�as
+Miqu�ias
+Miquelon
+Miquerinos
+Mira�
+Mira�ma
+Mira�ra
+MirabelQ
+Miracatu
+Miragua�
+Mirand�polis
+MirandaO
+Mirandela
+Mirandiba
+Mirangaba
+Miranorte
+Miraselva
+Mirassol�ndia
+Mirassol
+Mirav�nia
+Mircia
+Mirela
+Mirma
+Mirna
+Mirtes
+Mis�
+Misael
+Misal
+Misgabe
+Misma
+Mismana
+Misp�
+Mispate
+Misperete
+Misrefote
+Mizael
+Mnem�sine
+Mo�ca
+Moabe
+Moacir
+Moadias
+Moamede
+Mocanhimbara
+Mococa
+Mogadixo
+Mogadouro
+Mogeiro
+Mogi
+Moh�mede
+Moimenta
+Moipor�
+Moir�
+Moji
+Moju
+Molad�
+Molara
+Moldova
+Molide
+Molinari
+Molisani
+Momba�a
+Monaldo
+Monalisa
+Monchique
+Moncorvo
+Monda�
+Mondini
+Monforte
+Monfortinho
+Mong�lia
+Mongagu�
+Monigas
+Moniquinha
+Moniz
+Monjardim
+Monlevade
+Monr�via
+Monroe
+Monsanto
+Monsaraz
+Montalegre
+Montalv�nia
+Montalv�o
+Montalvo
+Montauri
+Montebelo
+Montecorvo
+Monteir�polis
+Montejunto
+Montemor
+Montenegro
+Monterverdi
+Montesquieu
+Monteverdi
+Montezuma
+Montoro
+Montreal
+Monza
+Moraes
+Morales
+Mordecai
+Moreil�ndia
+Morel
+Moresete
+Morfeu
+Morgan
+Morgana
+Mori�
+Morpar�
+Morretes
+Mortugaba
+Morumbi
+Morungaba
+Mosconi
+Moscoviano
+Moscovo
+Mosele
+Moser�
+Moserote
+Moses
+Moss�medes
+Motinha
+Motorola
+Mourinha
+Moutinho
+Mozar
+Mozarl�ndia
+Mu�um
+Muan�
+Mucaja�
+Muciano
+Mucug�
+Mucurici
+Muliterno
+Mumtaz
+Mundeo
+Munique
+Muniz
+Mupim
+Muqu�m
+Murari
+Muria�
+Muribeca
+Muricil�ndia
+Muriel
+Murilo
+Muritiba
+Murtada
+Murtosa
+Mussi
+Mussolini
+Mussu�pe
+Mussuca
+Mutu�pe
+Mutun�polis
+Muzambinho
+N�der
+N�dia
+N�poles
+N�sser
+N�ia
+N�vio
+N�vis
+N�cia
+N�colas
+N�dia
+N�nive
+N�brega
+N�rcia
+N�rton
+N�voa
+N.
+NASA
+NBA
+NCr
+NCz
+NE
+NR
+Na�
+Na�deos
+Nabor
+Nabote
+Nabu
+Nadima
+Nadine
+Nadson
+Naiara
+Naida
+Nailton
+Naiote
+Nalani
+Naldino
+Naldo
+Nalone
+Namar
+Namir
+Nanael
+Nanafolia
+Nanci
+Nancy
+Nandinha
+Nantes
+Nanuque
+Naoto
+Napata
+Naraiana
+Narcis�ceas
+Naruto
+Narva
+Nasdaq
+Nasim
+NasirR
+Nassau
+Nassim
+Nat�lie
+Nat�
+Nat�rcia
+Natacha
+Natal�ndia
+Natali
+Natan
+Natanael
+Nataniel
+Natel
+Natuba
+Naum
+Nauru
+Navier
+Navira�
+Naz�rio
+Nazar�
+Nazarezinho
+Nazariel
+Ne�
+Ne�polis
+Ne�cles
+Ne�polis
+NealR
+Neandro
+Nearias
+Nebai
+Nebaiote
+Nebalate
+Nebate
+Nebr�idas
+Neco
+Neemias
+Neide
+NeivaO
+Neli
+Nelson
+Nelton
+Nem�sio
+Nemias
+Nemo
+Nemuel
+Ner�polis
+Nereo
+Nereu
+Nergal
+Nergis
+Neri
+Nerias
+Neroli
+Netanel
+Netanias
+Netof�
+Netuno
+Neusa
+Nic�cio
+Nic�
+Nic�polis
+Nic�sia
+Nicanor
+Nicar�gua
+Nicodemos
+Nicole
+Nicolino
+Nicomedes
+Niemeyer
+Nig�ria
+Nigel
+Nil�polis
+Nilma
+Nilsen
+Nilson
+Nilton
+Nilva
+Nininha
+Ninrode
+Nioaque
+Nipo�
+Niquel�ndia
+Niter�i
+Nivaldo
+Niveo
+Nivia
+No�
+Noadia
+Nob�
+Nobe
+Nobil
+Noboru
+Noelani
+Noelminha
+Noelson
+Noemi
+Nolan
+Noleto
+Nonoai
+Norberto
+Norman
+Normandia
+Noronha
+Nortel�ndia
+Notod�ntidas
+Notre
+Noum�a
+Nov.
+Novaes
+Num�cio
+Numair
+Nuporanga
+OAB
+OCDE
+OE
+OGMA
+OLP
+OMS
+ONG
+ONG's
+ONU
+OO
+OPEP
+ORTN
+OSO
+OTN
+OXI
+Obadias
+Obd�lio
+Obdias
+Oberico
+Oberto
+Obs.
+Ocator
+Ocau�u
+Oceania
+Ocozias
+Ocr�
+Oct�vio
+Octavius
+Od�cio
+Od�lio
+Od�lio
+Od�ria
+Odacir
+Odair
+Odede
+Odele
+Odemar
+Odemira
+Odenato
+Odense
+Odeon
+Odessa
+Odete
+Odilo
+Odilon
+Odilson
+Odin
+Odir
+Odirlei
+Odisseu
+Odivelas
+Odorico
+Odu�no
+Odulfo
+Oduvaldo
+Ofel
+Ogum
+Ohio
+Oiapoque
+Oklahoma
+Ol�vio
+Olavo
+Oldegar
+Oldemar
+Oleg�rio
+Olimpas
+Olinaldo
+Olinda
+Olindina
+Oliose
+Oliv�rio
+Oliven�a
+Oliver
+Olivia
+Olivier
+Olodum
+Olv�dio
+Om�
+Omael
+Omar
+On�
+On�simo
+On�sio
+Ones�foro
+Onias
+Onofre
+Onorato
+OpenOffice
+Or�lia
+Or�genes
+Oraides
+Orebe
+Oregim
+Orestes
+Orfeu
+Oriana
+Orico
+Oriel
+Oriximin�
+Oriz�nia
+Orl�ndia
+Orlandi
+Orlandinho
+Orleans
+Orn�las
+Orneu
+Oroc�
+Orofernes
+Orontes
+Orsini
+Orson
+Ortega
+Ortiz
+Ortolani
+Orvile
+Os�as
+Os�ias
+Os�ris
+Os�rio
+Osaca
+Oscar
+Oscarlinda
+Oscavu
+Osias
+Osmar
+Osmilda
+Osmiro
+Osmundo
+Osram
+Osvaldo
+Osvino
+Ot�vio
+Otac�lio
+Otac�lo
+Otomar
+Otoniel
+Ouri�angas
+Ouril�ndia
+Ourizona
+Ouroeste
+Ourol�ndia
+Ov�dio
+Oviedo
+Oxford
+Oxum
+Oz
+Ozias
+Oziel
+P�ridas
+P�rmenes
+P�tara
+P�mela
+P�
+P�rcio
+P�rgamo
+P�rside
+P�ndaro
+P�rcio
+P�ncio
+P.
+PA
+PABX
+PAC
+PAIGC
+PASEP
+PB
+PC
+PCC
+PCP
+PCR
+PCTP
+PCUS
+PDM
+PDS
+PE
+PF
+PGA
+PGR
+PH
+PIB
+PIS
+PJ
+PKK
+PLD
+PM
+PME
+PP
+PR
+PRD
+PRO
+PROCON
+PS
+PSA
+PSD
+PSF
+PSN
+PSOE
+PSP
+PSR
+PSV
+PT
+Pablo
+Pac�mio
+Pac�nio
+Pacaembu
+Pacajus
+Pacaraima
+Pacatuba
+Pacheco
+Pacu�
+Pacuj�
+Pad�
+Paes
+Pagiel
+Pai�andu
+Palal
+Palau
+Palem�nidas
+Palhano
+Palharini
+Palitagua
+Palm�cia
+Palm�polis
+Palmeir�ndia
+Palmeir�polis
+Palmeirante
+Palmeirina
+Palmelo
+Palmin�polis
+Palmitinho
+Paltiel
+Palu
+Palumbo
+Pampilhosa
+Pamplona
+Pampulha
+Pan�ia
+Panaforte
+Panague
+Panambi
+Pancho
+Pandolfo
+Panfilo
+Pangeia
+Paniago
+Pantano
+Paolo
+Papanduva
+Paquerer
+Paquet�
+Paquist�o
+Par�
+Para�na
+Paracambi
+Paracuru
+Paragominas
+Paraguai
+Paraibuna
+Paraipaba
+Parais�polis
+Paraitinga
+Param�cidas
+Paramaribo
+Parambu
+Paramoti
+Parana�ba
+Parana�ta
+Paranagu�
+Paranaiguara
+Paranapanema
+Paranapiacaba
+Paranapoema
+Paranapu�
+Paranatama
+Paranatinga
+Paranava�
+Parano�
+Paraopeba
+Parapu�
+Paratinga
+Parauapebas
+Pareto
+Pariconha
+Paripiranga
+Paripueira
+Pariquera
+Parisi
+Parm�nio
+Parnagu�
+Parnamirim
+Parnaque
+Parnarama
+Parob�
+Paru�
+Parvaim
+Parvane
+Pas�ia
+Pase�
+Pasolini
+Pasquale
+Passab�m
+Passal�qua
+Passau
+Passira
+Passoni
+Pasteur
+Pastorinho
+Pat�lidas
+Patricia
+Paudalho
+Pauini
+Paulete
+Paulos
+Pav�ncia
+Paverama
+Pe�anha
+Pe.
+Peabiru
+Peca�as
+Pedran�polis
+Pedrin�polis
+Pedrino
+Pedrito
+Pegoraro
+Peju�ara
+Pel�
+Pela�as
+Pelalias
+Pelatias
+Pelegue
+Peloponeso
+Pen�polis
+Penacova
+Penaforte
+Penagui�o
+Penalva
+Penedono
+Peniche
+Penido
+Peniel
+Penipe
+Pensilv�nia
+Pentat�midas
+Pep�is
+Percival
+Perdita
+Perez
+Pergentino
+Perida
+Peritiba
+Peritor�
+Perol�ndia
+Perseu
+Peru�be
+Pet�nidas
+Peta�as
+Peter
+Petersburgo
+Petr�cia
+Petramale
+Petri
+Petrobras
+Petrol�ndia
+Petronilho
+Petronillio
+Petronilo
+Petrucio
+PhD
+Pi�ma
+Pia�abu�u
+Pia�aguera
+Piacatu
+Piaget
+Pianc�
+Piat�
+Piauitinga
+Picasso
+Pierre
+Piltai
+Pimel�didas
+Pimentel
+Pinda�
+Pindamonhangaba
+Pindar�
+Pindoba�u
+Pindoretama
+Ping
+Pinhal�o
+Pinhata
+Pint�polis
+Pioli
+Piquerobi
+Piquiri
+Pira�ba
+Piracaia
+Piracuruca
+Piragibe
+Piraju�
+Pirangi
+Pirangu�u
+Piranguinho
+Pirap�
+Pirapama
+Pirapora
+Pirapozinho
+Piraquera
+Pirassununga
+Piratini
+Piratininga
+Piratom
+Piratuba
+Piren�us
+Piren�polis
+Pirineus
+Pirip�
+Piritiba
+Pirpirituba
+Pirro
+Pis�dia
+Pit�goras
+Piumhi
+Pixinguinha
+Pl�nio
+Plasmodium
+Plat�o
+Plataleidas
+Plauto
+Pleioc�nico
+Pleioceno
+Pocon�
+Pocrane
+Podicip�didas
+Poiel
+Poincar�
+Pol�sine
+Policleto
+Polifeno
+Polit�ridas
+Politefe
+Politzer
+Pomerode
+Pompeo
+Pompeu
+Pondos
+Ponga�
+Pontalina
+Pontalinda
+Pontevedra
+Por�
+Porangatu
+Porteirinha
+Portel�ndia
+Portinari
+Portland
+Portugal
+Poseidon
+PostgreSQL
+Pot�
+Pot�oli
+Pot�fera
+Potengi
+Potifar
+Potim
+Potira
+Potiragu�
+Potirendaba
+Potiretama
+Poxor�o
+Pr�coro
+Pr�ssia
+Pracu�ba
+Prad�polis
+PradialJXZ2HQRV
+Pranchita
+Prat�polis
+Prat�nia
+Prates
+Praxedes
+Presciliano
+Pricila
+Prieto
+Prince
+Priscila
+Priv�
+Proc�pio
+Proctor
+Proen�a
+Prof.�
+Prof.
+Prop�rcio
+Propri�
+Prot�goras
+Prot�sio
+Prouvera
+Prud�ncio
+Prudence
+Prudenciano
+Prudent�polis
+Psam�tico
+Ptolemaida
+Ptolomeu
+Puntel
+Putinga
+Puxinan�
+Q.
+QCA
+QRS
+QT
+Qu�rcia
+Qu�nia
+Quara�
+Quatigu�
+Queilodit�ridas
+Queiloditer�deos
+Queiroz
+Quel�didas
+Quelita
+Quem�s
+Quental
+Querm�sidas
+Quintela
+Quintino
+Quioto
+Quipap�
+Quir�o
+Quirguist�o
+Quiriataim
+Quirin�polis
+Quirino
+Quitandinha
+Quiterian�polis
+Quitim
+Quixab�
+Quixel�
+Quixer�
+Quixeramobim
+R�gis
+R�mulo
+R�d�o
+R�dano
+R�ger
+R�mulo
+R�nei
+R�ssia
+RDA
+RDD
+RDP
+RDTL
+RESP.
+RG
+RISC
+RJ
+RN
+RNA
+RO
+RPR
+RR
+RS
+RTP
+Radag�sio
+Radam�s
+Radamanto
+Radulfo
+Rafael
+Rafaela
+RaimundoOP
+Raisa
+Ram�o
+Rames�s
+Ramil�ndia
+Ramires
+Ramiro
+Rams�s
+Randolfo
+Ranieri
+Raniero
+Ranilda
+Raul
+Rebordelo
+Recabe
+Recursol�ndia
+Refa�as
+Refaim
+Regiane
+Regin�polis
+Reginaldo
+Rejane
+Rem�gio
+Remalias
+Ren�nia
+Ren�
+Requ�m
+Requi�o
+Reriutaba
+Resp.
+Ressaquinha
+Retirol�ndia
+Riachuelo
+Rialma
+Rian�polis
+Riane
+Ribaldo
+Ribatejo
+Ribeir�polis
+Ribla
+Ricardino
+Rigoberto
+Rildo
+Rin�polis
+Rinaldo
+Ringo
+Rinocer�tidas
+Riobamba
+Riol�ndia
+Riozinho
+Riquelme
+Rit�polis
+Rivad�via
+Rivaldo
+Riviera
+Rizost�midas
+Roaldo
+Roana
+Rob�o
+Rob�rio
+Robadel
+Robespierre
+Robin
+Robinho
+Robinson
+Robson
+Roclides
+Rod�sia
+Roderico
+Rodimar
+Rodina
+Rodoberto
+Rodolfo
+Rog�lio
+Rog�rio
+Rom�rio
+Rom�nia
+Rom�nia
+Romel�ndia
+Romero
+Romilda
+Romualdo
+Romuel
+Ronaldinha
+Ronaldo
+Ronan
+Roncol�
+Ronconi
+Rond�nia
+Rondeli
+Rondol�ndia
+Rondon�polis
+Roni
+Ronildo
+Ronise
+Roraima
+Rorain�polis
+Ros�lie
+Ros�lio
+Ros�ngela
+Rosabela
+Rosal�ndia
+Rosalba
+Rosalda
+Rosali
+Rosalice
+Rosalinda
+Rosaline
+Rosamaria
+Rosamundo
+Rosane
+Rosaura
+Roselaine
+Roselena
+Roseli
+Rosendo
+Rosentina
+Rosineide
+Roslindo
+Ross�lio
+Rossana
+Rossandra
+Rossilh�o
+Rossini
+Rosvaldo
+Rosvinda
+Roterd�o
+Ruanda
+Ruben
+Ruberval
+Rubiataba
+Rubin�ia
+Rudolfo
+Rufino
+Rur�polis
+Rurina
+Russel
+S�
+S�lvio
+S�vio
+S�fora
+S�lia
+S�rgio
+S�rvulo
+S�lvio
+S�maco
+S�via
+S�crates
+S�focles
+S�patros
+S�stenes
+S�nia
+S.
+S.A.
+S.O.S.
+SAC
+SBM
+SBPE
+SBT
+SC
+SEBRAE
+SEF
+SELIC
+SESC
+SESI
+SFA
+SFH
+SFI
+SIMC
+SISBACEN
+SISBEX
+SMAS
+SME
+SOS
+SP
+SPD
+STF
+STJ
+SUSEP
+Saara
+Sab�udia
+Saba�na
+Sabar�
+Sabin�polis
+Sabine
+Sabrina
+Sabrosa
+Sal�stio
+Salatiel
+Salazar
+Sales�polis
+Salete
+Salin�polis
+Salom�
+Salopiano
+Salustiano
+Salviano
+Salvino
+Sam�
+Samanta
+Samaria
+Sampaio
+SamuelOR
+Samuelson
+Sanches
+Sanclerl�ndia
+Sandino
+Sandol�ndia
+Sandoval
+Sandovalina
+Sandro
+Sant�polis
+Santan�polis
+Santino
+Sapea�u
+Saquias
+Saracuruna
+Sarafe
+Sarafina
+Sarajevo
+Saralinda
+Sarapu�
+Sarasar
+Sardo�
+Sardoal
+Sarina
+Sarita
+Satomi
+Satoru
+SatubaO
+Saubara
+Saul
+Saulo
+Sav�
+Sav�rio
+Sav�ia
+Savedra
+Savero
+Saviani
+Savine
+Savino
+Seabra
+Sebastian�polis
+Secundido
+Sedex
+Sefuf�
+Segismundo
+Sel�ucia
+Selemias
+Selena
+Selima
+SelmaO
+Selmar
+Selmiro
+Selv�ria
+Semuel
+Sen.
+Senac
+Senai
+Senir
+Sep�lveda
+Ser�pio
+Sera�as
+Serabias
+Serafino
+Serebias
+Sergia
+Sergiane
+Sergipe
+Serinha�m
+Seritinga
+Serop�dica
+Serran�polis
+Serrita
+Serrol�ndia
+Sert�nia
+Sert�rio
+Sertan�polis
+Setubinha
+Sibal
+Sibele
+Sibraim
+Sider�polis
+Sidn�ia
+Sidnei
+Sidney
+Sidom
+Sidrol�ndia
+Sigmundo
+Sil�
+Silmara
+Silo�
+Silv�nia
+Silv�rio
+Silv�ster
+Silvan�polis
+Silvane
+Silveir�nia
+Silveirinha
+Silvian�polis
+Silziene
+Sim�ia
+Simara
+Sime�o
+Simeate
+Simei
+Simere
+Simol�ndia
+Simon�sia
+Simone
+Simoneta
+Sin�sio
+Sinelma
+Sinfr�nio
+Singapura
+Singer
+Sinibaldo
+Sinqui�o
+Sintia
+Siqueira
+Sobroza
+Sodoma
+Soeiro
+Sofonias
+Sofr�nio
+Solange
+Soldeiro
+Soleim�o
+Solicitadoria
+Solidade
+Solino
+Solon�pole
+Solzita
+Som�lia
+Sonoda
+Soraia
+Sorbona
+Soreque
+Sorocaba
+Sorraine
+Sos�patro
+Sos�patros
+Soss�go
+Sotero
+Sotomaior
+Soutelo
+Spinola
+Spinosa
+Sras.
+Srtas.
+Stefane
+Stefano
+Stela
+Su�rez
+Su�dia
+Su�len
+Sua�u�
+Sua�una
+Suassuna
+Suazil�ndia
+Subael
+Sucena
+Sudamar
+Sueli
+Suely
+Suemari
+Suenia
+Suenne
+Suet�nio
+Suez
+Suf�
+Suiane
+Sumaira
+Sumara
+Suriel
+Suriname
+Susan
+Susane
+Susaninha
+Susete
+Susi
+Sut�o
+Suzan�polis
+Suzane
+Suzaninha
+Suzano
+Suzete
+T�cio
+T�liga
+T�lpidas
+T�pua
+T�rrega
+T�vora
+T�mega
+T�misa
+T�nger
+T�nio
+T�nis
+T�nus
+T�ia
+T�jidas
+T�rtulo
+T�stio
+T�mis
+T�quico
+T�didas
+T�quio
+T�fel
+T�nia
+T�rdidas
+T�rios
+T.
+TAM
+TAP
+TC
+TCE
+TELEPAR
+TELESC
+TEQUEL
+TJLP
+TLP
+TPM
+TR
+TRD
+TRE
+TRF
+TRT
+TSA
+TSE
+TST
+TV
+TVI
+Ta�s
+Taba�
+Tabaote
+Tabapor�
+Tabassum
+Tabate
+Tabeal
+Tabeel
+Taber�
+Tabita
+Tabo�o
+Taboado
+Taboc�o
+Taboleiro
+Taborda
+Tabosa
+Tabrimom
+Tabua�o
+Tacaimb�
+Tacarambi
+Tacaratu
+Tacianoi
+Tacima
+Tadeo
+Tadeu
+Tadjiquist�o
+Tadmor
+Tafate
+Tafnes
+Tagar
+Tagua�
+Taguatinga
+Tahani
+TahirR
+Tahmina
+Tai�
+Taiana
+Taiguara
+Tail�ndia
+Taim
+Taipu
+Taiti
+Tajaz
+Tajiquist�o
+Tal�sio
+Tal�ia
+Talarico
+Talita
+Talmai
+TalorR
+Tam�
+Tamacavi
+Tamadur
+Tamam
+TamarR
+Tamba�
+Tamboara
+Tamburi�
+Tamim
+TamirR
+Tancos
+Tanetiano
+Tanganica
+Tanumete
+Tanz�nia
+Tap�ridas
+Taparuba
+Tapau�
+Tapero�
+Tapira�
+Tapiramut�
+Tapiratiba
+Taquarana
+Taquaritinga
+Taquarituba
+Taquariva�
+Taquarussu
+Taquemoni
+Taqueremb�
+Tar�
+Tar�ia
+Tarala
+Tarana
+Tarauac�
+Tarc�sio
+Targino
+Tarqu�nio
+Tars�idas
+Tars�sio
+Tarsila
+Tartaque
+Tarumirim
+Tassinari
+Tasso
+Tatiane
+Taveira
+Tavi
+Tavira
+Te�bulo
+Te�crito
+Te�fanes
+Te�filo
+Te�genes
+Tebaldo
+Tebalias
+Tebe
+Tebes
+Teer�
+Teer�o
+Tegucigalpa
+Teixeir�polis
+TeixeiraOW
+Teju�uoca
+Tejup�
+Tel�m
+Tel�maco
+Tel�nidas
+Telcilene
+Teledamo
+Telesio
+Telmo
+Tem�
+Tem�stocles
+Tenebri�nidas
+Tenessi
+Teobaldo
+Teobardo
+Teod�sio
+Teodemiro
+Teodobaldo
+Teodolinda
+Teodomiro
+Teodoreto
+Teodorico
+Teodoro
+Teof�nia
+Teofil�ndia
+Teofrasto
+Teol�ndia
+Teolbado
+Teolinda
+Teomiro
+Teot�nio
+Ter�nsis
+Ter�ncio
+Terap�nidas
+Tered�nidas
+Terence
+Teres�polis
+Teresina
+Teresita
+TerezaO
+Terps�core
+Tertulino
+Tessal�nica
+Teuf�nio
+Thor
+Tiago
+Tiangu�
+Tib�es
+Tib�rio
+Tib�rcio
+Tibagi
+Tibaji
+Tiber�ades
+Tibiri��
+Ticiano
+Tidal
+Tim�crates
+Tim�teo
+Tim
+Timboteua
+Timeu
+Timora
+Tineidas
+Tinoco
+Tip�lidas
+Tir�nidas
+Tiraca
+Tiradentes
+Tiran�
+Tiria
+Tirol
+Tirza
+To�
+Tobago
+Tobe
+Tobias
+Tocant�nia
+Tocantin�polis
+Tocate
+Tocos
+Tod�sia
+Todem�rio
+Todemiro
+Tofano
+Tofete
+Togarma
+Tolentino
+Tolmai
+Tolosa
+Tolstoi
+Tom�s
+Tom�sia
+Tomaz
+Tomazina
+Tomio
+Tonantins
+Tondela
+Toni
+Tonico
+Toqu�m
+Toquelau
+Tordesilhas
+Toritama
+Torixor�u
+Toronto
+Toropi
+Torped�nidas
+Torrens
+Tortola
+Toyota
+Tr�upidas
+Tr�fimo
+Tr�ade
+Trabiju
+Trag�lidas
+Traipu
+Trairi
+Trajano
+Tramanda�
+Tranquilino
+Transc�ucaso
+Transilv�nia
+Transval
+Tras�bulo
+Travis
+Tremadociano
+Trento
+Trevis
+Triatoma
+Trinidade
+Trinit�
+Triqu�quidas
+Trivium
+Trizidela
+Tuc�dides
+Tucunduva
+Tucuru�
+Tufil�ndia
+Tumiritinga
+Tun�polis
+Tun�sia
+Tuneiras
+Tungurahua
+Tunia
+Tuntum
+Tup�ssi
+Tupa�idas
+Tupaciguara
+Tupanatinga
+Tupanci
+Tupanciret�
+Tupandi
+Tuparendi
+Tuparetama
+Tupim
+Tupirama
+Tupiratins
+Tur�bio
+Turcomenist�o
+Turi�ba
+Turia�u
+Turil�ndia
+Turim
+Turn�cidas
+Turner
+Turquemenist�o
+Turquest�o
+Turv�nia
+Turvel�ndia
+Turvol�ndia
+Tut�ia
+Tutanc�mon
+Tutm�s
+Tutmosis
+U.
+UBP
+UDP
+UDT
+UE
+UEFA
+UEM
+UEO
+UERJ
+UFARSIM
+UFES
+UFIR
+UFMG
+UFPA
+UFPB
+UFPE
+UFPEL
+UFPR
+UFRGS
+UFRJ
+UFRN
+UFRRJ
+UFSC
+UFSM
+UGT
+ULE
+UNITA
+UPC
+URL
+URSS
+USP
+Uadi
+Uagadugu
+Uarini
+Uatum�
+Uba�
+Uba�ra
+Ubaitaba
+Ubajara
+Ubaldino
+Ubaldo
+Ubaporanga
+Ubatuba
+Uberaba
+Uberl�ndia
+Uberto
+Ubiratan
+Ubiretama
+Ubuntu
+Ucal
+Uch�a
+Uel
+Ufaz
+Uganda
+Uiba�
+Uiramut�
+Ul�o
+Uldarico
+Ulhoa
+Ulian�polis
+Ulises
+Ulpiano
+Ulpriano
+Ulrico
+Umabel
+Umbelino
+Umberto
+Umburatiba
+Una�
+Unesco
+Unesp
+Uni�nidas
+Unibanco
+Unicamp
+Uniemp
+Unifesp
+Uniflor
+Unioeste
+Unipar
+Unistalda
+Unisys
+Unix
+Upanema
+Ur
+Urandi
+Urania
+Uranus
+Urban
+Urbi�n
+Urbi
+Urbino
+Uriel
+Urien
+Urs�deos
+Urs
+Ursel
+Urszula
+Urt�ceas
+Uru�u�
+Uru�uca
+Uru�unga
+Urua�u
+Uruana
+Uruar�
+Urubici
+Urubupung�
+Uruburetama
+Urubutinga
+Uruc�nia
+Urucar�
+Urucuia
+Urucurituba
+Uruguai
+Uruoca
+Urup�
+Urussanga
+Uruta�
+Usbequist�o
+Utah
+Utinga
+Uvulari�ceas
+Uz�
+Uz�m
+Uzbequist�o
+Uzi
+Uzias
+Uziel
+V�gner
+V�lter
+V�squez
+V�nia
+V�nus
+V�stula
+V�lpio
+V
+V.Sa.
+V.Sas.
+VCI
+VDM
+VII
+VIII
+VW
+Vaccari
+Vagner
+Val�rio
+Val�ncio
+Val�na
+Valadares
+Valc�cer
+Vald�vio
+Valdecir
+Valdeir
+Valdemar
+Valderez
+Valdes
+Valdete
+Valdevez
+Valdevino
+Valdinea
+Valdir
+Valdirene
+Valdivino
+Valdomiro
+Valdovino
+Valeirinha
+Valeixo
+Valentim
+Valentine
+Valeriano
+Valerie
+Valesca
+Valeska
+Valfredo
+Valfrido
+Valim
+Valinhos
+Valmar
+Valmir
+Valmor
+Valnice
+Valongo
+Valpa�os
+Valpara�so
+Valteno
+Valter
+Vand�ceas
+Vanderlei
+Vanderleia
+Vandique
+Vani
+Vanias
+Vanil�ceas
+Vanini
+Vanita
+Vanuatu
+Vanusa
+Varge�o
+Varjado
+Vars�via
+Varzel�ndia
+Vasconcelos
+Vassoural
+Vasti
+Vaz
+Vedelago
+Vegas
+Vel�squez
+Vel�ncia
+Velasco
+Veldemiro
+Velita
+Ven�cia
+Ven�cio
+Ven�lia
+Venancinha
+Venceslau
+Vendelino
+Veneranda
+Veneto
+Veneza
+Venezuela
+Venina
+Ver�
+Ver�ssimo
+Veralice
+Veran�polis
+Veratr�ceas
+Verdel�ndia
+Verdelete
+Verdi
+Veriano
+Veridiana
+Verona
+Versalhes
+Vesp�cio
+Vespasiano
+Vevila
+Viam�o
+Vian�polis
+Vibaldo
+Viburn�ceas
+Vic�ncia
+Vicentin�polis
+Vict�rio
+Vidal
+Vidigal
+Vidigueira
+Vieir�polis
+Vieirinha
+Viena
+Vienciana
+Vietn�
+Vietname
+Vig�lio
+Vigberto
+Vila�a
+Vila-Francada
+Vilfredo
+Vilhena
+Vilibaldo
+Vilma
+Vilmar
+Vilmaro
+Vilnius
+Vilson
+Vimioso
+Vin�cio
+Vin�cius
+Vinci
+Vinebaldo
+Vinola
+Violani
+Vip�ridas
+Viradouro
+Virg�lio
+Virgil
+Virgin�polis
+Virgol�ndia
+Virgulino
+Viridiano
+Virmara
+Visc�ceas
+Visconti
+Viseu
+Vit�lio
+Vit�rio
+Vitalino
+Viterbo
+Vitic�ceas
+Vitoldo
+Vitor
+Vitorinha
+Viv�rridas
+Viv�ncio
+Vivacqua
+Vivaldi
+Vivaldo
+Vivian
+Viviane
+Vizela
+Vladimir
+Votorantim
+Votuporanga
+Vouga
+Vouzela
+Vulcano
+W.
+Wagner
+Walter
+Washington
+Watson
+Wellington
+Wikip�dia
+Wilson
+Wilton
+X
+X.
+XA
+XC
+XCI
+XCII
+XCIII
+XCIV
+XCIX
+XCV
+XCVI
+XCVII
+XCVIII
+XII
+XIII
+XIV
+XIX
+XL
+XLI
+XLII
+XLIII
+XLIV
+XLIX
+XLV
+XLVI
+XLVII
+XLVIII
+XP
+XV
+XVI
+XVII
+XVIII
+XX
+XXI
+XXII
+XXIII
+XXIV
+XXIX
+XXV
+XXVI
+XXVII
+XXVIII
+XXX
+XXXI
+XXXII
+XXXIII
+XXXIV
+XXXIX
+XXXV
+XXXVI
+XXXVII
+XXXVIII
+Xadai
+Xamaxe
+Xambr�
+Xanana
+Xandu
+Xangai
+Xangri
+Xantipo
+Xantox�leas
+Xantoxil�ceas
+Xanxer�
+Xapuri
+Xaquira
+Xavier
+Xen�crates
+Xenofonte
+Xenofontes
+Xiancai
+Xilof�rias
+Ximena
+Ximenes
+Xing�
+Xingu
+Xinguara
+Xique
+Xopan�
+Yasmim
+Z�nia
+Z�fida
+Z�idas
+Z�lio
+Z�nia
+Z�zere
+Z�bia
+Z�pora
+Z�ilo
+Z�zimo
+Za�ra
+Zabadias
+Zabai
+Zabdiel
+Zabul�o
+Zacai
+Zacarias
+Zadoque
+Zafriel
+Zaide
+Zair
+Zalmom
+Zalmona
+Zamb�zia
+Zambeze
+Zambri
+Zamira
+Zamora
+Zancheta
+Zanchi
+Zandon�
+Zane
+Zanete
+Zaneti
+Zangu�
+Zanini
+Zanoa
+Zanoni�ceas
+Zantoxil�ceas
+ZapataZ2
+Zapatista
+Zapelini
+Zaque
+Zaqueu
+Zara
+Zaratustra
+Zaret�
+Zarifa
+Zarzur
+Ze�deos
+Zeb�
+Zebadias
+Zebe
+Zebedeu
+Zebida
+Zebina
+Zeboim
+Zebube
+Zebul
+ZecaO
+Zeda
+Zedade
+Zedeque
+Zedequias
+Zeferino
+Zel�ndia
+Zelda
+Zeleque
+Zelinda
+Zelita
+Zelmira
+Zemira
+Zen�
+Zen�bio
+Zenaide
+Zenilde
+Zenodoro
+Zered�
+Zerer�
+Zerete
+Zeus
+Zez�
+Zezinha
+Zezito
+Ziba
+Zibe�o
+Ziclague
+Zico
+Zidane
+Zidim
+Zigofil�ceas
+Zil�
+Zilda
+Zilena
+Ziletai
+Zilma
+Zim
+Zimora
+Zimra
+Zimri
+Zinara
+Zingiber�ceas
+Ziomar
+Zior
+Zipor
+Ziraldo
+Zita
+Ziva
+Ziza
+Zizif�ceas
+Zo�
+Zo�
+Zob�
+Zobeba
+Zoelete
+Zor�
+Zoraia
+Zoraide
+Zorana
+Zoroastro
+Zorobabel
+Zort�a
+Zoster�ceas
+Zosterio
+Zuar
+Zubair
+Zuleica
+ZulmiraO
+Zuriel
+Zurique
\ No newline at end of file
diff --git a/site-antigo/extra/FerramentasDeTraducao/review b/site-antigo/extra/FerramentasDeTraducao/review
new file mode 100644
index 0000000..279bee1
--- /dev/null
+++ b/site-antigo/extra/FerramentasDeTraducao/review
@@ -0,0 +1,346 @@
+#!/bin/sh
+#
+# review - proof-read GNOME translations before you commit them.
+# Copyright (C) 2008 Leonardo Ferreira Fontenelle <leonardof gnome org>
+#
+#    This program is free software; you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation; either version 2 of the License, or
+#    (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+
+### User settings
+#
+#
+
+# run 'review --help' to see if you need to change this.
+# 
+# lang=pt_BR
+
+# Don't choose an ncurses/slang text editor here, because we need the terminal
+# window free to show the diff. You don't need to append '&' to the end of
+# the command, because the script will do it for you latter. Default: "gedit".
+# 
+# editor=gvim
+
+# This is the list of tests to be performed on the second pass of pofilter, if
+# it is installed. The critical tests will be automatically excluded, because
+# they were already performed at the first time.
+#
+# Leave this variable commented to make pofilter perform its standard GNOME
+# tests. If you uncomment the variable, but leave it empty, there will be no
+# second pass. For more information on the pofilter tests, run 
+# 'pofilter --listfilters' or read:
+# http://translate.sourceforge.net/wiki/toolkit/pofilter_tests
+# 
+# pofilter_tests="acronyms blank emails filepaths functions numbers options purepunc urls endpunc 
endwhitespace startwhitespace"
+
+# These are additional, non-test arguments for pofilter. Run 'pofilter --help'
+# for more information. You don't need to set '--language=$lang' or
+# '--progress=none' here, because the script already includes them.
+#
+# If you kept the 'pofilter_tests' commented, you may want to exclude one or two
+# tests. You could uncomment 'pofilter_tests' and set all the tests you want
+# pofilter to run. But you can also use 'pofilter_args' to exclude those
+# unwanted tests, with '--excludefilter=FILTER'.
+#
+# Please notice that this 'pofilter_args' will be used in both pofilter passes!
+#
+# pofilter_args="--nofuzzy --excludefilter=untranslated"
+
+# Uncomment, i. e. erase the "#" before the following option to avoid the
+# instructions given at the end of the script execution:
+# 
+# avoid_tips="yes"
+
+### Helper functions
+#
+#
+die() {
+       echo "$1"
+       exit 1
+}
+
+download() {
+       [ -d "$my_dir" ] || mkdir -p "$my_dir"
+       [ $? -eq 0 ] || die "Error! mkdir $my_dir failed"
+       
+       wget "$1" --timestamping --directory-prefix="$my_dir" --quiet
+       [ $? -eq 0 ] || die "Error! Could not download $1"
+}
+
+exists(){
+       # Doesn't return error if "which" doesn't exist.
+       [ ! -z "$(which $1 2> /dev/null)" ]
+}
+
+help() {
+       echo "Usage: review [FILENAME | -h | --help]
+
+FILENAME is, obviously, the message catalog to be reviewed. If it is specified,
+it should be something like at-spi.HEAD.pt_BR.po, help.gnome-2-24.pt_BR.po, 
+weather-locations.HEAD.pt_BR.po, or user-guide.HEAD.pt_BR.po. This is most 
+useful for regular translators to review their own translations, or someone 
+elses translations. This mode doesn't require Subversion to be installed.
+
+If the script is run without any arguments, it will guess the file name based on
+the language configuration (see below). The guess will be something like
+'pt_BR.po', and it will be presumed that the file is in the current location and
+under version control with Subversion. This is a good option if you commit
+translations!
+
+This script automatically guesses your language based on \$LANG. If you prefer
+a different language, please edit this script or provide a \$lang environment
+variable. Right now the value of \$lang is $lang.
+
+The script will download a new message catalog from l10n.gnome.org and save it
+with the same name as the message catalog being reviewed, plus a trailing '.dl'.
+Then it will fix long lines from the message catalog being reviewed (e. g. if
+translator used poEdit) and update it with the version downloaded from Damned
+Lies. This way you can use 'diff' much more efficiently to proof-read the
+translation.
+
+Before you have the change to edit the message catalog being reviewed, the
+script will back it up with a 'pre' extension. Then gedit or other text editor
+will open the message catalog, while at the the terminal you can read a paged
+diff between the message catalog from Damned Lies and the one being reviewed.
+Press 'h' if you need any help to jump between highlighted changes, or to exit.
+If you don't like the default text editor, launch your favorite editor and edit
+this script. You can set something like poEdit instead of a text editor, if you
+want. But you really should try reviewing with a text editor, because of the
+usually better search and replace tools.
+
+After reading the output of diff, and fixing any errors, save the file in the
+text editor, but don't close it. When you quit the paged diff at the terminal,
+the script will run 'pofilter' (from the 'translate-toolkit' package) if it is
+installed. In fact, it will run it twice. First it will make only the critical
+tests, and then the others. Besides being less important, the last ones provide
+false-positives more frequently, so you don't have to fix everything they find.
+You can customize the second set of tests by editing this script. (It's easy,I
+swear!)
+
+After running this script, you'll have a proof-read message catalog, as well as
+the .pre version (which is prior to the review) and the .dl version (which is
+the same as in Damned Lies). You can still make any change to the message 
+catalog being reviewed. Then, run diff between the message catalog and the .pre
+version to get a list of changes.
+
+If you commit translations, now you can update the ChangeLog and commit the
+message catalog ;)
+
+To avoid the 'If you need instructions ...' message at the end, please edit this
+script.
+"
+}
+
+### Code execution starts here
+#
+#
+lang=${lang:-${LANG%.*}}
+editor=${editor:-"gedit"}
+my_dir="$HOME/.damned-lies"
+dl_server="${dl_server:-"http://l10n.gnome.org"}";
+dependencies="less xmlstarlet wget"
+releases_file="releases.xml"
+modules_file="gnome-modules.xml.in"
+
+case $# in
+       "0")
+               catalog=$lang.po
+               [ -f "$catalog" ] || die "Error! Couldn't find $catalog"
+               use_svn="yes"
+               ;;
+       "1")
+               # TODO: if $1 is a SVN-controled $lang.po, set use_svn="yes"
+               if [ -f "$1" ]; then catalog="$1"
+               elif [ $1 = "--help" -o $1 = "-h" ]; then { help; exit; }
+               else die "Error! Couldn't find $1"
+               fi
+               use_svn=""
+               ;;
+       "*")
+               help
+               exit 1
+               ;;
+esac
+
+[ "$use_svn" ] && dependencies="$dependencies svn"
+
+if [ -z "$(which --version)" ]; then
+       echo "Warning! 'which' not found. Can't check for dependencies."
+else
+       for dep in $dependencies; do
+               exists "$dep" || die "Error! $dep not found."
+       done
+fi
+
+echo -n "Downloading the message catalog from Damned Lies... "
+
+if [ "$use_svn" ]; then
+       [ -z "$(ssh-add -l)" ] && ssh-add
+       [ -z "$(svn diff)" ] && die "No local changes... leaving."
+       svninfo_url="$(svn info --xml "$catalog" | xmlstarlet sel -t -v //url)"
+       svninfo_root="$(svn info --xml "$catalog" | xmlstarlet sel -t -v //root)"
+       module="$(basename $svninfo_root)"
+       svnpath="$(dirname $module/${svninfo_url##$svninfo_root/})"
+       case $svnpath in
+               $module/trunk* )
+                       release_xpath="//release[.//module[@id='$module' and not(@branch)]][last()]/@id"
+                       ;;
+               $module/branches* )
+                       branch=$(echo $svnpath | cut -d / -f 3)
+                       release_xpath="//release[.//module[@id='$module' and @branch='$branch']][last()]/@id"
+                       ;;
+               * )
+                       die "Error! Can't find branch name in $svnpath"
+                       ;;
+       esac
+       download "$dl_server/po/$lang/$releases_file"
+       release=$(xmlstarlet sel -t -v "$release_xpath" "$my_dir/$releases_file")
+       download "$dl_server/languages/$lang/$release.xml"
+       pofile_xpath="//domain[svnpath='$svnpath'] | //document[svnpath='$svnpath']"
+       pofile="$( xmlstarlet sel -t -m "$pofile_xpath" -v "pofile" "$my_dir/$release.xml")"
+else
+       for i in 1 2 3 4; do
+               eval part$i=$(echo $(basename "$catalog") | cut -d . -f $i)
+               [ $? -eq 0 ] || die "Error! Invalid filename: $catalog"
+       done
+       [ $part4 = "po" ] || die "Error! Invalid filename: $catalog"
+       lang=$part3
+       branch=$part2   # e. g. "HEAD", "gnome-2-24"
+       
+       download "http://svn.gnome.org/svn/damned-lies/trunk/$modules_file";
+       f="$my_dir/$modules_file"
+       
+       # Some of the possible values for $part1:
+       # - "libgweather": the domain name is the same as the module name
+       # - "libgweather-locations": ops, this module has another translation domain!
+       # - "user-guide": document from the gnome-user-docs module
+       # - "help": <irony>nice</irony>. Now which module is this from?
+       #
+       if [ ! -z "$(xmlstarlet sel -t -c "//module[@id='$part1']" "$f")" ]; then
+               module=$part1
+               module_type="domain"
+       elif [ "$(xmlstarlet sel -t -c "count(//domain[@potbase='$part1'])" "$f")" -eq 1 ]; then
+               module=$(xmlstarlet sel -t -v "//module[.//domain[@potbase='$part1']]/@id" "$f")
+               module_type="domain"
+       elif [ "$(xmlstarlet sel -t -c "count(//document[@id='$part1'])" "$f")" -eq 1 ]; then
+               module=$(xmlstarlet sel -t -v "//module[.//document[@id='$part1']]/@id" "$f")
+               module_type="document"
+       elif [ "$(xmlstarlet sel -t -c "count(//document[@id='$part1'])" "$f")" -gt 1 ]; then
+               module_list="$(xmlstarlet sel -t -m "//module[.//document[@id='$part1']]" -v "@id" -n "$f" | 
tr ' ' '\n' | sort)"
+               module_count=$(echo $module_list | wc -w)
+               echo
+               echo
+               echo "There are $module_count modules for this file name:"
+               for m in $module_list; do
+               # The dash builtin accepts escape sequences by default.
+               # The bash posix mode doesn't.
+                       echo "    $m"
+               done
+               # TODO: default value from Project-Id-Version
+               echo -n "Please enter the desired module name: "
+               read module
+               module_is_valid=""
+               for m in $module_list; do
+                       [ "$m" = "$module" ] && module_is_valid="yes"
+               done
+               [ "$module_is_valid" ] || die "Error! Invalid module name: $module"
+               module_type="document"
+       else
+               die "Error! Couldn't find out the module name for file $catalog"
+       fi
+       
+       if [ $module_type = "domain" ]; then                    
+               pofile=POT/$module.$branch/$part1.$part2.$part3.$part4
+       elif [ $module_type = "document" ]; then
+               pofile=POT/$module.$branch/docs/$part1.$part2.$part3.$part4
+       else
+               die "Error! Invalid \$module_type: $module_type"
+       fi
+fi
+
+catalog_dl="$catalog.dl"       # The version downloaded from Damned Lies
+catalog_pre="$catalog.pre"     # Same translations as before the script was run
+
+wget -q -O "$catalog_dl" "$dl_server/$pofile" 
+[ $? -eq 0 ] || wget -q -O "$catalog_dl" \
+       "$dl_server/$(dirname $pofile)/$(basename $pofile .$lang.po).pot"
+[ $? -eq 0 ] || die "Error! Couldn't download $dl_server/$pofile"
+
+echo "done!"
+
+echo
+
+# Tidy up for better diffs
+msgmerge --update "$catalog" "$catalog_dl" --quiet || exit 1
+msgcat "$catalog" --output="$catalog" || exit 1
+cp "$catalog" "$catalog_pre"
+
+for file in "$catalog" "$catalog_dl"; do
+       echo -n "$(basename "$file"): "
+       msgfmt -cvo /dev/null "$file"
+done
+
+echo
+
+$editor "$catalog" &
+
+# Let the user see the ouput of msgfmt
+echo -n "Differences from the version in Damned Lies version... "
+sleep 3
+diff --unified "$catalog_dl" "$catalog_pre" | less -p "^\+[^#]"
+[ $? -eq 0 ] && echo "done!"
+
+# http://translate.sourceforge.net/wiki/toolkit/pofilter
+exists pofilter && {
+       # http://translate.sourceforge.net/wiki/toolkit/pofilter_tests
+       critical_tests="accelerators escapes newlines nplurals \
+                       printf tabs variables xmltags"
+                       
+       include_critical=""
+       for test in $critical_tests; do
+               include_critical="$include_critical -t $test"
+       done
+       
+       include_others=""
+       for test in $pofilter_tests; do
+               include_others="$include_others -t $test"
+       done
+
+       exclude_critical=""
+       for test in $critical_tests; do
+               exclude_critical="$exclude_critical --excludefilter=$test"
+       done
+
+       echo -n "Running critical pofilter tests... "
+       sleep 2
+       pofilter "$catalog" \
+               --language=$lang --progress=none \
+               $pofilter_args \
+               $include_critical \
+               | less
+       [ $? -eq 0 ] && echo "done!"
+       
+       # Results false if 'pofilter_tests' is set but empty.
+       [ "${pofilter_tests-"--gnome"}" ] && {
+               echo -n "Running other pofilter tests... "
+               sleep 2
+               pofilter "$catalog" \
+                       --language=$lang --progress=none \
+                       $pofilter_args \
+                       ${include_others:-"--gnome"} \
+                       $exclude_critical \
+                       | less
+               [ $? -eq 0 ] && echo "done!"
+       }
+}
+
+[ $avoid_tips ] || echo "
+If you need instructions on what to do from now on, run 'review --help'
+"
diff --git a/site-antigo/extra/Forum/bannerFixo_468x60.png b/site-antigo/extra/Forum/bannerFixo_468x60.png
new file mode 100644
index 0000000..9477fb2
Binary files /dev/null and b/site-antigo/extra/Forum/bannerFixo_468x60.png differ
diff --git a/site-antigo/extra/LayoutTemplate/logo.gif b/site-antigo/extra/LayoutTemplate/logo.gif
new file mode 100644
index 0000000..fe993a6
Binary files /dev/null and b/site-antigo/extra/LayoutTemplate/logo.gif differ
diff --git a/site-antigo/extra/MaterialDivulgacao/BannerA4_A1-thumb.png 
b/site-antigo/extra/MaterialDivulgacao/BannerA4_A1-thumb.png
new file mode 100644
index 0000000..7c0b4ab
Binary files /dev/null and b/site-antigo/extra/MaterialDivulgacao/BannerA4_A1-thumb.png differ
diff --git a/site-antigo/extra/MaterialDivulgacao/BannerA4_A1.png 
b/site-antigo/extra/MaterialDivulgacao/BannerA4_A1.png
new file mode 100644
index 0000000..4bed6a2
Binary files /dev/null and b/site-antigo/extra/MaterialDivulgacao/BannerA4_A1.png differ
diff --git a/site-antigo/extra/MaterialDivulgacao/BannerA4_A1.svg 
b/site-antigo/extra/MaterialDivulgacao/BannerA4_A1.svg
new file mode 100644
index 0000000..625c8d7
--- /dev/null
+++ b/site-antigo/extra/MaterialDivulgacao/BannerA4_A1.svg
@@ -0,0 +1,483 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:xlink="http://www.w3.org/1999/xlink";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="744.09448"
+   height="1052.3622"
+   id="svg17479"
+   sodipodi:version="0.32"
+   inkscape:version="0.45+devel"
+   version="1.0"
+   sodipodi:docname="BannerA4_A1.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs17481">
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2934">
+      <stop
+         style="stop-color:#448c20;stop-opacity:1"
+         offset="0"
+         id="stop2936" />
+      <stop
+         style="stop-color:#2b4e1c;stop-opacity:1"
+         offset="1"
+         id="stop2938" />
+    </linearGradient>
+    <filter
+       inkscape:collect="always"
+       x="-0.16053332"
+       width="1.3210666"
+       y="-0.13060836"
+       height="1.2612166"
+       id="filter5301">
+      <feGaussianBlur
+         inkscape:collect="always"
+         stdDeviation="7.7228722"
+         id="feGaussianBlur5303" />
+    </filter>
+    <linearGradient
+       id="linearGradient3272">
+      <stop
+         style="stop-color:#fff38d;stop-opacity:1"
+         offset="0"
+         id="stop3274" />
+      <stop
+         style="stop-color:#f8df00;stop-opacity:1"
+         offset="1"
+         id="stop3276" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3272"
+       id="radialGradient3280"
+       cx="229.80138"
+       cy="55.809341"
+       fx="229.80138"
+       fy="55.809341"
+       r="43.346268"
+       gradientTransform="matrix(1,0,0,0.6016744,-11.802798,30.60875)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient16494">
+      <stop
+         id="stop16496"
+         offset="0"
+         style="stop-color:#204a87;stop-opacity:1;" />
+      <stop
+         style="stop-color:#3f7bd2;stop-opacity:1;"
+         offset="0.21212122"
+         id="stop16502" />
+      <stop
+         id="stop16498"
+         offset="1"
+         style="stop-color:#204a87;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient16494"
+       id="linearGradient12574"
+       gradientUnits="userSpaceOnUse"
+       x1="82.585045"
+       y1="28.112621"
+       x2="92.954216"
+       y2="28.112621" />
+    <linearGradient
+       id="linearGradient16522">
+      <stop
+         id="stop16524"
+         offset="0"
+         style="stop-color:#edda00;stop-opacity:1;" />
+      <stop
+         style="stop-color:#fff491;stop-opacity:1;"
+         offset="0.27272728"
+         id="stop16530" />
+      <stop
+         id="stop16526"
+         offset="1"
+         style="stop-color:#ebd200;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient16522"
+       id="linearGradient12572"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.2174665,0.5700599,-1.3887789,1.8202798,-168.98426,-86.151331)"
+       x1="69.857536"
+       y1="-19.37989"
+       x2="86.576172"
+       y2="-36.549217" />
+    <linearGradient
+       id="linearGradient7336">
+      <stop
+         style="stop-color:#619605;stop-opacity:1;"
+         offset="0"
+         id="stop7338" />
+      <stop
+         id="stop7340"
+         offset="0.19283746"
+         style="stop-color:#76ce0f;stop-opacity:1;" />
+      <stop
+         style="stop-color:#5fae03;stop-opacity:1;"
+         offset="0.80432421"
+         id="stop3298" />
+      <stop
+         style="stop-color:#4f8e05;stop-opacity:1;"
+         offset="1"
+         id="stop7342" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient7336"
+       id="linearGradient12570"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.0778077,-1.06702,1.0608838,3.0601075,-77.910514,-151.4351)"
+       x1="11.002116"
+       y1="29.756582"
+       x2="46.998974"
+       y2="29.756582" />
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath12540">
+      <g
+         style="opacity:0.48559672;fill:url(#radialGradient12556);fill-opacity:1"
+         transform="matrix(0.5602909,0,0,0.5602909,15.06491,-124.7085)"
+         id="g12542">
+        <g
+           style="fill:url(#radialGradient12558);fill-opacity:1"
+           id="g12544">
+          <path
+             style="fill:url(#radialGradient12560);fill-opacity:1"
+             id="path12546"
+             d="M 86.068,0 C 61.466,0 56.851,35.041 70.691,35.041 C 84.529,35.041 110.671,0 86.068,0 z" />
+          <path
+             style="fill:url(#radialGradient12562);fill-opacity:1"
+             id="path12548"
+             d="M 45.217,30.699 C 52.586,31.149 60.671,2.577 46.821,4.374 C 32.976,6.171 37.845,30.249 
45.217,30.699 z" />
+          <path
+             style="fill:url(#radialGradient12564);fill-opacity:1"
+             id="path12550"
+             d="M 11.445,48.453 C 16.686,46.146 12.12,23.581 3.208,29.735 C -5.7,35.89 6.204,50.759 
11.445,48.453 z" />
+          <path
+             style="fill:url(#radialGradient12566);fill-opacity:1"
+             id="path12552"
+             d="M 26.212,36.642 C 32.451,35.37 32.793,9.778 21.667,14.369 C 10.539,18.961 19.978,37.916 
26.212,36.642 L 26.212,36.642 z" />
+          <path
+             style="fill:url(#radialGradient12568);fill-opacity:1"
+             id="path12554"
+             d="M 58.791,93.913 C 59.898,102.367 52.589,106.542 45.431,101.092 C 22.644,83.743 83.16,75.088 
79.171,51.386 C 75.86,31.712 15.495,37.769 8.621,68.553 C 3.968,89.374 27.774,118.26 52.614,118.26 C 
64.834,118.26 78.929,107.226 81.566,93.248 C 83.58,82.589 57.867,86.86 58.791,93.913 L 58.791,93.913 z" />
+        </g>
+      </g>
+    </clipPath>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3272"
+       id="radialGradient17602"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7117388,0,0,0.428235,-72.611624,89.93569)"
+       cx="229.80138"
+       cy="55.809341"
+       fx="229.80138"
+       fy="55.809341"
+       r="43.346268" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3272"
+       id="radialGradient2997"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7117388,0,0,0.428235,-72.611624,89.93569)"
+       cx="229.80138"
+       cy="55.809341"
+       fx="229.80138"
+       fy="55.809341"
+       r="43.346268" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3272"
+       id="radialGradient3022"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.939668,0,0,0.5653742,-131.3004,82.24922)"
+       cx="229.80138"
+       cy="55.809341"
+       fx="229.80138"
+       fy="55.809341"
+       r="43.346268" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3272"
+       id="radialGradient3063"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.939668,0,0,0.5653742,-131.3004,82.24922)"
+       cx="229.80138"
+       cy="55.809341"
+       fx="229.80138"
+       fy="55.809341"
+       r="43.346268" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3272"
+       id="radialGradient3088"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(4.3080076,0,0,2.5920179,-648.59687,621.62651)"
+       cx="229.80138"
+       cy="55.809341"
+       fx="229.80138"
+       fy="55.809341"
+       r="43.346268" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2934"
+       id="linearGradient3104"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.6688862,0,0,11.705417,10.31417,-47.032252)"
+       x1="157.5"
+       y1="75.5"
+       x2="157.5"
+       y2="-6.3443646" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient7336"
+       id="linearGradient3106"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.0778077,-1.06702,1.0608838,3.0601075,-77.910514,-151.4351)"
+       x1="11.002116"
+       y1="29.756582"
+       x2="46.998974"
+       y2="29.756582" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient16522"
+       id="linearGradient3108"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.2174665,0.5700599,-1.3887789,1.8202798,-168.98426,-86.151331)"
+       x1="69.857536"
+       y1="-19.37989"
+       x2="86.576172"
+       y2="-36.549217" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient16494"
+       id="linearGradient3110"
+       gradientUnits="userSpaceOnUse"
+       x1="82.585045"
+       y1="28.112621"
+       x2="92.954216"
+       y2="28.112621" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.35355339"
+     inkscape:cx="321.93256"
+     inkscape:cy="371.63076"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     width="744.09449px"
+     height="1052.3622px"
+     inkscape:window-width="1280"
+     inkscape:window-height="727"
+     inkscape:window-x="0"
+     inkscape:window-y="25" />
+  <metadata
+     id="metadata17484">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Camada 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-13.010153,45.903576)">
+    <rect
+       
style="fill:url(#linearGradient3104);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:13.60000038;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.35294118;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="rect2345"
+       width="744.09113"
+       height="1052.359"
+       x="13.010152"
+       y="-45.903568" />
+    <g
+       id="g2948"
+       transform="matrix(9.2155675,0,0,9.2155675,-568.79807,149.79821)">
+      <g
+         id="g4276"
+         transform="matrix(0.4798818,0,0,0.4798818,80.419926,-10.632001)"
+         style="opacity:0.28395063;fill:#000000;fill-opacity:1;filter:url(#filter5301)">
+        <g
+           id="g4278"
+           style="fill:#000000;fill-opacity:1">
+          <path
+             d="M 86.068,0 C 61.466,0 56.851,35.041 70.691,35.041 C 84.529,35.041 110.671,0 86.068,0 z"
+             id="path4280"
+             style="fill:#000000;fill-opacity:1" />
+          <path
+             d="M 45.217,30.699 C 52.586,31.149 60.671,2.577 46.821,4.374 C 32.976,6.171 37.845,30.249 
45.217,30.699 z"
+             id="path4282"
+             style="fill:#000000;fill-opacity:1" />
+          <path
+             d="M 11.445,48.453 C 16.686,46.146 12.12,23.581 3.208,29.735 C -5.7,35.89 6.204,50.759 
11.445,48.453 z"
+             id="path4284"
+             style="fill:#000000;fill-opacity:1" />
+          <path
+             d="M 26.212,36.642 C 32.451,35.37 32.793,9.778 21.667,14.369 C 10.539,18.961 19.978,37.916 
26.212,36.642 L 26.212,36.642 z"
+             id="path4286"
+             style="fill:#000000;fill-opacity:1" />
+          <path
+             d="M 58.791,93.913 C 59.898,102.367 52.589,106.542 45.431,101.092 C 22.644,83.743 83.16,75.088 
79.171,51.386 C 75.86,31.712 15.495,37.769 8.621,68.553 C 3.968,89.374 27.774,118.26 52.614,118.26 C 
64.834,118.26 78.929,107.226 81.566,93.248 C 83.58,82.589 57.867,86.86 58.791,93.913 L 58.791,93.913 z"
+             id="path4288"
+             style="fill:#000000;fill-opacity:1" />
+        </g>
+      </g>
+      <g
+         transform="matrix(0.8564868,0,0,0.8564868,67.51703,96.17918)"
+         clip-path="url(#clipPath12540)"
+         id="g12534">
+        <path
+           
style="fill:url(#linearGradient3106);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.52627635;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+           d="M -23.244211,-108.13843 C -1.92169,-137.95153 57.7376,-129.54765 84.46937,-145.48078 L 
111.09999,-68.66506 C 86.55992,-49.855935 28.62911,-61.88891 3.386405,-31.322718 L -23.244211,-108.13843 z"
+           id="path6459"
+           sodipodi:nodetypes="ccccc" />
+        <path
+           
style="fill:url(#linearGradient3108);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.77875161;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           d="M 33.962827,-113.06496 C 48.102324,-106.03931 61.316049,-103.107 73.938718,-102.78807 C 
67.678501,-87.349757 58.299494,-78.641409 48.902182,-69.972551 C 34.131969,-76.99176 20.808194,-80.978039 
9.0012083,-81.783898 C 16.459572,-94.697855 25.018726,-104.43659 33.962827,-113.06496 z"
+           id="rect7346"
+           sodipodi:nodetypes="ccccc" />
+        <path
+           sodipodi:type="arc"
+           
style="fill:url(#linearGradient3110);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.66970444;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           id="path10004"
+           sodipodi:cx="87.76963"
+           sodipodi:cy="28.112621"
+           sodipodi:rx="4.6845822"
+           sodipodi:ry="4.6845822"
+           d="M 92.454213,28.112621 A 4.6845822,4.6845822 0 1 1 83.085048,28.112621 A 4.6845822,4.6845822 0 
1 1 92.454213,28.112621 z"
+           transform="matrix(2.6182273,-0.5740627,0.8681029,2.504033,-211.52392,-111.90753)" />
+        <path
+           
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.77875185px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="M 49.203125,-96.421875 C 46.812956,-96.426096 44.187105,-96.14886 41.6875,-95.625 C 
37.20577,-94.685731 32.891826,-92.918949 30.184016,-90.019049 C 30.288931,-89.382832 30.577324,-88.647235 
30.872117,-88.068913 C 33.066806,-90.921212 37.452193,-92.945836 42.109375,-93.921875 C 46.854606,-94.916367 
51.937884,-94.84898 55.171875,-93.921875 C 54.928503,-94.575012 54.694306,-95.22815 54.411354,-95.881287 C 
52.833834,-96.212054 51.106606,-96.418513 49.203125,-96.421875 z"
+           id="path15173"
+           sodipodi:nodetypes="csccsccc" />
+      </g>
+    </g>
+    <text
+       xml:space="preserve"
+       
style="font-size:121.21566772px;font-style:normal;font-weight:normal;line-height:-124625369600%;fill:url(#radialGradient3088);fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
 Vera Sans"
+       x="196.62158"
+       y="848.06158"
+       id="text6220"
+       sodipodi:linespacing="-1.2462537e+11%"><tspan
+         sodipodi:role="line"
+         id="tspan6222"
+         x="196.62158"
+         y="848.06158"
+         
style="font-weight:bold;letter-spacing:-2.87200451;fill:url(#radialGradient3088);fill-opacity:1;font-family:Trebuchet
 MS">BRASIL</tspan></text>
+    <g
+       transform="matrix(4.584606,0,0,4.584606,-41.316398,-458.84006)"
+       id="g16326"
+       style="fill:none">
+      <g
+         id="g16328"
+         transform="translate(36.912724,109.5415)"
+         style="fill:none">
+        <path
+           d="M 17.718,132.165 L 16.228,135.022 C 15.81,134.648 15.164,134.276 14.291,133.907 C 
13.418,133.538 12.668,133.352 12.041,133.352 C 10.077,133.352 8.527,134.02 7.391,135.356 C 6.254,136.693 
5.686,138.483 5.686,140.726 C 5.686,142.861 6.243,144.567 7.357,145.843 C 8.471,147.119 9.987,147.758 
11.906,147.758 C 13.17,147.758 14.211,147.412 15.03,146.721 L 15.03,142.789 L 12.249,142.789 L 12.249,139.758 
L 18.593,139.758 L 18.593,148.716 C 17.746,149.408 16.655,149.947 15.322,150.334 C 13.989,150.721 
12.661,150.914 11.341,150.914 C 8.473,150.914 6.199,149.973 4.519,148.09 C 2.839,146.207 1.999,143.721 
1.999,140.631 C 1.999,137.539 2.913,135.027 4.742,133.095 C 6.57,131.162 9.031,130.196 12.124,130.196 C 
14.316,130.196 16.181,130.852 17.718,132.165 L 17.718,132.165 z"
+           id="path16330"
+           style="fill:none" />
+        <path
+           d="M 34.892,150.853 L 25.173,138.165 L 25.173,150.571 L 21.767,150.571 L 21.767,130.54 L 
23.486,130.54 L 32.924,142.634 L 32.924,130.54 L 36.33,130.54 L 36.33,150.853 L 34.892,150.853 L 
34.892,150.853 z"
+           id="path16332"
+           style="fill:none" />
+        <path
+           d="M 39.487,140.392 C 39.487,137.54 40.268,135.128 41.832,133.156 C 43.395,131.183 45.484,130.197 
48.1,130.197 C 50.981,130.197 53.182,131.09 54.704,132.876 C 56.226,134.662 56.987,137.168 56.987,140.393 C 
56.987,143.62 56.192,146.179 54.602,148.075 C 53.01,149.97 50.752,150.917 47.827,150.917 C 45.139,150.917 
43.077,149.979 41.641,148.103 C 40.205,146.227 39.488,143.656 39.488,140.394 L 39.487,140.392 z M 
43.175,140.392 C 43.175,142.734 43.571,144.547 44.365,145.831 C 45.158,147.116 46.312,147.759 47.826,147.759 
C 49.605,147.759 50.962,147.13 51.896,145.872 C 52.832,144.615 53.298,142.788 53.298,140.392 C 53.298,135.7 
51.566,133.353 48.099,133.353 C 46.512,133.353 45.294,133.989 44.446,135.259 C 43.597,136.53 43.174,138.241 
43.174,140.392 L 43.175,140.392 z"
+           id="path16334"
+           style="fill:none" />
+        <path
+           d="M 78.831,150.571 L 75.393,150.571 L 73.299,139.79 L 69.268,150.853 L 67.987,150.853 L 
63.94,139.79 L 61.799,150.571 L 58.361,150.571 L 62.392,130.54 L 64.267,130.54 L 68.626,144.04 L 72.86,130.54 
L 74.735,130.54 L 78.829,150.571 L 78.831,150.571 z"
+           id="path16336"
+           style="fill:none" />
+        <path
+           d="M 84.569,133.696 L 84.569,138.384 L 91.007,138.384 L 91.007,141.415 L 84.569,141.415 L 
84.569,147.415 L 93.632,147.415 L 93.632,150.571 L 81.006,150.571 L 81.006,130.54 L 93.631,130.54 L 
93.631,133.696 L 84.568,133.696 L 84.569,133.696 z"
+           id="path16338"
+           style="fill:none" />
+      </g>
+      <path
+         d="M 134.0342,235.09964 L 134.01848,235.85421 L 136.53373,235.85421 L 136.53373,241.89081 L 
137.42979,241.89081 L 137.42979,235.85421 L 139.835,235.85421 L 139.835,235.09964 L 134.0342,235.09964 z M 
140.8411,235.09964 L 140.8411,241.89081 L 141.82362,241.89081 L 141.82362,236.35726 L 143.71005,240.66463 L 
144.23668,240.67249 L 146.12312,236.35726 L 146.12312,241.89081 L 147.08992,241.89081 L 147.08992,235.09964 L 
145.98164,235.09964 L 143.96944,239.76857 L 141.95724,235.09964 L 140.8411,235.09964 z"
+         style="fill:none"
+         id="path16340" />
+    </g>
+    <text
+       id="text16342"
+       y="864.59912"
+       x="176.88203"
+       
style="font-size:128.99839783px;font-style:normal;font-weight:normal;fill:none;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
 Vera Sans"
+       xml:space="preserve"><tspan
+         style="font-weight:bold;fill:none;fill-opacity:1;font-family:Trebuchet MS"
+         y="864.59912"
+         x="176.88203"
+         id="tspan16344"
+         sodipodi:role="line">BRASIL</tspan></text>
+    <g
+       transform="matrix(0.78435,0,0,0.78435,-2919.8395,-312.89032)"
+       style="fill:#ffffff;fill-opacity:1"
+       id="g2492">
+      <path
+         d="M 4176.3,1214.44 C 4161.19,1214.85 4149.26,1220.28 4140.48,1230.69 C 4131.4,1241.53 
4126.83,1256.5 4126.83,1275.6 C 4126.83,1294.64 4131.4,1309.57 4140.48,1320.41 C 4149.61,1331.25 
4162.15,1336.66 4178.14,1336.66 C 4194.17,1336.66 4206.74,1331.25 4215.83,1320.41 C 4224.91,1309.57 
4229.45,1294.64 4229.45,1275.6 C 4229.45,1256.5 4224.91,1241.53 4215.83,1230.69 C 4206.74,1219.85 
4194.17,1214.44 4178.14,1214.44 C 4177.52,1214.44 4176.91,1214.42 4176.3,1214.44 z M 4177.42,1236.44 C 
4177.66,1236.43 4177.9,1236.44 4178.14,1236.44 C 4186.02,1236.44 4192.13,1239.85 4196.45,1246.69 C 
4200.77,1253.53 4202.95,1263.18 4202.95,1275.6 C 4202.95,1287.96 4200.77,1297.54 4196.45,1304.38 C 
4192.13,1311.22 4186.02,1314.66 4178.14,1314.66 C 4170.3,1314.66 4164.24,1311.22 4159.92,1304.38 C 
4155.6,1297.54 4153.42,1287.96 4153.42,1275.6 C 4153.42,1263.18 4155.6,1253.53 4159.92,1246.69 C 
4164.11,1240.07 4169.93,1236.65 4177.42,1236.44 z"
+         
style="font-size:148.69999695px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
 Vera Sans"
+         id="path2494" />
+      <path
+         d="M 4005.63,1325.61 C 3992.32,1336.79 3972.52,1336.66 3964.27,1336.66 C 3947.66,1336.66 
3934.5,1331.19 3924.79,1320.25 C 3915.08,1309.25 3910.23,1294.36 3910.23,1275.58 C 3910.23,1256.59 
3915.17,1241.65 3925.06,1230.76 C 3934.95,1219.87 3948.49,1214.43 3965.68,1214.43 C 3972.31,1214.43 
3978.66,1215.17 3984.72,1216.64 C 3990.82,1218.11 3996.57,1220.3 4001.95,1223.19 L 3995.03,1243.65 C 
3992,1241.99 3988.54,1240.36 3985.32,1239.21 C 3979.84,1237.37 3974.34,1236.45 3968.82,1236.45 C 
3958.57,1236.45 3950.67,1239.84 3945.1,1246.62 C 3939.58,1253.36 3936.82,1263.01 3936.82,1275.58 C 
3936.82,1288.05 3939.49,1297.68 3944.83,1304.46 C 3950.18,1311.25 3958.21,1314.64 3967.61,1314.64 C 
3977.17,1314.64 3983.09,1312.24 3986.24,1309.7 L 3986.24,1289.31 L 3965.54,1289.31 L 3965.54,1268.96 L 
4005.63,1268.96"
+         
style="font-size:148.69999695px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
 Vera Sans"
+         id="path2496" />
+      <path
+         d="M 4023.21,1216.56 L 4039.44,1216.56 L 4090.72,1287.36 L 4090.72,1216.56 L 4112.6,1216.56 L 
4112.6,1334.37 L 4096.37,1334.37 L 4045.1,1263.57 L 4045.1,1334.37 L 4023.21,1334.37 L 4023.21,1216.56"
+         
style="font-size:148.69999695px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
 Vera Sans"
+         id="path2498" />
+      <path
+         d="M 4246.34,1216.56 L 4279.07,1216.56 L 4301.79,1290.11 L 4324.64,1216.56 L 4352.31,1216.56 L 
4364.81,1334.37 L 4340.49,1334.37 L 4332.99,1260.7 L 4310.01,1334.72 L 4293.7,1334.72 L 4270.72,1258.2 L 
4263.22,1334.37 L 4238.84,1334.37 L 4251.34,1216.56"
+         
style="font-size:148.69999695px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
 Vera Sans"
+         id="path2500" />
+      <path
+         d="M 4382.36,1216.56 L 4451.77,1216.56 L 4451.77,1239.52 L 4408.08,1239.52 L 4408.08,1263.96 L 
4441.67,1263.96 L 4441.67,1284.42 L 4408.08,1284.42 L 4408.08,1311.41 L 4453.24,1311.41 L 4453.24,1334.37 L 
4382.36,1334.37 L 4382.36,1216.56"
+         
style="font-size:148.69999695px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
 Vera Sans"
+         id="path2502" />
+      <text
+         x="4474.6201"
+         y="1215.74"
+         
style="font-size:30.68959999px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
 Vera Sans"
+         id="text2504"
+         xml:space="preserve"><tspan
+           style="fill:#ffffff;fill-opacity:1"
+           x="4474.6201"
+           y="1215.74"
+           id="tspan2506"><tspan
+             style="fill:#ffffff;fill-opacity:1"
+             id="tspan2508">TM</tspan></tspan></text>
+    </g>
+    <text
+       xml:space="preserve"
+       
style="font-size:55.01527023000000582px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
 Vera Sans"
+       x="116.26529"
+       y="948.28326"
+       id="text2968"><tspan
+         sodipodi:role="line"
+         id="tspan2970"
+         x="116.26529"
+         y="948.28326">http://br.gnome.org</tspan></text>
+  </g>
+</svg>
diff --git a/site-antigo/extra/MaterialDivulgacao/BannerA4_A1.xcf 
b/site-antigo/extra/MaterialDivulgacao/BannerA4_A1.xcf
new file mode 100644
index 0000000..b247633
Binary files /dev/null and b/site-antigo/extra/MaterialDivulgacao/BannerA4_A1.xcf differ
diff --git a/site-antigo/extra/MaterialDivulgacao/BannerWeb_468x60.svg 
b/site-antigo/extra/MaterialDivulgacao/BannerWeb_468x60.svg
new file mode 100644
index 0000000..49c33d2
--- /dev/null
+++ b/site-antigo/extra/MaterialDivulgacao/BannerWeb_468x60.svg
@@ -0,0 +1,459 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:xlink="http://www.w3.org/1999/xlink";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="468px"
+   height="60px"
+   id="svg3166"
+   sodipodi:version="0.32"
+   inkscape:version="0.45+devel"
+   inkscape:export-filename="/home/valessio/Desktop/gnome-br/bannerFixo_468x60.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90"
+   sodipodi:docname="BannerWeb_468x60.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3168">
+    <linearGradient
+       id="linearGradient16494">
+      <stop
+         id="stop16496"
+         offset="0"
+         style="stop-color:#204a87;stop-opacity:1;" />
+      <stop
+         style="stop-color:#3f7bd2;stop-opacity:1;"
+         offset="0.21212122"
+         id="stop16502" />
+      <stop
+         id="stop16498"
+         offset="1"
+         style="stop-color:#204a87;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient16494"
+       id="linearGradient3110"
+       gradientUnits="userSpaceOnUse"
+       x1="82.585045"
+       y1="28.112621"
+       x2="92.954216"
+       y2="28.112621" />
+    <linearGradient
+       id="linearGradient16522">
+      <stop
+         id="stop16524"
+         offset="0"
+         style="stop-color:#edda00;stop-opacity:1;" />
+      <stop
+         style="stop-color:#fff491;stop-opacity:1;"
+         offset="0.27272728"
+         id="stop16530" />
+      <stop
+         id="stop16526"
+         offset="1"
+         style="stop-color:#ebd200;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient16522"
+       id="linearGradient3108"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.2174665,0.5700599,-1.3887789,1.8202798,-168.98426,-86.151331)"
+       x1="69.857536"
+       y1="-19.37989"
+       x2="86.576172"
+       y2="-36.549217" />
+    <linearGradient
+       id="linearGradient7336">
+      <stop
+         style="stop-color:#619605;stop-opacity:1;"
+         offset="0"
+         id="stop7338" />
+      <stop
+         id="stop7340"
+         offset="0.19283746"
+         style="stop-color:#76ce0f;stop-opacity:1;" />
+      <stop
+         style="stop-color:#5fae03;stop-opacity:1;"
+         offset="0.80432421"
+         id="stop3298" />
+      <stop
+         style="stop-color:#4f8e05;stop-opacity:1;"
+         offset="1"
+         id="stop7342" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient7336"
+       id="linearGradient3106"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.0778077,-1.06702,1.0608838,3.0601075,-77.910514,-151.4351)"
+       x1="11.002116"
+       y1="29.756582"
+       x2="46.998974"
+       y2="29.756582" />
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath12540">
+      <g
+         style="opacity:0.48559672;fill:url(#radialGradient12556);fill-opacity:1"
+         transform="matrix(0.5602909,0,0,0.5602909,15.06491,-124.7085)"
+         id="g12542">
+        <g
+           style="fill:url(#radialGradient12558);fill-opacity:1"
+           id="g12544">
+          <path
+             style="fill:url(#radialGradient12560);fill-opacity:1"
+             id="path12546"
+             d="M 86.068,0 C 61.466,0 56.851,35.041 70.691,35.041 C 84.529,35.041 110.671,0 86.068,0 z" />
+          <path
+             style="fill:url(#radialGradient12562);fill-opacity:1"
+             id="path12548"
+             d="M 45.217,30.699 C 52.586,31.149 60.671,2.577 46.821,4.374 C 32.976,6.171 37.845,30.249 
45.217,30.699 z" />
+          <path
+             style="fill:url(#radialGradient12564);fill-opacity:1"
+             id="path12550"
+             d="M 11.445,48.453 C 16.686,46.146 12.12,23.581 3.208,29.735 C -5.7,35.89 6.204,50.759 
11.445,48.453 z" />
+          <path
+             style="fill:url(#radialGradient12566);fill-opacity:1"
+             id="path12552"
+             d="M 26.212,36.642 C 32.451,35.37 32.793,9.778 21.667,14.369 C 10.539,18.961 19.978,37.916 
26.212,36.642 L 26.212,36.642 z" />
+          <path
+             style="fill:url(#radialGradient12568);fill-opacity:1"
+             id="path12554"
+             d="M 58.791,93.913 C 59.898,102.367 52.589,106.542 45.431,101.092 C 22.644,83.743 83.16,75.088 
79.171,51.386 C 75.86,31.712 15.495,37.769 8.621,68.553 C 3.968,89.374 27.774,118.26 52.614,118.26 C 
64.834,118.26 78.929,107.226 81.566,93.248 C 83.58,82.589 57.867,86.86 58.791,93.913 L 58.791,93.913 z" />
+        </g>
+      </g>
+    </clipPath>
+    <filter
+       inkscape:collect="always"
+       x="-0.16053332"
+       width="1.3210666"
+       y="-0.13060836"
+       height="1.2612166"
+       id="filter5301">
+      <feGaussianBlur
+         inkscape:collect="always"
+         stdDeviation="7.7228722"
+         id="feGaussianBlur5303" />
+    </filter>
+    <linearGradient
+       id="linearGradient3272">
+      <stop
+         style="stop-color:#fff38d;stop-opacity:1"
+         offset="0"
+         id="stop3274" />
+      <stop
+         style="stop-color:#f8df00;stop-opacity:1"
+         offset="1"
+         id="stop3276" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3272"
+       id="radialGradient3088"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.927988,0,0,0.5583467,5.8793288,-0.279232)"
+       cx="229.80138"
+       cy="55.809341"
+       fx="229.80138"
+       fy="55.809341"
+       r="43.346268" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2934">
+      <stop
+         style="stop-color:#448c20;stop-opacity:1"
+         offset="0"
+         id="stop2936" />
+      <stop
+         style="stop-color:#2b4e1c;stop-opacity:1"
+         offset="1"
+         id="stop2938" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2934"
+       id="linearGradient3104"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.6785856,0,0,0.6673015,-1.6900519,-5.8691814e-2)"
+       x1="157.5"
+       y1="75.5"
+       x2="157.5"
+       y2="-6.3443646" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3272"
+       id="radialGradient3323"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.927988,0,0,0.5583467,5.8793288,-0.279232)"
+       cx="229.80138"
+       cy="55.809341"
+       fx="229.80138"
+       fy="55.809341"
+       r="43.346268" />
+    <filter
+       inkscape:collect="always"
+       id="filter3808"
+       x="-0.10524917"
+       width="1.2104983"
+       y="-0.17541528"
+       height="1.3508306">
+      <feGaussianBlur
+         inkscape:collect="always"
+         stdDeviation="3.9270271"
+         id="feGaussianBlur3810" />
+    </filter>
+    <mask
+       maskUnits="userSpaceOnUse"
+       id="mask3812">
+      <rect
+         
style="opacity:1;fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:13.60000038;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.35294118;visibility:visible;display:inline;overflow:visible;filter:url(#filter3808);enable-background:accumulate"
+         id="rect3814"
+         width="89.548119"
+         height="53.72887"
+         x="270.49707"
+         y="3.1832635"
+         ry="6.7933054"
+         transform="matrix(0.3114972,-0.179843,0.179843,0.3114972,-2.8111265,66.957665)" />
+    </mask>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1.6192412"
+     inkscape:cx="228"
+     inkscape:cy="40.5"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     inkscape:window-width="1280"
+     inkscape:window-height="727"
+     inkscape:window-x="0"
+     inkscape:window-y="25" />
+  <metadata
+     id="metadata3171">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <rect
+       
style="fill:url(#linearGradient3104);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:13.60000038;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.35294118;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="rect2345"
+       width="467.99323"
+       height="59.992798"
+       x="0.0055432497"
+       y="0.0056523066" />
+    <g
+       id="g2948"
+       transform="matrix(0.7901822,0,0,0.7901822,-41.027663,16.273475)">
+      <g
+         id="g4276"
+         transform="matrix(0.4798818,0,0,0.4798818,80.419926,-10.632001)"
+         style="opacity:0.28395063;fill:#000000;fill-opacity:1;filter:url(#filter5301)">
+        <g
+           id="g4278"
+           style="fill:#000000;fill-opacity:1">
+          <path
+             d="M 86.068,0 C 61.466,0 56.851,35.041 70.691,35.041 C 84.529,35.041 110.671,0 86.068,0 z"
+             id="path4280"
+             style="fill:#000000;fill-opacity:1" />
+          <path
+             d="M 45.217,30.699 C 52.586,31.149 60.671,2.577 46.821,4.374 C 32.976,6.171 37.845,30.249 
45.217,30.699 z"
+             id="path4282"
+             style="fill:#000000;fill-opacity:1" />
+          <path
+             d="M 11.445,48.453 C 16.686,46.146 12.12,23.581 3.208,29.735 C -5.7,35.89 6.204,50.759 
11.445,48.453 z"
+             id="path4284"
+             style="fill:#000000;fill-opacity:1" />
+          <path
+             d="M 26.212,36.642 C 32.451,35.37 32.793,9.778 21.667,14.369 C 10.539,18.961 19.978,37.916 
26.212,36.642 L 26.212,36.642 z"
+             id="path4286"
+             style="fill:#000000;fill-opacity:1" />
+          <path
+             d="M 58.791,93.913 C 59.898,102.367 52.589,106.542 45.431,101.092 C 22.644,83.743 83.16,75.088 
79.171,51.386 C 75.86,31.712 15.495,37.769 8.621,68.553 C 3.968,89.374 27.774,118.26 52.614,118.26 C 
64.834,118.26 78.929,107.226 81.566,93.248 C 83.58,82.589 57.867,86.86 58.791,93.913 L 58.791,93.913 z"
+             id="path4288"
+             style="fill:#000000;fill-opacity:1" />
+        </g>
+      </g>
+      <g
+         transform="matrix(0.8564868,0,0,0.8564868,67.51703,96.17918)"
+         clip-path="url(#clipPath12540)"
+         id="g12534">
+        <path
+           
style="fill:url(#linearGradient3106);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.52627635;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+           d="M -23.244211,-108.13843 C -1.92169,-137.95153 57.7376,-129.54765 84.46937,-145.48078 L 
111.09999,-68.66506 C 86.55992,-49.855935 28.62911,-61.88891 3.386405,-31.322718 L -23.244211,-108.13843 z"
+           id="path6459"
+           sodipodi:nodetypes="ccccc" />
+        <path
+           
style="fill:url(#linearGradient3108);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.77875161;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           d="M 33.962827,-113.06496 C 48.102324,-106.03931 61.316049,-103.107 73.938718,-102.78807 C 
67.678501,-87.349757 58.299494,-78.641409 48.902182,-69.972551 C 34.131969,-76.99176 20.808194,-80.978039 
9.0012083,-81.783898 C 16.459572,-94.697855 25.018726,-104.43659 33.962827,-113.06496 z"
+           id="rect7346"
+           sodipodi:nodetypes="ccccc" />
+        <path
+           sodipodi:type="arc"
+           
style="fill:url(#linearGradient3110);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.66970444;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           id="path10004"
+           sodipodi:cx="87.76963"
+           sodipodi:cy="28.112621"
+           sodipodi:rx="4.6845822"
+           sodipodi:ry="4.6845822"
+           d="M 92.454213,28.112621 A 4.6845822,4.6845822 0 1 1 83.085048,28.112621 A 4.6845822,4.6845822 0 
1 1 92.454213,28.112621 z"
+           transform="matrix(2.6182273,-0.5740627,0.8681029,2.504033,-211.52392,-111.90753)" />
+        <path
+           
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.77875185px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="M 49.203125,-96.421875 C 46.812956,-96.426096 44.187105,-96.14886 41.6875,-95.625 C 
37.20577,-94.685731 32.891826,-92.918949 30.184016,-90.019049 C 30.288931,-89.382832 30.577324,-88.647235 
30.872117,-88.068913 C 33.066806,-90.921212 37.452193,-92.945836 42.109375,-93.921875 C 46.854606,-94.916367 
51.937884,-94.84898 55.171875,-93.921875 C 54.928503,-94.575012 54.694306,-95.22815 54.411354,-95.881287 C 
52.833834,-96.212054 51.106606,-96.418513 49.203125,-96.421875 z"
+           id="path15173"
+           sodipodi:nodetypes="csccsccc" />
+      </g>
+    </g>
+    <g
+       id="g3302"
+       transform="translate(23.467782,-6.1757322)">
+      <text
+         sodipodi:linespacing="-1.2462537e+11%"
+         id="text6220"
+         y="48.497177"
+         x="187.94789"
+         
style="font-size:26.11107445px;font-style:normal;font-weight:normal;line-height:-124625369600%;fill:url(#radialGradient3323);fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
 Vera Sans"
+         xml:space="preserve"><tspan
+           
style="font-weight:bold;letter-spacing:-0.61865866;fill:url(#radialGradient3323);fill-opacity:1;font-family:Trebuchet
 MS"
+           y="48.497177"
+           x="187.94789"
+           id="tspan6222"
+           sodipodi:role="line">BRASIL</tspan></text>
+      <g
+         style="fill:none"
+         id="g16326"
+         transform="matrix(0.9397618,0,0,0.9397618,90.837825,-195.60319)">
+        <g
+           style="fill:none"
+           transform="translate(36.912724,109.5415)"
+           id="g16328">
+          <path
+             style="fill:none"
+             id="path16330"
+             d="M 17.718,132.165 L 16.228,135.022 C 15.81,134.648 15.164,134.276 14.291,133.907 C 
13.418,133.538 12.668,133.352 12.041,133.352 C 10.077,133.352 8.527,134.02 7.391,135.356 C 6.254,136.693 
5.686,138.483 5.686,140.726 C 5.686,142.861 6.243,144.567 7.357,145.843 C 8.471,147.119 9.987,147.758 
11.906,147.758 C 13.17,147.758 14.211,147.412 15.03,146.721 L 15.03,142.789 L 12.249,142.789 L 12.249,139.758 
L 18.593,139.758 L 18.593,148.716 C 17.746,149.408 16.655,149.947 15.322,150.334 C 13.989,150.721 
12.661,150.914 11.341,150.914 C 8.473,150.914 6.199,149.973 4.519,148.09 C 2.839,146.207 1.999,143.721 
1.999,140.631 C 1.999,137.539 2.913,135.027 4.742,133.095 C 6.57,131.162 9.031,130.196 12.124,130.196 C 
14.316,130.196 16.181,130.852 17.718,132.165 L 17.718,132.165 z" />
+          <path
+             style="fill:none"
+             id="path16332"
+             d="M 34.892,150.853 L 25.173,138.165 L 25.173,150.571 L 21.767,150.571 L 21.767,130.54 L 
23.486,130.54 L 32.924,142.634 L 32.924,130.54 L 36.33,130.54 L 36.33,150.853 L 34.892,150.853 L 
34.892,150.853 z" />
+          <path
+             style="fill:none"
+             id="path16334"
+             d="M 39.487,140.392 C 39.487,137.54 40.268,135.128 41.832,133.156 C 43.395,131.183 
45.484,130.197 48.1,130.197 C 50.981,130.197 53.182,131.09 54.704,132.876 C 56.226,134.662 56.987,137.168 
56.987,140.393 C 56.987,143.62 56.192,146.179 54.602,148.075 C 53.01,149.97 50.752,150.917 47.827,150.917 C 
45.139,150.917 43.077,149.979 41.641,148.103 C 40.205,146.227 39.488,143.656 39.488,140.394 L 39.487,140.392 
z M 43.175,140.392 C 43.175,142.734 43.571,144.547 44.365,145.831 C 45.158,147.116 46.312,147.759 
47.826,147.759 C 49.605,147.759 50.962,147.13 51.896,145.872 C 52.832,144.615 53.298,142.788 53.298,140.392 C 
53.298,135.7 51.566,133.353 48.099,133.353 C 46.512,133.353 45.294,133.989 44.446,135.259 C 43.597,136.53 
43.174,138.241 43.174,140.392 L 43.175,140.392 z" />
+          <path
+             style="fill:none"
+             id="path16336"
+             d="M 78.831,150.571 L 75.393,150.571 L 73.299,139.79 L 69.268,150.853 L 67.987,150.853 L 
63.94,139.79 L 61.799,150.571 L 58.361,150.571 L 62.392,130.54 L 64.267,130.54 L 68.626,144.04 L 72.86,130.54 
L 74.735,130.54 L 78.829,150.571 L 78.831,150.571 z" />
+          <path
+             style="fill:none"
+             id="path16338"
+             d="M 84.569,133.696 L 84.569,138.384 L 91.007,138.384 L 91.007,141.415 L 84.569,141.415 L 
84.569,147.415 L 93.632,147.415 L 93.632,150.571 L 81.006,150.571 L 81.006,130.54 L 93.631,130.54 L 
93.631,133.696 L 84.568,133.696 L 84.569,133.696 z" />
+        </g>
+        <path
+           id="path16340"
+           style="fill:none"
+           d="M 134.0342,235.09964 L 134.01848,235.85421 L 136.53373,235.85421 L 136.53373,241.89081 L 
137.42979,241.89081 L 137.42979,235.85421 L 139.835,235.85421 L 139.835,235.09964 L 134.0342,235.09964 z M 
140.8411,235.09964 L 140.8411,241.89081 L 141.82362,241.89081 L 141.82362,236.35726 L 143.71005,240.66463 L 
144.23668,240.67249 L 146.12312,236.35726 L 146.12312,241.89081 L 147.08992,241.89081 L 147.08992,235.09964 L 
145.98164,235.09964 L 143.96944,239.76857 L 141.95724,235.09964 L 140.8411,235.09964 z" />
+      </g>
+      <g
+         id="g2492"
+         style="fill:#ffffff;fill-opacity:1"
+         transform="matrix(0.1607777,0,0,0.1607777,-544.24953,-165.14989)">
+        <path
+           id="path2494"
+           
style="font-size:148.69999695px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
 Vera Sans"
+           d="M 4176.3,1214.44 C 4161.19,1214.85 4149.26,1220.28 4140.48,1230.69 C 4131.4,1241.53 
4126.83,1256.5 4126.83,1275.6 C 4126.83,1294.64 4131.4,1309.57 4140.48,1320.41 C 4149.61,1331.25 
4162.15,1336.66 4178.14,1336.66 C 4194.17,1336.66 4206.74,1331.25 4215.83,1320.41 C 4224.91,1309.57 
4229.45,1294.64 4229.45,1275.6 C 4229.45,1256.5 4224.91,1241.53 4215.83,1230.69 C 4206.74,1219.85 
4194.17,1214.44 4178.14,1214.44 C 4177.52,1214.44 4176.91,1214.42 4176.3,1214.44 z M 4177.42,1236.44 C 
4177.66,1236.43 4177.9,1236.44 4178.14,1236.44 C 4186.02,1236.44 4192.13,1239.85 4196.45,1246.69 C 
4200.77,1253.53 4202.95,1263.18 4202.95,1275.6 C 4202.95,1287.96 4200.77,1297.54 4196.45,1304.38 C 
4192.13,1311.22 4186.02,1314.66 4178.14,1314.66 C 4170.3,1314.66 4164.24,1311.22 4159.92,1304.38 C 
4155.6,1297.54 4153.42,1287.96 4153.42,1275.6 C 4153.42,1263.18 4155.6,1253.53 4159.92,1246.69 C 
4164.11,1240.07 4169.93,1236.65 4177.42,1236.44 z" />
+        <path
+           id="path2496"
+           
style="font-size:148.69999695px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
 Vera Sans"
+           d="M 4005.63,1325.61 C 3992.32,1336.79 3972.52,1336.66 3964.27,1336.66 C 3947.66,1336.66 
3934.5,1331.19 3924.79,1320.25 C 3915.08,1309.25 3910.23,1294.36 3910.23,1275.58 C 3910.23,1256.59 
3915.17,1241.65 3925.06,1230.76 C 3934.95,1219.87 3948.49,1214.43 3965.68,1214.43 C 3972.31,1214.43 
3978.66,1215.17 3984.72,1216.64 C 3990.82,1218.11 3996.57,1220.3 4001.95,1223.19 L 3995.03,1243.65 C 
3992,1241.99 3988.54,1240.36 3985.32,1239.21 C 3979.84,1237.37 3974.34,1236.45 3968.82,1236.45 C 
3958.57,1236.45 3950.67,1239.84 3945.1,1246.62 C 3939.58,1253.36 3936.82,1263.01 3936.82,1275.58 C 
3936.82,1288.05 3939.49,1297.68 3944.83,1304.46 C 3950.18,1311.25 3958.21,1314.64 3967.61,1314.64 C 
3977.17,1314.64 3983.09,1312.24 3986.24,1309.7 L 3986.24,1289.31 L 3965.54,1289.31 L 3965.54,1268.96 L 
4005.63,1268.96" />
+        <path
+           id="path2498"
+           
style="font-size:148.69999695px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
 Vera Sans"
+           d="M 4023.21,1216.56 L 4039.44,1216.56 L 4090.72,1287.36 L 4090.72,1216.56 L 4112.6,1216.56 L 
4112.6,1334.37 L 4096.37,1334.37 L 4045.1,1263.57 L 4045.1,1334.37 L 4023.21,1334.37 L 4023.21,1216.56" />
+        <path
+           id="path2500"
+           
style="font-size:148.69999695px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
 Vera Sans"
+           d="M 4246.34,1216.56 L 4279.07,1216.56 L 4301.79,1290.11 L 4324.64,1216.56 L 4352.31,1216.56 L 
4364.81,1334.37 L 4340.49,1334.37 L 4332.99,1260.7 L 4310.01,1334.72 L 4293.7,1334.72 L 4270.72,1258.2 L 
4263.22,1334.37 L 4238.84,1334.37 L 4251.34,1216.56" />
+        <path
+           id="path2502"
+           
style="font-size:148.69999695px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
 Vera Sans"
+           d="M 4382.36,1216.56 L 4451.77,1216.56 L 4451.77,1239.52 L 4408.08,1239.52 L 4408.08,1263.96 L 
4441.67,1263.96 L 4441.67,1284.42 L 4408.08,1284.42 L 4408.08,1311.41 L 4453.24,1311.41 L 4453.24,1334.37 L 
4382.36,1334.37 L 4382.36,1216.56" />
+        <text
+           xml:space="preserve"
+           id="text2504"
+           
style="font-size:30.68959999px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
 Vera Sans"
+           y="1215.74"
+           x="4474.6201"><tspan
+             id="tspan2506"
+             y="1215.74"
+             x="4474.6201"
+             style="fill:#ffffff;fill-opacity:1"><tspan
+               id="tspan2508"
+               style="fill:#ffffff;fill-opacity:1">TM</tspan></tspan></text>
+      </g>
+    </g>
+    <text
+       xml:space="preserve"
+       
style="font-size:12.41568756px;font-style:normal;font-weight:normal;fill:#eeeeec;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
 Vera Sans"
+       x="85.184303"
+       y="16.065832"
+       id="text3245"><tspan
+         sodipodi:role="line"
+         id="tspan3247"
+         x="85.184303"
+         y="16.065832">Participe do <tspan
+   style="font-weight:bold"
+   id="tspan3273">IV Fórum</tspan></tspan></text>
+    <text
+       xml:space="preserve"
+       
style="font-size:9.3032198px;font-style:normal;font-weight:normal;fill:#eeeeec;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
 Vera Sans"
+       x="171.88286"
+       y="54.755238"
+       id="text3249"><tspan
+         sodipodi:role="line"
+         x="171.88286"
+         y="54.755238"
+         id="tspan3259">28 á 30 de Setembro, 2007.</tspan></text>
+    <text
+       id="text3261"
+       y="19.24017"
+       x="358.38156"
+       
style="font-size:12px;font-style:normal;font-weight:normal;fill:#eeeeec;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
 Vera Sans"
+       xml:space="preserve"><tspan
+         y="19.24017"
+         x="358.38156"
+         id="tspan3263"
+         sodipodi:role="line">Local:</tspan><tspan
+         style="font-weight:bold;fill:#eeeeec"
+         id="tspan3265"
+         y="34.24017"
+         x="358.38156"
+         sodipodi:role="line">  II ENSL</tspan><tspan
+         id="tspan3271"
+         y="49.24017"
+         x="358.38156"
+         sodipodi:role="line"
+         style="font-weight:bold;fill:#eeeeec">  Aracaju / SE</tspan></text>
+  </g>
+</svg>
diff --git a/site-antigo/extra/MaterialDivulgacao/bannerFixo_468x60.png 
b/site-antigo/extra/MaterialDivulgacao/bannerFixo_468x60.png
new file mode 100644
index 0000000..9477fb2
Binary files /dev/null and b/site-antigo/extra/MaterialDivulgacao/bannerFixo_468x60.png differ
diff --git a/site-antigo/extra/PaginasAmigas/gnome-br-120x35.png 
b/site-antigo/extra/PaginasAmigas/gnome-br-120x35.png
new file mode 100644
index 0000000..9903df9
Binary files /dev/null and b/site-antigo/extra/PaginasAmigas/gnome-br-120x35.png differ
diff --git a/site-antigo/extra/PaginasAmigas/gnome-br-171x50.png 
b/site-antigo/extra/PaginasAmigas/gnome-br-171x50.png
new file mode 100644
index 0000000..4d64da4
Binary files /dev/null and b/site-antigo/extra/PaginasAmigas/gnome-br-171x50.png differ
diff --git a/site-antigo/extra/PaginasAmigas/gnome-br-274x80.png 
b/site-antigo/extra/PaginasAmigas/gnome-br-274x80.png
new file mode 100644
index 0000000..83c7cc3
Binary files /dev/null and b/site-antigo/extra/PaginasAmigas/gnome-br-274x80.png differ
diff --git a/site-antigo/extra/PaginasAmigas/gnome_80x15-3.png 
b/site-antigo/extra/PaginasAmigas/gnome_80x15-3.png
new file mode 100644
index 0000000..bd969b2
Binary files /dev/null and b/site-antigo/extra/PaginasAmigas/gnome_80x15-3.png differ
diff --git a/site-antigo/extra/PaginasAmigas/made_for_gnome_88x31.png 
b/site-antigo/extra/PaginasAmigas/made_for_gnome_88x31.png
new file mode 100644
index 0000000..02aecf7
Binary files /dev/null and b/site-antigo/extra/PaginasAmigas/made_for_gnome_88x31.png differ
diff --git a/site-antigo/extra/PaginasAmigas/made_with_gnome_88x31.png 
b/site-antigo/extra/PaginasAmigas/made_with_gnome_88x31.png
new file mode 100644
index 0000000..0e27962
Binary files /dev/null and b/site-antigo/extra/PaginasAmigas/made_with_gnome_88x31.png differ
diff --git a/site-antigo/extra/PaginasAmigas/revista-espirito-livre.jpg 
b/site-antigo/extra/PaginasAmigas/revista-espirito-livre.jpg
new file mode 100644
index 0000000..1463b41
Binary files /dev/null and b/site-antigo/extra/PaginasAmigas/revista-espirito-livre.jpg differ
diff --git a/site-antigo/extra/PaginasAmigas/training-tecnologia.jpg 
b/site-antigo/extra/PaginasAmigas/training-tecnologia.jpg
new file mode 100644
index 0000000..447e532
Binary files /dev/null and b/site-antigo/extra/PaginasAmigas/training-tecnologia.jpg differ
diff --git a/site-antigo/extra/PaginasAmigas/yata-technology.png 
b/site-antigo/extra/PaginasAmigas/yata-technology.png
new file mode 100644
index 0000000..5790e8c
Binary files /dev/null and b/site-antigo/extra/PaginasAmigas/yata-technology.png differ
diff --git a/site-antigo/extra/ProjetoGrafico/GnomeBR.ico b/site-antigo/extra/ProjetoGrafico/GnomeBR.ico
new file mode 100644
index 0000000..d1c2656
Binary files /dev/null and b/site-antigo/extra/ProjetoGrafico/GnomeBR.ico differ
diff --git a/site-antigo/extra/ProjetoGrafico/prototype.js b/site-antigo/extra/ProjetoGrafico/prototype.js
new file mode 100644
index 0000000..a3f21ac
--- /dev/null
+++ b/site-antigo/extra/ProjetoGrafico/prototype.js
@@ -0,0 +1,3277 @@
+/*  Prototype JavaScript framework, version 1.5.1.1
+ *  (c) 2005-2007 Sam Stephenson
+ *
+ *  Prototype is freely distributable under the terms of an MIT-style license.
+ *  For details, see the Prototype web site: http://www.prototypejs.org/
+ *
+/*--------------------------------------------------------------------------*/
+
+var Prototype = {
+  Version: '1.5.1.1',
+
+  Browser: {
+    IE:     !!(window.attachEvent && !window.opera),
+    Opera:  !!window.opera,
+    WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
+    Gecko:  navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') == -1
+  },
+
+  BrowserFeatures: {
+    XPath: !!document.evaluate,
+    ElementExtensions: !!window.HTMLElement,
+    SpecificElementExtensions:
+      (document.createElement('div').__proto__ !==
+       document.createElement('form').__proto__)
+  },
+
+  ScriptFragment: '<script[^>]*>([\\S\\s]*?)<\/script>',
+  JSONFilter: /^\/\*-secure-([\s\S]*)\*\/\s*$/,
+
+  emptyFunction: function() { },
+  K: function(x) { return x }
+}
+
+var Class = {
+  create: function() {
+    return function() {
+      this.initialize.apply(this, arguments);
+    }
+  }
+}
+
+var Abstract = new Object();
+
+Object.extend = function(destination, source) {
+  for (var property in source) {
+    destination[property] = source[property];
+  }
+  return destination;
+}
+
+Object.extend(Object, {
+  inspect: function(object) {
+    try {
+      if (object === undefined) return 'undefined';
+      if (object === null) return 'null';
+      return object.inspect ? object.inspect() : object.toString();
+    } catch (e) {
+      if (e instanceof RangeError) return '...';
+      throw e;
+    }
+  },
+
+  toJSON: function(object) {
+    var type = typeof object;
+    switch(type) {
+      case 'undefined':
+      case 'function':
+      case 'unknown': return;
+      case 'boolean': return object.toString();
+    }
+    if (object === null) return 'null';
+    if (object.toJSON) return object.toJSON();
+    if (object.ownerDocument === document) return;
+    var results = [];
+    for (var property in object) {
+      var value = Object.toJSON(object[property]);
+      if (value !== undefined)
+        results.push(property.toJSON() + ': ' + value);
+    }
+    return '{' + results.join(', ') + '}';
+  },
+
+  keys: function(object) {
+    var keys = [];
+    for (var property in object)
+      keys.push(property);
+    return keys;
+  },
+
+  values: function(object) {
+    var values = [];
+    for (var property in object)
+      values.push(object[property]);
+    return values;
+  },
+
+  clone: function(object) {
+    return Object.extend({}, object);
+  }
+});
+
+Function.prototype.bind = function() {
+  var __method = this, args = $A(arguments), object = args.shift();
+  return function() {
+    return __method.apply(object, args.concat($A(arguments)));
+  }
+}
+
+Function.prototype.bindAsEventListener = function(object) {
+  var __method = this, args = $A(arguments), object = args.shift();
+  return function(event) {
+    return __method.apply(object, [event || window.event].concat(args));
+  }
+}
+
+Object.extend(Number.prototype, {
+  toColorPart: function() {
+    return this.toPaddedString(2, 16);
+  },
+
+  succ: function() {
+    return this + 1;
+  },
+
+  times: function(iterator) {
+    $R(0, this, true).each(iterator);
+    return this;
+  },
+
+  toPaddedString: function(length, radix) {
+    var string = this.toString(radix || 10);
+    return '0'.times(length - string.length) + string;
+  },
+
+  toJSON: function() {
+    return isFinite(this) ? this.toString() : 'null';
+  }
+});
+
+Date.prototype.toJSON = function() {
+  return '"' + this.getFullYear() + '-' +
+    (this.getMonth() + 1).toPaddedString(2) + '-' +
+    this.getDate().toPaddedString(2) + 'T' +
+    this.getHours().toPaddedString(2) + ':' +
+    this.getMinutes().toPaddedString(2) + ':' +
+    this.getSeconds().toPaddedString(2) + '"';
+};
+
+var Try = {
+  these: function() {
+    var returnValue;
+
+    for (var i = 0, length = arguments.length; i < length; i++) {
+      var lambda = arguments[i];
+      try {
+        returnValue = lambda();
+        break;
+      } catch (e) {}
+    }
+
+    return returnValue;
+  }
+}
+
+/*--------------------------------------------------------------------------*/
+
+var PeriodicalExecuter = Class.create();
+PeriodicalExecuter.prototype = {
+  initialize: function(callback, frequency) {
+    this.callback = callback;
+    this.frequency = frequency;
+    this.currentlyExecuting = false;
+
+    this.registerCallback();
+  },
+
+  registerCallback: function() {
+    this.timer = setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);
+  },
+
+  stop: function() {
+    if (!this.timer) return;
+    clearInterval(this.timer);
+    this.timer = null;
+  },
+
+  onTimerEvent: function() {
+    if (!this.currentlyExecuting) {
+      try {
+        this.currentlyExecuting = true;
+        this.callback(this);
+      } finally {
+        this.currentlyExecuting = false;
+      }
+    }
+  }
+}
+Object.extend(String, {
+  interpret: function(value) {
+    return value == null ? '' : String(value);
+  },
+  specialChar: {
+    '\b': '\\b',
+    '\t': '\\t',
+    '\n': '\\n',
+    '\f': '\\f',
+    '\r': '\\r',
+    '\\': '\\\\'
+  }
+});
+
+Object.extend(String.prototype, {
+  gsub: function(pattern, replacement) {
+    var result = '', source = this, match;
+    replacement = arguments.callee.prepareReplacement(replacement);
+
+    while (source.length > 0) {
+      if (match = source.match(pattern)) {
+        result += source.slice(0, match.index);
+        result += String.interpret(replacement(match));
+        source  = source.slice(match.index + match[0].length);
+      } else {
+        result += source, source = '';
+      }
+    }
+    return result;
+  },
+
+  sub: function(pattern, replacement, count) {
+    replacement = this.gsub.prepareReplacement(replacement);
+    count = count === undefined ? 1 : count;
+
+    return this.gsub(pattern, function(match) {
+      if (--count < 0) return match[0];
+      return replacement(match);
+    });
+  },
+
+  scan: function(pattern, iterator) {
+    this.gsub(pattern, iterator);
+    return this;
+  },
+
+  truncate: function(length, truncation) {
+    length = length || 30;
+    truncation = truncation === undefined ? '...' : truncation;
+    return this.length > length ?
+      this.slice(0, length - truncation.length) + truncation : this;
+  },
+
+  strip: function() {
+    return this.replace(/^\s+/, '').replace(/\s+$/, '');
+  },
+
+  stripTags: function() {
+    return this.replace(/<\/?[^>]+>/gi, '');
+  },
+
+  stripScripts: function() {
+    return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');
+  },
+
+  extractScripts: function() {
+    var matchAll = new RegExp(Prototype.ScriptFragment, 'img');
+    var matchOne = new RegExp(Prototype.ScriptFragment, 'im');
+    return (this.match(matchAll) || []).map(function(scriptTag) {
+      return (scriptTag.match(matchOne) || ['', ''])[1];
+    });
+  },
+
+  evalScripts: function() {
+    return this.extractScripts().map(function(script) { return eval(script) });
+  },
+
+  escapeHTML: function() {
+    var self = arguments.callee;
+    self.text.data = this;
+    return self.div.innerHTML;
+  },
+
+  unescapeHTML: function() {
+    var div = document.createElement('div');
+    div.innerHTML = this.stripTags();
+    return div.childNodes[0] ? (div.childNodes.length > 1 ?
+      $A(div.childNodes).inject('', function(memo, node) { return memo+node.nodeValue }) :
+      div.childNodes[0].nodeValue) : '';
+  },
+
+  toQueryParams: function(separator) {
+    var match = this.strip().match(/([^?#]*)(#.*)?$/);
+    if (!match) return {};
+
+    return match[1].split(separator || '&').inject({}, function(hash, pair) {
+      if ((pair = pair.split('='))[0]) {
+        var key = decodeURIComponent(pair.shift());
+        var value = pair.length > 1 ? pair.join('=') : pair[0];
+        if (value != undefined) value = decodeURIComponent(value);
+
+        if (key in hash) {
+          if (hash[key].constructor != Array) hash[key] = [hash[key]];
+          hash[key].push(value);
+        }
+        else hash[key] = value;
+      }
+      return hash;
+    });
+  },
+
+  toArray: function() {
+    return this.split('');
+  },
+
+  succ: function() {
+    return this.slice(0, this.length - 1) +
+      String.fromCharCode(this.charCodeAt(this.length - 1) + 1);
+  },
+
+  times: function(count) {
+    var result = '';
+    for (var i = 0; i < count; i++) result += this;
+    return result;
+  },
+
+  camelize: function() {
+    var parts = this.split('-'), len = parts.length;
+    if (len == 1) return parts[0];
+
+    var camelized = this.charAt(0) == '-'
+      ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1)
+      : parts[0];
+
+    for (var i = 1; i < len; i++)
+      camelized += parts[i].charAt(0).toUpperCase() + parts[i].substring(1);
+
+    return camelized;
+  },
+
+  capitalize: function() {
+    return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase();
+  },
+
+  underscore: function() {
+    return this.gsub(/::/, 
'/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{1}_#{2}').gsub(/-/,'_').toLowerCase();
+  },
+
+  dasherize: function() {
+    return this.gsub(/_/,'-');
+  },
+
+  inspect: function(useDoubleQuotes) {
+    var escapedString = this.gsub(/[\x00-\x1f\\]/, function(match) {
+      var character = String.specialChar[match[0]];
+      return character ? character : '\\u00' + match[0].charCodeAt().toPaddedString(2, 16);
+    });
+    if (useDoubleQuotes) return '"' + escapedString.replace(/"/g, '\\"') + '"';
+    return "'" + escapedString.replace(/'/g, '\\\'') + "'";
+  },
+
+  toJSON: function() {
+    return this.inspect(true);
+  },
+
+  unfilterJSON: function(filter) {
+    return this.sub(filter || Prototype.JSONFilter, '#{1}');
+  },
+
+  isJSON: function() {
+    var str = this.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, '');
+    return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str);
+  },
+
+  evalJSON: function(sanitize) {
+    var json = this.unfilterJSON();
+    try {
+      if (!sanitize || json.isJSON()) return eval('(' + json + ')');
+    } catch (e) { }
+    throw new SyntaxError('Badly formed JSON string: ' + this.inspect());
+  },
+
+  include: function(pattern) {
+    return this.indexOf(pattern) > -1;
+  },
+
+  startsWith: function(pattern) {
+    return this.indexOf(pattern) === 0;
+  },
+
+  endsWith: function(pattern) {
+    var d = this.length - pattern.length;
+    return d >= 0 && this.lastIndexOf(pattern) === d;
+  },
+
+  empty: function() {
+    return this == '';
+  },
+
+  blank: function() {
+    return /^\s*$/.test(this);
+  }
+});
+
+if (Prototype.Browser.WebKit || Prototype.Browser.IE) Object.extend(String.prototype, {
+  escapeHTML: function() {
+    return this.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');
+  },
+  unescapeHTML: function() {
+    return this.replace(/&amp;/g,'&').replace(/&lt;/g,'<').replace(/&gt;/g,'>');
+  }
+});
+
+String.prototype.gsub.prepareReplacement = function(replacement) {
+  if (typeof replacement == 'function') return replacement;
+  var template = new Template(replacement);
+  return function(match) { return template.evaluate(match) };
+}
+
+String.prototype.parseQuery = String.prototype.toQueryParams;
+
+Object.extend(String.prototype.escapeHTML, {
+  div:  document.createElement('div'),
+  text: document.createTextNode('')
+});
+
+with (String.prototype.escapeHTML) div.appendChild(text);
+
+var Template = Class.create();
+Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/;
+Template.prototype = {
+  initialize: function(template, pattern) {
+    this.template = template.toString();
+    this.pattern  = pattern || Template.Pattern;
+  },
+
+  evaluate: function(object) {
+    return this.template.gsub(this.pattern, function(match) {
+      var before = match[1];
+      if (before == '\\') return match[2];
+      return before + String.interpret(object[match[3]]);
+    });
+  }
+}
+
+var $break = {}, $continue = new Error('"throw $continue" is deprecated, use "return" instead');
+
+var Enumerable = {
+  each: function(iterator) {
+    var index = 0;
+    try {
+      this._each(function(value) {
+        iterator(value, index++);
+      });
+    } catch (e) {
+      if (e != $break) throw e;
+    }
+    return this;
+  },
+
+  eachSlice: function(number, iterator) {
+    var index = -number, slices = [], array = this.toArray();
+    while ((index += number) < array.length)
+      slices.push(array.slice(index, index+number));
+    return slices.map(iterator);
+  },
+
+  all: function(iterator) {
+    var result = true;
+    this.each(function(value, index) {
+      result = result && !!(iterator || Prototype.K)(value, index);
+      if (!result) throw $break;
+    });
+    return result;
+  },
+
+  any: function(iterator) {
+    var result = false;
+    this.each(function(value, index) {
+      if (result = !!(iterator || Prototype.K)(value, index))
+        throw $break;
+    });
+    return result;
+  },
+
+  collect: function(iterator) {
+    var results = [];
+    this.each(function(value, index) {
+      results.push((iterator || Prototype.K)(value, index));
+    });
+    return results;
+  },
+
+  detect: function(iterator) {
+    var result;
+    this.each(function(value, index) {
+      if (iterator(value, index)) {
+        result = value;
+        throw $break;
+      }
+    });
+    return result;
+  },
+
+  findAll: function(iterator) {
+    var results = [];
+    this.each(function(value, index) {
+      if (iterator(value, index))
+        results.push(value);
+    });
+    return results;
+  },
+
+  grep: function(pattern, iterator) {
+    var results = [];
+    this.each(function(value, index) {
+      var stringValue = value.toString();
+      if (stringValue.match(pattern))
+        results.push((iterator || Prototype.K)(value, index));
+    })
+    return results;
+  },
+
+  include: function(object) {
+    var found = false;
+    this.each(function(value) {
+      if (value == object) {
+        found = true;
+        throw $break;
+      }
+    });
+    return found;
+  },
+
+  inGroupsOf: function(number, fillWith) {
+    fillWith = fillWith === undefined ? null : fillWith;
+    return this.eachSlice(number, function(slice) {
+      while(slice.length < number) slice.push(fillWith);
+      return slice;
+    });
+  },
+
+  inject: function(memo, iterator) {
+    this.each(function(value, index) {
+      memo = iterator(memo, value, index);
+    });
+    return memo;
+  },
+
+  invoke: function(method) {
+    var args = $A(arguments).slice(1);
+    return this.map(function(value) {
+      return value[method].apply(value, args);
+    });
+  },
+
+  max: function(iterator) {
+    var result;
+    this.each(function(value, index) {
+      value = (iterator || Prototype.K)(value, index);
+      if (result == undefined || value >= result)
+        result = value;
+    });
+    return result;
+  },
+
+  min: function(iterator) {
+    var result;
+    this.each(function(value, index) {
+      value = (iterator || Prototype.K)(value, index);
+      if (result == undefined || value < result)
+        result = value;
+    });
+    return result;
+  },
+
+  partition: function(iterator) {
+    var trues = [], falses = [];
+    this.each(function(value, index) {
+      ((iterator || Prototype.K)(value, index) ?
+        trues : falses).push(value);
+    });
+    return [trues, falses];
+  },
+
+  pluck: function(property) {
+    var results = [];
+    this.each(function(value, index) {
+      results.push(value[property]);
+    });
+    return results;
+  },
+
+  reject: function(iterator) {
+    var results = [];
+    this.each(function(value, index) {
+      if (!iterator(value, index))
+        results.push(value);
+    });
+    return results;
+  },
+
+  sortBy: function(iterator) {
+    return this.map(function(value, index) {
+      return {value: value, criteria: iterator(value, index)};
+    }).sort(function(left, right) {
+      var a = left.criteria, b = right.criteria;
+      return a < b ? -1 : a > b ? 1 : 0;
+    }).pluck('value');
+  },
+
+  toArray: function() {
+    return this.map();
+  },
+
+  zip: function() {
+    var iterator = Prototype.K, args = $A(arguments);
+    if (typeof args.last() == 'function')
+      iterator = args.pop();
+
+    var collections = [this].concat(args).map($A);
+    return this.map(function(value, index) {
+      return iterator(collections.pluck(index));
+    });
+  },
+
+  size: function() {
+    return this.toArray().length;
+  },
+
+  inspect: function() {
+    return '#<Enumerable:' + this.toArray().inspect() + '>';
+  }
+}
+
+Object.extend(Enumerable, {
+  map:     Enumerable.collect,
+  find:    Enumerable.detect,
+  select:  Enumerable.findAll,
+  member:  Enumerable.include,
+  entries: Enumerable.toArray
+});
+var $A = Array.from = function(iterable) {
+  if (!iterable) return [];
+  if (iterable.toArray) {
+    return iterable.toArray();
+  } else {
+    var results = [];
+    for (var i = 0, length = iterable.length; i < length; i++)
+      results.push(iterable[i]);
+    return results;
+  }
+}
+
+if (Prototype.Browser.WebKit) {
+  $A = Array.from = function(iterable) {
+    if (!iterable) return [];
+    if (!(typeof iterable == 'function' && iterable == '[object NodeList]') &&
+      iterable.toArray) {
+      return iterable.toArray();
+    } else {
+      var results = [];
+      for (var i = 0, length = iterable.length; i < length; i++)
+        results.push(iterable[i]);
+      return results;
+    }
+  }
+}
+
+Object.extend(Array.prototype, Enumerable);
+
+if (!Array.prototype._reverse)
+  Array.prototype._reverse = Array.prototype.reverse;
+
+Object.extend(Array.prototype, {
+  _each: function(iterator) {
+    for (var i = 0, length = this.length; i < length; i++)
+      iterator(this[i]);
+  },
+
+  clear: function() {
+    this.length = 0;
+    return this;
+  },
+
+  first: function() {
+    return this[0];
+  },
+
+  last: function() {
+    return this[this.length - 1];
+  },
+
+  compact: function() {
+    return this.select(function(value) {
+      return value != null;
+    });
+  },
+
+  flatten: function() {
+    return this.inject([], function(array, value) {
+      return array.concat(value && value.constructor == Array ?
+        value.flatten() : [value]);
+    });
+  },
+
+  without: function() {
+    var values = $A(arguments);
+    return this.select(function(value) {
+      return !values.include(value);
+    });
+  },
+
+  indexOf: function(object) {
+    for (var i = 0, length = this.length; i < length; i++)
+      if (this[i] == object) return i;
+    return -1;
+  },
+
+  reverse: function(inline) {
+    return (inline !== false ? this : this.toArray())._reverse();
+  },
+
+  reduce: function() {
+    return this.length > 1 ? this : this[0];
+  },
+
+  uniq: function(sorted) {
+    return this.inject([], function(array, value, index) {
+      if (0 == index || (sorted ? array.last() != value : !array.include(value)))
+        array.push(value);
+      return array;
+    });
+  },
+
+  clone: function() {
+    return [].concat(this);
+  },
+
+  size: function() {
+    return this.length;
+  },
+
+  inspect: function() {
+    return '[' + this.map(Object.inspect).join(', ') + ']';
+  },
+
+  toJSON: function() {
+    var results = [];
+    this.each(function(object) {
+      var value = Object.toJSON(object);
+      if (value !== undefined) results.push(value);
+    });
+    return '[' + results.join(', ') + ']';
+  }
+});
+
+Array.prototype.toArray = Array.prototype.clone;
+
+function $w(string) {
+  string = string.strip();
+  return string ? string.split(/\s+/) : [];
+}
+
+if (Prototype.Browser.Opera){
+  Array.prototype.concat = function() {
+    var array = [];
+    for (var i = 0, length = this.length; i < length; i++) array.push(this[i]);
+    for (var i = 0, length = arguments.length; i < length; i++) {
+      if (arguments[i].constructor == Array) {
+        for (var j = 0, arrayLength = arguments[i].length; j < arrayLength; j++)
+          array.push(arguments[i][j]);
+      } else {
+        array.push(arguments[i]);
+      }
+    }
+    return array;
+  }
+}
+var Hash = function(object) {
+  if (object instanceof Hash) this.merge(object);
+  else Object.extend(this, object || {});
+};
+
+Object.extend(Hash, {
+  toQueryString: function(obj) {
+    var parts = [];
+    parts.add = arguments.callee.addPair;
+
+    this.prototype._each.call(obj, function(pair) {
+      if (!pair.key) return;
+      var value = pair.value;
+
+      if (value && typeof value == 'object') {
+        if (value.constructor == Array) value.each(function(value) {
+          parts.add(pair.key, value);
+        });
+        return;
+      }
+      parts.add(pair.key, value);
+    });
+
+    return parts.join('&');
+  },
+
+  toJSON: function(object) {
+    var results = [];
+    this.prototype._each.call(object, function(pair) {
+      var value = Object.toJSON(pair.value);
+      if (value !== undefined) results.push(pair.key.toJSON() + ': ' + value);
+    });
+    return '{' + results.join(', ') + '}';
+  }
+});
+
+Hash.toQueryString.addPair = function(key, value, prefix) {
+  key = encodeURIComponent(key);
+  if (value === undefined) this.push(key);
+  else this.push(key + '=' + (value == null ? '' : encodeURIComponent(value)));
+}
+
+Object.extend(Hash.prototype, Enumerable);
+Object.extend(Hash.prototype, {
+  _each: function(iterator) {
+    for (var key in this) {
+      var value = this[key];
+      if (value && value == Hash.prototype[key]) continue;
+
+      var pair = [key, value];
+      pair.key = key;
+      pair.value = value;
+      iterator(pair);
+    }
+  },
+
+  keys: function() {
+    return this.pluck('key');
+  },
+
+  values: function() {
+    return this.pluck('value');
+  },
+
+  merge: function(hash) {
+    return $H(hash).inject(this, function(mergedHash, pair) {
+      mergedHash[pair.key] = pair.value;
+      return mergedHash;
+    });
+  },
+
+  remove: function() {
+    var result;
+    for(var i = 0, length = arguments.length; i < length; i++) {
+      var value = this[arguments[i]];
+      if (value !== undefined){
+        if (result === undefined) result = value;
+        else {
+          if (result.constructor != Array) result = [result];
+          result.push(value)
+        }
+      }
+      delete this[arguments[i]];
+    }
+    return result;
+  },
+
+  toQueryString: function() {
+    return Hash.toQueryString(this);
+  },
+
+  inspect: function() {
+    return '#<Hash:{' + this.map(function(pair) {
+      return pair.map(Object.inspect).join(': ');
+    }).join(', ') + '}>';
+  },
+
+  toJSON: function() {
+    return Hash.toJSON(this);
+  }
+});
+
+function $H(object) {
+  if (object instanceof Hash) return object;
+  return new Hash(object);
+};
+
+// Safari iterates over shadowed properties
+if (function() {
+  var i = 0, Test = function(value) { this.key = value };
+  Test.prototype.key = 'foo';
+  for (var property in new Test('bar')) i++;
+  return i > 1;
+}()) Hash.prototype._each = function(iterator) {
+  var cache = [];
+  for (var key in this) {
+    var value = this[key];
+    if ((value && value == Hash.prototype[key]) || cache.include(key)) continue;
+    cache.push(key);
+    var pair = [key, value];
+    pair.key = key;
+    pair.value = value;
+    iterator(pair);
+  }
+};
+ObjectRange = Class.create();
+Object.extend(ObjectRange.prototype, Enumerable);
+Object.extend(ObjectRange.prototype, {
+  initialize: function(start, end, exclusive) {
+    this.start = start;
+    this.end = end;
+    this.exclusive = exclusive;
+  },
+
+  _each: function(iterator) {
+    var value = this.start;
+    while (this.include(value)) {
+      iterator(value);
+      value = value.succ();
+    }
+  },
+
+  include: function(value) {
+    if (value < this.start)
+      return false;
+    if (this.exclusive)
+      return value < this.end;
+    return value <= this.end;
+  }
+});
+
+var $R = function(start, end, exclusive) {
+  return new ObjectRange(start, end, exclusive);
+}
+
+var Ajax = {
+  getTransport: function() {
+    return Try.these(
+      function() {return new XMLHttpRequest()},
+      function() {return new ActiveXObject('Msxml2.XMLHTTP')},
+      function() {return new ActiveXObject('Microsoft.XMLHTTP')}
+    ) || false;
+  },
+
+  activeRequestCount: 0
+}
+
+Ajax.Responders = {
+  responders: [],
+
+  _each: function(iterator) {
+    this.responders._each(iterator);
+  },
+
+  register: function(responder) {
+    if (!this.include(responder))
+      this.responders.push(responder);
+  },
+
+  unregister: function(responder) {
+    this.responders = this.responders.without(responder);
+  },
+
+  dispatch: function(callback, request, transport, json) {
+    this.each(function(responder) {
+      if (typeof responder[callback] == 'function') {
+        try {
+          responder[callback].apply(responder, [request, transport, json]);
+        } catch (e) {}
+      }
+    });
+  }
+};
+
+Object.extend(Ajax.Responders, Enumerable);
+
+Ajax.Responders.register({
+  onCreate: function() {
+    Ajax.activeRequestCount++;
+  },
+  onComplete: function() {
+    Ajax.activeRequestCount--;
+  }
+});
+
+Ajax.Base = function() {};
+Ajax.Base.prototype = {
+  setOptions: function(options) {
+    this.options = {
+      method:       'post',
+      asynchronous: true,
+      contentType:  'application/x-www-form-urlencoded',
+      encoding:     'UTF-8',
+      parameters:   ''
+    }
+    Object.extend(this.options, options || {});
+
+    this.options.method = this.options.method.toLowerCase();
+    if (typeof this.options.parameters == 'string')
+      this.options.parameters = this.options.parameters.toQueryParams();
+  }
+}
+
+Ajax.Request = Class.create();
+Ajax.Request.Events =
+  ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];
+
+Ajax.Request.prototype = Object.extend(new Ajax.Base(), {
+  _complete: false,
+
+  initialize: function(url, options) {
+    this.transport = Ajax.getTransport();
+    this.setOptions(options);
+    this.request(url);
+  },
+
+  request: function(url) {
+    this.url = url;
+    this.method = this.options.method;
+    var params = Object.clone(this.options.parameters);
+
+    if (!['get', 'post'].include(this.method)) {
+      // simulate other verbs over post
+      params['_method'] = this.method;
+      this.method = 'post';
+    }
+
+    this.parameters = params;
+
+    if (params = Hash.toQueryString(params)) {
+      // when GET, append parameters to URL
+      if (this.method == 'get')
+        this.url += (this.url.include('?') ? '&' : '?') + params;
+      else if (/Konqueror|Safari|KHTML/.test(navigator.userAgent))
+        params += '&_=';
+    }
+
+    try {
+      if (this.options.onCreate) this.options.onCreate(this.transport);
+      Ajax.Responders.dispatch('onCreate', this, this.transport);
+
+      this.transport.open(this.method.toUpperCase(), this.url,
+        this.options.asynchronous);
+
+      if (this.options.asynchronous)
+        setTimeout(function() { this.respondToReadyState(1) }.bind(this), 10);
+
+      this.transport.onreadystatechange = this.onStateChange.bind(this);
+      this.setRequestHeaders();
+
+      this.body = this.method == 'post' ? (this.options.postBody || params) : null;
+      this.transport.send(this.body);
+
+      /* Force Firefox to handle ready state 4 for synchronous requests */
+      if (!this.options.asynchronous && this.transport.overrideMimeType)
+        this.onStateChange();
+
+    }
+    catch (e) {
+      this.dispatchException(e);
+    }
+  },
+
+  onStateChange: function() {
+    var readyState = this.transport.readyState;
+    if (readyState > 1 && !((readyState == 4) && this._complete))
+      this.respondToReadyState(this.transport.readyState);
+  },
+
+  setRequestHeaders: function() {
+    var headers = {
+      'X-Requested-With': 'XMLHttpRequest',
+      'X-Prototype-Version': Prototype.Version,
+      'Accept': 'text/javascript, text/html, application/xml, text/xml, */*'
+    };
+
+    if (this.method == 'post') {
+      headers['Content-type'] = this.options.contentType +
+        (this.options.encoding ? '; charset=' + this.options.encoding : '');
+
+      /* Force "Connection: close" for older Mozilla browsers to work
+       * around a bug where XMLHttpRequest sends an incorrect
+       * Content-length header. See Mozilla Bugzilla #246651.
+       */
+      if (this.transport.overrideMimeType &&
+          (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < 2005)
+            headers['Connection'] = 'close';
+    }
+
+    // user-defined headers
+    if (typeof this.options.requestHeaders == 'object') {
+      var extras = this.options.requestHeaders;
+
+      if (typeof extras.push == 'function')
+        for (var i = 0, length = extras.length; i < length; i += 2)
+          headers[extras[i]] = extras[i+1];
+      else
+        $H(extras).each(function(pair) { headers[pair.key] = pair.value });
+    }
+
+    for (var name in headers)
+      this.transport.setRequestHeader(name, headers[name]);
+  },
+
+  success: function() {
+    return !this.transport.status
+        || (this.transport.status >= 200 && this.transport.status < 300);
+  },
+
+  respondToReadyState: function(readyState) {
+    var state = Ajax.Request.Events[readyState];
+    var transport = this.transport, json = this.evalJSON();
+
+    if (state == 'Complete') {
+      try {
+        this._complete = true;
+        (this.options['on' + this.transport.status]
+         || this.options['on' + (this.success() ? 'Success' : 'Failure')]
+         || Prototype.emptyFunction)(transport, json);
+      } catch (e) {
+        this.dispatchException(e);
+      }
+
+      var contentType = this.getHeader('Content-type');
+      if (contentType && contentType.strip().
+        match(/^(text|application)\/(x-)?(java|ecma)script(;.*)?$/i))
+          this.evalResponse();
+    }
+
+    try {
+      (this.options['on' + state] || Prototype.emptyFunction)(transport, json);
+      Ajax.Responders.dispatch('on' + state, this, transport, json);
+    } catch (e) {
+      this.dispatchException(e);
+    }
+
+    if (state == 'Complete') {
+      // avoid memory leak in MSIE: clean up
+      this.transport.onreadystatechange = Prototype.emptyFunction;
+    }
+  },
+
+  getHeader: function(name) {
+    try {
+      return this.transport.getResponseHeader(name);
+    } catch (e) { return null }
+  },
+
+  evalJSON: function() {
+    try {
+      var json = this.getHeader('X-JSON');
+      return json ? json.evalJSON() : null;
+    } catch (e) { return null }
+  },
+
+  evalResponse: function() {
+    try {
+      return eval((this.transport.responseText || '').unfilterJSON());
+    } catch (e) {
+      this.dispatchException(e);
+    }
+  },
+
+  dispatchException: function(exception) {
+    (this.options.onException || Prototype.emptyFunction)(this, exception);
+    Ajax.Responders.dispatch('onException', this, exception);
+  }
+});
+
+Ajax.Updater = Class.create();
+
+Object.extend(Object.extend(Ajax.Updater.prototype, Ajax.Request.prototype), {
+  initialize: function(container, url, options) {
+    this.container = {
+      success: (container.success || container),
+      failure: (container.failure || (container.success ? null : container))
+    }
+
+    this.transport = Ajax.getTransport();
+    this.setOptions(options);
+
+    var onComplete = this.options.onComplete || Prototype.emptyFunction;
+    this.options.onComplete = (function(transport, param) {
+      this.updateContent();
+      onComplete(transport, param);
+    }).bind(this);
+
+    this.request(url);
+  },
+
+  updateContent: function() {
+    var receiver = this.container[this.success() ? 'success' : 'failure'];
+    var response = this.transport.responseText;
+
+    if (!this.options.evalScripts) response = response.stripScripts();
+
+    if (receiver = $(receiver)) {
+      if (this.options.insertion)
+        new this.options.insertion(receiver, response);
+      else
+        receiver.update(response);
+    }
+
+    if (this.success()) {
+      if (this.onComplete)
+        setTimeout(this.onComplete.bind(this), 10);
+    }
+  }
+});
+
+Ajax.PeriodicalUpdater = Class.create();
+Ajax.PeriodicalUpdater.prototype = Object.extend(new Ajax.Base(), {
+  initialize: function(container, url, options) {
+    this.setOptions(options);
+    this.onComplete = this.options.onComplete;
+
+    this.frequency = (this.options.frequency || 2);
+    this.decay = (this.options.decay || 1);
+
+    this.updater = {};
+    this.container = container;
+    this.url = url;
+
+    this.start();
+  },
+
+  start: function() {
+    this.options.onComplete = this.updateComplete.bind(this);
+    this.onTimerEvent();
+  },
+
+  stop: function() {
+    this.updater.options.onComplete = undefined;
+    clearTimeout(this.timer);
+    (this.onComplete || Prototype.emptyFunction).apply(this, arguments);
+  },
+
+  updateComplete: function(request) {
+    if (this.options.decay) {
+      this.decay = (request.responseText == this.lastText ?
+        this.decay * this.options.decay : 1);
+
+      this.lastText = request.responseText;
+    }
+    this.timer = setTimeout(this.onTimerEvent.bind(this),
+      this.decay * this.frequency * 1000);
+  },
+
+  onTimerEvent: function() {
+    this.updater = new Ajax.Updater(this.container, this.url, this.options);
+  }
+});
+function $(element) {
+  if (arguments.length > 1) {
+    for (var i = 0, elements = [], length = arguments.length; i < length; i++)
+      elements.push($(arguments[i]));
+    return elements;
+  }
+  if (typeof element == 'string')
+    element = document.getElementById(element);
+  return Element.extend(element);
+}
+
+if (Prototype.BrowserFeatures.XPath) {
+  document._getElementsByXPath = function(expression, parentElement) {
+    var results = [];
+    var query = document.evaluate(expression, $(parentElement) || document,
+      null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+    for (var i = 0, length = query.snapshotLength; i < length; i++)
+      results.push(query.snapshotItem(i));
+    return results;
+  };
+
+  document.getElementsByClassName = function(className, parentElement) {
+    var q = ".//*[contains(concat(' ', @class, ' '), ' " + className + " ')]";
+    return document._getElementsByXPath(q, parentElement);
+  }
+
+} else document.getElementsByClassName = function(className, parentElement) {
+  var children = ($(parentElement) || document.body).getElementsByTagName('*');
+  var elements = [], child, pattern = new RegExp("(^|\\s)" + className + "(\\s|$)");
+  for (var i = 0, length = children.length; i < length; i++) {
+    child = children[i];
+    var elementClassName = child.className;
+    if (elementClassName.length == 0) continue;
+    if (elementClassName == className || elementClassName.match(pattern))
+      elements.push(Element.extend(child));
+  }
+  return elements;
+};
+
+/*--------------------------------------------------------------------------*/
+
+if (!window.Element) var Element = {};
+
+Element.extend = function(element) {
+  var F = Prototype.BrowserFeatures;
+  if (!element || !element.tagName || element.nodeType == 3 ||
+   element._extended || F.SpecificElementExtensions || element == window)
+    return element;
+
+  var methods = {}, tagName = element.tagName, cache = Element.extend.cache,
+   T = Element.Methods.ByTag;
+
+  // extend methods for all tags (Safari doesn't need this)
+  if (!F.ElementExtensions) {
+    Object.extend(methods, Element.Methods),
+    Object.extend(methods, Element.Methods.Simulated);
+  }
+
+  // extend methods for specific tags
+  if (T[tagName]) Object.extend(methods, T[tagName]);
+
+  for (var property in methods) {
+    var value = methods[property];
+    if (typeof value == 'function' && !(property in element))
+      element[property] = cache.findOrStore(value);
+  }
+
+  element._extended = Prototype.emptyFunction;
+  return element;
+};
+
+Element.extend.cache = {
+  findOrStore: function(value) {
+    return this[value] = this[value] || function() {
+      return value.apply(null, [this].concat($A(arguments)));
+    }
+  }
+};
+
+Element.Methods = {
+  visible: function(element) {
+    return $(element).style.display != 'none';
+  },
+
+  toggle: function(element) {
+    element = $(element);
+    Element[Element.visible(element) ? 'hide' : 'show'](element);
+    return element;
+  },
+
+  hide: function(element) {
+    $(element).style.display = 'none';
+    return element;
+  },
+
+  show: function(element) {
+    $(element).style.display = '';
+    return element;
+  },
+
+  remove: function(element) {
+    element = $(element);
+    element.parentNode.removeChild(element);
+    return element;
+  },
+
+  update: function(element, html) {
+    html = typeof html == 'undefined' ? '' : html.toString();
+    $(element).innerHTML = html.stripScripts();
+    setTimeout(function() {html.evalScripts()}, 10);
+    return element;
+  },
+
+  replace: function(element, html) {
+    element = $(element);
+    html = typeof html == 'undefined' ? '' : html.toString();
+    if (element.outerHTML) {
+      element.outerHTML = html.stripScripts();
+    } else {
+      var range = element.ownerDocument.createRange();
+      range.selectNodeContents(element);
+      element.parentNode.replaceChild(
+        range.createContextualFragment(html.stripScripts()), element);
+    }
+    setTimeout(function() {html.evalScripts()}, 10);
+    return element;
+  },
+
+  inspect: function(element) {
+    element = $(element);
+    var result = '<' + element.tagName.toLowerCase();
+    $H({'id': 'id', 'className': 'class'}).each(function(pair) {
+      var property = pair.first(), attribute = pair.last();
+      var value = (element[property] || '').toString();
+      if (value) result += ' ' + attribute + '=' + value.inspect(true);
+    });
+    return result + '>';
+  },
+
+  recursivelyCollect: function(element, property) {
+    element = $(element);
+    var elements = [];
+    while (element = element[property])
+      if (element.nodeType == 1)
+        elements.push(Element.extend(element));
+    return elements;
+  },
+
+  ancestors: function(element) {
+    return $(element).recursivelyCollect('parentNode');
+  },
+
+  descendants: function(element) {
+    return $A($(element).getElementsByTagName('*')).each(Element.extend);
+  },
+
+  firstDescendant: function(element) {
+    element = $(element).firstChild;
+    while (element && element.nodeType != 1) element = element.nextSibling;
+    return $(element);
+  },
+
+  immediateDescendants: function(element) {
+    if (!(element = $(element).firstChild)) return [];
+    while (element && element.nodeType != 1) element = element.nextSibling;
+    if (element) return [element].concat($(element).nextSiblings());
+    return [];
+  },
+
+  previousSiblings: function(element) {
+    return $(element).recursivelyCollect('previousSibling');
+  },
+
+  nextSiblings: function(element) {
+    return $(element).recursivelyCollect('nextSibling');
+  },
+
+  siblings: function(element) {
+    element = $(element);
+    return element.previousSiblings().reverse().concat(element.nextSiblings());
+  },
+
+  match: function(element, selector) {
+    if (typeof selector == 'string')
+      selector = new Selector(selector);
+    return selector.match($(element));
+  },
+
+  up: function(element, expression, index) {
+    element = $(element);
+    if (arguments.length == 1) return $(element.parentNode);
+    var ancestors = element.ancestors();
+    return expression ? Selector.findElement(ancestors, expression, index) :
+      ancestors[index || 0];
+  },
+
+  down: function(element, expression, index) {
+    element = $(element);
+    if (arguments.length == 1) return element.firstDescendant();
+    var descendants = element.descendants();
+    return expression ? Selector.findElement(descendants, expression, index) :
+      descendants[index || 0];
+  },
+
+  previous: function(element, expression, index) {
+    element = $(element);
+    if (arguments.length == 1) return $(Selector.handlers.previousElementSibling(element));
+    var previousSiblings = element.previousSiblings();
+    return expression ? Selector.findElement(previousSiblings, expression, index) :
+      previousSiblings[index || 0];
+  },
+
+  next: function(element, expression, index) {
+    element = $(element);
+    if (arguments.length == 1) return $(Selector.handlers.nextElementSibling(element));
+    var nextSiblings = element.nextSiblings();
+    return expression ? Selector.findElement(nextSiblings, expression, index) :
+      nextSiblings[index || 0];
+  },
+
+  getElementsBySelector: function() {
+    var args = $A(arguments), element = $(args.shift());
+    return Selector.findChildElements(element, args);
+  },
+
+  getElementsByClassName: function(element, className) {
+    return document.getElementsByClassName(className, element);
+  },
+
+  readAttribute: function(element, name) {
+    element = $(element);
+    if (Prototype.Browser.IE) {
+      if (!element.attributes) return null;
+      var t = Element._attributeTranslations;
+      if (t.values[name]) return t.values[name](element, name);
+      if (t.names[name])  name = t.names[name];
+      var attribute = element.attributes[name];
+      return attribute ? attribute.nodeValue : null;
+    }
+    return element.getAttribute(name);
+  },
+
+  getHeight: function(element) {
+    return $(element).getDimensions().height;
+  },
+
+  getWidth: function(element) {
+    return $(element).getDimensions().width;
+  },
+
+  classNames: function(element) {
+    return new Element.ClassNames(element);
+  },
+
+  hasClassName: function(element, className) {
+    if (!(element = $(element))) return;
+    var elementClassName = element.className;
+    if (elementClassName.length == 0) return false;
+    if (elementClassName == className ||
+        elementClassName.match(new RegExp("(^|\\s)" + className + "(\\s|$)")))
+      return true;
+    return false;
+  },
+
+  addClassName: function(element, className) {
+    if (!(element = $(element))) return;
+    Element.classNames(element).add(className);
+    return element;
+  },
+
+  removeClassName: function(element, className) {
+    if (!(element = $(element))) return;
+    Element.classNames(element).remove(className);
+    return element;
+  },
+
+  toggleClassName: function(element, className) {
+    if (!(element = $(element))) return;
+    Element.classNames(element)[element.hasClassName(className) ? 'remove' : 'add'](className);
+    return element;
+  },
+
+  observe: function() {
+    Event.observe.apply(Event, arguments);
+    return $A(arguments).first();
+  },
+
+  stopObserving: function() {
+    Event.stopObserving.apply(Event, arguments);
+    return $A(arguments).first();
+  },
+
+  // removes whitespace-only text node children
+  cleanWhitespace: function(element) {
+    element = $(element);
+    var node = element.firstChild;
+    while (node) {
+      var nextNode = node.nextSibling;
+      if (node.nodeType == 3 && !/\S/.test(node.nodeValue))
+        element.removeChild(node);
+      node = nextNode;
+    }
+    return element;
+  },
+
+  empty: function(element) {
+    return $(element).innerHTML.blank();
+  },
+
+  descendantOf: function(element, ancestor) {
+    element = $(element), ancestor = $(ancestor);
+    while (element = element.parentNode)
+      if (element == ancestor) return true;
+    return false;
+  },
+
+  scrollTo: function(element) {
+    element = $(element);
+    var pos = Position.cumulativeOffset(element);
+    window.scrollTo(pos[0], pos[1]);
+    return element;
+  },
+
+  getStyle: function(element, style) {
+    element = $(element);
+    style = style == 'float' ? 'cssFloat' : style.camelize();
+    var value = element.style[style];
+    if (!value) {
+      var css = document.defaultView.getComputedStyle(element, null);
+      value = css ? css[style] : null;
+    }
+    if (style == 'opacity') return value ? parseFloat(value) : 1.0;
+    return value == 'auto' ? null : value;
+  },
+
+  getOpacity: function(element) {
+    return $(element).getStyle('opacity');
+  },
+
+  setStyle: function(element, styles, camelized) {
+    element = $(element);
+    var elementStyle = element.style;
+
+    for (var property in styles)
+      if (property == 'opacity') element.setOpacity(styles[property])
+      else
+        elementStyle[(property == 'float' || property == 'cssFloat') ?
+          (elementStyle.styleFloat === undefined ? 'cssFloat' : 'styleFloat') :
+          (camelized ? property : property.camelize())] = styles[property];
+
+    return element;
+  },
+
+  setOpacity: function(element, value) {
+    element = $(element);
+    element.style.opacity = (value == 1 || value === '') ? '' :
+      (value < 0.00001) ? 0 : value;
+    return element;
+  },
+
+  getDimensions: function(element) {
+    element = $(element);
+    var display = $(element).getStyle('display');
+    if (display != 'none' && display != null) // Safari bug
+      return {width: element.offsetWidth, height: element.offsetHeight};
+
+    // All *Width and *Height properties give 0 on elements with display none,
+    // so enable the element temporarily
+    var els = element.style;
+    var originalVisibility = els.visibility;
+    var originalPosition = els.position;
+    var originalDisplay = els.display;
+    els.visibility = 'hidden';
+    els.position = 'absolute';
+    els.display = 'block';
+    var originalWidth = element.clientWidth;
+    var originalHeight = element.clientHeight;
+    els.display = originalDisplay;
+    els.position = originalPosition;
+    els.visibility = originalVisibility;
+    return {width: originalWidth, height: originalHeight};
+  },
+
+  makePositioned: function(element) {
+    element = $(element);
+    var pos = Element.getStyle(element, 'position');
+    if (pos == 'static' || !pos) {
+      element._madePositioned = true;
+      element.style.position = 'relative';
+      // Opera returns the offset relative to the positioning context, when an
+      // element is position relative but top and left have not been defined
+      if (window.opera) {
+        element.style.top = 0;
+        element.style.left = 0;
+      }
+    }
+    return element;
+  },
+
+  undoPositioned: function(element) {
+    element = $(element);
+    if (element._madePositioned) {
+      element._madePositioned = undefined;
+      element.style.position =
+        element.style.top =
+        element.style.left =
+        element.style.bottom =
+        element.style.right = '';
+    }
+    return element;
+  },
+
+  makeClipping: function(element) {
+    element = $(element);
+    if (element._overflow) return element;
+    element._overflow = element.style.overflow || 'auto';
+    if ((Element.getStyle(element, 'overflow') || 'visible') != 'hidden')
+      element.style.overflow = 'hidden';
+    return element;
+  },
+
+  undoClipping: function(element) {
+    element = $(element);
+    if (!element._overflow) return element;
+    element.style.overflow = element._overflow == 'auto' ? '' : element._overflow;
+    element._overflow = null;
+    return element;
+  }
+};
+
+Object.extend(Element.Methods, {
+  childOf: Element.Methods.descendantOf,
+  childElements: Element.Methods.immediateDescendants
+});
+
+if (Prototype.Browser.Opera) {
+  Element.Methods._getStyle = Element.Methods.getStyle;
+  Element.Methods.getStyle = function(element, style) {
+    switch(style) {
+      case 'left':
+      case 'top':
+      case 'right':
+      case 'bottom':
+        if (Element._getStyle(element, 'position') == 'static') return null;
+      default: return Element._getStyle(element, style);
+    }
+  };
+}
+else if (Prototype.Browser.IE) {
+  Element.Methods.getStyle = function(element, style) {
+    element = $(element);
+    style = (style == 'float' || style == 'cssFloat') ? 'styleFloat' : style.camelize();
+    var value = element.style[style];
+    if (!value && element.currentStyle) value = element.currentStyle[style];
+
+    if (style == 'opacity') {
+      if (value = (element.getStyle('filter') || '').match(/alpha\(opacity=(.*)\)/))
+        if (value[1]) return parseFloat(value[1]) / 100;
+      return 1.0;
+    }
+
+    if (value == 'auto') {
+      if ((style == 'width' || style == 'height') && (element.getStyle('display') != 'none'))
+        return element['offset'+style.capitalize()] + 'px';
+      return null;
+    }
+    return value;
+  };
+
+  Element.Methods.setOpacity = function(element, value) {
+    element = $(element);
+    var filter = element.getStyle('filter'), style = element.style;
+    if (value == 1 || value === '') {
+      style.filter = filter.replace(/alpha\([^\)]*\)/gi,'');
+      return element;
+    } else if (value < 0.00001) value = 0;
+    style.filter = filter.replace(/alpha\([^\)]*\)/gi, '') +
+      'alpha(opacity=' + (value * 100) + ')';
+    return element;
+  };
+
+  // IE is missing .innerHTML support for TABLE-related elements
+  Element.Methods.update = function(element, html) {
+    element = $(element);
+    html = typeof html == 'undefined' ? '' : html.toString();
+    var tagName = element.tagName.toUpperCase();
+    if (['THEAD','TBODY','TR','TD'].include(tagName)) {
+      var div = document.createElement('div');
+      switch (tagName) {
+        case 'THEAD':
+        case 'TBODY':
+          div.innerHTML = '<table><tbody>' +  html.stripScripts() + '</tbody></table>';
+          depth = 2;
+          break;
+        case 'TR':
+          div.innerHTML = '<table><tbody><tr>' +  html.stripScripts() + '</tr></tbody></table>';
+          depth = 3;
+          break;
+        case 'TD':
+          div.innerHTML = '<table><tbody><tr><td>' +  html.stripScripts() + '</td></tr></tbody></table>';
+          depth = 4;
+      }
+      $A(element.childNodes).each(function(node) { element.removeChild(node) });
+      depth.times(function() { div = div.firstChild });
+      $A(div.childNodes).each(function(node) { element.appendChild(node) });
+    } else {
+      element.innerHTML = html.stripScripts();
+    }
+    setTimeout(function() { html.evalScripts() }, 10);
+    return element;
+  }
+}
+else if (Prototype.Browser.Gecko) {
+  Element.Methods.setOpacity = function(element, value) {
+    element = $(element);
+    element.style.opacity = (value == 1) ? 0.999999 :
+      (value === '') ? '' : (value < 0.00001) ? 0 : value;
+    return element;
+  };
+}
+
+Element._attributeTranslations = {
+  names: {
+    colspan:   "colSpan",
+    rowspan:   "rowSpan",
+    valign:    "vAlign",
+    datetime:  "dateTime",
+    accesskey: "accessKey",
+    tabindex:  "tabIndex",
+    enctype:   "encType",
+    maxlength: "maxLength",
+    readonly:  "readOnly",
+    longdesc:  "longDesc"
+  },
+  values: {
+    _getAttr: function(element, attribute) {
+      return element.getAttribute(attribute, 2);
+    },
+    _flag: function(element, attribute) {
+      return $(element).hasAttribute(attribute) ? attribute : null;
+    },
+    style: function(element) {
+      return element.style.cssText.toLowerCase();
+    },
+    title: function(element) {
+      var node = element.getAttributeNode('title');
+      return node.specified ? node.nodeValue : null;
+    }
+  }
+};
+
+(function() {
+  Object.extend(this, {
+    href: this._getAttr,
+    src:  this._getAttr,
+    type: this._getAttr,
+    disabled: this._flag,
+    checked:  this._flag,
+    readonly: this._flag,
+    multiple: this._flag
+  });
+}).call(Element._attributeTranslations.values);
+
+Element.Methods.Simulated = {
+  hasAttribute: function(element, attribute) {
+    var t = Element._attributeTranslations, node;
+    attribute = t.names[attribute] || attribute;
+    node = $(element).getAttributeNode(attribute);
+    return node && node.specified;
+  }
+};
+
+Element.Methods.ByTag = {};
+
+Object.extend(Element, Element.Methods);
+
+if (!Prototype.BrowserFeatures.ElementExtensions &&
+ document.createElement('div').__proto__) {
+  window.HTMLElement = {};
+  window.HTMLElement.prototype = document.createElement('div').__proto__;
+  Prototype.BrowserFeatures.ElementExtensions = true;
+}
+
+Element.hasAttribute = function(element, attribute) {
+  if (element.hasAttribute) return element.hasAttribute(attribute);
+  return Element.Methods.Simulated.hasAttribute(element, attribute);
+};
+
+Element.addMethods = function(methods) {
+  var F = Prototype.BrowserFeatures, T = Element.Methods.ByTag;
+
+  if (!methods) {
+    Object.extend(Form, Form.Methods);
+    Object.extend(Form.Element, Form.Element.Methods);
+    Object.extend(Element.Methods.ByTag, {
+      "FORM":     Object.clone(Form.Methods),
+      "INPUT":    Object.clone(Form.Element.Methods),
+      "SELECT":   Object.clone(Form.Element.Methods),
+      "TEXTAREA": Object.clone(Form.Element.Methods)
+    });
+  }
+
+  if (arguments.length == 2) {
+    var tagName = methods;
+    methods = arguments[1];
+  }
+
+  if (!tagName) Object.extend(Element.Methods, methods || {});
+  else {
+    if (tagName.constructor == Array) tagName.each(extend);
+    else extend(tagName);
+  }
+
+  function extend(tagName) {
+    tagName = tagName.toUpperCase();
+    if (!Element.Methods.ByTag[tagName])
+      Element.Methods.ByTag[tagName] = {};
+    Object.extend(Element.Methods.ByTag[tagName], methods);
+  }
+
+  function copy(methods, destination, onlyIfAbsent) {
+    onlyIfAbsent = onlyIfAbsent || false;
+    var cache = Element.extend.cache;
+    for (var property in methods) {
+      var value = methods[property];
+      if (!onlyIfAbsent || !(property in destination))
+        destination[property] = cache.findOrStore(value);
+    }
+  }
+
+  function findDOMClass(tagName) {
+    var klass;
+    var trans = {
+      "OPTGROUP": "OptGroup", "TEXTAREA": "TextArea", "P": "Paragraph",
+      "FIELDSET": "FieldSet", "UL": "UList", "OL": "OList", "DL": "DList",
+      "DIR": "Directory", "H1": "Heading", "H2": "Heading", "H3": "Heading",
+      "H4": "Heading", "H5": "Heading", "H6": "Heading", "Q": "Quote",
+      "INS": "Mod", "DEL": "Mod", "A": "Anchor", "IMG": "Image", "CAPTION":
+      "TableCaption", "COL": "TableCol", "COLGROUP": "TableCol", "THEAD":
+      "TableSection", "TFOOT": "TableSection", "TBODY": "TableSection", "TR":
+      "TableRow", "TH": "TableCell", "TD": "TableCell", "FRAMESET":
+      "FrameSet", "IFRAME": "IFrame"
+    };
+    if (trans[tagName]) klass = 'HTML' + trans[tagName] + 'Element';
+    if (window[klass]) return window[klass];
+    klass = 'HTML' + tagName + 'Element';
+    if (window[klass]) return window[klass];
+    klass = 'HTML' + tagName.capitalize() + 'Element';
+    if (window[klass]) return window[klass];
+
+    window[klass] = {};
+    window[klass].prototype = document.createElement(tagName).__proto__;
+    return window[klass];
+  }
+
+  if (F.ElementExtensions) {
+    copy(Element.Methods, HTMLElement.prototype);
+    copy(Element.Methods.Simulated, HTMLElement.prototype, true);
+  }
+
+  if (F.SpecificElementExtensions) {
+    for (var tag in Element.Methods.ByTag) {
+      var klass = findDOMClass(tag);
+      if (typeof klass == "undefined") continue;
+      copy(T[tag], klass.prototype);
+    }
+  }
+
+  Object.extend(Element, Element.Methods);
+  delete Element.ByTag;
+};
+
+var Toggle = { display: Element.toggle };
+
+/*--------------------------------------------------------------------------*/
+
+Abstract.Insertion = function(adjacency) {
+  this.adjacency = adjacency;
+}
+
+Abstract.Insertion.prototype = {
+  initialize: function(element, content) {
+    this.element = $(element);
+    this.content = content.stripScripts();
+
+    if (this.adjacency && this.element.insertAdjacentHTML) {
+      try {
+        this.element.insertAdjacentHTML(this.adjacency, this.content);
+      } catch (e) {
+        var tagName = this.element.tagName.toUpperCase();
+        if (['TBODY', 'TR'].include(tagName)) {
+          this.insertContent(this.contentFromAnonymousTable());
+        } else {
+          throw e;
+        }
+      }
+    } else {
+      this.range = this.element.ownerDocument.createRange();
+      if (this.initializeRange) this.initializeRange();
+      this.insertContent([this.range.createContextualFragment(this.content)]);
+    }
+
+    setTimeout(function() {content.evalScripts()}, 10);
+  },
+
+  contentFromAnonymousTable: function() {
+    var div = document.createElement('div');
+    div.innerHTML = '<table><tbody>' + this.content + '</tbody></table>';
+    return $A(div.childNodes[0].childNodes[0].childNodes);
+  }
+}
+
+var Insertion = new Object();
+
+Insertion.Before = Class.create();
+Insertion.Before.prototype = Object.extend(new Abstract.Insertion('beforeBegin'), {
+  initializeRange: function() {
+    this.range.setStartBefore(this.element);
+  },
+
+  insertContent: function(fragments) {
+    fragments.each((function(fragment) {
+      this.element.parentNode.insertBefore(fragment, this.element);
+    }).bind(this));
+  }
+});
+
+Insertion.Top = Class.create();
+Insertion.Top.prototype = Object.extend(new Abstract.Insertion('afterBegin'), {
+  initializeRange: function() {
+    this.range.selectNodeContents(this.element);
+    this.range.collapse(true);
+  },
+
+  insertContent: function(fragments) {
+    fragments.reverse(false).each((function(fragment) {
+      this.element.insertBefore(fragment, this.element.firstChild);
+    }).bind(this));
+  }
+});
+
+Insertion.Bottom = Class.create();
+Insertion.Bottom.prototype = Object.extend(new Abstract.Insertion('beforeEnd'), {
+  initializeRange: function() {
+    this.range.selectNodeContents(this.element);
+    this.range.collapse(this.element);
+  },
+
+  insertContent: function(fragments) {
+    fragments.each((function(fragment) {
+      this.element.appendChild(fragment);
+    }).bind(this));
+  }
+});
+
+Insertion.After = Class.create();
+Insertion.After.prototype = Object.extend(new Abstract.Insertion('afterEnd'), {
+  initializeRange: function() {
+    this.range.setStartAfter(this.element);
+  },
+
+  insertContent: function(fragments) {
+    fragments.each((function(fragment) {
+      this.element.parentNode.insertBefore(fragment,
+        this.element.nextSibling);
+    }).bind(this));
+  }
+});
+
+/*--------------------------------------------------------------------------*/
+
+Element.ClassNames = Class.create();
+Element.ClassNames.prototype = {
+  initialize: function(element) {
+    this.element = $(element);
+  },
+
+  _each: function(iterator) {
+    this.element.className.split(/\s+/).select(function(name) {
+      return name.length > 0;
+    })._each(iterator);
+  },
+
+  set: function(className) {
+    this.element.className = className;
+  },
+
+  add: function(classNameToAdd) {
+    if (this.include(classNameToAdd)) return;
+    this.set($A(this).concat(classNameToAdd).join(' '));
+  },
+
+  remove: function(classNameToRemove) {
+    if (!this.include(classNameToRemove)) return;
+    this.set($A(this).without(classNameToRemove).join(' '));
+  },
+
+  toString: function() {
+    return $A(this).join(' ');
+  }
+};
+
+Object.extend(Element.ClassNames.prototype, Enumerable);
+/* Portions of the Selector class are derived from Jack Slocum’s DomQuery,
+ * part of YUI-Ext version 0.40, distributed under the terms of an MIT-style
+ * license.  Please see http://www.yui-ext.com/ for more information. */
+
+var Selector = Class.create();
+
+Selector.prototype = {
+  initialize: function(expression) {
+    this.expression = expression.strip();
+    this.compileMatcher();
+  },
+
+  compileMatcher: function() {
+    // Selectors with namespaced attributes can't use the XPath version
+    if (Prototype.BrowserFeatures.XPath && !(/\[[\w-]*?:/).test(this.expression))
+      return this.compileXPathMatcher();
+
+    var e = this.expression, ps = Selector.patterns, h = Selector.handlers,
+        c = Selector.criteria, le, p, m;
+
+    if (Selector._cache[e]) {
+      this.matcher = Selector._cache[e]; return;
+    }
+    this.matcher = ["this.matcher = function(root) {",
+                    "var r = root, h = Selector.handlers, c = false, n;"];
+
+    while (e && le != e && (/\S/).test(e)) {
+      le = e;
+      for (var i in ps) {
+        p = ps[i];
+        if (m = e.match(p)) {
+          this.matcher.push(typeof c[i] == 'function' ? c[i](m) :
+             new Template(c[i]).evaluate(m));
+          e = e.replace(m[0], '');
+          break;
+        }
+      }
+    }
+
+    this.matcher.push("return h.unique(n);\n}");
+    eval(this.matcher.join('\n'));
+    Selector._cache[this.expression] = this.matcher;
+  },
+
+  compileXPathMatcher: function() {
+    var e = this.expression, ps = Selector.patterns,
+        x = Selector.xpath, le,  m;
+
+    if (Selector._cache[e]) {
+      this.xpath = Selector._cache[e]; return;
+    }
+
+    this.matcher = ['.//*'];
+    while (e && le != e && (/\S/).test(e)) {
+      le = e;
+      for (var i in ps) {
+        if (m = e.match(ps[i])) {
+          this.matcher.push(typeof x[i] == 'function' ? x[i](m) :
+            new Template(x[i]).evaluate(m));
+          e = e.replace(m[0], '');
+          break;
+        }
+      }
+    }
+
+    this.xpath = this.matcher.join('');
+    Selector._cache[this.expression] = this.xpath;
+  },
+
+  findElements: function(root) {
+    root = root || document;
+    if (this.xpath) return document._getElementsByXPath(this.xpath, root);
+    return this.matcher(root);
+  },
+
+  match: function(element) {
+    return this.findElements(document).include(element);
+  },
+
+  toString: function() {
+    return this.expression;
+  },
+
+  inspect: function() {
+    return "#<Selector:" + this.expression.inspect() + ">";
+  }
+};
+
+Object.extend(Selector, {
+  _cache: {},
+
+  xpath: {
+    descendant:   "//*",
+    child:        "/*",
+    adjacent:     "/following-sibling::*[1]",
+    laterSibling: '/following-sibling::*',
+    tagName:      function(m) {
+      if (m[1] == '*') return '';
+      return "[local-name()='" + m[1].toLowerCase() +
+             "' or local-name()='" + m[1].toUpperCase() + "']";
+    },
+    className:    "[contains(concat(' ', @class, ' '), ' #{1} ')]",
+    id:           "[@id='#{1}']",
+    attrPresence: "[@#{1}]",
+    attr: function(m) {
+      m[3] = m[5] || m[6];
+      return new Template(Selector.xpath.operators[m[2]]).evaluate(m);
+    },
+    pseudo: function(m) {
+      var h = Selector.xpath.pseudos[m[1]];
+      if (!h) return '';
+      if (typeof h === 'function') return h(m);
+      return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m);
+    },
+    operators: {
+      '=':  "[@#{1}='#{3}']",
+      '!=': "[@#{1}!='#{3}']",
+      '^=': "[starts-with(@#{1}, '#{3}')]",
+      '$=': "[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']",
+      '*=': "[contains(@#{1}, '#{3}')]",
+      '~=': "[contains(concat(' ', @#{1}, ' '), ' #{3} ')]",
+      '|=': "[contains(concat('-', @#{1}, '-'), '-#{3}-')]"
+    },
+    pseudos: {
+      'first-child': '[not(preceding-sibling::*)]',
+      'last-child':  '[not(following-sibling::*)]',
+      'only-child':  '[not(preceding-sibling::* or following-sibling::*)]',
+      'empty':       "[count(*) = 0 and (count(text()) = 0 or translate(text(), ' \t\r\n', '') = '')]",
+      'checked':     "[@checked]",
+      'disabled':    "[@disabled]",
+      'enabled':     "[not(@disabled)]",
+      'not': function(m) {
+        var e = m[6], p = Selector.patterns,
+            x = Selector.xpath, le, m, v;
+
+        var exclusion = [];
+        while (e && le != e && (/\S/).test(e)) {
+          le = e;
+          for (var i in p) {
+            if (m = e.match(p[i])) {
+              v = typeof x[i] == 'function' ? x[i](m) : new Template(x[i]).evaluate(m);
+              exclusion.push("(" + v.substring(1, v.length - 1) + ")");
+              e = e.replace(m[0], '');
+              break;
+            }
+          }
+        }
+        return "[not(" + exclusion.join(" and ") + ")]";
+      },
+      'nth-child':      function(m) {
+        return Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ", m);
+      },
+      'nth-last-child': function(m) {
+        return Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ", m);
+      },
+      'nth-of-type':    function(m) {
+        return Selector.xpath.pseudos.nth("position() ", m);
+      },
+      'nth-last-of-type': function(m) {
+        return Selector.xpath.pseudos.nth("(last() + 1 - position()) ", m);
+      },
+      'first-of-type':  function(m) {
+        m[6] = "1"; return Selector.xpath.pseudos['nth-of-type'](m);
+      },
+      'last-of-type':   function(m) {
+        m[6] = "1"; return Selector.xpath.pseudos['nth-last-of-type'](m);
+      },
+      'only-of-type':   function(m) {
+        var p = Selector.xpath.pseudos; return p['first-of-type'](m) + p['last-of-type'](m);
+      },
+      nth: function(fragment, m) {
+        var mm, formula = m[6], predicate;
+        if (formula == 'even') formula = '2n+0';
+        if (formula == 'odd')  formula = '2n+1';
+        if (mm = formula.match(/^(\d+)$/)) // digit only
+          return '[' + fragment + "= " + mm[1] + ']';
+        if (mm = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b
+          if (mm[1] == "-") mm[1] = -1;
+          var a = mm[1] ? Number(mm[1]) : 1;
+          var b = mm[2] ? Number(mm[2]) : 0;
+          predicate = "[((#{fragment} - #{b}) mod #{a} = 0) and " +
+          "((#{fragment} - #{b}) div #{a} >= 0)]";
+          return new Template(predicate).evaluate({
+            fragment: fragment, a: a, b: b });
+        }
+      }
+    }
+  },
+
+  criteria: {
+    tagName:      'n = h.tagName(n, r, "#{1}", c);   c = false;',
+    className:    'n = h.className(n, r, "#{1}", c); c = false;',
+    id:           'n = h.id(n, r, "#{1}", c);        c = false;',
+    attrPresence: 'n = h.attrPresence(n, r, "#{1}"); c = false;',
+    attr: function(m) {
+      m[3] = (m[5] || m[6]);
+      return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}"); c = false;').evaluate(m);
+    },
+    pseudo:       function(m) {
+      if (m[6]) m[6] = m[6].replace(/"/g, '\\"');
+      return new Template('n = h.pseudo(n, "#{1}", "#{6}", r, c); c = false;').evaluate(m);
+    },
+    descendant:   'c = "descendant";',
+    child:        'c = "child";',
+    adjacent:     'c = "adjacent";',
+    laterSibling: 'c = "laterSibling";'
+  },
+
+  patterns: {
+    // combinators must be listed first
+    // (and descendant needs to be last combinator)
+    laterSibling: /^\s*~\s*/,
+    child:        /^\s*>\s*/,
+    adjacent:     /^\s*\+\s*/,
+    descendant:   /^\s/,
+
+    // selectors follow
+    tagName:      /^\s*(\*|[\w\-]+)(\b|$)?/,
+    id:           /^#([\w\-\*]+)(\b|$)/,
+    className:    /^\.([\w\-\*]+)(\b|$)/,
+    pseudo:       
/^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|\s|(?=:))/,
+    attrPresence: /^\[([\w]+)\]/,
+    attr:         /\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\]]*?)\4|([^'"][^\]]*?)))?\]/
+  },
+
+  handlers: {
+    // UTILITY FUNCTIONS
+    // joins two collections
+    concat: function(a, b) {
+      for (var i = 0, node; node = b[i]; i++)
+        a.push(node);
+      return a;
+    },
+
+    // marks an array of nodes for counting
+    mark: function(nodes) {
+      for (var i = 0, node; node = nodes[i]; i++)
+        node._counted = true;
+      return nodes;
+    },
+
+    unmark: function(nodes) {
+      for (var i = 0, node; node = nodes[i]; i++)
+        node._counted = undefined;
+      return nodes;
+    },
+
+    // mark each child node with its position (for nth calls)
+    // "ofType" flag indicates whether we're indexing for nth-of-type
+    // rather than nth-child
+    index: function(parentNode, reverse, ofType) {
+      parentNode._counted = true;
+      if (reverse) {
+        for (var nodes = parentNode.childNodes, i = nodes.length - 1, j = 1; i >= 0; i--) {
+          node = nodes[i];
+          if (node.nodeType == 1 && (!ofType || node._counted)) node.nodeIndex = j++;
+        }
+      } else {
+        for (var i = 0, j = 1, nodes = parentNode.childNodes; node = nodes[i]; i++)
+          if (node.nodeType == 1 && (!ofType || node._counted)) node.nodeIndex = j++;
+      }
+    },
+
+    // filters out duplicates and extends all nodes
+    unique: function(nodes) {
+      if (nodes.length == 0) return nodes;
+      var results = [], n;
+      for (var i = 0, l = nodes.length; i < l; i++)
+        if (!(n = nodes[i])._counted) {
+          n._counted = true;
+          results.push(Element.extend(n));
+        }
+      return Selector.handlers.unmark(results);
+    },
+
+    // COMBINATOR FUNCTIONS
+    descendant: function(nodes) {
+      var h = Selector.handlers;
+      for (var i = 0, results = [], node; node = nodes[i]; i++)
+        h.concat(results, node.getElementsByTagName('*'));
+      return results;
+    },
+
+    child: function(nodes) {
+      var h = Selector.handlers;
+      for (var i = 0, results = [], node; node = nodes[i]; i++) {
+        for (var j = 0, children = [], child; child = node.childNodes[j]; j++)
+          if (child.nodeType == 1 && child.tagName != '!') results.push(child);
+      }
+      return results;
+    },
+
+    adjacent: function(nodes) {
+      for (var i = 0, results = [], node; node = nodes[i]; i++) {
+        var next = this.nextElementSibling(node);
+        if (next) results.push(next);
+      }
+      return results;
+    },
+
+    laterSibling: function(nodes) {
+      var h = Selector.handlers;
+      for (var i = 0, results = [], node; node = nodes[i]; i++)
+        h.concat(results, Element.nextSiblings(node));
+      return results;
+    },
+
+    nextElementSibling: function(node) {
+      while (node = node.nextSibling)
+             if (node.nodeType == 1) return node;
+      return null;
+    },
+
+    previousElementSibling: function(node) {
+      while (node = node.previousSibling)
+        if (node.nodeType == 1) return node;
+      return null;
+    },
+
+    // TOKEN FUNCTIONS
+    tagName: function(nodes, root, tagName, combinator) {
+      tagName = tagName.toUpperCase();
+      var results = [], h = Selector.handlers;
+      if (nodes) {
+        if (combinator) {
+          // fastlane for ordinary descendant combinators
+          if (combinator == "descendant") {
+            for (var i = 0, node; node = nodes[i]; i++)
+              h.concat(results, node.getElementsByTagName(tagName));
+            return results;
+          } else nodes = this[combinator](nodes);
+          if (tagName == "*") return nodes;
+        }
+        for (var i = 0, node; node = nodes[i]; i++)
+          if (node.tagName.toUpperCase() == tagName) results.push(node);
+        return results;
+      } else return root.getElementsByTagName(tagName);
+    },
+
+    id: function(nodes, root, id, combinator) {
+      var targetNode = $(id), h = Selector.handlers;
+      if (!nodes && root == document) return targetNode ? [targetNode] : [];
+      if (nodes) {
+        if (combinator) {
+          if (combinator == 'child') {
+            for (var i = 0, node; node = nodes[i]; i++)
+              if (targetNode.parentNode == node) return [targetNode];
+          } else if (combinator == 'descendant') {
+            for (var i = 0, node; node = nodes[i]; i++)
+              if (Element.descendantOf(targetNode, node)) return [targetNode];
+          } else if (combinator == 'adjacent') {
+            for (var i = 0, node; node = nodes[i]; i++)
+              if (Selector.handlers.previousElementSibling(targetNode) == node)
+                return [targetNode];
+          } else nodes = h[combinator](nodes);
+        }
+        for (var i = 0, node; node = nodes[i]; i++)
+          if (node == targetNode) return [targetNode];
+        return [];
+      }
+      return (targetNode && Element.descendantOf(targetNode, root)) ? [targetNode] : [];
+    },
+
+    className: function(nodes, root, className, combinator) {
+      if (nodes && combinator) nodes = this[combinator](nodes);
+      return Selector.handlers.byClassName(nodes, root, className);
+    },
+
+    byClassName: function(nodes, root, className) {
+      if (!nodes) nodes = Selector.handlers.descendant([root]);
+      var needle = ' ' + className + ' ';
+      for (var i = 0, results = [], node, nodeClassName; node = nodes[i]; i++) {
+        nodeClassName = node.className;
+        if (nodeClassName.length == 0) continue;
+        if (nodeClassName == className || (' ' + nodeClassName + ' ').include(needle))
+          results.push(node);
+      }
+      return results;
+    },
+
+    attrPresence: function(nodes, root, attr) {
+      var results = [];
+      for (var i = 0, node; node = nodes[i]; i++)
+        if (Element.hasAttribute(node, attr)) results.push(node);
+      return results;
+    },
+
+    attr: function(nodes, root, attr, value, operator) {
+      if (!nodes) nodes = root.getElementsByTagName("*");
+      var handler = Selector.operators[operator], results = [];
+      for (var i = 0, node; node = nodes[i]; i++) {
+        var nodeValue = Element.readAttribute(node, attr);
+        if (nodeValue === null) continue;
+        if (handler(nodeValue, value)) results.push(node);
+      }
+      return results;
+    },
+
+    pseudo: function(nodes, name, value, root, combinator) {
+      if (nodes && combinator) nodes = this[combinator](nodes);
+      if (!nodes) nodes = root.getElementsByTagName("*");
+      return Selector.pseudos[name](nodes, value, root);
+    }
+  },
+
+  pseudos: {
+    'first-child': function(nodes, value, root) {
+      for (var i = 0, results = [], node; node = nodes[i]; i++) {
+        if (Selector.handlers.previousElementSibling(node)) continue;
+          results.push(node);
+      }
+      return results;
+    },
+    'last-child': function(nodes, value, root) {
+      for (var i = 0, results = [], node; node = nodes[i]; i++) {
+        if (Selector.handlers.nextElementSibling(node)) continue;
+          results.push(node);
+      }
+      return results;
+    },
+    'only-child': function(nodes, value, root) {
+      var h = Selector.handlers;
+      for (var i = 0, results = [], node; node = nodes[i]; i++)
+        if (!h.previousElementSibling(node) && !h.nextElementSibling(node))
+          results.push(node);
+      return results;
+    },
+    'nth-child':        function(nodes, formula, root) {
+      return Selector.pseudos.nth(nodes, formula, root);
+    },
+    'nth-last-child':   function(nodes, formula, root) {
+      return Selector.pseudos.nth(nodes, formula, root, true);
+    },
+    'nth-of-type':      function(nodes, formula, root) {
+      return Selector.pseudos.nth(nodes, formula, root, false, true);
+    },
+    'nth-last-of-type': function(nodes, formula, root) {
+      return Selector.pseudos.nth(nodes, formula, root, true, true);
+    },
+    'first-of-type':    function(nodes, formula, root) {
+      return Selector.pseudos.nth(nodes, "1", root, false, true);
+    },
+    'last-of-type':     function(nodes, formula, root) {
+      return Selector.pseudos.nth(nodes, "1", root, true, true);
+    },
+    'only-of-type':     function(nodes, formula, root) {
+      var p = Selector.pseudos;
+      return p['last-of-type'](p['first-of-type'](nodes, formula, root), formula, root);
+    },
+
+    // handles the an+b logic
+    getIndices: function(a, b, total) {
+      if (a == 0) return b > 0 ? [b] : [];
+      return $R(1, total).inject([], function(memo, i) {
+        if (0 == (i - b) % a && (i - b) / a >= 0) memo.push(i);
+        return memo;
+      });
+    },
+
+    // handles nth(-last)-child, nth(-last)-of-type, and (first|last)-of-type
+    nth: function(nodes, formula, root, reverse, ofType) {
+      if (nodes.length == 0) return [];
+      if (formula == 'even') formula = '2n+0';
+      if (formula == 'odd')  formula = '2n+1';
+      var h = Selector.handlers, results = [], indexed = [], m;
+      h.mark(nodes);
+      for (var i = 0, node; node = nodes[i]; i++) {
+        if (!node.parentNode._counted) {
+          h.index(node.parentNode, reverse, ofType);
+          indexed.push(node.parentNode);
+        }
+      }
+      if (formula.match(/^\d+$/)) { // just a number
+        formula = Number(formula);
+        for (var i = 0, node; node = nodes[i]; i++)
+          if (node.nodeIndex == formula) results.push(node);
+      } else if (m = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b
+        if (m[1] == "-") m[1] = -1;
+        var a = m[1] ? Number(m[1]) : 1;
+        var b = m[2] ? Number(m[2]) : 0;
+        var indices = Selector.pseudos.getIndices(a, b, nodes.length);
+        for (var i = 0, node, l = indices.length; node = nodes[i]; i++) {
+          for (var j = 0; j < l; j++)
+            if (node.nodeIndex == indices[j]) results.push(node);
+        }
+      }
+      h.unmark(nodes);
+      h.unmark(indexed);
+      return results;
+    },
+
+    'empty': function(nodes, value, root) {
+      for (var i = 0, results = [], node; node = nodes[i]; i++) {
+        // IE treats comments as element nodes
+        if (node.tagName == '!' || (node.firstChild && !node.innerHTML.match(/^\s*$/))) continue;
+        results.push(node);
+      }
+      return results;
+    },
+
+    'not': function(nodes, selector, root) {
+      var h = Selector.handlers, selectorType, m;
+      var exclusions = new Selector(selector).findElements(root);
+      h.mark(exclusions);
+      for (var i = 0, results = [], node; node = nodes[i]; i++)
+        if (!node._counted) results.push(node);
+      h.unmark(exclusions);
+      return results;
+    },
+
+    'enabled': function(nodes, value, root) {
+      for (var i = 0, results = [], node; node = nodes[i]; i++)
+        if (!node.disabled) results.push(node);
+      return results;
+    },
+
+    'disabled': function(nodes, value, root) {
+      for (var i = 0, results = [], node; node = nodes[i]; i++)
+        if (node.disabled) results.push(node);
+      return results;
+    },
+
+    'checked': function(nodes, value, root) {
+      for (var i = 0, results = [], node; node = nodes[i]; i++)
+        if (node.checked) results.push(node);
+      return results;
+    }
+  },
+
+  operators: {
+    '=':  function(nv, v) { return nv == v; },
+    '!=': function(nv, v) { return nv != v; },
+    '^=': function(nv, v) { return nv.startsWith(v); },
+    '$=': function(nv, v) { return nv.endsWith(v); },
+    '*=': function(nv, v) { return nv.include(v); },
+    '~=': function(nv, v) { return (' ' + nv + ' ').include(' ' + v + ' '); },
+    '|=': function(nv, v) { return ('-' + nv.toUpperCase() + '-').include('-' + v.toUpperCase() + '-'); }
+  },
+
+  matchElements: function(elements, expression) {
+    var matches = new Selector(expression).findElements(), h = Selector.handlers;
+    h.mark(matches);
+    for (var i = 0, results = [], element; element = elements[i]; i++)
+      if (element._counted) results.push(element);
+    h.unmark(matches);
+    return results;
+  },
+
+  findElement: function(elements, expression, index) {
+    if (typeof expression == 'number') {
+      index = expression; expression = false;
+    }
+    return Selector.matchElements(elements, expression || '*')[index || 0];
+  },
+
+  findChildElements: function(element, expressions) {
+    var exprs = expressions.join(','), expressions = [];
+    exprs.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) {
+      expressions.push(m[1].strip());
+    });
+    var results = [], h = Selector.handlers;
+    for (var i = 0, l = expressions.length, selector; i < l; i++) {
+      selector = new Selector(expressions[i].strip());
+      h.concat(results, selector.findElements(element));
+    }
+    return (l > 1) ? h.unique(results) : results;
+  }
+});
+
+function $$() {
+  return Selector.findChildElements(document, $A(arguments));
+}
+var Form = {
+  reset: function(form) {
+    $(form).reset();
+    return form;
+  },
+
+  serializeElements: function(elements, getHash) {
+    var data = elements.inject({}, function(result, element) {
+      if (!element.disabled && element.name) {
+        var key = element.name, value = $(element).getValue();
+        if (value != null) {
+               if (key in result) {
+            if (result[key].constructor != Array) result[key] = [result[key]];
+            result[key].push(value);
+          }
+          else result[key] = value;
+        }
+      }
+      return result;
+    });
+
+    return getHash ? data : Hash.toQueryString(data);
+  }
+};
+
+Form.Methods = {
+  serialize: function(form, getHash) {
+    return Form.serializeElements(Form.getElements(form), getHash);
+  },
+
+  getElements: function(form) {
+    return $A($(form).getElementsByTagName('*')).inject([],
+      function(elements, child) {
+        if (Form.Element.Serializers[child.tagName.toLowerCase()])
+          elements.push(Element.extend(child));
+        return elements;
+      }
+    );
+  },
+
+  getInputs: function(form, typeName, name) {
+    form = $(form);
+    var inputs = form.getElementsByTagName('input');
+
+    if (!typeName && !name) return $A(inputs).map(Element.extend);
+
+    for (var i = 0, matchingInputs = [], length = inputs.length; i < length; i++) {
+      var input = inputs[i];
+      if ((typeName && input.type != typeName) || (name && input.name != name))
+        continue;
+      matchingInputs.push(Element.extend(input));
+    }
+
+    return matchingInputs;
+  },
+
+  disable: function(form) {
+    form = $(form);
+    Form.getElements(form).invoke('disable');
+    return form;
+  },
+
+  enable: function(form) {
+    form = $(form);
+    Form.getElements(form).invoke('enable');
+    return form;
+  },
+
+  findFirstElement: function(form) {
+    return $(form).getElements().find(function(element) {
+      return element.type != 'hidden' && !element.disabled &&
+        ['input', 'select', 'textarea'].include(element.tagName.toLowerCase());
+    });
+  },
+
+  focusFirstElement: function(form) {
+    form = $(form);
+    form.findFirstElement().activate();
+    return form;
+  },
+
+  request: function(form, options) {
+    form = $(form), options = Object.clone(options || {});
+
+    var params = options.parameters;
+    options.parameters = form.serialize(true);
+
+    if (params) {
+      if (typeof params == 'string') params = params.toQueryParams();
+      Object.extend(options.parameters, params);
+    }
+
+    if (form.hasAttribute('method') && !options.method)
+      options.method = form.method;
+
+    return new Ajax.Request(form.readAttribute('action'), options);
+  }
+}
+
+/*--------------------------------------------------------------------------*/
+
+Form.Element = {
+  focus: function(element) {
+    $(element).focus();
+    return element;
+  },
+
+  select: function(element) {
+    $(element).select();
+    return element;
+  }
+}
+
+Form.Element.Methods = {
+  serialize: function(element) {
+    element = $(element);
+    if (!element.disabled && element.name) {
+      var value = element.getValue();
+      if (value != undefined) {
+        var pair = {};
+        pair[element.name] = value;
+        return Hash.toQueryString(pair);
+      }
+    }
+    return '';
+  },
+
+  getValue: function(element) {
+    element = $(element);
+    var method = element.tagName.toLowerCase();
+    return Form.Element.Serializers[method](element);
+  },
+
+  clear: function(element) {
+    $(element).value = '';
+    return element;
+  },
+
+  present: function(element) {
+    return $(element).value != '';
+  },
+
+  activate: function(element) {
+    element = $(element);
+    try {
+      element.focus();
+      if (element.select && (element.tagName.toLowerCase() != 'input' ||
+        !['button', 'reset', 'submit'].include(element.type)))
+        element.select();
+    } catch (e) {}
+    return element;
+  },
+
+  disable: function(element) {
+    element = $(element);
+    element.blur();
+    element.disabled = true;
+    return element;
+  },
+
+  enable: function(element) {
+    element = $(element);
+    element.disabled = false;
+    return element;
+  }
+}
+
+/*--------------------------------------------------------------------------*/
+
+var Field = Form.Element;
+var $F = Form.Element.Methods.getValue;
+
+/*--------------------------------------------------------------------------*/
+
+Form.Element.Serializers = {
+  input: function(element) {
+    switch (element.type.toLowerCase()) {
+      case 'checkbox':
+      case 'radio':
+        return Form.Element.Serializers.inputSelector(element);
+      default:
+        return Form.Element.Serializers.textarea(element);
+    }
+  },
+
+  inputSelector: function(element) {
+    return element.checked ? element.value : null;
+  },
+
+  textarea: function(element) {
+    return element.value;
+  },
+
+  select: function(element) {
+    return this[element.type == 'select-one' ?
+      'selectOne' : 'selectMany'](element);
+  },
+
+  selectOne: function(element) {
+    var index = element.selectedIndex;
+    return index >= 0 ? this.optionValue(element.options[index]) : null;
+  },
+
+  selectMany: function(element) {
+    var values, length = element.length;
+    if (!length) return null;
+
+    for (var i = 0, values = []; i < length; i++) {
+      var opt = element.options[i];
+      if (opt.selected) values.push(this.optionValue(opt));
+    }
+    return values;
+  },
+
+  optionValue: function(opt) {
+    // extend element because hasAttribute may not be native
+    return Element.extend(opt).hasAttribute('value') ? opt.value : opt.text;
+  }
+}
+
+/*--------------------------------------------------------------------------*/
+
+Abstract.TimedObserver = function() {}
+Abstract.TimedObserver.prototype = {
+  initialize: function(element, frequency, callback) {
+    this.frequency = frequency;
+    this.element   = $(element);
+    this.callback  = callback;
+
+    this.lastValue = this.getValue();
+    this.registerCallback();
+  },
+
+  registerCallback: function() {
+    setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);
+  },
+
+  onTimerEvent: function() {
+    var value = this.getValue();
+    var changed = ('string' == typeof this.lastValue && 'string' == typeof value
+      ? this.lastValue != value : String(this.lastValue) != String(value));
+    if (changed) {
+      this.callback(this.element, value);
+      this.lastValue = value;
+    }
+  }
+}
+
+Form.Element.Observer = Class.create();
+Form.Element.Observer.prototype = Object.extend(new Abstract.TimedObserver(), {
+  getValue: function() {
+    return Form.Element.getValue(this.element);
+  }
+});
+
+Form.Observer = Class.create();
+Form.Observer.prototype = Object.extend(new Abstract.TimedObserver(), {
+  getValue: function() {
+    return Form.serialize(this.element);
+  }
+});
+
+/*--------------------------------------------------------------------------*/
+
+Abstract.EventObserver = function() {}
+Abstract.EventObserver.prototype = {
+  initialize: function(element, callback) {
+    this.element  = $(element);
+    this.callback = callback;
+
+    this.lastValue = this.getValue();
+    if (this.element.tagName.toLowerCase() == 'form')
+      this.registerFormCallbacks();
+    else
+      this.registerCallback(this.element);
+  },
+
+  onElementEvent: function() {
+    var value = this.getValue();
+    if (this.lastValue != value) {
+      this.callback(this.element, value);
+      this.lastValue = value;
+    }
+  },
+
+  registerFormCallbacks: function() {
+    Form.getElements(this.element).each(this.registerCallback.bind(this));
+  },
+
+  registerCallback: function(element) {
+    if (element.type) {
+      switch (element.type.toLowerCase()) {
+        case 'checkbox':
+        case 'radio':
+          Event.observe(element, 'click', this.onElementEvent.bind(this));
+          break;
+        default:
+          Event.observe(element, 'change', this.onElementEvent.bind(this));
+          break;
+      }
+    }
+  }
+}
+
+Form.Element.EventObserver = Class.create();
+Form.Element.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), {
+  getValue: function() {
+    return Form.Element.getValue(this.element);
+  }
+});
+
+Form.EventObserver = Class.create();
+Form.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), {
+  getValue: function() {
+    return Form.serialize(this.element);
+  }
+});
+if (!window.Event) {
+  var Event = new Object();
+}
+
+Object.extend(Event, {
+  KEY_BACKSPACE: 8,
+  KEY_TAB:       9,
+  KEY_RETURN:   13,
+  KEY_ESC:      27,
+  KEY_LEFT:     37,
+  KEY_UP:       38,
+  KEY_RIGHT:    39,
+  KEY_DOWN:     40,
+  KEY_DELETE:   46,
+  KEY_HOME:     36,
+  KEY_END:      35,
+  KEY_PAGEUP:   33,
+  KEY_PAGEDOWN: 34,
+
+  element: function(event) {
+    return $(event.target || event.srcElement);
+  },
+
+  isLeftClick: function(event) {
+    return (((event.which) && (event.which == 1)) ||
+            ((event.button) && (event.button == 1)));
+  },
+
+  pointerX: function(event) {
+    return event.pageX || (event.clientX +
+      (document.documentElement.scrollLeft || document.body.scrollLeft));
+  },
+
+  pointerY: function(event) {
+    return event.pageY || (event.clientY +
+      (document.documentElement.scrollTop || document.body.scrollTop));
+  },
+
+  stop: function(event) {
+    if (event.preventDefault) {
+      event.preventDefault();
+      event.stopPropagation();
+    } else {
+      event.returnValue = false;
+      event.cancelBubble = true;
+    }
+  },
+
+  // find the first node with the given tagName, starting from the
+  // node the event was triggered on; traverses the DOM upwards
+  findElement: function(event, tagName) {
+    var element = Event.element(event);
+    while (element.parentNode && (!element.tagName ||
+        (element.tagName.toUpperCase() != tagName.toUpperCase())))
+      element = element.parentNode;
+    return element;
+  },
+
+  observers: false,
+
+  _observeAndCache: function(element, name, observer, useCapture) {
+    if (!this.observers) this.observers = [];
+    if (element.addEventListener) {
+      this.observers.push([element, name, observer, useCapture]);
+      element.addEventListener(name, observer, useCapture);
+    } else if (element.attachEvent) {
+      this.observers.push([element, name, observer, useCapture]);
+      element.attachEvent('on' + name, observer);
+    }
+  },
+
+  unloadCache: function() {
+    if (!Event.observers) return;
+    for (var i = 0, length = Event.observers.length; i < length; i++) {
+      Event.stopObserving.apply(this, Event.observers[i]);
+      Event.observers[i][0] = null;
+    }
+    Event.observers = false;
+  },
+
+  observe: function(element, name, observer, useCapture) {
+    element = $(element);
+    useCapture = useCapture || false;
+
+    if (name == 'keypress' &&
+      (Prototype.Browser.WebKit || element.attachEvent))
+      name = 'keydown';
+
+    Event._observeAndCache(element, name, observer, useCapture);
+  },
+
+  stopObserving: function(element, name, observer, useCapture) {
+    element = $(element);
+    useCapture = useCapture || false;
+
+    if (name == 'keypress' &&
+        (Prototype.Browser.WebKit || element.attachEvent))
+      name = 'keydown';
+
+    if (element.removeEventListener) {
+      element.removeEventListener(name, observer, useCapture);
+    } else if (element.detachEvent) {
+      try {
+        element.detachEvent('on' + name, observer);
+      } catch (e) {}
+    }
+  }
+});
+
+/* prevent memory leaks in IE */
+if (Prototype.Browser.IE)
+  Event.observe(window, 'unload', Event.unloadCache, false);
+var Position = {
+  // set to true if needed, warning: firefox performance problems
+  // NOT neeeded for page scrolling, only if draggable contained in
+  // scrollable elements
+  includeScrollOffsets: false,
+
+  // must be called before calling withinIncludingScrolloffset, every time the
+  // page is scrolled
+  prepare: function() {
+    this.deltaX =  window.pageXOffset
+                || document.documentElement.scrollLeft
+                || document.body.scrollLeft
+                || 0;
+    this.deltaY =  window.pageYOffset
+                || document.documentElement.scrollTop
+                || document.body.scrollTop
+                || 0;
+  },
+
+  realOffset: function(element) {
+    var valueT = 0, valueL = 0;
+    do {
+      valueT += element.scrollTop  || 0;
+      valueL += element.scrollLeft || 0;
+      element = element.parentNode;
+    } while (element);
+    return [valueL, valueT];
+  },
+
+  cumulativeOffset: function(element) {
+    var valueT = 0, valueL = 0;
+    do {
+      valueT += element.offsetTop  || 0;
+      valueL += element.offsetLeft || 0;
+      element = element.offsetParent;
+    } while (element);
+    return [valueL, valueT];
+  },
+
+  positionedOffset: function(element) {
+    var valueT = 0, valueL = 0;
+    do {
+      valueT += element.offsetTop  || 0;
+      valueL += element.offsetLeft || 0;
+      element = element.offsetParent;
+      if (element) {
+        if(element.tagName=='BODY') break;
+        var p = Element.getStyle(element, 'position');
+        if (p == 'relative' || p == 'absolute') break;
+      }
+    } while (element);
+    return [valueL, valueT];
+  },
+
+  offsetParent: function(element) {
+    if (element.offsetParent) return element.offsetParent;
+    if (element == document.body) return element;
+
+    while ((element = element.parentNode) && element != document.body)
+      if (Element.getStyle(element, 'position') != 'static')
+        return element;
+
+    return document.body;
+  },
+
+  // caches x/y coordinate pair to use with overlap
+  within: function(element, x, y) {
+    if (this.includeScrollOffsets)
+      return this.withinIncludingScrolloffsets(element, x, y);
+    this.xcomp = x;
+    this.ycomp = y;
+    this.offset = this.cumulativeOffset(element);
+
+    return (y >= this.offset[1] &&
+            y <  this.offset[1] + element.offsetHeight &&
+            x >= this.offset[0] &&
+            x <  this.offset[0] + element.offsetWidth);
+  },
+
+  withinIncludingScrolloffsets: function(element, x, y) {
+    var offsetcache = this.realOffset(element);
+
+    this.xcomp = x + offsetcache[0] - this.deltaX;
+    this.ycomp = y + offsetcache[1] - this.deltaY;
+    this.offset = this.cumulativeOffset(element);
+
+    return (this.ycomp >= this.offset[1] &&
+            this.ycomp <  this.offset[1] + element.offsetHeight &&
+            this.xcomp >= this.offset[0] &&
+            this.xcomp <  this.offset[0] + element.offsetWidth);
+  },
+
+  // within must be called directly before
+  overlap: function(mode, element) {
+    if (!mode) return 0;
+    if (mode == 'vertical')
+      return ((this.offset[1] + element.offsetHeight) - this.ycomp) /
+        element.offsetHeight;
+    if (mode == 'horizontal')
+      return ((this.offset[0] + element.offsetWidth) - this.xcomp) /
+        element.offsetWidth;
+  },
+
+  page: function(forElement) {
+    var valueT = 0, valueL = 0;
+
+    var element = forElement;
+    do {
+      valueT += element.offsetTop  || 0;
+      valueL += element.offsetLeft || 0;
+
+      // Safari fix
+      if (element.offsetParent == document.body)
+        if (Element.getStyle(element,'position')=='absolute') break;
+
+    } while (element = element.offsetParent);
+
+    element = forElement;
+    do {
+      if (!window.opera || element.tagName=='BODY') {
+        valueT -= element.scrollTop  || 0;
+        valueL -= element.scrollLeft || 0;
+      }
+    } while (element = element.parentNode);
+
+    return [valueL, valueT];
+  },
+
+  clone: function(source, target) {
+    var options = Object.extend({
+      setLeft:    true,
+      setTop:     true,
+      setWidth:   true,
+      setHeight:  true,
+      offsetTop:  0,
+      offsetLeft: 0
+    }, arguments[2] || {})
+
+    // find page position of source
+    source = $(source);
+    var p = Position.page(source);
+
+    // find coordinate system to use
+    target = $(target);
+    var delta = [0, 0];
+    var parent = null;
+    // delta [0,0] will do fine with position: fixed elements,
+    // position:absolute needs offsetParent deltas
+    if (Element.getStyle(target,'position') == 'absolute') {
+      parent = Position.offsetParent(target);
+      delta = Position.page(parent);
+    }
+
+    // correct by body offsets (fixes Safari)
+    if (parent == document.body) {
+      delta[0] -= document.body.offsetLeft;
+      delta[1] -= document.body.offsetTop;
+    }
+
+    // set position
+    if(options.setLeft)   target.style.left  = (p[0] - delta[0] + options.offsetLeft) + 'px';
+    if(options.setTop)    target.style.top   = (p[1] - delta[1] + options.offsetTop) + 'px';
+    if(options.setWidth)  target.style.width = source.offsetWidth + 'px';
+    if(options.setHeight) target.style.height = source.offsetHeight + 'px';
+  },
+
+  absolutize: function(element) {
+    element = $(element);
+    if (element.style.position == 'absolute') return;
+    Position.prepare();
+
+    var offsets = Position.positionedOffset(element);
+    var top     = offsets[1];
+    var left    = offsets[0];
+    var width   = element.clientWidth;
+    var height  = element.clientHeight;
+
+    element._originalLeft   = left - parseFloat(element.style.left  || 0);
+    element._originalTop    = top  - parseFloat(element.style.top || 0);
+    element._originalWidth  = element.style.width;
+    element._originalHeight = element.style.height;
+
+    element.style.position = 'absolute';
+    element.style.top    = top + 'px';
+    element.style.left   = left + 'px';
+    element.style.width  = width + 'px';
+    element.style.height = height + 'px';
+  },
+
+  relativize: function(element) {
+    element = $(element);
+    if (element.style.position == 'relative') return;
+    Position.prepare();
+
+    element.style.position = 'relative';
+    var top  = parseFloat(element.style.top  || 0) - (element._originalTop || 0);
+    var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0);
+
+    element.style.top    = top + 'px';
+    element.style.left   = left + 'px';
+    element.style.height = element._originalHeight;
+    element.style.width  = element._originalWidth;
+  }
+}
+
+// Safari returns margins on body which is incorrect if the child is absolutely
+// positioned.  For performance reasons, redefine Position.cumulativeOffset for
+// KHTML/WebKit only.
+if (Prototype.Browser.WebKit) {
+  Position.cumulativeOffset = function(element) {
+    var valueT = 0, valueL = 0;
+    do {
+      valueT += element.offsetTop  || 0;
+      valueL += element.offsetLeft || 0;
+      if (element.offsetParent == document.body)
+        if (Element.getStyle(element, 'position') == 'absolute') break;
+
+      element = element.offsetParent;
+    } while (element);
+
+    return [valueL, valueT];
+  }
+}
+
+Element.addMethods();
\ No newline at end of file
diff --git "a/site-antigo/extra/PublicacaoAcademica/ArtigosAcad\352micod.png" 
"b/site-antigo/extra/PublicacaoAcademica/ArtigosAcad\352micod.png"
new file mode 100644
index 0000000..b4c8710
Binary files /dev/null and "b/site-antigo/extra/PublicacaoAcademica/ArtigosAcad\352micod.png" differ
diff --git a/site-antigo/extra/SuporteComunitario/gnome-help-community.png 
b/site-antigo/extra/SuporteComunitario/gnome-help-community.png
new file mode 100644
index 0000000..2e8defe
Binary files /dev/null and b/site-antigo/extra/SuporteComunitario/gnome-help-community.png differ
diff --git a/site-antigo/extra/TraducaoPrevia/gnome-br-2008-04-23-20h23.log.gz 
b/site-antigo/extra/TraducaoPrevia/gnome-br-2008-04-23-20h23.log.gz
new file mode 100644
index 0000000..1d08dbc
Binary files /dev/null and b/site-antigo/extra/TraducaoPrevia/gnome-br-2008-04-23-20h23.log.gz differ
diff --git a/site-antigo/extra/Tutoriais/Manual_Usuario_Gnome.pdf 
b/site-antigo/extra/Tutoriais/Manual_Usuario_Gnome.pdf
new file mode 100644
index 0000000..a596c11
Binary files /dev/null and b/site-antigo/extra/Tutoriais/Manual_Usuario_Gnome.pdf differ
diff --git a/site-antigo/extra/Tutoriais/gnome-tutorial-text.png 
b/site-antigo/extra/Tutoriais/gnome-tutorial-text.png
new file mode 100644
index 0000000..417a559
Binary files /dev/null and b/site-antigo/extra/Tutoriais/gnome-tutorial-text.png differ
diff --git a/site-antigo/extra/VForum/bannerVForumMed.png b/site-antigo/extra/VForum/bannerVForumMed.png
new file mode 100644
index 0000000..d030198
Binary files /dev/null and b/site-antigo/extra/VForum/bannerVForumMed.png differ
diff --git a/site-antigo/extra/Videos/gnome-tutorial-video.png 
b/site-antigo/extra/Videos/gnome-tutorial-video.png
new file mode 100644
index 0000000..277b291
Binary files /dev/null and b/site-antigo/extra/Videos/gnome-tutorial-video.png differ
diff --git a/site-antigo/extra/WebCSS/bg-content-right-bottom.png 
b/site-antigo/extra/WebCSS/bg-content-right-bottom.png
new file mode 100644
index 0000000..5aa635f
Binary files /dev/null and b/site-antigo/extra/WebCSS/bg-content-right-bottom.png differ
diff --git a/site-antigo/extra/WebCSS/bg-content-right.png b/site-antigo/extra/WebCSS/bg-content-right.png
new file mode 100644
index 0000000..2c40e8a
Binary files /dev/null and b/site-antigo/extra/WebCSS/bg-content-right.png differ
diff --git a/site-antigo/extra/WebCSS/bg-content.png b/site-antigo/extra/WebCSS/bg-content.png
new file mode 100644
index 0000000..5894c18
Binary files /dev/null and b/site-antigo/extra/WebCSS/bg-content.png differ
diff --git a/site-antigo/extra/WebCSS/bg-header-div.gif b/site-antigo/extra/WebCSS/bg-header-div.gif
new file mode 100644
index 0000000..64d2eb8
Binary files /dev/null and b/site-antigo/extra/WebCSS/bg-header-div.gif differ
diff --git a/site-antigo/extra/WebCSS/bg-header.png b/site-antigo/extra/WebCSS/bg-header.png
new file mode 100644
index 0000000..a18a065
Binary files /dev/null and b/site-antigo/extra/WebCSS/bg-header.png differ
diff --git a/site-antigo/extra/WebCSS/bg-menu.png b/site-antigo/extra/WebCSS/bg-menu.png
new file mode 100644
index 0000000..70e2097
Binary files /dev/null and b/site-antigo/extra/WebCSS/bg-menu.png differ
diff --git a/site-antigo/extra/WebCSS/bg-top.png b/site-antigo/extra/WebCSS/bg-top.png
new file mode 100644
index 0000000..d86b251
Binary files /dev/null and b/site-antigo/extra/WebCSS/bg-top.png differ
diff --git a/site-antigo/extra/WebCSS/line.png b/site-antigo/extra/WebCSS/line.png
new file mode 100644
index 0000000..536e502
Binary files /dev/null and b/site-antigo/extra/WebCSS/line.png differ
diff --git a/site-antigo/extra/WebHome/3.0-release3.jpg b/site-antigo/extra/WebHome/3.0-release3.jpg
new file mode 100644
index 0000000..cc76573
Binary files /dev/null and b/site-antigo/extra/WebHome/3.0-release3.jpg differ
diff --git a/site-antigo/extra/WebHome/fisl11_display.png b/site-antigo/extra/WebHome/fisl11_display.png
new file mode 100644
index 0000000..5fd503a
Binary files /dev/null and b/site-antigo/extra/WebHome/fisl11_display.png differ
diff --git a/site-antigo/extra/WebHome/window-selection-3.20-420x236.png 
b/site-antigo/extra/WebHome/window-selection-3.20-420x236.png
new file mode 100644
index 0000000..94effa6
Binary files /dev/null and b/site-antigo/extra/WebHome/window-selection-3.20-420x236.png differ


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]