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

Seis viram réus por morte de Beto; fiscal do Carrefour vai para domiciliar

Gravação flagra 14 pessoas "assistindo" à imobilização de cliente do Carrefour - Reprodução
Gravação flagra 14 pessoas "assistindo" à imobilização de cliente do Carrefour Imagem: Reprodução

Colaboração para o UOL, em São Paulo

18/12/2020 21h57Atualizada em 19/12/2020 00h37

O TJRS (Tribunal de Justiça do Rio Grande do Sul) recebeu hoje a denúncia feita pelo Ministério Público, e seis pessoas viraram réus pela morte de João Alberto Silveira Freitas, homem negro de 40 anos que foi espancado por seguranças do Carrefour, na zona norte de Porto Alegre, em 19 de novembro.

Adriana Alves Dutra, agente de fiscalização do estabelecimento, teve prisão temporária convertida em prisão preventiva. Devido a um quadro de doença nefrológica severa e crônica, comprovada pela defesa, a funcionária responderá em prisão domiciliar, informa o TJRS.

De acordo com a juíza Cristiane Busatto Zardo, "os indícios suficientes de autoria estão presentes, para os seis denunciados, nas filmagens e declarações de testemunhas".

Segundo a magistrada, a funcionária Adriana, que nas imagens de vídeo aparece próxima aos agressores, teve "atuação direta no fato" e "teria supervisionado toda a ação dos denunciados Magno e Giovane", os seguranças que estão presos.

Dos seis réus, três respondem como participantes "de menor importância". Paulo Francisco da Silva, Rafael Rezende e Kleiton Silva Santos, todos funcionários do estabelecimento, responderão ao processo em liberdade. Para a juíza, os denunciados "preenchem os requisitos subjetivos para responderem ao feito em liberdade".

"Não têm qualquer antecedente criminal, possuem emprego e residência fixos. Não representam risco à instrução criminal e nem demonstram risco de se evadirem ao processo, ao menos, não até agora", justificou a magistrada em decisão.

A denúncia

Os seis réus foram denunciados por homicídio triplamente qualificado com dolo eventual, por motivo torpe, meio cruel (que resultou na asfixia) e recurso que dificultou a defesa da vítima. O MP-RS apresentou a denúncia ontem em coletiva na sede do Ministério Público. De acordo com o texto, os denunciados "assumiram o risco de produzir o resultado morte da vítima".

O subprocurador-geral de Justiça Marcelo Dornelles, destacou "o despreparo dos agentes de segurança, o desprezo e o desprestígio conferido a muitas pessoas e a desconsideração pela dor alheia."

Quem são os réus:

  • Giovane Gaspar da Silva - funcionário da empresa de segurança terceirizada contratada pelo Carrefour e foi um dos agressores de João Alberto. Giovane foi preso em flagrante na noite da agressão
  • Magno Braz Borges - funcionário da empresa de segurança terceirizada contratada pelo Carrefour, foi um dos agressores e foi preso em flagrante na noite da agressão
  • Adriana Alves Dutra - agente de fiscalização apontada pela juíza como "participante direta" da ação, teve a prisão preventiva convertida em prisão domiciliar
  • Paulo Francisco da Silva - funcionário do Carrefour que viu toda a ação e responde ao processo em liberdade
  • Rafael Rezende - funcionário do Carrefour e responde ao processo em liberdade
  • Kleiton Silva Santos - funcionário do Carrefour e responde ao processo em liberdade