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

Espero que presidente se dedique ao desemprego, diz Rui Costa após críticas

Rui Costa (PT), governador da Bahia - Alberto Coutinho/Governo da Bahia
Rui Costa (PT), governador da Bahia Imagem: Alberto Coutinho/Governo da Bahia

Alexandre Santos

Colaboração para o UOL, em Salvador

17/02/2020 12h51

O governador da Bahia, Rui Costa (PT), afirmou hoje, ao rebater críticas sobre a morte do ex-PM Adriano da Nóbrega, não ser gestor de ocorrências policiais nem ter "estudado" para desempenhar a função. Ele voltou a reagir a críticas do presidente Jair Bolsonaro (sem partido) sobre a ação policial que terminou com a morte do acusado de chefiar a milícia Escritório do Crime.

"Espero que o presidente da República possa dedicar seu tempo a cuidar do desemprego, a cuidar do aumento da pobreza. Voltou a crescer o número de pobres. De parar de tirar Bolsa Família do Nordeste. O país está ficando mais pobre, mais desigual", disse. "O presidente, em vez de cuidar dos problemas eventualmente dos seus filhos, poderia cuidar dos problemas do país. Eu não quero polêmica com o presidente da República. Eu que quero governar e com paz, como eu fiz até aqui."

As declarações foram dadas na manhã de hoje, dois dias após o petista trocar acusações com Jair Bolsonaro, que culpa a PM baiana por ter supostamente executado o ex-capitão do Bope do Rio, no último dia 9, no município de Esplanada (a 170 km de Salvador).

"Durante todos os dias posteriores ao evento, à ocorrência, eu procurei restringir essa temática a uma operação policial, uma operação que envolve o Ministério Público. O governador não é gestor de operações policiais nem gestor de ocorrências com criminosos e marginais. Eu não estudei para isso. Quem estudou e foram treinados são os policiais", disse Rui Costa, em conversa com jornalistas durante anúncio de ações para o Carnaval baiano.

No sábado (15), em uma entrevista no Rio, Bolsonaro disse que quem matou Adriano foi a PM da Bahia, "do PT". "Quem é o responsável pela morte do capitão Adriano? PM da Bahia, do PT. Precisa falar mais alguma coisa?", disse o presidente. Em resposta pelo Twitter, Rui Costa disse que o governo da Bahia não mantém laços de amizade nem presta homenagens a bandidos nem procurados pela Justiça.

PMs agiram dentro da lei, diz Rui Costa

O governador voltou a defender a atuação das forças de segurança baianas, já que, em sua avaliação, os agentes estavam diante de um fugitivo disposto a revidar a ação.

"Eles agiram dentro da lei. Qualquer cidadão que não tem nada a temer faria? Iria se apresentar. O que ele estava fazendo seguidamente era fugir da ordem policial. Fugiu da primeira vez e tentou fugir da segunda, desferindo tiros contra os policiais."

Sobre sua reação à fala de Bolsonaro, Rui Costa afirmou que não se calará.

"Eu não me calarei quando a Bahia for agredida. Quando os baianos forem agredidos independente de quem estiver agredindo os baianos. Minha manifestação foi sair em defesa da Bahia e em defesa do baiano. Toda e em qualquer vez que a Bahia for agredida, eu sairei em defesa", disse.