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

Saída de André do Rap da cadeia em uma BMW é um deboche, diz Doria

Do UOL, em São Paulo

14/10/2020 13h02

O governador de São Paulo João Doria (PSDB) voltou hoje a criticar a soltura de André Oliveira Macedo, o André do Rap, acusado de chefiar o PCC (Primeiro Comando da Capital). Doria disse que a determinação do ministro Marco Aurélio Mello, do STF (Superior Tribunal Federal), gerou uma cena de "deboche", com André saindo "pela porta da frente" da Penitenciária de Presidente Venceslau, no interior paulista.

"A imagem do André saindo do presídio de segurança máxima de São Paulo pela porta da frente e ingressando em uma BMW é um deboche, um deboche à opinião pública, à polícia de São Paulo, deboche a quem acredita que o crime deve ser condenado. E que condenados devem cumprir prisão na cadeia", afirmou o governador em entrevista coletiva no Palácio dos Bandeirantes, em São Paulo.

Ainda na segunda-feira (12), dois dias após André do Rap deixar o presídio paulista e se tornar foragido, Doria já havia classificado a decisão de Marco Aurélio como um "erro profundo". O governador paulista também disse que o traficante já deveria estar "na Bolívia ou no Paraguai".

Hoje, Doria acrescentou que André do Rap também pode estar na Colômbia e voltou a lembrar a última caçada ao traficante, que terminou após seis anos, com sua prisão pela polícia paulista em Angra dos Reis (RJ), em setembro do ano ado. Ontem, André do Rap já entrou para a lista de procurados da Interpol e do Ministério da Justiça e Segurança Pública.

"A Polícia demorou meses para prendê-lo em Angra dos Reis. É um milionário que enriqueceu às custas das vidas das pessoas, do tráfico internacional, e já levou à morte muitos jovens que consomem cocaína e outras drogas. É lamentável que um líder do PCC tenha sido libertado por um magistrado vivido como Marco Aurélio. Lugar de bandido é na cadeia", afirmou Doria.

O governador paulista ainda disse confiar que decisões como essa não mais acontecerão por conta do julgamento que o STF fará na tarde de hoje, quando o plenário da Corte votará sobre o caso. Na prática, o Supremo debaterá sobre o acerto entre a decisão de Marco Aurélio e a do presidente do STF, Luiz Fux, que suspendeu o habeas corpus concedido pelo colega no último sábado (10), horas após André do Rap ter deixado a prisão.

"Estou confiante na decisão que hoje à tarde o STF deverá chegar e seguramente a justa interpretação desse traficante", disse Doria.