;(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
Logo Pagbenk Seu dinheiro rende mais
Topo

Mesmo antes de aprovação, governo já prevê corte de R$ 10 bi no Orçamento

Ministro da Economia, Paulo Guedes, ao lado do presidente Jair Bolsonaro - SERGIO LIMA/AFP
Ministro da Economia, Paulo Guedes, ao lado do presidente Jair Bolsonaro Imagem: SERGIO LIMA/AFP

Adriana Fernandes e Idiana Tomazelli

Brasília

18/02/2021 13h00

O projeto de Orçamento para este ano não foi ainda nem votado pelo Congresso, mas a área econômica do governo já trabalha com a possibilidade de contingenciar pelo menos R$ 10 bilhões em despesas.

A necessidade de bloqueio poderá ser ainda maior e chegar a R$ 20 bilhões, a depender do espaço orçamentário que os parlamentares encontrarem para cortar despesas durante a votação do projeto, prevista para acontecer entre o fim de março e início de abril.

Até agora, as negociações da nova rodada de auxílio ocorrem fora da Comissão Mista de Orçamento (CMO), que só foi instalada na semana ada. Esse corte chega antes mesmo de qualquer discussão sobre o fortalecimento de programas sociais e é indicativo da dificuldade do governo para pagar uma nova rodada de auxílio emergencial dentro do Orçamento.

O contingenciamento se dá no grupo de despesas discricionárias (não obrigatórias), que incluem investimentos e o custeio da máquina istrativa. Para 2021, os últimos dados da Lei de Diretrizes Orçamentárias (LDO) apontam um valor de R$ 83,9 bilhões para esses gastos, sem considerar as emendas parlamentares indicadas pelos congressistas e que também podem contemplar investimentos. Contabilizando as emendas, os gastos discricionários chegam a R$ 100 bilhões, patamar já considerado muito baixo para o bom funcionamento e gestão da máquina pública.

Segundo apurou o Estadão, a revisão para baixo das previsões de gastos com benefícios previdenciários deve ajudar a compensar, em parte, o aumento das despesas obrigatórias decorrente do Índice Nacional de Preços ao Consumidor (INPC), que está mais alto que o esperado no ano ado. O índice corrige o valor do salário mínimo e a maior parte das despesas obrigatórias do governo. Esse alívio, porém, não será suficiente.

Sem Orçamento votado, o primeiro relatório bimestral de avaliação de receitas e despesas, que tem de ser enviado ao Congresso no dia 22 de março, fica comprometido. É nesse documento que o governo aponta a necessidade de bloqueio para o cumprimento da meta fiscal, que autoriza um rombo de até R$ 247,1 bilhões, e do teto de gastos, a regra que impede o crescimento das despesas acima da inflação. O mais provável é que a lei orçamentária não esteja aprovada até lá. Como a edição seguinte só será divulgada em 22 de maio, o governo deve fazer um relatório extemporâneo para efetivar o corte.

Um dos problemas em 2021 é que o Orçamento já foi enviado com as despesas no limite do teto de gastos, ou seja, sem margem para istrar. Outro agravante é o volume elevadíssimo dos chamados restos a pagar (gastos transferidos de um ano para outro). Essas despesas já foram empenhadas, e o dinheiro usado para pagá-las em 2021 acaba consumindo limite financeiro que seria destinado às despesas novas deste ano.

As informações são do jornal O Estado de S. Paulo.