<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt">
    <title>Augusto Fornitani | Blog</title>
    <subtitle>Compartilhando coisas que faço no dia a dia</subtitle>
    <link rel="self" type="application/atom+xml" href="https://augustofornitani.com.br/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://augustofornitani.com.br"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-08-22T00:00:00+00:00</updated>
    <id>https://augustofornitani.com.br/atom.xml</id>
    <entry xml:lang="pt">
        <title>Teksto - Akademio de Esperanto - Prof. Geraldo Mattos</title>
        <published>2026-08-22T00:00:00+00:00</published>
        <updated>2026-08-22T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://augustofornitani.com.br/blog/akademio-de-esperanto-geraldo-mattos/"/>
        <id>https://augustofornitani.com.br/blog/akademio-de-esperanto-geraldo-mattos/</id>
        
        <content type="html" xml:base="https://augustofornitani.com.br/blog/akademio-de-esperanto-geraldo-mattos/">&lt;p&gt;Tiu ĉi teksto estas ero de kajero presita de Eldonejo Oportuno por la evento &quot;BEL Konferencoj&quot;, okazinta 2008-02-03.&lt;&#x2F;p&gt;
&lt;p&gt;❧&lt;&#x2F;p&gt;
&lt;p&gt;Prof. Geraldo Mattos&lt;&#x2F;p&gt;
&lt;p&gt;&lt;em&gt;Verkisto, tradukisto, Poeto, prezidanto de la Akademio de Esperanto de 1998 ĝis 2007, eksa redaktoro de la rubriko pri literaturo de la revuo Monato (1998-2007) kaj redaktoro de la reaperonta beletra revuo Fonto.&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;h1 id=&quot;akademio-de-esperanto&quot;&gt;AKADEMIO DE ESPERANTO&lt;&#x2F;h1&gt;
&lt;p&gt;La Universalaj Kongresoj kaj la Akademio de Esperanto estas la du solaj institucioj, kiuj rekte devenas de proponoj de Zamenhof mem en la 1-a Universala Kongreso en Bulonjo-sur-Maro inter la 5-a kaj la 13-a de Aŭgusto 1905.&lt;&#x2F;p&gt;
&lt;p&gt;Efektive, estis aprobita tie unue la kreo de Komitato Lingva, kiun prezidis Zamenhof, sed poste el propono de li mem tiu Komitato Lingva pli nombriĝis por inkluzivi konatajn redaktorojn de Esperantaj gazetoj, prezidantojn de verdaj societoj kaj gravajn esperantistojn: pli 01 cent membroj en ĝia unua konsisto! Li rezignis la prezidantecon, kiun alprenis Emile Boirac (1851-1917), filozofo, profesoro kaj rektoro de la Universitato de Diĵono. La krizo de Ido, kiu vulkanis en Februaro 1908, komprenigis al la Prezidanto de la Lingva Komitato la neeblecon rapide labori kun tiom da membroj: li do proponis la kreon de supera komitato, Akademio kun maksimume 18 membroj, kaj la baloto aprobis lian ideon.&lt;&#x2F;p&gt;
&lt;p&gt;La agado de la Akademio restis interrompita per la Dua Mondmilito dum pli ol kvin jaroj. Johannes R. C. Isbrücker (1889-1967), fariĝinte en 1937 Prezidanto de la Lingva Komitato kaj de ĝia Akademio, dissendis en Julio 1939 la 19-an Cirkuleron, kiun sekvos en Marto 1946 la 20-a Cirkulero, al kiu respondis 48 membroj el la 102 de la Lingva Komitato.&lt;&#x2F;p&gt;
&lt;p&gt;En tiu unua periodo tri ĉefajn laborojn faris laŭ mi la Akademio:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Ses Oficialaj Aldonoj al la Universala Vortaro inter 1909-1935.&lt;&#x2F;li&gt;
&lt;li&gt;Korektoj de eraraj tradukoj en la Universala Vortaro de la Fundamento de Esperanto inter 1906 kaj 1923.&lt;&#x2F;li&gt;
&lt;li&gt;La rifuzo oficialigi la finaĵon &quot;io&quot; por landnomoj en 1922, jam sub la prezidanteco inter 1920-1931 de Théophile Cart (1855-1931).&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;La dua periodo komenciĝas en 1946 per la postmilita 20-a Cirkulero, subskribita de la tiama Prezidanto Isbrücker. La precipa ago de tiu nova periodo estis la profunda reformo de la Institucio per la malaperigo de la Lingva Komitato kaj la restigo de la sola Akademio: la proponoj, inter ili la nova Statuto, estis aprobitaj en 1948.07.20.&lt;&#x2F;p&gt;
&lt;p&gt;Al Johannes R. C. Isbrücker apartenas la plej longa prezidanteco: 1937-1963. Du aparte gravaj decidoj okazis en lia mandato:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Oficialigo de la finaĵo &quot;end&quot; en Julio 1953, kies aprobo estis unu el la malmultaj malvenkoj de Gaston Waringhien.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;La Sepa Oficiala Aldono al la Universala Vortaro, preparita de Gaston Waringhien en Junio 1955 kaj aprobe voĉdonita en Julio 1958.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;En 1963 Gaston Waringhien fariĝis Prezidanto, kaj tiun postenon li forlasis nur en 1979. La plej konata strebado de lia prezidanteco estis la reformo de la Statuto de 1948, aprobita en Julio 1964, kiu validis ĝis la nova reformo en la mandato de André Albault.&lt;&#x2F;p&gt;
&lt;p&gt;Kun la Statuto farita kaj aprobita, li lanĉis sin al malfacila batalo, kiu dividis nian rondon en du grupojn de atistoj kaj itistoj: la senco kaj uzo de niaj participoj. Maldolĉan malvenkon li suferis en Novembro 1966, kiam lia propono estis malaprobita per unu sola mankanta voĉo. La sekvantan jaron li havis facilan venkon en Novembro 1967, kvankam per diskutata driblo kaj manovro: aprobo de kvin frazoj, en kiuj aperis la kontestataj participoj. Bedaŭrinde, lia venko restis sole sur la papero, ĉar ĝis nun multas kaj tumultas la eraroj kontraŭ la vera senco de tiuj delikataj vortoj: el abundo venas vundo…&lt;&#x2F;p&gt;
&lt;p&gt;Estis aliaj gravaj taskoj portitaj de li al plena sukceso:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Oka oficiala aldono al la Universala Vortaro.&lt;&#x2F;li&gt;
&lt;li&gt;Baza Radikaro Oficiala&lt;&#x2F;li&gt;
&lt;li&gt;Rekomendoj de la Akademio:&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;ul&gt;
&lt;li&gt;Pri la refleksivo.&lt;&#x2F;li&gt;
&lt;li&gt;Pri la vorto &quot;po&quot;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Post la kvin mandatoj de Gaston Waringhien (1901-1991) sekvis William Auld (1923-2006.09.11), kiu prezidis la Akademion inter 1979 kaj 1983. Al li ni ŝuldas grava defendo de niaj supersignitaj literoj. Lin la verda Deino tenu en sia sino!&lt;&#x2F;p&gt;
&lt;p&gt;André Albault (1930) komencis sian tempon en 1983 kaj ĝin okupis precipe per intensa laborado super landnomoj kaj finis per la tria reformo de la Statuto en 1988. En 1998 ekprezidis la Akademion Geraldo Mattos (1931), la unua neeŭropano en tia posteno. En lia mandato estis kreita la &lt;u&gt;Konsultejo de la Akademio de Esperanto&lt;&#x2F;u&gt; kaj estis nun voĉdonita la 9-a Oficiala aldono al la Universala Vortaro, laboro de la Sekcio pri Generala Vortaro sub la direktoreco de Bertilo Wennergren, krom decido de la Sekcio pri Prononco sub la direktoreco de Probal Dasgupta por klarigo pri niaj supersignoj sur la ekrano de
komputilo. Persone Geraldo Mattos batalis kontraŭ la oftaj misuzoj de la participoj…&lt;&#x2F;p&gt;
&lt;p&gt;Kaj nun en la fino de la historia parto, mi petas de mia afabla geleganto permeson por meti mian nazon en fremdan vazon, ĉar mi ne estas historiisto. Ĉiuj parolas pri du periodoj en la historio de la Akademio, sed pli bone estus akcepti tri periodojn: la unua ĝis la fino de la Unua Mondmilito kaj ĝiaj kostoj al Esperanto (1905-1920), karakterizata per la prudenta influo de Zamenhof, la dua de tiam ĝis la fino de la Dua Mondmilito kaj ĝiaj kostoj al Esperanto (1920-1946), konata per la forta influo de Cart, kaj la tria de tiam ĝis nun, markata per la vigla influo de Waringhien.&lt;&#x2F;p&gt;
&lt;p&gt;Kaj nun ni vidu, kion diras al ni la nuna Statuto pri la aliaj punktoj!&lt;&#x2F;p&gt;
&lt;p&gt;La celon informas la 1-a artikolo de la Statuto:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;La celo de Akademio de Esperanto &quot;estas konservi kaj protekti la fundamentajn principojn de la lingvo Esperanto kaj kontroli ĝian evoluon&quot;.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Ĝi protektas per paca armilo nomata Fundamento de Esperanto kaj kontrolas per atenta rigardo al ĉio, kio okazas en nia Verdujo, por reagi per avertoj sur la bazo de morala forto.&lt;&#x2F;p&gt;
&lt;p&gt;La taskon informas la 12-a artikolo de la Statuto:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&quot;La Akademio esploras ĉiajn lingvajn demandojn, kiuj koncernas Esperanton&quot;.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;La servon informas la 13-a artikolo de la Statuto:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;La Akademio povas mem studi apartan problemon, kiun ĝi proprasperte detektis, kaj respondi al petoj de sia publiko, sed devas okupiĝi pri tio, kio devenas de membro de la Estraro, de direktoro de Sekcio aŭ de kvinopo da akademianoj.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Precipe grava estas ĝia Lingva Konsultejo, kiu povas prezenti al nia publiko — unuopuloj, grupoj kaj institucioj! — rapidajn solvojn por ĉiaj lingvaj problemoj.&lt;&#x2F;p&gt;
&lt;p&gt;La organizo de la Akademio aperas en la 3-a kaj en la 4-a artikolo.&lt;&#x2F;p&gt;
&lt;p&gt;Ĝin kondukas membroj de la Estraro kaj direktoroj de Sekcio.&lt;&#x2F;p&gt;
&lt;p&gt;Estraro kaj estraranoj: Prezidanto: John Wells. 1-a Vicprezidanto: Probal Dasgupta. 2-a Vicprezidanto: Brian Moon. Sekretario: Renato Corsetti.&lt;&#x2F;p&gt;
&lt;p&gt;Ĝin laborigas la direktoroj de Sekcioj, por konstantaj taskoj, kaj tiuj de Komisionoj, por eventualaj:&lt;&#x2F;p&gt;
&lt;p&gt;Sekcioj kaj iliaj direktoroj: Faka Lingvo: Marc Bavant. Gramatiko: Jouko Lindstedt. Ĝenerala Vortaro: Bertilo Wennergren. Prononco: Probal Dasgupta.&lt;&#x2F;p&gt;
&lt;p&gt;Komisionoj kaj iliaj direktoroj: Historio de la Akademio de Esperanto: Carlo Minnaja.&lt;&#x2F;p&gt;
&lt;p&gt;La nombron de la anoj informas la 3-a artikolo de la Statuto:&lt;&#x2F;p&gt;
&lt;p&gt;La Akademion de Esperanto konsistigas 45 membroj, sed ili jam estis plusaj kaj minusaj. Estas kutimo nomi senmortaj ĉiujn membrojn de Sciencaj kaj Artaj Akademioj, kies mandatoj estas dumvivaj. En la Akademio de Esperanto, samtempe scienca kaj arta, ĝiaj membroj estas senmortaj por solaj naŭ jaroj, sed ili rajtas poste resenmortiĝi post nova kandidatiĝo kaj venka elekto. Sekve de tio, ĉiun trian jaron la Akademio povas esti ŝanĝata, kaj jam estis akademianoj el ĉiu el niaj kvin kontinentoj, sed nun mankas al ni nur Oceanio.&lt;&#x2F;p&gt;
&lt;p&gt;En unu sola momento de ĉiu jaro la Akademio de Esperanto sin prezentas ĉeesta al sia publiko: dum la Universalaj Kongresoj.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;gravaj-eraroj-de-la-akademio&quot;&gt;Gravaj eraroj de la Akademio&lt;&#x2F;h2&gt;
&lt;ol&gt;
&lt;li&gt;La granda prestiĝo de la Akademio de Esperanto en la sesdekaj jaroj influis la akcepton de la falsaj ekvacioj proponitaj de Prezidanto J. R. G. Isbrücker (1937-1963):&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-anta = kiu —as&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-inta = kiu —is&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-onta = kiu —os&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-ata  = kiun (kion) oni —as&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-ita  = kiun (kion) oni —is&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-ota  = kiun (kion) oni —os&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Ekzemploj pruvas, ke ili estas plene eraraj:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Mi rigardas al homo kantanta. = Mi rigardas al homo, kiu kantas.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Mi rigardis al homo kantanta. = Mi rigardis al homo, kiu kantis.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Mi rigardos al homo kantanta. = Mi rigardos al homo, kiu kantos.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Min ravas la himno kantata de li. = Min ravas la himno, kiun li kantas.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Min ravis la himno kantata de li. = Min ravis la himno, kiun li kantis.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Min ravos la himno kantata de li. = Min ravos la himno, kiun li kantos.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Teksto de novembro 2006:&lt;&#x2F;p&gt;
&lt;p&gt;Pri la estantaj kaj estintaj pasivaj participoj, mi povas nun ekzempli per akcidento en mia nuna vivo: post nelonge mi estos paciento de kirurgo… La ekzemploj klare demonstros la diferencon
inter tiuj participoj, ĉe kiuj la plejmulto de la esperantistoj simple uzas la estintan pasivan tie, kie pli bone estus la estanta. Pri mi mem mi povas nun diri:&lt;&#x2F;p&gt;
&lt;p&gt;– Nun mi devas esti operaciata. Kiam mi estos operaciata, kirurgo, anestezisto kaj flegistinoj ĉirkaŭos min. Kiam mi estos operaciita, mi reiros hejmen.&lt;&#x2F;p&gt;
&lt;p&gt;Averto de novembro 2007:&lt;&#x2F;p&gt;
&lt;p&gt;Dank&#x27; al la protekto de mia Deino la operacio ne efektiviĝis, ĉar ŝi kuracis min per simplaj medikamentoj, kaj mi estas nun tute sana…&lt;&#x2F;p&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;La participoj (1965.02.03-1967.11.23) dividis la akademianojn en du grupoj sub la prezidanteco de Gaston Waringhien (1963-1979), kaj nur ne tre lojala manovro donis al li la eblecon fini tiun diskuton.
Li venkis, kaj eĉ kun la voĉo de la brazilano Carlos Domingues, unu el la prezidantoj de BEL, sed tia triumfo donis neniajn regulojn por la uzado de niaj participoj, precipe se ni konsideras, ke unu el la kvar frazoj prezentas participon en pure adjektiva funkcio, nome sen ia referenco al aktiva verboformo [la 2-a frazo].&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;h3 id=&quot;testofrazoj&quot;&gt;TESTOFRAZOJ&lt;&#x2F;h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;em&gt;&quot;Ni garantias, ke la domoj detruitaj dum la milito estos rekonstruataj en 1970.&quot;&lt;&#x2F;em&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;= Do la garantiantoj estos kvitaj,&lt;&#x2F;p&gt;
&lt;p&gt;A) se en la daŭro de 1970 oni komencos kaj daŭrigos la rekonstruadon de la domoj detruitaj…
&lt;br&gt;B) Nur se en la daŭro de 1970 oni finos la rekonstruadon.&lt;&#x2F;p&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;&lt;em&gt;&quot;Mi promesas, ke mia ŝuldo estos pagita la 9-an de Majo.&quot;&lt;&#x2F;em&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;= A) la ŝuldanto senŝuldiĝos la 9-an de Majo;
&lt;br&gt;B) la ŝuldanto senŝuldiĝos plej malfrue la 8-an de Majo.&lt;&#x2F;p&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;&lt;em&gt;&quot;Ni asertas, ke la aŭtomobilo de s-ro X estis efektive riparata la lastan semajnon.&quot;&lt;&#x2F;em&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;A) la lastan semajnon oni efektive okupiĝis pri la riparado de de la aŭtomobilo;
&lt;br&gt;B) la lastan semajnon oni efektive finis la riparadon de la aŭtomobilo.&lt;&#x2F;p&gt;
&lt;ol start=&quot;4&quot;&gt;
&lt;li&gt;&lt;em&gt;&quot;Via propono estis unuanime akceptita la 3-an de Junio.&quot;&lt;&#x2F;em&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;= A) oni akceptis la proponon la 3-an de Junio;
&lt;br&gt;B) oni akceptis la proponon antaŭ la 3-a de Junio.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="pt">
        <title>Teksto - Oportunaj Esperanto-vortaroj - Prof. Sylla Chaves</title>
        <published>2026-08-22T00:00:00+00:00</published>
        <updated>2026-08-22T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://augustofornitani.com.br/blog/oportunaj-esperanto-vortaroj-sylla-chaves/"/>
        <id>https://augustofornitani.com.br/blog/oportunaj-esperanto-vortaroj-sylla-chaves/</id>
        
        <content type="html" xml:base="https://augustofornitani.com.br/blog/oportunaj-esperanto-vortaroj-sylla-chaves/">&lt;p&gt;Tiu ĉi teksto estas ero de kajero presita de Eldonejo Oportuno por la evento &quot;BEL Konferencoj&quot;, okazinta 2008-02-03.&lt;&#x2F;p&gt;
&lt;p&gt;❧&lt;&#x2F;p&gt;
&lt;p&gt;Prof. Sylla Chaves&lt;&#x2F;p&gt;
&lt;p&gt;&lt;em&gt;Magistro pri Komunikado, aŭtoro de vasta didaktika literaturo por instruado&#x2F;lernado de Esperanto, honora membro de UEA (1992), membro de la Akademio de Esperanto (1986-1995) kaj eksa prezidanto de BEL (1978-1982).&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;h1 id=&quot;oportunaj-esperanto-vortaroj-por-komencantoj-kaj-veteranoj-kiel-pretigi-kaj-uzi-ilin&quot;&gt;OPORTUNAJ ESPERANTO-VORTAROJ - por komencantoj kaj veteranoj (kiel pretigi kaj uzi ilin?)&lt;&#x2F;h1&gt;
&lt;h2 id=&quot;esperantismo&quot;&gt;ESPERANTISMO&lt;&#x2F;h2&gt;
&lt;p&gt;Mi konsideras min ĝisosta esperantisto. Ĉefe pro esperantismo, sed ankaŭ pro Esperanto. Mi senrezerve batalas por homaj rajtoj kaj homa egaleco. Inter la homaj rajtoj mi inkluzivas tiujn de homaj komunumoj – kun siaj kutimoj, folkloro kaj kulturaĵoj, firme ligitaj al la lingvoj, kiujn ili parolas. Same vigle kiel mi defendas la mondan biodiversecon, mi ankaŭ defendas la diversecojn lingvan kaj kulturan. En ili mi vidas multon de la beleco de la mondo tra kiu mi jam havis la plezuron vojaĝi.&lt;&#x2F;p&gt;
&lt;p&gt;Mi ĝojas kaj fieras aparteni al la esperantista komunumo. Ĝi ne estas perfekta, sed mezume pli bonas ol la cetero de la mondo. Aliaj komunumoj ankaŭ meritas laŭdon. Pluraj el ili estas neregistare organizitaj. Mi laŭdegas ilin ne pro la lingvoj, kiujn ili parolas, sed pro la idealoj, kiuj ilin kunigas. Same la esperantista komunumo estas laŭdinda ne pro la lingvo Esperanto, kiun kelkaj tre mallerte uzas, sed pro la zamenhofeco, kiun ili akiris per legado aŭ osmozo.&lt;&#x2F;p&gt;
&lt;p&gt;Esperantismo estas la ĉefa kialo de mia esperantisteco. Lingvoj plaĉas al mi. Mi lernas kaj uzas kelkajn volonte kaj plezure. Tamen Esperanto okupas specialan lokon inter ili. Nur ĝin mi scipovas egale al mia gepatra lingvo. Nur ĝin mi senĝene nomas &quot;mia&quot;. Ĝi ne estas la lingvo, kiun mi plej multe studis, nek tiu, kiu alportis al mi pli multe da vivrimedoj. Aliajn mi bezonis studi, kaj kelkaj donis al mi stipendiojn kaj dungojn, hejme kaj eksterlande. Dankeme mi retribuis tiujn avantaĝojn, studante kaj uzante ilin laŭ miaj oportunoj kaj kapabloj.&lt;&#x2F;p&gt;
&lt;p&gt;Ĉiuj lingvoj plaĉas al mi, sed Esperanto pli plaĉas ol la aliaj. Nur ĝi estas la lingvo de esperantismo. Ne gravas, ke tro malmulte da esperantistoj serioze studas ĝin. Neniu estas devigata studi ĝin, aŭ esti serioza. La malmultaj seriozaj esperantistoj, kiujn mi ekkonis, plurloke en la mondo, sufiĉas por pruvi al mi, ke la mondo povas fariĝi pli bona, pli paca, kaj ke homoj povas perfekte interkompreniĝi, sendepende de kontinento aŭ gepatra lingvo. Ĉiuj povas marŝi man-en-mane, harmonie, interkomprene kaj egalrajte, danke al la neŭtraleco kaj al la interna ideo de la lingvo, kiun Zamenhof donacis al la tuta mondo.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;esperanto&quot;&gt;ESPERANTO&lt;&#x2F;h2&gt;
&lt;p&gt;Esperanto ankaŭ plaĉas al mi pro kelkaj kvalitoj, kiujn ĝi ricevis de sia kreinto. Inter ili elstaras la simpleco, kiun kelkaj malĝuste nomas facilo kaj aliaj provas detrui. Ĝi multe helpis min en la komenco. Post nur unu jaro da serioza studado mi ricevis el la manoj de la postulema akademiano Porto Carreiro Neto, la diplomon de Profesoro Aprobita. La atingo de tiu nivelo en etnaj lingvoj bezonas multe pli longa kaj peniga lernado. Kaj lingvolernado ne finiĝas per ricevo de fina diplomo. Lingva perfekteco estas neatingebla. Lingvo estas ne nur komunikilo por atingi aliulojn, sed ankaŭ komunikilo por atingi sin mem. Tiu interna komuniko nomiĝas pensado. Parto de niaj pensoj estas vortaj, lingvaj. Kaj penso estas la plej malfacila tasko, kiun homo plenumas. Se lingvo estas ilo por pensado, neniu lingvo povas esti facila. Lingvo povas ŝajni facila nur al tiuj, kiuj ne scias taŭge pensi.&lt;&#x2F;p&gt;
&lt;p&gt;Pensoj de civilizitaj homoj elŝprucas grandparte en lingvo, en vortoj. Aliparte ili estas tradukeblaj en vortojn por ke homoj pli taŭge komunikiĝu kun si mem aŭ kun aliuloj. Tion lerte faras bonaj instruistoj, oratoroj, verkistoj kaj tradukistoj. Inteligentaj homoj lerte pensas, sed nur bonaj komunikantoj efike transformas siajn pensojn en vortojn kaj frazojn. Kiel muziko naskiĝas en la kapo de komponisto por transformiĝi en aŭdeblajn sonojn, ankaŭ pensoj malsupreniras de kapo al buŝo aŭ papero transformitaj en vortoj.&lt;&#x2F;p&gt;
&lt;p&gt;La procedo estas sama. Ĝia efiko dependas de la lerteco de la lingvokomponisto kaj de la kvalitoj de la lingvo. Tial min konkeris ankaŭ la lingvo Esperanto. Pli bone ol preskaŭ ĉiuj etnaj lingvoj ĝi taŭgas por transformi pensojn en vortojn. Al sia denaska simpleco ĝi kunigas riĉecon, nuancojn kaj precizecon. Per ĝi oni pli bone pensas kaj komunikiĝas – ne gravas ĉu originale aŭ traduke. Tion pruvis Zamenhof kaj liaj fidelaj sekvantoj, sed ne ĉiuj agas tiel. Malmultaj pro malbona intenco. La plimulto pro nekompreno aŭ mallaboremo.&lt;&#x2F;p&gt;
&lt;p&gt;Esperanto estis artefarita nur en sia nasko. Ĝi tuj ekvivis, kvankam diaspore. Ĝi estas mola maso por lingva skulptado, sed ne infana ludilo. Nek apartenaĵo de sinnomumitaj majstroj, kiuj abunde inventas regulojn en lernolibroj kaj vortaroj, anstataŭ unue provi siajn ideojn en interparoloj kaj verkoj. La nun vivanta Esperanto devas esti respektata, kiel socia fenomeno. Ĝi evoluas en la konstanta uzado fare de sia malgranda sed tutmonda diaspora komunumo.&lt;&#x2F;p&gt;
&lt;p&gt;Ĉiuj rajtas kontribui por tiu evoluado. Sed antaŭe devas studi ĝian nunan staton kaj ĝian pli ol jarcentan evoluon. Por tiu evoluo pli gravas instruistoj, verkistoj, tradukistoj kaj vortaristoj. Sed neniu rajtas nomi sin &quot;majstro&quot; kaj dekreti naskon aŭ morton de vortoj kaj gramatikaj reguloj. Vortoj kaj reguloj de vivantaj lingvoj dependas de socia aprobo. Zamenhof konsideris Esperanton ĉies posedaĵo. Ni devas respekti lian decidon kaj lian majstroverkon. Unue studi, sekve proponi kaj poste atendi reagon de la internacia komunumo, al kiu Esperanto apartenas.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;mia-laboro-por-esperanto&quot;&gt;MIA LABORO POR ESPERANTO&lt;&#x2F;h2&gt;
&lt;p&gt;Sen aliaj gravaj kapabloj por helpi la mondon krom la lingva kaj la verkista (mi ne scias kuraci, nek konstrui domojn kaj pontojn), mi dediĉis min al la du solaj lingvoj kiuj estas miaj – la Esperanta kaj la portugala. Kaj mi prioritatis Esperanton, ĉar ĝi pli bezonas mian helpon ol mia gepatra. Portugale mi iom verkis, kaj aŭtoris metodon por alfabetumado de maljunuloj, kiuj ne interesas al politikistoj, ĉar ili ne plu kontribuas por la riĉeco de la lando, kaj ilia morto sufiĉos por plibonigi statistikojn.&lt;&#x2F;p&gt;
&lt;p&gt;En kaj pri Esperanto mi verkis pli multe: poemojn, kantojn, facilajn legaĵojn, gramatikon, sonbendojn, vidbendojn, KDojn, DVDojn, kursojn per korespondado, radio kaj televido, kaj lastatempe kunaŭtoris du poeziajn antologiojn. Tio sufiĉus, se mi ne estus rimarkinta, ke la plej grava malforto en la brazila movado rilatas al vortaroj. Komencantoj tuj ekverkas poemojn kaj kantojn. Malpli aŭdacaj komencantoj verkas aŭ tradukas proze. Instruistoj preferas verki lernolibrojn ol uzi aliulajn. Kaj meze de tiu relativa abundo da verkoj, vortaroj restas nesufiĉaj, aŭ nesufiĉe bonkvalitaj.&lt;&#x2F;p&gt;
&lt;p&gt;Ellaboro de vortaro estas peniga kaj ne alloga tasko. La plej bonaj Esperantaj vortaristoj, ne plu estas inter ni. Du el ili – Geraldo Pádua kaj Leopoldo Knoedt – ne sukcesis publikigi siajn bonegajn verkojn. Kaj la giganta laboro lasita de Porto Carreiro Neto dormas en la sidejo de BEL kaj ne altiris la atenton de ĝiaj lastaj prezidintoj… Tamen vortaroj helpas la vivtenon de organizaĵoj, sendepende de ilia kvalito. Tial BEL senzorge aperigis reeldonon de la vortareto de Carlos Domigues kun multe pli da eraroj ol la antaŭaj eldonoj. Kaj la nova BEL-estraro kuraĝe decidis, ke tiu reeldono estu detruita, malgraŭ la financa malavantaĝo, kiun tiu detruo alportis.&lt;&#x2F;p&gt;
&lt;p&gt;Por esti pli utila por la movado, mi komencis transformiĝi en vortaristo. En 1989 mi pretigis suplementojn por du vortaroj, sufiĉe riĉigante ilin. En 1991 mi eldonis Originalan Esperantan Bildvortaron, kaj en 1999 Esperantan-portugalan vortareton por komencantoj. Al la plej grava vortaro, kiun mi decidis pretigi, mi jam donis la nomon Praktika Vortaro de Esperanto (PRAV), sed ankoraŭ ne sukcesis fini ĝin. Mi tamen jam sendis al la Akademio de Esperanto subprodukton ĝian - vortoliston, kiun ĝi akceptis, adaptis kaj transformis en sian Naŭan Oficialan Aldonon al la Fundamenta Vortaro.&lt;&#x2F;p&gt;
&lt;p&gt;Mi tre ŝatus fini la ellaboron de PRAV. Sed mi preterlasis ĝin dum preskaŭ du jaroj por - kune kun Neide Barros Rêgo - pretigi Brazilan Esperantan Parnason. Nun eblus repreni ĝin, sed mi prioritatis la aperigon de OPORTUNA VORTARO, malpli ambicia kaj konsekvence pli rapide aperigebla. Tiel mi klopodos solvi la nunan kaoson rezultantan de la fuŝa reeldono kaj konsekvenca detruo de la vortareto de Carlos Domingues. Mi preskaŭ senhalte nun laboras en la pretigo de unu el la du volumoj de la OPORTUNA VORTARO - la dulingva: Esperanta-portugala kaj portugala-Esperanta. Poste mi okupiĝos pri la alia volumo, la Esperanta-Esperanta, kiu ankaŭ jam estas komencita. Ĝi estos speco de malgranda PRAV, kiu siavice estos speco de malgranda PIV. Mi opinias, ke ambaŭ estas urĝe bezonataj por la internacia Esperanta komunumo. Sed la plej granda nuna vortara bezono estas la brazila, kaj tial mi urĝigas la aperon de la dulingva OV. Kaj precipe pri ĝi mi parolos nun.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;kial-kaj-kiel-uzi-vortarojn-dum-legado&quot;&gt;KIAL KAJ KIEL UZI VORTAROJN DUM LEGADO&lt;&#x2F;h2&gt;
&lt;p&gt;Por la numero 5 de Brazilei mi verkis artikoleton kun tiu titolo. Tie mi montras, ke konsulto al vortaro estas ofte konsiderata malagrabla tasko, kaj tial lingvolernantoj klopodas eviti ĝin. Eĉ en la gepatra lingvo vortaroj estas malŝatataj. Tiun anomalion, oni devas kuraci, ekde elementaj lernejoj. Pli ol lernantoj kulpas instruistoj kaj vortaristoj. Kiel lingvolernanto kaj lingvoinstruisto mi ĉiam agis sane kaj kontentige. Nun mi intencas fari la samon kiel vortaristo.&lt;&#x2F;p&gt;
&lt;p&gt;Konsulto al vortaro estas konsiderata malagrabla tasko ĉefe pro la jenaj kaŭzoj:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Portugallingve oni nomas vortaron &quot;patro de la azenoj&quot;. Ŝajnas hontinde konsulti ĝin. Instruistoj akiris tiun sintenon en sia elementa lernejo, kaj senkonscie transdonas ĝin al siaj gelernantoj. Formiĝas senelira cirklo. Anstataŭe, ekde la elementa lernejo, eĉ en la gepatra lingvo, infano devus lerni ami kaj konsulti vortarojn. Nur tiel oni bone lernas nuancojn, nur tiel oni evitas &quot;falsajn amikojn&quot;, nur tiel oni foriras el la stato de &quot;eterna komencanto&quot;. La konstatebla fakto estas, ke azenoj fuĝas de vortaroj kaj kleruloj konsultas ilin. Ju pli oni lernas lingvon, des pli oni konsultas vortarojn, por trovi la vorton, kiu plej ĝuste tradukas oniajn nuancitajn pensojn.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;La plimulto el la vortaroj (precipe dulingvaj) malmulte helpas. Tre malofte similaj vortoj signifas ekzakte la samon en du lingvoj. Eĉ en lingvoj tiel parencaj, kiel la portugala kaj la hispana, almenaŭ la nuancoj de la egalaj vortoj estas malsamaj. Pro nesufiĉaj aŭ fuŝaj klarigoj en niaj dulingvaj vortaroj multaj malnovaj esperantistoj ankoraŭ misuzas vortoparojn kiel &lt;strong&gt;kurioza&lt;&#x2F;strong&gt; kaj &lt;strong&gt;scivola&lt;&#x2F;strong&gt;, &lt;strong&gt;frakasi&lt;&#x2F;strong&gt; kaj &lt;strong&gt;malsukcesi&lt;&#x2F;strong&gt;, &lt;strong&gt;ŝorbeto&lt;&#x2F;strong&gt; kaj &lt;strong&gt;glaciaĵo&lt;&#x2F;strong&gt;, &lt;strong&gt;uncio&lt;&#x2F;strong&gt; kaj &lt;strong&gt;jaguaro&lt;&#x2F;strong&gt;, kaj plurajn aliajn.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;La plimulto el la lingvolernantoj konsultas nur unu dulingvan vortaron, kaj neglektas serĉon en unulingvaj, kvankam ĉi-lastaj multe pli taŭge precizigas la serĉatajn signifojn. Se legantoj lernis malami vortarojn, imagu, kiel malagrable estus por ili konsulti tri vortarojn anstataŭ unu! Tamen tiu triobla konsulto estas plurfoje necesa: en la fontolingvo, en la cellingvo kaj en la ponto inter ili. Nur tiel eblos bone kompreni kaj (kiam necese) trafe traduki.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;Por tiuj, kiuj volas bone kompreni tekston, tri vortaroj estas nura minimumo. Konsulto en la fontolingvo montras, ke multaj legataj vortoj havas plurajn signifojn, kaj permesas ekkoni la ĝustan signifon de la vorto en la teksto. Se la dulingva vortaro estas almenaŭ mezbona, ĝi montras la plurajn tradukojn, kiujn tiu vorto havas, por ke oni serĉu ilin por elekto en la tria vortaro, en la cellingvo. Tio estas nepraĵo por bona kompreno kaj trafa traduko (kiam necesa). Krom tiuj tri, aliaj vortaroj povas esti utilaj. Bildigeblaj aĵoj ricevas aldonajn informojn en bildvortaroj. Geografiaj aŭ historiaj tekstoj fariĝas pli klaraj post konsulto al landkarto kaj enciklopedia vortaro. Kaj por fakaj temoj eĉ fakuloj ricevas pliajn informojn en fakaj vortaroj, ne gravas ĉu unulingvaj, dulingvaj aŭ plurlingvaj.&lt;&#x2F;p&gt;
&lt;p&gt;Mi estas konvinkita, ke unu el la ĉefaj taskoj de lingvo-instruistoj, eĉ de instruisto de la gepatra lingvo en elementa lernejo, estas instruo de konsulto al vortaroj. Unue la komencanto devas elekti vortaron tagan por sia lingvonivelo. Poste li devas lerni konsulti ĝin. Se la instruisto ne spronas kaj helpas siajn lernantojn tiudirekten, lia instruado estas nekompleta. Ĉiu lingvo estas rilato inter vortoj kaj signifoj, kaj tial vortaro estas almenaŭ tiel grava por lingvolernado kiel legado kaj interparolo. Instruistoj devas elekti bonajn vortarojn por siaj gelernantoj, transdoni al ili amon al siaj vortaroj kaj instrui al ili kiam kaj kiel uzi ilin. Bedaŭrinde eĉ kelkaj instruistoj ne scias aŭ ne volas fari tion.&lt;&#x2F;p&gt;
&lt;p&gt;Kiel mi diris, bone elektitajn librojn oni devas legi ne unu solan fojon, sed almenaŭ tri. La unuan, oni legas sen vortaro. Ĝi permesas diveni multon kaj akompani la ĉefan gvidlinion de la teksto. Sed ĝi ne estas perfekta. Nuancoj estas perditaj kaj kelkaj falsaj amikoj ankoraŭ ĝenos. Tial la lernado estos nekompleta. De bonaj aŭtoroj la leganto povas ricevi multe pli. Por taŭga lernado necesas legi tiajn tekstojn almenaŭ du aliajn fojojn. En la dua oni konsultas ne unu, sed plurajn vortarojn. En la tria oni ĝuas senvortaran relegon, komprenante ĉion, frandante la nuancojn kaj la supozeble agrablan stilon de la aŭtoro.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;praktikaj-kaj-oportunaj-vortaroj&quot;&gt;PRAKTIKAJ KAJ OPORTUNAJ VORTAROJ&lt;&#x2F;h2&gt;
&lt;p&gt;En intervjuo por Brazilei 4 mi respondis plurajn demandojn pri mia sinteno rilate al vortaroj. Mi asertis, ke la ekzistantaj vortaroj ne plene kontentigas min. Mi volas kombini la bonajn kvalitojn de la vortaroj, kiujn mi uzis en la lernado de diversaj lingvoj. Mi volas ellabori tion, kion mi ŝatus trovi kiam mi eklernis Esperanton. Por mi pluraj vortaroj estas konsultindaj. Kelkaj estas eĉ uzindaj kiel lernolibro. Pri Esperanto, precipe por novuloj, mi konsideras la malnovajn vortarojn pli bonaj ol la novaj. PV estas pli bona ol PIV. Sed la Nova PIV estas pli bona ol la malnova, ĉar ĝi reprenis la vojon al simpleco. La Esperanta komunumo havas malmulte da denaskuloj. Eĉ ili ricevas fortan influon de la lingvoj de sia loĝloko kaj de siaj gepatroj. Por la aliaj Esperanto-parolantoj nia lingvo estas dua aŭ tria. Nia komunumo konsistas ĉefe el ĵusaj komencantoj kaj eternaj komencantoj. Kontraste al etnaj lingvoj, Esperanto havas relative malmulte da spertuloj. Kaj ili havas grandegan respondecon. Ĉefe instruistoj, verkistoj, prelegantoj kaj – pli ol ĉiuj – vortaristoj. Same kiel gepatroj bezonas flegi la lingvon uzatan de siaj gefiloj, kaj geinstruistoj tiun de siaj gelernantoj, Esperantaj vortaristoj ankaŭ plenumas gravan flegistan rolon.&lt;&#x2F;p&gt;
&lt;p&gt;Miajn nur-Esperantajn vortarojn mi konsideras praktikaj pro la forigo de teknikaĵoj (kiuj pezigas kaj multekostigas PIV, malgraŭ ilia intereso por fakuloj), pro la abundo de bildoj (kiujn mi prenos el OEB); pro la indikoj pri fundamenteco, oficialeco kaj zamenhofeco (kiuj riĉigas PIV), pro la indiko de vortofteco laŭ esploro per Guglo kaj aliaj fontoj (kiun eĉ PIV ne havas), pro la enmeto ankaŭ de tre uzataj propraj nomoj, mallongigoj kaj gravaj derivaĵoj (en kuna alfabeta ordo por faciligi la serĉon). Aldone ili estos redaktataj en tio, kion mi nomas ĵurnalisma stilo, por ke ĝia legado fariĝu tiel alloga, kiel tiu de revuo aŭ de enciklopedieto por lernejano. Mi volas, ke la aĉetintoj ofte malfermu ilin, eĉ ne bezonante fari specifan konsulton.&lt;&#x2F;p&gt;
&lt;p&gt;Respondante al Brazilei pri mia prefero labori sola, mi substrekis, ke nur tiel mi sukcesos labori rapide kaj atingi la deziratan celon. Se grupa laboro kun formala voĉdono estus la plej bona solvo, la Akademio de Esperanto jam estus pretiginta bonegan vortaron, kaj neniu privatulo bezonus individue okupiĝi pri vortaroj. Mi ne kontraŭas la iaman aperigon de vortaro de la Akademio aŭ la daŭran evoluon de la malpli kolektiva PIV, sed mi opinias, ke bonintenca individuo devas klopodi rapide kaj serioze prezenti sian laboron, ne forgesante konsulti la laboron jam faritan de aliaj. Eble tio eĉ helpos la iaman faradon de la Vortaro de la Akademio.&lt;&#x2F;p&gt;
&lt;p&gt;Miajn malpli grandajn vortarojn mi nomos oportunaj ĉar ili havos aliajn kvalitojn. Ili destiniĝos samtempe al komencantoj kaj al veteranoj, por rapida konsulto. Por komencantoj ili estos sufiĉe facilaj. Kaj por veteranoj ili estos sufiĉe informaj. Mi planas havi unu el du oportunaj formoj. Se eble ambaŭ, en du paralelaj eldonoj:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Normala grando, kun aldona avantaĝo havi sufiĉe grandajn kaj facile legeblajn literojn.&lt;&#x2F;li&gt;
&lt;li&gt;Poŝportebla grando, kun malpli grandaj literoj sed ebleco ofte havi la vortaron apud si.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;En la dulingva oportuna vortaro, kiun mi nun preparas, speciala atento estos dediĉata al homonimoj, sinonimoj, antonimoj kaj falsaj amikoj. Ĝi ne anstataŭos la konsulton al unulingvaj vortaroj, kiujn ĉiu seriozulo bezonas fari. Sed ĝi fariĝos taŭga ponto inter la du unulingvaj vortaroj. Oportuna dulingva vortaro nepre devas:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;havi saman detalecon ambaŭflanke de la vortaro; se vorto en unu lingvo kondukas al du sinonimoj, ambaŭ sinonimoj devas rekonduki al tiu vorto; evidente la parto portugala-Esperanta fariĝos multe pli ampleksa ol la Esperanta-portugala;&lt;&#x2F;li&gt;
&lt;li&gt;bone klarigi la plursignifecon de kelkaj vortoj; se eble kun ekzemploj.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;Mi eksplicitas mian penson per du artikoloj: tiu de la portugallingva DE kaj tiu de la Esperanta- DEKUMa:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;de&lt;&#x2F;strong&gt; (prep) (com alguns exemplos) &lt;strong&gt;1&lt;&#x2F;strong&gt;. (pertencente a) de: &lt;strong&gt;livro de Pedro&lt;&#x2F;strong&gt;, libro de Petro; &lt;strong&gt;2&lt;&#x2F;strong&gt;. (quantidade) da: &lt;strong&gt;duas colheres de açúcar&lt;&#x2F;strong&gt;, du kuleroj da sukero; &lt;strong&gt;3&lt;&#x2F;strong&gt;. (durante) dum: &lt;strong&gt;dormir de dia&lt;&#x2F;strong&gt;, dormi dum la tago; &lt;strong&gt;4&lt;&#x2F;strong&gt;. (desde, a partir de) ekde: &lt;strong&gt;conte tudo do começo&lt;&#x2F;strong&gt;, rakontu ĉion ekde la komenco; &lt;strong&gt;5&lt;&#x2F;strong&gt;. (de dentro de, feito de) el: &lt;strong&gt;tirar do bolso&lt;&#x2F;strong&gt;, preni el la poŝo; &lt;strong&gt;anel de ouro&lt;&#x2F;strong&gt;, ringo el oro; &lt;strong&gt;6&lt;&#x2F;strong&gt;. (em, no decorrer de) en: &lt;strong&gt;venha de manhã&lt;&#x2F;strong&gt;, venu en la mateno; &lt;strong&gt;7&lt;&#x2F;strong&gt;. (comparação) ol: &lt;strong&gt;mais de três vezes&lt;&#x2F;strong&gt;, pli ol tri fojoj; &lt;strong&gt;8&lt;&#x2F;strong&gt;. (por meio de) &lt;strong&gt;ir de barco&lt;&#x2F;strong&gt;, iri per boato; &lt;strong&gt;9&lt;&#x2F;strong&gt;. (a respeito de) pri: &lt;strong&gt;falo de preposições&lt;&#x2F;strong&gt;, mi parolas pri prepozicioj; &lt;strong&gt;10&lt;&#x2F;strong&gt;.(por causa de) pro: &lt;strong&gt;morrer de sede&lt;&#x2F;strong&gt;, morti pro soifo.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;dekuma&lt;&#x2F;strong&gt; (dek&#x2F;uma) (mat) decimal; &lt;strong&gt;dekumi&lt;&#x2F;strong&gt; (v.t.) dizimar.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;h2 id=&quot;mia-sinteno-rilate-al-esperanto-vortaroj&quot;&gt;MIA SINTENO RILATE AL ESPERANTO-VORTAROJ&lt;&#x2F;h2&gt;
&lt;p&gt;Mi resumos ĝin en kelkaj asertoj:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Esperanto devas resti simpla, fleksebla, riĉa kaj belsona.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;Abundo da nenecesaj radikoj estas ĝena. Mastodontaj vortoj ankaŭ. Kaj la riĉeco de la Esperanta derivaĵo devas fariĝi pli konata. Ĉiuj oficialaj vortoj devas esti konataj, kvankam kelkaj ne meritus esti oficialaj. Tial oni devas scii, ke anstataŭ la superflua &lt;strong&gt;geografo&lt;&#x2F;strong&gt; oni povus uzi la derivaĵon &lt;strong&gt;geografiisto&lt;&#x2F;strong&gt;. Anstataŭ la pezan &lt;strong&gt;komentarii&lt;&#x2F;strong&gt; oni povus uzi la neoficialan sed pli uzatan kaj pli belan &lt;strong&gt;komenti&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;
&lt;p&gt;Esperanto denaske havas sinonimojn kaj homonimojn: &lt;strong&gt;leopardo&#x2F;pantero&lt;&#x2F;strong&gt; kaj &lt;strong&gt;firmo (entrepreno) &#x2F; firmo (firmeco)&lt;&#x2F;strong&gt;. Ne decas nei, ne eblas eviti kaj ne necesas honti. Vortaroj devas klare montri ilian abundon.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Estas konstateble, ke esperantistoj preferas simplecon, klarecon kaj belsonecon. Sufiĉos klare montri la ekziston de paroj kiel &lt;strong&gt;asterio&#x2F;marstelo&lt;&#x2F;strong&gt;, &lt;strong&gt;arakido&#x2F;ternukso&lt;&#x2F;strong&gt;, &lt;strong&gt;Herkuleso&#x2F;Herkulo&lt;&#x2F;strong&gt;, &lt;strong&gt;fotografio&#x2F;foto&lt;&#x2F;strong&gt;, &lt;strong&gt;aŭtobuso&#x2F;buso&lt;&#x2F;strong&gt;, &lt;strong&gt;aŭtodidakte&#x2F;memlerne&lt;&#x2F;strong&gt;, &lt;strong&gt;agrikulturo&#x2F;terkulturo&lt;&#x2F;strong&gt;, &lt;strong&gt;iksodo&#x2F;brutlaŭso&lt;&#x2F;strong&gt;, &lt;strong&gt;Pacifiko&#x2F;Paca Oceano&lt;&#x2F;strong&gt;, &lt;strong&gt;Terezopoliso&#x2F;Terezopolo&lt;&#x2F;strong&gt;, kaj mi ne bezonos batali, ĉar la informitaj lingvouzantoj rekondukos Esperanton al la vojo celita de Zamenhof.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;La troa enmiksiĝo de fakuloj en la farado de vortaroj pli ĝenas ol helpas la normalan uzadon de la lingvo. En la normala uzo pli gravas la manĝebla produkto ol la planto: pomo&#x2F;pomujo, banano&#x2F;bananujo. Prioritati la planton estas malzamenhofa tendenco, kiu simplas nur por botanikistoj. Por ĉiutagaj uzantoj de la lingvo ne gravas detaloj botanikaj, kemiaj aŭ gramatikaj. Tial, kvankam malteknike, &lt;strong&gt;akaĵuo&lt;&#x2F;strong&gt; estas frukto (kaj ne arbo, ŝajnfrukto aŭ pedunklo), oni pretigas &lt;strong&gt;ŝojon&lt;&#x2F;strong&gt; (aŭ &lt;strong&gt;sojsaŭco&lt;&#x2F;strong&gt;) el &lt;strong&gt;sojo&lt;&#x2F;strong&gt;, kaj ne el &lt;strong&gt;sojfaboj&lt;&#x2F;strong&gt;, kiu estas tiel stranga kiel &lt;strong&gt;fazeolfaboj&lt;&#x2F;strong&gt;. La prioritato de la komuna lingvo estas nepre defendinda. Laŭdinda estas la iniciato de PIV2 kaj de pluraj sciencistoj (kiel Wim de Smet) kiuj apartigas fakan kaj komunuzan lingvon. Do, la fakuloj zorgu pri siaj &lt;strong&gt;fazeolusoj&lt;&#x2F;strong&gt;, &lt;strong&gt;papirusoj&lt;&#x2F;strong&gt;, &lt;strong&gt;asterioj&lt;&#x2F;strong&gt;, &lt;strong&gt;iksodoj&lt;&#x2F;strong&gt; kaj &lt;strong&gt;arakidoj&lt;&#x2F;strong&gt;, kaj la ordinaraj homoj pli simple kaj trankvile parolu pri &lt;strong&gt;fazeoloj&lt;&#x2F;strong&gt;, &lt;strong&gt;papiroj&lt;&#x2F;strong&gt;, &lt;strong&gt;marsteloj&lt;&#x2F;strong&gt;, &lt;strong&gt;brutlaŭsoj&lt;&#x2F;strong&gt; kaj &lt;strong&gt;ternuksoj&lt;&#x2F;strong&gt;. La miksado de teknika kaj komunuza lingvo detruas la simplecon de nia internacia lingvo Esperanto.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;La troa detalemo de kelkaj francaj vortaristoj jam estis akre (sed prave) atakata de Claude Piron. &lt;strong&gt;Dromedaro&lt;&#x2F;strong&gt; (kvankam unuĝiba) ja estas &lt;strong&gt;kamelo&lt;&#x2F;strong&gt;; la besto &lt;strong&gt;&lt;em&gt;Panthera pardus&lt;&#x2F;em&gt;&lt;&#x2F;strong&gt; estas unusola, ne gravas ĉu oni nomas ĝin &lt;strong&gt;pantero&lt;&#x2F;strong&gt; au &lt;strong&gt;leopardo&lt;&#x2F;strong&gt;. Egale &lt;strong&gt;plagoj&lt;&#x2F;strong&gt; kaj &lt;strong&gt;strandoj&lt;&#x2F;strong&gt; estas unusola speco de marbordo, ne gravas, ĉu ili troviĝas en la insulo de Robinsono, ĉu ili estas privataĵoj de usona hotelo, aŭ ĉu ili havas duŝejojn kaj aliajn lueblaĵojn.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Same la birdoj kaj la fruktoj &lt;strong&gt;kivio&lt;&#x2F;strong&gt; kaj &lt;strong&gt;pitango&lt;&#x2F;strong&gt; rajtas resti kun la nomoj, kiujn ili ricevis antaŭlonge (ne donitaj de mi). Tiu homonimeco ĝenas nek ilin nek nin. La nomoj &lt;strong&gt;kivifrukto&lt;&#x2F;strong&gt;, &lt;strong&gt;kivibirdo&lt;&#x2F;strong&gt;, &lt;strong&gt;pitangofrukto&lt;&#x2F;strong&gt; kaj &lt;strong&gt;pitangobirdo&lt;&#x2F;strong&gt; estas kompreneblaj (do akceptindaj) sed mastodontaj kaj superfluaj. Kaj ĉiu alia nomparo estas pli malbona kaj konfuziga.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;h2 id=&quot;kial-kiom-kaj-kiel-prezenti-brazilajojn-en-oportunaj-vortaroj&quot;&gt;KIAL, KIOM KAJ KIEL PREZENTI BRAZILAĴOJN EN OPORTUNAJ VORTAROJ?&lt;&#x2F;h2&gt;
&lt;p&gt;Ĉiu mondparto, ĉiu kulturo, ĉiu specifa apartenaĵo de iu ajn lando meritas esti konsiderata por enmeto en nia internacia lingvo, se ĝi fakte estas uzinda. Se ne, ĝi povas esti metita klinlitere en internacilingvaj tekstoj (kun simpla transliterigo por fariĝi prononcebla), aŭ sekvata de steleto por klarigo per glosaro. La Esperanta versio de Tipoj kaj Aspektoj de Brazilo enhavas tre klarajn priskribojn de nia lando kun malgranda kvanto da esperantigo de brazilaĵoj fare de niaj lertaj veteranoj.&lt;&#x2F;p&gt;
&lt;p&gt;Malsimile aliaj brazilaj esperantistoj (eĉ veteranoj) provas rapide esperantigi brazilajn vortojn, kiuj ne interesas al eksterlandano. Aŭ tro haste esperantigas brazilaĵojn en maniero, kiu ĝenas la eksterlandan esperantistaron. Tiel aperis la vorto &lt;strong&gt;Brazilio&lt;&#x2F;strong&gt;, kiu eble kontentigis brazilajn poŝtoficistojn, sed ĝenis la nebrazilan komunumon, alkutimiĝintan al la paroj &lt;strong&gt;Alĝerio&#x2F;Alĝero&lt;&#x2F;strong&gt;, &lt;strong&gt;Tunizio&#x2F;Tunizo&lt;&#x2F;strong&gt; kaj &lt;strong&gt;Luksemburgio&#x2F;Luksemburgo&lt;&#x2F;strong&gt;. Malgraŭ kelkaj ĝisnunaj plendoj, la vorto Brazilio estis forĵetita, kaj la nun uzata brazila paro fariĝis &lt;strong&gt;Brazilo&#x2F;Braziljo&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Same ĝene, la vortaroj de FEB registris du vortojn por unu sola brazila urbo: &lt;strong&gt;Bela-Horizonto&lt;&#x2F;strong&gt; kaj &lt;strong&gt;Belo-Horizonto&lt;&#x2F;strong&gt;. La tiama vortaristo estis bonintenca kabineta viro, kiu neniam partoprenis en brazilaj Esperanto-renkontiĝoj. Li ne rimarkis, ke la belorizonta movado, multajn jarojn antaŭe, estis decidinta ke ĝia urbo havas la multe pli belsonan nomon Belorizonto. Feliĉe la nova skipo de vortaristoj de FEB jam informis publike, ke la nomo de tiu urbo, en ĝiaj nun reviziataj kaj baldaŭ aperontaj vortaroj refariĝis &lt;strong&gt;Belorizonto&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;La Laborgrupo Antaŭen same senzorge kaj sendiskute publikigis centojn da &lt;strong&gt;Brazilaj Geografiaj Nomoj&lt;&#x2F;strong&gt;, kie la granda plimulto estas superflua kaj – eĉ pli malbone – aperas kelkaj &lt;strong&gt;nerekoneblaj monstraĵoj&lt;&#x2F;strong&gt;, kiel &lt;strong&gt;Seĥinjo&lt;&#x2F;strong&gt; (Serrinha) kaj &lt;strong&gt;Tresbaĥaso&lt;&#x2F;strong&gt; (Três Barras). Feliĉe &lt;strong&gt;kampinanoj&lt;&#x2F;strong&gt; kaj &lt;strong&gt;tri-riveranoj&lt;&#x2F;strong&gt; jam sufiĉe saĝe kaj vigle kontraŭis tiun libron kaj decidis, ke iliaj urboj, multe pli simple kaj bele, nomiĝas &lt;strong&gt;Kampino&lt;&#x2F;strong&gt; kaj &lt;strong&gt;Tri Riveroj&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Evidente estas utile, ke ni kune decidu pri nomoj, kiujn ni povas doni al kelkaj brazilaĵoj – ne nur geografiaj, sed ankaŭ folkloraj kaj kulturaj. Ĉu &lt;strong&gt;frotbambuo&lt;&#x2F;strong&gt; (reco-reco) kaj &lt;strong&gt;muzikarko&lt;&#x2F;strong&gt; (berimbau) estas sufiĉe taŭgaj? Pri kiuj vortoj jam estas sufiĉe matura interkonsento? Kaj kiuj vortoj ankoraŭ devas resti for de niaj oportunaj vortaroj? Bonvolu helpi min!&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="pt">
        <title>Timorato</title>
        <published>2026-08-21T00:00:00+00:00</published>
        <updated>2026-08-21T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://augustofornitani.com.br/blog/timorato/"/>
        <id>https://augustofornitani.com.br/blog/timorato/</id>
        
        <content type="html" xml:base="https://augustofornitani.com.br/blog/timorato/">&lt;p&gt;Desculpe, J
&lt;br&gt;
Penso tanto no que te fiz, como robô
&lt;br&gt;
Queria nunca ter sido&lt;&#x2F;p&gt;
&lt;p&gt;…&lt;&#x2F;p&gt;
&lt;p&gt;Desculpe, K
&lt;br&gt;
Gostaria de um dia poderes me agradecer,
&lt;br&gt;
Sem ser-te problema
&lt;br&gt;
Queria ter crescido à tua altura
&lt;br&gt;
E termos vivido&lt;&#x2F;p&gt;
&lt;p&gt;…&lt;&#x2F;p&gt;
&lt;p&gt;Desculpe, L
&lt;br&gt;
Não te dei o espaço
&lt;br&gt;
Que mereces&lt;&#x2F;p&gt;
&lt;p&gt;…&lt;&#x2F;p&gt;
&lt;p&gt;Desculpe, X
&lt;br&gt;
Não te amo o quanto precisas
&lt;br&gt;
Mas de ti, aguardo também desculpas.&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;poltrono&quot;&gt;Poltrono&lt;&#x2F;h2&gt;
&lt;p&gt;Pardonu min, J
&lt;br&gt;
Pripensas mi multe, kion faris mi al vi
&lt;br&gt;
Volas mi neniam estinti&lt;&#x2F;p&gt;
&lt;p&gt;…&lt;&#x2F;p&gt;
&lt;p&gt;Pardonu min, K
&lt;br&gt;
Volas mi, ke iam povus vi min danki,
&lt;br&gt;
Kaj ne esti al vi ĝeno
&lt;br&gt;
Volas mi grandiĝi ĝis via grandeco
&lt;br&gt;
Kaj kun(e)vivi&lt;&#x2F;p&gt;
&lt;p&gt;…&lt;&#x2F;p&gt;
&lt;p&gt;Pardonu min, L
&lt;br&gt;
Mi ne donis al vi la spacon
&lt;br&gt;
Kiun vi meritas&lt;&#x2F;p&gt;
&lt;p&gt;…&lt;&#x2F;p&gt;
&lt;p&gt;Pardonu min, X&lt;br&gt;
Mi ne amas vin tiom, kiom vi bezonas&lt;br&gt;
Tamen de vi, atendas ankaŭ mi pardonpeton.&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;Quero, não faço. Faço, sem querer.
&lt;br&gt;Volo, sen far&#x27;. Faro, senvole.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="pt">
        <title>Gambiarra para ter miniatura de janelas (PiP - Picture in Picture) em qualquer sistema</title>
        <published>2026-06-03T00:00:00+00:00</published>
        <updated>2026-06-03T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://augustofornitani.com.br/blog/gambiarra-para-miniatura-de-janelas/"/>
        <id>https://augustofornitani.com.br/blog/gambiarra-para-miniatura-de-janelas/</id>
        
        <content type="html" xml:base="https://augustofornitani.com.br/blog/gambiarra-para-miniatura-de-janelas/">&lt;p&gt;Sistemas como o KDE Plasma e Gnome têm opções gráficas para manter qualquer janela em cima de outra. Outros sistemas, como i3&#x2F;Sway, disponibilizam essa mesma função por meio de comandos específicos (por padrão, as teclas Super + Shift + espaço).&lt;&#x2F;p&gt;
&lt;p&gt;No Windows, há programas que permitem atingir o mesmo resultado, ainda que sem a mesma praticidade (AlwaysOnTop, PowerToys). No macOS, até dá para fazer algo do tipo, mas o funcionamento não é tão satisfatório.&lt;&#x2F;p&gt;
&lt;p&gt;Enfim, não é algo muito popular -- mas quem usa, gosta. (Obs: eu sei digitar travessões e muitos outros sinais tipográficos porque uso &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Compose_key&quot;&gt;isto&lt;&#x2F;a&gt;, mas é uma das coisas que a IA estragou para todos…)&lt;&#x2F;p&gt;
&lt;p&gt;Hoje estava configurando o compartilhamento de janelas individuais no Sway (novidade na versão 1.12), e notei que isso poderia ser usado como um substituto ao picture-in-picture.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;como-fazer&quot;&gt;Como fazer&lt;&#x2F;h3&gt;
&lt;p&gt;Primeiro, use o Firefox ou outro navegador que possua a opção de PiP (nos meus testes, Chrome e Edge também funcionam, basta clicar com o direito sobre o vídeo &amp;gt; Picture in picture).&lt;&#x2F;p&gt;
&lt;p&gt;Vá para o site &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;mozilla.github.io&#x2F;webrtc-landing&#x2F;gum_test.html&quot;&gt;https:&#x2F;&#x2F;mozilla.github.io&#x2F;webrtc-landing&#x2F;gum_test.html&lt;&#x2F;a&gt; ou qualquer outro que permita compartilhar a tela sem fazer uma videochamada.&lt;&#x2F;p&gt;
&lt;p&gt;Selecione a janela que quer deixar visível, e compartilhe-a.&lt;&#x2F;p&gt;
&lt;p&gt;Use a opção de &quot;soltar&quot; o vídeo do seu navegador. No Firefox, há um ícone sobre o vídeo, além da opção de clicar com o botão direito &amp;gt; Watch in Picture-in-Picture. Detalhes aqui: &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.firefox.com&#x2F;pt-BR&#x2F;features&#x2F;picture-in-picture&#x2F;&quot;&gt;https:&#x2F;&#x2F;www.firefox.com&#x2F;pt-BR&#x2F;features&#x2F;picture-in-picture&#x2F;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;pip-firefox.jpg&quot; alt=&quot;Como abrir o menu de vídeo destacado no Firefox&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Com isso, é só redimensionar a janela e pronto. Serve para qualquer janela do seu sistema.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;pip-firefox-2.jpg&quot; alt=&quot;Resultado no Firefox&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;h3 id=&quot;quando-isso-pode-ser-util&quot;&gt;Quando isso pode ser útil&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;Você tava jogando com alguém, essa pessoa saiu rapidinho. Você quer ver quando ela volta, sem precisar mandar mensagem. Só deixar uma miniatura do jogo ali e ir fazer outra coisa. Quando a pessoa voltar, você vai ver o movimento na telinha, é só voltar pro jogo.&lt;&#x2F;li&gt;
&lt;li&gt;Em videochamadas meio chatas que você tem que participar por obrigação, dá para deixar ali e ir fazendo suas coisinhas (um olho no peixe, outro no gato).&lt;&#x2F;li&gt;
&lt;li&gt;Qualquer coisa que atualize rapidamente mas que não exige sua interação direta (feeds, mensagens instantâneas de grupos etc). Útil para ficar por dentro, mantendo notificações desativadas.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Enfim, não sei se vou usar isso, porque todos os sistemas que uso já incluem o &quot;always on top&quot;, mas pode ser útil em alguns casos.&lt;&#x2F;p&gt;
&lt;p&gt;Mesmo nos sistemas (como o Sway) ainda há vantagem neste método, porque a tela compartilhada mantém a proporção original da janela.&lt;&#x2F;p&gt;
&lt;p&gt;Com o &quot;always on top&quot; do Sway, teria que redimensionar a janela, o que às vezes atrapalha a visualização&#x2F;uso.&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;É isso. Valeu!&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="pt">
        <title>Site alternativo da Virada Cultural 2026</title>
        <published>2026-05-10T00:00:00+00:00</published>
        <updated>2026-05-10T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://augustofornitani.com.br/blog/site-alternativo-virada-cultural/"/>
        <id>https://augustofornitani.com.br/blog/site-alternativo-virada-cultural/</id>
        
        <content type="html" xml:base="https://augustofornitani.com.br/blog/site-alternativo-virada-cultural/">&lt;p&gt;O site é este: &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;virada-cultural-2026.netlify.app&#x2F;&quot;&gt;https:&#x2F;&#x2F;virada-cultural-2026.netlify.app&#x2F;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Se você tiver sugestões de melhorias e novas ideias, envie para o meu e-mail ahfac@tuta.io&lt;&#x2F;p&gt;
&lt;h2 id=&quot;motivo-para-criar-o-site-alternativo&quot;&gt;Motivo para criar o site alternativo&lt;&#x2F;h2&gt;
&lt;p&gt;De início, criei manualmente um &lt;code&gt;.csv&lt;&#x2F;code&gt; dos shows que eu queria ver.&lt;&#x2F;p&gt;
&lt;p&gt;Mas havia dois incômodos:&lt;&#x2F;p&gt;
&lt;p&gt;1 - Estava tomando muito tempo&lt;&#x2F;p&gt;
&lt;p&gt;2 - Pensei que mais alguém fosse gostar de uma versão diferente do processo&lt;&#x2F;p&gt;
&lt;p&gt;Então joguei no chatbot para ele fazer esse trabalho sujo por nós hehe&lt;&#x2F;p&gt;
&lt;p&gt;Não está perfeito, mas preferi o que &quot;fiz&quot; ao oficial (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;viradasp.prefeitura.sp.gov.br&#x2F;&quot;&gt;https:&#x2F;&#x2F;viradasp.prefeitura.sp.gov.br&#x2F;&lt;&#x2F;a&gt;).&lt;&#x2F;p&gt;
&lt;h3 id=&quot;funcoes&quot;&gt;Funções&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;exportar para &lt;code&gt;.csv&lt;&#x2F;code&gt; com somente os eventos escolhidos&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;exportar para arquivo &lt;code&gt;.ics&lt;&#x2F;code&gt;, para importar no programa de calendário da sua escolha&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;salvar comentários pessoais sobre o evento, no armazenamento local do navegador (&lt;code&gt;localStorage&lt;&#x2F;code&gt;)&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;caso haja alguma divergência com o site oficial, suas anotações podem corrigir o que o site alternativo fala (confie mais no oficial)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Caso queira somente um CSV dos eventos, é só baixar daqui: &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;virada-cultural-2026.netlify.app&#x2F;data&#x2F;virada_cultural_2026_v3.csv&quot;&gt;https:&#x2F;&#x2F;virada-cultural-2026.netlify.app&#x2F;data&#x2F;virada_cultural_2026_v3.csv&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Aproveitando o gancho: o &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.visidata.org&#x2F;&quot;&gt;VisiData&lt;&#x2F;a&gt; é ótimo para filtrar rapidinho (&lt;code&gt;Shift+F&lt;&#x2F;code&gt;).&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;Espero que seja útil. Valeu!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;atualizacao-em-15-05-2026&quot;&gt;Atualização em 15&#x2F;05&#x2F;2026&lt;&#x2F;h2&gt;
&lt;p&gt;Criaram uma lista de eventos, direto no site da prefeitura! :)&lt;&#x2F;p&gt;
&lt;p&gt;Segue a nova página: &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;viradasp.prefeitura.sp.gov.br&#x2F;listagem&quot;&gt;https:&#x2F;&#x2F;viradasp.prefeitura.sp.gov.br&#x2F;listagem&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;A versão que publiquei tem o diferencial de poder exportar como CSV (útil para depois abrir no software de planilha e ir fazendo ajustes, como quais horários conflitam etc).&lt;&#x2F;p&gt;
&lt;p&gt;Mas o site oficial está de bom tamanho, com essa atualização. Então vou manter o meu online, mas apenas como curiosidade.
Isso porque ainda há eventos sendo cadastrados, horários alterados etc. De forma que manter uma versão alternativa dá mais trabalho que o esperado.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;atualizacao-em-23-05-2026&quot;&gt;Atualização em 23&#x2F;05&#x2F;2026&lt;&#x2F;h2&gt;
&lt;p&gt;Minha vontade era ter saído logo cedo e ver a Virada ao longo do dia. Mas como tá aquele friozinho chuvoso, vai exigir bastante coragem. Por outro lado, aproveitei para corrigir meu site alternativo.&lt;&#x2F;p&gt;
&lt;p&gt;Está bem melhor agora, com a maioria dos horários batendo com o site oficial da Prefeitura.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="pt">
        <title>Incluindo milhares de termos de uma vez no corretor ortográfico do macOS</title>
        <published>2026-03-25T00:00:00+00:00</published>
        <updated>2026-03-25T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://augustofornitani.com.br/blog/corretor-ortografico-macos/"/>
        <id>https://augustofornitani.com.br/blog/corretor-ortografico-macos/</id>
        
        <content type="html" xml:base="https://augustofornitani.com.br/blog/corretor-ortografico-macos/">&lt;p&gt;Esta semana, minha esposa migrou para o macOS. Como consequência, resolveu testar o Apple Pages, em vez do LibreOffice Writer + InDesign.&lt;&#x2F;p&gt;
&lt;p&gt;No entanto, o corretor ortográfico do macOS, que o Pages usa, não conhece muitos termos da área dela (biologia), deixando o sublinhado em vermelho. Vale ressaltar que o LibreOffice se sai muito bem nesse quesito, por usar o &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;pt-br.libreoffice.org&#x2F;projetos&#x2F;vero&#x2F;&quot;&gt;VERO - &lt;strong&gt;VER&lt;&#x2F;strong&gt;ificador &lt;strong&gt;O&lt;&#x2F;strong&gt;rtográfico &lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Com isso, havia duas soluções rápidas: 1) desabilitar o verificador ortográfico ou 2) me desafiar a resolver o problema.&lt;&#x2F;p&gt;
&lt;p&gt;Felizmente, fui convidado a tentar a opção 2.&lt;&#x2F;p&gt;
&lt;p&gt;Sendo assim, as palavras como &lt;em&gt;alopátrico&lt;&#x2F;em&gt;, &lt;em&gt;sinapomorfia&lt;&#x2F;em&gt; ou &lt;em&gt;oligozoospermia&lt;&#x2F;em&gt;, que apareciam sublinhadas em vermelho, agora são até sugeridas pelo macOS.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;a-solucao&quot;&gt;A solução&lt;&#x2F;h2&gt;
&lt;p&gt;Peguei dicionários (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.crbio05.gov.br&#x2F;site&#x2F;pdf&#x2F;dicionario_de_termos_biologicos_crbio_05.pdf&quot;&gt;exemplo&lt;&#x2F;a&gt;) e apostilas de biologia que ela usa para estudar, e falei para o &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;ampcode.com&#x2F;&quot;&gt;Amp&lt;&#x2F;a&gt; ler os arquivos e gerar um .txt com termos da área.&lt;&#x2F;p&gt;
&lt;p&gt;Ele criou uma lista com mais de quatro mil termos de biologia, organizada em categorias (Biogeografia e evolução; Ecologia e habitat etc)&lt;&#x2F;p&gt;
&lt;h2 id=&quot;como-funciona&quot;&gt;Como funciona&lt;&#x2F;h2&gt;
&lt;p&gt;Três scripts Swift usam a API &lt;code&gt;NSSpellChecker&lt;&#x2F;code&gt; do macOS. O código completo está ao final do texto.&lt;&#x2F;p&gt;
&lt;p&gt;O &lt;code&gt;learn_unknown.swift&lt;&#x2F;code&gt; aprende apenas os termos que o corretor ainda não conhece:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;swift&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; learn_unknown.swift&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; termos_biologia.txt&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Já o &lt;code&gt;learn_words.swift&lt;&#x2F;code&gt;, força o aprendizado de todos os termos, sem verificar:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;swift&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; learn_words.swift&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; termos_biologia.txt&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Por fim, o &lt;code&gt;unlearn_word.swift&lt;&#x2F;code&gt; remove um termo individual:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;swift&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; unlearn_word.swift&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; sinapomorfia&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Os termos aprendidos deveriam ir parar em &lt;code&gt;~&#x2F;Library&#x2F;Spelling&#x2F;LocalDictionary&lt;&#x2F;code&gt;, mas, na prática, não funcionou. E foi a primeira coisa que tentei…
De todo modo, os script funcionam bem, e os termos passam a valer em todos os apps do sistema.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;resultado&quot;&gt;Resultado&lt;&#x2F;h2&gt;
&lt;p&gt;Sem mais sublinhados vermelhos em &lt;em&gt;cladograma&lt;&#x2F;em&gt;, &lt;em&gt;metagenômica&lt;&#x2F;em&gt; ou &lt;em&gt;quimioautotrofia&lt;&#x2F;em&gt; :)&lt;&#x2F;p&gt;
&lt;p&gt;A lista pode ser complementada, modificada etc. Basta &lt;a href=&quot;https:&#x2F;&#x2F;augustofornitani.com.br&#x2F;blog&#x2F;corretor-ortografico-macos&#x2F;.&#x2F;listas_de_palavras&#x2F;termos_biologia.txt&quot;&gt;fazer o download&lt;&#x2F;a&gt;, adicionar ou substituir linhas no &lt;code&gt;.txt&lt;&#x2F;code&gt; e rodar o script novamente.&lt;&#x2F;p&gt;
&lt;p&gt;Assim, não funciona apenas com termos de biologia, mas de qualquer área. Por exemplo, peguei &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.lumiun.com&#x2F;blog&#x2F;glossario-termos-tecnicos-informatica&#x2F;&quot;&gt;esta lista de Informática&lt;&#x2F;a&gt; e gerei &lt;a href=&quot;https:&#x2F;&#x2F;augustofornitani.com.br&#x2F;blog&#x2F;corretor-ortografico-macos&#x2F;.&#x2F;listas_de_palavras&#x2F;termos_informatica.txt&quot;&gt;esta lista&lt;&#x2F;a&gt;, com o mesmo efeito.&lt;&#x2F;p&gt;
&lt;p&gt;Na verdade, não parei por aí: peguei o dicionário do VERO e também transformei em lista. Descrevo este processo paralelo abaixo.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;vero-de-extensao-libreoffice-para-lista-txt&quot;&gt;VERO - de extensão LibreOffice para lista txt&lt;&#x2F;h3&gt;
&lt;p&gt;Primeiro, baixei daqui: &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;pt-br.libreoffice.org&#x2F;projetos&#x2F;vero&#x2F;&quot;&gt;https:&#x2F;&#x2F;pt-br.libreoffice.org&#x2F;projetos&#x2F;vero&#x2F;&lt;&#x2F;a&gt; o arquivo &lt;code&gt;.oxt&lt;&#x2F;code&gt; mais recente da extensão.&lt;&#x2F;p&gt;
&lt;p&gt;O &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;pt-br.libreoffice.org&#x2F;assets&#x2F;Uploads&#x2F;PT-BR-Documents&#x2F;VERO&#x2F;VeroptBR3215AOC.oxt&quot;&gt;link direto é este&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Tendo feito isso, renomeei o arquivo de &lt;code&gt;.oxt&lt;&#x2F;code&gt; para &lt;code&gt;.zip&lt;&#x2F;code&gt; e extraí.&lt;&#x2F;p&gt;
&lt;p&gt;Nessa altura, com outra ajuda do Amp, foi gerado um script Python, que roda o &lt;code&gt;unmunch&lt;&#x2F;code&gt; do &lt;code&gt;Hunspell&lt;&#x2F;code&gt; (formato de dicionário do VERO), para transformar numa lista de palavras simples.&lt;&#x2F;p&gt;
&lt;p&gt;A ideia veio daqui: &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;forum.languagetool.org&#x2F;t&#x2F;dictionary-file-creation-from-hunspell-dic-and-aff&#x2F;5890&quot;&gt;https:&#x2F;&#x2F;forum.languagetool.org&#x2F;t&#x2F;dictionary-file-creation-from-hunspell-dic-and-aff&#x2F;5890&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Daí, seria só rodar com:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;uv&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; run&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; .&#x2F;unmunch_vero.py&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; .&#x2F;pt_BR.dic&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; .&#x2F;pt_BR.aff&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; &amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; .&#x2F;vero_todas.txt&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Porém, ao tentar adicionar as palavras dessa forma, o meu computador não aguentou o tranco…&lt;&#x2F;p&gt;
&lt;p&gt;Então tive que dividir o arquivo original em vários:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;split&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;l&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 200000&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; vero_todas.txt&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Agora sim, na pasta com os arquivos resultantes, rodei:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;fd&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;x&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; swift&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; ..&#x2F;learn_words.swift&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; {}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;O comando significa: ache todos os arquivos na pasta atual com &lt;code&gt;fd .&lt;&#x2F;code&gt;, execute o restante com o parâmetro &lt;code&gt;-x&lt;&#x2F;code&gt;. O &lt;code&gt;{}&lt;&#x2F;code&gt; significa o &quot;arquivo da vez&quot; encontrado pelo &lt;code&gt;fd&lt;&#x2F;code&gt;, então para cada arquivo, rodará o que estiver no &lt;code&gt;-x&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Em resumo: adicione todas as listas de palavras, derivadas da lista original &lt;code&gt;vero_todas.txt&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Como ficou, após o processo acima.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;augustofornitani.com.br&#x2F;blog&#x2F;corretor-ortografico-macos&#x2F;.&#x2F;listas_de_palavras&#x2F;corretor_turbinado_pages.png&quot; alt=&quot;Resultado do dicionário melhorado&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;O script Python completo também está ao final.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;curiosidade&quot;&gt;Curiosidade&lt;&#x2F;h2&gt;
&lt;p&gt;Fiquei na dúvida se precisava escrever &quot;Biologia&quot;, com maiúscula, ou simplesmente &quot;biologia&quot;, com minúscula.&lt;&#x2F;p&gt;
&lt;p&gt;Aqui temos a resposta: &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;ciberduvidas.iscte-iul.pt&#x2F;consultorio&#x2F;perguntas&#x2F;inicial-maiuscula-ou-minuscula-nas-disciplinas-opcional-pos-acordo-ortografico&#x2F;10156&quot;&gt;https:&#x2F;&#x2F;ciberduvidas.iscte-iul.pt&#x2F;consultorio&#x2F;perguntas&#x2F;inicial-maiuscula-ou-minuscula-nas-disciplinas-opcional-pos-acordo-ortografico&#x2F;10156&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;h2 id=&quot;scripts-swift&quot;&gt;Scripts Swift&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;code&gt;learn_unknown.swift&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot;&gt;&lt;code data-lang=&quot;swift&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;import&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt; AppKit&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;guard&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; CommandLine&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;arguments&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;count&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; ==&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 2&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; else&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;    print&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;Uso: swift &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;\(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;CommandLine&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;arguments&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;0&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;]&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;lt;arquivo.txt&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;    exit&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;1&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;let&lt;&#x2F;span&gt;&lt;span&gt; path &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; CommandLine&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;arguments&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;1&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;let&lt;&#x2F;span&gt;&lt;span&gt; content &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; try&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;!&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; String&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;contentsOfFile&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span&gt; path&lt;&#x2F;span&gt;&lt;span&gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;encoding&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span&gt; .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;utf8&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;let&lt;&#x2F;span&gt;&lt;span&gt; checker &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span&gt; NSSpellChecker.&lt;&#x2F;span&gt;&lt;span&gt;shared&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;let&lt;&#x2F;span&gt;&lt;span&gt; lang &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;pt_BR&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;var&lt;&#x2F;span&gt;&lt;span&gt; learned &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 0&lt;&#x2F;span&gt;&lt;span&gt;, skipped &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 0&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;for&lt;&#x2F;span&gt;&lt;span&gt; line &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;in&lt;&#x2F;span&gt;&lt;span&gt; content.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;components&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;separatedBy&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span&gt; .&lt;&#x2F;span&gt;&lt;span&gt;newlines&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; word &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span&gt; line.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;trimmingCharacters&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;in&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span&gt; .&lt;&#x2F;span&gt;&lt;span&gt;whitespaces&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;    if&lt;&#x2F;span&gt;&lt;span&gt; word.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;isEmpty&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; ||&lt;&#x2F;span&gt;&lt;span&gt; word.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;hasPrefix&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; continue&lt;&#x2F;span&gt;&lt;span&gt; }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; misspelled &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span&gt; checker.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;checkSpelling&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;of&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span&gt; word&lt;&#x2F;span&gt;&lt;span&gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;startingAt&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 0&lt;&#x2F;span&gt;&lt;span&gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;language&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span&gt; lang&lt;&#x2F;span&gt;&lt;span&gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;wrap&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; false&lt;&#x2F;span&gt;&lt;span&gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;inSpellDocumentWithTag&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 0&lt;&#x2F;span&gt;&lt;span&gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;wordCount&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; nil&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;    if&lt;&#x2F;span&gt;&lt;span&gt; misspelled.location &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;!=&lt;&#x2F;span&gt;&lt;span&gt; NSNotFound &lt;&#x2F;span&gt;&lt;span&gt;{&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        checker.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;learnWord&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;word&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        learned &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;+=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 1&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    }&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; else&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        skipped &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;+=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 1&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;    if&lt;&#x2F;span&gt;&lt;span&gt; (&lt;&#x2F;span&gt;&lt;span&gt;learned &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;+&lt;&#x2F;span&gt;&lt;span&gt; skipped&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; %&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 10000&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; ==&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 0&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;        print&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;\r&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;\(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;learned &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;+&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; skipped&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; processadas, &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;\(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;learned&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; novas...&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;terminator&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;        fflush&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;stdout&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt; Aguarda flush do NSSpellChecker para disco&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;RunLoop.&lt;&#x2F;span&gt;&lt;span&gt;current&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;run&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;until&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; Date&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;timeIntervalSinceNow&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 1.0&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;print&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;\n&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;Pronto! &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;\(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;learned&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; palavras novas aprendidas, &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;\(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;skipped&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; já conhecidas.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;code&gt;learn_words.swift&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot;&gt;&lt;code data-lang=&quot;swift&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;import&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt; AppKit&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;let&lt;&#x2F;span&gt;&lt;span&gt; args &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; CommandLine&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;arguments&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;guard&lt;&#x2F;span&gt;&lt;span&gt; args.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;count&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; ==&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 2&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; else&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;    print&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;Uso: swift &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;\(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;args&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;0&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;]&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;lt;arquivo_com_palavras.txt&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;    exit&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;1&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;let&lt;&#x2F;span&gt;&lt;span&gt; path &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span&gt; args&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;1&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;let&lt;&#x2F;span&gt;&lt;span&gt; content &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; try&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;!&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; String&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;contentsOfFile&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span&gt; path&lt;&#x2F;span&gt;&lt;span&gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;encoding&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span&gt; .&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;utf8&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;let&lt;&#x2F;span&gt;&lt;span&gt; checker &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span&gt; NSSpellChecker.&lt;&#x2F;span&gt;&lt;span&gt;shared&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;var&lt;&#x2F;span&gt;&lt;span&gt; count &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 0&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;for&lt;&#x2F;span&gt;&lt;span&gt; line &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;in&lt;&#x2F;span&gt;&lt;span&gt; content.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;components&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;separatedBy&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span&gt; .&lt;&#x2F;span&gt;&lt;span&gt;newlines&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;    let&lt;&#x2F;span&gt;&lt;span&gt; word &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span&gt; line.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;trimmingCharacters&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;in&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span&gt; .&lt;&#x2F;span&gt;&lt;span&gt;whitespaces&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;    if&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; !&lt;&#x2F;span&gt;&lt;span&gt;word.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;isEmpty&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; &amp;amp;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; !&lt;&#x2F;span&gt;&lt;span&gt;word.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;hasPrefix&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        checker.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;learnWord&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;word&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        count &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;+=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 1&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt; Aguarda flush do NSSpellChecker para disco&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;RunLoop.&lt;&#x2F;span&gt;&lt;span&gt;current&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;run&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;until&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; Date&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;timeIntervalSinceNow&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 1.0&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;print&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;\(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;count&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; palavras adicionadas ao corretor ortográfico do macOS.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;code&gt;unlearn_word.swift&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot;&gt;&lt;code data-lang=&quot;swift&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;import&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt; AppKit&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;let&lt;&#x2F;span&gt;&lt;span&gt; word &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; CommandLine&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;arguments&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;1&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;NSSpellChecker.&lt;&#x2F;span&gt;&lt;span&gt;shared&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;unlearnWord&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;word&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;print&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;Removida: &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;\(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;word&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h2 id=&quot;script-python&quot;&gt;Script Python&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;code&gt;unmunch_vero.py&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot;&gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt;!&#x2F;usr&#x2F;bin&#x2F;env python3&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&amp;quot;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;Expande dicionário Hunspell (.dic + .aff) em lista plana de palavras.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&amp;quot;&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;import&lt;&#x2F;span&gt;&lt;span&gt; re&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; sys&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;def&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt; parse_aff&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;path&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    rules&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;    with&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; open&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;path&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; encoding&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;utf-8&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; errors&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;replace&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; as&lt;&#x2F;span&gt;&lt;span&gt; f&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;        for&lt;&#x2F;span&gt;&lt;span&gt; line&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; in&lt;&#x2F;span&gt;&lt;span&gt; f&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;            line&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; line&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span&gt;strip&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;            if&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; not&lt;&#x2F;span&gt;&lt;span&gt; line&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; or&lt;&#x2F;span&gt;&lt;span&gt; line&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span&gt;startswith&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;                continue&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;            parts&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; line&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span&gt;split&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;            if&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; len&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;parts&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 4&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; or&lt;&#x2F;span&gt;&lt;span&gt; parts&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;0&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; not&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; in&lt;&#x2F;span&gt;&lt;span&gt; (&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;SFX&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;PFX&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;                continue&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;            typ&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; flag&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; parts&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;0&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; parts&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;1&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;            if&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; len&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;parts&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; ==&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 4&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;                try&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;                    int&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;parts&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;3&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                    rules&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span&gt;setdefault&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;flag&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;type&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span&gt; typ&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;cross&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span&gt; parts&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;2&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; ==&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;Y&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;entries&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span&gt; [&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;                    continue&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;                except&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; ValueError&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;                    pass&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;            if&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; len&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;parts&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; &amp;gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 5&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                strip&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; if&lt;&#x2F;span&gt;&lt;span&gt; parts&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;2&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; ==&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;0&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; else&lt;&#x2F;span&gt;&lt;span&gt; parts&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;2&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                affix_raw&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; parts&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;3&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                affix&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; affix_raw&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span&gt;split&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;0&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                affix&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; if&lt;&#x2F;span&gt;&lt;span&gt; affix&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; ==&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;0&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; else&lt;&#x2F;span&gt;&lt;span&gt; affix&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                cont_flags&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; list&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;affix_raw&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span&gt;split&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;1&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; if&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; in&lt;&#x2F;span&gt;&lt;span&gt; affix_raw&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; else&lt;&#x2F;span&gt;&lt;span&gt; [&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                cond&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; parts&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;4&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; if&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; len&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;parts&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; &amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 4&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; else&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                rules&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span&gt;setdefault&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;flag&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;type&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span&gt; typ&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;cross&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; True&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;entries&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span&gt; [&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                rules&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span&gt;flag&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;entries&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span&gt;append&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;strip&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; affix&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; cond&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; cont_flags&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;    return&lt;&#x2F;span&gt;&lt;span&gt; rules&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;def&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt; apply_rule&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;word&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; strip&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; affix&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; cond&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; typ&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;    try&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;        if&lt;&#x2F;span&gt;&lt;span&gt; typ&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; ==&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;SFX&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;            if&lt;&#x2F;span&gt;&lt;span&gt; cond&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; !=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; and&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; not&lt;&#x2F;span&gt;&lt;span&gt; re&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span&gt;search&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;cond&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; +&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; word&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;                return&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; None&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;            if&lt;&#x2F;span&gt;&lt;span&gt; strip&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;                return&lt;&#x2F;span&gt;&lt;span&gt; word&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;len&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;strip&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; +&lt;&#x2F;span&gt;&lt;span&gt; affix&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; if&lt;&#x2F;span&gt;&lt;span&gt; word&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span&gt;endswith&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;strip&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; else&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; None&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;            return&lt;&#x2F;span&gt;&lt;span&gt; word&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; +&lt;&#x2F;span&gt;&lt;span&gt; affix&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;        else&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;            if&lt;&#x2F;span&gt;&lt;span&gt; cond&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; !=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; and&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; not&lt;&#x2F;span&gt;&lt;span&gt; re&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span&gt;search&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;^&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; +&lt;&#x2F;span&gt;&lt;span&gt; cond&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; word&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;                return&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; None&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;            if&lt;&#x2F;span&gt;&lt;span&gt; strip&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;                return&lt;&#x2F;span&gt;&lt;span&gt; affix&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; +&lt;&#x2F;span&gt;&lt;span&gt; word&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;len&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;strip&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; if&lt;&#x2F;span&gt;&lt;span&gt; word&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span&gt;startswith&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;strip&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; else&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; None&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;            return&lt;&#x2F;span&gt;&lt;span&gt; affix&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; +&lt;&#x2F;span&gt;&lt;span&gt; word&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;    except&lt;&#x2F;span&gt;&lt;span&gt; re&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span&gt;error&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;        return&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; None&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;def&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt; expand&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;word&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; flags&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; rules&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; depth&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;0&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    forms&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;span&gt;word&lt;&#x2F;span&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;    if&lt;&#x2F;span&gt;&lt;span&gt; depth&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; &amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 2&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;        return&lt;&#x2F;span&gt;&lt;span&gt; forms&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    derived&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; [&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;    for&lt;&#x2F;span&gt;&lt;span&gt; flag&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; in&lt;&#x2F;span&gt;&lt;span&gt; flags&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        r&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; rules&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span&gt;get&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;flag&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;        if&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; not&lt;&#x2F;span&gt;&lt;span&gt; r&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;            continue&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;        for&lt;&#x2F;span&gt;&lt;span&gt; strip&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; affix&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; cond&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; cont&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; in&lt;&#x2F;span&gt;&lt;span&gt; r&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;entries&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;            result&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; apply_rule&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;word&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; strip&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; affix&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; cond&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; r&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;type&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;            if&lt;&#x2F;span&gt;&lt;span&gt; result&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                forms&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span&gt;add&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;result&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                derived&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span&gt;append&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;result&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; r&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;type&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; cont&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;                if&lt;&#x2F;span&gt;&lt;span&gt; cont&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                    forms&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; |=&lt;&#x2F;span&gt;&lt;span&gt; expand&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;result&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; cont&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; rules&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; depth&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; +&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 1&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt;    #&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt; Cross products (prefix + suffix)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    pfx&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; [&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;f&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; rules&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span&gt;f&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; for&lt;&#x2F;span&gt;&lt;span&gt; f&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; in&lt;&#x2F;span&gt;&lt;span&gt; flags&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; if&lt;&#x2F;span&gt;&lt;span&gt; f&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; in&lt;&#x2F;span&gt;&lt;span&gt; rules&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; and&lt;&#x2F;span&gt;&lt;span&gt; rules&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span&gt;f&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;type&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; ==&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;PFX&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; and&lt;&#x2F;span&gt;&lt;span&gt; rules&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span&gt;f&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;cross&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    sfx&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; [&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;f&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; rules&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span&gt;f&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; for&lt;&#x2F;span&gt;&lt;span&gt; f&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; in&lt;&#x2F;span&gt;&lt;span&gt; flags&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; if&lt;&#x2F;span&gt;&lt;span&gt; f&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; in&lt;&#x2F;span&gt;&lt;span&gt; rules&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; and&lt;&#x2F;span&gt;&lt;span&gt; rules&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span&gt;f&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;type&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; ==&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;SFX&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; and&lt;&#x2F;span&gt;&lt;span&gt; rules&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span&gt;f&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;cross&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;    for&lt;&#x2F;span&gt;&lt;span&gt; _&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; pr&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; in&lt;&#x2F;span&gt;&lt;span&gt; pfx&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;        for&lt;&#x2F;span&gt;&lt;span&gt; ps&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; pa&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; pc&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; _&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; in&lt;&#x2F;span&gt;&lt;span&gt; pr&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;entries&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;            prefixed&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; apply_rule&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;word&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; ps&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; pa&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; pc&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;PFX&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;            if&lt;&#x2F;span&gt;&lt;span&gt; prefixed&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;                for&lt;&#x2F;span&gt;&lt;span&gt; _&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; sr&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; in&lt;&#x2F;span&gt;&lt;span&gt; sfx&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;                    for&lt;&#x2F;span&gt;&lt;span&gt; ss&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; sa&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; sc&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; _&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; in&lt;&#x2F;span&gt;&lt;span&gt; sr&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;entries&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                        result&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; apply_rule&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;prefixed&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; ss&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; sa&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; sc&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;SFX&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;                        if&lt;&#x2F;span&gt;&lt;span&gt; result&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                            forms&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span&gt;add&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;result&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;    return&lt;&#x2F;span&gt;&lt;span&gt; forms&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;def&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt; main&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    dic&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; sys&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span&gt;argv&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;1&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    aff&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; sys&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span&gt;argv&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;2&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    rules&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; parse_aff&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;aff&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;    print&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;f&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;Regras: &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;len&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;rules&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; file&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span&gt;sys&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span&gt;stderr&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    count&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 0&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;    with&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; open&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;dic&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; encoding&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;utf-8&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; errors&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;replace&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; as&lt;&#x2F;span&gt;&lt;span&gt; f&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        f&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span&gt;readline&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt;  #&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt; skip word count&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;        for&lt;&#x2F;span&gt;&lt;span&gt; line&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; in&lt;&#x2F;span&gt;&lt;span&gt; f&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;            line&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; line&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span&gt;split&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;\t&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;0&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span&gt;strip&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt;  #&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt; ignore morphological info&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;            if&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; not&lt;&#x2F;span&gt;&lt;span&gt; line&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;                continue&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;            if&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; in&lt;&#x2F;span&gt;&lt;span&gt; line&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                w&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; fl&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; line&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span&gt;split&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 1&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                flags&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; list&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;fl&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;            else&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                w&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; flags&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; line&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; [&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;            for&lt;&#x2F;span&gt;&lt;span&gt; form&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; in&lt;&#x2F;span&gt;&lt;span&gt; expand&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;w&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; flags&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; rules&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;                print&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;form&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                count&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; +=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 1&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;    print&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;f&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;Total: &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span&gt;count&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; formas geradas&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; file&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span&gt;sys&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span&gt;stderr&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;if&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; __name__&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; ==&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;__main__&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    main&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;</content>
        
    </entry>
</feed>
