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

Acordo pré-julgamento indenizará família de George Floyd em US$ 27 milhões

Manifestante segura um retrato de Floyd em frente ao tribunal onde o caso é julgado em Minneapolis  - Chandan Khanna/AFP
Manifestante segura um retrato de Floyd em frente ao tribunal onde o caso é julgado em Minneapolis Imagem: Chandan Khanna/AFP

Do UOL, em São Paulo

12/03/2021 16h43

A família de George Floyd chegou a um acordo hoje para ser indenizada em US$ 27 milhões (R$ 150 milhões) pela cidade de Minneapolis. O acordo, aprovado pelo conselho do município, vem antes mesmo do resultado do julgamento pela sua morte, que começou na última terça-feira (9).

A indenização visa reparar os danos causados pela conduta, principalmente, do ex-policial Derek Chauvin. Então empregado da polícia de Minneapolis, o agente branco provocou a morte de Floyd, um homem negro de 46 anos, ao permanecer com o joelho apoiado sobre o seu pescoço durante quase nove minutos em uma abordagem policial.

Além de Chauvin, a ação civil pública contra a cidade do estado de Minnesota também diz respeito a mais três ex-policiais envolvidos na abordagem a Floyd: Tou Thao, Thomas Lane e J. Alexander Kueng. Na Justiça americana, os três agentes demitidos respondem a processos separados ao de Chauvin.

A família de Floyd moveu a ação baseada na negligência da cidade no treinamento dos seus policiais, que resultou na ação trágica em 25 de maio do ano ado.

Ben Crump, advogado de Floyd, disse por meio de um comunicado que a indenização é histórica e representa um sinal de mudança em relação às respostas da sociedade americana a casos de violência policial contra pessoas negras. Crump lembrou que o vídeo da sua morte repercutiu pelo mundo e gerou uma onda de protestos antirracistas.

"A morte horrível de George Floyd, testemunhada por milhões de pessoas ao redor do mundo, desencadeou um anseio profundo e uma demanda inegável por justiça e mudança", afirmou Crump.

"O fato de que o maior acordo pré-julgamento em um caso de morte por negligência seria pela vida de um homem negro envia uma mensagem poderosa de que a vida dos negros é importante e a brutalidade policial contra pessoas negras deve acabar", acrescentou o advogado.

Julgamento escolhe jurados

O julgamento de Chauvin está hoje na fase de seleção do júri popular. Serão 12 jurados, mas a Justiça americana encontra dificuldades para encontrar pessoas imparciais, que tenham pouco ou nenhum conhecimento sobre o caso, já que a morte de Floyd teve grande repercussão.

O ex-policial de 44 anos teve ontem a inclusão de mais uma acusação no processo contra ele. Além de homicídio doloso e culposo, Chauvin também responderá a uma acusação mais grave, de homicídio em terceiro grau.