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

Câmara tenta ampliar isenção de energia no Amapá, mas deixa de votar MP

Amapá viveu dias caóticos por conta de sucessivos apagões em novembro                         - MAKSUEL MARTINS/ ESTADãO CONTEúDO
Amapá viveu dias caóticos por conta de sucessivos apagões em novembro Imagem: MAKSUEL MARTINS/ ESTADãO CONTEúDO

Daniel Weterman

Brasília

23/12/2020 07h32

A Câmara se articulou para ampliar a isenção de energia no Amapá após o apagão que atingiu o Estado. A sessão, porém, precisou ser encerrada porque o ano legislativo terminou nesta terça-feira, dia 22 de dezembro. Nenhuma votação poderia ocorrer após a meia-noite. A medida poderá ser pautada novamente em fevereiro.

Os deputados alteraram a MP do governo e ampliaram a isenção da energia elétrica no Amapá. O partido Novo foi contra a ampliação e lançou mão de uma estratégia regimental para alongar a discussão e impedir a votação. A Constituição estabelece que o ano legislativo termine no dia 22 dezembro, o que exigiu o encerramento da sessão antes da meia-noite.

O governo havia dado gratuidade por 30 dias para compensar o blecaute. O texto discutido pelos deputados amplia a isenção por mais seis meses para a população de baixa renda e moradores da área rural. Além disso, o parecer apresentado pelo deputado Acácio Favacho (PROS-AP) concede mais 50% de desconto na fatura da energia elétrica por um mês para as residências.

Para entrar em prática, a mudança precisará ser aprovada no Congresso até o dia 5 de março e ainda ser sancionada pelo presidente Jair Bolsonaro. De acordo com o relator, o impacto da ampliação não vai extrapolar os R$ 80 milhões reservados pelo governo para cobrir a isenção.

O relator fez um discurso pedindo "desculpas" pela Câmara encerrar o ano sem votar a ampliação da isenção. Ele criticou indiretamente os deputados e integrantes da base do governo Jair Bolsonaro por agirem para barrar a votação.

O deputado citou a aprovação de um projeto, na semana ada, que abriu um crédito suplementar para ministérios do governo executarem despesas ainda em 2020. A proposta foi usada pelo Palácio do Planalto como tentativa de atrair apoio para a candidatura de Arthur Lira (PP-AL) à presidência da Casa. "E foi mais de R$ 1 bilhão. Ninguém tem coragem de falar da mesma maneira aqui", disse Favacho.