DeathTestvDungeon
#1
DeathTeatDungeon is a simple rogue-like example.  It's based off the code I used in Wandering in the Cave but makes use of a graphic tileset.   
It's currently set-up to play a simple escape scenario. Eventually monsters and treasures will be added to the game, the graphics are there currently just not all the rest of the code.

This is in two codeblocks, the main program you can name however you like the tileset and tileloading function should be saved in a file called "DTDtiles.bi" if you want to use the code as is.

thanks again to DAV for his BASIMAGE program whichmade this program possible as is.

DeathTestDungeon Main Program
Code: (Select All)
'DeathTestDungeon    v0.3b
'By James D. Jarvis
' a simple rogue-like example
' in progress
' has simple exit challenge built in for now , no guarantee the starting positon will be safe or the game will be playable just yet
'
'curenntly this is all rough and in-development you'll see the dungeon get drawn as you start and it will stay on screen
'as long as you wish, press the spacebar to start playing
' use the numberpad or WASD to navigate   <esc> to quit
'$dynamic
Screen _NewImage(800, 500, 32)
_Title "DeathTestDungeon v0.3"
_Define K As _UNSIGNED LONG
Dim Shared dmap As _Unsigned Long
Dim Shared ms As _Unsigned Long
Dim Shared Kblack, Kwhite, Kdgrey, Klgrey, kredm, kwater, kslime, klava, krubble, kcrystal, kexit, kfungus
Dim Shared kfloor2, kfloor3, kfloor4, cornerrubblechance
Dim Shared tiles&
Dim Shared rect_count As Integer
Type rect_type
    xx As Integer
    yy As Integer
    ww As Integer
    hh As Integer
    lk As _Unsigned Long
    fk As _Unsigned Long
    notes As String
End Type
Dim Shared tilespot(0 To 528, 2) As Integer
Dim Shared rect(0) As rect_type
Dim Shared min_rectd
Dim Shared fillcell, openwallchance, pillarchance, puddleno, slimechance, lavachance
Dim Shared phealth, pstamina, pwounds, ptemp, ppx, ppy, lastx, lasty
Randomize Timer
Kblack = _RGB32(0, 0, 0) 'this is visible black as 0,0,0 will be "nothing is here" eventually
Kwhite = _RGB32(250, 250, 250) 'this is cooled paper white
Kdgrey = _RGB32(40, 40, 40)
Klgrey = _RGB32(150, 150, 150)
kfloor2 = _RGB32(151, 151, 151): kfloor3 = _RGB32(152, 152, 152): kfloor4 = _RGB32(153, 153, 153)
kred = _RGB32(250, 0, 0)
kwater = _RGB32(10, 30, 240): kslime = _RGB32(20, 240, 100): klava = _RGB32(200, 5, 5)
krubble = _RGB32(80, 80, 80): kcrystal = _RGB32(250, 250, 0): kexit = _RGB32(255, 0, 255)
kfungus = _RGB32(200, 50, 150)
dmap = _NewImage(800, 500, 32)
ms = _NewImage(800, 500, 32)
tiles& = Loadtileset1& 'loads the tileset in the file DTDtiles.bi
Const tilemaxx = 48
Const tilemaxy = 11
t = 0
For y = 0 To tilemaxy - 1
    For x = 0 To tilemaxx - 1
        tilespot(t, 1) = x * 16
        tilespot(t, 2) = y * 16
        t = t + 1
    Next x
Next y
maxtiles = t - 1
fh = _FontHeight
fw = _FontWidth





restartdungeon:
walltile = getwalltile

Screen dmap
_Dest dmap
_Source dmap
_PrintMode _KeepBackground
Color Kdgrey, Kdgrey
Do
    fillcell = Int(Rnd * 40)
    openwallchance = Int(Rnd * 20)
    pillarchance = Int(Rnd * 20)
    puddleno = Int(Rnd * 30)
    slimechance = Int(Rnd * 24)
    lavachance = Int(Rnd * 10)
    funguschance = Int(Rnd * 30)
    cornerrubblechance = Int(1 + Rnd * 30)
    ReDim rect(0) As rect_type
    rect_count = 0
    Cls
    rwid = 780
    rht = 480
    newrect 10, 10, rwid, rht, Kdgrey, Klgrey
    min_rectd = 40
    'If min_rectd < 4 Then min_rectd = 4
    drawrect 1
    bisectrect 1
    n = 0
    min_rectd = Int(1 + Rnd * 30)
    If min_rectd < 10 Then min_rectd = 10

    Do
        'Cls
        For r = 1 To rect_count
            bisectrect r
        Next r
        For r = 1 To rect_count
            drawrect r
        Next r


        _Limit 5
        kk$ = InKey$
        n = n + Int(1 + Rnd * 8)
    Loop Until kk$ <> "" Or n > 40
    kk$ = Chr$(27)
Loop Until kk$ = Chr$(27)
For r = 1 To rect_count
    If Int(1 + Rnd * 100) < fillcell Then rect(r).fk = Kdgrey
    drawrect r
Next r
For r = 1 To rect_count 'if there's an open space across a wall open a space in the wall
    If rect(r).fk <> Kdgrey Then
        mx = rect(r).xx + Int(rect(r).ww / 2)
        my = rect(r).yy + Int(rect(r).hh / 2)
        If Point(mx, my + Int(rect(r).hh / 2) + 2) = Klgrey Then
            Line (mx, my)-(mx, my + Int(rect(r).hh / 2) + 2), Klgrey
        End If

        If Point(mx, my - Int(rect(r).hh / 2) - 2) = Klgrey Then
            Line (mx, my)-(mx, my - Int(rect(r).hh / 2) - 2), Klgrey
        End If

        If Point(mx - Int(rect(r).ww / 2) - 2, my) = Klgrey Then
            Line (mx - Int(rect(r).ww / 2) - 2, my)-(mx, my), Klgrey
        End If

        If Point(mx + Int(rect(r).ww / 2) + 2, my) = Klgrey Then
            Line (mx + Int(rect(r).ww / 2) + 2, my)-(mx, my), Klgrey
        End If
    End If
Next r
For y = 11 To rht - 1
    For x = 11 To rwid - 2
        If Point(x, y) = Klgrey And Point(x + 1, y) = Kdgrey And Point(x + 2, y) = Klgrey Then
            PSet (x + 1, y), kred
        End If
        If Point(x, y) = Klgrey And Point(x + 1, y) = kred And Point(x + 2, y) = Kdgrey And Point(x + 3, y) = Klgrey Then
            PSet (x + 2, y), kred
        End If
        If Point(x, y) = kdrgey And Point(x + 1, y) = Klgrey And Point(x + 2, y) = Kdgrey And Point(x + 3, y) = Kdgrey And Point(x + 4, y) = Klgrey And Point(x + 5, y) = Kdgrey Then
            PSet (x + 2, y), Klgrey
            PSet (x + 3, y), Klgrey
        End If
    Next x
Next y

For x = 11 To rwid - 2
    For y = 11 To rht - 2
        If Point(x, y) = Klgrey And Point(x, y + 1) = Kdgrey And Point(x, y + 2) = Klgrey Then
            PSet (x, y + 1), kred
        End If
        If Point(x, y) = Klgrey And Point(x, y + 1) = kred And Point(x, y + 2) = Kdgrey And Point(x, y + 3) = Klgrey Then
            PSet (x, y + 2), kred
        End If
        If Point(x, y) = kdrgey And Point(x, y + 1) = Klgrey And Point(x, y + 2) = Kdgrey And Point(x, y + 3) = Kdgrey And Point(x, y + 4) = Klgrey And Point(x, y + 5) = Kdgrey Then
            PSet (x, y + 2), Klgrey
            PSet (x, y + 3), Klgrey
        End If
    Next
Next
aa$ = Input$(1)
For y = 10 To rht
    For x = 10 To rwid
        If Point(x, y) = kred Then PSet (x, y), Klgrey
    Next
Next
Color Kblack, Kwhite
'check to open walls
For r = 1 To rect_count
    If rect(r).fk <> Kdgrey And Int(1 + Rnd * 100) <= openwallchance Then
        Select Case Int(1 + Rnd * 4)
            Case 1
                rect(r).xx = rect(r).xx - 2
                rect(r).ww = rect(r).ww + 2
            Case 2
                rect(r).xx = rect(r).xx + 2
                rect(r).ww = rect(r).ww + 2

            Case 3
                rect(r).yy = rect(r).yy - 2
                rect(r).hh = rect(r).hh + 2
            Case 4
                rect(r).yy = rect(r).yy + 2
                rect(r).hh = rect(r).hh + 2
        End Select
        Line (rect(r).xx, rect(r).yy)-(rect(r).xx + rect(r).ww, rect(r).yy + rect(r).hh), Klgrey, BF
    End If
Next r

'straysspaces
sp = Int(Rnd * 12)
For ss = 1 To sp
    sx = Int(10 + Rnd * rwid - 30)
    sy = Int(10 + Rnd * rht - 30)
    sw = 10 + Int(Rnd * 20)
    sh = 10 + Int(Rnd * 20)
    Line (sx, sy)-(sx + sw, sy + sh), Klgrey, BF
Next
'add wormtunnels
nwt = Int(Rnd * (12 + fillcell))
For ww = 1 To nwt
    wsx = Int(20 + Rnd * rwid - 50)
    wsy = Int(20 + Rnd * rht - 50)
    wtx = Int(20 + Rnd * rwid - 50)
    wty = Int(20 + Rnd * rht - 50)
    If wsx < wtx Then xtrend = 1
    If wsx > wtx Then xtrend = -1
    If wsy < wty Then ytrend = 1
    If wsy > wty Then ytrend = -1
    sx = wsx
    sy = wsy
    rl = 0
    Do
        nx = sx + Int(xtrend + Rnd * 2 - Rnd * 2)
        ny = sy + Int(ytrend + Rnd * 2 - Rnd * 2)
        If nx < 11 Then
            nx = 11
            xtrend = xtrend * -1
        End If
        If ny < 11 Then
            ny = 11
            ytrend = ytrend * -1
        End If
        If nx > rwid Then
            nx = rwid
            xtrend = xtrend * -1
        End If
        If ny > rht Then
            ny = rht
            ytrend = ytrend * -1
        End If
        dx = Abs(nx - wtx)
        dy = Abs(ny - wty)
        Line (sx, sy)-(nx, ny), Klgrey
        sx = nx
        sy = ny
        rl = rl + 1
    Loop Until dx < 5 And dy < 5 Or rl > rwid + 40
    Line (sx, sy)-(wtx, wty), Klgrey
Next ww

For r = 1 To rect_count 'add pillars
    pillarspread = 2 + Int(Rnd * 7)
    If rect(r).fk <> Kdgrey And Int(1 + Rnd * 100) <= pillarchance Then
        For y = rect(r).yy + pillarspread To rect(r).yy + rect(r).hh - pillarspread Step pillarspread
            For x = rect(r).xx + pillarspread To rect(r).xx + rect(r).ww - pillarspread Step pillarspread
                PSet (x, y), Kdgrey
            Next
        Next
    End If
Next

For pr = 1 To rect_count
    If rect(pr).fk <> Kdgrey And Int(1 + Rnd * 100) <= cornerrubblechance Then
        addcornerrubble pr
    End If
    If rect(pr).fk <> Kdgrey And Int(1 + Rnd * 100) <= puddleno Then
        addwater pr, Int(rect(pr).xx + 1 + Rnd * (rect(pr).ww - 2)), Int(rect(pr).yy + 1 + Rnd * (rect(pr).hh - 2)), Int(1 + Rnd * 3)
    End If
    If rect(pr).fk <> Kdgrey And Int(1 + Rnd * 100) <= slimechance Then
        addslime pr, Int(rect(pr).xx + 1 + Rnd * (rect(pr).ww - 2)), Int(rect(pr).yy + 1 + Rnd * (rect(pr).hh - 2)), Int(1 + Rnd * 3)
    End If
    If rect(pr).fk <> Kdgrey And Int(1 + Rnd * 100) <= lavachance Then
        addlava pr, Int(rect(pr).xx + 1 + Rnd * (rect(pr).ww - 2)), Int(rect(pr).yy + 1 + Rnd * (rect(pr).hh - 2)), Int(1 + Rnd * 3)
    End If
    If rect(pr).fk <> Kdgrey And Int(1 + Rnd * 100) <= funguschance Then
        addfungus pr, Int(rect(pr).xx + 1 + Rnd * (rect(pr).ww - 2)), Int(rect(pr).yy + 1 + Rnd * (rect(pr).hh - 2)), Int(1 + Rnd * 3)
    End If
Next pr
'dress floor to make it more interesting
For y = 1 To rht
    For x = 1 To rwid
        If Point(x, y) = Klgrey Then
            Select Case Int(1 + Rnd * 100)
                Case 1, 2
                    PSet (x, y), kfloor2
                Case 3
                    PSet (x, y), kfloor3
                Case 4
                    PSet (x, y), kfloor4
            End Select
            If Point(x, y) = Kdgrey Then 'convert some wall near lava inot rubble
                If Point(x - 1, y) = klava And Int(1 + Rnd * 100) < 30 Then PSet (x, y), krubble
                If Point(x + 1, y) = klava And Int(1 + Rnd * 100) < 30 Then PSet (x, y), krubble
                If Point(x, y + 1) = klava And Int(1 + Rnd * 100) < 30 Then PSet (x, y), krubble
                If Point(x, y - 1) = klava And Int(1 + Rnd * 100) < 30 Then PSet (x, y), krubble
                If Point(x - 2, y) = klava And Int(1 + Rnd * 100) < 10 Then PSet (x, y), krubble
                If Point(x + 2, y) = klava And Int(1 + Rnd * 100) < 10 Then PSet (x, y), krubble
                If Point(x, y + 2) = klava And Int(1 + Rnd * 100) < 10 Then PSet (x, y), krubble
                If Point(x, y - 2) = klava And Int(1 + Rnd * 100) < 10 Then PSet (x, y), krubble
            End If
        End If
    Next
Next

For e = 0 To 9 'clean edge
    Line (e, e)-(_Width - e, e), Kdgrey: Line (e, e)-(e, _Height - e), Kdgrey: Line (_Width - e, e)-(_Width - e, _Height - e), Kdgrey
Next e
Screen ms
_Source dmap
pick = 0
Do
    pick = pick + 1
    ppx = rect(pick).xx + Int(rect(pick).ww / 2): ppy = rect(pick).yy + Int(rect(pick).hh / 2)
    kk = Point(ppx, ppy)
Loop Until kk <> Kdgrey

lightradius = 9: pstamina = 100: phealth = 100: pwounds = 0: ptemp = 98
turn = 0

Do
    If rec_count > 12 Then
        exitspot = Int(6 + Rnd * (rect_count - 7))
    Else
        exitspot = Int(1 + Rnd * rect_count)
    End If
    exitX = rect(exitspot).xx + Int(rect(exitspot).ww / 2)
    exitY = rect(exitspot).yy + Int(rect(exitspot).hh / 2)
    startX = Abs(exitX - ppx)
    startY = Abs(exitY - ppy)
    start_dx = Sqr(startX * startX + startY * startY)
Loop Until Point(exitX, exitY) <> Kdgrey And exitspot <> pick
_Dest dmap
PSet (exitX, exitY), kexit
_Dest ms
_PrintMode _KeepBackground
View Print 25 To 30
Cls
Do
    'draw location
    rsqrd = lightradius * lightradius
    y = -lightradius
    While y <= lightradius
        x = Int(Sqr(rsqrd - y * y))
        For x2 = ppx - x To ppx + x
            vx = x2 - ppx + 12
            kk = Point(x2, ppy + y)
            Line (vx * 16, (y + 12) * 16)-(vx * 16 + 15, (y + 12) * 16 + 15), kk, BF
            If kk = Kdgrey Then
                coltileat walltile, _RGB32(100, 100, 100), vx * 16, (y + 12) * 16
            End If
            If kk = kfloor2 Then
                coltileat 2, _RGB32(160, 160, 160), vx * 16, (y + 12) * 16
            End If
            If kk = kfloor3 Then
                coltileat 3, _RGB32(165, 165, 170), vx * 16, (y + 12) * 16
            End If
            If kk = kfloor4 Then
                coltileat 4, _RGB32(175, 165, 165), vx * 16, (y + 12) * 16
            End If

            If kk = kexit Then
                coltileat 24, _RGB32(250, 40, 255), vx * 16, (y + 12) * 16
            End If

            If kk = kfungus Then
                Color _RGB32(250, 100, 200)
                ' _PrintString (vx * 16, (y + 12) * 16), Chr$(234)
                coltileat 57, _RGB32(250, 100, 200), vx * 16, (y + 12) * 16
                Color _RGB32(255, 255, 255)
            End If
            If kk = kcrystal Then
                '_PrintString (vx * 16, (y + 12) * 16), Chr$(127)
                coltileat 433, _RGB32(10, 0, 10), vx * 16, (y + 12) * 16
            End If
            If kk = krubble Then
                Color _RGB32(150, 150, 150)
                '_PrintString (vx * 16, (y + 12) * 16), Chr$(177)
                coltileat 61, _RGB32(220, 200, 180), vx * 16, (y + 12) * 16
                Color _RGB32(255, 255, 255)
            End If
            If kk = kslime Then
                Color _RGB32(250, 250, 150)
                sb = Int(Rnd * 4)
                'If sb = 1 Then _PrintString (vx * 16, (y + 12) * 16), Chr$(247)
                If sb = 1 Then coltileat 61, _RGB32(250, 250, 150), vx * 16, (y + 12) * 16
                ' If sb = 2 Then _PrintString (vx * 16, (y + 12) * 16), Chr$(126)
                If sb = 2 Then coltileat 61, _RGB32(150, 250, 150), vx * 16, (y + 12) * 16
                Color _RGB32(255, 255, 255)
            End If
            If kk = klava Then
                Color _RGB32(250, 250, 150)
                lb = Int(Rnd * 7)
                'If lb = 1 Then _PrintString (vx * 16, (y + 12) * 16), Chr$(249)
                If lb = 1 Then coltileat 61, _RGB32(250, 250, 150), vx * 16, (y + 12) * 16
                'If lb = 2 Then _PrintString (vx * 16, (y + 12) * 16), Chr$(9)
                If lb = 2 Then coltileat 468, _RGB32(250, 250, 150), vx * 16, (y + 12) * 16
                'If lb = 3 Then _PrintString (vx * 16, (y + 12) * 16), Chr$(176)
                If lb = 3 Then coltileat 461, _RGB32(250, 250, 150), vx * 16, (y + 12) * 16
                'If lb = 4 Then _PrintString (vx * 16, (y + 12) * 16), Chr$(248)
                If lb = 4 Then coltileat 61, _RGB32(250, 0, 0), vx * 16, (y + 12) * 16

                'If lb = 5 Then _PrintString (vx * 16, (y + 12) * 16), Chr$(46)
                If lb = 5 Then coltileat 468, _RGB32(250, 100, 0), vx * 16, (y + 12) * 16
                Color _RGB32(255, 255, 255)
            End If
            If kk = kwater Then
                Color _RGB32(40, 120, 250)
                wb = Int(Rnd * 6)
                'If wb = 1 Then _PrintString (vx * 16, (y + 12) * 16), Chr$(45)
                If wb = 1 Then coltileat 136, _RGB32(40, 120, 250), vx * 16, (y + 12) * 16
                If wb = 2 Then coltileat 136, _RGB32(40, 120, 250), vx * 16, (y + 12) * 16
                If wb = 3 Then _PrintString (vx * 16 + 4, (y + 12) * 16), Chr$(240)
                Color _RGB32(255, 255, 255)
            End If
        Next
        y = y + 1
    Wend
    Line (598, 18)-(795, 124), Kdgrey, BF
    '_PrintString ((12) * 8, (12) * 16), "@"
    If ptemp > 199 Then coltileat 470, _RGB32(40, 0, 0), (12) * 16, (12) * 16
    coltileat 304, _RGB32(250, 250, 250), (12) * 16, (12) * 16
    o$ = "Stamina " + Str$(pstamina)
    _PrintString (600, 20), o$
    o$ = "Health " + Str$(phealth)
    _PrintString (600, 40), o$
    o$ = "Wounds " + Str$(pwounds)
    _PrintString (600, 60), o$
    o$ = "Temperature " + Str$(ptemp)
    _PrintString (600, 80), o$
    edd = Int(Sqr((ppx - exitX) * (ppx - exitX) + (ppy - exitY) * (ppy - exitY)))
    o$ = "Distance to Exit " + Str$(edd)
    _PrintString (600, 100), o$
    Print "Turn", turn
    Do
        _Limit 60
        kk$ = InKey$
    Loop Until kk$ <> ""
    turn = turn + 1
    lastx = ppx
    lasty = ppy
    Select Case kk$
        Case "w", "8"
            If pstamina > 0 And Point(ppx, ppy - 1) <> Kdgrey Then ppy = ppy - 1
        Case "s", "2"
            If pstamina > 0 And Point(ppx, ppy + 1) <> Kdgrey Then ppy = ppy + 1
        Case "a", "4"
            If pstamina > 0 And Point(ppx - 1, ppy) <> Kdgrey Then ppx = ppx - 1
        Case "d", "6"
            If pstamina > 0 And Point(ppx + 1, ppy) <> Kdgrey Then ppx = ppx + 1
        Case "7"
            If pstamina > 0 And Point(ppx - 1, ppy - 1) <> Kdgrey Then
                ppy = ppy - 1
                ppx = ppx - 1
            End If
        Case "9"
            If pstamina > 0 And Point(ppx + 1, ppy - 1) <> Kdgrey Then
                ppy = ppy - 1
                ppx = ppx + 1
            End If
        Case "1"
            If pstamina > 0 And Point(ppx - 1, ppy + 1) <> Kdgrey Then
                ppy = ppy + 1
                ppx = ppx - 1
            End If
        Case "3"
            If pstamina > 0 And Point(ppx + 1, ppy + 1) <> Kdgrey Then
                ppy = ppy + 1
                ppx = ppx + 1
            End If
        Case "5", "."
            If Int(1 + Rnd * 50) < phealth And pstamina < 100 Then pstamina = pstamina + Int(1.5 + Rnd * (phealth / 25))
    End Select
    If Point(ppx, ppy) = krubble Then pwounds = pwounds + checkrubble(ppx, ppy)
    If Point(ppx, ppy) = kcrystal Then pwounds = pwounds + checkcrystal(ppx, ppy)

    If Int(1 + Rnd * 80 + pwounds) > phealth Then pstamina = pstamina - 1
    If Point(ppx, ppy) = kslime Then
        Print "The slime is nauseating...";
        If Int(Rnd * 120) > phealth Then phealth = phealth - Int(Rnd * 4)
        If Int(Rnd * 120) > phealth Then
            Select Case Int(1 + Rnd * 6)
                Case 1, 2, 3
                    Print " it's making you itch."
                Case 4, 5, 6
                    Print " it's feel's like it is burning you."
                    wounds = wounds + Abs(Int(Rnd * 2 - Rnd * 2))
            End Select
        End If
    End If
    If Point(ppx, ppy) = kwater Then ptemp = ptemp - Int(Abs(Rnd * 2 - Rnd * 2))
    If Point(ppx, ppy) = klava Then
        ptemp = ptemp + 100
        dmg = 10 + Int(Rnd * 20)
        pwounds = pwounds + dmg
        Print "YOU ARE STANDING IN LAVA !!!"
        Print "....suffering "; dmg; " points of damage !"
    End If
    If ptemp < 0 Then
        Print "You are dangerously COLD .... brrrrr"
        pstamina = pstamina - Int(Rnd * 2)
        If Int(1 + Rnd * (50 + Abs(ptemp))) > pstamina Then
            pwounds = pwounds + Int(1 + Rnd * 2)
            phealth = phealth - Int(Rnd * 2)
        End If
    End If
    tcheck = ptemp + Rnd * 10
    If tcheck > 108 Then
        pstamina = pstamina - 1
        Print "You are dangerously warm!"
        If Int(1 + Rnd * ptemp) > pstamina Then
            pwounds = pwounds + 1
            phealth = phealth - Int(Rnd * 2)
        End If
    End If
    'If Point(ppx, ppy) = (kfloor2 Or kfloor3 or kfloor4 or klgrey) Then
    If ptemp < 98 Then ptemp = ptemp + 1
    If ptemp > 98 Then ptemp = Int((ptemp + 98) / 2)
    ' End If
    If pstamina < 20 Then
        Print "You are ";
        If pstamina < 1 Then
            Print "exhausted."
        Else
            Print "fatigued."
        End If
    End If
    If wounds > phealth Then
        Print "You are in intense pain !"
        pstamina = pstamina = Int(Rnd * 2)
    End If
    If Point(ppx, ppy) = kexit Then
        Print
        Print "YOU HAVE FOUND THE EXIT"
        Print
        Print "it took you "; turn; " turns after starting "; start_dx; " spaces away from the exit."
        Print
        kk$ = Chr$(27)
    End If
    If phealth < 1 Or pwounds > 99 Then
        Print "YOU HAVE PERISHED DUE TO YOUR POOR CONDITION."
        Print
        Print "(press any key to continue)"
        any$ = Input$(1)
        kk$ = Chr$(27)
    End If
Loop Until kk$ = Chr$(27)
Print "GAME OVER"
Print "play again?"
Print "Y or N?"
Do
    ask$ = Input$(1)
    ask$ = UCase$(ask$)
Loop Until ask$ = "Y" Or ask$ = "N"
If ask$ = "Y" Then
    Screen cmap
    GoTo restartdungeon
End If
System
'SUBS======================================================================
'$INCLUDE: 'DTDtiles.bi'
'==========================================================================
Sub bisectrect (r)
    If r > 0 Or r < rect_count + 1 Then
        Select Case Int(1 + Rnd * 6)
            Case 1, 2, 3 'vertical split
                tries = 0
                Do
                    tries = tries + 1
                    vpercent = (Int(1 + Rnd * 4) + Int(1 + Rnd * 4)) * .1
                Loop Until vpercent * rect(r).ww >= min_rectd And vpercent * rect(r).hh >= min_rectd Or tries > 7
                If tries < 8 Then
                    oldWW = Int(rect(r).ww * vpercent)
                    newX = rect(r).xx + oldWW
                    newWW = rect(r).ww - oldWW
                    If oldWW >= min_rectd And newWW >= min_rectd Then
                        rect(r).ww = oldWW
                        newrect newX, rect(r).yy, newWW, rect(r).hh, rect(r).lk, rect(r).fk
                    End If
                End If
            Case 4, 5, 6 'horizontal split
                tries = 0
                Do
                    tries = tries + 1
                    vpercent = (Int(1 + Rnd * 4) + Int(1 + Rnd * 4)) * .1
                Loop Until vpercent * rect(r).ww >= min_rectd And vpercent * rect(r).hh >= min_rectd Or tries > 7
                If tries < 8 Then
                    oldHH = Int(rect(r).hh * vpercent)
                    newYY = (rect(r).yy + oldHH)
                    newHH = rect(r).hh - oldHH
                    If oldHH >= min_rectd And newHH >= min_rectd Then
                        rect(r).hh = oldHH
                        newrect rect(r).xx, newYY, rect(r).ww, newHH, rect(r).lk, rect(r).fk
                    End If
                End If

        End Select
    End If
End Sub

Sub wrect (rx, ry, ww, hh, line_klr As _Unsigned Long, fill_klr As _Unsigned Long)
    If fill_klr > 0 Then Line (rx, ry)-(rx + ww - 1, ry + hh - 1), fill_klr, BF
    If line_klr > 0 Then Line (rx, ry)-(rx + ww - 1, ry + hh - 1), line_klr, B
End Sub

Sub drawrect (r)
    wrect rect(r).xx, rect(r).yy, rect(r).ww, rect(r).hh, rect(r).lk, rect(r).fk
End Sub

Sub newrect (XX, YY, WW, HH, klk, kfl)
    rect_count = rect_count + 1
    ReDim _Preserve rect(rect_count) As rect_type
    rect(rect_count).xx = XX
    rect(rect_count).yy = YY
    rect(rect_count).ww = WW
    rect(rect_count).hh = HH
    rect(rect_count).lk = klk
    rect(rect_count).fk = kfl
    rect(rect_count).notes = "newrect"
End Sub
Sub addwater (rno, pcx, pcy, scale)
    prr = Int(6 + Rnd * (12 * scale))
    preps = (3 + Int(Rnd * prr))
    For wr = 1 To preps
        pcxx = pcx + Int(Rnd * (prr / 2)) - Int(Rnd * (prr / 2))
        pcyy = pcy + Int(Rnd * (prr / 2)) - Int(Rnd * (prr / 2))
        rsqrd = prr * prr
        y = -prr
        While y <= prr
            x = Int(Sqr(rsqrd - y * y))
            For x2 = pcxx - x To pcxx + x
                If x2 >= rect(rno).xx And x2 <= rect(rno).xx + rect(rno).ww Then
                    If pcyy + y >= rect(rno).yy And pcyy + y <= rect(rno).yy + rect(rno).hh Then
                        kk = Point(x2, pcyy + y)
                        If kk = Klgrey Then
                            PSet (x2, pcyy + y), kwater
                        End If
                    End If
                End If
            Next
            y = y + 1
        Wend
        prr = Int((prr + Int(6 + Rnd * (12 * scale))) / 2)
    Next
End Sub
Sub addslime (rno, pcx, pcy, scale)
    prr = Int(5 + Rnd * (10 * scale))
    preps = (3 + Int(Rnd * prr))
    For wr = 1 To preps
        pcxx = pcx + Int(Rnd * (prr / 2)) - Int(Rnd * (prr / 2))
        pcyy = pcy + Int(Rnd * (prr / 2)) - Int(Rnd * (prr / 2))
        rsqrd = prr * prr
        y = -prr
        While y <= prr
            x = Int(Sqr(rsqrd - y * y))
            For x2 = pcxx - x To pcxx + x
                If x2 >= rect(rno).xx And x2 <= rect(rno).xx + rect(rno).ww Then
                    If pcyy + y >= rect(rno).yy And pcyy + y <= rect(rno).yy + rect(rno).hh Then
                        kk = Point(x2, pcyy + y)
                        If kk = Klgrey Or kk = kwater Then
                            PSet (x2, pcyy + y), kslime
                        End If
                    End If
                End If
            Next
            y = y + 1
        Wend
        prr = Int((prr + Int(6 + Rnd * (12 * scale))) / 2)
    Next
End Sub
Sub addlava (rno, pcx, pcy, scale)
    prr = Int(5 + Rnd * (10 * scale))
    preps = (3 + Int(Rnd * prr))
    For wr = 1 To preps
        pcxx = pcx + Int(Rnd * (prr / 2)) - Int(Rnd * (prr / 2))
        pcyy = pcy + Int(Rnd * (prr / 2)) - Int(Rnd * (prr / 2))
        rsqrd = prr * prr
        y = -prr
        While y <= prr
            x = Int(Sqr(rsqrd - y * y))
            For x2 = pcxx - x To pcxx + x
                If x2 >= rect(rno).xx And x2 <= rect(rno).xx + rect(rno).ww Then
                    If pcyy + y >= rect(rno).yy And pcyy + y <= rect(rno).yy + rect(rno).hh Then
                        kk = Point(x2, pcyy + y)
                        If kk = Klgrey Or kk = kwater Or kk = kslime Then
                            If kk = kwater Then
                                If Abs(y) < prr / 2 Then
                                    PSet (x2, pcyy + y), klava
                                Else
                                    Select Case Int(1 + Rnd * 12)
                                        Case 1, 2, 3, 4, 5
                                            PSet (x2, pcyy + y), klava
                                        Case 6, 7, 8
                                            PSet (x2, pcyy + y), krubble
                                        Case 9, 10
                                            PSet (x2, pcyy + y), Klgrey
                                        Case 11
                                            PSet (x2, pcyy + y), Kdgrey
                                        Case 12
                                            PSet (x2, pcyy + y), kcrystal
                                    End Select
                                End If
                            Else
                                PSet (x2, pcyy + y), klava
                            End If
                        End If
                    End If
                End If
            Next
            y = y + 1
        Wend
        prr = Int((prr + Int(6 + Rnd * (12 * scale))) / 2)
    Next
End Sub

Sub addfungus (rno, pcx, pcy, scale)
    prr = Int(2 + Rnd * (2 * scale))
    preps = (3 + Int(Rnd * prr))
    For wr = 1 To preps
        pcxx = pcx + Int(Rnd * (prr / 2)) - Int(Rnd * (prr / 2))
        pcyy = pcy + Int(Rnd * (prr / 2)) - Int(Rnd * (prr / 2))
        rsqrd = prr * prr
        y = -prr
        While y <= prr
            x = Int(Sqr(rsqrd - y * y))
            For x2 = pcxx - x To pcxx + x
                If x2 >= rect(rno).xx And x2 <= rect(rno).xx + rect(rno).ww Then
                    If pcyy + y >= rect(rno).yy And pcyy + y <= rect(rno).yy + rect(rno).hh Then
                        kk = Point(x2, pcyy + y)
                        If kk = Klgrey Or kk = kwater Then
                            If Int(1 + Rnd * 100) <= 30 Then PSet (x2, pcyy + y), kfungus
                        End If
                    End If
                End If
            Next
            y = y + 1
        Wend
        prr = Int((prr + Int(6 + Rnd * (12 * scale))) / 2)
    Next
End Sub
Function checkrubble (xx, yy)
    stumblecheck = Int(1 + Rnd * 120)
    dmg = 0
    If stumblecheck > health Then
        Print "whooops.... you stumbled on the rubble...";
        Select Case Int(1 + Rnd * 20)
            Case 1
                If Point(ppx - 1, ppy - 1) <> Kdgrey Then
                    ppx = ppx - 1: ppy = ppy - 1
                End If
            Case 2
                If Point(ppx, ppy - 1) <> Kdgrey Then
                    ppy = ppy - 1
                End If
            Case 3
                If Point(ppx + 1, ppy + 1) <> Kdgrey Then
                    ppx = ppx + 1: ppy = ppy + 1
                End If
            Case 4
                If Point(ppx - 1, ppy) <> Kdgrey Then
                    ppx = ppx - 1
                End If
            Case 6
                If Point(ppx + 1, ppy) <> Kdgrey Then
                    ppx = ppx + 1
                End If
            Case 7
                If Point(ppx - 1, ppy + 1) <> Kdgrey Then
                    ppx = ppx - 1: ppy = ppy + 1
                End If
            Case 8
                If Point(ppx, ppy + 1) <> Kdgrey Then
                    ppy = ppy + 1
                End If
            Case 9
                If Point(ppx + 1, ppy + 1) <> Kdgrey Then
                    ppy = ppy + 1: ppx = ppx + 1
                End If
            Case 10, 11, 12, 13, 14
                Print " knocking the wind out of you... ";
                pstamina = Int(pstamina / 4)
            Case 15, 16, 17, 18, 19, 20
                ppx = lastx: ppy = lasty
                Print "you tumble back...";
        End Select
        dmg = Abs(Int((Rnd * 3) - (Rnd * 3)))
        If dmg > 0 Then
            Print "you suffer "; dmg; " points of damage!"
        Else
            Print "."
        End If
    End If
    checkrubble = dmg
End Function
Sub addcornerrubble (rno)
    numcorn = Int(1 + Rnd * 4)
    For crr = 1 To numcorn
        Select Case Int(Rnd * 5)
            Case 1
                crx = rect(rno).xx + 1
                cry = rect(rno).yy + 1
            Case 2
                crx = rect(rno).xx + 1
                cry = rect(rno).yy + rect(rno).hh - 2
            Case 3
                crx = rect(rno).xx + rect(rno).ww - 2
                cry = rect(rno).yy + 1
            Case 4
                crx = rect(rno).xx + rect(rno).ww - 2
                cry = rect(rno).yy + rect(rno).hh - 2
        End Select
        prr = Int((rect(rno).hh + rect(rno).ww) / 12)
        rsqrd = prr * prr
        y = -prr
        While y <= prr
            x = Int(Sqr(rsqrd - y * y))
            For x2 = crx - x To crx + x
                If x2 >= rect(rno).xx And x2 <= rect(rno).xx + rect(rno).ww Then
                    If cry + y >= rect(rno).yy And cry + y <= rect(rno).yy + rect(rno).hh Then
                        kk = Point(x2, cry + y)
                        If kk = Klgrey And Int(1 + Rnd * 100) < (cornerrubblechance * 2.5) Then
                            PSet (x2, cry + y), krubble
                        End If
                    End If
                End If
            Next
            y = y + 1
        Wend
    Next crr
End Sub

Function checkcrystal (xx, yy)
    climbcheck = Int(1 + Rnd * 100)
    If climbcheck > phealth Then
        Print "You just can't gain any purchase to climb the crystal."
    Else
        stumblecheck = Int(1 + Rnd * 120)
        dmg = 0
        If stumblecheck > health Then
            Print ".... you fell from the crytsal...";
            Select Case Int(1 + Rnd * 9)
                Case 1
                    If Point(ppx - 1, ppy - 1) <> Kdgrey Then
                        ppx = ppx - 1: ppy = ppy - 1
                    End If
                Case 2
                    If Point(ppx, ppy - 1) <> Kdgrey Then
                        ppy = ppy - 1
                    End If
                Case 3
                    If Point(ppx + 1, ppy + 1) <> Kdgrey Then
                        ppx = ppx + 1: ppy = ppy + 1
                    End If
                Case 4
                    If Point(ppx - 1, ppy) <> Kdgrey Then
                        ppx = ppx - 1
                    End If
                Case 5
                    ppx = lastx: ppy = lasty
                Case 6
                    If Point(ppx + 1, ppy) <> Kdgrey Then
                        ppx = ppx + 1
                    End If
                Case 7
                    If Point(ppx - 1, ppy + 1) <> Kdgrey Then
                        ppx = ppx - 1: ppy = ppy + 1
                    End If
                Case 8
                    If Point(ppx, ppy + 1) <> Kdgrey Then
                        ppy = ppy + 1
                    End If
                Case 9
                    If Point(ppx + 1, ppy + 1) <> Kdgrey Then
                        ppy = ppy + 1: ppx = ppx + 1
                    End If
            End Select
            dmg = Abs(Int((Rnd * 4) - (Rnd * 4)))
            If dmg > 0 Then
                Print "you suffer "; dmg; " points of damage!"
            Else
                Print "."
            End If

        End If
    End If
    checkcrystal = dmg
End Function
Sub coltileat (tn, ktc, xx, yy)
    Dim kc As _Unsigned Long
    _Source tiles&
    _Dest ms
    tx = tilespot(tn, 1): ty = tilespot(tn, 2)
    For px = 0 To 16
        For py = 0 To 15
            kc = Point(tx + px, ty + py)
            If kc <> Kblack Then
                PSet (xx + px, yy + py), ktc
            End If
        Next py
    Next px
    _Source dmap
End Sub
Function getwalltile
    wt = Int(1 + Rnd * 8)
    Select Case wt
        Case 1, 2, 3
            wt = 8
        Case 4, 5
            wt = 15
        Case 6
            wt = 14
        Case 7
            wt = 11
        Case 8
            wt = 12
    End Select
    getwalltile = wt
End Function

Here's the tile set and loading function "DTDtiles.bi"
 
Code: (Select All)
'DeathTestDungeon Tileset
'Tiles are original and modifed versions of a monochrome tileset Distributed for use
'for private and commercial projects with no licensing or credit required
'
'The data and function are made possible due to DAV's BASIMAGE progam available here:
'https://staging.qb64phoenix.com/showthread.php?tid=217
'
Function Loadtileset1& 'smallrogue01.png
    v& = _NewImage(768, 176, 32)
    Dim m As _MEM: m = _MemImage(v&)
    A$ = ""
    A$ = A$ + "haIkJ]][[S\Klloo7WT7B##`0hd7BFG8KebNe?#HKY^hUR5Yd<[mojOm_n_o"
    A$ = A$ + "GGkJGkHfoeoioao?;jJIGodine^fe^fe^fe^fW6kkWTM>e[gm\C5cMP_S_I^"
    A$ = A$ + "OekJFMVXkYL]e[oInFM=VhWQ35oZL=R?Ih_XLBQoHiEE\Ee#UaXQ^ho>`Gig"
    A$ = A$ + "Wf#egC4KE^oG9nXlhdeMFnlFd^O;e?kikbYM`_FOW87^F?>OmCF\MNndDmKg"
    A$ = A$ + "mNIW?JV5Q]bG8>3M_Xm7[eLdg[foDMn\[5aeIa?[_DiGgN=bW>l7;N6OVM=F"
    A$ = A$ + "N6Uo<f_6NeM3oJhEl1J>RQgIb=gJd9g[nNfmgMlI_oTiQK_KRJgU_f9W\KKb"
    A$ = A$ + "mG<HDh[9f9<eiWdGCROmL<e`g\NM7mV:]IVV7iOE=OfLDF>DeG[fQWES\WAQ"
    A$ = A$ + "o?acB?Qf;ZO5aWknIIW^nIiX>?olG4O5?Qfo<=NU[]NO6[:WMhcEoei\\lgd"
    A$ = A$ + "Fenj>ejCcOCT7?mc<LlKWiOF>#Aka>kUmLM7KGJPYhe>hcfem4J;7lIkFIiT"
    A$ = A$ + "_UNjCkg?m=k<H46Vn33NVN\[VZBc?AL[l=kk#4e[[hIdgG[]\lP]7bXQbf1W"
    A$ = A$ + "acXm_Mh?fJVEKZN=WIgMdoWBoYVSImnZHW=[Rbm<mKE^P^Vj^1TnfA?X>?FM"
    A$ = A$ + "FgkeeRlM6?hT78<CaOCc3IJ^Mcm:HHWkRfmYT;IgKZmGMZ1ehc`_<ledhIgo"
    A$ = A$ + "YT3MdU>i?ZoRdb^i[j<c>mO6oc>oin<XXi05=W3nYi]MM^M_obik<lOfmc`c"
    A$ = A$ + "h_Zm;IJf:l^l7K=_C]Yk>^MZOjP_:?I^>K>TYOHV=S`S^?;6Vl>RW#jCVjRA"
    A$ = A$ + "cDMFgkQ>;CnaNMWI54?fYfV`HdM\m?d\c4e3cl?:OVBo=en3gjO7jW9c?WLc"
    A$ = A$ + "MoJD_G=gGkU>hEROWNiCXGjFoAc78NJmJIck?EoTM?nCe[Hf1cNmMgoE[GE>"
    A$ = A$ + ":COmdeKG>:ki4XiXZWaTYKk<?5i;fW1ZPOmn:h[Z]<^XR[HNnM5obLF4ga6O"
    A$ = A$ + "6L\lkDc`IiNfiZZ1F=ZBnUa3IgC=7H`ZdoWfZd9EcVEcE\ggYVHVoEiaCVoA"
    A$ = A$ + "iNdiI^?cggQ6J:MXcmbjE^c<M`kD3I?_H7ljCfoINFRcNeZiW>k^HgU\cnSJ"
    A$ = A$ + "m7QWAWUEk\kBk`oCR_k<#F=Q^NT_A?GJ7J8Do[RGcdC:j?D<ER?c>2DnklKf"
    A$ = A$ + "N>BobXeZ^O7]<Z7`6Od<8:OHl3CMYL?fI2Wi:ELIe_[ON23]o:k<ZmW<MRKn"
    A$ = A$ + "RdIXMA[W[2GdIIeJXhGYGHj1XiEE]hDc>>hAm;5OhX_j6o>kgj`i?]OIZYE]"
    A$ = A$ + "YB^6e;E`F=g6=o`RW]NE^GTOIgc>A>YFoEk_Dio9`SjEIORdLEG?COk`O\e0"
    A$ = A$ + "kIIW;DV_b>?:7ER?Z6HcOUHPha:mD5N474=KRl?;6dNP<OEaEEj4UNFENjN?"
    A$ = A$ + "dL#el13OY<GPd6:aG=GIeO8MA67Fa9:j?G>>23k\MF=`X_[d`El13GE=S`f3"
    A$ = A$ + "#c[\cOOcFEM[^S\kL[Z>?ki=[o>;GZN>Cf<aKdbbGfWMh^SUI7YB_[BKbX?D"
    A$ = A$ + "gc`DK?MoWU;WJoOflbDaLgl4Z6DWa[f1bXIEdC\iX2NDo=3?BgS^>bRR3:?I"
    A$ = A$ + "`_j;V[aVo8NRYGWQ?SKIaF=;`<;GU?El5S>GIVP5o>fm<E^FeS#m?VNDVOM<"
    A$ = A$ + "F=JdW_]io>eOF]i<oYd?WDC>Il[j3:HcjMMWaDbi<]YCNkD7?A_?KFHRL`E7"
    A$ = A$ + "P`G]oi4LXROHfORfma^o5mm?c?TNWUWIW5b>OEnQhc>l7KmSVADWQLW;HZo<"
    A$ = A$ + "nS1?kL<kmZboXlSYFb`QZ[8l<nW53JG#V_ZjeEcOXiLUIg9^7cllTc5AW;3_"
    A$ = A$ + "b\6[Y`]EiT;n<>gIWUZ?DgOaZGDRoZ?ZZ_ehkX7bb1G]JE?I2Mi^a[\g5ic<"
    A$ = A$ + "lMdH:aDmJCP_[]F[C63VMXMjmXccXMVXNIlAWW7ad_Hfk]b3XI_Z_cdkb^O4"
    A$ = A$ + "NGNGI7odlg4j6FMKDmYV?<mOVLH7j?gO[>oEYOI[QMP7YW[`[dg[V?Hn>S^B"
    A$ = A$ + "inIiCd_EejM>GdeWLfW]nH__Zf;[7EQO7e^Sij7G^CIn]bo<Wa]o5a7^Ja^c"
    A$ = A$ + "L^hSh17LMi15\ZJcY_OGCIo0;_k`U[iQBm6=W4mkYi^?i56^;KfWQ[fEnkf_"
    A$ = A$ + "LcY:>8[7n4ma>LDE^FE3XjCmgZmEDnZTOMa[TS[J7D\cfa=5NGmoZ?IR[Clc"
    A$ = A$ + "bOeJ8k\:l7bWXm3MbCfcbV[CHXjCinCb;:nTEo^ShgAo=ancZNDD]_;>HRhQ"
    A$ = A$ + "Z]M5ODOPY?5eWAkNNB]7B3fI7jDj6WNDF^5e7fInaTCk<NX[[\o9R;Ie>[W_"
    A$ = A$ + "B3EQ5M]\h`nm?[CVlV1?C^FMFWh`bIXJ4eKcb;5]:Co[J_c^aGUW:jW\HW=C"
    A$ = A$ + "RbmZl4YADaPfaTi;5=0cNT\jWAGiNOghgenVS?;FVN#To#j<F^9jLMgOX`3M"
    A$ = A$ + "in\l?RORfiT=o>EmWeWDd]W0O4gVmK5Om4c]Me?CPOWe5keV>gLmEe^15l<k"
    A$ = A$ + "mNbJEIWgWG_j<AgCiJIaQmkAe6KNDa=<eZ:oUmY2WYdKHhk<n0YSZhKVJW]O"
    A$ = A$ + "adoH_GEnc4kXJJBlIk<D`h6O7KbmG<j`M5g[=7oS`g]gb<?kFWEc4<e#GNgM"
    A$ = A$ + "nKZj_:WjFC?1N6Madlde^fe^fe^fe^fe^fe^fe^fe^fe^fe^fe^fe^fgTei_"
    A$ = A$ + "oAgof9CogNai_kSjOkY9oKVo=ogNJRofO[L#G^XCoo9j5C[eklg7nJ?_EYcW"
    A$ = A$ + "J6`9W^jVcY7>ion;>IMSnn_ZaDk\ok[j_<?>E?h_^MZgoOjMG:nbiMoLog]g"
    A$ = A$ + "CGo>L_C^k`k<iMgok9kFkklIY[n]jm0gIOOBOn=IMOok9NoMfW]_[h?5?j>k"
    A$ = A$ + "<m\ggZFmcnUC_C5_:?5]GN:l\_3kC]7ViNIiSceEnndhGc_WhiN_=k]F[?MN"
    A$ = A$ + "=aNGgLNBMgD?3b1SkLddcM^aEM?ojNLWWO5iS9eb?E?DAkEaEXW;ZF7IHbnN"
    A$ = A$ + "WWSl]I>?k?Z7EeoZN^_;n^i?[fAInGmnIj>Um?ZiCG=aTj^XJ^jJAlBGl^lj"
    A$ = A$ + "Dhga>h>m1ekilm9ZoYh_^cgOkVK]Qd;EklEeV\jg^c9MlaTHEl1COPAO[V3C"
    A$ = A$ + "_g:jl:moEnHB]C7^#Y^SR7KM`hgW^7R`Z\[Pa7MbmeHlfgiGYADd?M^GWhGe"
    A$ = A$ + "SDg3iL_Yd?[eIfN<4FV?MZ3G]eCYOSd:X[=9Nel5mKfhe=nC`o[imJLZda8<"
    A$ = A$ + "EOo]HZlo^cU9VOIad]OPVcVXN#HAk5N:n_K]jRWI_8bO^m;fn]C]X\c8ZnG_"
    A$ = A$ + "^C]gE?Ydk[Z9fN1Z^jfoDj5^jXeJQQ3HeF<J7F=fdmnZjR9gcd\XLWEO`f[E"
    A$ = A$ + "dOMSOGnS]gZT3Em0T^\J6`IoYSV];n^Fd\o^`cdOZd1IkXch#FmAegW\OT]K"
    A$ = A$ + "=[^#jEU_cdcHkUM`_Nmej\[NT]?dIo3ZVD[Ofio<M3c\P2_hl<2Wh>MnfY>E"
    A$ = A$ + "iOfnPJ\[b1F\^l?[f7eoAjoMD3\mNFo`f7LWMLi0FMGE>D=7S^GWN`:OEamA"
    A$ = A$ + "O?cG:g[;fCSORnf4L7BKaF3>cnMbQek7miDkDD\W8NEkkAGKBl\e;2?Bk`4o"
    A$ = A$ + ":Mgdj0FM?;ok>7a\[eI7Qj^_\I`M>CT5SXLHGL0CoTIVPM6E=GDbi<l\eQJm"
    A$ = A$ + "Gac\e[K\AkIHWmLVIE`bhS\NYR6`A3abK:jGE]NTNa9NZmOd\3c<L7n[:ODj"
    A$ = A$ + "Qk\7XRoJ?[mYfCiN[WSM7adi`jmSnDE;kZmSb[OIKMgU:_Z\kS1ODNhn<QWT"
    A$ = A$ + "oD]:]6cggE=di<^HRZA6]#U_DddIi]ZVSmIlCbM>j#GOd9nMcOE<EggUkjbk"
    A$ = A$ + "8O`DC<Jf^Jg>LPJLIW1EcMfnO6^eIgYV5#hDd]<lbTLMgNje`mMUk]fG#kfH"
    A$ = A$ + "j]>co[iIfNP9fQZ`YMeZ?UFWMW5Z7kRO7eRC_;CWh\7S]^Sh]:>MGjRXWiDm"
    A$ = A$ + "mWZWaf7AWS5?C_EA3inLc\MH^LXKo#Ek`T?Md0>L`4J#E<:iCgJGAGRdK^a>"
    A$ = A$ + "KoTSncE[V]odeW\nA]oG]K:S?MWUWRGGke:nQmnEjV\_o;HEl:3Wg5?[og=n"
    A$ = A$ + "9f16YK#L#dlHeeIkYMeY?m\NEOXZV#LL5NENZZo6Uo>jSZJ6QGikAa4]oOUS"
    A$ = A$ + "k6o8]fC_g=[f[jSMVC#kADfkDYeEc=6>XJn[K^7e;jd3Eh3D=DUCXlUYNj4g"
    A$ = A$ + "ZN5S_jDkIJ?5mGE>[6cYfAX4o:^_K\IeFMe0Ea5Q1a58=AdecbE5>e]7\V7C"
    A$ = A$ + "XWNk6BSQ^GF?<kN_5lCcOXIa<\C\3^knk:o\C\\k[bl7RS[`cdOb>?C^SbQX"
    A$ = A$ + "hc^7EEkDi_^hMnND?Rmk<cRZGgI6<kgIOZD7M<5==SF`Aog9^>eKe<7R;Ljm"
    A$ = A$ + "CPUa?^m[W>oMe0Mi\8Mi4c?MlW;7T5KWNGWI[9VQAeD5OU=;Ga5EjS9ZeYeH"
    A$ = A$ + "C[CIf=k`C<m=ghGY?Id^Ma?E_^JNkckE5[>kPWJ7nJ^Rbm9`F]_:RKAhAmV^"
    A$ = A$ + "mi<=>Z?`<S4=ca4_MY[ImWZUeSHonThAk>Zh^8oGYoIinYk[<n[Z7QVmDfaX"
    A$ = A$ + "4gMX5Mag9f^eTC=_3^caGC4OE\Cc[:Wge7XWAlDJP^eoTJWEn`9oE?Ge^NWM"
    A$ = A$ + "hZiJV6Z:VEj6F=EE_2e7[jg\JQ>aO2l8NE]7VEg:LXj\Dgk7YebnL7Hch_8^"
    A$ = A$ + "5Q7eKjfWAk9#J0fccX3bl=cgcd]EmTE>NZloDhEmCWI;6MF6ocPQI^CA[cTg"
    A$ = A$ + "8^IbHYj7fngKcV>GOjj^Cnkf_f1Waj_^a>2_blo>jo>eDgi]XWgdaGMdP>L7"
    A$ = A$ + "J?i^`NJl\?Gm]VoMd?Ic]EJGGmEFlFoND\ISIfk?Xn^;ZHEh?EMPbNLEM2C^"
    A$ = A$ + "_cgmH]7[lm<=C6VYNNdKfLkMCekMe_XhhT7?MOn4aL7iBgjXck>MjJO:^kTJ"
    A$ = A$ + "QgD>L2=`KZn?e<henKJI_ocYc[OE;km>cn_Q9jmGAm:6l\mI4Ndk0b6oZ_SR"
    A$ = A$ + "?kg[h6fgo_KlIZgX_?=ngREYMN2lILje^fe^fe^fe^fe^fe^fe^fe^fe^fe^"
    A$ = A$ + "fe^F7;k_Ub^abhc?olJo66j_I7j_WbYakF_CWoWRoIm7kioW[]n9Ko[;nE<?"
    A$ = A$ + "=nCWo:GK7h?5o_N^8nO7c_^cYXjOGfdn_;oMaoMSgEOlFboMQ_kl9[oR>gTm"
    A$ = A$ + "[9fAmYOH^?kW<n4M?Vj<kkALFd_c>gDFWIG7=nTingRmDk?Lb[Y`TU3EiFGm"
    A$ = A$ + "`4k;IWIIkOM`[b;C6o9eeMdoWPoShR8Oa`o:c_MiiZj_cLEe\jTn^;omf`cF"
    A$ = A$ + "KXc<emcbWM>oFY9IeoZl?;Vg:NUnX3gYNfe_[^O0a9EkEDZk<\X?[bKDo;Ro"
    A$ = A$ + "DhbenOeIRndEGDaO^HbV]IhK6>7YO>=NWIaXhcPA9oMVOHSKF?]:^IgGYGDQ"
    A$ = A$ + "Y3OOBS]_ifOER?:F:ao]acCgcNJlkZoo6\XM;AOF]3YRG#LWjc3HbOeh7]S="
    A$ = A$ + "Kg\2n>k^IgMb^cFMgQZOE\_9lZcB<JBelGMFFYn[nlY\ehUYcIWMH?CDO:[7"
    A$ = A$ + "^3^YJOAFOSEoVe?ofVoLV7#a[BK4mKglOgmoE\<lQj<2[n?c7IcAIg3EkAJi"
    A$ = A$ + ">l7SfQA?iTo8><coXL5a?\mMVlKRmG:j7Vl1=_=UadoEhCDN[f_Hco<=V[n;"
    A$ = A$ + ":?IdO:j8Vl[:?IjI:gGQOI`c`[>L_RVdUODkO_=lMVeZR7cIE`G]SX[oDSYb"
    A$ = A$ + "W8O4e;R`We_Hn^b^ZM`MZm\8>Pm\[HV\6NC6BW[<oGM66nWMnW]WPjo:L3bW"
    A$ = A$ + "EO?:nXJ0=oe1OGn;kLAgO7i?b7EkPHf?D=GX^C3ao>kRDh?GlInRY>IfoRZM"
    A$ = A$ + "FnDEohFO8mGdeEdO<n\ZNbZ1Vi?VIX\lgmnIW=k<Il?ZgX>oGUG<j<6n=knX"
    A$ = A$ + "?Aal9ROU6UM6VUo#WG]GQVW[V1EZ3UI[>mOTo[df>Oo=H8m2JnFASGaO\kWb"
    A$ = A$ + "^_;oWE;<e<BgSha:L8c5?JfAIV<ZoP`Wao<jU:N7E3:eW3n>i?RODhGekUYc"
    A$ = A$ + "IiEF^0Y3kJ^jOWhTYoL`SZWZNdKdZdIMkMEk`Hh;d>#gj8:>XNJEmkLOdWEi"
    A$ = A$ + "6:^:i?C_UEk7Q;Jncic<l8Mmda_ZOi^gB5?kLRC>X<O`Z[Wf#l_K^[Ze[^^["
    A$ = A$ + "F0Uc<n_J6<KF=[N#jTZM>\gWmkAe2ZocR1I<lg>`GUoZc9:jL6M0kgcR7S>_"
    A$ = A$ + ":oEVC#LbgBncL>Vi?6mE6NF]3R;L`khS>joMHMW;Ie?Am?5N9K^7=CiXoDe_"
    A$ = A$ + ":LMel7Jo6Cn[`oAaWmkXhWEKEhAgCMoc9V_V8f^HkFo_1nkY]Zm5EOR`c`W:"
    A$ = A$ + "cL<hSRIfiDh65mBVF^ROZ``^SH]>E^OFlAGW]GkPYR7VDk[\3^:oEWcZhIDn"
    A$ = A$ + "Rl9R[Ac?:m?5l?AnGam\h[bCdl53_XZ_HZ;5=DFMa\gA9oDecCMn\l6Yobjc"
    A$ = A$ + "8^\B3b\oJmJ\l=CMjXoRbc:l^m_:]53oQboZ[UacIi2KlcVcLWoId?Zj]MIM"
    A$ = A$ + "e7Ma=AmOBnc]N[d]>HMV9ZfGQ`clm\i74f\cQh46^TMoR:oPfWDaOEkgZZo\"
    A$ = A$ + "kQh\\LUmJ<aNgcQXh`foHe:\j;FmIV?I>;C=`Tc\hEl?:^\jOfl_b#Hbdc\i"
    A$ = A$ + "7BO]ciPZM]<LPBLLdOIhAWCIogY\^iCU6<CCFQWQ;cbOT^A9n\J`Zn<C__Bk"
    A$ = A$ + "cFoCLOVL7YENZm5<JIUij:>a9n^eoYi_>eKG>ObL0]CJjN>c\^BoTU7AjU:^"
    A$ = A$ + "PYoQh_\JGmn>OOJ]3RgH>WkmERKDocYVW0?bW:kSAcVIOWMf>S_Ii1eIBF^Z"
    A$ = A$ + "CncL^ZmB:k7Hd_<L8So[b[>jGfi:FlAlH5OEi?VckPWMo9K?PIo6S_V4?bOZ"
    A$ = A$ + "W_Cnc`[Ij6fNbdgGU;Le?kfn\FLgAPVC#HL[og0omdfJoRmc8OhLo8mOF_`E"
    A$ = A$ + "G<1_PZ=fio<OFacZl7cnUXkWigZ[[DOIa?[OSRS3^9l;ciHgU<1n<]IeLHVn"
    A$ = A$ + "#1;c<;JnU5;klCE?MGi?R3Ij=IWG9oImmTl_CmaT?CE_AiIDo;ZGZVoXik\l"
    A$ = A$ + "O:mWknS;n_GlIJkE=CgiDUI[XjS=nEi_b\]JmOJnKWm3D=P>;b7IL737^NV<"
    A$ = A$ + "OTY_F?Kd_c>G6?`bKEeLeL;CLDhn:nQQoRj5<G7e[AJ2VkOJ3EO\l4[nc5O7"
    A$ = A$ + "m7[6V97?E?Rm<CWoEkNbdk<cWELoKSoMh[ZO[doZh>5oO][m=K\k?fMlSbQX"
    A$ = A$ + "c`F7^hD[oCcOCek[^nCeoc^Fek]X4W8=Ef>oX?Ie1<L7kk>EmnG\iI5oQNO3"
    A$ = A$ + "Vg7AmkAn_ZnZf9Dig>G[kIch9Tn=c_\jO5lMVEWHn;C3D=K<9NdN05mKWl_;"
    A$ = A$ + "oaRm]aoCXOZdd:cUXj8cOEjZ^jW\H?1Nfn`mngk[<WZJC5Ogm;OklG7N?jc9"
    A$ = A$ + "l1jc8lEF6FdcIHfoVUWE?7H=okDk>lM5n\WoDY=c>GemIhi:nOR[EU[AmJU["
    A$ = A$ + "=aIAjU:N:kJCQW9OHWOjPWIVUQWEa?Em?Ang=nEhIe_?=o7e?#kn#hG_?;NF"
    A$ = A$ + "n6]KT]oX`OAO>1Nfn`mnofg?C;5=c^;KZh?5>EoLJnk46J73Jg3BcR^Nenk\"
    A$ = A$ + "MQEkWc^>Z?jFo<jV:MdO=mfe^fe^fe^fe^fe^fe^fe^fe^fe^fe^fe^fel\^"
    A$ = A$ + "oM4#hInkDVmgjh=ToM`klgAl=UoGlk3_j\R3ngPn3icKl_ao6oc5O7kOliWO"
    A$ = A$ + "^V3Xla1k^laDHGmQ2?ZPS9oIe;^j^_AK]>IhRM<oniib`c6Gf[_3]#7n3QM2"
    A$ = A$ + "]\J_k]QGEkl4aoRO6lMeo\cNMVOVX6>il;b7gjoFooe[o8oDUkIih:fZle1k"
    A$ = A$ + "jiMmATOLaFICeoLcoZNWZ>=C?iXOcdX<G;C3aFCAjKgI0DmG=3dQoHkY\mB7"
    A$ = A$ + "mWBnSf5DakXlY;omfa[RK:o\khOjlo=P?J7CTf1]71]cQI?TbmD`k6SXJc=o"
    A$ = A$ + "_eo]nc>c>fmPV7Eag=oIfO\6;UnV2oe1KdiMlAWh7Q]jkMWOV>ocj_:J^\n#"
    A$ = A$ + "EoYJ^D1CE\I^?C^b>o<QnIRnODoS1kCQWE;EY?LS?ZFbd?CPgIGZ;o[VoIjn"
    A$ = A$ + "Xk=]nYJ^;kn8OUmKF\^k_kR7YMEf57am:hEg1`PORhg1OEmdMo[jN9ghg1?C"
    A$ = A$ + "m[^cE1?KoWiJ^a_Zn[<Vj7Q7Eo<a_3NVnYJmWUO<k?jPM=GMmAV6b1[[nYJ>"
    A$ = A$ + "aM6TUo#e1BgeYnG_NeN9ec`P[B;YXoI[OG>TAoeEo>ElAhEgOU=Sda78lEo^"
    A$ = A$ + "3NFnKGhO2mWk^_WXo]Cm_cn?eHgAkShS>j65lMRoCUo:gC5?CnWM?fjOWioO"
    A$ = A$ + "Qjo_Xn_:F<kMFo=cn_>HG?_[?blW;fZ_?Ml[fa[^o?[?Sbmej\Z6Rb7ej?kg"
    A$ = A$ + "8]#ElDboZiJ4nYcOVLR]gcXOLd`:j9Unn>lA6o_ClkXoQdJCfoEgoLJm7K?3"
    A$ = A$ + "e;cRYbmDjM\j?5]F4f\mN\i>2OWh?AnS`[N?ElMR?Cm_cho[GoE6CmcP_ClI"
    A$ = A$ + "g1i4OTO#WGU_EaFMFghkZEVRkHdiMN^QJ]hdkEcaZL:b?XcTaI<LIgh7Y?EW"
    A$ = A$ + "oFcCdlOE?;;o#mBWILgk7EoCYaHeP_9l:kHkdoZboYk_AJBVWkhN?GnCI?7S"
    A$ = A$ + "?LbAVIG6mS;nXn3jgM`SZQ\OGU7\hISo^W?L`[DoIhAa?S7MW?bf5hPWYnAh"
    A$ = A$ + "[ROTODZOFl^a7Eo<hcR_ZNY:nZc8\HIkO>aGAO_3^3eobbOT^:CO`b=\gORI"
    A$ = A$ + "W<oDMf^hSh>dLCEoU=oV2_J_5YoI<4NVn`4H[>Ke<4C]Gig9a?al3[_NjnO7"
    A$ = A$ + "MPK\EmSjmRbS:>>B;DQ=SKHjc>hWXoYLOVIX<l\jgM5oo:eo>W1k4OfjOGa_"
    A$ = A$ + "ZnImCFlI`GEoMROT>Cmn[i#fgSl12kJ>c`1\a_RSZheZi[:^3YOcZEVHDY1#"
    A$ = A$ + "HHaSd>8nK2na]gSVm#e?J6\B[Y<Ke1_3og]o7QGig<W]BKPd38Nk9`kh3Vj5"
    A$ = A$ + "YGMjOEc<\mOEm3klGFmGQ]b7CnKghcP=C7iPWE3aPEa7IjoW2OWLoFogjoG]"
    A$ = A$ + "noL?Bd>U\kch[:ocRU1_kmGi56\[WY;gQhCecZXKblOFnSb76MG66DnWE?:i"
    A$ = A$ + "IF^\FgAi0b7CdoAlg>joMSO6nZk[RUYgGe;ElOe>X>hcZS>l_bn:Via9ko:h"
    A$ = A$ + "cjM8=#Uo#JV<mXZnE]n[lMUFRYgYR7aM8<AiSKmO2lgjoFogj_ocPnl<:hI`"
    A$ = A$ + "6QIjhgQoj`MCamEHS>S2o5MV<\EFEmDEG<W]J60Mf\?[^g>koIa?3OFmTU_I"
    A$ = A$ + "m5DnWeWAJ7gHS`bd_HVOD`k6OVi?7ngYOGYoDWORb[:]_ZnQ]nIcoZiEF]J5"
    A$ = A$ + "NVl?SC#k>j<kFaG\J6VN?;7nF`O[oKmO[ONodQob`g1kDa_K]kR_kcObZoYN"
    A$ = A$ + "F9jLMa_VKE?33Uo<hIR_bmF_>ZgXdkDWEZf;`dKHZOTnW]nL`b^gYJF8;G#W"
    A$ = A$ + "Y;n<^_RGI>GElcVGAm?dlc>`GYK[bo9Vo?ImcRUEKS`GY]bd>EcWEnA=7>9N"
    A$ = A$ + "VjFI6EUg>=n\n_CmWQgYomDhIWOEiO7mk9`oiIFa4mKGlXMJXHg=ocROfmAH"
    A$ = A$ + "kR_J^;C7[f[Hn=RWc>GfeZj;Xn?ZgVamIl8SNR=oAj_ZhWQG=oEW5#W?3[S?"
    A$ = A$ + "H`c`3:e2B3cdgLbG7l8^d9oAjKVHFYAAkojZOj6oYco8[2Cgjo9eR<i#gj7Q"
    A$ = A$ + "Gii<ghOSo=n?Glc^oKJ782g9R_;noiN[OZNV^a_ci#JEE]<K>]jO4nZh[VGC"
    A$ = A$ + "ZOjZ_jbOMcOEl:m0UJa]gbXOW2o>fmf=oOjn?C]Tmk_Qlg1Od^mZ[iRo=DoC"
    A$ = A$ + "nl[Kl_ao6oiS_kNT>hW4kC7o_IlCMV_MCM^Ti\\hDj_GkJGkJGkJGkJGkJGk"
    A$ = A$ + "JGkJGkJGkJGkJGkJGkJkfVh_;AGOd1ogNn_[niWoK_i=UOo5<eoM?]3OXP?k"
    A$ = A$ + "Og1O;h?=oe]?_kHLRHm6bo_mjmJjVcon=ne`oYibQ^nhdaodh?Mm[P=j<Za>"
    A$ = A$ + "kOgJ<n8kLZhoFcoYjQEHclA4^e?_og?hIoeOoOUiW>hAen4kPW:f<cKC[3?A"
    A$ = A$ + "\N3ioC>kPbe_=l_QL#5?ccNIf3m]S_jIo\_7QS?>IlcN_5eLPimOHZOE\CkS"
    A$ = A$ + "\J7YkL`[boEi[C>l]WoMkQ\j2fJ_Cn[XcNchGi2Ene]_?Y?jXoOBlIkVObjO"
    A$ = A$ + "B3]3YJWNgIHUNDT6g=FIGCi\8lZLE7MCU^TQGbNV`K6oK87LaSVe#k2nfa7Y"
    A$ = A$ + "K[fg`ZmElaYROf>2WL8J7CdeV6kdnPEc\637lXIG5M[;N6=QBn[h35MYB\Ek"
    A$ = A$ + "Q^hIeEZlWjINChIn>:>:c>k`7:hIV1E`G]oZ:?SlWbNKGlEecDc7[n;RSEgC"
    A$ = A$ + "4iCFm#WjZJVPIgC47`PGIOXk\Sj^g:<:kP?9ng#>hR7YE#cIOkhIf5`dkkjS"
    A$ = A$ + "^HMmAVN#97#m3ViW^HW<nZeNTVcYg?Q6dYoG=WX`MMlA7lMVon<^CYoSZSXI"
    A$ = A$ + "=enkgdmAo6i7WIoYlA7moDhGi<Tf[3nekYPo9ho:^:kgAhcZEFlEaB1?K>];"
    A$ = A$ + "l:o6M6eICfIU:SA[mDhO3i#7l>HoU`SdnXk]jCGOhP=2W[?jPoK^nWZo?E\M"
    A$ = A$ + "mA7>lK>oWXo_;lAkZZlmJ_Hmkobh?]n[K><YnGmiFM`7YAMR_;oa6o\c_jg:"
    A$ = A$ + "lIHESoTiOfL2K=hP?;oclCdmV^n[fGDY1?=ng#>d1?2k_>nZME:W[BGh475\"
    A$ = A$ + "MmA7>hK_nchR8M62W;n9lA7lo2io4eo4l7c>8TN^jk\JfMRWY?`Lm:OX\_>:"
    A$ = A$ + "oHmAEnZV3CPoYWOZ>CWM0IeOF>PVU#eP;n\JLWh[ViDl[;nMUo^hcbAFnO7h"
    A$ = A$ + "WBom4i#7l8\ojhSV5Rd[IHbdg\nH=7Ea>IlMi0FlELnYZOVjAil>hW`7M`cR"
    A$ = A$ + "UE3hhSW2?C^?5NEMW;fXJOGhImGWJO]?c`oE?7Xb7AiZK>d]6>1nZN\BlGaU"
    A$ = A$ + "QWMF;;foE`oDgGMf9jlM`_3CAcRla4iag6NUWmm[QOmi1<jEdc?[lAfldC5o"
    A$ = A$ + "W2ojeEZo<\C4o8oTQUEgiPOmLZnX;N5\Em0GOldhcd?CQWI>QY7hPKGhMh?5"
    A$ = A$ + "nI5Gd_M``>cg=7nFaW]oD9nAmNfIXXH5QM7hSb_MQ?cO?5ng8o?QE5[X[cj_"
    A$ = A$ + "^id4eeDlRK]kT3OSh[VQ#JRXcXhSeMSW<nk6OD?Q]ncjWMSOgJ7]36eoFahZ"
    A$ = A$ + "1L`[ToEcDMmaCQWY7<A?\bZ`7U;ILn_6n\NQkIEmaK7OU6Z3Nd>5VhgY7b\C"
    A$ = A$ + "2UWMaWEW<L5;NFMj^`GUo<lg^`ga#mGWMHMca:n#e?^HAiDF<DVKDk9<e2[V"
    A$ = A$ + "_SVP9VEiO57ZjS>HWb7?5ne?kRMJO\n93^ZcbRO2Od1?3FVm\MlaCPG]g_J\"
    A$ = A$ + "hSlA5gUi?fco[P7]OS9V^nX;n9Z1diDgS`P?BO_Sh[boIcOXHjRW1KE]Q`c^"
    A$ = A$ + "oHGhEj]:aN:l^FTF^jgMVoLcY\kYjCfMPZa]C?2YIAcO\Jf:Oe9nAjg<>QIf"
    A$ = A$ + "aa7Am=WhkjSY`SZo<O`DoCTo\kaZfQ`<gYRO2Od1?;FdLL7OlDhI<Wm78OXR"
    A$ = A$ + "=CKo6ac<?SlGFoUI^MUWkhSg:nX?W2?3oQROgNHVoEdO^hIdo<i?Sng=n?An"
    A$ = A$ + "GaO>m1El_5[;oo?h#?WJ2oQ>WccOf9_6U?Xm3XWm_NVYbAfWOG]?EmM0jPee"
    A$ = A$ + "7McO5l<LY;f>nHESi6OGlAc\>io>iOfIP^c#k4OenU<]`je#hSbQZcN]ncOW"
    A$ = A$ + "NnIghG_nThSn]JlMkQ<ebmno^go]J<?cQe?CDk\i3knbO5CM7UJoRQ7EgY=M"
    A$ = A$ + "lkjS^iogNm?IlMagMWiDkLoFco>hgQn?kmO^fNdOCjS_=mk4h?9oQVC^gogn"
    A$ = A$ + "nojFgJW5?J7`_Z=acJIe_ElNGOhR][?jVoOkeoe^fe^fe^fe^fKb^_cbe^fe"
    A$ = A$ + "^fcICno;Qk^koVf]gO][mlFdo_PEW3_k__fenkJkLgQbO33Fl[G[b7\ecDom"
    A$ = A$ + ":WlmWElGWH[fcf1n?co^J`>mPgDoO:KW?CO7m_WTo#k>HfOYFoEaBi_kKfeL"
    A$ = A$ + "fKXbQIhRfQ]Sh_[n_B?GQ7fEmg1OfIkbSkVoWf>I\O3ioKJok9doW<ooViO6"
    A$ = A$ + "\EnR=fE??YK>l6d_OjW\[55?DnSb7D_Q=gMa_;mWROL`]f[b`[h[M]o`97fY"
    A$ = A$ + "n?SSZh_ZJZ3oc^kHRMHEnCa7^cc>c?EhHacD;kH7`^ZO6]gjIVVoIjg<clMl"
    A$ = A$ + "?Z>jbm:mAG;:>k>Vk\6Lh]CPWI6JmLIJc^cN\G_:7D_gYio:ND=g[`Rl7C\S"
    A$ = A$ + "V?cRAF>`Z7Mfi\Kn?R?ZR[bL#Gmk4jOGS]nIdNIlO5f^k_DV1jXoDen>c0^m"
    A$ = A$ + "?6nKgiQB^^;OYX1#cL:m`WHnW9OI_>C=kPE=n\ef>hoYfo_^S`IgA6Oh^ci9"
    A$ = A$ + "g5MRHbV;CD7:m<Wm_^hc>Cee#k<E^W2NG>da7>a_CoO2l<HAm06lAkZHm1ZN"
    A$ = A$ + "VPobd_C`QInZklKf<PB=`<O];3]o6]k8R[ZVWALGfn[9VQjXoZVGHbOVi7Em"
    A$ = A$ + "_Jlg5ocVkCFoEnWa7\i2Robjc>coEhIjQZg[[n;S_Hd>8MV;oi4OfJLmlEo6"
    A$ = A$ + "MfZHD]C]R3Ea?5_dEkUEoM`>mnO7NPM_93n8mTJoWIWYj>\:=Vk^W>kPjXoj"
    A$ = A$ + "JXniDJ1Gl[WAMoUZ>`IoJWig:l\cGIi_kN>UWOiR_SEaG\kOD<T^IZM0khi7"
    A$ = A$ + "AlCgm_MeoC]ofEOZb_C[KMe0EhEk5:c=M`Wi[^a?3WcL7kmVHgj>`[`OXm3>"
    A$ = A$ + "iAenS\cFe7[>kDmO6oiDkZJg9laCVoXMd>mOD^Qdn<JiZJX:W[lAEO#e7ZHW"
    A$ = A$ + "0OT6HB\\J9dcebn=b7Eed4cO:J>7l<lGT6N2>Win<a#UgIj3IW1=76Q;jl:j"
    A$ = A$ + "jZLIRIX^j?d<AegIgCkDc:OWUkDgOS`Z>;a4OWI>El:m=d<13NV[iRGYGZRA"
    A$ = A$ + "mN\jCeiV>hMh_M^oJEGUMFDoSiI0Mh?T6jDkODebCll3WLgAoPZIfMbIkZRf"
    A$ = A$ + "YEeWIe]ELPknc>jW\H[T3MVOHafMf=[oajSZhWYIIj3?5NVn#4NUn6:NZk4g"
    A$ = A$ + "9nZlVMgAT6QIWB6_GiCeJeUCcdBAi?[VEIGTb^[9h_^g_[N]Cl?mldCco<c?"
    A$ = A$ + "AcOk\oSfgQf5nDi7;oj`O:j<VnKdWIkND=fI0eIS>knDcID=h4OgnkYd_\mF"
    A$ = A$ + "DOAIn>B3fAk_jOUkaf_E[?E=H7l:HIk_IHAmo^k?Zhm^eo>egMd=8OFQidhI"
    A$ = A$ + "W9Ii_>Vk\GV?LR;S^HmL:jCVjFmnkRoHab>ceY6DjMXh?9n9jOZj7D=4i?eh"
    A$ = A$ + "SlWR^[2_Kn]KnEQoHe7\c#EmGUkYb1Ei7kIjPCAgD57TNf9fEhkXoWHnic[Q"
    A$ = A$ + "j]AW?jgIa\[>k]aOIhI^7RcI>K7\ZhW`7XcFYGHl9Sn[SnVE;ZXgEV;RbgCR"
    A$ = A$ + "WiL<hVbHWIk63fhbV3M`gMoeCcOIL9[^R]WXL65o[^c4Q7]_2e;HacDkAk3H"
    A$ = A$ + "fo>=n8^CI>X;oY<od]nAi3kLDF\AnJmnAHVH?4CM4=[<57Xbk:mO6m7BOcdo"
    A$ = A$ + "AhAiLF\Dm?jgEa?[V#c>EhWHnMRiOe[=AoS5k>`g=oof`S<ElEjj<]CDmL:l"
    A$ = A$ + "XI16<CJCfo#m\XjRAoa`O:ioJ_93_R_NJmOTFTMoc4lGU?HjiMaWeSHjOIe<"
    A$ = A$ + "[n[KlGkMAhZjMMd_Ii;3G<elcTlWR>EY6j<kj<3iDOEj9fHd9oI]ZJSInKWh"
    A$ = A$ + "Sl1j\Ah#G;KnSESQjeIgS1OD^Z637lCeoG[c:l:HW0?CoEe7XMGEmnW4_RnV"
    A$ = A$ + "5?BKP>gYacFoZlX[mdaMRmOEgWmlIJl<]=COVYO?1oY47dl[3g[6Gd>E7l<?"
    A$ = A$ + "OQY>AjW8OXZOHZc^koIS_CmRR_:o?1oEaK<lHgm^8N]:nIe\[fIRJWiN[g_:"
    A$ = A$ + "?b>kdj7FMjDhSjAEJX:n]b78n3QUEoYTkk0_CoKRn;;FfIHeJ[S?HfOXFSk0"
    A$ = A$ + "?[YP?ZgTYmZ`L:l<e_;?jHImGgnWj\#57jXMHWMDfOQlG7ncYg?ilg4J?em7"
    A$ = A$ + "CR_C<MaGMnXOSR_bmbRO57jfoMjMWToF_VK][To8M3c>a^jOeJ_Z^AL1;?Ql"
    A$ = A$ + "ADnGeCch#TnMJl^n_jnEmDVk[ZSW8nCRG]oa<;FQA1;BSk6kYm13G];l?M>4"
    A$ = A$ + "YCbdNEj_CQo=ICXoj6OdN;d<8kN_:lIoF1[S?^V_^1eoDfUDekDN6WKlEe_^"
    A$ = A$ + "a?ZfLdo\?on9jOAndA;Ee_Ec1eh5ekIi?V?IeM\j`^hkZo[hXW2o4koW8okb"
    A$ = A$ + "oWRo>9ocR5=od]gge7Aj05LCPoDa>J7Wcc>>5ngPeMn=Zo=mn?gWQYTgZh[>"
    A$ = A$ + "WZ?H_nDHOCnHJl>_o02OUoV8n<GCE3c6?gIWYa?9oY`QImKGlMN>VJ_occWm"
    A$ = A$ + "YC?D9nCP_3_UaoCnl7eLnYROE?hYRoYaO]o^FgioCSoJGkJGkJGK:knLW[M]"
    A$ = A$ + "[M][M][M][M][M][M]mHMnkObh_ZcTMNWo6VgooFoKK:o]QAWEiOS4CTcEgO"
    A$ = A$ + "bofeMok#ORoniW>god?ZJQ^hO3fgLoo=ROgmo_=mEF^kF7CGo^_g1;FUg1B]"
    A$ = A$ + ">kTkCf;o6a_jW_iMhMZm\g5OJOGaiIog0X4Sg`o=0WFgl;[OSZ]\j]B7T][M"
    A$ = A$ + ":=?[?Id^<hI_>:OIRi>`[<of=gj6oYaO:SUKL__Rn[;ooTj_MdoEO__ZgQF]"
    A$ = A$ + "_ndh[Nn>[_LaYZSVb7^cJZ?;gMF`1gZ>Ge7[eV2NfgEdEohPmc?Obg1[kc?c"
    A$ = A$ + "`c^73Q[b?>aV=oEdbIncYGPZI5Od9fMf5iVcMSaj\CfLIdiH[o<MIWNFE^=="
    A$ = A$ + "gbZELel>j>Wm6M`SfK<A_LZNc>io8=_RfK2nk4mogTnM:MTZng5kYaGMNFOi"
    A$ = A$ + "RK7J84>fk]NOflQ9nkH60U_<imjWZmOT6XR?L`>Y?jJ\iX3>7MGF]c>7kP9B"
    A$ = A$ + "oTeGDhdg`N4EOT=7YX=jZ5W#g?i^GEOdU3DhOUi7fHj`SXiWg<n^a^ZGhf_E"
    A$ = A$ + "cUXcP`QR1cNdgRm=[oVD36mYbIMeL?=n:NReG^hDk1Xn#WlU1;jN:nPYWX\3"
    A$ = A$ + "Lm<^n`1ODmjP_RSDV1OJ[KLIkMIL8jl:m1G<\mM6MHdIEda8OhdKDckXHcZe"
    A$ = A$ + "MW3RROGm9Km?e>OWN<K_WU_S`af_blQZV_[NORiUMTk8Oad3HeO^Jb>clEhE"
    A$ = A$ + "[3WIY9`o]ZoV8nALg^ONCFmn4hAkjHlU;>eN8c^G6<Ii;k^[<O^SmO\caIkk"
    A$ = A$ + "DmaCS?2CWHkjS>k[Hd1<jFF]]S?Fe8EJ>6]EU?AjOFne]WDe;L`7Y?Id4ZkT"
    A$ = A$ + "RdZ\e`Zn7eCIk9IcUkP[EiiZcEamMWeHd:ImbCXkEk1AikDi^blSS>XZOk<k"
    A$ = A$ + "ZT3CQ_c\DGlWDo5iS>HMViRl1:WF_VC\?5Nd\6k>C7L:jGfJQ1;:Oc`RbQYm"
    A$ = A$ + "QJ?8J7XCOlYac>gaZ1k4OfnDE=[XQEg?EEG[ibjgIdKEklHVWjZoEVUL`[XK"
    A$ = A$ + "Mc15lEgGA35eCHcETOAi#gNEV?D`eA3a>SDYOIbGfHl]MOenl>b_Zn>K^EYI"
    A$ = A$ + "f=n<=fj^0FlIkBNSjWgdmIfU`ZYEd<W4OTFCQ7W#S=ac#Hm5[>#17b7\mZ\I"
    A$ = A$ + "F6^0QSYoL2l[lCWHg=nCZeHec<Jm:m4B_Vm9SOAW;Z_[>3E5GVnT2NgL_KmG"
    A$ = A$ + "5OD_3aQZo6a9<e2b?ZmOUHU5gYhOWlPIFEI72cmj\KHZhGYIG_V;OiXoD_OW"
    A$ = A$ + "ng>jo:JaY_Ogh?Qn]J^NJl\LA56DNPVQf1NWjGIObDHgUnOGi[Rn;jj<lOT6"
    A$ = A$ + "V5W[?>5NTNF=f>n8klAJ25]K5f:MR[>EM6bIn2aeEaTeo\lBGl[iE6gDeoEd"
    A$ = A$ + "1\L;ZGQdn:aWU;[VoDlAU6PQGVVoAi=J6V9?ZfoDYa#j?FNT5CF_1YoIaRjm"
    A$ = A$ + ">eoDlWkmjRWU3I_?ZoSjQXIP>aW]nbdT:moXi?dl[cebh^^nhYac>7idc[jQ"
    A$ = A$ + "?]ncY>ZfmTM]ZMNEm?Wk=Q?Zd<k4?ZoZN_>n8KoAF_<k<:cA>aP=7HVWjP?Z"
    A$ = A$ + "_7e;#kS#LGeLD7lEcZ:jI5nZC^GeoIdSXi6WJPYVFcaY`?1o[FG>j0fHU=OR"
    A$ = A$ + "`4aMIg_:V<c8Zj7D]`XOEacL?F=WcL<jjMh#6l:eOD?=;Wk4OFlM_?B?hd3#"
    A$ = A$ + "L5Jf<K6SEK`R?KW3J6G=7Ika\LhdjoYcEd\C5WWmk<n7I<HAG3iSCRg1k>i`"
    A$ = A$ + "X?cdOIj26m<K^cRQ9o[hLUN#D<IVOHd^ZhS`Pd>>j5Vn\KLAkFLbSM<cXV;E"
    A$ = A$ + "ePZVNZn7RkDZIWc`67VI?7lM\Yh_Yc7eLPY6j\7P]oS`Sjo[W9jgEi>Cmi6O"
    A$ = A$ + "fl7a]k#oSj1Ih[`UUk<kSD`7ag^a7=?i`gMh#Gm_SV#5;ROSlUb<FV?I[5EO"
    A$ = A$ + "L:lElFVNVUkDmAVV;CG4icX_[>kGIIHRj3ELEdIAaTA?[Lo:^_Z6Ih>GlIjF"
    A$ = A$ + "T^CE_QjiIHHbS\[YbO<e0KoWeGXI?6mS:ocXm[lE6G[\gQY>ZZMGlMdakRoL"
    A$ = A$ + "jS:jbgTa>_g]ocbQZc\EJ<7m;BK\;m?cN9fMGEiNe<a^`S^6b?Em1UHV]CHb"
    A$ = A$ + "n?K?A5;;GZFO8MVbnQ>nhdhG?KecAfQ?#JJWLa97Z<466oDQUIoY:g<EmgY_"
    A$ = A$ + "[dkAJQXciRWYW[`1AkJDhMfjcI>BY7jf7V:^<nEYGj`MZioYaoFh?gi64nM\"
    A$ = A$ + "k>c7Io^[Y^;cIn_KnMbi7G=[2FgmH>hShDWjX:^Mci9kOMf1Q`FQ[ROE[m>k"
    A$ = A$ + "Pbb96O4]gi9`7mk>a6eGHkAMgii^3c1[KLn4;R7VnIA<ieCQO]nIVkW2OfIE"
    A$ = A$ + "O>4C^XZQLNn?Km<9n^m_\cYf3ZfM=E>lFa?5om9?b6o<NgI?jg:ocPWI6BmN"
    A$ = A$ + "OCe_S?LgOoieHePk0?;7hl>B\leKBoX`A^?7g=oMRkDnXRWf9n^lNF\klLh["
    A$ = A$ + "M=5KRgolJGnoJGkJGkJGkJO7fmm;^fe^fe^fe^fe^fenN]YnK6OboVOMngO#"
    A$ = A$ + "5^CoO[cC6oMlg>j9bo>iLWJ6YKHdaWj_C7C\[^O7lX[[hk?okOTmg4UY_?A?"
    A$ = A$ + "hngOUWWVj\Zk\W8fCo_?SYhZC`ok:?NZIW>okV83k4n0MFWjk4j7Ucg=?SnK"
    A$ = A$ + "Q?=FD?7e??=n^jo8NRe7Igc=7LacR[SNJ:k9R=ZnM`bj3WMVIja>k?ZjeEGS"
    A$ = A$ + "A__cl^K]b<[6=_iRWYOoimjbm<i_;7RfWUUoWdLg?>MlkLNd>ZZk[6KV[[4?"
    A$ = A$ + "VM\Ac;CE3[Jc:cYOYZ5L^WBNa\WYZnAnMWn#]WbXE#J?VcVYAZ^NUoSdJ\k?"
    A$ = A$ + "c>?cc?HaUEk:fK1?[6TU_ElQJ=a>?k<kaPCA3Z4GeIGUn7J>^KoOBnCAgXP_"
    A$ = A$ + "Kn7E3>aUijMd>>6K=[>[f1OGO?M<Hh`?meKX_ZTgXi:dIMhZE>BE_ZT;Eg_C"
    A$ = A$ + "^k`=XjW9o[n]:omi_cl5cIV#;RdO<ggm<EcZ8OSVkIZQec7mm:]AdISlIVN:"
    A$ = A$ + ";NEG7E7:kl#iHfmZdYElCF\I`EaOZjXMP_Bo`<SDE_EHDmAfmDb1TOI[1FL<"
    A$ = A$ + "LQZfW5;[nWA[D=kPV]L=UN1ZnDib9R1[N<c7\cO>im4FeN4Vlb1O7=k>cOG>"
    A$ = A$ + "[CnOBcMngU_#l7bHj1k6k9RO6o=5o_NFVceAo<emGci\M1kZoEi?Vc[P7aA:"
    A$ = A$ + "JG5OXP=[GhVkC?7fM6LjiGVI]Z[eAoE=g`>oda7M`SdKZaG]fAnJJ\XI8VH?"
    A$ = A$ + "Q?Ncio:n<=_2^eI>WhFU;^i=C]Ph]ZHG=C<1NfcjbMMcOFMGUOjf?gY5YaSd"
    A$ = A$ + "jEcc:eDeiSd5\LOGlIJ7fHOZlWA[SdoImjZnNF>dm<Mk1EL23_W5Ofcj`oAm"
    A$ = A$ + "jXcRjM^mm8oG];3Q=[Oo6goeeZjW:mj^hEd?IJJVm?Am_\mD\nX3n\cXPGeW"
    A$ = A$ + "IjP8^WI7V2f:ng5o_#n[>SFE7XkcV3Mgoi^_<RkDmC4N5oXP?[OkDkk8oAjS"
    A$ = A$ + "\LgYGgYVMhXXOSVmSddZ6K?CA;D=[a<K[V_Ch3VJVU;#cG<a7aOEc58m3:?Z"
    A$ = A$ + "h#VNh4m0g[YVK:i<K=Ti?VIPXcVM=VJC]o[`3<LLE>`fOHbMD?5MFeNodhSd"
    A$ = A$ + ">8]EemMlA7lXjQ1oDeFEN5M6E\k0OglWYW\kl_bDgK`L>VlXJFE9_M[3D?B9"
    A$ = A$ + "gISM7l:HHdc>nRQ[MiP:OTUWEk\WFO_Z[Gc3F=OFNc`K[hHZoY`G=_fYWcZm"
    A$ = A$ + "IcO6o`>W\fW[V7b>?K=XhKDocI?R:7De;AhAi6S^Am<XLEao>cAMaSd2:mNV"
    A$ = A$ + "iaY`RViImYRnQ9FXncdjoXI=5>lDhIZme_Sd]:gW5KFlkR_KncXIAaOJl\c4"
    A$ = A$ + "^H[^N5FD^`^g0=W[D_IagQ?Mac\KRAof9nEhk`aXlO=gZ>?Jf?KFY2GVOZdR"
    A$ = A$ + "\jGei#6]OE_P5OFmc\o4Y9FeBZn#]nAiZb>3Vngdmo\L]JVDI74C^SbKVm7E"
    A$ = A$ + "c#IW;jj8^_K=Ph=6m9[fEinEl8K>>A?<CgUQEEkDYEHV_AhId?Ie0KlAk?Dm"
    A$ = A$ + "a9agEgoIlcd4XcbPmcJLBlMbO5MFDlkRoKbDVc[j58oh43VlKWgWmNIJ8TV]"
    A$ = A$ + ":6XMS<l;Jg#EnGUSAke#c_AHAi8C>[PcECjRGYgc\?[jgIa?;F\nH:nC=gI_"
    A$ = A$ + "?[?RfScDgEjMfIWZNMU?jXODeX\JHT>2am\gCASahS\JAEodQ3LZ1fHSd>\n"
    A$ = A$ + "^Zgdi\^e0bOAWE=W#akDhE`Qh?TiR]K\AjCWlOMfVIfLBl:c_ZLTR?HaYjSX"
    A$ = A$ + "[kD7:HHe1CSgEkZL6eHPnmWmdYd^[n<CC4U3Xh]KmCF<Hi8GlELGfe#mHVN?"
    A$ = A$ + "bW<a;[6cboMaoIi^kNW\J0UkXNAU6X:oAn0]cUQ7HRm^a[bKAhSjUMe?ZHE^"
    A$ = A$ + "7JfRi<8oSVWIe?\kK#l:[VQYG`h_<=PB>YXcNBl:hf1oaRM7hkToOZ]GoTU["
    A$ = A$ + "jP_JnHBn?:?DS]Z?RdKZLRZaD[k4OGOFMF7l<J0dn1E>Y:f[c9k\?hTcAh#c"
    A$ = A$ + "Ok2_blO5_RVOcfQYLV>io4hEV?Dd\\L<:gEeb^JoYSoDHO:lEWea?^iOVFBE"
    A$ = A$ + "SZXo[R=JffaN;hIV?Gi5UNPS?DaSnM5NfJGAcYLO5\k0OWlOUgDSOGl>fdnC"
    A$ = A$ + "9^ZabINCI^OjL=2_bnGDNd9oEfi4]g?3OeeEcOUNm4nJ:=0jIB8ONJlIhHOF"
    A$ = A$ + "ETF9b7InDI>OGlG5?PdEXJGM6Xc^[XJE5_KLAk9HdN^gORl_Z7XPEij:JPMg"
    A$ = A$ + "3LdOEWWMNhThEdF\k?DmaDcH>hW#OgQoj6oCVo>kHW4oZODemCP_K\Ila4jN"
    A$ = A$ + "ES9_EdD^L0C\jF3^eHfmD>[SFP=GMe;[m=FN>[6#JPCS_RoMi?eiWO1n3]SE"
    A$ = A$ + "AgajgY<D^kd7ElaDg_ZoRb]9>SCo=jnEJ#7l<nhcmVAHg]6l=HIj75<ZnX;n"
    A$ = A$ + "9Z1FLXmWEn8JfQ5Ke_kP_CnG=Sa4o^h[lCVUegMag=f8O\NO7O`V7>6JghTa"
    A$ = A$ + "L7kQIlYBLIWSV6K4Ok`mIchoE`o96eIVM?[][j_BcXXWL_gDhkbI<?OH7nX["
    A$ = A$ + "oGkAILG5N4?S>SZ>c1?Z6DWCW<okVK^nN:mie^fe^fe^feng=VWOodalJGkJ"
    A$ = A$ + "GkJGkJGkJGkJGkJGkJGkGa>mOCe9[SCW3Wfjd3OJ=`YdLWF[oFWgjT;<o=^g"
    A$ = A$ + "M><ElOBmoKaW_E=YCnOjLiYijZo]Yl4h?Mmg97>]FhKR3kn_a\KOmmI[j8Uo"
    A$ = A$ + "M>=]nK2Om]fkWZfMmcC_?iTkoO3aN7mooa??9^E\?ekNGm_EcCaQ?=OUaOZn"
    A$ = A$ + "<jO[^WP_j\kj9jOI?kS=_ge\ojk_kfoHakn\R8<MmcYNFG7OdmmWbd#^j7el"
    A$ = A$ + "fmn?Um4k_?mom[C`kMfUUQO2>mYiQCK^k]WRon4gC`QIjVWZgeEg?A_NJN_k"
    A$ = A$ + "cbZn]Bm<A?a]VkfojlnC:_3hDm]YbMV[]C[k<#ggoeUWD>Cfkl>QnMRgWT1O"
    A$ = A$ + "eNCD<AHMWODi]8>gimMD^7C^bbO8>HW?7KRj?C?<En]Sj^Z6ObgMXZVMOfId"
    A$ = A$ + "kP\cWo=]FXk^?7^K:\[m_>nHRJoYh_<]gCfcWZfEa6=[eMgAgnOe_IaVmME>"
    A$ = A$ + "YCo[;7jVo\JPZWmOZM8C5g9lcDhIOGZ9VKIdP8\Mf3Vig>jV8lXL75g9a[L?"
    A$ = A$ + "6]V2>D>``OMZ_ZWODaUEj\8lZc<:j?eN_RFf9^:JW>hgUi\k8BcjD;Ca3^ko"
    A$ = A$ + "Rda>LP;Fgh>1n9bOdN=eNPCMWmI5f8]GGng]FLNnC6gg9nMdPC5k>JQ>e#G>"
    A$ = A$ + "\jg<a6Q3M_C]3IRWKeQkcdA^hINg37>8CWbDkIkIR`bjS8oDa18lXLX:F8^?"
    A$ = A$ + "S_bn=C\I^g>koEeOdn46lAl1K=R>C5?Ge?ZVgLaXFo:mCFncMfA]g?]E=3<Q"
    A$ = A$ + "?MlSK_;[om4HchBWJfUckZGjVoMjKIj6gn_S6DMg?37lDa?:^^jQ^kLVHoa4"
    A$ = A$ + "mn^a^COX3G<9okZQjfk>U=an_>l5;7^N^XN6kk>4Q?C3PR1BokP?SWI]:lIm"
    A$ = A$ + ">ehcL?Fm2S>:SWSR=37TYWLOfSjlBV6QUoD`[X;EZ9TV>jk<jFUI4VNoDFDN"
    A$ = A$ + "EUg:lWR>R=ODagQoLd<Zc>8MWB\EaWae^i?k<?3Ok\;:[GdI7XClkhS9SKFO"
    A$ = A$ + "FAChd3W0OWM7^j_elg]oeQCHggPN6WS6HRWg<YnaM7Bghkf_Dil\N8ZGD]S;"
    A$ = A$ + "K?#U^>;6EkCjPG]?QVY#kK[b_\n6c^4fjGA_Qn=:7c^F4ocZSHb3T61EoZhc"
    A$ = A$ + "dg8m^R>3egEd_C[oWbDgM<1oYFW^a_3?kdSMSW3fXld5oZ>`5[3_Uag\k?#j"
    A$ = A$ + "?GlMhS>i_CL[hm>lW[FjDhkXoVFohDG>jT?aE=7bn\_>mPCfokdgk4oZWIX`"
    A$ = A$ + "iInYjIJXWMWi7fcDEW8]CF<Z^?Z6ZjEXHEYG#lOeLMD<EgS[FkIl>jCDmWE3"
    A$ = A$ + "El#G>`5OGo[XWHl9keVZgkFWEeMeN1T?ERY:NfIX^aGUkR`kFgMbo>aN]?g9"
    A$ = A$ + "^Mc3gnAGlIe^2Fd>fMZoZZm>eOWLhK7oDlWR6^CnG5GVMgMfmm6jOMmAWmn["
    A$ = A$ + "hEhmEnWIWL4^XNNVOHOOSZ[GU7Ai=cneZHUYIIj?XMcE?7KGhEcAfhGY5jXi"
    A$ = A$ + "[b?Dncb1ZiGU>6Y]IdQ8^_Jn2EoXIOd>PWTk#a#A7aVoCNOVhc^?93[K^d9^"
    A$ = A$ + "AjXW\fGSk4lWC>e9oW#ode7MeOW<g_h?go_;#aEIni]bOO[hEjk>?k?KoO4f"
    A$ = A$ + "Zm[^k^AhA_oEW[]NM4oan^#XHRR?cmDd1>jXZnnTL8:G[Z96=D4N6]8BgUaM"
    A$ = A$ + "IiD6?f=gAj35=#T_#lU:o5QQEOZ`oW0?S>1Q_KN[jW>iLEOg9nMhP>e`DL`9"
    A$ = A$ + "SoTJXW^n_hmO7lM_oTECmVi__1l[l]cNd\N6cc`MOf]Kn>1nXJeiLAe9ckNE"
    A$ = A$ + "i3F\E?oCmISImB6mijibndYWbbMIa1a1MageZV;Z>73oa6KfIl9kMEk9#kBb"
    A$ = A$ + "h=7^_C?M:=a^dF?ALkhS9gG4mKULX;7L2\CiS^m__aLoG7?JF#MFC=?DO6dK"
    A$ = A$ + "SonF`?UEmnS\i?kcZcd;>i[c>oM`K\_g2b7EGK7m_En?kMbHSMdW>??WmM8I"
    A$ = A$ + "d?IW[;nYd?XNn^df<mGUWCX>?FE_<jP^?3[kNSCSoKfVXgMB>LRhn6d>ggmo"
    A$ = A$ + "k4Ofn#Wg7J7og0\kgmo=\klK?oW:_ZNn<jM;LiQWjMTDc7UgK^R[LO_i>L[c"
    A$ = A$ + "o];[eNeWk8nZ_[idhWFghZ1jV3Ef^SO7>odcmk^nnE]_moKWn[7o9bo;nnmo"
    A$ = A$ + "^kZgicdNRjOjLoY\_ml_ZVNRJk=mN:IicCUCMOgfMEkClO3b9kYW#gLjliJG"
    A$ = A$ + "kJGkJGkJGkJGkJGkJGkJGkJGkJGkJGkJGkJoo]Wl_ifWaCm_1GGloRfO]jUU"
    A$ = A$ + ";>AL?MmO:^fYn?=n[QieMhkW0cgVil_eTojLf>in;oM=FkKnI#?mk<oY_MN7"
    A$ = A$ + "n^hOSmo^oK>Tmj?]Vj9ib8MBWNQR?bdWobFgi]CSo9h5G^LRNAWl_jg\H[V9"
    A$ = A$ + "nLn:[nGoLBnK2mA7>?k\\_GOE<k\g];7\SHmTkOknL[>eWJ_\J>EI6ndkQ?="
    A$ = A$ + "n^Fe^[W:fMmQR^SU3HR9ZgUicElAGGUSjn\G7oD]3Wii0>mf\NfT?CDE7=m>"
    A$ = A$ + "PYjWMRo_^E=Kb`5W6odm`ZmD8L<GC1_Z?VdG[kPAn\Jo9c>#gm6MVEA?oZSN"
    A$ = A$ + "AAgcL^9jo:L_:n>iOecMMNVOWWUgajX3k`QIm>WM`CXUEeDMa?AOK=>>k^jZ"
    A$ = A$ + "IjDSW#c7aAE?W8kiZIclZeCG^dMo_kIDgcRZg^c;EhHinX?IcWM<_o4c0?mn"
    A$ = A$ + ":VL`QK#?3h]Q_BoUM]MYKjZ1VH7Q[_bh9DM<EmeiIoC>_ido#JFVL?;n[WA9"
    A$ = A$ + "OjXIMma4m6WN9RcDfOTeG#hHfoPV1LiT\nVk<DVODb?d_gAo[klKDN`fgjXK"
    A$ = A$ + "Ih8Foij[Yf1h\CI2lIjMF=P3NemJCR7]_EI6>kNZl#e^WM=oFi7VJWU;HRUJ"
    A$ = A$ + "=T]WAEGX>_DYiAJXg2NUI9fM0Il6KOaEkj<KVYe[bCF>ZBGcRCY_E=[j\kPU"
    A$ = A$ + "gWbOEm17OhF;McKghWecEg1Qn>SfSAOYV?MeC:nY;oc<?ZZmDaWY]DS_BnkN"
    A$ = A$ + "_\hTmIU_[VSZdQ\e?cN#EmFeiEfQPlKfIZhLElCLO5]_27ga7\m6eIhZMVIL"
    A$ = A$ + "QBoEEkZ\[6iSXMA:nXK\DfMQdOZlV2ggMg3ciHa[d[E[34F6nT1_bmFi65mK"
    A$ = A$ + "gO7M_:=TC^c<oa\CbIN\SFbaO<cQMd^kP3b>_3?VY3Dij>i`:?ab1\hEWQF_"
    A$ = A$ + "Ff^a:ocD?<mA5mG7lEoFYo[X3HVODa5YYIe><iB5?kD;>Jo8^8kg^L?:gchk"
    A$ = A$ + "Zi:WJL7hIm1cN3gL?K^3=oYZ?Dh0eHQfoXZQIWGHda8^Xk^c>F4?We[IVoLc"
    A$ = A$ + "Q<m6k>;VmVZJ8enHUnYJ74B;XTg:gWI6[SnSYf[VESn]R66EK<mOG==3oY`g"
    A$ = A$ + "<J#GMO7mGELDd`<ncYoYfgAJA6^Pmj<iTSNSiJZjW^j?5^;BoiROmJ\L7[n9"
    A$ = A$ + "BSc^W:;_kXCj\cbEkP>7;_k<KYXmjDOMi7gjCM7V:_UY1IVODhMdlDU6VM6d"
    A$ = A$ + "Mg3b?\mFWJVUgcVcMo<ZocTo<Jh>m06m`dc18]6kn[Zn8[fAiN>cQEeU2?kf"
    A$ = A$ + "oZRITFK:]WZna1KWn[bigEmkREASeaG<J]:>EYoTmK6o`NM6N`A[aZIHhMfn"
    A$ = A$ + "aDhAmEE][SFFQooll<i8[nCQo#kGIio\cSh1Vn]kN;VJ?:>\m5UI<gI;Ucb`"
    A$ = A$ + "ICQWA_a\C\BgDQ?CoEeOkXQLlQ2_kXMcnTQkDj?ELIgI`<m4jg8N\jJ:JJeh"
    A$ = A$ + "k<7ibI8l<c0IcPAnQQ_EVkbh<eiVZlW=ORlQJn<U?HhH6nGY7\;=H7N7Yo#n"
    A$ = A$ + "#IWCTFAI>^bW\W7Q?C34mIfeDcGfji]YQNJlAJF5m2J?;[obl=C_cYgc^oU="
    A$ = A$ + "7E`SjIXng4hEk5CRO2mGUFQM_A5OVUGXcQ`_NfZjQQ_j<ok^[PYgRd^AeJgM"
    A$ = A$ + "HZin4k>SViIeRMhATVa=nCYoj`o[j4T>ZcIZhP^m<fnJe^SMfgAm4El:lOFL"
    A$ = A$ + "j<oiR]jkMea\HEZo:>;jN<J?D_SE_?eN_CXMkZkofak4?6=fKdRNN]bc^kP_"
    A$ = A$ + ";g<e^i>WIbiKeWm6QGM_K6FfgY8K_=S?[>[2gbHCaICZ?RZEF^;2SjmALXSf"
    A$ = A$ + "KeO[gK7lh4hcdM>c2:l7J_YZneI68SWDd^>khEdH\n9JOTR>>SKMm1S62]O4"
    A$ = A$ + "=kG]3E9nZi]R^fQSAhEbIUL#M6\S6<Ko?jN>j;UNWC?oG1OWH>e^WCTgE?7j"
    A$ = A$ + "DhAkAjRoC\\GOJlMa4a3\j?F>R5[;g?ecINbH_bmZgCY6Hd;IkPNRm#I?_DQ"
    A$ = A$ + "SS>kCQ?2W2o]kIXMYOHhR^JOfcTYKkFoMeeC<oXD3:aWmnZna]^gEn_[kcDk"
    A$ = A$ + "?e>D7McDLPBlnUag=fC]giYck>lI7lA_WPb^l^hW\oMjnOdk_l=HMi;gNnT?"
    A$ = A$ + "KOG_o1C_V]VfYV8jin^afE77ai^cn?i\lDaf5[C=niNGG]ET?FcMFo_knFgm"
    A$ = A$ + "CMk3^?7n9OnGE^Dm\k9h`9koMa>EmaXm[hi>kP_fO;K7?kQIV]2;bGMaO]O;"
    A$ = A$ + "kTmkojJ^9WoVN74[On[f3?elbCPiKdLo_5k=eOo6]^ogXL][M][M][M][M]["
    A$ = A$ + "M][M][M][M][m;KAokf#5oZONJlMboWV[kliYcMdOGGVk_NfClk8m6k_kFoC"
    A$ = A$ + "MOWo>I^J[gPnkJGkJafYnK1?ao^1^fe^fi\kkooLlLW?W`7MN_i\l0UWIm6e"
    A$ = A$ + "O?1ogmmoWZn[^6cm[dFkjofP:MPjm[dUIgOB]`en]\Cm>W_QgmUM71K=h4GU"
    A$ = A$ + "k=El_fo>7N:loJ6R?DNVjKgjnncA_[cCSoKim4jnnk_93]g6mOkPc_SNo#UO"
    A$ = A$ + "7YcHomD_oODniLOfgC^[VZcN`MOo[M]^_okoPcii?EcKk>fO6[>?34]oU=f>"
    A$ = A$ + "iPK\_F\nY[nodeBWjFU7Z`anN=IlOgna9haoik>hkXQV0OWlo9ii_m?IW;HN"
    A$ = A$ + "^Xj_GSQc_SdI\oNRjO2nK=gZjEXIR<lImS8^ain8]EENM][m?6cN6EoXP_Kl"
    A$ = A$ + "MSkWW_J^92Ce\VblVCl[`Sb_MYOj4_Yc?ghgU_f=?_[nFWjQM61M6Ukm6=ei"
    A$ = A$ + "f<N\Sf[;n_UgCXjmeHnl=I<__:jI=:of5GFNZnk^eo4lgZFXB_dA;55S[M]g"
    A$ = A$ + "TQV=[^7jMVHelIc]>HENG^ZmKEci\l2CMTU3^HMjUIaWUo[fkbRObmSZnDAc"
    A$ = A$ + "h`5CMnYc5eWQYN?fL8kM6nVNVYbLK5GfAke5OWlo9ii>O>Q?RfCklkZl:knX"
    A$ = A$ + "Wajn<H7MRc_kFoIGSmn<?_=kiIZJAT6>BKXLo\WIQ^oe^fo[eiio\J9gHdmM"
    A$ = A$ + "CHmOd<BflT:Fdn4VmAIc]CT3[iBf_IifZmHEa5Ukkf7>eMGlkNW<Sok>SU53"
    A$ = A$ + "fJ3YQSR?CoNW6C_gYW^b5ZjMUN:C_N:NI2mKVV`mcCJ8NCA_ilkENDmgAjMe"
    A$ = A$ + "OGiCgkSl_2WbXmHWUZZ3fNkdgoJGkoeHd9IWAASEi3VmPk8nXImZINF\<n8Z"
    A$ = A$ + "NEgUk4OFnQUKMfEZTok0OVoDWSDacVg\c7^L#gio\HhXkZlUKoH:^GA;jVc["
    A$ = A$ + "cAkDoe1oDcJMj?[legdWXjUQ?bVQHomZFCigIJ5eOkFoC`OMe_Zmh<lAL\bm"
    A$ = A$ + "IV=VNnlJo>6kLC6FUhhjSM5o\mR:kHEfYhjSM5OEn1QE=V:J#4FE][ZoV6_j"
    A$ = A$ + "cTfecej>o=Y^;;OAcYC`3CHZjNdLT[fIZj`ao?ilCW??YY>GSdIWlgAm<fOg"
    A$ = A$ + "]nM_o>eo_M]ge^FTU=7YRAmL:cCCW3EkfZfgmYo#k:ZVmImAGl<kO#k\Iif8"
    A$ = A$ + "o`j3dcjV4WZof1n>?SJ:ogMn;;N\J0T6>2?SNOW6C_gEkYXiIc[9d?:lBgi7"
    A$ = A$ + "Vh_bG:Of1KTNEmgIi1:?[V7DnmDjR>oNZj_jJIg7=3QVm#J;UI:T^WI^8CGF"
    A$ = A$ + "=[L][mY5Y;#J5VW3aXgHVgD`cTGAhEf5PlWcnT^kSH[CfnYRf9CodMO3C==i"
    A$ = A$ + ">=GoYZifEn[jkYW?A?k2aMEGk]K\c\8^lK[^W:oEh?dkQemmd>Q^1]75=GYl"
    A$ = A$ + "kXWaXlkXn<k_SZQ\NOemSb?VkWY3b`kl\HE=GgmdC\WoJoM]Zi1GoXn>TMR_"
    A$ = A$ + "KLoll:ckE__Wjk1h^_93?:ofUnI7a3iWY[[^_kbCag?EmjLoZg1XRgD^gKdD"
    A$ = A$ + "WKS`c`I_E[Kn?ekIm=l9[^WiiRZoN=6>o>Z?clkYZo>g?C[Vm9kmDV=bhV:^"
    A$ = A$ + "^ZnblOENO][m?6cN6FodIoo9RMe\YR_HfkbV3?I\_fo^6Z3f>nhTeLV];lE_"
    A$ = A$ + "SAekMlF=gIg?agE3Njj_Cn[`OXgISiMjN;VjkcF=O`lKGLE_kZb_kFoCLoZW"
    A$ = A$ + "g6YEbd?EWi=Ze^feR<gWm_[lhYSYcm#LHWlXcc?oFOoQgPeUk^L_>O=aIN3f"
    A$ = A$ + "mmoOVgoORgm_[?Vhm`AiEfm[N7DVO?AO^kkogYnc^Vkm[d4Eog=X>CDUOAL6"
    A$ = A$ + "cmcNW=dm_fe^foW5=SLZiUk<je^fgYMOookoooEZc<NRmi?^og1dmo^UXnUj"
    A$ = A$ + "_WhmocNGGUkGm^c8>_S6SEO_[kO][M][M][M]I\kkooMloooCoIFMcnO?Pkk"
    A$ = A$ + "mWacWhmokDoCOO6nfa7\JQ8obNOdo=<>inen]]o7JMYZ%%%0"
    btemp$ = ""
    For i& = 1 To Len(A$) Step 4: B$ = Mid$(A$, i&, 4)
        If InStr(1, B$, "%") Then
            For C% = 1 To Len(B$): F$ = Mid$(B$, C%, 1)
                If F$ <> "%" Then C$ = C$ + F$
            Next: B$ = C$: End If: For j = 1 To Len(B$)
            If Mid$(B$, j, 1) = "#" Then
        Mid$(B$, j) = "@": End If: Next
        For t% = Len(B$) To 1 Step -1
            B& = B& * 64 + Asc(Mid$(B$, t%)) - 48
            Next: X$ = "": For t% = 1 To Len(B$) - 1
            X$ = X$ + Chr$(B& And 255): B& = B& \ 256
    Next: btemp$ = btemp$ + X$: Next
    btemp$ = _Inflate$(btemp$)
    _MemPut m, m.OFFSET, btemp$: _MemFree m
    Loadtileset1& = _CopyImage(v&): _FreeImage v&
End Function
Reply


Messages In This Thread
DeathTestvDungeon - by James D Jarvis - 09-29-2022, 03:49 PM
RE: DeathTestvDungeon - by James D Jarvis - 09-29-2022, 04:02 PM
RE: DeathTestvDungeon - by Pete - 09-29-2022, 05:19 PM
RE: DeathTestvDungeon - by mnrvovrfc - 09-29-2022, 06:43 PM
RE: DeathTestvDungeon - by Pete - 09-29-2022, 07:15 PM
RE: DeathTestvDungeon - by James D Jarvis - 10-30-2022, 03:10 PM
RE: DeathTestvDungeon - by justsomeguy - 10-30-2022, 08:36 PM
RE: DeathTestvDungeon - by James D Jarvis - 10-30-2022, 10:59 PM



Users browsing this thread: 4 Guest(s)