( build: uxnasm src/m291.tal m291.rom | start: uxn11 m291.rom ) |10 @Console/vector $2 &read $5 &type $1 &write $1 &error $3 &addr $2 &mode $1 &exec $1 |00 @System/vector $2 &expansion $2 &wst $1 &rst $1 &metadata $2 &r $2 &g $2 &b $2 &debug $1 &state $1 |20 @Screen/vector $2 &width $2 &height $2 &auto $2 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 |80 @Controller/vector $2 &button $1 &key $1 |90 @Mouse/vector $2 &x $2 &y $2 &state $6 &scrolly &scrolly-hb $1 &scrolly-lb $1 |a0 @File/vector $2 &success $1 &success-lb $1 &stat $2 &delete $1 &append $1 &name $2 &length $2 &read $2 &write $2 |c0 @DateTime/year $2 &month $1 &day $1 &hour $1 &minute $1 &second $1 &dotw $1 &doty $2 &isdst $1 |0100 @WIDTH |000 @selection $1 &track $1 &scroll $1 @path/buf $2 &null $80 @lines &folders $1 &tracks $1 @playing $1 @paused $1 @prefix &folders $1 &tracks $1 @secfrom $2 @secto $2 @secprog $2 @frames &a $2 &b $2 @controls/repeat $1 &shuffle $1 |100 @on-reset ( -> ) ;meta #06 DEO2 ( | theme ) theme/ ( | size ) ;WIDTH #0080 window/ ( | .. ) message/ ;dict/mpg-cmd .Console/addr DEO2 [ LIT2 03 -Console/mode ] DEO [ LIT2 01 -Console/exec ] DEO [ LIT2 00 -playing ] STZ ;dict/home-path path/ prng/ ( | unlock ) ;on-mouse-body .Mouse/vector DEO2 ;on-control .Controller/vector DEO2 ;on-console .Console/vector DEO2 BRK @meta $1 ( name ) "m291 0a ( desc ) "Audio 20 "Player 0a ( auth ) "By 20 "Linvega 20 "& 20 "d6 0a ( date ) "27 20 "Apr 20 "2025 $2 ( @|macros ) %min ( x y -- min ) { LTHk [ JMP SWP POP ] } %llen ( str* -- length* ) { DUP2 lcap/ SWP2 SUB2 } %count-lines ( -- lines ) { .lines LDZ2 ADD } %is-folder ( line* -- line* f ) { DUP2 lcap/ #0001 SUB2 LDA [ LIT "/ ] EQU } %is-mp3 ( line* -- line*f ) { DUP2 lcap/ #0003 SUB2 ;dict/mp3-ext scmp3 } %MOD2 ( n* mod* -- n* ) { DIV2k MUL2 SUB2 } ( @|vectors ) @on-console ( -> ) [ LIT2 01 -Console/type ] DEI EQU ?{ BRK } [ LIT2 0a -Console/read ] DEI EQUk ?{ message/ POP BRK } POP2 message/ BRK @on-mouse-locked ( -> ) .Mouse/state DEI ?{ ;on-mouse-body .Mouse/vector DEO2 } BRK @on-mouse-body ( -> ) .Mouse/scrolly-lb DEI DUP ?&scroll POP ( | cursor ) cursor/ ( | route events ) .Mouse/y DEI2 ( > ) [ LIT2 00 -playing ] LDZ EQU ?{ DUP2 #0098 LTH2 ?&player } ( | on list ) .Mouse/state DEI ?{ ( id -- ) ( | follow ) DUP .selection/scroll LDZ SUB ( top ) DUP #80 AND #00 EQU ?{ DUP .selection/scroll LDZ ADD .selection/scroll STZ !&resume } ( bottom ) DUP #18 LTH ?{ DUP .selection/scroll LDZ ADD #17 SUB .selection/scroll STZ } &resume ( id scroll -- ) POP ( | continue ) [ LIT &last ff ] NEQk ?{ POP2 JMP2r } POP DUP ,&last STR .selection STZ ! @ ( alt id -- ) DUP .lines/folders LDZ LTH ?&folder .lines/folders LDZ SUB DUP .lines/tracks LDZ LTH ?&tracks POP JMP2r &tracks ( id -- ) DUP .selection/track STZ #00 SWP ( CELLSIZE ) #70 SFT2 ;mem/tracks ADD2 ! &folder ( id -- ) #00 SWP ( CELLSIZE ) #70 SFT2 ;mem/folders ADD2 ( > ) [ LIT2 00 -selection/scroll ] STZ ( > ) [ LIT2 00 -selection ] STZ #ff ;/last STA path/pop ! @ ( letter -- ) ( case insensitive ) cflc STH ( | folders ) .lines/folders LDZ #00 &>folders ( -- ) #00 OVR ( CELLSIZE ) #70 SFT2 ;mem/folders ADD2 LDA cflc STHkr NEQ ?{ POPr NIP ! } INC GTHk ?&>tracks POP2 POPr JMP2r ( @|events ) @handle-revision ( buf* char -- ) POP POP2 !message/ @handle-jump ( buf* char -- ) POP POP2 !message/ @handle-status ( buf* char -- ) [ LIT2 01 -playing ] STZ ( | force redraws ) POP POP2 !message/ @handle-frame ( buf* char -- ) POP ( skip key ) INC2 INC2 ( curr-frame ) parse-dec .frames/a STZ2 INC2 ( next-frame ) parse-dec .frames/b STZ2 INC2 ( | ) parse-dec STH2k .secfrom STZ2 INC2 LDAk [ LIT "5 ] LTH ?{ INC2r } #20 find-next INC2 ( | ) parse-dec STH2k .secto STZ2 INC2 LDAk [ LIT "5 ] LTH ?{ INC2r } POP2 STH2r STH2r SWP2 OVR2 ADD2 SWP2 ( | print ) calc-width .secprog STZ2 progress/ chicago/ !message/ @handle-id3 ( buf* char -- ) POP [ LIT ". ] find-next INC2 LDA2k ( | parse lines ) DUP2 [ LIT2 "ti ] NEQ2 ?{ OVR2 [ LIT ": ] find-next INC2 ;id3/title } DUP2 [ LIT2 "ar ] NEQ2 ?{ OVR2 [ LIT ": ] find-next INC2 ;id3/artist } DUP2 [ LIT2 "al ] NEQ2 ?{ OVR2 [ LIT ": ] find-next INC2 ;id3/album } POP2 POP2 !message/ @handle-pause ( buf* char -- ) POP INC2 INC2 LDA ( stop ) DUP [ LIT "0 ] NEQ ?{ } ( paused ) DUP [ LIT "1 ] NEQ ?{ [ LIT2 01 -paused ] STZ } ( playing ) DUP [ LIT "2 ] NEQ ?{ [ LIT2 00 -paused ] STZ } ( end ) DUP [ LIT "3 ] NEQ ?{ } POP controls/ !message/ ( @|core ) @ ( y* -- id ) [ LIT2 00 -playing ] LDZ EQU ?{ #0080 SUB2 } #001c SUB2 #04 SFT2 NIP #17 min .selection/scroll LDZ ADD JMP2r @ ( -- ) ;path/buf .File/name DEO2 #2000 .File/length DEO2 ;mem/dir .File/read DEO2 ( | clean ) [ LIT2 00 -lines/folders ] STZ [ LIT2 00 -lines/tracks ] STZ ( | parse ) ;mem/dir &w ( -- ) DUP2 lcap/ INC2 LDAk ?&w POP2 ( >> ) @ ( -- ) #00 ( folders ) .lines/folders LDZ ( tracks ) .lines/tracks LDZ ADD #18 min ( empty ) DUP #00 EQU ADD #40 SFT2 ( padding ) #0020 ADD2 ( playing ) [ LIT2 00 -playing ] LDZ EQU ?{ #0080 ADD2 } !window/ @ ( line* -- ) #0005 ADD2 LDAk [ LIT ". ] EQU ?&hidden is-folder ?&folder is-mp3 ?&mp3 POP2 JMP2r &folder ( line* -- ) DUP2 llen #003f LTH2 ?{ POP2 JMP2r } ;mem/folders [ LIT2 00 -lines/folders ] LDZ ( | max folders = 3000 / 80 = 60 ) DUP #60 LTH ?{ POP POP2 JMP2r } ( CELLSIZE ) #70 SFT2 ADD2 .lines/folders LDZ INC .lines/folders STZ JMP2r &mp3 ( line* -- ) DUP2 llen ( CELLSIZE ) #007f LTH2 ?{ POP2 JMP2r } ;mem/tracks [ LIT2 00 -lines/tracks ] LDZ ( | max tracks = 80 ) DUP #80 LTH ?{ POP JMP2r } ( CELLSIZE ) #70 SFT2 ADD2 .lines/tracks LDZ INC .lines/tracks STZ JMP2r &hidden ( line* -- ) POP2 JMP2r @str-lth ( a* b* -- a>b ) STH2 &>loop ( -- ) LDAk LDAkr STHr SUBk ?{ DUP2 #0000 EQU2 ?{ POP2 INC2 INC2r !&>loop } } NIP2 LTH POP2r JMP2r @str-len ( a* -- len ) [ LITr 00 ] &>loop ( -- ) LDAk ?{ POP2 STHr JMP2r } INCr next-glyph !&>loop @str-prefix ( a* b* -- len ) STH2 DUP2 ,&a0 STR2 &>loop ( -- ) LDAk LDAkr STHr NEQk ?{ DUP2 #0000 EQU2 ?{ POP2 INC2 INC2r !&>loop } } POP2 POP2r [ LIT2 &a0 $2 ] SUB2 NIP JMP2r @ ( -- ) common-folder-prefix .prefix/folders STZ common-track-prefix .prefix/tracks STZ sort-folders !sort-tracks @sort-folders ( -- ) .lines/folders LDZ ?{ JMP2r } ;mem/folders DUP2 [ LIT2 00 -lines/folders ] LDZ #01 SUB ( CELLSIZE ) #70 SFT2 ADD2 !sort-files @sort-tracks ( -- ) .lines/tracks LDZ ?{ JMP2r } ;mem/tracks DUP2 [ LIT2 00 -lines/tracks ] LDZ #01 SUB ( CELLSIZE ) #70 SFT2 ADD2 ( >> ) @sort-files ( first* last* -- ) SWP2 &>loop ( -- ) GTH2k ?{ POP2 POP2 JMP2r } OVR2 OVR2 STH2k #0080 ADD2 &>loop2 ( -- ) LTH2k ?&done DUP2 STH2kr str-lth ?&replace !{ &replace POP2r STH2k } #0080 ADD2 !&>loop2 &done ( -- ) POP2 POP2 DUP2 STH2r swap-tracks #0080 ADD2 !&>loop @swap-tracks ( src* dst* -- ) EQU2k ?{ DUP2 ;tmp OVR2 STH2 ;tmp STH2r ! } POP2 POP2 JMP2r @common-folder-prefix ( -- len ) [ LIT2 01 -lines/folders ] LDZ LTH ?{ #00 JMP2r } ;mem/folders DUP2 [ LIT2 00 -lines/folders ] LDZ #70 SFT2 ADD2 !common-prefix-0 @common-track-prefix ( -- len ) [ LIT2 01 -lines/tracks ] LDZ LTH ?{ #00 JMP2r } ;mem/tracks DUP2 [ LIT2 00 -lines/tracks ] LDZ #70 SFT2 ADD2 ( >> ) @common-prefix-0 ( first* limit* -- len ) SWP2 DUP2k str-len STH ,&s0 STR2 #0080 ADD2 &>loop ( -- ) GTH2k ?{ POP2 POP2 STHr JMP2r } DUP2 [ LIT2 &s0 $2 ] str-prefix STHr min STH #0080 ADD2 !&>loop @pos-to-seconds ( pos* -- seconds* ) .secfrom LDZ2 .secto LDZ2 ADD2 #00e7 DIV2k STH2k MUL2 SUB2 OVR2 STH2 MUL2r MUL2 #00e7 DIV2 STH2r ADD2 JMP2r @calc-width ( total* curr* -- width* ) STH2 DUP2 #011b LTH2 ?{ &scale ( -- ) DUP2 #0237 LTH2 ?{ #01 SFT2 LITr 01 SFT2r !&scale } INC2 #01 SFT2 INC2r LITr 01 SFT2r } [ LIT2r 00e7 ] MUL2r STH2r SWP2 DIV2 JMP2r @find-next ( buf* c -- index* ) ,&t STR &>loop ( -- ) LDAk [ LIT &t $1 ] EQU ?{ INC2 !&>loop } JMP2r @parse-dec ( buf* -- end* res* ) [ LIT2r 000a ] [ LIT2r 0000 ] &>loop ( -- ) LDAk [ LIT "0 ] SUB DUP #09 GTH ?{ OVR2r MUL2r [ LITr 00 ] STH ADD2r INC2 !&>loop } POP STH2r POP2r JMP2r @ ( file* -- ) ;dict/no-album ;id3/album ( | find spacer ) DUP2 find-spacer INC2 ORA ?{ ;id3/title ( | remove ext ) ;id3/title scap #0004 SUB2 INC2k ;dict/mp3-ext scmp3 ( ) #00 EQU ?{ STH2k #00 STH2r STA } POP2 ;dict/no-artist ;id3/artist ! } ( | copy artist ) [ LIT2r =id3/artist ] &>artist ( -- ) LDA2k [ LIT2 20 "- ] EQU2 ?{ LDAk #00 STH2kr INC2r STA2 INC2 LDAk ?&>artist } POP2r INC2 INC2 INC2 ( | copy title ) [ LIT2r =id3/title ] &>title ( -- ) LDA2k [ LIT2 ".m ] EQU2 ?{ LDAk #00 STH2kr INC2r STA2 INC2 LDAk ?&>title } POP2r POP2 JMP2r @find-spacer ( file* -- * ) LDA2k [ LIT2 20 "- ] NEQ2 ?{ JMP2r } INC2 LDAk ?find-spacer POP2 #ffff JMP2r ( @|path ) @path/ ( path* -- ) ;path/buf ! @path/ ( subpath* -- ) ;path/buf scap/ ! @path/pop ( -- ) ;path/buf scap/ #0001 SUB2 &>w ( -- ) ;path/null LDA ?{ POP2 JMP2r } #0001 SUB2 LDAk [ LIT "/ ] NEQ ?{ LITr 00 STH2 INC2r STAr JMP2r } !&>w @path/get-location ( -- str* ) ;path/buf ;path/buf scap/ #0001 SUB2 &>wg ( -- ) #0001 SUB2 LDAk [ LIT "/ ] EQU ?{ NEQ2k ?&>wg } NIP2 INC2 JMP2r ( @|drawing ) @ ( -- ) ( | clear ) #0000 .Screen/x DEO2 #0012 .Screen/y DEO2 [ LIT2 80 -Screen/pixel ] DEO ( >> ) @ ( -- ) #001a [ LIT2 00 -playing ] LDZ EQU ?{ #0080 ADD2 } .Screen/y DEO2 ( | empty ) count-lines ?{ #0008 .Screen/x DEO2 ;dict/empty #05 !chicago/ } ( | folders ) ( >> ) @ ( -- ) .selection LDZ .lines/folders LDZ SUB ,&sel STR #0008 .Screen/x DEO2 .lines/tracks LDZ #00 NEQk ?{ POP2 JMP2r } .selection/scroll LDZ .lines/folders LDZ LTH ?{ .selection/scroll LDZ .lines/folders LDZ SUB ADD } &>l ( -- ) #00 [ LITr 05 ] ( | playing ) DUP .selection/track LDZ NEQ ?{ #01 [ LIT2 15 -Screen/auto ] DEO #0000 .Screen/x DEO2 ;poke-icn .Screen/addr DEO2 [ LIT2 00 -Screen/sprite ] DEO POPr [ LITr 04 ] } ( | selected ) DUP [ LIT &sel $1 ] NEQ ?{ #03 POPr [ LITr 05 ] } ( | normal ) #0008 .Screen/x DEO2 #00 OVR ( CELLSIZE ) #70 SFT2 ;mem/tracks ADD2 STHr .Screen/y DEI2 #0010 ADD2 ( cap ) DUP2 .Screen/height DEI2 #0008 SUB2 LTH2 ?{ POP2 POP2 JMP2r } .Screen/y DEO2 INC GTHk ?&>l POP2 JMP2r @ ( text* color -- ) STH .prefix/tracks LDZ #03 GTH ?{ STHr !chicago/ } [ LIT2 00 -prefix/tracks ] LDZ ADD2 STHr !chicago/ @ ( color times addr* auto -- ) .Screen/auto DEO ,&addr STR2 SWP STH [ LITr -Screen/sprite ] &>l ( -- ) [ LIT2 &addr $2 ] .Screen/addr DEO2 DEOkr INC DUP ?&>l POP POP2r JMP2r @ ( -- ) .selection LDZ ,&sel STR #0008 .Screen/x DEO2 .lines/folders LDZ #00 NEQk ?{ POP2 JMP2r } .selection/scroll LDZ ADD GTHk ?{ POP2 JMP2r } &>l ( -- ) ( | background ) [ LITr 01 ] #00 ( | selected ) DUP [ LIT &sel $1 ] NEQ ?{ #03 POPr [ LITr 05 ] } ( | gizmo ) [ LIT2 15 -Screen/auto ] DEO ;WIDTH #0010 SUB2 .Screen/x DEO2 .Screen/y DEI2 ( ) #03c0 ;chicago/glyphs ADD2 .Screen/addr DEO2 DUPr [ LITr -Screen/sprite ] DEOr .Screen/y DEO2 ( | normal ) #0008 .Screen/x DEO2 #00 OVR ( CELLSIZE ) #70 SFT2 ;mem/folders ADD2 STHr .Screen/y DEI2 #0010 ADD2 ( cap ) DUP2 .Screen/height DEI2 #0008 SUB2 LTH2 ?{ POP2 POP2 JMP2r } .Screen/y DEO2 INC GTHk ?&>l POP2 JMP2r @ ( -- ) .playing LDZ ?{ JMP2r } #ffff ;chicago/last STA2 #ffff ;progress/last STA2 track/ track/ track/ controls/ controls/ controls/ controls/ controls/ progress/ !chicago/ @ ( -- ) ;id3/title chicago/get-str-width ;WIDTH LTH2 ?{ [ LIT2 &f $2 ] INC2k ,&f STR2 DUP #0f AND ?{ #001a .Screen/y DEO2 #0001 .Screen/x DEO2 #001a .Screen/y DEO2 #01 ;chicago/color STA #04 SFT2 #00 ;id3/title str-len MOD2 ;id3/title STH2k next-nth-glyph #01 chicago/ .Screen/x DEI2k #0004 ADD2 ROT DEO2 STH2r #01 !chicago/ } POP2 } JMP2r @track/ ( -- ) ( | clear ) #001a .Screen/y DEO2 #0000 ;/f STA2 ( | draw ) #001a .Screen/y DEO2 ;id3/title chicago/get-str-width ;WIDTH LTH2 ?{ #0008 .Screen/x DEO2 ;id3/title #01 !chicago/ } ( | center ) #0080 .Screen/x DEO2 ;id3/title #01 !chicago/ @track/ ( -- ) ( | clear ) #002a .Screen/y DEO2 ( | draw ) #002a .Screen/y DEO2 ;id3/artist chicago/get-str-width ;WIDTH LTH2 ?{ #0008 .Screen/x DEO2 ;id3/artist #01 !chicago/ } ( | center ) #0080 .Screen/x DEO2 ;id3/artist #01 !chicago/ @track/ ( -- ) ( | clear ) #003a .Screen/y DEO2 ( | draw ) #0080 .Screen/x DEO2 #003a .Screen/y DEO2 ;id3/album #01 !chicago/ ( @|controls ) @controls/ ( -- ) [ LIT2 16 -Screen/auto ] DEO #0058 .Screen/x DEO2 #0058 .Screen/y DEO2 ;&prev-icn .Screen/addr DEO2 [ LIT2 01 -Screen/sprite ] DEOk DEO JMP2r @controls/ ( -- ) #0070 .Screen/x DEO2 #0050 .Screen/y DEO2 [ LIT2 36 -Screen/auto ] DEO ;button-icn #00 [ LIT2 01 -paused ] LDZ AND #80 SFT2 ADD2 .Screen/addr DEO2 [ LIT2 81 -Screen/sprite ] DEOk DEOk DEOk DEO ( | icon ) [ LIT2 16 -Screen/auto ] DEO #0078 .Screen/x DEO2 #0058 .Screen/y DEO2 ;&pause-icn [ LIT2 00 -paused ] LDZ #50 SFT2 ADD2 .Screen/addr DEO2 [ LIT2 05 -Screen/sprite ] DEOk DEO JMP2r @controls/ ( -- ) [ LIT2 16 -Screen/auto ] DEO #0098 .Screen/x DEO2 #0058 .Screen/y DEO2 ;&next-icn .Screen/addr DEO2 [ LIT2 01 -Screen/sprite ] DEOk DEO JMP2r @controls/ ( -- ) [ LIT2 00 -&shuffle ] LDZ EQU .&shuffle STZ ( >> ) @controls/ ( -- ) [ LIT2 16 -Screen/auto ] DEO #00b0 .Screen/x DEO2 #0058 .Screen/y DEO2 [ LIT2 00 -&shuffle ] LDZ #50 SFT2 ;&shuffle-icn ADD2 .Screen/addr DEO2 [ LIT2 01 -Screen/sprite ] DEOk DEO JMP2r @controls/ ( -- ) [ LIT2 00 -&repeat ] LDZ EQU .&repeat STZ ( >> ) @controls/ ( -- ) [ LIT2 16 -Screen/auto ] DEO #0040 .Screen/x DEO2 #0058 .Screen/y DEO2 [ LIT2 00 -&repeat ] LDZ #50 SFT2 ;&repeat-icn ADD2 .Screen/addr DEO2 [ LIT2 01 -Screen/sprite ] DEOk DEO JMP2r @progress/ ( -- ) .secprog LDZ2 ( | catch redraws ) DUP2 [ LIT2 &last $2 ] NEQ2 ?{ POP2 JMP2r } & ( x* -- ) DUP2 ,&last STR2 [ LIT2 15 -Screen/auto ] DEO #0004 .Screen/x DEO2 #0084 .Screen/y DEO2 ( | cap left ) ;&left-chr .Screen/addr DEO2 [ LIT2 81 -Screen/sprite ] DEO ( | cap middle ) #e3 &>t ( -- ) ;&middle-chr .Screen/addr DEO2 [ LIT2 81 -Screen/sprite ] DEO INC DUP ?&>t POP ( | cap right ) ;&right-chr .Screen/addr DEO2 [ LIT2 81 -Screen/sprite ] DEO ( | fill ) #0008 .Screen/x DEO2 [ LIT2 15 -Screen/auto ] DEO #0000 &>l ( -- ) DUP2 #0004 ADD2 .Screen/x DEO2 ;&fill-icn .Screen/addr DEO2 [ LIT2 0a -Screen/sprite ] DEOk DEO INC2 GTH2k ?&>l POP2 POP2 JMP2r @ ( -- ) [ LITr -Screen/y ] DEI2r ( ) #0000 .Screen/x DEO2 ;fill-icn .Screen/addr DEO2 [ LIT2 f2 -Screen/auto ] DEO [ LIT2 00 -Screen/sprite ] DEOk DEOk ( ) [ LITr -Screen/y ] DEO2r #0080 .Screen/x DEO2 DEOk DEO JMP2r @ ( color -- ) STH #0000 .Screen/x DEO2 .Screen/y DEI2 ( | ) ;fill-icn .Screen/addr DEO2 [ LIT2 f2 -Screen/auto ] DEO [ LITr -Screen/sprite ] DEOkr DEOkr ( | ) .Screen/x DEI2 #0080 ADD2 .Screen/x DEO2 .Screen/y DEI2 #0010 SUB2 .Screen/y DEO2 DEOkr DEOr .Screen/y DEO2 JMP2r @ ( text* color -- ) STH .prefix/folders LDZ #03 GTH ?{ STHr !chicago/ } ;dict/ellipses STHkr chicago/ [ LIT2 00 -prefix/folders ] LDZ ADD2 STHr !chicago/ @next-glyph ( addr* -- addr* ) INC2 LDAk ( utf8 ) #06 SFT #02 EQU ?next-glyph JMP2r @next-nth-glyph ( offset* text* -- text* ) STH2 DUP2r #0000 EQU2k ?{ &>l ( -- ) STH2r next-glyph LDAk ?{ POP2 STH2kr } STH2 INC2 GTH2k ?&>l } POP2 POP2 STH2r POP2r JMP2r @header/ ( -- ) path/get-location #0084 OVR2 chicago/get-str-width #01 SFT2 SUB2 ( ) #000a SUB2 .Screen/x DEO2 #0001 .Screen/y DEO2 [ LIT2 15 -Screen/auto ] DEO #09 ;chicago/color STA #20 chicago/ #09 chicago/ #20 chicago/ ( | clip ) .Screen/y DEI2k #0001 SUB2 ROT DEO2 #81fe ;&bg-chr #15 ! ( @|assets ) @dict &home-path "./ $1 &mp3-ext "mp3 $1 &empty "(empty) $1 &mpg-cmd "mpg123 20 "-R $1 &load-cmd "load 20 $1 &jump-cmd "jump 20 $1 &pause-cmd "pause 0a $1 &no-artist "Unknown 20 "Artist $1 &no-album "Unknown 20 "Album $1 &ellipses "... 20 $1 ( @|header ) @header/on-mouse ( -> ) cursor/ [ LIT2 &last $1 -Mouse/state ] DEI ( | handlers ) DUP2 #0002 NEQ2 ?{ window/toggle-shade } DUP2 #0001 NEQ2 ?{ /outside-quit ?{ / } } DUP2 #0100 NEQ2 ?{ / } ,&last STR POP BRK @header/outside-quit ( -- f ) .Mouse/x DEI2 #0008 SUB2 #000c GTH2 ?{ .Mouse/y DEI2 #0002 SUB2 #000c GTH2 ?{ #00 JMP2r } } #01 JMP2r @header/ ( -- ) ;&button-down-icn !/ @header/ ( -- ) /outside-quit ?{ #800f DEO } ( >> ) @header/ ( -- ) #0000 .Screen/x DEO2 #0000 .Screen/y DEO2 #85e0 ;&bg-chr #25 ( | 1px right ) .Screen/x DEI2k #0001 SUB2 ROT DEO2 #000e .Screen/y DEO2 [ LIT2 a2 -Screen/pixel ] DEO ( | 1px left ) #0001 .Screen/x DEO2 [ LIT2 b2 -Screen/pixel ] DEO ( | title ) / ;&button-icn ( >> ) @header/ ( button* -- ) .Screen/addr DEO2 #0008 .Screen/x DEO2 #0000 .Screen/y DEO2 [ LIT2 15 -Screen/auto ] DEO [ LIT2 09 -Screen/sprite ] DEOk DEO JMP2r ( @|cursor ) @cursor/ ( -- ) .Mouse/y DEI2 #0012 GTH2 ?{ ( ) ;header/on-mouse .Mouse/vector DEO2 JMP2r } ;on-mouse-body .Mouse/vector DEO2 JMP2r @cursor/ ( -- ) [ LIT2 12 -Screen/auto ] DEO #40 ;fill-icn / [ LIT2 16 -Screen/auto ] DEO #c1 ;&down-chr .Mouse/state DEI ?{ POP2 ;&up-chr } .Mouse/x DEI2 ,&x STR2 .Mouse/y DEI2 ,&y STR2 / ( >> ) @cursor/ ( color addr* -- ) .Screen/addr DEO2 [ LIT2 &x $2 ] #0004 SUB2 .Screen/x DEO2 [ LIT2 &y $2 ] #0004 SUB2 .Screen/y DEO2 .Screen/sprite DEOk DEO JMP2r ( @|chicago ) @chicago/get-utf8-addr ( addr* -- addr* glyph* ) LDAk #20 LTH ?{ LDAk #7f GTH ?{ LDAk #20 SUB #00 SWP #50 SFT2 ;/glyphs ADD2 JMP2r } LDAk #c3 NEQ ?{ INC2k LDA #80 SUB #00 SWP #50 SFT2 ;/latin2-glyphs ADD2 JMP2r } LDAk #d0 NEQ ?{ INC2k LDA #90 SUB #00 SWP #50 SFT2 ;/cyrillic-glyphs ADD2 JMP2r } LDAk #d1 NEQ ?{ INC2k LDA #50 SUB #00 SWP #50 SFT2 ;/cyrillic-glyphs ADD2 ( cap ) DUP2 ;/cyrillic-glyphs-end LTH2 ?{ POP2 ;check-icn } JMP2r } LDA2k #e381 SUB2 #0003 GTH2 ?{ INC2k LDA2 #8180 SUB2 STH #00 SWP #60 SFT2 #00 STHr ADD2 #50 SFT2 ;/hiragana-glyphs ADD2 JMP2r } } ;check-icn JMP2r @chicago/get-utf8-width ( addr* -- addr* width* ) LDAk #7f GTH ?{ LDAk #20 SUB #0000 ROT ;/widths ADD2 LDA JMP2r } LDAk #c3 NEQ ?{ INC2k LDA #80 SUB #00 SWP ;/latin2-widths ADD2 LDA #00 SWP JMP2r } LDAk #d0 NEQ ?{ INC2k LDA #90 SUB #00 SWP ;/cyrillic-widths ADD2 LDA #00 SWP JMP2r } LDAk #d1 NEQ ?{ INC2k LDA #50 SUB #00 SWP ;/cyrillic-widths ADD2 ( cap ) DUP2 ;/cyrillic-widths-end LTH2 ?{ POP2 #0008 JMP2r } LDA #00 SWP JMP2r } LDAk #e3 NEQ ?{ #000d JMP2r } #0008 JMP2r @chicago/get-str-width ( text* -- width* ) [ LIT2r 0000 ] &>ww ( -- ) /get-utf8-width STH2 ( > ) ADD2r next-glyph LDAk ?&>ww POP2 STH2r JMP2r @chicago/ ( -- ) .secfrom LDZ2 ( | catch redraws ) DUP2 [ LIT2 &last $2 ] NEQ2 ?{ POP2 JMP2r } DUP2 ,&last STR2 ( | clear ) #0070 .Screen/y DEO2 ( | from ) [ LIT2 15 -Screen/auto ] DEO #0008 .Screen/x DEO2 #0070 .Screen/y DEO2 #01 ;&color STA / ( | to ) [ LIT2 15 -Screen/auto ] DEO #8000 .Screen/x DEO2 #0070 .Screen/y DEO2 .secto LDZ2 ;WIDTH OVR2 / .Screen/x DEI2 #7ff8 SUB2 SUB2 .Screen/x DEO2 #01 ;&color STA ( >> ) @chicago/ ( time* -- ) DUP2 #0e10 LTH2 ?{ ( x0:00:00 ) DUP2 #8ca0 DIV2 NIP #06 DIVk MUL SUB / ( 0x:00:00 ) DUP2 #0e10 DIV2 NIP / [ LIT ": ] / } ( 00:x0:00 ) DUP2 #0258 DIV2 NIP #06 DIVk MUL SUB / ( 00:0x:00 ) DUP2 #003c DIV2 NIP / [ LIT ": ] / ( 00:00:x0 ) DUP2 #000a DIV2 NIP #06 DIVk MUL SUB / ( 00:00:0x ) NIP ( >> ) @chicago/ ( value -- ) #0a DIVk MUL SUB [ LIT "0 ] ADD !/ @chicago/ ( text* color -- ) STH .Screen/x DEI2 OVR2 /get-str-width #01 SFT2 SUB2 .Screen/x DEO2 STHr !/ @chicago/ ( text* color -- ) ,&color STR [ LIT2 15 -Screen/auto ] DEO ;WIDTH #0010 SUB2 ,&bound STR2 &>wsc ( -- ) ( | trim length ) .Screen/x DEI2 [ LIT2 &bound $2 ] LTH2 ?{ POP2 ;dict/ellipses / / POP2 JMP2r } ( | trim mp3 ) LDAk [ LIT ". ] NEQ ?{ INC2k ;dict/mp3-ext scmp3 ?&end } / next-glyph LDAk ?&>wsc &end POP2 JMP2r @chicago/ ( addr* -- addr* ) [ LITr -Screen/x ] DEI2r ( glyph* ) /get-utf8-addr .Screen/addr DEO2 ( width* ) /get-utf8-width STH2 ( draw2 ) [ LIT2 &color 01 -Screen/sprite ] ( draw1 ) DUPr [ LITr 08 LTHr JMPr DEOk ] DEO ADD2r [ LITr -Screen/x ] DEO2r JMP2r @chicago/ ( char -- ) #20 SUB #00 SWP ( ) DUP2 #50 SFT2 ;&glyphs ADD2 .Screen/addr DEO2 ( ) ;&widths ADD2 LDA #00 SWP .Screen/x DEI2 ADD2 ( ) ,&color LDR .Screen/sprite DEOk DEO .Screen/x DEO2 JMP2r ( @|window ) @window/ ( width* height* -- ) DUP2 ,&height STR2 .Screen/height DEO2 .Screen/width DEO2 JMP2r @window/ ( height* -- ) DUP2 ,&height STR2 .Screen/height DEO2 header/ ! @window/toggle-shade ( -- ) #0011 .Screen/height DEI2 EQU2 ?{ #0011 .Screen/height DEO2 !header/ } [ LIT2 &height $2 ] .Screen/height DEO2 header/ ! ( @|theme ) @theme/ ( -- ) #f0ad #f0ef #f0be ( >> ) @theme/ ( r* g* b* -- ) .System/b DEO2 .System/g DEO2 .System/r DEO2 JMP2r @theme/ ( -- ) ;&path .File/name DEO2 #0002 .File/length DEO2 ;&r .File/read DEO2 ;&g .File/read DEO2 ;&b .File/read DEO2 .File/success-lb DEI ?{ !theme/ } [ LIT2 &r $2 ] [ LIT2 &g $2 ] [ LIT2 &b $2 ] !theme/ &path ".theme $1 ( @|prng ) @prng/ ( -- ) ( > ) [ LIT2 00 -DateTime/second ] DEI ( > ) [ LIT2 00 -DateTime/minute ] DEI #60 SFT2 EOR2 ( > ) [ LIT2 00 -DateTime/hour ] DEI #c0 SFT2 EOR2 ,prng/x STR2 ( > ) [ LIT2 00 -DateTime/hour ] DEI #04 SFT2 ( > ) [ LIT2 00 -DateTime/day ] DEI #10 SFT2 EOR2 ( > ) [ LIT2 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 ( @|stdlib ) @cflc ( c -- lowercase ) DUP #41 SUB #1a GTH ?{ #20 ADD } JMP2r @scap ( str* -- end* ) INC2 & LDAk ?scap JMP2r @scmp3 ( a* b* -- f ) STH2 LDAkr LDAk STHr NEQ ?{ INC2r INC2 } LDA2r LDA2 STH2r EQU2 JMP2r @ ( src* dst* -: ) STH2 &>w ( src* `dst* -- ) LDAk #00 STH2kr STA2 INC2r INC2 LDAk ?&>w POP2 POP2r JMP2r @lcap ( str* -- next-line* ) LDAk #0a EQU ?{ INC2 & LDAk ?lcap } JMP2r @ ( src* dst* -- ) STH2 &w ( -- ) LDAk #1f GTH ?{ POP2 #00 STH2r STA JMP2r } LDAk #00 STH2kr STA2 INC2r INC2 !&w @ ( short* -- ) #000a SWP2 [ LITr ff ] &>get ( -- ) SWP2k MOD2 STH POP OVR2 DIV2 ORAk ?&>get POP2 POP2 &>put ( -- ) STHr INCk ?{ POP JMP2r } [ LIT "0 ] ADD #18 DEO !&>put @ ( str* -- ) LDAk #18 DEO INC2 & LDAk ? POP2 JMP2r @ ( str* -- ) LDAk #19 DEO INC2 & LDAk ? POP2 JMP2r @ ( short* -: ) SWP /b &b ( byte -: ) DUP #04 SFT /c &c ( byte -: ) #0f AND DUP #09 GTH #27 MUL ADD [ LIT "0 ] ADD #19 DEO JMP2r ( assets ) @header &bg-chr [ 0000 00ff 00ff 00ff ffff ff00 ff00 ff00 00ff 00ff 00ff 0000 ff00 ff00 ff00 ffff 00ff 0000 0000 0000 ff00 0000 0000 0000 ] &button-icn [ 0000 007f 4040 4040 4040 4040 407f 0000 0000 00f7 1017 1017 1017 1017 10f7 0000 ] &button-down-icn [ 0000 007f 4252 4a40 7840 4a52 427f 0000 0000 00f7 1057 9017 f017 9057 10f7 0000 ] @cursor/up-chr [ 0000 0000 0814 1417 0000 0000 0008 0808 0000 0000 0000 00c0 0000 0000 0000 0000 1010 2010 1008 0700 0f0f 1f0f 0f07 0000 2010 1010 2020 c000 c0e0 e0e0 c0c0 0000 ] @cursor/down-chr [ 0000 0000 0000 0817 0000 0000 0000 0008 0000 0000 0000 00c0 0000 0000 0000 0000 1010 2010 1008 0700 0f0f 1f0f 0f07 0000 2010 1010 2020 c000 c0e0 e0e0 c0c0 0000 ] @progress/left-chr [ 0000 030f 1f1f 3f3f 0000 0003 0f0f 1f1f 3f3f 1f1f 0f03 0000 1f1f 0f0f 0300 0000 ] @progress/middle-chr [ 0000 ffff ffff ffff 0000 00ff ffff ffff ffff ffff ffff 0000 ffff ffff ff00 0000 ] @progress/right-chr [ 0000 c0f0 f8f8 fcfc 0000 00c0 f0f0 f8f8 fcfc f8f8 f0c0 0000 f8f8 f0f0 c000 0000 ] @progress/fill-icn [ 0000 0003 0f0f 1f1f 1f1f 0f0f 0300 0000 0000 00c0 f0f0 f8f8 f8f8 f0f0 c000 0000 ] @button-icn [ 0000 030c 1010 2020 0000 0003 0f0f 1f1f 0000 ff00 0000 0000 0000 00ff ffff ffff 0000 ff00 0000 0000 0000 00ff ffff ffff 0000 c030 0808 0404 0000 00c0 f0f0 f8f8 2020 2020 2020 2020 1f1f 1f1f 1f1f 1f1f 0000 0000 0000 0000 ffff ffff ffff ffff 0000 0000 0000 0000 ffff ffff ffff ffff 0404 0404 0404 0404 f8f8 f8f8 f8f8 f8f8 2020 2020 2020 2020 1f1f 1f1f 1f1f 1f1f 0000 0000 0000 0000 ffff ffff ffff ffff 0000 0000 0000 0000 ffff ffff ffff ffff 0404 0404 0404 0404 f8f8 f8f8 f8f8 f8f8 2020 1010 0c03 0000 1f1f 0f0f 0300 0000 0000 0000 00ff 0000 ffff ffff ff00 0000 0000 0000 00ff 0000 ffff ffff ff00 0000 0404 0808 30c0 0000 f8f8 f0f0 c000 0000 ] &active [ 0000 0208 1000 2020 0000 0000 0000 0000 0000 ee00 0000 0000 0000 0000 0000 0000 0000 ee00 0000 0000 0000 0000 0000 0000 0000 c010 0800 0404 0000 0000 0000 0000 0020 2020 0020 2020 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0004 0404 0004 0404 0000 0000 0000 0000 0020 2020 0020 2020 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0400 0404 0400 0404 0000 0000 0000 0000 0020 0010 0803 0000 0000 0000 0000 0000 0000 0000 0077 0000 0000 0000 0000 0000 0000 0000 0077 0000 0000 0000 0000 0000 0004 0008 1040 0000 0000 0000 0000 0000 ] @controls/repeat-icn [ 0000 000f 1f18 1000 0010 18fc fc18 1000 0008 183f 3f18 0800 0008 18f8 f000 0000 0000 000f 1f18 1818 0010 18fc fc18 1008 1818 181f 0f00 0000 1818 18f8 f000 0000 ] @controls/shuffle-icn [ 0000 001f 1f00 0000 0010 18fc fc18 1000 0000 001f 1f00 0000 0010 18fc fc18 1000 0000 001f 1f01 0101 0010 187c bc98 9080 0101 011d 1e00 0000 8090 98fc fc18 1000 ] @controls/pause-icn [ 0000 001e 1e1e 1e1e 0000 0078 7878 7878 1e1e 1e1e 1e00 0000 7878 7878 7800 0000 0000 000c 0f0f 0f0f 0000 0000 00c0 f0fc 0f0f 0f0f 0c00 0000 fcf0 c000 0000 0000 0000 000c 0b08 0808 0000 0000 00c0 300c 0808 080b 0c00 0000 0c30 c000 0000 0000 ] @controls/next-icn [ 0000 0018 1c1e 1f1f 0000 0018 1818 1898 1f1f 1e1c 1800 0000 9818 1818 1800 0000 ] @controls/prev-icn [ 0000 0018 1818 1819 0000 0018 3878 f8f8 1918 1818 1800 0000 f8f8 7838 1800 0000 ] @fill-icn [ ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ] @poke-icn [ 0000 0000 80c0 e0f0 e0c0 8000 0000 0000 ] @check-icn [ aa55 aa55 aa55 aa55 aa55 aa55 aa55 aa55 ] $10 ( @|font ) @chicago/cyrillic-widths [ 0808 0807 0807 0907 0909 0907 0c08 0808 0808 0608 0908 0808 0909 0809 0808 0908 0808 0807 0808 0908 0909 0907 0909 0808 0807 0608 0908 0808 0909 0709 0808 0908 ] &cyrillic-widths-end @chicago/cyrillic-glyphs [ 0000 003c 6666 667e 6666 6666 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007c 6060 607c 6666 667c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007c 6666 667c 6666 667c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007e 6060 6060 6060 6060 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007c 4c4c 4c4c 4c4c 4c7e 8686 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007c 6060 6078 6060 607c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 006b 6b6b 2a1c 2a6b 6b6b 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0078 8c0c 0c38 0c0c 8c78 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0063 6367 676b 6b73 7363 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 221c 0063 6367 676b 6b73 7363 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0063 666c 7870 786c 6663 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007c 4c4c 4c4c 4c4c 4c8c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0040 6070 795f 4e44 4040 0000 0000 0000 0020 60e0 e060 6060 6060 0000 0000 0000 0066 6666 667e 6666 6666 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 6666 6666 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007e 6666 6666 6666 6666 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007c 6666 667c 6060 6060 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 6260 6060 6060 623c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00fc 3030 3030 3030 3030 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0066 6666 663e 0606 463c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0008 3e6b 6b6b 6b6b 3e08 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0066 6666 663c 6666 6666 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0066 6666 6666 6666 667f 0100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0066 6666 663e 0606 0606 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 006b 6b6b 6b6b 6b6b 6b7f 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 006b 6b6b 6b6b 6b6b 6b7f 0000 0000 0000 0000 0000 0000 0000 0080 8000 0000 0000 00f0 3030 3c36 3636 363c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0061 6161 796d 6d6d 6d79 0000 0000 0000 0080 8080 8080 8080 8080 0000 0000 0000 0060 6060 7c66 6666 667c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 4606 061e 0606 463c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0066 6b6b 6b7b 6b6b 6b66 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003e 6666 663e 6666 6666 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 463e 6666 663e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 6260 607c 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007c 6666 7c66 667c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007e 6060 6060 6060 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007c 4c4c 4c4c 4c7e c6c6 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 6666 7e60 623c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 006b 6b2a 1c2a 6b6b 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 4606 1c06 463c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0063 6767 6b73 7363 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 221c 0063 6767 6b73 7363 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0063 666c 786c 6663 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007c 4c4c 4c4c 4c8c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0063 6377 775b 5b43 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0063 6363 7f63 6363 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 6666 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007e 6666 6666 6666 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007c 6666 6666 667c 6060 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 6260 6060 623c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00fc 3030 3030 3030 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0066 6666 6666 663e 0646 3c00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0008 083e 6b6b 6b6b 6b3e 0808 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0066 6666 3c66 6666 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0066 6666 6666 667f 0100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0066 6666 3e06 0606 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 006b 6b6b 6b6b 6b7f 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 006b 6b6b 6b6b 6b7f 0000 0000 0000 0000 0000 0000 0000 0080 8000 0000 0000 0000 00e0 6060 786c 6c78 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0061 6161 796d 6d79 0000 0000 0000 0000 0080 8080 8080 8080 0000 0000 0000 0000 0060 6060 7c66 667c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 4606 1e06 463c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0066 6b6b 7b6b 6b66 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003e 6666 3e66 6666 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ] &cyrillic-glyphs-end @chicago/latin2-widths [ 0808 0808 0808 0b08 0707 0707 0606 0606 0809 0808 0808 0807 0908 0808 0808 0809 0808 0808 0808 0c08 0808 0808 0606 0606 0808 0808 0808 0807 0808 0808 0808 0808 ] @chicago/latin2-glyphs [ 1008 003c 6666 667e 6666 6666 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0810 003c 6666 667e 6666 6666 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1824 003c 6666 667e 6666 6666 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 324c 003c 6666 667e 6666 6666 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0024 003c 6666 667e 6666 6666 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1824 243c 6666 667e 6666 6666 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003f 6666 667f 6666 6667 0000 0000 0000 00c0 0000 0080 0000 00c0 0000 0000 0000 003c 6260 6060 6060 623c 1808 1000 0000 0000 0000 0000 0000 0000 0000 0000 1008 007c 6060 6078 6060 607c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0810 007c 6060 6078 6060 607c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3048 007c 6060 6078 6060 607c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0028 007c 6060 6078 6060 607c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 2010 0030 3030 3030 3030 3030 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1020 0030 3030 3030 3030 3030 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3048 0030 3030 3030 3030 3030 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0048 0030 3030 3030 3030 3030 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007c 6666 66f6 6666 667c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 324c 0041 6171 795d 4f47 4341 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1008 003c 6666 6666 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0810 003c 6666 6666 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1824 003c 6666 6666 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 324c 003c 6666 6666 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0024 003c 6666 6666 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0044 2810 2844 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 001e 3333 373b 3333 739e 0000 0000 0000 0080 0000 0000 0000 0000 0000 0000 1008 0066 6666 6666 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0810 0066 6666 6666 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1824 0066 6666 6666 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0024 0066 6666 6666 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0810 0066 6666 663c 1818 1818 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0060 7c66 6666 667c 6060 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 001e 3333 3633 3333 3376 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1008 003c 463e 6666 663e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0810 003c 463e 6666 663e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1824 003c 463e 6666 663e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 324c 003c 463e 6666 663e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0024 003c 463e 6666 663e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1824 2418 003c 463e 6666 663e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003f 463e 6766 663f 0000 0000 0000 0000 00c0 6060 e000 20c0 0000 0000 0000 0000 003c 6260 6060 623c 1808 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1008 003c 6666 7e60 623c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0810 003c 6666 7e60 623c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1824 003c 6666 7e60 623c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0024 003c 6666 7e60 623c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 2010 0030 3030 3030 3030 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1020 0030 3030 3030 3030 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3048 0030 3030 3030 3030 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0048 0030 3030 3030 3030 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 380c 1e36 6666 6438 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 324c 007c 6666 6666 6666 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1008 003c 6666 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0810 003c 6666 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1824 003c 6666 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 324c 003c 6666 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0024 003c 6666 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0010 007c 0010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003d 6666 6e76 66bc 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1008 0066 6666 6666 663e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0810 0066 6666 6666 663e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1824 0066 6666 6666 663e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0024 0066 6666 6666 663e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0810 0066 6666 6666 663e 0646 3c00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 6060 6c76 6666 766c 6060 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0024 0066 6666 6666 663e 0646 3c00 0000 0000 0000 0000 0000 0000 0000 0000 ] @chicago/hiragana-glyphs [ 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 060b 0e03 060b 0d08 0000 0000 0000 0000 8080 40c0 e060 60c0 0000 0000 0603 273e 140f 1d15 262e 3a01 0000 0000 0000 8000 80e0 3030 3030 6080 0000 0000 0000 0000 0010 080c 0c0c 0e04 0000 0000 0000 0000 0080 4060 e000 0000 0000 0000 0000 2010 1818 1a1c 180c 0c00 0000 0000 0000 0040 2030 7030 0000 0000 0000 0000 0000 0003 0100 0b0e 0400 0003 0000 0000 0000 0000 8000 80c0 c0c0 8000 0000 0000 0403 0100 171c 0800 0000 0106 0000 0000 0080 8000 80c0 c0c0 c080 8000 0000 0000 0000 0000 0701 0f0d 0305 0d18 0000 0000 0000 0000 0080 8000 0000 e0e0 0000 0000 0407 0311 1f0d 0206 0d19 3130 0000 0000 0080 0080 8000 0000 0000 f0f0 0000 0000 0000 0000 000d 171c 071c 140d 0000 0000 0000 0000 0040 6020 80c0 c080 0000 0000 180c 0e2a 3e19 0f0c 3829 1c18 0000 0000 0060 3030 00e0 3030 3030 e000 0000 0000 0c0e 044f 7d68 1911 316b 6706 0000 0000 0000 0060 b098 98b8 9000 0000 0000 0000 0c0e 044f 7d68 1911 316b 6706 0000 0000 1028 3850 a0b0 98b8 9000 0000 0000 0000 0606 131f 110f 010f 1018 0f07 0000 0000 00c0 c060 c000 80c0 c000 0000 0000 0000 0606 131f 110f 010f 1018 0f07 0000 0000 20d0 b060 c000 80c0 c000 0000 0000 0000 0301 0103 0608 0c06 0303 0101 0000 0000 0080 8000 0000 0000 0000 8080 0000 0000 0003 0101 0306 080c 0603 0301 0100 0000 0000 80a0 5070 2000 0000 0080 8000 0000 0001 3018 1817 3620 2830 3018 1900 0000 0080 e0c0 f0d0 c0c0 c0c0 8080 0000 0000 0001 3018 1814 3722 2830 3018 1900 0000 0090 e8d8 d0f8 d0c0 c0c0 8080 0000 0000 0000 000f 0701 0008 1010 1f0f 0000 0000 0000 0080 c000 0000 0000 e0c0 0000 0000 0000 000f 0701 0008 1010 1f0f 0000 0000 0020 50f0 a000 0000 0000 e0c0 0000 0000 0006 0603 111f 0c03 0408 0c07 0300 0000 0000 0060 c080 c0e0 6000 0080 c000 0000 0006 0603 111f 0c03 0408 0c07 0300 0000 0010 2878 d080 c0e0 6000 0080 c000 0000 0018 0e0c 0c0c 0c0c 0c0c 0c0f 0700 0000 0000 0000 0000 0000 0010 60c0 0000 0000 0018 0e0c 0c0c 0c0c 0c0c 0c0f 0700 0000 0000 40a0 e040 0000 0010 60c0 0000 0000 0003 0101 477d 370d 0d07 0101 0600 0000 0000 c080 f0b8 8080 8080 8000 0000 0000 0003 0101 477d 370d 0d07 0101 0600 0000 0050 f8a8 f0b8 8080 8080 8000 0000 0000 0001 180e 0c4f 7e3c 0d0c 0c07 0300 0000 0080 c0c0 f0f8 c0c0 c080 00e0 e000 0000 0000 190e 0c4f 7e3c 0d0c 0c07 0300 0000 0050 b8e0 d0f8 c0c0 c080 00e0 e000 0000 0000 0b0e 0503 171d 1a02 0301 0000 0000 0000 c0c0 8060 f000 0000 00c0 c000 0000 0000 171d 0b06 2f3a 3404 0603 0100 0000 0000 90a8 38d0 e000 0000 0080 8000 0000 0018 0e0c 4f7d 2818 1832 3130 0000 0000 0000 0000 00e0 e000 0000 e0e0 0000 0000 0018 0e0c 4f7d 2818 1832 3130 0000 0000 0010 2838 10e0 c000 0000 e0e0 0000 0000 000c 0706 273f 140d 0e0c 0000 0300 0000 0000 0000 8000 00c0 6060 60c0 0000 0000 000c 0706 273f 140d 0e0c 0000 0300 0000 0000 2050 f020 00c0 6060 60c0 0000 0000 0000 0000 0000 0003 1e0c 0000 0300 0000 0000 0000 0000 00c0 6060 60c0 0000 0000 0000 0000 032e 3c10 0000 0003 0000 0000 0000 0000 e030 3030 3060 c000 0000 0000 0000 0000 032e 3c10 0000 0003 0000 0000 0010 2838 e830 3030 3060 c000 0000 0000 0000 0003 5f7b 2604 0406 0301 0000 0000 0000 00f0 f000 0000 0000 e0e0 0000 0000 0000 0003 5f7b 2604 0406 0301 0000 0000 0000 00e0 d028 3810 0000 e0e0 0000 0000 000c 0606 0606 0403 0608 080f 0700 0000 0000 0000 0060 e080 0000 00e0 e000 0000 0018 0c0c 0c0c 0907 0c10 101f 0f00 0000 0020 5070 20c0 c000 0000 00c0 c000 0000 0018 0d4f 7e68 1831 3127 090d 0700 0000 0000 0060 3070 8080 80c0 f0b0 0000 0000 0000 3018 1b18 3020 3235 3918 1800 0000 0000 00e0 e040 0000 0000 f0f0 0000 0000 0003 0111 171d 0b1a 3625 3b11 0000 0000 0000 8080 e030 3030 30e0 30d8 0000 0000 0018 0c0c 0d0b 3a2c 1829 3b1d 1000 0000 0000 0000 e030 3030 30e0 30d8 0000 0000 0000 0007 0a1a 1434 2c38 1801 0000 0000 0000 00c0 6030 3030 3060 4080 0000 0000 0000 301c 181b 3120 2831 321b 1900 0000 0000 c060 78f0 c060 60e0 70d8 8000 0000 0031 1c18 1f33 2020 3334 1e1b 0000 0000 10b8 e8d0 f080 c0c0 e0f0 d880 0000 0000 0031 1c18 1f33 2020 3334 1e1b 0000 0000 38a8 b8f0 e080 c0c0 e0f0 d880 0000 0000 0000 263e 1c08 0810 1011 1f0e 0000 0000 0000 6060 6070 58d8 8080 0000 0000 0000 0000 4c7c 3810 1021 2123 3e1c 0000 0000 0010 f8e8 d0e0 b0b0 0000 0000 0000 0000 0000 4c7c 3810 1021 2123 3e1c 0000 0000 0038 e8f8 c0e0 b0b0 0000 0000 0000 0000 0004 0303 0406 030d 5935 3303 0000 0000 0000 8000 0000 e030 9898 8000 0000 0000 0004 0303 0406 030d 5935 3303 0000 0000 0010 b828 3010 e030 9898 8000 0000 0000 0004 0303 0406 030d 5935 3303 0000 0000 0000 b828 3800 e030 9898 8000 0000 0000 0000 0c0a 1959 3030 0000 0000 0000 0000 0000 0000 0080 e078 1800 0000 0000 0000 0000 0c0a 1959 3030 0000 0000 0000 0000 40a0 e040 0080 e078 1800 0000 0000 0000 0000 0c0a 1959 3030 0000 0000 0000 0000 00e0 a0e0 0080 e078 1800 0000 0000 0000 0030 1f1a 1837 2228 3332 1b19 0000 0000 00f0 e0c0 f0e0 c0c0 e0f0 d080 0000 0000 0030 1f1a 1837 2228 3332 1b19 0000 0000 1078 e8d0 f0e0 c0c0 e0f0 d080 0000 0000 0030 1f1a 1837 2228 3332 1b19 0000 0000 3868 f8c0 f0f0 c0c0 e0f0 d080 0000 0000 0703 331f 131f 0b03 0f13 1f0e 0000 0000 0000 e040 c080 0000 80e0 6000 0000 0000 0017 1f0a 0604 1f2d 3831 2106 0000 0000 0000 0000 c060 60f8 d880 0000 0000 0000 180d 4f7c 2c08 3828 2818 0f07 0000 0000 0000 6050 5858 2020 2020 e0c0 0000 0000 0301 1117 1d0b 1a36 263a 1100 0000 0000 0080 80e0 3030 3030 6040 8000 0000 0000 0603 130e 0715 1e0b 0d0c 0703 0000 0000 0000 0000 0080 4060 2060 c080 0000 0000 0000 0002 030d 1b2d 3c06 0303 0000 0000 0000 0000 00c0 e020 c000 0000 0000 0000 0002 1914 1b0e 4d3e 3203 0101 0000 0000 0000 80f0 9818 30e0 0000 8080 0000 0000 0000 0003 190b 151d 1b0b 0306 0000 0000 0000 0000 80c0 6060 60c0 0000 0000 0000 0231 1d1b 3535 3d35 1b11 030c 0000 0000 0000 c0a0 b0b0 b0a0 c080 0000 0000 0000 0000 0006 0302 0302 0f13 1e0c 0000 0000 0000 0000 00c0 8000 00c0 c000 0000 0000 0603 0303 0303 0303 1f23 331e 0000 0000 0080 0060 e000 0000 80e0 7000 0000 0000 0201 0305 0c0c 0d0e 0c00 0003 0000 0000 0000 8080 0000 c060 6060 c000 0000 0000 0018 0d0e 0a1c 1c18 0801 0106 0000 0000 0000 80c0 c0c0 c0c0 c080 0000 0000 0000 000b 0f05 0205 0e1c 1807 0503 0000 0000 0080 8000 0080 4060 6060 c080 0000 0000 180c 0c0d 0a2c 3838 2818 1c18 0000 0000 0000 c060 6060 c0c0 c8f0 6000 0000 0000 000b 0f05 0205 0e18 1800 0003 0000 0000 0080 8000 0080 c060 6060 c000 0000 0000 0000 0000 000c 061d 160c 1c05 0000 0000 0000 0000 0000 00c0 6060 4080 0000 0000 180c 0c0c 093e 2c18 282c 1d18 0000 0000 0000 0000 e030 3030 3060 8000 0000 0000 000b 0f05 060f 1c34 293a 1301 0000 0000 0080 8000 00e0 3030 b070 60c0 0000 0000 000b 0d03 0d0e 0507 1835 6766 0000 0000 0080 8000 c060 c080 e090 3818 0000 0000 0603 161f 040f 191b 0504 0703 0000 0000 0000 8080 4060 e080 8000 c0e0 0000 0000 0403 0306 060c 0816 1b33 3331 0000 0000 0000 0000 0000 0010 1020 60c0 0000 0000 0f00 001f 1000 0000 0007 0000 0000 0010 a810 00e0 2030 2020 c000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 040c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0101 0000 0000 0000 0000 0000 0000 0000 8080 0000 0000 0000 0000 0000 0000 0000 1048 2c30 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3048 4830 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ] @chicago/katakana-glyphs [ 0000 0000 000f 0007 0000 0000 0000 0000 0000 0000 00c0 0080 0000 0000 0000 0000 0000 0000 0000 0001 1f0a 0303 0204 0000 0000 0000 0000 00e0 4080 0000 0000 0000 0000 0000 233f 1c13 0303 0206 0408 0000 0000 0020 f030 c000 0000 0000 0000 0000 0000 0000 0000 0001 0103 071b 0303 0000 0000 0000 0000 0080 8000 0000 0000 0000 0000 0000 0101 0307 0b33 0303 0303 0000 0000 80c0 c080 0000 0000 0000 0000 0000 0000 0000 0000 0e06 171e 1919 0106 0000 0000 0000 0000 0080 c0c0 8080 0000 0000 0000 0603 0333 1e18 1818 0001 0102 0000 0000 0080 60f0 6060 60c0 c080 0000 0000 0000 0000 0000 0001 0f0b 0313 1e00 0000 0000 0000 0000 00c0 4000 40e0 0000 0000 0000 0000 011f 1a03 0303 033f 1800 0000 0000 0000 c0e0 0000 0000 60f0 0000 0000 0000 0000 0000 0603 131f 070b 1702 0000 0000 0000 0000 0000 c040 0000 0000 0000 0000 0301 0103 3f1b 0705 0935 0301 0000 0000 00c0 80f0 b080 8080 8080 8000 0000 0000 0007 0302 073e 340c 1813 2141 0000 0000 0000 0040 e0c0 c0c0 8080 8000 0000 0000 0007 0302 073e 340c 1813 2141 0000 0000 0010 2838 f0c0 c0c0 8080 8000 0000 0000 0603 0303 1f1b 013f 1901 0101 0000 0000 0080 00e0 6000 f0b0 8080 8080 0000 0000 0603 0303 1f1b 013f 1901 0101 0000 0000 10a8 38d0 4000 f0b0 8080 8080 0000 0000 0006 0303 0604 0811 0102 0408 0000 0000 0000 60e0 60c0 c080 0000 0000 0000 0000 0000 0c06 070c 0911 2302 0408 1000 0000 0010 28f8 d0c0 8080 0000 0000 0000 0000 0000 000c 0606 0f09 1123 0204 0800 0000 0000 0000 00e0 f080 8000 0000 0000 0000 0000 0018 0c0d 1f13 2346 0408 1000 0000 0000 1028 18d0 e000 0000 0000 0000 0000 0000 0000 001f 0c00 001f 0c00 0000 0000 0000 0000 c0e0 60c0 c0c0 c000 0000 0000 0000 0000 011f 0c01 011f 0d00 0000 0000 0000 1028 f8d0 c080 8080 8000 0000 0000 0001 180e 0c0f 7c6c 0c01 0101 0600 0000 0080 e0c0 f0f8 c0c0 c080 8000 0000 0000 0001 180e 0c0f 7c6c 0c01 0101 0600 0000 0090 e8d8 d0f8 c0c0 c080 8000 0000 0000 0000 100e 261c 0c00 0127 1e18 0000 0000 0000 0000 0010 2040 8000 0000 0000 0000 0000 100e 261c 0c00 0127 1e18 0000 0000 0000 1028 1810 2040 8000 0000 0000 0000 0000 0003 1f19 0303 0604 0830 0000 0000 0000 00c0 8080 0000 80c0 6060 0000 0000 0000 0003 1f19 0303 0604 0830 0000 0000 0010 28f8 9080 0000 80c0 6060 0000 0000 001c 0e0c 0c0f 7c6c 0d0c 0f07 0000 0000 0000 0000 c0e0 c080 0000 e0e0 0000 0000 001c 0e0c 0c0f 7c6c 0d0c 0f07 0000 0000 0010 2838 d0e0 c080 0000 e0e0 0000 0000 0000 0020 1018 1801 0103 0204 0800 0000 0000 c060 e0c0 c080 8000 0000 0000 0000 0000 0120 1018 1801 0103 0204 0800 0000 0010 28f8 d0c0 c080 8000 0000 0000 0000 0000 0603 0306 060b 1103 0204 0800 0000 0000 0060 e0c0 c080 8000 0000 0000 0000 000c 0607 0d0d 1723 0604 0810 0000 0000 1028 f8d0 8080 0000 0000 0000 0000 0000 0101 071e 0303 3f1b 0206 0418 0000 0000 0080 8000 60f0 0000 0000 0000 0000 0000 0101 071e 0303 3f1b 0206 0418 0000 0000 0090 a818 70e0 0000 0000 0000 0000 0000 0000 0000 0004 161a 0801 0106 0000 0000 0000 0000 0080 c0c0 8080 0000 0000 0000 0008 0626 1818 0000 0101 0204 0000 0000 0060 3070 6060 c0c0 8000 0000 0000 0000 0010 0c4c 3030 0101 0302 0408 0000 0000 1028 b8d0 c0c0 8080 0000 0000 0000 0000 0001 1f0c 233f 1b03 0206 0408 0000 0000 0080 c000 e070 0000 0000 0000 0000 0000 0001 1f0c 233f 1b03 0206 0408 0000 0000 10a8 b810 e060 0000 0000 0000 0000 0000 0c07 0606 0706 0606 0606 0606 0000 0000 0000 0000 80e0 6000 0000 0000 0000 0000 0c07 0606 0706 0606 0606 0606 0000 0000 0020 5070 a0e0 6000 0000 0000 0000 0000 0603 0303 033f 1b03 0206 0408 0000 0000 0080 0000 f030 0000 0000 0000 0000 0000 0000 0001 1f1c 0000 3f38 0000 0000 0000 0000 0080 c000 00e0 f000 0000 0000 0000 0000 011e 1c05 0303 0604 1800 0000 0000 0000 c0e0 c080 00c0 6060 0000 0000 0000 0603 0117 1d0b 060f 3303 0303 0000 0000 0080 00c0 8000 c060 6000 0000 0000 0000 0000 0000 0001 0103 0204 1800 0000 0000 0080 e0c0 c080 8000 0000 0000 0000 0000 0000 000c 0c0c 0818 1020 0000 0000 0000 0000 0080 4060 3030 3000 0000 0000 0000 0000 0000 0c0c 0c08 1810 2000 0000 0000 0000 1028 9050 6030 3030 0000 0000 0000 0000 0000 0c0c 0c08 1810 2000 0000 0000 0000 3828 b840 6030 3030 0000 0000 0000 0000 180e 0c0c 0f0c 0c0c 0f07 0000 0000 0000 0000 00c0 c000 0000 e0e0 0000 0000 0000 180e 0c0c 0f0c 0c0c 0f07 0000 0000 0000 1028 38d0 c000 0000 e0e0 0000 0000 0000 180e 0c0c 0f0c 0c0c 0f07 0000 0000 0000 3828 38c0 c000 0000 e0e0 0000 0000 0000 0003 3e38 0101 0302 0408 0000 0000 0000 00e0 c0c0 8080 0000 0000 0000 0000 0000 0003 3e38 0101 0302 0408 0000 0000 0010 28f8 d0c0 8080 0000 0000 0000 0000 0000 0003 3e38 0101 0302 0408 0000 0000 0038 28f8 c0c0 8080 0000 0000 0000 0000 0000 0000 0e09 1938 1000 0000 0000 0000 0000 0000 0000 80c0 7030 0000 0000 0000 0000 0000 0e09 1938 1000 0000 0000 0000 0000 40a0 e040 80c0 7030 0000 0000 0000 0000 0000 0e09 1938 1000 0000 0000 0000 0000 e0a0 e000 80c0 7030 0000 0000 0000 0000 0603 0323 3f1b 1333 3b07 0200 0000 0000 0080 00f0 3080 6030 3000 0000 0000 0000 0603 0323 3f1b 1333 3b07 0200 0000 0010 28b8 10f0 3080 6030 3000 0000 0000 0000 0603 0323 3f1b 1333 3b07 0200 0000 0038 28b8 00f0 3080 6030 3000 0000 0000 0000 0000 233e 3807 0301 0100 0000 0000 0000 0000 e0e0 8000 0080 8000 0000 0000 0000 0f01 000e 0301 1e03 0100 0000 0000 0000 00c0 c000 8080 0080 c0c0 0000 0000 0006 0303 0606 0404 093e 3800 0000 0000 0000 0000 0080 4060 e030 3000 0000 0000 0000 0000 0d03 0306 0408 3000 0000 0000 00c0 e0c0 8080 00c0 6060 0000 0000 0000 0000 031e 1e07 3f36 0607 0300 0000 0000 0000 c0c0 00f0 3000 00e0 e000 0000 0000 0000 0000 000c 0507 1e13 0101 0000 0000 0000 0000 0000 e040 8000 0080 0000 0000 0018 0c0d 070e 7a33 0101 0000 0000 0000 0000 00e0 7040 8000 0080 c0c0 0000 0000 0000 0000 0001 0e05 011f 0800 0000 0000 0000 0000 0080 8000 40e0 0000 0000 0000 0000 0003 1d19 0103 3f18 0000 0000 0000 0000 00c0 8080 0060 f000 0000 0000 0000 0000 0000 0001 0e01 0e01 0b0d 0000 0000 0000 0000 00c0 c0c0 8080 8080 0000 0000 0000 011e 1803 0e00 1b1c 0000 0000 0000 0000 e060 60c0 c0c0 c0c0 0000 0000 0000 0001 0f0c 031e 1801 0103 0204 0000 0000 00c0 c000 e0c0 c080 8000 0000 0000 0000 0118 0e0c 0c0c 0c0c 0001 0106 0000 0000 80e0 c0c0 c0c0 c0c0 8080 0000 0000 0000 0003 190d 0d0d 0919 1121 4300 0000 0000 0000 c080 8088 90a0 c080 0000 0000 0000 0018 0e0c 0c0c 0c0c 0f0e 0800 0000 0000 0000 0000 0010 20c0 8000 0000 0000 0000 0000 331c 1819 1919 1f18 0000 0000 0000 0000 c0c0 c080 8080 c000 0000 0000 0000 0000 0000 0009 0e0c 0c01 0102 0000 0000 0000 0000 00e0 c0c0 8080 0000 0000 0000 0000 331e 1818 1801 0101 020c 0000 0000 0000 c060 e0c0 c080 8000 0000 0000 0000 0301 0101 1f0d 0d3f 1901 0101 0000 0000 00c0 80e0 e080 e0f0 8080 8080 0000 0000 0000 011e 1907 0303 033f 1800 0000 0000 0000 c0e0 8000 0000 60f0 0000 0000 0000 0000 011f 1c03 1e19 0103 020c 0000 0000 0000 c060 60c0 c080 8000 0000 0000 0000 0000 201c 0c00 0001 271e 1800 0000 0000 0000 0000 1020 4080 0000 0000 0000 0000 0c07 0637 1c18 1819 0103 0204 0000 0000 1028 78d0 c0c0 c080 8000 0000 0000 0000 0000 0000 0006 171e 060c 0b13 0000 0000 0000 0000 0000 c0c0 c0c0 8000 0000 0000 0000 0000 0606 0f0d 1103 0204 0000 0000 0000 0000 00c0 e080 8000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0003 0300 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 407f 3f10 0000 0000 0000 0000 0000 0000 00f0 f800 0000 0000 0000 0000 0000 0008 0603 0101 0000 0000 0000 0000 0000 0000 0000 8080 0000 0000 0000 0000 0000 0110 0c06 0303 0000 0000 0000 0000 0080 40e0 8000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ] @chicago/widths [ 0406 070a 070b 0a03 0505 0707 0407 0407 0808 0808 0808 0808 0808 0404 0608 0608 0b08 0808 0807 0708 0806 0709 070c 0908 0808 0807 0608 080c 0808 0805 0705 0808 0608 0807 0808 0608 0804 0608 040c 0808 0808 0607 0608 080c 0808 0805 0505 0808 ] @chicago/glyphs [ 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0030 3030 3030 3000 3030 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0028 2828 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0909 3f12 127f 2424 0000 0000 0000 0000 0000 8000 0000 0000 0000 0000 0000 0000 1038 5470 7038 1c1c 5438 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3749 4a32 0404 090a 1211 0000 0000 0000 0000 0000 0000 8040 4080 0000 0000 0000 003c 6666 3067 6666 663c 0000 0000 0000 0000 0080 8000 0000 0000 0000 0000 0000 0040 4040 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1020 6060 6060 6060 6020 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 4020 3030 3030 3030 3020 4000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0010 5438 5410 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0010 107c 1010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 6060 2040 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 6060 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0404 0808 1010 2020 4040 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 6666 6666 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0018 3818 1818 1818 1818 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 4606 060c 1830 607e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007e 0c18 3c06 0606 463c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0006 0e16 2646 7f06 0606 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007e 6060 7c06 0606 463c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 001c 3060 7c66 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007e 0606 060c 1818 1818 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 6666 663c 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 6666 6666 3e06 0c38 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0060 6000 0000 6060 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0060 6000 0000 6060 2040 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1830 60c0 6030 1800 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 7e00 7e00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 c060 3018 3060 c000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 4606 0c18 1800 1818 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1f20 4e52 524d 201f 0000 0000 0000 0000 0080 4040 4080 0000 0000 0000 0000 003c 6666 667e 6666 6666 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007c 6666 667c 6666 667c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 6260 6060 6060 623c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007c 6666 6666 6666 667c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007c 6060 6078 6060 607c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007c 6060 6078 6060 6060 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 6260 606e 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0066 6666 667e 6666 6666 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0030 3030 3030 3030 3030 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000c 0c0c 0c0c cccc cc78 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0063 666c 7870 786c 6663 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0060 6060 6060 6060 607c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0040 6070 795f 4e44 4040 0000 0000 0000 0020 60e0 e060 6060 6060 0000 0000 0000 0041 6171 795d 4f47 4341 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 6666 6666 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007c 6666 667c 6060 6060 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 6666 6666 6666 663c 0600 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007c 6666 667c 6666 6666 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0038 6460 7038 1c0c 4c38 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00fc 3030 3030 3030 3030 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0066 6666 6666 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0066 6666 6666 6666 6478 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0066 6666 6666 6666 667f 0000 0000 0000 0060 6060 6060 6060 4080 0000 0000 0000 0066 6666 663c 6666 6666 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0066 6666 663c 1818 1818 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007e 0606 0c18 3060 607e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 7060 6060 6060 6060 6060 7000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 4040 2020 1010 0808 0404 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 7030 3030 3030 3030 3030 7000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0008 1422 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00ff 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 4020 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 463e 6666 663e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0060 607c 6666 6666 667c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0038 6460 6060 6438 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0006 063e 6666 6666 663e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 6666 7e60 623c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 001c 3078 3030 3030 3030 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003e 6666 6666 663e 0646 3c00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0060 607c 6666 6666 6666 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0060 0060 6060 6060 6060 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0018 0018 1818 1818 1818 1898 7000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0060 6066 6c78 7078 6c66 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0060 6060 6060 6060 6060 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007f 6666 6666 6666 0000 0000 0000 0000 00c0 6060 6060 6060 0000 0000 0000 0000 007c 6666 6666 6666 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 6666 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007c 6666 6666 667c 6060 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003e 6666 6666 663e 0606 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 006c 7060 6060 6060 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0038 6470 381c 4c38 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0030 3078 3030 3030 3018 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0066 6666 6666 663e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0066 6666 6666 6478 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0066 6666 6666 667f 0000 0000 0000 0000 0060 6060 6060 4080 0000 0000 0000 0000 0066 6666 3c66 6666 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0066 6666 6666 663e 0646 3c00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007e 060c 1830 607e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1020 2020 2040 2020 2020 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 2020 2020 2020 2020 2020 2000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 4020 2020 2010 2020 2020 4000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0032 4c00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0024 003c 6666 667e 6666 6666 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1824 243c 6666 667e 6666 6666 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 6260 6060 6060 623c 1808 1000 0000 0000 0000 0000 0000 0000 0000 0000 0810 007c 6060 6078 6060 607c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 324c 0041 6171 795d 4f47 4341 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0024 003c 6666 6666 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0024 0066 6666 6666 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0810 003c 463e 6666 663e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1008 003c 463e 6666 663e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1824 003c 463e 6666 663e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0024 003c 463e 6666 663e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 324c 003c 463e 6666 663e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1824 2418 003c 463e 6666 663e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 6260 6060 623c 1808 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0810 003c 6666 7e60 623c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1008 003c 6666 7e60 623c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1824 003c 6666 7e60 623c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0024 003c 6666 7e60 623c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1020 0030 3030 3030 3030 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 2010 0030 3030 3030 3030 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3048 0030 3030 3030 3030 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0048 0030 3030 3030 3030 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 324c 007c 6666 6666 6666 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0810 003c 6666 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1008 003c 6666 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1824 003c 6666 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0024 003c 6666 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 324c 003c 6666 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0810 0066 6666 6666 663e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1008 0066 6666 6666 663e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1824 0066 6666 6666 663e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0024 0066 6666 6666 663e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0020 7020 2020 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0030 4848 3000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1038 5450 5054 3810 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 001c 3230 3078 3030 317e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3844 6030 584c 6434 180c 4438 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0038 7c7c 7c38 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003f 6565 653d 0505 0505 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 001e 3333 3633 3333 3376 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 001e 215c 525c 5252 211e 0000 0000 0000 0000 0080 8080 8080 0000 0000 0000 0000 001e 214c 5250 524c 211e 0000 0000 0000 0000 0080 8080 8080 0000 0000 0000 0000 0074 2625 2400 0000 0000 0000 0000 0000 0040 c040 4000 0000 0000 0000 0000 0000 0010 2040 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0048 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0004 7f08 7f10 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003f 6666 667f 6666 6667 0000 0000 0000 00c0 0000 0080 0000 00c0 0000 0000 0000 001e 3333 373b 3333 739e 0000 0000 0000 0080 0000 0000 0000 0000 0000 0000 0000 0000 0038 4543 463c 0000 0000 0000 0000 0000 00f0 8808 8870 0000 0000 0000 0000 0000 0010 107c 1010 007c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0010 2040 2010 0078 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0020 1008 1020 0078 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0061 337f 0c7f 0c0c 0c0c 0000 0000 0000 0080 0080 0080 0000 0000 0000 0000 0000 0000 0033 3333 3333 333e 2040 0000 0000 0000 0000 0000 0000 0080 0000 0000 0000 0000 380c 1e36 6666 6438 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007f 3118 0c06 0c18 317f 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007f 3333 3333 3333 3333 0000 0000 0000 0080 0000 0000 0000 0000 0000 0000 0000 0000 003f 5919 1919 1911 0000 0000 0000 0000 4080 8080 8080 8000 0000 0000 0000 0018 3030 3030 3030 3030 3060 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0038 4c3c 6c6c 3c00 7c00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0038 6c6c 6c6c 3800 7c00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 001e 3361 6161 2112 1233 0000 0000 0000 0000 0080 8080 0000 0000 0000 0000 0000 0000 003f 463e 6766 663f 0000 0000 0000 0000 00c0 6060 e000 20c0 0000 0000 0000 0000 003d 6666 6e76 66bc 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0018 1800 1818 3060 623c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0030 3000 3030 3030 3030 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007c 0404 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0101 2262 1414 0808 0000 0000 0000 e080 0000 0000 0000 0000 0000 0000 0000 0018 3030 7830 3030 3030 3060 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 1e21 1e20 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0808 1414 2222 417f 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0009 1224 4824 1209 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0048 2412 0912 2448 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3333 0000 0000 0000 0000 0000 0000 0000 3030 0000 0000 ] @message &buf $200 @id3 &title $100 &artist $100 &album $100 @tmp $81 @mem &dir $2000 &folders $3000 &tracks