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

Clint Eastwood vence processo contra uso de seu nome para vender canabidiol

Ator Clint Eastwood vence processo contra uma empresa da Lituânia - Michael Kovac/Getty Images for AFI
Ator Clint Eastwood vence processo contra uma empresa da Lituânia Imagem: Michael Kovac/Getty Images for AFI

Colaboração para o Splash, em São Paulo

04/10/2021 11h51Atualizada em 04/10/2021 12h33

Clint Eastwood, de 91 anos, ganhou um processo que moveu contra uma empresa da Lituânia que vende canabidiol, produto feito à base de maconha, que usou sua imagem sem permissão, e deve receber US$ 6,1 milhões (cerca de R$ 32,7 milhões na cotação atual).

Segundo o site norte-americano "TMZ", o ator e a empresa que cuida de sua imagem, Garrapata, iniciaram dois processos em agosto do ano ado, depois que ele soube que a empresa usou uma entrevista real dada ao programa "Today" e manipulou uma imagem para parecer que Clint endossava os seus produtos feitos com óleo de CDB (composto não-psicoativo da cannabis, liberado nos Estados Unidos em 2018) e outros derivados.

Na montagem, deu-se a entender que Clint estaria desenvolvendo uma "nova linha de CDB" e que se afastaria do ramo artístico para cuidar de seu "negócio de bem-estar". No outro processo, a empresa teria usado um código de programação para colocar o nome do ator e diretor em pesquisas online de produtos do tipo.

No processo, ele deixou claro que nunca conversou com nenhuma delas, e que não aprovava os produtos "sob nenhuma circunstância", apesar de "não expressar ponto de vista sobre os produtos CDB ou sobre essa indústria legítima". Além disso, acusou as empresas de difamação, por fazer crer que ele utilizava as mercadorias vendidas pela rede. A sentença negou o caso de difamação, mas aceitou os argumentos da defesa do ator de que seu nome e imagem haviam sido usados indevidamente.

A multa milionária deve ser paga às duas partes: US$ 6 milhões em indenização, e o restante para pagamento de honorários advocatícios. Além do dinheiro que terão que desembolsar, a empresa da Lituânia também foi proibida de usar o nome, imagem e qualquer conteúdo que tenha semelhança com Clint Eastwood no futuro.