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

Esse conteúdo é antigo

Corpo de Bruno Pereira é velado e cremado em cerimônia com despedida indígena em Pernambuco; veja

Corpo de Bruno Pereira é velado em cerimônia com despedida indígena em PE

Leonardo Benassatto e Diego Nigro

Da Reuters

24/06/2022 19h41Atualizada em 24/06/2022 21h27

O corpo do indigenista Bruno Pereira, assassinado este mês enquanto investigava ameaças a povos isoladas da Amazônia, foi velado nesta sexta-feira em seu Estado natal de Pernambuco, com uma despedida tradicional indígena antes da cremação.

Pereira, de 41 anos, pai de três filhos, foi cremado após um funeral ao qual compareceram sua família e indígenas que prestaram homenagem ao homem que ou sua carreira estudando e defendendo os povos originários.

Cerca de doze homens e mulheres indígenas do povo Xukuru disseram adeus a Pereira com música e dança, enquanto uma foto dele descansava em cima de seu caixão, coberto com bandeiras de Pernambuco e do clube de futebol Sport Recife.

"Viemos honrar nosso guerreiro, o guerreiro Bruno, que hoje se torna um mártir para todos nós, para a causa indígena", disse Marcos Luidson, líder da comunidade Xukuru em Pernambuco.

Pereira começou a trabalhar na agência indígena Funai em 2010 no Vale do Javari, uma área remota que abriga a maior concentração de povos isolados do mundo.

Foi lá que Pereira e o jornalista britânico Dom Phillips foram assassinados no começo deste mês enquanto estudavam as tentativas dos povos indígenas de se defenderem contra caçadores, garimpeiros, madeireiros e pescadores ilegais.

Pereira foi colocado em licença pela Funai em 2019, após trabalhar com a Polícia Federal em uma operação que destruiu 60 barcos usados por garimpeiros. Anteriormente naquele ano, o presidente Jair Bolsonaro (PL) havia criticado policiais por destruírem equipamentos confiscados de garimpeiros e madeireiros ilegais.

A retirada de Pereira do seu cargo de coordenador na Funai fez parte de uma onda de cortes de funcionários e orçamentos da agência após Bolsonaro chegar ao poder em 2019.

Pereira posteriormente ajudou grupos indígenas a patrulharem o Vale do Javari contra atividades ilegais de invasores, um trabalho perigoso que o fez receber várias ameaças.

Assassinatos de defensores de terras indígenas pularam para 10 tanto em 2019 quanto em 2020, em comparação com cinco nos dois anos anteriores combinados, segundo o grupo de direitos humanos Global Witness.

No funeral, o líder Xukuru Luidson pediu responsabilização por Pereira, Phillips e todos os defensores dos indígenas que foram mortos.

"Quantos outros líderes foram mortos? Quantos guerreiros temos que foram assassinados em torno da luta por território sem visibilidade?... Muitos outros", disse Luidson.

(*Reportagem adicional de Jake Spring e Anthony Boadle)