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

José Paulo Kupfer

Para manter teto de gasto, governo faz Renda Cidadã com pedalada e calote

28/09/2020 18h58

Receba os novos posts desta coluna no seu e-mail

Email inválido

Depois de desistir do Renda Brasil, o governo apresenta agora o Renda Cidadã. Entre um programa e outro, uma redução do número de beneficiados e um corte no valor do benefício.

O Renda Cidadã é menos ambicioso do que o Renda Brasil, mas ainda assim esbarra na mesma limitação que fez o presidente Jair Bolsonaro abandonar o Renda Brasil: a regra do teto de gastos.

Não há como adotar um programa de renda básica, com recursos acima do que hoje é destinado ao Bolsa Família, sem tirar dos pobres ou sem quebrar a regra do teto. Uma terceira alternativa obriga o governo a fazer dribles no teto ou promover pedaladas em gastos públicos.

A apresentação do Renda Cidadã, nesta segunda-feira (28), mostrou que o governo está tentando escapar da quebra do teto com a terceira opção. Pretende financiar o acréscimo de R$ 25 bilhões a R$ 30 bilhões aos R$ 32 bilhões anuais gastos com o Bolsa Família, com a transferência mensal de algum valor entre R$ 200 e R$ 300 por família, chegando a uma despesa total na vizinhança de R$ 60 bilhões por ano, com manobras extraorçamentárias heterodoxas.

Para bancar o Renda Cidadã sem tirar dos pobres para dar aos paupérrimos, como proibiu o próprio Bolsonaro quando chutou o Renda Brasil para escanteio, a equipe do ministro da Economia, Paulo Guedes, e as lideranças da base aliada no Congresso, querem se apropriar de um pedaço do Fundeb (Fundo de Manutenção e Desenvolvimento da Educação Básica e de Valorização dos Profissionais da Educação) e jogar para frente uma parte dos precatórios devidos pela União.

A "solução" encontrada, em português corrente, é uma pedalada fiscal, com um calote como um de seus elementos. A pedalada pode ser localizada na ideia de usar um percentual do Fundeb, que está fora do teto de gastos, para financiar a Renda Cidadã. O calote vem do espaço aberto com a postergação do pagamento de parte dos precatórios, que é uma despesa obrigatória.

"Limitar pagamento de precatórios é eufemismo para dizer que se empurrará com a barriga um pedaço relevante dessas despesas (obrigatórias)", escreveu em sua conta no Twitter o economista Felipe Salto, diretor executivo da IFI (Instituição Fiscal Independente), órgão vinculado ao Senado Federal, de exame das contas públicas, "Quanto a usar 5% do Fundeb, é preocupante, pois pode representar by no teto de gastos".

Embora conte com o apoio da base aliada no Congresso, os coelhos que o governo tirou da cartola para pôr de pé a Renda Cidadã levaram desconfiança aos mercados de ativos. A Bolsa, literalmente, sentiu o golpe e mergulhou forte, na contramão dos principais pregões internacionais.

Também a cotação do dólar alçou voo, fazendo com que o real fosse a moeda mais desvalorizada do dia. No mesmo sentido, a curva de juros futuros deu mais uma empinada. Tudo isso ocorreu num dia em que as notícias sobre a marcha da economia e as expectativas para o futuro próximo foram positivas.

Em seus pronunciamentos no lançamento do programa Renda Cidadã, tanto Bolsonaro quanto Guedes destacaram a preocupação do governo com a garantia da confiança dos investidores na economia brasileira, expressa para firme decisão de manter o teto de gastos. O problema é que o teto de gastos, como foi desenhado, não tem a capacidade de assegurar confiança de ninguém.

A cada dia que a, na verdade, vai ficando mais claro que se trata de regra inexequível, politicamente impossível de ser cumprida. Quem iria confiar numa regra inexequível como forma de evitar descontrole dos gastos e, em consequência, explosão da dívida pública?

A verdade é que, desde que foi adotado, o teto espremeu, progressivamente, o espaço para investimentos públicos, inclusive aqueles cruciais em ampliação ou, pelo menos, manutenção da infraestrutura produtiva básica. Sem a indução do setor público, em codições de infraestrutura básica insuficiente, são praticamente nulas as chances de que os investimentos privados se apresentem.

Sob o desenho adotado, o teto de gastos só permite a ampliação de despesas nominais a cada ano, pois obriga a istração pública federal a restringir seus gastos ao volume total existente em 2017, apenas corrigido pela inflação do ano anterior. Isso significa que, qualquer ganho de receita pública, com a expansão da economia ou mesmo elevação de tributos, só poderá ser utilizada para abatimento da dívida federal.

Controles de gastos públicos são indispensáveis em qualquer sociedade democrática. Sem eles, o governante de turno ficaria livre para avançar em ações populistas, garantindo apoio político às custas da ruína da economia. Mas há controles e controles, como é fácil observar em outros países. Nenhuma outra regra de controle se assemelha ao teto de gastos brasileiro, na rigidez e ausência de válvulas de escape. Por que só a norma brasileira estaria correta?