QB64.org Forum

Active Forums => Programs => Topic started by: Dav on August 20, 2020, 08:19:16 pm

Title: MAZEBALL: Tilt Maze puzzle clone
Post by: Dav on August 20, 2020, 08:19:16 pm
This is a tilt maze puzzle game clone, where you try to get the ball to a certain place in the maze.   I did not come up with the idea of this puzzle game, just wanted to clone it in QB64.   Tilt maze is a popular maze puzzle.  Someone on The Qbasic Forum even posted a SCREEN 0 version of one a few years ago which got me into it, and I've been playing other tilt maze puzzles online since then.  Hope you enjoy this game.

This is a pure QB64 code only game, no external files needed, just the one BAS source.

NOTE: Please read the credits, as they were my inspiration and deserve credit for this QB64 version to exist. 

EDIT: Latest version of this game is here:
https://www.qb64.org/forum/index.php?topic=2936.msg121999#msg121999 (https://www.qb64.org/forum/index.php?topic=2936.msg121999#msg121999)


- Dav

Code: QB64: [Select]
  1. '============
  2. 'MAZEBALL.BAS
  3. '============
  4. 'Clone of the Tilt Maze Puzzle games.
  5. 'QB64 code by Dav, AUG/2020
  6.  
  7. 'The goal is to move the ball to the star.
  8. 'Use arrows to move the ball.  Walls will stop
  9. 'the ball moving so navigate around them.
  10. 'There are 10 levels to complete and they get
  11. 'harder as you go.  To help you (cheat) you can
  12. 'jump to other levels by using the +/- keys.
  13. 'Press SPACE to reset level and start over.
  14.  
  15. 'If you beat the last level, you will get a
  16. 'smiley face and hear a happy song.
  17.  
  18. 'For those who get stuck, solutions are below.
  19.  
  20. '=======
  21. 'CREDITS:
  22. '=======
  23.  
  24. 'I didn't come up with this game - It's been around for a while.
  25. 'It's mostly a clone of a cool game posted on THE QBASIC FORUM here:
  26. 'https://www.tapatalk.com/groups/qbasic/tilting-maz-game-t39133.html
  27. 'Also some levels derived from the original tilt maze game here:
  28. 'https://www.mathsisfun.com/games/tilt-maze.html
  29. 'There's other Tilt Maze games that influenced me.
  30.  
  31. 'My thanks to those original game authors for the tilt maze fun.
  32. 'Please accept this QB64 version as a compliment from a fan.
  33.  
  34. '=================================================================
  35.  
  36. 'Solutions below, for those who get stuck...
  37.  
  38. '#1)  LURDR
  39. '#2)  LURULDRUL
  40. '#3)  DRULDRDLULUR
  41. '#4)  DRURULURULDR
  42. '#5)  URDLULDLURDLU
  43. '#6)  RDRULDRULDRD
  44. '#7)  DRULDLURDRULDRD
  45. '#8)  RDLDLULDLURURULDRD
  46. '#9)  LURULULDLDRDRURULURDLDR
  47. '#10) DRULDLDRURULULURDLURDRULDRURD
  48.  
  49. DEFINT A-Z
  50.  
  51. puzzle = 1 'start on puzzle 1
  52. puzzlemax = 10 'there are 10 puzzles total
  53.  
  54.  
  55. 'load images...
  56. ball& = BASIMAGE1&
  57. blank& = BASIMAGE2&
  58. pass& = BASIMAGE3&
  59. star& = BASIMAGE4&
  60. wall& = BASIMAGE5&
  61. face& = BASIMAGE6&
  62.  
  63. _ICON ball&
  64.  
  65.  
  66. '======
  67. restart:
  68. '======
  69.  
  70. _TITLE "Level: " + STR$(puzzle) + " of" + STR$(puzzlemax)
  71.  
  72. GOSUB SetLevel
  73.  
  74. 'draw puzzle level
  75. CLS , _RGB(51, 51, 51)
  76. REDIM SHARED pdata$(grid, grid)
  77. bs = INT(_WIDTH / grid)
  78. m = 1
  79. FOR x = 0 TO grid - 1
  80.     FOR y = 0 TO grid - 1
  81.         a$ = MID$(puz$, m, 1)
  82.         pdata$(x + 1, y + 1) = a$
  83.         IF a$ = "x" THEN _PUTIMAGE (y * bs, x * bs)-(y * bs + bs, x * bs + bs), wall&
  84.         IF a$ = "b" THEN
  85.             _PUTIMAGE (y * bs + 1, x * bs + 1)-(y * bs + bs - 1, x * bs + bs - 1), ball&
  86.             ballx = y * bs: bally = x * bs
  87.         END IF
  88.         IF a$ = "y" THEN _PUTIMAGE (y * bs + 1, x * bs + 1)-(y * bs + bs - 1, x * bs + bs - 1), star&
  89.         m = m + 1
  90.     NEXT
  91.  
  92.  
  93.  
  94.     'get user keypress...
  95.     DO: k$ = INKEY$: _AUTODISPLAY: LOOP UNTIL k$ <> ""
  96.  
  97.     'if right arrow....
  98.     IF k$ = CHR$(0) + CHR$(77) THEN
  99.  
  100.         'current ball location in x,y
  101.         cx = ballx / bs + 1: cy = bally / bs + 1
  102.  
  103.         'Move ball right...
  104.         FOR x = cx + 1 TO grid + 1
  105.  
  106.             'move it smoothly, by pixels...
  107.             FOR x2 = ((x - 1 - cx) * bs) TO ((x - cx) * bs) STEP 2
  108.  
  109.                 'if come to star
  110.                 IF pdata$(cy, x) = "y" THEN
  111.                     _PUTIMAGE (ballx + x2 + 1, bally + 1)-(ballx + x2 + bs - 1, bally + bs - 1), blank&
  112.                     _PUTIMAGE (ballx + x2 + bs, bally)-(ballx + x2 + bs + bs, bally + bs), blank&
  113.                     _PUTIMAGE (ballx + x2 + bs, bally)-(ballx + x2 + bs + bs, bally + bs), ball&
  114.                     GOSUB Done
  115.                     GOTO restart
  116.                 END IF
  117.  
  118.                 'if come to wall...
  119.                 IF pdata$(cy, x) = "x" THEN
  120.                     ballx = ballx + x2 + 1
  121.                     SOUND 500, .1: GOTO moved
  122.                 END IF
  123.  
  124.                 'Draw ball image....
  125.                 _PUTIMAGE (ballx + x2 + 1, bally + 1)-(ballx + x2 + bs - 1, bally + bs - 1), blank&
  126.                 _PUTIMAGE (ballx + x2 + 1, bally + 1)-(ballx + x2 + bs - 1, bally + bs - 1), ball&
  127.                 _DISPLAY
  128.                 _LIMIT 500
  129.             NEXT
  130.  
  131.         NEXT
  132.     END IF
  133.  
  134.     'if left arrow...
  135.     IF k$ = CHR$(0) + CHR$(75) THEN
  136.         cx = ballx / bs + 1: cy = bally / bs + 1
  137.         'Move ball left...
  138.         FOR x = cx - 1 TO 0 STEP -1
  139.             FOR x2 = (x + 1 - cx) * bs TO (x - cx) * bs STEP -2
  140.                 IF pdata$(cy, x) = "y" THEN
  141.                     _PUTIMAGE (ballx + x2 + 1, bally + 1)-(ballx + x2 + bs - 1, bally + bs - 1), blank&
  142.                     _PUTIMAGE (ballx + x2 - bs, bally)-(ballx + x2, bally + bs), blank&
  143.                     _PUTIMAGE (ballx + x2 - bs, bally)-(ballx + x2, bally + bs), ball&
  144.                     GOSUB Done
  145.                     GOTO restart
  146.                 END IF
  147.                 IF pdata$(cy, x) = "x" THEN
  148.                     ballx = ballx + x2 - 1
  149.                     SOUND 500, .1
  150.                     GOTO moved
  151.                 END IF
  152.                 _PUTIMAGE (ballx + x2 + 1, bally + 1)-(ballx + x2 + bs - 1, bally + bs - 1), blank&
  153.                 _PUTIMAGE (ballx + x2 + 1, bally + 1)-(ballx + x2 + bs - 1, bally + bs - 1), ball&
  154.                 _DISPLAY
  155.                 _LIMIT 500
  156.             NEXT
  157.         NEXT
  158.     END IF
  159.  
  160.     'down arrow
  161.     IF k$ = CHR$(0) + CHR$(80) THEN
  162.         cx = ballx / bs + 1: cy = bally / bs + 1 'current x,y
  163.         FOR y = cy + 1 TO grid + 1
  164.             FOR y2 = (y - 1 - cy) * bs TO (y - cy) * bs STEP 2
  165.                 IF pdata$(y, cx) = "y" THEN
  166.                     _PUTIMAGE (ballx + 1, bally + y2 + 1)-(ballx + bs - 1, bally + y2 + bs - 1), blank&
  167.                     _PUTIMAGE (ballx, bally + y2 + bs)-(ballx + bs, bally + y2 + bs + bs), blank&
  168.                     _PUTIMAGE (ballx, bally + y2 + bs)-(ballx + bs, bally + y2 + bs + bs), ball&
  169.                     GOSUB Done
  170.                     GOTO restart
  171.                 END IF
  172.                 IF pdata$(y, cx) = "x" THEN
  173.                     bally = bally + y2 + 1
  174.                     SOUND 500, .1
  175.                     GOTO moved
  176.                 END IF
  177.                 _PUTIMAGE (ballx + 1, bally + y2 + 1)-(ballx + bs - 1, bally + y2 + bs - 1), blank&
  178.                 _PUTIMAGE (ballx + 1, bally + y2 + 1)-(ballx + bs - 1, bally + y2 + bs - 1), ball&
  179.                 _DISPLAY
  180.                 _LIMIT 500
  181.             NEXT
  182.         NEXT
  183.     END IF
  184.  
  185.     'if up arrow
  186.     IF k$ = CHR$(0) + CHR$(72) THEN
  187.         cx = ballx / bs + 1: cy = bally / bs + 1 'current x,y
  188.         FOR y = cy - 1 TO 0 STEP -1
  189.             FOR y2 = (y + 1 - cy) * bs TO (y - cy) * bs STEP -2
  190.                 IF pdata$(y, cx) = "y" THEN
  191.                     _PUTIMAGE (ballx + 1, bally + y2 + 1)-(ballx + bs - 1, bally + y2 + bs - 1), blank&
  192.                     _PUTIMAGE (ballx, bally + y2 - bs)-(ballx + bs, bally + y2), blank&
  193.                     _PUTIMAGE (ballx, bally + y2 - bs)-(ballx + bs, bally + y2), ball&
  194.                     GOSUB Done
  195.                     GOTO restart
  196.                 END IF
  197.                 IF pdata$(y, cx) = "x" THEN
  198.                     bally = bally + y2 - 1
  199.                     SOUND 500, .1
  200.                     GOTO moved
  201.                 END IF
  202.                 _PUTIMAGE (ballx + 1, bally + y2 + 1)-(ballx + bs - 1, bally + y2 + bs - 1), blank&
  203.                 _PUTIMAGE (ballx + 1, bally + y2 + 1)-(ballx + bs - 1, bally + y2 + bs - 1), ball&
  204.                 _DISPLAY
  205.                 _LIMIT 500
  206.             NEXT
  207.         NEXT
  208.     END IF
  209.  
  210.     IF k$ = CHR$(32) THEN GOTO restart
  211.  
  212.     IF k$ = "+" THEN
  213.         puzzle = puzzle + 1: IF puzzle > puzzlemax THEN puzzle = 1
  214.         GOTO restart
  215.     END IF
  216.  
  217.     IF k$ = "-" THEN
  218.         puzzle = puzzle - 1: IF puzzle < 1 THEN puzzle = puzzlemax
  219.         GOTO restart
  220.     END IF
  221.  
  222.  
  223.     moved:
  224.  
  225.     IF k$ <> "" THEN _KEYCLEAR
  226.  
  227.  
  228.  
  229.  
  230. '====
  231. Done:
  232. '====
  233.  
  234. SOUND 7000, .1: _DELAY 1
  235. _PUTIMAGE (160, 210), pass&: _DISPLAY
  236.  
  237. puzzle = puzzle + 1
  238.  
  239. 'If that was last level...
  240. IF puzzle > puzzlemax THEN
  241.     'show smiley face
  242.     _PUTIMAGE (100, 100)-(500, 500), face&: _DISPLAY
  243.     'play happy music
  244.     PLAY "o4l8gfedcal4gl8fgabo5co4gl4el8defedefgagabl4o5co4c"
  245.     PLAY "o3l8co2l16gf#gl8g#gpbo3c"
  246.     _DELAY 8
  247.     puzzle = 1
  248.  
  249.  
  250.  
  251. '=======
  252. SetLevel:
  253. '=======
  254.  
  255. 'x is the wall, b is ball. y is the star
  256. IF puzzle = 1 THEN
  257.     puz$ = "": grid = 8
  258.     puz$ = puz$ + "xxxxxxxx"
  259.     puz$ = puz$ + "x   xb x"
  260.     puz$ = puz$ + "x   yx x"
  261.     puz$ = puz$ + "x  xx  x"
  262.     puz$ = puz$ + "x      x"
  263.     puz$ = puz$ + "x      x"
  264.     puz$ = puz$ + "x      x"
  265.     puz$ = puz$ + "xxxxxxxx"
  266.  
  267. IF puzzle = 2 THEN
  268.     puz$ = "": grid = 10
  269.     puz$ = puz$ + "xxxxxxxxxx"
  270.     puz$ = puz$ + "xx  x    x"
  271.     puz$ = puz$ + "x   xx   x"
  272.     puz$ = puz$ + "x   y    x"
  273.     puz$ = puz$ + "x     xx x"
  274.     puz$ = puz$ + "x      b x"
  275.     puz$ = puz$ + "x        x"
  276.     puz$ = puz$ + "x     xx x"
  277.     puz$ = puz$ + "x x      x"
  278.     puz$ = puz$ + "xxxxxxxxxx"
  279.  
  280. IF puzzle = 3 THEN
  281.     puz$ = "": grid = 11
  282.     puz$ = puz$ + "xxxxxxxxxxx"
  283.     puz$ = puz$ + "xbx  x    x"
  284.     puz$ = puz$ + "x    x    x"
  285.     puz$ = puz$ + "xx   x    x"
  286.     puz$ = puz$ + "x    y  x x"
  287.     puz$ = puz$ + "x    x    x"
  288.     puz$ = puz$ + "x         x"
  289.     puz$ = puz$ + "x x     x x"
  290.     puz$ = puz$ + "x  x      x"
  291.     puz$ = puz$ + "x   x    xx"
  292.     puz$ = puz$ + "xxxxxxxxxxx"
  293.  
  294. IF puzzle = 4 THEN
  295.     bs = INT(sw / 11) 'boxsize
  296.     puz$ = "": grid = 11
  297.     puz$ = puz$ + "xxxxxxxxxxx"
  298.     puz$ = puz$ + "xbx   x   x"
  299.     puz$ = puz$ + "x xx      x"
  300.     puz$ = puz$ + "x         x"
  301.     puz$ = puz$ + "x       xxx"
  302.     puz$ = puz$ + "x x       x"
  303.     puz$ = puz$ + "x x  xx   x"
  304.     puz$ = puz$ + "x         x"
  305.     puz$ = puz$ + "x xx  x xxx"
  306.     puz$ = puz$ + "x     x  yx"
  307.     puz$ = puz$ + "xxxxxxxxxxx"
  308.  
  309. IF puzzle = 5 THEN
  310.     puz$ = "": grid = 12
  311.     puz$ = puz$ + "xxxxxxxxxxxx"
  312.     puz$ = puz$ + "x x      x x"
  313.     puz$ = puz$ + "x x xxx  x x"
  314.     puz$ = puz$ + "x          x"
  315.     puz$ = puz$ + "x x x x xx x"
  316.     puz$ = puz$ + "x x xbx    x"
  317.     puz$ = puz$ + "x   xxxxx xx"
  318.     puz$ = puz$ + "x     xyx  x"
  319.     puz$ = puz$ + "xx         x"
  320.     puz$ = puz$ + "x         xx"
  321.     puz$ = puz$ + "x   x x    x"
  322.     puz$ = puz$ + "xxxxxxxxxxxx"
  323.  
  324. IF puzzle = 6 THEN
  325.     puz$ = "": grid = 13
  326.     puz$ = puz$ + "xxxxxxxxxxxxx"
  327.     puz$ = puz$ + "x     x     x"
  328.     puz$ = puz$ + "x   xxx   xxx"
  329.     puz$ = puz$ + "x           x"
  330.     puz$ = puz$ + "xxx xxx   x x"
  331.     puz$ = puz$ + "x         xyx"
  332.     puz$ = puz$ + "xb    x   xxx"
  333.     puz$ = puz$ + "x x   x     x"
  334.     puz$ = puz$ + "xxx   xx    x"
  335.     puz$ = puz$ + "x           x"
  336.     puz$ = puz$ + "x   x   x x x"
  337.     puz$ = puz$ + "x   x   x x x"
  338.     puz$ = puz$ + "xxxxxxxxxxxxx"
  339.  
  340. IF puzzle = 7 THEN
  341.     puz$ = "": grid = 15
  342.     puz$ = puz$ + "xxxxxxxxxxxxxxx"
  343.     puz$ = puz$ + "xbx   x     x x"
  344.     puz$ = puz$ + "x xx          x"
  345.     puz$ = puz$ + "x         x   x"
  346.     puz$ = puz$ + "xx       xx   x"
  347.     puz$ = puz$ + "x             x"
  348.     puz$ = puz$ + "x xx       xx x"
  349.     puz$ = puz$ + "x     x x     x"
  350.     puz$ = puz$ + "xx            x"
  351.     puz$ = puz$ + "x   x         x"
  352.     puz$ = puz$ + "x   xx       xx"
  353.     puz$ = puz$ + "x       x     x"
  354.     puz$ = puz$ + "x      xxx    x"
  355.     puz$ = puz$ + "x x         xyx"
  356.     puz$ = puz$ + "xxxxxxxxxxxxxxx"
  357.  
  358. IF puzzle = 8 THEN
  359.     puz$ = "": grid = 15
  360.     puz$ = puz$ + "xxxxxxxxxxxxxxx"
  361.     puz$ = puz$ + "x x     x     x"
  362.     puz$ = puz$ + "x    x       xx"
  363.     puz$ = puz$ + "x        b    x"
  364.     puz$ = puz$ + "x     x     x x"
  365.     puz$ = puz$ + "x  x          x"
  366.     puz$ = puz$ + "x       x x   x"
  367.     puz$ = puz$ + "x      xx    xx"
  368.     puz$ = puz$ + "x             x"
  369.     puz$ = puz$ + "xx       x    x"
  370.     puz$ = puz$ + "x   x x       x"
  371.     puz$ = puz$ + "x   xyx       x"
  372.     puz$ = puz$ + "x   xxx       x"
  373.     puz$ = puz$ + "x       x   x x"
  374.     puz$ = puz$ + "xxxxxxxxxxxxxxx"
  375.  
  376. IF puzzle = 9 THEN
  377.     puz$ = "": grid = 19
  378.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxx"
  379.     puz$ = puz$ + "x x   x       x   x"
  380.     puz$ = puz$ + "x x   xxx   x x xxx"
  381.     puz$ = puz$ + "x           x     x"
  382.     puz$ = puz$ + "x xxx xxxxx xxx x x"
  383.     puz$ = puz$ + "x   x   x       x x"
  384.     puz$ = puz$ + "xxx x   x   x   x x"
  385.     puz$ = puz$ + "x           x     x"
  386.     puz$ = puz$ + "x   xxx x xxx xxx x"
  387.     puz$ = puz$ + "x     x x         x"
  388.     puz$ = puz$ + "xxx   x xxx     x x"
  389.     puz$ = puz$ + "x       x       x x"
  390.     puz$ = puz$ + "x x x   x xxx   xxx"
  391.     puz$ = puz$ + "x x x             x"
  392.     puz$ = puz$ + "x x x xxx x   x   x"
  393.     puz$ = puz$ + "x         x   x   x"
  394.     puz$ = puz$ + "x xxx     x x xxx x"
  395.     puz$ = puz$ + "x  bx       x  yx x"
  396.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxx"
  397.  
  398. IF puzzle = 10 THEN
  399.     puz$ = "": grid = 21
  400.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxxx"
  401.     puz$ = puz$ + "xbx x     x   x     x"
  402.     puz$ = puz$ + "x x x     x   xxx   x"
  403.     puz$ = puz$ + "x x                 x"
  404.     puz$ = puz$ + "x x xxx x x     x   x"
  405.     puz$ = puz$ + "x       x x     x   x"
  406.     puz$ = puz$ + "x   x   x x     x xxx"
  407.     puz$ = puz$ + "x   x               x"
  408.     puz$ = puz$ + "x   x     x xxx x   x"
  409.     puz$ = puz$ + "x         x     x   x"
  410.     puz$ = puz$ + "xxx xxx xxxxx xxx xxx"
  411.     puz$ = puz$ + "x         x         x"
  412.     puz$ = puz$ + "x   xxx   x x xxx x x"
  413.     puz$ = puz$ + "x           x     x x"
  414.     puz$ = puz$ + "xxx xxx   x xxx   x x"
  415.     puz$ = puz$ + "x   x     x x     x x"
  416.     puz$ = puz$ + "x x x xxx x x   x x x"
  417.     puz$ = puz$ + "x x             x   x"
  418.     puz$ = puz$ + "x x     x x x   x x x"
  419.     puz$ = puz$ + "x       x x x     xyx"
  420.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxxx"
  421.  
  422.  
  423.  
  424.  
  425. FUNCTION BASIMAGE1& 'BALL.BMP
  426.     v& = _NEWIMAGE(191, 193, 32)
  427.     DIM m AS _MEM: m = _MEMIMAGE(v&)
  428.     A$ = ""
  429.     A$ = A$ + "haIkMNfVDDdf6n_T77nE9WA#097Gb8ITL6TT1bI541141ET<8159YR0Ri\Ri"
  430.     A$ = A$ + "L>W[WgcjimVWVeMW^WMkIZNVij3W7P^;cdMEGMegeMZ^n[ojMG_#842Q#842"
  431.     A$ = A$ + "Q#842Q#842Q#842AI>g`=L3^6eX6iJFcJV[U]\U^FgjFkJOkK_kV^YKbea>f"
  432.     A$ = A$ + "AGWjDWLM^cMfee^fEGgjFgldm^gm[i?iWeU^d5o_7onMX3M`oIdfffFoWGcK"
  433.     A$ = A$ + "NcM=Y9=ae`6f`POo:4=X1=`edVfD_67=l07h0MSNdSf=Q9<1gLWkLM;H1;`]"
  434.     A$ = A$ + "TU\4gbGnbM[KM[cM?gcmh^gkmNMKJCKbcVglVMggmMOnoOKH3K`]ne_NgZFe"
  435.     A$ = A$ + "Zlongn]OknomCKJCc=a9>Ag`6f`Lm]_meol1?Oac1Qnn?;beMMg#`_6:GPed"
  436.     A$ = A$ + "I=GF3^Wm\WNmg`7n`mJlI<SIheh;MY;e]Ve\6_NN[KM[^M\SMhNh7nQMkNgk"
  437.     A$ = A$ + "f]om_Og1>`1L7i87amH?fSi>fa>fEih7ohNh_OdSNDo_c1?h1monkI?kao_O"
  438.     A$ = A$ + "WkLW^7h1N0oc9l\3?K\`5^#ogkh6ghLSJDSbo<7GGlnRfdVfhJLSKL`7g4Uf"
  439.     A$ = A$ + "PM<HkAojGoLSI<Sa[iFfbFVKKKKK^M][Mi>a9>QkdWnd^WkiN>g;nR_XkeOm"
  440.     A$ = A$ + "G_Pb;ob_\k5NQG`mD?eCi>eY>UK_kM_nWahM:lnU9=Y9i6b#6Rgn9NNEf79B"
  441.     A$ = A$ + "2H[n=NSgXGkP>7K>Fa:FQO=gm]_miGOn9ObWdMfcNFgcn\?[k2Gh2NM8JNdT"
  442.     A$ = A$ + "_j[nZ5L]o[mJ_VokQ_cWoiONgU^dUlG7WkLWcMVcL6gSoh?^k`7n`^7mAODg"
  443.     A$ = A$ + "MOgg]gf9\GJTSLT^KnV_Iok42mh\8k0f\S=2mX7m`Kk`lWolm[Qn#?d3i]mh"
  444.     A$ = A$ + "INVWaMi;Oi2^^>]hUNYGbOmbcZl<;fR]h5_H_n_om_o^FdRF8KRZP1Khag93"
  445.     A$ = A$ + "N`3f=kI?K_n0kba6VcOncO=[Yo:_b[DDFC?]Og0?3`mPm^1NO5??`nAhIQa?"
  446.     A$ = A$ + "naOem=7ji3Aa1\Q_M][Mnm]R?DH_SHk>J3\K?=eiX3[?TVG7HG6?7`nYgbFf"
  447.     A$ = A$ + "RgV>lM4__Cn<Zl5c?=gj]N[^5]X5i]7Ve0af0FOTef;DJ>NFZ^#JNM4mjQkE"
  448.     A$ = A$ + "^WIo2\?1la4_gK>cI>ne3HL:dcGRj?\N6ffPM^H_;nR4O5n4?aCh]]Yn\6OB"
  449.     A$ = A$ + "F_^^n\D]miTV_KPo]l\?n<RmfPoCimPhcDN_8[GP]QQN>DTodZFe:_Oh_[kj"
  450.     A$ = A$ + "^L7j#7b_6GJi7bL]N^Y7Ocgl=_:_eKmF^gn]OKgkl>_SkMOgg]6QO6o>lk6m"
  451.     A$ = A$ + "OKBonZ_`W5k?0o5]a=^AgdWndma[CjoB3`W=\o=f3;n[QHUR_>NjWnYm[aQ="
  452.     A$ = A$ + "_egefiooKl6_Q7dZ`E^bEL_gkmN^?h3n0g7mAOTkCnT?amYOjWjn\?kcLOnW"
  453.     A$ = A$ + "oiNnb_l;mlEOeGinj_n[_6hoWmc]OOngbW1OFlIbW=O7lMIO_feA^^FcWkEK"
  454.     A$ = A$ + "?14W]7l1O#g:Gi:MSM\SeEEEEim1LXWO5e<HO3fZ>[I=;gJGkJmnRWm^FOGO"
  455.     A$ = A$ + "?:XcH]HFW6=8ja?nSoH_F5mkgmMOWkkon_gm3o`?hnUOiGLoj_n[^Okgn=?o"
  456.     A$ = A$ + "aOl7GUol?oCgOmGoU7nkAoIf_?oKicP?;n<icV_3n^hkT_K^6hJQ[9^fBcm:"
  457.     A$ = A$ + "cn2HlSW18>7m^gmf7oS#??;nOP?j8Nn\7FFW7oDR=\lnKVoZ[fIKfZP]8_ok"
  458.     A$ = A$ + "onNmfGl5OQOMJdSoh?nSGEKokon_kadeAefomOogo;nWoiO^6ZYOWX?KH?OH"
  459.     A$ = A$ + "O?fc6L=`e2GCL]ae8G[L=Kf>ECkO8ON?0aaSHGS_`8na\O0ReMXWg[dQHfS?"
  460.     A$ = A$ + "jVbDVROm9dmh3SlEW7moWICSIKn7nQOXgf3FcedlV>_jJhR=fc3fc0L=R]BL"
  461.     A$ = A$ + "=KkQ8Z=AaMoW[g1P_1`oX4KPQ>dQjg;LXWo[4QhBB<jI]NbK<Rm:n\SeYBjl"
  462.     A$ = A$ + "IeWkanId;HO=fEPFjWoiOnZjlX[Q7J=O]mN3km4L=ce>g3L_`m4gKL?FGdnA"
  463.     A$ = A$ + "SGf5_h5miK7k7N#3J#jM059H_\V=>T3STCI\F_iOnlimifjkVVgfSjgl=OSg"
  464.     A$ = A$ + "nJ\Y0=TYi3]n>ON>P[I^fiNPk5^W\m<K?3DK_?89P?c#oC^TB^?A>L[lTX`2"
  465.     A$ = A$ + "nL3=?nSVl1fR;EMI_[H;<n=1K4#KP>Qeg[YefSJoMFWJjJ7hNSkA^GiNVkM6"
  466.     A$ = A$ + "3Z;k=Vg1`kHIOEToLTO[SH4S8hjSbA`o=T7a4KZkon_OOn7`kNc7]NDkJHm?"
  467.     A$ = A$ + "\QoKof_mZkI5K5ZYmLF:Yk[]mFK`mX]7I^gI<8jk2ZYa\L1[mP_P8GZYf58n"
  468.     A$ = A$ + "Q\o[#[G:WPl>QJH2o=PMmi[MZVo9a78l^OlG8f3GC[C6J]KQRJjmH<6`H1S9"
  469.     A$ = A$ + "<fHn9]^4c<RO2eP6i6Xb?Xj?TO9<FBngP^gb[bh\S?ZM=h[3FOSh6I[aKkM5"
  470.     A$ = A$ + "<O8FYQMoKf2aH3SA<FaHFDkQBbn2<O1Ii74f09O1EgPm>ak#aWm4GflaNNKM"
  471.     A$ = A$ + ";N?>[WIaMbfkJdeh[N\UZ4`dnA77H\aRO6SI<f5M\<Y_7Ph2CnPC^aAMj7JM"
  472.     A$ = A$ + "DY4To8hg0baFlI?jnTjcN3Vg`>FRic?mCode4cYJR#[53Qf?GS5<VaH7SQAm"
  473.     A$ = A$ + ";JB`b;2bQZ=_i=kZZZZlmJR#[[:5Pa9ZO:ZAkCNbCVG[gcOgR3[ISSik6FO["
  474.     A$ = A$ + "BDWW???Hk5PoKc68;>aEOL>>XNI8_BVjDWZg?5QFGUU1KL`O>T;]DoeTC29="
  475.     A$ = A$ + "gcRJO3n`cdlRj?<FbHJDkPBbLREW0h3Dl3DEoO[o;KPZIHO]TcaH[H^F__j["
  476.     A$ = A$ + "m`NbH>QhhSO[I^RL0[BeNVd2KlSaB6C]LUPaJ;?QBbk2`n7b;Jba#b58R?IX"
  477.     A$ = A$ + "eJI5X62Yo1`NJYOd4G>XEMO`IaWRi7;_bH^cb7BAm36;]lWcN6PalJJ^8G_3"
  478.     A$ = A$ + "0odajJHoSb3Ro;hknI>cIjm=6a9\fZUZZ?nbJ?T7_ToRAc1QXijXXnCdaD;7"
  479.     A$ = A$ + "9H<WanX[oW;oPboOFC3oF\jE_JolMUN>#`ko8g`Y7TaHCBf?[ign[LU[hm7G"
  480.     A$ = A$ + "e]]?dJUbEZnN0H\WiPl9_8HmOFOSlQVN8GUZnO03H0^kl>_CO=SS=Q9YfI9^"
  481.     A$ = A$ + "S4oMb=Al17[3927<7`L1c9F^a5gjG4OBFoOkKOknnFJUFmPANgC?CPNN6e6A"
  482.     A$ = A$ + "BmQ9nJSmKQO78oL]eiIoHRR7fk1H>Pi2VCH^9Yn05m?mDAb1m:Yn21e#>a]j"
  483.     A$ = A$ + "ANT79AeFEdLC0o=C>HIe3XEGORR?A7oI>QiVXi2ALcYhoJlo9eO1eHMXeU53"
  484.     A$ = A$ + "hnTjNPjQ>9ffK[gcN[hM\fnJU^?lHc3<W`L3cAAGo?^g3#=7Q>PHIF^gOh8g"
  485.     A$ = A$ + "kYVgR;_k=OWIe>8nEPeF8_3I<WH^;b>`L2c=<7aLUE[TaioCnIX3H]OliAXe"
  486.     A$ = A$ + "W5287Mhijkh>^3OngWdekYN[9NRfjmfj=QN^Fl_enP]n?cI<gUdeoY>PI__H"
  487.     A$ = A$ + "k?ak9djed4>CM8V]\_fLUGJASE2f=B^DaJ9fhKXWS5ao<0o9cI<gIfnWThOa"
  488.     A$ = A$ + "nOIOPdSL3]N=]0Oj#MMB<=Xn6BR_<I<3O7Ha]2o9cH:oY8kR=7IaoRi`Z7o["
  489.     A$ = A$ + "J3fk;eY1ag7K4:ek7LV]>DO]\WnTZk]hFAnTKSWh?=Af7kI0[F0\hOU4m?f4"
  490.     A$ = A$ + "#^o#_8XD_?HA^;A_1THiakdRkmN\o8[OhHSS0SSRB7\i=V3I^TidT6k;\=Pm"
  491.     A$ = A$ + "4R^9djgj3D_QL62VTc]46KHoAT[D\NAdek3mLY8o8jjoFobRifTXoI]Ob];>"
  492.     A$ = A$ + "cT2]n]^0fi#oKTlf;Yfhck6Im16k\n?YXd7K^TiFVSCbJoFNoC_PVN#FXeci"
  493.     A$ = A$ + "3DS2D[]dgXbUo]Rnc\NN9SE0n:#DjS=OJm:dZk;kJkI0joELFiQ]oQF?WDHo"
  494.     A$ = A$ + "]dO<I=ObA]hlWYe3_iMSQNNBDHafk;ciaigClk3mP9R5JYBmnbe9iX4eZIBb"
  495.     A$ = A$ + ";Ib1#[F3S>>ao]XdWZ?WbL=cia]^_eo?9oGhLc9djjhPc_B>gJXNKCbNKagG"
  496.     A$ = A$ + "dGT\LDCjnbCR>gbL=cifI6#Lj4>OXXWGA>#6JmM^\eQhgbcY\?UL]F_U_2ln"
  497.     A$ = A$ + "?c_>fhDe?CB4U7Hc_VOOH^?JN?DKj5jg3Tc3D_7Ienm6WYKd;^`F7jKPaIW?"
  498.     A$ = A$ + "ik4amfdmlWRbO\iJVkA3TTlM0m4i6#OjCO2^>_VPJAQmUcnKS;Wl]J]e>7ZH"
  499.     A$ = A$ + "\`>_Y4UgHce<gS]o99V_Hg?i60WgmQFWGMX^;Io]d?lS[7ZIiU\U_>fh1oMA"
  500.     A$ = A$ + "i?VfWo^]fOLfmcJYH7=ijICKJC3^N?Z^WjAa>?3S;>FHS7nje\cg674E>H[g"
  501.     A$ = A$ + "IWKNX9RK]Oli9ij3i3LFY7W`n_9n347;RQKLf^am9ihQMf4:]OU7AOG?JQTX"
  502.     A$ = A$ + "m1jccdS3kE_jE`em`X7mXmWOc9i\P`lU?gcfI8[Xb5d0X5<On7WnQh5AMNSm"
  503.     A$ = A$ + "eQFg3cH6c`W_JaMFfR=MGioo<YEJOAD]_MF17WMoT;`Fom?djNbI=Rk0fQ5G"
  504.     A$ = A$ + "OSeb?IcFOQ`0=ABbcI;F0dOca^W#5_;Z]B\cWJ]9^N;UM>=cnjin4Kl423d4"
  505.     A$ = A$ + "X=RNNHGKJOnCli3i?#Xbe1Rc6i\F^RQ[QM>=cm8acF8Z>X=\c3khdCh?AZ]A"
  506.     A$ = A$ + "bai#Xm]jBQN\BLfj#Oke>Wg4RJ3d8XERcf7Rc;mbb#EO;;KI;cK_CLnga>O3"
  507.     A$ = A$ + "Io<QN\ET]1=RMN?V;=5a?UNn1W9E5cNJ2mM1bCI>CPH=oL57Gc>Of73fc94a"
  508.     A$ = A$ + "1JUTHg?ajUcGlQ<TQDd>?79?Uil3VJC9^nY9g3fIRBX7C5U6HW];99NGLnl#"
  509.     A$ = A$ + "\^h\9\HXm9o5H?^lm6GnWbnF\j`=dSYRB3\jj=9ki5k>8Wii\lZHXma_BT_V"
  510.     A$ = A$ + "D?UaM]anfI_;VfWoD8Z=<=2JVT4WGRW:fO#>4G<dndcMBJOcgdnfcd\G6QXf"
  511.     A$ = A$ + "`d99EkcN=aOWL>FGXem\WJnNX>bbEmYHeSHdem]WW5RJSXj4d>aEGSF=mBo^"
  512.     A$ = A$ + "\#g;C\c=Rhl_CeenfceQN\ET]9Z>99JOS=]Y=E#kU9L^`AoVRh9P^?Gi`PeS"
  513.     A$ = A$ + "e<]_#T_Pf9Ymb=j=2TS35BkM6j#7J>kOnAm[_egM2mHXXd4[?nTTJJl07h0N"
  514.     A$ = A$ + "kA:Dm^I\g1Km9F^aM]H[i;]_X^2J7K]ohdKdO4fbFfB1;6G4;G>C#iI\lAk;"
  515.     A$ = A$ + "4eEBZf7o]C]\GXjKi4k<bM=laCB\gAJOAm5d#9a^7lc?e<KQZF6kNgk^ol`>"
  516.     A$ = A$ + "^HJ5Ek;4eGBRf7O_`Il``6f`liLCJkSWne_ni>h1?H\adBJOAJBBdnTG=DoD"
  517.     A$ = A$ + "L>]Wfni_=]Y=nN3ABj_\F^Kbe\#DO9^LjdPH]NKgf]ic[cdfFoa<VahO_BLm"
  518.     A$ = A$ + "N:Ym5Y99EkcJbL6fBO39=enH_c<Wi<mkY8^n_SdnRdTTZmY7>\ne_NoJoYYf"
  519.     A$ = A$ + "O#3J#n?cLU3?Bk;:4T?JObWid^gm<fa>FOoW:>Km=]_#Tf4W^3Kaga>fQK]["
  520.     A$ = A$ + "M]YZfObCNbnjcEJOAX89JOR_5m_QdDk?_i=?_]DlN5Ym5QPhdMdKd8W3XneC"
  521.     A$ = A$ + "C]?kOVHj6W?NTfGDX8>MWEkjkNgk>EenH_3i_YdnR#ABdnTG3\fOJZmIo3DW"
  522.     A$ = A$ + "Raec=5R#1eC2aNUenCC]ojFgjlfA9]_8[2JoCMZCi>jA?JZZma_YDK<9aV7Q"
  523.     A$ = A$ + "84Pfo\Wm\nn3KJZmIO^dcoUfGTE1]?iH<iHOJZmglVg\_N]TfGTE1]?m#QCO"
  524.     A$ = A$ + "jC;]_XR2Ym5EZDXdnL^29km5II#kC?J3OmXmj:ZT0]?eG2nh?=end?ZXOk;o"
  525.     A$ = A$ + "k;bZDXla9iaVdnR\<XmaFO>3BCC]o:Fa:LKKKKCfl8b\#nlP_mil7==enT;K"
  526.     A$ = A$ + "dg[TfGTE1]?fkTfibVU3c99om5R#0Jo3Oh3k[OUdDk?oi?OonMUfGTEY#Ek:"
  527.     A$ = A$ + "LnJQ=o9YV55R#0JOl3?mRodDkKeZNBjC32A8PmR^m]_MgZFeZBE]?mj:ZIG]"
  528.     A$ = A$ + "^_8[2fScNBY?lWVJoNfcNj]ki2Gh2illdE825Xma^LdYYYfWnk9WSST_4:nF"
  529.     A$ = A$ + "R\8HC2W?4HONJZmil\H`3N`NoWNi;OiPOO:4E7f;:m=cndWnTZJo6f`6NeN#"
  530.     A$ = A$ + ">fm4jkCQ8:T?3GlRGd=a9>AGWkLWCE]?dU^d5O_Jh<Wi<1oNE8R2nhQlH3KC"
  531.     A$ = A$ + "JJCKJZ[mY?TCl]>na?N`_G5RX`JndKBh\1:]em0Wo4hSoTLFc945C8_m9^F5"
  532.     A$ = A$ + "ZcJ^Ve\Vi6oh7_?VaQnNE8R2mTWE_jEG#\g1JBCJRoL7RNC8Wo4aM6D845;`"
  533.     A$ = A$ + "7<hOc2eI;]]OGRI<nBEahBTE0KA6gh6G1Cg7eVOlcYbUOAX1K?`oVd;56h07"
  534.     A$ = A$ + "H1Ek3CJBCb_OG>k]2mm^Xb6dmH3bBGjBM]\U]\P[miL\3ol7gi\[#DX1K?8?"
  535.     A$ = A$ + "KBkcG^JSnfgnjgGQRaU8dPOmi\VH4SH455]O7kH7mi;4if3_cAnkA4:`_nhK"
  536.     A$ = A$ + "cNgkNGDdnHGE?jA?le3?njAJOAXPn#e<Va<liL#a#k3=ZA=bGW0\f_ZU;Aa6"
  537.     A$ = A$ + "\g0KmaW;TOm5;M_a:Gi:MkOokgMY;MYP?F8Z\0k=8Gjil#Ql=XH[mYFFFlRG"
  538.     A$ = A$ + "\fc[XX3kaUn2>aJZH[kQQ=\QiVm\W]_GHYLL#D<QN=>iFcLVcL2Rf_E]ZEnL"
  539.     A$ = A$ + "LPlWShLQ=HQN<ADI0WUXh[a2E>;77\OGbIDjEQd3#E>>8:dP]5DCjkKOkcEE"
  540.     A$ = A$ + "EEiJKKKK#dn6Hg3W;;Z>N55JX?9PO=Y6Z2YVgHX3MXnNg3ihP\kAD8QeGgjF"
  541.     A$ = A$ + "gZ_Vd3]^7JOkK_GoSoNDN=;:T#n3cj\3H038hjNSFgjFkcSdSLTSXngS8e1k"
  542.     A$ = A$ + "l]Jb][M][^6dP64L=_1kkUl8Uno\fc[8]a>?Q`WR]X5]8hjmZ3m]#\33knU]"
  543.     A$ = A$ + "?Rd4l]3WkEDk8QFWGC#n4Q?Gi<NDihS8]`jkDdSIIOUQFWW;moJFcJle=OX7"
  544.     A$ = A$ + "c4U7PM4D;jM[KM;hjkL1fRQon=knU??5eG8WIhlT8daa:9P?OhliRL^#kkED"
  545.     A$ = A$ + "O1MOokOo3^^>9PoW`^ObeXcOnc7la>AY9D3jDO8cM^c]PecY:4#>^=i9?Ioe"
  546.     A$ = A$ + "^Z];AnPUC`Hg0e75i]CXeci3dO\8??gh6gXOO_bf7ABQm8B^;\gm^GG_jE_b"
  547.     A$ = A$ + "Daa:OHA;JAncSMliYFkGT4\lESl4PcmQ#[Q[[#]D>X1=8omRdoRT0nbWn]CF"
  548.     A$ = A$ + "fGn91[nFXVR?gi>WliYXFab=Ob9bA=ZAicKW#[OC3XfNGh2GX>SB5e:H[c>f"
  549.     A$ = A$ + "a>L;Oi;?hjed4jUKSI<SaW_3jljBDM`G8H[3eNNF=WMZ?P_OhIJjUWQN\FT]"
  550.     A$ = A$ + "Pe4Y>4cRiXIJ1W?kTc3HCWj[?2Rm3fh_^e]^<C]HE8GkWLBJWkLW^CNbCZni"
  551.     A$ = A$ + "I5>dO?`78hCWRA?4?dP?KYVcX_^ajolLOXW345GHm>fK;[1BodTJO:djbR5H"
  552.     A$ = A$ + "GgdWndMkI?ka_gGUg3EF`jMd3UIoOdGS3]N\H3WOALF]CMXai7PZe[:78FW\"
  553.     A$ = A$ + "fGWjDW2^><4P]?TCfHkSeKgDM^GN3c_hC7>KhXWiG:Wc2Y14gGlo3WGkHoS\"
  554.     A$ = A$ + "mYl5lQo2F`2Lgb]L;1GgU5Xa=^anjMQjaTjAVJDCao]l2F_WnV<eQ2fi4Rn6"
  555.     A$ = A$ + "NF6lm9mfIZA=5kgb;H_]\N?af?dj\\:h[[A>bAj7W`?0Z7OFj2a^QekI]NV?"
  556.     A$ = A$ + "KBCJB`eGIMh\\3m?mP;doboWUFHeM5f]bk_WolW_omiQFGEZ0eW9aj3oobNP"
  557.     A$ = A$ + "EonYd1F[7OfANK=[I=;ON\7JmDY6<V=a9>AOMOAoXSeADnoWMaRE;iY5[GaI"
  558.     A$ = A$ + "`<eLHXeAUZPmoH3dBFbBLkJGkB[oWQQl#6oD`JE3LP3\TZg:TEQhO<jA?JO]"
  559.     A$ = A$ + "_`N08gWDO_:kPeSTi\gQnZ0eKX\c9MQL0MJCKJ^e^fejg3Ujm3I3`>7>[?Ga"
  560.     A$ = A$ + ":FA9A_C[DU>dQ>h[mMf3<ea?_3PmE5jio:=HM7lo<iR8WgJd;bZ4c9]#0ea<"
  561.     A$ = A$ + "a9aZ1n#[5Zd0M?iO8aR7kA3]NXB3jIAl<`DVbDla?1O1ajA:F05>`7>\F?n`"
  562.     A$ = A$ + "1O#[mc6F8O09^Q7n`7fW;#4oLU?dY7\F2nE0O<C>HB_fSejE>iTMPl1Ul3Tc"
  563.     A$ = A$ + "kd3MX3YlQ>5`>[OXogCMFCnf6jiIao6Z5<\1Rg7SnWm1P_gD<ab?\HDA\DXO"
  564.     A$ = A$ + "`BOa4o:#N9P_62ml\8g`N1H=:R96i>;?34J=EY2Hc8eE5[OP?UKGkJG`W?5i"
  565.     A$ = A$ + "7d;#7gh6gEeo4WMl=1?7Xg3lo`\UWHVPVWc9FlM0mmNjog4GU#?G:ZkP]#l>"
  566.     A$ = A$ + "Kj3<kNgkFm5g8P_a>a9>Q_>2Y7iXJZZl2b;8Rc>e6?nXPH#bJKkOokgkk2lM"
  567.     A$ = A$ + "GUP_QH=Ndjln?N?8jm=\Q=hVjDWZKh3OhNki;Wk=JRoK=2<h1?h[NNHGYdWP"
  568.     A$ = A$ + "hiKR;5i55kOUc6WBUcb:Aj2k9Vc5ENO0__7O4AnRB_Q4OLD:W_4l\\YcinIe"
  569.     A$ = A$ + "[Nenh`R==H3XZS:1`niXGACmRA?Ca>[T\c9Kf;8J9lmGF[>bhJQ[9^f`N6^>"
  570.     A$ = A$ + "ij5kJhjWnj=iG9ao6M_\YA47hK?ZONbC;b;GFgTNX7kAPH7`I8I8mG4JNFG7"
  571.     A$ = A$ + "ocL\SM<oe5JLjSgHoNOjCOlnj:dSSRBC8OEjI?kYK4SH4NKRFeZFUoM24_7b"
  572.     A$ = A$ + "Q2Ri9f6A^DP_CI?cHW4_[`PeQ1FC6HmiJ2kWKon\f]1O>lIcg1JMn>IMMl?3"
  573.     A$ = A$ + "fd#m1R^WJLH2CH2nJ7QnnBYjidFFR[kjT?NS2eCCcKNcm?G#Oe5m6eV:fCSO"
  574.     A$ = A$ + "Da7Bh35lW:iJ:iH1nEQcLE\3QmFcc=0oMPnB=oL\eRW[8Wa8_hgjFgZGG_\U"
  575.     A$ = A$ + "]<glVgll[YCNTQ_giMCE2m_HAf3N_0[_B^4A>eA]5P?Di<FRn=9_[0m:iJ7?"
  576.     A$ = A$ + "G`NYGlRG\goB0jIPo>ooiWcIC9oncI>caol4nRQ??\E7Ob#Nb;=_#842Q#84"
  577.     A$ = A$ + "2Q#842Q#842Q#84RbMn?0fDo%%%0"
  578.     btemp$ = ""
  579.     FOR i& = 1 TO LEN(A$) STEP 4: B$ = MID$(A$, i&, 4)
  580.         IF INSTR(1, B$, "%") THEN
  581.             FOR C% = 1 TO LEN(B$): F$ = MID$(B$, C%, 1)
  582.                 IF F$ <> "%" THEN C$ = C$ + F$
  583.             NEXT: B$ = C$: END IF: FOR j = 1 TO LEN(B$)
  584.             IF MID$(B$, j, 1) = "#" THEN
  585.         MID$(B$, j) = "@": END IF: NEXT
  586.         FOR t% = LEN(B$) TO 1 STEP -1
  587.             B& = B& * 64 + ASC(MID$(B$, t%)) - 48
  588.             NEXT: X$ = "": FOR t% = 1 TO LEN(B$) - 1
  589.             X$ = X$ + CHR$(B& AND 255): B& = B& \ 256
  590.     NEXT: btemp$ = btemp$ + X$: NEXT
  591.     btemp$ = _INFLATE$(btemp$)
  592.     _MEMPUT m, m.OFFSET, btemp$: _MEMFREE m
  593.     BASIMAGE1& = _COPYIMAGE(v&): _FREEIMAGE v&
  594.  
  595. FUNCTION BASIMAGE2& 'BLANK.BMP
  596.     v& = _NEWIMAGE(158, 159, 32)
  597.     DIM m AS _MEM: m = _MEMIMAGE(v&)
  598.     A$ = ""
  599.     A$ = A$ + "haIk37D3000334BDWoefV<j78QZ;EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE"
  600.     A$ = A$ + "EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE"
  601.     A$ = A$ + "EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEMf7?=jK%%%0"
  602.     btemp$ = ""
  603.     FOR i& = 1 TO LEN(A$) STEP 4: B$ = MID$(A$, i&, 4)
  604.         IF INSTR(1, B$, "%") THEN
  605.             FOR C% = 1 TO LEN(B$): F$ = MID$(B$, C%, 1)
  606.                 IF F$ <> "%" THEN C$ = C$ + F$
  607.             NEXT: B$ = C$: END IF: FOR j = 1 TO LEN(B$)
  608.             IF MID$(B$, j, 1) = "#" THEN
  609.         MID$(B$, j) = "@": END IF: NEXT
  610.         FOR t% = LEN(B$) TO 1 STEP -1
  611.             B& = B& * 64 + ASC(MID$(B$, t%)) - 48
  612.             NEXT: X$ = "": FOR t% = 1 TO LEN(B$) - 1
  613.             X$ = X$ + CHR$(B& AND 255): B& = B& \ 256
  614.     NEXT: btemp$ = btemp$ + X$: NEXT
  615.     btemp$ = _INFLATE$(btemp$)
  616.     _MEMPUT m, m.OFFSET, btemp$: _MEMFREE m
  617.     BASIMAGE2& = _COPYIMAGE(v&): _FREEIMAGE v&
  618.  
  619. FUNCTION BASIMAGE3& 'PASS.BMP
  620.     v& = _NEWIMAGE(324, 155, 32)
  621.     DIM m AS _MEM: m = _MEMIMAGE(v&)
  622.     A$ = ""
  623.     A$ = A$ + "haIkMN6[ED4666`2H35\0:ME`2Rm6F`^2::4kX8FA454\g[A15kPUPmJD80f"
  624.     A$ = A$ + "kR6SXR6R]XH;Z9ZQ8AACDnoJNV9O7F>L?Wc^c^kiN^gkkKbC<8\cl=k>ckIJ"
  625.     A$ = A$ + "k\][M];ZM2Q#8L8999eFGb?DBBBb;i7:999iUl3UTTTlBnQBBBBN9o#9999_"
  626.     A$ = A$ + "TOXTTTTGb?DBBBb;i7:999iEJl3K^gch2Q#4:b?D84]eYm]_mAMX3MX`l3kL"
  627.     A$ = A$ + "WkLD?kI?S6`06#df^]K[#84=\dY>eYX>fa>FHnQh5>h1?hXQ?lQ7ML7ga942"
  628.     A$ = A$ + "A3;MY;Mae7^Rb?Tn5RGhH7kHS^P;h242QXQU^e]^5ee^fe2c?TnPR_;ieeOm"
  629.     A$ = A$ + "G_#84=\\IKfV5]aKl6;o#Q#dV7i7:42Q7i7:42Q7i7:42Q7i7:42Q7i7:42Q"
  630.     A$ = A$ + "7i7:42Q7i7:42Q7i7:42Q7i7:42Q7i7:42Q7i7:42Q7i7:42Q7i7:42Q7i7:"
  631.     A$ = A$ + "42Q7i7:42Q7i7:42Q7i7:42Q7i7:42Q7i7:42Q7i7:42Q7i7:42Q7i7:42Q7"
  632.     A$ = A$ + "i7:42Q7i7:42Q7i7:42Q7i7:42Q7i7:42Q7i7:42QWF2nQk`>\3AMZCMZDJ6"
  633.     A$ = A$ + "2]_m]_9Ck^e]^Uid^8Qh^A?6]h<?Ra:mL:YTgg[bJlDDaHBR[\T?iAm^lZ>A"
  634.     A$ = A$ + "mliC;1o`]H;fRXNe[N5em^gMG\V6jJGkJD7kH7MTgYMBbk=ICfT<5gDO:[aH"
  635.     A$ = A$ + "FRST6Wm]_m=caHeN>E?Z[DNldi>giX=JSf8GKTbQo=hGTVHKkf^]c5Om^gm>"
  636.     A$ = A$ + "ZWm\W1G_`R[J53QL_8?ZgUGe9Z7eGJ9j7B<bmdkj^^[X7kaN\DS5;5AJG=^g"
  637.     A$ = A$ + "kmNMe92mj]hVjU4SCKJC;CaAAE696_V[iJbD<beE]WCe[j:a;Ghk#k^\h95g"
  638.     A$ = A$ + ";\Om[O>O#3:c?ocolA;H1;8jGnUO9Ji;Oi=IKYU^dU6mmOog7mV_iKF:^<ZF"
  639.     A$ = A$ + "<Hg;2miPMmYmIZU6I]>A]8?Z_dBe?THlmN_g;AiMUR5NnL]GkeV[YMed?oco"
  640.     A$ = A$ + "LdEL5GA`G_5g3LP3dE_Wj0I9>VolWO`aBeBKRa[l:_b<5S?d3m#U:_l<jj^^"
  641.     A$ = A$ + "[[IY^BU4nEh9AjF^Wdj\>[S[ogeZ?QdG90_j?ocolPSUU]\U5=kI?kXeKmF?"
  642.     A$ = A$ + "7E:6BCKKC_f[mJUN>\iKnV7dcDkIIF[CD;E]feb?\fa2a`UOiG^knGm`?La;"
  643.     A$ = A$ + "NaAWciL>AoiOnW1Mmgf]MK^hnl?oc?J3g`=<jeOmG?Xdicn\?c57_d;mB1Mm"
  644.     A$ = A$ + "ECD696?_cklLah3nP?H#YSEFQ;kb^\X[nZ_jPl4;bWWaeBFbBLnRfHfZTWX="
  645.     A$ = A$ + "VC[?QiILmKof_5M;gb]DaH84o`OmGoeB?7fV]IK2b?cNF>a9>AGM2l7;2E]f"
  646.     A$ = A$ + "eb?\fabX7mXMN;lkFeSf?;LQ;<j`?l3?JA;JA1MmDORhNDSJDAMY;M9j]N[g"
  647.     A$ = A$ + ":Xdi1NP7`57?jSnX1MmECD696?jSnXSFoeOmS^WkiN2:M\b:<na?NWWH8oVO"
  648.     A$ = A$ + "mb?ddWnYOJdJ^V[ICj7AO3]i:Ta<Bo;cKmgomOkn]SV:62a?4=Va<6gcQcl<"
  649.     A$ = A$ + "?CgL3l`?l3WZ[gNFN2W`9hZgBm_R#E[M]l3[M\LP7h16MjWnY7M9GbUDGJo`"
  650.     A$ = A$ + "H?jOokOdMNWgI#GoTWlTMam#6b#LN=TNQXCkd>]X1<P14=UY<UP^nZ9KlEkl"
  651.     A$ = A$ + ">_cA[kj^^ACMZC=XdIX3MXUN>Qo?Um#nmnj]O8j5OaGdi7A\SW4nhfl5Jm=l"
  652.     A$ = A$ + "[oj_^`bO6oaTVdTFYH8;nQGl5Oa^dQhVng=cI>cDMmfcbmN_gKgHi3mg8[UZ"
  653.     A$ = A$ + "FkJi7FkHQf\dFkR^X;Z^dnI>cI>^igiB_d;=X[WahJcO8Ycgn]OK#Yc>]CkT"
  654.     A$ = A$ + "c?=;cUIU4UARAJg_F[eJ5M3g`=4Dj#<J?W6a86Ad4V`4LmkYUPO8bNF1To<>"
  655.     A$ = A$ + "IlChnb[l:_BQWo<oVWd9MB[dLZ5ZOh7mAOT;=hi9m?L6cH6Yjj]WUdfWOSl>"
  656.     A$ = A$ + "^Sk8ea#BDeJG;o``RUR\mccn\?KdZ]J[Vkg93AWkiN^^hVnI`hPnV_iK2:MH"
  657.     A$ = A$ + "<;\?]hgmcKAITHTiIRmX1m=:4]EKeFEji4S]WbN;9o`?h3nPBa?m?KCgd=]d"
  658.     A$ = A$ + "J[FYe=>_e=MCgd:i9C<4RO8Z?mY?AMX3M8J3fP=8enIfcBF?6l3In4;2UWN<"
  659.     A$ = A$ + "b?\nh7BnbHEcbecL#QOHXSibfgZ<WLi]TOh:d^]KkFYb0NQL?Qm8CmB\n:Fn"
  660.     A$ = A$ + "cHW]H84ISiUaULcgl=WZ[EnQ5K\fBg?Tn8VU[O]GkefE_:4mn_okkB3n]NV_"
  661.     A$ = A$ + "ilFb?L5JTSLT^hOeGmEgi5aN2Tm>HmD7fQMHU^?bjZ4ZOX]WIHnohi#JTl3;"
  662.     A$ = A$ + "fH]U^O8]?nb_l;3:=\aOa_CWUH0o#VCYlF]fl33mi4j\>[cZd_Oam36_J8Re"
  663.     A$ = A$ + "_Pk7\g>C[R??V43\N8Q:ROl3_`;l2Cee9o`R=FK=h7nb_l;7DJHSmQe#;4MZ"
  664.     A$ = A$ + "WjYFZ?ZDNcKeJc?Tlo8>RS8X[UehdZWajGan^>4Ig;N^WkiBme>[I=[Bg7I]"
  665.     A$ = A$ + "#P#e`6f`LcEch6ghBee9o`R=FKTm3]d^JPGDXk35lI`?TmbE8:^O8cgN8:YU"
  666.     A$ = A$ + "aF;nQ0[GKJ5k5Mc7PikUeB94aeBj<fa>fDO]f_?1h9cJY5ZH<cl<mT?iC>EG"
  667.     A$ = A$ + "GNi76_>Ae#nQYC=WnQ\>6do`#gc=l>2`JlanM>4IeY86^eKmF3:=BBMbeH=F"
  668.     A$ = A$ + "3gh4_aKl6cDLf8h7bc\i=_iUj[elRH?f`mR#g_Wfm1fSaQ630ca2eMbRjA?j"
  669.     A$ = A$ + "QKNACSZgnQkj^^[^mJTf_=9Ce3o#VW5f_I\FbT?6\7^0bc#4e9XNmaOl7O#G"
  670.     A$ = A$ + "?c[_iG5jn0[FUa1=X1ijC3em3ec]Ab?TiJ=Tig`lR86`?l9NRW8hH0?i#n=D"
  671.     A$ = A$ + "km97hi1mA<;Ra<O87bQTZ[Y8l3I^<I?MBo3RGg3_#F39NGJhnUl3cF\TGY=n"
  672.     A$ = A$ + "43N`3>Jh3Oh^l`Pa[POFJWCJC<NGlJ2M]#\hSn7>mY?m<U6EZ<RG=cK?m5Qg"
  673.     A$ = A$ + "Yg#DSVOH8_[hVO8[[<o68oi\43YMMMSOm0eKbZO8cabn^_kKZ^VR`?TmL=nN"
  674.     A$ = A$ + "7caL<[DM?jG8NQdVnZ^Z[BnQI<Fb[dVn<Q?1ci3Y_1n4DW0?aokon_DWnh7B"
  675.     A$ = A$ + "O=2I_bHmEPnJ#o3_okonCMJPZEI4_Nj7JFNgmKdl33iM5gl39oa?lINVW9Ca"
  676.     A$ = A$ + "#Xc5[MOTj=dWn\8V7eMOggmDM=5QO8[W8]5H>4RGgSa8Co2a;<?>SKTOHn<O"
  677.     A$ = A$ + "C<_cdG#jK#lc=D>K_i\7Tei;Tm?1_oKdf:4_<[m9mCPeT9D_ZJE6]g?=n_QN"
  678.     A$ = A$ + "f>eJc?TkE?mCodI:6hlm9d[7XNCFm3AYM^NbKo#F[>jW[m>g4_NGU>WeTOHH"
  679.     A$ = A$ + "aBNen1o6j3Hlc?Dk<lUg]OncL^KUFAK<BSGmEOeDO]hUJck7YAXW_=YY<:o`"
  680.     A$ = A$ + "E\gSJ]h7nEOeGUZomi]O8S]QdQO;f>oKK[OnHgXj7bc<N?]h<8Pg7>>;?JZc"
  681.     A$ = A$ + "9h#c3JSQ?D8W90fN]QjAD_9dig?=UAi7fhh7B<4jnh?;:_l3YN0W=4l^3bI8"
  682.     A$ = A$ + "6Y3SaQjH\g>]bYl3CW:Bo`ZYb?WP3Ym1SaVe2Qg=ed:6[NNdn\J:_>;TUOhZ"
  683.     A$ = A$ + "63]em3[VNWgiM:E>cbiY^l3[OnQa?WPY?JQN>`aLg5R\jU\F7IIm>[Vb[c2I"
  684.     A$ = A$ + "i7^ZaPl3[\hk>SE>iL?D[WBbEcUOXM>1SO6[YAXe=3M>P\gc1fW<\FSl=g8_"
  685.     A$ = A$ + "ENMF8;o`E=6TOHU5ec\b9kg1>;kdg;PTYV;o`hWicfk:0W_kYE\7G2AFNclA"
  686.     A$ = A$ + "SghLWkL3:MZVb[c2Ii7^ZaPl3[\HnI\b9_kFlmkAO_0BVJ^l3SOV?SG8mOjW"
  687.     A$ = A$ + "nYO:eY3WgoYEaO_]HmHXNi;l2_#ZCWJYlj\#FnQ[J<8o`:[hWS?lncLfWmIk"
  688.     A$ = A$ + ">ogUOHfRURd?<NKLkM[Wi1>]:TcPohnQFkR#?SMZV:RmN[l3UOH]T]g9PmOo"
  689.     A$ = A$ + "gOgkX2OSmTOHfRUj]OHXOCXB[RGOaf7J5aga3i7^29o#_TOHUog:o`Ef?\Xn"
  690.     A$ = A$ + "FdF^>fSmH;Ugfk]EAh5;o`E8i7jUl3[loFi7^2o#XX>K<[FNK_Go_aKl65Fn"
  691.     A$ = A$ + "8o#i7JBnQEnOK[Mo#J3D9\cJ;Pj5II?gTFAOASWg\N>Qn]=:9UAi7:o#CiUO"
  692.     A$ = A$ + "8OkOZDm^3h0>0i7f0j7JYM]`f_=hC5bij#FR;;_Okgn]cLJE9\e`nf_mK?Xl"
  693.     A$ = A$ + "#nQ[J<dFg?<YW7\Lfg`g^6]nb9C=2nQ<ONfgk\_kkn^Pb[T:nV85?_cbJKSB"
  694.     A$ = A$ + "BicJkUe_I8b?DnQUW>e2nNg`n_Ako`TYjQO8Wg6KiF^UAkh>^S^cn0SmIOf7"
  695.     A$ = A$ + "GkKnF3IO?L;RiZ<^R_GKX>5m=ThKncOn1UN9Y<Jc?J[Uc3Fi76^:2o`ndWnh"
  696.     A$ = A$ + ">3Uhl`fZg]GkeN5MX7jQjnn^<Y9=9MN`V#E?l3iie#6b#LkEnA?jAG2VgGf["
  697.     A$ = A$ + "XTWLf]5jij#J4N9FLAM8jK8NI5IId>3VhKZD8BnQ[J<dLh76jnY?^:2o#>CJ"
  698.     A$ = A$ + "?bSl8MW7fFm^a<Vah6W<WA\<gQjmG>IZNh7bc^SjX>:Gofim;gPc^GNFa_MA"
  699.     A$ = A$ + "NQWAXW1<9EaGk=NoA\_kT5IIdjkkSl8?B#iQl3GeHXi`?Tj>IiK#=Z8l3?h3"
  700.     A$ = A$ + "nPMSaRcRmhekhlWSa9ck^LNL6g8o`R;];7b7f7PiaIdIeTM>OIo^:Wk<#AF6"
  701.     A$ = A$ + "]kSjlnZU_OHXOS4=eX]7\TOHbSUjYO8WcndFQnZ]lU_lPb_TXheSH^m8?UOH"
  702.     A$ = A$ + "b;[]em3gUMIG2:O=9o`:o_]Aa?\BOo?jGojWK\N5AJ7okl0ooSGF:bmLCleN"
  703.     A$ = A$ + "SmR#Nh7F[bXMO<[nQImKUANi7^TU\TDO]Uk7bgV^\43Qh7bNf;[nQIiKH?ZN"
  704.     A$ = A$ + "mmCYlfFb?<IbZOeDOo?hNI_kM_;Td^Yn>?HUU5\P54DnE;5ok_;`gXAb_\\^"
  705.     A$ = A$ + "f9Y<Je?cZOHFoFIT7eEXmG8ZLo`\lmaSH84o`b?7?BkLcHcmlCmD?EZcKCeS"
  706.     A$ = A$ + "_O:a[G#iDnQ9GD7INcKN^a0]X5]8gnoS_SR0k?4F3fR8]Q?iCnTBg;bSbBBR"
  707.     A$ = A$ + "7;ojOok_K=i\mmHAF6Y>IFl3YO=cI>cam>F_`5^`X5_h5klf9mSOF8G?l3ik"
  708.     A$ = A$ + "9M8:_l3YM?OS8bbHfQ#nNBQO8o^gh6ghBMNK:?OoDZDM2STF_#nQ9CggmMO^"
  709.     A$ = A$ + "_Q[Qn^\E;m3o`?DjN1kONK?gDD[al<Wi<GYkmlmkfVgbRb3f:S<NIbolFl]Q"
  710.     A$ = A$ + "g:CeJ]4cJMU\4ofgc#^GCoFV`4V##Y3[76m9j7oaO<hH8;nQL]3LP3<ei]Yj"
  711.     A$ = A$ + "ak_\9[\bNhPiF<[kiVfjnQLokD>UCamk#5QnR_h;:M_Pc`Gl<XOnQ^_U[UR_"
  712.     A$ = A$ + "GKXM5WSoh7FTm9e:Sh34jk[Ge4[;QEVZeN=[XkoMeDlkmhWai:don_oKZC7j"
  713.     A$ = A$ + "3DXonLCM^6U6IU1jOJXcaMcQO8k1<nV1TeeKY]^OhX6eXLkcm#o^OD;m^_kk"
  714.     A$ = A$ + "FjN1eEI\#<7L5eN^9nki>kUOfknh1GTN4FITb5k7\lFCMZC]DIZF_;2=:nQf"
  715.     A$ = A$ + "JIlaOl7GGSQhWS7fiJDJTE6`?OjCOj153=7nQ\_HI<nDoCnQQ;n^Od[Ne[XY"
  716.     A$ = A$ + "<UYTkY=RcXoh[e[m^R0oaOl7iNn5O?:<h1?HGmkRf?d:Sh1`gfWlFhoIUYJm"
  717.     A$ = A$ + "^ZfLj76oN?n0h7NggmMGgbO>ocS_FJ43Qj7Bo33ikD1Zi`?Tjjl>[#O4UOHh"
  718.     A$ = A$ + "Ri9Qj]d?kR#cJFcZdmRmH?f3gHc]a_F4kiVhm?Hof_mcM>8EdnQFITf#do]l"
  719.     A$ = A$ + "FWaIL6[d_YD]cbTVCo#kkIX=FEPjF<_oe3egnfgEb?TaP`k^NJTi7bn[ReEI"
  720.     A$ = A$ + "I;KIY>>J>l37dP6TKM`hmGAnQQ;NfAmFj_AAXh[g7_3jlKH5YoDlf3lMfQa#"
  721.     A$ = A$ + "`JhD?FCKl3In7bKUVcncV;o`h[SAlnVQO8SgoOnWoY#cOjGDllWfMfi;GJTM"
  722.     A$ = A$ + "_Vmk3[7C8Sg_i`?<?lITOHc[O8kSTlDag;^fH;I?m;o`RELO?NO3]kmfL5Kk"
  723.     A$ = A$ + "Kboj_n[29o;OLbfh7]gCcd8kNM?jA?L];Va<VAZS7i7F\aI[Eo`lN?g4?_fj"
  724.     A$ = A$ + "]N[S6i87YKmH[GkiafRnQ=UG8[[?eiImfi_3o#6k9SUKY;MYiJnciACiNQdV"
  725.     A$ = A$ + "S_Igfn`?=:^O8m?<Tm<Tl3;fh\eXO8[WbdVfdbel:^_1kaLkn^l3cOanD<nJ"
  726.     A$ = A$ + "i77RAVcC>oEH_`7gCTWo?nSohI>oi<X9nifQ1N#TofjX5ZO8#<CKSOogomDU"
  727.     A$ = A$ + "6b?\HSchWCF\_\Vm\W]kLHVi<QecTWQQR]n33MX3e]o2hlkSm#GNTf#lf<VO"
  728.     A$ = A$ + "8SQQijVjKL6n?gi>GghBH_2`IUHXiElegTci;lVH_VGTgoRG6I>Whlil9ObW"
  729.     A$ = A$ + "diAbNHROWQe3>;YOlbEBl3;Rb:kE:RSJMV=_WkiNjVGOjG^]WP<?ahokhN6o"
  730.     A$ = A$ + "mOh7nQYZmOelQiM8Wm;a9NRWXK=iINB\ci=nFcbm4f7k<7:9iN]]V#DgTmWK"
  731.     A$ = A$ + "B[SJ]Y`?dj[1?;HnQb[j46]5m39n`kXJe3K90kcA>3;YlDNkSl6JG#m5jSB["
  732.     A$ = A$ + "UkO0W3Nh[EYeG^iZ\>P1<0gcGl=a_Ylm<>NRE:^jI?kIYm>?kaUbKccOGl_="
  733.     A$ = A$ + "I=5hSaIe;NQCLRCdiiTek5D7UmQHF^_`H6Z7go]kO]5FOiZEGZU4dg9f[8lK"
  734.     A$ = A$ + "\5MIRc79FKIl=J]Lo3HOgROCUfoQecb:N#Kof_m^e^HH3KH^mJ4cgFeNoIX]"
  735.     A$ = A$ + "6SK>_R1nn=`n^WlWmb5m;UWiToImN1[5DFSe\jWVDhg2hg>hLR]e^OHLHO2B"
  736.     A$ = A$ + "Ja_SBK3j_0SQ:;`nBQc0OVc7l#X?LiEJ3\WiHm6Ym2eGSgFVa_Po8SOPnFPW"
  737.     A$ = A$ + "IFb[3jP>8gIh0e=hnDi_oB5am_b;Sh9<i9?IGohhn:gOcJjCLBlBLgDU[jEM"
  738.     A$ = A$ + "56[:Y3n?TVDgVj;llSnV`cfJm>dbkO=NV<_9QhgP?<m72OHVW7jC8eKI^AH<"
  739.     A$ = A$ + "h=EnCna_S#lbINDJ_GCiRnMbie?oF;?_CBK:Z3P75Y1ogl\>Q1U7:GFobK;i"
  740.     A$ = A$ + "7bcJnm?B?:oLoUiC:;`lQ`kF\MFTWWY=#O2Ym2cY3?_Xm#i]KIL]hS#\TUlR"
  741.     A$ = A$ + "HVHWbPe?QRnnGiUAlg9?H>khnJF;C9YLE_Z[#iTbch7ohMn3Tfl\;]WIm4Kh"
  742.     A$ = A$ + "MAm=B7BKlJ`[POG1o2lNSk3c_eQog86a8LcAYi3KgC:_NECE7SlZF??JZkeV"
  743.     A$ = A$ + "7>o>7UM^?TTfDD7`lXioVWe9RWGD^XleFhmG^YZ;IoV5?_hiDFPdPdRdTWki"
  744.     A$ = A$ + "IJ7?m]j5UgVQo<i;omI=?SGFZTWANOo[lb8U5[=DAl<:=WQ9iIIU[_Y:WiAM"
  745.     A$ = A$ + "IBOl:hgC`;Rnk5gc9[n`YY>FU^GWVkUFJ4oNDNGW8NNI??bjg#UFRnQ2A[AX"
  746.     A$ = A$ + "]LiN>V_Ain`iag>9aZRl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`"
  747.     A$ = A$ + "Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl35"
  748.     A$ = A$ + "2Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`S"
  749.     A$ = A$ + "l352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352"
  750.     A$ = A$ + "Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl"
  751.     A$ = A$ + "352Q`CAj7fnfgnX>eY>5eU^dUX^e]^ib;Q#8JDYOm[OAM_kM_#l3k#7j#D7k"
  752.     A$ = A$ + "H7SjLWkLDGkJGMn^2Q#dX2NQmZGm:gm3UTTTJ=;i7:999iUl3UTTTlBnQBBB"
  753.     A$ = A$ + "BN9o#9999_TOXTTTTGb?DBBBb;i7:999iUl3UTTTlbl352Q#d^Xo74NT%%h1"
  754.     btemp$ = ""
  755.     FOR i& = 1 TO LEN(A$) STEP 4: B$ = MID$(A$, i&, 4)
  756.         IF INSTR(1, B$, "%") THEN
  757.             FOR C% = 1 TO LEN(B$): F$ = MID$(B$, C%, 1)
  758.                 IF F$ <> "%" THEN C$ = C$ + F$
  759.             NEXT: B$ = C$: END IF: FOR j = 1 TO LEN(B$)
  760.             IF MID$(B$, j, 1) = "#" THEN
  761.         MID$(B$, j) = "@": END IF: NEXT
  762.         FOR t% = LEN(B$) TO 1 STEP -1
  763.             B& = B& * 64 + ASC(MID$(B$, t%)) - 48
  764.             NEXT: X$ = "": FOR t% = 1 TO LEN(B$) - 1
  765.             X$ = X$ + CHR$(B& AND 255): B& = B& \ 256
  766.     NEXT: btemp$ = btemp$ + X$: NEXT
  767.     btemp$ = _INFLATE$(btemp$)
  768.     _MEMPUT m, m.OFFSET, btemp$: _MEMFREE m
  769.     BASIMAGE3& = _COPYIMAGE(v&): _FREEIMAGE v&
  770.  
  771.  
  772. FUNCTION BASIMAGE4& 'star.bmp
  773.     v& = _NEWIMAGE(190, 190, 32)
  774.     DIM m AS _MEM: m = _MEMIMAGE(v&)
  775.     A$ = ""
  776.     A$ = A$ + "haIkMNo\DD455NnWdL>QiL>;6:4#4##PRT05I99P92FP:15D11:1D05D\0OR"
  777.     A$ = A$ + "PB##Paj[jZ[MN3c\k<kfcdmlfc?lE_E4N_memI_cY_cmNWXGiERS42Q#842Q"
  778.     A$ = A$ + "#842QX\<UY47=i9kog72AMbFfBLdVg\oOO84e53OhaAWndaAocoHN]_Oo84e"
  779.     A$ = A$ + "1cKNaAaa6VkLSSNiG^mhkg_2Q;H?kYU^OGkbX]OYG:KTfG<DPgl=SSn_o[U^"
  780.     A$ = A$ + "o2G8>j=NShXGl5=l2_P1ko]Ekkkgg2A_`ZFE;=_UU_LSFoiN^hXWmI=`[i?C"
  781.     A$ = A$ + "jNa#1>bA^BMoQ>TAWod?MLdCnT6heBk;6:`4V`EZiQ;OISoW7oaSSNT7a0_6"
  782.     A$ = A$ + "]ocolBg;JfliONfjNhCnThX7nQSSNP7`0_n9N2SW7[?OOonG8j6>i9cGgOlS"
  783.     A$ = A$ + "77MogOLdMOg6he?jSJRi;_>RV:cJFi[i]<bA67M7gQ1dn?d3IljS?ORi;M_X"
  784.     A$ = A$ + "Ya>fAWemKH3aAgj]Jh>_CC<o7ka<NM\almm_72AAQlcOncgIM?e^`]MKaAgd"
  785.     A$ = A$ + "=InjmL?VchZcg:JR\\UeI=_Ua=^hX[ojSS^iK>>j^^[hX7l1=W_ENM4==>h1"
  786.     A$ = A$ + ";^^OkK?>jJ_fhXKl6SS^mK?>jn^?SGWWiIdiK5=76kH=iW_XjNZQ1lfC<Oli"
  787.     A$ = A$ + "ciK9WV?eC9_>RV3[Om5GcKIVc<>jj^>S?On<0ic?I^lU^G4j<`0UGgOP347M"
  788.     A$ = A$ + "=GCLd=L3VcgN_g[bU_Xi`dVFielF`C?NM^UK9>JH3CibGdLHKK[kem[H5Vcg"
  789.     A$ = A$ + "RG7^?FT;OZI7Eg2R#VGkeRS>kIkNM?nS#gKmjXLi;J2\X5emJN;lI7>OKbLi"
  790.     A$ = A$ + ";_>R#Vm]_NGgCmKJcU?NMD^l5Q<SNdaAGjBm^^oLWc4[GibGd4PJY_GelFVh"
  791.     A$ = A$ + "4_B_>Z^54Q8on_k>M?cK1bUObjFPLi;_>R#2VmO^Bc3hG2]^=Gnb[S84QIoW"
  792.     A$ = A$ + ";em`lWO[LiK[K1U;OAX0cl?VmO^Fgc<H#e]P8DQInW[elF8f>W_Ee]P8dHgk"
  793.     A$ = A$ + "^jdmOl7?hLiW\^5D?8:l5YWoO^VCM:cIK]ibGe]P848[ioW[IDSBibG4FLh3"
  794.     A$ = A$ + "Gmjn]^Ee3RR`QgiMZN=?P?:dkZ^54Q0KLSeS^7VndE?8:23n[oZndmkOoIW;"
  795.     A$ = A$ + "OieADWlN_GmYi]PgV\j1AieADGlMOGm[kGjBE?8:l75MnoiJ>fa6\GWTibGN"
  796.     A$ = A$ + "M4E=UInoiJhW_j1AQ?PiLS_dmOfWMUe]PbU_XZi]Okb=ooL=Wi<6omY[K1U;"
  797.     A$ = A$ + "OAEbjFWodlF6ohEM;8ZGnSo`ojNbUTZK1AMaDWZoel0mP8eZPj1AAM`GoenG"
  798.     A$ = A$ + "cKI>cYmmPXdm2G#_>ooL=ol?[N#DDmhRioW[Qlf[N#DDU\gmjOMNJFmZc_74"
  799.     A$ = A$ + "EM;8jEXOW^h5m_>?=D?X4_7_>Z745^6j]KO[acSA<2Eg2RZQSNDo[_c3VGE:"
  800.     A$ = A$ + "Gn2GcTVToef]3Z;DlhXN#DhBfdVl_f^C<UYTM?8:_>R^1VoOomOkOMMWh7nQ"
  801.     A$ = A$ + "Fib7_>Z745m2EilocU#mQbiICg3Rb[SXKPI#__ed5U5_H=kT5m>TO`ZLnoiJ"
  802.     A$ = A$ + "hI>QZK1A_b:GYoebU5R[KcU_ZK1Ag`_l;nG7GFFkJc^74C>kTUfGT7d?CnF3"
  803.     A$ = A$ + "g=LjCKliXIW\KPIT4c^Un5fi>m_6^KIi;gl\#TWgFCKJaAcNfaAcKNVj9mmO"
  804.     A$ = A$ + "ohXU\4o_njB#KFEjnA>BcLZcgkY2AB#CRf\ZSkSoAGlL9F8j5XfHGcJ<Nfj4"
  805.     A$ = A$ + "^Bk?SI47MbCjoOg5mWPf3oKTOZlPcaH?;S[dolmPW]=kKOnO=#dO1mnc[nZV"
  806.     A$ = A$ + "lCU6bE;`ig9gEYeo^#gcg;nnbcUNikADeP_6NN:amO>;X6l0^G5Tk:nL0jO["
  807.     A$ = A$ + "f_Gemf[I`g;n<5OnRjd]>W3lRn;>a9RS6cH<g;R\PjaPJCRkA7i\U?7Pf7]I"
  808.     A$ = A$ + "bkIA_XmC[kicEfi_NEn\\DdO2iC6m<g3^\Pj#RN<SN>Pjb0m?eV1Jbdg[>G4"
  809.     A$ = A$ + "c?IlNZi?nIaWk8OZbgSXG1O=cOnVkkLN#mgAmH#]8QnWkA7J#dRX9C7_gUnk"
  810.     A$ = A$ + "9>?eh=N[X7OX7gh<_3<PoGk4=C#kPfRj]8?\mB?JO^_d4c7]7J#dRX9MYond"
  811.     A$ = A$ + "NM\JOlCQ_:^V4G_QOnnhi1RXIcfg^9nmEMEG9GmEKPJ>5M?alYG38F?J>dNF"
  812.     A$ = A$ + "_mYel^:?nIYmC7gW?3^`56VcO3AH1J4VkQIYgCZkCZi;JLNGG?BYen9?W[e_"
  813.     A$ = A$ + "?WgPW9>bgS8?HnBSF]CJNlg#mfQg6jUBdFFol9?7KEZicb_ObcjbeJXnGiJ?"
  814.     A$ = A$ + "LN3nZlm8BCkleHQHlXia??nJ8?>F=5J\di\\>[iDikAD6X?fJ:nJLY_W#hIW"
  815.     A$ = A$ + "P`?dDmeh:O?Okgjom0AmbffFcfGSlm8:3h[QnOIXP_6ikAD4H_Uhc3eleD6m"
  816.     A$ = A$ + "_lmdOAEh[9dekMS_W5\0ikIX0mCnJLU_WGoeU_WV<7ohmWnJ:Sn??O?D?Ybg"
  817.     A$ = A$ + "Cc3le#Lk^eGCEDklQ4bgc#;`Gc\VUled=Jollm`c?Cik9L1O=\_9O=M_n_Mn"
  818.     A$ = A$ + "NnV_aokaR13?7[KW_6K<nnEO=U=fONnNX7LT_7o3nJH>U9O=^Gkg>O?L]EO_"
  819.     A$ = A$ + "gg_ba>VleDejoTnN\mcUeg3e`Z_e0mKlEOUleDWanccg3ckdVdcVQV:bGSod"
  820.     A$ = A$ + "nbgSOX\nJH678O=^EoWW_7FOU_7g3nJ`[BImeT^?_U_VNGk;O?E?bGCh#Amm"
  821.     A$ = A$ + "`L3EnNjN`G3jEi[9\XCnNhJ\bgCgQle4f8O?^5FSVi<U_VV0iik9iljDnNj<"
  822.     A$ = A$ + "^`G3[iIi[agJTQbDDO?DS\nFS5J\e]:O==I:Z_WE\2o[e25hIKXle<dP>iki"
  823.     A$ = A$ + "Sn8o[g25HV];O=3M8?O?4OB?GFJ1c\Ddg5YOXT_VV1IikQlEhK]FX1c`UdJN"
  824.     A$ = A$ + "i[YiCB]ogomnGW5J\Y==H_=F=?cnSQ=<i[Y93k?l<HAiao:i2G`Xa]WQ5_=4"
  825.     A$ = A$ + "WgZiKjc_VnMn`?doJ\#5N>LK?7;m82niaKCbWCDbGCcTSNDo[_2E>`1JiaQL"
  826.     A$ = A$ + "g`c=7ReSOnd?C0mmnXXh<i9kO]EX3eA6jNRgS^WnI3M_=F_dl=?fbFl_^:d1"
  827.     A$ = A$ + "OPhcQcdR?7NN8C>;9N_eSS_g7557Z=WcL6o[[2M>eY<gS:>G;WcUNiQWmgLV"
  828.     A$ = A$ + "FicYiaRFToeD=56cHJiaWli`mY2o?b[CcSm_Oo[WJ:`Li:YG7bY3iaTkEURi"
  829.     A$ = A$ + "gLh]N[hX;M9o[WJ:`J5eP3nM87nlJ^?]T;C^7]Bgg<H][eoJYV6cM^iW?Cie"
  830.     A$ = A$ + "YIPVU\UWOkgJMOKY6<YNdhnG9_>=3Vndm_6ZY2jKlj#]HVll]fjACjn`5=kT"
  831.     A$ = A$ + "kNFoj7L=;XLig<PJ[mOoGo[OJZLfcJdlIU;OMnf`UU_Lo[MJj<a9fjl]D3nD"
  832.     A$ = A$ + "g2:GnQ=7j#nGgddI?kYE^lil]:GnQ=SOlaAGnbnGgd>>i9=hkg7]3F396_bU"
  833.     A$ = A$ + "OcP=^Ao[IJ7kNg6O30_fg_OJ7;I93^6=E^l3G2ehXL_#C?g>8?iX]lmk]lPk"
  834.     A$ = A$ + "oQ]obil]fLi[JE;\H>caoJU\PIh0e5JNc\3VOoQjWGiIX=alCW;OMnf`QM];"
  835.     A$ = A$ + "o[CB3_W`CCWV?ChO>4mmlUOIneU_RikO2]n6?;O=]K6lI[mmU]<ooN?9WolV"
  836.     A$ = A$ + "liHkgLU;o`RE_Jo[A\d9O=YW7I4;5O4X[PA>b`bg3elAjLi[N#<<PjYbgj3X"
  837.     A$ = A$ + "XnJ\WGd>3nhO3NM0N=WOTLXkkOOPOjWD^l3AVdTl_f0O=;NaMgLFUlT#<Db?"
  838.     A$ = A$ + ">`[i?SoOO`746g?2R_K[E=U;o`P=_IoZ9`Gc`7Name#n`C>?b`_<j:dA0_Vo"
  839.     A$ = A$ + "<>39oM6mXm__7lAJ[E=K^lE]Zi?`7mY?]od3UeGCbWSa4G7o2fI`7a>1k<LV"
  840.     A$ = A$ + "oOlgQo^nfgCjn>Gibg_\`5j7M0nJXWeMilS?9I=on9f?c_OOikQ[kXn>?<HO"
  841.     A$ = A$ + "k[ngokEO=9ONoUe\5>i<L>mc[AnN<ZAi7O?lLb;M^leiK[OlAOSc<Ef5nJB>"
  842.     A$ = A$ + "WEC[G\JoTc_o#`gc5_XicMZFel;[I=egNNEh[YMcIeRlL;2=8mJ#Mjk9_n>G"
  843.     A$ = A$ + "NMZ?Z[n6_ZmeTg_OUagCMmLLi87AmM^?IJC[NfWaG3aeJWV?[W;>UaGCWXXn"
  844.     A$ = A$ + "NZ[jkQ?oYn>g?De?;b[KO=5Ak7:nNFgjDOWk3XfH[bn67?3lcY^med=Jo\lm"
  845.     A$ = A$ + "#mmDUnNH>kZn>_nY:[IaM^Cok[Y8jOOkkI2C#mMNMc1?Xkg7aG3g3\#aGCAd"
  846.     A$ = A$ + "nndg3gWJE[Je7SKL^OOl4W`lm>dled=Jojbg3k1lmGib_NH3K8lleTnimGM_"
  847.     A$ = A$ + "Wk;O?dG=Z_c[7LEL[VV_VRXm;R_7>KT[^Nia?N[Li[JE[jHfcfMnJHoXYi[Y"
  848.     A$ = A$ + "KdnE]_7j9NegiE;^hi=>nJ`WBCfGCAdoeU_W_h;DOWGU<RAdKm=>nJF`26jh"
  849.     A$ = A$ + "[Y8Joj`g3mM>G;DmMNe`ZFUleh2]OEhkIZCEmMNEa_n[bGC_XokT_7RAg]cO"
  850.     A$ = A$ + "XOl7E^l[2NggEnJLQf_8nNFjBk>O?hYGmM^KY\m=nOnWUgG3aYJjnJj6]OFn"
  851.     A$ = A$ + "NH6LEFO?h3EmM^kX\m=n>fQleD4mOJO?lkL_hkQnNT[KZLik6`[BAme#M3CL"
  852.     A$ = A$ + "Li[YHJoRjkYXmb9moRjkLg`NgKWG_iJbDKb43??MOoX_V^AkWW_7b9FWf7ff"
  853.     A$ = A$ + "fDOWk2H^EdYH=L_G\?G>8F^leDNLU_W\jkLngYcgF>nd?]mnJFi:=nDhjZLm"
  854.     A$ = A$ + "edajU_VRS[lm`cP0U;oN3ZkY\FKIfMAO?`IW\cXJdg9embGCia5nN>lQEOWg"
  855.     A$ = A$ + ";TGOS_omKV]1LV9f3`gBJ?>bGC_A_jk9[n>gjeAalK?L6YdnJFkJ=aO8_`LV"
  856.     A$ = A$ + "9dc4;gNNFi[aMDDO?lli:]_7V[AZ_c;?TKVcM^1k[I6c`\fCL7Re#<7Km#aJ"
  857.     A$ = A$ + "LbWK8bGSKXKmmXn>_kPc>IG3Yf?X^YHMW[gbJ>G[eNNFdiXg]gc4i[amD4O?"
  858.     A$ = A$ + "L=PTe9>WoRm6egi5W3L0ce>I>]HGcImV[cbJ=GSejaQeFkc:7i[YjX8nNH]g"
  859.     A$ = A$ + "jk1_of[mbNUZE]fcH7[iNN?cIfJmVe8FWi\A\6Kmh`J:jMkc:7bGLJO=\6;="
  860.     A$ = A$ + "_KX<nN6H0cNU]V^]GC#ib?K`7?nJB^FcJ<[_4KQ[GbJ;[UfW5JbGCmBAmm`i"
  861.     A$ = A$ + "dH?bf;3fLi[n>_H[_9mhHSYPF7hebGSOfK:BnNB^?YjFXh[]F?>4?Q[UbJ7a"
  862.     A$ = A$ + "C`C3OEnJlknCWlm`N4JNn:kMfJdDNMJojZ=?>h;Te<^F9[O\VBL5b;\lehom"
  863.     A$ = A$ + "Y\lm`N3kA\GaN6kM\7JWSRb[Cn[WFM_MMTl03LmBR[8O=Q1]cg3kEfm]TaYT"
  864.     A$ = A$ + "^?kead[Q4W0]>`JWle4FTFkcN3kA\GaNVmIEJFaZlmkm#QT[Qf[MbJX5FgT_"
  865.     A$ = A$ + "V`TdnN\nn]TdCZREUojW=fABD<n`V\RmWgnW_O_6JTL];;TV?\AkOmnJGFhk"
  866.     A$ = A$ + "gK2]7:42Q#842Q#842Q#842Q#842QX#loLUV%%h1"
  867.     btemp$ = ""
  868.     FOR i& = 1 TO LEN(A$) STEP 4: B$ = MID$(A$, i&, 4)
  869.         IF INSTR(1, B$, "%") THEN
  870.             FOR C% = 1 TO LEN(B$): F$ = MID$(B$, C%, 1)
  871.                 IF F$ <> "%" THEN C$ = C$ + F$
  872.             NEXT: B$ = C$: END IF: FOR j = 1 TO LEN(B$)
  873.             IF MID$(B$, j, 1) = "#" THEN
  874.         MID$(B$, j) = "@": END IF: NEXT
  875.         FOR t% = LEN(B$) TO 1 STEP -1
  876.             B& = B& * 64 + ASC(MID$(B$, t%)) - 48
  877.             NEXT: X$ = "": FOR t% = 1 TO LEN(B$) - 1
  878.             X$ = X$ + CHR$(B& AND 255): B& = B& \ 256
  879.     NEXT: btemp$ = btemp$ + X$: NEXT
  880.     btemp$ = _INFLATE$(btemp$)
  881.     _MEMPUT m, m.OFFSET, btemp$: _MEMFREE m
  882.     BASIMAGE4& = _COPYIMAGE(v&): _FREEIMAGE v&
  883.  
  884.  
  885. FUNCTION BASIMAGE5& 'wall.bmp
  886.     v& = _NEWIMAGE(193, 192, 32)
  887.     DIM m AS _MEM: m = _MEMIMAGE(v&)
  888.     A$ = ""
  889.     A$ = A$ + "haIkMVoDKKl66?094`LK<H3H\aVS#`4P090QLA^94BPLl=9CKcdIji?eYMjd"
  890.     A$ = A$ + "[IjOlkgmIIUA\`F]j`[TIOoQ?S5Bkka^jiaBfH3e[GWEGBU:EHC?md\A6I4f"
  891.     A$ = A$ + "#3=4[gNkUeC?m`^jE_Z0\=1Ak6#7W;G>FnliIS?nh\5GLIFS6[b^i=_=Kmeg"
  892.     A$ = A$ + "DXm[E[VP9VH2FYBUH3>hP\nk_OQ^_k^kF`E^bEJ^=1Ak6#;?`038Nnm:EZaV"
  893.     A$ = A$ + "Mf5Hgh6[aFMeeIc=gLRWo_Lib2_26OWMf9[S>jPMY;M92R;<0==dfhJ3`?\`"
  894.     A$ = A$ + "2;bFJYUIc?ol\YVJ:ae0PGibGnbYN_B#d:1JLLoAE[R[7<?oNSFT=l`3;^o7"
  895.     A$ = A$ + "hABknSP`60]>dmhe8dXASVgo?Mo?4^2#[3=?dn[\b:Rk?2g7DJgG44f4_G[l"
  896.     A$ = A$ + "J[]FcgoWd^W88\9N_GW[_njT7P`91_fHh38?0Q[RW7HS=fPNm04>99Q70_oB"
  897.     A$ = A$ + "MeEGWjg7=0KC#dZ`_>3J?X1Sbk[OLm0hmF2m0nm]Q?W5hggl2;\P0\=1A[2o"
  898.     A$ = A$ + "j<XmP64Ja`nNk77?0lL8FlkG6ONSfNk]IgkNg[9gm^gUPXUQO]6dN#32]8dT"
  899.     A$ = A$ + "Qij1Ae3hmloS>jX\mgOOfWolWIoaOl7\oiOn7fOmGo5k?ocoTPXU3dJ#c1]7"
  900.     A$ = A$ + "dP#;2=IH^N#Dm0`WQOgJhcGd7oh7IOogom\on_oKfon_o[XW88\5#c1]7dP#"
  901.     A$ = A$ + ";2=IHn<o4E?0Nm7hj>GojGWmcol?cnmOogKb_mKo61Qe`_f3JAX9Qf4JdFY7"
  902.     A$ = A$ + "0aQ?We;]dB\OjWn9f_n[oZXO`Sob_l;44F3oJ?X5QV4JCCo\?7G?0nlVn]Ok"
  903.     A$ = A$ + "g:lONlSoh?B#H=l[mPF4JBKh1`eIll0OmGoe\Oh7nQVlMOggA#H=l[mPFdc3"
  904.     A$ = A$ + "dZ_G8To9WLBagmV?mY?9lONlU_l522[QO]7dR#C2]Y=l0hkLl\c>;komQ?`n"
  905.     A$ = A$ + "bgl==kY_j[n:22[ACo0G32]8dT#KJ3?#aR5Ie[ESMdQ7bn<go1nT4lNDA#dZ"
  906.     A$ = A$ + "aC_iYoPF4JBX=]U7XVd3l9OmCJ_^#hFhYkP64JaJYP7heljn1Omd7hG?RP`F"
  907.     A$ = A$ + "dDgaieI4?`kimUAlN52KLV>n\:ZcS0WG_GB;:oZW?Rjj\US;=m0SEL<FeJEI"
  908.     A$ = A$ + "_ne_Fj9oXPgagf8NW2Q=>C7OF5eiAPc[g9Y5UOec7AMMfbaioJ2#;F]JEfHS"
  909.     A$ = A$ + "=VEm07L`1Lokk?a3`gf8NW2Q=>C7OF5eiAPc[g9Y5UOec7AMMfbaiYoQ64JA"
  910.     A$ = A$ + "[j1he1ekE_jElNoM=k5\=1Q]`_^3Jadd30Ohk5nidOMQ`M`_^;]l0_TGgSle"
  911.     A$ = A$ + "C7MdABNW27YQP>^Yicdj5el7G2Z_ee7QMm9Yj[TNM:YGG?>Onm3I1?`KOkac"
  912.     A$ = A$ + "a3?4l>5hkckH7iOKO7o`Sn_7WgH5K[<f33jhW3n?fAWCoN^SCGomOToSlUOe"
  913.     A$ = A$ + "LMX_mOZOnLV?jZWGLZckPjCehdQ^eiCeg1]N4T>8Xe_cf7`30=GZk1Ni;Kj;"
  914.     A$ = A$ + "?^_<#c5ei^AWC=8ojdfV>^4iLhoANeEW`>_3kjUANPH\NTDj0ia?BjQm^n2d"
  915.     A$ = A$ + "Rfb3dYd3DYBEfNljNbcOmFfKhmfKNcQji#52kh2:NCc_jh3khRkl8XlZ;n`>"
  916.     A$ = A$ + "_3KLQ]NaMM?>[O2_`KKNm8X5QV4Jc>]P7X0_>CO:?0h#f1l7?PgOJi#52kh2"
  917.     A$ = A$ + ":NCc_jh3khRkl8XlZ;n`>_3KLQ]N1D7E=MR^n9eLNGO0JAX9;H3?#WM:m0EH"
  918.     A$ = A$ + "_h5kM:oj1_i=Y:_BBJg7]KdZFgNS29NnmMm1X5QVDh1JaOOR5NP254oO;kI?"
  919.     A$ = A$ + "K?f17hc3L`1Y:k;9]kSf=JGGg>AgMX#;2=9dVfd3ldWm2f[>h4O>N]iY9k;9"
  920.     A$ = A$ + "]kSf=JGGgJZkhJ#X5C3?`CNfc>ecOPo6_##H;lOM<X5C5?`COjYNnSdN=Q`]"
  921.     A$ = A$ + "`oeaPF<=l0?j9?Q]W_NJ_mfCbn7cn1##ScdlHJL6gGbiQ^heMlh>O=>nmT4S"
  922.     A$ = A$ + "LIdlGCMJNN>R[36_N8[_VjdDga1JAKk1:kc3hO]i52foHf?02JLVVWPRkUB<"
  923.     A$ = A$ + "^_Tc3MiEgaSklehhgCB<bUAcO=eYiii8^>X>Ol>oLVa8[oiD7XgNY4??#I;j"
  924.     A$ = A$ + "1bc[cTlj]kSN4kilNkiliaa\GfSGX#Jg?49biWCmL]l]QF4Jblfd3D^laN0A"
  925.     A$ = A$ + "_oB9HkGTmhiBBknP8i>o0?0Gc1N^W7P[9]V78ONaO7GN`^kbNjc?I>lD1?WP"
  926.     A$ = A$ + "Xe3g7h7X5QV4JCKj1^?_^?Qg??S[m1HKR<8?CR][G[^^L]_0nfg?Ul0gk1?P"
  927.     A$ = A$ + "mhWnDR\>?FR][W5[;dRfd3<2_>C0?`m_?kalG?>A6W7;afecRe5JAKj16VGW"
  928.     A$ = A$ + "Blj]cm^7Kg7oh;>\[Td^?BkiEDG7fE3FX_QFdfNPRB?`3ie?fl89aMLVNLMS"
  929.     A$ = A$ + "KG9a]?==^XV_`6O#c;MS?\mg^J8Zc_#4?dRhiU7afNPMfQgSk6?NXV]3kh<m"
  930.     A$ = A$ + "h?DIkT^?==^XV_T:nd>o9<#;2=i`fb3<b8\RU:a^3_^?hQ?<nl09aMLVNLC["
  931.     A$ = A$ + "GDkCCS;Zi;YR?]cO22dR#C2]YEl03?\h_YMKa[kmhe?fl09aMLVNLC[GDkCC"
  932.     A$ = A$ + "S;Zi;YR?]cO22dR#C2]Y=m0KNWk`^k3NPiLO=4VLH3deWImn=Y6GKhiCX5C3"
  933.     A$ = A$ + "?`]gJ;a[5aHfA3Q97f0MmIF_OCZae6Nn4JaDa3\iV\M^kMKbMDh<kO7=XKl1"
  934.     A$ = A$ + "\oF6bnJ79jjGKeWkXP^nediEB_>MVe[#>_BRe5X5]Y7H`17V=fH5IKLkKcfV"
  935.     A$ = A$ + "OOH0LoHK]m>\=U\U2K60j6oi^oMTH#NS:RjM>c[`fo9BO`IK99MnCjn<FW_3"
  936.     A$ = A$ + "aiE_c?Nj?X5QV4JCKi1:8m0=e9gAfOKM2K9IC3Agh5kg;ghakhKm84i?DXNn"
  937.     A$ = A$ + "96mOLI;5JIci4Z?SdhEeiVLni>WllD#;F`ZNP15o=\HMN\K^mf7cFKc^5Hcc"
  938.     A$ = A$ + "bVB>_SI<KYP1aT8e=19[d?a]?DS_E=_dUGangBRDo1]8dT#KJ=?#Q27k1h_F"
  939.     A$ = A$ + "4?fHccWK;Aga=V]THhhC\jV#TEjWhf7ZagZVGjb[gnm[m4N0^VdfNPeFOM^_"
  940.     A$ = A$ + "LcV\n]8J_iFBBkn`<l[mPFdFNP>li1FQGg=hegSeghf6bVB<MlQ=?VVo=e##"
  941.     A$ = A$ + "i;Xh2:OVf7jbKHSgdnL391=?<Mm:Xi_Y[oWolg_fK5ONP>\X7h6[]V_WkhF2"
  942.     A$ = A$ + "_XIL;9V>n`V7Cco]d##i;Xh2:OVf7jbKHS?ZmIB7GDGo?oiOCM7W6L]Xel0M"
  943.     A$ = A$ + "d1K0NM6UG_UGI5f=U?g1N4meZ6a6B<MlQ=?VVo=d##i;Xh2:OVf7jbKHS?Zm"
  944.     A$ = A$ + "IB7GDGo?klGh3PVCB3^F4OGRQf4JDKh1#mJLSKL:MoJL_hZ>5[;iRJmbhmY?"
  945.     A$ = A$ + "]7dRFe3<`0\lS>:K9NMGa[?^i=I[`k[EFME7QeDhRFmbhm9dJ#caeN0X5QV4"
  946.     A$ = A$ + "JCKh1jSGWQieKa6=H;ck5lj2^1__`f;S798JehYe`SLPF4Jbn\Y78ONfehe]"
  947.     A$ = A$ + "1_?J2oNb88\6ndN#;2=Y]m0;Lm6l[1]j9\lb44f3OJ?X5C5?`eFR]DSElA32"
  948.     A$ = A$ + "2;b9J?X5]Z7X_n4O6EWKQ5I;^dbnH922;b9J?X5QV4JCKh1ba[cP2?`eHGKY"
  949.     A$ = A$ + "6nH922;b9J?X5QV<WUl0mb[c0lj=kLcaFHa5KbLaTT:?IMLUiI[Nm`_f3JAX"
  950.     A$ = A$ + "9keVNPQ6jH?`e^FCV=V<_ThVW\>^bl\E_NL:]7l0L=Y]m0eVMFnePFX9e98\"
  951.     A$ = A$ + "8neN#;JE?#^LROWdc`[k\ljkAmiS9Nc_hVW\JOXVg\bl]=5oJ?X5QV4JC[h1"
  952.     A$ = A$ + "j]Ga_CjY[ES=3oJ#eU<CmHbLBRKNbZmQJNc:cgfDZkCkEU[5QV4JCKi1j7NP"
  953.     A$ = A$ + "IVAhoZ9IVjcbZ67VEBLcCF]?DcKFInf62dJ#cEGZmZ`eRYR7XJEN_DWgC7c<"
  954.     A$ = A$ + "c`Od?N7CMo4]FJGFgSAO>S_hafC?MEQVdfNPbL?#5_iA]jL_H=FUZ0\]lW5D"
  955.     A$ = A$ + "ohmY5Oa5YSK:ZiYV6RKMB:R#o<S29jjH2^nL^mYYioHM5dL#kQh;KI?`Eie9"
  956.     A$ = A$ + "7_Nho3PUiG32gC4^V0f^LeI4NSSao??S62JLVVWP#=?EEfFMOA]>959el>Yb"
  957.     A$ = A$ + "GBg?A=obS9eL#kQ]QF4Jb[JC?#omcVPGgYhmACZDABE9Zo\>2JLVVW`FW:J8"
  958.     A$ = A$ + "^e9Y8YkWhV_FmjC8e;ndN#;2=Yel0laV;G>FYYVVkoZbV\ZTbETDERj?[SP6"
  959.     A$ = A$ + "WYiIJ9VVW:J`dj4DmD?^^a[KLA]OdE7_l5dhdMLeh3Z_2KO7BmRW^SC9h1hJ"
  960.     A$ = A$ + "BX=]Z7HRb\9WRg;ET0?AXXRTTJLC99^iadj4DmD?^^aKjh<]O<]_2ZO<]OSj"
  961.     A$ = A$ + "iMCkG=WoldMCGQolaUC5?`hUVTEJbb\BUU<iTQTbBBZaI[l#T>W7DR[Y^[\#"
  962.     A$ = A$ + ";J;?`UTN0lkSK\BC`:>iD\RC9QgGQSYTTDScFiQ8M>?X4GCMgD\a:>Q#CN\>"
  963.     A$ = A$ + "^ek1jV?fNhe[`hU4n_CX41Q5i4]GQa:ajYgL\^kf2N0>2?0_Nh_c_SGTg3L?"
  964.     A$ = A$ + "hh5;9Y81Q50J=XkVD0dRmdSW7`<ML\l0Mg=?VNIi;<6oJ15U<>1Q5aCgEB0d"
  965.     A$ = A$ + "R#C2]Yml0m`6QGgAimaXlNRP`nD\9S8l0mHM?``i;`mOSkS24]ELail6nndW"
  966.     A$ = A$ + ":NPA6UUOdah<^TA9J[`klF19YMo4M`oGR]Y7hbljd=?6lMH6n?LmPS9?AK55"
  967.     A$ = A$ + "D8]kWX3dR#CNI;j1^Rd3<4_n3UOD9i9J[HD5Bkn9j0]hE\Y70ab[5noOf#3c"
  968.     A$ = A$ + "k1h58R1iE8]kWf?`og1PV4JC[i1^Bg\16L8fP3=2WQma#nNllHH=KKjh<=NK"
  969.     A$ = A$ + "A#mSoeTcKmaKoSX\FVeWGA=OaEWLni1OGRQNf^NP[8ZKb=g^hi1jG#HGOb:#"
  970.     A$ = A$ + "N0Sl03<PhJ#3R[7L:6<0Rkh<=NKaig?m;9l[?I5Bjn=Yd9W=?#;V6NPnjK0F"
  971.     A$ = A$ + "omc??go#:<H04gaIJlfRPjW`^nTE8YkgTBWLfl0]X=m0MaSmblHca[KOXnZd"
  972.     A$ = A$ + "W2jf_Y7?[7Wjn3JLV^NIJOZ;_VF?CcCD?_ZKm9^eaG<#;2=IGFb3d9?f^haR"
  973.     A$ = A$ + "oVNQ_oJWQL:XKoVNl\NLZk?XaIjjUYmY^lJJm<=?AmlZ^eWhF7Oa0]8dTMJ;"
  974.     A$ = A$ + "?#GM9lKhc[=nklkI8W2jf_Y7?[7Wjn3JLV^NIJOZ;_VF?CcCD?_ZKm9^eaG<"
  975.     A$ = A$ + "#;2=9dVFa3dIW\^he2OoUagS02Rd6X5QVddo7eg:l0GegSGEIOoGKWH[1:K7"
  976.     A$ = A$ + "gj5Dl]jl[KlZ[_1]^KM]H4kWH_NVFN0lMYQ7[8N9M;akWE?^jnC:DcOL[G#a"
  977.     A$ = A$ + "gZc_^a[^n6dj^]9ZmC\G?iJAKk1086od]2j>^jnC:DcOL[G#agZc_Y[_1]^K"
  978.     A$ = A$ + "KRJo4gngCGJC?0nLZB#TEPl04^>YQ70O>E98b:#N02G7Kj1^4Z3l0hc<11A6"
  979.     A$ = A$ + "1?MY=m0hmRRP8[PEm0:gC41AFP`ZO9?0a5=B3?#c[mL1Wc\FWabGH[KB=ndJ"
  980.     A$ = A$ + "NX5b3dbe>T78K<?dBJh188JSQl04^>T7P`eQl04^>T7P`eQl04^>T7P`eQl0"
  981.     A$ = A$ + "4^>T7P`eQl04^>T7P`eQl04^>T7P`eQl04^>T7P`eQl04^>T7P`eQl04^>T7"
  982.     A$ = A$ + "P`eQl04^>T7P`eQl04^>T7P`eQl04^>T7P`eQl04^>T7P`eQl04^>T7P`eQl"
  983.     A$ = A$ + "04^>T7P`eQl04^>T7P`eQl04^>T7P`eQl04^>T7P`eQl04^>T7P`eQl04^>T"
  984.     A$ = A$ + "7P`eQl04^>T7P`eQl04^>T7P`eQl04^>T7P`eQl04^>T7P`eQl04^>T7P`eQ"
  985.     A$ = A$ + "l04^>T7P`eQl04^>T7P`eQl04^>T7P`eQl04^>T7P`eQl04^>T7P`eQl04^>"
  986.     A$ = A$ + "T7P`eQl04^>T7P`eQl04^>T7P`eQl04^>T7P`ea_78G^L\Nk]GF7MdAZgG44"
  987.     A$ = A$ + "fR^k^Kacm3?#nliI3?l`\>k\cD__88\1hikacmgOom;l0C<a4\a7OLae6X[5"
  988.     A$ = A$ + "#LA7XakZ[^H3>hPRWk7NP[Om6\iWoJ\nj[?am7Ufm81A[4lLmhNP:EZ4KZYV"
  989.     A$ = A$ + "Bh1FNiEinPUIS>J1^gH8Q?0S3gK4l<44G40?g?dehen>`038doC?md2?`=_i"
  990.     A$ = A$ + "]I[]f]H;^hb\iVKAFQ25H3=d#Rg_8lj6PWPPXM6XSamiPko1gk?doc<c<\Je"
  991.     A$ = A$ + "ZaFOm=hLK^?hFR[7\hR=HU;GVE\HAam:QHPW1_f12RfAPn5<b8S`_GWA5jk:"
  992.     A$ = A$ + "EZ8doe[GWmo1OR53%%%0"
  993.     btemp$ = ""
  994.     FOR i& = 1 TO LEN(A$) STEP 4: B$ = MID$(A$, i&, 4)
  995.         IF INSTR(1, B$, "%") THEN
  996.             FOR C% = 1 TO LEN(B$): F$ = MID$(B$, C%, 1)
  997.                 IF F$ <> "%" THEN C$ = C$ + F$
  998.             NEXT: B$ = C$: END IF: FOR j = 1 TO LEN(B$)
  999.             IF MID$(B$, j, 1) = "#" THEN
  1000.         MID$(B$, j) = "@": END IF: NEXT
  1001.         FOR t% = LEN(B$) TO 1 STEP -1
  1002.             B& = B& * 64 + ASC(MID$(B$, t%)) - 48
  1003.             NEXT: X$ = "": FOR t% = 1 TO LEN(B$) - 1
  1004.             X$ = X$ + CHR$(B& AND 255): B& = B& \ 256
  1005.     NEXT: btemp$ = btemp$ + X$: NEXT
  1006.     btemp$ = _INFLATE$(btemp$)
  1007.     _MEMPUT m, m.OFFSET, btemp$: _MEMFREE m
  1008.     BASIMAGE5& = _COPYIMAGE(v&): _FREEIMAGE v&
  1009.  
  1010. FUNCTION BASIMAGE6& 'face.bmp
  1011.     v& = _NEWIMAGE(300, 297, 32)
  1012.     DIM m AS _MEM: m = _MEMIMAGE(v&)
  1013.     A$ = ""
  1014.     A$ = A$ + "haIkMV0eLDEU7_b>9Q\#24P<12Q\_72RA6A#1G?ZSRh9IHD>A<:PA>RkSSjX"
  1015.     A$ = A$ + "h0Z7L2<X7S:P2ZP8<jX\916A9\4PX\JRB#F2[RPAU=A7GB=m__bGjZjdOmG_"
  1016.     A$ = A$ + "lZjNOEMo>WO7dT_^CGgkmm_O_kkn^_XXXh83333333333333333333333SlS"
  1017.     A$ = A$ + "hH3333i`d[<<<25<m:33S#Q^D_j0?`3d```8gad[<<<25<m:33S#1C_b``8D"
  1018.     A$ = A$ + "`d[<<<25<m:33S#1C_bXCH:[I=aSM3K#nmb^6ka5OaaCoT>9a]9657VNUAoa"
  1019.     A$ = A$ + "B?X3:N2GiE6?XodOBL]Yf1nL>m?`7X_?gBKk<b7<m:SmmD>UhMin_OaeKbCh"
  1020.     A$ = A$ + "iSWCY]e6m6VNEeTUlBN9a3j?oW5G7ATiQEkiVWOYm16M>VNEiW3HI;CL=2]c"
  1021.     A$ = A$ + "`Oh7FLoTa0SYGENI^o;o;R[34R<WSnX5ggIdL<mZb3cl4>1a7[G6I67oa7_d"
  1022.     A$ = A$ + "U^Dam_6VNEIPioVNCR?V^:`l>bSDLOME7C_:<IZo7o7R?n]:cnnYnDfL^40C"
  1023.     A$ = A$ + "_:\h0NA_8a7[JDWU\\UIjF58VNUnIBG`58nhBS16lCVfEnRYGYCVlGj;9nh?"
  1024.     A$ = A$ + "S^WmN][ed^b1<m:mQdSe<l3ChB^4Cc:?7KHjERa^MEGUhS_<b?6ojFWYMi1<"
  1025.     A$ = A$ + "m:iI?^X;BlaC6i?kngnKKJFm8VNU<<SgmkFla?6badGmZ=][^P<fAC_Z#HA_"
  1026.     A$ = A$ + "bGYhSG<TW5lbOiVVE7B6KXYGU[<Y;l25O<RQnHg]jPX]9S]cd[:6k\QA3<[g"
  1027.     A$ = A$ + "bKad\jdaAVNUgA;m>HS`P3h0>0CgZ5TaNIjENUIO\7[hao6Q7cLU[dd\j7bH"
  1028.     A$ = A$ + "[<m:_``NRW#lHNS`WYMRWHOjFVfEMbHS<mZNRQoX?Zhah6U?6fSl8V^e1JjE"
  1029.     A$ = A$ + "nTi]RE8NL]AiUIoVOcVNe1JjEm:F_AgX8IA_PG#UFg:Sm`d[j8f_?iWDlhGS"
  1030.     A$ = A$ + "Z7kc7oSGIe\bH;<mZf2[WiIX1ZRen#6KPYGeif<33QHo>aC\bYIUa6HjEVFU"
  1031.     A$ = A$ + "A`aRGlR[<JFINf=mZn5^?PU>^d`XoH17l1G9d\blLKjE=Umll>?aS7=<68fS"
  1032.     A$ = A$ + "_fG;N9;I9UJM[<?cVNe>aX^kkFlh#3SfUMIcK^DGKYINN=mZngfHH4#\X5]X"
  1033.     A$ = A$ + "BYVEVWCC_bdZ<:=D6gk`<?SVNEl#omoNaSc<<l5CO5[XDYIUii[R[G5]m];N"
  1034.     A$ = A$ + "lUQQ_I_>eC]d<G[<?KEHm:YSY<<bCFh2GHY#c:ccE5E_J??ocGlh93SlV9L^"
  1035.     A$ = A$ + "WK`[IUiIZRZG9MLTQAA1e2?JFB?Vcd[jLfkcn\5?na`XXIgGkJ3fiIUiIYRY"
  1036.     A$ = A$ + "G9MLSQQD#mI5Rcc:ccA5A_JF7ga9NlRQQd<eE^bPKNFIN6Z8jEB7WHHX52]N"
  1037.     A$ = A$ + "k#V?oULmZUN#7Tha766JSi]`56<Wi`<Of;ijEB7GHHXE2Unj#V?gUHm:k>1d"
  1038.     A$ = A$ + "`XoIXojOMl2F`2D_VEV?gUDm:YS5<<25FhOO]QB?V]ZZG=og`K#lH03S#QYo"
  1039.     A$ = A$ + "ZNEZN?3cli]TYGIWOI3S>Wi=_iYfm=<cWebVNU2lmM=oZOELdBFBkk?nLO^T"
  1040.     A$ = A$ + "GSdO^;SPM5kKkh76cHRS>VS9Xm53K[K=NncOnZL?3clI]4YG9]?_SIlS_c\o"
  1041.     A$ = A$ + "]3SKLfL<=OAGS[W>8mHIC_BA`M_Z_7Kd8;KI1gH5A8_m31V_H^cM^Z[_:gen"
  1042.     A$ = A$ + "[D_>YO6Bc4Fgj4g??PL?gCa<fXI\lU7<SG:4>jSF>Oa?oW77mgnKbK3J1Sib"
  1043.     A$ = A$ + "^<EEKFInlE2d[Tfo>P<fa:gh37OV?CLdOm_:_]#Jn?o?UgG#n^D^VUVFGHV?"
  1044.     A$ = A$ + "K1\Ne2OE_:MgkeUNLAch`?lhXo_o_Zgl]Z5[8^]_A^_k;>j_lGTgfd46l_mg"
  1045.     A$ = A$ + "fgN6ZQl_geSYBmjTF[JWN>d67oa;ohQF1SCZ:JFBK[K5[LU9ceBQnRMod>=E"
  1046.     A$ = A$ + "\^`^fGVje9]Fe\FeZ4gOfDN^WCna0];_lGNiFgjenJUg6g^l`?\:GSX6boNV"
  1047.     A$ = A$ + "?C1ZNe`Od7ELOICYVOElHo>QohODUSCl2BKKk4F`2DigM<cJac^cHXDJFM]?"
  1048.     A$ = A$ + "=e[CB]:YmQ=U;iBT?V_Ki\>;eV7U:U_HH3;>RcX_bd]6cgok;Jng3ImZI^jE"
  1049.     A$ = A$ + ";^oKWhj_NiSekE^P;8>j?oWEehT:]_hgmkDU_Hb[LUkXng=mZ0N^EL6<T>nf"
  1050.     A$ = A$ + "GlKo]9JFBKC=OALdeMMZkk?Vm\W]8ca:De[TfOeDT>^fg\U]X^eSDYm5D_>:"
  1051.     A$ = A$ + "bG8aL\<m:?alVWladnVY>ehXWnY3_J;]\j;^gk=aGX4=;gL\:B=[#C_JYJD["
  1052.     A$ = A$ + "BjHilT=^ah8foEU<6YBk;0l5\?^BKWok`L\X^\<mZVc#9_::`?EI6S\[kJLd"
  1053.     A$ = A$ + "ML7Z;o9EBO1P_h9OBeh;VcLVCQfCB3=m:Ym?E^a7>N`7<>j?l7TgNKnRhXKl"
  1054.     A$ = A$ + "6EU_HFcJF5fj239mZ9oUobRkKb`klM:O\KAa]MK9e3TBnNm:]N5WoA5i;V`o"
  1055.     A$ = A$ + "eoEQEgkQRNeH_iKFLoBUMl1L`7LLd=MCaAoYoTJ6WTQSjXTg6ETX<OAA]^`#"
  1056.     A$ = A$ + "A_BJoAUG_2^j[>Yf5efn5nfNKbKKZhnRI<kI_SNh#EG_Ja7fQ9^oXb[EihWm"
  1057.     A$ = A$ + "cDGmF;^=AJOQdfoo>Ck0>PLoNZ84d[Tf?\C<Q98O\ZDLEGELdVg\NF;2kKYd"
  1058.     A$ = A$ + "f4Ym5:j<ZkjQ3VNUR#jhD9iB_dh8bUhcl<jHL2m<:Y]9Bk;DD?GTm:<?_WXe"
  1059.     A$ = A$ + "^NU:6C8XNe#6b#RKe?KH3KX_OW2kc4c]l:^RhX7h1RSNnWgl5=lCQZGil5KK"
  1060.     A$ = A$ + "KZ9?F<NMVcLViF_mCcjEco8?Bi]o2>6if_mKO07O8bhT_og?9g9BgoY?]C[#"
  1061.     A$ = A$ + "O^KgOF6g1>5Y_Pnk7[?GBOA:fWSh8b]jK#cjEBKgK:5`MD`Kl=n6Kka6=nCQ"
  1062.     A$ = A$ + "<6Qk3d[mJCVSUT[3AIjDRi;ZmmJA:kLO#m=T7JFVNE7bTVTJ7O`?7jQNXioH"
  1063.     A$ = A$ + "4^SO8G_BOODE0j1H?E__H3K8>jaN<i7KT2FCHNdo6dZNen`LmEPM_X7Sl5n2"
  1064.     A$ = A$ + "OQ^IXAVOhm8g7W#^N_UKAfNAZi;Bhomo=i>]D9iL7fmCnTcUngPFe[TfN;eH"
  1065.     A$ = A$ + "4OmC^?6ikmmBjOWBVg4cGT`?h747MGgUjfKZI<SIhmjaBSjEJc^KSAJ2OW_C"
  1066.     A$ = A$ + "bJ2Y^6Tjke=OA2TcMFCXfj7\e67C=_kcn=S:e[Tf>g:bah^C^fLXme?lNU[S"
  1067.     A$ = A$ + "An_o_Cf;MZ_JYnn5cGT`ocoCLdjG_ZfS#7\V#OVgMC_B?SAlm?i^N5gm<?nS"
  1068.     A$ = A$ + ";G>\<OA2<GG>?Q?kcZZLH1COjC__m:\\ZG9]me6Sd1jET3;9[m7cGDgG#>\X"
  1069.     A$ = A$ + "NhDH^DlIN\dTNeLGa:4gfJSAjPa8\>4jSOVNUln2YGKN;H:_VGCOWA7OLOjX"
  1070.     A$ = A$ + "9m:Y][fHT>L<bgmkVDcXBe?a=OAMOaUMI9e<ZF>G>=P_bSUYGISAj9mZkon="
  1071.     A$ = A$ + "m:=h;D^NU_ZOD]XG]h3o`5gV:mH4b=Y_nQg[LO<2[7L[K]D^N`PcGLiG^JG?"
  1072.     A$ = A$ + "8<eJjD^nlNI#_JDgmM;^=Eja8P_n9_oL^3mZ7jQ:UjE1W_PlGYdl]33OCKZ_"
  1073.     A$ = A$ + "l^g[eRU6d[V3WIC5HCe`HT]_m]gAS5Jf?lND8SAX>5iNOGZjDdl59XQJg]=H"
  1074.     A$ = A$ + "b_Qg#?gK\dPNe`n=o6a]UJI<b86a8jTQ3=m7N?:4m:>3QL?]D2[oZPbG#N4i"
  1075.     A$ = A$ + "<4bMlURe[6B]H5joXQ^NUdfa>Re\VL?n;8jW<lMjGiE67mD?EY\nfCSjm5^c"
  1076.     A$ = A$ + "b9mID9l3M0mJ_lCJmZUn2OQRK3k88VX0R3I]nMj?lJ:Ta8Gh5FokdO^WC^_C"
  1077.     A$ = A$ + "_8VkB8h;hL6#OAFbNUAKB_FkXB[G9]m[[X8R3okXbnQ\;gEJh<fZ8OAL1oiI"
  1078.     A$ = A$ + "7n2=d;bJCfkU_lnZ[Q^=_kVNU^7STVcol?oh]^e]6_]]]]h=^a=6?^a=^Roc"
  1079.     A$ = A$ + "aojoJmm?oF_Ei[g71l3HganSO0o1n5AR9LnROl?>Y>hDL^[L<T7kaj;7FMkL"
  1080.     A$ = A$ + "\TD_:4\_=UZlmi5S?0=d?TQ2JmiZ4W_#Qm3iFA_DkXRZGY0KGGAA\7eJ5gJ1"
  1081.     A$ = A$ + "e`m=Ag4gFV`i;Dfm=a01e?;W?W^9_kVNEGbh7_la[5=SNde[SQ]\UTnGRdnQ"
  1082.     A$ = A$ + "ZZNEJO1md7YcSH7`n_okOOejNg\V#C_Z;Y:>7;G?Tij^>MMFe^ckDNKSTn2>"
  1083.     A$ = A$ + "oVB_^l>PA_^eegL\jVNfPDjEcQkUG5Hkj9T>V]8id?mjWkSKkfdE]9bWSZVV"
  1084.     A$ = A$ + "EJOA0D73=2jEMC_B^[7oUjeEiVKUS7mAU?^]87O#=RnCn9aAojO]nfklZdlM"
  1085.     A$ = A$ + "?Wc9[_#;O_A7`N^ZEegJ2Gh2GH7]V`<_?VNEW1SIckcN_6H_f[jW_iOi_DUm"
  1086.     A$ = A$ + "MgnXZj;Tf^g5<lkj^jZm9<ckSYGeiPVUda`i9[NeecE2e`0ec^fVKEEaG0Y["
  1087.     A$ = A$ + "W4=k;J3LkCXYGEP`l<:ceSUKl1WE`kh>BbER6WKEE`G<VaD_?9ZMOAKPKO2k"
  1088.     A$ = A$ + "TkDe<_75TNE#dWfk4HObXF_U>NfgLVWImiFm;n59W]IY]eV_8>jJ^V``G<0l"
  1089.     A$ = A$ + "?lJN=Mli9<ckA1YG=A>OV:`Ni=hkh:KeImANTeo^LVK5ie=0>ooUBO1TNN^\"
  1090.     A$ = A$ + "WPQP_H0H<eNNH=QMBOM?ckA1YG9]M:ghYOjTjhCjHkNUA>bjS?hNhTljZUJ]"
  1091.     A$ = A$ + "Z:k;hkiaG`cVdfG?1[9\C>ocINm5PNed?YCBLKD^Qkkf;bnUP_I`3^nn?aM`"
  1092.     A$ = A$ + "9mS_#lkb;3nRgkk]^F5n2Za<NV2hLFe8DG3LOZbJ2eXNehi\T[0kD^>>QN4l"
  1093.     A$ = A$ + "^\;b7_gY<lQGOlajFGbj>2\JW^dh;nHO\jn2n^3l5l\4ZnRnQAMEGEOkA8eQ"
  1094.     A$ = A$ + "U6e[TfnD8`N<CmOC<Vdam];;MYIeZNT79iI#JKY_l57bQ8_=^MiKn=[GO^h;"
  1095.     A$ = A$ + "nYodTWQ0^f5J5MBMHUieJjEnML2Wa^A=:iSo78nPO`jJE\oC\oJUYa7lLPnK"
  1096.     A$ = A$ + "1d;[kILn1dZh>54O1Of;;nRV0kAHkfGgclJ=m:o2cMWmMVNYVdS3J6;NaI7O"
  1097.     A$ = A$ + "`JeY?all?_lf>O3SgiiRW_G`;#NKOSLFWEfeoAo=Vh6n<GReZP>Y^AclJ=m:"
  1098.     A$ = A$ + "o3ed7WI2nNbGj;Ena5Ya=nPJFPc>;g1TLG5EF7O`c5?OlL:]]?=oSoSem5d?"
  1099.     A$ = A$ + "[X_hC?]RhVbZ_85Y[KDC_B9#oDSe7N;gBLdGm[:gHSGl;>kgSCO=ViLlH?F`"
  1100.     A$ = A$ + "G_d]5llac9?_lLOX7ZLn2G=PjdYH?0_gk=9>Y2XCi0m:gMYj0=7[<_FC_:o7"
  1101.     A$ = A$ + "W#?MPa9[M]aA3MX5gH3ngb=f`=W:nNl=^ahX]]]4mdb^FEJO1?_lLccoQOh5"
  1102.     A$ = A$ + "[>5n2bUFjL6BO\Rh2VCE0fOHj5LjE]CM^WieVcjEUjJ_ZMaYKAM=A]omSnA9"
  1103.     A$ = A$ + "ca9?b;?_W=ZAA=7N3g#bH3b]F9[NNjHO1?o\f;\7L?cDDn2bG8oKQoWh0fOS"
  1104.     A$ = A$ + ":V>U3Z1;bQEkdKIblJcImZY`gYX0kSh`h4>KmL6GX76A<k5OanmkiimRkV^d"
  1105.     A$ = A$ + "S?XgibHB6Kn#?DbL<Z#[kXY`co_kgUH?^aK\hl5<W:ngbe3[Z2[5_OHRWbYd"
  1106.     A$ = A$ + "gL\#_JPbQEVGK>[G=HZm#5HOD34OBOg6][7l1SSfdVBfS>f7KRW9^n[meRSN"
  1107.     A$ = A$ + "[_eTLeC_7P_WVjjL\S=IO^No_oTOWdOg]K^DlN#mk`k9_gD_Q<W:>K=Eda6]"
  1108.     A$ = A$ + "dGPnMSn2\OH7aNRMnOjO:a^Sm7o0n3l;hO`?eXOXol5l_1oKQo_Rk;6dcolk"
  1109.     A$ = A$ + "hLiX9m:Y];Z4RE1dbMen0iDQlIl3n1ee^8ghXO1=K<1oi<^Plfb[QLCak1S="
  1110.     A$ = A$ + "hmd]f_ZnlYjDO1f?\SH?a^RO0kL[l3]S_`M^1ZhJE>#_ZMj?bINMVNUlhb_5"
  1111.     A$ = A$ + "OG?gGF?iCVD_PLGoA?MQebam=7e>?e81m1Ykj^BfSnkknBfg;N=lMg^ekIS9"
  1112.     A$ = A$ + "jNO1f?gl^`^blR`>_i=WHgMn1n_hG`oPObl5M4XGe>WS`<_^LD_Ja7fQ9^=9"
  1113.     A$ = A$ + "ha=n1H=MPko_mMebh7<OQGHZedYXVAYgbX1mZI]ZE9^=a``#W\g;OikhnW#3"
  1114.     A$ = A$ + "jEk>[WG1f5333maHnFO[n>gcLW4fZJJ8c[;7e[6=[eG1f5333ma8^eK]]jC3"
  1115.     A$ = A$ + "INMiXNUdf3333M3eh>kAXYGIHHXMJWn:CVGSYGIHH84LVLXV6<m:333]SYGI"
  1116.     A$ = A$ + "HH4:d>m]_<_6C_b``#8LjE]j<4VieHjE6662AkdWAclJ<m:333Q`d[<<<25<"
  1117.     A$ = A$ + "mZ^Pgck9QCl4CHe[>>jMm^RS>QC8>jh?nhXSkhRSN7_Sh8>?T_mgNLdaN\aA"
  1118.     A$ = A$ + "_]gFLd:GILdaL<boiG[#?a[EaClg;mWA=2WKj>ILi0<FEcPN5eh^YGe1d[a6"
  1119.     A$ = A$ + "Lo;IW?o^gVJf]\#ObZGS9Mm>2UKK=mZ^PN=fPnO4mVM^g0DNlQZ]UF?#=1^["
  1120.     A$ = A$ + "LjeHBjAPL?Wld?]l??]0C_Z;XGS=^X;:Y7jA_7^:g;?kekTdU\TZeMfCo1mm"
  1121.     A$ = A$ + "_N=VlJ^VTkdNjOPBold2<mZ^PN=fhSlARSnQo`TkA>VSPd??QX=<=Uik_ef1"
  1122.     A$ = A$ + "j9fmZ=Tnd<g]5dSJUniY5HjEM1mJ\1iR7m:^SVZRjE3KHnE_RkZ?^[[ZRfBP"
  1123.     A$ = A$ + "kYBOXGamLaFgZl??]0Ko1k2jeHSU]\TkYGjWjE]kC>OZCUV_dG:i>2\:>?[S"
  1124.     A$ = A$ + "jXlSNejGObMFVd??]0C_Z;XGS=fkm>i>nSkL0^[VTni9T\M]2boRk>UAjWcR"
  1125.     A$ = A$ + "TJSOkIK7gG?GoeWXi;mcC;`d[j2laH;bi0mCEbG\d??QTMKPhN^7e_7GZd^R"
  1126.     A$ = A$ + "Ne6f#bN09mcC;`d[4:nPkIL^KWZBg?\5QNe=Oc9k;OEJ>FnB_2K7gSdBold2"
  1127.     A$ = A$ + "ddiMNXQBm;kShS;iBRS^UK9iNWCjWW#b^e>fEVW0gk[E5=;OHgh^NQk8a]]="
  1128.     A$ = A$ + "iONj76L]?KJZOb4<g?>n8nPkSI^?Oin>EjWWRPCmD;6mZoioiTi^B=>DEf_`"
  1129.     A$ = A$ + "NeV=lQW4?BM<cm:]d??m3LohXYnegnlIo\RKC:Th3Pk\LfoHZ=IYON:2NY_d"
  1130.     A$ = A$ + "RA_JNc;i>NWkkJVSUd?gQ#lhRGLR=SmoiIN6iONj7VhonoNOjEJYo]7<g_cn"
  1131.     A$ = A$ + "HL5i;HM[CmeC\gH83YHd[6lPC\]olO^Z7ki=nLO^NgVM6WAbLBi<iXhlYbmk"
  1132.     A$ = A$ + "\V^OL2VL^__kK_7S#m^L5GALd3nPbolD4<bAF<jE\f6\]\g[EQeJGK^6N9FT"
  1133.     A$ = A$ + "m[VJ_BakG=k=XYGe5LSgH_7SLh7NbL`IN0EQl2CodY8d[HMW<nSL7G5F[]?\"
  1134.     A$ = A$ + "IH_hlF`I`Gae_\k\hXUkgiPA_2VlTk]HT1=XTLHA==D5b;lUMI5SNe7n3W<n"
  1135.     A$ = A$ + "kf^]b_N5[g]G]GSOl9f[[mJC\G:>FdEkEXGefJ8i\NeHI_XEP]I0Qi5iS_GS"
  1136.     A$ = A$ + "J:fb;\o0K:i_JCKZlGgXCLRm^mRLGQ=cEK=:M^nSLm[_?m:ZUQ5]X5Y6mZY\"
  1137.     A$ = A$ + "Ve8^]Y]YGSEXoSBOl`eonTniAkf[fE_RjRI;KYlGKKnbN1^JGFYaQClD>Und"
  1138.     A$ = A$ + "[XF6dTNE#]V#O4_`nb#=jYhiQk=6eXbG]ZA<RTaNGjU67mh?Nio\IjCmMjE8"
  1139.     A$ = A$ + ":?gE0eb`RGlR=m:YRGXN\YV6:kS]0>W<iYNeIMF9[5l:_bTm6\\g[6lUN5e:"
  1140.     A$ = A$ + ":kC]R]G>m:fK`U\TUHjEB5_`H\ZB]2i;KFo=^cES8\gP:N^2N1OYmS=c=7OU"
  1141.     A$ = A$ + "^F#`YGA^fKeI7dd[J1CI:mNl2e;4ijDiWcD_1eg3mG?OZEA]XjbcNEil>kSe"
  1142.     A$ = A$ + "FCnjI]Pd;fh^4#jWYF0JEDKk;LQ;\UebPYGe2>kcf?SgX?YAOM\\?63H=7\_"
  1143.     A$ = A$ + "MiaL[HM=EUn9S?\KL_cA=e#]<XhjJ7LjET[MC_Bhh6V?NEH=<>#GVLfe[eVM"
  1144.     A$ = A$ + "]HhMXEA>[Z:m[?OD73>MNFoL0D3P^JKWLGIjEm0_XGD_7g#M^CMHEU^[GXO["
  1145.     A$ = A$ + "C_\d7c[Ri8lCn9EWnQ\?dZVi<C\M\F#>Wc:?^;mm<Qfd[Va9MBRKO:dh7>S^"
  1146.     A$ = A$ + "E]NP2S?hIUiIMWgILd7mS>`ieRon?d7Z^>5iNQjVWGOEjnV`Gc]28OODk7Bo"
  1147.     A$ = A$ + "<e2f[E]ZfZ_G9UNE`=7;O4o`L\Hn1:nlVV;`jg#WVa=lMmTC#jQESM\9k51W"
  1148.     A$ = A$ + "k9nooEn:e7SidZhgWGGEknlbGjE\o4Xe[lnTY;gE3DO_BDm:U?oD_7o0To5>"
  1149.     A$ = A$ + "cYBolDdP_6MJZI:Z;MbU7em?m<0Vg9cQRo;gA7lWcO?oNlkGUF3]?Se#_:4n"
  1150.     A$ = A$ + ">bJnFgJ1WolW_Je[V8eAYdfZR>6Z:]?Q=9^\_ecanZclUh>;VN23i26m9n_D"
  1151.     A$ = A$ + "WJlWcO?oNE]kSNbaY?e[LiP#akccHZmi<miLF[jE1eJ2I<S?RQ^h;>>jV^YZ"
  1152.     A$ = A$ + "E_7_EfDFS7P^4oGncZbf5OZEij7g:OoDMe9:[5LP>7>VNE70iJYGSSXnCY?4"
  1153.     A$ = A$ + "aL7ZBiSaXm`7JE\W5XGaJ\9o3:N^E#WL>L<mZ>0O=7;N^Y_dbnM9mcTQNheo"
  1154.     A$ = A$ + "jmgL[0VK5WI#5?g:`YGAM]?#W37C_Z3aGcG?#RU<:#lE\UK_E_kkFmWIemLE"
  1155.     A$ = A$ + "[J7e9:[5\MbMUTjEk:m8B5Hg:lH:ZEKbeLEYNR<6HlYNUkn3Bck;HLmiFaN3"
  1156.     A$ = A$ + "f>ee^djE1gL\leJ21^kLX^H<=;3OZEaI1h7mSBbgPRWonX[5okZkZf]>A=mZ"
  1157.     A$ = A$ + "^P3i#lC\5iNWk[4UO>D=bIVcLlCl4g;S^l\_a=Znn]fnLH7f>F;h0MO3JjEm"
  1158.     A$ = A$ + "0nL>FD_=Eejab81O>g:h6^QTJ4EiaD^e2BMGe>m#6C_B1aHOZ?ELdML79ki\"
  1159.     A$ = A$ + "bS_<b1XnnmYNUklg40gK#Y[kZ1ZO][9mZiLd7]hf^>6OLo4j0k?mb_ZbMXSA"
  1160.     A$ = A$ + "2_jG]oRQ>eC=A[RN7cCnTZ_V[0G^[JWn9ZVd[2biHice42\gcEQN#WAMlIlC"
  1161.     A$ = A$ + "jl\[hk\;7SmL?gM\_P]CoiCKjEk>fK5H75;NSe5`mGREckE3#CaWJE0kgLPD"
  1162.     A$ = A$ + "S<YgG`>Y>6dRNe1L#7Thf`>VGl;f_JFdSg[JmRPZ:LgOkKm:fkV0Y6TC__P]"
  1163.     A$ = A$ + "CoiCKjE1kJ2Ga:l[V5WCWbnM0JE7O6_#]ehZ?DdZhNiEjW_f0gmhLW^_PJB_"
  1164.     A$ = A$ + "JXTW#5H;k8H^gn<nSNnk_jG54O7YAGR?SGLk98[5Tm4<0F;h#NRW8cmRJXZG"
  1165.     A$ = A$ + "aWKY]UR7o1oKoKZoLOId5LNWWoSE#_RNLh?kW54JE#jk][>MO1eTN5\XGf;C"
  1166.     A$ = A$ + "LkI73a9SKLn=>TJbbjAFU;lIl1g=Q^ce<mh`WjYToi[=HZeVCBgLN1eZNE#>"
  1167.     A$ = A$ + "7;dDh\JichaMMGC>KQ1#MdHd6\KkVOS?^X;ZnI_Qkc3UO^VMhZADbMEgTWM]"
  1168.     A$ = A$ + "YG]COF25lMmH1_ggKein[Z<S_S;0GN[XoV`i4<#V7NjkLn^E[BKjE3>DgO<>"
  1169.     A$ = A$ + "74n>^l[oe]JL8TQcM\_S9>cc\nN2n0?#`4K<XWmIcL7>k]id8\NE#^V#`M7`"
  1170.     A$ = A$ + "hkhc=]YTmnaVWEH1gAIialZL[3dE_NBoLfVTnl=g]iIGSjE`Tn6O3a]_M5XY"
  1171.     A$ = A$ + "hkHDPkf:jk<VVEH0g7`iALPC_j7oS3Zc3ah>kc^[kM<QPNE`>7;0MUl8FmT?"
  1172.     A$ = A$ + "iTcbJP<oo:;iAM;hdZ8WE<g:b[I0egdBWWm^il2ZMmZMjcD81eg`_hGT?a\["
  1173.     A$ = A$ + "I=FM>XInfOkla_oUobe_S^H^ELfh3Tj]2jVk0W#C_JV[JERKWkJ#?IGfUl9f"
  1174.     A$ = A$ + "mh?nhX]]=CcBKlaohiSon<>Sjc]jV_iTnbN0ikgkE\R^j>U8dd[2je42DSji"
  1175.     A$ = A$ + "Al;LD7U=?;=aaMLiSOn`>\ji\Rm3lN_gPk\?dHNf;[jE1_VEN]OQ>Vh4]lIY"
  1176.     A$ = A$ + "1VdTb?O\C[Rn=d]N[1G]]Tnn_IncOnNA[BcjEkdW]#TlDc2^_k[nMi^d?[E9"
  1177.     A$ = A$ + "h>j>_lY_WgCmcK3gmK\GP1HoLdgi]:4d[f];ob5g^gCPF2W;blDcRJ\=PboJ"
  1178.     A$ = A$ + "`3WahldOjVG5angd=UDoM1fIcJGoNO?_LfV3=m:V3i^Aob#1nP^6Rehl0VWa"
  1179.     A$ = A$ + "hSH41eIc8HITS\HdZ8OE\?c4g48eIUSAOYGJVN8Z_bKEXXG=ggdKBLO#?1aK"
  1180.     A$ = A$ + "nn<AKccB6bCogKi]DO_0I^ELoDZlkmdVaDN5_RMXGamO3SQ[:jE>=;Ym1m<4"
  1181.     A$ = A$ + "cAOoXVO<ge]8WI1fg9[NbKOfTWLmiFM]GKLdmL?1kmlFSgEGnD[:4d[P178m"
  1182.     A$ = A$ + "jeF2[GSLATgankkn6TO_\JYfl4bMOFje1B?]RhT0do=XJaM>m:fC#OVWm#B_"
  1183.     A$ = A$ + "ZD<7;PH#^_17lPcoa0\GkXc7PamZPmJ_bOO4a1>]Z[nZCjES1FM;h`e[SmA?"
  1184.     A$ = A$ + "icd[D4Lf_X?]WgS5LHiQ_cYXl=>]:^o0YOFALAP^FnY=SI\SJI??bKE8YGEj"
  1185.     A$ = A$ + "d\8VTcFQ?_KW682PkBCAI][]hl5hgMJEDWELGS`Jh3D]:`=g:j13mJ?^Z\XG"
  1186.     A$ = A$ + "]g4CY0OSGPhC>[m5eH4Pk0HK?4gI:BO0TF[RJ2=`kU\kfYOjmdM<OID_Zd=7"
  1187.     A$ = A$ + ";V[3J74[VWW[Snkkg_mK_J?O;j5R5AN4Cc4V#fe0blZ`o7`O7bDNe_jL]N[2"
  1188.     A$ = A$ + "Im:HX\g9:`?i5#_PeYEdccb1k7E0omjM=GaE8Sm>]F5e1=nm0OMjYca>WmVl"
  1189.     A$ = A$ + "D[:4e[`N<Ali:`Gi=#cPkjT?kWEVaA`LWK#?^I0IncG>K;gO8>]:jSE<gFlg"
  1190.     A$ = A$ + "1ngE<V;h2bmjG8de[LJFBk[l>4kbN7NGgULS[L`MLGX[MAO=HdSFNKYkngRj"
  1191.     A$ = A$ + "FWn]7[3]TdO[M[3dWm;VbXN5\;d?PDP?c[P6a_igDlicZoPk2f#CgjB_dhXa"
  1192.     A$ = A$ + "?Ni]M#jlZC_<n^_k4oKXICK23K;KY#G7HX[GQmIjW`98^Ock#\<m?T]^Ei7_"
  1193.     A$ = A$ + "e<nROAm<NKcK>>Ji;GNKBS`I<8mjoh^m2oIPN6KJTmjH>V2OMPU1mZBij21f"
  1194.     A$ = A$ + "_8b3;iiHh3GnaOm7TCXRn\BaoN;LQbo\gO`gQVnlel3oQ9eJGPWGmdhdZlIO"
  1195.     A$ = A$ + ">^\[GiHJT;C5h3c5X_7cnQbidXFLQhS5kDHmT7bQ47mYodaAO[_EB^K8?cTo"
  1196.     A$ = A$ + "6V[1SQOl7?i?o2_`TO_Gb;9ie9mWm>U5\PjjDT[:bO6mJ_Bfm7YC[b=gZRD["
  1197.     A$ = A$ + "Z<XGQmJHlmG:`GjMhkSILmCl4igm^SQO8M^ZXN9X76cjj3\N]G[HoZ=_fdc]"
  1198.     A$ = A$ + ":?jo2UMm:WVUdnb2AgRiVXQm?dXijDTCMl?hW2XkOifRJ??iE?I_:ZG=J^S^"
  1199.     A$ = A$ + "UfWVgJF\>:fO9jC^J>7>E1Vglb^n?ZoCl;hO`?EBbEUSY=mY_SjG`M61=mZN"
  1200.     A$ = A$ + "CcRJ0AJoJQXKA>WinaQa7B?^]ZaaN\=GW2oA9DW2B_6#jm2iE_RYZYGEjGGX"
  1201.     A$ = A$ + "3G^ZYg^m:OUb?6^:AJ]:ZEQKh6Bl3h?:AiZZIjE^J]ZXZ=db\NU3\U3Z<d?B"
  1202.     A$ = A$ + "K7X^78GlKI;9SQ6b#TOlLI4\[Oe_JMM:ZC1^_Ua^COf8P?_b]267idZBOGg8"
  1203.     A$ = A$ + "UFEID_ZB=?;PeO`nUcMY2eT8mokCmDUO<NIP?aW8klYHOoXVh`>G1jCn=k\<"
  1204.     A$ = A$ + ";YFEID_bYI]7Wci8^o^#Q_SWiEbMXj?mW:kIW^<`WlCV]O:`MF3fEbWN5X?C"
  1205.     A$ = A$ + "?ne^fLo^S`d[bZIEfSYJ:lMnd3TY><Im:GceTLVKUNlO8PCOb=O:Z?1\OH7a"
  1206.     A$ = A$ + "NFAj]dYG38WUI9c_NEB_JADCh:`oGh`H:Z=nWiIB6[aiGSi7XicfSTLJWFF]"
  1207.     A$ = A$ + ":bS>f;\KHo`>Rm\2XEUF_BC[3\\[Gid\Z4eh#[`=O;b;?kS5eY6S5GcJTGW#"
  1208.     A$ = A$ + ";JD^mjSiBMMGGbJZaNQM[TWSZnC[RJG`ggUlVNEkYI=6>cY:8F#<HN1<fSc7"
  1209.     A$ = A$ + "2g1;LFAFojSS^T;9>jMm^TGkX89miAfEGjD3EH?hN:m1O`Tml[R\f_d<Z[jZ"
  1210.     A$ = A$ + "bdKSedj0[:jE>=[5GEGKHSh>K?TcH>g8<6mj_nTko>VSa7l3:_VR?QWW6c;5"
  1211.     A$ = A$ + "?Wllbc=?oonOORmPiBEadXLT>WE\6`R^_;HjEIe[Zl[;\ALihjIOfhX7jQB>"
  1212.     A$ = A$ + "?e\FXJO7KOSWO5_2ieJj5njOmMNNDlLac7?Wllbc=?o\gZEDM:7YcI5JEJKM"
  1213.     A$ = A$ + "PE9m:7h3V;m[454OX:Le`5WW4b]<SSY>S^aK<inVRm9SakGl577=SI8_FT3f"
  1214.     A$ = A$ + "o0Z_odjBYW35O^i><SW3j]WlLaJRMmSh:^65<eJS;J<WEJLNEEAm:KNF30>M"
  1215.     A$ = A$ + ";Z5b]]]hX7mACj=EL_CA>0AkRJkVjA2=QcmLSSFdR:>m9^7bhLNONWg>[AiZ"
  1216.     A$ = A$ + "C:dXhc9[eS?gTkLN>HND^JlddYf1=Nf0ejlZZRjE>=;bShDn8O4aSE22Hl=i"
  1217.     A$ = A$ + "kRL#oD?EbHokonCda8_m\f:fG=j?MToNVG3c53m\VYYd=`k5PNTKNCl_WKol"
  1218.     A$ = A$ + "hc1md#nLai>V?WX=EBjo`i1kakkmU9WEL?WZal[Gee[LJFmE3lUYk;jR4gl`"
  1219.     A$ = A$ + "8_?X;#^Z9WeDCUdk4i^0QjFj>_chXKkfBZQ2jQ1<W7dGhNRQeY1Xi`oUo<Po"
  1220.     A$ = A$ + "NnmhgWG7_NjCklnaiPQgOZaLG>biOOnLHcKZ]IlWiI^3]:Z7DG_\BkJEEEm:"
  1221.     A$ = A$ + "WV5iEL2\V65435dhd_Hn<T3OdAHmGXY#o0VJIbYUA>T#gi1NPTi3iPoolWcO"
  1222.     A$ = A$ + "?oNlkc[SG?iLRg?bk4_oVnDGch>Wc9Hf;#C_JWe\HmjVVUAEPdJEJXg`HjEM"
  1223.     A$ = A$ + "WVUEKF6UM6oWoc7dc[bd[bZIai?ObOh?\haE66nVdgY=QjlZ<mZ\PocVWUAI"
  1224.     A$ = A$ + "S1m\?KYHNEVNEFLk?2e;g<>RS#lh<3SNUmi#>4Eeke=m:o[IQodVWUAIPdc["
  1225.     A$ = A$ + "2]:G][KjEboLhKM;d\X^DT>Vc`XC9MnZ#[Rhh#=OEVNEk[IaL]61eZX2R1=<"
  1226.     A$ = A$ + "J76nVfDVe0Zen2SYGUOJF<?JYS3=<68JLO09^]<YEIjE]WV5cUNF=J[<<D4k"
  1227.     A$ = A$ + "G=]YdJEL7<GFF3XYGeihZgQAaiKC1aW66`8GojgYk72=goZ<mZR3gj3WU]n#"
  1228.     A$ = A$ + "35#EHmOVNE_[IA]`cl]U>NeXjBSJEUeeoIjEnAc2XW1=KK^F658CKfcNWZ1d"
  1229.     A$ = A$ + "#^Ne=mZRCcb]gQSTNeT2RU=:g\;KH3IbE5cYZ<D3XVNEaZKag_aL]6j3o`R7"
  1230.     A$ = A$ + "CKDnPhZdjD<_:RgZ2[ocd[b7=;V[5OOgTinlC1ah6U3fcSkhbT[:fo?Rc:ki"
  1231.     A$ = A$ + "Egd[:HM[E^BaSe=2GB[AU>WjEEM:C_:Od[LkO8WI[Y\lU;NL_AhaTOc_i<JE"
  1232.     A$ = A$ + "\n?RW8^Z:U[:C_ZHe]LceJo[moFja06:W]_mhY^h5W9?E<W:CW:;I\IVNUG9"
  1233.     A$ = A$ + "mL]VTMoQId2J\W:`iDVhVZnjoJT<f=C_bkhnNAgN8>mJ<XWki4OlQQl#L`na"
  1234.     A$ = A$ + "l_KX?EEEgk_fQ<f#C_:g8mJ4YVIHONfS?f7Cla<65?kn7mS^CiWbE;EV>E[9"
  1235.     A$ = A$ + "S]dd[bELmj1V[5aWXI9mH7SRW6gk?R3H>E^jDgd[jObH;=mZ23gL]875T[RA"
  1236.     A$ = A$ + "OiG^hSS<b?`oJiXZgad[TQ6GO8a^\^0Y7GIhOJLnD^nnIEXO:hK<m:i9mj4i"
  1237.     A$ = A$ + "nFRhiMk<>3a7WIdmPo[IcWbMOJIiYZk`d[d1Yg7ARY9fNB__gWhSk<j<6nVg"
  1238.     A$ = A$ + "LldVi<kgiCIiXZg`d[d7^iKAl=JGT?fnF[hfg^hS7=J2el;=^V?KnDi3VNU>"
  1239.     A$ = A$ + "aYIAn=H_SHo4AcJo]n4XZHJcI>kT>U[_DU>oDVFUO`d[d?YG[8S1H\0ciJo["
  1240.     A$ = A$ + "]^3Y7_FeHdGiE6?=nNS6dX`OhdX\elUOHjEQ3^iLaIlY_NKJ]eK`HUYL47Qh"
  1241.     A$ = A$ + "SS[2PM^Im=1l3h?`_hFgWYEU?HjEQ9=CkRa>XO]G_egZhS];3PM\IeRP[g^P"
  1242.     A$ = A$ + "MWekIiVZh`d[2GLO?^;gl^J?eYKm?ljNMR?V?41kFcbO^CW2kLjLXKJE57VN"
  1243.     A$ = A$ + "EiPdJG^J#]Am;bkb^MjW^hj1J2\7=Z=UFObE3jF^ce1VNEiT6e_Lme6giFTe"
  1244.     A$ = A$ + "e`HB6Kbi_MHobOYhJ7i9llehi<^amd3]9GoA0kEjejIJDj0C_ZLSK\Vk\ohj"
  1245.     A$ = A$ + "[=^JBe=g;WfenN`7Ll#OT7ALm5O0?7lldOJD^i#Q65f3dXJ<WiV>U^`d[ZNT"
  1246.     A$ = A$ + "N^G^c1T[fDKfl_Bc4?UCY_k0MYeRPan=oVakiZFECeSJV^Tk^JPWCGM7HcO:"
  1247.     A$ = A$ + "\`d[Zfdhj6KVf5Sek?m;7CJe[>NDGmE7?d7h1lkLTZmn=n?oW__goFY;e<m9"
  1248.     A$ = A$ + "gLWLi8gYAI[c;Lad[<J6=>7\dJI\NB6oSV6j1\^BW^FJ]]6YMdKJDg9=^J9`"
  1249.     A$ = A$ + "=G9GnVhc1hbkDcdT<MYb1VNUa0AjalYe_LJHXAhf?BG>m1dBLjI>==7>MWdT"
  1250.     A$ = A$ + "n_gmJL_7^eaak?jBl_GJ]YVY?IJDU?<m:3OASJ5=CW[CXoN_Tnid#><m:33S"
  1251.     A$ = A$ + "#1C_b``8D`d[<<<25<m:33S#1C_b``8D`7jE66665>VNUQQAXPYGIHH4:d9j"
  1252.     A$ = A$ + "E6666666666666666666666666666666666666m;oo`>%%L2"
  1253.     btemp$ = ""
  1254.     FOR i& = 1 TO LEN(A$) STEP 4: B$ = MID$(A$, i&, 4)
  1255.         IF INSTR(1, B$, "%") THEN
  1256.             FOR C% = 1 TO LEN(B$): F$ = MID$(B$, C%, 1)
  1257.                 IF F$ <> "%" THEN C$ = C$ + F$
  1258.             NEXT: B$ = C$: END IF: FOR j = 1 TO LEN(B$)
  1259.             IF MID$(B$, j, 1) = "#" THEN
  1260.         MID$(B$, j) = "@": END IF: NEXT
  1261.         FOR t% = LEN(B$) TO 1 STEP -1
  1262.             B& = B& * 64 + ASC(MID$(B$, t%)) - 48
  1263.             NEXT: X$ = "": FOR t% = 1 TO LEN(B$) - 1
  1264.             X$ = X$ + CHR$(B& AND 255): B& = B& \ 256
  1265.     NEXT: btemp$ = btemp$ + X$: NEXT
  1266.     btemp$ = _INFLATE$(btemp$)
  1267.     _MEMPUT m, m.OFFSET, btemp$: _MEMFREE m
  1268.     BASIMAGE6& = _COPYIMAGE(v&): _FREEIMAGE v&
  1269.  

 
Title: Re: MAZEBALL: Tilt Maze puzzle clone
Post by: johnno56 on August 20, 2020, 08:59:18 pm
Cool game. Pro: No dying! Con: Now I have to think!
Title: Re: MAZEBALL: Tilt Maze puzzle clone
Post by: bplus on August 21, 2020, 01:24:31 pm
;-)) Yeah my brother put some Christmas money in a 3D maze cube that you have to solve for the metal ball to open the latch. That one took a little longer to open than your average Christmas present.

Well I gotta see how you handle the tilting!

No tilting, just plain old maze game where you can't stop the ball from going in one direction until it hits a wall, no fun!

I think it could be coded better:


Update: never mind, that's the way it's supposed to work, the ball rolls until it hits a wall. Level 2 I didn't see the wall it could approach from but now I see it. OK
Title: Re: MAZEBALL: Tilt Maze puzzle clone
Post by: FellippeHeitor on August 21, 2020, 03:19:05 pm
Gorgeous game, Dav. - Frustrating at times, especially when I manage to get stuck in a repeating-never-ending path, but some games are just there to show how inept I am with them.
Title: Re: MAZEBALL: Tilt Maze puzzle clone
Post by: bplus on August 21, 2020, 03:24:06 pm
@FellippeHeitor

Are you talking about Level 2? :-))

This sucker takes a different kind of pathfinder! ;-)
Title: Re: MAZEBALL: Tilt Maze puzzle clone
Post by: FellippeHeitor on August 21, 2020, 03:28:01 pm
I got stuck at level 5 first, then after quitting I got to it again and managed to get the star. Then I halted playing, got back here to post and then got back to work :-D
Title: Re: MAZEBALL: Tilt Maze puzzle clone
Post by: bplus on August 21, 2020, 03:35:57 pm
@Dav

Do you build these puzzles by hand or in code?
Title: Re: MAZEBALL: Tilt Maze puzzle clone
Post by: johnno56 on August 21, 2020, 09:47:28 pm
I finally got to level 5... Wrong first move... Endless path... My brain hurts...

Is it possible to have a 'restart level' instead of having to go back to the start? Can you imagine getting to, say level 20+, then getting caught in an 'endless path'?
Title: Re: MAZEBALL: Tilt Maze puzzle clone
Post by: bplus on August 21, 2020, 09:55:19 pm
I finally got to level 5... Wrong first move... Endless path... My brain hurts...

Is it possible to have a 'restart level' instead of having to go back to the start? Can you imagine getting to, say level 20+, then getting caught in an 'endless path'?

Do you know about the space bar? And you don't have to worry about level 20+, yet ;-))

Man I only got past level 2 when I decided to work on a Pathfinder. :)

Update: there is also + - for level setting. Made it to 8, 9 I'm wondering if there is a soln.
Update: OK 9 done 3 times in row, go up on first 2 decision points at the T intersections.

I literally had a break through on 10:
 
Title: Re: MAZEBALL: Tilt Maze puzzle clone
Post by: Unseen Machine on August 22, 2020, 06:04:46 am
Hey dav (and everyone else)

I love these type of games, simplicity in design often leads to great fun and infuriation for the end user! I made one like this myself a long time ago and ended up making a GL version which you can find here.

https://www.qb64.org/forum/index.php?topic=2561.msg117920#msg117920 (https://www.qb64.org/forum/index.php?topic=2561.msg117920#msg117920)

Great work though, i look forward to seeing more like this.

Unseen
Title: Re: MAZEBALL: Tilt Maze puzzle clone
Post by: bplus on August 22, 2020, 12:52:51 pm
Hey dav (and everyone else)

I love these type of games, simplicity in design often leads to great fun and infuriation for the end user! I made one like this myself a long time ago and ended up making a GL version which you can find here.

https://www.qb64.org/forum/index.php?topic=2561.msg117920#msg117920 (https://www.qb64.org/forum/index.php?topic=2561.msg117920#msg117920)

Great work though, i look forward to seeing more like this.

Unseen

Here is link to more of Dav's games:
https://www.qb64.org/forum/index.php?topic=2434.msg116509#msg116509

Collect them all! :)
Title: Re: MAZEBALL: Tilt Maze puzzle clone
Post by: Dav on August 22, 2020, 05:48:38 pm
Wow, I didn't expect to come back to all these replies!  Thanks for trying out the game, everyone.  It was a fun game to make.  Made it first in smartbasic, just wanted to port it to QB64.  I guess calling it a tilt game wasn't a good idea, since it doesn't tilt at all.  Sorry for that confusion. 

@johnno56 , @FellippeHeitor , thanks guys for your encouragement!

@bplus - If I remember right, some levels are enhanced versions of levels I found elsewhere, and some I just worked out on paper first.  I have just made some new levels using some graph paper, so I guess I will be updating this game post soon.  I may do levels where you have to collect several stars.  (And thanks for making a link to all my puzzle games on that other thread.)

@Unseen Machine . Thanks! I will download and try your game. 

Going to make a level editor next.

- Dav
Title: Re: MAZEBALL: Tilt Maze puzzle clone
Post by: bplus on August 22, 2020, 11:21:15 pm
I started to simplify this code for a pathfinder AI and so far have a semi-3D version:
Code: QB64: [Select]
  1. _TITLE "Tilt Maze Pathfinder" ' b+ started 2020-08-22
  2. ' 2020-08-22 I am starting with mods of Dav's version of tilt maze as it was frustration
  3. ' with the his 2nd level Puzzle that inspired me to search for solutions with AI.
  4. ' Thanks for that Dav! ;-))
  5. ' 2020-08-22 so far just a semi-3D version.
  6.  
  7. '============
  8. 'MAZEBALL.BAS   https://www.qb64.org/forum/index.php?topic=2936.msg121950#msg121950
  9. '============
  10. 'Clone of the Tilt Maze Puzzle games.
  11. 'QB64 code by Dav, AUG/2020
  12.  
  13. 'The goal is to move the ball to the star.
  14. 'Use arrows to move the ball.  Walls will stop
  15. 'the ball moving so navigate around them.
  16. 'There are 10 levels to complete and they get
  17. 'harder as you go.  To help you (cheat) you can
  18. 'jump to other levels by using the +/- keys.
  19. 'Press SPACE to reset level and start over.
  20.  
  21. 'If you beat the last level, you will get a
  22. 'smiley face and hear a happy song.
  23.  
  24. 'For those who get stuck, solutions are below.
  25.  
  26. '=======
  27. 'CREDITS:
  28. '=======
  29.  
  30. 'I didn't come up with this game - It's been around for a while.
  31. 'It's mostly a clone of a cool game posted on THE QBASIC FORUM here:
  32. 'https://www.tapatalk.com/groups/qbasic/tilting-maz-game-t39133.html
  33. 'Also some levels derived from the original tilt maze game here:
  34. 'https://www.mathsisfun.com/games/tilt-maze.html
  35. 'There's other Tilt Maze games that influenced me.
  36.  
  37. 'My thanks to those original game authors for the tilt maze fun.
  38. 'Please accept this QB64 version as a compliment from a fan.
  39.  
  40. '=================================================================
  41.  
  42. 'Solutions below, for those who get stuck...
  43.  
  44. '#1)  RDLURDR
  45. '#2)  LURULDRUL
  46. '#3)  DRULDRDLULUR
  47. '#4)  DRURULURULDR
  48. '#5)  URDLULDLURDLU
  49. '#6)  RDRULDRULDRD
  50. '#7)  DRULDLURDRULDRD
  51. '#8)  RDLDLULDLURURULDRD
  52. '#9)  LURULULDLDRDRURULURDLDR
  53. '#10) D R U L D L D R U R U L U L U R D L U R D R U L D R U R D
  54.  
  55.  
  56. DIM SHARED bs, grid 'box or cell size, cells per side of square grid
  57. DIM SHARED bx, by, sx, sy 'ball and star locations
  58. REDIM SHARED pdata$(grid, grid)
  59. puzzle = 1 'start on puzzle 1
  60. puzzlemax = 10 'there are 10 puzzles total
  61.  
  62. SCREEN _NEWIMAGE(640, 640, 32)
  63. _DELAY .25
  64.  
  65. '======
  66. restart:
  67. _TITLE "Level: " + STR$(puzzle) + " of" + STR$(puzzlemax)
  68. setLevel puzzle
  69. update
  70.     CLS
  71.     'get user keypress...
  72.     k$ = INKEY$
  73.     moved = 0: done = 0
  74.  
  75.     'if right arrow....
  76.     IF k$ = CHR$(0) + CHR$(77) THEN 'right
  77.         WHILE pdata$(bx + 1, by) = " " OR pdata$(bx + 1, by) = "y"
  78.             bx = bx + 1: moved = 1
  79.             IF bx = sx AND by = sy THEN done = 1: EXIT WHILE
  80.         WEND
  81.     END IF
  82.     'if left arrow...
  83.     IF k$ = CHR$(0) + CHR$(75) THEN
  84.         WHILE pdata$(bx - 1, by) = " " OR pdata$(bx - 1, by) = "y"
  85.             bx = bx - 1: moved = 1
  86.             IF bx = sx AND by = sy THEN done = 1: EXIT WHILE
  87.         WEND
  88.     END IF
  89.  
  90.     'down arrow
  91.     IF k$ = CHR$(0) + CHR$(80) THEN
  92.         WHILE pdata$(bx, by + 1) = " " OR pdata$(bx, by + 1) = "y"
  93.             by = by + 1: moved = 1
  94.             IF bx = sx AND by = sy THEN done = 1: EXIT WHILE
  95.         WEND
  96.     END IF
  97.  
  98.     'if up arrow
  99.     IF k$ = CHR$(0) + CHR$(72) THEN
  100.         cx = ballx / bs + 1: cy = bally / bs + 1 'current x,y
  101.         WHILE pdata$(bx, by - 1) = " " OR pdata$(bx, by - 1) = "y"
  102.             by = by - 1: moved = 1
  103.             IF bx = sx AND by = sy THEN done = 1: EXIT WHILE
  104.         WEND
  105.     END IF
  106.  
  107.     IF k$ = CHR$(32) THEN GOTO restart
  108.  
  109.     IF k$ = "+" THEN
  110.         puzzle = puzzle + 1: IF puzzle > puzzlemax THEN puzzle = 1
  111.         GOTO restart
  112.     END IF
  113.  
  114.     IF k$ = "-" THEN
  115.         puzzle = puzzle - 1: IF puzzle < 1 THEN puzzle = puzzlemax
  116.         GOTO restart
  117.     END IF
  118.     update
  119.     _DISPLAY
  120.     _LIMIT 60
  121.     IF done = 1 THEN
  122.         SOUND 7000, .1: _DELAY 2
  123.         puzzle = puzzle + 1
  124.         IF puzzle > puzzlemax THEN puzzle = 1
  125.         GOTO restart
  126.     END IF
  127.  
  128. SUB update
  129.     FOR y = grid - 1 TO 0 STEP -1
  130.         FOR x = grid - 1 TO 0 STEP -1
  131.             IF pdata$(x, y) = "x" THEN
  132.                 FOR p = 0 TO 20 STEP .5
  133.                     LINE (x * bs - 20 + p, y * bs - 20 + p)-STEP(bs - 1, bs - 1), _RGB32(55 + p * 5), BF
  134.                 NEXT
  135.                 'LINE (x * bs + p, y * bs + p)-STEP(bs - 1, bs - 1), &HFF999999, B
  136.             ELSEIF x = bx AND y = by THEN
  137.                 'LINE (x * bs, y * bs)-STEP(bs - 1, bs - 1), &HFF000000, BF
  138.                 FOR R! = .47 * bs TO 0 STEP -1
  139.                     fcirc x * bs + .5 * bs - 7, y * bs + .5 * bs - 7, R!, _RGB32(220 - 220 * R! / (.45 * bs) + 35)
  140.                 NEXT
  141.             ELSEIF x = sx AND y = sy THEN
  142.                 'LINE (x * bs, y * bs)-STEP(bs - 1, bs - 1), &HFF000000, BF
  143.                 FOR p = 1 TO 0 STEP -.0125
  144.                     star x * bs + .5 * bs - 5, y * bs + .5 * bs - 5, .16 * bs * p, .46 * bs * p, 5, _PI / 10, _RGB32(255, (1 - p) * 150 + 105, 0)
  145.                 NEXT
  146.             END IF
  147.         NEXT
  148.     NEXT
  149.  
  150. SUB setLevel (puzzle) 'x is the wall, b is ball. y is the star
  151.     IF puzzle = 1 THEN
  152.         puz$ = "": grid = 8
  153.         puz$ = puz$ + "xxxxxxxx"
  154.         puz$ = puz$ + "x   xb x"
  155.         puz$ = puz$ + "x   yx x"
  156.         puz$ = puz$ + "x  xx  x"
  157.         puz$ = puz$ + "x      x"
  158.         puz$ = puz$ + "x      x"
  159.         puz$ = puz$ + "x      x"
  160.         puz$ = puz$ + "xxxxxxxx"
  161.     ELSEIF puzzle = 2 THEN
  162.         puz$ = "": grid = 10
  163.         puz$ = puz$ + "xxxxxxxxxx"
  164.         puz$ = puz$ + "xx  x    x"
  165.         puz$ = puz$ + "x   xx   x"
  166.         puz$ = puz$ + "x   y    x"
  167.         puz$ = puz$ + "x     xx x"
  168.         puz$ = puz$ + "x      b x"
  169.         puz$ = puz$ + "x        x"
  170.         puz$ = puz$ + "x     xx x"
  171.         puz$ = puz$ + "x x      x"
  172.         puz$ = puz$ + "xxxxxxxxxx"
  173.     ELSEIF puzzle = 3 THEN
  174.         puz$ = "": grid = 11
  175.         puz$ = puz$ + "xxxxxxxxxxx"
  176.         puz$ = puz$ + "xbx  x    x"
  177.         puz$ = puz$ + "x    x    x"
  178.         puz$ = puz$ + "xx   x    x"
  179.         puz$ = puz$ + "x    y  x x"
  180.         puz$ = puz$ + "x    x    x"
  181.         puz$ = puz$ + "x         x"
  182.         puz$ = puz$ + "x x     x x"
  183.         puz$ = puz$ + "x  x      x"
  184.         puz$ = puz$ + "x   x    xx"
  185.         puz$ = puz$ + "xxxxxxxxxxx"
  186.     ELSEIF puzzle = 4 THEN
  187.         bs = INT(sw / 11) 'boxsize
  188.         puz$ = "": grid = 11
  189.         puz$ = puz$ + "xxxxxxxxxxx"
  190.         puz$ = puz$ + "xbx   x   x"
  191.         puz$ = puz$ + "x xx      x"
  192.         puz$ = puz$ + "x         x"
  193.         puz$ = puz$ + "x       xxx"
  194.         puz$ = puz$ + "x x       x"
  195.         puz$ = puz$ + "x x  xx   x"
  196.         puz$ = puz$ + "x         x"
  197.         puz$ = puz$ + "x xx  x xxx"
  198.         puz$ = puz$ + "x     x  yx"
  199.         puz$ = puz$ + "xxxxxxxxxxx"
  200.     ELSEIF puzzle = 5 THEN
  201.         puz$ = "": grid = 12
  202.         puz$ = puz$ + "xxxxxxxxxxxx"
  203.         puz$ = puz$ + "x x      x x"
  204.         puz$ = puz$ + "x x xxx  x x"
  205.         puz$ = puz$ + "x          x"
  206.         puz$ = puz$ + "x x x x xx x"
  207.         puz$ = puz$ + "x x xbx    x"
  208.         puz$ = puz$ + "x   xxxxx xx"
  209.         puz$ = puz$ + "x     xyx  x"
  210.         puz$ = puz$ + "xx         x"
  211.         puz$ = puz$ + "x         xx"
  212.         puz$ = puz$ + "x   x x    x"
  213.         puz$ = puz$ + "xxxxxxxxxxxx"
  214.     ELSEIF puzzle = 6 THEN
  215.         puz$ = "": grid = 13
  216.         puz$ = puz$ + "xxxxxxxxxxxxx"
  217.         puz$ = puz$ + "x     x     x"
  218.         puz$ = puz$ + "x   xxx   xxx"
  219.         puz$ = puz$ + "x           x"
  220.         puz$ = puz$ + "xxx xxx   x x"
  221.         puz$ = puz$ + "x         xyx"
  222.         puz$ = puz$ + "xb    x   xxx"
  223.         puz$ = puz$ + "x x   x     x"
  224.         puz$ = puz$ + "xxx   xx    x"
  225.         puz$ = puz$ + "x           x"
  226.         puz$ = puz$ + "x   x   x x x"
  227.         puz$ = puz$ + "x   x   x x x"
  228.         puz$ = puz$ + "xxxxxxxxxxxxx"
  229.     ELSEIF puzzle = 7 THEN
  230.         puz$ = "": grid = 15
  231.         puz$ = puz$ + "xxxxxxxxxxxxxxx"
  232.         puz$ = puz$ + "xbx   x     x x"
  233.         puz$ = puz$ + "x xx          x"
  234.         puz$ = puz$ + "x         x   x"
  235.         puz$ = puz$ + "xx       xx   x"
  236.         puz$ = puz$ + "x             x"
  237.         puz$ = puz$ + "x xx       xx x"
  238.         puz$ = puz$ + "x     x x     x"
  239.         puz$ = puz$ + "xx            x"
  240.         puz$ = puz$ + "x   x         x"
  241.         puz$ = puz$ + "x   xx       xx"
  242.         puz$ = puz$ + "x       x     x"
  243.         puz$ = puz$ + "x      xxx    x"
  244.         puz$ = puz$ + "x x         xyx"
  245.         puz$ = puz$ + "xxxxxxxxxxxxxxx"
  246.     ELSEIF puzzle = 8 THEN
  247.         puz$ = "": grid = 15
  248.         puz$ = puz$ + "xxxxxxxxxxxxxxx"
  249.         puz$ = puz$ + "x x     x     x"
  250.         puz$ = puz$ + "x    x       xx"
  251.         puz$ = puz$ + "x        b    x"
  252.         puz$ = puz$ + "x     x     x x"
  253.         puz$ = puz$ + "x  x          x"
  254.         puz$ = puz$ + "x       x x   x"
  255.         puz$ = puz$ + "x      xx    xx"
  256.         puz$ = puz$ + "x             x"
  257.         puz$ = puz$ + "xx       x    x"
  258.         puz$ = puz$ + "x   x x       x"
  259.         puz$ = puz$ + "x   xyx       x"
  260.         puz$ = puz$ + "x   xxx       x"
  261.         puz$ = puz$ + "x       x   x x"
  262.         puz$ = puz$ + "xxxxxxxxxxxxxxx"
  263.     ELSEIF puzzle = 9 THEN
  264.         puz$ = "": grid = 19
  265.         puz$ = puz$ + "xxxxxxxxxxxxxxxxxxx"
  266.         puz$ = puz$ + "x x   x       x   x"
  267.         puz$ = puz$ + "x x   xxx   x x xxx"
  268.         puz$ = puz$ + "x           x     x"
  269.         puz$ = puz$ + "x xxx xxxxx xxx x x"
  270.         puz$ = puz$ + "x   x   x       x x"
  271.         puz$ = puz$ + "xxx x   x   x   x x"
  272.         puz$ = puz$ + "x           x     x"
  273.         puz$ = puz$ + "x   xxx x xxx xxx x"
  274.         puz$ = puz$ + "x     x x         x"
  275.         puz$ = puz$ + "xxx   x xxx     x x"
  276.         puz$ = puz$ + "x       x       x x"
  277.         puz$ = puz$ + "x x x   x xxx   xxx"
  278.         puz$ = puz$ + "x x x             x"
  279.         puz$ = puz$ + "x x x xxx x   x   x"
  280.         puz$ = puz$ + "x         x   x   x"
  281.         puz$ = puz$ + "x xxx     x x xxx x"
  282.         puz$ = puz$ + "x  bx       x  yx x"
  283.         puz$ = puz$ + "xxxxxxxxxxxxxxxxxxx"
  284.     ELSEIF puzzle = 10 THEN
  285.         puz$ = "": grid = 21
  286.         puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxxx"
  287.         puz$ = puz$ + "xbx x     x   x     x"
  288.         puz$ = puz$ + "x x x     x   xxx   x"
  289.         puz$ = puz$ + "x x                 x"
  290.         puz$ = puz$ + "x x xxx x x     x   x"
  291.         puz$ = puz$ + "x       x x     x   x"
  292.         puz$ = puz$ + "x   x   x x     x xxx"
  293.         puz$ = puz$ + "x   x               x"
  294.         puz$ = puz$ + "x   x     x xxx x   x"
  295.         puz$ = puz$ + "x         x     x   x"
  296.         puz$ = puz$ + "xxx xxx xxxxx xxx xxx"
  297.         puz$ = puz$ + "x         x         x"
  298.         puz$ = puz$ + "x   xxx   x x xxx x x"
  299.         puz$ = puz$ + "x           x     x x"
  300.         puz$ = puz$ + "xxx xxx   x xxx   x x"
  301.         puz$ = puz$ + "x   x     x x     x x"
  302.         puz$ = puz$ + "x x x xxx x x   x x x"
  303.         puz$ = puz$ + "x x             x   x"
  304.         puz$ = puz$ + "x x     x x x   x x x"
  305.         puz$ = puz$ + "x       x x x     xyx"
  306.         puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxxx"
  307.     END IF
  308.     REDIM pdata$(grid - 1, grid - 1) 'from text to 2d array
  309.     m = 1
  310.     FOR y = 0 TO grid - 1
  311.         FOR x = 0 TO grid - 1
  312.             pdata$(x, y) = MID$(puz$, m, 1)
  313.             IF MID$(puz$, m, 1) = "y" THEN sx = x: sy = y
  314.             IF MID$(puz$, m, 1) = "b" THEN bx = x: by = y
  315.             m = m + 1
  316.         NEXT
  317.     NEXT
  318.     bs = _WIDTH \ grid
  319.  
  320. SUB fcirc (CX AS INTEGER, CY AS INTEGER, R AS INTEGER, C AS _UNSIGNED LONG)
  321.     DIM Radius AS INTEGER, RadiusError AS INTEGER
  322.     DIM X AS INTEGER, Y AS INTEGER
  323.     Radius = ABS(R): RadiusError = -Radius: X = Radius: Y = 0
  324.     IF Radius = 0 THEN PSET (CX, CY), C: EXIT SUB
  325.     LINE (CX - X, CY)-(CX + X, CY), C, BF
  326.     WHILE X > Y
  327.         RadiusError = RadiusError + Y * 2 + 1
  328.         IF RadiusError >= 0 THEN
  329.             IF X <> Y + 1 THEN
  330.                 LINE (CX - Y, CY - X)-(CX + Y, CY - X), C, BF
  331.                 LINE (CX - Y, CY + X)-(CX + Y, CY + X), C, BF
  332.             END IF
  333.             X = X - 1
  334.             RadiusError = RadiusError - X * 2
  335.         END IF
  336.         Y = Y + 1
  337.         LINE (CX - X, CY - Y)-(CX + X, CY - Y), C, BF
  338.         LINE (CX - X, CY + Y)-(CX + X, CY + Y), C, BF
  339.     WEND
  340.  
  341. SUB ftri (x1, y1, x2, y2, x3, y3, K AS _UNSIGNED LONG)
  342.     DIM D AS LONG
  343.     STATIC a&
  344.     D = _DEST
  345.     IF a& = 0 THEN a& = _NEWIMAGE(1, 1, 32)
  346.     _DEST a&
  347.     _DONTBLEND a& '  '<<<< new 2019-12-16 fix
  348.     PSET (0, 0), K
  349.     _BLEND a& '<<<< new 2019-12-16 fix
  350.     _DEST D
  351.     _MAPTRIANGLE _SEAMLESS(0, 0)-(0, 0)-(0, 0), a& TO(x1, y1)-(x2, y2)-(x3, y3)
  352.  
  353. SUB star (x, y, rInner, rOuter, nPoints, angleOffset, K AS _UNSIGNED LONG)
  354.     ' x, y are same as for circle,
  355.     ' rInner is center circle radius
  356.     ' rOuter is the outer most point of star
  357.     ' nPoints is the number of points,
  358.     ' angleOffset = angle offset IN DEGREES, it will be converted to radians in sub
  359.     ' this is to allow us to spin the polygon of n sides
  360.  
  361.     pAngle = _PI(2) / nPoints: radAngleOffset = angleOffset
  362.     x1 = x + rInner * COS(radAngleOffset)
  363.     y1 = y + rInner * SIN(radAngleOffset)
  364.     FOR i = 0 TO nPoints - 1
  365.         x2 = x + rOuter * COS(i * pAngle + radAngleOffset + .5 * pAngle)
  366.         y2 = y + rOuter * SIN(i * pAngle + radAngleOffset + .5 * pAngle)
  367.         x3 = x + rInner * COS((i + 1) * pAngle + radAngleOffset)
  368.         y3 = y + rInner * SIN((i + 1) * pAngle + radAngleOffset)
  369.         ftri x1, y1, x2, y2, x3, y3, K
  370.         'triangles leaked
  371.         LINE (x1, y1)-(x2, y2), K
  372.         LINE (x2, y2)-(x3, y3), K
  373.         LINE (x3, y3)-(x1, y1), K
  374.         x1 = x3: y1 = y3
  375.     NEXT
  376.     fcirc x, y, rInner, K
  377.  
  378.  
Title: Re: MAZEBALL: Tilt Maze puzzle clone
Post by: Dav on August 22, 2020, 11:49:16 pm
Hey, I like it, @bplus!  Looks cool, and nice and tidy code!  Pathfinding algos are beyond me right now, but I have been wanting to understand them for another puzzle I'm trying to clone.

I was just about to post a small mod of mine which grows and fades the star out when reaching it. 

EDIT:  Updated code again - fixed a bug that was messing up the ball.  Added RotoZoom method found in the wiki to animate the star when reaching it.

- Dav 

Code: QB64: [Select]
  1. '============
  2. 'MAZEBALL.BAS v1.1
  3. '============
  4. 'Clone of the Tilt Maze Puzzle games.
  5. 'QB64 code by Dav, AUG/2020
  6.  
  7. 'New for v1.1: * Fixed bug where ball gets messed up,
  8. '                and runs off screen (bad math calcs)
  9. '              * Added winning star animation & fade out.
  10.  
  11. 'Follow this programs development here:
  12. 'https://www.qb64.org/forum/index.php?topic=2936.0
  13.  
  14. '=====
  15. 'ABOUT:
  16. '=====
  17.  
  18. 'The goal is to move the ball to the star.
  19. 'Use arrows to move the ball.  Walls will stop
  20. 'the ball moving so navigate around them.
  21. 'There are 10 levels to complete and they get
  22. 'harder as you go.  To help you (cheat) you can
  23. 'jump to other levels by using the +/- keys.
  24. 'Press SPACE to reset level and start over.
  25.  
  26. 'If you beat the last level, you will get a
  27. 'smiley face and hear a happy song.
  28.  
  29. 'For those who get stuck, solutions are below.
  30.  
  31. '=======
  32. 'CREDITS:
  33. '=======
  34.  
  35. 'I didn't come up with this game - It's been around for a while.
  36. 'It's mostly a clone of a cool game posted on THE QBASIC FORUM here:
  37. 'https://www.tapatalk.com/groups/qbasic/tilting-maz-game-t39133.html
  38. 'Also some levels derived from the original tilt maze game here:
  39. 'https://www.mathsisfun.com/games/tilt-maze.html
  40. 'There's other Tilt Maze games that influenced me.
  41.  
  42. 'My thanks to those original game authors for the tilt maze fun.
  43. 'Please accept this QB64 version as a compliment from a fan.
  44.  
  45. 'Used the RotoZoom program from the QB64.org wiki under _MAPTRIANGLE
  46. 'which was written by Galleon, the creator of QB64.  Thanks!
  47. '=================================================================
  48.  
  49. 'Solutions below, for those who get stuck...
  50.  
  51. '#1)  LURDR
  52. '#2)  LURULDRUL
  53. '#3)  DRULDRDLULUR
  54. '#4)  DRURULURULDR
  55. '#5)  URDLULDLURDLU
  56. '#6)  RDRULDRULDRD
  57. '#7)  DRULDLURDRULDRD
  58. '#8)  RDLDLULDLURURULDRD
  59. '#9)  LURULULDLDRDRURULURDLDR
  60. '#10) DRULDLDRURULULURDLURDRULDRURD
  61.  
  62. DEFINT A-Z
  63.  
  64. puzzle = 1 'start on puzzle 1
  65. puzzlemax = 10 'there are 10 puzzles total
  66.  
  67.  
  68. 'load images...
  69. ball& = BASIMAGE1&
  70. blank& = BASIMAGE2&
  71. pass& = BASIMAGE3&
  72. star& = BASIMAGE4&
  73. wall& = BASIMAGE5&
  74. face& = BASIMAGE6&
  75.  
  76. _ICON ball&
  77.  
  78.  
  79. '======
  80. restart:
  81. '======
  82.  
  83. _TITLE "Level: " + STR$(puzzle) + " of" + STR$(puzzlemax)
  84.  
  85. GOSUB SetLevel
  86.  
  87. 'draw puzzle level
  88. CLS , _RGB(51, 51, 51)
  89. REDIM SHARED pdata$(grid, grid)
  90. bs = INT(_WIDTH / grid)
  91. m = 1
  92. FOR x = 0 TO grid - 1
  93.     FOR y = 0 TO grid - 1
  94.         a$ = MID$(puz$, m, 1)
  95.         pdata$(x + 1, y + 1) = a$
  96.         IF a$ = "x" THEN _PUTIMAGE (y * bs, x * bs)-(y * bs + bs, x * bs + bs), wall&
  97.         IF a$ = "b" THEN
  98.             _PUTIMAGE (y * bs + 1, x * bs + 1)-(y * bs + bs - 1, x * bs + bs - 1), ball&
  99.             ballx = y * bs: bally = x * bs
  100.         END IF
  101.         IF a$ = "y" THEN _PUTIMAGE (y * bs + 1, x * bs + 1)-(y * bs + bs - 1, x * bs + bs - 1), star&
  102.         m = m + 1
  103.     NEXT
  104.  
  105.  
  106.  
  107.     'get user keypress...
  108.     DO: k$ = INKEY$: _AUTODISPLAY: LOOP UNTIL k$ <> ""
  109.  
  110.     'if right arrow....
  111.     IF k$ = CHR$(0) + CHR$(77) THEN
  112.  
  113.         'current ball location in x,y
  114.         cx = ballx / bs + 1: cy = bally / bs + 1
  115.  
  116.         'Move ball right...
  117.         FOR x = cx + 1 TO grid + 1
  118.  
  119.             'move it smoothly, by pixels...
  120.             FOR x2 = ((x - 1 - cx) * bs) TO ((x - cx) * bs) STEP 2
  121.  
  122.                 'if come to star
  123.                 IF pdata$(cy, x) = "y" THEN
  124.                     _PUTIMAGE (ballx + x2 + 1, bally + 1)-(ballx + x2 + bs - 1, bally + bs - 1), blank&
  125.                     _PUTIMAGE (ballx + x2 + bs, bally)-(ballx + x2 + bs + bs, bally + bs), blank&
  126.                     _PUTIMAGE (ballx + x2 + bs, bally)-(ballx + x2 + bs + bs, bally + bs), ball&
  127.  
  128.                     'fade out star
  129.                     _DISPLAY
  130.                     SOUND 7000, .1
  131.                     temp& = _COPYIMAGE(_DISPLAY)
  132.                     d = 100
  133.                     FOR trp& = 255 TO 0 STEP -5
  134.                         _PUTIMAGE (0, 0), temp&
  135.                         RotoZoom ballx + x2 + bs + (bs / 2), bally + (bs / 2), star&, d / 100, angle
  136.                         _DISPLAY: d = d + 10
  137.                         angle = angle + 3: IF angle >= 360 THEN angle = angle - 360
  138.                         _SETALPHA trp&, , star&
  139.                         _DELAY .01
  140.                     NEXT
  141.  
  142.                     GOSUB Done
  143.                     GOTO restart
  144.                 END IF
  145.  
  146.                 'if come to wall...
  147.                 IF pdata$(cy, x) = "x" THEN
  148.                     ballx = ballx + x2
  149.                     SOUND 500, .1: GOTO moved
  150.                 END IF
  151.  
  152.                 'Draw ball image....
  153.                 _PUTIMAGE (ballx + x2 + 1, bally + 1)-(ballx + x2 + bs - 1, bally + bs - 1), blank&
  154.                 _PUTIMAGE (ballx + x2 + 1, bally + 1)-(ballx + x2 + bs - 1, bally + bs - 1), ball&
  155.                 _DISPLAY
  156.                 _LIMIT 500
  157.             NEXT
  158.  
  159.         NEXT
  160.     END IF
  161.  
  162.     'if left arrow...
  163.     IF k$ = CHR$(0) + CHR$(75) THEN
  164.         cx = ballx / bs + 1: cy = bally / bs + 1
  165.         'Move ball left...
  166.         FOR x = cx - 1 TO 0 STEP -1
  167.             FOR x2 = (x + 1 - cx) * bs TO (x - cx) * bs STEP -2
  168.                 IF pdata$(cy, x) = "y" THEN
  169.                     _PUTIMAGE (ballx + x2 + 1, bally + 1)-(ballx + x2 + bs - 1, bally + bs - 1), blank&
  170.                     _PUTIMAGE (ballx + x2 - bs, bally)-(ballx + x2, bally + bs), blank&
  171.                     _PUTIMAGE (ballx + x2 - bs, bally)-(ballx + x2, bally + bs), ball&
  172.                     'fade out star
  173.                     _DISPLAY
  174.                     SOUND 7000, .1
  175.                     temp& = _COPYIMAGE(_DISPLAY)
  176.                     d = 100
  177.                     FOR trp& = 255 TO 0 STEP -5
  178.                         _PUTIMAGE (0, 0), temp&
  179.                         RotoZoom ballx + x2 - (bs / 2), bally + (bs / 2), star&, d / 100, angle
  180.                         _DISPLAY: d = d + 10
  181.                         angle = angle + 3: IF angle >= 360 THEN angle = angle - 360
  182.                         _SETALPHA trp&, , star&
  183.                         _DELAY .01
  184.                     NEXT
  185.                     GOSUB Done
  186.                     GOTO restart
  187.                 END IF
  188.                 IF pdata$(cy, x) = "x" THEN
  189.                     ballx = ballx + x2
  190.                     SOUND 500, .1
  191.                     GOTO moved
  192.                 END IF
  193.                 _PUTIMAGE (ballx + x2 + 1, bally + 1)-(ballx + x2 + bs - 1, bally + bs - 1), blank&
  194.                 _PUTIMAGE (ballx + x2 + 1, bally + 1)-(ballx + x2 + bs - 1, bally + bs - 1), ball&
  195.                 _DISPLAY
  196.                 _LIMIT 500
  197.             NEXT
  198.         NEXT
  199.     END IF
  200.  
  201.     'down arrow
  202.     IF k$ = CHR$(0) + CHR$(80) THEN
  203.         cx = ballx / bs + 1: cy = bally / bs + 1 'current x,y
  204.         FOR y = cy + 1 TO grid + 1
  205.             FOR y2 = (y - 1 - cy) * bs TO (y - cy) * bs STEP 2
  206.                 IF pdata$(y, cx) = "y" THEN
  207.                     _PUTIMAGE (ballx + 1, bally + y2 + 1)-(ballx + bs - 1, bally + y2 + bs - 1), blank&
  208.                     _PUTIMAGE (ballx, bally + y2 + bs)-(ballx + bs, bally + y2 + bs + bs), blank&
  209.                     _PUTIMAGE (ballx, bally + y2 + bs)-(ballx + bs, bally + y2 + bs + bs), ball&
  210.  
  211.                     'fade out star
  212.                     _DISPLAY
  213.                     SOUND 7000, .1
  214.                     temp& = _COPYIMAGE(_DISPLAY)
  215.                     d = 100
  216.                     FOR trp& = 255 TO 0 STEP -5
  217.                         _PUTIMAGE (0, 0), temp&
  218.                         RotoZoom ballx + (bs / 2), bally + y2 + bs + (bs / 2), star&, d / 100, angle
  219.                         _DISPLAY: d = d + 10
  220.                         angle = angle + 3: IF angle >= 360 THEN angle = angle - 360
  221.                         _SETALPHA trp&, , star&
  222.                         _DELAY .01
  223.                     NEXT
  224.  
  225.                     GOSUB Done
  226.                     GOTO restart
  227.                 END IF
  228.                 IF pdata$(y, cx) = "x" THEN
  229.                     bally = bally + y2
  230.                     SOUND 500, .1
  231.                     GOTO moved
  232.                 END IF
  233.                 _PUTIMAGE (ballx + 1, bally + y2 + 1)-(ballx + bs - 1, bally + y2 + bs - 1), blank&
  234.                 _PUTIMAGE (ballx + 1, bally + y2 + 1)-(ballx + bs - 1, bally + y2 + bs - 1), ball&
  235.                 _DISPLAY
  236.                 _LIMIT 500
  237.             NEXT
  238.         NEXT
  239.     END IF
  240.  
  241.     'if up arrow
  242.     IF k$ = CHR$(0) + CHR$(72) THEN
  243.         cx = ballx / bs + 1: cy = bally / bs + 1 'current x,y
  244.         FOR y = cy - 1 TO 0 STEP -1
  245.             FOR y2 = (y + 1 - cy) * bs TO (y - cy) * bs STEP -2
  246.                 IF pdata$(y, cx) = "y" THEN
  247.                     _PUTIMAGE (ballx + 1, bally + y2 + 1)-(ballx + bs - 1, bally + y2 + bs - 1), blank&
  248.                     _PUTIMAGE (ballx, bally + y2 - bs)-(ballx + bs, bally + y2), blank&
  249.                     _PUTIMAGE (ballx, bally + y2 - bs)-(ballx + bs, bally + y2), ball&
  250.                     'fade out star
  251.                     _DISPLAY
  252.                     SOUND 7000, .1
  253.                     temp& = _COPYIMAGE(_DISPLAY)
  254.                     d = 100
  255.                     FOR trp& = 255 TO 0 STEP -5
  256.                         _PUTIMAGE (0, 0), temp&
  257.                         RotoZoom ballx + (bs / 2), bally + y2 - (bs / 2), star&, d / 100, angle
  258.                         _DISPLAY: d = d + 10
  259.                         angle = angle + 3: IF angle >= 360 THEN angle = angle - 360
  260.                         _SETALPHA trp&, , star&
  261.                         _DELAY .01
  262.                     NEXT
  263.  
  264.                     GOSUB Done
  265.                     GOTO restart
  266.                 END IF
  267.                 IF pdata$(y, cx) = "x" THEN
  268.                     bally = bally + y2
  269.                     SOUND 500, .1
  270.                     GOTO moved
  271.                 END IF
  272.                 _PUTIMAGE (ballx + 1, bally + y2 + 1)-(ballx + bs - 1, bally + y2 + bs - 1), blank&
  273.                 _PUTIMAGE (ballx + 1, bally + y2 + 1)-(ballx + bs - 1, bally + y2 + bs - 1), ball&
  274.                 _DISPLAY
  275.                 _LIMIT 500
  276.             NEXT
  277.         NEXT
  278.     END IF
  279.  
  280.     IF k$ = CHR$(32) THEN GOTO restart
  281.  
  282.     IF k$ = "+" THEN
  283.         puzzle = puzzle + 1: IF puzzle > puzzlemax THEN puzzle = 1
  284.         GOTO restart
  285.     END IF
  286.  
  287.     IF k$ = "-" THEN
  288.         puzzle = puzzle - 1: IF puzzle < 1 THEN puzzle = puzzlemax
  289.         GOTO restart
  290.     END IF
  291.  
  292.  
  293.     moved:
  294.  
  295.     IF k$ <> "" THEN _KEYCLEAR
  296.  
  297.  
  298.  
  299.  
  300. '====
  301. Done:
  302. '====
  303. _SETALPHA 255, , star& 'reset star&
  304. _PUTIMAGE (160, 210), pass&: _DISPLAY
  305.  
  306. puzzle = puzzle + 1
  307.  
  308. 'If that was last level...
  309. IF puzzle > puzzlemax THEN
  310.     'show smiley face
  311.     _PUTIMAGE (100, 100)-(500, 500), face&: _DISPLAY
  312.     'play happy music
  313.     PLAY "o4l8gfedcal4gl8fgabo5co4gl4el8defedefgagabl4o5co4c"
  314.     PLAY "o3l8co2l16gf#gl8g#gpbo3c"
  315.     _DELAY 8
  316.     puzzle = 1
  317.  
  318.  
  319.  
  320. '=======
  321. SetLevel:
  322. '=======
  323.  
  324. 'x is the wall, b is ball. y is the star
  325. IF puzzle = 1 THEN
  326.     puz$ = "": grid = 8
  327.     puz$ = puz$ + "xxxxxxxx"
  328.     puz$ = puz$ + "x   xb x"
  329.     puz$ = puz$ + "x   yx x"
  330.     puz$ = puz$ + "x  xx  x"
  331.     puz$ = puz$ + "x      x"
  332.     puz$ = puz$ + "x      x"
  333.     puz$ = puz$ + "x      x"
  334.     puz$ = puz$ + "xxxxxxxx"
  335.  
  336. IF puzzle = 2 THEN
  337.     puz$ = "": grid = 10
  338.     puz$ = puz$ + "xxxxxxxxxx"
  339.     puz$ = puz$ + "xx  x    x"
  340.     puz$ = puz$ + "x   xx   x"
  341.     puz$ = puz$ + "x   y    x"
  342.     puz$ = puz$ + "x     xx x"
  343.     puz$ = puz$ + "x      b x"
  344.     puz$ = puz$ + "x        x"
  345.     puz$ = puz$ + "x     xx x"
  346.     puz$ = puz$ + "x x      x"
  347.     puz$ = puz$ + "xxxxxxxxxx"
  348.  
  349. IF puzzle = 3 THEN
  350.     puz$ = "": grid = 11
  351.     puz$ = puz$ + "xxxxxxxxxxx"
  352.     puz$ = puz$ + "xbx  x    x"
  353.     puz$ = puz$ + "x    x    x"
  354.     puz$ = puz$ + "xx   x    x"
  355.     puz$ = puz$ + "x    y  x x"
  356.     puz$ = puz$ + "x    x    x"
  357.     puz$ = puz$ + "x         x"
  358.     puz$ = puz$ + "x x     x x"
  359.     puz$ = puz$ + "x  x      x"
  360.     puz$ = puz$ + "x   x    xx"
  361.     puz$ = puz$ + "xxxxxxxxxxx"
  362.  
  363. IF puzzle = 4 THEN
  364.     bs = INT(sw / 11) 'boxsize
  365.     puz$ = "": grid = 11
  366.     puz$ = puz$ + "xxxxxxxxxxx"
  367.     puz$ = puz$ + "xbx   x   x"
  368.     puz$ = puz$ + "x xx      x"
  369.     puz$ = puz$ + "x         x"
  370.     puz$ = puz$ + "x       xxx"
  371.     puz$ = puz$ + "x x       x"
  372.     puz$ = puz$ + "x x  xx   x"
  373.     puz$ = puz$ + "x         x"
  374.     puz$ = puz$ + "x xx  x xxx"
  375.     puz$ = puz$ + "x     x  yx"
  376.     puz$ = puz$ + "xxxxxxxxxxx"
  377.  
  378. IF puzzle = 5 THEN
  379.     puz$ = "": grid = 12
  380.     puz$ = puz$ + "xxxxxxxxxxxx"
  381.     puz$ = puz$ + "x x      x x"
  382.     puz$ = puz$ + "x x xxx  x x"
  383.     puz$ = puz$ + "x          x"
  384.     puz$ = puz$ + "x x x x xx x"
  385.     puz$ = puz$ + "x x xbx    x"
  386.     puz$ = puz$ + "x   xxxxx xx"
  387.     puz$ = puz$ + "x     xyx  x"
  388.     puz$ = puz$ + "xx         x"
  389.     puz$ = puz$ + "x         xx"
  390.     puz$ = puz$ + "x   x x    x"
  391.     puz$ = puz$ + "xxxxxxxxxxxx"
  392.  
  393. IF puzzle = 6 THEN
  394.     puz$ = "": grid = 13
  395.     puz$ = puz$ + "xxxxxxxxxxxxx"
  396.     puz$ = puz$ + "x     x     x"
  397.     puz$ = puz$ + "x   xxx   xxx"
  398.     puz$ = puz$ + "x           x"
  399.     puz$ = puz$ + "xxx xxx   x x"
  400.     puz$ = puz$ + "x         xyx"
  401.     puz$ = puz$ + "xb    x   xxx"
  402.     puz$ = puz$ + "x x   x     x"
  403.     puz$ = puz$ + "xxx   xx    x"
  404.     puz$ = puz$ + "x           x"
  405.     puz$ = puz$ + "x   x   x x x"
  406.     puz$ = puz$ + "x   x   x x x"
  407.     puz$ = puz$ + "xxxxxxxxxxxxx"
  408.  
  409. IF puzzle = 7 THEN
  410.     puz$ = "": grid = 15
  411.     puz$ = puz$ + "xxxxxxxxxxxxxxx"
  412.     puz$ = puz$ + "xbx   x     x x"
  413.     puz$ = puz$ + "x xx          x"
  414.     puz$ = puz$ + "x         x   x"
  415.     puz$ = puz$ + "xx       xx   x"
  416.     puz$ = puz$ + "x             x"
  417.     puz$ = puz$ + "x xx       xx x"
  418.     puz$ = puz$ + "x     x x     x"
  419.     puz$ = puz$ + "xx            x"
  420.     puz$ = puz$ + "x   x         x"
  421.     puz$ = puz$ + "x   xx       xx"
  422.     puz$ = puz$ + "x       x     x"
  423.     puz$ = puz$ + "x      xxx    x"
  424.     puz$ = puz$ + "x x         xyx"
  425.     puz$ = puz$ + "xxxxxxxxxxxxxxx"
  426.  
  427. IF puzzle = 8 THEN
  428.     puz$ = "": grid = 15
  429.     puz$ = puz$ + "xxxxxxxxxxxxxxx"
  430.     puz$ = puz$ + "x x     x     x"
  431.     puz$ = puz$ + "x    x       xx"
  432.     puz$ = puz$ + "x        b    x"
  433.     puz$ = puz$ + "x     x     x x"
  434.     puz$ = puz$ + "x  x          x"
  435.     puz$ = puz$ + "x       x x   x"
  436.     puz$ = puz$ + "x      xx    xx"
  437.     puz$ = puz$ + "x             x"
  438.     puz$ = puz$ + "xx       x    x"
  439.     puz$ = puz$ + "x   x x       x"
  440.     puz$ = puz$ + "x   xyx       x"
  441.     puz$ = puz$ + "x   xxx       x"
  442.     puz$ = puz$ + "x       x   x x"
  443.     puz$ = puz$ + "xxxxxxxxxxxxxxx"
  444.  
  445. IF puzzle = 9 THEN
  446.     puz$ = "": grid = 19
  447.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxx"
  448.     puz$ = puz$ + "x x   x       x   x"
  449.     puz$ = puz$ + "x x   xxx   x x xxx"
  450.     puz$ = puz$ + "x           x     x"
  451.     puz$ = puz$ + "x xxx xxxxx xxx x x"
  452.     puz$ = puz$ + "x   x   x       x x"
  453.     puz$ = puz$ + "xxx x   x   x   x x"
  454.     puz$ = puz$ + "x           x     x"
  455.     puz$ = puz$ + "x   xxx x xxx xxx x"
  456.     puz$ = puz$ + "x     x x         x"
  457.     puz$ = puz$ + "xxx   x xxx     x x"
  458.     puz$ = puz$ + "x       x       x x"
  459.     puz$ = puz$ + "x x x   x xxx   xxx"
  460.     puz$ = puz$ + "x x x             x"
  461.     puz$ = puz$ + "x x x xxx x   x   x"
  462.     puz$ = puz$ + "x         x   x   x"
  463.     puz$ = puz$ + "x xxx     x x xxx x"
  464.     puz$ = puz$ + "x  bx       x  yx x"
  465.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxx"
  466.  
  467. IF puzzle = 10 THEN
  468.     puz$ = "": grid = 21
  469.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxxx"
  470.     puz$ = puz$ + "xbx x     x   x     x"
  471.     puz$ = puz$ + "x x x     x   xxx   x"
  472.     puz$ = puz$ + "x x                 x"
  473.     puz$ = puz$ + "x x xxx x x     x   x"
  474.     puz$ = puz$ + "x       x x     x   x"
  475.     puz$ = puz$ + "x   x   x x     x xxx"
  476.     puz$ = puz$ + "x   x               x"
  477.     puz$ = puz$ + "x   x     x xxx x   x"
  478.     puz$ = puz$ + "x         x     x   x"
  479.     puz$ = puz$ + "xxx xxx xxxxx xxx xxx"
  480.     puz$ = puz$ + "x         x         x"
  481.     puz$ = puz$ + "x   xxx   x x xxx x x"
  482.     puz$ = puz$ + "x           x     x x"
  483.     puz$ = puz$ + "xxx xxx   x xxx   x x"
  484.     puz$ = puz$ + "x   x     x x     x x"
  485.     puz$ = puz$ + "x x x xxx x x   x x x"
  486.     puz$ = puz$ + "x x             x   x"
  487.     puz$ = puz$ + "x x     x x x   x x x"
  488.     puz$ = puz$ + "x       x x x     xyx"
  489.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxxx"
  490.  
  491.  
  492.  
  493.  
  494. FUNCTION BASIMAGE1& 'BALL.BMP
  495.     v& = _NEWIMAGE(191, 193, 32)
  496.     DIM m AS _MEM: m = _MEMIMAGE(v&)
  497.     A$ = ""
  498.     A$ = A$ + "haIkMNfVDDdf6n_T77nE9WA#097Gb8ITL6TT1bI541141ET<8159YR0Ri\Ri"
  499.     A$ = A$ + "L>W[WgcjimVWVeMW^WMkIZNVij3W7P^;cdMEGMegeMZ^n[ojMG_#842Q#842"
  500.     A$ = A$ + "Q#842Q#842Q#842AI>g`=L3^6eX6iJFcJV[U]\U^FgjFkJOkK_kV^YKbea>f"
  501.     A$ = A$ + "AGWjDWLM^cMfee^fEGgjFgldm^gm[i?iWeU^d5o_7onMX3M`oIdfffFoWGcK"
  502.     A$ = A$ + "NcM=Y9=ae`6f`POo:4=X1=`edVfD_67=l07h0MSNdSf=Q9<1gLWkLM;H1;`]"
  503.     A$ = A$ + "TU\4gbGnbM[KM[cM?gcmh^gkmNMKJCKbcVglVMggmMOnoOKH3K`]ne_NgZFe"
  504.     A$ = A$ + "Zlongn]OknomCKJCc=a9>Ag`6f`Lm]_meol1?Oac1Qnn?;beMMg#`_6:GPed"
  505.     A$ = A$ + "I=GF3^Wm\WNmg`7n`mJlI<SIheh;MY;e]Ve\6_NN[KM[^M\SMhNh7nQMkNgk"
  506.     A$ = A$ + "f]om_Og1>`1L7i87amH?fSi>fa>fEih7ohNh_OdSNDo_c1?h1monkI?kao_O"
  507.     A$ = A$ + "WkLW^7h1N0oc9l\3?K\`5^#ogkh6ghLSJDSbo<7GGlnRfdVfhJLSKL`7g4Uf"
  508.     A$ = A$ + "PM<HkAojGoLSI<Sa[iFfbFVKKKKK^M][Mi>a9>QkdWnd^WkiN>g;nR_XkeOm"
  509.     A$ = A$ + "G_Pb;ob_\k5NQG`mD?eCi>eY>UK_kM_nWahM:lnU9=Y9i6b#6Rgn9NNEf79B"
  510.     A$ = A$ + "2H[n=NSgXGkP>7K>Fa:FQO=gm]_miGOn9ObWdMfcNFgcn\?[k2Gh2NM8JNdT"
  511.     A$ = A$ + "_j[nZ5L]o[mJ_VokQ_cWoiONgU^dUlG7WkLWcMVcL6gSoh?^k`7n`^7mAODg"
  512.     A$ = A$ + "MOgg]gf9\GJTSLT^KnV_Iok42mh\8k0f\S=2mX7m`Kk`lWolm[Qn#?d3i]mh"
  513.     A$ = A$ + "INVWaMi;Oi2^^>]hUNYGbOmbcZl<;fR]h5_H_n_om_o^FdRF8KRZP1Khag93"
  514.     A$ = A$ + "N`3f=kI?K_n0kba6VcOncO=[Yo:_b[DDFC?]Og0?3`mPm^1NO5??`nAhIQa?"
  515.     A$ = A$ + "naOem=7ji3Aa1\Q_M][Mnm]R?DH_SHk>J3\K?=eiX3[?TVG7HG6?7`nYgbFf"
  516.     A$ = A$ + "RgV>lM4__Cn<Zl5c?=gj]N[^5]X5i]7Ve0af0FOTef;DJ>NFZ^#JNM4mjQkE"
  517.     A$ = A$ + "^WIo2\?1la4_gK>cI>ne3HL:dcGRj?\N6ffPM^H_;nR4O5n4?aCh]]Yn\6OB"
  518.     A$ = A$ + "F_^^n\D]miTV_KPo]l\?n<RmfPoCimPhcDN_8[GP]QQN>DTodZFe:_Oh_[kj"
  519.     A$ = A$ + "^L7j#7b_6GJi7bL]N^Y7Ocgl=_:_eKmF^gn]OKgkl>_SkMOgg]6QO6o>lk6m"
  520.     A$ = A$ + "OKBonZ_`W5k?0o5]a=^AgdWndma[CjoB3`W=\o=f3;n[QHUR_>NjWnYm[aQ="
  521.     A$ = A$ + "_egefiooKl6_Q7dZ`E^bEL_gkmN^?h3n0g7mAOTkCnT?amYOjWjn\?kcLOnW"
  522.     A$ = A$ + "oiNnb_l;mlEOeGinj_n[_6hoWmc]OOngbW1OFlIbW=O7lMIO_feA^^FcWkEK"
  523.     A$ = A$ + "?14W]7l1O#g:Gi:MSM\SeEEEEim1LXWO5e<HO3fZ>[I=;gJGkJmnRWm^FOGO"
  524.     A$ = A$ + "?:XcH]HFW6=8ja?nSoH_F5mkgmMOWkkon_gm3o`?hnUOiGLoj_n[^Okgn=?o"
  525.     A$ = A$ + "aOl7GUol?oCgOmGoU7nkAoIf_?oKicP?;n<icV_3n^hkT_K^6hJQ[9^fBcm:"
  526.     A$ = A$ + "cn2HlSW18>7m^gmf7oS#??;nOP?j8Nn\7FFW7oDR=\lnKVoZ[fIKfZP]8_ok"
  527.     A$ = A$ + "onNmfGl5OQOMJdSoh?nSGEKokon_kadeAefomOogo;nWoiO^6ZYOWX?KH?OH"
  528.     A$ = A$ + "O?fc6L=`e2GCL]ae8G[L=Kf>ECkO8ON?0aaSHGS_`8na\O0ReMXWg[dQHfS?"
  529.     A$ = A$ + "jVbDVROm9dmh3SlEW7moWICSIKn7nQOXgf3FcedlV>_jJhR=fc3fc0L=R]BL"
  530.     A$ = A$ + "=KkQ8Z=AaMoW[g1P_1`oX4KPQ>dQjg;LXWo[4QhBB<jI]NbK<Rm:n\SeYBjl"
  531.     A$ = A$ + "IeWkanId;HO=fEPFjWoiOnZjlX[Q7J=O]mN3km4L=ce>g3L_`m4gKL?FGdnA"
  532.     A$ = A$ + "SGf5_h5miK7k7N#3J#jM059H_\V=>T3STCI\F_iOnlimifjkVVgfSjgl=OSg"
  533.     A$ = A$ + "nJ\Y0=TYi3]n>ON>P[I^fiNPk5^W\m<K?3DK_?89P?c#oC^TB^?A>L[lTX`2"
  534.     A$ = A$ + "nL3=?nSVl1fR;EMI_[H;<n=1K4#KP>Qeg[YefSJoMFWJjJ7hNSkA^GiNVkM6"
  535.     A$ = A$ + "3Z;k=Vg1`kHIOEToLTO[SH4S8hjSbA`o=T7a4KZkon_OOn7`kNc7]NDkJHm?"
  536.     A$ = A$ + "\QoKof_mZkI5K5ZYmLF:Yk[]mFK`mX]7I^gI<8jk2ZYa\L1[mP_P8GZYf58n"
  537.     A$ = A$ + "Q\o[#[G:WPl>QJH2o=PMmi[MZVo9a78l^OlG8f3GC[C6J]KQRJjmH<6`H1S9"
  538.     A$ = A$ + "<fHn9]^4c<RO2eP6i6Xb?Xj?TO9<FBngP^gb[bh\S?ZM=h[3FOSh6I[aKkM5"
  539.     A$ = A$ + "<O8FYQMoKf2aH3SA<FaHFDkQBbn2<O1Ii74f09O1EgPm>ak#aWm4GflaNNKM"
  540.     A$ = A$ + ";N?>[WIaMbfkJdeh[N\UZ4`dnA77H\aRO6SI<f5M\<Y_7Ph2CnPC^aAMj7JM"
  541.     A$ = A$ + "DY4To8hg0baFlI?jnTjcN3Vg`>FRic?mCode4cYJR#[53Qf?GS5<VaH7SQAm"
  542.     A$ = A$ + ";JB`b;2bQZ=_i=kZZZZlmJR#[[:5Pa9ZO:ZAkCNbCVG[gcOgR3[ISSik6FO["
  543.     A$ = A$ + "BDWW???Hk5PoKc68;>aEOL>>XNI8_BVjDWZg?5QFGUU1KL`O>T;]DoeTC29="
  544.     A$ = A$ + "gcRJO3n`cdlRj?<FbHJDkPBbLREW0h3Dl3DEoO[o;KPZIHO]TcaH[H^F__j["
  545.     A$ = A$ + "m`NbH>QhhSO[I^RL0[BeNVd2KlSaB6C]LUPaJ;?QBbk2`n7b;Jba#b58R?IX"
  546.     A$ = A$ + "eJI5X62Yo1`NJYOd4G>XEMO`IaWRi7;_bH^cb7BAm36;]lWcN6PalJJ^8G_3"
  547.     A$ = A$ + "0odajJHoSb3Ro;hknI>cIjm=6a9\fZUZZ?nbJ?T7_ToRAc1QXijXXnCdaD;7"
  548.     A$ = A$ + "9H<WanX[oW;oPboOFC3oF\jE_JolMUN>#`ko8g`Y7TaHCBf?[ign[LU[hm7G"
  549.     A$ = A$ + "e]]?dJUbEZnN0H\WiPl9_8HmOFOSlQVN8GUZnO03H0^kl>_CO=SS=Q9YfI9^"
  550.     A$ = A$ + "S4oMb=Al17[3927<7`L1c9F^a5gjG4OBFoOkKOknnFJUFmPANgC?CPNN6e6A"
  551.     A$ = A$ + "BmQ9nJSmKQO78oL]eiIoHRR7fk1H>Pi2VCH^9Yn05m?mDAb1m:Yn21e#>a]j"
  552.     A$ = A$ + "ANT79AeFEdLC0o=C>HIe3XEGORR?A7oI>QiVXi2ALcYhoJlo9eO1eHMXeU53"
  553.     A$ = A$ + "hnTjNPjQ>9ffK[gcN[hM\fnJU^?lHc3<W`L3cAAGo?^g3#=7Q>PHIF^gOh8g"
  554.     A$ = A$ + "kYVgR;_k=OWIe>8nEPeF8_3I<WH^;b>`L2c=<7aLUE[TaioCnIX3H]OliAXe"
  555.     A$ = A$ + "W5287Mhijkh>^3OngWdekYN[9NRfjmfj=QN^Fl_enP]n?cI<gUdeoY>PI__H"
  556.     A$ = A$ + "k?ak9djed4>CM8V]\_fLUGJASE2f=B^DaJ9fhKXWS5ao<0o9cI<gIfnWThOa"
  557.     A$ = A$ + "nOIOPdSL3]N=]0Oj#MMB<=Xn6BR_<I<3O7Ha]2o9cH:oY8kR=7IaoRi`Z7o["
  558.     A$ = A$ + "J3fk;eY1ag7K4:ek7LV]>DO]\WnTZk]hFAnTKSWh?=Af7kI0[F0\hOU4m?f4"
  559.     A$ = A$ + "#^o#_8XD_?HA^;A_1THiakdRkmN\o8[OhHSS0SSRB7\i=V3I^TidT6k;\=Pm"
  560.     A$ = A$ + "4R^9djgj3D_QL62VTc]46KHoAT[D\NAdek3mLY8o8jjoFobRifTXoI]Ob];>"
  561.     A$ = A$ + "cT2]n]^0fi#oKTlf;Yfhck6Im16k\n?YXd7K^TiFVSCbJoFNoC_PVN#FXeci"
  562.     A$ = A$ + "3DS2D[]dgXbUo]Rnc\NN9SE0n:#DjS=OJm:dZk;kJkI0joELFiQ]oQF?WDHo"
  563.     A$ = A$ + "]dO<I=ObA]hlWYe3_iMSQNNBDHafk;ciaigClk3mP9R5JYBmnbe9iX4eZIBb"
  564.     A$ = A$ + ";Ib1#[F3S>>ao]XdWZ?WbL=cia]^_eo?9oGhLc9djjhPc_B>gJXNKCbNKagG"
  565.     A$ = A$ + "dGT\LDCjnbCR>gbL=cifI6#Lj4>OXXWGA>#6JmM^\eQhgbcY\?UL]F_U_2ln"
  566.     A$ = A$ + "?c_>fhDe?CB4U7Hc_VOOH^?JN?DKj5jg3Tc3D_7Ienm6WYKd;^`F7jKPaIW?"
  567.     A$ = A$ + "ik4amfdmlWRbO\iJVkA3TTlM0m4i6#OjCO2^>_VPJAQmUcnKS;Wl]J]e>7ZH"
  568.     A$ = A$ + "\`>_Y4UgHce<gS]o99V_Hg?i60WgmQFWGMX^;Io]d?lS[7ZIiU\U_>fh1oMA"
  569.     A$ = A$ + "i?VfWo^]fOLfmcJYH7=ijICKJC3^N?Z^WjAa>?3S;>FHS7nje\cg674E>H[g"
  570.     A$ = A$ + "IWKNX9RK]Oli9ij3i3LFY7W`n_9n347;RQKLf^am9ihQMf4:]OU7AOG?JQTX"
  571.     A$ = A$ + "m1jccdS3kE_jE`em`X7mXmWOc9i\P`lU?gcfI8[Xb5d0X5<On7WnQh5AMNSm"
  572.     A$ = A$ + "eQFg3cH6c`W_JaMFfR=MGioo<YEJOAD]_MF17WMoT;`Fom?djNbI=Rk0fQ5G"
  573.     A$ = A$ + "OSeb?IcFOQ`0=ABbcI;F0dOca^W#5_;Z]B\cWJ]9^N;UM>=cnjin4Kl423d4"
  574.     A$ = A$ + "X=RNNHGKJOnCli3i?#Xbe1Rc6i\F^RQ[QM>=cm8acF8Z>X=\c3khdCh?AZ]A"
  575.     A$ = A$ + "bai#Xm]jBQN\BLfj#Oke>Wg4RJ3d8XERcf7Rc;mbb#EO;;KI;cK_CLnga>O3"
  576.     A$ = A$ + "Io<QN\ET]1=RMN?V;=5a?UNn1W9E5cNJ2mM1bCI>CPH=oL57Gc>Of73fc94a"
  577.     A$ = A$ + "1JUTHg?ajUcGlQ<TQDd>?79?Uil3VJC9^nY9g3fIRBX7C5U6HW];99NGLnl#"
  578.     A$ = A$ + "\^h\9\HXm9o5H?^lm6GnWbnF\j`=dSYRB3\jj=9ki5k>8Wii\lZHXma_BT_V"
  579.     A$ = A$ + "D?UaM]anfI_;VfWoD8Z=<=2JVT4WGRW:fO#>4G<dndcMBJOcgdnfcd\G6QXf"
  580.     A$ = A$ + "`d99EkcN=aOWL>FGXem\WJnNX>bbEmYHeSHdem]WW5RJSXj4d>aEGSF=mBo^"
  581.     A$ = A$ + "\#g;C\c=Rhl_CeenfceQN\ET]9Z>99JOS=]Y=E#kU9L^`AoVRh9P^?Gi`PeS"
  582.     A$ = A$ + "e<]_#T_Pf9Ymb=j=2TS35BkM6j#7J>kOnAm[_egM2mHXXd4[?nTTJJl07h0N"
  583.     A$ = A$ + "kA:Dm^I\g1Km9F^aM]H[i;]_X^2J7K]ohdKdO4fbFfB1;6G4;G>C#iI\lAk;"
  584.     A$ = A$ + "4eEBZf7o]C]\GXjKi4k<bM=laCB\gAJOAm5d#9a^7lc?e<KQZF6kNgk^ol`>"
  585.     A$ = A$ + "^HJ5Ek;4eGBRf7O_`Il``6f`liLCJkSWne_ni>h1?H\adBJOAJBBdnTG=DoD"
  586.     A$ = A$ + "L>]Wfni_=]Y=nN3ABj_\F^Kbe\#DO9^LjdPH]NKgf]ic[cdfFoa<VahO_BLm"
  587.     A$ = A$ + "N:Ym5Y99EkcJbL6fBO39=enH_c<Wi<mkY8^n_SdnRdTTZmY7>\ne_NoJoYYf"
  588.     A$ = A$ + "O#3J#n?cLU3?Bk;:4T?JObWid^gm<fa>FOoW:>Km=]_#Tf4W^3Kaga>fQK]["
  589.     A$ = A$ + "M]YZfObCNbnjcEJOAX89JOR_5m_QdDk?_i=?_]DlN5Ym5QPhdMdKd8W3XneC"
  590.     A$ = A$ + "C]?kOVHj6W?NTfGDX8>MWEkjkNgk>EenH_3i_YdnR#ABdnTG3\fOJZmIo3DW"
  591.     A$ = A$ + "Raec=5R#1eC2aNUenCC]ojFgjlfA9]_8[2JoCMZCi>jA?JZZma_YDK<9aV7Q"
  592.     A$ = A$ + "84Pfo\Wm\nn3KJZmIO^dcoUfGTE1]?iH<iHOJZmglVg\_N]TfGTE1]?m#QCO"
  593.     A$ = A$ + "jC;]_XR2Ym5EZDXdnL^29km5II#kC?J3OmXmj:ZT0]?eG2nh?=end?ZXOk;o"
  594.     A$ = A$ + "k;bZDXla9iaVdnR\<XmaFO>3BCC]o:Fa:LKKKKCfl8b\#nlP_mil7==enT;K"
  595.     A$ = A$ + "dg[TfGTE1]?fkTfibVU3c99om5R#0Jo3Oh3k[OUdDk?oi?OonMUfGTEY#Ek:"
  596.     A$ = A$ + "LnJQ=o9YV55R#0JOl3?mRodDkKeZNBjC32A8PmR^m]_MgZFeZBE]?mj:ZIG]"
  597.     A$ = A$ + "^_8[2fScNBY?lWVJoNfcNj]ki2Gh2illdE825Xma^LdYYYfWnk9WSST_4:nF"
  598.     A$ = A$ + "R\8HC2W?4HONJZmil\H`3N`NoWNi;OiPOO:4E7f;:m=cndWnTZJo6f`6NeN#"
  599.     A$ = A$ + ">fm4jkCQ8:T?3GlRGd=a9>AGWkLWCE]?dU^d5O_Jh<Wi<1oNE8R2nhQlH3KC"
  600.     A$ = A$ + "JJCKJZ[mY?TCl]>na?N`_G5RX`JndKBh\1:]em0Wo4hSoTLFc945C8_m9^F5"
  601.     A$ = A$ + "ZcJ^Ve\Vi6oh7_?VaQnNE8R2mTWE_jEG#\g1JBCJRoL7RNC8Wo4aM6D845;`"
  602.     A$ = A$ + "7<hOc2eI;]]OGRI<nBEahBTE0KA6gh6G1Cg7eVOlcYbUOAX1K?`oVd;56h07"
  603.     A$ = A$ + "H1Ek3CJBCb_OG>k]2mm^Xb6dmH3bBGjBM]\U]\P[miL\3ol7gi\[#DX1K?8?"
  604.     A$ = A$ + "KBkcG^JSnfgnjgGQRaU8dPOmi\VH4SH455]O7kH7mi;4if3_cAnkA4:`_nhK"
  605.     A$ = A$ + "cNgkNGDdnHGE?jA?le3?njAJOAXPn#e<Va<liL#a#k3=ZA=bGW0\f_ZU;Aa6"
  606.     A$ = A$ + "\g0KmaW;TOm5;M_a:Gi:MkOokgMY;MYP?F8Z\0k=8Gjil#Ql=XH[mYFFFlRG"
  607.     A$ = A$ + "\fc[XX3kaUn2>aJZH[kQQ=\QiVm\W]_GHYLL#D<QN=>iFcLVcL2Rf_E]ZEnL"
  608.     A$ = A$ + "LPlWShLQ=HQN<ADI0WUXh[a2E>;77\OGbIDjEQd3#E>>8:dP]5DCjkKOkcEE"
  609.     A$ = A$ + "EEiJKKKK#dn6Hg3W;;Z>N55JX?9PO=Y6Z2YVgHX3MXnNg3ihP\kAD8QeGgjF"
  610.     A$ = A$ + "gZ_Vd3]^7JOkK_GoSoNDN=;:T#n3cj\3H038hjNSFgjFkcSdSLTSXngS8e1k"
  611.     A$ = A$ + "l]Jb][M][^6dP64L=_1kkUl8Uno\fc[8]a>?Q`WR]X5]8hjmZ3m]#\33knU]"
  612.     A$ = A$ + "?Rd4l]3WkEDk8QFWGC#n4Q?Gi<NDihS8]`jkDdSIIOUQFWW;moJFcJle=OX7"
  613.     A$ = A$ + "c4U7PM4D;jM[KM;hjkL1fRQon=knU??5eG8WIhlT8daa:9P?OhliRL^#kkED"
  614.     A$ = A$ + "O1MOokOo3^^>9PoW`^ObeXcOnc7la>AY9D3jDO8cM^c]PecY:4#>^=i9?Ioe"
  615.     A$ = A$ + "^Z];AnPUC`Hg0e75i]CXeci3dO\8??gh6gXOO_bf7ABQm8B^;\gm^GG_jE_b"
  616.     A$ = A$ + "Daa:OHA;JAncSMliYFkGT4\lESl4PcmQ#[Q[[#]D>X1=8omRdoRT0nbWn]CF"
  617.     A$ = A$ + "fGn91[nFXVR?gi>WliYXFab=Ob9bA=ZAicKW#[OC3XfNGh2GX>SB5e:H[c>f"
  618.     A$ = A$ + "a>L;Oi;?hjed4jUKSI<SaW_3jljBDM`G8H[3eNNF=WMZ?P_OhIJjUWQN\FT]"
  619.     A$ = A$ + "Pe4Y>4cRiXIJ1W?kTc3HCWj[?2Rm3fh_^e]^<C]HE8GkWLBJWkLW^CNbCZni"
  620.     A$ = A$ + "I5>dO?`78hCWRA?4?dP?KYVcX_^ajolLOXW345GHm>fK;[1BodTJO:djbR5H"
  621.     A$ = A$ + "GgdWndMkI?ka_gGUg3EF`jMd3UIoOdGS3]N\H3WOALF]CMXai7PZe[:78FW\"
  622.     A$ = A$ + "fGWjDW2^><4P]?TCfHkSeKgDM^GN3c_hC7>KhXWiG:Wc2Y14gGlo3WGkHoS\"
  623.     A$ = A$ + "mYl5lQo2F`2Lgb]L;1GgU5Xa=^anjMQjaTjAVJDCao]l2F_WnV<eQ2fi4Rn6"
  624.     A$ = A$ + "NF6lm9mfIZA=5kgb;H_]\N?af?dj\\:h[[A>bAj7W`?0Z7OFj2a^QekI]NV?"
  625.     A$ = A$ + "KBCJB`eGIMh\\3m?mP;doboWUFHeM5f]bk_WolW_omiQFGEZ0eW9aj3oobNP"
  626.     A$ = A$ + "EonYd1F[7OfANK=[I=;ON\7JmDY6<V=a9>AOMOAoXSeADnoWMaRE;iY5[GaI"
  627.     A$ = A$ + "`<eLHXeAUZPmoH3dBFbBLkJGkB[oWQQl#6oD`JE3LP3\TZg:TEQhO<jA?JO]"
  628.     A$ = A$ + "_`N08gWDO_:kPeSTi\gQnZ0eKX\c9MQL0MJCKJ^e^fejg3Ujm3I3`>7>[?Ga"
  629.     A$ = A$ + ":FA9A_C[DU>dQ>h[mMf3<ea?_3PmE5jio:=HM7lo<iR8WgJd;bZ4c9]#0ea<"
  630.     A$ = A$ + "a9aZ1n#[5Zd0M?iO8aR7kA3]NXB3jIAl<`DVbDla?1O1ajA:F05>`7>\F?n`"
  631.     A$ = A$ + "1O#[mc6F8O09^Q7n`7fW;#4oLU?dY7\F2nE0O<C>HB_fSejE>iTMPl1Ul3Tc"
  632.     A$ = A$ + "kd3MX3YlQ>5`>[OXogCMFCnf6jiIao6Z5<\1Rg7SnWm1P_gD<ab?\HDA\DXO"
  633.     A$ = A$ + "`BOa4o:#N9P_62ml\8g`N1H=:R96i>;?34J=EY2Hc8eE5[OP?UKGkJG`W?5i"
  634.     A$ = A$ + "7d;#7gh6gEeo4WMl=1?7Xg3lo`\UWHVPVWc9FlM0mmNjog4GU#?G:ZkP]#l>"
  635.     A$ = A$ + "Kj3<kNgkFm5g8P_a>a9>Q_>2Y7iXJZZl2b;8Rc>e6?nXPH#bJKkOokgkk2lM"
  636.     A$ = A$ + "GUP_QH=Ndjln?N?8jm=\Q=hVjDWZKh3OhNki;Wk=JRoK=2<h1?h[NNHGYdWP"
  637.     A$ = A$ + "hiKR;5i55kOUc6WBUcb:Aj2k9Vc5ENO0__7O4AnRB_Q4OLD:W_4l\\YcinIe"
  638.     A$ = A$ + "[Nenh`R==H3XZS:1`niXGACmRA?Ca>[T\c9Kf;8J9lmGF[>bhJQ[9^f`N6^>"
  639.     A$ = A$ + "ij5kJhjWnj=iG9ao6M_\YA47hK?ZONbC;b;GFgTNX7kAPH7`I8I8mG4JNFG7"
  640.     A$ = A$ + "ocL\SM<oe5JLjSgHoNOjCOlnj:dSSRBC8OEjI?kYK4SH4NKRFeZFUoM24_7b"
  641.     A$ = A$ + "Q2Ri9f6A^DP_CI?cHW4_[`PeQ1FC6HmiJ2kWKon\f]1O>lIcg1JMn>IMMl?3"
  642.     A$ = A$ + "fd#m1R^WJLH2CH2nJ7QnnBYjidFFR[kjT?NS2eCCcKNcm?G#Oe5m6eV:fCSO"
  643.     A$ = A$ + "Da7Bh35lW:iJ:iH1nEQcLE\3QmFcc=0oMPnB=oL\eRW[8Wa8_hgjFgZGG_\U"
  644.     A$ = A$ + "]<glVgll[YCNTQ_giMCE2m_HAf3N_0[_B^4A>eA]5P?Di<FRn=9_[0m:iJ7?"
  645.     A$ = A$ + "G`NYGlRG\goB0jIPo>ooiWcIC9oncI>caol4nRQ??\E7Ob#Nb;=_#842Q#84"
  646.     A$ = A$ + "2Q#842Q#842Q#84RbMn?0fDo%%%0"
  647.     btemp$ = ""
  648.     FOR i& = 1 TO LEN(A$) STEP 4: B$ = MID$(A$, i&, 4)
  649.         IF INSTR(1, B$, "%") THEN
  650.             FOR C% = 1 TO LEN(B$): F$ = MID$(B$, C%, 1)
  651.                 IF F$ <> "%" THEN C$ = C$ + F$
  652.             NEXT: B$ = C$: END IF: FOR j = 1 TO LEN(B$)
  653.             IF MID$(B$, j, 1) = "#" THEN
  654.         MID$(B$, j) = "@": END IF: NEXT
  655.         FOR t% = LEN(B$) TO 1 STEP -1
  656.             B& = B& * 64 + ASC(MID$(B$, t%)) - 48
  657.             NEXT: X$ = "": FOR t% = 1 TO LEN(B$) - 1
  658.             X$ = X$ + CHR$(B& AND 255): B& = B& \ 256
  659.     NEXT: btemp$ = btemp$ + X$: NEXT
  660.     btemp$ = _INFLATE$(btemp$)
  661.     _MEMPUT m, m.OFFSET, btemp$: _MEMFREE m
  662.     BASIMAGE1& = _COPYIMAGE(v&): _FREEIMAGE v&
  663.  
  664. FUNCTION BASIMAGE2& 'BLANK.BMP
  665.     v& = _NEWIMAGE(158, 159, 32)
  666.     DIM m AS _MEM: m = _MEMIMAGE(v&)
  667.     A$ = ""
  668.     A$ = A$ + "haIk37D3000334BDWoefV<j78QZ;EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE"
  669.     A$ = A$ + "EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE"
  670.     A$ = A$ + "EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEMf7?=jK%%%0"
  671.     btemp$ = ""
  672.     FOR i& = 1 TO LEN(A$) STEP 4: B$ = MID$(A$, i&, 4)
  673.         IF INSTR(1, B$, "%") THEN
  674.             FOR C% = 1 TO LEN(B$): F$ = MID$(B$, C%, 1)
  675.                 IF F$ <> "%" THEN C$ = C$ + F$
  676.             NEXT: B$ = C$: END IF: FOR j = 1 TO LEN(B$)
  677.             IF MID$(B$, j, 1) = "#" THEN
  678.         MID$(B$, j) = "@": END IF: NEXT
  679.         FOR t% = LEN(B$) TO 1 STEP -1
  680.             B& = B& * 64 + ASC(MID$(B$, t%)) - 48
  681.             NEXT: X$ = "": FOR t% = 1 TO LEN(B$) - 1
  682.             X$ = X$ + CHR$(B& AND 255): B& = B& \ 256
  683.     NEXT: btemp$ = btemp$ + X$: NEXT
  684.     btemp$ = _INFLATE$(btemp$)
  685.     _MEMPUT m, m.OFFSET, btemp$: _MEMFREE m
  686.     BASIMAGE2& = _COPYIMAGE(v&): _FREEIMAGE v&
  687.  
  688. FUNCTION BASIMAGE3& 'PASS.BMP
  689.     v& = _NEWIMAGE(324, 155, 32)
  690.     DIM m AS _MEM: m = _MEMIMAGE(v&)
  691.     A$ = ""
  692.     A$ = A$ + "haIkMN6[ED4666`2H35\0:ME`2Rm6F`^2::4kX8FA454\g[A15kPUPmJD80f"
  693.     A$ = A$ + "kR6SXR6R]XH;Z9ZQ8AACDnoJNV9O7F>L?Wc^c^kiN^gkkKbC<8\cl=k>ckIJ"
  694.     A$ = A$ + "k\][M];ZM2Q#8L8999eFGb?DBBBb;i7:999iUl3UTTTlBnQBBBBN9o#9999_"
  695.     A$ = A$ + "TOXTTTTGb?DBBBb;i7:999iEJl3K^gch2Q#4:b?D84]eYm]_mAMX3MX`l3kL"
  696.     A$ = A$ + "WkLD?kI?S6`06#df^]K[#84=\dY>eYX>fa>FHnQh5>h1?hXQ?lQ7ML7ga942"
  697.     A$ = A$ + "A3;MY;Mae7^Rb?Tn5RGhH7kHS^P;h242QXQU^e]^5ee^fe2c?TnPR_;ieeOm"
  698.     A$ = A$ + "G_#84=\\IKfV5]aKl6;o#Q#dV7i7:42Q7i7:42Q7i7:42Q7i7:42Q7i7:42Q"
  699.     A$ = A$ + "7i7:42Q7i7:42Q7i7:42Q7i7:42Q7i7:42Q7i7:42Q7i7:42Q7i7:42Q7i7:"
  700.     A$ = A$ + "42Q7i7:42Q7i7:42Q7i7:42Q7i7:42Q7i7:42Q7i7:42Q7i7:42Q7i7:42Q7"
  701.     A$ = A$ + "i7:42Q7i7:42Q7i7:42Q7i7:42Q7i7:42Q7i7:42QWF2nQk`>\3AMZCMZDJ6"
  702.     A$ = A$ + "2]_m]_9Ck^e]^Uid^8Qh^A?6]h<?Ra:mL:YTgg[bJlDDaHBR[\T?iAm^lZ>A"
  703.     A$ = A$ + "mliC;1o`]H;fRXNe[N5em^gMG\V6jJGkJD7kH7MTgYMBbk=ICfT<5gDO:[aH"
  704.     A$ = A$ + "FRST6Wm]_m=caHeN>E?Z[DNldi>giX=JSf8GKTbQo=hGTVHKkf^]c5Om^gm>"
  705.     A$ = A$ + "ZWm\W1G_`R[J53QL_8?ZgUGe9Z7eGJ9j7B<bmdkj^^[X7kaN\DS5;5AJG=^g"
  706.     A$ = A$ + "kmNMe92mj]hVjU4SCKJC;CaAAE696_V[iJbD<beE]WCe[j:a;Ghk#k^\h95g"
  707.     A$ = A$ + ";\Om[O>O#3:c?ocolA;H1;8jGnUO9Ji;Oi=IKYU^dU6mmOog7mV_iKF:^<ZF"
  708.     A$ = A$ + "<Hg;2miPMmYmIZU6I]>A]8?Z_dBe?THlmN_g;AiMUR5NnL]GkeV[YMed?oco"
  709.     A$ = A$ + "LdEL5GA`G_5g3LP3dE_Wj0I9>VolWO`aBeBKRa[l:_b<5S?d3m#U:_l<jj^^"
  710.     A$ = A$ + "[[IY^BU4nEh9AjF^Wdj\>[S[ogeZ?QdG90_j?ocolPSUU]\U5=kI?kXeKmF?"
  711.     A$ = A$ + "7E:6BCKKC_f[mJUN>\iKnV7dcDkIIF[CD;E]feb?\fa2a`UOiG^knGm`?La;"
  712.     A$ = A$ + "NaAWciL>AoiOnW1Mmgf]MK^hnl?oc?J3g`=<jeOmG?Xdicn\?c57_d;mB1Mm"
  713.     A$ = A$ + "ECD696?_cklLah3nP?H#YSEFQ;kb^\X[nZ_jPl4;bWWaeBFbBLnRfHfZTWX="
  714.     A$ = A$ + "VC[?QiILmKof_5M;gb]DaH84o`OmGoeB?7fV]IK2b?cNF>a9>AGM2l7;2E]f"
  715.     A$ = A$ + "eb?\fabX7mXMN;lkFeSf?;LQ;<j`?l3?JA;JA1MmDORhNDSJDAMY;M9j]N[g"
  716.     A$ = A$ + ":Xdi1NP7`57?jSnX1MmECD696?jSnXSFoeOmS^WkiN2:M\b:<na?NWWH8oVO"
  717.     A$ = A$ + "mb?ddWnYOJdJ^V[ICj7AO3]i:Ta<Bo;cKmgomOkn]SV:62a?4=Va<6gcQcl<"
  718.     A$ = A$ + "?CgL3l`?l3WZ[gNFN2W`9hZgBm_R#E[M]l3[M\LP7h16MjWnY7M9GbUDGJo`"
  719.     A$ = A$ + "H?jOokOdMNWgI#GoTWlTMam#6b#LN=TNQXCkd>]X1<P14=UY<UP^nZ9KlEkl"
  720.     A$ = A$ + ">_cA[kj^^ACMZC=XdIX3MXUN>Qo?Um#nmnj]O8j5OaGdi7A\SW4nhfl5Jm=l"
  721.     A$ = A$ + "[oj_^`bO6oaTVdTFYH8;nQGl5Oa^dQhVng=cI>cDMmfcbmN_gKgHi3mg8[UZ"
  722.     A$ = A$ + "FkJi7FkHQf\dFkR^X;Z^dnI>cI>^igiB_d;=X[WahJcO8Ycgn]OK#Yc>]CkT"
  723.     A$ = A$ + "c?=;cUIU4UARAJg_F[eJ5M3g`=4Dj#<J?W6a86Ad4V`4LmkYUPO8bNF1To<>"
  724.     A$ = A$ + "IlChnb[l:_BQWo<oVWd9MB[dLZ5ZOh7mAOT;=hi9m?L6cH6Yjj]WUdfWOSl>"
  725.     A$ = A$ + "^Sk8ea#BDeJG;o``RUR\mccn\?KdZ]J[Vkg93AWkiN^^hVnI`hPnV_iK2:MH"
  726.     A$ = A$ + "<;\?]hgmcKAITHTiIRmX1m=:4]EKeFEji4S]WbN;9o`?h3nPBa?m?KCgd=]d"
  727.     A$ = A$ + "J[FYe=>_e=MCgd:i9C<4RO8Z?mY?AMX3M8J3fP=8enIfcBF?6l3In4;2UWN<"
  728.     A$ = A$ + "b?\nh7BnbHEcbecL#QOHXSibfgZ<WLi]TOh:d^]KkFYb0NQL?Qm8CmB\n:Fn"
  729.     A$ = A$ + "cHW]H84ISiUaULcgl=WZ[EnQ5K\fBg?Tn8VU[O]GkefE_:4mn_okkB3n]NV_"
  730.     A$ = A$ + "ilFb?L5JTSLT^hOeGmEgi5aN2Tm>HmD7fQMHU^?bjZ4ZOX]WIHnohi#JTl3;"
  731.     A$ = A$ + "fH]U^O8]?nb_l;3:=\aOa_CWUH0o#VCYlF]fl33mi4j\>[cZd_Oam36_J8Re"
  732.     A$ = A$ + "_Pk7\g>C[R??V43\N8Q:ROl3_`;l2Cee9o`R=FK=h7nb_l;7DJHSmQe#;4MZ"
  733.     A$ = A$ + "WjYFZ?ZDNcKeJc?Tlo8>RS8X[UehdZWajGan^>4Ig;N^WkiBme>[I=[Bg7I]"
  734.     A$ = A$ + "#P#e`6f`LcEch6ghBee9o`R=FKTm3]d^JPGDXk35lI`?TmbE8:^O8cgN8:YU"
  735.     A$ = A$ + "aF;nQ0[GKJ5k5Mc7PikUeB94aeBj<fa>fDO]f_?1h9cJY5ZH<cl<mT?iC>EG"
  736.     A$ = A$ + "GNi76_>Ae#nQYC=WnQ\>6do`#gc=l>2`JlanM>4IeY86^eKmF3:=BBMbeH=F"
  737.     A$ = A$ + "3gh4_aKl6cDLf8h7bc\i=_iUj[elRH?f`mR#g_Wfm1fSaQ630ca2eMbRjA?j"
  738.     A$ = A$ + "QKNACSZgnQkj^^[^mJTf_=9Ce3o#VW5f_I\FbT?6\7^0bc#4e9XNmaOl7O#G"
  739.     A$ = A$ + "?c[_iG5jn0[FUa1=X1ijC3em3ec]Ab?TiJ=Tig`lR86`?l9NRW8hH0?i#n=D"
  740.     A$ = A$ + "km97hi1mA<;Ra<O87bQTZ[Y8l3I^<I?MBo3RGg3_#F39NGJhnUl3cF\TGY=n"
  741.     A$ = A$ + "43N`3>Jh3Oh^l`Pa[POFJWCJC<NGlJ2M]#\hSn7>mY?m<U6EZ<RG=cK?m5Qg"
  742.     A$ = A$ + "Yg#DSVOH8_[hVO8[[<o68oi\43YMMMSOm0eKbZO8cabn^_kKZ^VR`?TmL=nN"
  743.     A$ = A$ + "7caL<[DM?jG8NQdVnZ^Z[BnQI<Fb[dVn<Q?1ci3Y_1n4DW0?aokon_DWnh7B"
  744.     A$ = A$ + "O=2I_bHmEPnJ#o3_okonCMJPZEI4_Nj7JFNgmKdl33iM5gl39oa?lINVW9Ca"
  745.     A$ = A$ + "#Xc5[MOTj=dWn\8V7eMOggmDM=5QO8[W8]5H>4RGgSa8Co2a;<?>SKTOHn<O"
  746.     A$ = A$ + "C<_cdG#jK#lc=D>K_i\7Tei;Tm?1_oKdf:4_<[m9mCPeT9D_ZJE6]g?=n_QN"
  747.     A$ = A$ + "f>eJc?TkE?mCodI:6hlm9d[7XNCFm3AYM^NbKo#F[>jW[m>g4_NGU>WeTOHH"
  748.     A$ = A$ + "aBNen1o6j3Hlc?Dk<lUg]OncL^KUFAK<BSGmEOeDO]hUJck7YAXW_=YY<:o`"
  749.     A$ = A$ + "E\gSJ]h7nEOeGUZomi]O8S]QdQO;f>oKK[OnHgXj7bc<N?]h<8Pg7>>;?JZc"
  750.     A$ = A$ + "9h#c3JSQ?D8W90fN]QjAD_9dig?=UAi7fhh7B<4jnh?;:_l3YN0W=4l^3bI8"
  751.     A$ = A$ + "6Y3SaQjH\g>]bYl3CW:Bo`ZYb?WP3Ym1SaVe2Qg=ed:6[NNdn\J:_>;TUOhZ"
  752.     A$ = A$ + "63]em3[VNWgiM:E>cbiY^l3[OnQa?WPY?JQN>`aLg5R\jU\F7IIm>[Vb[c2I"
  753.     A$ = A$ + "i7^ZaPl3[\hk>SE>iL?D[WBbEcUOXM>1SO6[YAXe=3M>P\gc1fW<\FSl=g8_"
  754.     A$ = A$ + "ENMF8;o`E=6TOHU5ec\b9kg1>;kdg;PTYV;o`hWicfk:0W_kYE\7G2AFNclA"
  755.     A$ = A$ + "SghLWkL3:MZVb[c2Ii7^ZaPl3[\HnI\b9_kFlmkAO_0BVJ^l3SOV?SG8mOjW"
  756.     A$ = A$ + "nYO:eY3WgoYEaO_]HmHXNi;l2_#ZCWJYlj\#FnQ[J<8o`:[hWS?lncLfWmIk"
  757.     A$ = A$ + ">ogUOHfRURd?<NKLkM[Wi1>]:TcPohnQFkR#?SMZV:RmN[l3UOH]T]g9PmOo"
  758.     A$ = A$ + "gOgkX2OSmTOHfRUj]OHXOCXB[RGOaf7J5aga3i7^29o#_TOHUog:o`Ef?\Xn"
  759.     A$ = A$ + "FdF^>fSmH;Ugfk]EAh5;o`E8i7jUl3[loFi7^2o#XX>K<[FNK_Go_aKl65Fn"
  760.     A$ = A$ + "8o#i7JBnQEnOK[Mo#J3D9\cJ;Pj5II?gTFAOASWg\N>Qn]=:9UAi7:o#CiUO"
  761.     A$ = A$ + "8OkOZDm^3h0>0i7f0j7JYM]`f_=hC5bij#FR;;_Okgn]cLJE9\e`nf_mK?Xl"
  762.     A$ = A$ + "#nQ[J<dFg?<YW7\Lfg`g^6]nb9C=2nQ<ONfgk\_kkn^Pb[T:nV85?_cbJKSB"
  763.     A$ = A$ + "BicJkUe_I8b?DnQUW>e2nNg`n_Ako`TYjQO8Wg6KiF^UAkh>^S^cn0SmIOf7"
  764.     A$ = A$ + "GkKnF3IO?L;RiZ<^R_GKX>5m=ThKncOn1UN9Y<Jc?J[Uc3Fi76^:2o`ndWnh"
  765.     A$ = A$ + ">3Uhl`fZg]GkeN5MX7jQjnn^<Y9=9MN`V#E?l3iie#6b#LkEnA?jAG2VgGf["
  766.     A$ = A$ + "XTWLf]5jij#J4N9FLAM8jK8NI5IId>3VhKZD8BnQ[J<dLh76jnY?^:2o#>CJ"
  767.     A$ = A$ + "?bSl8MW7fFm^a<Vah6W<WA\<gQjmG>IZNh7bc^SjX>:Gofim;gPc^GNFa_MA"
  768.     A$ = A$ + "NQWAXW1<9EaGk=NoA\_kT5IIdjkkSl8?B#iQl3GeHXi`?Tj>IiK#=Z8l3?h3"
  769.     A$ = A$ + "nPMSaRcRmhekhlWSa9ck^LNL6g8o`R;];7b7f7PiaIdIeTM>OIo^:Wk<#AF6"
  770.     A$ = A$ + "]kSjlnZU_OHXOS4=eX]7\TOHbSUjYO8WcndFQnZ]lU_lPb_TXheSH^m8?UOH"
  771.     A$ = A$ + "b;[]em3gUMIG2:O=9o`:o_]Aa?\BOo?jGojWK\N5AJ7okl0ooSGF:bmLCleN"
  772.     A$ = A$ + "SmR#Nh7F[bXMO<[nQImKUANi7^TU\TDO]Uk7bgV^\43Qh7bNf;[nQIiKH?ZN"
  773.     A$ = A$ + "mmCYlfFb?<IbZOeDOo?hNI_kM_;Td^Yn>?HUU5\P54DnE;5ok_;`gXAb_\\^"
  774.     A$ = A$ + "f9Y<Je?cZOHFoFIT7eEXmG8ZLo`\lmaSH84o`b?7?BkLcHcmlCmD?EZcKCeS"
  775.     A$ = A$ + "_O:a[G#iDnQ9GD7INcKN^a0]X5]8gnoS_SR0k?4F3fR8]Q?iCnTBg;bSbBBR"
  776.     A$ = A$ + "7;ojOok_K=i\mmHAF6Y>IFl3YO=cI>cam>F_`5^`X5_h5klf9mSOF8G?l3ik"
  777.     A$ = A$ + "9M8:_l3YM?OS8bbHfQ#nNBQO8o^gh6ghBMNK:?OoDZDM2STF_#nQ9CggmMO^"
  778.     A$ = A$ + "_Q[Qn^\E;m3o`?DjN1kONK?gDD[al<Wi<GYkmlmkfVgbRb3f:S<NIbolFl]Q"
  779.     A$ = A$ + "g:CeJ]4cJMU\4ofgc#^GCoFV`4V##Y3[76m9j7oaO<hH8;nQL]3LP3<ei]Yj"
  780.     A$ = A$ + "ak_\9[\bNhPiF<[kiVfjnQLokD>UCamk#5QnR_h;:M_Pc`Gl<XOnQ^_U[UR_"
  781.     A$ = A$ + "GKXM5WSoh7FTm9e:Sh34jk[Ge4[;QEVZeN=[XkoMeDlkmhWai:don_oKZC7j"
  782.     A$ = A$ + "3DXonLCM^6U6IU1jOJXcaMcQO8k1<nV1TeeKY]^OhX6eXLkcm#o^OD;m^_kk"
  783.     A$ = A$ + "FjN1eEI\#<7L5eN^9nki>kUOfknh1GTN4FITb5k7\lFCMZC]DIZF_;2=:nQf"
  784.     A$ = A$ + "JIlaOl7GGSQhWS7fiJDJTE6`?OjCOj153=7nQ\_HI<nDoCnQQ;n^Od[Ne[XY"
  785.     A$ = A$ + "<UYTkY=RcXoh[e[m^R0oaOl7iNn5O?:<h1?HGmkRf?d:Sh1`gfWlFhoIUYJm"
  786.     A$ = A$ + "^ZfLj76oN?n0h7NggmMGgbO>ocS_FJ43Qj7Bo33ikD1Zi`?Tjjl>[#O4UOHh"
  787.     A$ = A$ + "Ri9Qj]d?kR#cJFcZdmRmH?f3gHc]a_F4kiVhm?Hof_mcM>8EdnQFITf#do]l"
  788.     A$ = A$ + "FWaIL6[d_YD]cbTVCo#kkIX=FEPjF<_oe3egnfgEb?TaP`k^NJTi7bn[ReEI"
  789.     A$ = A$ + "I;KIY>>J>l37dP6TKM`hmGAnQQ;NfAmFj_AAXh[g7_3jlKH5YoDlf3lMfQa#"
  790.     A$ = A$ + "`JhD?FCKl3In7bKUVcncV;o`h[SAlnVQO8SgoOnWoY#cOjGDllWfMfi;GJTM"
  791.     A$ = A$ + "_Vmk3[7C8Sg_i`?<?lITOHc[O8kSTlDag;^fH;I?m;o`RELO?NO3]kmfL5Kk"
  792.     A$ = A$ + "Kboj_n[29o;OLbfh7]gCcd8kNM?jA?L];Va<VAZS7i7F\aI[Eo`lN?g4?_fj"
  793.     A$ = A$ + "]N[S6i87YKmH[GkiafRnQ=UG8[[?eiImfi_3o#6k9SUKY;MYiJnciACiNQdV"
  794.     A$ = A$ + "S_Igfn`?=:^O8m?<Tm<Tl3;fh\eXO8[WbdVfdbel:^_1kaLkn^l3cOanD<nJ"
  795.     A$ = A$ + "i77RAVcC>oEH_`7gCTWo?nSohI>oi<X9nifQ1N#TofjX5ZO8#<CKSOogomDU"
  796.     A$ = A$ + "6b?\HSchWCF\_\Vm\W]kLHVi<QecTWQQR]n33MX3e]o2hlkSm#GNTf#lf<VO"
  797.     A$ = A$ + "8SQQijVjKL6n?gi>GghBH_2`IUHXiElegTci;lVH_VGTgoRG6I>Whlil9ObW"
  798.     A$ = A$ + "diAbNHROWQe3>;YOlbEBl3;Rb:kE:RSJMV=_WkiNjVGOjG^]WP<?ahokhN6o"
  799.     A$ = A$ + "mOh7nQYZmOelQiM8Wm;a9NRWXK=iINB\ci=nFcbm4f7k<7:9iN]]V#DgTmWK"
  800.     A$ = A$ + "B[SJ]Y`?dj[1?;HnQb[j46]5m39n`kXJe3K90kcA>3;YlDNkSl6JG#m5jSB["
  801.     A$ = A$ + "UkO0W3Nh[EYeG^iZ\>P1<0gcGl=a_Ylm<>NRE:^jI?kIYm>?kaUbKccOGl_="
  802.     A$ = A$ + "I=5hSaIe;NQCLRCdiiTek5D7UmQHF^_`H6Z7go]kO]5FOiZEGZU4dg9f[8lK"
  803.     A$ = A$ + "\5MIRc79FKIl=J]Lo3HOgROCUfoQecb:N#Kof_m^e^HH3KH^mJ4cgFeNoIX]"
  804.     A$ = A$ + "6SK>_R1nn=`n^WlWmb5m;UWiToImN1[5DFSe\jWVDhg2hg>hLR]e^OHLHO2B"
  805.     A$ = A$ + "Ja_SBK3j_0SQ:;`nBQc0OVc7l#X?LiEJ3\WiHm6Ym2eGSgFVa_Po8SOPnFPW"
  806.     A$ = A$ + "IFb[3jP>8gIh0e=hnDi_oB5am_b;Sh9<i9?IGohhn:gOcJjCLBlBLgDU[jEM"
  807.     A$ = A$ + "56[:Y3n?TVDgVj;llSnV`cfJm>dbkO=NV<_9QhgP?<m72OHVW7jC8eKI^AH<"
  808.     A$ = A$ + "h=EnCna_S#lbINDJ_GCiRnMbie?oF;?_CBK:Z3P75Y1ogl\>Q1U7:GFobK;i"
  809.     A$ = A$ + "7bcJnm?B?:oLoUiC:;`lQ`kF\MFTWWY=#O2Ym2cY3?_Xm#i]KIL]hS#\TUlR"
  810.     A$ = A$ + "HVHWbPe?QRnnGiUAlg9?H>khnJF;C9YLE_Z[#iTbch7ohMn3Tfl\;]WIm4Kh"
  811.     A$ = A$ + "MAm=B7BKlJ`[POG1o2lNSk3c_eQog86a8LcAYi3KgC:_NECE7SlZF??JZkeV"
  812.     A$ = A$ + "7>o>7UM^?TTfDD7`lXioVWe9RWGD^XleFhmG^YZ;IoV5?_hiDFPdPdRdTWki"
  813.     A$ = A$ + "IJ7?m]j5UgVQo<i;omI=?SGFZTWANOo[lb8U5[=DAl<:=WQ9iIIU[_Y:WiAM"
  814.     A$ = A$ + "IBOl:hgC`;Rnk5gc9[n`YY>FU^GWVkUFJ4oNDNGW8NNI??bjg#UFRnQ2A[AX"
  815.     A$ = A$ + "]LiN>V_Ain`iag>9aZRl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`"
  816.     A$ = A$ + "Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl35"
  817.     A$ = A$ + "2Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`S"
  818.     A$ = A$ + "l352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352"
  819.     A$ = A$ + "Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl"
  820.     A$ = A$ + "352Q`CAj7fnfgnX>eY>5eU^dUX^e]^ib;Q#8JDYOm[OAM_kM_#l3k#7j#D7k"
  821.     A$ = A$ + "H7SjLWkLDGkJGMn^2Q#dX2NQmZGm:gm3UTTTJ=;i7:999iUl3UTTTlBnQBBB"
  822.     A$ = A$ + "BN9o#9999_TOXTTTTGb?DBBBb;i7:999iUl3UTTTlbl352Q#d^Xo74NT%%h1"
  823.     btemp$ = ""
  824.     FOR i& = 1 TO LEN(A$) STEP 4: B$ = MID$(A$, i&, 4)
  825.         IF INSTR(1, B$, "%") THEN
  826.             FOR C% = 1 TO LEN(B$): F$ = MID$(B$, C%, 1)
  827.                 IF F$ <> "%" THEN C$ = C$ + F$
  828.             NEXT: B$ = C$: END IF: FOR j = 1 TO LEN(B$)
  829.             IF MID$(B$, j, 1) = "#" THEN
  830.         MID$(B$, j) = "@": END IF: NEXT
  831.         FOR t% = LEN(B$) TO 1 STEP -1
  832.             B& = B& * 64 + ASC(MID$(B$, t%)) - 48
  833.             NEXT: X$ = "": FOR t% = 1 TO LEN(B$) - 1
  834.             X$ = X$ + CHR$(B& AND 255): B& = B& \ 256
  835.     NEXT: btemp$ = btemp$ + X$: NEXT
  836.     btemp$ = _INFLATE$(btemp$)
  837.     _MEMPUT m, m.OFFSET, btemp$: _MEMFREE m
  838.     BASIMAGE3& = _COPYIMAGE(v&): _FREEIMAGE v&
  839.  
  840.  
  841. FUNCTION BASIMAGE4& 'star.bmp
  842.     v& = _NEWIMAGE(190, 190, 32)
  843.     DIM m AS _MEM: m = _MEMIMAGE(v&)
  844.     A$ = ""
  845.     A$ = A$ + "haIkMNo\DD455NnWdL>QiL>;6:4#4##PRT05I99P92FP:15D11:1D05D\0OR"
  846.     A$ = A$ + "PB##Paj[jZ[MN3c\k<kfcdmlfc?lE_E4N_memI_cY_cmNWXGiERS42Q#842Q"
  847.     A$ = A$ + "#842QX\<UY47=i9kog72AMbFfBLdVg\oOO84e53OhaAWndaAocoHN]_Oo84e"
  848.     A$ = A$ + "1cKNaAaa6VkLSSNiG^mhkg_2Q;H?kYU^OGkbX]OYG:KTfG<DPgl=SSn_o[U^"
  849.     A$ = A$ + "o2G8>j=NShXGl5=l2_P1ko]Ekkkgg2A_`ZFE;=_UU_LSFoiN^hXWmI=`[i?C"
  850.     A$ = A$ + "jNa#1>bA^BMoQ>TAWod?MLdCnT6heBk;6:`4V`EZiQ;OISoW7oaSSNT7a0_6"
  851.     A$ = A$ + "]ocolBg;JfliONfjNhCnThX7nQSSNP7`0_n9N2SW7[?OOonG8j6>i9cGgOlS"
  852.     A$ = A$ + "77MogOLdMOg6he?jSJRi;_>RV:cJFi[i]<bA67M7gQ1dn?d3IljS?ORi;M_X"
  853.     A$ = A$ + "Ya>fAWemKH3aAgj]Jh>_CC<o7ka<NM\almm_72AAQlcOncgIM?e^`]MKaAgd"
  854.     A$ = A$ + "=InjmL?VchZcg:JR\\UeI=_Ua=^hX[ojSS^iK>>j^^[hX7l1=W_ENM4==>h1"
  855.     A$ = A$ + ";^^OkK?>jJ_fhXKl6SS^mK?>jn^?SGWWiIdiK5=76kH=iW_XjNZQ1lfC<Oli"
  856.     A$ = A$ + "ciK9WV?eC9_>RV3[Om5GcKIVc<>jj^>S?On<0ic?I^lU^G4j<`0UGgOP347M"
  857.     A$ = A$ + "=GCLd=L3VcgN_g[bU_Xi`dVFielF`C?NM^UK9>JH3CibGdLHKK[kem[H5Vcg"
  858.     A$ = A$ + "RG7^?FT;OZI7Eg2R#VGkeRS>kIkNM?nS#gKmjXLi;J2\X5emJN;lI7>OKbLi"
  859.     A$ = A$ + ";_>R#Vm]_NGgCmKJcU?NMD^l5Q<SNdaAGjBm^^oLWc4[GibGd4PJY_GelFVh"
  860.     A$ = A$ + "4_B_>Z^54Q8on_k>M?cK1bUObjFPLi;_>R#2VmO^Bc3hG2]^=Gnb[S84QIoW"
  861.     A$ = A$ + ";em`lWO[LiK[K1U;OAX0cl?VmO^Fgc<H#e]P8DQInW[elF8f>W_Ee]P8dHgk"
  862.     A$ = A$ + "^jdmOl7?hLiW\^5D?8:l5YWoO^VCM:cIK]ibGe]P848[ioW[IDSBibG4FLh3"
  863.     A$ = A$ + "Gmjn]^Ee3RR`QgiMZN=?P?:dkZ^54Q0KLSeS^7VndE?8:23n[oZndmkOoIW;"
  864.     A$ = A$ + "OieADWlN_GmYi]PgV\j1AieADGlMOGm[kGjBE?8:l75MnoiJ>fa6\GWTibGN"
  865.     A$ = A$ + "M4E=UInoiJhW_j1AQ?PiLS_dmOfWMUe]PbU_XZi]Okb=ooL=Wi<6omY[K1U;"
  866.     A$ = A$ + "OAEbjFWodlF6ohEM;8ZGnSo`ojNbUTZK1AMaDWZoel0mP8eZPj1AAM`GoenG"
  867.     A$ = A$ + "cKI>cYmmPXdm2G#_>ooL=ol?[N#DDmhRioW[Qlf[N#DDU\gmjOMNJFmZc_74"
  868.     A$ = A$ + "EM;8jEXOW^h5m_>?=D?X4_7_>Z745^6j]KO[acSA<2Eg2RZQSNDo[_c3VGE:"
  869.     A$ = A$ + "Gn2GcTVToef]3Z;DlhXN#DhBfdVl_f^C<UYTM?8:_>R^1VoOomOkOMMWh7nQ"
  870.     A$ = A$ + "Fib7_>Z745m2EilocU#mQbiICg3Rb[SXKPI#__ed5U5_H=kT5m>TO`ZLnoiJ"
  871.     A$ = A$ + "hI>QZK1A_b:GYoebU5R[KcU_ZK1Ag`_l;nG7GFFkJc^74C>kTUfGT7d?CnF3"
  872.     A$ = A$ + "g=LjCKliXIW\KPIT4c^Un5fi>m_6^KIi;gl\#TWgFCKJaAcNfaAcKNVj9mmO"
  873.     A$ = A$ + "ohXU\4o_njB#KFEjnA>BcLZcgkY2AB#CRf\ZSkSoAGlL9F8j5XfHGcJ<Nfj4"
  874.     A$ = A$ + "^Bk?SI47MbCjoOg5mWPf3oKTOZlPcaH?;S[dolmPW]=kKOnO=#dO1mnc[nZV"
  875.     A$ = A$ + "lCU6bE;`ig9gEYeo^#gcg;nnbcUNikADeP_6NN:amO>;X6l0^G5Tk:nL0jO["
  876.     A$ = A$ + "f_Gemf[I`g;n<5OnRjd]>W3lRn;>a9RS6cH<g;R\PjaPJCRkA7i\U?7Pf7]I"
  877.     A$ = A$ + "bkIA_XmC[kicEfi_NEn\\DdO2iC6m<g3^\Pj#RN<SN>Pjb0m?eV1Jbdg[>G4"
  878.     A$ = A$ + "c?IlNZi?nIaWk8OZbgSXG1O=cOnVkkLN#mgAmH#]8QnWkA7J#dRX9C7_gUnk"
  879.     A$ = A$ + "9>?eh=N[X7OX7gh<_3<PoGk4=C#kPfRj]8?\mB?JO^_d4c7]7J#dRX9MYond"
  880.     A$ = A$ + "NM\JOlCQ_:^V4G_QOnnhi1RXIcfg^9nmEMEG9GmEKPJ>5M?alYG38F?J>dNF"
  881.     A$ = A$ + "_mYel^:?nIYmC7gW?3^`56VcO3AH1J4VkQIYgCZkCZi;JLNGG?BYen9?W[e_"
  882.     A$ = A$ + "?WgPW9>bgS8?HnBSF]CJNlg#mfQg6jUBdFFol9?7KEZicb_ObcjbeJXnGiJ?"
  883.     A$ = A$ + "LN3nZlm8BCkleHQHlXia??nJ8?>F=5J\di\\>[iDikAD6X?fJ:nJLY_W#hIW"
  884.     A$ = A$ + "P`?dDmeh:O?Okgjom0AmbffFcfGSlm8:3h[QnOIXP_6ikAD4H_Uhc3eleD6m"
  885.     A$ = A$ + "_lmdOAEh[9dekMS_W5\0ikIX0mCnJLU_WGoeU_WV<7ohmWnJ:Sn??O?D?Ybg"
  886.     A$ = A$ + "Cc3le#Lk^eGCEDklQ4bgc#;`Gc\VUled=Jollm`c?Cik9L1O=\_9O=M_n_Mn"
  887.     A$ = A$ + "NnV_aokaR13?7[KW_6K<nnEO=U=fONnNX7LT_7o3nJH>U9O=^Gkg>O?L]EO_"
  888.     A$ = A$ + "gg_ba>VleDejoTnN\mcUeg3e`Z_e0mKlEOUleDWanccg3ckdVdcVQV:bGSod"
  889.     A$ = A$ + "nbgSOX\nJH678O=^EoWW_7FOU_7g3nJ`[BImeT^?_U_VNGk;O?E?bGCh#Amm"
  890.     A$ = A$ + "`L3EnNjN`G3jEi[9\XCnNhJ\bgCgQle4f8O?^5FSVi<U_VV0iik9iljDnNj<"
  891.     A$ = A$ + "^`G3[iIi[agJTQbDDO?DS\nFS5J\e]:O==I:Z_WE\2o[e25hIKXle<dP>iki"
  892.     A$ = A$ + "Sn8o[g25HV];O=3M8?O?4OB?GFJ1c\Ddg5YOXT_VV1IikQlEhK]FX1c`UdJN"
  893.     A$ = A$ + "i[YiCB]ogomnGW5J\Y==H_=F=?cnSQ=<i[Y93k?l<HAiao:i2G`Xa]WQ5_=4"
  894.     A$ = A$ + "WgZiKjc_VnMn`?doJ\#5N>LK?7;m82niaKCbWCDbGCcTSNDo[_2E>`1JiaQL"
  895.     A$ = A$ + "g`c=7ReSOnd?C0mmnXXh<i9kO]EX3eA6jNRgS^WnI3M_=F_dl=?fbFl_^:d1"
  896.     A$ = A$ + "OPhcQcdR?7NN8C>;9N_eSS_g7557Z=WcL6o[[2M>eY<gS:>G;WcUNiQWmgLV"
  897.     A$ = A$ + "FicYiaRFToeD=56cHJiaWli`mY2o?b[CcSm_Oo[WJ:`Li:YG7bY3iaTkEURi"
  898.     A$ = A$ + "gLh]N[hX;M9o[WJ:`J5eP3nM87nlJ^?]T;C^7]Bgg<H][eoJYV6cM^iW?Cie"
  899.     A$ = A$ + "YIPVU\UWOkgJMOKY6<YNdhnG9_>=3Vndm_6ZY2jKlj#]HVll]fjACjn`5=kT"
  900.     A$ = A$ + "kNFoj7L=;XLig<PJ[mOoGo[OJZLfcJdlIU;OMnf`UU_Lo[MJj<a9fjl]D3nD"
  901.     A$ = A$ + "g2:GnQ=7j#nGgddI?kYE^lil]:GnQ=SOlaAGnbnGgd>>i9=hkg7]3F396_bU"
  902.     A$ = A$ + "OcP=^Ao[IJ7kNg6O30_fg_OJ7;I93^6=E^l3G2ehXL_#C?g>8?iX]lmk]lPk"
  903.     A$ = A$ + "oQ]obil]fLi[JE;\H>caoJU\PIh0e5JNc\3VOoQjWGiIX=alCW;OMnf`QM];"
  904.     A$ = A$ + "o[CB3_W`CCWV?ChO>4mmlUOIneU_RikO2]n6?;O=]K6lI[mmU]<ooN?9WolV"
  905.     A$ = A$ + "liHkgLU;o`RE_Jo[A\d9O=YW7I4;5O4X[PA>b`bg3elAjLi[N#<<PjYbgj3X"
  906.     A$ = A$ + "XnJ\WGd>3nhO3NM0N=WOTLXkkOOPOjWD^l3AVdTl_f0O=;NaMgLFUlT#<Db?"
  907.     A$ = A$ + ">`[i?SoOO`746g?2R_K[E=U;o`P=_IoZ9`Gc`7Name#n`C>?b`_<j:dA0_Vo"
  908.     A$ = A$ + "<>39oM6mXm__7lAJ[E=K^lE]Zi?`7mY?]od3UeGCbWSa4G7o2fI`7a>1k<LV"
  909.     A$ = A$ + "oOlgQo^nfgCjn>Gibg_\`5j7M0nJXWeMilS?9I=on9f?c_OOikQ[kXn>?<HO"
  910.     A$ = A$ + "k[ngokEO=9ONoUe\5>i<L>mc[AnN<ZAi7O?lLb;M^leiK[OlAOSc<Ef5nJB>"
  911.     A$ = A$ + "WEC[G\JoTc_o#`gc5_XicMZFel;[I=egNNEh[YMcIeRlL;2=8mJ#Mjk9_n>G"
  912.     A$ = A$ + "NMZ?Z[n6_ZmeTg_OUagCMmLLi87AmM^?IJC[NfWaG3aeJWV?[W;>UaGCWXXn"
  913.     A$ = A$ + "NZ[jkQ?oYn>g?De?;b[KO=5Ak7:nNFgjDOWk3XfH[bn67?3lcY^med=Jo\lm"
  914.     A$ = A$ + "#mmDUnNH>kZn>_nY:[IaM^Cok[Y8jOOkkI2C#mMNMc1?Xkg7aG3g3\#aGCAd"
  915.     A$ = A$ + "nndg3gWJE[Je7SKL^OOl4W`lm>dled=Jojbg3k1lmGib_NH3K8lleTnimGM_"
  916.     A$ = A$ + "Wk;O?dG=Z_c[7LEL[VV_VRXm;R_7>KT[^Nia?N[Li[JE[jHfcfMnJHoXYi[Y"
  917.     A$ = A$ + "KdnE]_7j9NegiE;^hi=>nJ`WBCfGCAdoeU_W_h;DOWGU<RAdKm=>nJF`26jh"
  918.     A$ = A$ + "[Y8Joj`g3mM>G;DmMNe`ZFUleh2]OEhkIZCEmMNEa_n[bGC_XokT_7RAg]cO"
  919.     A$ = A$ + "XOl7E^l[2NggEnJLQf_8nNFjBk>O?hYGmM^KY\m=nOnWUgG3aYJjnJj6]OFn"
  920.     A$ = A$ + "NH6LEFO?h3EmM^kX\m=n>fQleD4mOJO?lkL_hkQnNT[KZLik6`[BAme#M3CL"
  921.     A$ = A$ + "Li[YHJoRjkYXmb9moRjkLg`NgKWG_iJbDKb43??MOoX_V^AkWW_7b9FWf7ff"
  922.     A$ = A$ + "fDOWk2H^EdYH=L_G\?G>8F^leDNLU_W\jkLngYcgF>nd?]mnJFi:=nDhjZLm"
  923.     A$ = A$ + "edajU_VRS[lm`cP0U;oN3ZkY\FKIfMAO?`IW\cXJdg9embGCia5nN>lQEOWg"
  924.     A$ = A$ + ";TGOS_omKV]1LV9f3`gBJ?>bGC_A_jk9[n>gjeAalK?L6YdnJFkJ=aO8_`LV"
  925.     A$ = A$ + "9dc4;gNNFi[aMDDO?lli:]_7V[AZ_c;?TKVcM^1k[I6c`\fCL7Re#<7Km#aJ"
  926.     A$ = A$ + "LbWK8bGSKXKmmXn>_kPc>IG3Yf?X^YHMW[gbJ>G[eNNFdiXg]gc4i[amD4O?"
  927.     A$ = A$ + "L=PTe9>WoRm6egi5W3L0ce>I>]HGcImV[cbJ=GSejaQeFkc:7i[YjX8nNH]g"
  928.     A$ = A$ + "jk1_of[mbNUZE]fcH7[iNN?cIfJmVe8FWi\A\6Kmh`J:jMkc:7bGLJO=\6;="
  929.     A$ = A$ + "_KX<nN6H0cNU]V^]GC#ib?K`7?nJB^FcJ<[_4KQ[GbJ;[UfW5JbGCmBAmm`i"
  930.     A$ = A$ + "dH?bf;3fLi[n>_H[_9mhHSYPF7hebGSOfK:BnNB^?YjFXh[]F?>4?Q[UbJ7a"
  931.     A$ = A$ + "C`C3OEnJlknCWlm`N4JNn:kMfJdDNMJojZ=?>h;Te<^F9[O\VBL5b;\lehom"
  932.     A$ = A$ + "Y\lm`N3kA\GaN6kM\7JWSRb[Cn[WFM_MMTl03LmBR[8O=Q1]cg3kEfm]TaYT"
  933.     A$ = A$ + "^?kead[Q4W0]>`JWle4FTFkcN3kA\GaNVmIEJFaZlmkm#QT[Qf[MbJX5FgT_"
  934.     A$ = A$ + "V`TdnN\nn]TdCZREUojW=fABD<n`V\RmWgnW_O_6JTL];;TV?\AkOmnJGFhk"
  935.     A$ = A$ + "gK2]7:42Q#842Q#842Q#842Q#842QX#loLUV%%h1"
  936.     btemp$ = ""
  937.     FOR i& = 1 TO LEN(A$) STEP 4: B$ = MID$(A$, i&, 4)
  938.         IF INSTR(1, B$, "%") THEN
  939.             FOR C% = 1 TO LEN(B$): F$ = MID$(B$, C%, 1)
  940.                 IF F$ <> "%" THEN C$ = C$ + F$
  941.             NEXT: B$ = C$: END IF: FOR j = 1 TO LEN(B$)
  942.             IF MID$(B$, j, 1) = "#" THEN
  943.         MID$(B$, j) = "@": END IF: NEXT
  944.         FOR t% = LEN(B$) TO 1 STEP -1
  945.             B& = B& * 64 + ASC(MID$(B$, t%)) - 48
  946.             NEXT: X$ = "": FOR t% = 1 TO LEN(B$) - 1
  947.             X$ = X$ + CHR$(B& AND 255): B& = B& \ 256
  948.     NEXT: btemp$ = btemp$ + X$: NEXT
  949.     btemp$ = _INFLATE$(btemp$)
  950.     _MEMPUT m, m.OFFSET, btemp$: _MEMFREE m
  951.     BASIMAGE4& = _COPYIMAGE(v&): _FREEIMAGE v&
  952.  
  953.  
  954. FUNCTION BASIMAGE5& 'wall.bmp
  955.     v& = _NEWIMAGE(193, 192, 32)
  956.     DIM m AS _MEM: m = _MEMIMAGE(v&)
  957.     A$ = ""
  958.     A$ = A$ + "haIkMVoDKKl66?094`LK<H3H\aVS#`4P090QLA^94BPLl=9CKcdIji?eYMjd"
  959.     A$ = A$ + "[IjOlkgmIIUA\`F]j`[TIOoQ?S5Bkka^jiaBfH3e[GWEGBU:EHC?md\A6I4f"
  960.     A$ = A$ + "#3=4[gNkUeC?m`^jE_Z0\=1Ak6#7W;G>FnliIS?nh\5GLIFS6[b^i=_=Kmeg"
  961.     A$ = A$ + "DXm[E[VP9VH2FYBUH3>hP\nk_OQ^_k^kF`E^bEJ^=1Ak6#;?`038Nnm:EZaV"
  962.     A$ = A$ + "Mf5Hgh6[aFMeeIc=gLRWo_Lib2_26OWMf9[S>jPMY;M92R;<0==dfhJ3`?\`"
  963.     A$ = A$ + "2;bFJYUIc?ol\YVJ:ae0PGibGnbYN_B#d:1JLLoAE[R[7<?oNSFT=l`3;^o7"
  964.     A$ = A$ + "hABknSP`60]>dmhe8dXASVgo?Mo?4^2#[3=?dn[\b:Rk?2g7DJgG44f4_G[l"
  965.     A$ = A$ + "J[]FcgoWd^W88\9N_GW[_njT7P`91_fHh38?0Q[RW7HS=fPNm04>99Q70_oB"
  966.     A$ = A$ + "MeEGWjg7=0KC#dZ`_>3J?X1Sbk[OLm0hmF2m0nm]Q?W5hggl2;\P0\=1A[2o"
  967.     A$ = A$ + "j<XmP64Ja`nNk77?0lL8FlkG6ONSfNk]IgkNg[9gm^gUPXUQO]6dN#32]8dT"
  968.     A$ = A$ + "Qij1Ae3hmloS>jX\mgOOfWolWIoaOl7\oiOn7fOmGo5k?ocoTPXU3dJ#c1]7"
  969.     A$ = A$ + "dP#;2=IH^N#Dm0`WQOgJhcGd7oh7IOogom\on_oKfon_o[XW88\5#c1]7dP#"
  970.     A$ = A$ + ";2=IHn<o4E?0Nm7hj>GojGWmcol?cnmOogKb_mKo61Qe`_f3JAX9Qf4JdFY7"
  971.     A$ = A$ + "0aQ?We;]dB\OjWn9f_n[oZXO`Sob_l;44F3oJ?X5QV4JCCo\?7G?0nlVn]Ok"
  972.     A$ = A$ + "g:lONlSoh?B#H=l[mPF4JBKh1`eIll0OmGoe\Oh7nQVlMOggA#H=l[mPFdc3"
  973.     A$ = A$ + "dZ_G8To9WLBagmV?mY?9lONlU_l522[QO]7dR#C2]Y=l0hkLl\c>;komQ?`n"
  974.     A$ = A$ + "bgl==kY_j[n:22[ACo0G32]8dT#KJ3?#aR5Ie[ESMdQ7bn<go1nT4lNDA#dZ"
  975.     A$ = A$ + "aC_iYoPF4JBX=]U7XVd3l9OmCJ_^#hFhYkP64JaJYP7heljn1Omd7hG?RP`F"
  976.     A$ = A$ + "dDgaieI4?`kimUAlN52KLV>n\:ZcS0WG_GB;:oZW?Rjj\US;=m0SEL<FeJEI"
  977.     A$ = A$ + "_ne_Fj9oXPgagf8NW2Q=>C7OF5eiAPc[g9Y5UOec7AMMfbaioJ2#;F]JEfHS"
  978.     A$ = A$ + "=VEm07L`1Lokk?a3`gf8NW2Q=>C7OF5eiAPc[g9Y5UOec7AMMfbaiYoQ64JA"
  979.     A$ = A$ + "[j1he1ekE_jElNoM=k5\=1Q]`_^3Jadd30Ohk5nidOMQ`M`_^;]l0_TGgSle"
  980.     A$ = A$ + "C7MdABNW27YQP>^Yicdj5el7G2Z_ee7QMm9Yj[TNM:YGG?>Onm3I1?`KOkac"
  981.     A$ = A$ + "a3?4l>5hkckH7iOKO7o`Sn_7WgH5K[<f33jhW3n?fAWCoN^SCGomOToSlUOe"
  982.     A$ = A$ + "LMX_mOZOnLV?jZWGLZckPjCehdQ^eiCeg1]N4T>8Xe_cf7`30=GZk1Ni;Kj;"
  983.     A$ = A$ + "?^_<#c5ei^AWC=8ojdfV>^4iLhoANeEW`>_3kjUANPH\NTDj0ia?BjQm^n2d"
  984.     A$ = A$ + "Rfb3dYd3DYBEfNljNbcOmFfKhmfKNcQji#52kh2:NCc_jh3khRkl8XlZ;n`>"
  985.     A$ = A$ + "_3KLQ]NaMM?>[O2_`KKNm8X5QV4Jc>]P7X0_>CO:?0h#f1l7?PgOJi#52kh2"
  986.     A$ = A$ + ":NCc_jh3khRkl8XlZ;n`>_3KLQ]N1D7E=MR^n9eLNGO0JAX9;H3?#WM:m0EH"
  987.     A$ = A$ + "_h5kM:oj1_i=Y:_BBJg7]KdZFgNS29NnmMm1X5QVDh1JaOOR5NP254oO;kI?"
  988.     A$ = A$ + "K?f17hc3L`1Y:k;9]kSf=JGGg>AgMX#;2=9dVfd3ldWm2f[>h4O>N]iY9k;9"
  989.     A$ = A$ + "]kSf=JGGgJZkhJ#X5C3?`CNfc>ecOPo6_##H;lOM<X5C5?`COjYNnSdN=Q`]"
  990.     A$ = A$ + "`oeaPF<=l0?j9?Q]W_NJ_mfCbn7cn1##ScdlHJL6gGbiQ^heMlh>O=>nmT4S"
  991.     A$ = A$ + "LIdlGCMJNN>R[36_N8[_VjdDga1JAKk1:kc3hO]i52foHf?02JLVVWPRkUB<"
  992.     A$ = A$ + "^_Tc3MiEgaSklehhgCB<bUAcO=eYiii8^>X>Ol>oLVa8[oiD7XgNY4??#I;j"
  993.     A$ = A$ + "1bc[cTlj]kSN4kilNkiliaa\GfSGX#Jg?49biWCmL]l]QF4Jblfd3D^laN0A"
  994.     A$ = A$ + "_oB9HkGTmhiBBknP8i>o0?0Gc1N^W7P[9]V78ONaO7GN`^kbNjc?I>lD1?WP"
  995.     A$ = A$ + "Xe3g7h7X5QV4JCKj1^?_^?Qg??S[m1HKR<8?CR][G[^^L]_0nfg?Ul0gk1?P"
  996.     A$ = A$ + "mhWnDR\>?FR][W5[;dRfd3<2_>C0?`m_?kalG?>A6W7;afecRe5JAKj16VGW"
  997.     A$ = A$ + "Blj]cm^7Kg7oh;>\[Td^?BkiEDG7fE3FX_QFdfNPRB?`3ie?fl89aMLVNLMS"
  998.     A$ = A$ + "KG9a]?==^XV_`6O#c;MS?\mg^J8Zc_#4?dRhiU7afNPMfQgSk6?NXV]3kh<m"
  999.     A$ = A$ + "h?DIkT^?==^XV_T:nd>o9<#;2=i`fb3<b8\RU:a^3_^?hQ?<nl09aMLVNLC["
  1000.     A$ = A$ + "GDkCCS;Zi;YR?]cO22dR#C2]YEl03?\h_YMKa[kmhe?fl09aMLVNLC[GDkCC"
  1001.     A$ = A$ + "S;Zi;YR?]cO22dR#C2]Y=m0KNWk`^k3NPiLO=4VLH3deWImn=Y6GKhiCX5C3"
  1002.     A$ = A$ + "?`]gJ;a[5aHfA3Q97f0MmIF_OCZae6Nn4JaDa3\iV\M^kMKbMDh<kO7=XKl1"
  1003.     A$ = A$ + "\oF6bnJ79jjGKeWkXP^nediEB_>MVe[#>_BRe5X5]Y7H`17V=fH5IKLkKcfV"
  1004.     A$ = A$ + "OOH0LoHK]m>\=U\U2K60j6oi^oMTH#NS:RjM>c[`fo9BO`IK99MnCjn<FW_3"
  1005.     A$ = A$ + "aiE_c?Nj?X5QV4JCKi1:8m0=e9gAfOKM2K9IC3Agh5kg;ghakhKm84i?DXNn"
  1006.     A$ = A$ + "96mOLI;5JIci4Z?SdhEeiVLni>WllD#;F`ZNP15o=\HMN\K^mf7cFKc^5Hcc"
  1007.     A$ = A$ + "bVB>_SI<KYP1aT8e=19[d?a]?DS_E=_dUGangBRDo1]8dT#KJ=?#Q27k1h_F"
  1008.     A$ = A$ + "4?fHccWK;Aga=V]THhhC\jV#TEjWhf7ZagZVGjb[gnm[m4N0^VdfNPeFOM^_"
  1009.     A$ = A$ + "LcV\n]8J_iFBBkn`<l[mPFdFNP>li1FQGg=hegSeghf6bVB<MlQ=?VVo=e##"
  1010.     A$ = A$ + "i;Xh2:OVf7jbKHSgdnL391=?<Mm:Xi_Y[oWolg_fK5ONP>\X7h6[]V_WkhF2"
  1011.     A$ = A$ + "_XIL;9V>n`V7Cco]d##i;Xh2:OVf7jbKHS?ZmIB7GDGo?oiOCM7W6L]Xel0M"
  1012.     A$ = A$ + "d1K0NM6UG_UGI5f=U?g1N4meZ6a6B<MlQ=?VVo=d##i;Xh2:OVf7jbKHS?Zm"
  1013.     A$ = A$ + "IB7GDGo?klGh3PVCB3^F4OGRQf4JDKh1#mJLSKL:MoJL_hZ>5[;iRJmbhmY?"
  1014.     A$ = A$ + "]7dRFe3<`0\lS>:K9NMGa[?^i=I[`k[EFME7QeDhRFmbhm9dJ#caeN0X5QV4"
  1015.     A$ = A$ + "JCKh1jSGWQieKa6=H;ck5lj2^1__`f;S798JehYe`SLPF4Jbn\Y78ONfehe]"
  1016.     A$ = A$ + "1_?J2oNb88\6ndN#;2=Y]m0;Lm6l[1]j9\lb44f3OJ?X5C5?`eFR]DSElA32"
  1017.     A$ = A$ + "2;b9J?X5]Z7X_n4O6EWKQ5I;^dbnH922;b9J?X5QV4JCKh1ba[cP2?`eHGKY"
  1018.     A$ = A$ + "6nH922;b9J?X5QV<WUl0mb[c0lj=kLcaFHa5KbLaTT:?IMLUiI[Nm`_f3JAX"
  1019.     A$ = A$ + "9keVNPQ6jH?`e^FCV=V<_ThVW\>^bl\E_NL:]7l0L=Y]m0eVMFnePFX9e98\"
  1020.     A$ = A$ + "8neN#;JE?#^LROWdc`[k\ljkAmiS9Nc_hVW\JOXVg\bl]=5oJ?X5QV4JC[h1"
  1021.     A$ = A$ + "j]Ga_CjY[ES=3oJ#eU<CmHbLBRKNbZmQJNc:cgfDZkCkEU[5QV4JCKi1j7NP"
  1022.     A$ = A$ + "IVAhoZ9IVjcbZ67VEBLcCF]?DcKFInf62dJ#cEGZmZ`eRYR7XJEN_DWgC7c<"
  1023.     A$ = A$ + "c`Od?N7CMo4]FJGFgSAO>S_hafC?MEQVdfNPbL?#5_iA]jL_H=FUZ0\]lW5D"
  1024.     A$ = A$ + "ohmY5Oa5YSK:ZiYV6RKMB:R#o<S29jjH2^nL^mYYioHM5dL#kQh;KI?`Eie9"
  1025.     A$ = A$ + "7_Nho3PUiG32gC4^V0f^LeI4NSSao??S62JLVVWP#=?EEfFMOA]>959el>Yb"
  1026.     A$ = A$ + "GBg?A=obS9eL#kQ]QF4Jb[JC?#omcVPGgYhmACZDABE9Zo\>2JLVVW`FW:J8"
  1027.     A$ = A$ + "^e9Y8YkWhV_FmjC8e;ndN#;2=Yel0laV;G>FYYVVkoZbV\ZTbETDERj?[SP6"
  1028.     A$ = A$ + "WYiIJ9VVW:J`dj4DmD?^^a[KLA]OdE7_l5dhdMLeh3Z_2KO7BmRW^SC9h1hJ"
  1029.     A$ = A$ + "BX=]Z7HRb\9WRg;ET0?AXXRTTJLC99^iadj4DmD?^^aKjh<]O<]_2ZO<]OSj"
  1030.     A$ = A$ + "iMCkG=WoldMCGQolaUC5?`hUVTEJbb\BUU<iTQTbBBZaI[l#T>W7DR[Y^[\#"
  1031.     A$ = A$ + ";J;?`UTN0lkSK\BC`:>iD\RC9QgGQSYTTDScFiQ8M>?X4GCMgD\a:>Q#CN\>"
  1032.     A$ = A$ + "^ek1jV?fNhe[`hU4n_CX41Q5i4]GQa:ajYgL\^kf2N0>2?0_Nh_c_SGTg3L?"
  1033.     A$ = A$ + "hh5;9Y81Q50J=XkVD0dRmdSW7`<ML\l0Mg=?VNIi;<6oJ15U<>1Q5aCgEB0d"
  1034.     A$ = A$ + "R#C2]Yml0m`6QGgAimaXlNRP`nD\9S8l0mHM?``i;`mOSkS24]ELail6nndW"
  1035.     A$ = A$ + ":NPA6UUOdah<^TA9J[`klF19YMo4M`oGR]Y7hbljd=?6lMH6n?LmPS9?AK55"
  1036.     A$ = A$ + "D8]kWX3dR#CNI;j1^Rd3<4_n3UOD9i9J[HD5Bkn9j0]hE\Y70ab[5noOf#3c"
  1037.     A$ = A$ + "k1h58R1iE8]kWf?`og1PV4JC[i1^Bg\16L8fP3=2WQma#nNllHH=KKjh<=NK"
  1038.     A$ = A$ + "A#mSoeTcKmaKoSX\FVeWGA=OaEWLni1OGRQNf^NP[8ZKb=g^hi1jG#HGOb:#"
  1039.     A$ = A$ + "N0Sl03<PhJ#3R[7L:6<0Rkh<=NKaig?m;9l[?I5Bjn=Yd9W=?#;V6NPnjK0F"
  1040.     A$ = A$ + "omc??go#:<H04gaIJlfRPjW`^nTE8YkgTBWLfl0]X=m0MaSmblHca[KOXnZd"
  1041.     A$ = A$ + "W2jf_Y7?[7Wjn3JLV^NIJOZ;_VF?CcCD?_ZKm9^eaG<#;2=IGFb3d9?f^haR"
  1042.     A$ = A$ + "oVNQ_oJWQL:XKoVNl\NLZk?XaIjjUYmY^lJJm<=?AmlZ^eWhF7Oa0]8dTMJ;"
  1043.     A$ = A$ + "?#GM9lKhc[=nklkI8W2jf_Y7?[7Wjn3JLV^NIJOZ;_VF?CcCD?_ZKm9^eaG<"
  1044.     A$ = A$ + "#;2=9dVFa3dIW\^he2OoUagS02Rd6X5QVddo7eg:l0GegSGEIOoGKWH[1:K7"
  1045.     A$ = A$ + "gj5Dl]jl[KlZ[_1]^KM]H4kWH_NVFN0lMYQ7[8N9M;akWE?^jnC:DcOL[G#a"
  1046.     A$ = A$ + "gZc_^a[^n6dj^]9ZmC\G?iJAKk1086od]2j>^jnC:DcOL[G#agZc_Y[_1]^K"
  1047.     A$ = A$ + "KRJo4gngCGJC?0nLZB#TEPl04^>YQ70O>E98b:#N02G7Kj1^4Z3l0hc<11A6"
  1048.     A$ = A$ + "1?MY=m0hmRRP8[PEm0:gC41AFP`ZO9?0a5=B3?#c[mL1Wc\FWabGH[KB=ndJ"
  1049.     A$ = A$ + "NX5b3dbe>T78K<?dBJh188JSQl04^>T7P`eQl04^>T7P`eQl04^>T7P`eQl0"
  1050.     A$ = A$ + "4^>T7P`eQl04^>T7P`eQl04^>T7P`eQl04^>T7P`eQl04^>T7P`eQl04^>T7"
  1051.     A$ = A$ + "P`eQl04^>T7P`eQl04^>T7P`eQl04^>T7P`eQl04^>T7P`eQl04^>T7P`eQl"
  1052.     A$ = A$ + "04^>T7P`eQl04^>T7P`eQl04^>T7P`eQl04^>T7P`eQl04^>T7P`eQl04^>T"
  1053.     A$ = A$ + "7P`eQl04^>T7P`eQl04^>T7P`eQl04^>T7P`eQl04^>T7P`eQl04^>T7P`eQ"
  1054.     A$ = A$ + "l04^>T7P`eQl04^>T7P`eQl04^>T7P`eQl04^>T7P`eQl04^>T7P`eQl04^>"
  1055.     A$ = A$ + "T7P`eQl04^>T7P`eQl04^>T7P`eQl04^>T7P`ea_78G^L\Nk]GF7MdAZgG44"
  1056.     A$ = A$ + "fR^k^Kacm3?#nliI3?l`\>k\cD__88\1hikacmgOom;l0C<a4\a7OLae6X[5"
  1057.     A$ = A$ + "#LA7XakZ[^H3>hPRWk7NP[Om6\iWoJ\nj[?am7Ufm81A[4lLmhNP:EZ4KZYV"
  1058.     A$ = A$ + "Bh1FNiEinPUIS>J1^gH8Q?0S3gK4l<44G40?g?dehen>`038doC?md2?`=_i"
  1059.     A$ = A$ + "]I[]f]H;^hb\iVKAFQ25H3=d#Rg_8lj6PWPPXM6XSamiPko1gk?doc<c<\Je"
  1060.     A$ = A$ + "ZaFOm=hLK^?hFR[7\hR=HU;GVE\HAam:QHPW1_f12RfAPn5<b8S`_GWA5jk:"
  1061.     A$ = A$ + "EZ8doe[GWmo1OR53%%%0"
  1062.     btemp$ = ""
  1063.     FOR i& = 1 TO LEN(A$) STEP 4: B$ = MID$(A$, i&, 4)
  1064.         IF INSTR(1, B$, "%") THEN
  1065.             FOR C% = 1 TO LEN(B$): F$ = MID$(B$, C%, 1)
  1066.                 IF F$ <> "%" THEN C$ = C$ + F$
  1067.             NEXT: B$ = C$: END IF: FOR j = 1 TO LEN(B$)
  1068.             IF MID$(B$, j, 1) = "#" THEN
  1069.         MID$(B$, j) = "@": END IF: NEXT
  1070.         FOR t% = LEN(B$) TO 1 STEP -1
  1071.             B& = B& * 64 + ASC(MID$(B$, t%)) - 48
  1072.             NEXT: X$ = "": FOR t% = 1 TO LEN(B$) - 1
  1073.             X$ = X$ + CHR$(B& AND 255): B& = B& \ 256
  1074.     NEXT: btemp$ = btemp$ + X$: NEXT
  1075.     btemp$ = _INFLATE$(btemp$)
  1076.     _MEMPUT m, m.OFFSET, btemp$: _MEMFREE m
  1077.     BASIMAGE5& = _COPYIMAGE(v&): _FREEIMAGE v&
  1078.  
  1079. FUNCTION BASIMAGE6& 'face.bmp
  1080.     v& = _NEWIMAGE(300, 297, 32)
  1081.     DIM m AS _MEM: m = _MEMIMAGE(v&)
  1082.     A$ = ""
  1083.     A$ = A$ + "haIkMV0eLDEU7_b>9Q\#24P<12Q\_72RA6A#1G?ZSRh9IHD>A<:PA>RkSSjX"
  1084.     A$ = A$ + "h0Z7L2<X7S:P2ZP8<jX\916A9\4PX\JRB#F2[RPAU=A7GB=m__bGjZjdOmG_"
  1085.     A$ = A$ + "lZjNOEMo>WO7dT_^CGgkmm_O_kkn^_XXXh83333333333333333333333SlS"
  1086.     A$ = A$ + "hH3333i`d[<<<25<m:33S#Q^D_j0?`3d```8gad[<<<25<m:33S#1C_b``8D"
  1087.     A$ = A$ + "`d[<<<25<m:33S#1C_bXCH:[I=aSM3K#nmb^6ka5OaaCoT>9a]9657VNUAoa"
  1088.     A$ = A$ + "B?X3:N2GiE6?XodOBL]Yf1nL>m?`7X_?gBKk<b7<m:SmmD>UhMin_OaeKbCh"
  1089.     A$ = A$ + "iSWCY]e6m6VNEeTUlBN9a3j?oW5G7ATiQEkiVWOYm16M>VNEiW3HI;CL=2]c"
  1090.     A$ = A$ + "`Oh7FLoTa0SYGENI^o;o;R[34R<WSnX5ggIdL<mZb3cl4>1a7[G6I67oa7_d"
  1091.     A$ = A$ + "U^Dam_6VNEIPioVNCR?V^:`l>bSDLOME7C_:<IZo7o7R?n]:cnnYnDfL^40C"
  1092.     A$ = A$ + "_:\h0NA_8a7[JDWU\\UIjF58VNUnIBG`58nhBS16lCVfEnRYGYCVlGj;9nh?"
  1093.     A$ = A$ + "S^WmN][ed^b1<m:mQdSe<l3ChB^4Cc:?7KHjERa^MEGUhS_<b?6ojFWYMi1<"
  1094.     A$ = A$ + "m:iI?^X;BlaC6i?kngnKKJFm8VNU<<SgmkFla?6badGmZ=][^P<fAC_Z#HA_"
  1095.     A$ = A$ + "bGYhSG<TW5lbOiVVE7B6KXYGU[<Y;l25O<RQnHg]jPX]9S]cd[:6k\QA3<[g"
  1096.     A$ = A$ + "bKad\jdaAVNUgA;m>HS`P3h0>0CgZ5TaNIjENUIO\7[hao6Q7cLU[dd\j7bH"
  1097.     A$ = A$ + "[<m:_``NRW#lHNS`WYMRWHOjFVfEMbHS<mZNRQoX?Zhah6U?6fSl8V^e1JjE"
  1098.     A$ = A$ + "nTi]RE8NL]AiUIoVOcVNe1JjEm:F_AgX8IA_PG#UFg:Sm`d[j8f_?iWDlhGS"
  1099.     A$ = A$ + "Z7kc7oSGIe\bH;<mZf2[WiIX1ZRen#6KPYGeif<33QHo>aC\bYIUa6HjEVFU"
  1100.     A$ = A$ + "A`aRGlR[<JFINf=mZn5^?PU>^d`XoH17l1G9d\blLKjE=Umll>?aS7=<68fS"
  1101.     A$ = A$ + "_fG;N9;I9UJM[<?cVNe>aX^kkFlh#3SfUMIcK^DGKYINN=mZngfHH4#\X5]X"
  1102.     A$ = A$ + "BYVEVWCC_bdZ<:=D6gk`<?SVNEl#omoNaSc<<l5CO5[XDYIUii[R[G5]m];N"
  1103.     A$ = A$ + "lUQQ_I_>eC]d<G[<?KEHm:YSY<<bCFh2GHY#c:ccE5E_J??ocGlh93SlV9L^"
  1104.     A$ = A$ + "WK`[IUiIZRZG9MLTQAA1e2?JFB?Vcd[jLfkcn\5?na`XXIgGkJ3fiIUiIYRY"
  1105.     A$ = A$ + "G9MLSQQD#mI5Rcc:ccA5A_JF7ga9NlRQQd<eE^bPKNFIN6Z8jEB7WHHX52]N"
  1106.     A$ = A$ + "k#V?oULmZUN#7Tha766JSi]`56<Wi`<Of;ijEB7GHHXE2Unj#V?gUHm:k>1d"
  1107.     A$ = A$ + "`XoIXojOMl2F`2D_VEV?gUDm:YS5<<25FhOO]QB?V]ZZG=og`K#lH03S#QYo"
  1108.     A$ = A$ + "ZNEZN?3cli]TYGIWOI3S>Wi=_iYfm=<cWebVNU2lmM=oZOELdBFBkk?nLO^T"
  1109.     A$ = A$ + "GSdO^;SPM5kKkh76cHRS>VS9Xm53K[K=NncOnZL?3clI]4YG9]?_SIlS_c\o"
  1110.     A$ = A$ + "]3SKLfL<=OAGS[W>8mHIC_BA`M_Z_7Kd8;KI1gH5A8_m31V_H^cM^Z[_:gen"
  1111.     A$ = A$ + "[D_>YO6Bc4Fgj4g??PL?gCa<fXI\lU7<SG:4>jSF>Oa?oW77mgnKbK3J1Sib"
  1112.     A$ = A$ + "^<EEKFInlE2d[Tfo>P<fa:gh37OV?CLdOm_:_]#Jn?o?UgG#n^D^VUVFGHV?"
  1113.     A$ = A$ + "K1\Ne2OE_:MgkeUNLAch`?lhXo_o_Zgl]Z5[8^]_A^_k;>j_lGTgfd46l_mg"
  1114.     A$ = A$ + "fgN6ZQl_geSYBmjTF[JWN>d67oa;ohQF1SCZ:JFBK[K5[LU9ceBQnRMod>=E"
  1115.     A$ = A$ + "\^`^fGVje9]Fe\FeZ4gOfDN^WCna0];_lGNiFgjenJUg6g^l`?\:GSX6boNV"
  1116.     A$ = A$ + "?C1ZNe`Od7ELOICYVOElHo>QohODUSCl2BKKk4F`2DigM<cJac^cHXDJFM]?"
  1117.     A$ = A$ + "=e[CB]:YmQ=U;iBT?V_Ki\>;eV7U:U_HH3;>RcX_bd]6cgok;Jng3ImZI^jE"
  1118.     A$ = A$ + ";^oKWhj_NiSekE^P;8>j?oWEehT:]_hgmkDU_Hb[LUkXng=mZ0N^EL6<T>nf"
  1119.     A$ = A$ + "GlKo]9JFBKC=OALdeMMZkk?Vm\W]8ca:De[TfOeDT>^fg\U]X^eSDYm5D_>:"
  1120.     A$ = A$ + "bG8aL\<m:?alVWladnVY>ehXWnY3_J;]\j;^gk=aGX4=;gL\:B=[#C_JYJD["
  1121.     A$ = A$ + "BjHilT=^ah8foEU<6YBk;0l5\?^BKWok`L\X^\<mZVc#9_::`?EI6S\[kJLd"
  1122.     A$ = A$ + "ML7Z;o9EBO1P_h9OBeh;VcLVCQfCB3=m:Ym?E^a7>N`7<>j?l7TgNKnRhXKl"
  1123.     A$ = A$ + "6EU_HFcJF5fj239mZ9oUobRkKb`klM:O\KAa]MK9e3TBnNm:]N5WoA5i;V`o"
  1124.     A$ = A$ + "eoEQEgkQRNeH_iKFLoBUMl1L`7LLd=MCaAoYoTJ6WTQSjXTg6ETX<OAA]^`#"
  1125.     A$ = A$ + "A_BJoAUG_2^j[>Yf5efn5nfNKbKKZhnRI<kI_SNh#EG_Ja7fQ9^oXb[EihWm"
  1126.     A$ = A$ + "cDGmF;^=AJOQdfoo>Ck0>PLoNZ84d[Tf?\C<Q98O\ZDLEGELdVg\NF;2kKYd"
  1127.     A$ = A$ + "f4Ym5:j<ZkjQ3VNUR#jhD9iB_dh8bUhcl<jHL2m<:Y]9Bk;DD?GTm:<?_WXe"
  1128.     A$ = A$ + "^NU:6C8XNe#6b#RKe?KH3KX_OW2kc4c]l:^RhX7h1RSNnWgl5=lCQZGil5KK"
  1129.     A$ = A$ + "KZ9?F<NMVcLViF_mCcjEco8?Bi]o2>6if_mKO07O8bhT_og?9g9BgoY?]C[#"
  1130.     A$ = A$ + "O^KgOF6g1>5Y_Pnk7[?GBOA:fWSh8b]jK#cjEBKgK:5`MD`Kl=n6Kka6=nCQ"
  1131.     A$ = A$ + "<6Qk3d[mJCVSUT[3AIjDRi;ZmmJA:kLO#m=T7JFVNE7bTVTJ7O`?7jQNXioH"
  1132.     A$ = A$ + "4^SO8G_BOODE0j1H?E__H3K8>jaN<i7KT2FCHNdo6dZNen`LmEPM_X7Sl5n2"
  1133.     A$ = A$ + "OQ^IXAVOhm8g7W#^N_UKAfNAZi;Bhomo=i>]D9iL7fmCnTcUngPFe[TfN;eH"
  1134.     A$ = A$ + "4OmC^?6ikmmBjOWBVg4cGT`?h747MGgUjfKZI<SIhmjaBSjEJc^KSAJ2OW_C"
  1135.     A$ = A$ + "bJ2Y^6Tjke=OA2TcMFCXfj7\e67C=_kcn=S:e[Tf>g:bah^C^fLXme?lNU[S"
  1136.     A$ = A$ + "An_o_Cf;MZ_JYnn5cGT`ocoCLdjG_ZfS#7\V#OVgMC_B?SAlm?i^N5gm<?nS"
  1137.     A$ = A$ + ";G>\<OA2<GG>?Q?kcZZLH1COjC__m:\\ZG9]me6Sd1jET3;9[m7cGDgG#>\X"
  1138.     A$ = A$ + "NhDH^DlIN\dTNeLGa:4gfJSAjPa8\>4jSOVNUln2YGKN;H:_VGCOWA7OLOjX"
  1139.     A$ = A$ + "9m:Y][fHT>L<bgmkVDcXBe?a=OAMOaUMI9e<ZF>G>=P_bSUYGISAj9mZkon="
  1140.     A$ = A$ + "m:=h;D^NU_ZOD]XG]h3o`5gV:mH4b=Y_nQg[LO<2[7L[K]D^N`PcGLiG^JG?"
  1141.     A$ = A$ + "8<eJjD^nlNI#_JDgmM;^=Eja8P_n9_oL^3mZ7jQ:UjE1W_PlGYdl]33OCKZ_"
  1142.     A$ = A$ + "l^g[eRU6d[V3WIC5HCe`HT]_m]gAS5Jf?lND8SAX>5iNOGZjDdl59XQJg]=H"
  1143.     A$ = A$ + "b_Qg#?gK\dPNe`n=o6a]UJI<b86a8jTQ3=m7N?:4m:>3QL?]D2[oZPbG#N4i"
  1144.     A$ = A$ + "<4bMlURe[6B]H5joXQ^NUdfa>Re\VL?n;8jW<lMjGiE67mD?EY\nfCSjm5^c"
  1145.     A$ = A$ + "b9mID9l3M0mJ_lCJmZUn2OQRK3k88VX0R3I]nMj?lJ:Ta8Gh5FokdO^WC^_C"
  1146.     A$ = A$ + "_8VkB8h;hL6#OAFbNUAKB_FkXB[G9]m[[X8R3okXbnQ\;gEJh<fZ8OAL1oiI"
  1147.     A$ = A$ + "7n2=d;bJCfkU_lnZ[Q^=_kVNU^7STVcol?oh]^e]6_]]]]h=^a=6?^a=^Roc"
  1148.     A$ = A$ + "aojoJmm?oF_Ei[g71l3HganSO0o1n5AR9LnROl?>Y>hDL^[L<T7kaj;7FMkL"
  1149.     A$ = A$ + "\TD_:4\_=UZlmi5S?0=d?TQ2JmiZ4W_#Qm3iFA_DkXRZGY0KGGAA\7eJ5gJ1"
  1150.     A$ = A$ + "e`m=Ag4gFV`i;Dfm=a01e?;W?W^9_kVNEGbh7_la[5=SNde[SQ]\UTnGRdnQ"
  1151.     A$ = A$ + "ZZNEJO1md7YcSH7`n_okOOejNg\V#C_Z;Y:>7;G?Tij^>MMFe^ckDNKSTn2>"
  1152.     A$ = A$ + "oVB_^l>PA_^eegL\jVNfPDjEcQkUG5Hkj9T>V]8id?mjWkSKkfdE]9bWSZVV"
  1153.     A$ = A$ + "EJOA0D73=2jEMC_B^[7oUjeEiVKUS7mAU?^]87O#=RnCn9aAojO]nfklZdlM"
  1154.     A$ = A$ + "?Wc9[_#;O_A7`N^ZEegJ2Gh2GH7]V`<_?VNEW1SIckcN_6H_f[jW_iOi_DUm"
  1155.     A$ = A$ + "MgnXZj;Tf^g5<lkj^jZm9<ckSYGeiPVUda`i9[NeecE2e`0ec^fVKEEaG0Y["
  1156.     A$ = A$ + "W4=k;J3LkCXYGEP`l<:ceSUKl1WE`kh>BbER6WKEE`G<VaD_?9ZMOAKPKO2k"
  1157.     A$ = A$ + "TkDe<_75TNE#dWfk4HObXF_U>NfgLVWImiFm;n59W]IY]eV_8>jJ^V``G<0l"
  1158.     A$ = A$ + "?lJN=Mli9<ckA1YG=A>OV:`Ni=hkh:KeImANTeo^LVK5ie=0>ooUBO1TNN^\"
  1159.     A$ = A$ + "WPQP_H0H<eNNH=QMBOM?ckA1YG9]M:ghYOjTjhCjHkNUA>bjS?hNhTljZUJ]"
  1160.     A$ = A$ + "Z:k;hkiaG`cVdfG?1[9\C>ocINm5PNed?YCBLKD^Qkkf;bnUP_I`3^nn?aM`"
  1161.     A$ = A$ + "9mS_#lkb;3nRgkk]^F5n2Za<NV2hLFe8DG3LOZbJ2eXNehi\T[0kD^>>QN4l"
  1162.     A$ = A$ + "^\;b7_gY<lQGOlajFGbj>2\JW^dh;nHO\jn2n^3l5l\4ZnRnQAMEGEOkA8eQ"
  1163.     A$ = A$ + "U6e[TfnD8`N<CmOC<Vdam];;MYIeZNT79iI#JKY_l57bQ8_=^MiKn=[GO^h;"
  1164.     A$ = A$ + "nYodTWQ0^f5J5MBMHUieJjEnML2Wa^A=:iSo78nPO`jJE\oC\oJUYa7lLPnK"
  1165.     A$ = A$ + "1d;[kILn1dZh>54O1Of;;nRV0kAHkfGgclJ=m:o2cMWmMVNYVdS3J6;NaI7O"
  1166.     A$ = A$ + "`JeY?all?_lf>O3SgiiRW_G`;#NKOSLFWEfeoAo=Vh6n<GReZP>Y^AclJ=m:"
  1167.     A$ = A$ + "o3ed7WI2nNbGj;Ena5Ya=nPJFPc>;g1TLG5EF7O`c5?OlL:]]?=oSoSem5d?"
  1168.     A$ = A$ + "[X_hC?]RhVbZ_85Y[KDC_B9#oDSe7N;gBLdGm[:gHSGl;>kgSCO=ViLlH?F`"
  1169.     A$ = A$ + "G_d]5llac9?_lLOX7ZLn2G=PjdYH?0_gk=9>Y2XCi0m:gMYj0=7[<_FC_:o7"
  1170.     A$ = A$ + "W#?MPa9[M]aA3MX5gH3ngb=f`=W:nNl=^ahX]]]4mdb^FEJO1?_lLccoQOh5"
  1171.     A$ = A$ + "[>5n2bUFjL6BO\Rh2VCE0fOHj5LjE]CM^WieVcjEUjJ_ZMaYKAM=A]omSnA9"
  1172.     A$ = A$ + "ca9?b;?_W=ZAA=7N3g#bH3b]F9[NNjHO1?o\f;\7L?cDDn2bG8oKQoWh0fOS"
  1173.     A$ = A$ + ":V>U3Z1;bQEkdKIblJcImZY`gYX0kSh`h4>KmL6GX76A<k5OanmkiimRkV^d"
  1174.     A$ = A$ + "S?XgibHB6Kn#?DbL<Z#[kXY`co_kgUH?^aK\hl5<W:ngbe3[Z2[5_OHRWbYd"
  1175.     A$ = A$ + "gL\#_JPbQEVGK>[G=HZm#5HOD34OBOg6][7l1SSfdVBfS>f7KRW9^n[meRSN"
  1176.     A$ = A$ + "[_eTLeC_7P_WVjjL\S=IO^No_oTOWdOg]K^DlN#mk`k9_gD_Q<W:>K=Eda6]"
  1177.     A$ = A$ + "dGPnMSn2\OH7aNRMnOjO:a^Sm7o0n3l;hO`?eXOXol5l_1oKQo_Rk;6dcolk"
  1178.     A$ = A$ + "hLiX9m:Y];Z4RE1dbMen0iDQlIl3n1ee^8ghXO1=K<1oi<^Plfb[QLCak1S="
  1179.     A$ = A$ + "hmd]f_ZnlYjDO1f?\SH?a^RO0kL[l3]S_`M^1ZhJE>#_ZMj?bINMVNUlhb_5"
  1180.     A$ = A$ + "OG?gGF?iCVD_PLGoA?MQebam=7e>?e81m1Ykj^BfSnkknBfg;N=lMg^ekIS9"
  1181.     A$ = A$ + "jNO1f?gl^`^blR`>_i=WHgMn1n_hG`oPObl5M4XGe>WS`<_^LD_Ja7fQ9^=9"
  1182.     A$ = A$ + "ha=n1H=MPko_mMebh7<OQGHZedYXVAYgbX1mZI]ZE9^=a``#W\g;OikhnW#3"
  1183.     A$ = A$ + "jEk>[WG1f5333maHnFO[n>gcLW4fZJJ8c[;7e[6=[eG1f5333ma8^eK]]jC3"
  1184.     A$ = A$ + "INMiXNUdf3333M3eh>kAXYGIHHXMJWn:CVGSYGIHH84LVLXV6<m:333]SYGI"
  1185.     A$ = A$ + "HH4:d>m]_<_6C_b``#8LjE]j<4VieHjE6662AkdWAclJ<m:333Q`d[<<<25<"
  1186.     A$ = A$ + "mZ^Pgck9QCl4CHe[>>jMm^RS>QC8>jh?nhXSkhRSN7_Sh8>?T_mgNLdaN\aA"
  1187.     A$ = A$ + "_]gFLd:GILdaL<boiG[#?a[EaClg;mWA=2WKj>ILi0<FEcPN5eh^YGe1d[a6"
  1188.     A$ = A$ + "Lo;IW?o^gVJf]\#ObZGS9Mm>2UKK=mZ^PN=fPnO4mVM^g0DNlQZ]UF?#=1^["
  1189.     A$ = A$ + "LjeHBjAPL?Wld?]l??]0C_Z;XGS=^X;:Y7jA_7^:g;?kekTdU\TZeMfCo1mm"
  1190.     A$ = A$ + "_N=VlJ^VTkdNjOPBold2<mZ^PN=fhSlARSnQo`TkA>VSPd??QX=<=Uik_ef1"
  1191.     A$ = A$ + "j9fmZ=Tnd<g]5dSJUniY5HjEM1mJ\1iR7m:^SVZRjE3KHnE_RkZ?^[[ZRfBP"
  1192.     A$ = A$ + "kYBOXGamLaFgZl??]0Ko1k2jeHSU]\TkYGjWjE]kC>OZCUV_dG:i>2\:>?[S"
  1193.     A$ = A$ + "jXlSNejGObMFVd??]0C_Z;XGS=fkm>i>nSkL0^[VTni9T\M]2boRk>UAjWcR"
  1194.     A$ = A$ + "TJSOkIK7gG?GoeWXi;mcC;`d[j2laH;bi0mCEbG\d??QTMKPhN^7e_7GZd^R"
  1195.     A$ = A$ + "Ne6f#bN09mcC;`d[4:nPkIL^KWZBg?\5QNe=Oc9k;OEJ>FnB_2K7gSdBold2"
  1196.     A$ = A$ + "ddiMNXQBm;kShS;iBRS^UK9iNWCjWW#b^e>fEVW0gk[E5=;OHgh^NQk8a]]="
  1197.     A$ = A$ + "iONj76L]?KJZOb4<g?>n8nPkSI^?Oin>EjWWRPCmD;6mZoioiTi^B=>DEf_`"
  1198.     A$ = A$ + "NeV=lQW4?BM<cm:]d??m3LohXYnegnlIo\RKC:Th3Pk\LfoHZ=IYON:2NY_d"
  1199.     A$ = A$ + "RA_JNc;i>NWkkJVSUd?gQ#lhRGLR=SmoiIN6iONj7VhonoNOjEJYo]7<g_cn"
  1200.     A$ = A$ + "HL5i;HM[CmeC\gH83YHd[6lPC\]olO^Z7ki=nLO^NgVM6WAbLBi<iXhlYbmk"
  1201.     A$ = A$ + "\V^OL2VL^__kK_7S#m^L5GALd3nPbolD4<bAF<jE\f6\]\g[EQeJGK^6N9FT"
  1202.     A$ = A$ + "m[VJ_BakG=k=XYGe5LSgH_7SLh7NbL`IN0EQl2CodY8d[HMW<nSL7G5F[]?\"
  1203.     A$ = A$ + "IH_hlF`I`Gae_\k\hXUkgiPA_2VlTk]HT1=XTLHA==D5b;lUMI5SNe7n3W<n"
  1204.     A$ = A$ + "kf^]b_N5[g]G]GSOl9f[[mJC\G:>FdEkEXGefJ8i\NeHI_XEP]I0Qi5iS_GS"
  1205.     A$ = A$ + "J:fb;\o0K:i_JCKZlGgXCLRm^mRLGQ=cEK=:M^nSLm[_?m:ZUQ5]X5Y6mZY\"
  1206.     A$ = A$ + "Ve8^]Y]YGSEXoSBOl`eonTniAkf[fE_RjRI;KYlGKKnbN1^JGFYaQClD>Und"
  1207.     A$ = A$ + "[XF6dTNE#]V#O4_`nb#=jYhiQk=6eXbG]ZA<RTaNGjU67mh?Nio\IjCmMjE8"
  1208.     A$ = A$ + ":?gE0eb`RGlR=m:YRGXN\YV6:kS]0>W<iYNeIMF9[5l:_bTm6\\g[6lUN5e:"
  1209.     A$ = A$ + ":kC]R]G>m:fK`U\TUHjEB5_`H\ZB]2i;KFo=^cES8\gP:N^2N1OYmS=c=7OU"
  1210.     A$ = A$ + "^F#`YGA^fKeI7dd[J1CI:mNl2e;4ijDiWcD_1eg3mG?OZEA]XjbcNEil>kSe"
  1211.     A$ = A$ + "FCnjI]Pd;fh^4#jWYF0JEDKk;LQ;\UebPYGe2>kcf?SgX?YAOM\\?63H=7\_"
  1212.     A$ = A$ + "MiaL[HM=EUn9S?\KL_cA=e#]<XhjJ7LjET[MC_Bhh6V?NEH=<>#GVLfe[eVM"
  1213.     A$ = A$ + "]HhMXEA>[Z:m[?OD73>MNFoL0D3P^JKWLGIjEm0_XGD_7g#M^CMHEU^[GXO["
  1214.     A$ = A$ + "C_\d7c[Ri8lCn9EWnQ\?dZVi<C\M\F#>Wc:?^;mm<Qfd[Va9MBRKO:dh7>S^"
  1215.     A$ = A$ + "E]NP2S?hIUiIMWgILd7mS>`ieRon?d7Z^>5iNQjVWGOEjnV`Gc]28OODk7Bo"
  1216.     A$ = A$ + "<e2f[E]ZfZ_G9UNE`=7;O4o`L\Hn1:nlVV;`jg#WVa=lMmTC#jQESM\9k51W"
  1217.     A$ = A$ + "k9nooEn:e7SidZhgWGGEknlbGjE\o4Xe[lnTY;gE3DO_BDm:U?oD_7o0To5>"
  1218.     A$ = A$ + "cYBolDdP_6MJZI:Z;MbU7em?m<0Vg9cQRo;gA7lWcO?oNlkGUF3]?Se#_:4n"
  1219.     A$ = A$ + ">bJnFgJ1WolW_Je[V8eAYdfZR>6Z:]?Q=9^\_ecanZclUh>;VN23i26m9n_D"
  1220.     A$ = A$ + "WJlWcO?oNE]kSNbaY?e[LiP#akccHZmi<miLF[jE1eJ2I<S?RQ^h;>>jV^YZ"
  1221.     A$ = A$ + "E_7_EfDFS7P^4oGncZbf5OZEij7g:OoDMe9:[5LP>7>VNE70iJYGSSXnCY?4"
  1222.     A$ = A$ + "aL7ZBiSaXm`7JE\W5XGaJ\9o3:N^E#WL>L<mZ>0O=7;N^Y_dbnM9mcTQNheo"
  1223.     A$ = A$ + "jmgL[0VK5WI#5?g:`YGAM]?#W37C_Z3aGcG?#RU<:#lE\UK_E_kkFmWIemLE"
  1224.     A$ = A$ + "[J7e9:[5\MbMUTjEk:m8B5Hg:lH:ZEKbeLEYNR<6HlYNUkn3Bck;HLmiFaN3"
  1225.     A$ = A$ + "f>ee^djE1gL\leJ21^kLX^H<=;3OZEaI1h7mSBbgPRWonX[5okZkZf]>A=mZ"
  1226.     A$ = A$ + "^P3i#lC\5iNWk[4UO>D=bIVcLlCl4g;S^l\_a=Znn]fnLH7f>F;h0MO3JjEm"
  1227.     A$ = A$ + "0nL>FD_=Eejab81O>g:h6^QTJ4EiaD^e2BMGe>m#6C_B1aHOZ?ELdML79ki\"
  1228.     A$ = A$ + "bS_<b1XnnmYNUklg40gK#Y[kZ1ZO][9mZiLd7]hf^>6OLo4j0k?mb_ZbMXSA"
  1229.     A$ = A$ + "2_jG]oRQ>eC=A[RN7cCnTZ_V[0G^[JWn9ZVd[2biHice42\gcEQN#WAMlIlC"
  1230.     A$ = A$ + "jl\[hk\;7SmL?gM\_P]CoiCKjEk>fK5H75;NSe5`mGREckE3#CaWJE0kgLPD"
  1231.     A$ = A$ + "S<YgG`>Y>6dRNe1L#7Thf`>VGl;f_JFdSg[JmRPZ:LgOkKm:fkV0Y6TC__P]"
  1232.     A$ = A$ + "CoiCKjE1kJ2Ga:l[V5WCWbnM0JE7O6_#]ehZ?DdZhNiEjW_f0gmhLW^_PJB_"
  1233.     A$ = A$ + "JXTW#5H;k8H^gn<nSNnk_jG54O7YAGR?SGLk98[5Tm4<0F;h#NRW8cmRJXZG"
  1234.     A$ = A$ + "aWKY]UR7o1oKoKZoLOId5LNWWoSE#_RNLh?kW54JE#jk][>MO1eTN5\XGf;C"
  1235.     A$ = A$ + "LkI73a9SKLn=>TJbbjAFU;lIl1g=Q^ce<mh`WjYToi[=HZeVCBgLN1eZNE#>"
  1236.     A$ = A$ + "7;dDh\JichaMMGC>KQ1#MdHd6\KkVOS?^X;ZnI_Qkc3UO^VMhZADbMEgTWM]"
  1237.     A$ = A$ + "YG]COF25lMmH1_ggKein[Z<S_S;0GN[XoV`i4<#V7NjkLn^E[BKjE3>DgO<>"
  1238.     A$ = A$ + "74n>^l[oe]JL8TQcM\_S9>cc\nN2n0?#`4K<XWmIcL7>k]id8\NE#^V#`M7`"
  1239.     A$ = A$ + "hkhc=]YTmnaVWEH1gAIialZL[3dE_NBoLfVTnl=g]iIGSjE`Tn6O3a]_M5XY"
  1240.     A$ = A$ + "hkHDPkf:jk<VVEH0g7`iALPC_j7oS3Zc3ah>kc^[kM<QPNE`>7;0MUl8FmT?"
  1241.     A$ = A$ + "iTcbJP<oo:;iAM;hdZ8WE<g:b[I0egdBWWm^il2ZMmZMjcD81eg`_hGT?a\["
  1242.     A$ = A$ + "I=FM>XInfOkla_oUobe_S^H^ELfh3Tj]2jVk0W#C_JV[JERKWkJ#?IGfUl9f"
  1243.     A$ = A$ + "mh?nhX]]=CcBKlaohiSon<>Sjc]jV_iTnbN0ikgkE\R^j>U8dd[2je42DSji"
  1244.     A$ = A$ + "Al;LD7U=?;=aaMLiSOn`>\ji\Rm3lN_gPk\?dHNf;[jE1_VEN]OQ>Vh4]lIY"
  1245.     A$ = A$ + "1VdTb?O\C[Rn=d]N[1G]]Tnn_IncOnNA[BcjEkdW]#TlDc2^_k[nMi^d?[E9"
  1246.     A$ = A$ + "h>j>_lY_WgCmcK3gmK\GP1HoLdgi]:4d[f];ob5g^gCPF2W;blDcRJ\=PboJ"
  1247.     A$ = A$ + "`3WahldOjVG5angd=UDoM1fIcJGoNO?_LfV3=m:V3i^Aob#1nP^6Rehl0VWa"
  1248.     A$ = A$ + "hSH41eIc8HITS\HdZ8OE\?c4g48eIUSAOYGJVN8Z_bKEXXG=ggdKBLO#?1aK"
  1249.     A$ = A$ + "nn<AKccB6bCogKi]DO_0I^ELoDZlkmdVaDN5_RMXGamO3SQ[:jE>=;Ym1m<4"
  1250.     A$ = A$ + "cAOoXVO<ge]8WI1fg9[NbKOfTWLmiFM]GKLdmL?1kmlFSgEGnD[:4d[P178m"
  1251.     A$ = A$ + "jeF2[GSLATgankkn6TO_\JYfl4bMOFje1B?]RhT0do=XJaM>m:fC#OVWm#B_"
  1252.     A$ = A$ + "ZD<7;PH#^_17lPcoa0\GkXc7PamZPmJ_bOO4a1>]Z[nZCjES1FM;h`e[SmA?"
  1253.     A$ = A$ + "icd[D4Lf_X?]WgS5LHiQ_cYXl=>]:^o0YOFALAP^FnY=SI\SJI??bKE8YGEj"
  1254.     A$ = A$ + "d\8VTcFQ?_KW682PkBCAI][]hl5hgMJEDWELGS`Jh3D]:`=g:j13mJ?^Z\XG"
  1255.     A$ = A$ + "]g4CY0OSGPhC>[m5eH4Pk0HK?4gI:BO0TF[RJ2=`kU\kfYOjmdM<OID_Zd=7"
  1256.     A$ = A$ + ";V[3J74[VWW[Snkkg_mK_J?O;j5R5AN4Cc4V#fe0blZ`o7`O7bDNe_jL]N[2"
  1257.     A$ = A$ + "Im:HX\g9:`?i5#_PeYEdccb1k7E0omjM=GaE8Sm>]F5e1=nm0OMjYca>WmVl"
  1258.     A$ = A$ + "D[:4e[`N<Ali:`Gi=#cPkjT?kWEVaA`LWK#?^I0IncG>K;gO8>]:jSE<gFlg"
  1259.     A$ = A$ + "1ngE<V;h2bmjG8de[LJFBk[l>4kbN7NGgULS[L`MLGX[MAO=HdSFNKYkngRj"
  1260.     A$ = A$ + "FWn]7[3]TdO[M[3dWm;VbXN5\;d?PDP?c[P6a_igDlicZoPk2f#CgjB_dhXa"
  1261.     A$ = A$ + "?Ni]M#jlZC_<n^_k4oKXICK23K;KY#G7HX[GQmIjW`98^Ock#\<m?T]^Ei7_"
  1262.     A$ = A$ + "e<nROAm<NKcK>>Ji;GNKBS`I<8mjoh^m2oIPN6KJTmjH>V2OMPU1mZBij21f"
  1263.     A$ = A$ + "_8b3;iiHh3GnaOm7TCXRn\BaoN;LQbo\gO`gQVnlel3oQ9eJGPWGmdhdZlIO"
  1264.     A$ = A$ + ">^\[GiHJT;C5h3c5X_7cnQbidXFLQhS5kDHmT7bQ47mYodaAO[_EB^K8?cTo"
  1265.     A$ = A$ + "6V[1SQOl7?i?o2_`TO_Gb;9ie9mWm>U5\PjjDT[:bO6mJ_Bfm7YC[b=gZRD["
  1266.     A$ = A$ + "Z<XGQmJHlmG:`GjMhkSILmCl4igm^SQO8M^ZXN9X76cjj3\N]G[HoZ=_fdc]"
  1267.     A$ = A$ + ":?jo2UMm:WVUdnb2AgRiVXQm?dXijDTCMl?hW2XkOifRJ??iE?I_:ZG=J^S^"
  1268.     A$ = A$ + "UfWVgJF\>:fO9jC^J>7>E1Vglb^n?ZoCl;hO`?EBbEUSY=mY_SjG`M61=mZN"
  1269.     A$ = A$ + "CcRJ0AJoJQXKA>WinaQa7B?^]ZaaN\=GW2oA9DW2B_6#jm2iE_RYZYGEjGGX"
  1270.     A$ = A$ + "3G^ZYg^m:OUb?6^:AJ]:ZEQKh6Bl3h?:AiZZIjE^J]ZXZ=db\NU3\U3Z<d?B"
  1271.     A$ = A$ + "K7X^78GlKI;9SQ6b#TOlLI4\[Oe_JMM:ZC1^_Ua^COf8P?_b]267idZBOGg8"
  1272.     A$ = A$ + "UFEID_ZB=?;PeO`nUcMY2eT8mokCmDUO<NIP?aW8klYHOoXVh`>G1jCn=k\<"
  1273.     A$ = A$ + ";YFEID_bYI]7Wci8^o^#Q_SWiEbMXj?mW:kIW^<`WlCV]O:`MF3fEbWN5X?C"
  1274.     A$ = A$ + "?ne^fLo^S`d[bZIEfSYJ:lMnd3TY><Im:GceTLVKUNlO8PCOb=O:Z?1\OH7a"
  1275.     A$ = A$ + "NFAj]dYG38WUI9c_NEB_JADCh:`oGh`H:Z=nWiIB6[aiGSi7XicfSTLJWFF]"
  1276.     A$ = A$ + ":bS>f;\KHo`>Rm\2XEUF_BC[3\\[Gid\Z4eh#[`=O;b;?kS5eY6S5GcJTGW#"
  1277.     A$ = A$ + ";JD^mjSiBMMGGbJZaNQM[TWSZnC[RJG`ggUlVNEkYI=6>cY:8F#<HN1<fSc7"
  1278.     A$ = A$ + "2g1;LFAFojSS^T;9>jMm^TGkX89miAfEGjD3EH?hN:m1O`Tml[R\f_d<Z[jZ"
  1279.     A$ = A$ + "bdKSedj0[:jE>=[5GEGKHSh>K?TcH>g8<6mj_nTko>VSa7l3:_VR?QWW6c;5"
  1280.     A$ = A$ + "?Wllbc=?oonOORmPiBEadXLT>WE\6`R^_;HjEIe[Zl[;\ALihjIOfhX7jQB>"
  1281.     A$ = A$ + "?e\FXJO7KOSWO5_2ieJj5njOmMNNDlLac7?Wllbc=?o\gZEDM:7YcI5JEJKM"
  1282.     A$ = A$ + "PE9m:7h3V;m[454OX:Le`5WW4b]<SSY>S^aK<inVRm9SakGl577=SI8_FT3f"
  1283.     A$ = A$ + "o0Z_odjBYW35O^i><SW3j]WlLaJRMmSh:^65<eJS;J<WEJLNEEAm:KNF30>M"
  1284.     A$ = A$ + ";Z5b]]]hX7mACj=EL_CA>0AkRJkVjA2=QcmLSSFdR:>m9^7bhLNONWg>[AiZ"
  1285.     A$ = A$ + "C:dXhc9[eS?gTkLN>HND^JlddYf1=Nf0ejlZZRjE>=;bShDn8O4aSE22Hl=i"
  1286.     A$ = A$ + "kRL#oD?EbHokonCda8_m\f:fG=j?MToNVG3c53m\VYYd=`k5PNTKNCl_WKol"
  1287.     A$ = A$ + "hc1md#nLai>V?WX=EBjo`i1kakkmU9WEL?WZal[Gee[LJFmE3lUYk;jR4gl`"
  1288.     A$ = A$ + "8_?X;#^Z9WeDCUdk4i^0QjFj>_chXKkfBZQ2jQ1<W7dGhNRQeY1Xi`oUo<Po"
  1289.     A$ = A$ + "NnmhgWG7_NjCklnaiPQgOZaLG>biOOnLHcKZ]IlWiI^3]:Z7DG_\BkJEEEm:"
  1290.     A$ = A$ + "WV5iEL2\V65435dhd_Hn<T3OdAHmGXY#o0VJIbYUA>T#gi1NPTi3iPoolWcO"
  1291.     A$ = A$ + "?oNlkc[SG?iLRg?bk4_oVnDGch>Wc9Hf;#C_JWe\HmjVVUAEPdJEJXg`HjEM"
  1292.     A$ = A$ + "WVUEKF6UM6oWoc7dc[bd[bZIai?ObOh?\haE66nVdgY=QjlZ<mZ\PocVWUAI"
  1293.     A$ = A$ + "S1m\?KYHNEVNEFLk?2e;g<>RS#lh<3SNUmi#>4Eeke=m:o[IQodVWUAIPdc["
  1294.     A$ = A$ + "2]:G][KjEboLhKM;d\X^DT>Vc`XC9MnZ#[Rhh#=OEVNEk[IaL]61eZX2R1=<"
  1295.     A$ = A$ + "J76nVfDVe0Zen2SYGUOJF<?JYS3=<68JLO09^]<YEIjE]WV5cUNF=J[<<D4k"
  1296.     A$ = A$ + "G=]YdJEL7<GFF3XYGeihZgQAaiKC1aW66`8GojgYk72=goZ<mZR3gj3WU]n#"
  1297.     A$ = A$ + "35#EHmOVNE_[IA]`cl]U>NeXjBSJEUeeoIjEnAc2XW1=KK^F658CKfcNWZ1d"
  1298.     A$ = A$ + "#^Ne=mZRCcb]gQSTNeT2RU=:g\;KH3IbE5cYZ<D3XVNEaZKag_aL]6j3o`R7"
  1299.     A$ = A$ + "CKDnPhZdjD<_:RgZ2[ocd[b7=;V[5OOgTinlC1ah6U3fcSkhbT[:fo?Rc:ki"
  1300.     A$ = A$ + "Egd[:HM[E^BaSe=2GB[AU>WjEEM:C_:Od[LkO8WI[Y\lU;NL_AhaTOc_i<JE"
  1301.     A$ = A$ + "\n?RW8^Z:U[:C_ZHe]LceJo[moFja06:W]_mhY^h5W9?E<W:CW:;I\IVNUG9"
  1302.     A$ = A$ + "mL]VTMoQId2J\W:`iDVhVZnjoJT<f=C_bkhnNAgN8>mJ<XWki4OlQQl#L`na"
  1303.     A$ = A$ + "l_KX?EEEgk_fQ<f#C_:g8mJ4YVIHONfS?f7Cla<65?kn7mS^CiWbE;EV>E[9"
  1304.     A$ = A$ + "S]dd[bELmj1V[5aWXI9mH7SRW6gk?R3H>E^jDgd[jObH;=mZ23gL]875T[RA"
  1305.     A$ = A$ + "OiG^hSS<b?`oJiXZgad[TQ6GO8a^\^0Y7GIhOJLnD^nnIEXO:hK<m:i9mj4i"
  1306.     A$ = A$ + "nFRhiMk<>3a7WIdmPo[IcWbMOJIiYZk`d[d1Yg7ARY9fNB__gWhSk<j<6nVg"
  1307.     A$ = A$ + "LldVi<kgiCIiXZg`d[d7^iKAl=JGT?fnF[hfg^hS7=J2el;=^V?KnDi3VNU>"
  1308.     A$ = A$ + "aYIAn=H_SHo4AcJo]n4XZHJcI>kT>U[_DU>oDVFUO`d[d?YG[8S1H\0ciJo["
  1309.     A$ = A$ + "]^3Y7_FeHdGiE6?=nNS6dX`OhdX\elUOHjEQ3^iLaIlY_NKJ]eK`HUYL47Qh"
  1310.     A$ = A$ + "SS[2PM^Im=1l3h?`_hFgWYEU?HjEQ9=CkRa>XO]G_egZhS];3PM\IeRP[g^P"
  1311.     A$ = A$ + "MWekIiVZh`d[2GLO?^;gl^J?eYKm?ljNMR?V?41kFcbO^CW2kLjLXKJE57VN"
  1312.     A$ = A$ + "EiPdJG^J#]Am;bkb^MjW^hj1J2\7=Z=UFObE3jF^ce1VNEiT6e_Lme6giFTe"
  1313.     A$ = A$ + "e`HB6Kbi_MHobOYhJ7i9llehi<^amd3]9GoA0kEjejIJDj0C_ZLSK\Vk\ohj"
  1314.     A$ = A$ + "[=^JBe=g;WfenN`7Ll#OT7ALm5O0?7lldOJD^i#Q65f3dXJ<WiV>U^`d[ZNT"
  1315.     A$ = A$ + "N^G^c1T[fDKfl_Bc4?UCY_k0MYeRPan=oVakiZFECeSJV^Tk^JPWCGM7HcO:"
  1316.     A$ = A$ + "\`d[Zfdhj6KVf5Sek?m;7CJe[>NDGmE7?d7h1lkLTZmn=n?oW__goFY;e<m9"
  1317.     A$ = A$ + "gLWLi8gYAI[c;Lad[<J6=>7\dJI\NB6oSV6j1\^BW^FJ]]6YMdKJDg9=^J9`"
  1318.     A$ = A$ + "=G9GnVhc1hbkDcdT<MYb1VNUa0AjalYe_LJHXAhf?BG>m1dBLjI>==7>MWdT"
  1319.     A$ = A$ + "n_gmJL_7^eaak?jBl_GJ]YVY?IJDU?<m:3OASJ5=CW[CXoN_Tnid#><m:33S"
  1320.     A$ = A$ + "#1C_b``8D`d[<<<25<m:33S#1C_b``8D`7jE66665>VNUQQAXPYGIHH4:d9j"
  1321.     A$ = A$ + "E6666666666666666666666666666666666666m;oo`>%%L2"
  1322.     btemp$ = ""
  1323.     FOR i& = 1 TO LEN(A$) STEP 4: B$ = MID$(A$, i&, 4)
  1324.         IF INSTR(1, B$, "%") THEN
  1325.             FOR C% = 1 TO LEN(B$): F$ = MID$(B$, C%, 1)
  1326.                 IF F$ <> "%" THEN C$ = C$ + F$
  1327.             NEXT: B$ = C$: END IF: FOR j = 1 TO LEN(B$)
  1328.             IF MID$(B$, j, 1) = "#" THEN
  1329.         MID$(B$, j) = "@": END IF: NEXT
  1330.         FOR t% = LEN(B$) TO 1 STEP -1
  1331.             B& = B& * 64 + ASC(MID$(B$, t%)) - 48
  1332.             NEXT: X$ = "": FOR t% = 1 TO LEN(B$) - 1
  1333.             X$ = X$ + CHR$(B& AND 255): B& = B& \ 256
  1334.     NEXT: btemp$ = btemp$ + X$: NEXT
  1335.     btemp$ = _INFLATE$(btemp$)
  1336.     _MEMPUT m, m.OFFSET, btemp$: _MEMFREE m
  1337.     BASIMAGE6& = _COPYIMAGE(v&): _FREEIMAGE v&
  1338.  
  1339.  
  1340. SUB RotoZoom (X AS LONG, Y AS LONG, Image AS LONG, Scale AS SINGLE, Rotation AS SINGLE)
  1341.     DIM px(3) AS SINGLE: DIM py(3) AS SINGLE
  1342.     W& = _WIDTH(Image&): H& = _HEIGHT(Image&)
  1343.     px(0) = -W& / 2: py(0) = -H& / 2: px(1) = -W& / 2: py(1) = H& / 2
  1344.     px(2) = W& / 2: py(2) = H& / 2: px(3) = W& / 2: py(3) = -H& / 2
  1345.     sinr! = SIN(-Rotation / 57.2957795131): cosr! = COS(-Rotation / 57.2957795131)
  1346.     FOR i& = 0 TO 3
  1347.         x2& = (px(i&) * cosr! + sinr! * py(i&)) * Scale + X: y2& = (py(i&) * cosr! - px(i&) * sinr!) * Scale + Y
  1348.         px(i&) = x2&: py(i&) = y2&
  1349.     NEXT
  1350.     _MAPTRIANGLE (0, 0)-(0, H& - 1)-(W& - 1, H& - 1), Image& TO(px(0), py(0))-(px(1), py(1))-(px(2), py(2))
  1351.     _MAPTRIANGLE (0, 0)-(W& - 1, 0)-(W& - 1, H& - 1), Image& TO(px(0), py(0))-(px(3), py(3))-(px(2), py(2))
  1352.  
Title: Re: MAZEBALL: Tilt Maze puzzle clone
Post by: Dav on August 23, 2020, 07:56:35 pm
I just fixed the last post up there of the maze game.  It had a bug where the ball got messed up.  I also added the RotoZoom method from the wiki to get the star some animation when reaching it.  I'm adding more levels and a save progress for the next update.

- Dav
Title: Re: MAZEBALL: Tilt Maze puzzle clone
Post by: bplus on August 23, 2020, 11:16:04 pm
I finally have an AI that can solve all 10 puzzles! It even found an alternate to puzzle #2.

I want to illustrate solutions before posting code.

Also this fixes the line in the Star, there is probably other ways but I like to advertize Rotozoom3 that has advantage of rotating or scaling on x, y axis independently.
Nice effect with Star BTW!

Just needed to add _SEAMLESS
Code: QB64: [Select]
  1.  
  2. SUB RotoZoom (X AS LONG, Y AS LONG, Image AS LONG, Scale AS SINGLE, Rotation AS SINGLE)
  3.     DIM px(3) AS SINGLE: DIM py(3) AS SINGLE
  4.     W& = _WIDTH(Image&): H& = _HEIGHT(Image&)
  5.     px(0) = -W& / 2: py(0) = -H& / 2: px(1) = -W& / 2: py(1) = H& / 2
  6.     px(2) = W& / 2: py(2) = H& / 2: px(3) = W& / 2: py(3) = -H& / 2
  7.     sinr! = SIN(-Rotation / 57.2957795131): cosr! = COS(-Rotation / 57.2957795131)
  8.     FOR i& = 0 TO 3
  9.         x2& = (px(i&) * cosr! + sinr! * py(i&)) * Scale + X: y2& = (py(i&) * cosr! - px(i&) * sinr!) * Scale + Y
  10.         px(i&) = x2&: py(i&) = y2&
  11.     NEXT
  12.     _MAPTRIANGLE _SEAMLESS(0, 0)-(0, H& - 1)-(W& - 1, H& - 1), Image& TO(px(0), py(0))-(px(1), py(1))-(px(2), py(2))
  13.     _MAPTRIANGLE _SEAMLESS(0, 0)-(W& - 1, 0)-(W& - 1, H& - 1), Image& TO(px(0), py(0))-(px(3), py(3))-(px(2), py(2))
  14.  
  15.  
  16.  
Title: Re: MAZEBALL: Tilt Maze puzzle clone
Post by: bplus on August 24, 2020, 01:41:48 am
Illustrated Solutions, just hit the arrow key you land on :)

Pathfinder takes just under a minute for #9 and #10, the rest are pretty quick.

Code: QB64: [Select]
  1. _TITLE "Tilt Maze Pathfinder" ' b+ started 2020-08-22
  2. ' 2020-08-22 I am starting with mods of Dav's version of tilt maze as it was frustration
  3. ' with the his 2nd level Puzzle that inspired me to search for solutions with AI.
  4. ' Thanks for that Dav! ;-))
  5. ' 2020-08-22 so far just a semi-3D version.
  6. ' 2020-08-23 It now can solve all the puzzles, #9, #10 are taking almost a minute though.
  7. ' 2020-08-24 Illustrate solutions
  8.  
  9.  
  10. '============
  11. 'MAZEBALL.BAS   https://www.qb64.org/forum/index.php?topic=2936.msg121950#msg121950  original post
  12. '============
  13. 'Clone of the Tilt Maze Puzzle games.
  14. 'QB64 code by Dav, AUG/2020
  15.  
  16. 'The goal is to move the ball to the star.
  17. 'Use arrows to move the ball.  Walls will stop
  18. 'the ball moving so navigate around them.
  19. 'There are 10 levels to complete and they get
  20. 'harder as you go.  To help you (cheat) you can
  21. 'jump to other levels by using the +/- keys.
  22. 'Press SPACE to reset level and start over.
  23.  
  24. 'If you beat the last level, you will get a
  25. 'smiley face and hear a happy song.
  26.  
  27. 'For those who get stuck, solutions are below.
  28.  
  29. '=======
  30. 'CREDITS:
  31. '=======
  32.  
  33. 'I didn't come up with this game - It's been around for a while.
  34. 'It's mostly a clone of a cool game posted on THE QBASIC FORUM here:
  35. 'https://www.tapatalk.com/groups/qbasic/tilting-maz-game-t39133.html
  36. 'Also some levels derived from the original tilt maze game here:
  37. 'https://www.mathsisfun.com/games/tilt-maze.html
  38. 'There's other Tilt Maze games that influenced me.
  39.  
  40. 'My thanks to those original game authors for the tilt maze fun.
  41. 'Please accept this QB64 version as a compliment from a fan.
  42.  
  43. '=================================================================
  44.  
  45. 'Solutions below, for those who get stuck...
  46.  
  47. '#1)  RDLURDR
  48. '#2)  LURULDRUL
  49. '#3)  DRULDRDLULUR
  50. '#4)  DRURULURULDR
  51. '#5)  URDLULDLURDLU
  52. '#6)  RDRULDRULDRD
  53. '#7)  DRULDLURDRULDRD
  54. '#8)  RDLDLULDLURURULDRD
  55. '#9)  LURULULDLDRDRURULURDLDR
  56. '#10) D R U L D L D R U R U L U L U R D L U R D R U L D R U R D
  57.  
  58. TYPE xy
  59.     x AS INTEGER
  60.     y AS INTEGER
  61.  
  62. TYPE d4way ' clock wise
  63.     d1 AS xy 'right
  64.     d2 AS xy 'down y increasing
  65.     d3 AS xy 'left
  66.     d4 AS xy 'up y decrease
  67.  
  68. DIM SHARED bs, grid 'box or cell size, cells per side of square grid
  69. DIM SHARED bx, by, sx, sy 'ball and star locations
  70. DIM SHARED TruePath$, soln& ' AI found a path to Star, handle for solution screen
  71. REDIM SHARED pdata$(grid, grid), AI(grid, grid) AS d4way
  72. puzzle = 1 'start on puzzle 1
  73. puzzlemax = 10 'there are 10 puzzles total
  74.  
  75. SCREEN _NEWIMAGE(640, 640, 32)
  76. _DELAY .25
  77.  
  78. 'check arrow
  79. 'arrow 320, 320, 0, 200
  80. 'END
  81. '======
  82. restart:
  83. _TITLE "Level: " + STR$(puzzle) + " of" + STR$(puzzlemax)
  84. setLevel puzzle
  85. updateBall
  86.     CLS
  87.     'get user keypress...
  88.     k$ = INKEY$
  89.     moved = 0: done = 0
  90.  
  91.     'if right arrow....
  92.     IF k$ = CHR$(0) + CHR$(77) THEN 'right
  93.         WHILE pdata$(bx + 1, by) = " " OR pdata$(bx + 1, by) = "y"
  94.             bx = bx + 1: moved = 1
  95.             IF bx = sx AND by = sy THEN done = 1: EXIT WHILE
  96.         WEND
  97.     END IF
  98.     'if left arrow...
  99.     IF k$ = CHR$(0) + CHR$(75) THEN
  100.         WHILE pdata$(bx - 1, by) = " " OR pdata$(bx - 1, by) = "y"
  101.             bx = bx - 1: moved = 1
  102.             IF bx = sx AND by = sy THEN done = 1: EXIT WHILE
  103.         WEND
  104.     END IF
  105.  
  106.     'down arrow
  107.     IF k$ = CHR$(0) + CHR$(80) THEN
  108.         WHILE pdata$(bx, by + 1) = " " OR pdata$(bx, by + 1) = "y"
  109.             by = by + 1: moved = 1
  110.             IF bx = sx AND by = sy THEN done = 1: EXIT WHILE
  111.         WEND
  112.     END IF
  113.  
  114.     'if up arrow
  115.     IF k$ = CHR$(0) + CHR$(72) THEN
  116.         WHILE pdata$(bx, by - 1) = " " OR pdata$(bx, by - 1) = "y"
  117.             by = by - 1: moved = 1
  118.             IF bx = sx AND by = sy THEN done = 1: EXIT WHILE
  119.         WEND
  120.     END IF
  121.  
  122.     IF k$ = CHR$(32) THEN GOTO restart
  123.  
  124.     IF k$ = "+" THEN
  125.         puzzle = puzzle + 1: IF puzzle > puzzlemax THEN puzzle = 1
  126.         GOTO restart
  127.     END IF
  128.  
  129.     IF k$ = "-" THEN
  130.         puzzle = puzzle - 1: IF puzzle < 1 THEN puzzle = puzzlemax
  131.         GOTO restart
  132.     END IF
  133.     updateBall
  134.     _DISPLAY
  135.     _LIMIT 60
  136.     IF done = 1 THEN
  137.         SOUND 7000, .1: _DELAY 2
  138.         puzzle = puzzle + 1
  139.         IF puzzle > puzzlemax THEN puzzle = 1
  140.         GOTO restart
  141.     END IF
  142.  
  143. SUB update
  144.     CLS
  145.     FOR y = grid - 1 TO 0 STEP -1
  146.         FOR x = grid - 1 TO 0 STEP -1
  147.             IF pdata$(x, y) = "x" THEN
  148.                 LINE (x * bs, y * bs)-STEP(bs - 1, bs - 1), _RGB32(144, 0, 0), BF
  149.                 LINE (x * bs, y * bs)-STEP(bs - 1, bs - 1), &HFF999999, B
  150.             ELSEIF x = bx AND y = by AND TruePath$ = "" THEN
  151.                 'LINE (x * bs, y * bs)-STEP(bs - 1, bs - 1), &HFF000000, BF
  152.                 FOR R! = .47 * bs TO 0 STEP -1
  153.                     fcirc x * bs + .5 * bs, y * bs + .5 * bs, R!, _RGB32(220 - 220 * R! / (.45 * bs) + 35)
  154.                 NEXT
  155.             ELSEIF x = sx AND y = sy THEN
  156.                 'LINE (x * bs, y * bs)-STEP(bs - 1, bs - 1), &HFF000000, BF
  157.                 FOR p = 1 TO 0 STEP -.0125
  158.                     star x * bs + .5 * bs, y * bs + .5 * bs, .16 * bs * p, .46 * bs * p, 5, _PI / 10, _RGB32(255, (1 - p) * 150 + 105, 0)
  159.                 NEXT
  160.             END IF
  161.         NEXT
  162.     NEXT
  163.  
  164. SUB updateBall
  165.     IF TruePath$ <> "" THEN
  166.         _PUTIMAGE , soln&, 0
  167.         FOR R! = .47 * bs TO 0 STEP -1
  168.             fcirc bx * bs + .5 * bs, by * bs + .5 * bs, R!, _RGB32(220 - 220 * R! / (.45 * bs) + 35)
  169.         NEXT
  170.     ELSE
  171.         update
  172.     END IF
  173.  
  174. SUB setLevel (puzzle) 'x is the wall, b is ball. y is the star
  175.     IF puzzle = 1 THEN
  176.         puz$ = "": grid = 8
  177.         puz$ = puz$ + "xxxxxxxx"
  178.         puz$ = puz$ + "x   xb x"
  179.         puz$ = puz$ + "x   yx x"
  180.         puz$ = puz$ + "x  xx  x"
  181.         puz$ = puz$ + "x      x"
  182.         puz$ = puz$ + "x      x"
  183.         puz$ = puz$ + "x      x"
  184.         puz$ = puz$ + "xxxxxxxx"
  185.     ELSEIF puzzle = 2 THEN
  186.         puz$ = "": grid = 10
  187.         puz$ = puz$ + "xxxxxxxxxx"
  188.         puz$ = puz$ + "xx  x    x"
  189.         puz$ = puz$ + "x   xx   x"
  190.         puz$ = puz$ + "x   y    x"
  191.         puz$ = puz$ + "x     xx x"
  192.         puz$ = puz$ + "x      b x"
  193.         puz$ = puz$ + "x        x"
  194.         puz$ = puz$ + "x     xx x"
  195.         puz$ = puz$ + "x x      x"
  196.         puz$ = puz$ + "xxxxxxxxxx"
  197.     ELSEIF puzzle = 3 THEN
  198.         puz$ = "": grid = 11
  199.         puz$ = puz$ + "xxxxxxxxxxx"
  200.         puz$ = puz$ + "xbx  x    x"
  201.         puz$ = puz$ + "x    x    x"
  202.         puz$ = puz$ + "xx   x    x"
  203.         puz$ = puz$ + "x    y  x x"
  204.         puz$ = puz$ + "x    x    x"
  205.         puz$ = puz$ + "x         x"
  206.         puz$ = puz$ + "x x     x x"
  207.         puz$ = puz$ + "x  x      x"
  208.         puz$ = puz$ + "x   x    xx"
  209.         puz$ = puz$ + "xxxxxxxxxxx"
  210.     ELSEIF puzzle = 4 THEN
  211.         bs = INT(sw / 11) 'boxsize
  212.         puz$ = "": grid = 11
  213.         puz$ = puz$ + "xxxxxxxxxxx"
  214.         puz$ = puz$ + "xbx   x   x"
  215.         puz$ = puz$ + "x xx      x"
  216.         puz$ = puz$ + "x         x"
  217.         puz$ = puz$ + "x       xxx"
  218.         puz$ = puz$ + "x x       x"
  219.         puz$ = puz$ + "x x  xx   x"
  220.         puz$ = puz$ + "x         x"
  221.         puz$ = puz$ + "x xx  x xxx"
  222.         puz$ = puz$ + "x     x  yx"
  223.         puz$ = puz$ + "xxxxxxxxxxx"
  224.     ELSEIF puzzle = 5 THEN
  225.         puz$ = "": grid = 12
  226.         puz$ = puz$ + "xxxxxxxxxxxx"
  227.         puz$ = puz$ + "x x      x x"
  228.         puz$ = puz$ + "x x xxx  x x"
  229.         puz$ = puz$ + "x          x"
  230.         puz$ = puz$ + "x x x x xx x"
  231.         puz$ = puz$ + "x x xbx    x"
  232.         puz$ = puz$ + "x   xxxxx xx"
  233.         puz$ = puz$ + "x     xyx  x"
  234.         puz$ = puz$ + "xx         x"
  235.         puz$ = puz$ + "x         xx"
  236.         puz$ = puz$ + "x   x x    x"
  237.         puz$ = puz$ + "xxxxxxxxxxxx"
  238.     ELSEIF puzzle = 6 THEN
  239.         puz$ = "": grid = 13
  240.         puz$ = puz$ + "xxxxxxxxxxxxx"
  241.         puz$ = puz$ + "x     x     x"
  242.         puz$ = puz$ + "x   xxx   xxx"
  243.         puz$ = puz$ + "x           x"
  244.         puz$ = puz$ + "xxx xxx   x x"
  245.         puz$ = puz$ + "x         xyx"
  246.         puz$ = puz$ + "xb    x   xxx"
  247.         puz$ = puz$ + "x x   x     x"
  248.         puz$ = puz$ + "xxx   xx    x"
  249.         puz$ = puz$ + "x           x"
  250.         puz$ = puz$ + "x   x   x x x"
  251.         puz$ = puz$ + "x   x   x x x"
  252.         puz$ = puz$ + "xxxxxxxxxxxxx"
  253.     ELSEIF puzzle = 7 THEN
  254.         puz$ = "": grid = 15
  255.         puz$ = puz$ + "xxxxxxxxxxxxxxx"
  256.         puz$ = puz$ + "xbx   x     x x"
  257.         puz$ = puz$ + "x xx          x"
  258.         puz$ = puz$ + "x         x   x"
  259.         puz$ = puz$ + "xx       xx   x"
  260.         puz$ = puz$ + "x             x"
  261.         puz$ = puz$ + "x xx       xx x"
  262.         puz$ = puz$ + "x     x x     x"
  263.         puz$ = puz$ + "xx            x"
  264.         puz$ = puz$ + "x   x         x"
  265.         puz$ = puz$ + "x   xx       xx"
  266.         puz$ = puz$ + "x       x     x"
  267.         puz$ = puz$ + "x      xxx    x"
  268.         puz$ = puz$ + "x x         xyx"
  269.         puz$ = puz$ + "xxxxxxxxxxxxxxx"
  270.     ELSEIF puzzle = 8 THEN
  271.         puz$ = "": grid = 15
  272.         puz$ = puz$ + "xxxxxxxxxxxxxxx"
  273.         puz$ = puz$ + "x x     x     x"
  274.         puz$ = puz$ + "x    x       xx"
  275.         puz$ = puz$ + "x        b    x"
  276.         puz$ = puz$ + "x     x     x x"
  277.         puz$ = puz$ + "x  x          x"
  278.         puz$ = puz$ + "x       x x   x"
  279.         puz$ = puz$ + "x      xx    xx"
  280.         puz$ = puz$ + "x             x"
  281.         puz$ = puz$ + "xx       x    x"
  282.         puz$ = puz$ + "x   x x       x"
  283.         puz$ = puz$ + "x   xyx       x"
  284.         puz$ = puz$ + "x   xxx       x"
  285.         puz$ = puz$ + "x       x   x x"
  286.         puz$ = puz$ + "xxxxxxxxxxxxxxx"
  287.     ELSEIF puzzle = 9 THEN
  288.         puz$ = "": grid = 19
  289.         puz$ = puz$ + "xxxxxxxxxxxxxxxxxxx"
  290.         puz$ = puz$ + "x x   x       x   x"
  291.         puz$ = puz$ + "x x   xxx   x x xxx"
  292.         puz$ = puz$ + "x           x     x"
  293.         puz$ = puz$ + "x xxx xxxxx xxx x x"
  294.         puz$ = puz$ + "x   x   x       x x"
  295.         puz$ = puz$ + "xxx x   x   x   x x"
  296.         puz$ = puz$ + "x           x     x"
  297.         puz$ = puz$ + "x   xxx x xxx xxx x"
  298.         puz$ = puz$ + "x     x x         x"
  299.         puz$ = puz$ + "xxx   x xxx     x x"
  300.         puz$ = puz$ + "x       x       x x"
  301.         puz$ = puz$ + "x x x   x xxx   xxx"
  302.         puz$ = puz$ + "x x x             x"
  303.         puz$ = puz$ + "x x x xxx x   x   x"
  304.         puz$ = puz$ + "x         x   x   x"
  305.         puz$ = puz$ + "x xxx     x x xxx x"
  306.         puz$ = puz$ + "x  bx       x  yx x"
  307.         puz$ = puz$ + "xxxxxxxxxxxxxxxxxxx"
  308.     ELSEIF puzzle = 10 THEN
  309.         puz$ = "": grid = 21
  310.         puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxxx"
  311.         puz$ = puz$ + "xbx x     x   x     x"
  312.         puz$ = puz$ + "x x x     x   xxx   x"
  313.         puz$ = puz$ + "x x                 x"
  314.         puz$ = puz$ + "x x xxx x x     x   x"
  315.         puz$ = puz$ + "x       x x     x   x"
  316.         puz$ = puz$ + "x   x   x x     x xxx"
  317.         puz$ = puz$ + "x   x               x"
  318.         puz$ = puz$ + "x   x     x xxx x   x"
  319.         puz$ = puz$ + "x         x     x   x"
  320.         puz$ = puz$ + "xxx xxx xxxxx xxx xxx"
  321.         puz$ = puz$ + "x         x         x"
  322.         puz$ = puz$ + "x   xxx   x x xxx x x"
  323.         puz$ = puz$ + "x           x     x x"
  324.         puz$ = puz$ + "xxx xxx   x xxx   x x"
  325.         puz$ = puz$ + "x   x     x x     x x"
  326.         puz$ = puz$ + "x x x xxx x x   x x x"
  327.         puz$ = puz$ + "x x             x   x"
  328.         puz$ = puz$ + "x x     x x x   x x x"
  329.         puz$ = puz$ + "x       x x x     xyx"
  330.         puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxxx"
  331.     END IF
  332.     REDIM pdata$(grid - 1, grid - 1) 'from text to 2d array
  333.     m = 1
  334.     FOR y = 0 TO grid - 1
  335.         FOR x = 0 TO grid - 1
  336.             pdata$(x, y) = MID$(puz$, m, 1)
  337.             IF MID$(puz$, m, 1) = "y" THEN sx = x: sy = y
  338.             IF MID$(puz$, m, 1) = "b" THEN bx = x: by = y
  339.             m = m + 1
  340.         NEXT
  341.     NEXT
  342.     bs = _WIDTH \ grid
  343.     REDIM AI(grid, grid) AS d4way 'initialize to 0
  344.     FOR y = 0 TO grid - 1
  345.         FOR x = 0 TO grid - 1
  346.             AI(x, y).d1.x = 0
  347.             AI(x, y).d1.y = 0
  348.             AI(x, y).d2.x = 0
  349.             AI(x, y).d2.y = 0
  350.             AI(x, y).d3.x = 0
  351.             AI(x, y).d3.y = 0
  352.             AI(x, y).d4.x = 0
  353.             AI(x, y).d4.y = 0
  354.         NEXT
  355.     NEXT
  356.     'now load AI
  357.     FOR y = 1 TO grid - 2
  358.         FOR x = 1 TO grid - 2
  359.             'CLS
  360.             'LOCATE 1, 1: PRINT x, y
  361.             IF pdata$(x, y) = " " OR pdata$(x, y) = "b" THEN
  362.                 tx = x: ty = y: moved = 0: done = 0 'right  d1
  363.                 WHILE pdata$(tx + 1, ty) = " " OR pdata$(tx + 1, ty) = "y" OR pdata$(tx + 1, ty) = "b"
  364.                     tx = tx + 1: moved = 1
  365.                     IF tx = sx AND ty = sy THEN done = 1: EXIT WHILE
  366.                 WEND
  367.                 IF moved = 1 OR done = 1 THEN AI(x, y).d1.x = tx: AI(x, y).d1.y = ty
  368.  
  369.                 tx = x: ty = y: moved = 0: done = 0 'down arrow  d2
  370.                 WHILE pdata$(tx, ty + 1) = " " OR pdata$(tx, ty + 1) = "y" OR pdata$(tx, ty + 1) = "b"
  371.                     ty = ty + 1: moved = 1
  372.                     IF tx = sx AND ty = sy THEN done = 1: EXIT WHILE
  373.                 WEND
  374.                 IF moved = 1 OR done = 1 THEN AI(x, y).d2.x = tx: AI(x, y).d2.y = ty
  375.  
  376.                 tx = x: ty = y: moved = 0: done = 0 'left d3
  377.                 WHILE pdata$(tx - 1, ty) = " " OR pdata$(tx - 1, ty) = "y" OR pdata$(tx - 1, ty) = "b"
  378.                     tx = tx - 1: moved = 1
  379.                     IF tx = sx AND ty = sy THEN done = 1: EXIT WHILE
  380.                 WEND
  381.                 IF moved = 1 OR done = 1 THEN AI(x, y).d3.x = tx: AI(x, y).d3.y = ty
  382.  
  383.                 tx = x: ty = y: moved = 0: done = 0 'if up arrow d4
  384.                 WHILE pdata$(tx, ty - 1) = " " OR pdata$(tx, ty - 1) = "y" OR pdata$(tx, ty - 1) = "b"
  385.                     ty = ty - 1: moved = 1
  386.                     IF tx = sx AND ty = sy THEN done = 1: EXIT WHILE
  387.                 WEND
  388.                 IF moved = 1 OR done = 1 THEN AI(x, y).d4.x = tx: AI(x, y).d4.y = ty
  389.             END IF
  390.             'PRINT
  391.             'PRINT AI(x, y).d1.x, AI(x, y).d1.y
  392.             'PRINT AI(x, y).d2.x, AI(x, y).d2.y
  393.             'PRINT AI(x, y).d3.x, AI(x, y).d3.y
  394.             'PRINT AI(x, y).d4.x, AI(x, y).d4.y
  395.  
  396.             'PRINT
  397.             'INPUT "Ok  press eneter "; w$
  398.  
  399.         NEXT
  400.     NEXT
  401.     TruePath$ = "" 'clear last stuff
  402.     CLS
  403.     PRINT "Pathfinding... please wait"
  404.     _DISPLAY
  405.     explore bx, by, "D", ""
  406.     IF TruePath$ <> "" THEN
  407.         'CLS
  408.         'PRINT TruePath$ 'before trying to retrace it let's see what it looks like
  409.         'PRINT
  410.         'PRINT "press any but spacebar to continue... and again after pic"
  411.         '_AUTODISPLAY
  412.         'SLEEP
  413.         'drawit
  414.         update
  415.         REDIM tp$(0)
  416.         Split TruePath$, ",", tp$()
  417.         'CLS
  418.         FOR i = 0 TO UBOUND(tp$) - 2 STEP 3
  419.             x = VAL(tp$(i)): y = VAL(tp$(i + 1)): d$ = tp$(i + 2)
  420.             'PRINT " >"; x, y, d$;
  421.  
  422.             SELECT CASE d$
  423.                 CASE "R": arrow x * bs + bs + .25 * bs, y * bs + .5 * bs, 0, 1.25 * bs
  424.                 CASE "D": arrow x * bs + .5 * bs, y * bs + bs + .25 * bs, _PI / 2, 1.25 * bs
  425.                 CASE "L": arrow x * bs - .25 * bs, y * bs + .5 * bs, _PI, 1.25 * bs
  426.                 CASE "U": arrow x * bs + .5 * bs, y * bs - .25 * bs, _PI(3 / 2), 1.25 * bs
  427.             END SELECT
  428.         NEXT
  429.         _DISPLAY
  430.         soln& = _NEWIMAGE(_WIDTH, _HEIGHT, 32)
  431.         _PUTIMAGE , 0, soln&
  432.  
  433.     ELSE
  434.         CLS
  435.         PRINT "Sorry, did not find a path."
  436.         PRINT
  437.         PRINT "press any but spacebar to continue..."
  438.         _DISPLAY
  439.         SLEEP
  440.     END IF
  441.  
  442. ' using AI(x, y) dim'd as d4ways to bounce around the maze
  443. SUB explore (cx, cy, cdir$, cmyPath$) 'recursive explore until stuck in loop or hit target
  444.     IF TruePath$ <> "" THEN EXIT SUB
  445.  
  446.     'will this new test be better than looking for single repeating nodes?
  447.     IF duplicate(cmyPath$) THEN EXIT SUB ' a repeated line between 2 nodes
  448.  
  449.  
  450.     'debug watch ball
  451.     'CLS
  452.     'bx = cx: by = cy
  453.     'update
  454.     'PRINT "explore"; cx; cy; cdir$; ", "; cmyPath$
  455.     '_DISPLAY
  456.     'INPUT "Ok press eneter "; w$
  457.  
  458.  
  459.     x = cx: y = cy: dir$ = cdir$: myPath$ = cmyPath$ 'private copies of everything
  460.     IF x = sx AND y = sy THEN ' found our target add it to end of myPath$  and go home
  461.         TruePath$ = myPath$ + "," + TS$(x) + "," + TS$(y) 'stop found star
  462.         EXIT SUB 'yeah!
  463.     ELSE 'continue on unless we've been here before
  464.         IF myPath$ = "" THEN 'this is start point of myPath$ so can go any of 4 directions as long as AI(x, y) direction point is not 0,0
  465.             FOR i = 1 TO 4
  466.                 dr$ = MID$("RDLU", i, 1)
  467.                 myPath$ = TS$(x) + "," + TS$(y) + "," + dr$
  468.                 IF i = 1 THEN
  469.                     IF AI(x, y).d1.x <> 0 AND AI(x, y).d1.y <> 0 THEN
  470.                         explore AI(x, y).d1.x, AI(x, y).d1.y, "U", myPath$
  471.                         explore AI(x, y).d1.x, AI(x, y).d1.y, "D", myPath$
  472.                     END IF
  473.                 ELSEIF i = 2 THEN
  474.                     IF AI(x, y).d2.x <> 0 AND AI(x, y).d2.y <> 0 THEN
  475.                         explore AI(x, y).d2.x, AI(x, y).d2.y, "R", myPath$
  476.                         explore AI(x, y).d2.x, AI(x, y).d2.y, "L", myPath$
  477.                     END IF
  478.                 ELSEIF i = 3 THEN
  479.                     IF AI(x, y).d3.x <> 0 AND AI(x, y).d3.y <> 0 THEN
  480.                         explore AI(x, y).d3.x, AI(x, y).d3.y, "D", myPath$
  481.                         explore AI(x, y).d3.x, AI(x, y).d3.y, "U", myPath$
  482.                     END IF
  483.                 ELSEIF i = 4 THEN
  484.                     IF AI(x, y).d4.x <> 0 AND AI(x, y).d4.y <> 0 THEN
  485.                         explore AI(x, y).d4.x, AI(x, y).d4.y, "L", myPath$
  486.                         explore AI(x, y).d4.x, AI(x, y).d4.y, "R", myPath$
  487.                     END IF
  488.                 END IF
  489.             NEXT
  490.         ELSE 'there is one direction we can't
  491.             'find$ = TS$(x) + "," + TS$(y) ' this solves many puzzles but not all 6, 8, 10 bug out lost 9
  492.  
  493.             'find$ = TS$(x) + "," + TS$(y) + "," + dir$ 'still trying to get all puzzles solved  bugs out except for 6
  494.             'find$ = dir$ + "," + TS$(x) + "," + TS$(y) '<<<<<<<<<<<<<<<<< this is disaster! bugs out
  495.             'p = INSTR(myPath$, find$)
  496.             'IF p > 0 THEN
  497.             '    c = 1
  498.             '    WHILE p
  499.             '        c = c + 1
  500.             '        p = INSTR(p + 1, myPath$, find$)
  501.             '    WEND
  502.             '    IF c > 3 THEN EXIT SUB
  503.             'END IF
  504.             'ELSE 'carry on
  505.  
  506.  
  507.             'Have we been here before search my path for x, y, dir$
  508.             myPath$ = myPath$ + "," + TS$(x) + "," + TS$(y)
  509.             FOR i = 1 TO 4
  510.                 dr$ = MID$("RDLU", i, 1)
  511.                 IF i = 1 AND dir$ <> "U" AND dir$ <> "D" THEN
  512.                     IF AI(x, y).d1.x <> 0 AND AI(x, y).d1.y <> 0 THEN
  513.                         explore AI(x, y).d1.x, AI(x, y).d1.y, "D", myPath$ + "," + dr$
  514.                         explore AI(x, y).d1.x, AI(x, y).d1.y, "U", myPath$ + "," + dr$
  515.                     END IF
  516.                 ELSEIF i = 2 AND dir$ <> "L" AND dir$ <> "R" THEN
  517.                     IF AI(x, y).d2.x <> 0 AND AI(x, y).d2.y <> 0 THEN
  518.                         explore AI(x, y).d2.x, AI(x, y).d2.y, "L", myPath$ + "," + dr$
  519.                         explore AI(x, y).d2.x, AI(x, y).d2.y, "R", myPath$ + "," + dr$
  520.                     END IF
  521.                 ELSEIF i = 3 AND dir$ <> "U" AND dir$ <> "D" THEN
  522.                     IF AI(x, y).d3.x <> 0 AND AI(x, y).d3.y <> 0 THEN
  523.                         explore AI(x, y).d3.x, AI(x, y).d3.y, "U", myPath$ + "," + dr$
  524.                         explore AI(x, y).d3.x, AI(x, y).d3.y, "D", myPath$ + "," + dr$
  525.                     END IF
  526.                 ELSEIF i = 4 AND dir$ <> "L" AND dir$ <> "R" THEN
  527.                     IF AI(x, y).d4.x <> 0 AND AI(x, y).d4.y <> 0 THEN
  528.                         explore AI(x, y).d4.x, AI(x, y).d4.y, "R", myPath$ + "," + dr$
  529.                         explore AI(x, y).d4.x, AI(x, y).d4.y, "L", myPath$ + "," + dr$
  530.                     END IF
  531.                 END IF
  532.             NEXT
  533.         END IF
  534.     END IF
  535.     'END IF
  536.  
  537. SUB fcirc (CX AS INTEGER, CY AS INTEGER, R AS INTEGER, C AS _UNSIGNED LONG)
  538.     DIM Radius AS INTEGER, RadiusError AS INTEGER
  539.     DIM X AS INTEGER, Y AS INTEGER
  540.     Radius = ABS(R): RadiusError = -Radius: X = Radius: Y = 0
  541.     IF Radius = 0 THEN PSET (CX, CY), C: EXIT SUB
  542.     LINE (CX - X, CY)-(CX + X, CY), C, BF
  543.     WHILE X > Y
  544.         RadiusError = RadiusError + Y * 2 + 1
  545.         IF RadiusError >= 0 THEN
  546.             IF X <> Y + 1 THEN
  547.                 LINE (CX - Y, CY - X)-(CX + Y, CY - X), C, BF
  548.                 LINE (CX - Y, CY + X)-(CX + Y, CY + X), C, BF
  549.             END IF
  550.             X = X - 1
  551.             RadiusError = RadiusError - X * 2
  552.         END IF
  553.         Y = Y + 1
  554.         LINE (CX - X, CY - Y)-(CX + X, CY - Y), C, BF
  555.         LINE (CX - X, CY + Y)-(CX + X, CY + Y), C, BF
  556.     WEND
  557.  
  558. SUB ftri (x1, y1, x2, y2, x3, y3, K AS _UNSIGNED LONG)
  559.     DIM D AS LONG
  560.     STATIC a&
  561.     D = _DEST
  562.     IF a& = 0 THEN a& = _NEWIMAGE(1, 1, 32)
  563.     _DEST a&
  564.     _DONTBLEND a& '  '<<<< new 2019-12-16 fix
  565.     PSET (0, 0), K
  566.     _BLEND a& '<<<< new 2019-12-16 fix
  567.     _DEST D
  568.     _MAPTRIANGLE _SEAMLESS(0, 0)-(0, 0)-(0, 0), a& TO(x1, y1)-(x2, y2)-(x3, y3)
  569.  
  570. SUB star (x, y, rInner, rOuter, nPoints, angleOffset, K AS _UNSIGNED LONG)
  571.     ' x, y are same as for circle,
  572.     ' rInner is center circle radius
  573.     ' rOuter is the outer most point of star
  574.     ' nPoints is the number of points,
  575.     ' angleOffset = angle offset IN DEGREES, it will be converted to radians in sub
  576.     ' this is to allow us to spin the polygon of n sides
  577.  
  578.     pAngle = _PI(2) / nPoints: radAngleOffset = angleOffset
  579.     x1 = x + rInner * COS(radAngleOffset)
  580.     y1 = y + rInner * SIN(radAngleOffset)
  581.     FOR i = 0 TO nPoints - 1
  582.         x2 = x + rOuter * COS(i * pAngle + radAngleOffset + .5 * pAngle)
  583.         y2 = y + rOuter * SIN(i * pAngle + radAngleOffset + .5 * pAngle)
  584.         x3 = x + rInner * COS((i + 1) * pAngle + radAngleOffset)
  585.         y3 = y + rInner * SIN((i + 1) * pAngle + radAngleOffset)
  586.         ftri x1, y1, x2, y2, x3, y3, K
  587.         'triangles leaked
  588.         'LINE (x1, y1)-(x2, y2), K
  589.         'LINE (x2, y2)-(x3, y3), K
  590.         'LINE (x3, y3)-(x1, y1), K
  591.         x1 = x3: y1 = y3
  592.     NEXT
  593.     fcirc x, y, rInner, K
  594.  
  595. FUNCTION TS$ (n AS INTEGER) ' special for this app
  596.     TS$ = RIGHT$(STR$(n), 2)
  597.  
  598. ' so every eight chars is a node, if 2 nodes in a row repeat then stuck in loop
  599. FUNCTION duplicate (s$) ' path nodes have 2 char x, a comma, 2 char y a comma and a Letter = length of 7 and another comma
  600.     duplicate = -1
  601.     FOR i = 1 TO LEN(s$) STEP 8
  602.         test$ = MID$(s$, i, 16)
  603.         FOR j = i + 8 TO LEN(s$) STEP 8
  604.             IF test$ = MID$(s$, j, 16) THEN EXIT FUNCTION
  605.         NEXT
  606.     NEXT
  607.     duplicate = 0
  608.  
  609. SUB arrow (x0, y0, rAngle, lngth)
  610.     DIM x1, y1, x2, y2, i AS INTEGER
  611.     x2 = x0 - lngth * COS(rAngle)
  612.     y2 = y0 - lngth * SIN(rAngle)
  613.     drawLink x0, y0, .001 * lngth, x2, y2, .01 * lngth, &HFF00BB00
  614.     LINE (x0, y0)-(x2, y2), &HFF00BB00
  615.     x2 = x0 - .1 * lngth * COS(rAngle - .2 * _PI)
  616.     y2 = y0 - .1 * lngth * SIN(rAngle - .2 * _PI)
  617.     x1 = x0 - .1 * lngth * COS(rAngle + .2 * _PI)
  618.     y1 = y0 - .1 * lngth * SIN(rAngle + .2 * _PI)
  619.     ftri x0, y0, x1, y1, x2, y2, &HFFFF8800
  620.     FOR i = .8 * lngth TO lngth STEP 3
  621.         x1 = x0 - i * COS(rAngle)
  622.         y1 = y0 - i * SIN(rAngle)
  623.         x2 = x1 - .1 * lngth * COS(rAngle - .25 * _PI)
  624.         y2 = y1 - .1 * lngth * SIN(rAngle - .25 * _PI)
  625.         LINE (x1, y1)-(x2, y2), &HFF0000FF
  626.         x2 = x1 - .1 * lngth * COS(rAngle + .25 * _PI)
  627.         y2 = y1 - .1 * lngth * SIN(rAngle + .25 * _PI)
  628.         LINE (x1, y1)-(x2, y2), &HFF0000FF
  629.     NEXT
  630.  
  631. SUB drawLink (x1, y1, r1, x2, y2, r2, c AS _UNSIGNED LONG)
  632.     DIM a, a1, a2, x3, x4, x5, x6, y3, y4, y5, y6
  633.     a = _ATAN2(y2 - y1, x2 - x1)
  634.     a1 = a + _PI(1 / 2)
  635.     a2 = a - _PI(1 / 2)
  636.     x3 = x1 + r1 * COS(a1): y3 = y1 + r1 * SIN(a1)
  637.     x4 = x1 + r1 * COS(a2): y4 = y1 + r1 * SIN(a2)
  638.     x5 = x2 + r2 * COS(a1): y5 = y2 + r2 * SIN(a1)
  639.     x6 = x2 + r2 * COS(a2): y6 = y2 + r2 * SIN(a2)
  640.     fquad x3, y3, x4, y4, x5, y5, x6, y6, c
  641.  
  642. 'need 4 non linear points (not all on 1 line) list them clockwise so x2, y2 is opposite of x4, y4
  643. SUB fquad (x1 AS INTEGER, y1 AS INTEGER, x2 AS INTEGER, y2 AS INTEGER, x3 AS INTEGER, y3 AS INTEGER, x4 AS INTEGER, y4 AS INTEGER, c AS _UNSIGNED LONG)
  644.     ftri x1, y1, x2, y2, x4, y4, c
  645.     ftri x3, y3, x4, y4, x1, y1, c
  646.  
  647. SUB Split (SplitMeString AS STRING, delim AS STRING, loadMeArray() AS STRING)
  648.     DIM curpos AS LONG, arrpos AS LONG, LD AS LONG, dpos AS LONG 'fix use the Lbound the array already has
  649.     curpos = 1: arrpos = LBOUND(loadMeArray): LD = LEN(delim)
  650.     dpos = INSTR(curpos, SplitMeString, delim)
  651.     DO UNTIL dpos = 0
  652.         loadMeArray(arrpos) = MID$(SplitMeString, curpos, dpos - curpos)
  653.         arrpos = arrpos + 1
  654.         IF arrpos > UBOUND(loadMeArray) THEN REDIM _PRESERVE loadMeArray(LBOUND(loadMeArray) TO UBOUND(loadMeArray) + 1000) AS STRING
  655.         curpos = dpos + LD
  656.         dpos = INSTR(curpos, SplitMeString, delim)
  657.     LOOP
  658.     loadMeArray(arrpos) = MID$(SplitMeString, curpos)
  659.     REDIM _PRESERVE loadMeArray(LBOUND(loadMeArray) TO arrpos) AS STRING 'get the ubound correct
  660.  
  661.  

 
Title: Re: MAZEBALL: Tilt Maze puzzle clone
Post by: Dav on August 24, 2020, 09:11:54 am
That is amazing work, @bplus!  Man I wish I had math skill like that in my brain.   I'll have to put on a pot of coffee and sit and study your code. Thanks for commenting it. 

I was reading about the A* pathfinding method recently, trying to understand that. Have you made one of those in QB64? 

- Dav
Title: Re: MAZEBALL: Tilt Maze puzzle clone
Post by: bplus on August 24, 2020, 11:10:22 am
That is amazing work, @bplus!  Man I wish I had math skill like that in my brain.   I'll have to put on a pot of coffee and sit and study your code. Thanks for commenting it. 

I was reading about the A* pathfinding method recently, trying to understand that. Have you made one of those in QB64? 

- Dav

:) Yes I've been studying PathFinders for some time. Someone mentioned A* a long time ago that got me going on my own path.
https://www.qb64.org/forum/index.php?topic=410.0

There might be more up to date one with regular maze
https://www.qb64.org/forum/index.php?topic=1997.msg112246#msg112246

There are 9 pr 10 references with Advanced Search using bplus, regular search sucks!

I used what I learned for the 3rd type of Paint Fill that I adapted and showed Ken most recently.

Steve McNeill gave me an invaluable clue for more efficient algo early on. (Kinda like he helped with clue on String Math.) Plus he worked his own versions along with me, that encouragement very helpful. Thanks again @SMcNeill :)

I don't know if this is math so much as playing around allot with recursive procedures, more computer science in my way of categorizing things.

Can you tell I am kind of proud of yesterday's accomplishments?
Title: Re: MAZEBALL: Tilt Maze puzzle clone
Post by: Dav on August 25, 2020, 07:19:13 pm
Cool, thanks for the links, @bplus !  I have some studying to do, but it will have to wait a week - I have a couple composition/recording deadlines to meet and have to put programming on the back burner a little bit. 

Here's a little twist to the maze game - instead of reaching a star the goal is to color the whole maze.   Not always easy, especially if you start off in the wrong direction.  The graphics are simple, and could be drawn in QB64 easily, but I left it in as using images so I can update the images later to better stuff.

Thanks for your interest/help in my little puzzle games, bplus!

- Dav

Code: QB64: [Select]
  1. '=============
  2. 'MAZEPAINT.BAS v1.0
  3. '=============
  4. 'paint the maze puzzle game.
  5. 'Coded by Dav for QB64-GL 1.4, AUG/2020
  6.  
  7. 'Use arrows - move the ball to Paint the maze.
  8. 'Paint all of the maze to advance to next level.
  9.  
  10.  
  11. DEFINT A-Z
  12.  
  13. puzzle = 1 'start on level 1
  14. puzzlemax = 9 'there are 10 levels total
  15.  
  16.  
  17. 'load images...
  18. ball& = BASIMAGE1&
  19. wall& = BASIMAGE2&
  20. pass& = BASIMAGE3&
  21. face& = BASIMAGE6&
  22.  
  23. '======
  24. restart:
  25. '======
  26.  
  27. _TITLE "Level: " + STR$(puzzle) + " of" + STR$(puzzlemax)
  28.  
  29. GOSUB SetLevel
  30.  
  31. 'draw level
  32. CLS , _RGB(229, 237, 243)
  33. REDIM SHARED pdata$(grid, grid)
  34. bs = INT(_WIDTH / grid)
  35. m = 1
  36. FOR x = 0 TO grid - 1
  37.     FOR y = 0 TO grid - 1
  38.         a$ = MID$(puz$, m, 1)
  39.         pdata$(x + 1, y + 1) = a$
  40.         IF a$ = "x" THEN
  41.             _PUTIMAGE (y * bs + 1, x * bs + 1)-(y * bs + bs - 1, x * bs + bs - 1), wall&
  42.         END IF
  43.         IF a$ = "b" THEN
  44.             _PUTIMAGE (y * bs + 1, x * bs + 1)-(y * bs + bs - 1, x * bs + bs - 1), ball&
  45.             ballx = y * bs: bally = x * bs
  46.         END IF
  47.         m = m + 1
  48.     NEXT
  49.  
  50.  
  51.     'get user keypress...
  52.     DO: k$ = INKEY$: _AUTODISPLAY: LOOP UNTIL k$ <> ""
  53.     'Note: The _AUTODISPLAY up there is to make sure
  54.     'screen doesnt go blank if user minimizes program
  55.  
  56.     'if user presses right arrow....
  57.     IF k$ = CHR$(0) + CHR$(77) THEN
  58.  
  59.         'current ball location in x,y
  60.         cx = ballx / bs + 1: cy = bally / bs + 1
  61.         pdata$(cy, cx) = "." 'paint current square
  62.  
  63.         'check 1st to see if square is blocked...
  64.         IF pdata$(cy, cx + 1) = "x" THEN GOTO moved
  65.  
  66.         'Move ball right...
  67.         FOR x = cx + 1 TO grid + 1
  68.             'move it smoothly, by pixels...
  69.             FOR x2 = ((x - 1 - cx) * bs) TO ((x - cx) * bs) STEP 2
  70.                 pdata$(cy, x - 1) = "." 'mark square as painted
  71.                 'if come to wall...
  72.                 IF pdata$(cy, x) = "x" THEN
  73.                     ballx = ballx + x2
  74.                     SOUND 500, .1: GOTO moved
  75.                 END IF
  76.                 'Draw ball image....
  77.                 _PUTIMAGE (ballx + x2, bally)-(ballx + x2 + bs, bally + bs), ball&
  78.                 _DISPLAY
  79.                 _LIMIT 500
  80.             NEXT
  81.         NEXT
  82.     END IF
  83.  
  84.     'if left arrow...
  85.     IF k$ = CHR$(0) + CHR$(75) THEN
  86.  
  87.         cx = ballx / bs + 1: cy = bally / bs + 1
  88.  
  89.         pdata$(cy, cx) = "." 'mark current as painted
  90.  
  91.         'check 1st to see if if left square is wall
  92.         IF pdata$(cy, cx - 1) = "x" THEN GOTO moved
  93.  
  94.         'Move ball left...
  95.         FOR x = cx - 1 TO 0 STEP -1
  96.             FOR x2 = (x + 1 - cx) * bs TO (x - cx) * bs STEP -2
  97.                 pdata$(cy, x + 1) = "." 'mark square as painted
  98.                 IF pdata$(cy, x) = "x" THEN
  99.                     ballx = ballx + x2
  100.                     SOUND 500, .1
  101.                     GOTO moved
  102.                 END IF
  103.                 _PUTIMAGE (ballx + x2, bally)-(ballx + x2 + bs, bally + bs), ball&
  104.                 _DISPLAY
  105.                 _LIMIT 500
  106.             NEXT
  107.         NEXT
  108.     END IF
  109.  
  110.     'down arrow
  111.     IF k$ = CHR$(0) + CHR$(80) THEN
  112.         cx = ballx / bs + 1: cy = bally / bs + 1 'current x,y
  113.         pdata$(cy, cx) = "." 'mark current as painted
  114.         'check if blocked...
  115.         IF pdata$(cy + 1, cx) = "x" THEN GOTO moved
  116.         FOR y = cy + 1 TO grid + 1
  117.             FOR y2 = (y - 1 - cy) * bs TO (y - cy) * bs STEP 2
  118.                 pdata$(y - 1, cx) = "." 'mark square as painted
  119.                 IF pdata$(y, cx) = "x" THEN
  120.                     bally = bally + y2
  121.                     SOUND 500, .1
  122.                     GOTO moved
  123.                 END IF
  124.                 _PUTIMAGE (ballx, bally + y2)-(ballx + bs, bally + y2 + bs), ball&
  125.                 _DISPLAY
  126.                 _LIMIT 500
  127.             NEXT
  128.         NEXT
  129.     END IF
  130.  
  131.     'if up arrow
  132.     IF k$ = CHR$(0) + CHR$(72) THEN
  133.         cx = ballx / bs + 1: cy = bally / bs + 1 'current x,y
  134.         pdata$(cy, cx) = "." 'mark current as painted
  135.         'check if blocked...
  136.         IF pdata$(cy - 1, cx) = "x" THEN GOTO moved
  137.         FOR y = cy - 1 TO 0 STEP -1
  138.             pdata$(y + 1, cx) = "." 'mark square as painted
  139.             FOR y2 = (y + 1 - cy) * bs TO (y - cy) * bs STEP -2
  140.                 IF pdata$(y, cx) = "x" THEN
  141.                     bally = bally + y2
  142.                     SOUND 500, .1
  143.                     GOTO moved
  144.                 END IF
  145.                 _PUTIMAGE (ballx, bally + y2)-(ballx + bs, bally + y2 + bs), ball&
  146.                 _DISPLAY
  147.                 _LIMIT 500
  148.             NEXT
  149.         NEXT
  150.     END IF
  151.  
  152.     IF k$ = CHR$(32) THEN GOTO restart
  153.  
  154.     IF k$ = "+" THEN
  155.         puzzle = puzzle + 1: IF puzzle > puzzlemax THEN puzzle = 1
  156.         GOTO restart
  157.     END IF
  158.  
  159.     IF k$ = "-" THEN
  160.         puzzle = puzzle - 1: IF puzzle < 1 THEN puzzle = puzzlemax
  161.         GOTO restart
  162.     END IF
  163.  
  164.  
  165.     moved:
  166.  
  167.     IF k$ <> "" THEN _KEYCLEAR
  168.  
  169.     GOSUB CheckForDone
  170.  
  171.  
  172.  
  173. '===========
  174. CheckForDone:
  175. '===========
  176.  
  177. 'see if all of maze cleared...
  178. cleared = 1
  179. FOR x = 1 TO grid
  180.     FOR y = 1 TO grid
  181.         IF pdata$(x, y) = " " THEN cleared = 0
  182.     NEXT
  183.  
  184. IF cleared = 1 THEN
  185.     SOUND 5000, .7
  186.     _PUTIMAGE (160, 210), pass&: _DISPLAY
  187.     _DELAY 2
  188.     puzzle = puzzle + 1
  189.     'If that was last level...
  190.     IF puzzle > puzzlemax THEN
  191.         'show smiley face
  192.         _PUTIMAGE (100, 100)-(500, 500), face&: _DISPLAY
  193.         'play happy music
  194.         PLAY "o4l8gfedcal4gl8fgabo5co4gl4el8defedefgagabl4o5co4c"
  195.         PLAY "o3l8co2l16gf#gl8g#gpbo3c"
  196.         _DELAY 6
  197.         puzzle = 1
  198.     END IF
  199.     GOTO restart
  200.  
  201.  
  202.  
  203. '=======
  204. SetLevel:
  205. '=======
  206.  
  207. 'x is the wall, b is ball
  208. IF puzzle = 1 THEN
  209.     puz$ = "": grid = 12
  210.     puz$ = puz$ + "xxxxxxxxxxxx"
  211.     puz$ = puz$ + "xxxxxxxxxxxx"
  212.     puz$ = puz$ + "x       x  x"
  213.     puz$ = puz$ + "x x        x"
  214.     puz$ = puz$ + "x          x"
  215.     puz$ = puz$ + "x          x"
  216.     puz$ = puz$ + "x  x       x"
  217.     puz$ = puz$ + "xb       x x"
  218.     puz$ = puz$ + "xx         x"
  219.     puz$ = puz$ + "xxxxxxxxxxxx"
  220.     puz$ = puz$ + "xxxxxxxxxxxx"
  221.     puz$ = puz$ + "xxxxxxxxxxxx"
  222.  
  223.  
  224. 'x is the wall, b is ball
  225. IF puzzle = 2 THEN
  226.     puz$ = "": grid = 13
  227.     puz$ = puz$ + "xxxxxxxxxxxxx"
  228.     puz$ = puz$ + "xxxxxxxxxxxxx"
  229.     puz$ = puz$ + "xb x  xx    x"
  230.     puz$ = puz$ + "x     x   x x"
  231.     puz$ = puz$ + "x     x   x x"
  232.     puz$ = puz$ + "x           x"
  233.     puz$ = puz$ + "x   x       x"
  234.     puz$ = puz$ + "xxx x   x   x"
  235.     puz$ = puz$ + "x   xx  xx  x"
  236.     puz$ = puz$ + "x           x"
  237.     puz$ = puz$ + "x   xx     xx"
  238.     puz$ = puz$ + "xxxxxxxxxxxxx"
  239.     puz$ = puz$ + "xxxxxxxxxxxxx"
  240.     puz$ = puz$ + "xxxxxxxxxxxxx"
  241.  
  242. IF puzzle = 3 THEN
  243.     puz$ = "": grid = 13
  244.     puz$ = puz$ + "xxxxxxxxxxxxx"
  245.     puz$ = puz$ + "xx         xx"
  246.     puz$ = puz$ + "x         x x"
  247.     puz$ = puz$ + "x x         x"
  248.     puz$ = puz$ + "xx       x  x"
  249.     puz$ = puz$ + "x  x       xx"
  250.     puz$ = puz$ + "x       x   x"
  251.     puz$ = puz$ + "x   x       x"
  252.     puz$ = puz$ + "x      xx   x"
  253.     puz$ = puz$ + "x    x      x"
  254.     puz$ = puz$ + "xbx       xxx"
  255.     puz$ = puz$ + "xxxxxxxxxxxxx"
  256.     puz$ = puz$ + "xxxxxxxxxxxxx"
  257.  
  258. IF puzzle = 4 THEN
  259.     puz$ = "": grid = 13
  260.     puz$ = puz$ + "xxxxxxxxxxxxx"
  261.     puz$ = puz$ + "xbx       x x"
  262.     puz$ = puz$ + "x x  x    x x"
  263.     puz$ = puz$ + "x xxxx xxxx x"
  264.     puz$ = puz$ + "x      x    x"
  265.     puz$ = puz$ + "xx       xx x"
  266.     puz$ = puz$ + "x     xx xx x"
  267.     puz$ = puz$ + "x      x    x"
  268.     puz$ = puz$ + "x xxxx xxxx x"
  269.     puz$ = puz$ + "x x  x    x x"
  270.     puz$ = puz$ + "x x       x x"
  271.     puz$ = puz$ + "xxxxxxxxxxxxx"
  272.     puz$ = puz$ + "xxxxxxxxxxxxx"
  273.  
  274. IF puzzle = 5 THEN
  275.     puz$ = "": grid = 16
  276.     puz$ = puz$ + "xxxxxxxxxxxxxxxx"
  277.     puz$ = puz$ + "xxxxxxxxxxxxxxxx"
  278.     puz$ = puz$ + "x   x    x     x"
  279.     puz$ = puz$ + "x   x         xx"
  280.     puz$ = puz$ + "x    x   x  x  x"
  281.     puz$ = puz$ + "x    x      x  x"
  282.     puz$ = puz$ + "xx        xx   x"
  283.     puz$ = puz$ + "x    xx   x    x"
  284.     puz$ = puz$ + "x            xxx"
  285.     puz$ = puz$ + "x       xx x   x"
  286.     puz$ = puz$ + "x x   x xx     x"
  287.     puz$ = puz$ + "x xx  x   x  xxx"
  288.     puz$ = puz$ + "xbx       x xxxx"
  289.     puz$ = puz$ + "xxxxxxxxxxxxxxxx"
  290.     puz$ = puz$ + "xxxxxxxxxxxxxxxx"
  291.     puz$ = puz$ + "xxxxxxxxxxxxxxxx"
  292.  
  293. IF puzzle = 6 THEN
  294.     puz$ = "": grid = 16
  295.     puz$ = puz$ + "xxxxxxxxxxxxxxxx"
  296.     puz$ = puz$ + "xxbxxxxxxxx  xxx"
  297.     puz$ = puz$ + "xx xx        xxx"
  298.     puz$ = puz$ + "xx xx xxxxx  xxx"
  299.     puz$ = puz$ + "xx xx xx   xxxxx"
  300.     puz$ = puz$ + "xx    xx x xxxxx"
  301.     puz$ = puz$ + "xx     x x xxxxx"
  302.     puz$ = puz$ + "xxx    x    xxxx"
  303.     puz$ = puz$ + "xxx         xxxx"
  304.     puz$ = puz$ + "xxx         xxxx"
  305.     puz$ = puz$ + "xxx     x   xxxx"
  306.     puz$ = puz$ + "xxx     x   xxxx"
  307.     puz$ = puz$ + "xxx  x  xxxxxxxx"
  308.     puz$ = puz$ + "xxx  x  xxxxxxxx"
  309.     puz$ = puz$ + "xxx  x  xxxxxxxx"
  310.     puz$ = puz$ + "xxxxxxxxxxxxxxxx"
  311.  
  312. IF puzzle = 7 THEN
  313.     puz$ = "": grid = 20
  314.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxx"
  315.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxx"
  316.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxx"
  317.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxx"
  318.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxx"
  319.     puz$ = puz$ + "xxx     b     x    x"
  320.     puz$ = puz$ + "x          x     x x"
  321.     puz$ = puz$ + "x x    x     xxx x x"
  322.     puz$ = puz$ + "x xxx            x x"
  323.     puz$ = puz$ + "x x    x x  x      x"
  324.     puz$ = puz$ + "x x  x      xx     x"
  325.     puz$ = puz$ + "x          xx   x  x"
  326.     puz$ = puz$ + "x     x            x"
  327.     puz$ = puz$ + "x     x            x"
  328.     puz$ = puz$ + "x  x    x   x   x  x"
  329.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxx"
  330.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxx"
  331.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxx"
  332.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxx"
  333.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxx"
  334.  
  335. IF puzzle = 8 THEN
  336.     puz$ = "": grid = 20
  337.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxx"
  338.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxx"
  339.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxx"
  340.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxx"
  341.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxx"
  342.     puz$ = puz$ + "x x     b  xx      x"
  343.     puz$ = puz$ + "x          x       x"
  344.     puz$ = puz$ + "x x xxx  xxx xxxx  x"
  345.     puz$ = puz$ + "x     x        xx xx"
  346.     puz$ = puz$ + "x   xxx  xx        x"
  347.     puz$ = puz$ + "x   x        x     x"
  348.     puz$ = puz$ + "x   xx   x  xx  xx x"
  349.     puz$ = puz$ + "x               x  x"
  350.     puz$ = puz$ + "x      x    xxx    x"
  351.     puz$ = puz$ + "xx     x   xx     xx"
  352.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxx"
  353.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxx"
  354.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxx"
  355.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxx"
  356.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxx"
  357.  
  358. IF puzzle = 9 THEN
  359.     puz$ = "": grid = 20
  360.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxx"
  361.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxx"
  362.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxx"
  363.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxx"
  364.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxx"
  365.     puz$ = puz$ + "x                xxx"
  366.     puz$ = puz$ + "x xxxxxx xxxxxxx xxx"
  367.     puz$ = puz$ + "x xxxxx   xxxxxx   x"
  368.     puz$ = puz$ + "x xxxxx   xxxxxx x x"
  369.     puz$ = puz$ + "x xxxxx b        x x"
  370.     puz$ = puz$ + "x xxxxxxxxxxxxxxxx x"
  371.     puz$ = puz$ + "x xxxxxxxxxxxxxxxx x"
  372.     puz$ = puz$ + "x xxxxx          x x"
  373.     puz$ = puz$ + "x         xxxxx    x"
  374.     puz$ = puz$ + "xxxxxx     xxxx xx x"
  375.     puz$ = puz$ + "xxxxxxxx        xx x"
  376.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxx"
  377.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxx"
  378.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxx"
  379.     puz$ = puz$ + "xxxxxxxxxxxxxxxxxxxx"
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386. FUNCTION BASIMAGE1& 'BALL.BMP
  387.     v& = _NEWIMAGE(191, 193, 32)
  388.     DIM m AS _MEM: m = _MEMIMAGE(v&)
  389.     A$ = ""
  390.     A$ = A$ + "haIkMVoN=M]67_o_DE[FUZgRJ>V9VM=FDS=J5a#44?RiDSG^RWHhJXXXD:]D"
  391.     A$ = A$ + "JMEZYJ^EkoA[[?;?K=RLSCBfkmkJOfOoQ??iTTSS\F[_kmnMm^N7^dV6]kB2"
  392.     A$ = A$ + "Q#842Q#842Q#842Q#842Q#84i#n[;G_k_namhNj5g]kYo`^Loa5fQk9OgfL?"
  393.     A$ = A$ + "iLKacS?kVOY_b_kg?ofm_?NooiUZcoIHmh#8J>#SS6n^7MU^KDolMogM=Cg5"
  394.     A$ = A$ + "ghXLWK]S`M\E<4gQGfPLkYlBLkjck[KkOF_MKMN?W=?WNjfbLkUoW]cig7GM"
  395.     A$ = A$ + ";XO^3\h1hOoWNe3go_o:KKb^[^[?eM[3^4gm?iJmGOHmhET_Pk1oXc\9_nkV"
  396.     A$ = A$ + "7X2gKl6^GRmFAomji=<cNhZIJMc]l9m?LE>Q?dEnHj\K1S^C^iEJ7McMh_WK"
  397.     A$ = A$ + "F3mMO1cL8M`3_Nf3kml_W?ODMbonGlhkRoOoZVJGM[IjMgOM2Gk`e6=logK\"
  398.     A$ = A$ + "g_`O=7oMac;\NNBDl0fNLoCDSkjeGVk\[YDgAZJ`^eoYO\[jYlA^I<X>hVHO"
  399.     A$ = A$ + "O[GijPdP9e_fkFdhn0oeHl<5NnbEgidMgi`Ej]Obji=Af3d>=DSamL[H\MfO"
  400.     A$ = A$ + "oiYDBkMS_g]c4]NcahjeKjV#OJWKj3lMLU=R>jFjo\;^omGd?_]CH_d_^o5h"
  401.     A$ = A$ + "nS_OWV?g:2CNlgF[gfQ8md:Vl7i]m`JMM[5^FU[IaF<nNdogkh[bliIAH`M>"
  402.     A$ = A$ + "BE^;EkHmj3\;7KH\FcVD`c[hj1f?Bd?CkK>O2kKUeOfk8f^7RfbT4`nY[Mfm"
  403.     A$ = A$ + "doJlM4?_cje2Ab2nY9Jm7kQiNPF[3]6fW0nHRWk5Mo0MV25GPM^H_;[gh[`?"
  404.     A$ = A$ + "I0_Sij^#2fK3n?UGS?C]NmBdf1o`ORZ7ZKnSlmmgScJ=FF0lGd>:[?^[\e9j"
  405.     A$ = A$ + "?_>[G355>\o=f3kiGg8lWE:nj`JmDF3>W]Eo9Mm5OomnjEKnjZXi1KEoa_LL"
  406.     A$ = A$ + "^jGH9NOaK]6ZH0^6h#E>#g3oVeKnj[hEQcco<eDZonl5cnYd:h\[aGHLna\O"
  407.     A$ = A$ + "0>[K[Gc5?o<YR^oTdm9;hODnj]?dB=OM??3WA?g[Wh6cJ=AN3Rg>f?lMoZU["
  408.     A$ = A$ + "W1TbP=>oBMce7CIjNmY?hc<doAO?a`]eJRRM`WKXiaOd4?`F[14>OlcAl]Nc"
  409.     A$ = A$ + "mG^ijSRA`o=47a7Mi3f]YIeSLCl7TEPHYVLGPc?Da8Al2aM2i`TEa:_X`PL#"
  410.     A$ = A$ + "SH3dJmBa04O9<GBlg8MOfPXh3Bf0efPWQR?k]NmDdbPh1We?bCO[e#I=`_1T"
  411.     A$ = A$ + "[f=lLe5I;86Z8^1El#dbPlWRLdNZmo]=O=DdjQh:iWfnDlnY`J=EX3ncQHYU"
  412.     A$ = A$ + "l_fje=Al0n05o0amoU=#==\_FRiH\EDg__h2R;JRa#UK0==\WFZ7=F_>9B6`"
  413.     A$ = A$ + "?MLO=\oAa1ac1OgOi=?N__a\NmATl\_5=0oj]ej^#0R=LZ1IF_V8B?8NXcce"
  414.     A$ = A$ + "#^OkHEk>Ie3Ci<N>Ue=S^k[KYF[3]P[EgLlel<[G34f0eDAR1mlFMQPc]ZZ9"
  415.     A$ = A$ + "ZmeVg1oOBnGTGZAF<>9_78OX]N^GH?X3h\<]FGVdHml\8<QkmS??\FOVdJOR"
  416.     A$ = A$ + "oN[W[5Q5T7`\ggRAKoYWjdDm[1QXY`JmJL2mO7>C3[WC5Q=TW6LnnF[GSC8o"
  417.     A$ = A$ + "JI?mF?g:2O8fOXF4H]V]]2a^TecUR\7\W#ZYTF[OKCDkHmm##[W;5I;8f^XW"
  418.     A$ = A$ + "9I^n]E2e_ARK?[W75ICR\A>[eW`8758GKEMSBdJ9ZVaWe\moWgaDeml5a6F["
  419.     A$ = A$ + "WK9#<:YJ0^8>PhO9[dO8_bfV\bgFA\1m7:O=_:0df=7Ln]LMZlU_8>QHNPlm"
  420.     A$ = A$ + "`JmMc1eR;I[S8Yh1WJMV[aK:\NNADL3a6`aFa#<GWooCkCm`gji8Aa9H7=aj"
  421.     A$ = A$ + "Yejl63iSRjWQRT6Re7R7h#Z6W`i?XcaBTFl`C_AcelAfj84Y5TWgLnAF[kSd"
  422.     A$ = A$ + "n:Ne4Y5AegO[em0Wk0fQImLR8o0egL;]kag3\NVMnT[=F?G8bGP?O8n1\:F7"
  423.     A$ = A$ + "hLf8VedIh:\0b]a[\e9JcmnENY8<4ZUUFUO;7YZ1;kM4V2mT:;dndCP\N\;b"
  424.     A$ = A$ + "g#o5o>7^bDEgCo3FiVR`JXol#olRNCHJXk9n5H?^Z_0921lifB:e;7a_B7NI"
  425.     A$ = A$ + "3j5iCY#H9AfOT6JOZi>Z^i;2=B3]?oo#NTImHE8RPjMIJD;C\NL:4=V]>_NW"
  426.     A$ = A$ + "heb4ZgDLN2F?F5R62e61RaQTDkOk3]DEol517;HdMbg7[BJKNdIi:2=Xn8Dk"
  427.     A$ = A$ + "\kIRZkYWPbeHF?F5R62nKWLI?YdmLfI4kJb7?R#4bIfT:VnOlIg\_OH[cdB4"
  428.     A$ = A$ + "ZL[3^T4AkOoCDSkc7U\gA4fT4niWJ3QZiJR#Wh>^>aFO[7C2AQBLK_SeS7Qh"
  429.     A$ = A$ + "eAM;XOn_6WJoknE;glaU#ljPhIV_6WJO[7C2AQ#=C[K^jGH9Bk;bM`iK5gmV"
  430.     A$ = A$ + "JnLS\UB82E8V3RklGW?GE?B4Q>TkjE>Q?<fen:n=5Q>4G3L_ohDkcn7DN::2"
  431.     A$ = A$ + "Mh\GiNoaYfO?UGRg>:[7K2AcaTjGkMcNHa[f7oVZn6Z8dIlm^Mnj3KLZmIO^"
  432.     A$ = A$ + "Dco]N\94=74Sa4SmaYfOccYW:O]4I2VHOO;Ym5iBTfGTG9^endGQTmnR\0h["
  433.     A$ = A$ + "7]GGAN4laOLZmYNDYj]_8d99la9aaVdnR#7\eWN#JLZmicMmOj7KnHC8J>`g"
  434.     A$ = A$ + "ndoASK]?em:[7K2Ac1fk4gab6O^:6V5Q>U=R>6keW=nLEmGF4jTDi^R#4jPO"
  435.     A$ = A$ + "hYFl;]_8_ajVAgM7Ha38FenD[[\NL94_>RfCJLZmOdIfTiS;QX#9>enDO?]N"
  436.     A$ = A$ + "l845:aYfgKgcAZbkoD[7G2Aca3>ejRM]_Z1iR\0oa5fA\[momc_MO]JH2mYM"
  437.     A$ = A$ + "V?n4R63aa6fV4gjNPj#>W_e<7B7<OL:4=6Z=9dKPB2]?LRZ7ZjeLRP4>G[TB"
  438.     A$ = A$ + "g3GKgcBeY7A`1eTWm]Xhm<]J<dgQD]9D4JP?HXogVTJOf_;WI\eSEQXQP]8o"
  439.     A$ = A$ + "BMc=AenPeSCQXa#]Dh^7MUYRfGkgE4JTdjn8]_Z9cR#Sd#kOoC^Fon:dIL92"
  440.     A$ = A$ + "1XGCLcmGNZXmOj5g]kjkIN:fN411hKc7n=[?Edn`SofJmi3_eSKAn6Z3EGN;"
  441.     A$ = A$ + "C`7c1YUf78?1dmn5F2nLQh[?=em`oI93dEnHj\iSOAn5j7:Y]^7^FMcaMlE>"
  442.     A$ = A$ + "D]WGQ9#M1Wh;c2]o]>hBLGZfaj[5FF??8bO#\eHQ^?2Ra1EOV5Y=d;AaGS9I"
  443.     A$ = A$ + "<;G8#]:TJ0Zec7Rl3E<f>k^gG_JCemNNVM?dGF\Nn#T?0oJB>DI^^oILk3]D"
  444.     A$ = A$ + "cW?4i7f`<kQkbKNlV[kQojbekeobO?RdROkHEK^^_Q#LT>_BkXic;RRG8WLO"
  445.     A$ = A$ + "bg]=cej=VS^l1k[ocF?o8:>Qj`#BWC^]FDM;DTT#O_jZkLjV[cK:8NRh_Aja"
  446.     A$ = A$ + "SF??9:>QmEJ]>_idok]RnkcKN[WW45?#^XoTc]5ceg_FZM\b^OA\1a<CLg?9"
  447.     A$ = A$ + "BB\NnBDl0jnkMlEI^V^UXmEMlAdFQl3iRKLDV[WK9#<^mco[YYLKAdVPlS:8"
  448.     A$ = A$ + "RKWF1kX\nXmm:JE\Xam1^7Nj=J^6^ebIZYDe?f5]H8Ne8>1\FofFPLYl^Oeb"
  449.     A$ = A$ + "mS5[W?5I;2IOiGXP]oTCaS[G_YicWR`7R9bK\g_88SKWF3F?O:b6DcdjVo[F"
  450.     A$ = A$ + "[GSCXF^aHBakPX#`JmJB`QGfPD]lDl:`m49?4]FOVT#oIWHN#iiRXQ\Wb;9H"
  451.     A$ = A$ + "b5[T4R9YE=e^jVJoOKcWc5f3n0YH`W>5:TcIDGgdmocg`m0YNJJ]N<]i:KMR"
  452.     A$ = A$ + "^5?n^Hnl_`FX^6K]Fd2XG][JKEnSXcjlYo`^<G3J9HkSdoi7`W>dKhBcJVOX"
  453.     A$ = A$ + "2Wk;noAm[ml3gjP;bLMG8aYGm`miS\e[;RT1ZKbT7:iMkLJ:`gWDKWEMM^h6"
  454.     A$ = A$ + "[eIQ<ojnGPi[?Rh3^G_dl56d;k#oC=hbje=AlP_G=40J[\2AehF]7h\9Aa]U"
  455.     A$ = A$ + "ejX\:<gANOAmXcjeBAQ3g_RN`LF>W331`6XS]RQhZN:ZVo4jPO:hNEgmX[dL"
  456.     A$ = A$ + "MCa2gXnik>kJ:e_70UoGQ9dkMX^:lmK8KECAb:LU]=IGm;\4cGW5_<d[??DU"
  457.     A$ = A$ + "3dLmAa<oiUZcWkk<OCNl[W1H;4;Rd_elmm]LJ<YUf#N<Omj;Ci0OPPejQl8L"
  458.     A$ = A$ + "=`?_SYj?o4i;XdQXh>??U_9Q:4?PWK]S`Ef8Do>:YQH`TJ]7_fjeMaO3a3:a"
  459.     A$ = A$ + "78mkdi?bggLMBa2llDZomlJOnF70[eRG5\1RcD1m_f7#l0e5Cl[0aU0nJ`je"
  460.     A$ = A$ + "Ha[7^75[M4k\F[ObJ#NE5e_`]NMDdbQJ1JdJ9jO5G#5VVWn4;n>PjNOF]nO;"
  461.     A$ = A$ + "nK`F8NV=e1V:WPb?b6c<6D7liA8e87UCE5W#^a7]Ncmf:O<M>gFW4iiPXggi"
  462.     A$ = A$ + "lkSkWfnDLgl0E8kic1#laMWSDe;j7fi]j44a55kOUNSCFZGF9RGX_Xf`W7#l"
  463.     A$ = A$ + "RB]QdJmILZcIl\_5=0ogS==5;egKAl0e:JbG<ZI:Am:Y\^m#lg?eeKR_B>oK"
  464.     A$ = A$ + "I;_X#QlW?B7am=Y6jaN42]c>HF3mMmoMQ6?jWmPC]>__^\N>DTMiAWIC^K^o"
  465.     A$ = A$ + "bmn0i0;N0nW9`im#<DHM<4QoI`V6b?`6ZkE^S8BJhj2Z[^=D?RODa7Bh35lW"
  466.     A$ = A$ + ":aJ:aH1nEQN^:fQ`N[ij6PG3DGZigS]FLM5a<6a5o6VI?N9M=#LT9O_;218F"
  467.     A$ = A$ + "R8Vj8g287c^FMcaG[MiI5GHmSd7[MDk]8N;>n:7ZgoB`AZji`[iWc_WNC9_O"
  468.     A$ = A$ + "nLoa_LLNOa`W7fZS?IDLb;42Q#842Q#842Q#842Q#842Q8?`o3#P%%L2"
  469.     btemp$ = ""
  470.     FOR i& = 1 TO LEN(A$) STEP 4: B$ = MID$(A$, i&, 4)
  471.         IF INSTR(1, B$, "%") THEN
  472.             FOR C% = 1 TO LEN(B$): F$ = MID$(B$, C%, 1)
  473.                 IF F$ <> "%" THEN C$ = C$ + F$
  474.             NEXT: B$ = C$: END IF: FOR j = 1 TO LEN(B$)
  475.             IF MID$(B$, j, 1) = "#" THEN
  476.         MID$(B$, j) = "@": END IF: NEXT
  477.         FOR t% = LEN(B$) TO 1 STEP -1
  478.             B& = B& * 64 + ASC(MID$(B$, t%)) - 48
  479.             NEXT: X$ = "": FOR t% = 1 TO LEN(B$) - 1
  480.             X$ = X$ + CHR$(B& AND 255): B& = B& \ 256
  481.     NEXT: btemp$ = btemp$ + X$: NEXT
  482.     btemp$ = _INFLATE$(btemp$)
  483.     _MEMPUT m, m.OFFSET, btemp$: _MEMFREE m
  484.     BASIMAGE1& = _COPYIMAGE(v&): _FREEIMAGE v&
  485.  
  486.  
  487. FUNCTION BASIMAGE2& 'wall.bmp
  488.     v& = _NEWIMAGE(50, 50, 32)
  489.     DIM m AS _MEM: m = _MEMIMAGE(v&)
  490.     A$ = ""
  491.     A$ = A$ + "haIkJ7C3023504e68QZ0L1VZ>R9<1NPT^bF=#a0T#78Yg7^QW0^m[NFJe?Re"
  492.     A$ = A$ + "lBXI7\LG7cYY#XW>>fg#c>Ha>Ha>Ha>Ha>Ha>Ha>Ha>Ha>Ha>Ha>Ha>Ha>Ha"
  493.     A$ = A$ + ">Ha>Ha>Ha>Ha>Ha>Hi_eA4lD7ATM`bXonj=M1L<9%%h1"
  494.     btemp$ = ""
  495.     FOR i& = 1 TO LEN(A$) STEP 4: B$ = MID$(A$, i&, 4)
  496.         IF INSTR(1, B$, "%") THEN
  497.             FOR C% = 1 TO LEN(B$): F$ = MID$(B$, C%, 1)
  498.                 IF F$ <> "%" THEN C$ = C$ + F$
  499.             NEXT: B$ = C$: END IF: FOR j = 1 TO LEN(B$)
  500.             IF MID$(B$, j, 1) = "#" THEN
  501.         MID$(B$, j) = "@": END IF: NEXT
  502.         FOR t% = LEN(B$) TO 1 STEP -1
  503.             B& = B& * 64 + ASC(MID$(B$, t%)) - 48
  504.             NEXT: X$ = "": FOR t% = 1 TO LEN(B$) - 1
  505.             X$ = X$ + CHR$(B& AND 255): B& = B& \ 256
  506.     NEXT: btemp$ = btemp$ + X$: NEXT
  507.     btemp$ = _INFLATE$(btemp$)
  508.     _MEMPUT m, m.OFFSET, btemp$: _MEMFREE m
  509.     BASIMAGE2& = _COPYIMAGE(v&): _FREEIMAGE v&
  510.  
  511.  
  512. FUNCTION BASIMAGE3& 'PASS.BMP
  513.     v& = _NEWIMAGE(324, 155, 32)
  514.     DIM m AS _MEM: m = _MEMIMAGE(v&)
  515.     A$ = ""
  516.     A$ = A$ + "haIkM^7eFEEW7WG^8gD#05O55443#1a;1Z##PPY6VJjb[YYFj8Y>RCVFfXUF"
  517.     A$ = A$ + "jTY>#Y;<]1;]\\Y<_ARBZ8V>PGHQiUBdA6U9CId9=6eFSogIV?kmjg37Nhmi"
  518.     A$ = A$ + "iiLfkciimfg_[eWU;4>km_mi\gOOfg>kC?jA?BjQ#8427BBBBMgUl3UTTTlB"
  519.     A$ = A$ + "nQBBBBN9o#9999_TOXTTTTGb?DBBBb;i7:999iUl3UTTTlBnQBBBBNU7o`fk"
  520.     A$ = A$ + "m<^#84QRl352AgMJYUFBjE?KYdl37fPjObh7i#BVjhgYTY?aA842A7F6HojC"
  521.     A$ = A$ + "b0jK_;=o#l2?jY?fTcmXVLbGm4WR#84MHYeQ<0GOh:;o#jG8NQ;Lnc<i7MAO"
  522.     A$ = A$ + ":Q#8j`bXKM#9kl#7HYi7BO#agUlJYGiA942A7FfSMIkC6i>^Mb?D84MkAnQ2"
  523.     A$ = A$ + "Q#hAnQ2Q#hAnQ2Q#hAnQ2Q#hAnQ2Q#hAnQ2Q#hAnQ2Q#hAnQ2Q#hAnQ2Q#hA"
  524.     A$ = A$ + "nQ2Q#hAnQ2Q#hAnQ2Q#hAnQ2Q#hAnQ2Q#hAnQ2Q#hAnQ2Q#hAnQ2Q#hAnQ2Q"
  525.     A$ = A$ + "#hAnQ2Q#hAnQ2Q#hAnQ2Q#hAnQ2Q#hAnQ2Q#hAnQ2Q#hAnQ2Q#hAnQ2Q#hAn"
  526.     A$ = A$ + "Q2Q#hAnQ2Q#hYcPOh1__S<IPm[?EBc#XUFJY=CkAgjPR>];C8^kX7SFLF4aH"
  527.     A$ = A$ + "]N>UE:jkEa6?UE<VUh:VlY8ZgEDe9JV?Oj<h7^Oka>V<QA=dTadjPMaJNHW7"
  528.     A$ = A$ + "j0C6#Ok]SR>]cBN_K3OkR:^YnD\aH<aAFScmN<3;jH\N?WJ6eEZ>N6fPjOb^"
  529.     A$ = A$ + "^3K[[=Be`o6l;bC\=cmNGLagN]K3=IlSL81G_`R[653QL_X8ZgEDe9J6eGj<"
  530.     A$ = A$ + "j7B<bmd7nj?cTEmCnji6;F:Sd^NlXgdijZC4jeKa=e;96Gn2?eXRSbZ<B<Ng"
  531.     A$ = A$ + "GaW9ZHT[[N?WJFeEBG^`gQfMah9Uf;Lbkn>hl1=X<o\ggg?iEGeMUlGf`;Tl"
  532.     A$ = A$ + "AOhVJcfB_ok\QTo[omW9i?l`oh:aUAmR1kNAX?7\[?_?C]d8fj4I]mAgAo#R"
  533.     A$ = A$ + "aGna^S<Uge:Fhicml]>b2=][Wn_OmW?iOmbVG`G_5gcHBS`E_Wj0a47[KUgN"
  534.     A$ = A$ + "`aBmBKRaOegHNA5S?n?jRZDNiIdmm]?bfUj:eBhGQW4YKeNB3NPmeeok6eW#"
  535.     A$ = A$ + "j[4PGmOjiNTPSU?lmN[Tel[_VTQ^MmcA]RQldffd;^lOHUW3kcHgaPNVJ?;S"
  536.     A$ = A$ + "]>ASDmJG;o`67;43oR;mCk^oe<l3O[e]jT[oLWEb7lGNSP^nU_XCc5go`oQi"
  537.     A$ = A$ + "V<RQ]]9_h_M91U>oWon7f57?gm_hP^nj9:S4SghiO`^Hla_U;<Xda:[`Ml?N"
  538.     A$ = A$ + "h9geUO41i9FV??C[=]aekl5]a\E;?AK<WFO2;bhjmnc_Lb3NMWL=SQ#l3Ogg"
  539.     A$ = A$ + "HMEN><]mJW3b?cNFNcG`Lle9nom7;3E_feb?\aabELJ7TcKQOgZIdnieNjUV"
  540.     A$ = A$ + "<o?cNW\Qe^lP^NZ?ALOIWb1Tdj#6#bOlA^ePBW7kOI1^hhOkf^TP^nj9:S4S"
  541.     A$ = A$ + "Gha]o9khPkObS\hc>Xda:[`=LNcfi96b_ig\l3=mj[II9mKKJKo8jKX=GQ<V"
  542.     A$ = A$ + "AjOIA[ofOMS^OkX]RQ#l3AGiI<=gcQ[m_K6^i6h9naGL^^NkIiGoTWZ[N;eo"
  543.     A$ = A$ + ":3E_feb?\aabY>g9TLeWiW8if_T3[YdnQaN<Ua=lT7jjoR1MmgbGi#Lam9<["
  544.     A$ = A$ + "ailJ8m2AOW_hdCVjhgYTUM=WH#GOmT=nZ3mS?ZTQ\]m=i1^fC:Xdi\VgTZlL"
  545.     A$ = A$ + "2oO:kQlkm=Ko#dcmK^1WO4a>NBhSKcGXeg`gl?n4UFnch?Fb5>g]86Ra?lWl"
  546.     A$ = A$ + "e><Gj#LCoknM;i;W[[gNFN\cH?LSU?dOS\AZN][UOHSS5JcBK]Kk[NX=Uf?["
  547.     A$ = A$ + "m^_>glklc^T3?X[WahJcO8Yc6OiW<Xdi#foAilCSI^<[UX<B<Bkn][om9IYG"
  548.     A$ = A$ + "eW=XdQHdN>]PSIOCn1;H>^nmdI`?4I?[0bO6W<n9LOiiOPKZdcOVOc_aYNPK"
  549.     A$ = A$ + "aLZ5ZOhjObkeU6llTn7^RKlLbeeK?;Y]?o6i3mm?SL73IAe[M]l33;F:cf??"
  550.     A$ = A$ + "c_lZBjM_jYkg93A;n_Of^hVnI`hPNcGJE1U><V5fWFlkn5]X<B<bl<aNdPn6"
  551.     A$ = A$ + "5R>P9dJUWC<fN:kMVl3OeEMWEROjOfH7aP[\fZeJMS;JMoGma]5Nb43Qh7RV"
  552.     A$ = A$ + "hX7FB_jI;93Ok7#^mc\WU\N<h7bl9F6Z8mHTOHca?TlUaZ6cecL#il33L<Gf"
  553.     A$ = A$ + "nFUiT[XUl3g\Vg1<j:U1l2iN2kAVVUHmE\lWa>Ka#8b6c;S;IIOgS?GG[l3;"
  554.     A$ = A$ + "gH]c^O8mA<V[O#3HKLe[2A_bSo;MY1oF?cgLA;i7^IM17kniRo]Ygmdi5aN2"
  555.     A$ = A$ + "Tm>HcDWiWNRE^?bjZ4ZOX]WIHnohi#NTl3;gH]c^O8]?NSGHU1U6fh_hgYS9"
  556.     A$ = A$ + "6`?TiDZXEG=o`#O>Q^^cNVEnm;^O`hE3A\n5LoPmfINEjiaTHPe39DAlSOh]"
  557.     A$ = A$ + "NaOZLMMb?\LSe^2nQ?ob^aPB3K\?\6JQX[j;<m:mAUbKA[^JnQToOYSLb1M]"
  558.     A$ = A$ + "\6WFm<Fo:fgeQ8kNacl[n>inJGcMNeE^?bJQ0QZcn8VTK^JnNWc\bee9o`b="
  559.     A$ = A$ + "Fk8k7JYMm0_X#g7:hcPO8kU[#DJo#V_m#DF;SMEl31F_fl:f;jV?0cg;[UB8"
  560.     A$ = A$ + "R[UdIQcOVinJ]OO2`CVeB;DaHViIjUoi?`LMM5UOHjj4e3i7V?eNj7bjH#o3"
  561.     A$ = A$ + "3M?g`k80[a7kgi#TEWRHh1oW?UPBS\DW\_mYG^a9nKnW>VXRc>2nQl<kI_g5"
  562.     A$ = A$ + "Uk[elRH?f`mR#g_Wfm1fSaQ630ca2eMRASKGgNglRV7e\m3?lY>JgN=BkgV\"
  563.     A$ = A$ + "YVQO8cc2kg<F;Ib73f3G0iI8Rj4D_nB>YY4decljKnEQ^?`JDILFCNGLmYQj"
  564.     A$ = A$ + "nQjifAb?TiJ=Tig`lR86`?LegnU5L<PWL8o6ZmnT3llPn86SH<cWaQ]GijJ:"
  565.     A$ = A$ + "3o#V;CfCWdoPdem`;Te#RgU6^O9o`hRUR:]aWhXWnHC>gSJb^l`Pa[POFNWC"
  566.     A$ = A$ + "JC<NGlJ2M]#\hSn7^R5?oXBSJE6a[Vi]WnR`kdK8ZSVOH8_[hVO8[[<o68oi"
  567.     A$ = A$ + "HRQl^^^Y_NPj=aj7bL\LlOb?F^^Vb`?TmL=nNGda_oKAM?jG8NQdVn>oVi_n"
  568.     A$ = A$ + "Rl3;7o#jc4n4<W?Tn6hC#M2l4oX?hmbMjSO8me8Tm:SeG1j[1m?LUgliWkd0"
  569.     A$ = A$ + "eXb8Nmd?dHNgmkXi76bk:^i7BnSOhCm;nfA53Q>G\fmAZg#OjSA<?Z7a1>VL"
  570.     A$ = A$ + "M=UQO8[W8]5H>4BGgSa8Co2a;\8>SKTOHa<OC<_cdG#jK#jc=D>K_i\7Tei;"
  571.     A$ = A$ + "Tm?1_oKdf:4_<[m9mCPeT9D_Z6E6]g?=n_QNf>eEc?TkE?eML5A53Lnn4je3"
  572.     A$ = A$ + "D_9Fo#DNW[WRf?TeZSniJ_c=Y[gE[cI=i76F\DD]O`_Qn0Vnl3e>3OiMkWo<"
  573.     A$ = A$ + "WkFiEd6Sdh5N`K>gG;NYflnAJ4jiKCN:Sb?LckmX^:nQoiGlabeonRf?Taf#"
  574.     A$ = A$ + "j`_5KWo]Mg?O\kXj7bc<N?]h<8Pg7>>;?J[c9h#c3JSQ?D8W90fN]QjAD_9d"
  575.     A$ = A$ + "ig??UAi7faa?TH8dmaO<ZXl3YN0W=4l^3bI86Y3SaQjH\g>]bYl3cW:Co`jY"
  576.     A$ = A$ + "Z?WP3Ym1SaVe2Qg=el:6[NAdn\NZX>;TUOhF73Mgm3[WNY7mWFYL6ciY^l3K"
  577.     A$ = A$ + "NnQY?WPY?JQN>`aLg5R\jU\F7a\NWeC5eIQ\l3gjH#nQeFlMWa:WL^7ZeC9k"
  578.     A$ = A$ + "Zmb?d>WPa?Sed8djVQ>7#fki0kC6F[AnVKDdZX>;TUOhF73b?\fRjIFiTmk0"
  579.     A$ = A$ + "WUMjk5#fDkUOHjclIkM5Pcgml:fS;Q8;_InXaKL]gc23:MZW:Zc2Ii7^eaPl"
  580.     A$ = A$ + "3[]HnI\b9_kFlmkAO_0bVJ_l3COV?SG8mOjMN]W;gY3WgoiEYO_]HmHXNi_O"
  581.     A$ = A$ + "YGO^CW6YRj\#FnQKM<8o`J[dWS?lnc\X_dWdMn_;o`hRUbd?<MKLkM[Wi1>_"
  582.     A$ = A$ + ":TcPodnQFkR#?SMZW:SmN[l3UOHST]g9PCnP7_kMDQ_aNb?<^HYIk76jg4Zl"
  583.     A$ = A$ + "ZdeG\mQFIlMl#nQKFb?d;i7Fko]b?L;m3;[_5]E[;n4nhEbKkmfZ<lRUOhVU"
  584.     A$ = A$ + "l3mBnQenO[l3g\O8DFW=Ve;_]g[oo`3M;UFn8o#i7JBnQenOKGMo#J3D;\cJ"
  585.     A$ = A$ + ";Pj5a\WKb[X_XYcKF?W#of6UUbXl3UOXYRb?T_m?eZNgWK>C#nQM0m3]d^AH"
  586.     A$ = A$ + "kg6lY2iLM8VhbbkGJ5gFdYE]`F3kOkR>mPb3i7^ea#gMo`\NN`bIO3OkJdj;"
  587.     A$ = A$ + "W=eA`?TiccnNW]aGiY3:_bZhKRDjl>Vef6UUbWef;f_I8b?DnQEW>=2nNg`n"
  588.     A$ = A$ + "_Ako`\YVQO8Wg6ko7Kh9cMo6Yk\?`hhViNhJOcgJ8kkQKIo]`<mN]QjDdg#R"
  589.     A$ = A$ + "_e]bK?Xd;;UAKnAkZLN`:o``EIh7>aA?<gIX4W7fFm^SiC<fT_`Q?AgggUUL"
  590.     A$ = A$ + "QcEW7\ID=3o#NNM2cJL^m:oELJ7D5HNOI_RBNbIgFXW[3iAhUHa5eQX_QhUE"
  591.     A$ = A$ + "VUAk<HR_YBQ8i7^ea#kQOHXkWndZ<l3i<Yml>jmaMNHKek^bcHJ^a9cI4;cM"
  592.     A$ = A$ + "XNoUcVJ6nQl\klo\kS[OklnUK`Ig;?[hg^8_`c8dc0V\Zd[m6_o8fgMbb\<J"
  593.     A$ = A$ + "mmm9^e_F#iQl3gjHXm`?Tj>al=X6E6nQWnQ^W^aHaIaNjjMLncahTiMG^8>S"
  594.     A$ = A$ + "KTOHiUfE3i3k3`Rh<j\Nb>W_\OGUcM6X<;SfmAMNOeig?<d_ARVjX]7\TOHf"
  595.     A$ = A$ + "SUVYO8WcndFQnZmAOhV2:obRBG?RifSlDnQI_\fMg?l`Vb^5DnJBnQenOK75"
  596.     A$ = A$ + "o`JmmoHbkn>h6[GImmCaRMnoW^\DVkiVd[m6k5QR`?\AUAknH\nQan]bXXl3"
  597.     A$ = A$ + "gd6GO^_fZm3iKCG<a#8nQ\WmRe?<V_QmXVeg?UZKK9o`\9[nEKmmoPkUke^="
  598.     A$ = A$ + "dB9]K[_c3FIiEGeM5Dne8Unk_;`gXAb_HFGk\D6]jWaj76kg:SRX^2]o2AEk"
  599.     A$ = A$ + "76cg7?RQ#l3[nLl8_c=S=gc?i?obcMNKZIlmC9Mm2:Wb?<kRj8?km^8gHPf`"
  600.     A$ = A$ + "JG^KooagAAPm72[1KITf`[m<gOUk55AI9;aSUOCIL3g]VLfnN\<;SDW<6o#j"
  601.     A$ = A$ + "GcJ_k[cm>FoJ?mBCN[e]JWg>YOjc2iVQO8O?Y3A5UO8]kiK4A<SI72ik95nQ"
  602.     A$ = A$ + "lkNO_cIFi>_=ET_O:eZ>QAF[G8o`\YENCWWkKhJX_;K=B_m[^V:g;HocKkiV"
  603.     A$ = A$ + "bJ=VoM;i;_5gkikg]=_UUU7\E6IlbTo5]hK3_EVJdJ96KMUHROkkI8g[YO;o"
  604.     A$ = A$ + "P5<WPB7F?<jCdK_ne6L<4SO8Gk<Vd8bMNKZIln;Kb:[\7>H^5SM?gdMg?TkO"
  605.     A$ = A$ + "O[COJ^O7Z<dOjiOd:g;h<l5?3jWOXkKi6Ydke6JGaih?nQUIOB]b8n0QnnjE"
  606.     A$ = A$ + "?ajBHUY6]Gc:knOG?UnN?nIL^2monn_K^C7j3DXonLKM^6U7IU1jOJXcaMkQ"
  607.     A$ = A$ + "O8k1<nV14kj]dMg?lb>U3`]?g3mknASdjFi?_bm2Z[bHQH>h:[mLCjgcMf;o"
  608.     A$ = A$ + "\gma3^<m8\b8U;f?H5]NP[mTZDVJdkR#75o#K]<n?NZk[Y63Y?7?\ceXl8[<"
  609.     A$ = A$ + "POn:Fll3:6J?l3IOabHlYnWl33GlMoH2SJX9;kJ>a2?]AL6mWN]N]gE4hoi]"
  610.     A$ = A$ + "Om2?oB_75>jY?FGmkbf?d:Sh1`gfWRFhoIUY6m^ZfNj7VnN?n0h7n8g`Iedb"
  611.     A$ = A$ + "O>ocC_FJ43Qj7Bo33ikD1Zm`?Tjjl>[#O4UOHhRi9Qj]d?kb#[i>_j:g;>b3"
  612.     A$ = A$ + "J<^aVKSO]<fc=YkO`9=kai>7T:Ko#[<BK8joFA[_kI=S]hgDZgIIBkYOXmm<"
  613.     A$ = A$ + "d6[:#M;VgoVQfka<\]`?TaP`k^NNTi7bn[ReEi3O_g:gaAkQOh\Vl^hF7<No"
  614.     A$ = A$ + "ETOHhRWMD_UnKD6:mjmakP>o6FIj?U^m0OWMH<4\6>=Sed6o#VoQRFii\o\m"
  615.     A$ = A$ + "b?<mjHT^_Ih7bhmoKKj];elWn5U>oYMWMnbU7Ig[Ion`ja4bhmK?l3;2O6i7"
  616.     A$ = A$ + "fnj7bn8Y8EjmR[=fBfCob?\L5ggCgg#kN_=GafnVl3Ngg\DboZ7W\=nAkmd<"
  617.     A$ = A$ + "?b^G?^MMkM];Fa=N>i>NTOHi6WMEm3;jmLCjljPfcFC^PSMoL[7KcJ??fMd?"
  618.     A$ = A$ + "\]l2IMmY>?[g>oMh7bH?I\L_ok\Q2=oilXYJ_#Jcag\KKOhW7Uf?Tn76bN6B"
  619.     A$ = A$ + "nQUKLfEd?TeCIi;lD;dl:]_1kaLkn^l3;NanD<mJiW6RAVcC>oEH_`WfCTWo"
  620.     A$ = A$ + "[jWNYAWoL6dTnLk`0?8bOKMd2e?48VY]aOm=OULU6b?\LScdWCF\_\Fc_nJL"
  621.     A$ = A$ + "W3c<W9\NVl<<D\eOh\VgTLk_0>onH?dE4Y=T^=Si7bHHH^^Yn6WQo[mNFXKL"
  622.     A$ = A$ + "9\G1h\B<dl:mjKbil5NC\Gc;ckOY;S<WCLnL^jOfgdiAbNHROWQe3>Vd?Mi:"
  623.     A$ = A$ + ";nQUAIUm:5aAS>cV?ZY]k^ieWnUKk98cC<mo>^WaOojGmMW[foec7VgQLf_4"
  624.     A$ = A$ + "GjWKZ^eTWi9a>WghK=;gCHO\cLXTUkefJ2AMCfO^I]>ZeV2o#[_6l\Pi7ZXZ"
  625.     A$ = A$ + "CHdMd?Th3_SjE?\c0\?7i<\TbCe]?:JXM1eGX?:ME^o1L>hQ_F]FOif[bjD7"
  626.     A$ = A$ + "o>iNnR_9n=E_WaaC\Faeh7i#Z\giI?^DMKNnkBo]9[]0O<>[Na;lV_PihlLR"
  627.     A$ = A$ + "mN1eAIO86cm56c#chn_Mo[k`j;G_jBMVPn>aN5QOS]\;CLn8aJ;S_AGUkO0k"
  628.     A$ = A$ + "kFlKZen?\IFFa3Jfkc^jFkRcn8VTK_6al]E_gO6J[ahV;ZHP_O3\_k9oI_LA"
  629.     A$ = A$ + "oBiI>iO\g;H]PR=FSe?=[`_5`_M`i4KGMo`d`n4TdRO7Uf6dO163E<`nBQc0"
  630.     A$ = A$ + "OVc7l#X?L5EJ3\WiHm6Ym2eGCgFVa_Po8SOPnFPWI<ieWo#fCgIh0e=hnDe_"
  631.     A$ = A$ + "oBUam_Z;Sh9L;OU3ae?>^_bmgHCORCRGRkfZLe\Z[`HE9M`oQdTjfDOQWOdg"
  632.     A$ = A$ + "4NffXgQFNo[acTi=94o6lQYo#h3cll#O2YN;c=2S1_]bOb?nM4RG>cSbkmJ:"
  633.     A$ = A$ + "Gd_C>_nigJiiMFJCAM0lX8=hoFTe9<Xl#ibjGNg9o#NFc_oAjAiWk_<OBa0c"
  634.     A$ = A$ + "72_KafIANAVf0m9Tf;<W>llRf3Eg^UaeR?2aB<i5a<a>U1[O2Umm_Z;Sh_CN"
  635.     A$ = A$ + "`LfameH;CIYLe\Z[#iTbc=LNcfi?#Jcc^lNVeC\Qg5eg8M8]a[1_2nM5l;`k"
  636.     A$ = A$ + "=]?<oF7nO;hHfGgLDJn`fmTZ[GeFea8_JdcSfjN]iQc_cAIWk3IY=5e1<?Jn"
  637.     A$ = A$ + "_5IMRdi5U;:OM7NoUK[jBf_Iac;N>53T6TFTVlL_8CkdY_E_Xjf<lW9Oi_?f"
  638.     A$ = A$ + "l<MIYFN65mm_Z;SDF\f#UacXlL6VDTUE^nfZLF4eU9ma[PO?1_8j_GJ?WHmQ"
  639.     A$ = A$ + "cCM\JM_>?g;]d8mmXR^>AjlbNN4kg#U>SnQ2AGAX]LeN>V_Aen`5ag>9aFSl"
  640.     A$ = A$ + "352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q"
  641.     A$ = A$ + "`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl3"
  642.     A$ = A$ + "52Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`"
  643.     A$ = A$ + "Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl35"
  644.     A$ = A$ + "2Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`Sl352Q`CIj7fB;]T<`neWT"
  645.     A$ = A$ + "F7b0B6M[3bUG2Q#dAU9_kk#bHJM`UROH_jI;93X_m>IH3Zo9kl#7XcgE84R>"
  646.     A$ = A$ + "ZPGh46e#;Lo#999Y^bBnQBBBBN9o#9999_TOXTTTTGb?DBBBb;i7:999iUl3"
  647.     A$ = A$ + "UTTTlBnQBBBBN9o#9999_<o#Q#84m8io3\Pl%%h1"
  648.     btemp$ = ""
  649.     FOR i& = 1 TO LEN(A$) STEP 4: B$ = MID$(A$, i&, 4)
  650.         IF INSTR(1, B$, "%") THEN
  651.             FOR C% = 1 TO LEN(B$): F$ = MID$(B$, C%, 1)
  652.                 IF F$ <> "%" THEN C$ = C$ + F$
  653.             NEXT: B$ = C$: END IF: FOR j = 1 TO LEN(B$)
  654.             IF MID$(B$, j, 1) = "#" THEN
  655.         MID$(B$, j) = "@": END IF: NEXT
  656.         FOR t% = LEN(B$) TO 1 STEP -1
  657.             B& = B& * 64 + ASC(MID$(B$, t%)) - 48
  658.             NEXT: X$ = "": FOR t% = 1 TO LEN(B$) - 1
  659.             X$ = X$ + CHR$(B& AND 255): B& = B& \ 256
  660.     NEXT: btemp$ = btemp$ + X$: NEXT
  661.     btemp$ = _INFLATE$(btemp$)
  662.     _MEMPUT m, m.OFFSET, btemp$: _MEMFREE m
  663.     BASIMAGE3& = _COPYIMAGE(v&): _FREEIMAGE v&
  664.  
  665.  
  666. FUNCTION BASIMAGE6& 'face.bmp
  667.     v& = _NEWIMAGE(300, 297, 32)
  668.     DIM m AS _MEM: m = _MEMIMAGE(v&)
  669.     A$ = ""
  670.     A$ = A$ + "haIkMfm\EETN6744##4icPX8OZPL>la1144H0oX6n#A5DI6M`AL01RO05C=>"
  671.     A$ = A$ + "EVJVYL\HZA;]LB=Y8CUo1b]iRDi^DifTZb=YZLMZD9GTkB^:gk>n\>I]MMfL"
  672.     A$ = A$ + "fWmN]gMg?__ModEm[VB75g[nmmmgZGmZGMgYSJZYVJZYVJZYVJZYVJZYVJZY"
  673.     A$ = A$ + "VJZYVJZ5cfOkMN5Q#8XQlE2Q`;dVfc>a642QP6bG942_PlE2Q`;<Zn:f?7[#"
  674.     A$ = A$ + "8:3T_B84N1i[42QG#n:Q#h5T_Bd6nT;ndM^k7Mb>ckKc1Hc_mmNf>GkUVTNO"
  675.     A$ = A$ + "R8M8OUH^h[^faYkUJ3ghLkQNOV8N8OUhf_nDdm<Y0LMb^_F<N8OEi2Ko1CHg"
  676.     A$ = A$ + "g;6=T_Z<P]O`3`>696<bGUg`f1hAH7c4m7i[b7^bIVPN]N>bkMj9X7K5CSlE"
  677.     A$ = A$ + "i1\[Y;1H7S5bGiE:UgYWEiFG#_[A68OUoPM]ZhkPM^#YQlEfW?kM?2mjBaP1"
  678.     A$ = A$ + "a9fi:i>bGICnU_m1YGo96Mn5_e1YW3US8OUmPM]V8<liGiXdcUb=T_b6leGg"
  679.     A$ = A$ + "GOWNRf1n><IWSU38O5O`n<0kj9Ali>GFc_ehRlELhZWMBje?2NPef;kL#?Rl"
  680.     A$ = A$ + "ELPMmRP?\c1m8bGU>`c3`^6AH?n=oh3C?gd;8OEJPM=Q`f`>od;8OELa:kM`"
  681.     A$ = A$ + "2O0klE[SlEa5fio2o1kLF;SlEQ7fikRl0m>4_GT_:L`>oFT_`>gf:8OEhPM>"
  682.     A$ = A$ + "]8OQM^]E#n:iY4n1fij\AnZA7\W]a>oEDNlQ_jNYWk;OU_PM>[#`^6#n:O0k"
  683.     A$ = A$ + "lDQ0DRW36bG9GU`g`^V#n:K2klBQXO`^f#n:k`Wn>?3mlAQH#l[nA7RN]RlE"
  684.     A$ = A$ + "LQM>X#dFHGc8OULE2AKPM]SlEbE94]1fe#bG9?U#d6HG?9OULE2AKhSO]lIm"
  685.     A$ = A$ + "`;OULERl7feGbG5>dim^X40WIh\[eT_JlQMNT#T:HG[9OeXc_nBJMP::?nio"
  686.     A$ = A$ + "P3#_fCnZf3kl6QP5\[mT_Jh1OGk\cG42f`^>DnZQ3fi92QEPM]XlEbE94]1f"
  687.     A$ = A$ + "eTbG9GU#d6HGK:OULE2AKPM=ZlEbE94]1feZbG9OU#<\`^F]TmE\Sm2Q7QMM"
  688.     A$ = A$ + "[lEnT]\nEdINcKN35GnDkRn_gLVZngQ8>\d5_`>?gnf8mO_S;\[M;=O5khMK"
  689.     A$ = A$ + "II;in7Jgd`BeOV6hJcKXHad`^6Fn:ka>fh:3N]A_DmO33L]JNRLL`Ka2fe`U"
  690.     A$ = A$ + "P_j[_naY7W74oEgjiCB]a\aaVL3d_n]4WH??:]HaOi7oLd_n74o^ObcB_V>W"
  691.     A$ = A$ + "mE\S_32<o6\Z?ZiMNaWRNoP5Xjk8UL\X:O`0m5c5\[YcEO5khjL2ijRISm\e"
  692.     A$ = A$ + "e`_OQ0ko9F7mnnk13d_<G`^f>glE\SWc5WnPKVOmPS[E2:\k[W3NQY\kkElV"
  693.     A$ = A$ + "WOOd[aU_Z\[?JbNgfJigG5A>h>nCXg7kmkO`^6?GlE\SSmS]]QQOmCI2<#OF"
  694.     A$ = A$ + "dPMOK;HC[Kilk_V5HGWW3n:fa`I3\_nc>WODi3OemB_oCaRieIQ;hnXgg=KL"
  695.     A$ = A$ + "W;O4i[6A^jIWTNl[Gnl[LDjijS;odgHodk7E\`^a2i[bWaFa>o>H`^ODaR^D"
  696.     A$ = A$ + "iMIgGf3bG9GUeh?NcWWOOZR5V=F8OUOmEKL];WN>MXIM?lBYg_ZHQMS5bGiC"
  697.     A$ = A$ + "G5kLiHR7nnV:UHA5\kOk1i[LV[:c[AFbRFHWo`7L2nma:FDQeR5bGi<OU1bQ"
  698.     A$ = A$ + "C2\kWE\X;OaE?6onj68Oe\c_j7M8jaVVLZ3\9ji^YRolodC#_oFnZYYjkOTM"
  699.     A$ = A$ + "OM3^m[?UlEmP9gk=<#^KZHW?nZjlU__]^_NC#N8knXDReR5bG=CH7?:MO5hc"
  700.     A$ = A$ + "NgS`_?OFXjk4f0m?UL\#n:Sk[<#>;3n;n`Cb__Ga2C6;T_bV^ZUo0QOomf;l"
  701.     A$ = A$ + "Kna7^cMo8KEW`^?AaRdi\T_Be7]1l>?nZ[IWeTE9n\PF=F8OU1MEMB[_2OWn"
  702.     A$ = A$ + "cEkOkOl_Ij_Uo4mk1S]lGOYWQO<`PaR>9ngSiR5MR_cBn:kFSlOn_lg?daSD"
  703.     A$ = A$ + "FWPmX5;<g93kI2HXHHKWk`K9Ya2fa1i[\[[:5WA1gj2CeZHAcF:ZA`i1:>gD"
  704.     A$ = A$ + "H7;\VWRE\`R[=>i[\1[HI;f\e7XMaClTAog7>CG`LmBO=aU0O0j?]N\`J[5["
  705.     A$ = A$ + "BdGmcNCk]?UURJToQkNmF57V]6nc8fo>=aLmZHA5H]HEMVFb<Fd3GoUgMAi["
  706.     A$ = A$ + "HgOcZ69D]HoklGlF7Ton8WR5ElY_ccHRiC\G:5O5knIES<HncnQ7XjI2E\PO"
  707.     A$ = A$ + "\0ci^5OV`Hh\T_b>e8hJ?D]Zna8nKmWo3>0ogU^R5EPajJRgoa\PlEi[_:d]"
  708.     A$ = A$ + "Hk[Xo^dE\X2<FG[mm4F:n:fm_Z6IhmEhnj:FHSH1V3;je6m1i[D=b`dT_ZLR"
  709.     A$ = A$ + "5dOfliPLeGa^OEe8][61?7RR5f8FH]mbbHi\T_Be8bGioHQlEcMCnZ`cDKO]"
  710.     A$ = A$ + "]:6<G=lWE\[AbiW7dKa2;olPiX_RMoY5ZA0QZ5kOWi^_bKa2[k[`j_GnZl[6"
  711.     A$ = A$ + "iKnV_YEaQI[Qo<BA=B>_N6lD\`4[MgQPLaGa^OdBe8hkGMLKh?SDh[X?W9:F"
  712.     A$ = A$ + "deGIeeOEXMFbGe>dn9cdkQ9X6QnJn91G[0[7;<agbi#RlEiIM2>SiJK[jLY;"
  713.     A$ = A$ + "1of`NWQ5^WnRFHJfGE]N\0?G>mm:SQ4_k[HgoIEOE=FLo#^N^[<agH[QR5MB"
  714.     A$ = A$ + "l_WjHQ9f;b6BT_:_[AJbodOmWfionohO]cokocoEWomoio^>[M5?#bo=l67O"
  715.     A$ = A$ + "kMOODonKlm:bH1jgAo?R38NPh2SO7eaROkkIc_eiHh\Hj[Hg_=ZDbWWGXn0H"
  716.     A$ = A$ + "Zm303d_`<FHam3Ii[<668OUE=RE>_9D\`0[YTA0i[B?;K9UgH\FbRFHgea`O"
  717.     A$ = A$ + "lV6Joge0m=<S5dkoK9bGYjTD#mJJgJ_klo`7L2jm=:F<lPOcbG9OE<i:WIR^"
  718.     A$ = A$ + "cc^5W_TBcIIiHa`PglE\k_2668g=Ee7H=GmeGg`[c73d?U2nhGK_f?F<0T_R"
  719.     A$ = A$ + "3?bZF6mlgHc:O`5gmi?\fi6UR5lkg75`lO:O59<#NL\h\7JcM[?<eJHX0S50"
  720.     A$ = A$ + "C^NB6AT_R3iljaZ^n0O[PEcAT1j_;eH1nfY[O^L?4;64bGaSZej]1bY39Gm\"
  721.     A$ = A$ + "CfM\ENikmX4R5gibnH_HH#h5OeGLE3lMW53<#NMXh8kjAjN_Ljk335N\0dLL"
  722.     A$ = A$ + "^NmM2f;hkNd3n:fmCa4\>nHWK?^\hkO1cHNBljljVKa2\FfmJ\XOHMOeeNY9"
  723.     A$ = A$ + "Yg75KF`m=OjiiS:cOnc_kcM`NoRYdS5_bAfJGG5R5i`LFe;FgGU;SUM#TZmV"
  724.     A$ = A$ + "Y#2f_DZ[?`HecUHU7S5Gl4?IgH1^gA^4;jUf^FgC]_RMoC:Y:7c0in33KK3["
  725.     A$ = A$ + "H6^:fmMQVM]YEA_?NHif_nDMWk#4;<anfC4An:k0Vo1fio3RcOd]=SkUW[e7"
  726.     A$ = A$ + "YH_\NLY>>0G5nFVceHACT_bPHPJQNI;[O5cXn0kkKVJOR92P[_]oX?<mnnNi"
  727.     A$ = A$ + "3Oem>SkIhUmgh#PlEf3LObM_UEC_^XOg;7Ok\VJ?R9RDMMJPnoJfiS_ZIl>0"
  728.     A$ = A$ + "cQgcAK#n:k2^_9nNEIEKPiaYimaQW:g7CEo0GgC\INg3YN=PFZNZJT_bfPjT"
  729.     A$ = A$ + "KL^mTdge>n_EM]AmHZ#mQWo6o31hjO?KM=9eCQH1V;]Vgg0_W\Bmn6FeGE2["
  730.     A$ = A$ + "mZf0FkOH>S`HLRalbgL]6FkX`maagG#YFKd?#o1NGLY<FPoKQhO^]6#K;FeG"
  731.     A$ = A$ + "m9GlYYggH=`mgA>;bQ3imiaOFh\Y[ggg4Z9U[Jf1NlD5;`HZ`o]:mag2`cJH"
  732.     A$ = A$ + "AO5kn5[cMoXCFU33_2bWANm=?onjLbmnHEcE?fk1`mYajj4O[nhmLmZ?kfZn"
  733.     A$ = A$ + "WYim^KFC0o4nc4oIcnjcCD7;#oGcHaQfij[jgAo?R38NPh2R?8>eKL#aRQ3i"
  734.     A$ = A$ + "[l;hN^Hn<`gfJ]kZ^V1d_JRjWg3okPiV2oIXJSa3doQnAdOfln83:>XHAk#n"
  735.     A$ = A$ + "Zl3\W^PWU3[KN0FS4hK:3om:UeRPE0^WjH1R3ea4lgcCkm>F1i[42QG#n:Q#"
  736.     A$ = A$ + "h5\V_:7f_Y52AL0ccWUlE\k?42QM1c7XlE2Q`;8OU#8l2bG942_PlE2Q`;8O"
  737.     A$ = A$ + "U#8l2bG942_PlE2Q`;8OU#8l2bG942_PlE]WcMh]Da;m<CcI?dV[hd7LJ>e1"
  738.     A$ = A$ + "fDW_oCohElRkOJNQYfH5?gnf8mOoVViJO]Sm_=;ch^W1bngo#RlE:g`4Xn_d"
  739.     A$ = A$ + "eoihnDi[BO^Qf[Q3DO9kOkF2i[T_:Bi6H?Z7kQNd_>8chNVTRcbEfG3VQa<W"
  740.     A$ = A$ + "l>Gn8^hLRFnZdWKl67OkEi7d_>LLOX77K#\0k9fSKO8fWVan6?k[U1QlES0S"
  741.     A$ = A$ + "I^1V7Nh[:ecX9L6<4BOEeIdX1^^H1>kHT_BnZnbHVK\S=^bZcGPRLoD?TS[Z"
  742.     A$ = A$ + "1Ee\\_f81Z_2Q_b3kGVbG=2<Vi6[Ji;YjLKZ8?c1RT_2hQiO96\QEoPSMO7>"
  743.     A$ = A$ + "[N`ic3k[U1QlES01Xf2ci#amN2SX[ZVRlI\3#o6lEOikO<nG;30i[hTOPcIL"
  744.     A$ = A$ + "Lf>AoJaImK3R_jJ5hIQLPlENX_Cn:>i7hLbd3i7F[OKHjGm`h4\Fo:lENhiY"
  745.     A$ = A$ + "]T_b3cgGXb?`I0\7V_P#aUNQMV4OeagmSF=fEfG_N:O4__FT?JmiW`JW?>od"
  746.     A$ = A$ + "gHodkCBAnA]_b3_oh#a^gbZCR_JS[MiESaRme[Wb7aj^5mIFomoLec>YYlE^"
  747.     A$ = A$ + "iI23#M56o=N7Qd_FB4E[AZ4h[VolWOEO[e[m25GnDkJ\kc^bIV`5S9MHM8bG"
  748.     A$ = A$ + "=CFk:NPa>71[g5?TS4:Flm_PTh[`cfPnF[o\=Q2<Nb#T;F]6i=`ecLQlES6O"
  749.     A$ = A$ + "aE?fHWS\W]^6G<6l#1f;MBQ_2?g9Zol`L7742#O6j_l`g7VlES>H=O>>i8hi"
  750.     A$ = A$ + "F`LHE:[Y1<GYY`GMQS]mZj_BYOMLk_FfB^o\J]]WJO5>cYIg_<<D=^X0LO]B"
  751.     A$ = A$ + "jM4V2O5jCalGiUlXaQ7JY;J\k_`LGQn<[_fJnj[OLCj[`N]2knVQVa<GYnkN"
  752.     A$ = A$ + "VneQCj_JS_Z8nf<3DoU76?:nn#]X_bC?CH8bGdL^7>Fd2WN^f[NfC3LmjQl_"
  753.     A$ = A$ + "Jo^eo>VJSo#nZhU_Xe:Dhh3OemFEkiQgeUEj;Q_2cS:m[U1PlEf8O1eHUbk8"
  754.     A$ = A$ + "<DmIm[^[N=RXg=Hkjgl`HlU_JlIe?dh_>\`j5bjceIX9d[MDlWGmceD:mUQh"
  755.     A$ = A$ + "I[aleSn<\G\anjI#8Oeh36KD8Zgl`kB>h4QaFQW[ajc3SUjo`i>7jcl#nWlE"
  756.     A$ = A$ + "f9_YXN6V6<^[=ke_bUfeEQi\ZDj33ajHXfckUme8i[23H_=NLcK`L^GD[3[V"
  757.     A$ = A$ + "4XaEQeW3m[57dWE3fCBAO7NF#?<oYFfGMmGNgdkOBIn3F[kNH>?S5h\=k=oN"
  758.     A$ = A$ + "?a0WG;loOmjG_NnZ`JGXh>Kd2dH[l`j45d6g13OUg6SE8bO:^ee#?Pj6L_N<"
  759.     A$ = A$ + "WPH?\JY;NQE_;2lM?Qoj?hEfCgJ\JG5nWg3eKF<O[^?d3^Ni[\Gn3XDVoUi2"
  760.     A$ = A$ + "\^dAo0FgoH>Y`h>aHX`o;foMZ?G?;Re_N4ceP_b;gSd3nZZm013dGUbL8?lN"
  761.     A$ = A$ + "JB9H?Q1c5<lChoe3ccB<YJ>>3X_b3c11^7U7lEUhH\#>Da]gS;6N2X[b;k7g"
  762.     A$ = A$ + "SRg#nZ1C8>cRaj?]XnnW5]S0hZZGK]hI\m`l?8OU]cWfnSn`l_>4VS3]ce7\"
  763.     A$ = A$ + "aFiYma8i[R81JljN9GBT#2hc2jUmKWAaI`dGi^_]R0UCETWmcRiV0j[beg;8"
  764.     A$ = A$ + "KOE9?6[Bj\cA<02X[b;WSLhI<T_:n\[=]ZPTKE]g?HP[71GN\elP19O2O[Ve"
  765.     A$ = A$ + "cc^7nfU6EOQlES01jnQJN\4QL\E0_\^6U_bOiH_mc_CGlmB8R3EkCZ1dGiU_"
  766.     A$ = A$ + "o6PGmENdI5RcW`JdjKX<Io?aj2F>dUNQMFiZl`jI_6i[B<1:G3hQgm\`^i?N"
  767.     A$ = A$ + "JNf1`]jIOUGjWSEn6N^0g]f>4V8oYNN[`kKf;[AVaaEH1OU77SEXN?QeDTkK"
  768.     A$ = A$ + ":5:Ho#;dn:?m^KT_R3HOK:T>;fG?R4#0cG`m<mdj3]6i[bSl??\^I4f9OYnM"
  769.     A$ = A$ + "2j]eNL>h[L[c:TS_jK1kK`d_V41WKMQY2N^RgVg:#8l4FaGiEWebFbm7dl#_"
  770.     A$ = A$ + "\6J4]P0VOPcV`jaFiYmh`#i8T_bFiS;IA;ToeS8H\l78\g?kC^hCgmK_QmeF"
  771.     A$ = A$ + "K#n:3AP7[o[LT]boJBH^lRjW34S]b3W[P=An:k#ec`5hlbZil`0GKRASZgOB"
  772.     A$ = A$ + "Pc9^jIWdU_C##>j[l\cZR0WONg?jTl_V4]VP_FGVgg]F[`c1j]e[G8m3FcGi"
  773.     A$ = A$ + "]g?k<82SoGO_>nRZWU?B?780O?8NjkQ0oVcIOU6SembKmLkPoeUHP4Se]#]["
  774.     A$ = A$ + "Znl^VmeHK9d^1i[2;E_Si8TcnNWN2jGKRn3N_Ma8^GOfGkY_YiVD2n:_k\Fd"
  775.     A$ = A$ + "27oco[ISCO`=CoJCL_LaClTA9NOUc<AgaFi]i\243_PlEAR8To2#o=m[=AG>"
  776.     A$ = A$ + "e1fDDRckN;[^kLFiag78XTlEbIeONXU^8nGKR>[HI;>JahJG5f_Ql`IOJ_4;"
  777.     A$ = A$ + "WPlEAV8U?G1k[]BV85C?gQgBgW1dck=JUX_b;kOnc5kI[[A>[<RZeKC4SWeS"
  778.     A$ = A$ + "[2k_aOikkclo?kM?BAj[0NLN6WERH>Nelkcnj[00O[aY`EQi[bCO;c=i>G>N"
  779.     A$ = A$ + "^:?h[0\S11QH>6;=>;g73?iNO\^?7XW>k8jUHk2T_:M\nE^Di]l8A>V]ZU_T"
  780.     A$ = A$ + "^S]jgmClejG_GT_:OlEY8gO][#WMdQT7IE;;ja\Lhi0[AnZlcI5bcLPnAekJ"
  781.     A$ = A$ + "g0G[NUEnPaK]:D3b3ZMEH>ZmnNeH:l0bGAR8G;d5fGWNT45KZMEhK]aKkWEm"
  782.     A$ = A$ + "B:L0NbGUS>[D<>;i]6>^aifCbR5=7G5VOmLh\6AnZk5LO8faUPCZlEO;NlkU"
  783.     A$ = A$ + "=gR1=7GEmJ2UneoHb=?onT_Z#6S58VOG7mknkNoi?6G`NQHB7Okg2f;gKn<P"
  784.     A$ = A$ + "JLEbGiFBlmh1NmkXMLYJm=AXo^Y[bek;U=#nZ1C^nL=_kgoYXD71fhJG>m[o"
  785.     A$ = A$ + "HbVFgbYegRmLdLJ^e[1kOPbGEfScZjl_TDME=EOg96X_HL0c;DeIS6inbjcO"
  786.     A$ = A$ + ";<GEhn\idNb?SjNi[\7YNn\j7EW5\6XoX=Pki7jc`fAUVc[>nMUKk5obGe>b"
  787.     A$ = A$ + "nm8H3Dce;GoUg=onUoO`HE>fTKPNOB_P_aPLKNeK2[jM_k[bmaIQiiHQ;8>k"
  788.     A$ = A$ + "]bQPZi4R#obVGo3AoJ_OPm\jVOO=Ho:PMNDXAnZAW[mBCB?n5K`gYaFFo:XG"
  789.     A$ = A$ + ";fF`cU][=]Z>_c;nDMnI_inkkLgPonhoOl?g4KNeViiiJ[k^geEUWo^U]X[:"
  790.     A$ = A$ + "7lEinH\Z9FWk>R`#CG5F_4NL?<fj^ZLaGE:>;P5NoQRIgCQiD_:nHPl4i[VI"
  791.     A$ = A$ + "cJnZLjm4?8`nT[UW3WB0\NeJjZ`jod[kOaNaEUCnZJH7GC]gRMMKYa;^o7_X"
  792.     A$ = A$ + "lDFbE9OU_1cYeDKO]d[Q;9JjZ`JE0W9:NO?fCn:i\B9HM8RJX5LOYmkg]D0m"
  793.     A$ = A$ + "[Ol[]g^N:\>5`iPB^]n?]^[:GmEUXcZ6\oOOYGHWd[ac1nQWl9_WgkG^l]oi"
  794.     A$ = A$ + "AGE>k[:emN00NGj<ofYc1N[WK7cH=ZW[[AQn1F?L\[Q;9O5PM<W=hiE`j[6O"
  795.     A$ = A$ + "c]\[om0enYV[?1doE2?gGCHGgFZn:i\VfIQ_O=<n0;o]m`T;OZM=3GEmhY#o"
  796.     A$ = A$ + "FYiZT_R?\SoF1lN\`l4SJaZ_EL3h:\PSZnMmQaBmiGiXdSC<QM]ZlEIdIJOP"
  797.     A$ = A$ + "0c33VGN<7OWm#KV^k8UdlkA^iJXbkWCYQ0hZIG[:Oeg1kl1;2ZAAN:>ok`H<"
  798.     A$ = A$ + ">oAg6MWB81G?mjW`e9^NaeMYkXZQM]YlEbGe6`c:RjG<F3D?kmeQj]^`DcZW"
  799.     A$ = A$ + "2GOhj<gGSW]5feVbG9_eh0FWAH]KSm55lNb#m>ZkCaicn`2No1`[fd;ed=QO"
  800.     A$ = A$ + "gH?86G7UhlV?<`^FDn:i[29hk87_W<<Gd`MQil2^0h4`i>G:o^[ai_5n_G_S"
  801.     A$ = A$ + "MZike3>:lk4SQ:gfG?S1\[5U_Jh`Bk[_N4ha`lf3_`\ibZ7?F8Xn??lWMCWD"
  802.     A$ = A$ + "mkc3o>`NJ8kn4?1kj?i[J?XFPMNC^2Nn;h#`cERg?;f33PK1PWA[6hLJnGGo"
  803.     A$ = A$ + "?3nW7okQomQKD??Gh0S?UM]WlES6Ulg]SXl0gSVM=WlEbI9432_kZT_jkPM^"
  804.     A$ = A$ + "T#4C^m[kgW1DnZIW[Nflo\fADN`^^BnZh1kL;Q8d`^VBn:i]4R11kJ8i[T_B"
  805.     A$ = A$ + "86FHG39OUlF2aPPM=SlEbG9433HoVPM=SlElQMNX#<8HGS8OU]PMnX#d?HGK"
  806.     A$ = A$ + "8OU=YT>SD4f7\7D`^V#n:k3klDQPM=PlEn2fi[Rb5finbGiGHWk::7HW[c6i"
  807.     A$ = A$ + "[6OdN5W85Pm2<fij\AnZ`1klIAn2kLK[PlEQ7fifRl1fibF3i[R7\ce5n5fi"
  808.     A$ = A$ + "^F5i[R;\ck5n3fi\F6i[B3\[14f7fiXN0i[B3Gi<C#_N#HGHWOj5T_:m`^f#"
  809.     A$ = A$ + "H7HW;j=T_R7JoR_<1SeVM^WGAn:^`^fATNHWciIT_b6PcfHfeARh1R_\cab1"
  810.     A$ = A$ + "T_bF`^^B4NHWCUC8OU=iFGH:jeIRA74oHW3US8OU]QMMWXMTkkOj\An:o0kJ"
  811.     A$ = A$ + "AAoQM^AYPlEn3feV2iYHQlEn6fe[U6OnE>:mHN9SlEi1\[S;1H7S5bGU[`^f"
  812.     A$ = A$ + ">7PM<DL_8OEN3kJN?2kHVXo8OEIa=?onXk3\4XoPM<A<l8OUXDf[KdgI\oAn"
  813.     A$ = A$ + ":A_`f[4BHgG:2;bG9J3ghLkYj<#W]72l;Ok3B_o#TFT_B4:nR[N\XhU^m[[_"
  814.     A$ = A$ + "5?ad8OU#8l2bG942_PlE2Q`;8OU#8l2bG942_PlE2Q`;8OU#8l2bG942_PlE"
  815.     A$ = A$ + "2Q`;8OU#8l2Q`G942AZAn:Q#h5T_B84N1eDC=eDC=eDC=eDC=eDC=eDC=eDC"
  816.     A$ = A$ + "=eDC=eDC]b]momjB%%h1"
  817.     btemp$ = ""
  818.     FOR i& = 1 TO LEN(A$) STEP 4: B$ = MID$(A$, i&, 4)
  819.         IF INSTR(1, B$, "%") THEN
  820.             FOR C% = 1 TO LEN(B$): F$ = MID$(B$, C%, 1)
  821.                 IF F$ <> "%" THEN C$ = C$ + F$
  822.             NEXT: B$ = C$: END IF: FOR j = 1 TO LEN(B$)
  823.             IF MID$(B$, j, 1) = "#" THEN
  824.         MID$(B$, j) = "@": END IF: NEXT
  825.         FOR t% = LEN(B$) TO 1 STEP -1
  826.             B& = B& * 64 + ASC(MID$(B$, t%)) - 48
  827.             NEXT: X$ = "": FOR t% = 1 TO LEN(B$) - 1
  828.             X$ = X$ + CHR$(B& AND 255): B& = B& \ 256
  829.     NEXT: btemp$ = btemp$ + X$: NEXT
  830.     btemp$ = _INFLATE$(btemp$)
  831.     _MEMPUT m, m.OFFSET, btemp$: _MEMFREE m
  832.     BASIMAGE6& = _COPYIMAGE(v&): _FREEIMAGE v&
  833.  

 
Title: Re: MAZEBALL: Tilt Maze puzzle clone
Post by: bplus on August 25, 2020, 08:21:20 pm
Hey nice variation!
Title: Re: MAZEBALL: Tilt Maze puzzle clone
Post by: FellippeHeitor on August 25, 2020, 08:21:59 pm
Interesting twist!