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

Flávio Bolsonaro diz que não fez nada de errado e está à disposição da Justiça

O deputado e senador eleito, Flávio Bolsonaro (PSL-RJ) - Filipe Cordon/ Folhapress
O deputado e senador eleito, Flávio Bolsonaro (PSL-RJ) Imagem: Filipe Cordon/ Folhapress

Constança Rezende

Rio de Janeiro

21/12/2018 18h23

O deputado estadual Flávio Bolsonaro (PSL-RJ), eleito senador em outubro, afirmou nesta sexta-feira (21), por meio de nota, que "não é investigado, e não fez nada de errado" a respeito de procedimento do Ministério Público do Rio de Janeiro que analisa movimentações atípicas na conta de seu ex-assessor Fabrício Queiroz, apontadas pelo Coaf (Conselho de Controle de Atividades Financeiras).

A assessoria de imprensa de Flávio também declarou que ele "estará à disposição das autoridades competentes, por ser o principal interessado na elucidação dos fatos".

O MP informou que, "dando prosseguimento às investigações", enviará um ofício à Presidência da Assembleia Legislativa do Estado do Rio de Janeiro (Alerj) sugerindo o comparecimento de Flávio Bolsonaro no MP, no dia 10 de janeiro, para que preste esclarecimentos acerca dos fatos apontados pelo Coaf.

O conselho identificou movimentação atípica de R$ 1,2 milhão em uma conta no nome de Queiroz, entre janeiro de 2016 e janeiro de 2017 e um ree de R$ 24 mil para a futura primeira-dama Michelle Bolsonaro --o presidente eleito disse que se tratava do pagamento de uma dívida antiga do policial militar com ele.

As transações atípicas foram reveladas pelo jornal "O Estado de S. Paulo", no último dia 5. Desde a divulgação dos dados, Queiroz não se justificou em público. Ao Estado, o ex-assessor disse que não sabia nada sobre o assunto.

O nome de Queiroz consta na folha de pagamento da Alerj de setembro com salário de R$ 8.517. Ele era lotado com cargo em comissão de Assessor Parlamentar III, símbolo CCDAL-3, no gabinete de Flávio Bolsonaro. Conforme o relatório do Coaf, ele ainda acumulava rendimentos mensais de R$ 12,6 mil da Polícia Militar. Ele foi exonerado no último dia 15 de outubro.