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

Kassio Marques: críticas ao currículo são incompreensão de regras europeias

Felipe Amorim

Do UOL, em Brasília

21/10/2020 09h28

Em sabatina no Senado, o desembargador federal Kassio Nunes Marques, indicado a uma vaga no STF (Supremo Tribunal Federal) pelo presidente Jair Bolsonaro (sem partido), afirmou que os questionamentos a seu currículo foram causados por "incompreensão" das regras educacionais europeias.

"Aproveito a oportunidade para esclarecer a cronologia da evolução curricular que tanto foi questionada, creio que em razão da incompreensão das regras educacionais europeias", disse Marques.

Marques informou ter concluído dois cursos de pós-doutorado, na Itália e na Espanha, ao mesmo tempo em que obteve o doutorado na universidade espanhola de Salamanca.

Hoje, no Senado, o desembargador disse ter iniciado o doutorado em Salamanca em 2016 e ter feito cursos de pós-doutorado entre 2017 e 2018 nas universidades de Messina, na Itália, e também em Salamanca.

Segundo Marques, as regras nesses países permitem a realização simultânea dos cursos de doutorado e pós-doutorado, mas a titulação desses últimos cursos só pôde ser emitida quando da conclusão do doutorado.

O título de doutor em Direito por Salamanca foi obtido por Marques em setembro deste ano.

Além da cronologia dos títulos acadêmicos, o currículo do desembargador também chamou atenção por um curso de "postgrado" na Universidade de La Coruña, na Espanha, feito em 2014.

Marques informou no site do TRF-1 (Tribunal Regional Federal da 1ª Região) possuir um curso de "postgrado em contratación pública". Mas o título não tem semelhança com o nível de pós-graduação no Brasil.

Aos senadores, o magistrado disse ter sido fiel à denominação espanhola do curso e negou ter tido a intenção de informar um curso de pós-graduação.

"A expressão foi inserida com fidelidade e na forma exata como constou na programação do curso na Espanha. Não há menção em meu currículo sobre pós graduação alguma na Espanha", disse Marques.

"Em algumas comunidades autônomas na Espanha, qualquer curso realizado após a graduação pode receber a denominação postgrado e não guardar nenhuma similitude com o que a expressão pós-graduação significa no Brasil", afirmou o desembargador.

Entenda a sabatina

Kassio Marques, 48, é o primeiro indicado para o STF pelo presidente Jair Bolsonaro (sem partido).

Se aprovado pelo Senado, ele vai ocupar a vaga que foi do ex-ministro Celso de Mello, que se aposentou ao atingir a idade limite de 75 anos.

A presidente da CCJ, senadora Simone Tebet, informou que todos os 81 senadores poderão fazer perguntas ao magistrado. A previsão é de que a sabatina se estenda até a tarde de hoje.

A indicação de Marques vai à votação no plenário do Senado após a sabatina.

Entre os senadores, a expectativa é de que ele seja aprovado.

Para que a indicação ao STF seja confirmada, são necessárias duas votações, uma na CCJ, na qual Marques precisa ser aprovado pela maioria dos votos na comissão, e uma segunda no plenário do Senado, onde é preciso o voto de ao menos 41 senadores.