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

Bolsonaro tira da Justiça e dá a pais decisão sobre menores praticarem tiro

7.mai.2019 - O presidente Jair Bolsonaro (PSL) durante cerimônia de  do decreto que flexibiliza possa, porte e comercialização de armas de fogo por colecionadores, atiradores esportivos e caçadores - Evaristo Sá/AFP
7.mai.2019 - O presidente Jair Bolsonaro (PSL) durante cerimônia de do decreto que flexibiliza possa, porte e comercialização de armas de fogo por colecionadores, atiradores esportivos e caçadores Imagem: Evaristo Sá/AFP

Bernardo Barbosa

Do UOL, em São Paulo

08/05/2019 15h41Atualizada em 08/05/2019 15h43

O decreto assinado ontem pelo presidente Jair Bolsonaro (PSL) tirou da Justiça e deu aos responsáveis legais o poder de autorizar que um menor de idade possa praticar tiro desportivo.

Segundo o parágrafo 6º do artigo 36 do decreto, "a prática de tiro desportivo por menores de dezoito anos de idade será previamente autorizada por um dos seus responsáveis legais, deverá se restringir tão somente aos locais autorizados pelo Comando do Exército e será utilizada arma de fogo da agremiação ou do responsável quando por este estiver acompanhado".

A legislação anterior sobre o assunto --um decreto assinado em 2004 pelo então presidente Luiz Inácio Lula da Silva (PT)-- também permitia a prática de tiro desportivo por menores de idade, mas mediante autorização da Justiça.

"A prática de tiro desportivo por menores de dezoito anos deverá ser autorizada judicialmente e deve restringir-se aos locais autorizados pelo Comando do Exército, utilizando arma da agremiação ou do responsável quando por este acompanhado", dizia o texto.

Decreto expande porte de arma

O decreto de Lula foi integralmente revogado pelo que foi assinado ontem por Bolsonaro, cuja finalidade é regulamentar o Estatuto do Desarmamento (lei 10.826 de 2003).

A nova regra para a prática de tiro desportivo por menores de 18 anos é apenas uma das alterações trazidas pelo novo decreto. A medida presidencial também expandiu a quantidade de pessoas que am a ter direito ao porte de arma --ou seja, o direito de andar armado.

O decreto traz ainda regras mais flexíveis para o uso de armas de fogo para os membros da categoria chamada CAC (colecionadores, atiradores esportivos e caçadores).

A Câmara dos Deputados fará um estudo sobre a constitucionalidade do decreto. Segundo o presidente da Casa, Rodrigo Maia (DEM-RJ), a medida é padrão. "Para todo decreto presidencial, há uma análise de constitucionalidade", disse.

Para pesquisadores de segurança pública ouvidos ontem pelo UOL, o decreto ignora estudos científicos que ligam a maior disponibilidade de armas a aumento de mortes, além de burlar restrições previstas no Estatuto do Desarmamento.

Ao o decreto, Bolsonaro negou que a medida desrespeite as leis em vigor.

"Nós fomos ao limite da lei. Não inventamos nada nem amos por cima da lei", afirmou o presidente.

"Nós fomos ao limite da lei", diz Bolsonaro

UOL Notícias