tclogl - Demo - NeHe #9

PWQ 22 Aug 2005

To demonstrate the ease of using openGL with Tcl and Paul Obermeier's tclogl extension.

http://qs.co.nz/Tcl/3D/lesson09.jpg


if {0} {

 /*
 * This code was created by Jeff Molofee '99 
 * (ported to Linux/GLX by Mihael Vrbanec '00)
 *
 * If you've found this code useful, please let me know.
 *
 * Visit Jeff at http://nehe.gamedev.net/
 * 
 * or for port-specific comments, questions, bugreports etc. 
 * email to [email protected]
 */

 }
 # NeHe opengl tutorial number 9. 
 # Translated to Tcl Copyright August 2005 Philip Quaife.
 # This file is placed in the public domain.
 #
 # This demo needs the Togl and tclogl extensions from
 #   http://www.posoft.de/
 #

 # Load a texture from and image (stored in this file for this demo)

 proc LoadTexture {file } {

        upvar #0 $file data

        catch {package require Img}

        set img [image create photo -data $data]

        set size [image width $img]
        set sizeh [image height $img]

        set sqr [expr {int(pow(2,int((log($size) / log(2)))))}]

        if {$sqr != $size || $sqr != $sizeh} {
                set tmp [image create photo -width $sqr -height $sqr]
                $tmp copy $img -to 0 0 $sqr $sqr
                set ::Img($file) $tmp
                image delete $img
                set img $tmp
        }

        set ::Tex($file,Size) $sqr

        set chan [PhotoChans $img]

        set vector [Vector GLubyte [expr {$size * $size * $chan}]]

        set ::Tex($file,Vector) $vector

        Photo2Vector $img $vector


    set texName [Vector GLuint 1]
    glGenTextures 1 $texName

    set ::Tex($file,TexID) [$texName get 0]

    glBindTexture GL_TEXTURE_2D $::Tex($file,TexID)
    glPixelStorei GL_UNPACK_ALIGNMENT 1

        if {$chan == 3 } {
            glTexImage2D GL_TEXTURE_2D 0 $::GL_RGB $sqr $sqr 0 \
            GL_RGB GL_UNSIGNED_BYTE $vector
        } else {
            glTexImage2D GL_TEXTURE_2D 0 4 $sqr $sqr 0 \
            GL_RGBA GL_UNSIGNED_BYTE $vector
        }
        $vector delete



   glTexParameteri GL_TEXTURE_2D GL_TEXTURE_MAG_FILTER $::GL_LINEAR
   glTexParameteri GL_TEXTURE_2D GL_TEXTURE_MIN_FILTER $::GL_LINEAR

        return $::Tex($file,TexID)
 }


 # This function is called then widget is configured.

 proc tclReshapeFunc { toglwin width height } {

    glViewport 0 0 $width $height
    glMatrixMode GL_PROJECTION
    glLoadIdentity
    gluPerspective 45.0  [expr double($width) / $height]  0.1 150.0
    glMatrixMode GL_MODELVIEW 
        return

    if { $width > $height } {
        set w [expr double ($width) / double ($height)]
        glFrustum [expr -1.0*$w] $w -1.0 1.0 5.0 60.0
    } else {
        set h [expr double ($height) / double ($width)]
        glFrustum -1.0 1.0 [expr -1.0*$h] $h 5.0 60.0
    }

    glMatrixMode GL_MODELVIEW
    glLoadIdentity
    glTranslatef 0.0 0.0 -40.0
    glClear [expr $::GL_COLOR_BUFFER_BIT | $::GL_DEPTH_BUFFER_BIT]
 }

 # We do the creation here once the gl context has been established.

 proc tclCreateFunc { toglwin } {

    set red   { 0.8 0.1  0.0 1.0 }
    set green { 0.0 0.8  0.2 1.0 }
    set blue  { 0.2 0.2  1.0 1.0 }
    set pos   { 5.0 5.0 10.0 0.0 }

    glEnable GL_TEXTURE_2D

    glHint GL_PERSPECTIVE_CORRECTION_HINT GL_NICEST
    glBlendFunc GL_SRC_ALPHA  GL_ONE
    glEnable GL_BLEND
    glClearDepth 1

    # Place star in a display list for speed.

        set ::starList [glGenLists 1]
        glNewList $::starList GL_COMPILE
    glBegin GL_QUADS
      glTexCoord2f 0.0 0.0
      glVertex3f -1.0 -1.0 0.0
      glTexCoord2f 1.0 0.0
      glVertex3f 1.0 -1.0 0.0
      glTexCoord2f 1.0 1.0
      glVertex3f 1.0 1.0 0.0
      glTexCoord2f 0.0 1.0
      glVertex3f -1.0 1.0 0.0
    glEnd
        glEndList

        LoadTexture Star.xpm

 }

 # Initialise star data.
 proc InitStars {} {

    for {set loop  0} {$loop < $::STAR_NUM} {incr loop}     {
                InitStar $loop
                set ::star($loop.angle)  0 ;#   /* start all the stars at angle zero */
        set ::star($loop.angle)  0.0 ;#   /* start all the stars at angle zero */
        set ::star($loop.dist) [expr double($loop) / $::STAR_NUM * $::DIST]
    }


 }

 proc InitStar {loop} {

 set ::star($loop.dist)  $::DIST
 set ::star($loop.r)  [rand 256] ;#    /* get random red value */
 set ::star($loop.g)  [rand 256] ;#    /* get random green value */
 set ::star($loop.b)  [rand 256] ;#    /* get random blue value */


 }
 # Shim for redraw. If there is an error in the display routine cancel
 # the animation loop else we get a perpetual error trace.
 # mainly useful for debugging.

 proc tclDisplayFunc { toglwin } {
        if {[catch {tclDisplayFuncX $toglwin}] } {
                set ::animate 0
        }
 }

 # The real redraw function.
 #
 proc tclDisplayFuncX { toglwin } {
    glClear [expr $::GL_COLOR_BUFFER_BIT | $::GL_DEPTH_BUFFER_BIT]

        global star
    for {set loop  0} {$loop < $::STAR_NUM} {incr loop}     {
        glLoadIdentity 
        glTranslatef 0.0 0.0 $::zoom
        glRotatef $::tilt  1.0 0.0 0.0
        glRotatef $star($loop.angle) 0.0 1.0 0.0
        glTranslatef $star($loop.dist) 0.0 0.0
        glRotatef [expr {-$star($loop.angle)}] 0.0 1.0 0.0
        glRotatef [expr {-$::tilt}]  1.0 0.0 0.0

        #/* if twinkling is enabled draw a second star */
        if {$::twinkle} {
            #/* calculate the number of a star to mix with */
            set starNum [expr {$::STAR_NUM - $loop - 1}]   
            glColor4ub $star($starNum.r) $star($starNum.g) $star($starNum.b) 255
 # We can test out here how much improvement the display list makes.
 if {1} {
                glCallList $::starList
 } else {
    glBegin GL_QUADS
      glTexCoord2f 0.0 0.0
      glVertex3f -1.0 -1.0 0.0
      glTexCoord2f 1.0 0.0
      glVertex3f 1.0 -1.0 0.0
      glTexCoord2f 1.0 1.0
      glVertex3f 1.0 1.0 0.0
      glTexCoord2f 0.0 1.0
      glVertex3f -1.0 1.0 0.0
    glEnd
 }
        }
        #/* draw the main star */
        glRotatef $::spin  0.0 0.0 1.0
        glColor4ub $star($loop.r) $star($loop.g) $star($loop.b) 255

 if {1} {
                glCallList $::starList
 } else {
    glBegin GL_QUADS
      glTexCoord2f 0.0 0.0
      glVertex3f -1.0 -1.0 0.0
      glTexCoord2f 1.0 0.0
      glVertex3f 1.0 -1.0 0.0
      glTexCoord2f 1.0 1.0
      glVertex3f 1.0 1.0 0.0
      glTexCoord2f 0.0 1.0
      glVertex3f -1.0 1.0 0.0
    glEnd
 }
        set ::spin [expr {$::spin + 0.01}]

        set star($loop.angle) [expr { $star($loop.angle) + double($loop) / $::STAR_NUM }] ;#  /* change the angle of the star */
        set star($loop.dist)  [expr {$star($loop.dist) - 0.01}] ;#       /* change the distance of the star */
        #/* if the star reaches the center, give it a new color and move it
        # * to the edge again
        # */
        if {$star($loop.dist) < 0.0} {
                        InitStar $loop
        }
    }

    $toglwin swapbuffers
 }


 # init the togl widget and defin UI.
 proc setup {win} {

        eval destroy [winfo children .]

    togl $win -width 512 -height 512  -rgba true  -double true \
              -depth true -privatecmap false  \
              -createproc  tclCreateFunc \
              -displayproc tclDisplayFunc \
              -reshapeproc tclReshapeFunc

        pack $win -fill both -expand 1
        pack [label .help -text "B1-Motion to zoom/rotate, t - twinkle, +/- num stars"] -anc s
    bind $win <Button-1> {
                set startx %x
                set starty %y
                focus %W
    }


    bind $win <B1-Motion> {
                if {abs(%y-$starty) > 50} {
                        set zoom [expr {$zoom + ((%y > $starty) ? 0.5 : -0.5)}]
                }
                if {abs(%x-$startx) > 50} {
                        set tilt [expr {$tilt + ((%x > $startx)? 5 : -5)}]
                }


    }

    bind $win <Key-t> {
                set twinkle [expr {1 - $twinkle}]
    }
    bind $win <Key-T> {
                set twinkle [expr {1 - $twinkle}]
    }
    bind $win <Key-plus> {
                incr STAR_NUM 5
                InitStars
    }
    bind $win <Key-minus> {
                incr STAR_NUM -5
                InitStars
    }
        focus $win
 }

 # generate a randome number for colour of quad.

 proc rand {n} { expr { int(rand() * $n )} }

 package require Togl
 package require tclogl



 bind . <Key-Escape> {destroy .}

 # Update screen to animate display.

 proc animate {} {

        if {$::animate && [winfo ismapped .gl]} {
                .gl postredisplay
                after $::animate animate
        } else {
                after 500 animate
        }
        list
 }


 #
 # Star.bmp inlined here. This is the texture for the quad.
 #
 set Star.xpm {/* XPM */
 static char * InlineData[] = {
 "128 128 256 2",
 ".. c #b6b6b6",
 "#. c #000000",
 "a. c #5b5b5b",
 "b. c #dbdbdb",
 "c. c #252525",
 "d. c #808080",
 "e. c #a5a5a5",
 "f. c #4a4a4a",
 "g. c #141414",
 "h. c #6f6f6f",
 "i. c #cacaca",
 "j. c #393939",
 "k. c #efefef",
 "l. c #949494",
 "m. c #030303",
 "n. c #5e5e5e",
 "o. c #b9b9b9",
 "p. c #282828",
 "q. c #838383",
 "r. c #dedede",
 "s. c #a8a8a8",
 "t. c #4d4d4d",
 "u. c #171717",
 "v. c #727272",
 "w. c #cdcdcd",
 "x. c #3c3c3c",
 "y. c #f2f2f2",
 "z. c #979797",
 "A. c #060606",
 "B. c #616161",
 "C. c #bcbcbc",
 "D. c #2b2b2b",
 "E. c #868686",
 "F. c #e1e1e1",
 "G. c #505050",
 "H. c #ababab",
 "I. c #1a1a1a",
 "J. c #d0d0d0",
 "K. c #757575",
 "L. c #3f3f3f",
 "M. c #f5f5f5",
 "N. c #9a9a9a",
 "O. c #090909",
 "P. c #646464",
 "Q. c #bfbfbf",
 "R. c #2e2e2e",
 "S. c #898989",
 "T. c #e4e4e4",
 "U. c #535353",
 "V. c #aeaeae",
 "W. c #1d1d1d",
 "X. c #d3d3d3",
 "Y. c #787878",
 "Z. c #424242",
 "0. c #f8f8f8",
 "1. c #9d9d9d",
 "2. c #0c0c0c",
 "3. c #676767",
 "4. c #c2c2c2",
 "5. c #313131",
 "6. c #8c8c8c",
 "7. c #e7e7e7",
 "8. c #b1b1b1",
 "9. c #565656",
 ".# c #202020",
 "## c #d6d6d6",
 "a# c #7b7b7b",
 "b# c #454545",
 "c# c #fbfbfb",
 "d# c #a0a0a0",
 "e# c #0f0f0f",
 "f# c #6a6a6a",
 "g# c #c5c5c5",
 "h# c #343434",
 "i# c #8f8f8f",
 "j# c #eaeaea",
 "k# c #595959",
 "l# c #b4b4b4",
 "m# c #232323",
 "n# c #d9d9d9",
 "o# c #7e7e7e",
 "p# c #484848",
 "q# c #fefefe",
 "r# c #a3a3a3",
 "s# c #121212",
 "t# c #6d6d6d",
 "u# c #c8c8c8",
 "v# c #929292",
 "w# c #373737",
 "x# c #ededed",
 "y# c #010101",
 "z# c #5c5c5c",
 "A# c #b7b7b7",
 "B# c #dcdcdc",
 "C# c #262626",
 "D# c #818181",
 "E# c #4b4b4b",
 "F# c #a6a6a6",
 "G# c #151515",
 "H# c #707070",
 "I# c #cbcbcb",
 "J# c #3a3a3a",
 "K# c #f0f0f0",
 "L# c #959595",
 "M# c #040404",
 "N# c #5f5f5f",
 "O# c #bababa",
 "P# c #292929",
 "Q# c #848484",
 "R# c #dfdfdf",
 "S# c #4e4e4e",
 "T# c #a9a9a9",
 "U# c #181818",
 "V# c #cecece",
 "W# c #737373",
 "X# c #3d3d3d",
 "Y# c #f3f3f3",
 "Z# c #989898",
 "0# c #070707",
 "1# c #626262",
 "2# c #bdbdbd",
 "3# c #2c2c2c",
 "4# c #878787",
 "5# c #e2e2e2",
 "6# c #515151",
 "7# c #acacac",
 "8# c #1b1b1b",
 "9# c #d1d1d1",
 ".a c #767676",
 "#a c #404040",
 "aa c #f6f6f6",
 "ba c #9b9b9b",
 "ca c #0a0a0a",
 "da c #656565",
 "ea c #c0c0c0",
 "fa c #2f2f2f",
 "ga c #8a8a8a",
 "ha c #e5e5e5",
 "ia c #afafaf",
 "ja c #545454",
 "ka c #1e1e1e",
 "la c #d4d4d4",
 "ma c #797979",
 "na c #434343",
 "oa c #f9f9f9",
 "pa c #9e9e9e",
 "qa c #0d0d0d",
 "ra c #686868",
 "sa c #c3c3c3",
 "ta c #323232",
 "ua c #8d8d8d",
 "va c #e8e8e8",
 "wa c #575757",
 "xa c #b2b2b2",
 "ya c #212121",
 "za c #d7d7d7",
 "Aa c #7c7c7c",
 "Ba c #464646",
 "Ca c #fcfcfc",
 "Da c #a1a1a1",
 "Ea c #101010",
 "Fa c #6b6b6b",
 "Ga c #c6c6c6",
 "Ha c #353535",
 "Ia c #909090",
 "Ja c #ebebeb",
 "Ka c #b5b5b5",
 "La c #5a5a5a",
 "Ma c #242424",
 "Na c #7f7f7f",
 "Oa c #dadada",
 "Pa c #494949",
 "Qa c #a4a4a4",
 "Ra c #ffffff",
 "Sa c #131313",
 "Ta c #6e6e6e",
 "Ua c #c9c9c9",
 "Va c #383838",
 "Wa c #939393",
 "Xa c #eeeeee",
 "Ya c #b8b8b8",
 "Za c #020202",
 "0a c #5d5d5d",
 "1a c #dddddd",
 "2a c #272727",
 "3a c #828282",
 "4a c #a7a7a7",
 "5a c #4c4c4c",
 "6a c #161616",
 "7a c #cccccc",
 "8a c #717171",
 "9a c #3b3b3b",
 ".b c #f1f1f1",
 "#b c #969696",
 "ab c #050505",
 "bb c #606060",
 "cb c #bbbbbb",
 "db c #2a2a2a",
 "eb c #858585",
 "fb c #e0e0e0",
 "gb c #4f4f4f",
 "hb c #aaaaaa",
 "ib c #191919",
 "jb c #cfcfcf",
 "kb c #747474",
 "lb c #3e3e3e",
 "mb c #f4f4f4",
 "nb c #999999",
 "ob c #080808",
 "pb c #636363",
 "qb c #bebebe",
 "rb c #2d2d2d",
 "sb c #888888",
 "tb c #e3e3e3",
 "ub c #525252",
 "vb c #adadad",
 "wb c #1c1c1c",
 "xb c #777777",
 "yb c #d2d2d2",
 "zb c #414141",
 "Ab c #f7f7f7",
 "Bb c #9c9c9c",
 "Cb c #0b0b0b",
 "Db c #666666",
 "Eb c #c1c1c1",
 "Fb c #303030",
 "Gb c #8b8b8b",
 "Hb c #e6e6e6",
 "Ib c #555555",
 "Jb c #b0b0b0",
 "Kb c #1f1f1f",
 "Lb c #d5d5d5",
 "Mb c #7a7a7a",
 "Nb c #444444",
 "Ob c #fafafa",
 "Pb c #9f9f9f",
 "Qb c #0e0e0e",
 "Rb c #696969",
 "Sb c #c4c4c4",
 "Tb c #333333",
 "Ub c #8e8e8e",
 "Vb c #e9e9e9",
 "Wb c #585858",
 "Xb c #b3b3b3",
 "Yb c #222222",
 "Zb c #d8d8d8",
 "0b c #7d7d7d",
 "1b c #474747",
 "2b c #fdfdfd",
 "3b c #a2a2a2",
 "4b c #111111",
 "5b c #6c6c6c",
 "6b c #c7c7c7",
 "7b c #363636",
 "8b c #919191",
 "9b c #ececec",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y##.#.y#y#y#y#y#y#y#y#y#y#y#y#y#y#y#y#y#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y##.y#y#y#Zay#y#ZaZaZaZaZaZaZaZaZaZaZaZaZaZaZay#y#y#y#y#y#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#y#y#y#y#ZaZaZaZaZaZam.m.m.m.m.m.m.m.m.m.m.m.m.ZaZaZaZaZaZaZay#y#y#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#y#y#y#y#ZaZaZam.m.m.m.m.m.m.M#m.M#M#M#M#m.m.M#M#m.m.m.m.m.m.ZaZaZaZay#y#y#y#y#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#y#y#y#y#ZaZaZam.Zam.m.M#m.M#M#M#M#M#M#M#M#M#M#M#M#M#M#M#M#M#M#m.m.m.m.m.m.ZaZaZaZay#y#y#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#y#ZaZaZaZam.m.m.m.M#M#M#M#M#M#ababababababababababababababababM#M#M#M#M#M#m.m.m.m.m.ZaZaZay#y#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#y#y#ZaZaZam.m.m.M#M#M#M#M#ababababababA.A.A.A.A.A.A.A.A.A.A.A.A.A.A.abababababababM#M#M#M#m.m.m.ZaZaZay#y#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#Zay#Zam.m.M#M#M#M#M#M#abababA.A.A.A.0#0#0#0#0#0#0#0#obob0#0#ob0#0#0#0#0#A.A.A.A.abababababM#M#M#m.m.m.ZaZay#y#y#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#Zam.m.m.m.m.M#M#M#M#abababA.A.0#0#0#0#0#obobobobO.O.obobO.O.obobO.O.obobobob0#0#0#0#0#0#A.abA.abababM#M#M#m.m.m.ZaZay#y#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y##.y#y#m.M#ababM#M#M#M#abababA.A.0#0#0#obobobobO.O.O.O.O.cacaO.O.cacaO.O.cacaO.O.O.O.O.O.obobob0#0#0#0#A.abababM#M#M#M#m.m.ZaZaZay#y#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#y#y#Zam.abA.0#A.M#M#ababA.A.0#0#obobobO.O.O.O.cacacacacaCbCbCbCbcaCbCbCbCbCbcaCbcacacacaO.O.O.obobobob0#0#A.A.abababM#M#m.m.m.ZaZay#y#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#ZaZam.m.A.obO.O.A.A.A.0#0#0#obobO.O.O.cacacacaCbCbCbCb2.2.2.2.2.2.2.2.2.2.2.2.2.CbCbCbCbCbcacaO.O.obobobob0#0#0#A.ababM#M#M#m.m.m.Zay#y#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#ZaZam.m.M#A.O.Cb2.O.0#0#obobO.O.O.O.caCbCbCbCb2.2.2.qa2.qaqaqaqaqaqaqaqaqaqaqaqaqa2.2.2.2.2.CbCbcacacaO.O.O.obobob0#A.A.ababM#M#M#m.m.ZaZay#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#y#Zam.m.M#M#M#abO.2.QbqacaobobO.cacacacaCb2.2.2.qaqaqaqaQbQbQbQbQbe#e#QbQbe#e#QbQbQbQbQbQbqaqaqa2.2.2.2.CbcacacaO.O.obob0#0#A.A.ababM#M#m.m.ZaZaZay#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#ZaZam.M#M#M#ababA.ob2.e#EaQbcaO.caCbCbCb2.2.qaqaQbQbe#Qbe#e#Eae#EaEaEaEaEaEaEaEaEaEaEaEae#e#e#QbQbQbQbqaqa2.2.2.CbcacacaO.obobob0#A.A.abM#M#M#m.m.ZaZay##.y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#y#Zam.m.m.M#ababA.A.0#obCbEaSas#qacaCb2.2.qaqaQbQbQbe#EaEaEaEa4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4bEaEaEaEae#e#QbQbQbqaqa2.CbCbcacacaO.obob0#A.A.A.abM#M#M#m.ZaZay##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#y#Zam.m.M#M#ababA.0#0#obobcaEag.6as#qaqaqaQbQbQbe#EaEaEa4b4b4bs#s#s#SaSaSaSaSaSaSaSaSaSaSaSaSas#s#s#4b4b4bEaEae#e#QbQbqaqa2.2.CbcacacaO.ob0#0#A.A.ababM#M#m.m.Zay#y##.#.#.#.#.#.#.#.#.y##.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#ZaZam.m.M#M#ababA.0#0#obO.O.caQbG#U#u.4bQbQbe#e#Ea4b4b4bs#SaSaSaSag.g.g.g.G#G#G#G#G#G#G#G#G#g.g.g.SaSas#Sas#s#4b4bEaEae#QbQbqaqa2.CbCbcacaO.obob0#A.A.ababM#M#m.m.Zay#y##.#.#.#.#.#.y#Zay##.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.ZaZam.m.M#M#abA.A.0#obobO.cacaca2.SaibI.u.Eae#Ea4b4bs#Sas#g.g.g.G#G#6a6a6a6a6au.6au.u.6a6a6a6a6aG#6aG#G#g.g.g.SaSas#s#4bEaEae#e#Qbqa2.2.2.CbcaO.O.ob0#0#A.ababM#m.m.m.Zay#y#y##.#.#.Zam.m.y#y##.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#Zam.m.M#M#ababA.0#obobO.cacaCb2.2.EaibkawbG#4bs#s#s#Sag.G#G#G#6au.u.U#ibI.ibU#U#U#U#U#U#U#U#U#U#u.u.u.6a6a6aG#G#g.SaSas#s#4bEaEae#Qbqaqa2.CbCbcaO.O.ob0#0#A.abM#M#m.m.m.Zay#y##.y#m.M#M#m.Zay#y##.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#Zam.m.M#M#abA.A.0#obO.O.caCbCb2.qaQbe#6akayawbg.s#g.g.G#6a6a6au.u.U#ib8#W.kawbI.I.I.I.I.I.I.I.I.ibibibibU#u.u.u.6a6aG#g.g.Sas#s#4bEaEae#Qbqa2.2.CbcaO.O.obob0#A.abM#M#m.m.ZaZaZam.abA.abM#M#m.Zay##.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#Zam.m.M#M#abA.0#0#obO.cacaCb2.qaqaQbe#e#SawbMam#I.G#G#6a6au.u.U#ibI.ibI.kayaYb.#W.wbwbwbwbwbwbwbwbwb8#8#I.I.ibibibibU#u.6a6aG#g.Sas#4b4bEaEaQbQbqa2.CbcacaO.O.ob0#A.abM#M#M#m.m.abobob0#A.ababM#m.y##.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#Zam.m.M#M#abA.0#0#obO.cacaCb2.qaQbQbe#Ea4bs#ibm#2aYbib6au.U#U#ibI.I.8#wbwbKbc.2aMa.#KbKbkaKbKbkakakakaW.W.wbwbW.wbwbW.wbI.U#u.6a6aG#g.Sas#4b4bEae#Qbqa2.CbCbcaO.O.ob0#A.ababM#abobcaCbcaob0#A.abm.y##.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#y#Zam.M#M#abA.A.0#obO.cacaCb2.qaQbe#Ea4bs#s#Sa6a.#P#P#.#ibibI.I.8#wbwbW.kaKbYbp.3#P#c.MaYbYbya.#.#.#.#.#.#.#.#.#yaya.#ya.#wbI.ibU#u.6aG#g.g.s#s#4bEae#Qbqa2.CbCbcaO.O.ob0#A.ab0#Cbqaqa2.caO.obA.m.y##.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#Zam.M#M#abA.A.0#obO.caCbCb2.qaQbe#Ea4bs#SaSag.G#wbp.R.P#KbI.8#wbW.kaKb.#.#.#MaD.FbR.P#p.2aC#c.Mam#m#YbYbm#Mac.c.c.c.c.C#m#Kb8#I.I.ibU#u.6aG#g.Sas#4bEae#Qbqa2.2.CbcaO.O.0#0#O.qaEae#QbqaCbcaobM#y##.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#Zam.M#M#ababA.0#obO.caca2.2.qaQbe#Ea4bs#Sag.G#6au.ibc.Fbtap.kaW.Kb.#yam#m#m#m#C#R.h#Tbfarb3#3#P#C#c.c.c.c.C#p.dbP#dbP#dbdbc..#W.wb8#I.ibU#u.6a6aG#Sas#4b4be#Qbqaqa2.CbcaO.O.qa4bSaSa4be#Qb2.O.M#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#y#ZaZam.M#M#abA.0#obO.O.caCbqaqaQbe#Ea4bs#Sag.G#6au.U#ibya5.j.Tbc.Kb.#m#C#p.p.C#c.p.faj.j.h#Tb5.5.rbdbp.p.2a2aP#R.fafaFbR.FbR.2ayaKbkaW.wb8#I.ibU#u.6aG#g.Sas#4bEaQbQbqa2.caCbe#g.6aG#Sas#Eae#caM#Zay#y##.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#ZaZam.M#M#abA.0#obO.O.caCb2.qaQbe#Ea4bs#Sag.6au.u.ibI.8#Kbrbx.lb5.MaMa2aP#rbrbdbp.P#tax.lbj.Va7b7b5.R.rb3#D.D.R.Tbh#h#h#TbHafap.Ybya.#Kbkakaka8#I.U#u.6aG#g.s#s#4bEae#Qb2.QbSaU#I.U#6aG#SaEacaabm.ZaZay##.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#Zam.M#M#abA.0#obobO.caCb2.qaQbe#Ea4bs#SaG#6au.U#ibI.8#wbKb2aJ#b#lbR.2a3#R.5.h#FbD.D.h##analbX#9a9a7bTbTbta5.fah#j.VaJ#j.J#j.Fbp.Mam#YbyayaYbYbKbwbI.ibu.6aG#g.Sas#EaEaQb4bu.wbwb8#ibu.G#EacaA.M#m.m.Zay#y##.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.y#Zam.m.M#abA.A.0#obO.caCb2.qaQbe#Eas#SaSaG#6au.U#I.8#wbW.Kb.#c.h#p#E#x.rbfaTbHaj.7bFbR.Hanaf.NbnazbzbJ#j.VaVa7bh#J#L.lb#aX##a9a5.P#C#C#C#c.C#2aC#Ybka8#I.ibU#6aG#g.Sa4b4bg.8#.#.#kawbI.u.4bca0#abM#M#m.m.Zay##.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.y#ZaZam.M#M#abA.0#obO.caCbCbqaQbe#Ea4bSag.g.6au.U#I.8#wbkaKb.#yac.R.naU.E#Vataw#j.lbX#7btaw#b#gbf.p#1bBaL.lblbX#J#j.#aNbnab#nab#x.FbP#P#dbdbdb3#rbP#Ma.#W.wbI.ibU#6aG#g.SaU#.#Mam#ya.#W.U#4bca0#0#ababM#M#m.ZaZay##.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.y#y#Zam.M#M#abA.0#obO.caCb2.2.Qbe#Ea4bs#g.g.6au.U#I.8#wbkaKb.#Ybm#c.db9aU.k#1bw#9albZ.NbX#w#J#1bU.6#t.5a5ab#NbnanaL.L.1bPaf.PaPap#x.Fb3#faFbfaFbTbFbP#Ma.#KbW.wbI.ibu.6au.wbc.p.2ac.m#.#ib4bCbO.ob0#A.abM#M#M#m.Zay##.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.y#y#ZaZaM#M#M#abA.0#obO.caCb2.qaQbEa4bs#SaG#6au.U#I.8#wbka.#yam#MaC#p.dbh#5abbk#naX#naBaf.b#lbX#p#wawaU.ub6#f.PaPaPanab#S#S#G.S#G.PaJ#5.5.h#7bHaVaVa5.P#c.MaYbKbW.wb8#U#I.yaP#3#dbp.C#Ybib4b2.cacaO.ob0#A.abM#M#m.Zay#y##.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.y#Zam.M#M#abA.0#obO.caCb2.qaQbe#4bs#SaG#6au.U#I.8#wbKbYbc.C#c.C#dbR.R.5.Z.n.raIbna1bf.S#S#Banaf.a.0ak#wawaG.gbgbS#p#5aIbjaIbjaIbp#j.TbVax.x.X#L.J#FbdbdbP#C#Yb.#W.8#ka2aR.FbR.3#dbm#I.4bqa2.2.caO.ob0#A.ababM#M#m.Zay#y##.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.y#ZaZam.M#abab0#obobO.ca2.qaQbe#Ea4bSag.6a6au.ib8#wbkayac.P#dbdbdbrbtah#h#J#U.t#raG.f.G.U.IbS#Pa5a0apbN#0az#9.IbIbjat.jaa.Laa.a.waBaj.J##anaZ.b#Z.w#FbfaFb3#P#C#YbKbMarbTbh#taFb3#Maibs#e#Qbqa2.CbcaO.ob0#A.abM#M#m.Zay##.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.y#y#Zam.M#M#abA.0#obO.caCb2.qae#e#Eas#SaG#6au.ibI.wbW..#m#C#3#Fb5.fafah#J#9aj.1b3..aP.G.jawaz#waG.G.N#f#Dbpb1#z#z#z#k#U.0aB.B.bb1#9.b#lbnaPaPaE#E##a7bHaw#h#farbP#C#P#Tbj.Va7bTbR.MaibSa4bEae#Qbqa2.caO.obobA.A.M#M#m.ZaZay##.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.y#ZaZam.M#abA.A.0#obcaca2.qaQbe#Ea4bSag.6au.U#I.8#W.KbYbC#dbR.TbVaVaHaHax.Z.#azbLaMbY.N#Wb0abbbbk#Ib1#H#5bf#Rb1#1#pbn.Lada3.3.3.dajab#Bat.G.G.U.f.lbJ#lbx.7bh#5.rbFbj.lbx.J#7bfaMaI.g.Sas#4be#Qbqa2.CbcaO.ob0#A.abM#m.m.Zay#y##.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.y#Zam.M#M#abA.0#obO.caCb2.Qbe#Ea4bs#g.G#u.U#I.8#W.Kb.#m#p.R.tah#J#L.L.J#x.b#f.BaS#h.ebkbN#1#daraB.z#P.kbW#8ah.RbRbRbpb1#t#Tat#Tada6#E#G.9.9.k#jaBazbNbNbX#x.Vah#VaL.nazblbJ#FbMaI.u.6ag.Sas#Eae#Qbqa2.CbcaO.ob0#A.abM#m.ZaZay##.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.y#y#Zam.M#abA.A.0#O.caCb2.qaQbe#4b4bSaG#6aU#ib8#wbka.#YbMap.rbh#J#x.zb1bb##aNbS#G.5aN#ebgah.Dbf#h.f#P.3.Y.MbY..aH#H#H#raRbkbkbkbW#pbU.jaa.n.N#n.gbBaf.5ab#na#ax.#a1bp#Banax.FbMawbI.ibu.G#g.Sa4bEae#Qb2.CbcaO.ob0#A.ababM#m.y#y#y##.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.y#Zam.M#M#abA.0#obO.caCb2.Qbe#Ea4bs#g.6au.ibI.wbka.#YbMac.2aD.taJ#Z.Nbp#gb5a1b5aWb9.waxbL#ebh.H#kbkbt#f#Aa3ao#0bxbY..aTakbAaa#a#K.B.LaN#dada3.Lat.6#U.S#E#1bNbPat.t.f.1blbFbMakaW.8#I.U#6aG#Sas#4be#QbqaCbcaO.O.obA.A.abM#m.Zay#y#y##.#.#.#.#.#.",
 "#.#.#.#.#.#.#.y#y#Zam.M#M#abA.obobO.ca2.qaQbe#4bs#SaG#6aU#I.8#ka.#m#C#p.P#P#D.faw#zbPa5aG.9.ubt.9.bbz#3.i#bad..amaAaK.8aNaS.ebQ#o#Na0bK.0bq.3a3akbpbP.Fat#TaDb9.9.a.9.U.G.S#ubjaubgbf.lbfac.ya.#kawb8#ibu.6ag.s#4bEae#qa2.CbcaO.ob0#A.abM#m.m.y#y#y##.#.#.#.#.#.",
 "#.#.#.#.#.#.#.y#ZaZam.M#abA.0#obO.caCb2.qae#e#4bSag.6au.ib8#W.yam#c.dbrbfafaR.R.Tbx.1b6#jak#n.k#IbB.raP.o#r#nbd.Naq.d.ma3ai#uaGbE.E.Q#0bE.S.gaebW#f#h.kbK.v.bb0apbn.LaWbwaa.LaWbIb5albfa2ac.m#yaKbW.8#I.U#u.G#Sas#Eae#QbqaCbcacaO.0#A.abM#M#m.Zay##.#.#.#.#.#.#.",
 "#.#.#.#.#.#.y#y#Zam.m.M#abA.obO.O.caCbqaQbe#Eas#SaG#6aU#I.wb.#c.p.P#3#5.Haw#w#HaTbw#zbt.k#z#B.DbbbN#5bh.v.Z#7#l.4#gaga3a4##bL#Wai#Ubga4#Ia8b8bE.K.kba#0bAa5bdaFarapb1#1#pbB.N#a.G.L.5.D.p.C#c.Yb.#KbW.wbI.U#G#g.Sa4bEaQbqa2.CbcaO.obA.ababM#m.m.Zay##.#.#.#.#.#.",
 "#.#.#.#.#.#.y#ZaZam.M#M#abA.0#O.O.ca2.qae#Ea4bs#g.6au.ibI.W..#C#dbfatah#VaX##a#aX#9ax.b#U.bbDbf#h.raRb.a.a4#Jbvbl.8bWaUbua1.PbBbz.z.8b8bnbN.z.E.AaD#ebebY.t#W#8a5bt#t#5bRb3.1#jaZ.w#tafadb2ac.Mam#m#Yb.#ka8#u.G#Sas#4be#QbqaCbcaO.ob0#A.abM#m.m.Zay##.#.#.#.#.#.",
 "#.#.#.#.#.#.y#y#Zam.M#abab0#obO.caCb2.qae#Ea4bSag.6aU#I.8#W..#MaP#fa7b9aX#L.NbPaf.1bnaZ.f.k#rah.kbxbH#kbd.3a3bQ.hbBbBbnbL#r#T#F#3bDaba1.r#r#baS.4#uai#E.xbMbma.axbxb.av.H#Rbk#1bX#J#w#ta3#dbdbdbdbdbp.c.yawbibG#g.s#4bEaQbqaCbCbcaob0#A.abM#M#ZaZay#y##.#.#.#.#.",
 "#.#.#.#.#.#.y#ZaZam.M#abA.0#O.O.caCb2.Qbe#4bs#g.G#6aU#I.wbka.#m#C#D.taJ#Z.Bap#E#6#IbubS#f.G.n.h.ma0bd.mad.gal.2#Sb7#F#F#d#H.Xbxavb7#F#T#V.7#Bb8bL#Z#l.q.3aq.d.q.q.NaAama8an.t.BaNblbw#TbtaTbh#h#Tbfadbc..#wbU#6ag.Sa4bEae#Qb2.CbcaO.obA.A.abM#m.Zay##.#.#.#.#.#.",
 "#.#.#.#.#.y#ZaZam.M#M#abA.0#obcaCb2.qaQbEa4bSag.6au.ib8#W.KbyaMa2adbR.h#x.b#S#U.jaWbn.N#Laja9.P.xbq.sbgaQ#ua#bJbybg#l#xaV.l#Q.qbO#A#xaA#O#XbDapa3bd#8bGbUbGbIai#S.E.q..apbja6#5aNbX#9aX#L.L.lbJ#h#rb2aYbkaI.U#u.G#g.s#4be#QbqaCbcaO.ob0#A.abM#m.m.Zay##.#.#.#.#.",
 "#.#.#.#.#.y#ZaZam.M#M#abA.obO.caCb2.qae#Eas#SaG#6aU#I.wbW..#Ybc.dbR.5.h#7bX#Ba6#a.N#B.Dbf#Rb1#N#Rbo#6.Wal.Iabahbw.Oai.4.qbeaI#w.Uag#4.6bGao.H.vbV.3bz.nbZ#BbN.L#v#UbAaRbn.LaubPaBa1bE#5af.b#X#HafaP#Ma.#wbI.ibu.6ag.s#4be#Qbqa2.caO.ob0#A.abM#m.m.Zay##.#.#.#.#.",
 "#.#.#.#.#.y#ZaZam.M#M#A.0#obO.caCb2.Qbe#Eas#SaG#u.U#I.wbKb.#m#C#D.5.w#9albL.zb1b6#n.ra5bTakb.aH#f#8aebz.pad#Pb7#g#tbfbLbjbV#OaB#n#LbX.##X.4.C.2#l#e.F#s.7#s.3bPb#b3aH#RbB.wa6#U.wak#waG.1bL.j.h#R.P#Ma.#W.8#ibu.6ag.Sa4bEaQbqa2.CbcaO.0#A.ababM#m.Zay##.#.#.#.#.",
 "#.#.#.#.#.y#y#m.m.M#abA.0#obO.caCbqaQbEa4bs#g.6au.ibI.W..#yaMaC#dbfa7bx.naPaE#5at.U.n.FaK.mao#q.d.Y.a#uar#vbiaJbSb5#K#vaF.r.7.Vb7.T.5#T.B#J.V#u#Yal#O#2#Yaxavbpasbmah.DbN#bbdaDb1#La6#f.b#L.J#Tbrbp.Ma.#kawbI.U#u.G#Sa4bEae#qa2.CbcaO.obA.ababM#m.Zay#y##.#.#.#.",
 "#.#.#.#.#.y#Zam.M#M#abA.0#obO.Cb2.qaQbEa4bSag.6aU#I.wb.#m#c.2aP#dbrbtaw#lbBagb9.Laa.z#B.5bmaq.S.UbIagasbZ#Jbqbeau#fbY#mb.bXa.bmbmby..bK#Hbfb1aJ.UaV#J.I#4.o.4aIaD#.aTaTav.kbTada0a9.6#E#na9ah#R.P#c.m#.#kawbI.ibu.G#g.s#Eae#QbqaCbcaO.ob0#ababM#M#Zay#y##.#.#.#.",
 "#.#.#.#.#.y#Zam.M#M#abA.obO.caCb2.qaQbEa4bSag.6aU#I.kam#2adbR.Fbtah#HaVa9azbp#gbk#1#Rb5bt#8aa#S.Wabad#PbN.4aEbyb##F.Y#aaaaaaaaaaaaaaaaM.y.k.HbR#5#5#b.la6bJbZ#S.d.Na3aD#a#v.f#P.0ajaf.Z.9ah#Fbrbdb2aMayaKbwb8#ibu.G#g.s#4be#qaqa2.caO.ob0#A.abM#M#Zay#y##.#.#.#.",
 "#.#.#.#.y#y#Zam.M#M#abA.obO.caCb2.qae#Eas#SaG#u.U#8#Kbm#p.R.taw#9aL.zbnaNbBaf.gbU.LaP.TaxbAaNaq.Ubba4aJbKaXbC.Lbha9bmb0.oaoa0.oaoaoa0.AbaaM..by.y.9btblao.Dal.v#v#IaS.d.Y.H#Dba.6#p#Z.X#J#VaHataR.dbc.Yb.#W.8#ibu.6ag.s#4bEaQbqa2.caO.ob0#A.abM#m.m.Zay##.#.#.#.",
 "#.#.#.#.y#Zam.m.M#M#ab0#0#O.caCb2.Qbe#4bs#SaG#u.U#8#kayaC#dbfaHax.Z.p#S#ubIbwak#a.N#pbRbh.MbQ#uav#nbr#8.Eb7aJ.##vaM.aaoaCaCac#CaCac#c#Ob0.AbAbaamby.fbGaJbT#F#Danbi#ebMbh.1#k#ubt.E#Pa1bNb#ax.w#ta3#C#Yb.#ka8#ibU#6ag.Sa4bEaQbqa2.Cbcaob0#A.abM#M#m.Zay##.#.#.#.",
 "#.#.#.#.y#Zam.M#M#abA.0#obO.ca2.2.Qbe#4bs#g.G#u.ib8#W.KbYbC#P#fah#J#zb1bG.wan.daRbt#H#W#.aMbd.S.l.PbT#xaea9#R#vaXaaa0.Ob2bRaq#q#q#q#2bCac#Oboa0.M.x###6bEbYa7#Pbv#Q#xb5bDbpbbbN#0ak#IbgbPaZ.x.HaFbD.C#m#.#kawbI.U#6aG#Sas#Eae#qa2.CbcaO.0#A.abM#M#m.Zay##.#.#.#.",
 "#.#.#.#.y#Zam.M#M#abA.0#obO.caCbqaQbe#4bs#g.6aU#ib8#ka.#yaMaC#P#3#5.7bx.naf.uba.P.t#K.0bQ#4#ua8bz.paT#Yag#Lbtb.bM.AboaCaq#RaRaRaRaRaRaq#q#2bc#0.M.Jafb##g#xad#8b4#d.0bAaY.kbTaraN#WbG.p#zb9aHaFb3#P#C#m#.#KbwbI.U#u.G#Sa4bEae#qa2.CbcaO.obA.abM#M#m.Zay#y##.#.#.",
 "#.#.#.#.y#Zam.m.M#M#A.0#obO.ca2.qaQbEa4bs#g.6au.ib8#W..#m#c.p.dbrbFbTbw#X#Z.PaG.wabbRbv.MbebIaZ#3bH.l#qbI#n#7.Y#aaoac#2bRaRaRaRaRaRaRaRaRaq#Ca0.M.K#F.V#O#V.Qapanb8bS.d..a5bpbLa6#f.naX#Vah#FbrbD.p.c.MayaKbwbI.ibu.G#Sas#Eae#Qb2.CbcaO.ob0#abM#M#m.Zay#y##.#.#.",
 "#.#.#.#.y#Zam.M#M#abA.0#obcacaCbqaQbEa4bSag.6aU#I.8#kaYbC#P#rb5.h#Va9aL.naBaf.G.jaLabbraH#ma3aGbZ#4al#salaF.XaM.AbObCaq#RaRaRaRaRaRaRaRaRaq#CaoaaaK#5#Lb6bo.7#1.IaQ#Y.TaP.z#Ibgbf.b##aX#j.7bTbfarbP#C#m#yaKbwb8#ibu.G#Sas#Eae#Qb2.CbcaO.ob0#abM#M#m.Zay#y##.#.#.",
 "#.#.#.#.y#Zam.M#M#abA.0#obcaCb2.qaQbEa4bSag.6aU#I.8#Kbm#p.rbtaVax.zbBaE#G.IbLaN#P.RbTakbmao#Q#6.L#Pb7#o.7a1ax#M.0.Ob2bRaRaRaRaRaRaRaRaRaRaq#CaoaAbY#T.9#Q.iad#Wasbo#xbH#f#daN#LaIb6#5a1bZ.lbj.h#FbdbC#MayaKbW.I.ibu.G#g.s#4be#Qb2.CbcaO.ob0#ababM#m.Zay#y##.#.#.",
 "#.#.#.#.y#Zam.M#M#abA.0#obcaca2.qaQbEa4bSag.6aU#I.wbKbm#2a3#5.7b9azbBa5a6#wan.P.f#H#xbo#Q#GbWabar#7#Yag#X.F.k.aa0.c#q#RaRaRaRaRaRaRaRaRaRaq#CaObAbY#vaZbUaO#V.r#nb8bsbD#MbW#t#DbbbLajaS#1bnaX#w#5.D.p.MayaKbW.8#ibu.G#g.s#4be#Qb2.CbcaO.ob0#ababM#m.Zay#y##.#.#.",
 "#.#.#.#.y#Zam.M#M#abA.0#obcaCb2.qaQbEa4bSag.6aU#I.wbkayac.p.3#fah#Va9a#aNbf.G.Ibz#B.rah.xbNa4#IaN.F#Xbsalatb.baa0.c#q#RaRaRaRaRaRaRaRaRaRaRa2bObAbmbj#1aV#Q.xa4apa#bUbE.o#xbH#Rb1#a.Ibgbf.Nblbj.h#fadbC#YbKbW.8#ibu.G#Sas#4be#Qb2.CbcaO.ob0#ababM#m.Zay#y##.#.#.",
 "#.#.#.#.y#Zam.M#M#abA.0#obcaca2.qaQbEa4bSag.6aU#I.8#ka.#Ybc.2adbrb5.Ha9a#aBa5aU.La1#RbH#Y.Nasbv#paT#KaSbla5#.baa0.c#2bRaRaRaRaRaRaRaRaRaRaRaq#ObAbmbvan#UaYahbPbl.6.Q#o#Y.v.t#3.1#z#Wbubt.1bZ.x.w#5.3#C#yaKbW.8#ibu.G#Sas#4be#Qb2.CbcaO.ob0#ababM#m.Zay#y##.#.#.",
 "#.#.#.#.y#Zam.M#M#abA.0#obcacaCbqaQbEa4bSag.6aU#I.8#W..#Ybc.2adbR.TbValbb#E#ubk#N#3.H#Y.D#sbIanbr#vbYag#yb1aVbY#AboaCaq#RaRaRaRaRaRaRaRaRaRaq#c#0.M.x#b.i.O#JbF#Bb8b4#0bkb5bP.z#9.6#5ap#nalbJ#7bTbR.dbC#yaKbwbI.ibu.G#Sas#Eae#Qb2.CbcaO.obA.ababM#m.Zay#y##.#.#.",
 "#.#.#.#.y#Zam.M#M#M#A.0#obcaca2.qaQbEa4bs#g.6aU#I.8#W..#Ma2aD.FbHa9azb1bS#jaa.1#Rbh.kba#3asbi#z.1.Qa7#KaeajbR#K#aaoac#2bRaRaRaRaRaRaRaRaq#2bc#Ob0.aambJa##eaT#bav#UbgaebD#a#W#Fapba.ubE#Nblbj.h#faD.p.MayaKbwbI.U#u.G#Sas#Eae#Qb2.cacaO.ob0#ababM#m.Zay#y##.#.#.",
 "#.#.#.#.y#Zam.m.M#abA.0#obO.caCb2.Qbe#4bs#g.6au.ib8#kayaC#D.Fb7bx.Z.p#5a6#IbLan.daFa8aY.Aad.q.E.6.v#ba4aA#w.5#XambAboaCa2bq#RaRaRaRaRaRa2bOb0.AbM.mbY#k.T.zaSbianbsbMbv.h.5bf#radaB.z#9.G.f.nax.7bFbD.2am#KbwbI.U#6aG#Sas#Eae#qa2.CbcaO.obA.abM#M#m.Zay##.#.#.#.",
 "#.#.#.#.y#Zam.m.M#abA.0#obO.caCbqaQbe#4bs#g.6au.ib8#kaYb2aD.FbHaj.X#zbBaE#6#waz#B.da3.Rbf#t#v.maD#Gbnbvb4.J.##R#k.aa0.oac#Ca2bq#q#q#q#q#CaoaAbM.j#5#F.fb1azajbEbXb3bIad.H#daz#waU.ubG.S#E#p#NbL.9aHafadbC#.#wbI.U#6aG#Sa4bEaQbqa2.Cbcaob0#A.ababM#m.Zay##.#.#.#.",
 "#.#.#.#.y#Zam.m.M#ababA.obO.caCb2.Qbe#4bs#SaG#u.ibI.W..#c.p.D.fah#J#L.Nbp#5agbG.ubjaIbk#n.da5b.aQ#z.T#XbKaYag#b.9bmbaaAboaObc#CaCac#c#Cac#AbM.K#T.ybEb2#Q.EbEbqb..7#Dal.E.Y.Rb0aubf.Nbzblb9aj.w#h#5.R.P#c..#wbibU#6ag.s#4bEaQbqa2.Cbcaob0#A.abM#m.m.Zay##.#.#.#.",
 "#.#.#.#.y#y#Zam.M#M#ab0#0#obcaCb2.qae#Eas#SaG#u.U#I.wbKbYbc.P#R.ta7bj.x.lb#azbnaNb1bt.jaz#3.K.E.#bpaBbN.d#iaGaOatbj#y.aaaaAb0.oaoaoa0.oaoaaa.bHbB#9#2#T#PbpaDaQa4aF#Danbi#ebMbTabbjaf.zb9a7b5.fa3#dbp.c.YbKb8#ibU#6ag.s#4bEaQbqa2.CbO.ob0#A.abM#M#ZaZay##.#.#.#.",
 "#.#.#.#.y#y#Zam.M#M#abA.obO.caCb2.qae#Ea4bSaG#u.U#I.wbka.#m#C#dbrbfa5.TbHaw#Va9aL.b#G.a.Rbma4#uaGbeb4#i#paKaGaw.X.B#j#K#K#M.aaaaaaaaM.M.aaaax#B#9#g#cb7#N.6.sb4#S.6.Ia8bua4#NaK.t#1#9.f.#aw#5.D.p.C#MaYb.#W.8#ibu.G#g.s#4be#Qbqa2.caO.ob0#ababM#M#m.Zay##.#.#.#.",
 "#.#.#.#.#.y#y#ZaM#M#abA.0#O.O.ca2.qaQbEa4bSag.6au.ib8#W..#yac.2aP#D.rbFbtaHaValbb#6#n.5bY.o#Aa.aW#Y.3av#s.l#YaC.Sb##fb1aR#j#y..b.b.bJaj#y.mbXaLbSbO#JbT#PbUbNaY..akb.aY.Mb0ba#K.Ta3.bbWbt.#aHa3#2ac.Yb.#kawbI.U#6aG#Sas#4be#qaqaCbO.O.obA.A.M#M#m.Zay#y##.#.#.#.",
 "#.#.#.#.#.y#Zam.m.M#abA.0#obcacaCbqaQbEa4bs#g.G#u.ib8#W.Kbyam#C#p.dbrbfa5.w#lbp#U.bbFaH#TaRbdaDb5bxbsb1.e.4ahbV.C.V#w.6b9#1aT.T.tbT.r.za5#x#k.##cb8.4aPbnbv#E..a5bradadadada3.RbRbP.n.k#9.gbBaJ#Fbp.m#.#kawbI.U#6aG#Sas#Eae#qa2.cacaO.ob0#ababM#m.Zay##.#.#.#.#.",
 "#.#.#.#.#.y#Zam.m.M#abA.0#obO.caCb2.Qbe#4bs#SaG#6aU#I.wbka.#Ybc.2aP#3#Fbw#L.Pajan.pb1#n.k#9.La1#Ta3aWaz.Z#ba1.4ao.Q.Ka..Eb9#zaLbLb##V#SbI#b.tbB#O#4ad#Z#8bGbE.o#h.1#z#Lawa9.jaU.jawawa9.U.G.t.1bzbw#fa2aKb8#U#u.G#g.Sa4bEaQbqa2.CbcaO.0#A.abM#M#m.Zay##.#.#.#.#.",
 "#.#.#.#.#.y#y#Zam.M#abab0#obO.caCb2.qae#Eas#Sag.6aU#I.8#W..#yaMaC#dbfaw#L.Pa6#9.9.U.G.E#f.G.k#raAagaGb6.uaUbl.4axaH.Das.l#saGasaSbg#qbl#l#Sbybn#saDaZ#WaGbQ#d.a#K.Rba.ubS#E#E#p#NbZ.Nb1bE#t.E#p#b##ax.7bR.c.kaU#G#Sas#Eae#Qb2.2.caO.ob0#A.abM#M#m.Zay##.#.#.#.#.",
 "#.#.#.#.#.#.y#ZaZaM#M#abA.0#O.caca2.qaQbEa4bs#g.G#u.ib8#W.KbyaMap.R.Halbb#f.f.p#BaZ.#azb1bU.pbK.d.d.D#3a3aeb#br#Qa#bWa1.T#A#Kal#KaYa8.s.3biaC.7ai.s.8b6.E.NaMb.aH#FaP.9.E#Nbzb#alb9a7bTb7bx.zbNbna#aX#J#7btaD.Mawbu.SaEae#qaqaCbcaO.ob0#A.abM#m.m.Zay##.#.#.#.#.",
 "#.#.#.#.#.#.y#ZaZam.M#abA.0#obO.caCb2.Qbe#4bs#SaG#6aib8#wbKbyaC#3#taj.lbL.lbX#J#j.j.9aZ.S#N#h..aK.xbxbY.Y.E.#bN.Waebgav#Davbs.F#4a7#e.pal.paT#KaSbXbv#Q#d.a#kbh.Fada1#z#6#BalbJ#Va7btaR.3#D.R.TbVaJ#9aj.7bTbFb3#P#m#8#6a4bQb2.CbcaO.obA.ababM#m.Zay##.#.#.#.#.#.",
 "#.#.#.#.#.#.y#y#Zam.M#abA.0#obO.caCb2.Qbe#Eas#SaG#6aU#I.8#Kbm#p.R.tah#HaHaTbtaTbh#ValbE#LaRbt#Fat#t#Tat#xbgaIaUbNaMb3aganb3b1.BbN.DanbL#gaUbBbd#Xb..Bbd.Mb.aH#RbdaB.z#wajaE#zbJ#HataFbrbD.P#C#c.C#dbfaTbTbtafarbdbp.c.KbI.G#e#2.caob0#A.ababM#m.Zay#y##.#.#.#.#.",
 "#.#.#.#.#.#.y#y#Zam.M#M#abA.0#O.caCb2.qaQbEa4bSag.6au.ibI.kaYbC#dbD.3#3#3#3#fa5.h#9a1bIbB.P.1#P.pbdapbf#0bE.S.NaH#v.MbQ#l.nbWav#IaZ#8b6.q.NaUbWaBbV.QaS.K.8at#3.bba.WbU.S#E#Nbx.Ha5.R.3#dbp.c.m#.#Kb.#m#2aD.rb3#P#C#c.yaKbwbU#Sae#caobA.abM#m.ZaZay##.#.#.#.#.#.",
 "#.#.#.#.#.#.y#y#Zam.m.M#abA.0#obO.caCbqaQbe#4bs#SaG#6aU#I.wb.#YbMac.C#2aP#3#R.FbVanagbLaa.k#a.Laa.LaN#h.0bNao#Tada5bv.Na6.IasbS.E.i#gaq.o#kbd.Gbga1.Qa8bxbf#3.pbz#9.ubgbE#b#naX#7b5.rbD.P#C#c.Yb.#kawbI.I.wb.#MaC#C#m#.#kawbI.U#G#4bqacaA.M#m.Zay#y##.#.#.#.#.#.",
 "#.#.#.#.#.#.#.y#y#Zam.M#abA.0#obO.caCb2.qae#Ea4bSag.6au.ib8#W.Kb.#YbMaC#p.dbrbh#lbf.U.ubG.ub6#ub6#japbW#.amaTabbn.Db5ba#E.4#o#D#o#sbq.MbY.5bv.3ad.E.BbL#d.RbB.0ak#U.t.PaBaZ.X#j.HaFb3#P#2ac.m#yaKbW.8#I.U#6aG#u.ibW.Kb.#ka8#ibu.G#Sa4be#Cbobabm.y#y##.#.#.#.#.#.",
 "#.#.#.#.#.#.#.y#y#Zam.M#M#abA.0#obO.ca2.qaQbe#Eas#SaG#6aU#I.8#W.Kb.#m#c.C#dbFbJ#NbE#Pap#PaPaPaPaf.waraTaH#TaN#jak#n.raxbD#NaK.ma.ad.0b8av.3.Db.aAa.aS.Waebh.0ak#jaG.f.Nb#aX#J#h#5.rbdbp.C#MaYb.#kawbI.ibu.6ag.s#4bs#g.u.ibI.U#u.g.s#4be#qaCbO.A.M#Za#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.y#ZaZam.m.M#abA.0#obO.caCb2.qae#Ea4bs#g.6au.U#I.wbkaKbyam#2arbHalbnazb#aZ.zbzbZ.Z.E#z#3.3.RbN#ubS#U.WbdaW#ma.ah.W#h.Y.xbFa5bpb0aRb.ah.kbS.E..aB.jagbE#p#zbx.VaHa5.rbdbp.C#c.m#.#KbW.8#ibU#6aG#Sas#Eae#Qbqae#s#g.G#g.s#EaQb2.CbcaobA.M#Zay##.#.#.#.",
 "#.#.#.#.#.#.#.#.#.y#Zam.M#ababA.0#obO.caCbqaQbe#Ea4bSaG#6au.ib8#wbka.#MaP#faw#9aJ#Vaj.J#j.J#9aZ.6#n.N#pbN#6#p#Pa5ajapbTakbTara5b3.8av.P.P.N#Ibz#5bt#da.aq.Y.raIbE#1bna#aj.h#FbrbdbP#C#c.m#yaKbW.8#I.U#u.6ag.s#4bEaQbQb2.CbcaCbqae#Eae#Qb2.caob0#abM#Zay##.#.#.#.",
 "#.#.#.#.#.#.#.#.#.y#Zam.M#M#abA.0#obO.caCbqaqae#Ea4bs#g.G#u.U#I.8#W..#c.dbFbTbtaFbtaTbTbTbHaJ#1bIbk#Laa.ubBazbna1b6#bbraTadaB.dabbRbt#n.z#LaG.ubbbf#N#pbxbxbf#a.f.Z.lb9aw#5.R.dbP#2ac.m#ya.#kawbI.ibu.6aG#Sa4b4bEaQbqa2.caO.ob0#obO.caCbCbcaobA.abm.Zay##.#.#.#.",
 "#.#.#.#.#.#.#.#.#.y#Zam.m.M#abA.A.obO.cacaCb2.QbEaEa4bSag.6au.ib8#wb.#c.P#D.3#dbdb3#R.R.R.TbX#E#ub6#IbG.BalblbL.NbG.z#pbra0aLaN#Lapbrak#jaIbt.f.ja1#N#Ibdav.f#n.gbzbJ#7bTbfaD.P#2ac.MaYb.#KbW.8#I.U#u.G#g.s#Eae#e#Qb2.CbcaO.ob0#A.ababA.0#0#0#abM#m.Zay##.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.y#Zam.M#M#abA.0#obO.caCb2.qae#e#4bs#SaG#6au.ib8#kaYbc.c.c.c.C#P#dbD.rbHa#aE#E#t.t.b#X#J#9ax.Z.S#wan.B.9.jaWbjaz#pb9.S#gbPanaf.Wb0aG.U.DbRbn.ubNbVataR.D.P#2aC#MaYb.#KbW.8#ibU#u.6ag.Sas#Eae#Qbqa2.caO.ob0#A.A.abM#m.m.m.m.M#m.Zay##.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.y#y#Zam.M#M#ababA.0#O.caca2.qaQbe#Ea4bs#g.G#6aU#ibwbKb.#yayam#c.C#p.P#R.VaZ.b#b#PaNbx.7bw#VaJ##aE#ubk#a.gbG.ubt.9.0aubp#Pab#L.zbt.wa6#1b9.1#0aU.1b9aFbdbP#2ac.MaYb.#KbW.8#I.U#u.6aG#Sas#4be#Qbqa2.CbcaO.ob0#A.abM#M#m.Zay#y##.y#y#y##.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.y#y#Zam.m.M#abab0#obO.caCb2.qaQbe#Ea4bSag.G#u.U#I.8#W.ka.#yam#MaC#P#faj.lblbZ.zbJ#HaTbHa7bValb1bt.IbjaPaf.5ap#gbwaS#naZ.#a9aJ#NbgbG.NbBa9.Laubp#lbtaP#C#c.MaYb.#KbW.8#I.ibu.6aG#g.s#4bEaQbqa2.CbcaO.ob0#A.abM#M#m.Zay#y##.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.y#Zam.m.M#M#abA.0#obO.caCb2.qaQbe#Eas#Sag.6au.U#I.8#wbka.#yaYbc.P#FbVaVaj.x.VaTbFb5.taTbHax.nap#G.5anaNbBaZ.PaubE#L.9a9aw#7b9ab#5aNbx.1bU.G.1blbHaD.c.m#ya.#KbW.wbI.ibU#6aG#g.s#4bEae#Qbqa2.CbcaO.ob0#A.abM#M#m.Zay##.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.y#y#Zam.M#M#abA.0#obO.caca2.qaqaQbe#4bs#Sag.6au.U#I.8#wbkaKb.#MaP#fatata7bHa5.rbrbfaFb5.Tbj.lbNbE#BaX#L.#aX#Nb5aBa9a7bHaTbtah#x.b#naj.j.p#S#1bX#7brbc.yaKbKbW.8#I.ibU#6aG#SaSa4bEae#Qbqa2.Cbcacaob0#A.abM#M#m.m.Zay##.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.y#Zam.m.M#M#abA.0#obO.caCb2.2.qaQbEa4bs#Sag.6au.U#I.8#wbW.Kbm#P#3#3#R.FbR.D.dbD.3#rbR.5.HaJ##aBa#aVaj.J#j.lbBanaVataFbfafafaHaX##aVa5.J#BaBax.h#R.C#.#kaW.wbI.ibu.6aG#g.Sas#Eae#Qbqa2.CbcaO.O.0#0#A.M#M#M#m.Zay#y##.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.y#y#Zam.m.M#M#abA.0#obO.caCb2.qaQbe#Ea4bs#Sag.6au.U#ib8#wbkayaC#C#2adbdbp.2ap.P#dbdbD.R.5.Hax.#aJ#Tbh#h#h#j.#albHafarbrbrb3#R.HaJ#VaR.fa9aZ.X#tarb2a.#W.8#I.ibu.u.G#g.s#s#4be#QbqaqaCbcacaO.ob0#A.abM#M#m.ZaZay##.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.y#ZaZam.M#M#abA.0#obO.cacaCbqaqaQbEa4b4bs#Sag.6au.U#ibI.wbKbyaYbMac.c.c.c.c.C#p.P#P#db3#5.j.J#h#faR.R.faHa9aJ#tarbD.D.dbP#dbfah#HaR.p.5.9ax.TbdbC#.#wbI.ibU#6aG#g.s#s#4bEae#QbqaCbCbcaO.ob0#A.abM#M#m.m.Zay#y##.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#ZaZam.M#ababA.0#obO.O.caCb2.qae#Ea4b4bs#Sag.6au.u.ibI.8#W.kaKb.#yayaYbm#Mac.C#2a2aP#R.h#h#fadbdbdbD.FbHaHafadbP#P#p.2aC#P#rbfa3#c.p.Tbj.h#P#m#.#8#U#u.6aG#g.Sas#4bEae#Qbqa2.CbcaO.O.obA.ababM#m.m.ZaZay##.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#Zam.m.M#M#abA.0#obO.caca2.2.Qbe#EaEa4bs#Sag.G#6au.U#ibI.8#wbkaKbKb.#yaYbm#MaMac.2aD.fafadbp.2ap.p.3#FbFbD.p.C#C#C#c.Mac.2adbP#MayaP#TbTbdbyaW.I.u.6aG#g.Sa4b4bEae#Qbqa2.CbcaO.O.ob0#A.abM#M#m.Zay#y#y##.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#Zam.M#M#abA.A.0#obO.cacaCbqaqaQbe#Ea4bs#Sag.G#6a6au.ibI.I.8#wbW.kaKb.#yayaYbm#c.p.dbP#2ac.c.c.C#p.dbD.p.c.MaMam#YbYbyam#c.c.Ybkaya3#5.3#yaI.u.6ag.Sas#4bEae#e#Qbqa2.CbcaO.obob0#A.abM#M#m.ZaZay##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#Zam.m.M#M#abA.A.0#obO.caca2.qaqaQbe#Ea4b4bSaSag.G#6au.U#ibI.I.8#wbW.kaKb.#.#.#yaMac.c.MaYbm#m#m#c.C#C#c.m#Ybya.#.#.#KbKb.#.#Kbwb8#m#rb3#MaU#G#g.Sas#4bEae#Qbqaqa2.CbcaO.obob0#A.ababM#M#m.Zay#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#Zam.m.M#M#ababA.0#obO.cacaCb2.qaqaQbe#Ea4bs#Sag.g.6a6au.U#ibI.I.8#8#wbW.kakaKb.#.#.#.#.#.#.#.#yayaya.#.#KbKbKbkakaW.wbwb8#I.ibU#8#c.dbC#8#g.s#s#4bEae#Qbqaqa2.CbcaO.obob0#A.ababM#m.m.Zay##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#Zam.m.M#M#ababA.0#obO.caCbCb2.qaqaQbe#Ea4bs#s#Sag.G#6au.u.U#U#ibI.I.8#8#wbwbW.W.W.kakakakakakakakakaW.W.W.wbwb8#8#I.I.ibU#u.u.u.W.C#C#KbG#4b4bEae#Qbqa2.2.CbcaO.obob0#A.abM#M#M#m.Zay#y#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#Zam.M#M#M#ababA.0#obO.cacaCb2.2.qaQbe#EaEa4bs#SaSag.G#6a6au.u.U#ibibibI.8#8#8#8#8#wbwbwbwbwbwb8#8#8#8#I.I.I.I.ibU#u.u.6a6aG#g.6aKbMayaU#Eae#QbQbqa2.CbCbcaO.obob0#A.abM#M#M#m.m.y#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#Zam.m.M#M#abA.A.obobO.cacaCb2.2.qaQbQbe#Ea4b4bs#Sag.g.G#G#6a6au.U#U#ibibibI.I.I.I.I.I.I.I.I.I.I.I.ibibibU#U#u.u.6a6aG#G#g.Sas#u.Kb.#8#s#Qbqaqa2.CbcacaO.O.ob0#A.ababM#M#m.m.y#y#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#y#Zam.m.M#M#abA.0#0#obO.O.cacaCb2.qaqaQbe#e#Ea4b4bs#SaSag.G#G#G#6a6au.u.u.U#U#U#U#ibU#U#U#U#U#U#U#u.u.u.u.6a6aG#G#g.SaSaSa4b4bs#ibkawbG#Qb2.2.CbcaO.O.O.ob0#A.ababM#M#m.m.Zay#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#Zam.m.M#M#abA.A.0#obobO.cacaCb2.2.qaqaQbe#e#Ea4b4b4bs#SaSag.g.G#G#G#6a6a6a6a6a6a6au.6a6a6a6a6a6aG#G#G#g.g.SaSas#s#s#4bEaEae#s#ibI.u.EaCbcacaO.O.ob0#0#A.ababM#m.m.ZaZay#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#Zam.m.M#M#ababA.A.0#obO.O.cacaCbCb2.qaqaQbQbe#EaEa4b4bs#s#s#SaSag.g.g.g.G#G#G#G#G#G#G#G#g.g.g.g.SaSaSas#s#4b4bEaEaEae#QbQbQbg.U#u.s#CbO.O.ob0#0#A.A.ababM#m.m.m.Zay#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#y#Zam.m.M#M#ababA.A.0#obobO.cacacaCb2.2.qaqaQbQbe#e#EaEa4b4bs#s#s#s#s#SaSaSaSaSaSaSaSaSaSas#s#s#s#s#4b4b4bEaEae#e#QbQbqaqa2.e#g.G#Saqaobob0#0#A.abababM#m.m.Zay#y#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#y#ZaZam.M#M#M#ababA.0#0#obO.O.cacaCbCbCb2.qaqaqaQbQbe#e#EaEaEaEaEa4b4b4b4b4bs#s#4b4b4b4b4b4b4b4bEaEae#e#QbQbQbqaqa2.2.CbCbCbe#s#s#QbO.0#A.A.abM#M#M#m.m.Zay#y#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#ZaZam.m.M#M#M#abA.A.0#0#obO.O.cacacaCbCb2.2.2.qaQbQbQbe#e#e#e#e#e#e#EaEaEaEaEaEaEae#e#e#e#e#Qbe#QbQbqaqa2.2.2.CbcacacaO.Cbe#Eae#caA.ababM#M#M#m.ZaZay#y#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#y#Zam.m.m.M#abababA.A.0#obobO.O.O.cacaCbCbCb2.2.2.qaqaqaQbQbQbQbQbe#Qbe#e#QbQbQbQbQbQbQbQbqaqaqa2.2.2.CbCbcacaO.O.O.obobCbqaqaca0#M#M#M#m.m.ZaZay#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#ZaZaZam.M#M#M#ababA.A.0#0#obobO.O.O.cacaCbCbCbCbCb2.2.2.qaqaqaqaqaqaqaqaqaqaqaqaqa2.qa2.2.2.2.CbCbcacacacaO.O.obobob0#obCbCbca0#M#M#m.Zam.Zay#y#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#Zam.m.m.M#M#M#ababA.A.0#0#obobobO.O.cacacacaCbCbCbCbCbCb2.2.2.2.2.2.2.2.2.2.2.2.CbCbCbCbCbcacacaO.O.obO.ob0#0#0#A.A.obO.O.0#M#m.m.ZaZay#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#ZaZaZam.M#M#M#M#ababA.A.0#0#0#obobobO.O.O.cacacacacacacaCbCbCbCbCbCbCbCbcaCbcacacacacaO.O.O.O.O.ob0#0#0#A.A.A.abM#abA.0#A.M#ZaZaZay##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#ZaZam.m.M#M#M#M#ababA.A.A.0#0#ob0#obobO.obobO.caO.O.O.cacaO.cacacaO.O.O.O.O.O.O.obobobob0#0#0#0#A.A.abababM#M#M#M#abM#m.Zay##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#ZaZaZam.m.m.M#M#ababababA.A.A.A.0#0#0#0#0#obobobobobO.O.obobO.O.obobobobobobobob0#0#0#A.A.A.abababM#M#M#M#m.m.m.m.m.Zay##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#y#ZaZam.m.m.M#M#M#M#ababababA.A.A.A.A.0#0#0#0#0#0#0#0#0#ob0#0#0#0#0#0#A.0#A.A.A.abababababM#M#M#m.m.m.m.Zay#y#y#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#y#ZaZaZam.m.M#M#M#M#M#M#M#abababababA.A.A.A.A.A.A.A.A.A.A.A.A.A.abababababM#ababM#M#M#m.m.m.ZaZaZaZay##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#y#ZaZam.m.m.m.M#M#M#M#M#M#M#M#abM#ababababababababababababM#abM#M#M#M#M#M#m.m.m.m.ZaZaZay#y#y#y#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#y#y#ZaZaZam.m.m.m.M#M#M#M#M#M#M#M#M#M#M#M#M#abM#M#M#M#M#M#M#M#M#m.m.m.m.Zam.ZaZaZay#y#y#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y##.y#y#y#ZaZaZaZam.Zam.m.m.m.M#m.M#M#M#M#M#M#M#M#M#m.m.m.m.m.m.m.m.ZaZaZaZay#y#y#y#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#y#y#ZaZaZaZaZaZam.m.Zam.m.m.m.m.m.ZaZam.ZaZaZaZaZaZay#Zay#y#y#y#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#y#y#y#y#y#ZaZaZaZaZaZaZaZaZaZaZaZaZay#y#y#y#y#y#y#y#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y#y#y#y#y#y#y#y#y#y#y#y#y#y#y#y##.y#y##.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#."};
 }
 #
 # Initialisation here
 #
 set STAR_NUM 100
 set DIST 10 

 set zoom -15
 set tilt 90
 set spin 0
 set twinkle 0
 set animate 10

 InitStars

 foreach a [after info] {after cancel $a}


 # Start it all

 setup .gl
 animate


 list