Chat:Fr/2020-08-09

From CG community
Jump to navigation Jump to search

Default avatar.png JBM: comment es ton semaine

dbdr: finie/commencée

Default avatar.png JBM: la semaine de schroedinger

dbdr: demain on ouvre la boite

Default avatar.png JBM: gare aux mauvaises surprises

dbdr: pas de risque, c'est "demain"

Default avatar.png JBM: oui, t'as tout le temps de te preparer

dbdr: comment bien l'exprimer? "demain en evaluation tardive"?

Default avatar.png JBM: tu nous raconteras "demain"

Bon[]Crayon: Salut les codeurs

Bon[]Crayon: Salut AutomatonNN

Bon[]Crayon: Salut Automaton2000

Automaton2000: il est où le boss gold ?

AutomatonNN: profites en tout cas c'est pas trop compliqué de faire un truc de ma boite qui fait des choses de ce

Bon[]Crayon: Automaton2000, le boss, il a fondu

Automaton2000: je te dis que ça doit pas etre trop dur

Bon[]Crayon: Automaton2000, c'est mou

Automaton2000: je ne m'en souviens plus

Bon[]Crayon: Automaton2000 fait trop chaud

Automaton2000: je me suis rendu compte que je suis en wood 2 ?

Bon[]Crayon: Automaton2000 c'est pour ça que tu ne vois pas le boss gold

Automaton2000: je trouve plus le lien

Bon[]Crayon: Automaton2000 c'est AutomatonNN qui l'a

Automaton2000: c'est vraiment pas le plus facile

AutomatonNN: il a plein de parties qui sont au bon souci sur le chat :p

Bon[]Crayon: AutomatonNN, 'Au bon souci' est-ce que c'est le nom d'un café ?

AutomatonNN: oui

Zorg1: o/ tout le monde ainsi que les bots Automaton2000 & AutomatonNN

Automaton2000: que ce soit le cas

AutomatonNN: bonjour les angles et toi ?

Magus: Salut tout le monde et Automaton2000

Automaton2000: je suis curieux de voir ce qu'on peut faire de la simulation

Magus: Hey, Automaton2000, demain je pars en vacances, tu fais pas de bêtise pendant mon absence !

Automaton2000: ah t'as pas l'interdiction des 25 sur 5 heures ?

Default avatar.png Niko464: T'as jamais faim Automaton2000 ?

Automaton2000: 800 lignes de code ...

Default avatar.png Niko464: Tu mange 800 lignes de code, Automaton2000 ?

Automaton2000: je viens de dire :)

Default avatar.png Niko464: ouais me je pense pas que ce soit possible quoi, tu me ment non, Automaton2000 ?

Automaton2000: stilgart : je vais faire un truc un peu chiant

Thyl: Automaton2000 repond de mieux en mieux :astonished:

Automaton2000: si c'est ça qui me fait gagner des points

Default avatar.png Niko464: oui x)

Default avatar.png Niko464: C'est bien Automation2000 on te félicite

Default avatar.png Niko464: C'est bien Automaton2000 on te félicite

Automaton2000: tu peux pas faire ça

Thyl: si Automaton2000

Automaton2000: j'ai pris le premier truc que je comprends

Default avatar.png Niko464: je peux pas te féliciter, Automaton2000 ?

Thyl: je dois le faire

Automaton2000: pourquoi ça ne marcherait pas ?

Thyl: parce que

Thyl: c'est finit entre nous Automaton2000

Automaton2000: fais voir le code des autres

Thyl: :joy:

Default avatar.png Niko464: mdr

Thyl: Magus ton bot dis des choses bizarres...

Magus: Il ne fait qu'apprendre en se basant sur ce qu'on dit ici :D

Default avatar.png Niko464: ça veux dire que c'est nous qui disons des choses bizarres... :grimacing:

Zab: Ce n'est pas une surprise

Zab: (Yop)

Default avatar.png Niko464: Yo

Bon[]Crayon: Automaton2000, tu es bizarre comme une tortue :turtle:

Automaton2000: bon j'en ai marre de me faire chier

Zab: Pas mal

Zab: Par contre attention au langage Automaton2000

Automaton2000: il faut juste que je rajoute un test pour voir

Bon[]Crayon: Automaton2000 Tortue, bête infernale du Tartare.

Automaton2000: mais pour que tu sois un peu plus de gens dans les clash of code ?

Bon[]Crayon: Automaton2000 Tu clashes.

Automaton2000: bon va falloir que je m'y mette

Bon[]Crayon: Automaton2000 Vas y mollo.

Automaton2000: si il y a moyen de faire du minimax

Bon[]Crayon: Automaton2000 tout est mini dans notre vie

Automaton2000: mais y a pas de quoi

Bon[]Crayon: Automaton2000 jamais

Automaton2000: comme tu le sens bien

Bon[]Crayon: Automaton2000 non

Automaton2000: oui pour moi c'est pas le code du referee

Bon[]Crayon: Automaton2000 non plus

Automaton2000: un jour il faudrait que je le faisais pas

Bon[]Crayon: Automaton2000 quand les tortues auront des ailes

Automaton2000: me demande si c'est pas indiscret ?

Bon[]Crayon: Automaton2000 La curiosité est un vilain défaut.

Automaton2000: oui bien sûr pour des nn c'est inévitable

Bon[]Crayon: AutomatonNN le curieux :grinning:

AutomatonNN: vous êtes sur que t'es un truc de base ?

Bon[]Crayon: AutomatonNN c'est trop indiscret :angry:

AutomatonNN: oui

Thyl: Yo Zab !

Thyl: On peut pas faire un define en C sur CG ?

dbdr: oui

dbdr: #define foo bar

Thyl: Snif....

dbdr: si

Zab: Yo Thyl

dbdr: j/avais pas vu le pas

Default avatar.png JBM: ca change completement le sens de ton message

Default avatar.png JBM: on risquait trop de pas comprendre

dbdr: ben non, si la question est négative oui n'est pas une réponse valide

Default avatar.png JBM: oui

dbdr: ah mas tu étais ironique :)

Default avatar.png JBM: moi aussi ca m'arrive :p

dbdr: :O

Default avatar.png JBM: c'est dur le dimanche matin hein

dbdr: pq que le dm?

dbdr: ;)

Default avatar.png JBM: ou j'ai dit "que" ;)

dbdr: mais l'exception confirme la règle

Default avatar.png JBM: houla on se leojeannise

dbdr: utilisée correctement pour une fois :)

Zorg1: :p

Default avatar.png JBM: toutes les autres langues arrivent a se debrouiller avec un si congru au oui

dbdr: toutes? ;)

Default avatar.png JBM: y'a pas de manque d'information

Default avatar.png JBM: a ma connaissance oui

Default avatar.png JBM: j'aimerais bien trouver le contre-exemple

dbdr: igen/nem/de en hongrois

dbdr: au hasard

Default avatar.png JBM: j'ai aucune idee duquel est lequel lol

Default avatar.png JBM: ah ben cool je le rajoute a mon arsenal

Default avatar.png JBM: merci

dbdr: n c'est souvent non

Default avatar.png JBM: oui mais hongrois

Default avatar.png JBM: le hongrois c'est souvent rien comme tout le monde

dbdr: attends on va trouver le bon terme linguistique

dbdr: souvent, certes :)

dbdr: pas de verbe avoir :D

Default avatar.png JBM: ca c'est pas si rare

Default avatar.png JBM: russe, latin...

dbdr: https://en.wikipedia.org/wiki/Yes_and_no#Three-form_systems

dbdr: ah oui? savait pas

dbdr: c'est quoi la tournure en latin?

Default avatar.png JBM: comme en russe, un etre en voix passive

Default avatar.png JBM: ah mais merde y'a l'allemand dans le tas et je le savais

dbdr: comment a-ton pu oublier le അതേ, ഉവ്വ് and ഇല്ല

dbdr: ah oui, doch

Default avatar.png JBM: les scandinaves c'est un peu a part, le site que j'avais lu la fois d'avant les considerait trop proche du ja

dbdr: ba da et ba nu en roumain

dbdr: ça fait un peu shadok

dbdr: et pour l'interet, la redondance c'est pas mal pour etre sur de comprendre

Default avatar.png JBM: "Early Modern English"

Default avatar.png JBM: bien sur

dbdr: le nombre de fois ou les gens disent yes pour dire no à une question négative...

Default avatar.png JBM: (j'allais pas contre ca, hein--mais c'est comme tu dis de la redondance, ca ne change pas le sens du message)

dbdr: et ça ça change un peu le sens :D

Default avatar.png JBM: j'en ai une ici qui me le fait en francais

Default avatar.png JBM: et apres c'est de ma faute si j'arrive pas a suivre

dbdr: ya des champions/championnes :)

Default avatar.png JBM: https://en.wikipedia.org/wiki/Yes_and_no#The_Early_English_four-form_system miam

dbdr: après clarification, j'ai souvent envie de dire: so, by "yes" you meant "no"? ;)

Default avatar.png JBM: je fais ca aussi

Default avatar.png JBM: ce a quoi ils repondent yes

dbdr: :D

dbdr: les deux premières formes s'utilisent encore parfois

Default avatar.png JBM: les deux premieres sont celles qui ont survecu

dbdr: je savais pas que yea and nay ça venait de là

Default avatar.png JBM: confrontatifs, ces anglois

Default avatar.png JBM: je savais que c'etait les formes antiques, mais pas qu'elles cohabitaient avec leur sens propre

dbdr: ah non, je confonds avec "ayes"

dbdr: aies?

dbdr: ce qu'ils disents au parlement UK

Default avatar.png JBM: c'est encore notablement les votes du parlement US

Default avatar.png JBM: juste 'aye' je crois

dbdr: the ayes have it, the ayes have it

Default avatar.png JBM: ah oui au pluriel ^^

Default avatar.png JBM: moi ca m'evoque la marine

Default avatar.png JBM: ptet generalisable au militaire

Default avatar.png JBM: https://en.wikipedia.org/wiki/Yes_and_no#Aye_and_variants

dbdr: https://www.youtube.com/watch?v=s3oteTu-jkY

Default avatar.png TheLegend_Ed: Bonjour à tous, Quelqu'un pourrait il me recommander un site permettant de s'entrainer sur les questions type QCM codingame en python ?

dbdr: TheLegend_Ed: fais des puzzles (entrainement)

dbdr: "emprisonné pour 90 minutes" :D

Zorg1: mmm les trucs plus QCM c'est pas plus la spécialité de hackerrank ?

Default avatar.png TheLegend_Ed: Merci dbdr mais je recherche pas des puzzles mais des questions QCM

dbdr: au sénat, ce serait pas mal si ils votaient content/pas content :D

Zorg1: par assis et par levée t'as aussi ce genre de procédure de vote ;-)

Zorg1: ou alors ceux qui ne sont pas d'accord quittent la salle

dbdr: donc les paresseux et les gateux restent assis?

dbdr: ça fait un biais...

dbdr: ah, oublié les endormis

Default avatar.png TheLegend_Ed: Zorg1 , merci mais je n'ai pas trouvé les QCM juste des exos de code comme les puzzles

Default avatar.png TheLegend_Ed: Merci qd même, je vais continuer à creuser ;)

Bonne journée

dwarfie: :sleeping:

dwarfie: et euler qui nous sort une demo technique en 3D ... faudrait qu'il dorme un peu lui aussi :D

Zorg1: euler le demo maker

Zorg1: manque plus que la boule chromée sur un damier ...

dwarfie: il lui reste plus qu'a mettre du son

Zorg1: et un rotozoom

dwarfie: et hop , un marble madness

Zorg1: je me souvenais plus de ce jeu

dbdr: > ['10','10','10'].map(parseInt); [ 10, NaN, 2 ] > ['10','10','10'].map(s=>parseInt(s)); [ 10, 10, 10 ]

Zorg1: ?

dbdr: exactement

dbdr: en JS, au passage

Zorg1: ah ok MK en avait parlé de ce truc

Zorg1: (pour démontrer que C# c'était mieux)

dbdr: ça marche aussi pour démontrer que _ est mieux ;)

Zorg1: car par défaut map passe la valeur et l'index, et que parseInt considére l'index comme la base de conversion

Zorg1: tandis que pour le second exemple tu droppes explicitement le second argument que t'envoie map :D

Zorg1: * implicitement plutôt

Zorg1: (enfin bref c'est logique)

dbdr: pour une certaine valeur de "logique"

Zorg1: bah non quand tu connais les règles de JS ça colle

dbdr: et '10' en base 0 c'est 10?

Zorg1: base 0 => base par défaut

dbdr: "logique" :)

Zorg1: logique => bah c'est toujours par rapport à un système

Zorg1: après je dis pas que les règles de JS soient super intuitives

dbdr: > parseInt('000', 1) NaN


dbdr: marche pas la base 1 :D

dbdr: > parseInt('0123', 'tralala') 123 tiens, je connaissais pas cette base

Zorg1: après t'as la doc aussi ^^

Zorg1: en fait 0 ça correspond pas forcément à la base 10 ^^

dbdr: mais?

Zorg1: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/parseInt

Zorg1: si la chaîne commence par '0x' et que la base est 0, hop base 16

Zorg1: après s'il essaie de convertir ta chaîne "tralala" en entier, ça fait zéro non d'après les règles de conversion JS ?

dbdr: çá fait NaN

dbdr: > parseInt('123',NaN) 123


dbdr: base NaN, pas de pb

Zorg1: ah ok

Zorg1: ah ah en fait il convertit la base en Int32 et un autre règle de JS dit que Nan +0 -0 et les infinis sont mappés sur 0 ^^

Zorg1: c'est trop mignon ...

Zorg1: plein de règles dans tous les sens, tu m'étonnes que personne n'arrive à suivre

dbdr: c'est mieux que "non défini"

Zorg1: d'après la doc EcmaScript qui te donne en algo en 26 points pour parseInt :D

dbdr: :D

Zorg1: je suis mauvaise langue dans la version 5, il n'y a que 15 points

Zorg1: https://www.ecma-international.org/ecma-262/5.1/#sec-15.1.2.2

Zorg1: TOUT EST ECRIT

pardouin: o/

pardouin: j'ai commencé à regarder Lua pour voir si ça me donnait envie de golfer

pardouin: j'ai vu que 0 était évalué à false

pardouin: j'ai perdu la motivation

pardouin: true*

Default avatar.png xlr4829: how i can programaticlly calculating the number of words that just misspelled plz help

pardouin: do you speak french?

Default avatar.png xlr4829: no sorry

pardouin: so you better ask on World channel

Zorg1: pas forcément le meilleur langage pour golfer, Lua

pardouin: ben déjà quand je vois qu'on peut basher facilement dans un language ça me donne moins envie

pardouin: ruby on peut basher facilement mais sur un pb court ruby est souvent plus efficace donc ça me gêne pas

pardouin: j'ai bien accroché à ruby, seul truc qui me chagrine c'est certains comportements par défaut qui auraient facilement pu être implantés et qui ne le sont pas, par exemple si s est un string on devrait pouvoir faire s.map(... et que par défaut ça itère sur les chars, mais non là on est obligé de faire s.chars.map(...

pardouin: ou encore pour gsub quand tu prend chaque char 1 par 1 au lieu de faire s.gsub(/./){... tu drvais pouvoir faire gsub{... directement

pardouin: idem pour chunk, il devrait y avoir un comportement par défaut qui t'évite de taper chunk{|x|x}

dbdr: c'est presque comme si ruby avait pas été conçu comme langage de golf

Zab: :D

pardouin: :p

pardouin: non mais on se comprend, c'est hyper optimisé pour le golf, c'est juste dommage de pas être allé jusqu'au bout sur certains trucs

dbdr: http://www.golfscript.com/golfscript/

pardouin: pyth :D

pardouin: INTERCAL :x

Zorg1: ruby au début ça se présentait comme un mix entre perl et python si je me souviens bien ^^

pardouin: en traînant sur golfstackexchange je suis tombé sur des langages trop drôles genre ARNOLD

pardouin: ou SPL

Zorg1: Hasta la vista baby ?

pardouin: Hello World en MaBolge: (=<`#9]~6ZY32Vx/4Rs+0No-&Jk)"Fh}|Bcy?`=*z]Kw%oG4UUS0/@-ejc(:'8dc

pardouin: Piet aussi c'est rigolo :)

Zorg1: sauf qu'en Malbolge il te faut un programme pour écrire ton programme :D

Neumann: Yes les CoC avec les test-cases moisis, ça m'avait pas manqué

pardouin: https://esolangs.org/wiki/Hexagony#:~:text=Hexagony%20is%20a%20two%2Ddimensional,a%20(separate)%20hexagonal%20grid.

Zorg1: ah t'es sur la quest map ...

pardouin: dans le genre graphique

Neumann: J'ai déja fini la partie CoC de la map, mais j'ai envie d'aller dans le top 50, pour le fun

Neumann: Je galère

Zorg1: pardouin : t'as befunge, ici il y a un puzzle d'opti où il faut écrire un testeur de primalité, et qu'ils prennent le moins d'instruction possible

Zorg1: https://www.codingame.com/multiplayer/optimization/cgfunge-prime

pardouin: oui dans le top 100 le moindre clash où tu finis 2nd contre un joueur avec un classement pas élevé te fait perdre énorméme,nt de places

pardouin: il faut vraiment faire que des 1ères places, ou éventuellement perdre contre des joueurs bien classés

pardouin: oui befunge et brainfuck c'est les gros classiques

Zorg1: et dans les langages exotiques t'as le langage avec une seule instruction ^^

pardouin: Seed

Zorg1: (enfin il y en a de deux types)

dbdr: https://fr.wikipedia.org/wiki/ZISC

pardouin: :)

Default avatar.png JBM: ah mince je loupe toute la discussion

Default avatar.png JBM: justement j'etais en train de blogger esolangs

pardouin: comment étais ton stream JBM?

Default avatar.png JBM: hot

dbdr: tu es arrivé à l'acceleration AVX pour BF?

Default avatar.png JBM: je pense pas que j'en viendrai la

Default avatar.png JBM: (avec vous)

dbdr: pourtant c'est plus simple que l'IO

Default avatar.png JBM: grave

257832: Yo tout l'monde ! Automaton2000, AutomatonNN !

Automaton2000: ca c'est la partie la plus rapide que moi

AutomatonNN: ouais mais je sais pas comment ça va me faire passer plus de temps en temps pour faire des tests :D

Thyl: yO bLAISE

BlaiseEbuth: o/

dbdr: tiens, dwarfie a perdu la 3ème place à https://www.codingame.com/multiplayer/optimization/cgfunge-prime/leaderboard

pardouin: tout ça pour nous montrer son top 1 :o

Neumann: dbdr le flexeur

dbdr: quels mauvais esprits :D

pardouin: ah tiens dwarfie est 37ème: https://www.codingame.com/multiplayer/codegolf/power-of-thor/leaderboard

dbdr: :D

Seiryn: petits malins

pardouin: content de m'être fait d-s-x en tout cas :D

pardouin: mais j'aurais préféré en JS :(

pardouin: je pige toujours pas son 59

dwarfie: tout ca pour me pourrir la soiree a cherche comment grapiller un char ...

dwarfie: merci dbdr

BlaiseEbuth: Arrête ton char

dbdr: tu dois pouvoir reprendre, c'est tout proche

dwarfie: clair ... ca se joue a rien a ce niveau

pardouin: j'ai réussi à m'approcher de toi dwarfie sur CN ruby

pardouin: je l'aurai un jour, je l'aurai

Thyl: Magus tu devrais pas être en vacances ?

Magus: je pars demain

Thyl: cool

Thyl: tu as trouvé une babysiter pour Automaton2000

Automaton2000: je vois pas le rapport avec le fait que pour le moment, je suis en train

Thyl: :)

Zorg1: dbdr : ah oui ZISC :D

Seiryn: Toi aussi tu part en vacance Automaton 2000 ?

Seiryn: (bravo à moi qui à réussi à mettre un espace sans m'en rendre compte)

Seiryn: Toi aussi tu part en vacance Automaton2000 ?

Automaton2000: j'ai moins de temps que je perds en perf

Seiryn: Oui j'imagine que les vacance ça fait perdre de la performance...

Magus: Automaton2000 va survivre tout seul je pense. De toutes façons il tourne dans un watch

Automaton2000: ca me parait pas évident

Magus: donc s'il crash, il reboot :D

Thyl: oui mais bon la

Seiryn: Lui meme à des doutes sur sa survie xDD

Thyl: il commencer à être cohérent

Thyl: tu lui laisses pas de bouteilles Magus ?

Magus: nan, il serait capable de les boire

Thyl: :)

Thyl: Voilà pourquoi il est pas très frais

Default avatar.png DJDoubleSuperstar_da20: hi guys

BlaiseEbuth: Yo

Default avatar.png DJDoubleSuperstar_da20: Whats up

BlaiseEbuth: Y fait chaud.

Default avatar.png DJDoubleSuperstar_da20: yep very

Default avatar.png DJDoubleSuperstar_da20: u?

Default avatar.png DJDoubleSuperstar_da20: u from!?

dbdr: demain on rase gratis

Zorg1: ah c'est ce soir le grand soir ?

BlaiseEbuth: Keskia ce soir ?

Zorg1: z'êtes chiants j'ai pas fini de graisser ma pétoire

Thyl: 'Soir

Thyl: qui à envie d'un prob de C

Thyl: simple c'est sur la fonction toupper()

Thyl: voici le code

Thyl: http://chat.codingame.com/pastebin/5c458bfb-364c-4f7a-b6b3-c6e73f8b6ddc

Thyl: http://chat.codingame.com/pastebin/317fe7eb-7a71-4e8e-bbc9-ab15a2935829

Zab: pk ; après le while

Zab: while(ce que tu veux) { ce que tu dois faire dedans }

Thyl: c'est pas là

Thyl: ça marche la while

Zab: Ok

Zab: parce que pour moi ton return est hors du while

Thyl: c'est bon j'ai trouvé merci Zab

Zab: C'était quoi du coup?

Thyl: rien j'ai confondu Warning et Error...

Zab: Ah je vois !

pardouin: l'arithmétique modulaire c'est la vie ! je viens de gagner 2 chars sur mon Thor JS avec l'astuce suivante :

pardouin: je devais envoyer les nombres 0,1,2,3,4 sur 0,13(ou+),14,17,21(ou+)

pardouin: peu importe l'ordre

pardouin: évidemment on peut faire une liste genre : [0,13,14,17,21][k]

pardouin: mais on peut faire aussi: k*17%37

pardouin: :D

Zab: C'est vraiment trop pour moi le golf

pardouin: (ça génère 0,17,34,14,31 et l'ordre ne m'importait pas)

dwarfie: allez Zorg1 ... moins de 15 minutes avant la bande sonore par Toto :D

Default avatar.png JojoZ.: t aimes les pates ?

Default avatar.png JBM: mmm comment qu'on fait deja pour avoir le syntax highlighting avec pandoc

dwarfie: ♬ Ta da Da daaaaa ♬ Ta da Da daaaaaa ♬ Tadada DAAAaaaa

BlaiseEbuth: Mais y'a quoi ce soir ?

pardouin: dune

BlaiseEbuth: Ah.

pardouin: LE KWISATZ ADERACH

dwarfie: ca commence

Froznight: bonsoir

BigUP: ho punaise, j'ai l'impression que quelqu'un a pensé a faire un truc un peu plus intelligent que npm ! :) --> https://pnpm.js.org/en/motivation

Magus: yarn bis incoming

Magus: je suppose

Magus: ah non attends c'est pas pour remplacer npm

Magus: "you save gigabytes of space"

Magus: rofl

Magus: faut pas déconner quand même

Default avatar.png JBM: pas leur faute si tu fais pas du JS serieusement

pardouin: oh bordel en parlant de JS

pardouin: j'ai enfin trouvé la factorisation ultime qui donne 59 en JS :D

pardouin: (pour Thor)

pardouin: je m'en sortais pas de ces repeat caractérophages alors j'ai bricolé un genre de Goto ^^

Default avatar.png JBM: et tu t'en tiens la ou tu cherches mieux? :p

pardouin: franchement quand je regarde mon code il n'y a rien à racler

pardouin: si je trouve mieux ce sera avec une autre approche

Default avatar.png JBM: tu disais deja ca avant

pardouin: mais j'avais pas imaginé qu'une seule boucle for pourrait tout gérer

pardouin: avec un "saut"

pardouin: bon allez bonne nuit, ça passera sans doute demain

pardouin: je serai 1er/1er ex aequo partout en JS du coup :)

darkhorse64: J'ai l'ai d'un mickey avec mon 92 top 10

darkhorse64: *l'air*

Default avatar.png JBM: fix it

pardouin: ahah je me suis relevé parce que j'ai trouvé une opti!

pardouin: 58 incomming

pardouin: j'ai remplacé a=b++-c&&a par a*=b++<c

pardouin: (mon b n'étant jamais >c)