From 0a9902d055239cc903b4c7beed8697d7dce28047 Mon Sep 17 00:00:00 2001 From: d_m Date: Tue, 16 Jul 2024 10:06:58 -0400 Subject: [PATCH] weird intermediate state --- cards.tal | 62 +++++++++---- kodiak.tal | 57 +++++++++--- mask2.tal | 256 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 348 insertions(+), 27 deletions(-) create mode 100644 mask2.tal diff --git a/cards.tal b/cards.tal index 6f73dd6..4abe990 100644 --- a/cards.tal +++ b/cards.tal @@ -267,6 +267,15 @@ GTH2kr STHr ?&mloop ( [limit* pos+4] ) POP2r POP2r JMP2r ( ) ) +@set-fg ( -> ) #40 ,set-sprite/layer STR JMP2r +@set-bg ( -> ) #00 ,set-sprite/layer STR JMP2r + +@set-sprite ( byte^ -> ) + LIT [ &layer 00 ] ORA .Screen/sprite DEO JMP2r + +@set-sprite-3x ( byte^ -> ) + ,set-sprite/layer LDR ORA .Screen/sprite DEOk DEOk DEO JMP2r + @draw-background ( -> ) #f2 .Screen/auto DEO ;tiles #0200 ADD2 .Screen/addr DEO2 @@ -288,18 +297,28 @@ .Screen/y DEO2 .Screen/x DEO2 OVR #80 LTH ?draw-face-up POP2 !draw-face-down ) +@draw-spot-down ( -> ) + #16 .Screen/auto DEO ( ; draw 2 tiles, increment x and addr ) +( ;masks #0080 ADD2 .Screen/addr DEO2 ) +( #02 set-sprite-3x ) + ;masks #0100 ADD2 .Screen/addr DEO2 + #81 set-sprite-3x + JMP2r + ( assumes x/y already set ) @draw-mask-down ( -> ) #16 .Screen/auto DEO ( ; draw 2 tiles, increment x and addr ) - ;masks #0080 ADD2 .Screen/addr DEO2 - #04 .Screen/sprite DEOk DEOk DEO +( ;masks #0080 ADD2 .Screen/addr DEO2 ) +( #04 set-sprite-3x ) + ;masks #0100 ADD2 .Screen/addr DEO2 + #8d set-sprite-3x ( TODO fixme ) JMP2r ( assumes x/y already set ) @draw-face-down ( -> ) #16 .Screen/auto DEO ( ; draw 2 tiles, increment x and addr ) ;tiles #0100 ADD2 .Screen/addr DEO2 - #81 .Screen/sprite DEOk DEOk DEO + #81 set-sprite-3x JMP2r ( @card-is-black ( idx* -> bool^ ) @@ -329,23 +348,31 @@ #00ff AND2 ( idx* ; remove rotation/flip info for now ) DUP2 ( idx* idx* ) #000d DIV2k STH2k MUL2 SUB2 ( idx* r* [q*] ) - #0080 MUL2 ;masks #0180 ADD2 ( idx* 128r* card+384* [q*] ) - ADD2 STH2r #0010 MUL2 ADD2 ( idx* a=card+384+128r+16q* ) +( #0080 MUL2 ;masks #0180 ADD2 ( idx* 128r* card+384* [q*] ) ) +( ADD2 STH2r #0010 MUL2 ADD2 ( idx* a=card+384+128r+16q* ) ) + #0100 MUL2 ;masks #0300 ADD2 ( idx* 128r* card+384* [q*] ) + ADD2 STH2r #0020 MUL2 ADD2 ( idx* a=card+384+128r+16q* ) STH2k .Screen/addr DEO2 ( idx* [a*] ) - #04 .Screen/sprite DEO ( idx* [a*] ; draw top of card ) +( #04 set-sprite ( idx* [a*] ; draw top of card ) ) + #8d set-sprite ( idx* [a*] ; draw top of card ) find-middle-addr ( mid* [a*] ) - ;tiles SUB2 #01 SFT2 ;masks ADD2 +( ;tiles SUB2 #01 SFT2 ;masks ADD2 ) + ;tiles SUB2 ;masks ADD2 .Screen/addr DEO2 ( [a*] ) - #04 .Screen/sprite DEO ( [a*] ; draw middle of card ) - STH2r DUP2 #0008 ADD2 ( a* a+8* ) +( #04 set-sprite ( [a*] ; draw middle of card ) ) + #8d set-sprite ( [a*] ; draw middle of card ) +( STH2r DUP2 #0008 ADD2 ( a* a+8* ) ) + STH2r DUP2 #0010 ADD2 ( a* a+8* ) ( TODO: does flipping also flip move direction now? ) SWP2 #0008 .Screen/x DEI2 ADD2 .Screen/x DEO2 .Screen/addr DEO2 ( ) #01 .Screen/auto DEO ( ; draw 1 tile, increment x ) - #34 .Screen/sprite DEO ( ; draw bottom left of card ) +( #34 set-sprite ( ; draw bottom left of card ) ) + #bd set-sprite ( ; draw bottom left of card ) .Screen/addr DEO2 ( ) - #34 .Screen/sprite DEO ( ; draw bottom right of card ) +( #34 set-sprite ( ; draw bottom right of card ) ) + #bd set-sprite ( ; draw bottom right of card ) JMP2r ( assumes x/y already set ) @@ -357,19 +384,19 @@ #0100 MUL2 ;tiles #0300 ADD2 ( idx* 256r* card+768* [q*] ) ADD2 STH2r #0020 MUL2 ADD2 ( idx* a=card+768+256r+32q* ) STH2k .Screen/addr DEO2 ( idx* [a*] ) - #81 .Screen/sprite DEO ( idx* [a*] ; draw top of card ) + #81 set-sprite ( idx* [a*] ; draw top of card ) find-middle-addr ( mid* [a*] ) .Screen/addr DEO2 ( [a*] ) - #81 .Screen/sprite DEO ( [a*] ; draw middle of card ) + #81 set-sprite ( [a*] ; draw middle of card ) STH2r DUP2 #0010 ADD2 ( a* a+16* ) ( TODO: does flipping also flip move direction now? ) SWP2 #0008 .Screen/x DEI2 ADD2 .Screen/x DEO2 .Screen/addr DEO2 ( ) #01 .Screen/auto DEO ( ; draw 1 tile, increment x ) - #b1 .Screen/sprite DEO ( ; draw bottom left of card ) + #b1 set-sprite ( ; draw bottom left of card ) .Screen/addr DEO2 ( ) - #b1 .Screen/sprite DEO ( ; draw bottom right of card ) + #b1 set-sprite ( ; draw bottom right of card ) JMP2r @init-rng-from-datetime ( -> ) @@ -416,4 +443,7 @@ @tiles ~card-sprites.tal ( each mask tile is 8 bytes: a 1-bit 8x8 image ) -@masks ~mask-sprites.tal +( @masks ~mask-sprites.tal ) + +( each mask tile is 16 bytes: a 2-bit 8x8 image ) +@masks ~mask2.tal diff --git a/kodiak.tal b/kodiak.tal index 153073b..de0f092 100644 --- a/kodiak.tal +++ b/kodiak.tal @@ -29,8 +29,7 @@ @waste $18 ( face up pile - 24 bytes ) @foundation $4 ( one per suit - 4 bytes, 4x1 ) @tableau $85 ( the main board - 133 bytes, 7x19 ) - @held [ &first $1 ( stack of up to 13 held cards ) - &last $1 ] ( stack of up to 13 held cards ) + @held $2 ( first and last card in held stack ) @dragging [ $1 ( are we dragging? ) &x $2 ( x-coord for start of drag ) &y $2 ] ( y-coord for start of drag ) @@ -170,7 +169,7 @@ &done POP POP2 JMP2r ( ) @maybe-draw-c - DUP ?{ POP !draw-mask-down } !draw-c + DUP ?{ POP !draw-spot-down } !draw-c ( assumes x/y already set ) @draw-c ( card^ -> ) @@ -208,12 +207,47 @@ @draw-mouse ( -> ) #00 .Screen/auto DEO - clear-prev-mouse !draw-curr-mouse + clear-prev-hold clear-prev-mouse + draw-curr-hold !draw-curr-mouse + +@clear-prev-hold ( -> ) + .dragging LDZ ?{ JMP2r } ( ) + #12 .Screen/auto DEO ( ; draw 2 tiles, increment x ) + ;blank .Screen/addr DEO2 ( ; erase ) + .dragging/x LDZ2 .prev/mouse-x LDZ2 ADD2 STH2 ( [x*] ) + .dragging/y LDZ2 .prev/mouse-y LDZ2 ADD2 STH2 ( [x* y*] ) + .held LDZ2 #02 ADD SWP ( last+2^ first^ [x* y*] ) + &loop LTHk ?&done ( last+2^ pos^ [x* y*] ) + STH2kr .Screen/y DEO2 ( last+2^ pos^ [x* y*] ; s/y<-y ) + OVR2r STH2r .Screen/x DEO2 ( last+2^ pos^ [x* y*] ; s/x<-x ) + #41 .Screen/sprite DEO ( last+2^ pos^ [x* y*] ; erase ) + INC LIT2r 0008 ADD2r !&loop ( last+2^ pos+1^ [x* y+8*] ) + &done POP2 POP2r POP2r JMP2r ( ) + +@curr-drag-x ( -> x* ) + .Mouse/x DEI2 .dragging/x LDZ2 ADD2 JMP2r + +@curr-drag-y ( -> x* ) + .Mouse/y DEI2 .dragging/y LDZ2 ADD2 JMP2r + +@draw-curr-hold ( -> ) + .dragging LDZ ?{ JMP2r } + set-fg + curr-drag-x STH2 ( [x*] ) + curr-drag-y STH2 ( [x* y*] ) + .held LDZ2 SWP ( last^ first^ [x* y*] ) + &loop LTHk ?&done ( last^ pos^ [x* y*] ) + STH2kr .Screen/y DEO2 ( last^ pos^ [x* y*] ; s/y<-y ) + OVR2r STH2r .Screen/x DEO2 ( last^ pos^ [x* y*] ; s/x<-x ) + LDZk draw-c ( last^ pos^ [x* y*] ; draw ) + INC LIT2r 0008 ADD2r !&loop ( last^ pos+1^ [x* y+8*] ) + &done POP2 POP2r POP2r !set-bg ( ) @clear-prev-mouse ( -> ) + #00 .Screen/auto DEO + ;blank .Screen/addr DEO2 .prev/mouse-x LDZ2 .Screen/x DEO2 .prev/mouse-y LDZ2 .Screen/y DEO2 - ;blank .Screen/addr DEO2 #41 .Screen/sprite DEO JMP2r @draw-curr-mouse ( -> ) @@ -234,6 +268,7 @@ &found JMP2r @release ( -> ) + clear-prev-hold .held LDZ2 SWP ( last^ first^ ) &loop DUP LDZk #80 EOR SWP STZ ( last^ first ; first<-c^0x80 ) INC LTHk #00 EQU ?&loop ( last^ first+1^ ) @@ -265,13 +300,13 @@ @start-drag ( x* y* first^ last^ -> ) DUP2 .held STZ2 ( x* y* first^ last^ ; held<-first,last ) - SWP ( x* y* last^ first^ [h0^] ) - &loop LTHk ?&done ( x* y* last^ z^ [h^] ) - DUP LDZk #80 EOR SWP STZ ( x* y* last^ z^ [h^] ; z<-q ) - INC !&loop ( x* y* last^ z+1^ [h+1^] ) + SWP ( x* y* last^ first^ ) + &loop LTHk ?&done ( x* y* last^ z^ ) + DUP LDZk #80 EOR SWP STZ ( x* y* last^ z^ ; z<-q ) + INC !&loop ( x* y* last^ z+1^ ) &done POP2 ( x* y* ) - .dragging/y STZ2 ( x* ; d/y<-y ) - .dragging/x STZ2 ( ; d/x<-x ) + .Mouse/y DEI2 SUB2 .dragging/y STZ2 + .Mouse/x DEI2 SUB2 .dragging/x STZ2 #01 .dragging STZ JMP2r ( ) @maybe-select-waste ( -> bool^ ) diff --git a/mask2.tal b/mask2.tal new file mode 100644 index 0000000..bcd0dcb --- /dev/null +++ b/mask2.tal @@ -0,0 +1,256 @@ +00 00 00 00 00 00 00 00 ff ff e7 fb e7 fb e7 ff +00 00 00 00 00 00 00 00 ff ff 27 07 07 8f df ff +00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff +00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff +00 00 00 00 00 00 00 00 ff fb f1 e0 e0 e4 ff ff +00 00 00 00 00 00 00 00 ff e7 df e7 df e7 ff ff +00 00 00 00 00 00 00 00 ff ff f3 eb e3 eb eb ff +00 00 00 00 00 00 00 00 ff ff df 8f 07 8f df ff +00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff +00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff +00 00 00 00 00 00 00 00 ff fb f1 e0 f1 fb ff ff +00 00 00 00 00 00 00 00 ff d7 d7 c7 d7 c7 ff ff +00 00 00 00 00 00 00 00 f8 f8 fb fb fb f9 f8 fc +00 00 00 00 00 00 00 00 0f 0f ff ff 9f 6f ef 0f +00 00 00 00 00 00 00 00 f8 f8 fb fb fb f9 f8 fc +00 00 00 00 00 00 00 00 0f 0f ff ff 9f 6f ef 0f +00 00 00 00 00 00 00 00 00 7f 6f 54 6f 7e 6d 6d +00 00 00 00 00 00 00 00 00 fe f6 2a f6 7e b6 b6 +00 00 00 00 00 00 00 00 6e 6f 6e 6d 6d 6e 6f 6e +00 00 00 00 00 00 00 00 76 f6 76 b6 b6 76 f6 76 +00 00 00 00 00 00 00 00 6d 6d 7e 6f 54 6f 7f 00 +00 00 00 00 00 00 00 00 b6 b6 7e f6 2a f6 fe 00 +00 00 00 00 00 00 00 00 ff ff eb eb e7 eb eb ff +00 00 00 00 00 00 00 00 ff ff df 8f 07 df 8f ff +00 00 00 00 00 00 00 00 f8 f8 fb fb fb f9 f8 fc +00 00 00 00 00 00 00 00 0f 0f ff ff 9f 6f ef 0f +00 00 00 00 00 00 00 00 ff f1 fb e0 f1 fb ff ff +00 00 00 00 00 00 00 00 ff d7 d7 e7 d7 d7 ff ff +00 00 00 00 00 00 00 00 f8 f0 f0 f2 f3 d9 c1 e1 +00 00 00 00 00 00 00 00 1f 0f ef ef ef ef ff ff +00 00 00 00 00 00 00 00 f8 f0 f0 f2 f3 d9 c1 e1 +00 00 00 00 00 00 00 00 1f 0f ef ef ef ef ff ff +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 ff ff e3 eb eb e7 f3 ff +00 00 00 00 00 00 00 00 ff ff 27 27 df 2f 37 ff +00 00 00 00 00 00 00 00 f8 f0 f0 f2 f3 d9 c1 e1 +00 00 00 00 00 00 00 00 1f 0f ef ef ef ef ff ff +00 00 00 00 00 00 00 00 ff ec f4 fb e4 e4 ff ff +00 00 00 00 00 00 00 00 ff cf e7 d7 d7 c7 ff ff +00 00 00 00 00 00 00 00 fe fc f8 f8 f9 f8 f9 ff +00 00 00 00 00 00 00 00 3f 1f 1f ff ff ff ff ff +00 00 00 00 00 00 00 00 fe fc f8 f8 f9 f8 f9 ff +00 00 00 00 00 00 00 00 3f 1f 1f ff ff ff ff ff +00 00 00 00 00 00 00 00 ff ff f3 eb e3 eb eb ff +00 00 00 00 00 00 00 00 ff ff df 8f 07 df 8f ff +00 00 00 00 00 00 00 00 ff ff f3 eb e3 eb eb ff +00 00 00 00 00 00 00 00 ff ff 27 07 07 8f df ff +00 00 00 00 00 00 00 00 ff ff f3 eb e3 eb eb ff +00 00 00 00 00 00 00 00 ff ff df 8f 07 8f df ff +00 00 00 00 00 00 00 00 ff ff f3 eb e3 eb eb ff +00 00 00 00 00 00 00 00 ff ff 27 27 df 2f 37 ff +00 00 00 00 00 00 00 00 80 c0 e0 f0 f8 e0 10 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 ff ff e7 fb f7 ef e3 ff +00 00 00 00 00 00 00 00 ff ff df 8f 07 df 8f ff +00 00 00 00 00 00 00 00 ff ff e7 fb f7 ef e3 ff +00 00 00 00 00 00 00 00 ff ff 27 07 07 8f df ff +00 00 00 00 00 00 00 00 ff ff e7 fb f7 ef e3 ff +00 00 00 00 00 00 00 00 ff ff df 8f 07 8f df ff +00 00 00 00 00 00 00 00 ff ff e7 fb f7 ef e3 ff +00 00 00 00 00 00 00 00 ff ff 27 27 df 2f 37 ff +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 ff ff e7 fb e7 fb e7 ff +00 00 00 00 00 00 00 00 ff ff df 8f 07 df 8f ff +00 00 00 00 00 00 00 00 ff ff e7 fb e7 fb e7 ff +00 00 00 00 00 00 00 00 ff ff 27 07 07 8f df ff +00 00 00 00 00 00 00 00 ff ff e7 fb e7 fb e7 ff +00 00 00 00 00 00 00 00 ff ff df 8f 07 8f df ff +00 00 00 00 00 00 00 00 ff ff e7 fb e7 fb e7 ff +00 00 00 00 00 00 00 00 ff ff 27 27 df 2f 37 ff +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 ff ff eb eb e3 fb fb ff +00 00 00 00 00 00 00 00 ff ff df 8f 07 df 8f ff +00 00 00 00 00 00 00 00 ff ff eb eb e3 fb fb ff +00 00 00 00 00 00 00 00 ff ff 27 07 07 8f df ff +00 00 00 00 00 00 00 00 ff ff eb eb e3 fb fb ff +00 00 00 00 00 00 00 00 ff ff df 8f 07 8f df ff +00 00 00 00 00 00 00 00 ff ff eb eb e3 fb fb ff +00 00 00 00 00 00 00 00 ff ff 27 27 df 2f 37 ff +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 ff ff e3 ef e3 fb e7 ff +00 00 00 00 00 00 00 00 ff ff df 8f 07 df 8f ff +00 00 00 00 00 00 00 00 ff ff e3 ef e3 fb e7 ff +00 00 00 00 00 00 00 00 ff ff 27 07 07 8f df ff +00 00 00 00 00 00 00 00 ff ff e3 ef e3 fb e7 ff +00 00 00 00 00 00 00 00 ff ff df 8f 07 8f df ff +00 00 00 00 00 00 00 00 ff ff e3 ef e3 fb e7 ff +00 00 00 00 00 00 00 00 ff ff 27 27 df 2f 37 ff +00 00 00 00 00 00 00 00 f8 f8 fb fb fb f9 f8 fc +00 00 00 00 00 00 00 00 0f 0f ff ff 9f 6f ef 0f +00 00 00 00 00 00 00 00 f8 f8 fb fb fb f9 f8 fc +00 00 00 00 00 00 00 00 0f 0f ff ff 9f 6f ef 0f +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 ff ff f3 ef e3 eb e3 ff +00 00 00 00 00 00 00 00 ff ff df 8f 07 df 8f ff +00 00 00 00 00 00 00 00 ff ff f3 ef e3 eb e3 ff +00 00 00 00 00 00 00 00 ff ff 27 07 07 8f df ff +00 00 00 00 00 00 00 00 ff ff f3 ef e3 eb e3 ff +00 00 00 00 00 00 00 00 ff ff df 8f 07 8f df ff +00 00 00 00 00 00 00 00 ff ff f3 ef e3 eb e3 ff +00 00 00 00 00 00 00 00 ff ff 27 27 df 2f 37 ff +00 00 00 00 00 00 00 00 f8 f0 f0 f2 f3 d9 c1 e1 +00 00 00 00 00 00 00 00 1f 0f ef ef ef ef ff ff +00 00 00 00 00 00 00 00 f8 f0 f0 f2 f3 d9 c1 e1 +00 00 00 00 00 00 00 00 1f 0f ef ef ef ef ff ff +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 ff ff e3 fb f7 f7 f7 ff +00 00 00 00 00 00 00 00 ff ff df 8f 07 df 8f ff +00 00 00 00 00 00 00 00 ff ff e3 fb f7 f7 f7 ff +00 00 00 00 00 00 00 00 ff ff 27 07 07 8f df ff +00 00 00 00 00 00 00 00 ff ff e3 fb f7 f7 f7 ff +00 00 00 00 00 00 00 00 ff ff df 8f 07 8f df ff +00 00 00 00 00 00 00 00 ff ff e3 fb f7 f7 f7 ff +00 00 00 00 00 00 00 00 ff ff 27 27 df 2f 37 ff +00 00 00 00 00 00 00 00 fe fc f8 f8 f9 f8 f9 ff +00 00 00 00 00 00 00 00 3f 1f 1f ff ff ff ff ff +00 00 00 00 00 00 00 00 fe fc f8 f8 f9 f8 f9 ff +00 00 00 00 00 00 00 00 3f 1f 1f ff ff ff ff ff +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 ff ff e3 eb e3 eb e3 ff +00 00 00 00 00 00 00 00 ff ff df 8f 07 df 8f ff +00 00 00 00 00 00 00 00 ff ff e3 eb e3 eb e3 ff +00 00 00 00 00 00 00 00 ff ff 27 07 07 8f df ff +00 00 00 00 00 00 00 00 ff ff e3 eb e3 eb e3 ff +00 00 00 00 00 00 00 00 ff ff df 8f 07 8f df ff +00 00 00 00 00 00 00 00 ff ff e3 eb e3 eb e3 ff +00 00 00 00 00 00 00 00 ff ff 27 27 df 2f 37 ff +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 ff ff e3 eb e3 fb e7 ff +00 00 00 00 00 00 00 00 ff ff df 8f 07 df 8f ff +00 00 00 00 00 00 00 00 ff ff e3 eb e3 fb e7 ff +00 00 00 00 00 00 00 00 ff ff 27 07 07 8f df ff +00 00 00 00 00 00 00 00 ff ff e3 eb e3 fb e7 ff +00 00 00 00 00 00 00 00 ff ff df 8f 07 8f df ff +00 00 00 00 00 00 00 00 ff ff e3 eb e3 fb e7 ff +00 00 00 00 00 00 00 00 ff ff 27 27 df 2f 37 ff +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 ff ff d1 d5 d5 d5 d1 ff +00 00 00 00 00 00 00 00 ff ff df 8f 07 df 8f ff +00 00 00 00 00 00 00 00 ff ff d1 d5 d5 d5 d1 ff +00 00 00 00 00 00 00 00 ff ff 27 07 07 8f df ff +00 00 00 00 00 00 00 00 ff ff d1 d5 d5 d5 d1 ff +00 00 00 00 00 00 00 00 ff ff df 8f 07 8f df ff +00 00 00 00 00 00 00 00 ff ff d1 d5 d5 d5 d1 ff +00 00 00 00 00 00 00 00 ff ff 27 27 df 2f 37 ff +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 ff ff f3 fb fb fb e7 ff +00 00 00 00 00 00 00 00 ff ff df 8f 07 df 8f ff +00 00 00 00 00 00 00 00 ff ff f3 fb fb fb e7 ff +00 00 00 00 00 00 00 00 ff ff 27 07 07 8f df ff +00 00 00 00 00 00 00 00 ff ff f3 fb fb fb e7 ff +00 00 00 00 00 00 00 00 ff ff df 8f 07 8f df ff +00 00 00 00 00 00 00 00 ff ff f3 fb fb fb e7 ff +00 00 00 00 00 00 00 00 ff ff 27 27 df 2f 37 ff +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 ff ff e3 eb eb e7 f3 ff +00 00 00 00 00 00 00 00 ff ff df 8f 07 df 8f ff +00 00 00 00 00 00 00 00 ff ff e3 eb eb e7 f3 ff +00 00 00 00 00 00 00 00 ff ff 27 07 07 8f df ff +00 00 00 00 00 00 00 00 ff ff e3 eb eb e7 f3 ff +00 00 00 00 00 00 00 00 ff ff df 8f 07 8f df ff +00 00 00 00 00 00 00 00 ff ff e3 eb eb e7 f3 ff +00 00 00 00 00 00 00 00 ff ff 27 27 df 2f 37 ff +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 ff ff eb eb e7 eb eb ff +00 00 00 00 00 00 00 00 ff ff df 8f 07 df 8f ff +00 00 00 00 00 00 00 00 ff ff eb eb e7 eb eb ff +00 00 00 00 00 00 00 00 ff ff 27 07 07 8f df ff +00 00 00 00 00 00 00 00 ff ff eb eb e7 eb eb ff +00 00 00 00 00 00 00 00 ff ff df 8f 07 8f df ff +00 00 00 00 00 00 00 00 ff ff eb eb e7 eb eb ff +00 00 00 00 00 00 00 00 ff ff 27 27 df 2f 37 ff +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00