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

Tragédia em Brumadinho

Barragens de mineração serão fiscalizadas ainda neste semestre, diz governo

Barragem 1 da Vale em Brumadinho: antes e depois de se romper - Digital Globe/Reuters
Barragem 1 da Vale em Brumadinho: antes e depois de se romper Imagem: Digital Globe/Reuters

Luciana Amaral

Do UOL, em Brasília

01/02/2019 17h18Atualizada em 01/02/2019 18h14

Uma semana depois da tragédia da Vale em Brumadinho (MG), o governo federal anunciou que fiscalizará todas as barragens de mineração do país até o final deste primeiro semestre de 2019. A informação foi divulgada na tarde desta sexta-feira (1º) pelo porta-voz da Presidência, general Otávio Santana Rêgo Barros. 

"O Ministério do Desenvolvimento Regional, por meio do ministro Gustavo Canuto, informou nesta sexta-feira, dia 1º, que as vistorias às barragens de mineração deverão ser concluídas neste semestre. Os órgãos fiscalizadores já foram informados sobre novo prazo", anunciou o porta-voz.

Segundo levantamento do ministério e da Agência Nacional de Águas (ANA), o Brasil tem 205 barragens com resíduos de mineração, dentre as quais, 70 foram construídas com o método de alteamento a montante -- caso das estruturas de Mariana e Brumadinho, que se romperam.

Na terça (29), o ministro Canuto havia informado que o governo iria concentrar a fiscalização em 3.300 barragens pelo Brasil, classificadas como de alto risco. 

Na ocasião, ele disse que os trabalhos começarão imediatamente por meio dos órgãos fiscalizadores, mas não havia dado prazo para término. Canuto ainda falou que, provavelmente, não há funcionários suficientes para a realização da tarefa. O governo federal poderá remanejar engenheiros de outros órgãos para auxiliá-los, e mais recursos financeiros também poderão ser deslocados se necessário, informou.

O ministério solicitou que entidades fiscalizadoras apresentem, até a semana que vem, a demanda de reforços de mão de obra. A análise dos pedidos ficará sob responsabilidade do Ministério da Economia.

A lista dos empreendimentos que cada órgão de fiscalização deverá vistoriar já foi enviada aos respectivos dirigentes. Os resultados das vistorias serão divulgados todo mês "para dar transparência às ações federais", informou o Desenvolvimento Regional.

"Não é acidente, é chacina"; relatos de parentes das vítimas

UOL Notícias

Tragédia em Brumadinho