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

Rússia mantém sentença de 9 anos para estrela do basquete Brittney Griner

A jogadora de basquete da WNBA, Brittney Griner, teve recurso negado pela justiça russa. - KIRILL KUDRYAVTSEV/AFP
A jogadora de basquete da WNBA, Brittney Griner, teve recurso negado pela justiça russa. Imagem: KIRILL KUDRYAVTSEV/AFP

25/10/2022 11h10

Um tribunal russo rejeitou nesta terça-feira (25) recurso da estrela norte-americana de basquete Brittney Griner contra uma sentença de nove anos por posse e contrabando de cartuchos de vape contendo óleo de cannabis.

Griner e seus advogados pediram absolvição ou pelo menos uma redução da sentença, que eles disseram ser desproporcional ao delito e em desacordo com a prática judicial russa.

Depois de se retirar por não mais de 30 minutos para considerar o recurso, o juiz principal disse que o veredicto original estava mantido "sem alterações", exceto pela contagem do tempo de prisão preventiva como parte da sentença.

Griner, duas vezes medalhista de ouro olímpica, foi presa em 17 de fevereiro em um aeroporto de Moscou, uma semana antes de a Rússia enviar tropas para a Ucrânia. Seu caso foi inevitavelmente visto no contexto da crise que se seguiu nas relações EUA-Rússia.

Washington foi rápida em responder ao veredicto.

"Estamos cientes das notícias da Rússia de que Brittney Griner continuará detida injustamente em circunstâncias intoleráveis, depois de ter que ar por outro processo judicial simulado hoje", disse o assessor de segurança nacional da Casa Branca, Jake Sullivan, em comunicado.

Segundo ele, os Estados Unidos "continuarão a se envolver com a Rússia" para trazê-la para casa.

O promotor disse que a sentença proferida em 4 de agosto para Griner era "justa", mas Alexander Boykov, um dos advogados da atleta, afirmou ao de três juízes em Krasnogorsk, nos arredores de Moscou:

"Nenhum juiz vai dizer honestamente que a sentença de nove anos de Griner está de acordo com a lei criminal russa."

Ele listou uma série do que disse serem falhas processuais na condenação de Griner e defendeu absolvição, mas pediu que "se o tribunal quiser puni-la, [deveria] dar-lhe um novo veredicto 'justo' e mitigar a punição".

"A severidade e crueldade da sentença aplicada a Griner chocam as pessoas em todo o mundo", declarou ele.

Autorizada a fazer uma declaração final por link de vídeo ao vivo do centro de detenção na cidade de Novoye Grishino, nos arredores de Moscou, Griner disse como sua detenção de oito meses e dois julgamentos foram estressantes.

"Eu mal superei a quantidade indicativa [de óleo de cannabis]... As pessoas com crimes mais graves receberam menos do que me deram", declarou.

Ela disse que usava cannabis medicinal para aliviar a dor de uma série de lesões esportivas. Os usos recreativos e medicinais são proibidos na Rússia.