;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

UOL Confere

Uma iniciativa do UOL para checagem e esclarecimento de fatos


É falso que urna eletrônica não permite recontagem de votos no Brasil

Arte/UOL
Imagem: Arte/UOL

Lucas Borges Teixeira

Do UOL, em São Paulo

07/10/2020 04h00

Como saber se o meu voto contou? Este é um dos principais questionamentos feitos por quem desconfia do processo de apuração das urnas eletrônicas e defende a existência do voto impresso no Brasil.

Correntes que circulam pelas redes sociais pelo menos desde 2014 usam como argumento de fraude nas urnas eletrônicas a informação de que não há como fazer recontagem dos votos, o que tornaria o resultado divulgado pelo TSE (Tribunal Superior Eleitoral) impossível de apurar.

Urna permite, sim, recontagem de votos

A informação é falsa. A recontagem de votos não só é possível como está disponível para qualquer partido requerê-la —o que não é possível é a identificação do voto de cada eleitor.

Segundo o TSE, todas as urnas gravam os votos registrados nelas por meio do Registro Digital do Voto (RDV), um arquivo com uma espécie de planilha que compila 100% dos números digitados. Ao final da votação, esse registro é assinado digitalmente com o código específico daquela máquina e salvo.

"O RDV armazena o voto exatamente como foi digitado na urna e é utilizado somente no encerramento da votação para gerar o boletim de urna. Depois, é realizado o somatório dos votos de cada candidato ou legenda, bem como o cômputo de votos nulos e brancos", explica o TSE.

Para garantir o sigilo do votos, este registro não é feito de forma sequencial (o que poderia levar a uma checagem por título de eleitor), mas aleatória. Assim, é possível saber a quantidade exata de cada candidato/legenda sem indicar de que eleitor veio cada voto.

Apuração paralela feita em urnas eletrônicas feita pelo TRE (Tribunal Regional Eleitoral) do Tocantins - TRE-TO/Divulgação - TRE-TO/Divulgação
Apuração paralela em urnas eletrônicas no TRE (Tribunal Regional Eleitoral) do Tocantins
Imagem: TRE-TO/Divulgação
Esses dados ficam salvos e disponíveis para que Ministério Público, partidos ou organizações interessadas, como a OAB (Ordem dos Advogados do Brasil), tenham o e façam sua apuração paralela. Com a verificação de das urnas oficiais, é possível checar 100% dos votos de cada zona, município, estado ou mesmo de todo o país.

Também é possível somar boletins

O cidadão também pode fazer a conferência por meio da soma dos boletins de urna. Ao final da votação, o boletim com a apuração dos votos de cada seção eleitoral se transforma em documento público. Estes boletins podem ser somados e, depois, confrontados com os números divulgados pelo TSE.

"Qualquer possível ou eventual fraude no procedimento de totalização seria facilmente detectável pela conferência do boletim de urna impresso com o boletim de urna divulgado pelo TSE", explica o órgão.

O UOL Confere é uma iniciativa do UOL para combater e esclarecer as notícias falsas na internet. Se você desconfia de uma notícia ou mensagem que recebeu, envie para [email protected].