;(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

'Caso Evandro' vira série documental: 'Mais sobre Judiciário que bruxaria'

O menino Evandro
O menino Evandro
Reprodução

De Splash, em São Paulo

16/11/2020 04h00

A história da morte do menino Evandro, conhecida também como o caso das Bruxas de Guaratuba, foi investigada pelo jornalista Ivan Mizanzuk e esmiuçada num podcast de mais de trinta episódios. Agora, esse crime chocante vai virar série pelo Globoplay.

Continua depois da publicidade

O que aconteceu com Evandro?

O menino de seis anos desapareceu em Guaratuba, litoral do Paraná, em 1992, o corpo foi encontrado sem as vísceras, coração, couro cabeludo e outros detalhes aterrorizantes.

Na época, um grupo foi preso acusado de raptar Evandro para praticar bruxaria. Entre essas pessoas, estavam Celina Abagge, esposa do prefeito de Guaratuba, e a filha do casal, Beatriz Abagge.

Mas a história é bem mais complexa que isso.

E ainda gera muita curiosidade.

O caso se arrastou por anos, outros nomes apareceram. Foram longos julgamentos até o perdão da pena concedido para Beatriz em 2016 pelo Tribunal de Justiça do Paraná. Apesar disso, ainda há muito mistério envolvendo essas pessoas.

Ivan está acompanhando a produção do Globoplay de perto e falou da diferença entre o podcast, que é cheio de detalhes e informações, para a série.

Continua depois da publicidade

Vão ser 8 episódios, então coisas ficaram fora. Será uma versão mais enxuta. Com certeza terá outro fim.

A série é uma produção documental que traz as pessoas envolvidas no caso para dar seus relatos e contar suas memórias. Os oito episódios já foram gravados e, segundo o jornalista, a produção que tem direção de Aly Muritiba e Michelle Chevrand está na etapa de pré-edição.

Aly contou para Splash sobre os pontos fortes da série e diz que será impossível não maratonar essa história.

Dos grandes destaques estão os relatos em primeira pessoa. Os encontros com Celina e Beatriz foram muito tocantes e emocionados.

Alguém ainda tem dúvida?

Continua depois da publicidade

O diretor também ressalta que a série segue o rigor jornalístico e investigativo do podcast de Ivan. E que, por mais que seja um crime que chame a atenção pelos ritos macabros, a série toca muito mais na complexidade do sistema judiciário brasileiro.

Os temas são muito envolventes. Todas as vezes que o espectador imagina que tá sabendo de uma coisa, a gente derruba ele.

Ansiosos, sim!

Séries e filmes que retratam crimes verdadeiros viraram tendência na gringa. Aly diz que traz algumas dessas referências no "Caso Evandro", mas esteticamente sua inspiração vem das produções de David Fincher, como "Mindhunter" e "Seven" ("Os Sete Crimes Capitais").

A série não tem data de lançamento prevista, os fãs do podcast ou curiosos com essa história terão de esperar até 2021.

Continua depois da publicidade

E como ficou o caso?

Em 2016, Beatriz Abbage, que havia sido condenada a 21 anos e quatro meses, recebeu perdão da pena. A defesa alegou que ela não teria mais pendências com a Justiça e que não precisaria sofrer novas punições, já que até então havia cumprido mais de cinco anos de prisão.