diff --git a/tcc/day1.tal b/tcc/day1.tal new file mode 100644 index 0000000..0e12dac --- /dev/null +++ b/tcc/day1.tal @@ -0,0 +1,51 @@ +|00 @System &vector $2 &pad $6 &r $2 &g $2 &b $2 +|20 @Screen &vector $2 &width $2 &height $2 &auto $1 &pad $1 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 + +|0100 + + #23ef .System/r DEO2 + #3b7f .System/g DEO2 + #665f .System/b DEO2 + ,draw-tree JSR + +BRK + +@draw-tree ( -- ) + + #0060 .Screen/y DEO2 + ( star ) + #0103 + DUP2 ,draw-line JSR + #0203 ,draw-line JSR + ,draw-line JSR + ( tree ) + #8000 + &tree + DUP #02 SFT #3f AND DUP ADD STH + DUP #0f AND STHr ADD #01 ,draw-line JSR + INC GTHk ,&tree JCN + POP2 + ( bark ) + #1000 + &bark + #0802 ,draw-line JSR + INC GTHk ,&bark JCN + POP2 + ( ground ) + #ff03 + +@draw-line ( width color -- ) + + ,&c STR + #00 SWP + DUP2 .Screen/width DEI2 #01 SFT2 SWP2 SUB2 ,&o STR2 + DUP2 ADD2 INC2 #0000 + &l + DUP2 [ LIT2 &o $2 ] ADD2 .Screen/x DEO2 + [ LIT &c $1 ] .Screen/pixel DEO + INC2 GTH2k ,&l JCN + POP2 POP2 + .Screen/y DEI2k INC2 ROT DEO2 + +JMP2r + diff --git a/tcc/day2.tal b/tcc/day2.tal new file mode 100644 index 0000000..0e6554f --- /dev/null +++ b/tcc/day2.tal @@ -0,0 +1,112 @@ +|00 @System &vector $2 &pad $6 &r $2 &g $2 &b $2 +|20 @Screen &vector $2 &width $2 &height $2 &auto $1 &pad $1 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 +|c0 @DateTime &year $2 &month $1 &day $1 &hour $1 &minute $1 &second $1 &dotw $1 &doty $2 &isdst $1 + +|0100 + + #23ef .System/r DEO2 + #3b7f .System/g DEO2 + #665f .System/b DEO2 + ,draw-tree JSR + ;prng-init JSR2 + ( prepare particles ) + .Screen/width DEI2 #0000 + &l + ( addr ) DUP2 #20 SFT2 ;snow ADD2 STH2 + ( x ) DUP2 STH2kr STA2 + ( y ) INC2r INC2r ;prng JSR2 #0100 ( mod2 ) DIV2k MUL2 SUB2 STH2r STA2 + INC2 GTH2k ,&l JCN + POP2 POP2 + ( animate ) + ;on-frame .Screen/vector DEO2 + +BRK + +@draw-tree ( -- ) + + #0060 .Screen/y DEO2 + ( star ) + #0103 + DUP2 ,draw-line JSR + #0203 ,draw-line JSR + ,draw-line JSR + ( tree ) + #8000 + &tree + DUP #02 SFT #3f AND DUP ADD STH + DUP #0f AND STHr ADD #01 ,draw-line JSR + INC GTHk ,&tree JCN + POP2 + ( bark ) + #1000 + &bark + #0802 ,draw-line JSR + INC GTHk ,&bark JCN + POP2 + ( ground ) + #ff03 + +@draw-line ( width color -- ) + + ,&c STR + #00 SWP + DUP2 .Screen/width DEI2 #01 SFT2 SWP2 SUB2 ,&o STR2 + DUP2 ADD2 INC2 #0000 + &l + DUP2 [ LIT2 &o $2 ] ADD2 .Screen/x DEO2 + [ LIT &c $1 ] .Screen/pixel DEO + INC2 GTH2k ,&l JCN + POP2 POP2 + .Screen/y DEI2k INC2 ROT DEO2 + +JMP2r + +@on-frame ( -> ) + + .Screen/width DEI2 #0000 + &l + ;prng JSR2 NIP #07 AND ,&skip JCN + DUP2 #20 SFT2 ;snow ADD2 + ( clear ) DUP2 #40 ,draw-snowflake JSR + ( y ) INC2k INC2 LDA2k INC2 #00f0 DIV2k MUL2 SUB2 SWP2 STA2 + ( draw ) #43 ,draw-snowflake JSR + &skip + INC2 GTH2k ,&l JCN + POP2 POP2 + +BRK + +@draw-snowflake ( addr* color -- ) + + ROT ROT LDA2k .Screen/x DEO2 + INC2 INC2 LDA2 .Screen/y DEO2 + .Screen/pixel DEO + +JMP2r + +@prng-init ( -- ) + + ( seed ) + #00 .DateTime/second DEI + #00 .DateTime/minute DEI #60 SFT2 EOR2 + #00 .DateTime/hour DEI #c0 SFT2 EOR2 ,prng/x STR2 + #00 .DateTime/hour DEI #04 SFT2 + #00 .DateTime/day DEI #10 SFT2 EOR2 + #00 .DateTime/month DEI #60 SFT2 EOR2 + .DateTime/year DEI2 #a0 SFT2 EOR2 ,prng/y STR2 + +JMP2r + +@prng ( -- number* ) + + LIT2 &x $2 + DUP2 #50 SFT2 EOR2 + DUP2 #03 SFT2 EOR2 + LIT2 &y $2 DUP2 ,&x STR2 + DUP2 #01 SFT2 EOR2 EOR2 + ,&y STR2k POP + +JMP2r + +@snow + diff --git a/tcc/day3.tal b/tcc/day3.tal new file mode 100644 index 0000000..f0be900 --- /dev/null +++ b/tcc/day3.tal @@ -0,0 +1,39 @@ +|00 @System &vector $2 &pad $6 &r $2 &g $2 &b $2 +|20 @Screen &vector $2 &width $2 &height $2 &auto $1 &pad $1 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 + +|0000 + + @f $2 + +|0100 + + #ff0f .System/r DEO2 + #f0a0 .System/g DEO2 + #f020 .System/b DEO2 + ( size ) + #0100 .Screen/width DEO2 + #0080 .Screen/height DEO2 + ( animate ) + ;on-frame .Screen/vector DEO2 + +BRK + +@on-frame ( -> ) + + .Screen/height DEI2 #0000 + &v + STHk + DUP2 .Screen/y DEO2 + .Screen/width DEI2 #0000 + &h + DUP2 .Screen/x DEO2 + DUP STHkr ADD #1f AND .f LDZ ADD #03 SFT + .Screen/pixel DEO + INC2 GTH2k ,&h JCN + POP2 POP2 POPr + INC2 GTH2k ,&v JCN + POP2 POP2 + .f LDZk INC SWP STZ + +BRK + diff --git a/tcc/day4.tal b/tcc/day4.tal new file mode 100644 index 0000000..d6a3813 --- /dev/null +++ b/tcc/day4.tal @@ -0,0 +1,183 @@ +|00 @System &vector $2 &pad $6 &r $2 &g $2 &b $2 +|20 @Screen &vector $2 &width $2 &height $2 &auto $1 &pad $1 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 + +|0000 + + @f $2 + +|0100 + + #ff0f .System/r DEO2 + #f0a0 .System/g DEO2 + #f020 .System/b DEO2 + ( size ) + #0100 .Screen/width DEO2 + #0080 .Screen/height DEO2 + ( animate ) + ;on-frame .Screen/vector DEO2 + +BRK + +@on-frame ( -> ) + + .Screen/height DEI2 #0000 + &v + STH2k + DUP2 .Screen/y DEO2 + .Screen/width DEI2 #0000 + &h + DUP2 .Screen/x DEO2 + DUP2 STH2kr ;pixel JSR2 + INC2 GTH2k ,&h JCN + POP2 POP2 POP2r + INC2 GTH2k ,&v JCN + POP2 POP2 + .f LDZ2k INC2 ROT STZ2 + +BRK + +@pixel ( x* y* -- ) + + STH2k + ADD2k .f LDZ2 SUB2 ADD2 + ( y ) DUP2 ADD2 #03ff AND2 DUP2 ADD2 INC2 ;sin ADD2 LDA STH + .f LDZ2 ADD2 + ( x ) #03ff AND2 DUP2 ADD2 ;sin ADD2 LDA STHr + ADD .f LDZ2 STH2r ADD2 DUP2 ADD2 NIP ADD + #04 SFT .Screen/pixel DEO + +JMP2r + +|8000 + +@sin ( xy positions on a circle ) + 8000 8000 8100 8200 8300 8300 8400 8500 +8600 8700 8700 8800 8900 8a00 8a00 8b00 +8c00 8d00 8e00 8e00 8f00 9001 9101 9201 +9201 9301 9401 9501 9501 9602 9702 9802 +9802 9902 9a02 9b02 9c03 9c03 9d03 9e03 +9f03 9f04 a004 a104 a204 a204 a305 a405 +a505 a505 a605 a706 a806 a806 a906 aa07 +ab07 ab07 ac08 ad08 ae08 ae08 af09 b009 +b009 b10a b20a b30a b30a b40b b50b b60b +b60c b70c b80c b80d b90d ba0e ba0e bb0e +bc0f bd0f bd0f be10 bf10 bf11 c011 c111 +c112 c212 c313 c313 c413 c514 c514 c615 +c715 c716 c816 c916 c917 ca17 ca18 cb18 +cc19 cc19 cd1a ce1a ce1b cf1b cf1c d01c +d11d d11d d21e d31e d31f d41f d420 d520 +d521 d621 d722 d722 d823 d823 d924 d924 +da25 db26 db26 dc27 dc27 dd28 dd28 de29 +de2a df2a df2b e02b e02c e12c e12d e22e +e22e e32f e330 e430 e431 e531 e532 e633 +e633 e734 e735 e835 e836 e936 e937 e938 +ea38 ea39 eb3a eb3a ec3b ec3c ec3c ed3d +ed3e ee3e ee3f ee40 ef40 ef41 f042 f042 +f043 f144 f145 f145 f246 f247 f347 f348 +f349 f449 f44a f44b f54c f54c f54d f54e +f64f f64f f650 f751 f751 f752 f753 f854 +f854 f855 f956 f957 f957 f958 fa59 fa5a +fa5a fa5b fa5c fb5d fb5d fb5e fb5f fb60 +fc60 fc61 fc62 fc63 fc63 fd64 fd65 fd66 +fd67 fd67 fd68 fd69 fe6a fe6a fe6b fe6c +fe6d fe6d fe6e fe6f ff70 ff71 ff71 ff72 +ff73 ff74 ff75 ff75 ff76 ff77 ff78 ff78 +ff79 ff7a ff7b ff7c ff7c ff7d ff7e ff7f +ff80 ff80 ff81 ff82 ff83 ff83 ff84 ff85 +ff86 ff87 ff87 ff88 ff89 ff8a ff8a ff8b +ff8c ff8d ff8e ff8e ff8f fe90 fe91 fe92 +fe92 fe93 fe94 fe95 fe95 fd96 fd97 fd98 +fd98 fd99 fd9a fd9b fc9c fc9c fc9d fc9e +fc9f fb9f fba0 fba1 fba2 fba2 faa3 faa4 +faa5 faa5 faa6 f9a7 f9a8 f9a8 f9a9 f8aa +f8ab f8ab f7ac f7ad f7ae f7ae f6af f6b0 +f6b0 f5b1 f5b2 f5b3 f5b3 f4b4 f4b5 f4b6 +f3b6 f3b7 f3b8 f2b8 f2b9 f1ba f1ba f1bb +f0bc f0bd f0bd efbe efbf eebf eec0 eec1 +edc1 edc2 ecc3 ecc3 ecc4 ebc5 ebc5 eac6 +eac7 e9c7 e9c8 e9c9 e8c9 e8ca e7ca e7cb +e6cc e6cc e5cd e5ce e4ce e4cf e3cf e3d0 +e2d1 e2d1 e1d2 e1d3 e0d3 e0d4 dfd4 dfd5 +ded5 ded6 ddd7 ddd7 dcd8 dcd8 dbd9 dbd9 +dada d9db d9db d8dc d8dc d7dd d7dd d6de +d5de d5df d4df d4e0 d3e0 d3e1 d2e1 d1e2 +d1e2 d0e3 cfe3 cfe4 cee4 cee5 cde5 cce6 +cce6 cbe7 cae7 cae8 c9e8 c9e9 c8e9 c7e9 +c7ea c6ea c5eb c5eb c4ec c3ec c3ec c2ed +c1ed c1ee c0ee bfee bfef beef bdf0 bdf0 +bcf0 bbf1 baf1 baf1 b9f2 b8f2 b8f3 b7f3 +b6f3 b6f4 b5f4 b4f4 b3f5 b3f5 b2f5 b1f5 +b0f6 b0f6 aff6 aef7 aef7 adf7 acf7 abf8 +abf8 aaf8 a9f9 a8f9 a8f9 a7f9 a6fa a5fa +a5fa a4fa a3fa a2fb a2fb a1fb a0fb 9ffb +9ffc 9efc 9dfc 9cfc 9cfc 9bfd 9afd 99fd +98fd 98fd 97fd 96fd 95fe 95fe 94fe 93fe +92fe 92fe 91fe 90fe 8fff 8eff 8eff 8dff +8cff 8bff 8aff 8aff 89ff 88ff 87ff 87ff +86ff 85ff 84ff 83ff 83ff 82ff 81ff 80ff +80ff 7fff 7eff 7dff 7cff 7cff 7bff 7aff +79ff 78ff 78ff 77ff 76ff 75ff 75ff 74ff +73ff 72ff 71ff 71ff 70ff 6ffe 6efe 6dfe +6dfe 6cfe 6bfe 6afe 6afe 69fd 68fd 67fd +67fd 66fd 65fd 64fd 63fc 63fc 62fc 61fc +60fc 60fb 5ffb 5efb 5dfb 5dfb 5cfa 5bfa +5afa 5afa 59fa 58f9 57f9 57f9 56f9 55f8 +54f8 54f8 53f7 52f7 51f7 51f7 50f6 4ff6 +4ff6 4ef5 4df5 4cf5 4cf5 4bf4 4af4 49f4 +49f3 48f3 47f3 47f2 46f2 45f1 45f1 44f1 +43f0 42f0 42f0 41ef 40ef 40ee 3fee 3eee +3eed 3ded 3cec 3cec 3bec 3aeb 3aeb 39ea +38ea 38e9 37e9 36e9 36e8 35e8 35e7 34e7 +33e6 33e6 32e5 31e5 31e4 30e4 30e3 2fe3 +2ee2 2ee2 2de1 2ce1 2ce0 2be0 2bdf 2adf +2ade 29de 28dd 28dd 27dc 27dc 26db 26db +25da 24d9 24d9 23d8 23d8 22d7 22d7 21d6 +21d5 20d5 20d4 1fd4 1fd3 1ed3 1ed2 1dd1 +1dd1 1cd0 1ccf 1bcf 1bce 1ace 1acd 19cc +19cc 18cb 18ca 17ca 17c9 16c9 16c8 16c7 +15c7 15c6 14c5 14c5 13c4 13c3 13c3 12c2 +12c1 11c1 11c0 11bf 10bf 10be 0fbd 0fbd +0fbc 0ebb 0eba 0eba 0db9 0db8 0cb8 0cb7 +0cb6 0bb6 0bb5 0bb4 0ab3 0ab3 0ab2 0ab1 +09b0 09b0 09af 08ae 08ae 08ad 08ac 07ab +07ab 07aa 06a9 06a8 06a8 06a7 05a6 05a5 +05a5 05a4 05a3 04a2 04a2 04a1 04a0 049f +039f 039e 039d 039c 039c 029b 029a 0299 +0298 0298 0297 0296 0195 0195 0194 0193 +0192 0192 0191 0190 008f 008e 008e 008d +008c 008b 008a 008a 0089 0088 0087 0087 +0086 0085 0084 0083 0083 0082 0081 0080 +0080 007f 007e 007d 007c 007c 007b 007a +0079 0078 0078 0077 0076 0075 0075 0074 +0073 0072 0071 0071 0070 016f 016e 016d +016d 016c 016b 016a 016a 0269 0268 0267 +0267 0266 0265 0264 0363 0363 0362 0361 +0360 0460 045f 045e 045d 045d 055c 055b +055a 055a 0559 0658 0657 0657 0656 0755 +0754 0754 0853 0852 0851 0851 0950 094f +094f 0a4e 0a4d 0a4c 0a4c 0b4b 0b4a 0b49 +0c49 0c48 0c47 0d47 0d46 0e45 0e45 0e44 +0f43 0f42 0f42 1041 1040 1140 113f 113e +123e 123d 133c 133c 133b 143a 143a 1539 +1538 1638 1637 1636 1736 1735 1835 1834 +1933 1933 1a32 1a31 1b31 1b30 1c30 1c2f +1d2e 1d2e 1e2d 1e2c 1f2c 1f2b 202b 202a +212a 2129 2228 2228 2327 2327 2426 2426 +2525 2624 2624 2723 2723 2822 2822 2921 +2a21 2a20 2b20 2b1f 2c1f 2c1e 2d1e 2e1d +2e1d 2f1c 301c 301b 311b 311a 321a 3319 +3319 3418 3518 3517 3617 3616 3716 3816 +3815 3915 3a14 3a14 3b13 3c13 3c13 3d12 +3e12 3e11 3f11 4011 4010 4110 420f 420f +430f 440e 450e 450e 460d 470d 470c 480c +490c 490b 4a0b 4b0b 4c0a 4c0a 4d0a 4e0a +4f09 4f09 5009 5108 5108 5208 5308 5407 +5407 5507 5606 5706 5706 5806 5905 5a05 +5a05 5b05 5c05 5d04 5d04 5e04 5f04 6004 +6003 6103 6203 6303 6303 6402 6502 6602 +6702 6702 6802 6902 6a01 6a01 6b01 6c01 +6d01 6d01 6e01 6f01 7000 7100 7100 7200 +7300 7400 7500 7500 7600 7700 7800 7800 +7900 7a00 7b00 7c00 7c00 7d00 7e00 7f00 + + diff --git a/tcc/day5.tal b/tcc/day5.tal new file mode 100644 index 0000000..d9335e4 --- /dev/null +++ b/tcc/day5.tal @@ -0,0 +1,90 @@ +|00 @System &vector $2 &pad $6 &r $2 &g $2 &b $2 +|20 @Screen &vector $2 &width $2 &height $2 &auto $1 &pad $1 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 + +|0000 + + @f $2 + +|0100 + + #ff0f .System/r DEO2 + #f0a0 .System/g DEO2 + #f020 .System/b DEO2 + ( size ) + #0100 .Screen/width DEO2 + #0080 .Screen/height DEO2 + ( animate ) + ;on-frame .Screen/vector DEO2 + +BRK + +@print ( short* -- ) + + SWP ,&byte JSR + &byte ( byte -- ) DUP #04 SFT ,&char JSR + &char ( char -- ) #0f AND DUP #09 GTH #27 MUL ADD #30 ADD #18 DEO + +JMP2r + +@on-frame ( -> ) + + .Screen/height DEI2 #0000 + &v + STH2k + DUP2 .Screen/y DEO2 + .Screen/width DEI2 #0000 + &h + DUP2 .Screen/x DEO2 + + + + + + INC2k STH2kr INC2 + + + ;pixel JSR2 + INC2 GTH2k ,&h JCN + POP2 POP2 POP2r + INC2 GTH2k ,&v JCN + POP2 POP2 + .f LDZ2k INC2 ROT STZ2 + +BRK + +@pixel ( x* y* -- ) + + OVR2 OVR2 ;get-quad JSR2 STH + + SWP2 + .Screen/width DEI2 #01 SFT2 GTH2k JMP SWP2 SUB2 + SWP2 + + .Screen/height DEI2 #01 SFT2 GTH2k JMP SWP2 SUB2 + + SWP2 #007f AND2 SWP2 + #0080 MUL2 ADD2 #1fff AND2 + ;atan2 ADD2 LDA + + ( ring ) + DUP #0f AND .f LDZ2 #01 SFT2 NIP #0f AND EQU STH + + #04 SFT + + ( cadran ) + STHr ORA + STHr EOR + + .Screen/pixel DEO + +JMP2r + +@get-quad ( x* y* -- quad ) + + .Screen/height DEI2 #01 SFT2 GTH2 #10 SFT STH + .Screen/width DEI2 #01 SFT2 GTH2 STHr ORA + +JMP2r + +@atan2 ~lut5.tal + diff --git a/tcc/lut5.tal b/tcc/lut5.tal new file mode 100644 index 0000000..a1126ed --- /dev/null +++ b/tcc/lut5.tal @@ -0,0 +1,256 @@ +0000 0000 0000 0000 0001 0101 0101 0101 0101 0202 0202 0202 0202 0203 0303 0303 +0303 0303 0404 0404 0404 0404 0405 0505 0505 0505 0505 0606 0606 0606 0606 0607 +0707 0707 0707 0707 0808 0808 0808 0808 0809 0909 0909 0909 0909 0a0a 0a0a 0a0a +0a0a 0a0b 0b0b 0b0b 0b0b 0b0b 0c0c 0c0c 0c0c 0c0c 0c0d 0d0d 0d0d 0d0d 0d0d 0e0e +ff80 4030 2020 1010 1011 1101 0101 0101 0101 0202 0202 0202 0202 0203 0303 0303 +0303 0303 0404 0404 0404 0404 0405 0505 0505 0505 0505 0606 0606 0606 0606 0607 +0707 0707 0707 0707 0808 0808 0808 0808 0809 0909 0909 0909 0909 0a0a 0a0a 0a0a +0a0a 0a0b 0b0b 0b0b 0b0b 0b0b 0c0c 0c0c 0c0c 0c0c 0c0d 0d0d 0d0d 0d0d 0d0d 0e0e +ffb0 8050 4030 3020 2021 2111 1111 1111 1111 1212 1202 0202 0202 0203 0303 0303 +0303 0303 0404 0404 0404 0404 0405 0505 0505 0505 0505 0606 0606 0606 0606 0607 +0707 0707 0707 0707 0808 0808 0808 0808 0809 0909 0909 0909 0909 0a0a 0a0a 0a0a +0a0a 0a0b 0b0b 0b0b 0b0b 0b0b 0c0c 0c0c 0c0c 0c0c 0c0d 0d0d 0d0d 0d0d 0d0d 0e0e +ffc0 a080 6050 4040 3031 2121 2121 2121 1111 1212 1212 1212 1212 1213 1313 1303 +0303 0303 0404 0404 0404 0404 0405 0505 0505 0505 0505 0606 0606 0606 0606 0607 +0707 0707 0707 0707 0808 0808 0808 0808 0809 0909 0909 0909 0909 0a0a 0a0a 0a0a +0a0a 0a0b 0b0b 0b0b 0b0b 0b0b 0c0c 0c0c 0c0c 0c0c 0c0d 0d0d 0d0d 0d0d 0d0d 0e0e +ffd0 b090 8060 5050 4141 3131 3131 2121 2121 2222 2212 1212 1212 1213 1313 1313 +1313 1313 1414 1414 1404 0404 0405 0505 0505 0505 0505 0606 0606 0606 0606 0607 +0707 0707 0707 0707 0808 0808 0808 0808 0809 0909 0909 0909 0909 0a0a 0a0a 0a0a +0a0a 0a0b 0b0b 0b0b 0b0b 0b0b 0c0c 0c0c 0c0c 0c0c 0c0d 0d0d 0d0d 0d0d 0d0d 0e0e +ffd0 c0a0 9080 7060 5151 4141 4131 3131 3121 2222 2222 2222 2222 1213 1313 1313 +1313 1313 1414 1414 1414 1414 1415 1515 1515 1505 0505 0606 0606 0606 0606 0607 +0707 0707 0707 0707 0808 0808 0808 0808 0809 0909 0909 0909 0909 0a0a 0a0a 0a0a +0a0a 0a0b 0b0b 0b0b 0b0b 0b0b 0c0c 0c0c 0c0c 0c0c 0c0d 0d0d 0d0d 0d0d 0d0d 0e0e +ffe0 c0b0 a080 8071 6151 5151 4141 4131 3132 3232 2222 2222 2222 2223 2323 2313 +1313 1313 1414 1414 1414 1414 1415 1515 1515 1515 1515 1616 1616 1616 1606 0607 +0707 0707 0707 0707 0808 0808 0808 0808 0809 0909 0909 0909 0909 0a0a 0a0a 0a0a +0a0a 0a0b 0b0b 0b0b 0b0b 0b0b 0c0c 0c0c 0c0c 0c0c 0c0d 0d0d 0d0d 0d0d 0d0d 0e0e +ffe0 d0b0 a090 8181 7161 6151 5151 4141 4132 3232 3232 3232 2222 2323 2323 2323 +2323 2323 1414 1414 1414 1414 1415 1515 1515 1515 1515 1616 1616 1616 1616 1617 +1717 1717 1717 1717 0808 0808 0808 0808 0809 0909 0909 0909 0909 0a0a 0a0a 0a0a +0a0a 0a0b 0b0b 0b0b 0b0b 0b0b 0c0c 0c0c 0c0c 0c0c 0c0d 0d0d 0d0d 0d0d 0d0d 0e0e +ffe0 d0c0 b1a1 9181 8171 6161 5151 5141 4242 4242 3232 3232 3232 3323 2323 2323 +2323 2324 2424 2424 2414 1414 1515 1515 1515 1515 1515 1616 1616 1616 1616 1617 +1717 1717 1717 1717 1818 1818 1818 1818 1819 0909 0909 0909 0909 0a0a 0a0a 0a0a +0a0a 0a0b 0b0b 0b0b 0b0b 0b0b 0c0c 0c0c 0c0c 0c0c 0d0d 0d0d 0d0d 0d0d 0d0e 0e0e +ffe1 d1c1 b1a1 a191 8181 7161 6161 5151 5242 4242 4242 3232 3232 3333 3333 2323 +2323 2324 2424 2424 2424 2424 2525 1515 1515 1515 1516 1616 1616 1616 1616 1717 +1717 1717 1717 1718 1818 1818 1818 1818 1919 1919 1919 1919 191a 1a1a 0a0a 0a0a +0a0a 0b0b 0b0b 0b0b 0b0b 0b0c 0c0c 0c0c 0c0c 0c0c 0d0d 0d0d 0d0d 0d0d 0d0e 0e0e +ffe1 d1d1 c1b1 a191 9181 8171 7161 6152 5252 5242 4242 4242 4233 3333 3333 3333 +3323 2324 2424 2424 2424 2424 2525 2525 2525 2515 1516 1616 1616 1616 1616 1717 +1717 1717 1717 1718 1818 1818 1818 1818 1919 1919 1919 1919 191a 1a1a 1a1a 1a1a +1a1a 1b1b 1b1b 0b0b 0b0b 0b0c 0c0c 0c0c 0c0c 0c0c 0d0d 0d0d 0d0d 0d0d 0d0e 0e0e +fff1 e1d1 c1b1 a1a1 9191 8181 7171 6162 6252 5252 5242 4242 4243 4333 3333 3333 +3333 3334 3424 2424 2424 2424 2525 2525 2525 2525 2526 2626 1616 1616 1616 1717 +1717 1717 1717 1718 1818 1818 1818 1818 1919 1919 1919 1919 191a 1a1a 1a1a 1a1a +1a1a 1b1b 1b1b 1b1b 1b1b 1b1c 1c1c 1c1c 0c0c 0c0c 0d0d 0d0d 0d0d 0d0d 0d0e 0e0e +fff1 e1d1 c1b1 b1a1 a191 8181 8171 7262 6262 5252 5252 5242 4343 4343 4333 3333 +3333 3434 3434 3434 2424 2424 2525 2525 2525 2525 2526 2626 2626 2626 2616 1717 +1717 1717 1717 1718 1818 1818 1818 1818 1919 1919 1919 1919 191a 1a1a 1a1a 1a1a +1a1a 1b1b 1b1b 1b1b 1b1b 1b1c 1c1c 1c1c 1c1c 1c1c 1d1d 1d1d 1d1d 0d0d 0d0e 0e0e +fff1 e1d1 c1c1 b1a1 a191 9181 8182 7272 6262 6262 5252 5252 5343 4343 4343 4343 +3333 3434 3434 3434 3434 3425 2525 2525 2525 2525 2526 2626 2626 2626 2626 2727 +2727 1717 1717 1718 1818 1818 1818 1818 1919 1919 1919 1919 191a 1a1a 1a1a 1a1a +1a1a 1b1b 1b1b 1b1b 1b1b 1b1c 1c1c 1c1c 1c1c 1c1c 1d1d 1d1d 1d1d 1d1d 1d1e 1e1e +fff1 e1d1 d1c1 b1b1 a1a1 9191 8282 8272 7272 6262 6252 5253 5353 5343 4343 4343 +4344 3434 3434 3434 3434 3435 3535 3525 2525 2525 2626 2626 2626 2626 2626 2727 +2727 2727 2727 2718 1818 1818 1818 1818 1919 1919 1919 1919 191a 1a1a 1a1a 1a1a +1a1a 1b1b 1b1b 1b1b 1b1b 1b1c 1c1c 1c1c 1c1c 1c1c 1d1d 1d1d 1d1d 1d1d 1d1e 1e1e +fff1 e1d1 d1c1 c1b1 b1a1 a292 9282 8282 7272 7262 6262 6253 5353 5353 5343 4343 +4344 4444 4434 3434 3434 3435 3535 3535 3535 2525 2626 2626 2626 2626 2627 2727 +2727 2727 2727 2828 2828 2828 1818 1818 1919 1919 1919 1919 191a 1a1a 1a1a 1a1a +1a1a 1b1b 1b1b 1b1b 1b1b 1b1c 1c1c 1c1c 1c1c 1c1c 1d1d 1d1d 1d1d 1d1d 1d1e 1e1e +fff1 e1e1 d1c1 c1b1 b2a2 a292 9292 8282 8272 7272 6262 6363 5353 5353 5353 4343 +4444 4444 4444 4434 3434 3535 3535 3535 3535 3535 3626 2626 2626 2626 2627 2727 +2727 2727 2727 2828 2828 2828 2828 2829 2919 1919 1919 1919 1a1a 1a1a 1a1a 1a1a +1a1a 1b1b 1b1b 1b1b 1b1b 1b1c 1c1c 1c1c 1c1c 1c1c 1d1d 1d1d 1d1d 1d1d 1d1e 1e1e +fff1 e1e1 d1d1 c2c2 b2b2 a2a2 9292 8282 8282 7272 7263 6363 6363 5353 5353 5353 +4444 4444 4444 4444 4444 3535 3535 3535 3535 3536 3636 3636 3626 2626 2627 2727 +2727 2727 2727 2828 2828 2828 2828 2829 2929 2929 2929 1919 1a1a 1a1a 1a1a 1a1a +1a1b 1b1b 1b1b 1b1b 1b1b 1c1c 1c1c 1c1c 1c1c 1c1c 1d1d 1d1d 1d1d 1d1d 1d1e 1e1e +fff2 e2e2 d2d2 c2c2 b2b2 a2a2 a292 9282 8282 8272 7373 6363 6363 6353 5353 5354 +5454 4444 4444 4444 4445 4545 3535 3535 3535 3536 3636 3636 3636 3636 2727 2727 +2727 2727 2727 2828 2828 2828 2828 2829 2929 2929 2929 2929 2a2a 2a1a 1a1a 1a1a +1a1b 1b1b 1b1b 1b1b 1b1b 1c1c 1c1c 1c1c 1c1c 1c1d 1d1d 1d1d 1d1d 1d1d 1e1e 1e1e +fff2 e2e2 d2d2 c2c2 b2b2 b2a2 a292 9292 8282 8283 7373 7373 6363 6363 6353 5354 +5454 5454 4444 4444 4445 4545 4545 3535 3535 3536 3636 3636 3636 3636 3737 3727 +2727 2727 2728 2828 2828 2828 2828 2829 2929 2929 2929 2929 2a2a 2a2a 2a2a 2a2a +1a1b 1b1b 1b1b 1b1b 1b1b 1c1c 1c1c 1c1c 1c1c 1c1d 1d1d 1d1d 1d1d 1d1d 1e1e 1e1e +fff2 e2e2 d2d2 d2c2 c2b2 b2a2 a2a2 9292 9282 8383 8373 7373 7363 6363 6363 5454 +5454 5454 5454 4444 4545 4545 4545 4545 4535 3636 3636 3636 3636 3636 3737 3737 +3737 2727 2728 2828 2828 2828 2828 2929 2929 2929 2929 2929 2a2a 2a2a 2a2a 2a2a +2a2b 2b2b 2b1b 1b1b 1b1b 1c1c 1c1c 1c1c 1c1c 1c1d 1d1d 1d1d 1d1d 1d1d 1e1e 1e1e +fff2 f2e2 e2d2 d2c2 c2b2 b2b2 a2a2 a292 9293 8383 8383 7373 7373 6363 6364 6464 +5454 5454 5454 5454 4545 4545 4545 4545 4545 4636 3636 3636 3636 3637 3737 3737 +3737 3737 3738 2828 2828 2828 2828 2929 2929 2929 2929 292a 2a2a 2a2a 2a2a 2a2a +2a2b 2b2b 2b2b 2b2b 2b2b 1c1c 1c1c 1c1c 1c1c 1c1d 1d1d 1d1d 1d1d 1d1d 1e1e 1e1e +fff2 f2e2 e2d2 d2c2 c2c2 b2b2 a2a2 a292 9393 9383 8383 8373 7373 7363 6364 6464 +6454 5454 5454 5455 5555 4545 4545 4545 4546 4646 4646 3636 3636 3637 3737 3737 +3737 3737 3738 3838 3828 2828 2828 2929 2929 2929 2929 292a 2a2a 2a2a 2a2a 2a2a +2b2b 2b2b 2b2b 2b2b 2b2b 2c2c 2c2c 2c1c 1c1c 1c1d 1d1d 1d1d 1d1d 1d1d 1e1e 1e1e +fff2 f2e2 e2d2 d2c2 c2c2 b2b2 b2a2 a3a3 9393 9383 8383 8383 7373 7373 7464 6464 +6464 6454 5454 5455 5555 5555 4545 4545 4546 4646 4646 4646 3636 3637 3737 3737 +3737 3737 3838 3838 3838 3838 2828 2929 2929 2929 2929 292a 2a2a 2a2a 2a2a 2a2a +2b2b 2b2b 2b2b 2b2b 2b2c 2c2c 2c2c 2c2c 2c2c 2d2d 1d1d 1d1d 1d1d 1d1d 1e1e 1e1e +fff2 f2e2 e2d2 d2d2 c2c2 b2b2 b3a3 a3a3 a393 9393 8383 8383 8373 7374 7474 6464 +6464 6464 5454 5555 5555 5555 5545 4545 4646 4646 4646 4646 4646 3737 3737 3737 +3737 3737 3838 3838 3838 3838 3839 3939 2929 2929 2929 292a 2a2a 2a2a 2a2a 2a2a +2b2b 2b2b 2b2b 2b2b 2b2c 2c2c 2c2c 2c2c 2c2c 2d2d 2d2d 2d2d 2d1d 1d1e 1e1e 1e1e +fff2 f2e2 e2d2 d2d2 c2c2 c3b3 b3b3 a3a3 a393 9393 9383 8383 8383 7474 7474 7464 +6464 6464 6464 5555 5555 5555 5555 5545 4646 4646 4646 4646 4646 4747 4737 3737 +3737 3737 3838 3838 3838 3838 3839 3939 3939 3929 2929 2a2a 2a2a 2a2a 2a2a 2a2a +2b2b 2b2b 2b2b 2b2b 2b2c 2c2c 2c2c 2c2c 2c2c 2d2d 2d2d 2d2d 2d2d 2d2e 2e2e 1e1e +fff2 f2e2 e2e2 d2d3 c3c3 c3b3 b3b3 a3a3 a3a3 9393 9393 8383 8384 8474 7474 7474 +6464 6464 6465 6555 5555 5555 5555 5556 5646 4646 4646 4646 4647 4747 4747 4737 +3737 3738 3838 3838 3838 3838 3839 3939 3939 3939 3939 2a2a 2a2a 2a2a 2a2a 2a2b +2b2b 2b2b 2b2b 2b2b 2b2c 2c2c 2c2c 2c2c 2c2c 2d2d 2d2d 2d2d 2d2d 2d2e 2e2e 2e2e +fff3 f3e3 e3e3 d3d3 d3c3 c3c3 b3b3 b3a3 a3a3 a393 9393 9383 8484 8484 7474 7474 +7464 6464 6565 6565 6555 5555 5555 5556 5656 5646 4646 4646 4647 4747 4747 4747 +4747 3738 3838 3838 3838 3838 3939 3939 3939 3939 3939 3a3a 3a3a 2a2a 2a2a 2a2b +2b2b 2b2b 2b2b 2b2b 2c2c 2c2c 2c2c 2c2c 2c2c 2d2d 2d2d 2d2d 2d2d 2d2e 2e2e 2e2e +fff3 f3e3 e3e3 d3d3 d3c3 c3c3 b3b3 b3a3 a3a3 a393 9393 9384 8484 8484 8474 7474 +7474 7465 6565 6565 6565 5555 5555 5656 5656 5656 5646 4646 4747 4747 4747 4747 +4747 4848 3838 3838 3838 3838 3939 3939 3939 3939 393a 3a3a 3a3a 3a3a 3a2a 2a2b +2b2b 2b2b 2b2b 2b2b 2c2c 2c2c 2c2c 2c2c 2c2d 2d2d 2d2d 2d2d 2d2d 2d2e 2e2e 2e2e +fff3 f3e3 e3e3 d3d3 d3c3 c3c3 c3b3 b3b3 a3a3 a3a3 9394 9494 8484 8484 8484 7474 +7474 7475 6565 6565 6565 6565 5555 5656 5656 5656 5656 5646 4747 4747 4747 4747 +4747 4848 4848 4838 3838 3838 3939 3939 3939 3939 393a 3a3a 3a3a 3a3a 3a3a 3a3b +2b2b 2b2b 2b2b 2b2b 2c2c 2c2c 2c2c 2c2c 2c2d 2d2d 2d2d 2d2d 2d2d 2e2e 2e2e 2e2e +fff3 f3e3 e3e3 d3d3 d3d3 c3c3 c3b3 b3b3 b3a3 a3a3 a494 9494 9484 8484 8484 8474 +7474 7575 7565 6565 6565 6565 6556 5656 5656 5656 5656 5657 5747 4747 4747 4747 +4748 4848 4848 4848 4838 3839 3939 3939 3939 3939 393a 3a3a 3a3a 3a3a 3a3a 3b3b +3b3b 3b2b 2b2b 2b2b 2c2c 2c2c 2c2c 2c2c 2c2d 2d2d 2d2d 2d2d 2d2d 2e2e 2e2e 2e2e +fff3 f3f3 e3e3 e3d3 d3d3 c3c3 c3b3 b3b3 b3a3 a4a4 a494 9494 9494 8484 8484 8484 +7475 7575 7575 6565 6565 6565 6666 6656 5656 5656 5656 5657 5757 4747 4747 4747 +4748 4848 4848 4848 4848 4839 3939 3939 3939 3939 3a3a 3a3a 3a3a 3a3a 3a3a 3b3b +3b3b 3b3b 3b3b 3b2c 2c2c 2c2c 2c2c 2c2c 2c2d 2d2d 2d2d 2d2d 2d2d 2e2e 2e2e 2e2e +fff3 f3f3 e3e3 e3d3 d3d3 c3c3 c3c3 b3b3 b4b4 a4a4 a4a4 9494 9494 9484 8484 8484 +8575 7575 7575 7565 6565 6565 6666 6666 5656 5656 5656 5757 5757 5757 4747 4747 +4848 4848 4848 4848 4848 4949 4949 3939 3939 3939 3a3a 3a3a 3a3a 3a3a 3a3a 3b3b +3b3b 3b3b 3b3b 3b3c 3c3c 2c2c 2c2c 2c2c 2d2d 2d2d 2d2d 2d2d 2d2d 2e2e 2e2e 2e2e +fff3 f3f3 e3e3 e3d3 d3d3 d3c3 c3c3 b4b4 b4b4 a4a4 a4a4 a494 9494 9494 8484 8485 +8585 7575 7575 7575 7565 6566 6666 6666 6666 5656 5656 5757 5757 5757 5757 4747 +4848 4848 4848 4848 4848 4949 4949 4949 3939 3939 3a3a 3a3a 3a3a 3a3a 3a3b 3b3b +3b3b 3b3b 3b3b 3b3c 3c3c 3c3c 3c2c 2c2c 2d2d 2d2d 2d2d 2d2d 2d2e 2e2e 2e2e 2e2e +fff3 f3f3 e3e3 e3d3 d3d3 d3c3 c4c4 c4b4 b4b4 b4a4 a4a4 a494 9494 9494 8484 8585 +8585 8575 7575 7575 7575 6666 6666 6666 6666 6656 5657 5757 5757 5757 5757 5758 +4848 4848 4848 4848 4849 4949 4949 4949 4949 493a 3a3a 3a3a 3a3a 3a3a 3a3b 3b3b +3b3b 3b3b 3b3b 3c3c 3c3c 3c3c 3c3c 3c3c 3d2d 2d2d 2d2d 2d2d 2d2e 2e2e 2e2e 2e2e +fff3 f3f3 e3e3 e3d3 d4d4 d4c4 c4c4 c4b4 b4b4 b4a4 a4a4 a4a4 9494 9494 9585 8585 +8585 8585 7575 7575 7576 7666 6666 6666 6666 6666 6757 5757 5757 5757 5757 5758 +5858 4848 4848 4848 4849 4949 4949 4949 4949 494a 4a3a 3a3a 3a3a 3a3a 3b3b 3b3b +3b3b 3b3b 3b3b 3c3c 3c3c 3c3c 3c3c 3c3d 3d3d 3d3d 2d2d 2d2d 2d2e 2e2e 2e2e 2e2e +fff4 f4f4 e4e4 e4e4 d4d4 d4c4 c4c4 c4b4 b4b4 b4b4 a4a4 a4a4 a494 9495 9595 8585 +8585 8585 8575 7575 7676 7676 6666 6666 6666 6666 6767 5757 5757 5757 5757 5858 +5858 5858 4848 4848 4949 4949 4949 4949 4949 4a4a 4a4a 4a3a 3a3a 3a3a 3b3b 3b3b +3b3b 3b3b 3b3b 3c3c 3c3c 3c3c 3c3c 3c3d 3d3d 3d3d 3d3d 3d2d 2e2e 2e2e 2e2e 2e2e +fff4 f4f4 e4e4 e4e4 d4d4 d4d4 c4c4 c4c4 b4b4 b4b4 a4a4 a4a4 a494 9595 9595 9585 +8585 8585 8585 7576 7676 7676 7676 6666 6666 6667 6767 6767 5757 5757 5757 5858 +5858 5858 5858 4848 4949 4949 4949 4949 4949 4a4a 4a4a 4a4a 4a4a 3a3a 3b3b 3b3b +3b3b 3b3b 3b3c 3c3c 3c3c 3c3c 3c3c 3c3d 3d3d 3d3d 3d3d 3d3d 3e3e 2e2e 2e2e 2e2e +fff4 f4f4 e4e4 e4e4 d4d4 d4d4 c4c4 c4c4 b4b4 b4b4 b4a4 a4a4 a5a5 9595 9595 9595 +8585 8585 8585 8676 7676 7676 7676 7666 6666 6767 6767 6767 6757 5757 5758 5858 +5858 5858 5858 5859 4949 4949 4949 4949 494a 4a4a 4a4a 4a4a 4a4a 4a4b 3b3b 3b3b +3b3b 3b3b 3b3c 3c3c 3c3c 3c3c 3c3c 3d3d 3d3d 3d3d 3d3d 3d3d 3e3e 3e3e 3e3e 2e2e +fff4 f4f4 e4e4 e4e4 d4d4 d4d4 c4c4 c4c4 c4b4 b4b4 b4a4 a5a5 a5a5 a595 9595 9595 +9585 8585 8586 8686 7676 7676 7676 7676 6667 6767 6767 6767 6767 6757 5858 5858 +5858 5858 5858 5859 5949 4949 4949 4949 494a 4a4a 4a4a 4a4a 4a4a 4a4b 4b4b 4b3b +3b3b 3b3b 3c3c 3c3c 3c3c 3c3c 3c3c 3d3d 3d3d 3d3d 3d3d 3d3e 3e3e 3e3e 3e3e 3e3e +fff4 f4f4 e4e4 e4e4 d4d4 d4d4 d4c4 c4c4 c4b4 b4b4 b5b5 a5a5 a5a5 a595 9595 9595 +9585 8585 8686 8686 8676 7676 7676 7676 7667 6767 6767 6767 6767 6767 5858 5858 +5858 5858 5858 5959 5959 5949 4949 4949 4a4a 4a4a 4a4a 4a4a 4a4a 4b4b 4b4b 4b4b +4b3b 3b3b 3c3c 3c3c 3c3c 3c3c 3c3c 3d3d 3d3d 3d3d 3d3d 3d3e 3e3e 3e3e 3e3e 3e3e +fff4 f4f4 f4e4 e4e4 e4d4 d4d4 d4c4 c4c4 c4b4 b5b5 b5b5 a5a5 a5a5 a5a5 9595 9595 +9595 8586 8686 8686 8686 7676 7676 7676 7777 6767 6767 6767 6767 6768 6868 5858 +5858 5858 5858 5959 5959 5959 5949 4949 4a4a 4a4a 4a4a 4a4a 4a4a 4b4b 4b4b 4b4b +4b4b 4b3b 3c3c 3c3c 3c3c 3c3c 3c3d 3d3d 3d3d 3d3d 3d3d 3d3e 3e3e 3e3e 3e3e 3e3e +fff4 f4f4 f4e4 e4e4 e4d4 d4d4 d4c4 c4c4 c5c5 b5b5 b5b5 b5a5 a5a5 a5a5 a595 9595 +9595 9686 8686 8686 8686 8676 7676 7677 7777 7777 6767 6767 6767 6868 6868 6858 +5858 5858 5859 5959 5959 5959 5959 594a 4a4a 4a4a 4a4a 4a4a 4a4b 4b4b 4b4b 4b4b +4b4b 4b4c 4c4c 3c3c 3c3c 3c3c 3c3d 3d3d 3d3d 3d3d 3d3d 3e3e 3e3e 3e3e 3e3e 3e3e +fff4 f4f4 f4e4 e4e4 e4d4 d4d4 d4d5 c5c5 c5c5 b5b5 b5b5 b5a5 a5a5 a5a5 a595 9595 +9596 9696 8686 8686 8686 8686 7676 7777 7777 7777 7767 6767 6767 6868 6868 6868 +6858 5858 5859 5959 5959 5959 5959 595a 5a4a 4a4a 4a4a 4a4a 4a4b 4b4b 4b4b 4b4b +4b4b 4b4c 4c4c 4c4c 3c3c 3c3c 3c3d 3d3d 3d3d 3d3d 3d3d 3e3e 3e3e 3e3e 3e3e 3e3e +fff4 f4f4 f4e4 e4e4 e5d5 d5d5 d5d5 c5c5 c5c5 c5b5 b5b5 b5b5 a5a5 a5a5 a5a5 9596 +9696 9696 9686 8686 8686 8686 8677 7777 7777 7777 7777 6767 6768 6868 6868 6868 +6868 5858 5959 5959 5959 5959 5959 5a5a 5a5a 5a4a 4a4a 4a4a 4b4b 4b4b 4b4b 4b4b +4b4b 4c4c 4c4c 4c4c 4c4c 4c3c 3d3d 3d3d 3d3d 3d3d 3d3d 3e3e 3e3e 3e3e 3e3e 3e3f +fff5 f5f5 f5e5 e5e5 e5d5 d5d5 d5d5 c5c5 c5c5 c5b5 b5b5 b5b5 b5a5 a5a5 a5a5 a696 +9696 9696 9686 8686 8686 8686 8787 7777 7777 7777 7777 7767 6868 6868 6868 6868 +6868 6869 5959 5959 5959 5959 5959 5a5a 5a5a 5a5a 5a4a 4a4a 4b4b 4b4b 4b4b 4b4b +4b4b 4c4c 4c4c 4c4c 4c4c 4c4c 4d3d 3d3d 3d3d 3d3d 3d3e 3e3e 3e3e 3e3e 3e3e 3e3f +fff5 f5f5 f5e5 e5e5 e5e5 d5d5 d5d5 c5c5 c5c5 c5c5 b5b5 b5b5 b5a5 a5a5 a6a6 a696 +9696 9696 9696 8686 8686 8687 8787 8777 7777 7777 7777 7778 7868 6868 6868 6868 +6868 6869 6959 5959 5959 5959 595a 5a5a 5a5a 5a5a 5a5a 5a4b 4b4b 4b4b 4b4b 4b4b +4b4c 4c4c 4c4c 4c4c 4c4c 4c4d 4d4d 4d4d 3d3d 3d3d 3d3e 3e3e 3e3e 3e3e 3e3e 3e3f +fff5 f5f5 f5e5 e5e5 e5e5 d5d5 d5d5 d5c5 c5c5 c5c5 b5b5 b5b5 b5b5 a6a6 a6a6 a6a6 +9696 9696 9696 9686 8686 8787 8787 8787 7777 7777 7777 7878 7878 6868 6868 6868 +6868 6969 6969 6959 5959 5959 595a 5a5a 5a5a 5a5a 5a5a 5a5b 4b4b 4b4b 4b4b 4b4b +4b4c 4c4c 4c4c 4c4c 4c4c 4c4d 4d4d 4d4d 4d4d 3d3d 3d3e 3e3e 3e3e 3e3e 3e3e 3f3f +fff5 f5f5 f5e5 e5e5 e5e5 d5d5 d5d5 d5c5 c5c5 c5c5 b5b5 b5b5 b6b6 a6a6 a6a6 a6a6 +a696 9696 9696 9696 8687 8787 8787 8787 8777 7777 7777 7878 7878 7868 6868 6868 +6869 6969 6969 6969 5959 5959 5a5a 5a5a 5a5a 5a5a 5a5a 5b5b 5b5b 4b4b 4b4b 4b4b +4c4c 4c4c 4c4c 4c4c 4c4c 4d4d 4d4d 4d4d 4d4d 4d4d 3e3e 3e3e 3e3e 3e3e 3e3e 3f3f +fff5 f5f5 f5e5 e5e5 e5e5 d5d5 d5d5 d5c5 c5c5 c5c5 c5b5 b6b6 b6b6 b6a6 a6a6 a6a6 +a696 9696 9696 9697 9787 8787 8787 8787 8787 7777 7778 7878 7878 7878 6868 6868 +6969 6969 6969 6969 6969 595a 5a5a 5a5a 5a5a 5a5a 5a5a 5b5b 5b5b 5b5b 4b4b 4b4b +4c4c 4c4c 4c4c 4c4c 4c4c 4d4d 4d4d 4d4d 4d4d 4d4d 4e4e 4e3e 3e3e 3e3e 3e3f 3f3f +fff5 f5f5 f5e5 e5e5 e5e5 d5d5 d5d5 d5d5 c5c5 c5c5 c6b6 b6b6 b6b6 b6a6 a6a6 a6a6 +a6a6 9696 9696 9797 9797 8787 8787 8787 8787 8777 7878 7878 7878 7878 7868 6868 +6969 6969 6969 6969 6969 695a 5a5a 5a5a 5a5a 5a5a 5a5b 5b5b 5b5b 5b5b 5b5b 4b4c +4c4c 4c4c 4c4c 4c4c 4c4d 4d4d 4d4d 4d4d 4d4d 4d4e 4e4e 4e4e 4e3e 3e3e 3e3f 3f3f +fff5 f5f5 f5f5 e5e5 e5e5 e5d5 d5d5 d5d5 c5c6 c6c6 c6c6 b6b6 b6b6 b6b6 a6a6 a6a6 +a6a6 a696 9697 9797 9797 8787 8787 8787 8787 8788 7878 7878 7878 7878 7878 7869 +6969 6969 6969 6969 6969 6a6a 6a5a 5a5a 5a5a 5a5a 5a5b 5b5b 5b5b 5b5b 5b5b 5b5c +4c4c 4c4c 4c4c 4c4c 4c4d 4d4d 4d4d 4d4d 4d4d 4d4e 4e4e 4e4e 4e4e 4e4e 3e3f 3f3f +fff5 f5f5 f5f5 e5e5 e5e5 e5d5 d5d5 d6d6 c6c6 c6c6 c6c6 b6b6 b6b6 b6b6 a6a6 a6a6 +a6a6 a697 9797 9797 9797 9787 8787 8787 8787 8888 8878 7878 7878 7878 7878 7979 +6969 6969 6969 6969 696a 6a6a 6a6a 5a5a 5a5a 5a5a 5b5b 5b5b 5b5b 5b5b 5b5b 5c5c +5c5c 4c4c 4c4c 4c4c 4d4d 4d4d 4d4d 4d4d 4d4d 4e4e 4e4e 4e4e 4e4e 4e4e 4f4f 3f3f +fff5 f5f5 f5f5 e5e5 e5e6 e6d6 d6d6 d6d6 d6c6 c6c6 c6c6 b6b6 b6b6 b6b6 b6a6 a6a6 +a6a6 a7a7 9797 9797 9797 9797 8787 8787 8788 8888 8888 7878 7878 7878 7879 7979 +7969 6969 6969 6969 696a 6a6a 6a6a 6a6a 5a5a 5a5b 5b5b 5b5b 5b5b 5b5b 5b5b 5c5c +5c5c 5c5c 4c4c 4c4c 4d4d 4d4d 4d4d 4d4d 4d4d 4e4e 4e4e 4e4e 4e4e 4e4e 4f4f 4f4f +fff6 f6f6 f6f6 e6e6 e6e6 e6d6 d6d6 d6d6 d6c6 c6c6 c6c6 c6b6 b6b6 b6b6 b6a6 a6a6 +a7a7 a7a7 a797 9797 9797 9797 9787 8788 8888 8888 8888 8878 7878 7878 7979 7979 +7979 6969 6969 6969 6a6a 6a6a 6a6a 6a6a 6a5a 5a5b 5b5b 5b5b 5b5b 5b5b 5b5c 5c5c +5c5c 5c5c 5c5c 4c4d 4d4d 4d4d 4d4d 4d4d 4d4e 4e4e 4e4e 4e4e 4e4e 4e4f 4f4f 4f4f +fff6 f6f6 f6f6 e6e6 e6e6 e6d6 d6d6 d6d6 d6c6 c6c6 c6c6 c6b6 b6b6 b6b6 b6b6 a7a7 +a7a7 a7a7 a797 9797 9797 9797 9797 8888 8888 8888 8888 8888 7878 7879 7979 7979 +7979 7979 6969 696a 6a6a 6a6a 6a6a 6a6a 6a6a 6b5b 5b5b 5b5b 5b5b 5b5b 5b5c 5c5c +5c5c 5c5c 5c5c 5c4d 4d4d 4d4d 4d4d 4d4d 4d4e 4e4e 4e4e 4e4e 4e4e 4e4f 4f4f 4f4f +fff6 f6f6 f6f6 e6e6 e6e6 e6e6 d6d6 d6d6 d6c6 c6c6 c6c6 c6c6 b6b6 b6b6 b7b7 a7a7 +a7a7 a7a7 a7a7 9797 9797 9797 9798 8888 8888 8888 8888 8888 8878 7979 7979 7979 +7979 7979 7969 6a6a 6a6a 6a6a 6a6a 6a6a 6a6b 6b6b 5b5b 5b5b 5b5b 5b5b 5c5c 5c5c +5c5c 5c5c 5c5c 5d5d 5d4d 4d4d 4d4d 4d4d 4e4e 4e4e 4e4e 4e4e 4e4e 4f4f 4f4f 4f4f +fff6 f6f6 f6f6 e6e6 e6e6 e6e6 d6d6 d6d6 d6d6 c6c6 c6c6 c6c6 b6b6 b7b7 b7b7 b7a7 +a7a7 a7a7 a7a7 a797 9797 9797 9898 9888 8888 8888 8888 8888 8889 7979 7979 7979 +7979 7979 797a 6a6a 6a6a 6a6a 6a6a 6a6a 6a6b 6b6b 6b6b 5b5b 5b5b 5b5c 5c5c 5c5c +5c5c 5c5c 5c5c 5d5d 5d5d 5d4d 4d4d 4d4d 4e4e 4e4e 4e4e 4e4e 4e4e 4f4f 4f4f 4f4f +fff6 f6f6 f6f6 e6e6 e6e6 e6e6 d6d6 d6d6 d6d6 c6c6 c6c6 c6c6 c7b7 b7b7 b7b7 b7b7 +a7a7 a7a7 a7a7 a797 9797 9898 9898 9898 8888 8888 8888 8888 8989 8979 7979 7979 +7979 7979 797a 7a6a 6a6a 6a6a 6a6a 6a6a 6b6b 6b6b 6b6b 6b5b 5b5b 5b5c 5c5c 5c5c +5c5c 5c5c 5c5d 5d5d 5d5d 5d5d 5d4d 4d4e 4e4e 4e4e 4e4e 4e4e 4e4f 4f4f 4f4f 4f4f +fff6 f6f6 f6f6 e6e6 e6e6 e6e6 d6d6 d6d6 d6d6 c6c6 c6c7 c7c7 c7b7 b7b7 b7b7 b7b7 +a7a7 a7a7 a7a7 a7a7 9798 9898 9898 9898 9888 8888 8888 8889 8989 8989 7979 7979 +7979 7979 7a7a 7a7a 6a6a 6a6a 6a6a 6a6b 6b6b 6b6b 6b6b 6b6b 6b5b 5c5c 5c5c 5c5c +5c5c 5c5c 5c5d 5d5d 5d5d 5d5d 5d5d 5d4e 4e4e 4e4e 4e4e 4e4e 4e4f 4f4f 4f4f 4f4f +fff6 f6f6 f6f6 e6e6 e6e6 e6e6 d6d6 d6d6 d6d6 d7c7 c7c7 c7c7 c7b7 b7b7 b7b7 b7b7 +b7a7 a7a7 a7a7 a7a8 a898 9898 9898 9898 9898 8888 8888 8989 8989 8989 8979 7979 +7979 797a 7a7a 7a7a 7a7a 6a6a 6a6a 6b6b 6b6b 6b6b 6b6b 6b6b 6b6c 5c5c 5c5c 5c5c +5c5c 5c5c 5d5d 5d5d 5d5d 5d5d 5d5d 5e5e 5e4e 4e4e 4e4e 4e4e 4e4f 4f4f 4f4f 4f4f +fff6 f6f6 f6f6 f6e6 e6e6 e6e6 e6d6 d6d7 d7d7 d7c7 c7c7 c7c7 c7c7 b7b7 b7b7 b7b7 +b7a7 a7a7 a7a7 a8a8 a898 9898 9898 9898 9898 9888 8889 8989 8989 8989 8989 7979 +7979 7a7a 7a7a 7a7a 7a7a 7a6a 6a6a 6b6b 6b6b 6b6b 6b6b 6b6b 6b6c 6c6c 5c5c 5c5c +5c5c 5c5d 5d5d 5d5d 5d5d 5d5d 5d5d 5e5e 5e5e 5e4e 4e4e 4e4e 4f4f 4f4f 4f4f 4f4f +fff6 f6f6 f6f6 f6e6 e6e7 e7e7 e7d7 d7d7 d7d7 d7c7 c7c7 c7c7 c7c7 b7b7 b7b7 b7b7 +b7b7 a7a7 a8a8 a8a8 a8a8 9898 9898 9898 9898 9888 8989 8989 8989 8989 8989 8979 +797a 7a7a 7a7a 7a7a 7a7a 7a7a 6a6b 6b6b 6b6b 6b6b 6b6b 6b6b 6c6c 6c6c 6c5c 5c5c +5c5c 5c5d 5d5d 5d5d 5d5d 5d5d 5d5e 5e5e 5e5e 5e5e 4e4e 4e4f 4f4f 4f4f 4f4f 4f4f +fff7 f7f7 f7f7 f7e7 e7e7 e7e7 e7d7 d7d7 d7d7 d7d7 c7c7 c7c7 c7c7 c7b7 b7b7 b7b7 +b7b7 a8a8 a8a8 a8a8 a8a8 a898 9898 9898 9898 9899 8989 8989 8989 8989 8989 8989 +7a7a 7a7a 7a7a 7a7a 7a7a 7a7a 7b6b 6b6b 6b6b 6b6b 6b6b 6b6c 6c6c 6c6c 6c6c 6c5c +5c5c 5d5d 5d5d 5d5d 5d5d 5d5d 5d5e 5e5e 5e5e 5e5e 5e5e 4e4f 4f4f 4f4f 4f4f 4f4f