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

Governo lança edital para novo trecho da transposição do S. Francisco

20/10/2021 14h57

Foi lançado hoje (20) edital para a construção do Ramal do Salgado, trecho da transposição do Rio São Francisco no Ceará. Com R$ 600 milhões em investimentos públicos, a infraestrutura vai abastecer 54 cidades cearenses, beneficiando 4,7 milhões de pessoas. 

A licitação é para continuação das obras do trecho 3 do Eixo Norte da transposição, que deriva do Ramal do Apodi até o Rio Salgado.

O presidente da República Jair Bolsonaro participou da cerimônia de do edital, nesta quarta-feira, durante evento da Jornada das Águas, em Russas (CE).

Também foi assinada a Ordem de Serviço para início da recuperação e adequação da Barragem Banabuiú, também no Ceará. Com investimentos federais de R$ 15,4 milhões, as obras serão executadas pelo Departamento Nacional de Obras Contra as Secas e devem beneficiar cerca de 20 mil pessoas.

"Essas duas obras que se iniciam no dia de hoje são mais uma prova de que nós não nos preocupamos com obras novas ou obras antigas. Queremos todas elas com o mesmo tratamento", disse o presidente, lembrando que o projeto de transposição do São Francisco começou em 2005.

Durante o evento, Bolsonaro ainda sancionou a Lei 14.225 de 2021, que altera a participação da União no Fundo Garantidor de Infraestrutura, permitindo a utilização dos recursos em projetos de concessões públicas e parcerias público-privadas da União, dos estados e dos municípios. Assim, segundo o Ministério do Desenvolvimento Regional, fica criado o Fundo de Desenvolvimento Regional Sustentável, que será usado para alavancar investimentos em infraestrutura no país, com prioridade para as regiões Norte, Nordeste e Centro-Oeste.

O texto da lei já estava em vigor desde maio, por meio da edição de Medida Provisória, e foi aprovado pelo Congresso Nacional em setembro. A medida também altera regras dos fundos constitucionais do Norte (FNO), do Nordeste (FNE) e do Centro-Oeste (FCO). Esses fundos foram criados para promover o desenvolvimento econômico e social das três regiões por meio do financiamento aos setores produtivos, a exemplo do agronegócio e do turismo. Esse fomento é feito a partir de bancos federais regionais - da Amazônia (Basa) e do Nordeste (BNB) - ou do Banco do Brasil.

Jornada das Águas

A Jornada das Águas começou na segunda-feira (18), em São Roque de Minas, no norte de Minas Gerais, região da nascente do Rio São Francisco, e vai terminar em Propriá, em Sergipe, no dia 28 de outubro.

A viagem de dez dias, liderada pelo ministro do Desenvolvimento Regional Rogério Marinho, percorrerá os nove estados do Nordeste com anúncios e entrega de obras de infraestrutura, preservação e recuperação de nascentes e cursos d'água, saneamento, irrigação, apoio ao setor produtivo e aos municípios, além de ações de governança, com propostas de mudanças normativas no setor.

"Amanhã retornaremos ao Nordeste novamente. Água é vida, água é tudo para quem pouco tem. Se Deus quiser, nos próximos meses concluiremos toda a transposição do São Francisco. Além de concluí-las [as obras], estamos investindo na nascente do São Francisco, fazendo o reflorestamento no nosso estado de Minas Gerais", disse Bolsonaro no evento desta quarta-feira.