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

Carla Araújo

REPORTAGEM

Texto que relata acontecimentos, baseado em fatos e dados observados ou verificados diretamente pelo jornalista ou obtidos pelo o a fontes jornalísticas reconhecidas e confiáveis.

Haddad escolhe ex-BNDES e ex-sócio de Armínio para Secretaria de Reformas

Futuro ministro da Fazenda, Fernando Haddad, durante coletiva no CCBB, em Brasília - Ton Molina/Fotoarena/Estadão Conteúdo
Futuro ministro da Fazenda, Fernando Haddad, durante coletiva no CCBB, em Brasília Imagem: Ton Molina/Fotoarena/Estadão Conteúdo

Do UOL, em Brasília

22/12/2022 08h56

Receba os novos posts desta coluna no seu e-mail

Email inválido

O futuro ministro da Fazenda, Fernando Haddad (PT), vai anunciar nesta quinta-feira (22) outros membros de sua equipe e também a criação da Secretaria de Reformas, que ficará sob o comando do advogado Marcos Barbosa Pinto, que foi sócio por sete anos do ex-presidente do Banco Central, Arminio Fraga, na Gávea Investimentos.

Barbosa Pinto trabalhou com Haddad, em 2003, no Ministério do Planejamento do primeiro governo de Luiz Inácio Lula da Silva (PT). Juntos, os dois formularam a lei das PPPs e a lei do Prouni.

Segundo apurou a coluna, o convite para que Barbosa assuma o cargo no governo aconteceu na última segunda-feira em uma conversa em Brasília. O futuro secretário, no entanto, não estará no anúncio de hoje, pois já tinha marcado uma viagem com a família.

Apesar de já ter anunciado o economista Bernard Appy como secretário especial para a reforma tributária, Haddad decidiu transformar a secretaria de reformas econômicas na Secretaria de Reformas e deixará sob a responsabilidade de Barbosa Pinto as demais reformas regulatórias e as microreformas.

Pivô da demissão de Levy

Barbosa Pinto, que foi chefe de gabinete de Demian Fiocca na presidência do BNDES (2006-2007), chegou a ser convidado por Joaquim Levy em 2019 para assumiu o cargo de diretor de Mercado de Capitais do BNDES.

A escolha do advogado e o seu ado com agens pelo governo petista, porém, irritou o presidente Jair Bolsonaro (PL) que ameaçou demitir Levy, mesmo sem a anuência de Paulo Guedes, caso Barbosa Pinto não fosse exonerado.

Na ocasião, Barbosa Pinto entregou sua demissão, mas o episódio acabou culminando também com a saída de Levy do governo Bolsonaro.

Em sua carta de demissão, Barbosa Pinto lamentou o descontentamento de Bolsonaro e disse que acreditava que poderia contribuir na implementação de reformas econômicas importantes para o país. "Tenho muito orgulho da carreira que construí ao longo dos anos, seja no governo, seja na academia, seja no mercado financeiro", afirmou.

Na época, Haddad fez uma publicação do Twitter para comentar a saída de Barbosa Pinto. "Reconhecimento: Marcos Barbosa Pinto, pivô da demissão de Levy do BNDES, me assessorou na formatação de 2 projetos de lei: Prouni e PPP. Sua contribuição técnica foi inestimável para o sucesso destas iniciativas. Bozo não conseguiria conviver com tanto talento!", escreveu o petista.

Mestre em direito pela Universidade de Yale (EUA) e doutor pela Universidade de São Paulo (USP), Barbosa Pinto também tem agem pela diretoria da CVM (Comissão de Valores Mobiliários).