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

Julgamento sobre ilegalidade do movimento do opositor de Putin é adiado na Rússia

O opositor russo Alexei Navalny numa cela de vidro reservada durante julgamento em Moscou, em fevereiro - AFP/ Moscow"s Babushkinsky district court press service / handout
O opositor russo Alexei Navalny numa cela de vidro reservada durante julgamento em Moscou, em fevereiro Imagem: AFP/ Moscow's Babushkinsky district court press service / handout

Da AFP, em Moscou

17/05/2021 09h20Atualizada em 17/05/2021 09h48

A Justiça russa adiou, nesta segunda-feira (17), o julgamento que decidirá sobre a classificação de "extremistas" às organizações do opositor do Kremlin Alexei Navalny, que está preso. Segundo seus partidários, o objetivo deste processo é silenciar tornar seu movimento ilegal.

Após apenas uma hora de audiência, o tribunal municipal de Moscou adiou o julgamento para 9 de junho. A sessão de hoje transcorreu a portas fechadas.

De acordo com a equipe de advogados "Komanda 29", que defende estas organizações, o Ministério Público apresentou novas provas, que exigiam o adiamento.

A primeira audiência estava prevista para um dia antes da primeira leitura na Duma, a Câmara baixa do Parlamento, de um projeto de lei para proibir que pessoas envolvidas em organizações classificadas como "extremistas" sejam eleitas para esta Casa.

O texto foi elaborado às vésperas das eleições legislativas de setembro, das quais partidários de Navalny pretendiam participar. O principal opositor do Kremlin hoje está preso e inelegível desde janeiro.

Em meados de abril, a Promotoria russa solicitou a classificação de várias organizações ligadas a Navalny como "extremistas". A medida pode acarretar duras penas de prisão para colaboradores e apoiadores do opositor de Vladimir Putin.

Navalny está preso, cumprindo pena de dois anos e meio de prisão, em um caso de fraude de 2014. Ele alega que está detido por motivação política.

A ação da Promotoria mira no Fundo de Luta contra a Corrupção de Navalny (FBK) — conhecido por suas investigações sobre o estilo de vida e as malversações das elites russas —, assim como os escritórios regionais do opositor, que cuidam da organização de manifestações de apoio, ou de atividades pré-eleitorais.

Os escritórios regionais anunciaram sua autodissolução no mês ado, após serem incluídos em abril em uma lista de organizações "extremistas e terroristas" por parte do serviço russo de Inteligência financeira. Esta lista inclui os grupos jihadistas Al-Qaeda e Estado Islâmico (EI).

Segundo a Promotoria, as organizações de Navalny querem "criar as condições de desestabilização da situação social e sociopolítica" na Rússia, sob o manto de "slogans liberais".

Os escritórios dos movimentos opositores e as casas de seus colaboradores têm sido alvo de inúmeras operações de busca e apreensão nos últimos anos. O FBK já, inclusive, classificado como um "agente estrangeiro", em um esforço implacável para silenciá-lo, segundo o próprio Navalny.

Citando uma fonte das forças de segurança, o jornal Kommersant disse, nesta segunda-feira, que o julgamento por extremismo está sendo realizado a portas fechadas, porque, no caso, são citados dados pessoais de membros dos serviços de segurança.

Ivan Zhdanov, um estreito colaborador de Navalny que vive no exterior, rejeitou essa versão, afirmando no Twitter que o caso foi classificado como secreto "para que ninguém possa ver o absurdo que está acontecendo".