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

Esse conteúdo é antigo

Moraes ordena prisão preventiva de bolsonarista que atacou Lula e STF

Do UOL, em São Paulo

01/08/2022 09h53Atualizada em 01/08/2022 13h05

O ministro do STF (Supremo Tribunal Federal) Alexandre de Moraes acatou um pedido da Polícia Federal e decretou a prisão preventiva de Ivan Rejane Fonte Boa Pinto, militante bolsonarista preso em Belo Horizonte após divulgar vídeos com ataques ao ex-presidente Luiz Inácio Lula da Silva (PT) e ameaças de morte a ministros do STF.

Rejane estava preso temporariamente e teve o prazo da detenção estendido por Moraes para que a PF pudesse concluir a análise de equipamentos do militante.

Na decisão, Moraes destaca trechos do pedido da PF, que diz ter encontrado elementos de que "o investigado, por meio de aplicativos de mensagens, arrecada o apoio de diversas pessoas para a efetivação de seu projeto de ataque às instituições democráticas, notadamente o Supremo Tribunal Federal, em datas que se aproximam (manifestações em agosto e em setembro de 2022)".

O ministro argumenta que "somente com a restrição de liberdade foi possível interromper a prática criminosa", já que Ivan Rejane não teria interrompido a divulgação de vídeos com ataques ao STF mesmo no dia de sua prisão.

Outro trecho do pedido da PF destacado pelo ministro aponta que transcrições feitas dos materiais de Ivan Rejane indicam que o militante "tem como um dos instrumentos a utilização da violência para atingir seu intento criminoso em relação a ministros do STF e políticos".

PGR pediu prisão domiciliar, e não preventiva

A PGR (Procuradoria-Geral da República) também se manifestou sobre o caso a pedido de Moraes, mas requereu a prisão domiciliar em vez da preventiva, argumentando que Ivan Rejane tem uma filha de menos de três meses que depende dos cuidados do pai. O militante está detido no Complexo Penitenciário Nelson Hungria, em Contagem (MG).

O pedido de prisão temporária, acatado no dia 22 de junho, também foi feito pela própria PF, que alertou Moraes para o risco de Ivan promover "ações violentas" diretamente ou com a adesão de voluntários, "mediante inclusive a 'luta armada'", com o objetivo de destituir os ministros de suas funções.

Em decisão, o ministro relembrou que a liberdade de expressão não é escudo para a prática de discursos de ódio, antidemocráticos e ameaças e agressões contra as instituições. A pessoas próximas, o ministro tem dito que ameaças e ataques como os proferidos por Ivan não serão tolerados e que acompanha de perto as movimentações para o feriado em setembro.

Moraes também mandou o Twitter, Facebook e Youtube bloquearem os perfis de Ivan em suas plataformas e determinou ao Telegram que suspenda o canal usado por Ivan, preservando seu conteúdo.

Quem é Ivan Rejane

Ivan Rejane Fonte Boa Pinto mantinha um canal no YouTube no qual se apresenta como "terapeuta" para dependentes químicos. Seus vídeos são repletos de xingamentos e palavras de baixo calão.

Ele diz que sua "guerra" é "contra o tráfico de drogas", mas seus alvos preferenciais são políticos de esquerda, a quem ele associa a existência do narcotráfico, e os ministros do Supremo, que, segundo ele, "mandam soltar esses vagabundos".

Em um dos vídeos publicados pelo bolsonarista, o homem cita o feriado de 7 de Setembro e profere ameaças aos ministros do STF, ao ex-presidente Lula, à presidente do PT, Gleisi Hoffmann, e ao deputado federal Marcelo Freixo (PSB-RJ).