$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Esta seção apresenta resultados representativos produzidos pelo protocolo IOC-para-regex e resume a avaliação de referência usada para avaliar sua aplicabilidade operacional. A avaliação de referência processou 3.156 relatórios CTI associados às técnicas MITRE ATT&CK, analisou mais de 230.000 sentenças, extraiu mais de 63.000 candidatos ao IOC e avaliou regexes gerados contra mais de 2.400 sequências de verdade coletadas independentemente de dez cenários de avaliação MITRE ATT&CK. Essas sequências de verdade são artefatos de ataque curados por especialistas, reportados independentemente por fornecedores de cibersegurança durante os exercícios de avaliação MITRE ATT&CK e, portanto, refletem os padrões estruturais que analistas humanos e fornecedores documentam na prática. Os resultados abaixo focam no comportamento do fluxo de trabalho, correção estrutural e resultados de avaliação relevantes para a análise operacional de logs e detecção.
Uma visão geral do pipeline de ponta a ponta é fornecida na Figura 1, que resume os estágios de encontro do grupo de captura e geração de regex que moldam o restante dos resultados representativos.
Etapa 1: Análise de Documentos Resultados
A Figura 2 mostra a saída da Etapa 1, onde um relatório CTI de entrada é analisado em uma representação Markdown unificada. Após execução bem-sucedida, a interface exibe uma pré-visualização estruturada do documento, incluindo limites de seção e indicadores de relevância.
A execução correta é indicada por segmentação coerente de parágrafos e preservação de artefatos técnicos como caminhos de arquivos, chaves de registro e fragmentos de linha de comando. Truncamento excessivo ou perda de formatação nesta fase pode afetar a análise a jusante e deve ser abordada antes de prosseguir.
Etapa 2: Extração da IOC baseada em consenso
A Figura 3 ilustra a saída da Etapa 2, onde os IOCs candidatos são extraídos usando votação em conjunto multi-LLM. A interface resultante apresenta uma coleção IOC formatada em JSON, anotada com contagens de votos e modelos contribuintes.
Apenas IOCs que atingem o limite mínimo de consenso configurado são mantidos. IOCs excluídos neste estágio normalmente refletem alucinações específicas do modelo ou fragmentos de texto ambíguos. A exclusão deles é um resultado esperado e desejável, indicando que a votação em conjunto está funcionando corretamente.
Etapa 3: Análise e Classificação do COI
A Tabela 2 resume a saída esperada, as etapas de validação automatizada e as verificações de controle de qualidade voltadas para analistas para cada etapa do protocolo.
A Figura 4 mostra os candidatos do IOC que não atingiram o limiar de consenso durante a votação do conjunto na Etapa 2 e que a interface surge para inspeção por analistas. Esses candidatos normalmente refletem alucinações específicas de modelos ou fragmentos de texto ambíguos. A Figura 4 e a Figura 5 , portanto, correspondem a saídas distintas do estágio — o conjunto descartado do Estágio 2 e o conjunto retido do Estágio 3 — em vez de visões alternativas do mesmo processo do Estágio 3.
A Figura 5 apresenta a tabela do IOC mantida produzida pelo Estágio 3 após análise sintática JSON, categorização baseada em regras e deduplicação do IOC. Para cada IOC retido, o estágio registra uma categoria padronizada, a tag de origem e a chave de extração original quando disponível, antes de passar o IOC para a normalização posterior.
Estágio 4: Normalização de IOC Assistida por Graf entre Tipos de IOC
As Figuras 6, Figura 7 e Figura 8 ilustram resultados de normalização representativa para três categorias de IOC abordadas no estudo atual: caminhos de arquivo, chaves de registro e indicadores de linha de comando. Para cada categoria, os números comparam o IOC original extraído do relatório CTI com a representação normalizada produzida por análise assistida por grafos.
Em todos os tipos de IOC, o protocolo decompõe cada IOC em componentes semânticos e resolve relações hierárquicas usando conhecimento estruturado codificado no banco de dados de grafos. Na implementação atual, o Neo4j armazena nós normalizados de Caminho, Registro e CLI e utiliza relações de adjacência para testar se os componentes pertencem a cadeias reconhecidas. Esse papel é análogo ao uso do conhecimento estruturado de ATT&CK durante a engenharia dedetecção 2.
Importante, essa etapa de normalização registra papéis semânticos explícitos para os componentes IOC, rotulando-os como keep ou descart, em vez de removê-los silenciosamente do registro de análise. A string normalizada é reconstruída principalmente a partir dos componentes de conservação, enquanto os componentes de descarte permanecem disponíveis como metadados para geração e validação de regex a jusante.
A execução correta dessa etapa é indicada por IOCs normalizados que mantêm contexto estrutural significativo e exibem rotulagem consistente de grupos de captura entre diferentes tipos de IOC. A comparação visual entre representações originais e normalizadas fornece um mecanismo prático de controle de qualidade para verificar se a resolução do grupo de captura foi aplicada de forma consistente e sem perda não intencional de informação.
Estágio 5: Geração de Expressões Regulares com Seleção Baseada em Restrições Auxiliares
A Figura 9 ilustra a saída do Estágio 5, onde o protocolo gera expressões regulares estruturalmente compatíveis a partir de IOCs normalizados por meio de um fluxo de trabalho iterativo de validação. A implementação combina um prompt de geração inicial, re-prompting diagnóstico quando um candidato não corresponde ao IOC, validação consciente do descarte e loops de retentativa limitados.
Dado um IOC normalizado e sua especificação associada de componente/descarte, o fluxo de trabalho primeiro gera um candidato inicial a regex. O candidato é então testado contra o IOC, resolicitado diagnosticamente quando a correspondência falha, verificado para tokens descartados proibidos e avaliado quanto à supergeneralização usando cadeias negativas aleatórias.
Quando múltiplos candidatos atendem às verificações básicas de validação, o protocolo aplica um mecanismo auxiliar de seleção baseado em restrições para manter um regex representativo para uso posterior. A implementação atual pontua os candidatos com 'Score = n_cg - n_wc', onde 'n_cg' é o número de componentes de keep representados e 'n_wc' é o número de tokens descartados ou não mapeados presentes no regex.
A função de seleção é definida como:
Placar = n_cg − n_wc
Esta é a especialização de peso igual (α = β = 1) da forma mais geral Score = α·n_cg − β·n_wc. Aqui, n_cg denota o número de componentes de keep representados e n_wc denota o número de componentes descartados ou tokens extras não mapeados reintroduzidos pelo regex. A implementação também registra contagens de iterações, listas de emissões, consumo estimado de tokens, uso de cache e telemetria de latência para cada IOC. A configuração de peso igual foi usada como um padrão determinístico simples para a implementação de referência; Como trata um componente de keep ausente e um componente de descarte reintroduzido como igualmente indesejáveis, outras ponderações podem ser preferidas em contextos de implantação onde falsos negativos e falsos positivos têm custos operacionais diferentes.
O regex final é selecionado como o candidato que melhor satisfaz essas restrições. Regexes que colocam componentes de grupo de captura exigidos dentro de construções opcionais, por exemplo ( ... )?, são excluídos da seleção porque enfraquecem a consistência semântica. Essa etapa de seleção é auxiliar ao processo de geração e não tem a intenção de servir como uma métrica de qualidade independente.
Visão Geral de Análise Analítica do Processamento CTI
A Figura 10 apresenta uma visão geral dos resultados da análise CTI em todos os documentos processados. Na avaliação de referência, a extração do IOC de mais de 3.156 relatórios CTI produziu mais de 63.000 candidatos ao IOC, incluindo 12.195 caminhos de arquivo, 2.302 chaves de registro e 10.286 indicadores de linha de comando, com os demais candidatos pertencendo a tipos IOC não-alvo regex.
Essas contagens fornecem uma validação de alto nível de que os indicadores extraídos estão concentrados nas três categorias IOC alvo do protocolo atual, ao mesmo tempo em que mostram que muitos artefatos extraídos permanecem fora do escopo da geração de regex. Ao reproduzir o fluxo de trabalho, informe o número exato de relatórios de CTI processados, o total de candidatos ao IOC, contagens por categoria, e o provedor, modelo, versão do modelo, temperatura, contagem de repetições e limiar de consenso usado durante a extração.
Na avaliação de referência, os regex gerados foram avaliados contra mais de 2.400 sequências de verificação coletadas independentemente de dez cenários de avaliação MITRE ATT&CK e alcançaram uma taxa média de acerto de 99,1%, juntamente com uma taxa média de incompatibilidade entre COI de 0,8%. Neste manuscrito, a taxa de descorrespondência é usada como uma medida de especificidade semântica: uma descorrespondência ocorre quando um regex gerado para um IOC também corresponde a uma string de verdade associada a um IOC diferente. Essa quantidade não deve ser interpretada como uma taxa operacional de alerta de ponta a ponta falsos positivos, que também depende da lógica das regras a jusante e do contexto de implantação.
A distribuição reflete a composição estrutural do corpus CTI e permite aos usuários verificar se os indicadores extraídos estão alinhados com os tipos esperados de IOC. Grandes desvios em relação às proporções esperadas podem indicar problemas de análise ou extração a montante e devem ser examinados antes de prosseguir para a normalização a jusante e geração de regex.
Análise das Ações de Otimização Regex
A Figura 11 resume as ações realizadas durante a geração e refinamento de expressões regulares. A distribuição inclui três tipos de ações: geração inicial de regex, etapas de otimização orientadas por LLM e regeneração baseada em retentativas.
A otimização orientada por LLM representa 51,7% de todas as ações observadas. Essa prevalência indica que a geração inicial sozinha é frequentemente insuficiente para produzir regexes que satisfazem as restrições do grupo de captura e requisitos de exclusão. Em vez disso, a otimização iterativa é aplicada de forma ativa e repetida para refinar regex candidatos.
Em vez de refletir ineficiência, essa distribuição demonstra que o fluxo de trabalho de otimização é um componente necessário e integral do protocolo ao gerar regexes estruturalmente compatíveis a partir de entradas complexas de IOC.
Uma caracterização separada de escalabilidade sobre uma amostra aleatória de 6.000 IOCs gerada com o LLM de teste de escalabilidade (veja a Tabela de Materiais) relatou uma latência mediana de 2,95 s por IOC e uma latência média de 23,18 s. Na mesma caracterização, a compilação de regex sintaxe válida atingiu 99,56 %, o sucesso geral da geração atingiu 99,4 %, o uso médio estimado de tokens foi de aproximadamente 3.986 tokens por IOC, e o fluxo de trabalho exigiu aproximadamente 7,89 chamadas LLM por IOC em média. As taxas de sucesso na primeira passagem foram de 56,46% para o loop de depuração de correspondência e 72,92% para o loop de validação sem grupo de captura. Essas medições ajudam a caracterizar o custo computacional e o throughput operacional para uso em lote.
Nenhuma revisão de especialistas de um subconjunto de saída amostrada foi usada para retreinamento de modelos na caracterização atual de referência; Os resultados relatados refletem a execução automatizada do pipeline e os conjuntos de dados de avaliação a jusante descritos acima.
Evidências operacionais e manejo de falhas. A Figura 12 mostra a estrutura do arquivo regulares SIEM exportado produzido pelo protocolo, juntamente com evidências de validação em nível de regra para padrões representativos de caminho de arquivo, chave de registro e linha de comando. A Figura 13 mostra o relatório JSON completo correspondente, que expõe todas as saídas do estágio (IOCs extraídos, analisados e normalizados junto com os padrões regex gerados e as flags de validação por IOC) e é o principal artefato que as ferramentas a jusante consomem. A Figura 14 ilustra o tratamento do protocolo com uma entrada CTI ruidosa: um caminho de arquivo despresado e perturbado pelo espaço em branco é sinalizado na fase de análise, corrigido, normalizado para o template canônico %TEMP% e então convertido em um regex compilador e correspondente. Este exemplo trabalhado complementa a evidência operacional nas Figuras 12 e 13 ao documentar como o protocolo se comporta quando o texto bruto do IOC se afasta da forma canônica.

Figura 1: Arquitetura geral do protocolo IOC-para-regex. A figura resume o pipeline de ponta a ponta. Cadeias de IOC candidatas produzidas pelo extrator IOC a montante são decompostas e comparadas com nós de referência em um grafo Neo4j preenchido pela documentação do Windows (passo 1), que recupera componentes conhecidos de caminho, registro e linha de comando (passo 2). Fragmentos variáveis ou específicos do ambiente são rotulados como descarte e excluídos da reconstrução normalizada enquanto mantidos nos metadados dos componentes, resultando em um IOC normalizado com rótulos de keep e descarte em nível de componente (passo 3). Esses IOCs normalizados são então passados para uma etapa de geração de regex baseada em LLM (passo 4) que produz expressões regulares candidatas, que são pontuadas e otimizadas iterativamente contra restrições de grupo de captura e regras de tokens descartados (etapa 5) antes de selecionar um regex final (passo 6). Por favor, clique aqui para ver uma versão ampliada desta figura.

Figura 2: Fase 1 da análise do documento de saída. Comparação lado a lado do relatório original do CTI e da prévia do documento analisado. O painel à esquerda mostra o relatório original do CTI em formato PDF, enquanto o painel direito exibe a representação unificada do Markdown gerada pelo parser. Por favor, clique aqui para ver uma versão ampliada desta figura.

Figura 3: Extração de IOC baseada em consenso usando votação em conjunto multi-LLM. A interface ilustra o processo de extração do IOC baseado em conjunto e seus resultados intermediários. A caixa vermelha destaca as instâncias de LLM configuradas que participam da extração IOC, incluindo os provedores selecionados e o número de execuções repetidas de extração realizadas para cada modelo. A caixa azul indica o limiar de consenso definido pelo usuário, que especifica o número mínimo de ocorrências necessárias para que um IOC seja mantido. Após agregar os resultados de extração em todos os modelos e repetições, os IOCs candidatos que aparecem menos vezes do que o limite são descartados. A caixa laranja mostra o conjunto final de IOCs retidos que atendem ao critério de consenso e são encaminhados para as fases de análise a jusante. Por favor, clique aqui para ver uma versão ampliada desta figura.

Figura 4: COI descartados por votação em conjunto na Fase 2. Visão lado a lado dos candidatos do COI que não atingiram o limite mínimo de voto configurado durante a votação em conjunto e são apresentados para inspeção por analistas. Candidatos descartados normalmente refletem alucinações específicas do modelo ou fragmentos de texto ambíguos e não são encaminhados para a etapa de categorização do Estágio 3. Por favor, clique aqui para ver uma versão ampliada desta figura.

Figura 5: Conjunto de IOC retido com classificação padronizada. Candidatos ao IOC mantidos após o processamento do Estágio 3 são mostrados junto com suas categorias padronizadas, tags de origem e chaves originais de extração quando disponíveis. Esta tabela fornece a entrada estruturada do IOC usada pela etapa de normalização. Por favor, clique aqui para ver uma versão ampliada desta figura.

Figura 6: Normalização do IOC do caminho do arquivo usando análise assistida por grafo. Comparação lado a lado de um IOC do caminho original do arquivo e sua representação normalizada. Consultas de percurso baseadas em grafos conhecem os componentes do Path por nome normalizado e rotulam cada componente como keep ou descart. Identificadores de drive e fragmentos de nome de arquivo variável podem, portanto, ser marcados como descartados no registro de componentes, enquanto a forma normalizada é reconstruída principalmente a partir de segmentos estruturais mantidos necessários para a construção de padrões a jusante. Por favor, clique aqui para ver uma versão ampliada desta figura.

Figura 7: Normalização do IOC da chave do registro usando análise assistida por grafos. Normalização de uma chave de registro IOC por meio da resolução assistida por grafos de estruturas hierárquicas de registros. Chaves raiz abreviadas são expandidas para colmeias canônicas de registro, e o analisador extrai a substring contígua mais longa conhecida enquanto pula marcadores de hospedagem, valores semelhantes a SID e tokens semelhantes a GUID. Os registros de saída mantêm/descartam rótulos para cada componente retido e produzem um caminho canônico de registro para processamento posterior. Por favor, clique aqui para ver uma versão ampliada desta figura.

Figura 8: Normalização IOC de linha de comando usando análise assistida por grafos. Comparação entre um IOC original de linha de comando e sua representação normalizada. O protocolo tokeniza a linha de comando enquanto preserva as cadeias aspas, normaliza o token de comando principal por meio de consulta no Neo4j sempre que possível, e analisa recursivamente fragmentos embutidos, semelhantes a caminhos ou registros. Componentes estáveis relacionados a comandos são rotulados como mantenhação, argumentos variáveis são rotulados como descarte, e a estrutura final de comando canônica é reconstruída a partir dos elementos mantidos. Por favor, clique aqui para ver uma versão ampliada desta figura.

Figura 9: Seleção baseada em restrições de candidatos a expressão regular. Múltiplos candidatos regex são gerados para cada IOC normalizado usando um fluxo de trabalho iterativo de validação. Um mecanismo de pontuação orientado por restrições é aplicado para selecionar um regex final que preserva os componentes designados do grupo de captura enquanto limita substrings de variáveis indesejadas. Por favor, clique aqui para ver uma versão ampliada desta figura.

Figura 10: Distribuição dos IOCs extraídos entre os relatórios de CTI. Resumo dos resultados da extração do IOC mostrando o número total de indicadores identificados a partir de relatórios CTI e sua distribuição entre caminhos de arquivo, chaves de registro e indicadores de linha de comando. Essa visão fornece uma validação de alto nível da cobertura de conteúdo e do comportamento de extração do CTI. Por favor, clique aqui para ver uma versão ampliada desta figura.

Figura 11: Distribuição das ações de otimização durante a geração de expressões regulares. Análise das ações realizadas durante a geração de regex, incluindo geração inicial, otimização orientada por LLM e regeneração baseada em retentativas. A otimização orientada por LLM representa 51,7% de todas as ações, ilustrando que o refinamento iterativo é um componente essencial do protocolo para produzir regexes que satisfazem as restrições do grupo de captura. Por favor, clique aqui para ver uma versão ampliada desta figura.

Figura 12: Arquivo regex representativo exportado. Conteúdo de exemplo da exportação regex SIEM (siem_rules.txt) gerada pelo protocolo. Cada entrada inclui o IOC de origem, a categoria inferida (caminho do arquivo, chave de registro ou linha de comando) e o padrão regex validado. A tabela de validação que acompanha resume o comportamento esperado e as evidências do sistema usadas para confirmar a correção para cada tipo de regra. Por favor, clique aqui para ver uma versão ampliada desta figura.

Figura 13: Relatório completo do JSON representativo. Saída do pipeline de ponta a ponta produzida após executar todos os cinco estágios do protocolo em um relatório representativo de CTI. O documento JSON registra o arquivo fonte, contagem de seções analisadas, IOCs extraídos agrupados por categoria, registros categorizados do estágio 3 com tags de origem, diferença de normalização do estágio 4 e padrões regex do estágio 5 com flags de validação por IOC. O relatório também expõe metadados de sucesso de alto nível e erro que permitem que ferramentas posteriores detectem falhas parciais. Por favor, clique aqui para ver uma versão ampliada desta figura.

Figura 14: Entrada falhada ou ruidosa: identificação e correção. Exemplo funcionário de como o protocolo identifica e recupera de um IOC barulhento. A entrada bruta %T E M P%\malware[.]O EXE é sinalizado porque seu token de variável ambiental contém espaços inseridos e sua extensão de arquivo foi desativada. A etapa de correção remove o espaço em branco inserido e restaura o ponto literal; A normalização do Estágio 4 então expande o %TEMP% para o modelo canônico de diretório Windows Temp; e o Estágio 5 gera um regex que compila e corresponde ao IOC normalizado corrigido. Este exemplo ilustra o tratamento de entrada ruidosa discutido na Discussão. Por favor, clique aqui para ver uma versão ampliada desta figura.
| Elemento | Tipo | Valor / Esquema | Exemplo | Notas |
| Rótulo de nó | Selo | :P ath | Windows, System32, cmd.exe | Armazena componentes do caminho de arquivo do Windows |
| Rótulo de nó | Selo | :Registro | SOFTWARE, Microsoft, Windows NT | Armazena componentes da chave do registro abaixo das colmeias raiz |
| Rótulo de nó | Selo | :CLI | powershell.exe, -Política de Execução, Desvio | Armazena tokens de comando e parâmetros |
| Propriedade do nó | Corda | Nome | cmd.exe | Revestimento original; Usado para exibição em saída normalizada |
| Propriedade do nó | Corda | name_lower | cmd.exe | Forma minúscula; usado como chave de consulta para todas as consultas MATCH |
| Relacionamento | Aresta direcionada | (a)-[:PRÓXIMO]->(b) | (Windows)-[:NEXT]->(System32) | Ambos os extremos compartilham o mesmo rótulo; codifica adjacência nativa em sistemas Windows |
| Restrição | Singularidade | n.name_lower ÚNICO por rótulo | - | Candidatei-me ao :P ath, :Registry, :CLI |
| Fonte dos dados | Cobertura | Windows 8, 10, 11 | - | O sistema operacional cliente preenchido em grafo |
| Fonte dos dados | Cobertura | Windows Server 2012, 2016, 2019, 2022 | - | Sistema operacional do servidor preenchido em grafos |
Tabela 1: Esquema de grafo Neo4j usado para normalização do IOC (Estágio 4). Lista os três rótulos de nós (Caminho, Registro, CLI), seu esquema de propriedades compartilhadas (nome, name_lower), a relação de adjacência direcionada usada para ordenação nativa de aristas, restrições de unicidade e as versões do cliente e servidor do Windows que preenchem o grafo.
| Palco | Produção esperada | Validação automatizada | Controle de qualidade voltado para analistas |
| Etapa 1: Análise sintática de documentos | Texto Markdown unificado, dividido em 4.000 caracteres antes do processamento do LLM. | — | Verificação visual da pré-visualização do Markdown para confirmar que caminhos de arquivo, chaves de registro, fragmentos de linha de comando e limites de seção sobrevivem à análise sintática; Troque o backend se as strings técnicas estiverem truncadas. |
| Estágio 2: Extração do IOC | JSON com três chaves de nível superior (Caminhos de Arquivo, Linhas de Comando, Chaves de Registro); contagens de votos por COI e metadados do modelo contributivo quando a votação em conjunto está habilitada. | O filtro de limiar de consenso (min_votes) exclui IOCs cuja contagem de votos está abaixo do limite configurado. | Inspeção dos candidatos excluídos para distinguir alucinações de votação excessivamente rigorosa antes de ajustar min_votes. |
| Etapa 3: Análise e classificação do COI | Lista de IOC categorizada: cada IOC combinado com uma categoria padronizada, etiqueta de origem e chave de extração original quando disponível. | Mapeamento de categorias padronizadas por meio de regras baseadas em regex e heurísticas de padrões IOC; (COI, categoria) deduplicação de pares. | Verificação pontual da saída categorizada para candidatos ambíguos ou barulhentos (Figura 4A). |
| Estágio 4: Normalização assistida por Neo4j | Formulário normalizado por IOC com etiquetas de conservação/descarte em nível de componente. | Consultas cifras (i)-(iii) sobre o gráfico de referência do Windows; Reserva de pré-processamento determinístico quando o Neo4j não está disponível. | Inspeção de casos totalmente descartáveis para identificar lacunas na cobertura de grafos; extensão dos dados de grafos com referências específicas do fornecedor ou do ambiente quando necessário. |
| Etapa 5: Geração e pontuação de Regex | Regex final por IOC com pontuações de candidatos, histórico de otimização, contagem de iterações e telemetria por IOC. | Teste de correspondência, verificações estáticas de qualidade, verificação de token proibido consciente de fronteiras, teste de supergeneralização contra 5 amostras determinísticas negativas; Retorno para a partida parcial de maior pontuação (used_fallback bandeira). | Revisão do histórico de otimização para regex de reserva; por inspeção diagnóstica de posição de falha por IOC antes da regeneração. |
Tabela 2: Estágio e resultado e resumo de validação. Mapeia cada estágio do protocolo (1–5) para seu artefato esperado, as evidências automatizadas de validação produzidas pelo pipeline (status de compilação regex, taxa de acerto, taxa de descorrespondência entre IOC, contagens de iterações de otimização) e a verificação de controle de qualidade correspondente voltada para analistas (comparação visual, inspeção de candidatos descartados e revisão de categoria).
Arquivo Suplementar 1: Prompts de LLM verbatim. O sistema literal e os prompts humanos usados para extração do IOC do Estágio 2 e geração e otimização de regex do Estágio 5. Por favor, clique aqui para baixar este arquivo.
Arquivo Suplementar 2: Detalhes da implementação para as Etapas 4 e 5. Detalhes algorítmicos e de implementação que suportam a normalização IOC assistida por grafo do Estágio 4 e a validação, pontuação e controle de iteração regex do Estágio 5. Por favor, clique aqui para baixar este arquivo.