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

Juristas questionam legalidade de decreto de Bolsonaro que facilitou porte de armas

01.04.2019 - Bolsonaro publica foto com arma e critica desarmamento durante visita a Israel - Reprodução/Instagram
01.04.2019 - Bolsonaro publica foto com arma e critica desarmamento durante visita a Israel Imagem: Reprodução/Instagram

Bruno Ribeiro e Tulio Kruse

08/05/2019 21h44

Especialistas em Direito Constitucional identificaram levantaram dúvidas em relação à legalidade o decreto que facilita o porte de armas de fogo, assinado pelo presidente Jair Bolsonaro nesta terça-feira, 8.

Segundo os juristas ouvidos pelo Estado, o texto publicado pelo governo contraria termos da lei aprovada pelo Congresso para o tema, extrapola as responsabilidades do Executivo, e cria regras novas de forma irregular. Eles ainda alertam que o documento pode ser suspenso tanto pelo Judiciário quanto pelo Legislativo até ser analisado cuidadosamente.

O presidente da Comissão de Segurança Pública da Ordem dos Advogados do Brasil seção São Paulo (OAB-SP), Marcos Soares, afirma que a redação do decreto traz dúvidas que precisam ser sanadas. Ele cita como exemplo a autorização de armas para advogados, que está colocada em um parágrafo do texto que trata dos agentes públicos que terão direito de portar armas de fogo.

"É uma redação duvidosa. São advogados que exercem função de agentes públicos? Procuradores estaduais, federais, municipais, defensores? Ou são todos os advogados, uma vez que exercem função pública? Há margem para discussão", afirma.

Já jurista Wáter Maierovitch, desembargador aposentado do TJ-SP e pesquisador sobre segurança pública, diz que há ao menos dois trechos ilegais no decreto do presidente Bolsonaro.

O primeiro está em relacionar profissões que têm direito ao porte. Maierovitch pontua que o Estatuto do Desarmamento estabelece que o requerente do porte de arma deve "demonstrar a sua efetiva necessidade" de andar armado, " por exercício de atividade profissional de risco". "Ao relacionar as profissões, a obrigação de demonstrar a efetiva necessidade da arma fica afastada", diz o jurista. "Isso contraria a lei", afirma.

O outro ponto ilegal, para ele, é uma trecho do decreto que determina que as autoridades devem presumir a veracidade das informações readas pelos solicitantes do porte de arma. "É uma inversão do ônus da prova. No Direito brasileiro, só atos da istração (pública) tem presunção de veracidade. Aumentando isso, (o presidente) a do poder regulador dele".

Além de apontar problemas legais, Maierovitch, especialista no combate ao crime organizado, critica a liberação cruzando dados de duas estimativas internacionais: a primeira é que 35% das armas vendidas legalmente terminam nas mãos do crime organizado. A segunda é que o Brasil já é um dos grandes exportadores de armas, têm capacidade de fornecer armamento para o mercado interno.

"Na convenção da ONU sobre o crime organizado, em Palermo, em 2000, o comércio de armas ficou de fora por falta de quórum", diz, ao descrever o lobby da indústria bélica para derrubar barreiras às vendas de armas.

'Decreto não pode fazer isso', dizem professores

Para o professor Cláudio Langroiva, especialista em Direito Processual Constitucional da Pontifícia Universidade Católica de São Paulo (PUC-SP), Bolsonaro não poderia ter utilizado um decreto para tratar de temas tão abrangentes, como venda de armas, munição, regras para a concessão do Certificado de Registro, e regras para o porte de armas para várias categorias profissionais. Ele diz que, nos pontos em que o decreto contraria o Estatuto do Desarmamento, a lei federal deve prevalecer.

"Eu acredito que não há essa liberdade para um decreto presidencial quando existe uma lei reguladora. O decreto não pode fazer isso. O decreto tem de estar submetido a uma regulamentação específica para a área", diz Langroiva. "Esse tipo de ação é infeliz porque mostra o desejo de regulamentar certas matérias subvertendo a orgem constitucional legislativa - ou seja, tomar o um papel do Legislativo, que não lhe cabe."

O professor Cláudio Pereira de Souza Neto, que dá aulas de Direito Constitucional na Universidade Federal Fluminense (UFF), considera que há "várias inconstitucionalidades" no texto do decreto. Ele cita como exemplos de presunção, pela autoridade policial, de que declarações de efetiva necessidade para o uso de armas sejam verdadeiras, além da inclusão de categorias como jornalistas e conselheiros tutelares como atividade profissional de risco.

"Esse decreto não regulamenta, ele cria regras novas", diz Souza Neto. "Essa é uma matéria reservada ao legislador. O decreto é um ato istrativo, ele deve apenas regulamentar o texto legal."

Esses especialistas apontam que o documento pode ter efeito suspenso por um decreto legislativo, emitido pelo Congresso Nacional, ou por uma medida liminar no Supremo Tribunal Federal (STF). "Essas incompatibilidades, infelizmente, muito provavelmente acabarão sendo decididas no Judiciário. Caberá às autoridades e ao próprio Ministério Público no questionamento da validade dessa legislação", diz Langroiva.