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

AGU entra com ação contra âncora da Jovem Pan que associou Dino a facção

AGU ajuíza ação contra Tiago Pavinatto, apresentador da Jovem Pan - Reprodução/YouTube/Jovem Pan
AGU ajuíza ação contra Tiago Pavinatto, apresentador da Jovem Pan Imagem: Reprodução/YouTube/Jovem Pan

De Splash, em São Paulo

26/06/2023 17h59Atualizada em 26/06/2023 21h21

A Advocacia Geral da União entrou com uma ação civil pública contra Tiago Pavinatto, apresentador da Jovem Pan.

A AGU entrou com a ação por meio da Procuradoria Nacional da União de Defesa da Democracia (PNDD), órgão criado após os atos antidemocráticos de 8 de janeiro que visa "representar a União em resposta e enfrentamento à desinformação sobre políticas públicas".

Pavinatto associou Flávio Dino, Ministro da Justiça e Segurança Pública, ao crime organizado e ao tráfico de drogas em aparição no programa Jovem Pan News, em maio deste ano. O advogado também é comentarista dos programas Linha de Frente e Pânico, da mesma emissora.

"Se Flávio Dino, nesse entra e sai do Complexo da Maré, que ele nunca explicou, eu não posso conjecturar que talvez não se queira expulsar de lá o PCC por razões outras? [...] Como é que o senhor entrou no Complexo da Maré, dominado pelo Comando Vermelho? Eu tenho todo direito de conjecturar que esse repentino interesse por armar as Forças Armadas, ao mesmo tempo que se muda o artigo 142, pode servir unicamente por motivo de expulsar o PCC [da Amazônia] e ajudar talvez, facções que eventualmente, sejam amigas", disse o apresentador na ocasião.

A PNDD pede R$ 300 mil de indenização por danos morais coletivos, que Pavinatto divulgue uma retratação em suas redes sociais e a exclusão das publicações das redes sociais. A Procuradoria também requer que as redes sociais informem se os conteúdos veiculados geraram algum tipo de lucro e em, caso positivo, que esses valores sejam restituídos.

O órgão afirma ainda que Flávio Dino fez uma visita institucional ao Complexo da Maré, a convite da ONG Redes da Maré, com a finalidade de "reafirmar a disposição do Estado em se fazer presente naquela localidade a despeito das dificuldades que possam existir no combate ao crime organizado."

Em maio, Dino compartilhou trecho da fala de Pavinatto em suas redes sociais. "É isso que a extrema-direita chama absurdamente de 'liberdade de expressão'. Óbvio que não é. Em nenhum país do mundo", escreveu o ministro.

Splash fez contato com Tiago Pavinatto, e, por e-mail, foi informado que "o Dr. Pavinatto não foi citado no processo."