Vitanuova for 2002 January

<M
Y> M>

A lot of things have been going on over the course of my trip, so here's a quick update, which necessarily leaves out a lot.

Happy palindromic year, the last such until 2112. A neighbor and I reasoned that about 1/(b^(n/2)) numbers of length n digits in base b are palindromic (although I think that's not exactly right).

I flew into Boston for the vacation and was reminded of Michelle a lot during my brief stay there, because of a memorable trip to that city with her.

I got some interesting Python code from Michael Hudson, who attacked the ZD problem enthusiastically, deploying both mathematical reasoning and programming acumen. Maybe I'll post some of his code here at some point; it came out much more efficient than mine.

It seems that the "Superpolynomial Subexponential Runtimes" song from the RSA patent expiration party is not the earliest example of such a song!

John Gilmore says, in connection with what I wrote about people who feared sound cards on account of the capabilities they gave to the public:

Actually this was the reaction of the telco folks (and the phone phreaks) to the ~1980 introduction of the Apple-Cat // modem by Novation for the Apple II. It could generate and detect touch-tones, and could also detect some sorts of signals on the phone line, like ringing tones or busy signals or voice. This was a 300 baud modem, with a 1200 baud half duplex (Bell 202) mode as a later extra add-on. It didn't even permit general D-to-A or A-to-D on the phone line; all modern modems do that. But it still worried people!

In Northampton, I saw my friend Sarah, who was busy packing most of the time I was around. She left for a year in Ghana as a Fulbright Scholar, and I'm really proud of her! I also saw my friends Maya and Brita, who are doing neat things a little closer to home, and I had a good time all around.

I got a cold while I was out here. Darn.

Ole Craig took me to lunch at Haymarket in Northampton. Thanks, Ole!

That was one stop, as it turned out, in the ritual of eating in many of my favorite Northampton restaurants. I'm still working on the Northampton restaurant circuit tour, and I'll have to come back again to continue it (not that San Francisco doesn't have great places to eat -- these places just have such sentimental value for me).

For the new year, I went off to Eric's house in Hopedale -- for my seventh annual new year celebration with him. This year, we cut back a bit on the technology, although I spent some hours writing a C program which would render the current number of seconds remaining in the year in a bit-mapped font on a text terminal. That was fun. The most impressive part was that I was writing it in ANSI C, in the vi editor, on a Macintosh laptop running Mac OS X. Their Unix implementation is that real and that good -- I had a perfectly functional C compiler, a Bourne shell, and a full set of BSD-style shell utilities.

I was really impressed with how much Unix has gone into Mac OS X. They even have an X server, a GIMP port, and ssh and sshd. I felt right at home in that terminal window, even as various graphical applications were running around me.

My program built a large array, and, converting the seconds count into its component digits, sequentially copied rows from the appropriate digits' bitmap arrays into the larger array. Then the filled part of the larger array was printed out, centered horizontally, after the screen was cleared. It worked great!

We played Monopoly (Eric won, displaying substantial business acumen) and a great game called Cranium which I first encountered at Anirvan's party. It was a small party, but a very nice time. I ate lots of cannoli, as I usually do if they're around.

There's a TradeWars 2002 game starting at dasbistro.com in honor of 2002; to play, just telnet to port 2002 of dasbistro.com.

I had heard something about a car which runs on vegetable oil, but until this trip to Massachusetts, I hadn't actually seen one. My mom and I noticed such a car on the highway around Holyoke; we also noticed that it was going about 70 miles an hour and passing trucks! One of the best parts is the bumper sticker promoting the project: "Drive Vegetarian".

I wrote a little search program for my father's book business so that you can do on-line searches through a portion of his inventory (from his own web site, rather than using ABE or BookFinder).

Danny Yoo has been writing Scheme in Python, and the result is his interpreter PyScheme. It's impressive. It can now run lots of useful things, like

((lambda (x) (list x (list (quote quote) x))) (quote (lambda (x) (list x (list (quote quote) x)))))

which is a Scheme program which prints itself out (a "quine").

I don't watch TV, generally, but my mom got me to watch Crossing Over with John Edward, which was impressive, but didn't really shake my impression that John Edward is a cold reader. Is there anyone today with the stature of Houdini who could go head-to-head with the television mediums by imitating their work?

One of the difficulties is that people who go to appear on John Edward's show are eager to be read by him and enthusiastic when he reads them -- and in general they believe or suspect that he has the ability to do that. So there's a difference between the reaction of a subject who takes the reader seriously as a psychic and the reaction of a subject who's just been told by the reader that the reader is a charlatan.

This alone could make this sort of competition impractical. Houdini could compete on spirit manifestations, because the spirit manifestations could be observed regardless of whether you believed in them, and they had no connection to the mental or emotional state of the participants in a seance. So one medium could produce a particular manifestation and Houdini could produce the same manifestation and then everyone except Arthur Conan Doyle would think that Houdini had debunked the medium. (Doyle, according to Gardner, would conclude instead that Houdini was a medium as well, despite Houdini's protestations to the contrary.)

This pattern doesn't cross over, so to speak, to Edward's style of mediumship. Here so much of the significance is in the subjects' reactions to the readings -- if they exclaim "Yes, my cousin Laura!" or "Oh, yes, that's my wife!" we think that Edward is doing a good job. If they care, we think so all the more. If a skeptical mentalist could do "the same reading", the subjects couldn't sustain the same sort of enthusiasm and interest. For all the power of the suspension of disbelief, we still perceive a difference between watching a play in which firefighters struggle to extinguish a blaze and observing that the theater we're in has just caught fire.

One of the most obvious manifestations of this difference is that almost all of Edward's subjects conceive of themselves as his allies: he's helping them get in touch with their lost loved ones. This is something for which they are profoundly grateful and something for which they may have waited for a long time. Everyone in the show I saw was certainly exhibiting this attitude. There were no challenges to the medium's authority or veracity, no criticism of him, no specific questions from the subjects to test him (Rosabelle, believe!).

I just can't imagine admittedly-fraudulent mediums' subjects showing that same sort of gratitude, co-operation, and encouragement!

Leonard has some pictures from the party; I show up in a few of them. They're funny!

I agree with Sumana's answer to Hofstadter's problem of explaining what it means for a number to be a power of two. (There is no loophole there; an odd number times an odd number always yields another odd number.) Another possibility is to write

prime(x) = not exists a such that exists b such that a!=1 and b!=1 and a*b=x.

power_of_two(b) = not exists f such that exists d such that f!=2 and prime(f) and d*f=b.

To yesterday's "prime(x)" we would need to prepend "x!=1 and".

I took up Martin Pool's long-time recommendation and bought a copy of the CD Lift Your Skinny Fists Like Antennas To Heaven by Godspeed You Black Emperor!, whose name, like Yahoo!'s, contains an exclamation point (according to some people's typographical conventions). It is actually a two-CD set. Parts of it seem very good to me. I still haven't paid enough attention to the second CD, but I really enjoyed the first.

It appears that you can find Godspeed You Black Emperor on the net.

Thanks for going CD-shopping with me, Brita!

I had a bit of a "this day in history" experience while writing a letter in the Logan airport. (I got home OK and am refraining from writing Yet Another Airport Security Commentary in my diary for the time being. If I don't stop myself, I will write something about airport security every single time I get on an airplane, which will be often). Leonard's diary does this for him automatically, and I think that's what prompted Sumana to mention that she met him a year ago.

Thanks to my own web diary, I can look up some of what I was up to a year ago. I was still working for Linuxcare, and I thought that too obvious to mention. I had just written a poem called "Tenebra Appropinquante: A Year 2000 Problem", which I still have and have still not published. (That poem, in turn, looked back at what I was doing in early January 2000, now two years ago.) I was working on a great hardware project (a 480-watt 7-segment incandescent digital display, which was used in counting down to the new year). I received some powerful electrical shocks because I worked on telephone and lighting systems with live current without wearing gloves. My arm injuries were very troubling and very different from what they are today (numbness rather than shoulder pain, for example).

You could try browsing my web diary from a year ago to see what I thought was worth sharing at that point. I hadn't begun this diary (vitanuova), so everything there is originally taken from Advogato.

Mailing a couple of postcards, I flew to San Francisco from Logan via Midway on ATA (famous for being cheap and also for being the only U.S. airline whose name is a Hayes modem command). Midway seems extremely lame and boring compared to O'Hare. For one thing, all the concessions are run by the same company! So for example you might see five shops which sell sandwiches and drinks, but each of the shops is selling exactly the same sandwiches and drinks. At O'Hare, there are artworks on display, there are several different restaurants (although I didn't actually find any I was extremely enthusiastic about), and there's more of a variety of things other than terminals. When you have to spend some hours inside a building waiting, that's helpful.

I promised to forego the security discussion, so I will.

On the planes, I took a nap, and watched most of Along Came a Spider without sound (amazing how you can still understand it -- I once watched The Hot Zone without sound on an airplane and similarly managed to understand it). The only tricky part was the occasional plot twist, because sometimes the details are explained only through dialogue. I also read most of The Fellowship of the Ring, after buying a paperback copy of The Lord of the Rings in an airport bookstore at Midway.

It was amazing that the airport bookstore had almost no books I wanted to buy. Practically everything was either recent novels (trade paperback, mainly mass-market mysteries and thrillers and romances) or self-help or tips for business executives. Is that really all that bookstores sell to "regular people"? I noticed that there were no technical books and no non-fiction about anything (nothing narrative, nothing polemical, nothing historical or critical). What's up with that?

Right before my trip, I bought Bamford's Body of Secrets, which is his updated book about the NSA. So now I have both The Puzzle Palace and Body of Secrets and am strangely unenthusiastic about reading either one. Maybe I have soaked up too much NSA history and passed into a cypherpunk mode in which I only want to hear about contemporary legal and technical issues in privacy and surveillance. On the other hand, one thing that's irritating about many cypherpunks is their lack of knowledge of history -- so I should be sure to avoid the trap of paying attention to the present day to the exclusion of the past.

The ridiculous thing is that I don't even play pool.

Speaking of butterfly effects, my father's friend's decision to drive me all the way to Logan instead of dropping me off at Framingham meant that I waiting longer in the airport, felt more bored, and probably consequently was more likely to buy The Lord of the Rings at Midway (having already written my postcards at Logan, and hence not having them available to write there). This, in turn, will lead to my having read The Lord of the Rings, which may affect things like whether, or to whom, I get married, or how many years I live.

I was thinking about that because...

... I read Einstein's Dreams by Alan Lightman on the first plane. Someone (my father?) got me a signed copy when it came out in 1993, and I'd read it then, but I didn't appreciate it so much at the time. Now I think it's absolutely wonderful. Some portions are extremely Borges (down to Lightman and Borges imagining similar scenarios); in fact, a few of the chapters would have been entirely at home in any Borges short story collection.

One of the themes which persists through the whole book is an admonition to love and take advantage of life and change. The sad characters in the dreams are repeatedly those who shrink from adventure and experience -- although the exact consequences of doing so depend a great deal on the particular world in which they find themselves.

One of the dreams had a Sliding Doors-style sequence in which three different histories befall the same man at once. This and other material in the book serves to make it clear that something like whether you have read The Lord of the Rings or not could actually determine how long you live, and how, and with whom.

As Malcolm X says on that old Printers Inc. bookmark, "People don't realize how a man's whole life can be changed by one book".

Two years ago, there was a report that Xerox color photocopiers would embed a hidden record of each copier's serial numbers into each copy it produced. Although this was fairly widely documented, some people persist in disbelieving it. So today, in the course of a discussion about the IFPI, SIDs, and trade sanctions against the Ukraine, I decided to ask Xerox. Xerox's response clearly indicates that the claims are true:

The Secret Service has the ability to track a particular document to the source equipment that has produced a suspect image. This information is used for criminal investigation purposes only. The Secret Service does not provide this information to private individuals or companies, nor do they allow other parties to access this information. To detail how these anti-counterfeiting systems work would only encourage the illegal acts they are designed to prevent.

Praveen invited me to his friend's place, and we went off to watch The Lord of the Rings, which turned out to be sold out. So we went and had dinner at a place called Golden Era, in the Tenderloin, a vegetarian Vietnamese restaurant to which Wolfgang took me on the last night she lived with me in 1999.

Golden Era is great! Go there for dinner!

After this, Praveen's friend taught me how to play Go.

The famous Moxi (not to be confused with Moxie, though the company's jackets amusingly enough have orange letters on them) revealed itself.

I finished reading The Lord of the Rings.

My right arm got pretty sore again.

We got some unfortunate news at EFF which will probably be announced fairly soon -- and I tried to stay on top of other things.

Biella was back from her vacation, and she and Zack and I went to the BAD meeting in Berkeley, at Au Coquelet on Shattuck.

After that, I talked to Zack for a while, and felt sad, and went back and read some of the poems I wrote in 1998. As always, I was amazed: so, as it says on my wall (thanks, Willow),

quaecumque enim scripta sunt ad nostram doctrinam scripta sunt.

Romans 15:4

(Indeed, all the things that were written beforehand were written in order to teach us.)

I've written some Python code which finds port pairs, among other things, by parsing interrogation-mode dumps. When it's a little cleaner and more capable, I'll publish it.

I'm going to go to MacWorld at the Moscone Center (to work in the EFF booth) and also plan to teach a Python class at EFF in the evening.

A slashdot article mentioned that the CETI project has sent a message into space. I found it was pretty easy to view the message with some Unix tools and a bit of Python, which we can only hope has been invented on other planets. Here's what the message looks like to me -- though I haven't tried to interpret the parts of it which are mathematical and quantitative yet, which would be another good project. Note: there was artificial noise added to this signal. Also note: you need a really wide browser or screen (over 127 characters) to view this properly. (You might also be able to see it by saving it into a text file and then printing it out on a printer using a monospaced font with a small point size.) Also note: there are bitmapped sketches of nude people here.

.                    .       .   .   .   .   .   .    .                             .   .   .   .   .  . .  .   .   ...       .
.                           . . . .   . . .  .       .                           .  .        . . . . .      .       .         .
.                     . ..   .   .   .   .    . ..    .                              . ..   .   .   .  . .   . ..   . .       .
.                                            .         .                            .                       .      ....       .
.                      .                       .    . ..                              .                       .     . .       .
.                      .                       ..   ....                              ..                      ..   .          .
.                    .. .                    .....  . ..                            .....                   .....   .         .
.                                                                                                                             .
.                                                                                                                             .
                 .   .   .   .   .  . .  .   .   .  . .                     .   ..  .   .   .   .  . .   .  .   .             .
                 ..  .      . . . .       .         ...                      .  ..  .      . . . .  .   .   .      . .         
.                     . ..   .   .  . .  .    . ..     .                             . ..   .   .  . . . .   . ..   . .       .
.                    .                               . .                            .                       .       ...       .
.                ..    .                       .    .                           ..    .                       .     ...       .
.                ..    ..                      ..     .                         ..    ..                      ..   .           
.                     ....                   .....   ...                            .....                   .....    .        .
.                                                                                                                             .
.                                                                                                                             .
.            ..  ..  .   .   .  . .  .   .   .       . .                ..   .  ..      .      . .  .  .    .   .    ..        
.            ..   .         . .  .  . . . .  .      ..                  ..  ..  ..  .      . .  .  .    .   .      . ..        
.                     . ..   .  . .  .   .    . ..   . .                             . ..   .  . .  .  . .   . ..  .  .       .
.                    .                       .      ....                                                    .      .  .       .
.            ..   .    .                       .    ...                     ..  ..    .                       .    ....       .
.            ..  ..    ..                      ..    ...                    ..  ..     .                      ..    ..        .
.                    .. ..                   .....   ...                            .....                   . ...    .        .
                                                                                                                              .
.                                                                                                                             .
.        ..  ..  ..          .    . . .  .   .   .     .            ..  ..  ..  ..  .   .   .  . . . . . .  .   .   .         .
.        ..  ..  .   .      . .  .   .  . .  .        ..            ..  ..  ..  ..  .      . .  .   .   .   .      . ..       .
.                     . ..   .  . . .    .    . ..    .                              . ..   .  . . . . . .   . .     ..       .
.                    .                       .      ....                            .                       .      .          .
.        ..  ..  ..    .                       .    .                   ..  ..  ..    .                       .     ..        .
.        ..   .  ..    .                       ..     .                 ..  ..  ..     .                      ..    . .       .
.                    . ...                   .....  .. .                            .....                   .....  .  .       .
.                                                                                                                             .
                                                                                                                              .
.                    .   .  . .  .   .   .   .   .  . .          .  ..  ..   .  ..  .   .  . .  .   .  . .  .   .   ..         
.    .   ..  ..  .   .       .  . . . . . .         .           ..  ..  ..  ..  ..  .       .  .   . .  .             .       .
.    ..  ..  ..  ..   . ..  . .  .   .   .    . ..  . .                              . ..  . .  .   .  . .   . ..  ..         .
.                    .                              ..                              .                       .       .         .
.                      .                            .               ..  .   ..  ..    .                       .       .       .
     ..  ..  ..  ..    ..                      .    .. .            ..  ..  ..  ..    ..                      ..     .        .
.    ..  .   ..   .  ....                    .. ..   . .                            .....                   .....  .          .
.                                                                                                                             .
                                                                                                                              .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.    ..  ..  .    .  ..  .   .   ...   .          ..  ..   .  .   .        ..  . .       ..  ..  ..  ..  .   .   . . . .       
.    ..  ..  .   ..  ..  .       .    .           ..  ..  ..  ..  .            .         ..  .   ..  .   .           ...      .
.                         . .    . .   .                           . ..   . .  . .                        . ..   . .    .      
.                        .      ....    .                         .      .... ....                              ....  . .      
.    ..  ..  ..  ..  ..    .     . . . ..         ..  ..  ..  ..    .     . .  . .       ..  ..  ..  ..    .     .   .        .
.    ..  ..  ..  ..  ..    ..   .     ...         ..  ..   .  ..    ..   .    .          ..  ..  ..  ..    ..   .      .      .
.                        .....   . . . ..                         ... .   . .    .                       .....   . .  ..      .
.                                                                                                                             .
.                                                      .  ..  ..                         .   ..  ..  ..                       .
                                                      ..  ..  ..                         ..  ..  ..  ..                       .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.    .   ..  ..   .  ..  .   .   ..   . .     ..  .   ..  ..  ..  .   .   ...   ..   .   ..  ..  ..  ..  .   .  . .    .      .
.    ..   .  ..  ..  ..  .       .   ..       ..  ..  ..   .  .   .       .   . ..    .  ..  ..  ..  ..  .      ...   .        
.                         . ..   . .  . .                          . ..   . . .  .                        . .      .   .      .
.                        .      .... .. .                         .      .... .  .                       .       . .          .
.    ..  ..  ..  ..  ..    .     . .  ..      ..  .   ..  .   ..    .     . . . ..   ..  ..   .  .   ..    .         . ..     .
.    ..  ..  ..  ..  ..    ..         ...     ..  ..  ..  ..  ..    ..   .     ..    ..      ..  .    .    ..     .  ....     .
.                        .....     .  ...                         ... .   . .                            . . .   ...   ..     .
.                                                                                                                             .
.         .   .  ..  ..                       ..  ..  ..  ..  ..                     .   .   .    .  ..                       .
.        ..  ..  ..  ..                       ..  ..  ..  ..  ..                     ..  ..  ..  ..  ..                        
.                                                                                                                             .
.                                                                                                                             .
.                                                                                    ..  ..  ..  ..  ..                       .
.                                                                                    ..  ..  ..  ..  ..                       .
.                                                                                                                             .
                                                                                                                              .
.    . .   .       ..   .      ...   .     ... .       ...   ..    ...  .      ..   ..    . .  .      . .   ..    .     ...    
.    ...   .     . ..  . ..    .    .      .   . .     .   . ..        . ..    .      .   ...  . .    ...     .   . .   .     .
.       .   . .  .  .     .    .    .      . .  . .    . . .  .    . .   .     . . ..        .  . .      . ..      . .  . .   .
.       .   ...  .  .         .. . ....   ....  ...   ...  .  .   . .. .      ....  .      . .  ...    . .  .      ... ....   .
.    .       ..   ...    .     . .  . .    . .  ...    . . ....    .    ..     . .    .   .     ...   .       .    ...  . .   .
.          .      ..    . .   .    .      .    .      .     ..    .       .   .      .      .  .        .              .      .
.     ...    .     .   .  .    . .  . .      .   .     . .         . . .  .    . . .       ...   .     ... .        .   . .   .
.                                                                                                                             .
.                                                                                                                             .
.    .     .      . .  ...    . . .       . .  .       .. .        .   ..       .  ...      .  .           ...    .   .       .
     . .  . ..   ..          ..   . .    ..   . .    .    . .    . ..    .     ..  .       .. . ..   . ..  .     . .. . .     .
.     . .   ..    . .  . .    . .  . .      .   ..   .     . .   .  . ..       ..  . .     ..   ..      .  . .     ..  . .    .
      ... .      .. . .. .   ....  ...   ...  .      .  .  ...   .  .  .     .... ....   .... .      .    ....   .     ...     
.     ...  ..    ...         ...   ...   ...   ..    ....  ...   ....    .   ..    . .   ..    ..     ..   . .    ..   ...    .
.    .     . .    ... .       . .         ...  . .    ..  .       ..    .    ...  .      ...   . .    .   .       . . .       .
.      .  .  .    ...  . .    ...   .      .. .  .     .    .      .  .      .. .  . .   .. . .  .   .  .  . .   .  .   .     .
.                                                                                                                             .
.                                                                                                                             .
.     .          . .. .      . ..   .                                                                                         .
.    . ..    .   .    . .    .       .                                                                                        .
.      .. ..     . .   . .   . .  ..                                                                                          .
.    .     .     .. .  ..     . .  .                                                                                           
.     ..     .         ..    .                                                                                                .
.     . .   .     . .        .. .                                                                                             .
.    .  . .       . .   .     . . .                                                                                           .
.                                                                                                                             .
.                                                                                                                             .
    .   .   .      . . . . . . . .  .  . .  .                                                                                 .
.  . . .   . . . .  .   .   .   .    .  .  . .                                                                                .
.   .       .   .  . . . . . . . .  .  . .  .                                                                                 .
.                                                                                                                             .
.                                                                                                                             .
... .  ...  .....................  ..................................... ...  ..  .. ............ .............................
.                                                                                                                             .
.                                                                                  .   .   .  . .  .   .   .   .   .   .   .  .
.                                                                                 . . . . . .  .    .   . . . . . . . . . . . .
.                                                                                      .   .  . .  .   .   .   .   .   .   .  .
.                                                                                                                             .
.                                                                                                                             .
.     ...   .    ...  .   .  . .              ...  ...   ...  .   .    .              ...  ....  ...  .   .   ...             .
.     .    . ..  .    .      . .              .      .   .    .       .               .   .. ..  .    .       .                
.     . .   ..   . .   . .      .               . .  .   . .   . ..    .              . .    ..  . .   . ..   . .             .
.     ... .  .. ....  .       . .             ...     . ....  .         .            .. . ..... ....         ....             .
.     . . .  ..  . .    .    .                . .  . .   . .    .    . ..             . .  ....  . .            .             .
.    .      ... .       ..     .                  ... . .       ..   .. .            .     . .. .       ..   .                .
.     . . .. ..  . .  .. ..   ...               . ...    . .   ...   . ..               . .. ..  . .  .....   . .             .
.                                                                                                                              
.                                                                                                                             .
.     ... ...   . .   .   .  .                ...  ...  . .   .   .   ..              ...  .... . .   .   .  .                .
.     .    .  . ...          . .              .      .  ...   .       .               .   .. .. ..    .      ...              .
.     . . .....    .   . ..   . .             . . . ..     .   . ..   . .             . .  . ..    .   . ..     .             .
.    . .. .  ..  .    .       ...             ...     .  . .  .      ....             ... . ...  . .  .       . .             .
.     . . .  .. .       .     ...             . .  . .  .       .     . .             .    .... .       .                     .
.    .      ..    .     ..   .               .    ... .   .      .                   .       ..   .     ..     .              .
.     . .  . ..    .  .....    .              . . ...    ...  .....   . .             . . ..  .  ...  ... .   ...             .
.                                                                                                                             .
.                                                                                                                             .
.    .    ...   . .       .    ..            .     ...  . .   .   .   . .                  .  . . .   .   .     .             .
.    . .      . ...   .        ..              .     .  ...   .       .              . .  .. .. . .   .        ..             .
.     . . .....    .   . ..  .  .             . . . ..         . ..     .             . .  . ..    .   . ..    ..             .
.     ... .  ..    .         .  .             . .     .  . .  .      ....             ...  ....  . .  .      ....             .
.     ... .  .. .       .    ....              ..  . .  .       .     . .             ...  ..   .       .    .                .
.    .      ...   .     ..    ..             .    ...     .     ..   .               .       ..   .     ..   ...              .
.      .  .. ..  ...  .....    .                  . .    ...  .....   . .              .   . ..  ...   ....  .. .             .
.                                                                                                                             .
.                                                                                                                             .
.     . . ...   .     .   .   .               . .  ...  .         .   ...               .  .... .     .   .   ..    .         .
.     .    . .. . .   .      . ..            .       .  . .           .              ..   .. .. . .   .       .   . .         .
.     . . ... .  . .   .  .    ..             . . . ..   . .     .    . .             . .  . ..  . .   . ..   . .    .        .
.    .... .  ..  ...  .      .               ....     .  ...  .      ....            .... .....  ...  .      ....  . .        .
.    ..   .  ..  ...    .     ..             ...   . .   ...    .     . .            ...   ....  ...          . . .           .
.     ...   ..  .       ..    . .             ...  .. . .       ..   .                ..   .  . .       ..   .                .
.     ... .. .    .   . ...  .  .             . . ...     .   .....   . .             ... ..  .   .   .....   . .  ...        .
.                                                                                                                             .
.                                                                                                                             .
.     ... ...     .   .   .   ...             ...  ...    .   .   .   ...             ...  ....   .   .   .    .              .
.     .    . ..  .    .       .                      .   .    .       .               .   .. ..       .       .               .
.     . . .....   .    . .    .               . .   ..    .    . ..   . .             .    .  .   .    . ..    .              .
.    .... .  ..    .  .      ....             ..      .       .      .. .            ....  ....    .  .         .             .
.     . . .  .. . ..    .     .               . .  . .  . ..    .       .             . .  .... . ..    .    . ..             .
.    .      ... ....    ..   .               .    ... . ....     .   .                     . .. ....    .    ....             .
.     . . .. .. . ..  .....     .             . . ...   .  .  ....    . .             . . .. .. . ..  .....  . ..             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
                                                                                                                              .
.     ... .      ...  .   .   ...                  ... ..    .     .   .    .      . .    .    .    .    .      .             .
.         . . .  .    .       .                    .   . . . . .   .       .   ..    . .  . .  .    . .           ..          .
.     . . . ..     .   . ..   . .                  . . . ..   . .   . ..    .  .      . .  . .  . .  . .    .  .  ..          .
.    ...    ..  ...          ....                 ...    ..   ...  .         .     .  ...  ...  . .  ...  ..      .           .
.     . . .. .   . .    .     . .                  . . .. .   . .    .    . .. . ...  ...   ..  ...  ...  ...    ...          .
.            .. .       .    .                    .       .. .       .    ....  .  . .    .    .    .    .     .   .          .
.     . .    ..  .    .....   . .                  . . . ...   .   .....  . ..  .           .    .    .    .     . .          .
.                                                                                                                              
.                                                                                                                             .
      ...  .    .     .   .    .      .   ..       . . ..    .     .   .   ...     . .    .    .    .    .      .             .
.     .   . . .  ..   .       .   ..      ..      ..   . . . . .   .       .         . .  . .  .    . .  . .   .  ..          .
.       . . ..     .   .  .       .     .  .       . . . ..   . .   . ..   . . .      . .  . .  . .  .    . .  .  .           .
.    ....    .     .  .         .  .  . .  .      ....   ..   . .  .      ....  .  .  ...  ...  ...  ...  ..      .           .
.     . . .. .  .       .    . .. . ... ....      ..   .. .   . .    .     . . . ..   . .  ...  . .  ...  ...    ...          .
.    .       .    .      .   .... ... .  ..        ...    .. .            .    . .   .    .         .    .     .   .          .
.     . .   ..   ...  .....  . ..  .               ... .  ..   .   .....   . .  .      .         .    .    .     . .          .
.                                                                                                                             .
.                                                                                                                              
          .     . .   .   .   ...     .   ..        .. .      ..   .   .    .      .  ...  ...   ..  ...  ...   .             .
.    . .  .   . ..    .       .   ..    . ..       .   . . .    .  .       .   ..     .    .    .    .    .    .  ..          .
.     . . . ..         . ..   . . .     .  .       . . . .   ..     .  .    .  .      . .  . .  . .  . .  . .  .  ..          .
.     ...   ..   . .  .      ....  .  . .  .       ..    ..   .    .         .  .  . .... . .. .... .... ....     .           .
.     ... .. .  .       .     . . . ... .. .       .   ..       .    .      .. . ...  . .  . .    .  . .  . .    ...          .
.    .       ..   .     ..        ... .  ..       .       .    .     ..   .... . .   .    .    .    .    .     .   .          .
.      .  . ...  ...  .....   . .  .      .        . . . ..  .     .....  . ..  .     .    .    . .  . .  . .    . .          .
.                                                                                                                             .
.                                                                                                                             .
.     ... .       .   .   .  .   .                . .  ..    .     .   .    .      .    .    .    .    .    .   .             .
.         . . .  .    .      ...                  ...  . . . .     .       .   ..      ..    .   ..   ..   ..  .  ..          .
.     .   . ..    .    . ..    ...                   . . .    . .   . .     .  .       ..   ..   ..   ..   ..  .  ..          .
.    ....   ..     .         .   .                 . .    .   ...  .         .  .  . ...  ....  ... .... ....     .           .
.     . .  . .    ..          . ..                .    .. .   ...    .    . .. . ... ..    .        ..   ..      ..           .
.    .       .. .. .    ..   .  ..                  .     .. .       ..   .... ... . ...   ..  ...  . .  ...   .              .
.     .   . ... .  .  .....  .....                 ... . ...   .   .....  . ..  .    .. . .. . ..   ..   .. .    . .          .
.                                                                                                                             .
.                                                                                                                             .
.      .   ...   ...  .   .   . .   ...            ... ..     ...  ...  .   .           .   .   ..    .   ..    .    .        .
.     .      .   .    .         .   .              .   . .    .    .    .       .   ..     .      .  .      .  .    .  ..     .
.         . ..   . .   . ..  . ..   . .            . . . ..     .  . .   . ..    .  .       .  ..     .  .      .   .  ..     .
.       .     . ....  .          . ....           ....   ..   ... ....  .         .  .  .    .  .      .  .      .     .      .
.    . ..    .   . .    .     . .   . .            . . .  .   . .    .    .    . .. . ... . ..      . ..    . . ..    ...     .
.    .... ... . .       ..   ... . .              .       .. .    .       ..   .... ...   ....   .  ....   .  ....  .   .     .
     .  . ...    . .  .. ..  ...    . .              . . ...  . .  . .  .  ..  . ..  .    . .. .    . .. .    . ..    . .     .
.                                                                                                                             .
                                                                                                                              .
.                                                                                                                              
.                                                                                                                             .
.           .                                                                                                                 .
.          .                              .                                                                                   .
.           .                            .                                                      ...                           .
.     ..     .  .   .   ...               .                                                                                   .
.         . ..  .                  . .     .  .   .  . .   .   .   .   .   .   .                . .                           .
.     . . ....     ..   . .        ...  . ..         ...   .      . . . . . . . .         .    ....  .   .                    .
.    .... . ..  .      . ..           . ....   . ..     .   . ..   .   .   .              . .   .    .      . .               .
.     . .         .     . .         . . .  .  .       . .  .                                 . .      . ..   . .              .
.    .             .   .           .            .    .       .                             ...    .  .       ...              .
.     . .       .....   . .          .          ..     .     .                             ...         .     . .              .
.                                   ...       .....   ...  ....                           .            .    .                  
.          ..                                                                               .        .....    .               .
.          .                             ...                                                                                  .
.          . .                           .                                                     . .                             
.     ... ....  .   .   ...              . .                                                   ...                            .
.     .    . .          .          . .    ..  .   .     .          .   .  . .  .                  .                            
      . . .      .  .   .          ...   . .  .       .    .      .   . .  .  . .         .     . .  .   .   .                .
.    ....  . .  .      .. .           . .        ..   . .   . ..   .   .  . .               .  .     .         .              .
.     . .         .     . .         . .  . .  .      ....  .                               . .   .    . ..  ..                .
.                 ..   .           .            .    ...     .                             . .  ...  .       .                .
.     . .       .   .   .            .          ..    ...    ..                            ...         .       .              .
.                                   ...       .....   ..   ... .                          .             .     .               .
.         . .                                                                               .        . ...  .                 .
.         ...                           . .                                                                                   .
.            .                          . .                                                    .                              .
.     ...  . .  .   .   ...                .                                                   . .                            .
.     .                 .          . .   .        .  . ..  .   .   .  . .  .   .                . .                           .
.     .     .    . .    . .        . .  .     .      .     .      . .  .  . . . .         .     ...  .   .  . .               .
.     ...  ..   .      ....           .   .    . .   . .    .  .   .  . .  .   .          . .   ..   .      ...  . ..         .
.     . .                           . .  . .  .      .. .  .                               . . .      . ..     .   .          .
.    .            ..   .           .            .    .       .                             ...   .           . . .            .
.     . .       . ...   . .          .          ..   .. .    ..                            ...         .          ..          .
.                                   ...       .....   . .  .....                          .            .      .   .           .
.         .                                                                                 .        .....    ..    .         .
.         . .                           .                                                                                     .
.          .                            . .                                                     . .                           .
.     ...  ...  .   .   ...              . .                                                   ..                              
.     .    ...  .       .          . .   . .  .   .    ..  .   .  .            .                . .                            
.     . .        . ..   . .        ...   ...  .      .             .  . . . . . .         .    ....  .   .  . ..  ...         .
.     ...   .   .      ....           . .      . .   . .    . ..  . .  .   .   .            .  ...   .            .           .
.     . .               . .         . .   .   .      .. .  .                               . .  ...   . ..  . .   . .          
.    .            ..   .           .            .    .       .                              ..  ...  .      .. . ....         .
.     . .       .....   . .                     ..   .. .    ..                            ...         .    .     . .         .
.                                   ...       .....   . .  .. ..                          .             .   .. . .            .
.                                                                                           .        .....   . .  . .         .
.                                                                                                                             .
.                                                                                                                             .
.         . .                                                                                                                 .
.         ..                                        .                                                                         .
.            .                                      . .                                        . .                            .
.     . .  . .  .   .   . .    .                       .                                       ...                            .
.    .          .       .     ..                 ..  ...  .   .   ... . .    ..                                               .
.     . .   .    . ..   . .   ..               . ..  ...  .       .   ...  . ..            ..   . .  .   .  . ..  .           .
     .  .  ...  .      .. .  . .               .  . .      .  .   . .         .              . .     .      .     .           .
.    ...          .     . . ..                 .  .   .   .      ....      .  .           ..     .    . .   . .   . .         .
.     ...         ..   .    . .                ....         .     . . .    ....            .    ...  .      .. . ....         .
      ...       .....     . .. .                .           ..   .      .    .               .         .    .     . .          
.                                                .        .....   . .  ...                  .          ..   ..   .            .
.                                                                                         .            ...   . .  . .          
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                              
.               ...                                                   . .                                                     .
.               .                                                     ...                                                     .
                . .                                                      .                                                    .
      ...   .  ....  .   .   ...   .                         ...   .   . .  .   .   ...   .    .                              .
.     .    .    .    .       .    .                          .    .   .     .       .    .    .                               .
.     . .   .  .      . ..   . .   .                         . .   .    .      ..   . .   .    .                              .
.     ...         .  .      ....    .                       .  .       ...  .      ....    .    .                             .
.     .     ..         .     . . . .                         . . . ..         .     . . . .  . ..                             .
.    .    ....         ..   .    ....                       .    . ..         ..   .     ... ....                             .
.     . . . ..       .....       . ..                        . . . ..       .....   .   . .. . ..                             .
.                                                                                                                             .
.              .                                                       ...  . .                                               .
.              .                                                         .  ...                                               .
.               . .                                                   . ..     .                                              .
.     ..    .   ...  .   .   ...   .    .                    ...   .      .  . .  .   .    .      .   .   ..                  .
.     .    .    ...          .    .    .    .                .    .    . .  .     .           ..     .    .                   .
.     . .   .  .      . ..     .   .    .    .               . .   .  ... .   .    . ..    .  .       .   . .                 .
.    ....    .   .   .      ....    .    .    .             ....    . ...    ...  .         .  .  .    . ....                 .
.     . . . ..         .     .     .. .  . . ..              . . . ..               .    . .. . ... . ..  .                   .
.    .    ....         ..   .    .... .... ...              .    ...                 .   ....  ..    ... .                    .
.     . . . .        .....   .   . .. . .. . ..              . . .  .             .....  . ..  .    . ..  . .                 .
.                                                                                                                             .
.                                                                                                                              
.                                                                                                                              
.                                                               . .                                                           .
.                                                               ...                                                           .
.                                                                                                                             .
.                         ...     . . .  .      . ..   ...   .   . .      .    .. . .  .                                      .
.                         .   ..    ...  .     .. ..   .    .   .     .       .   ...    .                                    .
.                         . . .        .  . .   .  .   . .   .    .    . ..   .      .  . .                                   .
                          ...  .  .  . .  ...   .. .  ....       ...  .      ....  . .  ...                                   .
.                         . .   ... .     ...   ....   . . . ..         .     . . .     ...                                   .
.                        .    ... .   .  .      . ..  .      ..         ..   .         .                                      .
.                         . .         ..   .   .. ..   . . . .        .....   .    ...   .                                    .
.                                                                                                                              
                                                                                                                              .
.                                                     ...  . .                                                                .
.                                                       .  ...                                                                .
.                                                    .  .     .                                                               .
.                         . .   ..   ....   . .   .      .  . .      .    .      .  . .   ..                                  .
.                        ..   . .   .. ..   .    .      .        .       .    .    ..   .  .                                  .
                          . . .  .   . ..   . .   .  ... .        . ..    .  .      .   .                                      
.                        .... .     .. ..  .. .    . ...    ...  .         .  .  . . .. .                                     .
.                         ..  ....   . ..   . . . ..               .    . .. . ...  ..  . ..                                  .
.                         ...  ..    . ..  .    ....               ..      . ...    ...   .                                    
.                         ...   .   ..  .   .   . ..             . ...  . .   .     ...   .                                   .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
                               ... .     .                   .      . .    .    .                                             .
.                              .   . . . . .                .   ..    . .  . .  . .                                           .
.                              . . . ..   .                  .  .      . .  . .  . .                                          .
.                        . .. ....   ..   ...  .   .  . ..    .  .  .  ...  ...  ...  .   .  . .                              .
.                        .     . . .. .   ...  .      .    . .. . ...   ..  . .  ...  .      ...                              .
.                        . .          ..        . ..  . .  .    ... . .    .    .      . ..     .                             .
.                        .. .  . . . . .   .   .      .. . . ..  .      .         .   .       . .                             .
.                        .                       .    .                                 .    .                                .
.                        .. .                     .   .. .                              ..     .                              .
.                         .                    .....   .                               ....   ...                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                              ... ..    . .                 .      .   ..                                                    .
.                              .   . . . ...                .   ..    . ..                                                    .
.                              . . . ..     .                .  .     .  .                                                    .
.                         . . ....   ..   . .  .   .   . .    .  .    .  .  .      . .                                        .
.                        .     . .  . .        .      ..   . .. . ... ....  .      . .                                        .
.                         . . .       ..   .    . ..   .    ... ..  .  ..    . ..     .                                       .
.                          ..    . . . .  ...  .      . .. . ..  .      .   .       .                                         .
.                        . .                     .    ..                      .    .                                          .
.                         ...                    ..      .                    ..                                              .
                           ..                  .....   ..                   ....    ...                                       .
.                                                                                                                             .
                                                                                                                              .
.                                                                                                                             .
.          . . ..    . .                 .      .   ..                                                                        .
.          .   .     ...                .   ..    . ..                                                                        .
.          . . . ..     .                .  .     .  .                                                                        .
.    . .   ...   ..   . .  .   .  . .        .  .    .  .   .   ..         . .  ...  . . . .  .      ..        .              .
.    ..    . . .. .  .     .      ...  .  . . ... ....  .       .   ..    ..    .   ..   ...  . .  . .    ..  .  ..           .
.       . .       ..   .    . ..     . .... ... .  ..    . ..   . . .      . .  . .  .      .  . . .  .   ..  .   .           .
.       .  . . . ...  ...          . . . ..  .      .   .      . ..  .  . .... .... ....  . .  ... .    . ..     .            .
.    .                       .    .                       .     . . . ... ...   . . ...  .     ... .... ..        .           .
.                            ..     .                     .    .    ... .  ... .     ...   .  .     ..  . .   .               .
      ...                   .. .    ..                  .....   . .         ..  . .  ...  ...   .    .  ..        .           .
                                                                                                                              .
                                                                                                                              .
                                                                                                                              .
.                                             ..       . .    ..  .   .                                                       .
.                                         ..    . . .  ...  . ..    . . .                                                     .
.                                         .. .      ..    . .  . ..    . .                                                     
.                                  . .  ...   .   .     . . .  .       ...   ...   ...                                        .
.                                  . .  ..      .  ..  .    . ..    .  ...     .   .                                          .
.                                       ...    .   . .   .   .     .        . ..   . .                                        .
.                                   . . .. . .    .  .  ...   .         .       . ....                                        .
.                                  .                                         . .   . .                                        .
.                                    .                                      ... . .                                           .
.                                   ...                                     ...    . .                                        .
.                                                                                                                             .
.                                                                                                                             .
.   .   .  . .   .  .   .   .   .  . . . .  .                                                                                 .
   . . . .  .   .  . . . . . . .    .   .  . .                                                                                .
.   .   .  . .          .   .   .  . .   .                                                                                    .
.                                                                                                                             .
.                                                                                                                             .
 . ..... ............... .... ............. .. .. . ... ......... ..... ... ........... ........ .......... . .................
.                                                                                                                             .
.                                                                                 . . .   . .  .  . . . . . .  .  . .  .      .
.                                                                                  .   .   .  . .  .       .  . .  .  . . . . .
.                                                                                 . . .   . .  .  . .   . . .  .  . .  .   .  .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
                                                                                                                              .
.                                                                                                                             .
.                    .........                   ...                                                                          .
.                 .. .       ....                         .....                                                               .
.                .               ..               .     ...   ...                                                             .
.             ..                   ..             .     .       .                                                             .
.           ...                     ...           .    ..       ..    .   .  . .    .... ... .  .... .  .                     .
.          ..                         . .         .    .         .    .       .    .. .. .  .. .. .. .  .                     .
.         ..                           ..         .    .         .     . ..     .   . .. ...    . .. .  ..                    .
.        .                            . ..        .              .    .       . .   . ..  .... ..... .                        .
.        .                           .   .        .    ..       ..      .    .      ....   .    .. .    .                     .
.       ..                          .    ..       .     .       .       ..     .      ..  .  .  . .. ..                       .
.                                  .      .       .       .   ...     .....    ..  .. ..  ..   .  .. .  ..                    .
.      .                          .        .      .        ....                                                               .
.      .                         .         .      .                                                                            
      .              .          .           .     .                                                                           .
.                 .  .         .            .     .                                                                           .
.     .           ..  .       .                   .                                                                           .
     ..           .          .              ..    .                                                                           .
.                  . .      .                .    .   . .    ....  .  .                                                       .
     .            ..       .                 .        ...    . ..  .                                                          .
     .            . ...   .                  .    .      .      .  .. ..                                                      .
.    .                   .                   .    .    . .  .....  .                                                          .
.    .                                       .    .   .      . ..   . .                                                        
.    .                                       .    .     .    . ..  ..                                                         .
.    .                                       .    .    ...  .. ..    ..                                                       .
.    ..                                     ..    .                                                                           .
      .                                     .     .                                                                           .
.     .                                     .     .                                                                           .
.     .                                     .     .                                                                           .
.      .                                   .      .                                                                            
.      .                                   .                                                                                   
.       .                                 .       .                                            . .                            .
.       ..                               .        .      ......                                ...                            .
.        .                               .        .     ... ....                                  .                           .
.         .                             ..        .    ....... ..     .   .   .. .  .... .  .   . .                           .
.         ..                           ..         .    ...... ...     .         .. .. .. .  .  .                              .
.          ..                         ..          .    ...........     . ..  . .    . .. .. ..   .                            .
.           ...                     ...           .     .........             .... .....        ...                           .
.             ..                   ..             .    ..........       .     ..    . ..  . .                                 .
.               ..               ..               .     .. .....        .     .  .  . .. ..                                   .
.                 ....       ....                ...     .. ...       .....   ..   .. .. . ...                                .
                     .........                                                                                                .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.    ...   .   .           .  ...  . .  ...   ..  ..  . .         .    . .  . .    ..  . .  . .                               .
.    .  .. .      . .   .     .   ..        . ..    . ...    ..  .  ..  ..  ...   .   ..   ..                                 .
.      .    . ..     . .      . .  . .  . . .  . ..      .    .  .  ..    .    .  . .  . .  . .                               .
.     .... .       ...  .  . .... .... .... .  .  .    . . .        .   . .  . . .... .... ....                               .
.     ..     .     ... . ...  . . ...   . . ....    . .     ..     ... .    .     .   ...  ..                                 .
      .  .   ..   .    ... . .     ... .      .    .    .     .  .   .        .  .     ...  . .                               .
.     ..   .....    .   .     . .  ...  . .   .  .     ... .  .    . .  ...  ...    .  ...  ...                               .
                                                                                                                              .
.                                                                                                                             .
.                  ..     .    . . ..  .     ..   ..  ...   ..      .      .   ..     .  . .                                  .
.                    .   ..   ..      . .. . .. . ..  .   . .. . .  . .          .   .. ..                                     
.                 ..     ..   .. . .    .. .  . .  .  . . .  .   ..  . .   .  ..     ..  . .                                  .
.                  .   .... .... .. .      .  . .  . .. . .  . .     ...    .  .   . .. ....                                  .
.                      ..   ..         ..  .... ....  . . ....  ..   ... . ..    . ..   ...                                   .
.                   .  ...  ...  .. .  .    ..   ..  .     ..   . . .    . ..   .  ...   ...                                   
.                 .    .. . .. .  . . .  .   .        . .   .  .  .   .  . .. .    .. .  ...                                  .
                                                                                                                              .
.                                                                                                                             .
.                                        .                                                                                     
.                                                                                                                             .
.                                      .   .                                                                                  .
.                                     .     .                                                                                  
.                                    .       .                                                                                .
.                                   .         .                                                                               .
                                   .           .                                                                              .
.                                 .             .                                                                             .
.                                .               .                                                                            .
                                .                 .                                                                           .
.                              .                   .                                                                          .
.                             .                     .                                                                         .
.                            .                       .                                                                        .
.                           .                         .                                                                       .
.                          .                           .                                                                      .
.                         .                             .                                                                     .
.                        .                               .                                                                    .
.                       .                                 .                                                                   .
.    ............ ......             . .                   .                                                                  .
.    .                 ..          .  .                   .                                                                   .
.    .                 . .          .                    .                                                                    .
.    .                 .  .         ...                                                                                        
.    .                 .   .       .   .               .          .                 . .               . .                     .
.    .                 .    .         .               .           . .               ..                ...                     .
.    .            . .  .     .        .              .               .                 .                 .                    .
.    .           . ..         .                     .         . .  .    .   .   . .    .  ..     .       .                    .
.    .            ...  .       .                   .        .  .  .     .      . .. .      .  .    .                          .
.    .             ..  .        .                 .          .           . ..   ...   .   ... . .   .   .                     .
.    .          .  ..  .         .               .           ...   . .  .        ..  ...  .  .. .  .   ...                    .
.    .          .      .          .             .           .             .   .. ..       .  ..  .  .                         .
.    .            ..   .           .           .              ..          ..  .             . .  .                            .
.    .                 .            .         .                ..       .....   ..        .. ..  .                            .
.    .                 .             .       .                                                                                .
.    .                 .              .     .                                                                                 .
.    .                 .               .   .                                                                                   
.    .                                  . .                                                                                   .
.    .......... ........... ........ .....                                                                                    .
.                      .                 .                                                                                    .
.                      .                 .                                                                                    .
.                                        .          . .  ....   . . .   .   . .  .  .   . . ...    . .   ....  . .            .
.                      .                 .        .     .. .. .  .  .      . .. .. ..    ..  . ..  . .  .. ..  . .            .
.                      .       . .       .         .     . ..  .     . ..    ..  . ..   ... ... . .   .  . .. .   .           .
.                      .       . .       .         . .  .....  ...  .        .. .....    ..    .. .  .  ..... .  .            .
.                      .          .      .        .   .  .... .   .   .   .. ..   ... .. ..    ..  .  .  ....  .  .           .
.                             .  .                  ..   . .    ..    ..  .      . .. .       ..   ..    . .   .              .
.                      .       .  .      .           .. .. ..    ..   ...   ..  ..       .  .. ..  .    .. ..                 .
                       .       ..                                                                                             .
.                      .                 .                                                                                    .
.                      .                 .                                                                                     
.                      .                 .                                                                                    .
.                      .                                                                                                      .
.                      .                 .                                                                                     
.                      .                                                                                                      .
.                      .                 .                                                                                    .
.                      .                 .                                                                                    .
                       ..... ......... ...                                                                                    .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
                                                                                                                              .
.   .  . .  .       .   .  . .  .   .  . .  .                                                                                 .
.  . .  .  . . . . . . . .  .  . . . .  .  . .                                                                                .
.   .  . .  .   .   .   .  . .         . .  .                                                                                 .
                                                                                                                              .
.                                                                                                                             .
.. . ....... ......  ............................................. .. ............ .....  ... ......... .............. .. .... 
.                                                                                                                              
.                                                                                 .   . .  .  . . .   . .  .  .    .       .  .
.                                                                                  .   .  . .  .   .   .    .  .  . . .   . . .
.                                                                                 . .   .  .    . . . . .  .  . .  .   .      .
.                                                                                                                             .
.                                                                                                                             .
.         .. ..     .         . . ...   . .   .   .  .                   . . .   .   ...                                      .
.          ...   . ..        . ..  . .. ..    .      . .                . .. .       .                                         
.                 ...         ... ....         .  .   . .                ...    ..     .                                      .
           .. .    ..          ..    ..  . .  .       ..                  .  .      ....                                      .
.         ... . .. ..       .. .. .  .. .       .     ...              .. ..   .     . .                                      .
.             . .                   . .   .     ..   .                 .       ..                                             .
          . ..    ..          .   .. ..   ..  .....    .                 ..   .. .   . .                                      .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                              
.         ..  .   . .         . . ..    .     .   .    ..                . .     .  . .                                       .
.         .....  . ..        . ..  . .. . .   .                         . .. .      ...                                       .
.          .      ...         ... .....  . .   . ..  .  .                 ..  . ..     .                                      .
.           ...    ..          .. .  ..  . .  .      .  .                 .  .       . .                                       
.           . .  . ..       ..  . .   .  ...    .    ....              .  ..   .    .                                         .
.           . . .           .       ... .       ..    ..               .       ..     .                                       .
.         . ..    .            .  .. ..   .   .....    .                 ..  . ...   ...                                      .
.                                                                                                                             .
                                                                                                                              .
.         .  ..   . .         . . ...    ..   .   .    .. . .            . . .      .                                         .
.         .....  . ..          ..  . ..    .  .       .    ..           . .. .      . .                                       .
           .      ..          ... ..... ..     . ..   . .    .           ...  . ..   . .                                      .
.          ....    ..           . .   .  .           ....  . .             . .       ..                                       .
.         ... . .. ..       .. .. .  ..    .    .     .   .            .. ..   .     . .                                      .
            . . .           .       ...   .      .   .      .          .       ..   .                                         .
.           ..     .          ..  .. .. .     ....    . .  ...           ..  .....    .                                       .
.                                                                                                                             .
.                                                                                                                             .
.         .. ..   . .         . . ...     . .  .   .    . .             . . .   .    .    ..     . .                          .
.         .....  . ..        . ..  . ..   . .  .         .             . .. .      .  .     .    . .                          .
.          .      ...         ... ....   .   .  .  .   .                ...  . ..   .    . ..   .   .                         .
.          ....    ..          .. .  ..        .       ...               .. .       ..       .  .  .                          .
.         ... . .. ..       .. .. .  ..   .  .   .    .   .           .. ..   .    .   .  . .    .  .                         .
.             . .                   ...   ..     ..     ..            .       ..     ..  ... .   ..                           .
.         . ..    ..           .  ..  .        .....      .             ..  .....     .. ...                                  .
.                                                                                                                             .
.                                                                                                                             .
.         .. ..   . .         . .  ...    . .  .        . .             . . .   .    . . ...     . .                          .
.         .....  .  .        . ..    .    . .  .      .  .             . .. .      .  .   .  .   . .                          .
.          .      ...         ..  . ..   .   .  . ..   .                ...    ..   .    .....  .   .                         .
.          . .     ..          .      .  .  .  .       ...                . .        ..  .  ..  .  .                          .
.         ... . .. ..       .. .   . .    .  .   .    .   .           .. ..   .    .   . .   .   .  .                         .
            . . .           .     ... .   .      .      .             .       ..     ..    . .   ..                           .
.           ..     .          ..  .       .    ....      ..             ..  .....     .. ..  .   .                            .
.                                                                                                                             .
.                                                                                                                              
.         ..  .   . .         . .  ....   . .  .        . .             . . .   .    . . ..      . .                           
.         .. ..  . ..        . .. .. .      .  .      .  .             . .. .      .  .  . . .   . .                          .
.          .      ...         ...  . ..  .   .  . ..   .                ...  . ..   .    .  .   .   .                         .
.          ....    ..          .. . ...     .  .       ...               ..         ..     ..   .  .                          .
.         ..  . .. ..       .. .   ...    .  .   .    .   .            . ..   .    .   . .. .    .  .                         .
.           . . .           .      . ..   ..     ..     ..            .        .     ..     ..    .                           .
.         . .     ..          .   .. ..   .    .....     ..             ..  .....     .  . ...   .                            .
.                                                                                                                             .
.                                                                                                                             .
.         ..  .   .           . . ..      . .  .   .      .             . . .   .    . .  ....   . .                          .
.         .....  . .         . .. .       . .  .      .  .             . .. .      .  .  .. ..   . .                          .
.          .       ..         ... . ..       .  . ..   .                 ..  .  .   .       ..  .   .                          
.          . ..    ..          .    ..   .  .  .       ...               .. .        ..   ...   .  .                          .
.         ... . .. ..       .. .. .. .    .      .    .   .           .. ..   .    .   .  ....   .  .                         .
.           . .             .         .   ..     ..     .             .       ..     ..   . ..   ..                           .
.         . ..    ..           .  . ..    .    . ...     ..             ..  ....      .  .. ..   .                             
.                                                                                                                              
.                                                                                                                             .
.   .  . .  .   .    .  .  . . . . .   . .  .                                                                                  
   . .  .  . . . .  .  . .  .   .   .   .  . .                                                                                .
.   .  . .  .   .  . .  .  . . .   . . . .  .                                                                                  
.                                                                                                                             .
.                                                                                                                             .
 ...  .... ................  ......... ..... ................ ........ ............ .............. ............................
.                                                                                                                             .
.                                                                                 . . . .  .  . .  .   .  . . . . . .  .      .
                                                                                   .   .  . .     . .   .  .   .   .  . . . . .
.                                                                                 . .   .  .  . .  .   .  . . . . . .  .   .  .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                   ..  .            .   ... . .. .       .   ....  ..                        .
.                                                    ...         .       .   .    . .     .  .. ..   ...                      .
.                                                   .             . ..     . . .   . .   ..   . ..  .                         .
.                                                      .  ....   .      .... .. .  ... ....  ... .   . .  .                   .
.                               .......              .  . ...      .     . . .     ..  ..     .. .   .  . .                   .
.                             ...     ..            . ...  .       ..        .. .      ...    . ..  . ...   ..                .
.                           ...         ...         .  .  . ..   .. ..   . .  . .   .  .. .  .  ..  .. .  . ..                .
                           ..             ..                  .                                           .. ..               .
                           .               .               . ..                                            .                   
.                         ..               .               .                                              .                   .
.      ..      .                 ....                                                                                         .
.    . ... .             ..      ...        ..                                                                                .
.    . .    . .          .          .        .      ... .        .   .   ...    .. .                                          .
.      ... .             .       . .         .      ...          .         .   ... .                                          .
.      ...   .           .           .       .       .            .  .  . ..    ..                                            .
.    . ..     .          .        . .        .         .  ....   .          .  .  .  .   .                                    .
.     . .. ... .         .                   .      ..  . ...      .     . .       . .  .                                     .
.                        ..                         .        .     ..   ... .  .       ..                                     .
.                         .                          .  .   ..    . ..  ...     .  . . ..                                     .
.                         ..             .   .                .                      .. ..                                    .
.                          .             .  .              . ..                                                                
.                           .              ..              .                         .                                        .
.                           ...          . ..                                                                                 .
.                             ...     .  .. ..                                                                                .
.                               . .....   .                                                                                   .
.                                        .                                                                                    .
.                                                                                                                              
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                           .........                                                                                         .
.                         ...       ..     .   .                                                                              .
.                       ..             ..  .  .                                                                               .
.                      .                .    ..                                                                               .
.                    ..                    . ..                                                                               .
.                    .                     .. ..                                                                              .
.     . .. .   .    .                       .                                                                                 .
.    .  .  .       .                       .      ..  .        .   .   ...     .        .   ... .    . ..   . ..  ..  .       .
.        .  . .    .      .. .     .               ...         .       .   ..               .   . .         .  .   ...        .
.    . ... .              ...    . .              .             . ..   . . .            .   . .    . . .    . ..  .           .
.    . .     .             . .    .           .    . .  ....   .      ....  .  .         . ....  ... .. .  . ...   . .        .
      . ..   ..   .       . ..     ..         ..   .    ...      .       . . ... .  . . ..  . .  ... .       ..    .  . .. .   
.    . .   ..... .            . ....           .  . ..   . .     .         ... . .... ...  .    .    .        ..  . ...   .    
.                .         . .. .. .              .. .  .      .....   . .  .    . .. . ..  . .   .     .  .  ..  .. .     .. .
.                .         .       ..          .            .                                                           . ..  .
.                .                             .           ..                                                           .. .   
.                .                             .         .                                                                  . .
.                .           .  ....           .                                                                              .
.                .        .. .  ...            .                                                                              .
.                ..         .    .            ..  . . .        .   .    .                                                     .
.                 .          .. . ..          .   ... .        .       .                                                      .
.                 .       ....      .         .    ..           . ..    .                                                     .
.                  .      .. .   . ..        .    .  .     .   .         .                                                    .
.                   .        ..  .          ..    ..  . .  .     .    . ..                                                    .
.                                           .     .       .      ..   ....                                                    .
.                                          .       .  .    .   .....  . ..                                                    .
.                        .                ..            ....                                                                  .
.                    .  .               ..              .. .                                                                   
.                      ..              ..                  ..                                                                 .
.                    . ..           ...                                                                                       .
.                    .  ..     ......                                                                                         .
.                     .                                                                                                       .
.                    .                                                                                                        .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
       ... .   .   ...  ....  ...     .      .                   .     .   .   ...       ....  ...    ...  . .     .           
.    . . . .            ...    . ..  .    .. .                      .  .       .   . .   ...    . ..  .    .    .. .          .
.    . .    . ..   . .   . .  .....   .     .                    ..       ..   . .  .     . .  ... .  . .  . .    .           .
.      ... .      ....  . ..  .  ..    .     ..                  .  ..        .. .  ...  . ..  .   . .... ....      .         .
.      ..    .     . .      . .  .. . ..  ...                    ..  .   .     . .  ...      . .  ..  . . . .   ....          .
     .  .    ..   .      . ..   ... ....  .. .                    . .    ..   .    .      . ..   ... .     ...  .  .          .
.    .. .. ... .   . .   .    .. .. . ..     ..                  .  .  .....   . .   .    .    .. ..  . .   ..     ..         .
.                                                                                                                             .
.                                                                                                                             .
.     . .. .   .    .   ....  ...   . .      .                   . ...     .   ...  . .  ....  ...    . .  . .                .
.    .  .  .      ...   . .    . .. ...   .. .                    .  . .       .   ..    ...    . ..  .    .    .. .          .
.        .  . ..     .   . .  .. ..    .    .                     ...   . ..   . .  . .   . .  .....  . .  .      .           .
.    . ..  .       . .  . ..  .  ..  . .     .                     . . .      .. . ...   . ..  .  .. .... ....     ..          
.    . .     .    .         . .  .. .     ...                    ..  .   .       . ...       . .  ..  . . ...   ....          .
.     . ..   ..     .      ..   ...   .   .. .                   .....   ..   .     ...   . ..    ..       ...  .. .          .
     ...   .....   ...   .    ..  .   ..     ..                   . .  ... .   .    ...   .    .  ..    .  ...     ..         .
.                                                                                                                             .
.                                                                                                                             .
.      .   .   .     .  .  .  ...      .     .                    ....        .       .  ....  .     .      .      .          .
.    .   . .        ..  ...    . ..   ..  .. .                     .   .      ...    ..  ...    . ..   .   .    .. .          .
.     . ..  . ..    ..   . .  ... .   ..    .                           . ..     .   ..   . .  . ...  . .   .                 .
.    .  .  .      ....  . ..  .  .. ....     ..                  .  ..         . . ....  . .   .  ..  ...    .     ..         .
.    . ..    .    ..          .  .. ..    ....                    . ..   .    .    ..        . .  ..  . . . ..  ....          .
.    ...     ..    ..    . ..   ... ...    . .                    . .    .      .  ...    . ..   ... .    ....  .. .          .
.    .     .....  ..     .    ..  . .. .     ..                  ... .  ....   ... .  .   .    .. ..   .  . ..     ..         .
.                                                                                                                             .
.                                                                                                                             .
.    ...   .   .   .    ....  ...     .                           ..   .   .    ..  ...  ....  ...    ... . .      .          .
.      ... .      . ..  ...    . ..  .  .  .. .                  . .   .            .    ...      ..  .   ...   .  .          .
.      .    . ..    ..   . .  .....    ..    .                    .. .  . ..   . .  . .     .  .....  . .    .    .           .
.    . .   .      .     .  .  .  ..  .        ..                   . . .      .... ....  . ..  .  .. ....  . .     ..         .
.      ..    .     ..       . .  ..   ..   . .                    . ..   .     . .  .        . .   .  . . .     ....          .
.    .       ..    . .   . .    ...   . .  .. .                    ..    ..   .    .      .  .   ... .      .   .. .          .
.     .    .....  .  .   .    .  ..     .      .                  .      ...   . .  . .   .     . ..    .   ..     ..         .
.                                                                                                                             .
.                                                                                                                              
.       .  .   .  . ..  . ..  ...   . ..     .                      .  .   .     .  .    . ..  ...    ..  . ..     .          .
.    .. .. .            ...    . .. .     .. .                   ... .         .   . ..  ...    .     .   .     .. .           
.     . ..  .  .  . .    . .   .... . .     .                       ..  .      . .   ..   . .  .....  . . . .     .            
.    .  .  .      ..    .  .  .  .  .. .     ..                  .   . .      .... .     . ..  .  .  .... .  .     ..         .
     ..      .    .         . .  .. .     ...                    ..  .   .     . .  .        .    .   . . .     ....          .
.       .    ..   .. .   . ..   ... .. .  .. .                    .  .   .    .     . .   . ..   ... .    .. .  .  .          .
.     .    .....   . .        ..     . .     .                   ..  .  ....   . .    .   .    ..  .  . .  . .     ..         .
.                                                                                                                             .
                                                                                                                              .
.     . .  .   .   ... . ..  ....  ...   .    . .      .         .   . .   .   ..  . .   ....  ...    ..   ..     .     .     .
.    . ..  .       .   .     ...    . .. ...  ...   .. .         ..... .         . ...   ...    .  .  .    .     ..  .. .     .
.     . .   . ..   .   . .    . .  .. ..    .    .    .          .  .   . ..  ..      .   . .  .....  . .  . .   ..    .      .
       ..  .      ....    .  . ..  .  ..  . .  . .     ..           .  .       .    . .  . ..  .   . .... .... ....     ..    .
.     . .    .     . . .         .    .. .          ....            .    .       . .         . .  ..    .  . . ..     . .     .
.    ....    ..   .    .. .   . ..   ...   .    .   .. .          . .    ..     .         . ..   ... .         ...   ..       .
.      ..  .....   . .  . .   .    .. ..  ...  ...     ..          .   .....  .     ...   .    .. ..  . .  . . .. .      .    .
.                                                                                                                             .
.                                                                                                                             .
.    .  .. .   .   ...    .  ....  ...    . .    .     .            .  .   .   . .  .    ....  ...      .   .      .          .
.    .   . .       .     ..   ..    . ..  .     ..  .. .         . .   .       .   . ..  ...    . ..   ..  .    .. .          .
.    ..     . ..   . .   ..   . .   ....  . .   ..    .          . . .  . .    . .   ..   . .  .....   ..   .     .           .
.       .  .      .... .. .  . ..  .  .. .. . ....     ..        ...          .. . .     . ..  .  .. ....    .     .          .
.      . .   .     . . ..        . .  ..  .   ..    .. .           . .   .    ...   ..         .  ..  .   . ..  ....          .
     ....    ..   .    ...    . ..   ... .    ...   .. .                 ..    ...  . .   . .    ..  ...  . ..  .  .          .
.          .....   .   .. .   .     . ..  . .  . .     .         .   . .....    .. .      .    .. .. .. . .  .     ..          
.                                                                                                                              
.                                                                                                                             .
.     . .  .      .      .   ....  ..    .      ..     .          .    .   .   .    ..   ....  ...    ...  ...  .       .     .
.    .     .      . .   .    ...    . ..   .  . ..  .. .         ... . .        ..    .  ...    . ..  .    .   . ..  .. .     .
.      ..      .   .     .    . .  .....  . . .  .    .          . . .  . ..    ..  .     . .  .. ..  . .  . .   ..    .      .
.    . . . .       ...    .  . ..  .   .  ... .  .      .        .. ..        .     .    . ..  .  .. .... .... .        ..    .
             .     ... . ..        .  ..  ... ....  ....          .      .     ..     .      . .  ..  . .  . .  ..   ...      .
.       .    ..   .    ....   . ..   ... .     ..   .. .         .       ..    . .   .    . ..   ... .    .       .   . .     .
.      ... .....    .  . ..   .    .. ..        .      ..         . .. . ...  .  . .      .    .. ..  . .  . . .  .      .    .
.                                                                                                                             .
.                                                                                                                             .
.                                  . ..  .   .   ...  ... . .   ....  .      . .    .   ..     .                              .
.                                     .. .       .    .   ...   ...    . ..  .     .  . ..  ..                                .
.                                    . .  . ..   . .  . .    .   . .  .....  . .   .. .  .    .                               .
.                                  .. .. .      .... ....  . .  . ..  .  .. .... .... .  .     ..                             .
.                                  ...     .     . .  . . .         . .  ..  . . .    ....  ....                              .
.                                   .      ..   .    .      .    . ..   ... .    ...   ..      .                              .
.                                   .... .....   . .  . .  ...   .    ..  .  . . .. .          ..                             .
                                                                                                                              .
.                                                                                                                             .
.     .  .        .   .     .   ....  ..  .                 .   ....  ..                                                      .
      . .         .        ..  .. ..    ..                 ..  .. ..   ...                                                    .
.    .             . ..    ..   . ..  .                    ..   .  .  .                                                       .
.       .  . ..   .      ....  .....   . .  ....   .     ....  .....   . .     .                                              .
.     .  . . . .    .    ..     ...    .    . .      ..  ..     ....      . .. .                                               
.    . ...  . ..    ..   ..     . ..  . ...  . .  . ...  ..     . ..  . . .   .                                               .
.    .. .    ..   .....  ..    ..     .. .  . ..  .  ..  .. .   . ..  ..       ..                                             .
.          . ..                                 . .  ..                     ....                                              .
           ...                               . ..   ...                     .. .                                              .
.          .                                 .    .. .                          .                                             .
.                                                                                                .     .                       
                                                                                               ...    .                       .
.                                                                                                 .   ..                      .
.     ... . .      ..  .         .     .   .  . .  .    . .   . . . .    .    ....   ..    .    . . ....  ..  .               .
.     .    ..      .   .        .. ..     .   . .  ...  ...  ..   . .   .    .. ..   .    .    .    ..     ...                .
.     . .    .      .   . ..    .. .       .     .    .    .  . .    .   .    . ..   . .   .     .  ...   .                   .
.    ....  . .   ...   .      ....  .  .    .  . .  . .  . . ....  . .    .  ....   ...     .   ... .. .   . .  . ..           
.     . . .       .      .    ..   . ... . .  .    .    .    ...  .      ..    ...   . . . ..              .  . . . .         .
.    .      .   .        ..   ...  ... . . ..        .    .   ...   .  ....   . ..  .    ....             . ...  . ..         .
.     . .  ...   ..    .....  .. .  .    . ..  ...  ...  ...   ..  ... . ..   . ..   . . . ..             .. .  . ..          .
.                                                                                                               . ..           
.                                                                                                               ..            .
.                                                                                                               .             .
.                                                                                         ...  . .   .                         
.                                                                                           .  . .  . ..                      .
.                                                                                        . ..     .   ..                      .
.    ..  .        .   .   ...          .  .   . .     . .     ...   ..   ....   ...   .      .  . . .        .                .
.     ...         .       .   ..      .. . .. ...    .. ...   .   .  .   . ..        .    . .  .     ..      .                .
.                  .  .   . .         ..   ..    .   ..    .  . . .  .   . ..   . .   .  ...     .   . .  .   .               .
.     . .  ....   .       ...     . .... .     . . ....  . . .... .  .  .....  ....    . . .    ... .  .   ...                .
.        . ...      .     .   . ... ..    ..       ..   .     . . . ..   .. .     . . ..                    .                 .
.    . ...  . .     ..   .      . . ...            ...    .  .     ..    . ..  .     ...                  .                   .
.    .. .  . ..   . ..    .    .    .. .    .  ...  . .  ...  . .   .   .. ..   . . . ..                   . .                .
               .                                                                                                              .
.           . ..                                                                                                              .
.           .                                                                                                                 .
.                                                                                         ...  . .   .                        .
.                                                                                           .  ..   . ..                      .
.                                                                                        . ..     .   ..                      .
.    ..  .        .   .   ..           .  .    . .  ..  . .   .   . .    . ..   ..    .      .    . .        ..               .
.      ..                 .    .      .. . .. ..      . ...  .  . ...   .. ..   .    .    . .  .     .       .                .
.                  . ..   . .         ..   .   .   ..      .   ..    .   . ..   . .   .  ... .   .   . .  .   .               .
.     . .     .          ....  .  . ....      ....  .      . .     . .  .....  ....    . ...    . . .  .   ...                 
.        . .. .     .       . . ... ..    ..  ..      . .     ..  .      ....   .   . ..                    .                  
       ...   .      ..   .    ... . ..    . .  ...   .    .   . .   .    . ..  .    ...                   .                   .
.    .. .     ..  ... .   . .  .    .. . .  .  ... .     ... .  .  ..   .. ..   . . . ..                    ..                .
.          ....                                                                                                               .
.          .. .                                                                                                               .
.             .                                                                                                               .
.                                                                                         ...  .     ...                      .
                                                                                            .  . .   .                        .
.                                                                                        . ..   . .  . .                      .
     .            .   .   ..      .  . .   .   ..  .    . ..  ...  ..    ...     ..   .      .   ..  ...     ..               .
      ...                   . ..     .    .      . . .  .     .      .  .. ..   .    .    . .    ..    .     .                .
.    .             . ..  ..          . .   .  ..    . . . .   . .  .       ..   . .   .  ... . .    .     .   .               .
.     . .  .   .  .            .    ....    .  .     .. .. . ...   .    .....  ....    . . .     .   . .   ...                .
.     .  . .  .     .       . .  ..  .   . ..    .  ... .     . .    .   .. .   . . .  .                    .                 .
.    . ...   ..      .     .  ... .       ...   .  .    .. . .      .      ..  .    ....                  .                   .
.    .. .  . ..   .....  .     .       . . ..        .   . .    . .     .. ..   . . . ..                   ...                .
.          .. ..                                                                                                              .
.           .                                                                                                                 .
.          .                                                                                                                  .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                           ...     .         .
                                                                                                              .    ..         .
.                              .                                                                             ..    ..         .
.                              .        . . . .   .   ...     . . ..  .   .     ...   .    ....   ...   .      . ...   . . .  .
.                              .         ...  .       .   ..    .    . .  . .   .         .. ..   .    .    . .  ..      ..   .
.    ...... ......             .        . ...  .  .   . . .     . .    ..  .    . .   .    . ..   . .   .  . . . ...   .  ..  .
      ......... ..             .         ..   .      .. .  .    .. . .     ... ....    .  .....  ....    . . .   .. .   . .   .
                                         .      .     . . . ... .     ..   .    . . . ..   . ..   .   . .              ....    
.                             ..        . ..     .   .    ... .  .    .        .     ...     ..  .    ....                 .  .
.                            ...        . . .  .. .   . .  .     . . .  .   .     . . ..  .  .      . . ..             .. ..  .
.                          ... .                                                                                              .
.    ....... ..... ..    ...   .                                                                            ...  . .          .
.                    .. ..                                                                                      ..            .
.                    . ..      .                                                                              .  . .          .
.                    .         .        .. .. .   .   ...     .   .   .   . ..   ..  ...   . ..   ...   .  .... . ..    ...   .
.    .............  .          .           .  .       .   ..    . ..    . .    .     .     . ..   .    .    . .  ..     .     .
                     .         .         .. .  . ..   . . .     .  . ..   . .  . .   . .   .  .     .   .  .     ...      .   .
.                    .         .              .      ....  .  . .  .  .   .  . .. . ....  ... .  ....    .  . .  ...  ..      .
.                    .                   ..     .     . . . ... ....    . .    .     . .   ....   . . . .             ....    .
.                    .         .          .     ..   .    ... .  ..       ..   .. . .      . ..       ...             . .     .
.                    ..        .         . .. .....   . .  .      .  .     . .  . .    .  .. ..   .     ..             .      .
.                    ..                                                                                                       .
.                    ...                                                                                                      .
.                    . ..                                                                                                     .
.                    .  .                                                                                                      
       ........... ..   ..                                                                                                    .
.                    .  ..                                                                                                    .
.                    .   ..                                                                                                   .
.                    .   ..                                                                                 ...   .           .
.                    .    ..   .                                                                              .  . ..         .
.                    .     .   .                                                                           . ..    ..         .
.                    .     ..  .            . .   .     .     .   ..      . .  . ..   ..   ....   ...   .      . .     . . .   
.                    .     ..  .         ...  .        .. ..    . .    .. ...  .    .  .  .. ..   .    .    . .   ..     ..    
.                    .      ..          . ...  . ..    .  .     .  .   ..    . . .  .  .   . .    . .   .   .. .  . .  .  ..  .
.                    .      .. .         ..   .      ...      .    . .  .  .   .  . .  .  .....  ....    . ...   .  .     .   .
.                    .       ...         .      .    ..   . ... .... ..        .    ....   ....   . . . ..             .....  .
.                            ...        . ..    .    ...  ... .  ..  ...       .. .  ..    . .   .    ....                 .  .
.                    .        ..        . . . .....  .  .  .      .  .. .  ...  . .   .   .. ..   . . .                ....   .
.                    .        ..                                                                                              .
                     .                                                                                      . .    .          .
.                    .         .                                                                            .   ..            .
.                    .                                                                                      . .  . .          .
                     .         .        .. ..     .   . .     .   ..    . . ..       ...   ...    ...   .   ... ....   ....   .
.                    .         .        .  .  .      ..   ..    . ..   .. .     .    .    .. ..   .    .    . . . .   . .     .
.                    .         .         .  .    ..   . . .     .  .   .. . .    .   . .   .  .   . .   .  .     ...      .   .
.                    .                     .  .       ...  .    .  . .... .. .      .. .  .....  ....    .  . .   ..  ..      .
.                    ..        .         ...    .    ...  . ... . .. ..   .    . ..  . .   . ..     . . ..            ....    .
.      . .           ...                        .     ... ..     ..  ...  .. . .... .      . ..  .    ....            . .     .
     . ...             .                .  .. .....   ...  .      .  .     . . . ..  . .  .  ..   .   . ..             .      .
.    . .             . ..                                                                                                     .
.      ...           .                                                                                                        .
.      ...           .  ..                                                                                                    .
.    . ..            .   .                                                                                                    .
     .. ..           .   ..                                                                                                    
.                    .    .                                                                                 ...   .            
.                          .   .                                                                              .  . ..         .
.                    .     .   .                                                                           . .     ..         .
.                    .     ..  .          . . .   .   ..      . . .   ...   ..    .  .     ....   . .   .      . .     . . .  .
.                           .  .         ...  .       .   ..     ..   .   . ..   .. . ..  .. ..   .    .    . .   ..     ..   .
.                           .. .        .  ..  . ..   . . .        .  .   .  .   ..   .    . ..   . .   .  ... .  . .  .  ..  .
.                    .       . .         ..   .      ....  .  .    . .... .  .  ... .     .. ..  .. .    . ...   .  .   . .   .
.                    .       ...         .      .     . . . . . .     . . .... ..    ..     ...   . . . ..             .....  .
.                    .        ..        . ..    ..   .    ...     .  .     ..   ..     .   . ..  .    ....                 .  .
.                    .        ..        . . . .....   . .         ..  . .   .  .. . .  .  .. ..   .   . ..             .....  .
.                    .         .                                                                                              .
.                    .         .                                                                            ...               .
.                    .         .                                                                            .   . ..          .
                     .                                                                                      . . .  .          .
.                    .         .        .. .. .   .  . .      .  . .    .    .   .   .     ..     ...   .  .... .  .   ....   .
.                    .         .        .  .  .      ..   ..    ..     ..   ..  .   . ..  .. ..   .    .    . . ....  . .     .
.                    .         .         .. .  . ..     .        . .   ..   ..   .    ..   . ..   . .   .  .     ..       .   .
.                    .         .           .  .       . .     . .... ....  . .    . .     .....  .. .    .  .     .   ..      .
.                    .                   ...    .    .    . ... ...  ..   ..   .  .  ..    . ..     . . ..            ....    .
.                    .         .          .     ..        ... .  ... ...  ...  ....  . .   . ..  .    ....                    .
.                    .                  .. .. .....   ..   .      .   . . .. . . .. .  .  .. ..   . . . ..             .      .
.    .. .......... ..                                                                                                         .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
                                                                                                                              .
.                                                                                                                             .
.                                                                                                                             .
.                                                      ...   ...                                                              .
.                                                            .                                                                .
.                                                     . ..   . .                                                              .
.                                  .. .. .   .   ...      .  ...      .   ..   ..      ....                                   .
.                                  ..             .    . .   . .          .    .   .  . .                                     .
.                                    .      ..      . ... . .      . ..   . .  . ..       .                                   .
                                   .     .      ..    ...    . .  .      ....    ..   ..                                      .
.                                  .       .     ...                      .    .. .   . ..                                    .
.                                   ..     ..   . .                 ..   .        .   . .                                      
.                                   ...  ..  .   .                .....   . .  . ...   .                                      .
.                                                                                                                             .
                                                                                                                              .
.                                                                                                                             .
.                                                                                                                              
                                                                                                                              .
       .          .   .     ..  ....  . . . .   .  . .   ..   .    .        . .   .     .. . ..  . . . ..     .. ..           .
     ..  .        .      .  .  .. ..   . .  .       ..     .    . . ..      ...  ..   . ..         ..  . . .   .              .
       .           . ..    .    . ..    ...  . ..       ..   ..     .. ..      .  . . .  . . .   .   . . ..     .             .
.    ..... .   .            .   ....   .    .       .    .    .   .     .      . .... .  . .. .   .      ..   .               .
.    .. .. .. ..    .     ...   ....   .      .    .            .   .       .    ...  . .  .      ...  .. .   . .             .
.    ..... .. ..    ..     .      ..  . ..     .     .    .    .   . .   .    .   ...  ..  .         .    ..   ..             .
.    ... .  ..    .....  .. .. .. ..      . .....   . . .    .       . .     ...  ...   .   . .  . ... . ..    ...            .
.          . . .                                                                                                              .
.          .  .                                                                                                               .
.           . .                                                                                                               .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                              
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                              
.      . . . .      .  . . . .  .  . .     . .                                                                                .
.  . .  .   .   .  . .  .   .    .  .   .   .                                                                                 .
.   .  . . . . . .  .  . . .    .  . . . .   .                                                                                .
.                                                                                                                             .
.                                                                                                                             .
......... ........ ... . ........................................  ... ... ........... .. .................... ......... . ....
.                                                                                                                             .
.                                                                                 . .  .  . .  .    .  .   .   .      . . . . .
.                                                                                  .  . .     . .  .  . . . . . . . .      .  .
.                                                                                 . .  .  . .  .  . .  .   .   .   .  . . . .  
.                                                                                                                             .
.                                                                                                                              
.                                                                                                                             .
.                                                 . .                                                                         .
.                                                 ...                                                                          
                                                     .                                                                        .
     .   . .   .  .   .  ....  . ..  ..         .  . .                                                                         
.      . .         ...  .. ..  ..  . . . .  . . . .                                                                           .
.    ..  .  . .   .      . ..  .   . . .    . ..    .                                                                         .
.    ....  .       . .  . ...   ....   ..    .  .  ...                                                                        .
.        .   .     .  .  ....   .    .. .   ..                                                                                .
.     ..     ..   .  ..    .    ..       .  .  .                                                                              .
.       .  .....  .. .   . ..      . . ...    . .                                                          . .                .
.                                                                                                          ...                .
.                                                                                                             .               .
.                                                   ..  . ..  .   .   ...     ..  .. .  . . . .      .   .  . .               .
.                                                  .    ....  .       .       .  .. ..    ..  . . .  ..    .                  .
.                                                    .  ... .  . ..   . .  .   .  . ..  .  .  . ..     .     .                .
.                                                   ..   . .. .      ....    ..  .....   . .    ..   .      ...               .
.                                                  . .      .   .     . .    .    ....  ....  .. .   . .                      .
.                                                 .      ...    ..   .     .      .  .      .    ..    .                      .
.                                                  . .     .  .....   . .   ...  .. ..  . ... . . .   ...                     .
.                                                                                                                             .
.                                                                                                                              
.                                                                                                                             .
.                                    . .                . .                                                                    
.                                    ...                ...                                                                   .
.                                       .                  .                                                                  .
.    .  .  .   .  ..  .  ....  .  .   . .  ..        ..  . .                                                                  .
.     . .  .       ...   . ..   .  . .     . .    . . . .                                                                     .
.     .     . ..  .      . ..  .   .   .   . ..     ..                                                                        .
.      .   .       . .  . ...   ...   ..      .    .  .  ...                                                                  .
.    . .     .     .  .  ....   .           .     ..                                                                           
.    .  .    ..   . ...  . ..  ...            ..  .  .                                                                        .
.    ..  . .....   . .  .. ..      .       . ...    . .                                       . .                .            .
.                                                                                              ..                 ..          .
.                                                                                                .                  .         .
                                                   ...   .  . .   .    ..     ..  ....  . . .  . .   .     ..  .  . .         .
.                                                  .    ....  .       .       .  .. ..    ..  .     . . .   .    .            .
.                                                    .           ..   . .  .   .  . ..  .  .    .   . ..     .     .          .
.                                                 ....  .   . .      . .    ...  .....   . .   ...    ..   .      ...         .
.                                                  . .  ..      .     . .    .    ....   ....       .. .   . .                .
.                                                 .     ... .   ..   .     .      . ..      .          ..   ..                .
.                                                  . .    .   ... .   . .   . .  .. ..  .....       . ...   ...               .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                 . .                                                                         .
.                                                 ...                                                                         .
                                                     .                                                                        .
.      .   .   .  ..  .  .       ..  ..        ..  . .                                                                        .
.     ..   .       ...    . .  ..  . . . .  . . . .                                                                           .
.     .     . .         . ..   .   . . ..   . ..    .                                                                         .
.    ..  . .       . .    ..    ....   ..    .  .   ..                                                                         
.    .   .   .     .  . .. .    .    .. .   ..                                                                                 
.        .   ..   . ...    .   ...       .  .  .                                                                              .
.    . ... . ...  ..    . ..       . .  ..    . .                                                          . .                .
.                                                                                                          ...                .
.                                                                                                             .                
.                                                  ..   ...   .   .   ...      . .      . . . ..     .. ..  . .               .
.                                                       .     .       .       .  . . .     .  . .    ..                        
                                                   .    ..     . ..   . .  .   . . ..   .  .. . ..                            .
                                                  ....   .... .      . ..   ..     ..    . .    ..   .       ..               .
.                                                  .    .   .   .     . .    .   .. .   ..... ..     . .                      .
.                                                          ..   ..   .     .         .      .    ..   ..                      .
.                                                  . .  ..... .....   . .   ..   . ...  ....  . . .   . .                     .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                    . .                .                                                                     .
.                                    . .                . .                                                                   .
.                                       .                .                                                                    .
.      . . .   .  ..  .  . ..  . ..   . .  ..        ..  ...                                                                   
.        . .       ...  .. ..  ..  . .     . . .  .   .  ...                                                                   
.     .  .  . ..  .      . ..  .   .       . ..   . ..  .                                                                     .
.    .   . .       . .  .....   ....  ...    ..    .  .   .                                                                    
.    .  .    .     .  .  . ..   .          .. .   .                                                                           .
.      ...   ..   . ...  . ..  . .            .   .  .                                                                        .
.    ..     ....  ..    .. ..      .       .  ..    .                                         . .                .             
.                                                                                             ...                . .          .
.                                                                                                .                  .          
.                                                   ..     .  .       ...     ..  ....  . . .  . .  ..      . ..  . .         .
.                                                        .    .       .       .   . ..    ..  .       . .  .      ...         .
.                                                  . .  . ..   . ..   . .  .   .  . ..  .       .   . ..     .   .            .
.                                                 . ..  . ... .      ....   ...  .....   . .    ..    ..   .       .          .
.                                                  . .   ....   .     . .    .    ....  .....       ..     . .                .
.                                                 .     . .     ..   .     .      . ..      .          ..   ..                 
.                                                  . .   ...  .. ..   . .   ...  ..  .  .....       . ...   ...               .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.      .   .      . ..  .         .. .      . . . ..     .. ..                                                                .
.    .   . .      ..  . . . .  .   .          .   . . .  ..                                                                   .
.      .    . ..  .   . . ..   . .    . ..  .  ..   ..     .                                                                  .
.    ..  . .       ....   ..    .  . .       . .    ..   .                                                                    .
.    .. ..   .     .    .. .   ..      .    .. .. .  .   . .                                                                  .
.    .....   ..   . .      ..  .  .    ..       .    ..   ..                                                                  .
.     .  . ....       . .  ..    .   .....  .. .  . ...    ..                                                                 .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                    .                               . .                                                      .
.                                    ...                             ...                                                      .
.                                       .                               .                                                     .
.     .    .   .  . ..  ..        ..  . .  .   .  . . . .      .. ..  . .                                                     .
.     .    .      ..  . . . .    . . .     .         .  . . .  ..    .                                                        .
.    ....   . ..  .   . . ..   . ..    .    . ..     .. . ..     .     .                                                      .
.    .  .  .       ....   .        .  ...  .       . .    ..   .      ...                                                     .
.    ... .   .     .    .  .   ..            .    ..... .. .   . .                                                            .
.      . .   ..   ...      ..  .  .          ..       .    ..   ..                                                            .
.    .  .  .....      . . ...    . .       .....  ..... .  ..   ...                                                           .
.                                                                                                                             .
                                                                                                                              .
.  . .  .   .   .      . . . .  .  . .  .  . .                                                                                 
.   .  . . . .   .   .      .  . .  .  . .  .                                                                                 .
.  . .  .   .   .   .  . . . .  .  . .  .  . .                                                                                .
.                                                                                                                             .
.                                                                                                                             .
...  .. ................. ........ ......... .... .............................. .................. ...........................
.                                                                                                                             .
.                                                                                 .    .   .  . . . .  .   .   .  . .  .  . . .
.                                                                                     . . . .  .   .  . . . . . .  .  . .  .  .
.                                                                                 . .  .   .  . . . .  .   .   .  . .  .  .   .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.    .   .                          ...  . .     .   .  . .     .   ...              . .    .      . . .     . . .    ...     .
.     ...                           .   ..   ..     .   ...  . .   .  .              ...   .   ..    ...    ..       .  .     .
.     . ..                            .  . . .       .     . .  .     .                 .   .  .        .   .. . .      ..     
.    . ...    ..                   .. . .. .  .  .    .  . . .  .    . .              . .    .  .  .  . . ....  . .    . .     
.      .   . ...                    . . ...  .  .. .  . .    ....  .....             .    . .. .  .. .    ..   .     . ..     .
.    ...     .                     .     ... ... . ....   .   ..    ..                 .  ....  .. .   .  ...  .  .   ..      .
.        .   . .                      .  ...  .    . ..   ..   .     . .              ...   ..        ... .. .  .      . .    .
.            ...                                                                                                              .
.          . .                                                                                                                .
.          .. ..                                                                                                              .
                                                                                                                              .
.    ..  .                          . .  ...   .    .    . .                          . .  . .  .          . .                .
.     ...                          ..    .    .    .    .  .                          .   ..   . ..       .  .                .
.     . ..                          .    . .   .           ..                         . .  . .   ..   .      ..               .
.       .. . ..                     ... ....    .    .    . .                        .... . .  .       .      .               .
.      .   . . .                   ...   . . . .  . ..  .....                        ...  ...   ..  . ..  . . .               .
.    ..     .  .                    ... .    .. . .. .   ..                                ...    .  ...   ..                 .
.        . . ..                     ...  . . . .. . ..    . .                         ...  ... .  . . ..    . .               .
.          . ..                                                                                                               .
.          ...                                                                                                                .
           .                                                                                                                  .
.                                                                                                                             .
.    ..  .                         .    .  . . ..     . .           ...               .    ...  .       .  .     ..   ...     .
.     ...                          . .       .    ..      .    ..  .  .              .  .  .   . .. ..    .  . . .   .  .      
        ..                          . . . .  . .         . .   ..      .               ..    .   .  .        . .  .     ..    .
     . ... .  ..                    ... .. . .. .  .  .  ... .. .    . .             .    .... .     .    .    .       . .    .
.      .   .                        ... .    .    . ...  ... ..    .....              ..   . .  ..    . .  ..  ....  .....    .
.    ..    .                       .    .. . .. . ... . .    ...     .                . . .     . . ... .    .  .     ..      .
.        .    .                      .   . .  . .  .      .  .. .    . .             .  .  . .    .  .    .  .   .     . .    .
             . .                                                                                                              .
.          ....                                                                                                               .
.            .                                                                                                                .
.                                                                                                                             .
.    ..  .                            .  ..  . .      .  .          ...               ...  ... . ..   .     ..                .
.     ..                             .     . ...  ..    . .. . .   .  .               .    .   .     .    .  .                .
.     . ..                           .. ..      . .       .   . .     ..              . .  . . .      .      ..                
     . ..     .                    ....  .    . .  .  . .     . .    . .              ... .... .. .    .    . .               .
.      .   .                       ..      . .    . ...  .    ...  ... .              . .  . . .    . ..  .....               .
.    ...     ...                   ...    .        .. .  .   .      ..                    .    .. . ....   ..                 .
.        .   ...                   .. . .     ...  .    .  .         . .              . .  . .  . . . ..    . .               .
.              .                                                                                                              .
.             .                                                                                                               .
             ...                                                                                                              .
.                                                                                                                             .
     ..  .                          . . . .  .     . .   ...                         . .   . . .           ...                .
.     ...                           .   ...  . .  ..    .  .                         ...   .   . .    ..     .                .
.     . ..                          .      .  . .  . .     ..                           .  . .  . .    .     ..               .
.    . ... .  .                    ....  . .  ... ....    . .                         . . ....  ... ....    . .               .
.      .   ...                      . . .     ... ...   . ...                             ..    . . ..     ....               .
     ...   . .                     .      .        ..    ..                            .    .. .    ..     .                  .
.        . ...                      . .  ..    .   ...    . .                         ...  ...   .  .. .    . .               .
.            .                                                                                                                 
.            .                                                                                                                .
.          .   .                                                                                                              .
.                                                                                                                             .
.    ..                             ... .    .                 .. . .   ...          .     ...        .    ...                .
.     ...                           .   .    . .  . .. ..    . .. .    .  .          . .   .   . .   .    .  .                .
.     . .                           . .  . .  . .   .. .     .  . . .      .          . .  . .  . .   .      ..               .
.    .      .                      ....  ...  ... .     .    .  . .. .   . .          ... ....  ...    .    . .               .
       .   ....                     . .  ...  ...   .  . ... .... .    .. ..          ...  . .  ... . ..  .....               .
.    ...   . ...                   .    .          . .  .. .  ..  .. .  ..           .    .    .    ....   ..                 .
.        . .. ..                      .   .    .  .     .      .   . .   . .           .   .     .  . ..    . .               .
.           .                                                                                                                 .
.          .                                                                                                                  .
              ..                                                                                                              .
.                                                                                                                             .
.    ..                              .       .      ...                              .     .   .      ...                     .
.     ...                            .  . .. . .   .  .                              .    . .. . .   .  .                     .
.     . ..                            .   ..  .       ..                              . .    .  .       ..                    .
.    . ...   . .   ...   ..         . . .     ...    .                                ... .     ...    . .                    .
.      .   . ... . ... .. ..       .     ..   ...  .....                              . .  ..   ...   ....                    .
.    ...   . .   . .    . ..         .   . . .      ..                               .     . . .                              .
.        .   ...    .. .  ..        ... .  .   .       .                               .  .  .   .     . .                    .
.            ...   ... ..                                                                                                     .
             ..  . ..     .                                                                                                   .
.          .. .. .  ..  .                                                                                                     .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
                                                                                                                               
.                                                                                                                             .
.  . .  .   .  . .  .   .  . . .    .  . . . .                                                                                .
    .  . . . .  .    . . .  .   .  . .  .   .                                                                                 .
.    .  .   .  . .  .   .  .   . .  .  . . . .                                                                                .
.                                                                                                                             .
.                                                                                                                             .
........... ...... ...............  ... ........... .......... ..... ............ ....... .  .................... .........  ..
.                                                                                                                             .
.                                                                                 . .      .   .  . .  .  . . . . . . . . . . .
.                                                                                  .  . . . . . .  .  . .  .   .   .   .   .  .
.                                                                                 . .  .   .   .    .  .  . . . . . . .   . . .
.                                                                                                                             .
                                                                                                                              .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
. .                                                                                                                           .
. ..                                                                                                                          .
                                                                                                                              .
.    .                                                                                                                        .
.    ..                                                                                                 . .   .               .
.      .                                                                                                ...  . ..             .
.      .                                                                                                   .   ..             .
.       .                               ..  .        .   .    ..     .  ..    .   ...   ....   ...   .   .   .        ..      .
.        .                               ...         .           ..       .  .    .    .. ..   .    .   .     ..              .
.        ..                             .             . ..   . . .     ..     .   . .   . ..   . .   .    .   . .  .   .      .
          .                              . .   .. .  .      ....  .  .  .      .   ..  .....  ....    .  ... .  .   . .       .
.          .                             .  .  ...     .     . . . ...    . .     . .   .. .   . . . ..              .        .
.          .                            . ... ..       ..   .    ... .   .  ...  .      . ..  .    ....            .          .
.           .                           .     .  .   .  ..   . .  .    .    . ..  . .  .. ..   . . . ..             ...       .
            .                                   ..                                                                            .
.            .                                ...                                                                             .
.            .                                  ..                                                       .                    .
.             .                                                                                         . ..                  .
.             .                                                                                            .                  .
.              .                        .  .         .   .   .       .  ... .     .     ....   ...      .     . . .           .
.                                          .         .      . .. ..     .   . .  .  .  ..  .   .    .    ..     .             .
.               .                       .. ..           ..    .  .      .      .   ..   . ..   . .   .   . .  .   .           .
.               .                       .      .. .  .      .     .  . ....  ... .     .....  ....    . .  .   . .            .
                                         . .  ...      .     ..  . ...  . .  ..   ..     ...   . . . ..       ... .           .
.                .                      ..    ..       ..    . . ... . .    .     . .   . ..  .    ...            .           .
.                .                      . ..     .   .....  .  .  .     . .   .  .     .. ..   . . . ..       . ...           .
.                 .                            ...                                                                            .
.                                             ...                                                                             .
.                 .                             .                                                                             .
.                                                                                                                             .
.                 .                                                                                                            
.                  .                                                                                                          .
.                  .                                                                                                          .
.                                                                                                                             .
                   .                                                                                                          .
.                  .                                                                                                          .
.                   .                                                                                                         .
.                   .                                                                                                         .
.    . .            .                                             .....            .....                                      .
.    . ..           .                                           ...   . .        .     ...                                    .
.    .              .                                          ..       .       ..       ..       .....     .....             .
      .             .                                          .         .      .         .      ..   ..   ..   ..            .
.    . .            .                    ...     ...          ..         ..    ..         ..    ..     .. ..     .     ...    .
.     . ..          .     ..      ...   .. .    .. ..         .           .    .           .    .       . .       .   .. ..   .
.    .   .          .     . .     . .   .   .   .             .           .                .    .       . .       .   .   .   .
.                   .     ..       ..   .. ..   .. ..                     .    .           .    .       . .       .   .. ..   .
.                   .                    ...     ...          ..         ..    ..         ..     .     .. ..     ..    ...    .
.                   .                                          .         .      .         .      .    ..   ..   ..            .
.                   .                                          ..       ..      ..       .        .....     ... .             .
                    .                      ...                  ...   ...        ..    ...                                    .
.                   .                                             .....            .....                                      .
.                  .                      .. .                                                                                .
.                  .                     .....                                                                                 
.                  .                      ..                                                                                  .
.                  .                       .                                                                                  .
.                  .                     . . .                     ..                                                         .
.                 .                                                ...                                                        .
                                                                  ..                                                          .
.                 .                                               .  .                                                        .
.                 .                                                ...                                                        .
.                 .                                               ...                                                         .
.                .                                                . ..                                                        .
.                                                                                                                             .
.                .                                                                                                            .
.               .                                                                                                             .
.                                                                                                                             .
.                                                                                                       .      .              .
.              .                                                                                        .     .               .
.             .                                                                                          . .   .              .
.             .                         ..  .        .   .   . .     .  ..   .    . .   ....   ...   .   ...          ..      .
.            .                           ...         .       .   ..       .    .  .    .. ..   .    .    ... . ..     .       .
.            .                          .               ..   . . .     ..   ..    .     . ..   . .   .  .    ....  .   .      .
            .                            . .  . .           .. .  .  .  .    .   .. .  ....   ....    .   .  . ..   ..        .
.           .                            .      .      .     . . . ...    .    .  . .   .  .   . . . ..              .        .
.                                       . ... .        .    .      . .   .    .  .      . .   .     . .            .          .
.          .                            .. .   .     . ...   . .  .    .    .     . .  .. ..   . . . ..             ...       .
.         .                                   . .                                                                             .
.        ..                                       .                                                          . ..              
.        .                                        .                                                          .                .
                                                                                                             . .               
.      .                                .  .             .     .     .  ..    ..  ..    ..   ...    ...   .   . .  . . .       
.                                       .  .         .        .. ..       . . ..    . . ..  .. ..   .    .   .       ..       .
.    .                                   . ..         . ..    .. .     ..   .  . ..   .  .   . ..   . .   .  .  .  .  ..      .
.    .                                  .     . .    .      ....  .  .  .   .  .  .   .  .  ....   ....    .  . .   . .       .
.   .                                    . .  . ..     .    .    . ...    .  ...    . ....   ....   . . . ..       .....      .
.  .                                    ..    .        ..   ...  ...     .   ..    .   ..    . ..  .    ....                  .
. .                                       ...  .     .....   . .  .    .      .  .      .   .. ..   . . . ..       .....      .
..                                            .                                                                               .
.                                              . ..                                                                           .
.                                             .                                                                               .
.                                                                                                                             .
.                                       .   .                ..  .      . .      ...                                           
                                         ...               . .. . ..   .. . .   .                                             .
.                                        . ..              .  .   ..   ..  . .     ..                                         .
.                                       . ... . .       .     . .    . ..  ...    . .                                          
.                                         .   . ..  .      ....  .   ..    ...  ....                                          .
.                                       ...   .      .  .   ..   . . ..   .       .                                            
.                                           .  .    .        .     . .. .   .     . .                                         .
                                              . .     .                                                                       .
.                                              . ..   ..                                                                      .
.         .. .. .                             .   . .....                                                                     .
.       ...     ...                                                                                                           .
      ...         ...                                                                                                         .
.    ..             ..                                                                                                        .
.                    .                                                                                                        .
.   ..               ..                                                                                                       .
.                                                                                                                             .
.  ..        ...      ..                                                                                         .....   .    .
.  .                   .                                                                                        .     .  ..   .
.  .        .  .       .                                                                                        .     .    .  .
.          .....       .                                                                        ..              .     .   . . .
.  .                                                                                          . ..              .     .  ..   .
.  .         .                                                                                .  .              ..   ..    .  .
.  ..      . . .      ..      . ..               .   .  .    . ..  . .  . .   ....   ..    .  .  .  . . .        .....  ...   .
.   .                 .       ..  .              .      .    .    ..   ..    .. ..   .    .   . ..    ..                       
.   ..               ..           .               . ..   .   . .   . .  . .     ..   . .   .   .    .  ..                     .
.    .               .         ....   ...  .     .        .. .. . .... ....  .....  ....    .   .    . .                      .
.    ..             ..         .     .     ..            ... .    ...  ...    .. .   . . . ..       .....                     .
      ...         ...         ...    ..      .     ..   .    ..    ...  ...   . ..  .    ....           .                     .
.         .      ..               .  ....   . .  .....    .   . .  ...  ...  .. ..     . . ..       .....                     .
.          ......                    ..    ..                                                                                 .
.                                     .   .. .                                                                                .
.                                   . . . ....                                                                                .
.                                                                                                                             .
.                                                                                                                             .
.            .                                                                                                     .          .
.            ....... ............... ...  ......................... ............... ......... ......................          .
.            .                                                                                                     .          .
.                                                                                                                              
.                                                                                   . .  . .                                  .
.                                                                                   ...   ..                                  .
.                                                                                      .    .                                 .
.                        ..  .        .   .   .       . .      ..   ....   ...   .   . .  . .     ..                          .
.                         ...         .      . .. .     . .  .  .  .. ..   .    .   .    .        .                           .
.                        .             . .     ..        . . .  .   . ..   . .   .    .    .   .   .                          .
.                         . .         .      .     .  .  ... .  .  .....  ....    .   ..  ...    ..                           .
.                         .  .  ..      .     ..  . ...   .. ....   ....   .   . ..              .                            .
.                        .   .    .     ..    . . ... . .      .      ..  .    .. .            .                              .
.                        .. .    . .  . ...  .  .  .      .    .   .. ..   . . . ..             ...                           .
.                               ..                                                                                            .
.                              .. .                                                    .                                      .
.                              ....                                                   ..                                      .
.                                                                                     ..                                      .
.                        .  .             .   ...     .  .      .   ....   ...   .  .. .  . . .                               .
.                        .  .         .       .   ..    .  . ..    .   .   .    .   ..                                        .
.                        .. .          . ..   . . .           . .   . ..   . .   .  ...   .  ..                               .
.                        .      .     .      ....     . .    ....   ....     .    . .. .   . .                                .
.                         . .    .      .     . . . ...  ..  ...    ...    . . . ..       .....                               .
.                        ..       .     ..   .    ... .  . .   ..   . ..  .    . ..           .                                
.                        .  ..   . .  .....   . .  .    .  .  ...  ..  .   . . . ..       ... .                               .
.                               ..                                                                                            .
.                              .. .                                                                                           .
.                              . ..                                                                                           .
.                                                                                                                              
.                                                                                        . .   . .                            .
                                                                                         ...  .                                
.                                                                                           .  . .                            .
.                        ..  .        .   .    ..     .  .    .    .     ....   ..    .   . . ...      ..                     .
.                         ...         .      . .. ..       .   .. . ..  .. ..   .    .   .    ...      .                      .
.                        .             . .   .  . .     ..     .    ..   . ..   .     .    .   ...  .   .                     .
.                           .    ...  .      .  .  .  .      .    .     .....  ....    .    .  ...    ..                       
.                         .  .  .       .    .. . . . .    .  .    ..    ...    . . . ..                                      .
.                        . ...  .  .    ..    .   ... .   .   . .  . .     ..  .    ....            .                         .
.                        .. .  .....   . ..    .   .    .    .  . .  .  .. ..   . .   ..             ...                      .
.                                .                                                                                            .
.                                .                                                          .                                  
.                              . . .                                                       ..                                 .
.                                                                                          ..                                 .
.                        .  .         .         .     . .     .     ..   . ..   ..    .  ....  .   .                          .
.                        .  .         .         . ..    . .  . .. .     .. ..   .    .   ..      ..                           .
.                         . ..         . ..    .. .        .   .. . .      ..   . .   .  ...   .  .                           .
                         .       ...  .      ....  .  .   .. .    .. .  .....  ....    . .. .   . .                           .
.                           .   .       .    ..   . ...  ...  .   .      ....   . . . .        . ...                          .
.                        ..     .. .    ..   ...  ... .       . . .. .   . ..  .    ....           .                          .
.                        . ... .....  .....  .. .  .      .  .  .  . .  .. ..   . . . ..       .....                          .
                                ..                                                                                            .
.                                .                                                                                            .
.                              . . .                                                                 ...  ...                  
                                                                                                     .    .                   .
                                                                                                     . .  . .                 .
.                        . ..               .   .   ...     .  . .  ..    ..  .     ....   ...   .  .  . . ..  .   .          .
                         ..  .                      .    .    ..      . . .. . ..  .  ..        .    . .  . .    ..           .
.                        .                   .  .   . . .      . . ..   .  .   ..   . ..   . .   .  .    .     .  ..          .
.                         .... . .     ...  .      ....  .  . . ..  .   .  .       .....  ....    .  . .    .   . .           .
.                         .    . ..   .       .     . . . ...  ..     . ....  ..    ....   .     ..            .....          .
.                        ...   .       . .    ..   .    ... .  ...   .   .    . .   .  .  .    . ..                .          .
.                            .       . ...  ..  .   . .  .     ... .      .  .  .  ..  .   . . . ..            .. ..           
.                                      .                                                                                      .
.                               . ..   .                                                                                      .
.                              .   . . . .                                                                                    .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.  . .  .  . .  .  . .     . .  .   .   .   .                                                                                 .
.   .  . .  .  . .  .   .      . . . . . . . .                                                                                .
.  .    .  . .  .  . .   . . .  .   .   .   .                                                                                 .
.                                                                                                                             .
.                                                                                                                             .
.............  ......... ...... ....... ................................ .... ... .............................................
                                                                                                                               
                                                                                   .  . . . . . .  .   .   .  . .  .  . .  .  .
.                                                                                 . .      .   .  . . .   . .  .  . .  .    . .
.                                                                                  .  . . . . . .  .   .   .    .  .  . .  .  .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                      ....                                                                                   .
.                                   ...    ..                                                                ...              .
.                                  .         .                                                                .               .
.                                 .           .                            ....                               .               .
.                                 .       .    .                         .     .                              .               .
.                 ....            .    ....    .                        .       .                             .               .
                .  . ..           .   .    .   .                       .         .                            .               .
.              . . .  .           .         .  .                      .                                       .               .
.              . .    .           ..         . .                      .  ..                                   .               .
.                .  . .            . ..   ..  .                      .  .  ....    .                          .               .
.              .    . . ..         .  .   .   .                        .       .   .                                          .
.              .      .. .         .    .    ..                      . .       .    .                                         .
               .      .  .          .   ..   .                       . . .  .. .    .                         .                
.              .        .           .        .                       . .  . .  .    .                         .               .
.               .      .             . ...   .                       . .        .                             .               .
.               .     .              .      ..                       . . .  .   .   .                         .               .
.               .                     .   .. .                       . .  ..   .    .                         .               .
.               .    .               . .     ..                      . ..     ..    .                         .               .
.               .                   .          .                     .  ...... .    .                         .               .
.                    .            ..            .                     .  .     .                              .               .
.               .    .          ..               ..                   .  .      .                             .                
.               .    .       ...  .....    . ....  ...                .          .                            .                
.                    .     ..    .      ..       .                    . .         . .                         .               .
.               .    .    .                       .    .             ..    ...    .  ..                       .               .
.               .        .                              .          ..    ..   ....     .                      .                
.               .    .   .                              .         .                     .                     .               .
.               .    .                                   .       .                       .                    .               .
.               .     .                                  .       .                        .                                   .
.               .     .                             .    .       .                        .                   .               .
.                                                  .     .      .                          .                  .               .
.               .                                  .     .      .   .                .      .                 .               .
.               .            ..  .              .  .     .      .   .               ...     .                 .                
.               .            . .        ..        .      .      .  .                 . .     .                .               .
.                           .   .... ...  ..... .. .     .      .  .                 .  .     .               .               .
.               .        ... .                     .     .      .  . .            .  .   .    .               .               .
.               .       ..   .                     .      .     .  .     .    .     ..    .    .              .               .
.                 .   ..      .        .           .      .     .   .          .     .    ..   .              .               .
.                  ..         .       .   .        .      .     .   ....        ..   .    .    .              .               .
.                                    .     .       .      .     .   ..               .   .    .               .               .
.                             .      .            ...     .         ..              .    .    .               .               .
.                                    .      .       .     .    .    ..             ..   .    .                .                
.                              .    .       .     . .     .    .   . .             .    .   .                 .               .
.                              .   .              .       .    .   .               .   .    .                 .               .
.                             .                   .  .        ..   ..               .  .   .                  .                
.                             .                   .  .     .       .                . .    .                  .               .
.                                                 .  .     .  .   .                 ..    .                                   .
.               .             .         .         .  .     .  .   .                 .                                         .
.              .. ..          .         .         .  .    .   .  .                   .   .                    .               .
.               .. .          .                   .  .    .   .  .         .        .   .         .           .                
.                 ..         .                    .  .    .   .  .         .       .    .     ..              .               .
.                .           .   .             .   . .        .  .                 .   .       . .            .               .
.                ...         .   .             .   . .    .   .  .                              ..            .               .
.              . .           .    .           .    . .    .   .                     ... .        .            .                
.                            .    .           .      .   .    .  .                      .                     .               .
.                            .    .           .    . .   .    .  .                      .      . ..           .               .
.                           .      .         .     . .   .    . .      .                .                                     .
.                           .      .        .            .      .              .         .                                    .
.                           .       .      .        .    .    . .       .      .         .            .      . . ..  . . .    .
.                           .        ..   ..       .    .       .        .    .                      .   ..    .       ..     .
.                                    .   . .      .           . .         .              .           . . .       .   .  ..    .
.                           .        .   . .      .     .       .           .            .          .. .  .  . .. .   . .     .
.                           .        . . .       .  .                       .            .           . . .  .. .     .....    .
.         .                 .        . . . .    .  ..   .       .           .            .          .    . . . .. .      .    .
.         ..                 .        .. ..     ... .   .    .. .           .            .           . .        . .  .....    .
.           ..               .         .. .         .  .      . .          . .          .                                     .
.           ..               .         .  .            .       ..          . .          .                     .               .
                             .         .  .        .  .          .         .  .                               .               .
.                            .         .  .       .  .           .            .         .                     .               .
.                            .            .       ...            .         .  .         .                     .               .
.                            .         .  .          .            .        .   .        .                     .               .
.             ..             .            .         .             .        .             .                    .               .
              ..             .         .  .         .                      .   .         .                    .               .
.                            .         .  .         .             .        .    .        .                    .                
.                            .         .            .                      .    .                             .               .
.                             .        .  ..        .              .       .    .        .                    .               .
.                             .        .           .               .       .     .       .                    .               .
.                             .        .   .       .                .      .             .                                    .
.                             .        .   .       .                .      .     .        .                   .               .
.                              .       .           .                .      .     .                                            .
.                              .       .   .       .                       .      .       .                   .               .
.               ..             .       .   .       .                .      .      .       .                                   .
.               ..                     .   ..      .                .   .  .       .      .                                   .
.                                      ..   .      .                .  ..   .      .  .   .                                   .
.                              .  .     .   . .  . ..                               .  .. ..                  .               .
                               .  ...   .   . ....                  .       .       .      .                  .               .
.                              .        .   .       .               .       .       .                         .               .
.                                       .   .       .                       .       .       .                                 .
.                              .        .   .       .               .       .       .        .                .               .
                               .        .           .               .       .       .        .                .               .
.                                       .   .       .                .     .        .        .                .               .
.                               .       .   .       .                .     .         .       .                .               .
.                               .                   .                .     .         .       .                .               .
.                               .      .    .       .                .     .          .      .                .               .
.                               .            .      .                .                .      .                .               .
.                 ..            .      .     .      .                 .    .                  .               .               .
.                 ..             .     .     .                        .    .            .     .                               .
.                                .     .     .      .                 .    .            .     .               .               .
.                                      .     .     ..                 .    .             .    .                               .
.                                .     .     ..    .                   .   .             .    .                                
.                                .     .      .    .                   .   .              .   .                               .
.                                 .    .      .    .                   .   .              .   .               .               .
.                                 .    .      .    .                   .   .              .   .               .               .
.                                 .    .      .   .                    .   .               .   .              .               .
.                                 .    .      .   .                   .     .              .   .              .               .
.                                 .    .      .                      .      .               .                 .               .
                                  .    .      .   .                 .     ..                .   .             .               .
.                                .            .   .                .     .                 .     .            .               .
                                .       .    ..   .                .    .                  .      .                           .
.                              .        .    .     .              .  .  .                   ..     .          .               .
.                            ..      ...     .     .              . .  .                      .     .         .               .
.                           .       .        .      .              .  .                       .     .         .               .
.                          .       .          .     .               ..                         .  ...         .               .
.                   ..     .      .            .     .                                          .   .                         .
.                   .      . .    .            .     .                                           ...                          .
.                           .   ..             .     .                                                        .               .
.                            ...                .    .                                                        .               .
.                                                   .                                                        . .              .
                                                  ..                                                                          .
.                                                                                                                              
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.    ..  .               .  .              .     ...  ...   ...                                                               .
.     ...                ...               . .        .    .  .                                                               .
.     . ..               . .                . .  . .  . .     ..                                                              .
.      ..   ..   .   .  . . .     . .       ... .... ....    . .                                                              .
.      .   .. .. .        .   ..    .       ...  . .  . .  .....                                                              .
.    ...     . .  . .   ...    . .   . ..  .    .    .      ..                                                                .
.        .    .. .          . . ..  .        .   . .  .        .                                                              .
.            .                   .    .                                                                                       .
.          . ...   ..         .       ..                                                                                      .
           . .   ... .         . ..  ....                                                                                     .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.    .   .              ..  .              . ..   .      ..            ....               .. .               .     .    .  .  .
.     ...                ...               .     .       .             .. .               ....              . ..  .           .
.    .                  .                  .      .   .   .           .   .              .   .                ..   .   .  .   .
.     . .   .    .   .   . .      . .   .  .. .        ...              . .   .   .   .    . .     . .   .  .       .  .  .   .
.     .  . .. .  .       .  . ..    .      .    . ..                    ... .. .. .        ... ..    .       ..  . ..    .    .
.    . ...        .  .  . ...  . .   . ..  .. . ....  .                .  .  .. .  . ..   .     . .     ..   . . ....  .  ..  .
.     . .     .. .      ..    . ..  .       . . . .    ...              .      .  .       ..   . ..  .      .  . .  .     ..  .
.            .     .             .    .                                       .     .                  .                      .
.          .  ..    .         .       ..                                    . . .   .          .       ..                     .
.          . .   ... .         . .. . ...                                   . .   .....         . .. ... .                    .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.             .. . ..    ..  . ..                                                                                             .
.          . . . . . . . . . . . .                             .       ...         ...                                        .
.          . .    . ..  .  .  . ..                           . ...       ...     .  .                                         .
.            ... . ..  . ..  . ..                            . .                 . .                                          .
.            ... . ..  .  .  .  .                              ...     . .         ...                                        .
.          .  .  ...   ...   ...                               . .       ..          .                                        .
.          .. .. .     .     .                               . ..      .         . ..                                         .
.                                        ..                  .. ..      .        .. ..                                        .
.                   ..                 ..  .                                                                                  .
.                   ..                  . ..                            ..                                                    .
.                                      .  .                             ..                                                    .
.                  . ..                 .                                                                                     .
.                  . .              ..    .                            . ..                                                   .
.                   . ..            ..  .                              . . .                  ...                             .
.                  .  .                                              .  . .. .              .   ...                           .
.     .. . ..    . . ..  ...   . ..                                 .. . ..  ..            ..   .                             .
.  . ..  . . .  .. ...     ..  . . .                               ..  . ..   ..           .  . .   .                         .
.  . .    . .. ..  .        .   . ..                       ...    ..   ...      .  .  .  ..      .  ..                        .
.    ..  .  .                . . ..                          ... ..    .        .  .   .      .      ..                       .
.    ... . ..                  . ..                          .   .                  . ..       .       .                      .
.  . ..  ...                   ...                         . .                     . ..                ..                     .
.  .. .. .                     .                             ..                    . ..                 .                     .
.                 . .                                      .                       ...                                        .
.         ..      .   .          .                          .         .. ..        .                     ..           ...     .
.         ..       .              .                                     ...                            . . .        . ...     .
.         ..        ..           ..                         ..        ...           .                   . .. .....    .       .
.         ..      ....           ..                         ..           .           .                 . ..  .....    ...     .
.         .         ..           ..                                    .                               . ..           ...     .
           .       . .                                  ... . ..      .....        . ..                . .          . ..      .
.          .                   . .                    . ... . . .        ..        . . .               .            .. ..     .
.                                ...                  . .    . ..                   . ..                                      .
         ...                     .                       .. . ..                   . ..                 .                     .
           ...               . .                        ... . ..                 . . ..                ..                     .
.          .                .     .                   . ..  . .   .    ...      .  ...   .    ...     ..                      .
.        . .   .   . ..    ..  .                      .. .. .     ..     ..    ..  .      .     ...  ..                       .
           ..   .  . . .  ..    .                                  ..    .     .          ..    .    .                        .
.        .      ..  .  . ..           .                             .. . .   ..            .. . .                              
                 . . ..  .           ..                              .   ..  .              .   ..                            .
.                  . ..                   ...                          .                      .                               .
                   ...                  . ...                                                  .                              .
.                  .                    . .                                                                                   .
.                                         ..                                                                                  .
                    ..                    ...                                                                                 .
.                   ..                  . .                                                                                   .
.                                       .. .                                                                                  .
.                    ..                                                                                                        
.                  ..  .                                                                                                      .
                    . ..                                                                                                       
.                      .                                                                                                       
.                  ..                                                                                                         .
.                                                                                                                             .
.                   .                                                                                                         .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                            ...                                                                              .
.                                            ..                                                                               .
                                           . .                                                                                 
.                                            ...                                 ..                                            
.                                            ..                                .. ..                                          .
.                                          . ..                                 . ..                                          .
.                                          .. ..                               .  ..                                           
.               ... . ..                                                       ..                                             .
.             . ... . . .                  .                                      .                                           .
.             . .    . ..                ..                                     .                                             .
.                 . . ..                                                                                                      .
.               ... . ..                                                         ..                                           .
.             . ..  ...              ...                                         ..                                           .
.             .. .. .                   ..                                       ..                                           .
.                                      .                      ...                ..                                           .
                  .   ..             . .                    . . .                                                             .
.                 .    ..          .   .    .   . .         . .                . ..                  . . .                    .
.               ..      ..         . .      . .  ..           ...              . . .               . ... .                    .
.               .        ..       .   .       . .             ... .          .  . .. .            .. . . .                    .
.                                               ...         .  .  ..        ..    .  ..           .   ..   .                   
.     ... . ..              . ..                ...         .. ..  . ...    .  . ..   ..  .  .  ..   ... . ..                 .
.   . ... . . .             .   .             . ..                     ... .   ...     ..   . . .      . .  ..                .
.   . .    . ..              . .              .. ..                    .       .        .  . ..      ... .   ..               .
.     ... . ..              . ..                                     . .                  . ..                .               .
.     ... . .               . ..                                       ..                 . ..                                .
    . ..  ...               ...                                      .                    ...                                 .
.   .. ..                   .                                         .         . . .     .   .                . .     ...    .
                  ..                                                            ..                             . . . . ..     .
.        ..        ..        ..                                       ..         .         ..                   . .. . .      .
.        ..       .....      ..                                       ..          . .      ..                  . ..    ...    .
.        ..        .  .      ..                                                   ...                          . ..     ..    .
.        ..       .   .       .                                      . ..           .     . ..                 .     . .      .
.                 ... .                                              . . .       .. .     . . .                .     .. ..    .
.        ..        .. .     ...                                       . ..                 . ..                                
.         ...                 . .                                    . ..               . . ..                .               .
          .                   .                                      . ..  .           .. . .                                 .
.         .                 . .                                    .  ..    .  . .    ..  ...        ...     .                .
.          .              .   ..                                  ..        ..   ... ..   .      .     ...  ..                .
.       .     .          .. .                               ...   .          .   .   .           ..    .   ..                 .
.        .    ..  . ..  ..   .                                ...              . .                .. . .                       
.              .. . . . .                                     .                  ..                .   ..                      
.               .  .  .                            .. ..... . .                                      .                        .
.                 . .                           . ... . ...   ..                .                                             .
.                 . ..                          . .         .                                                                 .
.                 ...                             ...        .                                                                .
.                 .                               ...                                                                         .
.                                               . .         .                                                                 .
.                  ..                            . ..      ..                                                                 .
.                  ..                                      .                                                                  .
.                                                                                                                              
.                   ..                                     ..                                                                 .
.                 .. ..                                  .  .                                                                 .
                   . ..                                  . .                                                                   
.                     .                                    ...                                                                .
.                  .                                       ...                                                                .
.                                                        . .                                                                  .
.                  .                                     ..  .                                                                 
                                                                                                                              .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
        .  .... . ..  ...    ..  . .   ....   ... ...      .   .     ..                                                       .
.      .. ..    . . .  . ..  .   ...  .. .. . ...  . ..   .. .. .. .. ..                                                      .
.      .   . ..  . .. .....  . .    .    .. . .   .....   ..  .  .    ..                                                      .
.    .... ..... . ..  .  .. ...   . . .....          .. .... ....  .   .                                                      .
.    ..    ...  . .   .  ..  . . .     ....    .  .  .. .     . .. .                                                          .
.    ...     .. . .      .. .            .  . ..    . .  ..   . ..    .                                                       .
.    .. .  . .  .     ..  .  . .  ... .. .. .. .. .. .  .. . .. ..  .                                                         .
.                                                                                                                             .
.                                                                            ..           . .                                 .
.                     .   .. .   .                                            .           .                                   .
.                   ...  .. .. .. ..                                          ....         .                                  .
.                      .  . ..  . ..                                          .  .          ...                                
.                    . .  .... .  ..                                             .        ....                                .
.                   .      ..  ..                                            ... .          ..                                .
.                     .   . ..    .                                           ....         ...                                 
.                    ...  . ..  .                                                                                             .
.                                                                                                                             .
.                                                                            .. ..        .   .                               .
                              .                                              . ...        ..                                  .
.                             .                                              ..            .                                  .
.                             .                                                 ..          . .                               .
.                             .                                               .              ..                               .
.                           . . .                                            .....                                            .
.                            ...                                                ..        ... .                               .
.    ..                       .                                                                                               .
.      .                                                                                                                       
.     .                                                                                                                       .
      . .           ..... .. ............                           ...         .            .                                .
.      .        .....                   .....                        .          .            .                                 
.    . .     ...                             ....                    .           .          .                                 .
.    . . .   .                                  ...                  .            ..      ..                                  .
.           .                                     ...                .              ..  ..                                    .
.          .                                        ...              .                ..                                      .
.         .                                            ..            .              ..  ..                                    .
.        ..              . .......                      ..           .             .      ..                                  .
.                      ...       ...                     .           .           .          .                                 .
.                     ..           ..                    .           .          .            .                                .
.      .             ..             .                    .           .          .            .                                .
.     .             ..   .      .    ..                   .          .           .          .                                 .
.     .            ..    .      .      .                  .          .             .      ..                                  .
.     .            .      .    .       .                   .         .              ..  ..                                    .
.      .          ..      .    .       ..                  .         .                ..                                      .
.      .          .        .  .                             ..       .              ..  ..                                    .
.      .          .         .           .                     .      .            ..      ..                                  .
.       .         .       ..  ..        .                      .     .          ..          ..                                .
.       .         .      .      .       .                      .     .        ..              ..                              .
.                 .      .      .       .                      .     .       .                                                .
        .                .      .       .                            .                           .                             
.        .                .   ..        .                       .    .        .  .               .                            .
.        .        .          .          .                            .         ..               .                             .
.         .       .        .  .         .                       .    .       ..  ..        .  ..                              .
.         .       ..      .    .       ..                       .    .      .      .        ..                                .
.        .         .      .    .       .                       .     .     .        .     ..  ..                              .
.       .           .    .      .     ..                       .     .     .        .    .      .                              
.      .            ..   .      .                             .      .      .      .    .        .                            .
.      .                            ..                       ..      .       ..  ..     .        .                            .
.     .               ..           ..                        .       .         ..        .      .                             .
.     .                ...       . .                        .        .       ..  ..       ..  ..                              .
.    .                   .........                                   .      .               ..                                 
.    .                                                   ..          .     .        .     ..   .                              .
.    .                                   .. .           ..           .     .        .    .      .                             .
.    ..                                 .    .        . .            .      .      .    .        .                            .
.     ...                            ...      .      ..              .       ..  ..     .        .                            .
.       ...                         .          ......                .         ..         .     .                             .
.          ..                      .                                 .       ..  ..           ..                              .
.           . ..                 ..                                  .                      ..                                .
.               .....          ...                                   .                                                        .
.                   ....... ...                                     ...                                                       .
.                                                                                                                             .
.                                                            ...    ..                                                         
                              .                                .  . ..                                                        .
.                             .                             . ..  .  .                                                        .
.                             .                    . .   .      . .     . . .                                                 .
                              .                    .    .    . .  ....    ..                                                  .
.                             .                    . .   .  ... .  ..      ..                                                 .
.                             .                   ....    . ...     .      .                                                   
.                           .   .                  . . . ..             .....                                                 .
.                            ...                  .     ...                 .                                                 .
.                             .                      . . ..             ....                                                  .
.                                                                                                                             .
.                                                                                                                             .
.              . .   ...    . .   ....    ..                                                                                  .
.              . . .    ..  ...  .. ..  .. ..                                                                                 .
.               . .. .. .      .  . ..   . ..                                                                                 .
.              .  .  .  ..     . ... .  .  .                                                                                  .
.              . .   .  ..  .     ....  ..                                                                . . .               .
.              ...      ..    .   . ..     .                                                              .   . .             .
.              .     .  ..   ... .. ..                                                                      .  . .            .
                                                       ..           .   .  ..           .   .    ..   .   ...  ...            .
.                                                      . .          .        .          .       .    .    . .  ...            .
.                                                       .            . ..   .            .  .   . .   .       .                
.                                                       . .   ..    .       . .      .  .      ....    .  . .   .             .
.                                                            ..  .    .      .   ..       .     . . . ..                      .
.                                                        .    .. .    ..   . .    . .     ..   .    ....                      .
.                                                      . . .    ..  ... .  . . . . ..   .....   . . . .                       .
.                                                              .                    .                                         .
.                                                            . ..                .                                            .
   . . . .  .  . . . . .   . .  .   .  . . . .               .                    . ..                                        .
.   .   .  . .  .   .   .   .  . . . .  .   .                                                                                 .
.  . . . .  .  . . . . . . .    .   .  . . . .                                                                                .
.                                                                                                                             .
.                                                                                                                             .
........... .................. ...... ...........  .... ..... ... ....... . .. ......... ... ................................. 
.                                                                                                                             .
.                                                                                  .    .  .   .       .   .   .  . . . . . . .
.                                                                                 . .  .  . . . . . . . . .   . .  .   .   .  .
.                                                                                  .  . .  .   .   .   .   .   .  . . . . .   .
.                                                                                                                             .
                                                                                                                              .
.                                                                                                                             .
.                                                                                                                             .
                                                                                                                              .
.                                                                                                                             .
.                                                                                                                             .
.                                       .                                                                                     .
.                                      ..                                                                                     .
.                                     . .                                                                                     .
.                                     .                                                                                       .
.                                    .  .                                                                                     .
.                                    .  .                                                                                     .
                                    .   .                                                                                     .
.                                   .   .                                                                                      
                                   .    .                                                                                     .
.                                 .     .                                                                                     .
.                                 .     .                                                                                     .
.                                .      .                                                                                     .
.                                .      .                                                                                     .
.                               .       .                                                                                      
.                               .       .                                                                                     .
.                                       .                                                                                     .
.                              .        .                                                                                     .
.                             .         .                                                                                     .
.                            .          .                                                                                     .
.                            .          .                                                                                     .
.    ..                     .           .                                 .                                                   .
.    . .                    .           .                                . .                                                  .
     .  ..                 .            .                              ..  .                                                  .
.    .    .               .             .                            ..    .                                                  .
     .     ..             .                                         .      .                                                  .
.    .       ..          .              .                                  .                                                  .
.    .         .        .               .                       ..         .                                                  .
.    .          ..                      .                     ..                                                              .
.    .            ..   .                .                    .             .                                                  .
     .              .. .                .                  ..              .                                                  .
.    .               ..                 .                 .                .                                                  .
.                                                       ..                 .                                                  .
.    .                                                ..                   .                                                  .
.    .   ..                             .           .                      .                                                  .
.    .   ..                                       ..                       .                                                  .
.    .  ..        ..              .     .        .                         .                                                  .
.    . ..          ..           ....    .      ..                          .                                                   
.    . .           .. .         .....   .     .                            .                                                  .
.    ...            . ..       ........    ...                             .                                                  .
.    . .          .. ......   ..... . ... .                                .                                                  .
.    .            .. .....................                                 .                                                   
.    .            ..... ................                                   .                                 ...              .
.                .. ....  .. ...........                                   .                                .  .              .
.    .           ............... ......                                    .                              .    .              .
.    .           . ............ . ....                                                                  ..                    .
.                ...... ......  ....                                       .                           .       .              .
.    .           .......... ........                                       .                         ..                       .
.    .             .................                                       .                       ..          .              .
.    .    .         .. . ..........                                        .                     ..            .               
.    .     .          .. .. ......                                         .                    .              .              .
.    .                ..   .....     ......                                                   ....             .              .
.    .   .                  ....  ....    ....                             .                ......             .              .
.    .    .             .         ..          ..                           .              .......       ...... .              .
.    .                         .    ...         .                          .             .... ..       .........              .
.    .              ... . .. .      . .    ...   .                         .           .  .....      .... .... .              .
.    .       .    .  ...   . .   .. ...        . .                         .         ..             ...... ... .              .
.             ..    ...      .... .....        ....                        .       ..          .. ............ .              .
.    .           ...      ........  ..     .     . .                       .      .           ....... . ... ..                .
.    .             .. .          ...      .      . ..                      .    .            ...........  ...  .              .
.    .                                   .      ...         . .            .  .              . .... ...... ... .              .
.    .                                          ...          .             . .              ...........  ... . .              .
.    ....... .... ....... ...      ...        .....            ..          ..             .................... .              .
.                            .     ..        .. ..    .       .  .               ...... .........  ........... .              .
.                             .     ..       .. ...   .       ...               ..... ....... . .............  .              .
                              .     ...      .......        ......             ............. ......... ......  .              .
.                              .     ..      .. ......     . ... ..               ............. .............  .              .
.                              .      .       ........    .........        ......  .. ...  ....... .. .. ...   .              .
.                              .      .     .  .... ...  ...........     .........  ................... ...    .              .
.                               .     .     .. .........  ... ... ...    ......... .. . ........  .... ....    .              .
.                                .          .................... ....     ....................... .. .....     .              .
.                                .        ............ .... .............  ........ .. .............. .  .     .              .
                                  .     .......... ........... ...........  ......  ..... ...... .... ...      .              .
.                                  .    . ....  ......... ....... ......... .... .. ..... ......  ........     .              .
.                                   .   ........ ......... ............ ... ... ... .....  ....... .. ....     .              .
.                                   .   ........          ................... . ... ....... . ........ ...     .              .
.                                   .   ..   ...    .     .. .................... .. ........... ..... .       .              .
.                                    .  ........  . .     ....... ..... .... ........... ..... .. ... ..       .              .
.                                     . ........  ..  .   ..................... ....... .........  .....       .              .
.                                     . ... ....  . ...   . ............ ............... ................                      
.                                       ........  ... .   .... .  ................. ................. ....     .              .
.                                      ..... ...  ..  .   ........................  ..  .. . .. ............   .              .
.               . ............ .................   .  .   ... .........  .. .....   ........ .............. .  .              .
.               .                      ... .....          .............  .......       ........ .. ........... .              .
.              .                  ..   .........          ... .....................   ...... .......... ... ....              .
.              .                  .    ......... ... ........................  ....   ...... ...... ............              .
.             .                  ...   ....................... ..............  ....      ......................               .
.             .                   ..   ....... ..............  ... ...... ...  ... ..    ...... ... ............              .
.            .                     .   ...  .......  ......... ... ..................    ......... ........ ....              .
.            .                   .     ..... ........ . ............... ...............  .......................              .
.           .                     ...  ........ ........................... ...........  ..  ................. .              .
.          .                       ..  .. ................... .. ....... ............... .... ................ .              .
.          .                       ... ......... .. ............... . .. . ......... ...  ............  ...... .              .
.         .                         .  ............. ...............  .......... ...... .  .......... ......   .              .
.        .                          .  . ...... . ......... ..... ............... ......     . ............    .              .
.        .                          .   ................................................ ..   .... ......      .              .
.       .                           ...     . .......... ... ...... ... ......... .... ... ...                 .              .
                                     ...    . . . ............     ..... ..... ...............                 .              .
       .                            .  .    ... .............       .. ..... ......... ... ...                 .              .
.     .                               .     ............ ..             ....... . ...... . .                                  .
.     .                                ..  ..... .. .  ...                  . ..   . ..                        .              .
.     .                                .. ...........    ...                  .     ...                                       .
.    .                                  .  ....... ...                      ....   .. .                        .              .
.    .                                   .........  .                           . .  .                         .              .
.     .                                   ........                            .                                .              .
.      ..                                   .....                             ...                              .              .
.        ..                                ...  .                             .  ..                            .              .
.          ..                              .....                              .   ..                           .              .
.            .                              ....               . ..           .     .                          .              .
.              .                              ..               .....          .       .                                        
                ..                           ..                ... ....  .    .        ...                     .              .
.                 ..                  .     . ..              .......... ..   .          ..                    .               
.                                            .                ........ . .    .            ..                  .              .
.                    ..                    . .. .             ... .....       .             .                  .              .
                       .               .   .    ..         .  .. .......      .               .                .              .
                         ..                       .    .  ..      ......      .                ..                             .
.                          ..            ...      .      .  ...    .....      .                  ..            .              .
.                            .            .  .      ......  .....  ......     .                    .           .              .
.                             ..            . .. ......  ...        .....                            ..        .              .
.                               ..           ..... ........           ...     .                        ..      .              .
.                                 .           .............                   .                          ..    .              .
                                    .         ....... .. ...                                               ..  .              .
.                                     .        ...................                                           ...              .
.                                      .      ......................                                          ..              .
.                                            ..................   ......      .                                               .
                                     .       ................. ........       .                                               .
                                   .         .......................  ...                                                     .
.                                ..           ....... ...... ....... ....     .                                                
.                              ..              ...................... ...     .                                               .
.                             .                ........ .............. ..     .                                               .
.                           .                 ... ............... .......     .                                               .
.                         .                   .... ... ................       .                                               .
.                        .                    ............. . . .......       .                                               .
.                      .                      .  .... .. .. .  . ......       .                                               .
                      .                       ...... ....... ........         .                                               .
.                  .                          ...... ................         .                                               .
.                 .                           ....... .. ...... .....         .                                                
.               .         .                     .....................                                                         .
.                          .                    .. ............. ....                                                         .
.            .             .                    ...... .... ...... .          .                                               .
.                                                ....................         .                                                
.        ..                                       ........... .......                                                         .
.      .                                         .......... ...               .                                                
.     .                                           .........       .           .                                               .
.    .                                             ... ....        .          .                                               .
.    .                                               .....         .          .                                               .
.    .                                               ......      ..   ..       ..                                             .
.    .                                               ......          ...  .      ..                                           .
     .                .                                .......       ..           ..                                          .
.    .                                                   ...                  .     ..                                        .
.    .                                                      .                 .       .                                       .
.    .                                                       ...        ..              .                                     .
.    .                                                          ..    ....               .                                    .
.     .                                                         ............ ..           ..                                   
.    .                                                              ............             ..                               .
.    .                                                              ............               .                              .
.    .                                                              .. ..........               ..                            .
.    .     .                                                       ......... .....                .                           .
.    .                                                             ..... ...........               ..                         .
.    .                                                      .     ... . .. .....  .                  ..                       .
.    .                                                            . .... . ...... ..                   .                      .
.    .                                                            ............ ......                   ..                    .
.    .                                                            ........... .. . ....                   ..                  .
.                                                                 ...... ..... ........                     ..                .
.                                      ..                         ........ ...............                    .               .
.    .                                  .    .                     ...... ............... ..                  .                
     .                              ..  .     . .                  . ............... ......                  .                .
     .                            ..    .   .   .                   ........................              .                   .
.    .                          ..      .   .                        .....  . ...... .....                                    .
.    .                        ..        .    .  .                     ..... ..............             .                      .
.    .                       .          .   .. .                      ........... .......            .                        .
.    .                     ..           .   .....                     ....... ...........          ..                          
.    .                   ..             .                             .. ..............          ..                           .
.    .                  ..              .                             . ................       ..                             .
.    .                ..                .                             .. .... .........       .                               .
.    .              ..                  .                             ..... ..........      ..                                .
                   ..                   .                             ........... ..      ..                                  .
.    .           ..                     .                             ...  .......       .                                    .
.    .         ..                       .                            ......... ...     ..                                      
.    .       .                          .                            .. ........     .                                        .
.    .      ..                          .                            . .. ......   ..                                          
     .     .                            .                            ...... . .  ..                                           .
.    .   ..                             .                           ..........  ..                                            .
.    . ..                               .                          .......... ..                                              .
.    ..                                 .                          .... ..   ..                                               .
.                                       .                          .......  .                                                 .
                                                                  . ...       .                                               .
.                                       .                         ....          .                                             .
.                                       .                         ..             ..                                           .
.                                       .                         ..              ..                                          .
.                                       .                                           ..                                        .
.                                       .                            ..               .                                       .
.                                       .                                               .                                     .
.                                       .                                                .                                    .
.                                       .                                                  ..                                 .
.                                       .                                                    ..                               .
.                                       .                                                      .                               
.                                       .                       ...                              .                            .
.                                       .                     ...                                                             .
.                                                      ..   . ..                                    .                          
.                                       .              ..... ...                                     ..                       .
.                                       .          ............                                        .                      .
                                        .          . .........                                            .                   .
.                                       .         .. ... ...                                               .                  .
.                                                ...........                                                 .                .
.                                       .        .... .... ...                                                .               .
.                                       .         ..............                                              .               .
.                                       .         ............. .                                           .                 .
.                                       .            .... . .......                                       .                    
.                                       .            ........... ...                                     .                    .
.                                       .   ..  .. ...... ..........                                   .                       
.                                       .   ................. .. ...                                 .                        .
.                                       .   ..... ..................                                                          .
.                                       .   ....... ............. ..                             ..                           .
.                                       .   ..... .................                             .                             .
.                                       .    ... . .............. .                           .                               .
.                                       .    .... ..... ...........                          .                                .
.                                       .    . ...... ............                        ..                                  .
.                                       .     ....... ..... .....                        .                                    .
.                                       .     .......... .......                       ..                                     .
.                                       .      ..  ..  ........                      ..                                       .
                                        .        .. ....  ...                       .                                          
.                                       .         .  ......                      ..                                           .
.                                       .            .....                      ..                                            .
.                                       .                                     .                                               .
.                                       .                                    ..                                               .
.                                       ............ .. ................. . .                                                 .
.                                                                                                                             .
.                                                                                                                             .
                                                                                                                               
.      .   .   .  . ...   ..     .  ...    .     .       .     ..    ..   .      ....  ....    ..    ..    .                  .
.    . .   .       .  . .. ..  . .      .   . .   . .  .. .. .. .. .. ..  . ..    .     .    ..    .  .. ..  .                .
.    ..  .  . ..   ..    . ..  . .. .....  ..    ..       ..  . .   . .  .....   .     .      . ..  .  .    ..                .
.    . ...          .   .  .. .  .. .  ..  .  .. .  .. .  .. .   . .  .. .  ..  .  .. .  ..  .  .. .  .. .  ..                .
.    .....   .    ..  . ..    ..    .  ..  ..    ..  .  .    .     .     .  ..   . ..  . ..  ..    ..    ..                   .
.    ..  .   ..   .....    .          ...   . .   . .     .     .     .    ...   . .   . .      .     .     .                 .
.     .  . ..  .   ..    .          .. ..  . ..  . ..   .     .     .    .. ..  ... . ... .   .     .     .                   .
.                                                                                                                             .
                                                                                                                              .
      .    .   .    ...    ..   ..  ...     ..   ...    .  .                                                                  .
.      . . .      . ... . ..  .. ..  . ..  . ..   . ..  ... .                                                                 .
.    . . .  . ..        . .    . .  . . .   .. . .....     .                                                                  .
     .     .        . .   ... .  .  .  ..    .   .  ..  .   .                                                                 .
.     .  .   .      ...   ... ..    .   .   . .. .  ..  ..  .                                                                 .
.    ....    ..   . ..  . ..     .    ..     .     ..       .                                                                 .
.     .... .....   . .. .. ..  .     .  .   .    .  ..  ..  .                                                                 .
.                                                                                                                              
.                                                                                                                             .
.  . . . . .   . . . . . . . . . .     . .   .                                                                                .
.   .   .           .   .   .   .    .  .   .                                                                                 .
   . . . . . . . . .   . . . . . .  .    . . .                                                                                .
.                                                                                                                             .
.                                                                                                                             .
................ .. .. .....  .. .... .. . ...... .............................................. ......  ................ .....
.                                                                                                                             .
.                                                                                  .   .   .  . . . . . . . . . . . . . . .   .
.                                                                                 .     . . .      .       .       .   .   .  .
.                                                                                  .          . . . . . . . . . . . . . . . . .
.                                                                                                                              
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.       . .                                                                                                                   .
.       ...                                                                                                                   .
.          .                                                                                                                   
. ..     . .  .   .  . .. ..    .     .... ... .  ....        ....   .   ...      .. ..    .                                  .
. . ..        .      .    . . . . .  .. .. .  .. .. .. ..    .. ..  ..    . ..     .     . .                                  .
. .. ..   .    .  .  . .  . ..   . .  .  . ...    .  . ... .  . .. ..    .....   . . . ..   . .                               .
.  .  .  ...  .      .. .   ..   ... .....  .... .....   ..  ....    .   .  .. .  ..   ..   ...                               .
.  .. .         .    .    .  .   ...  ....  ..    .... ..     .. .  .  . .  ..    .. ..     ...                               .
.  ..           ..   .. .    ..       . ..  .  .  . .  ....   . .. ..  .   ... ...      .. .                                  .
. ...         .....   . . . ..    .  .. ..  ..   .. .. ..     . .  . .    . .. .  .  . ..    .                                 
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                              
.                                                                                                                             .
.                                                         ...   ..    ..        . .           ..   ...         ...  . .        
.                                                           .   .               ...            .   .             .  . .       .
.                                                        . ..   . .  . .           .        . .      .        . ..     .      .
. .     .   .     .             .   .     ....  ...   .      . .... ....  . . .  . .     .      . ....  .. ..     .  . .      .
. ...   .        .. ..      .. . .. . .  .. ..  .    .    . .   . .  . .    ..  .        .   . .   . .   .     . .  .         .
. ... .  . ..    .. .       ..   ..  . .  . ..  . .   .  ... . .    .     .  ..   .   .   . ... . .       .   .   .   .       .
    ..  .      ....  .  . ...  .     ... ..... ....    . ...    . .  . .   . .   . .   ...  ...    .    .     ...    ..       .
. ..      .    ..   . ... ..     .   ...  ....  . . . ..                  . ...         .               . .                   .
. .       ..   ...  ..  . ...   . . .     . .. .    ....                      .       .                  ..                    
  ..    .....  ..    .    .. . .  .   .  .. ..  . .   ..                  .....        ...                 .                  .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                              
.                                                    ...  . .   .                 ...  .                                      .
.                                                      .  ..   . ..                 .  . .                                    .
.                                                   . ..     .   ..              . ..   . .                                   .
.   .   .   .    .      .  .         ..    ...   .      .  . . .        ..   .          ...                                   .
. ... .        . .  ..    . ..   .. .. ..  .    .    . .  .      .           ..   . .   ...                                   .
. .. .   . ..       .       ..   ..  . ..  . .   .  ... .   .   . .  .   . .  .. ... . .                                      .
.   . . .       . .  .  . .    .... ..... ....    .  ..    ... .  .   ...     .  ...     .                                    .
   .  .   .    .    . ..       ..    ....  . . . ..                    .   ....                                                
. ..  .   ..     .  ... .  . . ...   . .. .    ....                  .         .                                              .
. . .   .....   ...  .    .  . .. . .. ..  . .   ..                   ...  .....                                              .
.                                                                                                                             .
.                                                                                                                             .
                                                                                                                              .
                                                                                                                              .
.                                                    ...  .      ..         ...  .                                            .
.                                                      .  . .  . ..           .  ...                                          .
.                                                   . ..   . . .  .        . ..     .                                         .
.    .. .   .    ..     .   .  . ..  ....  ...   .      .  ... .  .  .. ..     .                                              .
.     . .       .   ..     .   .    .. ..  .    .    . .   ... ...    .     . .  .                                            .
.   .    . ..   . . .       .  . .   . ..  . .   .  . .   .     ..     .   . . .   .                                          .
. ..    .      ....  .  .    . .. . . ... ....    . ...          .   .     ...    ...                                          
.    .    .     . . .  .. . .. .     ....  .   . .                   . .                                                      .
. ...     ..   .    ... . .... .. .    .. .    ....                   ..                                                      .
. .  .  .....   . .  .    . ..  . . .. ..  .   . ..                   . .                                                     .
.                                                                                                                             .
                                                                                                                              .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                             ...   ...                       .
.                                                                                               .   .                         .
.                                                                                            . ..   . .                       .
  ..    .   .   ... ..     ...  .     .    .    .    .              .         .   . ..  .. .     . .. .                       .
. . ..  .       .   . . .  .   ..    .    .    .    .    .    .    .    .    .   .. ..    .   . .   . .                        
. .  ..  . ..   . .   ..   . .  . .   .    .    .    .    .    .    .    .    .   . .. ....  ..    .                          .
. .   . .      .. .   ..  .... ....         .    .    .    .    .    .    .    . ..... .  .  ...    . .                        
.  .. .         . . .. .   . . ...  . .. . .. . .. . .. . .. . .. . .. . .  . ..  ....   .                                    .
.  ..     ..   .        . .     ... .... .... .... ....  ... ....  ... .... ...   . .. .   .                                  .
. ..    .. ..   . . . ...    .  ... . .. . .. . .. . ..        .. . .. . .. . .. .. ..    .                                   .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.  ...   .. . .   .  .     ...   ..   ..    .  .   . .     .  .. ..                                                           .
.          .  .      . .   .   . .    ..   ..    .  ..    ..  ..                                                              .
   . .  ....   . ..   . .  .      . .  .   .. ..      .   ..    .                                                              
. ....  .  .  .       ... .... .  . .    ....  .    . . ....                                                                  .
.  . .          .          . .  ... ...  ..      .       .    . .                                                             .
. .     .   .   ..   .    .     ..   ..  ...         .  ...    ..                                                             .
.    .     .. .....    .   . .   .    .  .. . .     ... .. .   ...                                                            .
.                                                                                                                             .
.                                                                                                                             .
    .   .   .   .  . .  .  . . . .  .  . . . .                                                                                .
.  . . . . . . . .  .  . .  .   .    .  .   .                                                                                  
.   .   .   .   .  . .  .  . . . .  .  .   . .                                                                                .
.                                                                                                                             .
.                                                                                                                             .
...... ............. ................... .. ...... .......... .... ....... ............................ .......................
. .......... ............................ .. ....... ............ . ......... . .................... ....... ..................
.                                                                                                                             .
.                                                                                  .       .  . . . . . . . . . .  .  . .  .   
.                                                                                 .     . . .  .   .   .   .   .  . .  .  . . .
.                                                                                  .   .   .  . . . . .   . . . .  .  . .  .  .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                                                                                                                             .
.                    .   .   .       .   .   .   .    .                         ..  .   .   .   .   .  .    .   .   ...       .
.                    .      . . . . . . . .  .       .                          ..  .      . . . . . .  .   .       .         .
.                       ..       .   .   .       .    .                              . ..   .       .  . .     ..   . .       .
.                    .                       .         .                                                    .      ....       .
.                      .                       .    . ..                              .                       .     . .       .
.                      .                       ..   ....                                                      ..   .          .
.                    ... .                   .....  . ..                            .....                   . ...   . .       .

I got a haircut which I'm very happy with.

I spent most of two days at MacWorld Conference and Expo at the Moscone Center, and it was very not bad, although since I don't own a working Mac and usually try to avoid proprietary software, there wasn't that much there which directly appealed to me personally. But the Mac and the Mac community still have a fairly high coolness factor, and I met some interesting people and saw many people I knew.

I did a couple of circuits around the Adobe booth with my EFF hat on and wearing the FSF's "Free All E-Book Readers & Programmers" button pinned to my shirt (although I didn't approach anyone from Adobe). It seems that most Adobe reps there had probably never even heard of Dmitry Sklyarov; in proper perspective, the Adobe e-Book stuff is a tiny portion of the company's business!

"Adobe's booth is about 60 times as large as [EFF's]." "Yes, but their annual budget is much more than 60 times ours, so we're doing pretty well, if you think about it."

I paid particular attention to companies which were selling audio capture or video capture cards, since we hear so much about attempts (or vague unformed desires) to regulate or ban these.

I picked up an iMic for Sarah from Griffin Technology, a cool technology company which was at the show. The iMic is basically a USB sound card, aimed at the Apple iBook and similar laptops which lack a built-in line input. (I think Apple could do more to document the fact that you need something like the iMic if you want to get audio into an iBook.)

The Yellow Dog Linux people were there and gave me a Yellow Dog sticker.

The bad news to which I alluded earlier is that Jon Johansen has been indicted under Norwegian criminal law (in connection with his publication of DeCSS more than two years ago -- or, some say, in connection with the creation of DeCSS even longer ago). There is a free-jon mailing list at EFF now, parallel with free-sklyarov. Yes, Jon really does face prison time if convicted.

Conveniently, EFF had "Free Jon Johansen" bumper stickers printed up in early 2000, and we still had a few of them in the office, so we were able to pass them out at MacWorld.

I made the best thing I've made since I started cooking. Mmmmm. But my cooking is very far from a science and nothing is repeatable; nothing is measured. This particular dish used: organic soba noodles (bought in bulk at Rainbow), sesame oil, House of Tsang stir-fry sauce, soy sauce, green curry paste, tofu, baby corn, fresh garlic. It worked really well.

Jim Tyre wrote

>Date: Fri, 11 Jan 2002 15:50:44 -0800
>To: Dave Farber <farber@cis.upenn.edu>
>From: "James S. Tyre" <jstyre@jstyre.com>
>Subject: California Public Records Act Reform
>
>[Dave, please consider this for IP.  Thanks.  -Jim]
>
>Fellow Californians with even the slightest interest in reform of the PRA
>(CA state version of FOIA) should pay attention to, support, get the word
>out on SCA 7, a proposed constitutional amendment introduced yesterday in
>the State Senate.
>
>http://info.sen.ca.gov/cgi-bin/postquery?bill_number=sca_7&sess=CUR&house=B&site=sen
>
>The California Supreme Court has said that the public's right to know is a
>fundamental right, entitled to the highest constitutional protections, but
>the Legislature consistently finds ways to weasel around that right, and
>our Governor, Gray Davis, has proven to be a major foe of public access.
>
>"In California, access to government records has been deemed a fundamental
>interest of citizenship."  CBS, Inc. v. Block (1986) 42 Cal.3d 646, 651
>n5.  "Maximum disclosure of the conduct of governmental operations was to
>be promoted by the [Public Records] Act."  Id. at 651-52.
>
>Please help make those words true.  Thank you.
>
>--------------------------------------------------------------------
>James S. Tyre                               mailto:jstyre@jstyre.com
>Law Offices of James S. Tyre          310-839-4114/310-839-4602(fax)
>10736 Jefferson Blvd., #512               Culver City, CA 90230-4969
>Co-founder, The Censorware Project             http://censorware.net
>

For archives see:
http://www.interesting-people.org/archives/interesting-people/

A direct link to the bill's text is also easy to find.

"... but [a particular quantity] is only $50,000,000,000/year."

(Douglas Hofstadter reported a similar quotation somewhere in Metamagical Themas.)

CTY-L has been having a long discussion arising out of an article by Courtney Rubin which talks about life at CTY. Many people felt the article was condescending; I didn't get that impression. OK, some parts are harsh -- but, overall, I found the article touching.

I feel less intimately connected to CTY than some people and I didn't participate in all of the social forms there. For example, I never went to a CTY dance; I never had a CTY girlfriend; I never kissed or hugged anyone at CTY. Socializing there for me was much more intellectual than tactile -- so I remember political debates, Diplomacy, card games, card tricks, shaggy-dog stories, more card games, and hearing about public-key cryptography (and hearing for the first time about the EFF, I believe, unless that was the following year at HCSSiM). I remember cultural things, and they were meaningful to me, but I didn't have a girlfriend, and somehow I have this sense that so many people found CTY meaningful through having a girlfriend and going to a dance.

And I didn't ultimately succeed in staying in touch with people from there, which sometimes seems to be a sign of inadequacy.

EFN held a protest to call for the charges against Jon Johansen to be dropped; there are some pictures from it. (I wasn't there or anything.)

I hope we'll have our own protest here in San Francisco.

I'd had some ambitious plans for travel today on Saturday, but I got caught up with some projects and didn't go anywhere. Zack gave me a hard drive, and I tried to get it working. I'm eventually going to need to re-install. The good parts will then be having network access, big hard drives, a CD-RW drive, and even the ability to compile things locally.

There is a famous song called "Die Gedanken Sind Frei" (German for "The Thoughts Are Free") with a long history and beautiful melody. Wolfgang found me the lyrics a few years ago, and I was very grateful; you can find them these days with Google in a heartbeat, but it was very thoughtful of her. Today Zack found me an actual recording of the song, so I want to learn to sing it. It could come in handy in protests, or (like Galadriel's phial) as "a light to you in dark places, when all other lights go out".

I'm off to L.A. for CPTWG.

"That guy is very clever. I bet if he were working for the good guys, he'd be in jail by now."

CPTWG and BPDG were reasonably interesting, and it was nice to travel with Fred, who put up with all sorts of legal questions about things related and unrelated to CPTWG.

BPDG is on a fast timeline to do things which affect many interests. Their work needs public documentation and public scrutiny quickly.

On the planes, I read most of Software, Shamans, and Spleens (Boyle) and Entertaining Ourselves to Death (Postman). Both are full of fascinating anecdotes. Postman identifies particular things which are wrong with TV, but suggests that the problem isn't necessarily the content of TV programming as much as the expectations and habits we get from TV (such as a short attention span and a difficulty in following subtleties). He tells some amazing stories about the implications of literacy in the past. For example:

The first of the seven famous debates between Abraham Lincoln and Stephen A. Douglas took place on August 21, 1858, in Ottowa, Illinois. Their arrangement provided that Douglas would speak first, for one hour; Lincoln would take an hour and a half to reply; Douglas, a half hour to rebut Lincoln's reply. This debate was considerably shorter than those to which the two men were accustomed. In fact, they had tangled several times before, and all of their encounters had been much lengthier and more exhausting. For example, on October 16, 1854, in Peoria, Illinois, Douglas delivered a three-hour address to which Lincoln, by agreement, was to respond. When Lincoln's turn came, he reminded the audience that it was already 5 p.m., that he would probably require as much time as Douglas and that Douglas was still scheduled for a rebuttal. He proposed, therefore, that the audience go home, have dinner, and return refreshed for four more hours of talk. The audience amiably agreed, and matters proceeded as Lincoln had outlined.

(Entertaining Ourselves to Death, p. 44)

On the plane coming back, a passenger got into an argument with a flight attendant (as the plane was about to depart the gate). The passenger ended up swearing at the flight attendant, which made the flight attendant decide the kick the passenger off the flight. As soon as the passenger heard that, he got even more upset. "Why do I have to leave? I just want to go to Oakland! Just take me to Oakland!"

The flight attendant said again that the passenger had to leave, and the passenger said he wasn't going anywhere. Immediately, the flight attendant called out to another attendant, who radioed the gate and asked for the police. Within about a minute, a police officer and two baggage handlers had boarded the plane. "Sir, you have to leave the plane right now." "Why do I have to leave? I just want to go to Oakland." "The airline doesn't want you on this flight, so you'd better finish your conversation with them outside, at the gate." "I'm not going anywhere. Why do I have to leave?" "If the airline says that you're off the flight, sir, you're off the flight, and you're going to need to leave the aircraft right now."

"Can we have backup units to gate 4B? Backup units to 4B, please." "Roger, we're on the way."

"Now, how do you want to handle this? If you'll get off now, it's going to be a lot easier than if you wait until they come." "I'm not going anywhere, I just want to go to Oakland. Why can't they just take me up to Oakland?"

The passenger and the police officer continued to argue for about three minutes, and then the police officer picked up his radio again: "Can we have our backup units on 4B right away please?"

Within a few seconds, two more armed police officers and a National Guardsman in combat fatigues carrying an automatic rifle came running down the aisle. The first police officer pointed at the passenger and said something like "This man needs to be off the plane right now"; when the passenger saw the National Guardsman, he said something like "OK, I'm coming" and stood up. As soon as he reached the aisle, the first police officer grabbed his arm; the passenger began to struggle, and the officer became much more forceful. In a quick motion (like a magic trick, as they say), one of the other police officers handcuffed the passenger behind his back (even though nobody had been able to see the handcuffs), and all three officers grabbed hold of him. The Guardsman led the way as the police hustled the man off of the plane (and then one of them, or maybe the baggage handler, started gathering up his carry-on items).

That was the biggest adventure of the day, I suppose, much greater than hearing and inquiring about the various DRM schemes which were being peddled or hashed out in the Renaissance Hotel.

Some book on technology quoted a few of these lines from Blake:

Now I a fourfold vision see
And a fourfold vision is given to me
Tis fourfold in my supreme delight
And three fold in soft Beulahs night
And twofold Always. May God us keep
From Single vision & Newtons sleep

I was thinking a lot about "single vision" over the past couple of weeks. (The book emphasized the "Newtons sleep" part more than the "single vision" part. Blake was extraordinarily unhappy with Newton's vision of the world as a deterministic dynamical system. I remember being excited when I first understood that vision, in a high school physics class -- to us Newton was a hero almost as much as to Blake he was a villain.)

I wrote earlier this month in a brief letter (the second brief letter I sent around the new year) that I used to have the gift of single vision more strongly than it seems I do right now. I did conceive it as a gift, where Blake considered it a curse. But now my single vision seems to be slipping away from me, mainly against my will.

If I should again write an epic poem to match "Existence and Uniqueness", maybe it would be called "Loss of Generality". (I wrote a poem with that title in June of last year, but it wasn't particularly good, or particularly long.)

Don Marti has a plan to make Google searches for "unisys" point searchers to the Burn All GIFs campaign web site, which protests the LZW patent.

One tactic to do this is to get people to make links like Unisys instead of the more conventional Unisys. Another possibility, which seems vaguely less manipulative, would be to write things like Unisys has gotten the U.S. government to give it proprietary control over part of discrete mathematics or help fight the Unisys patent on LZW by making the GIF format obsolete or beware of license fees charged by Unisys on the GIF format or software patentees like Unisys threaten free speech and innovation or Unisys lawyers say that sharing and co-operation are "not the American way". But in general I've been very wary of this approach; it's close in some sense to what Altavista called "spamming the index" (although I'm certainly not creating fraudulent web sites in order to boost something's popularity, as a few porn sites have done). It seems that it might undermine the reliability and accuracy of Google, and that reliability and accuracy is very important.

On the other hand, the enforcement of the LZW patent, and criticisms of the patent, are real and salient facts about Unisys. Don said that his opinion about Unisys was as relevant to web searchers as the opinion of Unisys itself about Unisys, and it's hard for me to dispute that.

Speaking of Google, various challenges have been floating around the Crackmonkey list -- one was to find a set of three words, or two words, which are "common English words" and which together yield no search results at all. The new challenge is to find a set of three words (I would say "not including proper nouns") which yield a single search result which was written by you. Or two words. I found "suadere superstitiores", searching for which on Google leads you to my discussion of "sex".

She wasn't satisfied with hearing that it was the radiation symbol, because she didn't have a feel for what radiation is. That one sort of floored me, because radiation is one of my "basis concepts" that I use to explain other things. (Yes, I think of my scientific knowledge as being spanned by a basis set of conceptual eigenvectors. The basis set idea is also one of my "basis concepts". Yes, I also know that I'm weird.)

(Steve's diary, via Sumana's diary)

Subterfugue is great! It is a Linux program which allows you to intercept and arbitrarily rewrite or alter the system calls made by any other program. It's "strace meets expect" -- it's scriptable in Python. So you can write sandboxes and you can write scripts and very much more. I spent a while playing with it and will probably spend longer soon.

BPDG rather abruply reached public attention on Thursday with a CNet article (which has reached slashdot) closely followed by the EFF BPDG overview (which I wrote on Tuesday night but which we didn't get completely finished until Thursday evening).

Tim O'Reilly of O'Reilly and Associates has written a piece called Open Source and the Obligation to Recycle which talks about the problem of things going out of print -- and software being dropped by vendors and becoming unavailable. O'Reilly argues that there is a kind of obligation to release things which are no longer being sold, so that others can benefit from them, rather than letting them die. (This is especially significant with software, which may be useful long after it is profitable, but not useful long after its copyright expires. The software might be profitable for ten years, useful for thirty, but copyrighted for a century.)

It's wonderful to see publishers thinking along these lines and showing an enthusiasm for the public domain. (I'm happy to say that this is just the kind of thing I'd expect from O'Reilly.)

"Open Source and the Obligation to Recycle" also presents the company-fails or product-is-withdrawn situation as an example of a much broader problem:

Simson [Garfinkel]'s comments [on a company which went under and took its unique and useful software with it] resonated with my own experience, and not just in the software field. I have often lamented restaurants that went out of business leaving me pining for a dish whose recipe I wish they had passed on as a parting gift. I still have my empty bottle of Neoxyn, the only remedy for poison oak rashes that I ever found to work, but which was withdrawn by the manufacturer in the early 1980s "due to lack of market acceptance." My letter to the company asking for the formula went unanswered.

So one concrete thing that Tim O'Reilly is doing to address these problems is releasing ORA's out-of-print books. These include The Future Does Not Compute, which I bought used in hard copy some time last year. You will probably never be able to buy a printed, bound version of The Future Does Not Compute from ORA again, but you can get it on-line.

Speaking of copyright, recycling, and cultural preservation, Nick found oss4lib.org, with information about open source software for libraries and librarians.

I went to Sumana's party on Friday and ended up staying for a long, long time. Sumana's diary has a partial account of what happened there, with good uses of Dar Williams lyrics.

Since you ask, Sumana, your paraphrase of what I said about you is pretty good.

At the party, Zack (whom Sumana calls "The Good Zack of the East" because he lives in the East Bay) gave me some copies of the cartoon "What's Going On?". And he told me about vsound, a virtual sound card for Linux; since that already exists, I don't need to write it. Interestingly, it seems to use the LD_PRELOAD approach (which Zack recommended) instead of the ptrace approach (which I'd be planning to use). ptrace is much more complicated, but LD_PRELOAD seems much easier for "tamper-resistant" software to avoid. (For example, such software can write its own internal version of stdio instead of using stdio from glibc. The RealPlayer could do that -- they could have some <realstdio.h> and corresponding libstdio.a which makes direct calls to the underlying read(2), write(2), open(2) and so on.)

If they did that -- and there's no evidence that they have -- then an LD_PRELOADed library which changed the functions of some selected glibc calls would be totally and permanently useless. But the hypothetical realstdio would still have to make system calls and you could still ptrace it and find out what those system calls were. So the ptrace approach is more resilient if we assume that Real Networks is eventually going to do something to try to make it difficult to capture streams to WAV or MP3 or OGG, instead of just suing people under the DMCA.

As the so-called "DeCSS Haiku" says,

If the player can
decrypt, Wagner has noted,
users can learn how.

Mr. Bad, re demonstrations at Norwegian consulates to free Jon:

(Mi faras mensan noton: trovu vegetaranan recepton por lutefiskon, kun Libera Dokumenta Rajtigo, kaj prefere ne malfacilan prepari per la maldekstra mano.)

(I am making a mental note: find a vegetarian recipe for lutefisk, with a Free Documentation License, and preferably not hard to make left-handed.)

So I guess the Maldekstrulaj Vegetaranaj Esperantistoj por Dmitri may be superseded by the Maldekstrulaj Vegetaranaj Esperantistoj por Jon.

Rick Moen: "Ever wonder why the same people make up all the conspiracy theories?"

Nick found a web site about slide rules.

Happy Martin Luther King Day (Observed).

I went to Berkeley and saw Michelle and Anirvan (who was at work in his new office). Michelle and I ate lunch at the restaurant formerly known as Lotus Vegetarian and Seafood, which is no longer particularly vegetarian at all (but still serves everything on its old vegetarian menu). I kept Michelle up pretty late, and so my schedule was shifted off a bit and I didn't get to see Anirvan for too long. His new office is in a very central location, right near the Berkeley BART, right near The Other Change of Hobbit. Thus people who work there will have no difficulty getting places or science fiction books.

Michelle's sister Nicol has offered to take me to Disneyland next time I come to the L.A. area for CPTWG. I think I'll take her up on that. I've never actually been to Disneyland. I will try to bring some "Free Mickey" buttons (Eldred v. Reno memorabilia) and perhaps a copy of Copyrights and Copywrongs).

I managed to get a 2002 calendar, which has some nature scenes from New England.

Studios Spur Measures to Thwart Video Piracy, from the L.A. Times. Plays up the mandate part (good), plays down home recording implications (bad).

This requires JavaScript, but you can rate yourself to find out how receptive to Fascism you are (the "F Scale"). I found this via an article on Kuro5hin. (I tried it, but then my browser didn't have JavaScript support, so I wasn't able to find out my score.)

After on-line quizzes to rate one's self for Fascism-positive attitudes, how long will it be until we see amifascistornot.com?

The L.A. Times article I mentioned yesterday has this big problem: it says that the proposal would

use electronic tags within a digital TV broadcast to dictate whether a program could be copied through the Net.

OK, but since the Net doesn't have an architecture which allows you to do that, the tags in question would actually dictate whether you could record a program digitally at all in an open and interoperable format (without copy controls). The Internet DRM Magic feature in which the Internet obeys policies about "whether a program could be copied" is kind of on the same level as the e-mail from Bill Gates which can track its recipients.

Anyway, there have been around three big news stories and a few little news stories about BPDG, which is infinitely more than there were before we started our effort to publicize what BPDG was up to -- or, if you want to be precise, three times as many as there were before we started that effort, because the CNet article did come out before our analysis.

That analysis is now the first hit in a Google search for "broadcast protection". As Brad Templeton observed, EFF's web site has more Google juice (he calls it "Google points") than almost any other.

... on Thursday, the EFF claimed that the companies have formed a consortium known as the Broadcast Protection Discussion Group to develop technical standards for new digital recorders. It noted that, once agreed upon, the specifications could become part of laws requiring them to be applied to all digital hardware. The EFF noted that if similar standards had been decreed in the past, they would have blocked the introduction of the VCR and the photocopier.

(StudioBrief, January 18, 2002)

(I'm proud of that, but you know you're a low-budget or tight-deadline wire service when you can't even confirm whether BPDG really exists. Here, if you want to know about the existence straight from the horse's mouth, LMI tells you how to join BPDG's mailing list -- which is not to say that you'll actually be allowed to.)

"We're from the Enlightenment, and we're here to help you."

I wrote Sumana a message about communication or something like that. I also sent batteries to Michelle, a copy of "What's Going On?" to Wolfgang, and to Sarah in Ghana an iMic. I'm tempted to send other things to people in the mail (maps, postcards, playing cards).

It's been really cold out here!

I managed to clean up my room quite a bit.

I had a dream that I was back in high school and taking a chemistry class. The teacher explained something about reaction rates or some other rate thing, and assigned us eight or ten homework problems. So I got home and looked at them and found them extremely boring and didn't do them. Then the dream followed me for over an hour as I made the effort to get in to school. (The funny thing was that it combined parts of San Francisco public transit and the actual school van that I rode to school in high school. Also, the schedule was much more flexible than my actual high school's schedule -- I wasn't expected to arrive on campus at any particular time and the consequences of missing class were apparently not very severe.)

I spent all that time worrying about whether the teacher would be unhappy that I didn't do the homework. She was. I had a whole discussion with her about this. She insisted that I had to do the homework because it was a rule, and I insisted that the homework was boring and that I'd known how to do all these problems since freshman calculus 8 years ago or more.

We burned our beds and books
We fear we've lost the fire

(Dar Williams, "And a God Descended"; the transcription I linked to is bogus because it says "and the reason ended" instead of "and the real time ended")

So Congress responded to this claim by Hollywood that something had to be done by passing this regulation. Armed with this regulation, we've now seen lawyers spinning out across the world -- literally the world -- attacking every single technology that does what -- that disables the ability of existing interests to control how distribution will occur. Whenever there's a technology, whenever there's a way that disables control, they've used the legal system to quash it. Whenever there's a technology that has a different way of thinking about distribution of content, they've used the legal system to quash it. Their single idea has been to send a message, as Hilary Rosen quite frankly said in describing the purpose of the Napster case, to send a message to venture capitalists in this valley: the message is: unless we approve, your idea will not be permitted. It will not be allowed.

(original: Lessig)

... you're writing to a prospective intern who speaks Latin, and you try to write "tempora proponere potest" [she can suggest times] and it keeps coming out "tempora proponere protest".

PyScheme 1.0 was released. So was UNIX.

Steve explains that quinine is why gin and tonic fluoresces under ultraviolet light (among other things). There is an extremely funny anecdote about Jonas Klein and that fact, but I was told that I'm not allowed to tell it.

Quines, on the other hand, are not why gin and tonic fluoresces under ultraviolet light.

Jim Tyre answered my question about a Library of Congress claim of copyright in its catalogue:

Despite the seemingly clear language of 17 USC 105, it has been interpreted to deny copyright protection to U.S. Gov't works only within the U.S., not worldwide. The idea is that because most other governments do copyright their original works, there is no good policy reason for the U.S. to give more than what it or its citizenry gets.

"Hofstadter should just have thought up Lisp; it would have made his self-reference examples much easier."

Fred certainly manage to get the BPDG members thinking today...

If I had a car, I would want to put a "GNU Radio" sign in the window.

I cleaned up a lot more, and also cooked. Green curry, hoisin sauce.

The bleach really managed to get rid of a lot of the mildew on our bathroom walls.

Sumana says:

It takes practice to remember/comprehend, for example, that "if p then q" is equivalent to "p only if q," but I have it almost down now.

I remember having some debates at CTY about the interpretation of "if p then q"; for one thing, it seemed that the formal logic definition was different from ordinary uses of "if". The canonical example was something like this:

Your mom says "If it doesn't rain, I'll take you to the park". Then it rains, and she doesn't take you to the park. Did she speak the truth?

The formal logic conclusion, which is very sensible, is that she did speak the truth: if it didn't rain, she took you to the park. (To add a Hempel kind of twist: it's equally true that, if it didn't rain, she took you to Jamaica, and that, if it didn't rain, she didn't take you to the park, and that, if it didn't rain, she killed you.)

Some people would worry about your mom's intentions or prospects or abilities, though. So she might have been lying in the sense of trying to mislead you about what she intended to do. Maybe she never meant to take you to the park at all, no matter what, and in that case isn't it a little strange to say that her promise came out true when she was deliberately deceiving you all along?

Some of the difficulty here comes from deeper conceptual problems with assigning truth values to statements in the future tense. For example, if I say "I will come to your house tomorrow", there are many possible interpretations about the truth value:

If I ... don't intend to come, and subsequently don't come, or
If I ... don't intend to come, but subsequently come, or
If I ... intend to come, but subsequently don't come, or
If I ... intend to come, and subsequently come, or
If I ... have no idea whether I will come, and subsequently come, or
If I ... have no idea whether I will come, and subsequently don't come,

then was the statement true when I made it, false when I made it, or did it have no particular truth value when I made it? Is it true now, or false now?

I remember lots of situations where people promised things and then didn't do them, but felt that they hadn't lied because they'd actually meant or tried to perform the acts they promised. I can't think of anywhere else where mental states matter quite so much. In fact, we tend to distinguish between the case where you are trying to deceive someone (you believe not x, but assert x) and the case where you are mistaken (you believe not x, and assert not x, but actually x). For some purposes, "true" and "false" don't seem to be quite adequate.

Smullyan alludes to some interesting problems by including in his words both truth-tellers (who always assert what they believe) and liars (who always assert what they disbelieve), and both sane people (who believe every truth and no falsehoods) and insane people (who believe every falsehood and no truths). These categories are a little extreme, but, like all of Smullyan's devices, serve some useful purpose.

Anyway, implication or entailment is a tricky thing. You can do fine and go far in formal logic just by remembering the truth table:

p q  p implies q
----------------
F F  T
F T  T
T F  F
T T  T

and in fact this is extremely useful in logic and mathematics in general because it lets you make deductions from theorems, and also do proofs by contradiction and other nice things. So in the world of deduction, this use of "if" and "then" is not so bad at all.

But entailment in talking about the future gets into strange worries about possible worlds; maybe I should study modal logic in order to have a better vocabulary for talking about that. The passage of time confuses and complicates many issues.

(Speaking of Logic!)

Aber er tat es nicht, sondern drehte den noch freien Hals und sah umher. Vollständig konnte er sich nicht bewähren, alle Arbeit den Behörden nicht abnehmen, die Verantwortung für diesen letzten Fehler trug der, der ihm den Rest der dazu nötigen Kraft versagt hatte. Seine Blicke fielen auf das letzte Stockwerk des an den Steinbruch angrenzenden Hauses. Wie ein Licht aufzuckt, so fuhren die Fensterflügel eines Fensters dort auseinander, ein Mensch, schwach und dünn in der Ferne und Höhe, beugte sich mit einem Ruck weit vor und streckte die Arme noch weiter aus. Wer war es? Ein Freund? Ein guter Mensch? Einer, der teilnahm? Einer, der helfen wollte? War es ein einzelner? Waren es alle? War noch Hilfe? Gab es Einwände, die man vergessen hatte? Gewiß gab es solche. Die Logik ist zwar unerschütterlich, aber einem Menschen, der leben will, widersteht sie nicht. Wo war der Richter, den er nie gesehen hatte? Wo war das hohe Gericht, bis zu dem er nie gekommen war? Er hob die Hände und spreizte alle Finger.

(The Trial)

I should learn German. Here is the Modern Library version:

But he did not do so, he merely turned his head, which was still free to move, and gazed around him. He could not completely rise to the occasion, he could not relieve the officials of all their tasks; the responsibility for this last failure of his lay with him who had not left him the remnant of strength necessary for the deed. His glance fell on the top story of the house adjoining the quarry. With a flicker as of a light going up, the casements of a window there suddenly flew open; a human figure, faint and insubstantial at that distance and that height, leaned abruptly far forward and stretched both arms still farther. Who was it? A friend? A good man? Someone who sympathized? Someone who wanted to help? Was it one person only? Or was it mankind? Was help at hand? Were there arguments in his favor that had been overlooked? Of course there must be. Logic is doubtless unshakable, but it cannot withstand a man who wants to go on living. Where was the Judge whom he had never seen? Where was the High Court, to which he had never penetrated? He raised his hands and spread out all his fingers.

Kjea is visiting. She is neat. Our apartment is neat, too, now, in a different sense.

I stayed up extremely late and got my room cleaned up. It's amazing; it's practically unprecedented!

"TVC will be filing a series of class-action lawsuits against libraries refusing to filter pornography from their computers."

I wonder if there's a realistic way to turn this around and produce a similar level of public comment and outcry against censorship. Probably not, because the view that libraries shouldn't use censorware was polling -- if I remember correctly -- somewhere below 30%. Of course, it all depends on how you ask the question; if you include the word "pornography", censorware polls much higher, and if you include the word "censorship", much lower. If you mention incidents in which people used libraries to seek sexual gratification, it again polls higher; if you mention incidents in which people were prevented from using libraries to do research, or to find supportive communities, I hope it polls lower. (You could also mention political biases, and so on, but some people consider censoring gays and Communists a feature.)

Outside of the EEOC business, the court results on this issue so far have been positive: a lawsuit seeking to compel a library to use censorware was unsuccessful, and a lawsuit seeking to compel a library not to use censorware was successful. (Yes, I know that's a bit of an oversimplification, Jim.)

I'm sure I've mentioned before the amusing situation that we have the position that libraries may use censorware, must use censorware, and must not use censorware, and that I've seen all three views represented on a single panel.

The activity of searching for word pairs on Google which give particular kinds of results is called Googlewhacking, and it seems to be evolving and expanding.

I'm still working on some software to help TW2002 players. Currently, I've written a telnet client in Python which allows you to download an interrogation mode dump of intersector warps and port reports, and another Python script which allows you to analyze that data for port pairs and for dead ends (also called "cul-de-sacs" or "chimneys", especially when they are multi-sector dead ends).

The latest features include the ability for several teammates on a corp to send their logs to a central location for combined processing, which may lead to more port pairs being discovered (if two members have each visited different sectors which together make up a pair).

Isenberg, noted advocate of the end-to-end model on the Internet, has come out with an essay on The Best Network (no, it's not about Best Internet, now part of Verio). He laments that the best network for consumers, which has features like end-to-end connectivity, is not the most profitable for ISPs.

Isn't there a general problem there around things like planned obsolescence? interoperability? and in particular vendor-independence? For example, free software allows anyone to fix bugs; proprietary software requires the original vendor to fix them. To some extent, vendors have an incentive to provide software that only they can maintain; it provides them with a stronger guarantee of future revenues.

In the same way, network service providers have an incentive to provide non-generic connectivity so that people can't just switch to another ISP and get the same service. AOL has gotten rich doing this (among other things). One of the things many technical people hate about AOL is the fact that you can't switch and that it's proprietary; a reputable ISP would never try to trap you by offering its own non-IETF protocols and so on, or so we imagine. But, strangely, many people don't mind the loss of generality, even like it, even claim to prefer it.

Almost two years ago, I mentioned "the consequences [...] of saying 'I tend to be attracted to people who are [...]'". I could mention some of those consequences -- but one is a sort of loss of generality, I think. There are different kinds of "generality": one is the quality of being true in many or all circumstances, or possible worlds. Another is the quality of being true of many or all objects. So there is the generality of the Borges story in which

"In every one," I pronounced, not without a tremble to my voice, "I am grateful to you and revere you for your re-creation of the garden of Ts'ui Pên."

and then again there is the generality of a theorem:

for all a: for all b: for all c: for all d: if a*b=c*d and a is prime and b is prime, then c=1 or d=1 or c=a or c=b.

This project continues to be very interesting. If I had a few thousand dollars to spare, I might want to buy an ADC card and try out this code. Some year soon, hams may begin to give way to programmers, for "everything wants to be software".

There are an amazing number of vendors of ADCs and DACs out there. It's really a whole industry that does a brisk and competitive business. I'm now on a quest for an ADC with "a 10+ bit converter and 20-25 million samples per second" being sold for under $1,300. Oh, and it's got to have a PCI interface. If you're reading this and you happen to know of one, please let me know, unless you're an adversary who isn't allowed to share useful information with me.

When the proper software is out there -- and it's probably GNU Radio or a related project -- there may be an interesting political struggle over access to fast generic ADCs. We're hearing all the time that the more radical elements in some of the copyright industries don't want the public to have that capability, unless it comes with DRM (e.g. "watermark detection" or, for the special case of NTSC, "Macrovision detection"). I guess it's a good thing that "data acquisition" or "sampling" is such a big industry, because those have a way of avoiding being abruptly legislated out of existence, even when they make things like addictive carcinogens.

Someone, either Lessig or someone on dvd-discuss, likes to point out that devices specifically designed to kill people (handguns) are legal, even while other devices (and even speech acts) are banned because they might facilitate copyright infringements. This is not meant as an argument that handguns should be banned, but it should highlight the difficulties that legislation in the U.S. has in making up its mind about how the liability or responsibility of a manufacturer for abuse of a products should work.

(This message hasn't been approved by the moderator yet and might not appear on the Cryptography list.)

Date: Sat, 26 Jan 2002 23:22:33 -0800
From: Seth David Schoen <schoen@loyalty.org>
To: cryptography@wasabisystems.com
Subject: Limitations of limitations on RE/tampering (was: Re: biometrics)

Carl Ellison writes:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> At 03:55 PM 1/26/2002 -0500, Perry E. Metzger wrote:
> >
> > [quoting a third poster]
> >> but all these absolutes in
> >> the comments are just too simplistic. Devices can be made as
> >> tamper-resistant as the threat- and value-model required.
> >
> >No, they can't. That's an engineering hope, not an engineering
> >reality. The hope you're expressing is that "well, maybe we can't
> >make it impossible to break this design, but we can make it cost
> >more to
> >break the system than breaking it will bring the bad guy, and we can
> >do that without said tamper-resistance costing us more than we can
> >afford."
> 
> I've heard rumor of an effort a while back to layer Thermite into a
> printed circuit board, so that a machine could self-destruct in case
> of tampering.  I doubt it ever got reviewed by OSHA, however. :)

I'm curious about the theoretical limits of tamper-resistance and
reverse-engineering resistance.  Clearly, at any given moment, it's
an arms race.  But who is destined to win it in the long run?

I was very interested in a result which Prof. Steven Rudich of CMU
told me about -- the non-existence of obfuscators.  There is a
research paper on this:

http://citeseer.nj.nec.com/barak01impossibility.html
http://www-2.cs.cmu.edu/~rudich/papers/obfuscators.ps

"[A]n obfuscator O [...] takes as input a program (or circuit) P and
produces a new program O(P) that has the same functionality as P yet is
'unintelligible' in some sense. [...]  Our main result is that, even
under very weak formalizations of the above intuition, obfuscation is
impossible."

Rudich said that his collaborators' impossibility proof hadn't stopped
commercial software vendors from continuing to develop obfuscation
techniques, but that's not surprising.  (I do enjoy mentioning this
impossibility proof whenever I hear about obfuscation, though.)

The result applies both to software obfuscation and to circuit
obfuscation.  (I need to think a bit more about its scope.  As I
understand it, there _do_ exist obfuscated programs -- which perform
a function but which can't be "understood" -- but there are just no
reliable algorithmic techniques for obfuscating an arbitrary piece of
code.)

Now, programs can attempt to tell whether they're being run under
debuggers, but, at least in open-source operating systems, there's no
ultimately reliable way to decide.  When you ask the operating system
"am I traced?", it can just say "no".  Simulators and debuggers are
becoming a lot more sophisticated, and there's no indication that
"software protection" is any more effective now than it was in the
1980s.  (The DMCA has made it more "effective" in a certain sense,
by creating, as Judge Kaplan said, "a moat filled with litigators
rather than alligators".)  There are also really cool things like
Subterfugue:

http://www.subterfugue.org/

But this obviously doesn't say anything about tamper-resistance at a
physical level, in hardware, because of devices which can destroy
themselves, whether with thermite or with some active tamper-detection
circuit, when they "believe" that some probing activity has exceeded a
particular threshold.  Software simply can't do that unless it can
communicate with some tamper-proof authority (a hardware dongle or a
revocation entity).

On the other side, probing and imaging techniques have been getting
more sophisticated all the time.  Medical technology has produced all
kinds of non-invasive scanners (CT, MRI, SPECT, PET, etc.) and
researchers have been using microscopes to look inside of many
"tamper-proof" smart cards.  A device which carries its own power
supply can _try_ to detect that it's been scanned (the equivalent of
software detecting that it's being traced or running on a virtual
machine), and certainly many of the medical imaging techniques use
some sort of active irradiation or otherwise provide a lot of energy
which a device could detect (assuming there's no way to disable the
device's power supply or otherwise destroy the tamper-detection logic).
So maybe devices could be made 

I understand that the state of the art in hardware favors the reverse
engineers in most cases, but a lot of people still have confidence in
the ability of hardware engineers to create genuinely tamper-resistent
devices.  And some people believe in particular contemporary designs
and products.

A couple of years ago, I heard about a technique called
interaction-free measurement, which uses quantum physics to measure or
photograph/image an object _without touching it or interacting with it
in any way_ (from the point of view of classical physics); this was
colloquially called "seeing in the dark" because no light or other
electromagnetic radiation need end up being incident on the target
object.

http://cornell.mirror.aps.org/abstract/PRA/v58/i1/p605_1

Does IFM justify the conclusion that tamper-resistance in hardware
will never be achieved?  (There could still be an arms race over
costs and benefits.)

Isn't it great that there is an FTC commissioner named Orson Swindle?

It is clear that political issues divide into consumer issues that bring in the votes, and corporate issues that bring in the money. [...]

(Thomas Veatch, "Explaining the Mystery of Election Parity")

In the proposed final judgment:

               J. No provision of this Final Judgment shall:
    1. Require Microsoft to document, disclose or license to third
       parties: (a) portions of APIs or Documentation or portions or
       layers of Communications Protocols the disclosure of which would
       compromise the security of a particular installation or group of
       installations of anti-piracy, anti-virus, software licensing,
       

, encryption or authentication systems, including without limitation, keys, authorization tokens or enforcement criteria; or (b) any API, interface or other information related to any Microsoft product if lawfully directed not to do so by a governmental agency of competent jurisdiction. 2. Prevent Microsoft from

the licensee: (a) has

, (b) has a

for the API, Documentation or Communications Protocol for a planned or shipping product, (c) meets

, (d) agrees to submit, at its own expense, any computer program using such APIs, Documentation or Communication Protocols to

identified in this paragraph.

The remedy does address some big-deal issues around OEM licensing (preventing Microsoft from preventing OEMs from shipping machines without Windows), although it doesn't touch shrinkwrap licensing at all. (It's hard to imagine that coming up in an antitrust case.) So the "Windows Refund" issue is completely passed over; there is no discussion of the status of people who buy computers which come with Windows and won't accept the Windows license.

I've joined the GNU Radio mailing list, discuss-gnuradio.

On a parallel tangent (is there any other kind?), I wonder whether there is a way to get started with FPGAs and VHDL using only free software.

I cooked dinner for Zack and Kjea, and they really liked what I made. I liked it, too! My cooking is repetitive but not consistent; this dish contained sesame oil, House of Tsang stir-fry sauce, garlic, yellow curry paste, soy sauce, sesame seeds, tofu, a red bell pepper, bamboo shoots, baby corn, water chestnuts, basil, curry powder, and garam masala. There was also some brown basmati rice with some Vietnamese chili garlic sauce.

One person who has written lots about cooking in her weblog is Deb.

Linking to her makes me wonder about the number of links away I am from various people; for example, Deb links to CamWorld which links to Crummy which links to me.

There is a software company in Japan (I think) called Garam Masala.

When I was laid off, I remember wondering whether the WARN Act applied to high-tech companies' layoffs and concluding that it probably didn't, because nobody was mentioning it. Perhaps they just hadn't heard about it. I know lots of people at companies which apparently had "mass layoffs" under the meaning of that Act, and nobody who received an advance notification. Usually these technology startups (perhaps unlike factories) didn't know what their financial position would be in 60 days. The decision to make the layoffs was definitely often formed on shorter time scales than that.

(From a Crackmonkey post.)

So, which gates (single-valued Boolean logic relations) with n inputs are universal?

There are 2^2^n such gates, and I know some specific cases of universal and non-universal gates, but not an efficient way to determine whether an arbitrary gate is universal.

For n=1, the gate {0: 0, 1: 1} is not universal, and {0: 1, 1: 0} is universal.

For n=2, the gates are

{00: 0, 01: 0, 10: 0, 11: 0}    # ZERO
{00: 0, 01: 0, 10: 0, 11: 1}    # AND
{00: 0, 01: 0, 10: 1, 11: 0}    # NOTIMP (NOT (A IMP B))
{00: 0, 01: 0, 10: 1, 11: 1}    # A
{00: 0, 01: 1, 10: 0, 11: 0}    # NOTRIMP
{00: 0, 01: 1, 10: 0, 11: 1}    # B
{00: 0, 01: 1, 10: 1, 11: 0}    # XOR
{00: 0, 01: 1, 10: 1, 11: 1}    # OR
{00: 1, 01: 0, 10: 0, 11: 0}    # NOR
{00: 1, 01: 0, 10: 0, 11: 1}    # XNOR
{00: 1, 01: 0, 10: 1, 11: 0}    # NOTB
{00: 1, 01: 0, 10: 1, 11: 1}    # RIMP  (B IMP A)
{00: 1, 01: 1, 10: 0, 11: 0}    # NOTA
{00: 1, 01: 1, 10: 0, 11: 1}    # IMP
{00: 1, 01: 1, 10: 1, 11: 0}    # NAND
{00: 1, 01: 1, 10: 1, 11: 1}    # ONE

and I know that 5 are universal (AND, OR, XOR, XNOR, IMP) and 6 are not (ZERO, ONE, A, B, NOTA, NOTB, AND, OR) and I don't know about the other 3. (By symmetry, RIMP must be.)

What does it mean for a gate to be universal? It means that, by applying it to itself in various ways, you can produce any other gate. For example, to produce NOT from NAND, you can do X NAND X=NOT X. And then you can get AND: NOT (X NAND Y)=X AND Y. And OR: NOT((NOT X) AND (NOT Y))=X OR Y. (Thanks, DeMorgan.) And now XOR: (X AND NOT Y) OR (Y AND NOT X). And XNOR: NOT (X XOR Y). And IMP: NOT (X AND NOT Y). Anyway, that's just one example -- the universality of NAND. But how to we know if an arbitrary gate is universal? How many gates with n inputs are universal?

Professor Nozick, too, alas, is late
Who with his wit could once critique the State.
He couldn't quite praise anarchy:
Timor mortis conturbat me.

The obituary from Harvard is interesting. Someone else on Politech submitted a recent interview with Nozick.

RN: Yes, and libertarianism never really claimed that all of ethics was exhausted by what could be enforced, by what one could legitimately be coerced to do or not do. That's the political, interpersonal realm that libertarian principles were about, not what might be the highest ethical aspiration.

I went to Berkeley and visited Sumana and Michelle. Thanks for your hospitality, you two!

I also tried to get my passport renewed, and was told that an expired passport wasn't sufficient ID for purposes of getting a new passport, contrary to what the State Department's web site told me. Oh, well. Now I have to dig around and see if I have any other sort of ID which might help. (I don't think I have my LBL ID any more, although that would be ideal. I used to be able to fly with that, and I'd probably still be able to fly with it if I still had it!)

This was a lot of fun because it had the feel of a real situation room like you see in movies (except for the big dice on the screen).

(Leonard Richardson plays Risk -- as seen on TV!)

Magnus Bodin has an interesting web site.

I wrote this Python program which lets you experiment with logic gates. I see two interesting problems. First, the memory use and processor time associated with generating exhaustive lists of gates is pretty substantial. Second, and closely related to that, there are a lot of gates! With zero inputs, there are two gates; with one input, there are four; with two inputs, sixteen; with three inputs, 256; with four inputs, 65536. Each input you add squares the number of gates which are possible! I've managed to use this code to generate an exhaustive list of the 65536 four-input gates, but I stopped there, because the next step is the 2^32 or 4294967296 gates of five inputs. But the program can also produce an arbitrary gate efficiently, without actually enumerating every single gate of a particular size.

Yay for nested_scopes! Boo to the old Python scope rules!

Now if only we could get other things to happen via "from __future__ import". "from __future__ import world_peace"; "from __future__ import cancer_cure"; "from __future__ import dmca_repeal"; "from __future__ import all_the_wonder_that_would_be".

#!/usr/bin/python

from __future__ import nested_scopes
import math, string, sys

try:
	BITS = string.atoi(sys.argv[1])
except:
	BITS = 2

BINARY = {}

def binary(n):
	""" Return a list containing the binary numbers of n digits, in
	order, as string. """
	if n:
		smaller = binary(n-1)
		left = map(lambda s: "0"+s, smaller)
		right = map(lambda s: "1"+s, smaller)
		return left + right
	else:
		return [""]

def bits(x):
        """ Return a list containing the representation of x as a sum
        of powers of two. """
        temp, val = [], 1L
        while x:
                x, bit = divmod(x,2)
                temp = temp + [val]*bit
                val = val * 2
        return temp

def binary_tuple(n, b=BITS):
	""" Return a tuple containing, in order, b integers representing
	the individual bits in the binary repreesntation of the integer
	n.  Uses a teeny tiny bit of memoization. """
	if BINARY.has_key(b):
		return tuple(map(int, BINARY[b][n]))
	else:
		BINARY[b] = binary(b)
		return binary_tuple(n, b)

def gate(x, b=BITS):
	""" Return a dictionary reprenting the logic gate which returns
	1 when its b inputs are -- interpreted as a binary integer --
	equal to the place-value of some bit asserted in the binary
	representation of x.  Equivalently, it is the logic gate which,
	when the values in its truth table are written in their standard
	order and then read bottom-to-top, yields the binary
	representation of x.  This allows all possible single-valued
	binary functions of b bits to be represented in order as
	integers from 0 to (2**(2**b))-1.  gate(0) is the all-0
	function and gate((2**(2**b))-1) is the all-1 function. """
	D = {}
	for t in range(2L**b):
		D[binary_tuple(t, b)] = 2L**t in bits(x)
	return D

def all_gates(b=BITS):
	""" Return all possible gates with 1 output and b binary
	inputs. """
	right_sized_gate = lambda x: gate(x, b)
	return map(right_sized_gate,range(2**(2L**b)))

Tomorrow: how to use this code.

I'm making up some new cards for the game Taboo. (I wonder what kind of copyright, trademark, or patent claims its publisher might have and whether they might affect people who do related or follow-on game authorship.)

(I would quote these in Hebrew if I had a Hebrew font.)

[Elazar Ha-Kappar] used to say: Those born will die, and the dead will live, and the living will be judged -- so that they might know and teach and learn that...

(Pirke Avot 4:29)

(But) sing a song to love, and not to victories.

(Yaakov Rotblit, "Shir La-shalom")

Vitanuova for 2002 January

<M
Y> M>

[Main]
Support Bloggers' Rights!
Support Bloggers' Rights!


Contact: Seth David Schoen