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

Familiares revelam dor de perder alguém enquanto Bolsonaro fala em 'mimimi'

Filha compartilha última troca de mensagens com a mãe, morta por Covid-19 - Reprodução/Twitter
Filha compartilha última troca de mensagens com a mãe, morta por Covid-19 Imagem: Reprodução/Twitter

Marcelo Oliveira

Do UOL, em São Paulo

04/03/2021 23h11

Os números sozinhos são frios e não revelam a dor. Mas o testemunho dos que ficam mostra que a pandemia de covid-19 está matando sem escolher idade, lugar e nem é preciso ter alguma comorbidade.

Em Mogi das Cruzes (SP), parentes dormem na porta de hospital à espera da ansiada vaga. Pelo país, faltam não apenas leitos, mas oxigênio, respiradores e os lugares daqueles que partiram nas casas e nos corações de alguém. Para eles, não é mimimi, não é frescura, como hoje disse Bolsonaro.

"Mãe eu tô torcendo por ti"

Giulia emocionou o Brasil ao postar no Twitter as últimas mensagens que trocou com a mãe, Valéria Heloísa, 42, em Esteio (RS).

Ela ganhou "abraços virtuais" de várias pessoas que contaram como se despediram de seus entes queridos mortos pela covid. Fisicamente, Giulia não teve braços ao redor de si.

Uma das piores partes é que ninguém pode/quer vir me ver e dar um abraço por causa da covid-19... vocês não tem noção de como é solitário.
Giulia Dias, 23, estudante de farmácia

Despedida em coma

Após sobreviver a 41 dias intubado com covid, Carlos Eduardo, 54, que não tinha doenças preexistentes, acordou e disse saber que a mãe havia morrido da mesma doença. Ele contou que ela se despediu dele enquanto ele estava em coma, em Santana do Parnaíba (SP).

Minha mãe veio me ver, veio me visitar depois que faleceu. Ela segurou minha mão e disse: 'Filho, não se preocupe'.
Carlos Eduardo, sobrevivente da covid-19

Nova União (RO) decretou luto de três dias pela morte dos pioneiros João e Maria, juntos há 53 anos, que morreram num intervalo de 12 horas.

Nem profissionais da saúde escapam

Técnica de enfermagem Eliandre Boscato morreu enquanto aguardava leito de UTI - Arquivo Pessoal - Arquivo Pessoal
Técnica de enfermagem Eliandre Boscato morreu enquanto aguardava leito de UTI
Imagem: Arquivo Pessoal

A técnica de enfermagem Eliandre Boscato, 43, morreu esperando vaga em São Carlos (SC). A enfermeira Zeni, 53, morreu em Itapema (SC), porque faltou respirador, contou Alexandre, seu namorado.

"A situação é real e precária. Não duvide que hoje não temos vagas e muitas pessoas estão morrendo nas ambulâncias nas portas das UPAs", disse Pedro Julião, médico do Samu (Serviço de Atendimento Móvel de Urgência) em Salvador.

Outro médico, o intensivista Jener Bruno, em Xanxerê (SC), converte o colapso numa imagem: "É ambulância atrás de ambulância". Ele completa o quadro: "Todos os profissionais estão exaustos".

Hoje é 4 de março de 2021. No Brasil, 261.188 mortos. A média móvel recorde foi registrada. Para quem fica a dor é para sempre.