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

"Pai amoroso e marido maravilhoso", diz mulher de motorista morto com vereadora

Anderson Gomes, motorista da vereadora Marielle Franco, ao lado da mulher e filho recém nascido, em junho de 2016 - Reprodução
Anderson Gomes, motorista da vereadora Marielle Franco, ao lado da mulher e filho recém nascido, em junho de 2016 Imagem: Reprodução

Marina Lang

Colaboração para o UOL, no Rio

15/03/2018 11h37Atualizada em 15/03/2018 17h49

O motorista Anderson Pedro Gomes, 39, assassinado junto à vereadora Marielle Franco (PSOL), na noite desta quarta-feira (14), no centro do Rio de Janeiro, era visto como um "pai muito amoroso" e um "marido maravilhoso", por sua mulher, a funcionária pública Agatha Arnaus Reis. Anderson deixa um filho de um ano.

O sepultamento de Anderson acontece no Cemitério de Inhaúma, zona norte. O enterro da vereadora também ocorre na tarde de hoje no Cemitério do Caju.

Com lágrimas nos olhos e voz trêmula, Agatha falou sobre o marido com jornalistas na porta do IML (Instituto Médico Legal), nesta quinta-feira (15).

"A dor é maior. A revolta é claro que eu sinto, mas a gente acaba se acostumando. No final das contas, é mais um. É uma frase clichê, mas é isso. Acaba que não só é eu [sofrendo], são várias pessoas. A revolta acaba ficando para trás porque a dor é muito maior do que ficar perdendo tempo se revoltando com alguma coisa", declarou.

Anderson assumiu o cargo de motorista de Marielle havia dois meses, após um acidente do motorista oficial da vereadora. Antes, dirigia pelo Uber.

"A gente tá vivendo um momento horrível. E Deus levou meu marido, não sei com que propósito. Ainda é difícil aceitar", disse mais cedo a mulher do motorista à TV Globo. Segundo ela, o marido fazia bico para sustentar a família.

"Ele era uma boa pessoa. Um trabalhador, um pai muito amoroso, um marido maravilhoso. A melhor pessoa que eu conheci na minha vida", disse ela. Casados há quatro anos, ambos têm um filho que completa dois anos em maio.

"Nosso filho nasceu com uma má formação e nós amos vários percalços com ele. Então as coisas fizeram com que a gente ficasse mais agarrado [ao filho]. Ele era um pai muito amoroso. Ele sempre esteve do lado, era louco pelo filho. É difícil até pensar em como vai ser sem ele e explicar [a morte] para uma criança. É simplesmente horrível", desabafou.

Ela negou que Anderson tivesse engajamento político. "Ele nunca foi atuante, nós nunca fomos muito atuantes e engajados. Não tínhamos uma visão muito definida [sobre política]", disse.

O motorista foi atingido ao menos três vezes na lateral das costas. Marielle foi alvejada quatro vezes na cabeça. Ao todo, o carro foi baleado nove vezes.

Para a Polícia Civil, a principal linha de investigação é de homicídio doloso, com intenção de matar, já que os criminosos atiraram e fugiram sem roubar nada.