From af73c6b75fa953d44c11f5f33b9e6728e751aa9d Mon Sep 17 00:00:00 2001 From: geemili Date: Sun, 18 Feb 2024 00:11:44 -0700 Subject: [PATCH] feat: inital implementation of rummy --- rummy.lua | 813 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 813 insertions(+) create mode 100644 rummy.lua diff --git a/rummy.lua b/rummy.lua new file mode 100644 index 0000000..56b54f1 --- /dev/null +++ b/rummy.lua @@ -0,0 +1,813 @@ +-- title: rummy +-- author: geemili +-- desc: The card game Rummy, for TIC-80 +-- site: website link +-- license: MIT License +-- version: 0.1 +-- script: lua + +-- stack of cards that cards are drawn from +draw_pile=nil +discard_pile=nil +cards_in_hand=nil +-- List of cards that have been added to a meld, but are not yet placed on the tabletop. May be too +-- few cards for a meld. Should be verified before adding it to the list of melds on the tabletop. +cards_in_meld_draft=nil +melds_on_tabletop=nil + +-- `points_of_interest` is an array of things that can be hovered/selected by the controller +hovered=nil +player_state=nil + +function BOOT() + draw_pile = create_deck() + draw_pile:shuffle() + + cards_in_hand = draw_pile:draw_stack(10) + cards_in_hand:sort(rummy_hand_sort_comparison) + + cards_in_meld_draft=CardStack:new() + + discard_pile = draw_pile:draw_stack(1) + + player_state = player_state_draw_card + + melds_on_tabletop={} +end + +function TIC() + cls(12) + + local points_of_interest = player_state.get_points_of_interest() + + if not hovered and #points_of_interest>0 then + hovered=points_of_interest[1] + end + + local c_up=btnp(0,10,3) + local c_down=btnp(1,10,3) + local c_left=btnp(2,10,3) + local c_right=btnp(3,10,3) + local c_sel=btnp(5) + local c_back=btnp(4) + + if c_sel and hovered then + player_state = player_state.update(hovered) + end + + -- update hovered position + local moved = c_up or c_down or c_left or c_right + if moved and #points_of_interest > 0 then + local start = hovered or {x=0,y=0,interest=nil} + local dir = {0, 0} + if c_left then dir[1] = dir[1] - 1 end + if c_right then dir[1] = dir[1] + 1 end + if c_up then dir[2] = dir[2] - 1 end + if c_down then dir[2] = dir[2] + 1 end + + local nearest = nil + for i,point in ipairs(points_of_interest) do + if hovered and point.interest == hovered.interest then + -- pass + elseif not nearest then + local distance = distance_to_point_of_interest(start,dir,point) + if distance > 0 then + nearest = point + end + else + local distance = distance_to_point_of_interest(start,dir,point) + if distance > 0 and distance < distance_to_point_of_interest(start,dir,nearest) then + nearest = point + end + end + end + + if nearest then + hovered = nearest + end + end + + -- render melds on tabletop + local meld_x=2 + for j,meld in ipairs(melds_on_tabletop) do + for i,card in ipairs(meld) do + local sel_state = nil + if hovered and hovered.interest == card then + sel_state = 1 + end + + card:render(meld_x, 10, false, sel_state) + meld_x=meld_x + 8 + end + meld_x=meld_x + 28 + end + + if is_an_interest(points_of_interest, "New\nMeld") then + print("New\nMeld", meld_x, 17, 0) + if hovered and hovered.interest=="New\nMeld" then + spr(Card.spr_hilight.sid, + meld_x, + 10, + Card.spr_hilight.colorkey, + 1, 0, 0, + Card.spr_hilight.tw, + Card.spr_hilight.th) + end + else + print("New\nMeld", meld_x, 17, 13) + end + + -- render draw pile + for i,card in ipairs(draw_pile) do + local sel_state = nil + if hovered and hovered.interest == card then + sel_state = 1 + end + + card:render(3, 80 + (i - 1) * -0.25, true, sel_state) + end + + for i,card in ipairs(discard_pile) do + local sel_state = nil + if hovered and hovered.interest == card then + sel_state = 1 + end + + card:render(39, 80 + (i - 1) * -0.25, false, sel_state) + end + if is_an_interest(points_of_interest, "Discard") then + if hovered and hovered.interest=="Discard" then + spr(Card.spr_hilight.sid, + 39, + 80 + (#discard_pile - 1) * -0.25, + Card.spr_hilight.colorkey, + 1, 0, 0, + Card.spr_hilight.tw, + Card.spr_hilight.th) + end + end + + if player_state == player_state_draw_card then + print("Your turn! Draw a card.", 60, 60, 15, false, 1, false) + elseif player_state == player_state_action then + print("Your turn! Meld, Lay-off, or End Turn", 60, 60, 15, false, 1, false) + end + + if is_an_interest(points_of_interest, "End\nTurn") then + print("End\nTurn", 110, 87, 0) + if hovered and hovered.interest=="End\nTurn" then + spr(Card.spr_hilight.sid, + 110, + 80, + Card.spr_hilight.colorkey, + 1, 0, 0, + Card.spr_hilight.tw, + Card.spr_hilight.th) + end + else + print("End\nTurn", 110, 87, 13) + end + + local hand_start_x=((240 - #cards_in_hand * 12) / 2) + for i,card in ipairs(cards_in_hand) do + local ty=0 + local sel_state = nil + + if cards_in_meld_draft:contains(card) then + ty = -4 + sel_state = 2 + end + + if hovered and hovered.interest == card then + sel_state = 1 + end + + card:render(hand_start_x + (i - 1) * 12, 110 + ty, false, sel_state) + end +end + +player_state_draw_card = { + update=function(point_of_interest) + -- only accept drawing cards from the draw pile or + if draw_pile:contains(point_of_interest.interest) then + table.insert(cards_in_hand, draw_pile:draw()) + cards_in_hand:sort(rummy_hand_sort_comparison) + hovered = nil + return player_state_action + elseif discard_pile:contains(point_of_interest.interest) then + table.insert(cards_in_hand, discard_pile:draw()) + cards_in_hand:sort(rummy_hand_sort_comparison) + hovered = nil + return player_state_action + end + return player_state_draw_card + end, + get_points_of_interest=function() + local points_of_interest = {} + + if #draw_pile > 0 then + table.insert(points_of_interest, { + x=3 + 12, + y=80 + (#draw_pile - 1) * -0.25 + 12, + interest=draw_pile[#draw_pile] + }) + end + if #discard_pile > 0 then + table.insert(points_of_interest, { + x=39 + 12, + y=80 + (#discard_pile - 1) * -0.25 + 12, + interest=discard_pile[#discard_pile] + }) + end + + return points_of_interest + end +} + +player_state_action = { + update=function(point_of_interest) + if cards_in_hand:contains(point_of_interest.interest) then + if cards_in_meld_draft:contains(point_of_interest.interest) then + table.remove(cards_in_meld_draft, cards_in_meld_draft:index_of(point_of_interest.interest)) + else + table.insert(cards_in_meld_draft, point_of_interest.interest) + cards_in_meld_draft:sort(rummy_hand_sort_comparison) + end + elseif point_of_interest.interest=="New\nMeld" then + if rummy_is_valid_meld(cards_in_meld_draft) then + for i,card in ipairs(cards_in_meld_draft) do + table.remove(cards_in_hand, cards_in_hand:index_of(card)) + end + table.insert(melds_on_tabletop, cards_in_meld_draft) + cards_in_meld_draft=CardStack:new() + hovered = nil + return player_state_secondary_action + end + elseif point_of_interest.interest=="Discard" then + if #cards_in_meld_draft==1 then + table.remove(cards_in_hand, cards_in_hand:index_of(cards_in_meld_draft[1])) + table.insert(discard_pile, cards_in_meld_draft[1]) + cards_in_meld_draft=CardStack:new() + hovered = nil + return player_state_discard_confirm + end + end + return player_state_action + end, + get_points_of_interest=function() + local points_of_interest = {} + + for i,card in ipairs(cards_in_hand) do + table.insert(points_of_interest, { + x=(i - 1) * 12 + 2 + 5, + y=122, + interest=card + }) + end + + if rummy_is_valid_meld(cards_in_meld_draft) then + table.insert(points_of_interest, { + x=80 + 12, + y=17 + 6, + interest="New\nMeld" + }) + end + + if #cards_in_meld_draft==1 then + table.insert(points_of_interest, { + x=39, + y=80 + (#discard_pile - 1) * -0.25, + interest="Discard" + }) + end + + return points_of_interest + end +} + +-- In this state the player may only lay off a card or end their turn +player_state_secondary_action = { + update=function(point_of_interest) + if cards_in_hand:contains(point_of_interest.interest) then + cards_in_meld_draft=CardStack:new(point_of_interest.interest) + elseif point_of_interest.interest=="Discard" then + if #cards_in_meld_draft==1 then + table.remove(cards_in_hand, cards_in_hand:index_of(cards_in_meld_draft[1])) + table.insert(discard_pile, cards_in_meld_draft[1]) + cards_in_meld_draft=CardStack:new() + hovered = nil + return player_state_discard_confirm + end + end + return player_state_secondary_action + end, + get_points_of_interest=function() + local points_of_interest = {} + + for i,card in ipairs(cards_in_hand) do + table.insert(points_of_interest, { + x=(i - 1) * 12 + 2 + 5, + y=122, + interest=card + }) + end + + if #cards_in_meld_draft==1 then + table.insert(points_of_interest, { + x=39, + y=80 + (#discard_pile - 1) * -0.25, + interest="Discard" + }) + end + + return points_of_interest + end +} + +player_state_discard_confirm = { + update=function(point_of_interest) + if point_of_interest.interest=="End\nTurn" then + hovered = nil + return player_state_draw_card + end + + return player_state_discard_confirm + end, + get_points_of_interest=function() + local points_of_interest = {} + + table.insert(points_of_interest, { + x=80 + 12, + y=87 + 6, + interest="End\nTurn" + }) + + return points_of_interest + end +} + +function is_an_interest(points_of_interest,interest_sought) + for i,point in ipairs(points_of_interest) do + if point.interest==interest_sought then + return true + end + end + return false +end + +function distance_to_point_of_interest(start,dir,point_of_interest) + local off_axis_dir = {dir[2],-dir[1]} + local offset={point_of_interest.x-start.x,point_of_interest.y-start.y} + + -- use dot product to check how inline with each direction the point of interest is + local in_axis_distance=offset[1]*dir[1]+offset[2]*dir[2] + local off_axis_distance=offset[1]*off_axis_dir[1]+offset[2]*off_axis_dir[2] + + if in_axis_distance > 0 then + -- use the square of the off_axis_distance to reduce how often it is chosen and ignore direction + return in_axis_distance + off_axis_distance * off_axis_distance + else + return in_axis_distance + end +end + +function rummy_hand_sort_comparison(a, b) + -- compare rank + if a.rankb.rank then return false end + + -- compare suit + if a.suitb.suit then return false end + + -- Both are the same; we need to return false or else `table.sort` will throw an + -- "invalid comparison function for sorting" error. + return false +end + +function rummy_is_valid_meld(stack) + if #stack<3 then + return false + end + + stack:sort(rummy_hand_sort_comparison) + + local expected_rank=stack[1].rank + local is_valid_set=true + for i,card in ipairs(stack) do + if card.rank~=expected_rank then + is_valid_set=false + break + end + end + + local expected_suit=stack[1].rank + local is_valid_run=true + for i=2,#stack do + local card=stack[i] + if card.suit~=expected_suit or card.rank~=(stack[i-1].rank+1) then + is_valid_run=false + break + end + end + + return is_valid_run or is_valid_set +end + +function create_deck() + local cards=CardStack:new() + for i=1,13 do + for a=1,4 do + table.insert(cards, Card:new(a, i)) + end + end + return cards +end + +-- CardStack +CardStack = {} +function CardStack:new(obj) + local stack = obj or {} + setmetatable(stack, { __index=CardStack }) + return stack +end + +function CardStack:sort(compare_function) + table.sort(self,compare_function) +end + +function CardStack:shuffle() + for a,c in ipairs(self) do + local b=math.random(#self) + local tmp=self[a] + self[a]=self[b] + self[b]=tmp + end +end + +-- Draws one card and returns a Card, or nil if the stack is empty. +function CardStack:draw() + if #self>0 then + local drawn_card = self[#self] + table.remove(self, #self) + return drawn_card + else + return nil + end +end + +-- Draws up to N cards and returns a CardStack. The stack will contain up to N cards, less if the stack doesn't +-- contain that many cards. +function CardStack:draw_stack(amount,destination_stack) + local draw_stack=destination_stack or CardStack:new() + local n = amount + if amount > #self then n = #self end + for i=1,n do + table.insert(draw_stack, self:draw()) + end + return draw_stack +end + +function CardStack:contains(card_sought) + for i,card in ipairs(self) do + if card==card_sought then + return true + end + end + return false +end + +function CardStack:index_of(card_sought) + for i,card in ipairs(self) do + if card==card_sought then + return i + end + end + return nil +end + +-- Card rendering stuff +suit_icon={34,35,33,36} +suit_color={0,0,2,2} +suit_names={'clubs','spades','hearts','diamonds'} +rank_symbols={'A','2','3','4','5','6','7','8','9','10','J','Q','K'} +Card = { + sprite={ + sid=5, + tw=3, + th=3, + colorkey=14 + }, + spr_hilight={ + sid=8, + tw=3, + th=3, + colorkey=14 + }, + spr_selected={ + sid=11, + tw=3, + th=3, + colorkey=14 + }, + spr_hidden={ + sid=56, + tw=3, + th=3, + colorkey=14 + }, +} +function Card:new(suit, rank) + local card = { + suit=suit, + rank=rank, + } + setmetatable(card, { __index=Card }) + return card +end + +function Card:render(x, y, hidden, sel_state) + if hidden then + spr(self.spr_hidden.sid, + x, + y, + self.spr_hidden.colorkey, + 1, 0, 0, + self.spr_hidden.tw, + self.spr_hidden.th) + else + spr(self.sprite.sid, + x, y, + self.sprite.colorkey, + 1, 0, 0, + self.sprite.tw, + self.sprite.th) + spr(suit_icon[self.suit],x+2,y+2,14) + + print(rank_symbols[self.rank],x+2,y+15,suit_color[self.suit]) + end + + -- Draw hilight + if sel_state==1 then + spr(self.spr_hilight.sid, + x, + y, + self.spr_hilight.colorkey, + 1, 0, 0, + self.spr_hilight.tw, + self.spr_hilight.th) + elseif sel_state==2 then + spr(self.spr_selected.sid, + x, + y, + self.spr_selected.colorkey, + 1, 0, 0, + self.spr_selected.tw, + self.spr_selected.th) + end +end + +function Card:render_horizontal(x, y) + spr(self.sprite.sid, + x, y, + self.sprite.colorkey, + 1, 0, 0, + self.sprite.tw, + self.sprite.th) + spr(suit_icon[self.suit],x+2,y+2,14) + + -- render text offscreen to get it's width. The width is then used to right align the text. + local symbol = rank_symbols[self.rank] + local text_width = print(symbol,1024,1024) + print(symbol,x+22-text_width,y+2,suit_color[self.suit]) +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 +-- +