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

Prefeitura do Rio vai construir parque na comunidade da Muzema

Prefeitura inicia a demolição manual de prédios condenados na comunidade da Muzema - Gabriel Sabóia/UOL
Prefeitura inicia a demolição manual de prédios condenados na comunidade da Muzema Imagem: Gabriel Sabóia/UOL

24/04/2019 15h21

O prefeito do Rio de Janeiro, Marcelo Crivella, anunciou hoje que vai construir um parque na parte alta da comunidade da Muzema, onde dois prédios desabaram no dia 12, deixando 24 mortos e sete feridos. A informação foi divulgada por meio de um vídeo distribuído pela assessoria de imprensa da prefeitura.

"Lá no alto da Muzema é uma área de preservação ambiental, será feito um parque, inclusive em memória às vítimas. É importante que esse momento doloroso, trágico, muito triste que aconteceu na cidade do Rio de Janeiro nos dê uma lição inesquecível, de que para construir é necessário ter as devidas licenças dos órgãos competentes, para que nunca mais a gente sofra o sofrimento que amos com as mortes na Muzema."

No vídeo, Crivella diz que as demolições de outros prédios irregulares no condomínio Figueiras do Itanhangá começaram hoje e que os edifícios com moradores estão escorados para que as pessoas possam entrar para retirar seus bens.

Ao lado do prefeito no vídeo, o secretário municipal de Infraestrutura e Habitação, Sebastião Bruno, detalhou que serão demolidos ao todo 16 prédios no local. "Começamos o primeiro hoje. Essas demolições terão que ser muito cuidadosas, porque ainda tem prédios ocupados ao lado dos que vão ser demolidos. A maioria vai ser na marreta, com mão de obra, muito poucos prédios poderão ser demolidos com equipamentos. É um processo lento, mas que começa hoje e vai até o final".

Demolição

O trabalho de demolição que começou hoje está sendo feito pela Secretaria Municipal de Conservação (Seconserva), com o uso de uma retroescavadeira. Nesta primeira etapa, serão demolidos os dois prédios vizinhos aos que desabaram.

Pela manhã, o trabalho começou no prédio de três andares, ainda em construção, no lado esquerdo do local da tragédia. Foi retirada manualmente uma estrutura de madeira que daria e para a construção do quarto andar e a máquina entrou em ação ao meio dia.

Segundo informações readas no local, o prédio à direita, com oito andares, vai começar a ser escorado hoje. Apenas após esse reforço estrutural a Defesa Civil poderá entrar no prédio para avaliar as condições de segurança para que os moradores possam retirar móveis ou apenas pertences pequenos, a depender da condição estrutural do edifício. Segundo a Seconserva, é possível que esse escoramento só seja concluído amanhã.

Apesar de ainda não estar totalmente concluído, o prédio, que tem a fachada com acabamento em ladrilhos vermelhos, já era habitado por quatro famílias, nos andares mais baixos.

A assessoria de imprensa da secretaria informou que, por enquanto, não vai retirar os escombros do local, para evitar que novas construções surjam no terreno.