SA
Skip to main content

Mathematics under The Library of Babel

2022-11-24

  • To hold all occasions of a-z, a single character, requires 26 characters.
  • ASCII: 128
  • Considering any Unicode can be ASCII escaped, Unicode LoB will use the same equation but takes a much longer ASCII base string
  • For two characters to hold all possible sequences, what should be the shortest sequence?
  • Naively, it may take 2×26×262 \times 26 \times 26 where 26×2626 \times 26 is all the combinations, and 2 is the length of a single combination.
    • like aa ab ac ad ae ... without the space
    • Naively adding, since any character can be shared bidirectionally, it seems possible to hold it inside 26×2626 \times 26
aaabacadaeafagahaiajakalamanaoapaqarasatauavawaxayazbabbbcbdbebfbgbhbibjbkblbmbnbobpbqbrbsbtbubvbwbxbybzcacbcccdcecfcgchcicjckclcmcncocpcqcrcsctcucvcwcxcyczdadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzeaebecedeeefegeheiejekelemeneoepeqereseteuevewexeyezfafbfcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvfwfxfyfzgagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzhahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhziaibicidieifigihiiijikiliminioipiqirisitiuiviwixiyizjajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzkakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzlalblcldlelflglhliljlklllmlnlolplqlrlsltlulvlwlxlylzmambmcmdmemfmgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymznanbncndnenfngnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynzoaobocodoeofogohoiojokolomonooopoqorosotouovowoxoyozpapbpcpdpepfpgphpipjpkplpmpnpopppqprpsptpupvpwpxpypzqaqbqcqdqeqfqgqhqiqjqkqlqmqnqoqpqqqrqsqtquqvqwqxqyqzrarbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzsasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsysztatbtctdtetftgthtitjtktltmtntotptqtrtstttutvtwtxtytzuaubucudueufuguhuiujukulumunuoupuqurusutuuuvuwuxuyuzvavbvcvdvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuvvvwvxvyvzwawbwcwdwewfwgwhwiwjwkwlwmwnwowpwqwrwswtwuwvwwwxwywzxaxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzyaybycydyeyfygyhyiyjykylymynyoypyqyrysytyuyvywyxyyyzzazbzczdzezfzgzhzizjzkzlzmznzozpzqzrzsztzuzvzwzxzyzz

len: 1352
  • aligns with initial calc 2×26×262 \times 26 \times 26
  • How can we compress it?
  • Keep a map from the beginning; remove the substring if seen already
    • may have a side effect
    • early small sacrifices (redundancy) may save more significant future sacrifices. This does not consider such a case
  • We can, for sure, trim three characters repeatedly char to 2
aabacadaeafagahaiajakalamanaoapaqarasatauavawaxayazbabbcbdbebfbgbhbibjbkblbmbnbobpbqbrbsbtbubvbwbxbybzcacbccdcecfcgchcicjckclcmcncocpcqcrcsctcucvcwcxcyczdadbdcddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzeaebecedeefegeheiejekelemeneoepeqereseteuevewexeyezfafbfcfdfeffgfhfifjfkflfmfnfofpfqfrfsftfufvfwfxfyfzgagbgcgdgegfgghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzhahbhchdhehfhghhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhziaibicidieifigihiijikiliminioipiqirisitiuiviwixiyizjajbjcjdjejfjgjhjijjkjljmjnjojpjqjrjsjtjujvjwjxjyjzkakbkckdkekfkgkhkikjkklkmknkokpkqkrksktkukvkwkxkykzlalblcldlelflglhliljlkllmlnlolplqlrlsltlulvlwlxlylzmambmcmdmemfmgmhmimjmkmlmmnmompmqmrmsmtmumvmwmxmymznanbncndnenfngnhninjnknlnmnnonpnqnrnsntnunvnwnxnynzoaobocodoeofogohoiojokolomonoopoqorosotouovowoxoyozpapbpcpdpepfpgphpipjpkplpmpnpoppqprpsptpupvpwpxpypzqaqbqcqdqeqfqgqhqiqjqkqlqmqnqoqpqqrqsqtquqvqwqxqyqzrarbrcrdrerfrgrhrirjrkrlrmrnrorprqrrsrtrurvrwrxryrzsasbscsdsesfsgshsisjskslsmsnsospsqsrsstsusvswsxsysztatbtctdtetftgthtitjtktltmtntotptqtrtsttutvtwtxtytzuaubucudueufuguhuiujukulumunuoupuqurusutuuvuwuxuyuzvavbvcvdvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuvvwvxvyvzwawbwcwdwewfwgwhwiwjwkwlwmwnwowpwqwrwswtwuwvwwxwywzxaxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxyxzyaybycydyeyfygyhyiyjykylymynyoypyqyrysytyuyvywyxyyzzazbzczdzezfzgzhzizjzkzlzmznzozpzqzrzsztzuzvzwzxzyzz

len: 1327
  • Not a drastic difference
  • Can we trim even further?
  • I tried making a Python script to backtrack the combinations.
  • Killed by the OS for using too much RAM
❯ python3 experiment3.py
making list of length 52
[1] 6919 killed python3 experiment3.py
  • Also made a C++ variant, but a meaningful difference is unlikely.

2022-11-25

Continuing our discussion yesterday...

So given

aabacadaeafagahaiajakalamanaoapaqarasatauavawaxayazbabbcbdbebfbgbhbibjbkblbmbnbobpbqbrbsbtbubvbwbxbybzcacbccdcecfcgchcicjckclcmcncocpcqcrcsctcucvcwcxcyczdadbdcddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzeaebecedeefegeheiejekelemeneoepeqereseteuevewexeyezfafbfcfdfeffgfhfifjfkflfmfnfofpfqfrfsftfufvfwfxfyfzgagbgcgdgegfgghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzhahbhchdhehfhghhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhziaibicidieifigihiijikiliminioipiqirisitiuiviwixiyizjajbjcjdjejfjgjhjijjkjljmjnjojpjqjrjsjtjujvjwjxjyjzkakbkckdkekfkgkhkikjkklkmknkokpkqkrksktkukvkwkxkykzlalblcldlelflglhliljlkllmlnlolplqlrlsltlulvlwlxlylzmambmcmdmemfmgmhmimjmkmlmmnmompmqmrmsmtmumvmwmxmymznanbncndnenfngnhninjnknlnmnnonpnqnrnsntnunvnwnxnynzoaobocodoeofogohoiojokolomonoopoqorosotouovowoxoyozpapbpcpdpepfpgphpipjpkplpmpnpoppqprpsptpupvpwpxpypzqaqbqcqdqeqfqgqhqiqjqkqlqmqnqoqpqqrqsqtquqvqwqxqyqzrarbrcrdrerfrgrhrirjrkrlrmrnrorprqrrsrtrurvrwrxryrzsasbscsdsesfsgshsisjskslsmsnsospsqsrsstsusvswsxsysztatbtctdtetftgthtitjtktltmtntotptqtrtsttutvtwtxtytzuaubucudueufuguhuiujukulumunuoupuqurusutuuvuwuxuyuzvavbvcvdvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuvvwvxvyvzwawbwcwdwewfwgwhwiwjwkwlwmwnwowpwqwrwswtwuwvwwxwywzxaxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxyxzyaybycydyeyfygyhyiyjykylymynyoypyqyrysytyuyvywyxyyzzazbzczdzezfzgzhzizjzkzlzmznzozpzqzrzsztzuzvzwzxzyzz

len: 1327

This can be further trimmed because ba already appears at zero-based index [2,3][2, 3]. So we don't need it again after az. That is, we don't need azbabb..., we can jump to azbbc... This will create a triangular space complexity reduction, reducing the size to half. So

a: a → z (aabacadaea...)
b: (start from b, skipping a)
c: (start from c, skipping b and a)

Thus resulting in half in size. If this is true, this aligns with my naive conjecture at the beginning → to be lower-bounded at 26×2626 \times 26.

I made a script to confirm if this is right...

Yes, it is.

aabacadaeafagahaiajakalamanaoapaqarasatauavawaxayazbbcbdbebfbgbhbibjbkblbmbnbobpbqbrbsbtbubvbwbxbybzccdcecfcgchcicjckclcmcncocpcqcrcsctcucvcwcxcyczddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzeefegeheiejekelemeneoepeqereseteuevewexeyezffgfhfifjfkflfmfnfofpfqfrfsftfufvfwfxfyfzgghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhziijikiliminioipiqirisitiuiviwixiyizjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzkklkmknkokpkqkrksktkukvkwkxkykzllmlnlolplqlrlsltlulvlwlxlylzmmnmompmqmrmsmtmumvmwmxmymznnonpnqnrnsntnunvnwnxnynzoopoqorosotouovowoxoyozppqprpsptpupvpwpxpypzqqrqsqtquqvqwqxqyqzrrsrtrurvrwrxryrzsstsusvswsxsyszttutvtwtxtytzuuvuwuxuyuzvvwvxvyvzwwxwywzxxyxzyyzza

len: 677

Can we compress even further? The mathematic lower bound seems 26×2626 \times 26, given each character must at least pair with each other once (thus 26×2626 \times 26,) times the length of the search scope (thus ×2\times 2,) and since each character can be reused by each other side, divide it in half (this ÷2\div 2)

Also, note that the mathematic lower bound could be attained if the above Babel String loops.

If this calculation is accurate, we can expand this to a string of size 33. Similarly, the estimated lower bound would be 26×26×26×3÷2=26364.26 \times 26 \times 26 \times 3 \div 2 = 26364.

2022-11-26

I think the above is wrong.

aaaabaacaadaaeaafaagaahaaiaajaakaalaamaanaaoaapaaqaaraasaataauaavaawaaxaayaazabaabbabcabdabeabfabgabhabiabjabkablabmabnaboabpabqabrabsabtabuabvabwabxabyabzacaacbaccacdaceacfacgachaciacjackaclacmacnacoacpacqacracsactacuacvacwacxacyaczadaadbadcaddadeadfadgadhadiadjadkadladmadnadoadpadqadradsadtaduadvadwadxadyadzaeaaebaecaedaeeaefaegaehaeiaejaekaelaemaenaeoaepaeqaeraesaetaeuaevaewaexaeyaezafaafbafcafdafeaffafgafhafiafjafkaflafmafnafoafpafqafrafsaftafuafvafwafxafyafzagaagbagcagdageagfaggaghagiagjagkaglagmagnagoagpagqagragsagtaguagvagwagxagyagzahaahbahcahdaheahfahgahhahiahjahkahlahmahnahoahpahqahrahsahtahuahvahwahxahyahzaiaaibaicaidaieaifaigaihaiiaijaikailaimainaioaipaiqairaisaitaiuaivaiwaixaiyaizajaajbajcajdajeajfajgajhajiajjajkajlajmajnajoajpajqajrajsajtajuajvajwajxajyajzakaakbakcakdakeakfakgakhakiakjakkaklakmaknakoakpakqakraksaktakuakvakwakxakyakzalaalbalcaldalealfalgalhalialjalkallalmalnaloalpalqalralsaltalualvalwalxalyalzamaambamcamdameamfamgamhamiamjamkamlammamnamoampamqamramsamtamuamvamwamxamyamzanaanbancandaneanfanganhanianjankanlanmannanoanpanqanransantanuanvanwanxanyanzaoaaobaocaodaoeaofaogaohaoiaojaokaolaomaonaooaopaoqaoraosaotaouaovaowaoxaoyaozapaapbapcapdapeapfapgaphapiapjapkaplapmapnapoappapqaprapsaptapuapvapwapxapyapzaqaaqbaqcaqdaqeaqfaqgaqhaqiaqjaqkaqlaqmaqnaqoaqpaqqaqraqsaqtaquaqvaqwaqxaqyaqzaraarbarcardarearfargarhariarjarkarlarmarnaroarparqarrarsartaruarvarwarxaryarzasaasbascasdaseasfasgashasiasjaskaslasmasnasoaspasqasrassastasuasvaswasxasyaszataatbatcatdateatfatgathatiatjatkatlatmatnatoatpatqatratsattatuatvatwatxatyatzauaaubaucaudaueaufaugauhauiaujaukaulaumaunauoaupauqaurausautauuauvauwauxauyauzavaavbavcavdaveavfavgavhaviavjavkavlavmavnavoavpavqavravsavtavuavvavwavxavyavzawaawbawcawdaweawfawgawhawiawjawkawlawmawnawoawpawqawrawsawtawuawvawwawxawyawzaxaaxbaxcaxdaxeaxfaxgaxhaxiaxjaxkaxlaxmaxnaxoaxpaxqaxraxsaxtaxuaxvaxwaxxaxyaxzayaaybaycaydayeayfaygayhayiayjaykaylaymaynayoaypayqayraysaytayuayvaywayxayyayzazaazbazcazdazeazfazgazhaziazjazkazlazmaznazoazpazqazrazsaztazuazvazwazxazyazzbbbbcbbdbbebbfbbgbbhbbibbjbbkbblbbmbbnbbobbpbbqbbrbbsbbtbbubbvbbwbbxbbybbzbcbbccbcdbcebcfbcgbchbcibcjbckbclbcmbcnbcobcpbcqbcrbcsbctbcubcvbcwbcxbcybczbdbbdcbddbdebdfbdgbdhbdibdjbdkbdlbdmbdnbdobdpbdqbdrbdsbdtbdubdvbdwbdxbdybdzbebbecbedbeebefbegbehbeibejbekbelbembenbeobepbeqberbesbetbeubevbewbexbeybezbfbbfcbfdbfebffbfgbfhbfibfjbfkbflbfmbfnbfobfpbfqbfrbfsbftbfubfvbfwbfxbfybfzbgbbgcbgdbgebgfbggbghbgibgjbgkbglbgmbgnbgobgpbgqbgrbgsbgtbgubgvbgwbgxbgybgzbhbbhcbhdbhebhfbhgbhhbhibhjbhkbhlbhmbhnbhobhpbhqbhrbhsbhtbhubhvbhwbhxbhybhzbibbicbidbiebifbigbihbiibijbikbilbimbinbiobipbiqbirbisbitbiubivbiwbixbiybizbjbbjcbjdbjebjfbjgbjhbjibjjbjkbjlbjmbjnbjobjpbjqbjrbjsbjtbjubjvbjwbjxbjybjzbkbbkcbkdbkebkfbkgbkhbkibkjbkkbklbkmbknbkobkpbkqbkrbksbktbkubkvbkwbkxbkybkzblbblcbldbleblfblgblhblibljblkbllblmblnbloblpblqblrblsbltblublvblwblxblyblzbmbbmcbmdbmebmfbmgbmhbmibmjbmkbmlbmmbmnbmobmpbmqbmrbmsbmtbmubmvbmwbmxbmybmzbnbbncbndbnebnfbngbnhbnibnjbnkbnlbnmbnnbnobnpbnqbnrbnsbntbnubnvbnwbnxbnybnzbobbocbodboebofbogbohboibojbokbolbombonboobopboqborbosbotboubovbowboxboybozbpbbpcbpdbpebpfbpgbphbpibpjbpkbplbpmbpnbpobppbpqbprbpsbptbpubpvbpwbpxbpybpzbqbbqcbqdbqebqfbqgbqhbqibqjbqkbqlbqmbqnbqobqpbqqbqrbqsbqtbqubqvbqwbqxbqybqzbrbbrcbrdbrebrfbrgbrhbribrjbrkbrlbrmbrnbrobrpbrqbrrbrsbrtbrubrvbrwbrxbrybrzbsbbscbsdbsebsfbsgbshbsibsjbskbslbsmbsnbsobspbsqbsrbssbstbsubsvbswbsxbsybszbtbbtcbtdbtebtfbtgbthbtibtjbtkbtlbtmbtnbtobtpbtqbtrbtsbttbtubtvbtwbtxbtybtzbubbucbudbuebufbugbuhbuibujbukbulbumbunbuobupbuqburbusbutbuubuvbuwbuxbuybuzbvbbvcbvdbvebvfbvgbvhbvibvjbvkbvlbvmbvnbvobvpbvqbvrbvsbvtbvubvvbvwbvxbvybvzbwbbwcbwdbwebwfbwgbwhbwibwjbwkbwlbwmbwnbwobwpbwqbwrbwsbwtbwubwvbwwbwxbwybwzbxbbxcbxdbxebxfbxgbxhbxibxjbxkbxlbxmbxnbxobxpbxqbxrbxsbxtbxubxvbxwbxxbxybxzbybbycbydbyebyfbygbyhbyibyjbykbylbymbynbyobypbyqbyrbysbytbyubyvbywbyxbyybyzbzbbzcbzdbzebzfbzgbzhbzibzjbzkbzlbzmbznbzobzpbzqbzrbzsbztbzubzvbzwbzxbzybzzccccdcceccfccgcchcciccjcckcclccmccnccoccpccqccrccscctccuccvccwccxccycczcdccddcdecdfcdgcdhcdicdjcdkcdlcdmcdncdocdpcdqcdrcdscdtcducdvcdwcdxcdycdzceccedceecefcegcehceicejcekcelcemcenceocepceqcercescetceucevcewcexceycezcfccfdcfecffcfgcfhcficfjcfkcflcfmcfncfocfpcfqcfrcfscftcfucfvcfwcfxcfycfzcgccgdcgecgfcggcghcgicgjcgkcglcgmcgncgocgpcgqcgrcgscgtcgucgvcgwcgxcgycgzchcchdchechfchgchhchichjchkchlchmchnchochpchqchrchschtchuchvchwchxchychzciccidciecifcigcihciicijcikcilcimcinciocipciqcirciscitciucivciwcixciycizcjccjdcjecjfcjgcjhcjicjjcjkcjlcjmcjncjocjpcjqcjrcjscjtcjucjvcjwcjxcjycjzckcckdckeckfckgckhckickjckkcklckmcknckockpckqckrckscktckuckvckwckxckyckzclccldcleclfclgclhclicljclkcllclmclncloclpclqclrclscltcluclvclwclxclyclzcmccmdcmecmfcmgcmhcmicmjcmkcmlcmmcmncmocmpcmqcmrcmscmtcmucmvcmwcmxcmycmzcnccndcnecnfcngcnhcnicnjcnkcnlcnmcnncnocnpcnqcnrcnscntcnucnvcnwcnxcnycnzcoccodcoecofcogcohcoicojcokcolcomconcoocopcoqcorcoscotcoucovcowcoxcoycozcpccpdcpecpfcpgcphcpicpjcpkcplcpmcpncpocppcpqcprcpscptcpucpvcpwcpxcpycpzcqccqdcqecqfcqgcqhcqicqjcqkcqlcqmcqncqocqpcqqcqrcqscqtcqucqvcqwcqxcqycqzcrccrdcrecrfcrgcrhcricrjcrkcrlcrmcrncrocrpcrqcrrcrscrtcrucrvcrwcrxcrycrzcsccsdcsecsfcsgcshcsicsjcskcslcsmcsncsocspcsqcsrcsscstcsucsvcswcsxcsycszctcctdctectfctgcthctictjctkctlctmctnctoctpctqctrctscttctuctvctwctxctyctzcuccudcuecufcugcuhcuicujcukculcumcuncuocupcuqcurcuscutcuucuvcuwcuxcuycuzcvccvdcvecvfcvgcvhcvicvjcvkcvlcvmcvncvocvpcvqcvrcvscvtcvucvvcvwcvxcvycvzcwccwdcwecwfcwgcwhcwicwjcwkcwlcwmcwncwocwpcwqcwrcwscwtcwucwvcwwcwxcwycwzcxccxdcxecxfcxgcxhcxicxjcxkcxlcxmcxncxocxpcxqcxrcxscxtcxucxvcxwcxxcxycxzcyccydcyecyfcygcyhcyicyjcykcylcymcyncyocypcyqcyrcyscytcyucyvcywcyxcyycyzczcczdczeczfczgczhcziczjczkczlczmcznczoczpczqczrczscztczuczvczwczxczyczzddddeddfddgddhddiddjddkddlddmddnddoddpddqddrddsddtdduddvddwddxddyddzdeddeedefdegdehdeidejdekdeldemdendeodepdeqderdesdetdeudevdewdexdeydezdfddfedffdfgdfhdfidfjdfkdfldfmdfndfodfpdfqdfrdfsdftdfudfvdfwdfxdfydfzdgddgedgfdggdghdgidgjdgkdgldgmdgndgodgpdgqdgrdgsdgtdgudgvdgwdgxdgydgzdhddhedhfdhgdhhdhidhjdhkdhldhmdhndhodhpdhqdhrdhsdhtdhudhvdhwdhxdhydhzdiddiedifdigdihdiidijdikdildimdindiodipdiqdirdisditdiudivdiwdixdiydizdjddjedjfdjgdjhdjidjjdjkdjldjmdjndjodjpdjqdjrdjsdjtdjudjvdjwdjxdjydjzdkddkedkfdkgdkhdkidkjdkkdkldkmdkndkodkpdkqdkrdksdktdkudkvdkwdkxdkydkzdlddledlfdlgdlhdlidljdlkdlldlmdlndlodlpdlqdlrdlsdltdludlvdlwdlxdlydlzdmddmedmfdmgdmhdmidmjdmkdmldmmdmndmodmpdmqdmrdmsdmtdmudmvdmwdmxdmydmzdnddnednfdngdnhdnidnjdnkdnldnmdnndnodnpdnqdnrdnsdntdnudnvdnwdnxdnydnzdoddoedofdogdohdoidojdokdoldomdondoodopdoqdordosdotdoudovdowdoxdoydozdpddpedpfdpgdphdpidpjdpkdpldpmdpndpodppdpqdprdpsdptdpudpvdpwdpxdpydpzdqddqedqfdqgdqhdqidqjdqkdqldqmdqndqodqpdqqdqrdqsdqtdqudqvdqwdqxdqydqzdrddredrfdrgdrhdridrjdrkdrldrmdrndrodrpdrqdrrdrsdrtdrudrvdrwdrxdrydrzdsddsedsfdsgdshdsidsjdskdsldsmdsndsodspdsqdsrdssdstdsudsvdswdsxdsydszdtddtedtfdtgdthdtidtjdtkdtldtmdtndtodtpdtqdtrdtsdttdtudtvdtwdtxdtydtzdudduedufdugduhduidujdukduldumdunduodupduqdurdusdutduuduvduwduxduyduzdvddvedvfdvgdvhdvidvjdvkdvldvmdvndvodvpdvqdvrdvsdvtdvudvvdvwdvxdvydvzdwddwedwfdwgdwhdwidwjdwkdwldwmdwndwodwpdwqdwrdwsdwtdwudwvdwwdwxdwydwzdxddxedxfdxgdxhdxidxjdxkdxldxmdxndxodxpdxqdxrdxsdxtdxudxvdxwdxxdxydxzdyddyedyfdygdyhdyidyjdykdyldymdyndyodypdyqdyrdysdytdyudyvdywdyxdyydyzdzddzedzfdzgdzhdzidzjdzkdzldzmdzndzodzpdzqdzrdzsdztdzudzvdzwdzxdzydzzeeeefeegeeheeieejeekeeleemeeneeoeepeeqeereeseeteeueeveeweexeeyeezefeeffefgefhefiefjefkeflefmefnefoefpefqefrefseftefuefvefwefxefyefzegeegfeggeghegiegjegkeglegmegnegoegpegqegregsegteguegvegwegxegyegzeheehfehgehhehiehjehkehlehmehnehoehpehqehrehsehtehuehvehwehxehyehzeieeifeigeiheiieijeikeileimeineioeipeiqeireiseiteiueiveiweixeiyeizejeejfejgejhejiejjejkejlejmejnejoejpejqejrejsejtejuejvejwejxejyejzekeekfekgekhekiekjekkeklekmeknekoekpekqekreksektekuekvekwekxekyekzeleelfelgelhelieljelkellelmelneloelpelqelrelselteluelvelwelxelyelzemeemfemgemhemiemjemkemlemmemnemoempemqemremsemtemuemvemwemxemyemzeneenfengenhenienjenkenlenmennenoenpenqenrensentenuenvenwenxenyenzeoeeofeogeoheoieojeokeoleomeoneooeopeoqeoreoseoteoueoveoweoxeoyeozepeepfepgephepiepjepkeplepmepnepoeppepqeprepseptepuepvepwepxepyepzeqeeqfeqgeqheqieqjeqkeqleqmeqneqoeqpeqqeqreqseqtequeqveqweqxeqyeqzereerfergerherierjerkerlermerneroerperqerrerserteruerverwerxeryerzeseesfesgeshesiesjeskeslesmesnesoespesqesressestesuesveswesxesyeszeteetfetgethetietjetketletmetnetoetpetqetretsettetuetvetwetxetyetzeueeufeugeuheuieujeukeuleumeuneuoeupeuqeureuseuteuueuveuweuxeuyeuzeveevfevgevhevievjevkevlevmevnevoevpevqevrevsevtevuevvevwevxevyevzeweewfewgewhewiewjewkewlewmewnewoewpewqewrewsewtewuewvewwewxewyewzexeexfexgexhexiexjexkexlexmexnexoexpexqexrexsextexuexvexwexxexyexzeyeeyfeygeyheyieyjeykeyleymeyneyoeypeyqeyreyseyteyueyveyweyxeyyeyzezeezfezgezheziezjezkezlezmeznezoezpezqezrezseztezuezvezwezxezyezzffffgffhffiffjffkfflffmffnffoffpffqffrffsfftffuffvffwffxffyffzfgffggfghfgifgjfgkfglfgmfgnfgofgpfgqfgrfgsfgtfgufgvfgwfgxfgyfgzfhffhgfhhfhifhjfhkfhlfhmfhnfhofhpfhqfhrfhsfhtfhufhvfhwfhxfhyfhzfiffigfihfiifijfikfilfimfinfiofipfiqfirfisfitfiufivfiwfixfiyfizfjffjgfjhfjifjjfjkfjlfjmfjnfjofjpfjqfjrfjsfjtfjufjvfjwfjxfjyfjzfkffkgfkhfkifkjfkkfklfkmfknfkofkpfkqfkrfksfktfkufkvfkwfkxfkyfkzflfflgflhflifljflkfllflmflnfloflpflqflrflsfltfluflvflwflxflyflzfmffmgfmhfmifmjfmkfmlfmmfmnfmofmpfmqfmrfmsfmtfmufmvfmwfmxfmyfmzfnffngfnhfnifnjfnkfnlfnmfnnfnofnpfnqfnrfnsfntfnufnvfnwfnxfnyfnzfoffogfohfoifojfokfolfomfonfoofopfoqforfosfotfoufovfowfoxfoyfozfpffpgfphfpifpjfpkfplfpmfpnfpofppfpqfprfpsfptfpufpvfpwfpxfpyfpzfqffqgfqhfqifqjfqkfqlfqmfqnfqofqpfqqfqrfqsfqtfqufqvfqwfqxfqyfqzfrffrgfrhfrifrjfrkfrlfrmfrnfrofrpfrqfrrfrsfrtfrufrvfrwfrxfryfrzfsffsgfshfsifsjfskfslfsmfsnfsofspfsqfsrfssfstfsufsvfswfsxfsyfszftfftgfthftiftjftkftlftmftnftoftpftqftrftsfttftuftvftwftxftyftzfuffugfuhfuifujfukfulfumfunfuofupfuqfurfusfutfuufuvfuwfuxfuyfuzfvffvgfvhfvifvjfvkfvlfvmfvnfvofvpfvqfvrfvsfvtfvufvvfvwfvxfvyfvzfwffwgfwhfwifwjfwkfwlfwmfwnfwofwpfwqfwrfwsfwtfwufwvfwwfwxfwyfwzfxffxgfxhfxifxjfxkfxlfxmfxnfxofxpfxqfxrfxsfxtfxufxvfxwfxxfxyfxzfyffygfyhfyifyjfykfylfymfynfyofypfyqfyrfysfytfyufyvfywfyxfyyfyzfzffzgfzhfzifzjfzkfzlfzmfznfzofzpfzqfzrfzsfztfzufzvfzwfzxfzyfzzgggghggiggjggkgglggmggnggoggpggqggrggsggtgguggvggwggxggyggzghgghhghighjghkghlghmghnghoghpghqghrghsghtghughvghwghxghyghzgiggihgiigijgikgilgimgingiogipgiqgirgisgitgiugivgiwgixgiygizgjggjhgjigjjgjkgjlgjmgjngjogjpgjqgjrgjsgjtgjugjvgjwgjxgjygjzgkggkhgkigkjgkkgklgkmgkngkogkpgkqgkrgksgktgkugkvgkwgkxgkygkzglgglhgligljglkgllglmglngloglpglqglrglsgltgluglvglwglxglyglzgmggmhgmigmjgmkgmlgmmgmngmogmpgmqgmrgmsgmtgmugmvgmwgmxgmygmzgnggnhgnignjgnkgnlgnmgnngnognpgnqgnrgnsgntgnugnvgnwgnxgnygnzgoggohgoigojgokgolgomgongoogopgoqgorgosgotgougovgowgoxgoygozgpggphgpigpjgpkgplgpmgpngpogppgpqgprgpsgptgpugpvgpwgpxgpygpzgqggqhgqigqjgqkgqlgqmgqngqogqpgqqgqrgqsgqtgqugqvgqwgqxgqygqzgrggrhgrigrjgrkgrlgrmgrngrogrpgrqgrrgrsgrtgrugrvgrwgrxgrygrzgsggshgsigsjgskgslgsmgsngsogspgsqgsrgssgstgsugsvgswgsxgsygszgtggthgtigtjgtkgtlgtmgtngtogtpgtqgtrgtsgttgtugtvgtwgtxgtygtzgugguhguigujgukgulgumgunguogupguqgurgusgutguuguvguwguxguyguzgvggvhgvigvjgvkgvlgvmgvngvogvpgvqgvrgvsgvtgvugvvgvwgvxgvygvzgwggwhgwigwjgwkgwlgwmgwngwogwpgwqgwrgwsgwtgwugwvgwwgwxgwygwzgxggxhgxigxjgxkgxlgxmgxngxogxpgxqgxrgxsgxtgxugxvgxwgxxgxygxzgyggyhgyigyjgykgylgymgyngyogypgyqgyrgysgytgyugyvgywgyxgyygyzgzggzhgzigzjgzkgzlgzmgzngzogzpgzqgzrgzsgztgzugzvgzwgzxgzygzzhhhhihhjhhkhhlhhmhhnhhohhphhqhhrhhshhthhuhhvhhwhhxhhyhhzhihhiihijhikhilhimhinhiohiphiqhirhishithiuhivhiwhixhiyhizhjhhjihjjhjkhjlhjmhjnhjohjphjqhjrhjshjthjuhjvhjwhjxhjyhjzhkhhkihkjhkkhklhkmhknhkohkphkqhkrhkshkthkuhkvhkwhkxhkyhkzhlhhlihljhlkhllhlmhlnhlohlphlqhlrhlshlthluhlvhlwhlxhlyhlzhmhhmihmjhmkhmlhmmhmnhmohmphmqhmrhmshmthmuhmvhmwhmxhmyhmzhnhhnihnjhnkhnlhnmhnnhnohnphnqhnrhnshnthnuhnvhnwhnxhnyhnzhohhoihojhokholhomhonhoohophoqhorhoshothouhovhowhoxhoyhozhphhpihpjhpkhplhpmhpnhpohpphpqhprhpshpthpuhpvhpwhpxhpyhpzhqhhqihqjhqkhqlhqmhqnhqohqphqqhqrhqshqthquhqvhqwhqxhqyhqzhrhhrihrjhrkhrlhrmhrnhrohrphrqhrrhrshrthruhrvhrwhrxhryhrzhshhsihsjhskhslhsmhsnhsohsphsqhsrhsshsthsuhsvhswhsxhsyhszhthhtihtjhtkhtlhtmhtnhtohtphtqhtrhtshtthtuhtvhtwhtxhtyhtzhuhhuihujhukhulhumhunhuohuphuqhurhushuthuuhuvhuwhuxhuyhuzhvhhvihvjhvkhvlhvmhvnhvohvphvqhvrhvshvthvuhvvhvwhvxhvyhvzhwhhwihwjhwkhwlhwmhwnhwohwphwqhwrhwshwthwuhwvhwwhwxhwyhwzhxhhxihxjhxkhxlhxmhxnhxohxphxqhxrhxshxthxuhxvhxwhxxhxyhxzhyhhyihyjhykhylhymhynhyohyphyqhyrhyshythyuhyvhywhyxhyyhyzhzhhzihzjhzkhzlhzmhznhzohzphzqhzrhzshzthzuhzvhzwhzxhzyhzziiiijiikiiliimiiniioiipiiqiiriisiitiiuiiviiwiixiiyiizijiijjijkijlijmijnijoijpijqijrijsijtijuijvijwijxijyijzikiikjikkiklikmiknikoikpikqikriksiktikuikvikwikxikyikziliiljilkillilmilniloilpilqilrilsiltiluilvilwilxilyilzimiimjimkimlimmimnimoimpimqimrimsimtimuimvimwimximyimziniinjinkinlinminninoinpinqinrinsintinuinvinwinxinyinzioiiojiokioliomioniooiopioqioriosiotiouioviowioxioyiozipiipjipkiplipmipnipoippipqipripsiptipuipvipwipxipyipziqiiqjiqkiqliqmiqniqoiqpiqqiqriqsiqtiquiqviqwiqxiqyiqziriirjirkirlirmirniroirpirqirrirsirtiruirvirwirxiryirzisiisjiskislismisnisoispisqisrissistisuisviswisxisyiszitiitjitkitlitmitnitoitpitqitritsittituitvitwitxityitziuiiujiukiuliumiuniuoiupiuqiuriusiutiuuiuviuwiuxiuyiuziviivjivkivlivmivnivoivpivqivrivsivtivuivvivwivxivyivziwiiwjiwkiwliwmiwniwoiwpiwqiwriwsiwtiwuiwviwwiwxiwyiwzixiixjixkixlixmixnixoixpixqixrixsixtixuixvixwixxixyixziyiiyjiykiyliymiyniyoiypiyqiyriysiytiyuiyviywiyxiyyiyziziizjizkizlizmiznizoizpizqizrizsiztizuizvizwizxizyizzjjjjkjjljjmjjnjjojjpjjqjjrjjsjjtjjujjvjjwjjxjjyjjzjkjjkkjkljkmjknjkojkpjkqjkrjksjktjkujkvjkwjkxjkyjkzjljjlkjlljlmjlnjlojlpjlqjlrjlsjltjlujlvjlwjlxjlyjlzjmjjmkjmljmmjmnjmojmpjmqjmrjmsjmtjmujmvjmwjmxjmyjmzjnjjnkjnljnmjnnjnojnpjnqjnrjnsjntjnujnvjnwjnxjnyjnzjojjokjoljomjonjoojopjoqjorjosjotjoujovjowjoxjoyjozjpjjpkjpljpmjpnjpojppjpqjprjpsjptjpujpvjpwjpxjpyjpzjqjjqkjqljqmjqnjqojqpjqqjqrjqsjqtjqujqvjqwjqxjqyjqzjrjjrkjrljrmjrnjrojrpjrqjrrjrsjrtjrujrvjrwjrxjryjrzjsjjskjsljsmjsnjsojspjsqjsrjssjstjsujsvjswjsxjsyjszjtjjtkjtljtmjtnjtojtpjtqjtrjtsjttjtujtvjtwjtxjtyjtzjujjukjuljumjunjuojupjuqjurjusjutjuujuvjuwjuxjuyjuzjvjjvkjvljvmjvnjvojvpjvqjvrjvsjvtjvujvvjvwjvxjvyjvzjwjjwkjwljwmjwnjwojwpjwqjwrjwsjwtjwujwvjwwjwxjwyjwzjxjjxkjxljxmjxnjxojxpjxqjxrjxsjxtjxujxvjxwjxxjxyjxzjyjjykjyljymjynjyojypjyqjyrjysjytjyujyvjywjyxjyyjyzjzjjzkjzljzmjznjzojzpjzqjzrjzsjztjzujzvjzwjzxjzyjzzkkkklkkmkknkkokkpkkqkkrkkskktkkukkvkkwkkxkkykkzklkkllklmklnkloklpklqklrklskltkluklvklwklxklyklzkmkkmlkmmkmnkmokmpkmqkmrkmskmtkmukmvkmwkmxkmykmzknkknlknmknnknoknpknqknrknskntknuknvknwknxknyknzkokkolkomkonkookopkoqkorkoskotkoukovkowkoxkoykozkpkkplkpmkpnkpokppkpqkprkpskptkpukpvkpwkpxkpykpzkqkkqlkqmkqnkqokqpkqqkqrkqskqtkqukqvkqwkqxkqykqzkrkkrlkrmkrnkrokrpkrqkrrkrskrtkrukrvkrwkrxkrykrzkskkslksmksnksokspksqksrksskstksuksvkswksxksykszktkktlktmktnktoktpktqktrktskttktuktvktwktxktyktzkukkulkumkunkuokupkuqkurkuskutkuukuvkuwkuxkuykuzkvkkvlkvmkvnkvokvpkvqkvrkvskvtkvukvvkvwkvxkvykvzkwkkwlkwmkwnkwokwpkwqkwrkwskwtkwukwvkwwkwxkwykwzkxkkxlkxmkxnkxokxpkxqkxrkxskxtkxukxvkxwkxxkxykxzkykkylkymkynkyokypkyqkyrkyskytkyukyvkywkyxkyykyzkzkkzlkzmkznkzokzpkzqkzrkzskztkzukzvkzwkzxkzykzzllllmllnllollpllqllrllslltllullvllwllxllyllzlmllmmlmnlmolmplmqlmrlmslmtlmulmvlmwlmxlmylmzlnllnmlnnlnolnplnqlnrlnslntlnulnvlnwlnxlnylnzlollomlonlooloploqlorloslotloulovlowloxloylozlpllpmlpnlpolpplpqlprlpslptlpulpvlpwlpxlpylpzlqllqmlqnlqolqplqqlqrlqslqtlqulqvlqwlqxlqylqzlrllrmlrnlrolrplrqlrrlrslrtlrulrvlrwlrxlrylrzlsllsmlsnlsolsplsqlsrlsslstlsulsvlswlsxlsylszltlltmltnltoltpltqltrltslttltultvltwltxltyltzlullumlunluolupluqlurluslutluuluvluwluxluyluzlvllvmlvnlvolvplvqlvrlvslvtlvulvvlvwlvxlvylvzlwllwmlwnlwolwplwqlwrlwslwtlwulwvlwwlwxlwylwzlxllxmlxnlxolxplxqlxrlxslxtlxulxvlxwlxxlxylxzlyllymlynlyolyplyqlyrlyslytlyulyvlywlyxlyylyzlzllzmlznlzolzplzqlzrlzslztlzulzvlzwlzxlzylzzmmmmnmmommpmmqmmrmmsmmtmmummvmmwmmxmmymmzmnmmnnmnomnpmnqmnrmnsmntmnumnvmnwmnxmnymnzmommonmoomopmoqmormosmotmoumovmowmoxmoymozmpmmpnmpomppmpqmprmpsmptmpumpvmpwmpxmpympzmqmmqnmqomqpmqqmqrmqsmqtmqumqvmqwmqxmqymqzmrmmrnmromrpmrqmrrmrsmrtmrumrvmrwmrxmrymrzmsmmsnmsomspmsqmsrmssmstmsumsvmswmsxmsymszmtmmtnmtomtpmtqmtrmtsmttmtumtvmtwmtxmtymtzmummunmuomupmuqmurmusmutmuumuvmuwmuxmuymuzmvmmvnmvomvpmvqmvrmvsmvtmvumvvmvwmvxmvymvzmwmmwnmwomwpmwqmwrmwsmwtmwumwvmwwmwxmwymwzmxmmxnmxomxpmxqmxrmxsmxtmxumxvmxwmxxmxymxzmymmynmyomypmyqmyrmysmytmyumyvmywmyxmyymyzmzmmznmzomzpmzqmzrmzsmztmzumzvmzwmzxmzymzznnnnonnpnnqnnrnnsnntnnunnvnnwnnxnnynnznonnoonopnoqnornosnotnounovnownoxnoynoznpnnponppnpqnprnpsnptnpunpvnpwnpxnpynpznqnnqonqpnqqnqrnqsnqtnqunqvnqwnqxnqynqznrnnronrpnrqnrrnrsnrtnrunrvnrwnrxnrynrznsnnsonspnsqnsrnssnstnsunsvnswnsxnsynszntnntontpntqntrntsnttntuntvntwntxntyntznunnuonupnuqnurnusnutnuunuvnuwnuxnuynuznvnnvonvpnvqnvrnvsnvtnvunvvnvwnvxnvynvznwnnwonwpnwqnwrnwsnwtnwunwvnwwnwxnwynwznxnnxonxpnxqnxrnxsnxtnxunxvnxwnxxnxynxznynnyonypnyqnyrnysnytnyunyvnywnyxnyynyznznnzonzpnzqnzrnzsnztnzunzvnzwnzxnzynzzoooopooqooroosootoouoovoowooxooyoozopooppopqopropsoptopuopvopwopxopyopzoqooqpoqqoqroqsoqtoquoqvoqwoqxoqyoqzoroorporqorrorsortoruorvorworxoryorzosoosposqosrossostosuosvoswosxosyoszotootpotqotrotsottotuotvotwotxotyotzouooupouqourousoutouuouvouwouxouyouzovoovpovqovrovsovtovuovvovwovxovyovzowoowpowqowrowsowtowuowvowwowxowyowzoxooxpoxqoxroxsoxtoxuoxvoxwoxxoxyoxzoyooypoyqoyroysoytoyuoyvoywoyxoyyoyzozoozpozqozrozsoztozuozvozwozxozyozzppppqpprppspptppuppvppwppxppyppzpqppqqpqrpqspqtpqupqvpqwpqxpqypqzprpprqprrprsprtpruprvprwprxpryprzpsppsqpsrpsspstpsupsvpswpsxpsypszptpptqptrptspttptuptvptwptxptyptzpuppuqpurpusputpuupuvpuwpuxpuypuzpvppvqpvrpvspvtpvupvvpvwpvxpvypvzpwppwqpwrpwspwtpwupwvpwwpwxpwypwzpxppxqpxrpxspxtpxupxvpxwpxxpxypxzpyppyqpyrpyspytpyupyvpywpyxpyypyzpzppzqpzrpzspztpzupzvpzwpzxpzypzzqqqqrqqsqqtqquqqvqqwqqxqqyqqzqrqqrrqrsqrtqruqrvqrwqrxqryqrzqsqqsrqssqstqsuqsvqswqsxqsyqszqtqqtrqtsqttqtuqtvqtwqtxqtyqtzquqqurqusqutquuquvquwquxquyquzqvqqvrqvsqvtqvuqvvqvwqvxqvyqvzqwqqwrqwsqwtqwuqwvqwwqwxqwyqwzqxqqxrqxsqxtqxuqxvqxwqxxqxyqxzqyqqyrqysqytqyuqyvqywqyxqyyqyzqzqqzrqzsqztqzuqzvqzwqzxqzyqzzrrrrsrrtrrurrvrrwrrxrryrrzrsrrssrstrsursvrswrsxrsyrszrtrrtsrttrturtvrtwrtxrtyrtzrurrusrutruuruvruwruxruyruzrvrrvsrvtrvurvvrvwrvxrvyrvzrwrrwsrwtrwurwvrwwrwxrwyrwzrxrrxsrxtrxurxvrxwrxxrxyrxzryrrysrytryuryvrywryxryyryzrzrrzsrztrzurzvrzwrzxrzyrzzsssstssussvsswssxssysszstssttstustvstwstxstystzsussutsuusuvsuwsuxsuysuzsvssvtsvusvvsvwsvxsvysvzswsswtswuswvswwswxswyswzsxssxtsxusxvsxwsxxsxysxzsyssytsyusyvsywsyxsyysyzszssztszuszvszwszxszyszzttttuttvttwttxttyttztuttuutuvtuwtuxtuytuztvttvutvvtvwtvxtvytvztwttwutwvtwwtwxtwytwztxttxutxvtxwtxxtxytxztyttyutyvtywtyxtyytyztzttzutzvtzwtzxtzytzzuuuuvuuwuuxuuyuuzuvuuvvuvwuvxuvyuvzuwuuwvuwwuwxuwyuwzuxuuxvuxwuxxuxyuxzuyuuyvuywuyxuyyuyzuzuuzvuzwuzxuzyuzzvvvvwvvxvvyvvzvwvvwwvwxvwyvwzvxvvxwvxxvxyvxzvyvvywvyxvyyvyzvzvvzwvzxvzyvzzwwwwxwwywwzwxwwxxwxywxzwywwyxwyywyzwzwwzxwzywzzxxxxyxxzxyxxyyxyzxzxxzyxzzyyyyzyzyyzzzza

len: 18578