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

Blogueira que falou em 'esfaquear' Eduardo Bolsonaro diz ter sido intimada

Em vídeo, blogueira Tininha Mattos disse ter vontade de dar outra facada em Bolsonaro e em Eduardo - Pablo Valadares/Câmara dos Deputados
Em vídeo, blogueira Tininha Mattos disse ter vontade de dar outra facada em Bolsonaro e em Eduardo Imagem: Pablo Valadares/Câmara dos Deputados

Do UOL, em São Paulo

03/12/2021 22h57Atualizada em 03/12/2021 23h03

A blogueira Maria Cristina Fontes de Mattos — Tininha Mattos — disse hoje ao UOL que foi intimada a prestar depoimento à Polícia Civil do Rio de Janeiro por conta de um vídeo, publicado em março no Instagram, em que criticava o presidente Jair Bolsonaro (PL) e um de seus filhos, o deputado federal Eduardo Bolsonaro (PSL-SP).

Os comentários da influenciadora foram compartilhados em uma sequência de stories. Na ocasião, ela lamentou não ter encontrado Bolsonaro e seus filhos no Rio de Janeiro, acrescentando que, caso tivesse a oportunidade, faria um "escândalo". Ela também disse que daria outra facada em Bolsonaro e "provavelmente" em Eduardo, "que é quem mais odeia".

"Meu advogado está entrando com pedidos de habeas corpus para trancar esse inquérito, já que é inconstitucional e ilegal. Não houve crime. Aliás, ele mesmo [Eduardo Bolsonaro] falou isso em audiência de conciliação do processo cível que ele mesmo abriu", disse Tininha, em referência a outra ação, esta apresentada ao TJDFT (Tribunal de Justiça do Distrito Federal e Territórios), na qual Eduardo já foi derrotado.

A intimação é um desdobramento da ação apresentada em 1º de setembro por Eduardo contra Tininha ao TJRJ (Tribunal de Justiça do Rio de Janeiro) por suposto crime de ameaça, como publicado pela colunista do UOL Juliana Dal Piva. O caso está sendo investigado pela Delegacia de Repressão aos Crimes de Informática (DRCI).

A mesma delegacia instaurou, anteriormente, inquéritos contra o influenciador digital Felipe Neto e os jornalistas William Bonner e Renata Vasconcellos. Os casos acabaram sendo arquivados depois.

Blogueira relatou ataques

Procurada pelo UOL em março, Tininha Mattos contou ter se tornado alvo de inúmeros ataques e ameaças após a publicação das críticas à família Bolsonaro. O próprio Eduardo rebateu a blogueira, dizendo que "tudo dito nestes vídeos ultraa em muito o limite de uma crítica ou brincadeira, principalmente após a facada".

À época, o deputado informou ainda que entraria com um processo contra Tininha — sem citar seu nome — e um doutor em Filosofia pela USP (Universidade de São Paulo) que também o criticou. "Não tenho menos honra por ser filho do presidente. (...) Que a justiça seja feita", escreveu Eduardo em 16 de março.

A ação foi enviada logo depois ao TJDFT. Ao UOL, no entanto, Tininha afirmou não ter sido notificada e que ficou sabendo do processo contra ela pela imprensa. Ela também disse que não foi procurada por nenhum advogado ou assessor do deputado.

"Eu postei o vídeo no stories pela manhã. ei o dia e nada aconteceu. Tudo ocorreu durante a madrugada, quando acordei de manhã meu Instagram estava lotado de mensagens de todos os tipos", relatou a influenciadora na ocasião.