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

Bretas solta namorada do doleiro Messer usando lei sancionada por Bolsonaro

Vinicius Konchinski

Colaboração para o UOL, em Curitiba

19/02/2020 17h47

Resumo da notícia

  • Defesa de namorada e sogra de doleiro argumentou que não havia razões para prisão preventiva
  • MPF-RJ apurou que as duas ajudaram Messer a se manter foragido da Justiça
  • Para Bretas, não há risco de que elas auxiliem Messer com ele já preso
  • Decisão se baseia no pacote anticrime sancionado por Jair Bolsonaro

O juiz federal Marcelo Bretas determinou hoje a soltura Myra Athayde, namorada do doleiro Dario Messer, e de Alcione Athayde, mãe de Myra. A decisão de Bretas leva em conta artigos do pacote anticrime sancionados pelo presidente Jair Bolsonaro (sem partido).

O pacote anticrime prevê que prisões preventivas devem ser avaliadas pela Justiça a cada 90 dias. Nessa avaliação, a ordem de prisão só pode ser mantida caso haja fatos novos que justifiquem a medida.

As defesas de Myra e Alcione pediram à Justiça uma reavaliação das prisões das investigadas e argumentaram que não havia razões para a manutenção delas. Hoje, Bretas concordou com os advogados.

O MPF-RJ (Ministério Público Federal do Rio de Janeiro) apurou que Myra e Alcione ajudaram Messer a se manter foragido da Justiça. Bretas entendeu que, como Messer já está preso, não há risco de que as duas continuem o auxiliando numa fuga.

"É possível concluir que o risco à ordem pública que justificou a decretação da medida cautelar [prisão preventiva] em desfavor das requerentes [Myra e Alcione] encontra-se diminuído", escreveu Bretas, em sua decisão.

Messer falou de propina com namorada

Myra Athayde recebeu uma mensagem do namorado Dario Messer em agosto de 2018 na qual ele fala que pagou propina ao procurador da Lava Jato, Januário Paludo. A mensagem foi obtida pela Polícia Federal em investigação sobre Messer. A conversa foi relevada pelo UOL.

A citação de Paludo levantou suspeitas de que Messer poderia ter sido protegido por investigadores. Paludo nega relação ou proteção a Messer.

Pacote anticrime contraria Moro

O pacote anticrime foi uma proposta do ministro Moro encaminhada ao Congresso Nacional no ano ado. Durante a tramitação do projeto, foi incluída a mudança nas regras para manutenção das prisões preventivas —isso não fazia parte do texto original.

Moro recomendou em parecer enviado a Bolsonaro o veto da mudança nas regras das prisões aprovado pelo Congresso. Mesmo assim, o presidente sancionou a medida no final do ano ado.