# str <- "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed varius nisl a urna fringilla, in aliquet leo aliquam. Proin nec dolor est. Aenean aliquet aliquet ipsum id dapibus. Nullam enim ligula, mattis sed ipsum elementum, iaculis elementum sapien. Pellentesque rutrum commodo est vitae porta. Nunc ex eros, lacinia et ligula eget, feugiat congue sapien. Fusce nisi tortor, maximus a cursus ut, elementum eu justo.
#
# In vel velit vitae lectus rutrum iaculis congue eu ligula. Etiam dictum magna non elit varius, vel sagittis nulla viverra. Sed nulla justo, bibendum eu augue at, volutpat porta mauris. Vivamus ac nisi mauris. Integer pellentesque quam sit amet erat bibendum auctor. Duis dictum erat non iaculis vehicula. Suspendisse potenti. Pellentesque dignissim lobortis velit, id accumsan massa semper vitae. Suspendisse pretium neque vel convallis vehicula. Suspendisse sit amet sem quis urna aliquam maximus eu vel mi. Sed metus neque, consectetur ut posuere quis, tristique non quam. Vestibulum vitae sapien at sapien euismod blandit. Nam quis velit sed mauris fermentum tempus vitae vitae turpis. Nam eleifend ut augue non sagittis.
#
# Suspendisse potenti. Proin ipsum neque, aliquet id euismod ac, viverra id diam. Praesent tristique nisl nunc, eget iaculis justo lacinia sit amet. Quisque sed laoreet orci. Aenean sit amet dolor ut libero bibendum molestie. Fusce feugiat sapien dolor, eu gravida libero sollicitudin in. Nam ac metus quis libero accumsan mollis eget sed lorem. Nullam a sapien in nibh viverra venenatis non vitae dui. Etiam at nisi ut velit fermentum scelerisque. Sed non lacinia libero. Phasellus id lectus at risus finibus pharetra eu ac justo. Maecenas a tristique velit. Etiam odio quam, rhoncus eu quam nec, vestibulum consectetur lacus. Sed sagittis, velit eu ullamcorper venenatis, ipsum ipsum mollis urna, in porttitor mauris quam et risus.
#
# Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Aliquam pharetra porta augue quis tincidunt. Maecenas ut congue mauris. Fusce feugiat, tellus eu luctus sodales, neque velit euismod nisl, eget posuere sapien elit eu magna. Sed et sem vulputate, malesuada lectus non, auctor sem. Praesent non est ac erat condimentum sollicitudin. Pellentesque eleifend sem ut arcu luctus, quis sodales leo congue. Suspendisse vitae blandit tellus, nec consequat nisi. Mauris eu consequat tellus. Quisque tincidunt eu magna sed feugiat. Cras gravida dignissim risus in ultricies.
#
# Ut consectetur facilisis suscipit. Mauris a tempus lacus. Nunc auctor arcu quis metus pharetra bibendum. Integer eget pharetra est. In ultricies justo tellus, id dictum mauris semper eu. Donec eget enim ipsum. Vestibulum vel pretium sapien. Aliquam consequat eleifend odio, in scelerisque ex rutrum non.
#
# Donec eget risus lacinia ligula sollicitudin pretium sed sed dolor. Etiam nec sem dictum, pellentesque augue eget, commodo risus. In et varius turpis. Donec quis finibus velit, sed lacinia justo. Nullam vel eleifend magna. Nam neque enim, finibus sed justo a, iaculis porttitor diam. Nam quis facilisis magna. Etiam iaculis metus vitae eros pharetra, vitae lobortis ex ornare.
#
# Duis facilisis malesuada fermentum. Nam commodo eget nibh non aliquet. Interdum et malesuada fames ac ante ipsum primis in faucibus. Donec ut magna neque. Integer sed diam eleifend, rhoncus turpis porta, pellentesque mauris. Vestibulum feugiat vulputate turpis, ut aliquam nulla varius a. Aenean malesuada nisi sem. Aenean ultrices finibus sem, sed faucibus erat porta vel.
#
# Mauris risus dolor, volutpat interdum condimentum quis, suscipit sit amet ante. Maecenas blandit convallis feugiat. Nunc felis velit, congue sit amet tempor eget, aliquet nec elit. Nunc vel ipsum libero. Nulla erat leo, rhoncus eget pellentesque vel, sodales fermentum magna. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Maecenas pharetra mauris tortor, sit amet euismod est interdum vel. Aliquam metus lorem, tristique nec venenatis vel, fringilla ac nisl. In maximus justo vel turpis interdum suscipit. Vivamus gravida nisl at magna mollis blandit. Quisque enim nisi, iaculis sit amet tortor pulvinar, venenatis vestibulum nisi. Donec consequat lobortis mollis. Maecenas vel massa eu quam bibendum aliquam. Donec aliquet, leo at accumsan congue, ex purus vehicula odio, nec maximus massa risus a dui.
#
# Integer lobortis sollicitudin quam sit amet scelerisque. Quisque orci augue, commodo ac ligula eget, tincidunt tempor dui. Sed vestibulum ante eu commodo pharetra. Ut scelerisque id erat ac varius. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla convallis mauris eu quam blandit hendrerit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed tristique arcu eget fermentum scelerisque. In vestibulum ac tellus vel sodales. Aenean vestibulum dapibus nunc, eget luctus mauris condimentum nec. Nulla lacinia ut augue ac malesuada.
#
# In ultricies vestibulum sem. Nullam congue placerat lacus, non consequat neque commodo ac. Phasellus lobortis justo vitae justo mollis dapibus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Phasellus pharetra, lacus quis aliquam porta, libero nunc sodales mauris, vitae scelerisque sem leo sit amet sem. In rutrum aliquet volutpat. Aliquam erat volutpat. Integer ut varius arcu. Nullam tincidunt bibendum est, eu accumsan tortor ultrices vel. Donec purus diam, sodales id consequat sit amet, pulvinar et eros. Etiam id dictum nunc. Nulla facilisi. In vel nisl at quam aliquet ultricies.
#
# Suspendisse porttitor, eros ut finibus dictum, libero nibh cursus odio, ut varius orci nunc nec libero. Duis ultricies vestibulum mi, quis mollis odio malesuada eu. Pellentesque egestas justo ex, gravida egestas dui tincidunt eu. Fusce commodo magna tortor, ac consectetur ipsum viverra at. Donec augue leo, gravida nec ligula eu, egestas posuere lacus. Donec faucibus mattis dolor non mollis. Nam eget nibh eget urna facilisis egestas.
#
# Fusce venenatis, mi varius finibus ornare, urna ligula mollis leo, sed laoreet tortor neque id turpis. In sed felis tellus. Suspendisse rhoncus tempor purus, et auctor tortor viverra nec. Nunc ut est nec nisl pharetra bibendum non a elit. Suspendisse ac urna sed diam mollis elementum. Maecenas id est a ex posuere maximus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Cras nisl ante, sagittis eget varius eu, pulvinar vel eros.
#
# Integer varius magna sed massa ullamcorper dictum. Nunc eget lectus ut lectus dapibus scelerisque. Quisque aliquam ut tortor in interdum. Ut volutpat auctor maximus. Duis tempus dictum vehicula. Sed efficitur nibh et risus egestas, ac rutrum justo porttitor. Curabitur consequat lacus turpis, eget lacinia libero mollis et. Duis ut eleifend lacus, eget blandit nunc.
#
# Quisque lacinia in urna aliquam vehicula. Proin ornare ligula quis mauris sodales egestas. Praesent metus ex, dignissim ut sagittis quis, condimentum et augue. Duis fermentum lorem eu turpis ultricies, vitae pulvinar tortor ornare. Proin quis convallis ligula. Morbi a tincidunt ipsum, eget accumsan ipsum. Etiam ut tempor arcu. Donec consectetur placerat lacus, sit amet lobortis risus.
#
# Quisque dui enim, vulputate vel ligula at, ornare tristique nunc. Quisque elementum turpis ut ligula fermentum vehicula. Suspendisse mattis tellus venenatis suscipit sagittis. Proin eleifend fermentum risus in cursus. Nulla ut quam viverra, congue nisl a, varius dui. Proin maximus turpis nec eros fermentum, vel dapibus quam elementum. Mauris non mauris lobortis, efficitur velit vitae, varius lectus. Aenean in enim ut quam semper tempus eu sit amet leo. Nulla tincidunt dui a nulla laoreet, vitae feugiat quam sollicitudin.
#
# Interdum et malesuada fames ac ante ipsum primis in faucibus. Quisque porta consequat luctus. Duis ut tellus quam. Nulla nec dui feugiat, viverra sapien sagittis, imperdiet neque. Praesent suscipit nulla in volutpat cursus. Curabitur volutpat et velit dapibus elementum. Nullam ac velit malesuada, interdum mauris quis, feugiat erat. Cras sit amet lectus in eros aliquet vehicula. Aliquam erat volutpat. Aliquam commodo mauris quis risus congue, et blandit enim auctor. Vivamus est eros, ullamcorper et lacinia in, consequat sed mauris. Nam interdum iaculis ex viverra auctor. Proin mollis, tellus ac ornare condimentum, lacus augue aliquet metus, nec fringilla ex felis eget risus.
#
# Fusce nec arcu ut purus iaculis volutpat a in ipsum. Donec vel felis consectetur, auctor nibh quis, sollicitudin risus. Phasellus eget est lobortis dui auctor lacinia. Vivamus non bibendum justo. Phasellus in mi euismod, vulputate augue nec, venenatis enim. Etiam fermentum mauris a nisl accumsan accumsan. Nullam felis nibh, condimentum id velit et, convallis volutpat enim. Vestibulum nulla purus, viverra ut elementum vel, scelerisque id odio.
#
# Cras bibendum aliquam turpis, dapibus luctus eros sollicitudin nec. In vehicula a elit in aliquam. Quisque id justo enim. Nam sit amet viverra risus. Vivamus blandit, nisi a mollis porttitor, magna ligula interdum neque, id convallis nibh odio et arcu. Vivamus eleifend quam id orci placerat, non condimentum mi euismod. Curabitur enim est, pharetra ac augue ut, condimentum molestie ipsum. Phasellus id consequat velit. In egestas quam a leo sodales, quis volutpat nibh tempus. Vivamus elementum eros nec justo volutpat ultricies. Integer suscipit et velit ut gravida.
#
# Nunc feugiat libero facilisis, volutpat lorem sed, viverra eros. Duis quis ipsum eu orci hendrerit pellentesque. Vivamus aliquam neque at tincidunt commodo. Suspendisse porttitor velit sed est convallis mollis. Aenean et urna dui. In diam turpis, commodo quis dictum id, porttitor et ipsum. Duis placerat non eros et molestie.
#
# Sed et interdum lectus, id venenatis magna. Nullam accumsan viverra nisl in iaculis. Phasellus finibus lorem sed maximus auctor. Aenean euismod pulvinar est, a placerat odio hendrerit ut. Nulla accumsan metus sed velit tincidunt, vitae tempus ligula efficitur. Nam eget risus velit. Duis ultrices ex nulla, sit amet porta quam aliquam sed. Maecenas facilisis scelerisque nisi tempor condimentum. Ut id sem ac dui feugiat sollicitudin eleifend id felis. Ut pellentesque ex et mauris volutpat, eu porttitor quam aliquam.
#
# Aenean molestie nulla ut sapien egestas, ac facilisis est convallis. Vestibulum eu leo commodo, consequat leo at, condimentum nisl. Pellentesque dapibus nulla nec nibh gravida venenatis. Donec elementum lobortis odio. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nullam congue, lorem nec accumsan volutpat, nibh turpis feugiat enim, a rutrum sapien nisi eu justo. Quisque non laoreet metus, ac luctus lacus. Nunc luctus ipsum eu massa hendrerit, ac vulputate arcu vestibulum. Integer ac sem vulputate, pharetra sapien ac, scelerisque mi. Curabitur vestibulum mattis blandit. Donec nec lobortis ex, in finibus velit. Duis ipsum massa, sollicitudin ac orci at, dapibus congue purus. Pellentesque tincidunt nibh vel enim egestas accumsan. Ut mattis dolor non aliquet suscipit. Maecenas non tortor lacus.
#
# Mauris tortor metus, scelerisque ut posuere quis, blandit sit amet sem. Curabitur nisl eros, accumsan vel orci sit amet, sagittis consectetur metus. Quisque egestas elit non iaculis malesuada. Nam ipsum risus, maximus id pellentesque vehicula, blandit non mauris. Vestibulum ut diam euismod, luctus justo sit amet, tincidunt sapien. Nullam at mattis sem, at ultrices sem. Sed elementum tristique lacus, ut luctus nisi vestibulum ut. Nam ante ante, lacinia eget ex posuere, lobortis cursus tortor. Etiam sodales enim venenatis eros dictum sodales.
#
# Vestibulum sollicitudin nibh eu nunc vulputate viverra. Duis eu ante laoreet, interdum neque eu, facilisis orci. Praesent ultricies vulputate mi, eu dignissim ligula. Aenean ex tellus, vestibulum eu ornare id, eleifend sed eros. Sed posuere blandit quam. Integer varius sodales ex, vel ullamcorper nisl accumsan ac. Morbi fringilla, nibh nec dictum tincidunt, ligula diam eleifend odio, faucibus bibendum quam urna sed nunc. Nullam sit amet lectus lobortis, sodales mi vitae, rutrum neque. Nunc dapibus, velit ultricies viverra lobortis, sapien nisi volutpat urna, venenatis ullamcorper lacus orci vel mi. Vestibulum rhoncus turpis tempus, finibus erat eget, aliquam ligula. Cras feugiat ornare aliquam. In odio ante, laoreet sed varius ac, facilisis quis tortor. Praesent placerat ipsum a ex maximus, ac blandit ipsum dapibus. Suspendisse convallis metus non varius placerat. Integer sit amet volutpat libero. Duis euismod maximus blandit.
#
# Nunc diam sapien, efficitur quis nibh in, euismod pulvinar dui. Nullam luctus luctus ex, sit amet rhoncus libero tristique sed. Suspendisse ullamcorper volutpat aliquet. Mauris cursus, odio vitae vestibulum bibendum, ipsum libero bibendum elit, quis laoreet purus lacus in mi. Morbi sed tristique eros. Suspendisse aliquet, mi fermentum ultricies rutrum, arcu orci semper mauris, id posuere lacus lorem aliquam leo. Pellentesque est arcu, commodo eget erat ut, pellentesque volutpat eros. Proin elementum ultrices tortor vel elementum. Phasellus interdum sollicitudin augue a venenatis. Maecenas posuere nisl id nibh dapibus, ac luctus metus commodo.
#
# Etiam ligula ex, luctus vitae tristique sed, volutpat sed nibh. Mauris sodales, nulla vitae pulvinar mattis, nisl velit cursus massa, quis lobortis neque nisi et lacus. Maecenas vel enim sit amet ligula dignissim sodales ac a magna. Cras pharetra, libero efficitur scelerisque dapibus, urna magna tincidunt quam, nec lacinia nibh nibh non nibh. Aenean ut scelerisque nisi, a volutpat risus. Sed mollis purus id massa volutpat, non venenatis diam auctor. Duis pellentesque felis ut ipsum commodo, eu mollis arcu efficitur. Donec rutrum sit amet purus at vulputate. Praesent lectus orci, suscipit ac lobortis a, fringilla ut dui. Aliquam ac faucibus nisl, sodales auctor dolor.
#
# Suspendisse scelerisque mauris nulla, vel dignissim purus scelerisque vitae. Donec quis ultrices nibh. Sed gravida dignissim metus, a dignissim augue luctus dapibus. Vestibulum sed orci sit amet odio posuere sagittis eu non ex. Cras molestie tempor finibus. Duis laoreet erat non pharetra accumsan. Mauris bibendum felis a dictum mattis. Aliquam eleifend lorem at aliquam auctor. Etiam eget dui consequat dui mollis venenatis eget at velit.
#
# Mauris efficitur risus ac mollis egestas. Maecenas hendrerit dui sed sapien malesuada imperdiet. Pellentesque id risus fringilla ante dictum sollicitudin vel nec erat. Sed a elit rutrum, viverra mauris ac, porttitor augue. Vivamus sed tincidunt neque. Nulla varius sagittis tristique. Duis erat augue, commodo at purus a, accumsan mattis lacus. Sed consectetur, libero euismod convallis ornare, leo erat pharetra felis, ut tincidunt risus ex consequat lorem. Duis varius maximus quam, ornare porta velit malesuada in.
#
# Sed congue vel elit nec ultricies. Morbi placerat nunc nibh, a interdum enim placerat ac. Duis ut quam semper, cursus lectus ac, facilisis purus. Sed ut tortor in metus vehicula cursus ac in est. Vivamus at sollicitudin tortor, sit amet luctus felis. Nullam eu neque ultricies, congue ipsum non, aliquam sapien. Integer sagittis faucibus laoreet. Praesent placerat magna est, a vehicula nibh pellentesque et. Aenean ac aliquam nunc, a ornare est. Mauris malesuada ex quis odio pretium fringilla. Integer pretium ante at turpis dignissim commodo.
#
# Maecenas egestas mauris a fermentum tristique. Proin porta risus erat, non eleifend libero ornare vitae. Nulla placerat est ut fermentum rutrum. Vestibulum vel tempus nibh. Cras rutrum at ante a egestas. Praesent sodales dapibus efficitur. Integer facilisis magna dapibus enim facilisis, vitae fermentum lorem fermentum. Sed consectetur placerat luctus. Nulla fringilla tortor non placerat facilisis. Nulla at egestas libero, a facilisis ante. Duis urna neque, sodales at ipsum id, efficitur finibus magna. Aenean nibh nisi, euismod scelerisque euismod quis, maximus id nunc. Etiam nec orci dui.
#
# Donec vitae ullamcorper arcu. Nunc varius laoreet erat, ut pellentesque est varius eu. Sed fringilla leo in dui mattis, sit amet ornare sem aliquam. Mauris in maximus diam. Maecenas et nisl ullamcorper, rutrum diam non, porta nunc. Nulla pulvinar consectetur dolor ac ultrices. Vivamus eu risus ut mauris mattis placerat a ultrices mi. Quisque rutrum pharetra lectus sed fringilla. Vivamus id vehicula nunc.
#
# Morbi consequat arcu imperdiet elit sollicitudin fermentum. In efficitur facilisis ipsum. Integer ante nulla, maximus nec justo vitae, auctor laoreet odio. Vivamus sit amet sem turpis. Phasellus malesuada velit eget arcu pellentesque porta in eu leo. Nunc volutpat porta quam, et ultrices velit bibendum in. Ut tempus a tortor eu pulvinar. Quisque elementum condimentum ipsum a mattis. Ut nec ipsum faucibus, tristique augue vel, fringilla lacus. Pellentesque vitae tortor leo. Cras volutpat purus at eros commodo, vel commodo velit tempus. Quisque consectetur augue porttitor sem feugiat sagittis. Nunc congue rhoncus ultrices. Quisque et nulla rutrum, efficitur dui consectetur, tempor tellus.
#
# Cras lobortis, nisl eleifend accumsan hendrerit, est justo facilisis magna, vitae euismod nunc lorem lobortis nulla. Curabitur sollicitudin erat eu erat mattis, vel rhoncus leo convallis. Integer cursus blandit hendrerit. Duis quis suscipit velit. Maecenas et hendrerit dui. Fusce tristique dolor sed tempor vulputate. Nunc in mauris vitae sem auctor tempus. Proin imperdiet, ipsum eu fermentum interdum, augue nibh rutrum ligula, vitae tempus ligula mi a nulla. Maecenas vitae ex consequat, dapibus massa nec, blandit nibh. Aenean orci magna, tempor eu mi eu, luctus imperdiet augue. Sed quis sem semper, tempor libero eu, luctus ex. Nulla at tincidunt erat, ac malesuada turpis. Donec accumsan metus nec dolor tempus, id mattis magna pellentesque. Quisque eget nisl ligula. Donec vitae quam dolor.
#
# Nullam efficitur mi non purus pharetra, vitae dapibus lorem feugiat. Mauris in accumsan dolor. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aliquam tempus neque risus, mollis vehicula sapien egestas at. Fusce quis commodo felis, vitae varius leo. Phasellus venenatis magna at odio pharetra convallis. In augue lorem, pharetra eu ipsum et, condimentum lacinia est. Nulla non ligula ipsum. Pellentesque consequat erat vitae lorem vestibulum ultrices. Vestibulum finibus nec est vitae ullamcorper. Praesent auctor, ante sit amet consectetur finibus, justo nunc elementum lectus, eget ullamcorper tellus lectus in lorem. Maecenas id leo lectus. Phasellus venenatis lectus vel quam auctor maximus. Nunc molestie viverra elit, id pretium velit interdum eget. Nulla lobortis velit quis leo scelerisque maximus. In convallis ullamcorper lobortis.
#
# Proin lectus eros, suscipit non lectus at, malesuada consequat eros. Curabitur sem felis, dapibus eu felis non, dapibus viverra lorem. Proin elementum enim ac velit suscipit, id viverra turpis gravida. Phasellus et erat nec dolor fermentum gravida vitae et mi. Phasellus imperdiet metus leo, in porta nibh varius tincidunt. Nam elementum neque ac lacus efficitur ullamcorper. Morbi fermentum lacinia magna id aliquet. Pellentesque ac malesuada neque, vel mollis ligula.
#
# Ut vulputate malesuada mollis. Nulla condimentum mauris id eros dictum porta. Nullam pharetra sapien at elementum sagittis. Integer tempor erat orci, ut elementum sapien sodales ut. Nulla efficitur, massa vel posuere rhoncus, nulla sem varius nulla, sed posuere libero felis eu eros. Duis in erat euismod, pharetra leo in, vestibulum sem. Duis rhoncus malesuada ultrices. Donec ac ligula dictum, posuere nisi et, euismod sem. Morbi luctus tincidunt ante non tempus. Morbi convallis sit amet purus non molestie. Pellentesque in dolor id turpis commodo maximus vitae et urna. Integer in condimentum ligula. Mauris ac justo faucibus, tincidunt ante et, ultricies felis. Maecenas nibh risus, lobortis in leo id, blandit dignissim felis. Vestibulum vel porttitor velit. Vivamus vitae imperdiet eros, non feugiat urna.
#
# Donec in laoreet arcu. Fusce eget lectus urna. Cras elementum in nulla eget condimentum. Donec ullamcorper libero vel nunc suscipit scelerisque. Proin scelerisque velit quis massa porttitor, ac elementum libero congue. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nam egestas, enim vel dictum porta, magna tellus suscipit nunc, id ultrices nibh tortor ac quam. Aenean non urna et felis efficitur venenatis.
#
# Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer sit amet gravida orci. Morbi urna libero, hendrerit tempor vehicula dapibus, semper vitae lacus. Cras vitae nunc leo. Suspendisse cursus velit vel tortor vulputate, ultrices tempus augue tincidunt. Integer consequat maximus consequat. Morbi at ornare diam. Nam fermentum pharetra elit ac facilisis. Vestibulum vehicula diam neque, ac convallis sapien sodales in. Donec consequat nisl urna, vel feugiat tellus vehicula et. Quisque interdum pulvinar massa quis tincidunt. Pellentesque ligula turpis, consequat vel convallis eu, feugiat vel ante. Donec ut magna nulla. Donec et dui a ligula placerat maximus ac viverra sapien. Sed maximus auctor quam.
#
# Proin non ultricies est, vitae pellentesque urna. In fringilla odio et lorem fringilla suscipit. Curabitur vel justo nec turpis rutrum luctus. Ut in lectus id urna tincidunt tempor. Fusce accumsan ex feugiat ex aliquet, eu vulputate elit pulvinar. In id elit ornare ex aliquet bibendum. Nam scelerisque viverra libero, quis tristique diam accumsan eget. Suspendisse ut sapien euismod, feugiat est non, consequat diam. Suspendisse pharetra blandit tellus et fringilla.
#
# Curabitur vitae velit quis nisi suscipit laoreet. Duis dapibus convallis lectus, non aliquam magna lobortis quis. Donec pretium urna a ipsum consequat, non aliquet urna aliquam. Cras ex nulla, maximus eget nisi ut, cursus suscipit justo. Quisque non sapien feugiat, placerat dolor at, aliquam nunc. Cras ut malesuada dui. Integer a ligula a lorem semper congue. Quisque vitae sagittis nisl. Phasellus nunc magna, gravida eget luctus quis, vestibulum euismod quam. Pellentesque at nisi ultrices, ornare est ac, ullamcorper nisi. Ut est arcu, vestibulum auctor eros sit amet, porta ullamcorper magna. Vestibulum eget laoreet justo. Sed tincidunt magna eget dapibus faucibus. Nullam luctus elit a accumsan cursus. Nam elementum viverra gravida.
#
# Maecenas imperdiet risus ut blandit sagittis. Nullam scelerisque feugiat sodales. Curabitur a arcu a ipsum hendrerit consectetur et vitae tellus. In porttitor sodales augue eu posuere. Phasellus vel lectus ut leo ultricies egestas at non justo. Ut et nunc eget sem dictum auctor sed sit amet lectus. Morbi aliquam iaculis sapien, at dignissim tortor congue commodo. Morbi viverra, tellus vitae aliquam lacinia, tellus mauris efficitur tellus, at interdum libero sapien nec diam. Praesent sed mi risus. Mauris mattis nec sem vitae scelerisque. Nam consequat sem et diam lacinia sagittis. Nunc ultrices, mi sit amet rhoncus facilisis, lorem dui dictum sapien, vitae mollis eros est ac magna. Aliquam luctus arcu sit amet laoreet tristique. Nam in tellus lorem.
#
# Sed consequat massa ut leo egestas posuere. Sed vitae sapien non nulla convallis dapibus. Aliquam hendrerit tincidunt rutrum. Proin convallis ligula sed mauris tempus iaculis. Cras sed purus dolor. Aenean a pretium nisi. Curabitur varius nec tortor et mattis. Mauris a mattis nulla, sed dignissim purus. Cras posuere hendrerit sapien quis vulputate. Praesent neque sem, pretium eu justo et, varius tristique tortor.
#
# Morbi urna neque, tempus id vulputate scelerisque, lobortis eu turpis. Vestibulum vestibulum ante sit amet nulla bibendum, sed posuere nulla efficitur. Suspendisse mattis nisl et mi blandit, in tincidunt ante hendrerit. Aliquam rutrum eros sed diam egestas, sed aliquam nisi efficitur. Mauris eu maximus orci, ac vestibulum dolor. Aenean elementum sagittis mi, id scelerisque velit sodales eget. Etiam sodales lectus sed molestie vehicula. Donec tristique magna turpis, at tempus enim mollis in.
#
# Sed egestas mattis nisl, ac facilisis est fermentum eu. Aenean at mauris lacinia, viverra mi vel, fringilla erat. Fusce accumsan felis at venenatis porta. Donec non justo cursus, consequat nibh vehicula, imperdiet arcu. Curabitur quis ullamcorper nisi. Nullam tincidunt hendrerit libero sed rhoncus. Nulla egestas eleifend nulla eu facilisis. Pellentesque in libero in purus tristique lobortis vitae rutrum felis. Quisque placerat nulla eros, sit amet tempor urna feugiat ac. Aenean posuere tellus nec nisl convallis, non malesuada mauris fringilla. Cras auctor, erat non faucibus egestas, dui nunc ultricies lorem, eget porttitor eros eros quis diam. Nulla varius mi magna, ac commodo nulla ultricies venenatis.
#
# Aenean aliquet erat non urna maximus, sit amet congue velit maximus. Nullam varius in massa in bibendum. Mauris a turpis nec dolor commodo tincidunt. Vestibulum aliquam quam erat, et malesuada nunc suscipit ac. Suspendisse eget magna at dolor euismod pellentesque ut nec sapien. Suspendisse potenti. Donec maximus posuere ante, et fringilla velit consectetur eu. Cras dictum erat id velit tempor, non eleifend purus feugiat. Aliquam suscipit vulputate fermentum. Sed vehicula aliquet magna tincidunt ultrices.
#
# Aliquam pellentesque leo nec lorem efficitur, et volutpat augue blandit. Vestibulum volutpat magna eget sem pretium lobortis. Nam ligula felis, faucibus ut rhoncus sit amet, vehicula in nunc. Nunc ligula mi, blandit quis augue et, ullamcorper dapibus arcu. Suspendisse metus diam, facilisis venenatis maximus at, imperdiet ut dui. Donec eros tortor, condimentum ut eros ac, volutpat ornare lorem. Aenean vulputate turpis quis nisl cursus posuere. Nulla nunc nisl, tincidunt eget felis laoreet, pulvinar scelerisque nunc. Donec laoreet eros in turpis gravida tincidunt. Fusce nunc dolor, elementum sit amet sollicitudin non, imperdiet scelerisque est. Maecenas a lorem nec velit mollis ornare eget ac nibh.
#
# Aliquam ullamcorper tincidunt turpis, eu aliquet tellus tincidunt ac. Sed et pharetra ipsum, ac tristique eros. Mauris a luctus risus. Aliquam ut tortor ac est efficitur vulputate nec quis velit. Sed ultrices mattis tristique. Donec venenatis massa vitae leo egestas, id placerat lacus iaculis. Quisque mollis augue ut felis varius vestibulum. Pellentesque id nibh ut mi pulvinar mollis. Donec nec lacus tortor. In tincidunt lorem in ante placerat maximus quis id diam. Sed tristique neque sed metus pulvinar, non accumsan arcu feugiat. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
#
# Donec cursus, ligula eu ornare gravida, eros justo maximus est, non eleifend arcu tellus vel tortor. Morbi finibus nunc in egestas semper. Curabitur sed elit at dolor tincidunt rhoncus. Duis non leo dapibus, blandit nunc in, dictum risus. Vestibulum in venenatis leo. Etiam tristique, lorem ut vehicula euismod, elit ante laoreet elit, eget sodales diam eros ac justo. Vivamus eleifend congue augue ornare sagittis.
#
# Suspendisse interdum auctor odio in feugiat. Cras eget varius metus, eget lobortis leo. Donec suscipit ligula sed nunc elementum molestie. Pellentesque lorem augue, malesuada eu iaculis id, volutpat a diam. Nullam ac accumsan orci. Morbi vulputate nibh tortor, ac lobortis sapien venenatis sit amet. Sed malesuada interdum pretium. Nulla efficitur augue sapien. Praesent efficitur justo ac tempor iaculis. In tempus bibendum tellus, at mattis lorem posuere sit amet. Mauris imperdiet magna mi, nec imperdiet nunc egestas in.
#
# Mauris finibus bibendum felis sed egestas. Donec eu suscipit lorem. Sed ligula orci, gravida sed ipsum vel, consectetur blandit quam. Vivamus facilisis, sapien at pretium dapibus, eros lacus mattis nibh, sit amet rhoncus justo dolor nec massa. Vivamus rhoncus eget ipsum sed ullamcorper. Pellentesque vitae enim at justo placerat condimentum. Phasellus porttitor ante ac purus imperdiet, in tempus urna condimentum. Nulla in elit vitae metus lobortis eleifend eget nec mi. Vestibulum egestas ex tempus, dapibus augue in, imperdiet dui. Aenean at sollicitudin quam.
#
# Maecenas sem sem, egestas pellentesque augue vel, euismod lobortis metus. Vestibulum accumsan turpis nibh, in congue enim iaculis quis. Nunc lacinia nibh vehicula sollicitudin ultrices. Proin augue tortor, vestibulum in porttitor ut, convallis in erat. Nullam magna est, mattis id turpis sit amet, convallis rutrum arcu. Nam efficitur bibendum semper. Proin in finibus massa. Nulla facilisi.
#
# Vivamus diam metus, volutpat et pharetra ac, commodo tempor sapien. Aliquam finibus ex leo, eget tempus ante fermentum in. Phasellus pellentesque ligula id libero iaculis, ut tempus orci eleifend. In nec rhoncus purus. Aliquam eget maximus diam, dictum lacinia sem. Aenean ante arcu, fermentum in blandit eget, fringilla eu lorem. Fusce ut commodo risus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam venenatis vel est vel facilisis. Ut rutrum eget erat et aliquam. Sed non nulla bibendum, sodales risus sit amet, commodo velit. Nam sit amet auctor arcu. Nam nunc est, faucibus at velit ut, blandit vulputate massa.
#
# Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nullam iaculis laoreet urna in varius. Nulla efficitur felis ut lorem facilisis auctor. Sed quam mauris, commodo nec imperdiet sed, elementum mollis libero. Suspendisse convallis, risus eu commodo lacinia, elit magna ornare tellus, at porttitor sem dui non lorem. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse potenti.
#
# Ut ultrices non nunc in ullamcorper. Mauris metus tellus, placerat nec leo sed, laoreet consectetur dui. Pellentesque molestie maximus mauris eget vestibulum. Nullam eu aliquam dolor, quis porttitor leo. Mauris sed scelerisque sem. Mauris eu erat tortor. Phasellus ut lacinia turpis. Aliquam sit amet urna iaculis, condimentum enim quis, dictum velit. Integer pretium dui tellus, scelerisque placerat enim fermentum ac. Suspendisse in mi in enim porta rhoncus. Morbi laoreet dui vel dignissim eleifend. Vivamus ut lacinia augue. Ut nisl augue, lacinia vel cursus et, ornare eget ex. Aliquam sed orci porttitor, interdum neque eget, finibus magna. Vestibulum dapibus posuere mi ut pretium.
#
# Vestibulum gravida vel elit vel rhoncus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed commodo fermentum quam, quis porttitor nunc elementum sit amet. Pellentesque non auctor lacus, id tempus diam. Suspendisse ut lacinia diam. In hac habitasse platea dictumst. Suspendisse potenti. Suspendisse potenti. Cras nunc ex, egestas a purus vel, convallis luctus quam. Etiam auctor nulla libero, et suscipit ex convallis eget. Sed sit amet odio cursus tortor dictum auctor in id urna. Pellentesque dapibus ante eget quam luctus rhoncus. Vestibulum hendrerit nisl nec erat congue ultrices.
#
# Nulla facilisi. Praesent interdum metus at enim lacinia, eget egestas leo volutpat. Vivamus semper turpis sed libero sollicitudin, sit amet viverra mi mollis. Phasellus efficitur ante risus, ut vulputate lectus suscipit nec. Donec nec metus est. Duis tempor aliquam lacus vitae pharetra. Morbi in eros nec quam pharetra auctor. Nulla eget orci iaculis turpis sodales accumsan. Nulla facilisi.
#
# Nunc et libero massa. Curabitur pretium, arcu quis faucibus fermentum, sem purus finibus erat, sit amet condimentum tortor tortor ac leo. Aenean lacinia venenatis enim a sagittis. Vivamus mattis, metus eget elementum faucibus, justo felis pulvinar nulla, vitae pretium elit lacus ac erat. Donec non egestas sem. Nulla laoreet nulla tincidunt, bibendum nisi fringilla, imperdiet purus. Sed faucibus lacus ut sodales fermentum. Proin gravida commodo erat id sodales. Vestibulum ut ante lobortis, finibus eros a, tempor dolor. Sed ultrices enim sit amet ultrices pellentesque. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Integer nec risus sagittis, pharetra purus a, tincidunt ante. Quisque pellentesque dolor non tempus placerat. Fusce sit amet aliquam neque, vel ullamcorper ipsum.
#
# In sollicitudin lacus sit amet metus feugiat, eu porttitor massa consectetur. Cras interdum justo ut aliquet commodo. Proin vitae mi quis mauris porta consectetur in et augue. Nunc suscipit urna ac egestas blandit. Curabitur odio quam, consequat sed mauris sit amet, dignissim maximus urna. Suspendisse sagittis felis eu suscipit faucibus. Nam convallis viverra tincidunt. Quisque maximus vehicula purus a posuere. Suspendisse porttitor, ligula et mollis vulputate, justo dui interdum sapien, at sodales arcu lectus ut ipsum. Nulla tempus vestibulum metus, non pretium sem dictum eu. Proin ac nisl a purus feugiat tincidunt quis vitae velit. Donec imperdiet iaculis erat, at convallis lorem imperdiet tempus.
#
# Ut dolor dolor, posuere eget ligula eget, pharetra pharetra ligula. Sed lacinia metus vel est mollis lobortis. Morbi nisl diam, pretium in ex vel, molestie lobortis mauris. Nam non dui porta, rutrum neque sed, tempus orci. Fusce efficitur sit amet sem nec congue. Aliquam tempor, tellus sit amet facilisis vestibulum, felis urna posuere lectus, sit amet dapibus tortor nisl nec neque. Curabitur ac arcu ex. Sed accumsan enim non fermentum maximus. Aliquam fermentum diam non justo faucibus, sed faucibus sem semper. Cras rhoncus enim sed mollis lacinia. Maecenas sagittis ullamcorper tristique. Quisque ut nisl suscipit, pretium nisl at, ullamcorper mauris. Duis sit amet purus maximus neque imperdiet efficitur. Sed dictum lacus ac mi pharetra posuere.
#
# Etiam sed purus non libero semper condimentum et nec ipsum. Phasellus vitae sapien nunc. Maecenas egestas ligula eu mauris rhoncus, id finibus dolor interdum. Suspendisse non sagittis orci, at consequat neque. Proin nec commodo dui. Cras vel massa augue. Proin semper nisi eget interdum vestibulum. In hac habitasse platea dictumst. Phasellus venenatis, diam vel commodo convallis, lacus enim congue odio, sit amet varius odio eros vitae mi. Donec blandit erat vel velit semper, ut rutrum erat laoreet. Curabitur sit amet pulvinar turpis. Maecenas enim sem, commodo consectetur ex vel, lacinia tempor justo. Integer id eleifend purus, vitae scelerisque dui. Maecenas at massa efficitur, suscipit erat vel, vehicula sapien.
#
# Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Vestibulum feugiat ac ante sed vestibulum. Suspendisse sit amet interdum leo. Ut vel libero ac nibh blandit dignissim vel ut ipsum. Nam enim magna, auctor ut risus in, ultrices ultrices turpis. Morbi commodo lectus tellus, vitae eleifend odio ultrices eget. Nunc sed dui leo. Integer in metus ac erat semper interdum vitae in felis. Nam tempor eleifend magna ut accumsan. In consequat purus purus, nec cursus mi facilisis vel. Cras convallis, quam eu finibus egestas, massa mi blandit felis, ac consequat massa dolor quis lectus. In rutrum dapibus lacinia. Nunc ut tempor quam. Phasellus vitae urna vitae justo laoreet pharetra.
#
# Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin lorem erat, ornare ut congue in, commodo vel purus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin elementum, est sed accumsan condimentum, leo ante porttitor lacus, non feugiat lacus urna vitae nisl. Suspendisse blandit tortor dui, eu ullamcorper tellus fermentum sed. Mauris eu malesuada quam. Cras vestibulum mauris ac odio faucibus ornare. Sed aliquet lectus a rhoncus tincidunt. Pellentesque vitae leo quam. Suspendisse non aliquet nibh.
#
# Morbi sit amet metus aliquam, gravida libero id, imperdiet urna. Sed placerat tincidunt augue, eu rutrum turpis rhoncus eget. Praesent quis luctus lorem. Duis velit tellus, pharetra non dui commodo, ornare tincidunt ante. Mauris nec mauris nec massa ultricies eleifend nec at lorem. Nam malesuada pharetra ante, ac ultricies augue. Phasellus aliquam tempor mollis. Nunc varius, tortor eu ornare venenatis, ipsum elit porttitor mi, vitae dignissim sapien tellus vitae ipsum. Aenean euismod, dolor et vehicula euismod, neque ante convallis ante, quis tristique enim augue at velit.
#
# Curabitur risus justo, cursus at dolor ac, iaculis facilisis sapien. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse mattis ex a ullamcorper placerat. Vivamus sagittis enim tellus, eget congue sapien molestie sit amet. Vestibulum commodo non libero non vehicula. Proin pharetra arcu et augue vestibulum imperdiet. Donec eu ipsum et neque sollicitudin luctus. Etiam tempor erat ac enim vehicula congue.
#
# Fusce non fermentum ligula, id egestas ante. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Ut aliquam neque in metus luctus, sit amet dapibus metus scelerisque. Phasellus eu ultrices lorem. Maecenas rhoncus suscipit consequat. Fusce non eleifend dui. Quisque et nisl in turpis volutpat ultricies. Mauris consequat pharetra diam eu lacinia. Pellentesque auctor leo at ligula egestas tincidunt. Duis vitae ornare lectus. Pellentesque sit amet finibus urna. Aenean in lacus turpis. Mauris bibendum consectetur mauris iaculis consequat. Sed ultricies id eros in pulvinar. Nullam vulputate, sapien non pulvinar sagittis, enim odio tincidunt justo, et ullamcorper nunc leo et massa.
#
# Nulla nec libero vel augue molestie sodales. Ut in lectus aliquet dui condimentum lobortis. Sed sit amet mi sed velit faucibus elementum et nec leo. Vivamus rutrum, erat non egestas varius, lorem sapien facilisis nisl, eu pellentesque lorem nibh et nisl. Etiam faucibus aliquet nulla at mollis. Proin id accumsan lorem. Praesent placerat odio nulla, feugiat rutrum justo sodales sit amet. Vivamus non feugiat mauris. Nullam id ipsum id ex tempus gravida in quis velit. Nam at pretium mi. Vestibulum fermentum consectetur leo, vel ultricies lectus imperdiet non. Vestibulum faucibus ante mauris. Ut lacinia ultrices fermentum. Donec et mollis leo.
#
# Duis a est urna. Nullam aliquet ullamcorper libero. Maecenas faucibus lectus et enim interdum, congue viverra nibh tempus. Fusce ultricies, sapien at consequat gravida, nulla orci pulvinar ipsum, nec ornare turpis mi nec eros. Fusce iaculis augue molestie eleifend tincidunt. Quisque efficitur porttitor augue maximus viverra. Nam sit amet risus sit amet ipsum aliquet aliquam eget pulvinar quam. Nullam scelerisque orci orci. Nulla tempor pulvinar massa, et egestas velit placerat sed. Integer sit amet laoreet quam.
#
# Nunc at eleifend arcu, nec rutrum libero. Aenean sagittis tempor magna in placerat. Ut viverra nibh eleifend scelerisque rhoncus. Phasellus fringilla quam sollicitudin velit viverra commodo. Proin tempor, nisi at vulputate placerat, nibh odio vestibulum arcu, non imperdiet felis lorem quis est. Nunc quis lobortis mauris. Sed ultricies quam mi, a laoreet metus laoreet vitae. Suspendisse maximus felis nec massa sollicitudin, nec luctus mauris dictum. Aliquam fermentum enim ac justo tempus, eget luctus nisi venenatis. Praesent interdum risus eu mi viverra, pharetra maximus dui pharetra. Proin ut metus ligula. Aenean quis sem a nibh hendrerit luctus sit amet ac nisi. Nunc at venenatis lorem, vel pharetra quam. In commodo porta massa, eu porttitor lorem.
#
# Maecenas eget eleifend lectus. Maecenas odio augue, ornare nec tortor vel, vulputate condimentum lectus. Fusce a luctus nisl. Suspendisse vulputate, ante in porttitor dignissim, nisi nisl pellentesque nulla, quis accumsan odio mi vitae nisl. Aenean porttitor, nisl et feugiat consectetur, nunc enim mollis lorem, egestas sollicitudin nibh justo sit amet lacus. Curabitur eget elit augue. Sed egestas felis eu velit lacinia ultricies.
#
# Donec ac porttitor urna. Morbi lacus turpis, vestibulum sed nisl et, facilisis pulvinar nulla. Nullam imperdiet ipsum quis felis pharetra, vitae condimentum massa placerat. Integer vehicula pharetra interdum. Etiam efficitur suscipit dolor, sit amet sodales lectus mattis sit amet. Quisque vel lacinia nunc. Vestibulum non arcu id magna ornare elementum. Maecenas varius faucibus lectus id varius. Phasellus porta, sapien ut maximus imperdiet, mi felis lobortis justo, vel aliquet ipsum dui non diam. Nulla vestibulum elementum diam, eu ultrices sapien vulputate efficitur. Vestibulum in velit a purus aliquet varius sit amet molestie enim.
#
# Cras id nisl porta, auctor nisi eu, pellentesque lacus. Maecenas dapibus neque sed metus laoreet gravida. Mauris rhoncus tempor commodo. Sed pretium metus eu tincidunt hendrerit. Quisque sit amet velit ut nunc laoreet fermentum a a quam. Curabitur aliquam quam quis mauris ultricies, at eleifend ligula convallis. Duis in elit nec felis vulputate feugiat. Aenean nec libero ligula. Nam interdum libero et mauris consectetur vulputate. Vivamus gravida, nibh vel lobortis elementum, ante erat ultricies diam, vitae faucibus augue odio non felis. Pellentesque ultrices ullamcorper leo luctus lobortis. Nunc eu consequat eros. Proin ut finibus neque, sit amet ullamcorper odio.
#
# In ultrices ultricies libero nec iaculis. Sed a dolor a eros laoreet bibendum non vitae lorem. Sed gravida elementum mi eu feugiat. Vivamus quis malesuada nibh. Phasellus sodales elit dignissim, placerat risus eget, dictum orci. Mauris euismod ante ut lectus semper sodales. Ut iaculis volutpat massa et rhoncus. Integer eget mattis leo. Etiam vitae sodales ipsum. Maecenas dignissim, dolor vel euismod vestibulum, nibh tortor venenatis mauris, vel consequat erat massa in mauris. Integer iaculis, velit at congue porta, odio quam molestie massa, id vehicula tellus dolor vel nibh. Pellentesque gravida nunc eget nisi interdum fringilla. Duis id quam non ante posuere egestas ut id elit. Donec volutpat nibh id risus porttitor, nec egestas sem lobortis.
#
# Donec at condimentum leo. Fusce fringilla vulputate efficitur. In nec semper elit. Nullam mauris lacus, efficitur vel rhoncus id, aliquet at est. Maecenas eget euismod elit. Nulla arcu mauris, pellentesque at rhoncus non, sodales ac libero. Pellentesque ipsum tellus, gravida et lacinia ut, posuere vel nulla. Vivamus convallis sit amet sem quis ultricies. Duis lacinia nisl enim, in commodo ipsum hendrerit id.
#
# Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut mi est, consectetur in luctus sit amet, molestie a tortor. Aenean at nisi ac nisl consequat molestie. Morbi consectetur eros ac suscipit egestas. Fusce interdum ex accumsan consequat porta. Nullam dignissim, nibh sit amet sollicitudin ornare, sapien mauris varius nisl, non efficitur lectus purus vel sem. Maecenas id tortor ut velit aliquam fermentum at eu turpis. Curabitur at dapibus erat. Etiam et dui at felis volutpat pharetra vel vel magna. Pellentesque at efficitur orci, eu feugiat ligula. Cras dictum facilisis pellentesque. Vivamus vehicula iaculis dui sed accumsan. Vestibulum ut odio tellus. Sed ornare eros vel pretium tincidunt.
#
# Nunc convallis, libero ut suscipit ultrices, purus lorem scelerisque tellus, vitae dictum ligula mauris vitae lacus. Etiam consectetur imperdiet tempor. Fusce eu volutpat neque, ut lobortis nunc. Nulla ornare, felis nec iaculis accumsan, felis eros suscipit risus, id consequat ex diam at diam. Morbi id urna at nisi ultrices condimentum. Nulla ut feugiat massa, eu efficitur nunc. Aliquam mollis enim sapien, nec luctus est porttitor in. Nullam condimentum dolor lorem, eu blandit tortor condimentum in. Nunc varius quam eget justo consequat porttitor. Maecenas ullamcorper blandit urna ut fringilla. Sed pulvinar ullamcorper porttitor. Fusce urna ipsum, tempus at diam ut, gravida posuere ante. Nullam non risus et tortor tincidunt congue. Maecenas ac orci varius, finibus purus at, tincidunt lacus. Proin quis neque sed elit scelerisque posuere.
#
# Phasellus fermentum eleifend dignissim. Vestibulum ut purus malesuada, tristique libero sed, blandit mi. Maecenas a feugiat est, imperdiet bibendum nisi. Phasellus blandit massa id urna malesuada viverra. Fusce sed euismod velit. Proin in lacus et eros tempor ullamcorper. Suspendisse auctor elementum ornare. Nulla mauris nisl, commodo at maximus sit amet, bibendum sed erat.
#
# Curabitur sollicitudin elementum lectus eu pharetra. Suspendisse eros ex, maximus ac nibh a, pellentesque ornare tortor. Quisque quis urna mi. Ut turpis turpis, varius vitae cursus interdum, tincidunt sodales mauris. Donec luctus felis nec ligula ullamcorper, varius molestie massa malesuada. Nullam cursus neque consequat turpis mollis, a interdum tortor laoreet. In in felis velit. Suspendisse cursus lacinia tincidunt. Donec rutrum ultricies velit ut volutpat. Sed auctor feugiat arcu eget molestie. Nam eu augue volutpat, gravida leo non, fermentum nunc. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Quisque eget laoreet sapien.
#
# Donec sit amet porttitor est, vel rutrum lacus. Aenean nec imperdiet mi. Pellentesque felis sem, aliquet a sapien vitae, mattis posuere turpis. Phasellus ultrices eu lectus ac vulputate. Donec eleifend turpis euismod enim fermentum, a ultricies tortor egestas. Curabitur tempus ligula vitae enim pellentesque facilisis. Etiam ac varius nulla, eu maximus neque. Mauris arcu nulla, convallis nec euismod at, varius ac purus. Phasellus viverra a elit quis dapibus. Etiam eleifend urna et neque facilisis tempor. Duis sed nunc non nisl elementum luctus at eget augue.
#
# Donec lectus velit, pellentesque eu mauris nec, sollicitudin fermentum orci. Nulla ornare interdum suscipit. Nullam bibendum porta velit nec blandit. Aliquam orci lorem, iaculis vel scelerisque a, suscipit et quam. Ut orci eros, rhoncus ac dui vitae, sagittis aliquet ante. Fusce eu ligula tempus diam aliquet venenatis. Maecenas dictum, justo et pulvinar vestibulum, dui risus scelerisque purus, quis dapibus libero diam nec libero. Vivamus laoreet urna vitae mi tincidunt tempus. Vestibulum nisl ligula, interdum in nisi ac, faucibus luctus ipsum. Vestibulum varius lorem non odio tempus malesuada. Vestibulum dapibus mauris risus.
#
# Cras molestie elementum ex, eget venenatis ipsum porta vel. Aenean et enim aliquam, tincidunt elit ut, tincidunt urna. In scelerisque lacinia neque, volutpat aliquet turpis efficitur vel. Nam imperdiet viverra turpis at fringilla. Praesent molestie lectus neque, quis tempus eros interdum sit amet. Duis at lectus viverra, feugiat dolor eget, varius velit. Ut tincidunt ante neque, a accumsan metus pretium vel. Mauris tellus odio, lacinia eget lacus sit amet, facilisis interdum justo. Sed porta erat nec convallis laoreet. Fusce nec maximus nunc. Donec vel eros nulla. Donec egestas purus ut dignissim fermentum. In varius dictum diam eu accumsan. Suspendisse aliquam vel diam a eleifend.
#
# Mauris placerat sollicitudin faucibus. In at dui ultrices, suscipit arcu blandit, vulputate nisl. Nulla elit sapien, varius a erat non, placerat suscipit odio. Suspendisse sit amet est metus. Sed at dignissim dui. Cras nec turpis vel metus pulvinar varius. Sed non luctus arcu.
#
# Ut vestibulum mi et lacus fringilla tristique. Sed sagittis dapibus diam, quis efficitur nunc maximus vitae. Nulla facilisi. Sed et ornare felis. Etiam congue ligula vitae auctor iaculis. Duis pretium fermentum nisi, vitae congue dui tempus eu. Nulla ac facilisis velit. Maecenas vel purus enim. Sed ut orci neque. Donec tempor odio ac ligula efficitur pulvinar. Phasellus urna orci, tempus et eleifend eu, laoreet a nibh. Vestibulum quis augue sit amet mauris aliquet consequat at eget enim.
#
# Praesent posuere nisi tristique diam vehicula vulputate. Vivamus euismod pulvinar ornare. Cras lacinia nisl ut aliquam semper. Duis ultrices malesuada sem, non aliquet mi pulvinar sit amet. Nunc non condimentum nunc, sit amet rhoncus eros. Ut eleifend ante sit amet scelerisque tempor. Aenean facilisis lectus at lacus finibus vestibulum. Fusce rhoncus tellus sit amet dolor maximus, nec rhoncus sem molestie.
#
# Quisque non ex sem. Vestibulum id metus finibus, porttitor est hendrerit, facilisis enim. Nullam sollicitudin nibh sit amet justo porta viverra iaculis eget turpis. Nulla interdum dictum ipsum. Morbi mauris ligula, dictum a ultricies in, iaculis non erat. Proin vitae neque a purus pellentesque ultricies. Suspendisse potenti. In vehicula condimentum condimentum. Phasellus eu dolor leo.
#
# Ut sed auctor lacus. Vestibulum porttitor dignissim nisl eu sollicitudin. Donec tempor finibus sem vel venenatis. Aenean sit amet cursus nisi. In dapibus consequat magna, non mattis ligula porta et. Nunc mollis quam eu metus mollis semper. Vivamus tempus nunc justo, quis dapibus massa rhoncus in. Aenean quis tincidunt eros. Nam eros massa, hendrerit ut commodo hendrerit, semper sed leo. Aliquam erat volutpat. Sed eget justo ut quam vehicula euismod. Etiam pellentesque diam feugiat mi finibus semper. Ut consectetur ac ante et congue.
#
# Maecenas egestas velit tincidunt massa dictum consequat. Pellentesque sed luctus odio, consequat laoreet ligula. Vivamus ut eleifend elit, vitae convallis enim. Maecenas vel mauris in arcu lacinia eleifend non non mi. Aenean leo lorem, tincidunt varius porta mattis, iaculis sed urna. Aenean ac dui ut erat aliquet tempor in non nibh. Nullam quis lacinia risus. Etiam tincidunt vulputate tincidunt.
#
# Sed sem felis, eleifend in ante quis, maximus lacinia elit. Proin pulvinar quam odio, eget facilisis lectus luctus quis. Donec semper mi vitae nunc sagittis accumsan. Morbi lobortis porta tortor sed tempus. Mauris eleifend facilisis quam quis faucibus. Duis congue mauris a justo pretium posuere. Integer consectetur ligula ut cursus facilisis.
#
# Suspendisse potenti. Mauris eu interdum quam, a accumsan lectus. Cras pharetra elementum nibh non egestas. Donec sagittis elit sed ante ultricies, et porttitor mauris tristique. Nulla ac tellus turpis. Ut cursus nunc ut lectus pellentesque gravida. In pharetra risus nec magna porta, ac tempor odio cursus.
#
# Maecenas erat ante, hendrerit eu turpis nec, imperdiet aliquet sapien. Maecenas sit amet massa tellus. Donec imperdiet risus id enim pretium, nec tincidunt est sollicitudin. Sed accumsan consequat nunc sed pharetra. Sed quis dui arcu. Duis dignissim nisi ante, et luctus nibh congue sed. Morbi quis erat in urna maximus auctor. Nullam faucibus, dui sed porttitor maximus, lacus arcu volutpat orci, a fringilla nunc nibh sed ligula. Aliquam erat volutpat. Pellentesque volutpat, nibh id pellentesque pretium, elit metus viverra mi, non gravida elit dui sit amet diam. Duis imperdiet mi auctor lectus molestie tempor. Praesent molestie est a nibh efficitur, et vehicula lacus imperdiet. Phasellus vulputate erat nec erat elementum, id dapibus nisi elementum. Nunc a ante diam. Sed feugiat, turpis quis pellentesque ultrices, purus orci feugiat arcu, at sagittis ipsum ex ut leo.
#
# Morbi at eros quis diam volutpat mollis quis eu augue. Etiam fermentum tellus sodales, porttitor justo ac, hendrerit sem. Cras posuere, nulla et vehicula accumsan, sapien leo imperdiet massa, sagittis blandit purus justo non magna. Nullam sit amet eros eget lacus rhoncus finibus. Phasellus egestas pellentesque accumsan. Pellentesque ullamcorper viverra mauris, at tempus augue hendrerit ac. Duis pulvinar, massa ac sodales porttitor, tellus ante blandit odio, nec tincidunt sem odio hendrerit erat. Sed tincidunt, turpis sed lobortis condimentum, ex leo pellentesque lectus, quis placerat mi magna quis neque. Donec tempus purus est, ut scelerisque ex dapibus vel. Proin vel placerat sapien, ut gravida enim. Etiam mi eros, sagittis ut enim in, dignissim suscipit nisl.
#
# Duis bibendum luctus ex, ullamcorper pretium felis condimentum iaculis. Donec placerat arcu vel leo luctus, sed gravida turpis mattis. Vestibulum id pellentesque turpis, aliquet pharetra dui. Praesent tempor urna tempor lorem sodales, sit amet tempus est faucibus. Donec laoreet convallis maximus. Aliquam dictum sapien diam, ac tempor orci lacinia non. Integer eu ullamcorper nulla. Mauris ut interdum magna. Donec sed auctor tortor. Aenean pharetra eu odio in aliquam. Maecenas finibus nisi sed laoreet tristique. Aenean a volutpat nulla.
#
# Ut ut auctor mauris. Sed sed porta nulla, quis facilisis nulla. Donec imperdiet in ante vitae ultrices. Quisque congue libero in nisi eleifend, ac congue nisl ornare. Nam egestas, magna a maximus lobortis, nibh est egestas dolor, sit amet faucibus elit arcu vel eros. Pellentesque eu ipsum a odio porta fringilla vel vel nisl. Vestibulum commodo mauris vitae eros tempor condimentum. Vivamus tincidunt accumsan augue sit amet consectetur.
#
# Cras rutrum, ligula at blandit efficitur, lacus odio feugiat magna, vitae sodales urna ex in nisl. Nullam mollis tincidunt metus et blandit. Sed ac mauris quis tortor pretium pulvinar. Curabitur neque felis, congue sit amet nisi quis, blandit pulvinar urna. Donec volutpat arcu quis euismod luctus. Nulla facilisi. Nunc et gravida turpis. Nunc in risus sed leo feugiat volutpat. Praesent placerat sit amet arcu non pretium. Sed lobortis venenatis mattis.
#
# Praesent aliquam quis sapien in blandit. Sed pharetra a nulla eget tincidunt. Nam ligula quam, malesuada lacinia lacus sed, maximus bibendum orci. Aenean magna velit, egestas id lacinia eget, venenatis eu magna. Nunc finibus est suscipit enim laoreet elementum. In non tincidunt sem, non viverra urna. Proin et blandit neque, at vestibulum mauris. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse interdum interdum orci iaculis vulputate. Nullam ultricies ligula at justo gravida suscipit. Proin eget metus lobortis, laoreet magna et, ultricies lacus. Phasellus tempus purus et facilisis semper. Donec pulvinar, nibh ultricies gravida efficitur, est purus porttitor sapien, dapibus auctor ex arcu et libero. Morbi interdum, odio sed mattis lobortis, arcu arcu consectetur magna, bibendum fermentum augue lectus ut metus.
#
# Curabitur ut scelerisque metus. Vivamus elit risus, facilisis ut sem in, efficitur accumsan neque. Fusce a porttitor dolor. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Quisque vestibulum hendrerit risus, quis elementum dolor gravida nec. Ut non metus arcu. Cras condimentum lacus tempus justo semper egestas. Ut nisi elit, dapibus commodo sem ac, commodo facilisis eros. Vestibulum placerat massa nec erat pellentesque, quis auctor ex egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin ex erat, imperdiet quis feugiat at, finibus ac nisl. Nulla mattis commodo nulla.
#
# Nullam a varius augue. Donec ac enim consectetur, tristique orci ac, tempus purus. Donec vitae vestibulum odio, vitae pellentesque est. Aenean sagittis eros quis tellus auctor, nec commodo diam cursus. Proin luctus quis augue non cursus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse sit amet condimentum risus. Maecenas vestibulum, lectus in eleifend tincidunt, ipsum massa lobortis enim, ac venenatis enim purus quis quam. Nulla vel fringilla dui. Quisque volutpat lobortis arcu, et semper felis congue vel. Quisque accumsan egestas justo egestas bibendum. Phasellus tristique felis ligula, non vehicula leo tristique eu. Aenean tempus sem turpis, ac tincidunt eros egestas ut. In hac habitasse platea dictumst. Pellentesque pulvinar, urna id rhoncus luctus, nunc ex viverra eros, in accumsan ligula mauris in massa. Nam lobortis mauris consequat gravida mattis.
#
# Sed mattis convallis velit egestas tincidunt. Curabitur malesuada tincidunt mi non iaculis. Nullam pulvinar tempus tempor. Nullam pharetra molestie risus et dictum. Curabitur tristique pretium libero ut venenatis. Nulla nec scelerisque metus. Vivamus quis nunc ut leo condimentum elementum at et ipsum. In pretium erat et massa elementum mattis. Maecenas quis ante a mi varius efficitur.
#
# Proin tempus mauris purus, non ultrices dui dignissim vel. Pellentesque tempor accumsan tempor. Donec rhoncus arcu at magna mattis, ut molestie orci rhoncus. Ut tristique nisi a diam eleifend ullamcorper. Praesent varius, arcu sagittis dapibus auctor, purus leo faucibus diam, sed malesuada ante turpis eu velit. Suspendisse imperdiet, sapien non eleifend lobortis, est massa iaculis risus, nec aliquam ipsum velit eu erat. Duis vel rhoncus dolor. Nunc non interdum tortor. Nulla non diam sapien. Quisque fermentum lobortis tincidunt. Vivamus et accumsan orci. Nam fringilla, tellus ac convallis accumsan, metus libero egestas mauris, et auctor est felis eu sem. Ut lacus libero, aliquet eu nisi eu, fringilla cursus ligula. Nunc eu lectus nec augue varius fringilla sed id dui. Fusce ac sem in lectus ornare ullamcorper eu ut leo.
#
# Integer blandit finibus vulputate. Duis nibh lorem, egestas sed turpis nec, sagittis sodales mi. Suspendisse at erat urna. Pellentesque a euismod ligula. Nunc rutrum nisi a nisl pulvinar, vitae tempor lacus congue. Praesent turpis eros, accumsan in pellentesque vel, varius sed est. Curabitur sit amet pretium metus.
#
# Cras molestie euismod lorem at faucibus. Donec consectetur, ipsum non maximus ullamcorper, elit tellus tristique arcu, ut molestie neque libero iaculis est. Aliquam at rhoncus quam. Sed magna ipsum, dapibus ac leo vitae, euismod ultricies turpis. Duis euismod in dui ut tempor. Praesent euismod risus sit amet pulvinar pellentesque. Praesent a nisl pulvinar, fringilla erat at, pharetra magna. Vivamus ut blandit dolor. Nunc venenatis ligula erat, non porttitor leo scelerisque at. In eu ullamcorper diam. Curabitur sed metus turpis. Nam vestibulum sapien justo, eget elementum arcu blandit nec. Nunc finibus mi ultrices luctus facilisis. Nullam gravida, sem ac dapibus laoreet, velit lacus vestibulum sem, nec molestie nunc risus sit amet mi. Quisque magna erat, porta eu tempor commodo, semper ac quam. Integer augue massa, iaculis eu vehicula a, lobortis vitae lectus.
#
# Praesent volutpat porta pretium. Nulla pellentesque nunc quis ligula semper congue. Proin tincidunt leo ut orci malesuada dignissim nec sed enim. Integer arcu dolor, egestas sit amet consequat sed, finibus vitae sem. Phasellus ullamcorper tincidunt erat. Aliquam rhoncus odio sit amet nunc molestie, eget tincidunt nunc luctus. Cras venenatis rutrum ante eget maximus.
#
# Praesent tempus pellentesque augue, ut consectetur orci dignissim at. Vestibulum consectetur ac elit condimentum vulputate. Donec auctor consequat rutrum. Etiam ut risus tincidunt, faucibus lacus et, vestibulum dui. Mauris suscipit justo in purus dignissim, sit amet placerat purus ultricies. Nullam sagittis eros in scelerisque vehicula. Phasellus lobortis dolor quis interdum scelerisque. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nullam in tellus vel velit aliquam molestie sed non turpis.
#
# Suspendisse et mi suscipit, dignissim mi mollis, tincidunt sapien. Aliquam elit felis, dapibus at lobortis porta, tincidunt in augue. Integer vulputate ligula vitae ipsum pretium faucibus. Donec vestibulum mauris at enim cursus, vel placerat ipsum mollis. Vestibulum vestibulum vitae odio vitae ultricies. Etiam varius tempus tincidunt. Integer imperdiet vulputate lacus vitae lobortis. Duis dapibus, libero sit amet euismod vulputate, libero massa tempor tortor, at imperdiet lacus sapien id leo. Nulla cursus, nunc vitae dictum cursus, tellus eros efficitur libero, et tempor mauris nisl a lacus.
#
# Nam laoreet viverra pellentesque. Cras quam elit, cursus nec imperdiet nec, blandit sed felis. Cras elementum pulvinar ante, in mattis lectus placerat ut. Maecenas molestie libero tellus, vitae pretium eros lobortis at. Aliquam in accumsan nunc, semper pharetra mauris. Quisque at augue dolor. Phasellus mauris diam, sodales id viverra vel, tristique quis neque. Donec aliquet felis sit amet laoreet ultricies. Donec imperdiet tempor nunc vitae convallis. Nunc fringilla nisl quis felis consequat, a interdum ex dapibus. Etiam laoreet luctus est, eget blandit enim congue vestibulum. Curabitur dictum egestas ipsum, id consectetur odio facilisis vel. Nunc nulla felis, ultrices eget faucibus in, porta vitae tortor. Quisque volutpat purus diam, sed scelerisque enim posuere a. Pellentesque faucibus nunc vitae lacus tempus dictum. Integer vulputate diam tortor, ac porttitor sapien mattis sed.
#
# Aliquam varius dolor id risus tincidunt ullamcorper. Curabitur aliquet vestibulum euismod. Aliquam semper eget metus in volutpat. Curabitur tincidunt, libero sed pharetra porttitor, mi neque sodales augue, a luctus metus elit sit amet sapien. Ut et ultrices est. Nam egestas turpis sit amet risus pharetra, vitae efficitur neque pellentesque. Donec commodo consectetur nisi, sit amet eleifend sapien lacinia vel. Mauris luctus auctor nisi eu finibus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Morbi id risus magna. Mauris eros purus, hendrerit nec mattis at, tincidunt id lacus. Nam sit amet tortor eu tortor faucibus maximus id non turpis. In et nulla nibh. Phasellus elementum est ut tortor cursus, porttitor imperdiet orci placerat. Proin mollis augue at semper faucibus. Morbi dolor erat, auctor vitae varius ac, congue vitae lacus.
#
# Phasellus iaculis venenatis lorem, non pellentesque justo ultricies mattis. Quisque hendrerit nisi sit amet magna porta efficitur. Fusce hendrerit risus id nunc posuere, eu faucibus purus eleifend. Curabitur sed hendrerit sapien. Duis sit amet nulla non massa tincidunt venenatis non sit amet neque. Cras tempor ullamcorper est, et imperdiet mi pellentesque quis. Duis ut laoreet elit, nec feugiat est. Phasellus sollicitudin, tellus in mattis dignissim, nisi magna suscipit eros, id tincidunt justo velit vel mauris. Proin sem eros, auctor sit amet mauris a, mattis mollis justo. Donec nisl dolor, lobortis sed pretium eu, venenatis eget velit. Quisque sed rhoncus lectus, vel scelerisque leo. Vivamus porta fringilla dui, vitae faucibus erat volutpat dignissim. Nam luctus sodales nisl, sed ullamcorper velit pharetra non. Duis facilisis consectetur augue sit amet condimentum. Curabitur risus orci, feugiat eget tincidunt sed, vulputate sit amet tortor.
#
# Phasellus nec turpis ex. Aliquam cursus ultricies luctus. Curabitur ornare lacinia nisl, eu vestibulum erat dictum in. Vivamus sagittis vehicula dolor, in dignissim velit iaculis vitae. Aliquam pulvinar metus eget ante varius rhoncus. Sed varius dolor velit, a laoreet mauris placerat eu. Curabitur a scelerisque nisl. Praesent eget facilisis mauris, quis suscipit eros. Ut nec egestas est. Mauris vehicula vitae lacus quis finibus. Nullam lorem eros, rhoncus eu lacinia vel, faucibus eget nisi. Donec luctus dolor varius lobortis egestas.
#
# Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque faucibus luctus diam sit amet tristique. Etiam pulvinar fermentum erat, vitae finibus dolor fermentum sed. Nullam vel magna aliquam, bibendum neque eu, accumsan nisl. Nulla nec tortor nibh. Mauris et interdum orci. Interdum et malesuada fames ac ante ipsum primis in faucibus. Integer cursus auctor diam eget dignissim. In vel leo vel urna pharetra mollis. Curabitur gravida nibh nec faucibus gravida. Aliquam nec placerat nisi. Mauris eros metus, porttitor sit amet interdum eu, tempor nec ligula. Nam et vehicula turpis. Cras rhoncus, enim sed eleifend interdum, ipsum erat iaculis arcu, eu dictum erat erat blandit nisl.
#
# Aenean fringilla nibh eget nisl mollis finibus. Vivamus rutrum blandit orci ac tristique. Sed vitae rhoncus leo. Donec dictum pretium libero, eget commodo ante condimentum aliquam. Duis in sem vitae turpis congue scelerisque vel tincidunt odio. Quisque auctor tempor ultrices. Sed facilisis nunc at varius iaculis.
#
# Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam vulputate nec lacus et ultricies. Mauris malesuada justo ut tellus pulvinar, ac tempor sem semper. Nunc volutpat ullamcorper pellentesque. Maecenas vel ullamcorper lorem. Curabitur interdum sed purus et vestibulum. Aenean auctor suscipit justo semper pulvinar. Nullam eleifend ipsum eu ullamcorper maximus. Phasellus a feugiat enim, et tempor lacus. Nullam egestas, massa eget consectetur dapibus, purus sapien fermentum neque, eget semper libero magna sed urna.
#
# Curabitur vitae sapien tempor, porttitor metus scelerisque, tincidunt purus. Quisque eu mi turpis. Vivamus in nunc malesuada, faucibus tellus eu, accumsan ante. Duis ut bibendum metus, a blandit lorem. Integer dictum mollis dictum. Quisque malesuada hendrerit faucibus. Nunc ac egestas dui. Sed ullamcorper quis tortor a mattis. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam tristique semper facilisis. Suspendisse vitae ornare magna. In laoreet, sapien eu accumsan finibus, tortor ex aliquet tellus, nec finibus leo justo at odio. Phasellus eget condimentum nisi. Mauris rutrum metus vestibulum vulputate tristique. Fusce a bibendum purus.
#
# Curabitur elementum in turpis id faucibus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Aliquam non leo sapien. Quisque accumsan sapien eu tincidunt condimentum. Mauris velit diam, ornare sit amet imperdiet sed, consectetur ut tellus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Curabitur gravida tincidunt felis, non laoreet est tempor vel. Integer turpis tortor, elementum vitae ipsum molestie, egestas posuere urna. Proin turpis risus, varius non mauris eleifend, hendrerit sodales sem. Pellentesque eget erat auctor diam interdum faucibus vel ut ligula. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
#
# Mauris auctor ullamcorper nibh sed efficitur. Suspendisse potenti. Proin imperdiet at urna non rutrum. Maecenas fermentum tortor non eros dictum iaculis. Nullam pulvinar augue sed laoreet porta. Nam porttitor egestas ligula eu mollis. Mauris id massa volutpat, volutpat metus eu, laoreet sapien.
#
# Sed eu interdum ipsum. Donec lorem justo, porta vitae tristique eget, tincidunt ut ex. Cras vel mauris arcu. Phasellus iaculis dui ut lorem posuere auctor. Suspendisse velit purus, pharetra at neque a, vestibulum feugiat leo. Praesent nunc eros, hendrerit sed quam vel, facilisis consectetur diam. Quisque sodales dignissim sapien, nec semper urna posuere a. In hac habitasse platea dictumst.
#
# Donec malesuada turpis nec ullamcorper iaculis. Praesent ac justo quis erat ornare vestibulum sodales non dui. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Cras in ipsum nec erat tristique imperdiet. Ut euismod sapien ac turpis luctus, nec sollicitudin turpis volutpat. Sed sed felis cursus lacus lacinia pretium. Quisque aliquet ligula nibh, quis tempor justo aliquam vitae. Aenean porttitor turpis ut consequat pulvinar. Donec vitae metus odio. Phasellus mattis nisi orci, sed fermentum odio tincidunt quis. Phasellus vel molestie metus, ut cursus quam.
#
# Quisque ullamcorper dignissim sem. Donec molestie eros eu porttitor fermentum. Etiam turpis felis, feugiat eget euismod ac, blandit vel sapien. Nullam congue ex ac lectus egestas, nec dapibus urna dictum. Donec eu ante rhoncus, viverra nulla quis, mattis enim. Ut semper urna at ullamcorper maximus. Donec condimentum purus et cursus pretium. Morbi at pulvinar nulla.
#
# Nunc in odio nec purus aliquam luctus in nec mi. Fusce elit justo, auctor et convallis ut, auctor at justo. Nullam sapien velit, gravida non nulla vel, facilisis molestie augue. Nullam viverra dui et ligula mollis consequat. Sed eu cursus nulla. Nunc aliquet ante at consectetur lacinia. Nam id metus ipsum. Sed nunc tellus, lobortis a varius nec, molestie quis mauris. Sed id ante maximus, pretium ante id, elementum sapien. Etiam finibus odio et nibh malesuada sagittis. Sed rhoncus, diam non mollis congue, sem leo vehicula ligula, lacinia fringilla mauris nibh nec diam. Praesent ac mauris et erat ornare cursus. Duis commodo imperdiet cursus. Nulla eget viverra mauris. Ut tempor elit eget nibh aliquet scelerisque.
#
# Donec consequat nisi ligula, ut fringilla lacus elementum at. Curabitur porttitor lacus neque, eu euismod neque eleifend id. Integer at pharetra tortor. Pellentesque bibendum malesuada ligula, a feugiat risus tempus sit amet. Phasellus ultrices ac odio a posuere. Aliquam erat volutpat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur in tellus eget massa aliquam convallis tristique nec est. Sed tortor mauris, faucibus quis varius et, efficitur sit amet eros. Sed ut lorem ultrices, scelerisque quam pulvinar, pulvinar mauris. Praesent a diam et metus condimentum auctor eu pretium lorem. Mauris lorem ex, vestibulum suscipit lacus nec, commodo porta felis. Maecenas cursus, tellus a lobortis blandit, ex lacus efficitur lectus, ut ultrices nunc purus vel felis. Praesent non mi tempor, bibendum mauris eu, rhoncus lorem. Sed consectetur sem non ipsum dictum pellentesque.
#
# Suspendisse potenti. Aliquam ut aliquam arcu. Donec finibus sem sem, vel accumsan risus rutrum nec. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis tempor suscipit nulla. Aenean mollis venenatis metus, ultricies gravida odio imperdiet sed. Maecenas nec nisl vel enim cursus iaculis sed ut risus. Fusce nec mattis neque.
#
# Integer eget odio ullamcorper, vulputate lectus nec, pellentesque nisl. Pellentesque sodales finibus mattis. Praesent eu purus imperdiet, tempor risus pretium, imperdiet neque. Nulla vestibulum leo eget justo ornare, sed sodales eros placerat. Donec accumsan neque nulla, sed ultrices quam eleifend nec. Suspendisse potenti. Curabitur lobortis faucibus ipsum et porttitor. Pellentesque porttitor vulputate pellentesque. Phasellus lacinia condimentum nulla a gravida. Maecenas interdum nulla est, in consequat enim consequat non. Nunc risus massa, convallis ac interdum in, aliquam eget augue. Nam libero nulla, cursus vel dictum ac, gravida et massa. Aenean posuere vulputate libero, vitae dictum est molestie ac.
#
# Suspendisse potenti. Phasellus ornare ligula quis porttitor porttitor. Duis bibendum eget dui id tempus. Suspendisse enim orci, porta sed dictum tempus, gravida vel ligula. Fusce tempus odio orci, eget blandit quam pharetra nec. Proin sit amet mi et nulla tristique pharetra eget in magna. Nam porttitor pharetra tellus, vitae egestas magna rhoncus ac. Aliquam pretium sit amet dui id maximus. Suspendisse a ligula justo. Donec molestie ac libero et porta. Nullam hendrerit ullamcorper augue quis pretium. Nunc ullamcorper commodo molestie. Sed faucibus est ac elementum gravida. Morbi semper justo nec lorem accumsan mattis.
#
# Nullam at imperdiet elit. Maecenas sed neque egestas, commodo leo ut, maximus magna. Etiam at massa vel velit volutpat tempus nec placerat neque. Fusce at tincidunt quam. Mauris at velit congue, laoreet leo sed, euismod mauris. Praesent dapibus tellus lacus, eget interdum neque scelerisque eget. Vestibulum vitae mattis augue. Suspendisse non justo et massa aliquam consectetur non id mauris. Donec euismod dui eget sagittis porttitor. Maecenas eros quam, tincidunt sit amet tellus et, semper finibus leo. Suspendisse faucibus pulvinar lorem vel faucibus. Quisque convallis sem dolor, ac ultrices nisl aliquam quis. Fusce felis velit, pharetra nec eros quis, suscipit mollis libero.
#
# Nulla sodales eu sem non pretium. Suspendisse tristique neque eu tempus lobortis. Curabitur egestas tellus nec enim lacinia, vitae mollis sem vehicula. Nam faucibus erat eu nisl lobortis, non bibendum tellus sodales. Vestibulum interdum massa sit amet arcu congue pharetra. Donec in sagittis tortor. Pellentesque non pharetra tortor. Suspendisse finibus ipsum sit amet nisl mattis fringilla. Aenean sed ex ex.
#
# Vestibulum sollicitudin lectus quis purus venenatis, in dictum libero tincidunt. Sed a euismod purus, in vehicula lectus. Sed at condimentum est. Mauris laoreet, sapien rhoncus sagittis venenatis, odio felis lacinia nulla, in finibus arcu justo eget orci. Vivamus ac lorem auctor, efficitur purus eu, tincidunt justo. Fusce et porttitor est. Vivamus pharetra sagittis risus vitae ullamcorper. Nullam tempor lacinia leo a ullamcorper. Mauris fringilla aliquet ipsum, in porttitor risus vulputate eget. Duis egestas auctor neque interdum volutpat. Aenean auctor nisi sapien, tincidunt tempor nulla posuere at. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Praesent urna risus, interdum ac viverra sed, sagittis ac ex. Donec sagittis ornare libero, sed posuere ipsum iaculis et. Proin ultrices sapien porta felis viverra efficitur. Mauris sodales ante congue faucibus pretium.
#
# Donec blandit eros eu quam elementum, ut vestibulum mauris gravida. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nunc accumsan rutrum nibh in volutpat. Donec justo lacus, suscipit et faucibus eget, dictum vitae nibh. Phasellus lobortis, nisi et sodales aliquam, urna nisi ornare lorem, gravida ornare sapien nibh a felis. Donec velit magna, vestibulum ut dolor ac, pharetra pharetra sem. Phasellus placerat nec quam sed dapibus. Cras lacinia at felis id malesuada. Maecenas sollicitudin augue eget arcu iaculis fermentum.
#
# Donec at purus id sapien tempor laoreet. Suspendisse arcu mi, consequat blandit faucibus ut, iaculis nec ex. Integer et ligula vitae urna finibus tempus vitae dictum arcu. Proin malesuada arcu non odio malesuada vestibulum. Praesent a pellentesque purus. Nullam mi tellus, vulputate nec tempor sit amet, efficitur condimentum nibh. Proin id leo ac purus vehicula ullamcorper vel ac tortor. Integer convallis scelerisque risus, sit amet aliquam sapien tempus quis. Integer aliquet scelerisque magna ut cursus. Sed vitae interdum nisi, quis porttitor risus. Aliquam nibh diam, porta eu fringilla sed, maximus at est. Fusce a imperdiet leo.
#
# Donec sollicitudin fermentum nisl at faucibus. Sed tincidunt eleifend lacus, eget euismod massa malesuada non. Fusce tempus lectus augue, sit amet feugiat tellus tempor at. Aenean at tincidunt ante. Ut egestas lobortis eros quis scelerisque. Fusce tincidunt aliquam sem sed fermentum. In est tellus, eleifend quis purus ut, viverra ullamcorper orci. Praesent ullamcorper eleifend pulvinar. Phasellus cursus vel purus id porttitor. Nam pellentesque porta euismod. In nibh dolor, malesuada vel dignissim nec, pretium quis nisl. Aenean metus enim, ullamcorper a pharetra sollicitudin, vulputate sit amet nunc. Duis ac pretium elit, vel facilisis nulla.
#
# Nunc condimentum, quam eget vulputate vestibulum, diam justo dapibus ante, rutrum imperdiet velit dolor bibendum velit. Praesent vel imperdiet orci, sit amet pretium justo. Nunc volutpat non nulla ut varius. Nulla sollicitudin dui at quam mollis, id hendrerit ligula condimentum. Donec vel purus ac diam ultricies volutpat. Aenean nec consectetur nunc. Nulla facilisi. Praesent ultrices diam a dui venenatis finibus. Nullam gravida risus venenatis eros ultricies, vel iaculis odio tincidunt. Maecenas sit amet metus sit amet urna porta fringilla. Mauris sit amet semper tellus, id vulputate massa. Maecenas ac pretium tortor, sed aliquet justo. Phasellus lectus arcu, porta ut augue sed, blandit eleifend odio. Duis elementum ex in hendrerit dignissim. Ut sodales dignissim mi, eget lobortis magna pulvinar eget. Curabitur ornare blandit metus, at imperdiet magna volutpat eu.
#
# Duis a ex nulla. Nullam volutpat nisi quis ligula rutrum imperdiet. Phasellus lobortis feugiat nisl, quis tempor enim varius aliquet. Quisque finibus mi at elit dapibus, eu egestas tellus ultrices. Praesent at diam at dui finibus feugiat non sed massa. Maecenas tristique sit amet tellus ac euismod. Integer rutrum eleifend gravida. Etiam non dolor felis. Donec euismod id magna ac ullamcorper. Curabitur tempus imperdiet finibus. Suspendisse non orci magna. Quisque neque libero, accumsan quis molestie nec, sodales ut nisl.
#
# Aenean ultricies arcu non arcu malesuada aliquet. Nullam vel mollis orci, in iaculis metus. In eget finibus nibh. Suspendisse maximus nibh vitae metus pharetra suscipit. Vivamus at posuere nibh. Nulla sit amet nunc nisl. Aliquam volutpat enim arcu, quis dictum libero lacinia eget. Cras placerat libero vitae nisi finibus vestibulum.
#
# Nam vulputate et risus sed tristique. Sed nec sem eu justo laoreet gravida. Sed consectetur nibh lacus, ut consequat est facilisis nec. Pellentesque id tortor accumsan, malesuada turpis tempus, efficitur sapien. Quisque magna augue, blandit nec ultrices non, tempus at ligula. Maecenas vitae dolor a massa lacinia fringilla. Etiam et diam congue, ultrices risus nec, accumsan enim. Sed fermentum ipsum id enim condimentum congue.
#
# Sed sed enim vehicula, malesuada mauris a, blandit neque. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Aenean viverra lectus eget mauris porta, non consectetur leo convallis. Maecenas erat diam, tincidunt et lectus quis, vulputate pharetra urna. Suspendisse bibendum ante ac mi dapibus tincidunt. Vestibulum rutrum mollis tellus, ac elementum dui tempor in. Sed sed porta augue. Aliquam sed mattis arcu. Donec nec purus augue. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Fusce suscipit semper ligula sit amet venenatis. Vestibulum ut finibus lacus. Nunc in sagittis ante. Maecenas tristique nibh ac turpis blandit lacinia. Ut ornare ante tortor, eu blandit ipsum maximus sed.
#
# Aliquam aliquam rutrum dolor non lobortis. Vivamus lacus orci, imperdiet faucibus rhoncus eu, viverra placerat sem. Fusce et nisi vel diam consectetur congue. Aenean semper mauris non dui iaculis dignissim. Curabitur cursus mattis dolor, in blandit ligula molestie sodales. Duis bibendum pulvinar ante at feugiat. Aenean cursus felis vitae massa rutrum, sed condimentum sapien cursus. Mauris ullamcorper, tortor eu rutrum hendrerit, lacus eros varius odio, a gravida diam lectus vel ipsum. Sed sodales vitae sapien vitae dapibus. Morbi sit amet ex at ligula commodo rhoncus et quis ligula. Nam ac arcu neque. Ut nec purus non massa ultricies convallis ut vitae est. Pellentesque non nisl dolor. Suspendisse potenti. In hac habitasse platea dictumst.
#
# Fusce eu dolor urna. Quisque fermentum massa a risus ultrices consequat. Nunc eu est augue. Curabitur nec euismod mauris, eget hendrerit nunc. Suspendisse a magna et purus ultricies tempus. Suspendisse potenti. Nam sagittis quis sapien vitae sollicitudin. Nullam ornare magna et ligula rutrum, pretium elementum neque tristique. Quisque pharetra mi magna, in posuere magna elementum nec. Maecenas laoreet sem elementum, varius quam sit amet, iaculis orci. Vestibulum pulvinar porttitor odio.
#
# Sed id venenatis mauris, id ullamcorper turpis. Sed tempor eros orci, eget vehicula massa efficitur sed. Maecenas in odio tristique, hendrerit urna vitae, tempor metus. Donec feugiat, urna in maximus molestie, metus nulla facilisis neque, eget efficitur elit enim at neque. Aenean lectus nisl, consectetur vitae tempus ac, semper id libero. Pellentesque vitae turpis at magna posuere accumsan. Suspendisse dignissim mi quis quam ullamcorper, et suscipit risus venenatis.
#
# Ut nec tristique libero. In bibendum condimentum urna, et cursus tortor consectetur eu. Mauris tempus turpis non leo efficitur tempor. Nam ut diam nec magna volutpat molestie commodo nec quam. Praesent fermentum dolor a iaculis egestas. Donec tristique venenatis diam, a volutpat nulla blandit ac. In eu auctor arcu. Donec dapibus, neque sit amet tempus ultricies, tellus dolor blandit justo, quis ultricies nibh tortor non mauris.
#
# Nam a pharetra ex, nec varius erat. Proin bibendum ex vitae maximus convallis. Curabitur nec eleifend enim. Nam maximus velit eget est ultricies, non blandit lectus tincidunt. Nam venenatis id ante et viverra. Suspendisse nec commodo nisi. Aliquam et laoreet orci, a rutrum mi. Sed eget nunc quis mauris rutrum laoreet id nec ligula. Vivamus sed diam leo. Vivamus faucibus ac nisl vitae volutpat. Phasellus id ante id ante aliquam tristique. Nunc porta elementum dui iaculis consequat. Curabitur malesuada nunc quis ipsum imperdiet hendrerit. Sed pharetra posuere imperdiet.
#
# Mauris volutpat leo nisi, non imperdiet urna gravida a. Nunc diam augue, feugiat eu auctor sit amet, scelerisque at arcu. Nunc metus nulla, fringilla sit amet enim quis, tincidunt condimentum neque. Ut vel nisl ac diam ornare auctor non ac nisi. Aliquam erat volutpat. Nam vulputate lorem at justo porttitor, a fringilla felis efficitur. Phasellus ac faucibus augue. Etiam consequat purus a quam tempus elementum. Cras maximus laoreet suscipit. Aliquam vestibulum bibendum orci nec iaculis. Morbi eget enim convallis, semper dui a, scelerisque nisi. Proin aliquet et felis ac facilisis. Vestibulum pharetra eget dolor commodo auctor. Vestibulum tempus nibh et aliquam aliquet. Cras vel lorem velit. Quisque id enim leo.
#
# Nam pellentesque odio nulla, ac maximus mi congue vel. Aenean at purus libero. Nullam lobortis ligula ultrices pellentesque condimentum. Nunc pretium quam vulputate, dictum velit vel, tincidunt felis. Sed eleifend magna massa, ultrices vestibulum justo pretium a. Integer viverra interdum felis quis volutpat. Maecenas non nulla iaculis, lacinia nulla a, eleifend magna.
#
# Vestibulum sed elementum dui, non euismod nisl. Quisque tincidunt orci non lorem convallis eleifend. Phasellus rutrum nulla ornare aliquet scelerisque. Cras molestie, erat vitae venenatis scelerisque, lorem mi convallis ipsum, at condimentum nisl nisi eu augue. Etiam luctus mauris et placerat rutrum. Nam at nibh et est egestas accumsan ut eget elit. Curabitur a orci purus. Etiam quis porta lorem. In vehicula nulla eu nibh semper maximus. Curabitur id efficitur risus. Etiam enim mi, blandit ac iaculis eget, dapibus nec libero. Nunc nec convallis nibh. Pellentesque pulvinar nisl arcu, vitae dapibus ipsum tincidunt a.
#
# Sed a porta urna. Phasellus vel turpis et velit ullamcorper vehicula sit amet rhoncus leo. Nam arcu neque, lacinia non arcu vel, ornare varius justo. Praesent eu consectetur purus. Donec vulputate auctor vehicula. Mauris interdum rutrum est, sit amet varius ligula vestibulum scelerisque. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec porttitor ligula hendrerit mi congue varius. Maecenas quis magna lacus. In in elit consequat, malesuada dolor eu, efficitur lorem. Phasellus ultrices placerat mauris sit amet tincidunt.
#
# Curabitur suscipit quam vitae tempor sagittis. Maecenas eget lectus vel neque elementum ultricies sed eget dolor. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer pretium hendrerit libero, et luctus enim feugiat at. Phasellus porta lorem sed metus egestas euismod quis sed diam. Sed aliquam tempor risus in tincidunt. Proin suscipit sapien at auctor facilisis. Sed consequat egestas magna eu fringilla.
#
# Vestibulum sagittis consectetur posuere. Vestibulum a quam eros. Fusce egestas lacus odio, et vehicula lectus semper vitae. Praesent hendrerit, tortor id sollicitudin fermentum, sapien augue elementum mi, ultrices efficitur erat dui vel velit. Morbi quis nulla sed justo tincidunt euismod. Vivamus pharetra enim eget sem dapibus, sed vestibulum erat bibendum. Proin a fermentum leo. Sed non libero eu magna viverra posuere ut sit amet dolor. Phasellus at nisi vitae urna laoreet dictum. Aliquam a dignissim lacus. Suspendisse potenti. Nullam ipsum dui, consectetur sed ipsum vitae, sollicitudin commodo erat. Donec ut dolor a enim consequat tempor. Sed interdum arcu at odio ultrices, at congue lectus ultrices. Quisque ac ipsum id sapien interdum elementum.
#
# Duis a orci vel ipsum elementum dictum non et sapien. Duis rhoncus lobortis ligula a dignissim. Vestibulum eget pretium urna, eu pharetra lacus. Pellentesque maximus et neque ut tincidunt. Aenean vel tempor massa. Aliquam at nulla in ligula sodales eleifend. In interdum, purus id porttitor sodales, libero dui auctor massa, in eleifend nisl urna vel ligula. Maecenas porta facilisis metus sed tempus.
#
# Donec efficitur nunc ante, vitae tempus ante vehicula at. Nulla suscipit vulputate purus, vitae lobortis ipsum dictum at. Aenean vel rhoncus felis, cursus sollicitudin nisl. Nulla viverra turpis porttitor, luctus nibh at, porta tortor. Duis odio magna, lacinia vitae massa ac, ornare congue ipsum. Suspendisse pulvinar tortor a bibendum consequat. Praesent commodo faucibus porttitor. Duis sit amet tempor ante. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Morbi risus nibh, faucibus id viverra vel, finibus vitae nisl. Integer elementum ligula nec risus ultricies blandit. Suspendisse eget ante mi. Pellentesque sagittis ipsum sit amet ante tincidunt pulvinar. Cras lacinia enim felis, non suscipit est pulvinar non. "
#
# library("stringi")
# str <- stri_replace_all_regex(stri_trans_toupper(str), "\n+", "\n")
# tab <- prop.table(table(unlist(stri_extract_words(str))))
# print(sort(tab))
#
# plot(1:length(tab), sort(tab, dec=TRUE), ylim=c(0, 0.1), pch='.')
# probs <- dzipf(1:length(tab), length(tab), 0.5)
# lines(1:length(tab), probs, col=2)
#
#
# # generate random sample of words.
# words <- names(sort(tab, dec=TRUE))
# nwords <- 100


stri_rand_lipsum <- function(nparagraphs, start_lipsum=TRUE) {
   nparagraphs <- as.integer(nparagraphs)
   stopifnot(is.finite(nparagraphs), nparagraphs >= 1)
   start_lipsum <- identical(start_lipsum, TRUE)

   rwords <- function(n) { # generate n random words
      words <- c("SED", "IN", "UT", "ET", "AC", "EU", "NON", "NEC", "AMET",
         "SIT", "VEL", "AT", "MAURIS", "A", "VITAE", "EGET", "QUIS", "NUNC",
         "NULLA", "ID", "VESTIBULUM", "PELLENTESQUE", "TINCIDUNT", "ALIQUAM",
         "IPSUM", "DONEC", "TURPIS", "LIGULA", "EGESTAS", "NIBH", "SAPIEN",
         "ANTE", "NISL", "VELIT", "ERAT", "EROS", "LEO", "MAGNA", "JUSTO",
         "ENIM", "MI", "PURUS", "EST", "LACUS", "LOREM", "QUAM", "DIAM",
         "RISUS", "DOLOR", "SEM", "AUGUE", "NEQUE", "TEMPOR", "DUI", "ARCU",
         "METUS", "TORTOR", "URNA", "LIBERO", "PHARETRA", "TEMPUS", "FAUCIBUS",
         "LECTUS", "SUSPENDISSE", "FELIS", "ODIO", "ORCI", "VARIUS", "MASSA",
         "TELLUS", "VOLUTPAT", "BLANDIT", "INTERDUM", "LOBORTIS", "MAXIMUS",
         "NISI", "LUCTUS", "PORTTITOR", "AUCTOR", "ELEMENTUM", "EX", "MAECENAS",
         "MALESUADA", "TRISTIQUE", "ULLAMCORPER", "ULTRICES", "NULLAM",
         "CONSEQUAT", "LACINIA", "PHASELLUS", "ACCUMSAN", "DAPIBUS", "ELEIFEND",
         "COMMODO", "DUIS", "EFFICITUR", "ELIT", "IMPERDIET", "AENEAN",  "IACULIS",
         "NAM", "CONSECTETUR", "FERMENTUM", "PORTA", "SCELERISQUE",  "SODALES",
         "FEUGIAT", "LAOREET", "VULPUTATE", "DICTUM", "QUISQUE",  "FACILISIS",
         "FINIBUS", "ORNARE", "PULVINAR", "RHONCUS", "CONDIMENTUM",  "MOLLIS",
         "PRETIUM", "ALIQUET", "CONGUE", "POSUERE", "SUSCIPIT",  "ULTRICIES",
         "CURABITUR", "GRAVIDA", "MATTIS", "VIVERRA", "CURSUS",  "EUISMOD",
         "RUTRUM", "VENENATIS", "CONVALLIS", "PROIN", "VEHICULA",  "PLACERAT",
         "SAGITTIS", "CRAS", "INTEGER", "MORBI", "VIVAMUS",  "PRAESENT",
         "BIBENDUM", "MOLESTIE", "SEMPER", "FRINGILLA", "FUSCE",  "DIGNISSIM",
         "ETIAM", "HENDRERIT", "SOLLICITUDIN", "PER", "FAMES",  "POTENTI", "AD",
         "APTENT", "CLASS", "CONUBIA", "HIMENAEOS", "INCEPTOS",  "LITORA",
         "NOSTRA", "SOCIOSQU", "TACITI", "TORQUENT", "HABITANT",  "NETUS",
         "SENECTUS", "PRIMIS", "CUM", "DIS", "MAGNIS", "MONTES",  "MUS",
         "NASCETUR", "NATOQUE", "PARTURIENT", "PENATIBUS", "RIDICULUS",
         "SOCIIS", "ADIPISCING", "FACILISI", "CUBILIA", "CURAE", "DICTUMST",
         "HABITASSE", "HAC", "PLATEA")

      # Zipf distribution
      dzipf <- function(k, N, s) 1/k^s/sum(1/(1:N)^s)
      pzipf.y <- c(0, cumsum(dzipf(1:length(words), length(words), 0.5)))
      robs <- findInterval(runif(n), pzipf.y)
      words[robs]
   }


   rtruncnorm <- function(n, a, b, mu, sd) {
      # truncated discretized normal distribution
      x <- round(rnorm(n, mu, sd))
      while(any(x < a | x > b))
         x[x < a | x > b] <- round(rnorm(sum(x < a | x > b), mu, sd))
      x
   }

   sent_para <- rtruncnorm(nparagraphs, 7, 20, 11, 3)
   word_sent <- lapply(sent_para, function(numsent)
      rtruncnorm(numsent, 2, Inf, 8, 3))

   totwords <- sum(unlist(word_sent))
   words <- rwords(totwords)
   seps <- sample(c(" ", ", "), replace=TRUE, size=totwords, prob=c(0.9, 0.1))
   seps[cumsum(unlist(word_sent))] <- sample(c(". ", "? ", "! "),
      size=length(unlist(word_sent)), replace=TRUE, prob=c(0.9, 0.05, 0.05)) # end of sentence
   seps[cumsum(sapply(word_sent, sum))] <- ".\n" # end of para
   seps[totwords] <- "." # very last sentence in very last para

   if (start_lipsum) {
      words <- c("LOREM", "IPSUM", "DOLOR", "SIT", "AMET", words)
      seps  <- c(" ",     " ",     " ",     " ",   ", ", seps)
   }

   ret <- stri_split_charclass(stri_paste(words, seps, collapse=""), "[\\n]")[[1]]
   ret <- stri_trans_totitle(ret, boundary="sentence")
   ret
}


cat(sapply(stri_wrap(stri_rand_lipsum(10), 80, simplify=FALSE), stri_flatten, collapse="\n"), sep="\n\n")
cat(stri_rand_lipsum(10), sep="\n\n")

# hist(rtruncnorm(100, 2, Inf, 8, 3)) # words per sentence
# hist(rtruncnorm(100, 7, 20, 11, 3)) # sentences per paragraphs



# Number of words / sentence
# Number of words / paragraph


# . ? !

# hist(diff(stri_locate_all_fixed(str, ",")[[1]][,1]))
# hist(diff(stri_locate_all_fixed(str, ".")[[1]][,1]))
#
#
# # words per sentence
# sentences <- stri_split_boundaries(str, "sentence")[[1]]
# words_per_sentence <- sapply(stri_extract_words(sentences), length) # words per sentence
# barplot(prop.table(table(words_per_sentence)))
# #which.min(words_per_sentence)
# #sentences[15]
# mean(words_per_sentence)
# sd(words_per_sentence)
#
# # sentences per paragraph
# sentences_paragraphs <- lapply(stri_split_lines(str), stri_split_boundaries, boundary='sentence')[[1]]
# sentences_per_para <- sapply(sentences_paragraphs, length)
# barplot(prop.table(table(sentences_per_para)))
# mean(sentences_per_para)
# sd(sentences_per_para)

stri_count_fixed(str, ".")
stri_count_fixed(str, "?")
stri_count_fixed(str, "!")
stri_count_fixed(str, " ")
stri_count_fixed(str, ",")
