-- title: sawayama solitaire -- author: desttinghim -- desc: A demake of kawayama solitaire for TIC-80 -- site: website link -- license: MIT License (change this to your license of choice) -- version: 0.1 -- script: lua -- saveId: sawayama-solitaire suit_icon={34,35,33,36} suit_color={0,0,2,2} suit_names={'clubs','spades','hearts','diamonds'} card={ sid=5, tw=3, th=3, colorkey=14 } hilight={ sid=8, tw=3, th=3, colorkey=14 } selected={ sid=11, tw=3, th=3, colorkey=14 } hidden={ sid=56, tw=3, th=3, colorkey=14 } exhausted=false stacks={} c_hover=nil hand=nil locations={} debug=false render_list={} mouse_pos=nil last_left=false current_stack=8 is_clearing=false left_hold={length=1200,length_display=600,start=nil} should_check_for_win=false WIN_COUNT_SLOT=0 win_count = pmem(WIN_COUNT_SLOT) function create_deck() local cards={} for i=1,13 do for a=1,4 do table.insert(cards, { x=0,y=0,state=0, rank=i, suit=a }) end end return cards end function shuffle(cards) for a,c in ipairs(cards) do local b=math.random(#cards) local tmp=cards[a] cards[a]=cards[b] cards[b]=tmp end end function draw_cards(cards,num) local tmp={} for i=1,num do table.insert(tmp, table.remove(cards,1)) end return tmp end function draw_cards_to(cards,cards2,num) for i=1,num do table.insert(cards2, table.remove(cards,1)) end end function BOOT() stacks={ {}, {}, -- deck, pile {}, {}, {}, {}, -- finished {}, {}, {}, {}, {}, {}, {} } if debug then for i=13,1,-1 do for a=1,4 do table.insert(stacks[14-a], { x=0,y=0,state=0, rank=i, suit=a }) end end return end stacks[1] = create_deck() shuffle(stacks[1]) table.insert(locations,{1,2,2}) -- Set up stacks for i=1,7 do stacks[i+6]=draw_cards(stacks[1], i) table.insert(locations,{i+6,i*30,30}) end end function TIC() render_list={} update() draw() end function update() -- for j,stack in ipairs(stacks) do for i,c in ipairs(stack) do if c.state==2 and hand then -- don't set the state elseif not exhausted and j==1 then c.state=3 else c.state=0 end end end local c_up=btnp(0,30,6) local c_down=btnp(1,30,6) local c_left=btnp(2,30,6) local c_right=btnp(3,30,6) local c_sel=btnp(5) local c_back=btnp(4) local c_moved=c_up or c_down or c_left or c_right if not left_hold.start and c_sel then left_hold.start=time() elseif left_hold.start and not btn(5) then left_hold.start=nil elseif left_hold.start and btn(5) then local elapsed=time()-left_hold.start if elapsed>left_hold.length then is_clearing=true left_hold.start=nil end end if not c_hover then if c_up or c_down or c_left or c_right then c_hover={8,#stacks[8]} end else local si=c_hover[1] if si==7 and c_left then c_hover[1]=3 end if si>=3 and si<6 and c_down then c_hover[1]=c_hover[1]+1 end if si>3 and si<8 and c_up then c_hover[1]=c_hover[1]-1 elseif si==3 and c_up then c_hover[1]=1 end if si>=3 and si<7 and c_right then c_hover[1]=7 end if si>7 and c_left then c_hover[1]=si-1 if hand then c_hover[2]=#stacks[c_hover[1]] else c_hover[2]=find_top_of_stack(stacks[c_hover[1]], #stacks[c_hover[1]]) end end if si>=7 and si<13 and c_right then c_hover[1]=si+1 if hand then c_hover[2]=#stacks[c_hover[1]] else c_hover[2]=find_top_of_stack(stacks[c_hover[1]], #stacks[c_hover[1]]) end end if si>=7 and c_up then c_hover[2]=c_hover[2]-1 if not sel_can_move(c_hover) then current_stack=si if #stacks[2]~=0 then c_hover={2,#stacks[2]} else c_hover={1,#stacks[1]} end end end if si>=7 and c_down then c_hover[2]=c_hover[2]+1 end if si==1 and c_right and #stacks[2]~=0 then c_hover={2,#stacks[2]} end if si==2 and c_left then c_hover={1,#stacks[1]} end if si==1 and c_down then c_hover={3, 0} end if si==2 and c_down then c_hover={current_stack, #stacks[current_stack]} end if c_hover[2]>#stacks[c_hover[1]] then c_hover[2]=#stacks[c_hover[1]] elseif c_hover[2]==0 then c_hover[2]=#stacks[c_hover[1]] end end local mx,my,mleft,middle,mright,scrollx,scrolly=mouse() local mouse_moved=false if mouse_pos then if mouse_pos[1]~=mx and mouse_pos[2]~=my then mouse_moved=true end end mouse_pos={mx,my} local hover=card_at_point(mx,my) local location=location_at_point(mx,my) if mouse_moved then c_hover=nil end if c_hover then if #stacks[c_hover[1]]~=0 then hover=c_hover elseif #stacks[c_hover[1]]==0 then location=c_hover end end local left=false if mleft or c_sel then left=true end local right=false if mright or c_back then right=true end if right then hand=nil end if not last_left and hover then if not exhausted and hover[1]==1 and left then hand=nil draw_cards_to(stacks[1],stacks[2],3) if #stacks[1]==0 then exhausted=true end elseif hand and hover and hand[1]==hover[1] and hand[2]==hover[2] and left then for i=3,6 do if move_sel(hand, {i,#stacks[i]}) then break end end hand=nil elseif hand and hover and left then move_sel(hand,hover) hand=nil elseif not hand and left then if sel_can_move(hover) then stacks[hover[1]][hover[2]].state=2 hand={hover[1],hover[2]} end elseif stacks[hover[1]][hover[2]].state==0 then if sel_can_move(hover) then for i=hover[2],#stacks[hover[1]] do stacks[hover[1]][i].state=1 end end end end if left and location and hand then move_sel(hand,location) hand=nil end for j,stack in ipairs(stacks) do local stack=stacks[j] local stackx=0 local stacky=0 local offsetx=0 local offsety=0 if j==1 then stackx=2 stacky=2 end if j==2 then stackx=30 stacky=2 offsetx=8 end if j>=3 and j<7 then stackx=2 stacky=30+26*(j-3) end if j>=7 then stackx=(j-6)*30 stacky=30 offsety=8 end for i,c in ipairs(stack) do local x=stackx+offsetx*(i-1) local y=stacky+offsety*(i-1) c.x=x c.y=y c.below=j==2 table.insert(render_list,c) end end if is_clearing then hand=nil local clear_count=0 for i=3,6 do if #stacks[1]~=0 and move_sel({1,#stacks[1]}, {i,#stacks[i]}) then clear_count=clear_count+1 break end if #stacks[2]~=0 and move_sel({2,#stacks[2]}, {i,#stacks[i]}) then clear_count=clear_count+1 break end for a=7,13 do if #stacks[a]==0 then break end if move_sel({a,#stacks[a]}, {i,#stacks[i]}) then clear_count=clear_count+1 break end end end if clear_count==0 then is_clearing=false end end last_left=left if should_check_for_win then local has_won=true for i=3,6 do local stack=stacks[i] has_won=(has_won and #stack>0 and stack[#stack].rank>=13) end if has_won then pmem(WIN_COUNT_SLOT, pmem(WIN_COUNT_SLOT) + 1) win_count = pmem(WIN_COUNT_SLOT) end should_check_for_win=false end end -- This finds the largest stack that can be moved function find_top_of_stack(stack, position) local i=position while i>1 do if stack[i-1].rank~=stack[i].rank+1 or suit_color[stack[i].suit]==suit_color[stack[i-1].suit] then return i end i=i-1 end return 1 end function move_is_valid(hand,hover) if hand[1]==hover[1] then return false end local moved_card=stacks[hand[1]][hand[2]] local is_valid_move=false if hover[1]==1 then if #stacks[hover[1]]==0 and #stacks[hand[1]]==hand[2] then is_valid_move=true end elseif hover[1]>=3 and hover[1]<7 then if #stacks[hover[1]]==0 then if moved_card.rank==1 then is_valid_move=true end else local target=stacks[hover[1]][#stacks[hover[1]]] if moved_card.rank==target.rank+1 and moved_card.suit==target.suit and #stacks[hand[1]]==hand[2] then is_valid_move=true end end elseif hover[1]>=7 and #stacks[hover[1]]==0 then is_valid_move=true else local c1=stacks[hand[1]][hand[2]] local c2=stacks[hover[1]][hover[2]] local color1=suit_color[c1.suit] local color2=suit_color[c2.suit] if hover[1]~=1 and color1~=color2 and c1.rank==c2.rank-1 then is_valid_move=true end end return is_valid_move end function move_sel(hand,hover) if not move_is_valid(hand, hover) then return false end for i=hand[2],#stacks[hand[1]] do stacks[hand[1]][hand[2]].state=0 table.insert( stacks[hover[1]], table.remove(stacks[hand[1]], hand[2])) end should_check_for_win=true return true end function sel_can_move(sel) local i,j=sel[1],sel[2] if i>=3 and i<7 then return false end if i==2 then if j==#stacks[2] then return true end return false end if j<=0 then return false end if j>#stacks[i] then return false end if #stacks[i]==j then return true end local prev=stacks[i][j] for a=j+1,#stacks[i] do if stacks[i][a].rank~=prev.rank-1 or suit_color[stacks[i][a].suit]==suit_color[prev.suit] then return false end prev=stacks[i][a] end return true end function location_at_point(px,py) for i=1,#locations do local location=locations[i] local x=location[2] local y=location[3] local in_bounds= px>x and px< x+24 and py>y and py < y+24 if #stacks[location[1]]==0 and in_bounds then return {location[1],1} end end return nil end function card_at_point(px,py) for j=1,#stacks do local stack=stacks[j] for i=#stack,1,-1 do local x=stack[i].x local y=stack[i].y local in_bounds= px>x and px< x+24 and py>y and py < y+24 if in_bounds then return {j,i} end end end return nil end function draw() cls(12) print(string.format("Win Count: %4d", win_count),160,4,13) for i=1,#locations do local location=locations[i] if #stacks[location[1]]==0 then rectb(location[2],location[3],24,24,0) end end for i=0,3 do local x=2 local y=i*26+30 rect(x,y,24,24,14) rectb(x,y,24,24,0) end -- Render stacks for i,c in ipairs(render_list) do render_card(c,c.x,c.y,c.state,c.below) end if c_hover then local x=0 local y=0 if c_hover[1]==1 then x=2+8 y=2+16 end if c_hover[1]==2 then x=30+(#stacks[2])*8 y=2+16 end if c_hover[1]>=3 and c_hover[1]<=6 then x=2+8 y=30+(26*(c_hover[1]-3))+16 end if c_hover[1]>=7 then x=30*(c_hover[1]-6)+8 if c_hover[2]>0 then y=28+(c_hover[2]*8) else y=30+16 end end spr(49,x,y,14) end if left_hold.start then local elapsed=time()-left_hold.start local color=2 if elapsed/left_hold.length>0.5 then color=4 end if elapsed > left_hold.length_display then rect(200,0,40*(elapsed/left_hold.length),8,color) end end if is_clearing then rect(200,0,40,8,6) end end function render_card(c,x,y,state,below) spr(card.sid, x, y, card.colorkey, 1, 0, 0, card.tw, card.th) spr(suit_icon[c.suit],x+2,y+2,14) local tx=x+16 local ty=y+2 if below then tx=x+2 ty=y+15 end local val=c.rank if c.rank==1 then val='A' end if c.rank==10 and not below then tx=tx-5 end if c.rank==11 then val='J' end if c.rank==12 then val='Q' end if c.rank==13 then val='K' end print(val,tx,ty,suit_color[c.suit]) -- Draw hilight if state==1 then spr(hilight.sid, x, y, hilight.colorkey, 1, 0, 0, hilight.tw, hilight.th) elseif state==2 then spr(selected.sid, x, y, selected.colorkey, 1, 0, 0, selected.tw, selected.th) elseif state==3 then spr(hidden.sid, x, y, hidden.colorkey, 1, 0, 0, hidden.tw, hidden.th) end end -- -- 001:eccccccccc888888caaaaaaaca888888cacccccccacc0ccccacc0ccccacc0ccc -- 002:ccccceee8888cceeaaaa0cee888a0ceeccca0ccc0cca0c0c0cca0c0c0cca0c0c -- 003:eccccccccc888888caaaaaaaca888888cacccccccacccccccacc0ccccacc0ccc -- 004:ccccceee8888cceeaaaa0cee888a0ceeccca0cccccca0c0c0cca0c0c0cca0c0c -- 005:ee000000e0cccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc -- 006:00000000cccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 007:000000eecccccc0eccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0 -- 008:ee555555e5eeeeee5eeeeeee5eeeeeee5eeeeeee5eeeeeee5eeeeeee5eeeeeee -- 009:55555555eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee -- 010:555555eeeeeeee5eeeeeeee5eeeeeee5eeeeeee5eeeeeee5eeeeeee5eeeeeee5 -- 011:ee222222e2eeeeee2eeeeeee2eeeeeee2eeeeeee2eeeeeee2eeeeeee2eeeeeee -- 012:22222222eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee -- 013:222222eeeeeeee2eeeeeeee2eeeeeee2eeeeeee2eeeeeee2eeeeeee2eeeeeee2 -- 014:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee -- 017:cacccccccaaaaaaacaaacaaacaaaaccccaaaaaaac8888888cc000cccecccccec -- 018:ccca00ccaaaa0ccecaaa0ceeaaaa0ceeaaaa0cee8888ccee000cceeecccceeee -- 019:cacccccccaaaaaaacaaacaaacaaaaccccaaaaaaac8888888cc000cccecccccec -- 020:ccca00ccaaaa0ccecaaa0ceeaaaa0ceeaaaa0cee8888ccee000cceeecccceeee -- 021:0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc -- 022:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 023:ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0 -- 024:5eeeeeee5eeeeeee5eeeeeee5eeeeeee5eeeeeee5eeeeeee5eeeeeee5eeeeeee -- 025:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee -- 026:eeeeeee5eeeeeee5eeeeeee5eeeeeee5eeeeeee5eeeeeee5eeeeeee5eeeeeee5 -- 027:2eeeeeee2eeeeeee2eeeeeee2eeeeeee2eeeeeee2eeeeeee2eeeeeee2eeeeeee -- 028:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee -- 029:eeeeeee2eeeeeee2eeeeeee2eeeeeee2eeeeeee2eeeeeee2eeeeeee2eeeeeee2 -- 030:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee -- 033:ee2eee2ee222e2222222222222222222e2222222ee22222eeee222eeeeee2eee -- 034:eee0eeeeee000eeeee000eeee0e0e0ee0000000e0000000eeee0eeeeee000eee -- 035:eee0eeeeee000eeee00000ee0000000e0000000ee00000eeeee0eeeeee000eee -- 036:eee2eeeeee222eeee22222ee2222222e2222222ee22222eeee222eeeeee2eeee -- 037:0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccce0ccccccee000000 -- 038:cccccccccccccccccccccccccccccccccccccccccccccccccccccccc00000000 -- 039:ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0cccccc0e000000ee -- 040:5eeeeeee5eeeeeee5eeeeeee5eeeeeee5eeeeeee5eeeeeeee5eeeeeeee555555 -- 041:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee55555555 -- 042:eeeeeee5eeeeeee5eeeeeee5eeeeeee5eeeeeee5eeeeeee5eeeeee5e555555ee -- 043:2eeeeeee2eeeeeee2eeeeeee2eeeeeee2eeeeeee2eeeeeeee2eeeeeeee222222 -- 044:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee22222222 -- 045:eeeeeee2eeeeeee2eeeeeee2eeeeeee2eeeeeee2eeeeeee2eeeeee2e222222ee -- 046:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee -- 049:eee0eeeeee0c0eeeee0c00eee00ccc0e0c0cccc0e0ccccc0ee0ccc0eeee000ee -- 053:0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc00cccccc00000000 -- 054:cccccccccccccccccccccccccccccccccccccccccccccccccccccccc00000000 -- 055:ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0cccccc0000000000 -- 056:ee000000e0cccccc0ccccccc0ccfffff0ccffcfc0ccfcfcf0ccffcfc0ccfcfcf -- 057:00000000ccccccccccccccccfffffffffcfcfcfccfcfcfcffcfcfcfccfcfcfcf -- 058:000000eecccccc0eccccccc0fffffcc0fcfcfcc0cfcffcc0fcfcfcc0cfcffcc0 -- 059:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee -- 060:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee -- 061:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee -- 062:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee -- 069:00dddddd0d00000000dddddd0d00000000dddddd0d000000e0ddddddee000000 -- 070:dddddddd00000000dddddddd00000000dddddddd00000000dddddddd00000000 -- 071:dddddd00000000d0dddddd00000000d0dddddd00000000d0dddddd0e000000ee -- 072:0ccffcfc0ccfcfcf0ccffcfc0ccfcfcf0ccffcfc0ccfcfcf0ccffcfc0ccfcfcf -- 073:fcfcfcfccfcfcfcffcfcfcfccfcfcfcffcfcfcfccfcfcfcffcfcfcfccfcfcfcf -- 074:fcfcfcc0cfcffcc0fcfcfcc0cfcffcc0fcfcfcc0cfcffcc0fcfcfcc0cfcffcc0 -- 085:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee -- 086:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee -- 087:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee -- 088:0ccffcfc0ccfcfcf0ccffcfc0ccfcfcf0ccfffff0ccccccce0ccccccee000000 -- 089:fcfcfcfccfcfcfcffcfcfcfccfcfcfcfffffffffcccccccccccccccc00000000 -- 090:fcfcfcc0cfcffcc0fcfcfcc0cfcffcc0fffffcc0ccccccc0cccccc0e000000ee -- 101:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee -- 102:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee -- 103:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee -- 104:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee -- -- -- 000:00000000ffffffff00000000ffffffff -- 001:0123456789abcdeffedcba9876543210 -- 002:0123456789abcdef0123456789abcdef -- -- -- 000:000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000304000000000 -- -- -- 000:100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -- -- -- 000:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 001:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 002:cc000000000000000000000000cccccc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cccc -- 003:cc0cccccccccccccccccccccc0ccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0cccccccccccccccccccc0ccc -- 004:cc0cccccccccccccccccccccc0cccc0cccc2cc0cccc0cc0cccc2cc0ccc2ccc0ccc2ccc0cccc0cc0cccc2cc0cccc0cc0cccc0cc0cccc0cc0cccc0cc0ccc2ccc0ccc2ccc0cccc0cc0cccc2cc0cccc0cc0cccc0cc0cccc2cc0ccc2ccc0ccc2ccc0cccc0cc0cccc2cc0cccc0cc0cccc0ccccccccccccccccc0cc -- 005:cc0cccccccccccccccccccccc0cccc0ccc222c0ccc000c0ccc222c0cc222c20cc222c20ccc000c0ccc222c0ccc000c0ccc000c0ccc000c0ccc000c0cc222c20cc222c20ccc000c0ccc222c0ccc000c0ccc000c0ccc222c0cc222c20cc222c20ccc000c0ccc222c0ccc000c0ccc000cccccccccccccccc0cc -- 006:cc0cccccccccccccccccccccc0cccc0cc222220cc000000cc222220c2222220c2222220cc000000cc222220cc000000cc000000cc000000ccc000c0c2222220c2222220ccc000c0cc222220cc000000ccc000c0cc222220c2222220c2222220ccc000c0cc222220ccc000c0ccc000cccccccccccccccc0cc -- 007:cc0cccccccccccccccccccccc0cccc0c2222220c0000000c2222220c2222220c2222220c0000000c2222220c0000000c0000000c0000000cc0c0c00c2222220c2222220cc0c0c00c2222220c0000000cc0c0c00c2222220c2222220c2222220cc0c0c00c2222220cc0c0c00cc0c0c0ccccccccccccccc0cc -- 008:cc0cccccccccccccccccccccc0cccc0c2222220c0000000c2222220cc222220cc222220c0000000c2222220c0000000c0000000c0000000c0000000cc222220cc222220c0000000c2222220c0000000c0000000c2222220cc222220cc222220c0000000c2222220c0000000c0000000cccccccccccccc0cc -- 009:cc0cccccccccccccccccccccc0cccc0cc222220cc000000cc222220ccc22220ccc22220cc000000cc222220cc000000cc000000cc000000c0000000ccc22220ccc22220c0000000cc222220cc000000c0000000cc222220ccc22220ccc22220c0000000cc222220c0000000c0000000cccccccccccccc0cc -- 010:cc0cccccccccccccccccccccc0cccc0ccc222c0cccc0cc0ccc222c0cccc2220cccc2220cccc0cc0ccc222c0cccc0cc0cccc0cc0cccc0cc0cccc0cc0cccc2220cccc2220cccc0cc0ccc222c0cccc0cc0cccc0cc0ccc222c0cccc2220cccc2220cccc0cc0ccc222c0cccc0cc0cccc0ccccccccccccccccc0cc -- 011:cc0cccccccccccccccccccccc0cccc0cccc2cc0ccc000c0cccc2cc0ccccc2c0ccccc2c0ccc000c0cccc2cc0ccc000c0ccc000c0ccc000c0ccc000c0ccccc2c0ccccc2c0ccc000c0cccc2cc0ccc000c0ccc000c0cccc2cc0ccccc2c0ccccc2c0ccc000c0cccc2cc0ccc000c0ccc000cccccccccccccccc0cc -- 012:cc0cccccccccccccccccccccc0cccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0cccccccccccccccccccccc0cc -- 013:cc0cccccccccccccccccccccc0cccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0cccccccccccccccccccccc0cc -- 014:cc0cccccccccccccccccccccc0cccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0cccccccccccccccccccccc0cc -- 015:cc0cccccccccccccccccccccc0cccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0cccccccccccccccccccccc0cc -- 016:cc0cccccccccccccccccccccc0cccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0cccccccccccccccccccccc0cc -- 017:cc0cccccccccccccccccccccc0cccc0cfffffc0ccffccc0ccfffcc0ccfffcc0ccfffcc0cfffffc0ccfffcc0cffffcc0ccfffcc0ccfffcc0ccfffcc0ccfffcc0cfffffc0cffccfc0cfffffc0cffccfc0cffffcc0cffccfc0cffccfc0cccffcc0cccffcc0ccffccc0cfffffc0cfffffcccccccccccccccc0cc -- 018:cc0cccccccccccccccccccccc0cccc0ccccffc0cfffccf0cffccfc0cffccfc0cffccfc0ccccffc0cffccfc0ccccffc0cffcccc0cffccfc0cffccfc0cffccfc0ccccffc0cffcfcc0ccccffc0cffcfcc0ccccffc0cffcfcc0cffcfcc0ccfffcc0ccfffcc0cfffccf0ccccffc0ccccffcccccccccccccccc0cc -- 019:cc0cccccccccccccccccccccc0cccc0cccffcc0ccffccf0ccffffc0cffccfc0ccffffc0cccffcc0ccfffcc0ccfffcc0cffffcc0cffccfc0ccffffc0cffccfc0ccccffc0cfffccc0ccccffc0cfffccc0ccfffcc0cfffccc0cfffccc0cffcfcc0cffcfcc0ccffccf0cccffcc0ccccffcccccccccccccccc0cc -- 020:cc0cccccccccccccccccccccc0cccc0ccffccc0ccffccf0cccccfc0cffccfc0cccccfc0ccffccc0cffccfc0cffcccc0cffccfc0cfffffc0cccccfc0cfffffc0cffcffc0cffcfcc0cffcffc0cffcfcc0cffcccc0cffcfcc0cffcfcc0cfffffc0cfffffc0ccffccf0ccffccc0cffcffcccccccccccccccc0cc -- 021:cc0cccccccccccccccccccccc0cccc0cffcccc0cffffcc0ccfffcc0ccfffcc0ccfffcc0cffcccc0ccfffcc0cfffffc0ccfffcc0cffccfc0ccfffcc0cffccfc0ccfffcc0cffccfc0ccfffcc0cffccfc0cfffffc0cffccfc0cffccfc0ccccfcc0ccccfcc0cffffcc0cffcccc0ccfffccccccccccccccccc0cc -- 022:cc0cccccccccccccccccccccc0cccc0ccccccc0ccccccc0ccccccc0cccccfc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0cccccccccccccccccccccc0cc -- 023:cc0cccccccccccccccccccccc0cccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0cccccccccccccccccccccc0cc -- 024:cc0cccccccccccccccccccccc0ccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0ccccccc0cccccccccccccccccccc0ccc -- 025:cc000000000000000000000000cccccc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cccc -- 026:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 027:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 028:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 029:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 030:cc000000000000000000000000cccccc00000000000000000000cccccccccc00000000000000000000cccccccccc00000000000000000000cccccccccc00000000000000000000cccccccccc00000000000000000000cccccccccc00000000000000000000cccccccccc00000000000000000000cccccccc -- 031:cc0eeeeeeeeeeeeeeeeeeeeee0ccccc0cccccccccccccccccccc0cccccccc0cccccccccccccccccccc0cccccccc0cccccccccccccccccccc0cccccccc0cccccccccccccccccccc0cccccccc0cccccccccccccccccccc0cccccccc0cccccccccccccccccccc0cccccccc0cccccccccccccccccccc0ccccccc -- 032:cc0eeeeeeeeeeeeeeeeeeeeee0cccc0cccc0ccccccccccccccccc0cccccc0cccc0ccccccccccccccccc0cccccc0cccc0ccccccccccccccccc0cccccc0cccc0ccccccccccccccccc0cccccc0ccc2ccc2cccccccccccccc0cccccc0cccc2ccccccccccccccccc0cccccc0cccc2ccccccccccccccccc0cccccc -- 033:cc0eeeeeeeeeeeeeeeeeeeeee0cccc0ccc000cccccccccccccccc0cccccc0ccc000cccccccccccccccc0cccccc0ccc000cccccccccccccccc0cccccc0ccc000cccccccccccccccc0cccccc0cc222c222ccccccccccccc0cccccc0ccc222cccccccccccccccc0cccccc0ccc222cccccccccccccccc0cccccc -- 034:cc0eeeeeeeeeeeeeeeeeeeeee0cccc0cc00000ccccccccfffffcc0cccccc0cc00000ccccccccfffffcc0cccccc0cc00000cccccccccfffccc0cccccc0ccc000ccccccccccfffccc0cccccc0c22222222ccccccfffffcc0cccccc0cc22222ccccccccffffccc0cccccc0cc22222cccccccccfffccc0cccccc -- 035:cc0eeeeeeeeeeeeeeeeeeeeee0cccc0c0000000ccccccccccffcc0cccccc0c0000000cccccccffccccc0cccccc0c0000000cccccccffccfcc0cccccc0cc0c0c0ccccccccffccfcc0cccccc0c22222222cccccccccffcc0cccccc0c2222222ccccccccccffcc0cccccc0c2222222cccccccffccfcc0cccccc -- 036:cc0eeeeeeeeeeeeeeeeeeeeee0cccc0c0000000cccccccccffccc0cccccc0c0000000cccccccffffccc0cccccc0c0000000cccccccffccfcc0cccccc0c0000000cccccccffccfcc0cccccc0cc2222222ccccccccffccc0cccccc0c2222222ccccccccfffccc0cccccc0c2222222cccccccffccfcc0cccccc -- 037:cc0eeeeeeeeeeeeeeeeeeeeee0cccc0cc00000ccccccccfccffcc0cccccc0cc00000cccccccccccffcc0cccccc0cc00000ccccccccffccfcc0cccccc0c0000000cccccccfffffcc0cccccc0ccc22222ccccccccffcccc0cccccc0cc22222ccccccccffccccc0cccccc0cc22222ccccccccfffffcc0cccccc -- 038:cc0eeeeeeeeeeeeeeeeeeeeee0cccc0cccc0cccccccccccfffccc0cccccc0c00000000000000000000c0cccccc0c00000000000000000000c0cccccc0c00000000000000000000c0cccccc0c00000000000000000000c0cccccc0c00000000000000000000c0cccccc0c00000000000000000000c0cccccc -- 039:cc0eeeeeeeeeeeeeeeeeeeeee0cccc0ccc000cccccccccccccccc0cccccc00cccccccccccccccccccc00cccccc00cccccccccccccccccccc00cccccc00cccccccccccccccccccc00cccccc00cccccccccccccccccccc00cccccc00cccccccccccccccccccc00cccccc00cccccccccccccccccccc00cccccc -- 040:cc0eeeeeeeeeeeeeeeeeeeeee0cccc0cccccccccccccccccccccc0cccccc0ccc2ccc2cccccccccccccc0cccccc0cccc2ccccccccccccccccc0cccccc0cccc0ccccccccccccccccc0cccccc0cccc2ccccccccccccccccc0cccccc0ccc2ccc2cccccccccccccc0cccccc0cccc2ccccccccccccccccc0cccccc -- 041:cc0eeeeeeeeeeeeeeeeeeeeee0cccc0cccccccccccccccccccccc0cccccc0cc222c222ccccccccccccc0cccccc0ccc222cccccccccccccccc0cccccc0ccc000cccccccccccccccc0cccccc0ccc222cccccccccccccccc0cccccc0cc222c222ccccccccccccc0cccccc0ccc222cccccccccccccccc0cccccc -- 042:cc0eeeeeeeeeeeeeeeeeeeeee0cccc0cccccccccccccccccccccc0cccccc0c22222222ccccccfffffcc0cccccc0cc22222ccccccccfffffcc0cccccc0cc00000cccccccccfffccc0cccccc0cc22222ccccccccfffffcc0cccccc0c22222222ccccccffffccc0cccccc0cc22222cccccccccfffccc0cccccc -- 043:cc0eeeeeeeeeeeeeeeeeeeeee0cccc0cccccccccccccccccccccc0cccccc0c22222222cccccccccffcc0cccccc0c2222222ccccccccccffcc0cccccc0c0000000cccccccffccfcc0cccccc0c2222222cccccccffccccc0cccccc0c22222222cccccccccffcc0cccccc0c2222222cccccccffccfcc0cccccc -- 044:cc0eeeeeeeeeeeeeeeeeeeeee0cccc0cccccccccccccccccccccc0cccccc0cc2222222ccccccccffccc0cccccc0c2222222cccccccccffccc0cccccc0c0000000ccccccccffffcc0cccccc0c2222222cccccccffffccc0cccccc0cc2222222cccccccfffccc0cccccc0c2222222cccccccffccfcc0cccccc -- 045:cc0eeeeeeeeeeeeeeeeeeeeee0cccc0cccccccccccccccccccccc0cccccc0ccc22222cccccccfccffcc0cccccc0cc22222ccccccccfccffcc0cccccc0cc00000ccccccccccccfcc0cccccc0cc22222cccccccccccffcc0cccccc0ccc22222cccccccffccccc0cccccc0cc22222ccccccccffccfcc0cccccc -- 046:cc0eeeeeeeeeeeeeeeeeeeeee0cccc0cccccccccccccccccccccc0cccccc0cccc222cccccccccfffccc0cccccc0c00000000000000000000c0cccccc0c00000000000000000000c0cccccc0c00000000000000000000c0cccccc0c00000000000000000000c0cccccc0c00000000000000000000c0cccccc -- 047:cc0eeeeeeeeeeeeeeeeeeeeee0cccc0cccccccccccccccccccccc0cccccc0ccccc2cccccccccccccccc0cccccc00cccccccccccccccccccc00cccccc00cccccccccccccccccccc00cccccc00cccccccccccccccccccc00cccccc00cccccccccccccccccccc00cccccc00cccccccccccccccccccc00cccccc -- 048:cc0eeeeeeeeeeeeeeeeeeeeee0cccc0cccccccccccccccccccccc0cccccc0cccccccccccccccccccccc0cccccc0cccc0ccccccccccccccccc0cccccc0cccc0ccccccccccccccccc0cccccc0ccc2ccc2cccccccccccccc0cccccc0cccc0ccccccccccccccccc0cccccc0cccc0ccccccccccccccccc0cccccc -- 049:cc0eeeeeeeeeeeeeeeeeeeeee0cccc0cccccccccccccccccccccc0cccccc0cccccccccccccccccccccc0cccccc0ccc000cccccccccccccccc0cccccc0ccc000cccccccccccccccc0cccccc0cc222c222ccccccccccccc0cccccc0ccc000cccccccccccccccc0cccccc0ccc000cccccccccccccccc0cccccc -- 050:cc0eeeeeeeeeeeeeeeeeeeeee0cccc0cccccccccccccccccccccc0cccccc0cccccccccccccccccccccc0cccccc0cc00000ccccccccccffccc0cccccc0cc00000ccccccccfffffcc0cccccc0c22222222cccccccfffccc0cccccc0cc00000cccccccccfffccc0cccccc0ccc000cccccccccfffffcc0cccccc -- 051:cc0eeeeeeeeeeeeeeeeeeeeee0cccc0cccccccccccccccccccccc0cccccc0cccccccccccccccccccccc0cccccc0c0000000ccccccccfffccc0cccccc0c0000000ccccccccccffcc0cccccc0c22222222ccccccffccccc0cccccc0c0000000cccccccffccfcc0cccccc0cc0c0c0cccccccccccffcc0cccccc -- 052:cc0eeeeeeeeeeeeeeeeeeeeee0ccccc0cccccccccccccccccccc0ccccccc0cccccccccccccccccccccc0cccccc0c0000000cccccccffcfccc0cccccc0c0000000ccccccccccffcc0cccccc0cc2222222ccccccffffccc0cccccc0c0000000ccccccccfffccc0cccccc0c0000000cccccccccffccc0cccccc -- 053:cc000000000000000000000000cccccc00000000000000000000cccccccc0cccccccccccccccccccccc0cccccc0cc00000ccccccccfffffcc0cccccc0cc00000ccccccccffcffcc0cccccc0ccc22222cccccccffccfcc0cccccc0cc00000ccccccccffccfcc0cccccc0c0000000cccccccfccffcc0cccccc -- 054:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc0cccc0cccccccccccccfccc0cccccc0c00000000000000000000c0cccccc0c00000000000000000000c0cccccc0c00000000000000000000c0cccccc0c00000000000000000000c0cccccc -- 055:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc0ccc000cccccccccccccccc0cccccc00cccccccccccccccccccc00cccccc00cccccccccccccccccccc00cccccc00cccccccccccccccccccc00cccccc00cccccccccccccccccccc00cccccc -- 056:cc000000000000000000000000cccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc0cccccccccccccccccccccc0cccccc0ccc2ccc2cccccccccccccc0cccccc0cccc0ccccccccccccccccc0cccccc0cccc0ccccccccccccccccc0cccccc0ccc2ccc2cccccccccccccc0cccccc -- 057:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc0cccccccccccccccccccccc0cccccc0cc222c222ccccccccccccc0cccccc0ccc000cccccccccccccccc0cccccc0ccc000cccccccccccccccc0cccccc0cc222c222ccccccccccccc0cccccc -- 058:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc0cccccccccccccccccccccc0cccccc0c22222222cccccccfffccc0cccccc0ccc000cccccccccfffffcc0cccccc0ccc000ccccccccccfffccc0cccccc0c22222222ccccccfffffcc0cccccc -- 059:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc0cccccccccccccccccccccc0cccccc0c22222222ccccccffccfcc0cccccc0cc0c0c0ccccccccffccccc0cccccc0cc0c0c0ccccccccffccfcc0cccccc0c22222222ccccccffccccc0cccccc -- 060:cc0eeeeeeeeeeeeeeeeeeeeee0ccccccccccccccccccccccccccccccccccc0cccccccccccccccccccc0ccccccc0cccccccccccccccccccccc0cccccc0cc2222222cccccccfffccc0cccccc0c0000000cccccccffffccc0cccccc0c0000000ccccccccfffccc0cccccc0cc2222222ccccccffffccc0cccccc -- 061:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccc00000000000000000000cccccccc0cccccccccccccccccccccc0cccccc0ccc22222cccccccffccfcc0cccccc0c0000000ccccccccccffcc0cccccc0c0000000cccccccffccfcc0cccccc0ccc22222ccccccccccffcc0cccccc -- 062:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc0cccc222cccccccccfffccc0cccccc0c00000000000000000000c0cccccc0c00000000000000000000c0cccccc0c00000000000000000000c0cccccc -- 063:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc0ccccc2cccccccccccccccc0cccccc00cccccccccccccccccccc00cccccc00cccccccccccccccccccc00cccccc00cccccccccccccccccccc00cccccc -- 064:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc0cccccccccccccccccccccc0cccccc0cccc2ccccccccccccccccc0cccccc0cccc2ccccccccccccccccc0cccccc0cccc0ccccccccccccccccc0cccccc -- 065:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc0cccccccccccccccccccccc0cccccc0ccc222cccccccccccccccc0cccccc0ccc222cccccccccccccccc0cccccc0ccc000cccccccccccccccc0cccccc -- 066:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc0cccccccccccccccccccccc0cccccc0cc22222ccccccccccffccc0cccccc0cc22222cccccccccfffccc0cccccc0ccc000cccccffcccfffccc0cccccc -- 067:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc0cccccccccccccccccccccc0cccccc0c2222222ccccccccfffccc0cccccc0c2222222cccccccffccccc0cccccc0cc0c0c0cccfffccffcffcc0cccccc -- 068:cc0eeeeeeeeeeeeeeeeeeeeee0ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccc0ccccccc0cccccccccccccccccccccc0cccccc0c2222222cccccccffcfccc0cccccc0c2222222cccccccffffccc0cccccc0c0000000cccffccfffcfcc0cccccc -- 069:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc00000000000000000000cccccccc0cccccccccccccccccccccc0cccccc0cc22222ccccccccfffffcc0cccccc0cc22222ccccccccffccfcc0cccccc0c0000000cccffccffccfcc0cccccc -- 070:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc0ccc222ccccccccccccfccc0cccccc0c00000000000000000000c0cccccc0c00000000000000000000c0cccccc -- 071:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc0cccc2ccccccccccccccccc0cccccc00cccccccccccccccccccc00cccccc00cccccccccccccccccccc00cccccc -- 072:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc0cccccccccccccccccccccc0cccccc0ccc2ccc2cccccccccccccc0cccccc0cccc0ccccccccccccccccc0cccccc -- 073:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc0cccccccccccccccccccccc0cccccc0cc222c222ccccccccccccc0cccccc0ccc000cccccccccccccccc0cccccc -- 074:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc0cccccccccccccccccccccc0cccccc0c22222222ccffcccfffccc0cccccc0ccc000ccccccccccfffccc0cccccc -- 075:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc0cccccccccccccccccccccc0cccccc0c22222222cfffccffcffcc0cccccc0cc0c0c0ccccccccffccfcc0cccccc -- 076:cc0eeeeeeeeeeeeeeeeeeeeee0ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccc0ccccccc0cccccccccccccccccccccc0cccccc0cc2222222ccffccfffcfcc0cccccc0c0000000cccccccffccfcc0cccccc -- 077:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc00000000000000000000cccccccc0cccccccccccccccccccccc0cccccc0ccc22222cccffccffccfcc0cccccc0c0000000cccccccffccfcc0cccccc -- 078:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc0cccc222cccffffccfffccc0cccccc0c00000000000000000000c0cccccc -- 079:cc000000000000000000000000cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc0ccccc2cccccccccccccccc0cccccc00cccccccccccccccccccc00cccccc -- 080:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc0cccccccccccccccccccccc0cccccc0cccc0ccccccccccccccccc0cccccc -- 081:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc0cccccccccccccccccccccc0cccccc0ccc000cccccccccccccccc0cccccc -- 082:cc000000000000000000000000cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc0cccccccccccccccccccccc0cccccc0ccc000ccccccccccfffccc0cccccc -- 083:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc0cccccccccccccccccccccc0cccccc0cc0c0c0ccccccccffccccc0cccccc -- 084:cc0eeeeeeeeeeeeeeeeeeeeee0ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccc0ccccccc0cccccccccccccccccccccc0cccccc0c0000000cccccccffffccc0cccccc -- 085:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc00000000000000000000cccccccc0cccccccccccccccccccccc0cccccc0c0000000cccccccffccfcc0cccccc -- 086:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc0cccc0cccccccccccfffccc0cccccc -- 087:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc0ccc000cccccccccccccccc0cccccc -- 088:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc0cccccccccccccccccccccc0cccccc -- 089:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc0cccccccccccccccccccccc0cccccc -- 090:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc0cccccccccccccccccccccc0cccccc -- 091:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc0cccccccccccccccccccccc0cccccc -- 092:cc0eeeeeeeeeeeeeeeeeeeeee0ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccc0ccccccc0cccccccccccccccccccccc0cccccc -- 093:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc00000000000000000000cccccccc0cccccccccccccccccccccc0cccccc -- 094:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc -- 095:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc -- 096:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc -- 097:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc -- 098:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc -- 099:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccccc0cccccc -- 100:cc0eeeeeeeeeeeeeeeeeeeeee0ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0cccccccccccccccccccc0ccccccc -- 101:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc00000000000000000000cccccccc -- 102:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 103:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 104:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 105:cc000000000000000000000000cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 106:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 107:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 108:cc000000000000000000000000cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 109:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 110:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 111:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 112:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 113:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 114:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 115:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 116:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 117:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 118:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 119:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 120:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 121:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 122:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 123:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 124:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 125:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 126:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 127:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 128:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 129:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 130:cc0eeeeeeeeeeeeeeeeeeeeee0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 131:cc000000000000000000000000cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 132:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 133:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 134:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- 135:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -- -- -- 000:1a1c2c5d275db13e53ef7d57ffcd75a7f07038b76425717929366f3b5dc941a6f673eff7f4f4f494b0c2566c86333c57 --