15 Years of Bettnet.com

fireworks

It’s another major anniversary for my blog this weekend. July 3 marks the 15th anniversary since I began this project, two months before 9/11 and 6 months before the clergy sex abuse scandal broke open. As I said 5 years ago:

The first six years of my blog were marked by lots of personal commentary and news analysis of that scandal, especially as it related to the Archdiocese of Boston, which gained for this site a loyal readership to whom I am still grateful. To this day, I still encounter people online and in person who tell me that they have enjoyed my writing over the years.

The next seven years saw the blog go somewhat quiet as working for the Archdiocese of Boston meant I could no longer write about the controversial topics I once did. But that restriction began to relax in my last job in the collaborative in Walpole and now I am unrestricted in my selection of topics. Plus the redesign of this site, accomplished somewhat recently, has given me new ways of linking and commenting with shorter posts, which is interestingly like the way I posted in the early days.

It’s funny to think that this blog has been in constant operation from before I even met Melanie, before our five kids were born. Kids who were born that summer are in high school now! When this blog was started the New England Patriots had never won a Super Bowl and the Red Sox hadn’t won a World Series since 1918!

N.B. Back in the pre-decade-old years of the blog, I didn’t do elaborate posts like to mark the anniversary, but here’s the big 10-Year-Anniversary post and the tiny 5-Year-Anniversary mention, as well as the very first post I ever made.

Link Posts

I’m going to try to shift some more of my attention back to this blog by posting shorter link-style entries instead of waiting until I have time to write longer commentaries. Enjoy.

Update: I should add that I plan to keep writing longer posts as well.

Moving from Expression Engine 1 to WordPress

NewTheWineDarkSea-3

Earlier this year I moved my blog from the content management system Expression Engine (the older 1.x, not the newer 2.x version) to WordPress. I had been planning to do the same for Melanie’s blog this summer but didn’t get around to it until forced by circumstances.

Now that I’ve done it twice, I wanted to post my notes on the process for anyone who might follow in my footsteps, especially if they encounter the same problems I did and go searching for answers. Perhaps I might save someone the days of pounding my head against the wall.[1]

Much of the hard work involved here was done by the blogger at CodeGeek, but as English is not his first language and there were some steps that could use some clarification, I will reiterate here. Plus I will include a few additional steps that made life easier.

First, download the entirety of your original Expression Engine database from your website host. (I won’t go into details as the exact steps will vary, but it’s likely you will be accessing a webpage through your host in a program call phpmyadmin.) You won’t be using this file to do the transfer. It’s just so you have a good backup of your site at the moment of conversion.

Second, if you’re moving from one webhost to another, download your images folder for later uploading to the new site.

Third, create the “export” template group as described by Musa at CodeGeek, including the two xml files, “data.xml” and “comments.xml”.

This is the content of data.xml:

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
    xmlns:excerpt="http://wordpress.org/export/1.0/excerpt/"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:wp="http://wordpress.org/export/1.0/"
>
<channel>
    <title>{site_name}</title>
    <link>{site_url}</link>
    <description>SITE_DESCRIPTION_HERE</description>
    <pubDate>{current_time format="{DATE_RSS}"}</pubDate>
    <generator>http://wordpress.org/?v=2.8.6</generator>
    <language>en</language>
    <wp:wxr_version>1.0</wp:wxr_version>
    <wp:base_site_url>{homepage}</wp:base_site_url>
    <wp:base_blog_url>{site_url}</wp:base_blog_url>

{exp:weblog:categories style="linear" weblog="default_site"}

    <wp:category>
        <wp:category_nicename>{category_url_title}</wp:category_nicename>
        <wp:category_parent></wp:category_parent>
        <wp:cat_name><![CDATA[{category_name}]]></wp:cat_name>
    </wp:category>

{/exp:weblog:categories}    

{exp:weblog:entries weblog="default_site" orderby="date" sort="desc" limit="200" offset="0" rdf="off"}
        <item>
        <title>{exp:xml_encode}{title}{/exp:xml_encode}</title>
        <link>YOUR_BLOG_URL_WITH_TRAILING_SLASH?p={entry_id}</link>
        <pubDate>{entry_date format="{DATE_RSS}"}</pubDate>
        <dc:creator><![CDATA[{author}]]></dc:creator>

                {categories}
                <category><![CDATA[{category_name}]]></category>
                <category domain="category" nicename="{category_url_title}"><![CDATA[{category_name}]]></category>
                {/categories}

        <guid isPermaLink="false">YOUR_BLOG_URL_WITH_TRAILING_SLASH?p={entry_id}</guid>
        <description></description>
        <content:encoded><![CDATA[{body}]]></content:encoded>
        <excerpt:encoded><![CDATA[{summary}]]></excerpt:encoded>
        <wp:post_id>{entry_id}</wp:post_id>
        <wp:post_date>{entry_date format="%Y-%m-%d %H:%i:%s"}</wp:post_date>
        <wp:post_date_gmt>{gmt_entry_date format="%Y-%m-%d %H:%i:%s"}</wp:post_date_gmt>
        <wp:comment_status>open</wp:comment_status>
        <wp:ping_status>open</wp:ping_status>
        <wp:post_name>{url_title}</wp:post_name>
        <wp:status>publish</wp:status>
        <wp:post_parent>0</wp:post_parent>
        <wp:menu_order>0</wp:menu_order>
        <wp:post_type>post</wp:post_type>
        <wp:post_password></wp:post_password>

        <wp:postmeta>
            <wp:meta_key>extended</wp:meta_key>
            <wp:meta_value><![CDATA[{extended}]]></wp:meta_value>
        </wp:postmeta>

        {embed="export/comments.xml" the_entry_id="{entry_id}"}         

        </item>
{/exp:weblog:entries}   

</channel>    
</rss>

This is comments.xml:

    <?php

global $IN;
$IN->QSTR = '{embed:the_entry_id}';

?>

{exp:comment:entries weblog="default_site" sort="asc"}

<wp:comment>
<wp:comment_id>{comment_id}</wp:comment_id>
<wp:comment_author><![CDATA[{name}]]></wp:comment_author>
<wp:comment_author_email>{url_or_email}</wp:comment_author_email>
<wp:comment_author_url>{url}</wp:comment_author_url>
<wp:comment_author_IP>{ip_address}</wp:comment_author_IP>
<wp:comment_date>{comment_date format="%Y-%m-%d %h:%i:%s"}</wp:comment_date>
<wp:comment_date_gmt>{gmt_comment_date format="%Y-%m-%d %h:%i:%s"}</wp:comment_date_gmt>
<wp:comment_content><![CDATA[{comment}]]></wp:comment_content>
<wp:comment_approved>1</wp:comment_approved>
<wp:comment_type></wp:comment_type>
<wp:comment_parent>0</wp:comment_parent>
<wp:comment_user_id>0</wp:comment_user_id>
</wp:comment>

{/exp:comment:entries}

This is very important! After you create comments.xml, you must enable PHP parsing in the template or you will never be able to export comments.

title

title

You’ll need to edit a few places in the files:

  • Where it says SITE_DESCRIPTION_HERE put the tagline for your site
  • Where you see YOUR_BLOG_URL_WITH_TRAILING_SLASH, put the URL to where your WordPress install will go. For example, it might http://www.site.com/blog
  • Where it says weblog=“default_site”, replace default_site with the actual weblog shortname you have for your blog.

Now open up your website at the data.xml site. For example, in your web browser, go to http://www.site.com/blog/data.xml.

This will bring up the most recent 200 entries on your blog, along with their comments. Save this file to your hard drive with a unique name ending in 1.xml. For example, blogexport1.xml.

Go back into the data.xml template, look for this line:

{exp:weblog:entries weblog="weblog1" orderby="date" sort="desc" limit="200" offset="0" rdf="off"}

Change the offset to “200” and then reload the page http://www.site.com/blog/data.xml. It will now show the next 200 entries with their comments. Save this with the same name as before incremented by 1. For example, blogexport2.xml.

Keep doing this in 200 entry increments, i.e. offset=“400”, offset=“600”, and so on, until you have downloaded all of your entries.

Why not just download everything in one fell swoop? Because your server will likely timeout and/or choke on the data. This is an intensive process so you have to take it in smaller chunks. I’ve tried with increments of 400, but if there are a lot of comments on a post or some very long posts, it will fail.

Potential pitfalls

For some reason the xml files can be malformed as they generate. Occasionally they encounter some data in your blog that causes it to choke and the file will end abruptly. You’ll know this happened if the file you’re saving doesn’t end properly with

</channel>    
</rss>

You’ll have to track down the offending post and edit it until the process runs smoothly,

Another potential problem is that comments get attached to the wrong post. This happened with both my and Melanie’s blogs in that for some of our older posts the comments ended up attached to the post before or after the one they’re supposed to. I don’t know why and I couldn’t figure out a fix. If you can’t either, you’ll just have to live with it, I guess.

Importing

After all the entries have been exported from Expression Engine, set up your new WordPress site.[2] If you’re moving your domain to a new webhost, go through that process. Make sure your images/uploads folder from your old site is in the same directory structure in the new site and move all the images over so your blog posts won’t have broken image links. (E.g. /site.com/images/uploads).

Then in WordPress itself, go to “Tools>Import” and click on “WordPress” (It will probably need to install the importer) and select the first export file. Go through the process, assign the authors to the proper user on the new WordPress site and once it’s done, verify that everything came over properly. If not, you can use the WordPress plugin Bulk Delete to delete everything you just imported so you can fix whatever went wrong and start again.

Now if you’ve been blogging a while, you have a lot of Google-fu built up to your old Expression Engine permalinks, not to mention all those links from your fellow bloggers to your old content. At this point, that’s all broken, but we can save it with a little editing of the .htaccess file at the root of your site installation.[3]

Add the following to your .htaccess:

RewriteEngine on
RewriteRule ^YOUR_SITE.com/([a-zA-Z0-9_-]+)$ YOUR_SITE/weblog/comments/$1 [R=301,NC,L]

Replace YOUR_SITE.com with your domain name and make sure that the default template group on your EE blog was /weblog/comments, otherwise you’ll need to change that to reflect it.

Finally, you won’t want to orphan all those people who followed your site via RSS so you’ll need to let them know that it’s changed. Create a new file at the root of your site called rss.xml. Put the following in it, editing it of course to include your details:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<rss version="2.0">

<channel>
    <title>YOUR_SITE.com</title>
    <link>http://www.YOUR_SITE.com</link>
    <description>My Blog</description>
    <item>
            <title>YOUR_SITE.com has moved</title>
            <link>http://www.YOUR_HOST.com/</link>
            <description>My blog host has changed and thus the feed required to subscribe to these posts has changed. Please visit http://www.YOUR_SITE.com to subscribe to the new feed. Thank you. </description>
    </item>
</channel>

</rss>

Then in .htaccess add the following line:

Redirect 301 /index.php/weblog/rss_2.0/ /rss.xml

This will now show one final entry in your old RSS feed that will hopefully lead to people coming to your site and re-subscribing with the new feed that WordPress includes (or the one provided by a third-party service like FeedBurner, if that’s what you choose to use.)

All told, it’s a relatively straightforward process, once all the steps are known and mapped out. It’s just a bit time-consuming if you’re blog’s been around as long as ours have–Melanie had about 2,800 entries spanning 7 years, my blog had many more spanning about 12 years–but even so I did the switch in a weekend, including setting up the new WordPress theme.

If you have any further tips or encounter any unforeseen problems, please leave me a comment or drop a note.


  1. Unfortunately, the makers of Expression Engine no longer support the 1.x version of their software, having moved to 2.x several years ago. As the software had evolved into a more robust commercial website product rather than the more focused blogging system it had been, I hadn’t wanted to spend the money to upgrade. Unfortunately, the process outlined here to move to WordPress hadn’t been developed at the time so I was stuck in a limbo until I discovered this.  ↩
  2. This includes creating or installing the new theme, which you won’t be able to just import from Expression Engine. That’s a whole other discussion.  ↩
  3. Explaining what .htaccess is goes beyond this little tutorial. Be aware that if you mess up this file, you can make your site completely inaccessible. On the other hand, if you’re careful, it’s very useful. You’ll generally need to edit the file after accessing your site using an FTP program.  ↩

The Wine-Dark Sea returns

After several days of wrestling with an outdated version of the Expression Engine software, recalcitrant PHP and an incomplete instruction for exporting the old database (including creating not one, but two dummy websites, and manually slogging through a MySQL database), but Melanie’s website, TheWineDarkSea.com is now back online, using WordPress. Some of the comments got connected to the wrong entries and she’ll have to manually move over the more than 150(!) closed posts that she’d kept around, but she’s back online and better than ever. I’ve been meaning to do this ever since I migrated my own site and I’m glad it’s finally done, despite the hassle.

If you subscribed via Feedly or other RSS feed readers, you’ll need the new feed. The old feed now includes a warning that you need to subscribe to the new one.

TheWineDarkSea.com is experiencing technical difficulties

For those of you coming here wondering what happened to Melanie’s blog The Wine Dark Sea, we’re having some technical difficulties with her web host. With blogs as old as ours, the danger is all the old legacy software that they’re still running on and the web host says it’s so old that it’s gumming up their servers. I’m trying to figure out what to do about the problem given the constraints placed on us. I certainly don’t want to abandon all her old blog posts.

Unfortunately, I had planned to move her site to WordPress this summer but never got around to it. This is precisely why I wanted to. Anyway, we thank you for your patience.

Happy Memory

Habemus-Papam-300x244As we approach Pope Benedict XVI’s final day as Supreme Pontiff and Bishop of Rome, my attention was called back to the day he was elected, April 19, 2005, by Kelly Thatcher, who somehow resurrected what I wrote on that day. (Somehow, because in the transition to WordPress, that was one of the posts regrettably lost.) Because of the occasion, I decided to wade into the depths of the vast SQL database from the old site to pull out the post and manually re-enter it along with the comments because I think it provides a good glimpse of what our expectations were for this pontificate and how well they were fulfilled.

Catholic New Media Conference 2012 Recap

Untitled

This past week was the 5th Catholic New Media Conference and it was held in Arlington, Texas, alongside the Catholic Marketing Network trade show and the Catholic Writers’ Guild conference.

This was my third CNMC–my first was in Boston in 2010 and last year I attended in Kansas City, Kansas–and I have to say that each year it improves, not because of some deficiency in the past events, but as a natural growth as more and more people become involved.

I won’t go through a detailed play-by-play of everything that happened, but I’d like to give my impressions. The first day included some Main Track events as well as the first Catholic Tech Summit. The latter was particularly interesting to me because of my work as Creative Director for New Media at the Archdiocese of Boston. Josh Simmons’ talk on the 7 keys to a great organization website was both an affirmation of the work we’ve been doing as well as the source of some good ideas for how we can improve. Pat Padley’s expert explanation of how to create a winning digital strategy (based on his professional work for very large corporate brands) will pay dividends as we implement those ideas for the Church.

The discussion moderated by Matt Warner and Jeff Geerling on Catholic standards and APIs could be just the start of a very important effort that will result in a unity among Catholic developers and end users, including parishes, ministries, and dioceses. During the discussion, I said that dioceses often have multi-faceted needs and we turn to very expensive big-company solutions, which are sometimes too expensive to afford. But if there were a common API and true interoperability, we could break down those problems into smaller chunks that we could address over time. In addition, the software for those smaller parts could be written by smaller developers, opening up the market much wider.

I didn’t stick around for a couple of the late afternoon and evening events because I was meeting my sister-in-law Theresa for lunch. She lives in Plano and works in Dallas now, so we agreed to meet a Chinese restaurant she knows about in Arlington. Unfortunately, rush-hour traffic in Dallas is as bad as it is in Boston, plus she ran out of gas, and oh by the way, there was both a baseball game at the Ballpark at Arlington and a football game at Cowboy Stadium right outside the convention center which didn’t delay me, but all of which in fact made Theresa two-and-a-half hours late. Hunger may be the best sauce, but the food at First Chinese BBQ was excellent. The portions were huge and the price was cheap. Plus so authentic.

On Thursday, Fr. Roderick Vonhogen kicked things off with a retrospective of the past seven years of Catholic new media, by which they are measuring time by their own work in Catholic new media. For some of us, ahem, we’ve been working in Catholic new media a lot longer. After all, Catholic World News began with me and Phil Lawler way back in 1996 and there were others even before that. But I understand that Fr. Roderick was using his own perspective to show how quickly the field of new media changes. For example, seven years ago Facebook was still a quirky little website for college kids.

Elizabeth Scalia’s keynote on new media and the new evangelization managed to be both humbling and inspiring. I am a big fan of her blog The Anchoress for her ability to excel at both the spiritual writing as well as the cultural and political observations, and all her editing work over at Patheos where she has brought an amazing gallery of some of the best Catholic bloggers.

Rob Kaczmark of Spirit Juice Studios, which produces some of the best Catholic videos on YouTube, which isn’t to say they don’t do a lot of other regular commercial work too. Anyway, Rob reviewed the videos of the top ten Catholic YouTube channels and then the top ten mainstream channels. The results weren’t even close. Even for most of the professional Catholic channels, the quality wasn’t as high as even some of the one-man secular channels. Rob drove home the point that (a) details–like proper hair and makeup for everyone in every shoot–matter and that (b) quality isn’t about your budget, but it’s about your attitude and unwillingness to settle for anything less than your best.

Following up on that talk was Brandon Vogt’s, which in my estimation may have been the best of the conference. Brandon is a rising star in Catholic new media, not least because of his book “The Church and New Media”. (I joked at one point that Brandon was mentioned by name by every other speaker at the conference. I don’t think that’s an exaggeration.) That reputation is well-deserved because Brandon is knowledgeable about new media, persuasive in his delivery, and has a knack for explaining things in an accessible way. Brandon’s presentation showed how Mormons, Protestants, and Atheists are using new media in ways that put Catholics to shame, and of course what lessons we could take from them. I was particularly impressed by the work of the Mormons, from their beautiful websites to their incredible work in search-engine optimization to the “why didn’t I think of that” concept of their LDSTech website, which matches up volunteer technology professionals with church technology projects. It’s genius.

Later was the talk by Bishop Christopher Coyne, who has also become a rock star for Catholic new media folk. More than once I saw someone taking him aside to ask him how to approach their bishop about one new media idea or another. Bishop Coyne’s topic was about being the bearer of the Good News within a digital culture, which means we need to stop shooting each other in the foxhole and start treating one another like Christians.

That night was a dinner for both the CNMC crowd and the Catholic Marketing Network hosted by Ignatius Press. There was a little too much talking, but the highlight was the performance by country music star (and Catholic convert) Collin Raye, who also spoke about the brief life and death of his granddaughter from an undiagnosed neurological condition at 10 years old.

Friday was devoted to the topic of blogging and it started with a keynote by Jennifer Fulwiler, who gave an amazing synopsis of the spirituality of blogging. The two other highlights of the day were Dorian Speed’s talk on building a blog community (Dorian is so entertaining, I’d listen to her read the phone book) and Julie Davis’ talk on Catholic bloggers as the 1st Corinthians of the internet. (It’s not necessary a complimentary comparison; go read what those Corinthians were like.)

Unfortunately, I wasn’t able to stay for what I heard was a great panel discussion on blogging because I had to catch my flight home. But overall, once again, the CNMC has proven to be an indispensable opportunity to get together with likeminded individuals and inspire one another, not to mention to actually see face to face some of these people I’ve been talking with for ages online.

Speaking of which, I couldn’t end without giving a public thank you to our online friend MamaT of the Summa Mamas, who heard my online plea for a place to stay in the Dallas area for the CNMC and opened up her home for me. While I didn’t spend as much time with her and her husband as I could have wished, we did have some very nice late evening conversations. (I was up and out of the house very early most days and back very late.)

So now the CNMC is ended for another year and most attendees are already wondering when and where the next one will be. I know that I for one will be there wherever it is. After all, the lessons learned and the relationships forged are invaluable.

Photo by Flickr user OntheU (Steve Nelson)

 

10 Years of Bettnet.com

Yesterday, July 3, marked the 10th anniversary of this blog, Bettnet.com. I began on July 3, 2001, 2 months before 9/11 and 6 months before the Church’s “9/11” of the big explosion of the clergy sex-abuse scandal.

The first six years of my blog were marked by lots of personal commentary and news analysis of that scandal, especially as it related to the Archdiocese of Boston, which gained for this site a loyal readership to whom I am still grateful. To this day, I still encounter people online and in person who tell me that they have enjoyed my writing over the years.

The past four years of the blog have been marked by a much lower frequency of posting and a marked change in content. With the advent of four children in five years and a new job working for the Church, it meant I could no longer write about the subjects and I had less time for it anyway. In addition, the rise of social networks like Twitter and Facebook have given me other outlets for writing and interacting with people online.

This blog has become more of a hub of my online presence, the “canonical” place where all my Facebook, Twitter, Flickr, and other content connects back to and originates from. I’ve also spent more time writing about my political views, about technology, and about my family.

This doesn’t mean I’m not involved in Catholic new media. I’m just doing so professionally. I’m really proud of our work at the Archdiocese. Last week, I was interviewed by the Boston Herald after Pope Benedict sent out a tweet for the launch of the new Vatican website News.va. I was able to tell them about much of what of what we’re doing at the Archdiocese in this area.

In addition, I’m heavily involved in our radio show, The Good Catholic Life, especially all the online components of the show: the website, the daily transcript, the podcast, the email to subscribers, the Facebook page, and so on. (Incidentally, I’ll be on the show today at 4pm (1060AM in Boston, live streaming at WQOM.org, or for download later at our website) talking about new media and the Church.

This summer, I’ll also be going to World Youth Day in Madrid with the Boston pilgrimage. Our office will be documenting the trip at www.wydmadridboston.com. We’ll be posting daily blog updates and real-time photos, video, and status updates from the field so that the families at home can follow along on the pilgrimage. We think we’ll providing unprecedented coverage of the pilgrimage, especially for an organization of our size.

The indisputable nature of the Internet is that it’s always changing. For example, today Facebook is the 1-ton gorilla of social networking. Yesterday, it was MySpace. Tomorrow, it could be Google Plus. And so this website, which as been around longer than of them(!)—I set up my first page in 1996—is still evolving. What it is today, will be different from what it will be tomorrow, just as it’s different from what it was 10 years ago.

I’m just looking forward—God willing—to what it will be on the blog’s 20th anniversary in 2021.

 

Nine years old!

I can’t believe I forgot. I’m such a bad father. How could I forget this birthday?

This past Saturday marked 9 years since I started this blog: July 3, 2001.

As I do every year at this time, I reflect on how much has changed. Just a few months later would be 9/11 and then a few months after that the Scandal would break out. In that time span I would meet Melanie, we’d date, get married, and now are preparing for our 4th child. Nine years ago, I was the newly minted managing editor for Catholic World Report and today I’m working in New Media for the Archdiocese of Boston.

So many great blogs and bloggers have come and gone. Heck, nine years ago I think Tom and Rocco were only in high school and look at them now. They’re the leading lights of Catholic blogdom. But a lot of familiar names are still around too: Amy, Mark, Jeff, Jimmy, Kathy. (Note to self: Don’t make lists of names. You’ll leave someone out and hurt someone’s feelings.) And a lot of great blogs have started even in recent years.

Not to forget the great commenters as well. I miss the regular connection with so many of you who used to populate my comboxes when I was writing regularly and I want you all to know that I often think of you and wonder how you are doing now.

Back then there wasn’t such a thing as a Catholic blogosphere, or even a blogosphere at all. Now, there are thousands of Catholic blogs, all providing one facet in this great jewel of faith shared among strangers-who-are-friends.

I guess there will come a day when we don’t make blogiversaries, either because blogs will be as commonplace as telephones or because they will have become anachronisms replaced by something new and shiny.

Nevertheless, I’m glad to be here at Bettnet.com, whatever forms it takes and I most greatly value all the people I’ve connected with through it. This blog has changed my life for the better in so many ways and for that I’m grateful.

 

Who is that in the header?

Some folks have asked about the photos in the header of the Bettnet.com page. Starting from the left: A photo of Blessed Pier Giorgio Frassati (standing, right, holding a cigar and in a 3-piece suit) to whom I’ve had a spiritual devotion for many years; A photo of my dad soon after my parents were married, taken in either 1959 or 1960; A photo of my mom in the kitchen of my parents’ first apartment, again soon after they were married; Melanie and me on our honeymoon in Nova Scotia in 2005; Our kids, Isabella, Benedict, and Sophia, in Feb. 2010 at my in-laws’ home in Texas. Obviously that last photo will change as the kids grow up (and new ones join the fold).

 

Next Page →