aboutsummaryrefslogtreecommitdiffstats
path: root/filters/vectors/wrap-quotes.expected
diff options
context:
space:
mode:
authorRobin Jarry <robin@jarry.cc>2023-01-17 14:33:09 +0100
committerRobin Jarry <robin@jarry.cc>2023-01-26 00:20:45 +0100
commit3191ee171c435a43912264b131340af66fea8112 (patch)
tree2a68c5c4a3b9975d102cb379171548e7a8937da5 /filters/vectors/wrap-quotes.expected
parenta8b6693f7e7bdcc8b73c3fa0baa0ef5f51993dc7 (diff)
downloadaerc-3191ee171c435a43912264b131340af66fea8112.tar.gz
filters: rewrite wrap in c
This utility introduced in commit c9524d265793 ("filters: add wrap utility written in go") allows to reflow text to view emails that have very long lines without breaking quotes, lists and indentation. For such a simple task, go produces a binary that is 2.0M bytes on disk. After stripping debugging symbols, it can be reduced to 1.2M bytes. All of this for 267 lines of source code. This is a bit ridiculous, provided people may load this binary into memory multiple times per minute. This tool is a small side-project that seems not suitable for golang. Rewrite it in C. It now only depends on a POSIX libc to run. It is safe to assume that there is one available on all *NIX systems in the world of 2023. The resulting binary is now 27K bytes (15K after stripping). To build it, a C compiler and libc headers are required. These should most likely be available since they are dependencies of the go compiler toolchain. I have tested compilation (with clang-analyzer and gcc -fanalyzer) and basic operation on FreeBSD, Fedora (glibc) and Alpine (musl libc). More tests would probably be required on MacOSX and older Linux distros. I also added test vectors to give some confidence that this works as expected. Update CI with aggressive gcc hardening flags and to run these tests with valgrind --leak-check=full. Command line options are unchanged: usage: wrap [-h] [-w INT] [-r] [-l INT] [-f FILE] Wrap text without messing up email quotes. options: -h show this help message -w INT preferred wrap margin (default 80) -r reflow all paragraphs even if no trailing space -l INT minimum percentage of letters in a line to be considered a paragaph -f FILE read from filename (default stdin) Signed-off-by: Robin Jarry <robin@jarry.cc> Tested-by: Bence Ferdinandy <bence@ferdinandy.com> Tested-by: Maxwell G <gotmax@e.email>
Diffstat (limited to 'filters/vectors/wrap-quotes.expected')
-rw-r--r--filters/vectors/wrap-quotes.expected385
1 files changed, 385 insertions, 0 deletions
diff --git a/filters/vectors/wrap-quotes.expected b/filters/vectors/wrap-quotes.expected
new file mode 100644
index 00000000..d76c7918
--- /dev/null
+++ b/filters/vectors/wrap-quotes.expected
@@ -0,0 +1,385 @@
+Pellentesque vitae maximus odio. Vestibulum ante ipsum primis in faucibus orci
+luctus et ultrices posuere cubilia curae; Vestibulum dui tortor, fermentum
+vitae elit nec, vulputate malesuada nisi.
+
+> > Aliquam blandit non ipsum quis dignissim. Vivamus rhoncus augue magna, a
+> > maximus augue ultrices imperdiet. Vivamus nec nisl dolor.
+> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi purus arcu,
+> facilisis sit amet augue ac, scelerisque interdum enim. Interdum et malesuada
+> fames ac ante ipsum primis in faucibus.
+
+Vestibulum lacinia dolor diam. Phasellus et consequat nisi. In laoreet sodales
+velit, vitae porttitor ligula varius et. Donec non nibh mi.
+
+>>> Integer eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+>>> ultrices porttitor urna. Phasellus condimentum a elit ac consectetur.
+>> Fusce nec blandit lectus. Morbi id dolor eu arcu tempus fermentum in quis
+>> lectus. Nullam tempus orci vitae est dapibus, sit amet consectetur sapien
+>> dictum. Aliquam accumsan dolor arcu, in condimentum purus dignissim nec.
+> Nullam maximus ligula eget leo porttitor, sed viverra urna aliquam. Donec sed
+> enim sodales, aliquam elit vel, feugiat sem. Donec sed fringilla risus, eget
+> gravida lectus. Aenean vitae vulputate turpis.
+
+Etiam mi mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer
+eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien, ultrices
+porttitor urna. Phasellus condimentum a elit ac consectetur. Etiam venenatis id
+est et ornare. Etiam mi mauris, lacinia iaculis augue vitae, maximus lobortis
+metus. Integer eleifend ante a sem feugiat fringilla. Maecenas non mattis
+sapien, ultrices porttitor urna. Phasellus condimentum a elit ac consectetur.
+Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue vitae,
+maximus lobortis metus. Integer eleifend ante a sem feugiat fringilla. Maecenas
+non mattis sapien, ultrices porttitor urna. Phasellus condimentum a elit ac
+consectetur. Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis
+augue vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam mi
+mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer eleifend
+ante a sem feugiat fringilla. Maecenas non mattis sapien, ultrices porttitor
+urna. Phasellus condimentum a elit ac consectetur. Etiam venenatis id est et
+ornare. Etiam mi mauris, lacinia iaculis augue vitae, maximus lobortis metus.
+Integer eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+ultrices porttitor urna. Phasellus condimentum a elit ac consectetur. Etiam
+venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue vitae,
+maximus lobortis metus. Integer eleifend ante a sem feugiat fringilla. Maecenas
+non mattis sapien, ultrices porttitor urna. Phasellus condimentum a elit ac
+consectetur. Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis
+augue vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam mi
+mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer eleifend
+ante a sem feugiat fringilla. Maecenas non mattis sapien, ultrices porttitor
+urna. Phasellus condimentum a elit ac consectetur. Etiam venenatis id est et
+ornare. Etiam mi mauris, lacinia iaculis augue vitae, maximus lobortis metus.
+Integer eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+ultrices porttitor urna. Phasellus condimentum a elit ac consectetur. Etiam
+venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue vitae,
+maximus lobortis metus. Integer eleifend ante a sem feugiat fringilla. Maecenas
+non mattis sapien, ultrices porttitor urna. Phasellus condimentum a elit ac
+consectetur. Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis
+augue vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam mi
+mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer eleifend
+ante a sem feugiat fringilla. Maecenas non mattis sapien, ultrices porttitor
+urna. Phasellus condimentum a elit ac consectetur. Etiam venenatis id est et
+ornare. Etiam mi mauris, lacinia iaculis augue vitae, maximus lobortis metus.
+Integer eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+ultrices porttitor urna. Phasellus condimentum a elit ac consectetur. Etiam
+venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue vitae,
+maximus lobortis metus. Integer eleifend ante a sem feugiat fringilla. Maecenas
+non mattis sapien, ultrices porttitor urna. Phasellus condimentum a elit ac
+consectetur. Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis
+augue vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam mi
+mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer eleifend
+ante a sem feugiat fringilla. Maecenas non mattis sapien, ultrices porttitor
+urna. Phasellus condimentum a elit ac consectetur. Etiam venenatis id est et
+ornare. Etiam mi mauris, lacinia iaculis augue vitae, maximus lobortis metus.
+Integer eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+ultrices porttitor urna. Phasellus condimentum a elit ac consectetur. Etiam
+venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue vitae,
+maximus lobortis metus. Integer eleifend ante a sem feugiat fringilla. Maecenas
+non mattis sapien, ultrices porttitor urna. Phasellus condimentum a elit ac
+consectetur. Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis
+augue vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam mi
+mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer eleifend
+ante a sem feugiat fringilla. Maecenas non mattis sapien, ultrices porttitor
+urna. Phasellus condimentum a elit ac consectetur. Etiam venenatis id est et
+ornare. Etiam mi mauris, lacinia iaculis augue vitae, maximus lobortis metus.
+Integer eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+ultrices porttitor urna. Phasellus condimentum a elit ac consectetur. Etiam
+venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue vitae,
+maximus lobortis metus. Integer eleifend ante a sem feugiat fringilla. Maecenas
+non mattis sapien, ultrices porttitor urna. Phasellus condimentum a elit ac
+consectetur. Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis
+augue vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam mi
+mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer eleifend
+ante a sem feugiat fringilla. Maecenas non mattis sapien, ultrices porttitor
+urna. Phasellus condimentum a elit ac consectetur. Etiam venenatis id est et
+ornare. Etiam mi mauris, lacinia iaculis augue vitae, maximus lobortis metus.
+Integer eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+ultrices porttitor urna. Phasellus condimentum a elit ac consectetur. Etiam
+venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue vitae,
+maximus lobortis metus. Integer eleifend ante a sem feugiat fringilla. Maecenas
+non mattis sapien, ultrices porttitor urna. Phasellus condimentum a elit ac
+consectetur. Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis
+augue vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam mi
+mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer eleifend
+ante a sem feugiat fringilla. Maecenas non mattis sapien, ultrices porttitor
+urna. Phasellus condimentum a elit ac consectetur. Etiam venenatis id est et
+ornare. Etiam mi mauris, lacinia iaculis augue vitae, maximus lobortis metus.
+Integer eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+ultrices porttitor urna. Phasellus condimentum a elit ac consectetur. Etiam
+venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue vitae,
+maximus lobortis metus. Integer eleifend ante a sem feugiat fringilla. Maecenas
+non mattis sapien, ultrices porttitor urna. Phasellus condimentum a elit ac
+consectetur. Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis
+augue vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam mi
+mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer eleifend
+ante a sem feugiat fringilla. Maecenas non mattis sapien, ultrices porttitor
+urna. Phasellus condimentum a elit ac consectetur. Etiam ve
+nenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue vitae, maximus
+lobortis metus. Integer eleifend ante a sem feugiat fringilla. Maecenas non
+mattis sapien, ultrices porttitor urna. Phasellus condimentum a elit ac
+consectetur. Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis
+augue vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam mi
+mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer eleifend
+ante a sem feugiat fringilla. Maecenas non mattis sapien, ultrices porttitor
+urna. Phasellus condimentum a elit ac consectetur. Etiam venenatis id est et
+ornare. Etiam mi mauris, lacinia iaculis augue vitae, maximus lobortis metus.
+Integer eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+ultrices porttitor urna. Phasellus condimentum a elit ac consectetur. Etiam
+venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue vitae,
+maximus lobortis metus. Integer eleifend ante a sem feugiat fringilla. Maecenas
+non mattis sapien, ultrices porttitor urna. Phasellus condimentum a elit ac
+consectetur. Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis
+augue vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam mi
+mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer eleifend
+ante a sem feugiat fringilla. Maecenas non mattis sapien, ultrices porttitor
+urna. Phasellus condimentum a elit ac consectetur. Etiam venenatis id est et
+ornare. Etiam mi mauris, lacinia iaculis augue vitae, maximus lobortis metus.
+Integer eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+ultrices porttitor urna. Phasellus condimentum a elit ac consectetur. Etiam
+venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue vitae,
+maximus lobortis metus. Integer eleifend ante a sem feugiat fringilla. Maecenas
+non mattis sapien, ultrices porttitor urna. Phasellus condimentum a elit ac
+consectetur. Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis
+augue vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam mi
+mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer eleifend
+ante a sem feugiat fringilla. Maecenas non mattis sapien, ultrices porttitor
+urna. Phasellus condimentum a elit ac consectetur. Etiam venenatis id est et
+ornare. Etiam mi mauris, lacinia iaculis augue vitae, maximus lobortis metus.
+Integer eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+ultrices porttitor urna. Phasellus condimentum a elit ac consectetur. Etiam
+venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue vitae,
+maximus lobortis metus. Integer eleifend ante a sem feugiat fringilla. Maecenas
+non mattis sapien, ultrices porttitor urna. Phasellus condimentum a elit ac
+consectetur. Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis
+augue vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam mi
+mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer eleifend
+ante a sem feugiat fringilla. Maecenas non mattis sapien, ultrices porttitor
+urna. Phasellus condimentum a elit ac consectetur. Etiam venenatis id est et
+ornare. Etiam mi mauris, lacinia iaculis augue vitae, maximus lobortis metus.
+Integer eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+ultrices porttitor urna. Phasellus condimentum a elit ac consectetur. Etiam
+venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue vitae,
+maximus lobortis metus. Integer eleifend ante a sem feugiat fringilla. Maecenas
+non mattis sapien, ultrices porttitor urna. Phasellus condimentum a elit ac
+consectetur. Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis
+augue vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam mi
+mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer eleifend
+ante a sem feugiat fringilla. Maecenas non mattis sapien, ultrices porttitor
+urna. Phasellus condimentum a elit ac consectetur. Etiam venenatis id est et
+ornare. Etiam mi mauris, lacinia iaculis augue vitae, maximus lobortis metus.
+Integer eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+ultrices porttitor urna. Phasellus condimentum a elit ac consectetur. Etiam
+venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue vitae,
+maximus lobortis metus. Integer eleifend ante a sem feugiat fringilla. Maecenas
+non mattis sapien, ultrices porttitor urna. Phasellus condimentum a elit ac
+consectetur. Etiam venenatis id est et ornare.
+
+>> - Etiam mi mauris, lacinia iaculis augue vitae, maximus lobortis metus.
+>> Integer eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+>> ultrices porttitor urna. Phasellus condimentum a elit ac consectetur.
+>> Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue
+>> vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+>> fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+>> condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam
+>> mi mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer
+>> eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+>> ultrices porttitor urna. Phasellus condimentum a elit ac consectetur.
+>> Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue
+>> vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+>> fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+>> condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam
+>> mi mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer
+>> eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+>> ultrices porttitor urna. Phasellus condimentum a elit ac consectetur.
+>> Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue
+>> vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+>> fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+>> condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam
+>> mi mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer
+>> eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+>> ultrices porttitor urna. Phasellus condimentum a elit ac consectetur.
+>> Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue
+>> vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+>> fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+>> condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam
+>> mi mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer
+>> eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+>> ultrices porttitor urna. Phasellus condimentum a elit ac consectetur.
+>> Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue
+>> vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+>> fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+>> condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam
+>> mi mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer
+>> eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+>> ultrices porttitor urna. Phasellus condimentum a elit ac consectetur.
+>> Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue
+>> vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+>> fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+>> condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam
+>> mi mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer
+>> eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+>> ultrices porttitor urna. Phasellus condimentum a elit ac consectetur.
+>> Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue
+>> vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+>> fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+>> condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam
+>> mi mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer
+>> eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+>> ultrices porttitor urna. Phasellus condimentum a elit ac consectetur.
+>> Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue
+>> vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+>> fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+>> condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam
+>> mi mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer
+>> eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+>> ultrices porttitor urna. Phasellus condimentum a elit ac consectetur.
+>> Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue
+>> vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+>> fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+>> condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam
+>> mi mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer
+>> eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+>> ultrices porttitor urna. Phasellus condimentum a elit ac consectetur.
+>> Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue
+>> vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+>> fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+>> condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam
+>> mi mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer
+>> eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+>> ultrices porttitor urna. Phasellus condimentum a elit ac consectetur.
+>> Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue
+>> vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+>> fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+>> condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam
+>> mi mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer
+>> eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+>> ultrices porttitor urna. Phasellus condimentum a elit ac consectetur.
+>> Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue
+>> vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+>> fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+>> condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam
+>> mi mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer
+>> eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+>> ultrices porttitor urna. Phasellus condimentum a elit ac consectetur.
+>> Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue
+>> vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+>> fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+>> condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam
+>> mi mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer
+>> eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+>> ultrices porttitor urna. Phasellus condimentum a elit ac consectetur.
+>> Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue
+>> vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+>> fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+>> condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam
+>> mi mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer
+>> eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+>> ultrices porttitor urna. Phasellus condimentum a elit ac consectetur.
+>> Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue
+>> vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+>> fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+>> condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam
+>> mi mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer
+>> eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+>> ultrices porttitor urna. Phasellus condimentum a elit ac consectetur.
+>> Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue
+>> vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+>> fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+>> condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam
+>> mi mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer
+>> eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+>> ultrices porttitor urna. Phasellus condimentum a elit ac consectetur. Eti
+am venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue vitae,
+maximus lobortis metus. Integer eleifend ante a sem feugiat fringilla. Maecenas
+non mattis sapien, ultrices porttitor urna. Phasellus condimentum a elit ac
+consectetur. Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis
+augue vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam mi
+mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer eleifend
+ante a sem feugiat fringilla. Maecenas non mattis sapien, ultrices porttitor
+urna. Phasellus condimentum a elit ac consectetur. Etiam venenatis id est et
+ornare. Etiam mi mauris, lacinia iaculis augue vitae, maximus lobortis metus.
+Integer eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+ultrices porttitor urna. Phasellus condimentum a elit ac consectetur. Etiam
+venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue vitae,
+maximus lobortis metus. Integer eleifend ante a sem feugiat fringilla. Maecenas
+non mattis sapien, ultrices porttitor urna. Phasellus condimentum a elit ac
+consectetur. Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis
+augue vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam mi
+mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer eleifend
+ante a sem feugiat fringilla. Maecenas non mattis sapien, ultrices porttitor
+urna. Phasellus condimentum a elit ac consectetur. Etiam venenatis id est et
+ornare. Etiam mi mauris, lacinia iaculis augue vitae, maximus lobortis metus.
+Integer eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+ultrices porttitor urna. Phasellus condimentum a elit ac consectetur. Etiam
+venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue vitae,
+maximus lobortis metus. Integer eleifend ante a sem feugiat fringilla. Maecenas
+non mattis sapien, ultrices porttitor urna. Phasellus condimentum a elit ac
+consectetur. Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis
+augue vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam mi
+mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer eleifend
+ante a sem feugiat fringilla. Maecenas non mattis sapien, ultrices porttitor
+urna. Phasellus condimentum a elit ac consectetur. Etiam venenatis id est et
+ornare. Etiam mi mauris, lacinia iaculis augue vitae, maximus lobortis metus.
+Integer eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+ultrices porttitor urna. Phasellus condimentum a elit ac consectetur. Etiam
+venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue vitae,
+maximus lobortis metus. Integer eleifend ante a sem feugiat fringilla. Maecenas
+non mattis sapien, ultrices porttitor urna. Phasellus condimentum a elit ac
+consectetur. Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis
+augue vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam mi
+mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer eleifend
+ante a sem feugiat fringilla. Maecenas non mattis sapien, ultrices porttitor
+urna. Phasellus condimentum a elit ac consectetur. Etiam venenatis id est et
+ornare. Etiam mi mauris, lacinia iaculis augue vitae, maximus lobortis metus.
+Integer eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+ultrices porttitor urna. Phasellus condimentum a elit ac consectetur. Etiam
+venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue vitae,
+maximus lobortis metus. Integer eleifend ante a sem feugiat fringilla. Maecenas
+non mattis sapien, ultrices porttitor urna. Phasellus condimentum a elit ac
+consectetur. Etiam venenatis id est et ornare. Etiam mi mauris, lacinia iaculis
+augue vitae, maximus lobortis metus. Integer eleifend ante a sem feugiat
+fringilla. Maecenas non mattis sapien, ultrices porttitor urna. Phasellus
+condimentum a elit ac consectetur. Etiam venenatis id est et ornare. Etiam mi
+mauris, lacinia iaculis augue vitae, maximus lobortis metus. Integer eleifend
+ante a sem feugiat fringilla. Maecenas non mattis sapien, ultrices porttitor
+urna. Phasellus condimentum a elit ac consectetur. Etiam venenatis id est et
+ornare. Etiam mi mauris, lacinia iaculis augue vitae, maximus lobortis metus.
+Integer eleifend ante a sem feugiat fringilla. Maecenas non mattis sapien,
+ultrices porttitor urna. Phasellus condimentum a elit ac consectetur. Etiam
+venenatis id est et ornare. Etiam mi mauris, lacinia iaculis augue vitae,
+maximus lobortis metus. Integer eleifend ante a sem feugiat fringilla. Maecenas
+non mattis sapien, ultrices porttitor urna. Phasellus condimentum a elit ac
+consectetur. Etiam venenatis id est et ornare.
+
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> tavu