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

PM suspende organizada do Flamengo por 90 dias por briga que causou 1 morte

Briga de torcidas antes de Flamengo e Vasco jogarem no Maracanã - Reprodução/Twitter
Briga de torcidas antes de Flamengo e Vasco jogarem no Maracanã Imagem: Reprodução/Twitter
Bruno Braz, Igor Siqueira e Alexandre Araújo

Do UOL, no Rio de Janeiro

07/03/2023 14h32Atualizada em 07/03/2023 14h59

O Batalhão Especial de Policiamento em Estádios (Bepe-RJ) iniciou as punições às organizadas envolvidas nas pancadarias de Flamengo e Vasco —que resultaram em uma morte— suspendendo a organizada "Torcida Jovem do Flamengo" (TJF) pelo período de 90 dias.

O UOL apurou que a "Raça Rubro-Negra" e a "Força Jovem do Vasco" serão notificadas em breve e receberão a mesma sanção.

O presidente da TJF, Bruno Paulino, se comprometeu, em nome da organizada, a cumprir as regras da punição. O UOL teve o ao documento.

As punições incluem também a suspensão de qualquer tipo de adereço que faça referência à agremiação, além da proibição de instrumentos, bandeiras e faixas.

Os líderes de cada núcleo da organizada também ão um termo de compromisso se responsabilizando por cada integrante de seu segmento.

A Associação Nacional das Torcidas Organizadas (Anatorg) solicitará uma redução das penas para 30 dias.

O que aconteceu?

  • Integrantes de organizadas de Flamengo e Vasco entraram em confronto no domingo, antes do jogo válido pelo Campeonato Carioca.
  • Oito pessoas foram hospitalizadas com ferimentos e uma delas morreu.
  • A Anatorg contestou a ação e logística da PM, criticando o planejamento de escolta e policiamento de regiões conhecidas de conflitos.

Os episódios aconteceram em meio ao debate para a de um novo Termo de Ajustamento de Conduta (TAC), etapa da aprovação do projeto de lei que permite o retorno das torcidas organizadas aos eventos esportivos.

O projeto foi discutido na Assembleia Legislativa do Rio de Janeiro (Alerj) no ano ado e previa, dentre os outros pontos, que a punição fosse individual e não para a torcida. Os deputados Zeidan (PT), Martha Rocha (PDT), Luiz Paulo (PSD) e Carlos Minc (PSB) são os autores do projeto.

PM confirma punição

A assessoria de imprensa da Polícia Militar do Rio de Janeiro confirmou —em nota enviada ao UOL— a punição à Torcida Jovem do Flamengo:

"A Assessoria de Imprensa da Secretaria de Estado de Polícia Militar informa que de acordo com o comando do Batalhão Especializado de Policiamento em Estádios (BEPE), uma das torcidas organizadas do Clube de Regatas do Flamengo recebeu uma sanção istrativas de 90 dias em virtude dos fatos ocorridos no clássico contra o Clube de Regatas Vasco da Gama no Estádio do Maracanã."