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

Alicia Klein

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Robinho é, oficialmente, mais um estuprador à solta

Robinho, ex-jogador de futebol condenado a nove anos de prisão na Itália por estupro coletivo - Ettore Chiereguini/AGIF
Robinho, ex-jogador de futebol condenado a nove anos de prisão na Itália por estupro coletivo Imagem: Ettore Chiereguini/AGIF

19/01/2022 12h21

Receba os novos posts desta coluna no seu e-mail

Email inválido

Há mais de um ano, em 10 de dezembro de 2020, publiquei aqui uma coluna intitulada "Pode chamar Robinho de estuprador agora?". Ele fora condenado em segunda instância pela justiça italiana e ainda havia quem asse pano, afinal sua sentença não era definitiva.

Agora é. Robinho, aos olhos da lei italiana e de qualquer pessoa que não duvide dos fatos (e das vítimas), é um estuprador. Ponto, parágrafo.

A audiência que cravou sua condenação durou meia hora, com direito a oestação ao seu advogado, por insistir na abjeta demonização da vítima. A equipe jurídica do jogador criou um dossiê mostrando fotos das mídias sociais da mulher atacada, supostamente tentando provar que ela bebia. Assim como eu bebo e muitos de vocês bebem, o que aparentemente justificaria sermos violentados.

O que mais me entristece - além do ato em si, portador de inúmeros gatilhos para tantas de nós que já sofremos algum tipo de violência - é saber que dificilmente o estuprador Robinho sofrerá a punição que merece.

Claro, talvez ele não consiga mais atuar por um grande clube e precise terminar a carreira vivendo de renda. Pobrezinho. Talvez perca qualquer patrocínio que ainda lhe reste ou o apoio de alguns amigos e familiares. Coitado. Talvez seja xingado nas redes sociais, chamado de estuprador. Que tragédia.

Não. Tragédia é se juntar aos amigos e estuprar uma mulher vulnerável. Tragédia é poder fazer isso e não ser preso. É poder acompanhar um julgamento de condenação praticamente certa sabendo que a impunidade é igualmente provável.

O Brasil - especialmente este Brasil atual - importa-se pouco com as mulheres. Com a nossa dignidade, saúde ou mesmo vida. Este Brasil não vai extraditar um estuprador seu para cumprir pena na Itália. Vai guardá-lo aqui mesmo, com carinho, para que possa seguir sua vida em paz.

Já a vítima, como sabemos, nunca mais viverá em paz. Seu trauma é permanente.

Desejo apenas que ela possa encontrar acolhimento entre as pessoas amadas. Que consiga ser feliz. Que sinta algum consolo em saber que a justiça de seu país não abandonou-a.

E desejo, com igual vigor, que Robinho apodreça. Que a justiça o alcance e que, um dia, ele pague, de verdade, pelo crime nojento que cometeu. É o mínimo.