Binary slow salvos

For discussion of specific patterns or specific families of patterns in Conway's Game of Life, both newly-discovered and well-known.
User avatar
Hippo.69
Posts: 683
Joined: July 14th, 2020, 7:35 pm
Contact:

Re: Binary slow salvos

Post by Hippo.69 »

Wow, seems it works :) last (so far?) problem was d6D# where for d6DS and d6DB we have no bit sequences to continue, but [d6DD]11[] works perfectly. I have not generated the bits yet and have not tested they will really work in Life, ... it assumes CondBitSequences are OK and well interpreted. Life was not run during the computation and it tooks

Code: Select all

-- This module is loaded if a script calls require "StackChangeCost".

local g=golly()
local moveCondsFileName = "c:\\Golly\\Lua\\StackChangeCost\\CondBitSequences.txt"
local m={}
m.log = io.open("c:\\Golly\\Lua\\StackChangeCost\\log.txt","w")
m.logLevel=5

function m.writeLog(msg,level)
  if m.log and ((not level and m.logLevel<=0) or (level and level>=m.logLevel)) then
    m.log:write(msg.."\n")
  end
end

m.tries = {};--addressed by hadron.id (by top hadron on the stack)
m.trieNodeCount=11
local hadrons={'B','D','d','S','P','T','t','I','H','h','0'} -- L,R,1,2 not here
for i=1,#hadrons do
  m.tries[hadrons[i]]={}
end

function m.inDelimiters(name,leftDelimiter,rightDelimiter)
  return string.match(name,'%'..leftDelimiter..'(.-)%'..rightDelimiter)
end

function m.inttostring(num)
  return string.sub(num,1,string.find(num..".","%.")-1)
end

function m.parseMove(moveConds)
  m.writeLog("parseMove("..moveConds..")",-2)
  local function split(str,delim)
    local ret,l,p = {},1,nil
    str=str or ''
    while l <= 1+string.len(str) do
      p = string.find(str..delim,'%'..delim, l)
      ret[1+#ret],l = string.sub(str, l, p - 1), p+1
    end
    return ret
  end

  local preStack,postStack,conds,pos,bits,move
  pos,conds=string.find(moveConds..'{','%{'),""
  conds=string.sub(moveConds,pos+1,string.find(moveConds..'}','%}')-1)
  conds=split(conds,':')
  conds[2]=split(conds[2],',')
  move=string.sub(moveConds,1,pos-1)
  pos=string.find(move,'%]')
  preStack=string.sub(move,2,pos-1)
  bits=string.sub(move,pos+1)
  pos=string.find(bits,'%[')
  postStack=string.sub(bits,pos+1,-2)
  bits=string.sub(bits,1,pos-1)
  glider,pos='',string.find(bits,'%(')
  if pos then
    glider=inDelimiters(bits,'(',')')
    bits=string.sub(bits,1,pos-1)..string.sub(bits,string.find(bits,'%)')+1)
  end
  return bits,move,conds,preStack,postStack,glider
end

function m.conditionsToString(conditions)
  local postConitions,ret
  if #conditions==0 then
    g.note("no conditions?")
    return "{:}"
  end
  if #conditions<2 then
    ret="{:"
  else
    ret="{"..conditions[1]..":"
  end
  ret=ret..conditions[#conditions][1]
  for j=2,#conditions[#conditions] do
    ret=ret..","..conditions[#conditions][j]
  end
  ret=ret.."}"
  return ret
end

local function noEmissionTrieInsert(moveConds) 
  local bits,move,conds,preStack,postStack,glider=m.parseMove(moveConds)
  m.writeLog('noEmissionTrieInsert('..moveConds..') ',-1)
  if glider~="" then
    --emission
    return
  end
  if string.find(postStack,'[LR]') then
    --emission
    return
  end
  -- actually we do not need stack bottom repositioning sequences, but it is hard to eliminate them
  -- it was eliminated by preprocessing of stack sequences -:)

  local preStackLen,bitLen=string.len(preStack),string.len(bits)
  local node,nextNode,info,nextInfo = m.tries[string.sub(conds[1],1,1)],m.tries[string.sub(preStack,1,1)],string.sub(conds[1],1,1),string.sub(preStack,1,1)
  if conds[1]=="" then
    node,nextNode,info,nextInfo=nextNode,nil,nextInfo,nil
  end
  while node do 
    m.writeLog("  inserting into trie "..info,-2)
    for i = 1,string.len(bits) do
      local j=string.sub(bits,i,i)
      if not string.find('012',j) or ((i>1) and j=="0") then
        m.writeLog("noEmissionTrieInsert wrong character bits "..bits.." at position "..i.." "..string.sub(bits,i,i),10)
      end
      if not node.minPreStackLen or node.minPreStackLen > preStackLen then
        node.minPreStackLen = preStackLen --prevents following the branch in nextOutGoingEdge
      end
      if not node.minBitLen or node.minBitLen > bitLen then
        node.minBitLen = bitLen --planned to prevent following the branch in nextOutGoingEdge but cost lowerbound is more effective
      end
      j=j+0
      if j==0 then 
        node,nextNode,info,nextInfo=m.tries['0'],nil,'0',nil -- exception simplifying 0# processing
      else
        if node[j]==nil then
          node[j],m.trieNodeCount = {},m.trieNodeCount+1
        end
        node = node[j]
      end
    end
    if not node.minPreStackLen or node.minPreStackLen > preStackLen then
      node.minPreStackLen = preStackLen
    end
    if not node.minBitLen or node.minBitLen > bitLen then
      node.minBitLen = bitLen
    end
    if not node.moveConds then
      node.moveConds = {}
    end  
    node.moveConds[#node.moveConds+1] = moveConds
    node,nextNode,info,nextInfo=nextNode,nil,nextInfo,nil
    conds[1]="";moveConds=move..m.conditionsToString(conds) -- to speedup matching the above need not be checked
  end
  return true
end

local function iniTrie()
  m.writeLog('InitTrie()')
  local h=io.open(moveCondsFileName,"r")
  --local o=io.open(moveCondsFileName2,"w") -- used to prefilter general conditioned sequence file
  local moveCondsLine=h:read()
  while moveCondsLine do
    if noEmissionTrieInsert(string.sub(moveCondsLine,5)) then
      --o:write(moveCondsLine.."\n")
    end
    moveCondsLine=h:read()
  end
  h:close()
  --o:close()
end

iniTrie()

function m.easyChangeStackCost(preStack,postStack) -- let us try to slowly extend this to all required cases (postStacks corresponding to all emission tabulated preStacks, condition for preStacks not known yet)
  local cost,tmp=0
  m.easyChangeStackCostErr=preStack..">"..postStack
  if preStack==postStack then 
    return cost
  end
  if string.len(preStack)>2 then
    m.easyChangeStackCostErr="Reducig stack not implemented "..m.easyChangeStackCostErr
    return
  end
  if string.len(postStack)<string.len(preStack) then
    m.easyChangeStackCostErr="Shortening not implemented "..m.easyChangeStackCostErr
    return  
  end
  if string.len(preStack)==2 then
    cost=string.find("SBPD",string.sub(preStack,-1)) or string.find("SBP#",string.sub(preStack,-1))
    if not cost then
      m.easyChangeStackCostErr="Only D,P,B,S,# on starting positions implemented "..m.easyChangeStackCostErr
      return
    end
    tmp=string.find("SBBD",string.sub(postStack,-1)) or string.find("SBB#",string.sub(postStack,-1))
    if not tmp then
      m.easyChangeStackCostErr="Only D,B,S,# at end of postStack when preStack.len==2 on starting positions implemented "..m.easyChangeStackCostErr
      return
    end
    cost=cost-tmp
    if cost<0 then
      m.easyChangeStackCostErr="when preStack.len==2, end of postStack must be on D->P->B->S from end of preStack "..m.easyChangeStackCostErr
      return      
    end
    preStack=string.sub(preStack,1,-2)
    postStack=string.sub(postStack,1,-2)
  end
  tmp=string.find("SBPD",preStack) or string.find("SBP#",preStack)
  if not tmp then
    m.easyChangeStackCostErr="Only D,P,B,S,# starting positions implemented "..m.easyChangeStackCostErr
    return
  end
  if string.len(postStack)==1 then
    if cost>0 then
      if postStack~="S" then
        m.easyChangeStackCostErr="when preStack.len==2, postStack.len==2 last item differ, implemented only for postStack starting S "..m.easyChangeStackCostErr
        return
      end
    else
      cost=tmp
      tmp=string.find("SBPD",postStack) or string.find("SBP#",postStack)
      if not tmp then
        m.easyChangeStackCostErr="when preStack.len==postStack.len<=2 where only first item differs implemented only for postStack starting B,S,P,D "..m.easyChangeStackCostErr
        return
      end
      cost=cost-tmp
      if cost<0 then
        m.easyChangeStackCostErr="not implemented for short stacks where shift not consistent with D->P->B->S "..m.easyChangeStackCostErr
        return
      end
      return cost
    end
  end
  cost=cost+tmp-1
  tmp=string.find("PBS",string.sub(postStack,1,1))
  if string.sub(postStack,2,4)=="6d6" then
    if not tmp then
      m.easyChangeStackCostErr="Only P,B,S predecessors of 6d6 implemented "..m.easyChangeStackCostErr
      return
    end
    cost=cost+tmp
    postStack=string.sub(postStack,5)
  elseif tmp then
    cost=cost+tmp-3
    if string.sub(postStack,1,2)=="SP" then --P allowed here
      cost=cost+7
      postStack=string.sub(postStack,3)
      tmp=2
    elseif string.sub(postStack,2,2)=='D' or tmp==3 then 
      postStack=string.sub(postStack,2)
    else
      m.easyChangeStackCostErr="After P or B start must be either 6d or D, other costs not implemented "..m.easyChangeStackCostErr.."\n"..postStack
      -- additional cost 22 (a) ->S, changing 2nd -> (+6) SD (+3-a) back to desired (+13) removal of leading S
      -- additional cost +22 does not work for P as SP->P6d6P is not possible
      return
    end
  elseif string.sub(postStack,1,2) == "T6" then
    cost=cost+21 -- is (3)S6d6->(+2)H6T6->(+8)H6T18T6->(+7)I16T6->(+1)T6 optimal (at least in our current moveset)
    postStack=string.sub(postStack,3)
  else
    m.easyChangeStackCostErr="Only P,B,S and T6 starts implemented "..m.easyChangeStackCostErr
    return
  end
  if tmp then
    tmp=1+tmp --compatibility
  end 
  for i=1,string.len(postStack) do
    if tmp==4 then --P allowed after S (maintained as D and incremented after next S created)
      tmp=string.find("DPBS",string.sub(postStack,i,i)) or string.find("#",string.sub(postStack,i,i))
    else
      tmp=string.find("DDBS",string.sub(postStack,i,i)) or string.find("#",string.sub(postStack,i,i))
    end
    if tmp then
      cost=cost+5+tmp
    else
      m.easyChangeStackCostErr="Only D,B,S,SP,# inner items implemented yet ("..i..")="..string.sub(postStack,i,i).." "..m.easyChangeStackCostErr
      return
    end
  end
  return cost
end

function m.easyChangeStackCostLowerBound(preStack,postStack) -- let us try to slowly extend this to all required cases (postStacks corresponding to all emission tabulated preStacks, condition for preStacks not known yet)
  local cost,tmp=0
  m.easyChangeStackCostLowerBoundErr=preStack..">"..postStack
  if preStack==postStack then 
    return cost
  end
  if string.len(preStack)>2 then
    m.easyChangeStackCostLowerBoundErr="Reducig stack not implemented "..m.easyChangeStackCostLowerBoundErr
    return
  end
  if string.len(postStack)<string.len(preStack) then
    m.easyChangeStackCostLowerBoundErr="Shortening not implemented "..m.easyChangeStackCostLowerBoundErr
    return  
  end
  if string.len(preStack)==2 then
    cost=string.find("SBPD",string.sub(preStack,-1)) or string.find("SBP#",string.sub(preStack,-1))
    if not cost then
      m.easyChangeStackCostLowerBoundErr="Only D,P,B,S,# on starting positions implemented "..m.easyChangeStackCostLowerBoundErr
      return
    end
    tmp=string.find("SBPD",string.sub(postStack,-1)) or string.find("SBP#",string.sub(postStack,-1))
    if not tmp then
      m.easyChangeStackCostLowerBoundErr="Only D,B,S,# at end of postStack when preStack.len==2 on starting positions implemented "..m.easyChangeStackCostLowerBoundErr
      return
    end
    cost=cost-tmp
    if cost<0 then
      m.easyChangeStackCostLowerBoundErr="when preStack.len==2, end of postStack must be on D->P->B->S from end of preStack "..m.easyChangeStackCostLowerBoundErr
      return      
    end
    preStack=string.sub(preStack,1,-2)
    postStack=string.sub(postStack,1,-2)
  end
  tmp=string.find("SBPD",preStack) or string.find("SBP#",preStack)
  if not tmp then
    m.easyChangeStackCostLowerBoundErr="Only D,P,B,S,# starting positions implemented "..m.easyChangeStackCostLowerBoundErr
    return
  end
  if string.len(postStack)==1 then
    if cost>0 then
      if postStack~="S" then
        m.easyChangeStackCostLowerBoundErr="when preStack.len==2, postStack.len==2 last item differ, implemented only for postStack starting S "..m.easyChangeStackCostLowerBoundErr
        return
      end
    else
      cost=tmp
      tmp=string.find("SBPD",postStack) or string.find("SBP#",postStack)
      if not tmp then
        m.easyChangeStackCostLowerBoundErr="when preStack.len==postStack.len<=2 where only first item differs implemented only for postStack starting B,S,P,D "..m.easyChangeStackCostLowerBoundErr
        return
      end
      cost=cost-tmp
      if cost<0 then
        m.easyChangeStackCostLowerBoundErr="not implemented for short stacks where shift not consistent with D->P->B->S "..m.easyChangeStackCostLowerBoundErr
        return
      end
      return cost
    end
  end
  cost=cost+tmp-1
  tmp=string.find("PBS",string.sub(postStack,1,1))
  if string.sub(postStack,2,4)=="6d6" then
    if not tmp then
      m.easyChangeStackCostLowerBoundErr="Only P,B,S predecessors of 6d6 implemented "..m.easyChangeStackCostLowerBoundErr
      return
    end
    cost=cost+tmp
    postStack=string.sub(postStack,5)
  elseif tmp then
    cost=cost+tmp-3
    if string.sub(postStack,1,2)=="SP" then --P allowed here
      cost=cost+7
      postStack=string.sub(postStack,3)
    elseif string.sub(postStack,2,2)=='D' or tmp==3 then 
      postStack=string.sub(postStack,2)
    else
      m.easyChangeStackCostLowerBoundErr="After P or B start must be either 6d or D, other costs not implemented "..m.easyChangeStackCostLowerBoundErr.."\n"..postStack
      -- additional cost 22 (a) ->S, changing 2nd -> (+6) SD (+3-a) back to desired (+13) removal of leading S
      -- additional cost +22 does not work for P as SP->P6d6P is not possible
      return
    end
  elseif string.sub(postStack,1,2) == "T6" then
    cost=cost+21 -- is (3)S6d6->(+2)H6T6->(+8)H6T18T6->(+7)I16T6->(+1)T6 optimal (at least in our current moveset)
    postStack=string.sub(postStack,3)
  else
    m.easyChangeStackCostLowerBoundErr="Only P,B,S and T6 starts implemented "..m.easyChangeStackCostLowerBoundErr
    return
  end
  for i=1,string.len(postStack) do
    tmp=string.find("DPBS",string.sub(postStack,i,i)) or string.find("#",string.sub(postStack,i,i))
    if tmp then
      cost=cost+5+tmp
    else
      m.easyChangeStackCostLowerBoundErr="Only D,B,P,S,# inner items implemented yet ("..i..")="..string.sub(postStack,i,i).." "..m.easyChangeStackCostLowerBoundErr
      return
    end
  end
  return cost
end

function m.triviCostLowerBound(postStack)
  if postStack=='' then
    return 0
  end
  local ret=m.easyChangeStackCostLowerBound('D',postStack)
  if ret then
    ret=(ret<3) and 0 or ret-3
  end
  return ret
end

function m.easyChangeStackLowerBound(preStack,postStack)
  local cost,tmp=0
  while cost==0 do
    m.writeLog("easyChangeStackLowerBound("..preStack..","..postStack..") loop cost 0")
    if preStack==postStack then
      return 0
    end
    if postStack=="" then
      return 0
    end
    if preStack=="" then
      return m.triviCostLowerBound(postStack)
    end
    cost=string.find("DPBS",string.sub(preStack,-1,-1)) or string.find("#",string.sub(preStack,-1,-1))
    if not cost then
      return m.triviCostLowerBound(postStack)
    end
    tmp=string.find("DPBS",string.sub(postStack,-1,-1)) or string.find("#",string.sub(postStack,-1,-1))
    if not tmp then
      return m.triviCostLowerBound(postStack)
    end
    cost=tmp-cost
    if cost<0 then
      return m.triviCostLowerBound(postStack)   
    end
    postStack,preStack=string.sub(postStack,1,-2),string.sub(preStack,1,-2)
  end
  while string.sub(postStack,-1)=='S' do
    m.writeLog("easyChangeStackLowerBound("..preStack..","..postStack..") loop cost "..cost)
    if preStack=="" then
      tmp=m.triviCostLowerBound(postStack)
      if tmp then
        tmp=tmp+cost
      end
      return tmp 
    end
    tmp=string.find("SBPD",string.sub(preStack,-1,-1)) or string.find("#",string.sub(preStack,-1,-1))
    if not tmp then
      tmp=m.triviCostLowerBound(postStack)
      if tmp then
        tmp=tmp+cost
      end
      return tmp 
    end
    cost=cost+tmp-1
    postStack,preStack=string.sub(postStack,1,-2),string.sub(preStack,1,-2)    
  end
  if postStack=="" then
    return cost
  end
  tmp=m.easyChangeStackCost('S',postStack)
  if tmp then
    return tmp+cost
  else
    return
  end
end

function m.ignoreSuffixChangeStackCost(preStack,postStack) --calls Easy changeStackCost when reduced to easy case
  while string.len(preStack)>1 and string.len(postStack)>0 and string.sub(preStack,-1)==string.sub(postStack,-1) do
   preStack,postStack=string.sub(preStack,1,-2),string.sub(postStack,1,-2)
  end
  local ret,est=m.easyChangeStackCost(preStack,postStack),m.easyChangeStackLowerBound(preStack,postStack)
  if ret then
    m.writeLog("ignoreSuffixChangeStackCost("..preStack..","..postStack..")="..ret..","..est,1)
  elseif est then
    m.writeLog("ignoreSuffixChangeStackCost("..preStack..","..postStack..")=nil,"..est,1)
  end
  return ret,est
end

m.results={} --cache to gradually speed up
function m.changeStackCosts(preStack,postStack)

  local function searchChangeStackCosts(preStack,postStack)
  --returns table. when there are templates in postStack, the table contains prestacks compatible with the pattern and their costs
  --the prestacks are given as most general as possible,
    m.writeLog('searchChangeStackCosts('..preStack..","..postStack..')',2)
    local bestCost,cost={}
    cost=m.ignoreSuffixChangeStackCost(preStack,postStack)
    if cost then   
      m.writeLog(' no search needed')
      bestCost[preStack]={cost,''}
      return bestCost
    else
      m.writeLog(' search needed')
    end

    --conjecture ... D is cheaper # to both build and destroy so let us convert trailing # to D at the start.
    --^could be wrong I will try one more alternative for final B destruction causing 1 "increment"
    --this skips a lot of search and for me it is worth of
    local numTemplates=0
    local pos -- will be the leftest template position matching postStack (indexed from botom)
    for j=1,string.len(preStack) do
      if string.sub(preStack,-j,-j)~='#' then
        pos=not pos and (j-1) or pos
        break
      elseif pos then
        preStack=string.sub(preStack,1,-j-1)..'D'..string.sub(preStack,-j+1,j==1 and 0 or -1)
      elseif j>string.len(postStack) or not string.find('DBS#',string.sub(postStack,-j,-j)) then
        pos=j-1
        preStack=string.sub(preStack,1,-j-1)..'D'..string.sub(preStack,-j+1,j==1 and 0 or -1)
      elseif string.sub(postStack,-j,-j)~='#' then
        preStack=string.sub(preStack,1,-j-1)..string.sub(postStack,-j,-j)..string.sub(preStack,-j+1,j==1 and 0 or -1)
      else
        numTemplates=j
      end
    end
    local preStackA=preStack
    if pos then 
      m.writeLog("prestackB?",1)
      if string.sub(preStack,-pos,-pos)=='B' then
        preStack=string.sub(preStack,1,-pos-1)..'D'..string.sub(preStack,-pos+1,pos==1 and 0 or -1)
        m.writeLog("prestackB yes B->D",1)
      elseif string.sub(preStack,-pos,-pos)=='S' then
        preStack=string.sub(preStack,1,-pos-1)..'B'..string.sub(preStack,-pos+1,pos==1 and 0 or -1)
        m.writeLog("prestackB yes S->B",1)
      end
    end
    local preStackB=preStack  
    if pos then 
      m.writeLog("prestackC?",1)
      if string.sub(preStack,-pos,-pos)=='B' then
        preStack=string.sub(preStack,1,-pos-1)..'D'..string.sub(preStack,-pos+1,pos==1 and 0 or -1)
        m.writeLog("prestackC yes B->D",1)
      end
    end
    --d6DB has no solution but d6DD has
    local preStackC=preStack  

    local trieQueue,trieQueueLastInd,trieQueueFirstInd -- increasing IndicesFirst mod trieNodeCount empty when trieQueueLastInd==trieQueueFirstInd,
    trieQueue,trieQueueLastInd,trieQueueFirstInd={},0,0

    local function trieQueuePush(trieNode)
      if trieNode then --allowing push(nil) doing nothing
        trieQueueLastInd=trieQueueLastInd+1
        if trieQueueLastInd>m.trieNodeCount then
          trieQueueLastInd=1
        end
        trieQueue[trieQueueLastInd]=trieNode
      else
       m.writeLog("trieQueuePush(nil)",-2)
      end
    end

    local function trieQueuePull()
      if trieQueueFirstInd==trieQueueLastInd then
        return
      end
      trieQueueFirstInd=trieQueueFirstInd+1
      if trieQueueFirstInd>m.trieNodeCount then
        trieQueueFirstInd=1
      end
      local trieNode=trieQueue[trieQueueFirstInd]
      trieQueue[trieQueueFirstInd]=nil
      return trieNode
    end

    local extraBit,preStackLen,edgeBitLimit
    local function nextOutGoingEdge()
      m.writeLog("  NextOutGoingEdge",-1)
      local trieNode=trieQueuePull()
      while trieNode do
        if edgeBitLimit and trieNode.minBitLen>=edgeBitLimit then
          -- extraBit should be included in edgeBitLimit
          m.writeLog("trieBaranch discarded ... minBitLen "..trieNode.minBitLen..">="..edgeBitLimit)
        elseif trieNode.minPreStackLen>preStackLen then
          m.writeLog("trieBaranch discarded ... minPreStackLen "..trieNode.minPreStackLen..">"..preStackLen)
        else
          -- trieQueuePush(trieNode[0]) used only at root with extraBit
          m.writeLog("  NextOutGoingEdge push[1]",-2);trieQueuePush(trieNode[1])
          m.writeLog("  NextOutGoingEdge push[2]",-2);trieQueuePush(trieNode[2])
          if trieNode.moveConds then
            m.writeLog("  NextOutGoingEdge #moves="..#trieNode.moveConds)
            return trieNode.moveConds
          end
        end
        trieNode=trieQueuePull()
      end
      return
    end

    local function firstOutGoingEdge(preStack)
      m.writeLog("  FirstOutgoingEdge "..preStack,-1)
      extraBit=nil
      if preStack=="" then
        return
      end
      local first=string.sub(preStack,1,1)
      if string.find('01',first) then
        preStack=string.sub(preStack,2)
        if preStack=="" then
          return
        end
        extraBit=first+0
        first=(first=="1") and string.sub(preStack,1,1) or first
      end
      if first=='#' then -- can reach other substitutes by 1* in the minimal cost, but not in 0 extraBitCase so '0' trie created
        first = 'D'
      end
      preStackLen=string.len(preStack)
      local trieNode=m.tries[first]
      if extraBit==1 then -- we have not added extra level to trie['0']
        trieNode=trieNode[extraBit]
      end
      trieQueuePush(trieNode)
      return nextOutGoingEdge()
    end

    local queue,queueCurrentEstCost,queueMaxEstCost,queueCurrentEstCostId={},-1,0,0
    local queueFilter={}

    local function queueEmpty()
      m.writeLog("queueEmpty? "..queueCurrentEstCost.." "..queueCurrentEstCostId.." "..queueMaxEstCost,-1)
      if queueCurrentEstCost<0 then
        return true
      end
      if queueCurrentEstCost<queueMaxEstCost then
        return false
      end
      if queueCurrentEstCostId==#queue[queueMaxEstCost] then
        queue[queueMaxEstCost],queueCurrentEstCost,queueMaxEstCost,queueCurrentEstCostId=nil,-1,0,0
        return true
      end
      return false
    end

    local function queuePush(oriPreStack,preStack,bits,est)
      processed = queueFilter[oriPreStack..">"..preStack]
      if processed  and processed<=string.len(bits) then
        return
      end
      queueFilter[oriPreStack..">"..preStack]=string.len(bits)
      est = not est and 0 or est
      local costEst=string.len(bits)+est
      if not queue[costEst] then
        queue[costEst]={}
      end
      queue[costEst][1+#queue[costEst]]={oriPreStack,preStack,bits}
      if queueCurrentEstCost>costEst then
        m.writeLog("queuePush This should not happen decrease in cost!",10)
        queueCurrentEstCost,queueCurrentEstCostId=costEst,0
      elseif queueCurrentEstCost<0 then
        queueCurrentEstCost=0 --nonempty mark
      end
      if queueMaxEstCost<costEst then
        queueMaxEstCost=costEst
      end
    end

    local function queuePop()
      if not queue[queueCurrentEstCost] then
        queueCurrentEstCostId=0
      end
      while not queue[queueCurrentEstCost] do
        queueCurrentEstCost=1+queueCurrentEstCost
      end
      queueCurrentEstCostId=1+queueCurrentEstCostId
      if queueCurrentEstCostId>#queue[queueCurrentEstCost] then
        queue[queueCurrentEstCost]=nil
        queueCurrentEstCostId=1
        while not queue[queueCurrentEstCost] do
          queueCurrentEstCost=1+queueCurrentEstCost
        end
      end
      local node = queue[queueCurrentEstCost][queueCurrentEstCostId]
      return node[1],node[2],node[3]
    end

    local function extStack(pre,stack,post)
      m.writeLog("   extStack("..pre..","..stack..","..post..")")
      if string.find('01',string.sub(stack,1,1)) then -- extrabit
        pre,stack=string.sub(stack,1,1)..pre,string.sub(stack,2)
      end
      stack=pre..stack
      if stack~="" and string.find('TtIHhBPdDS#',string.sub(stack,-1)) then
        return stack..post
      else
        local postPos=string.find(post,'[TtIHhBPdDS#]')
        if postPos then
          local postDist=string.sub(post,1,postPos-1)
          postDist=((postDist=="") and "8" or postDist)
          local start,dist=string.match('H'..stack,'(.*[TtIHhBPdDS#])(.*)')
          start=string.sub(start,2)
          m.writeLog("   extStack start, dist, postDist "..start..","..dist..","..postDist.."("..postPos..")")
          if start=="" then 
            return dist..string.sub(post,postPos) --dist is actually extrabit (or empty)
          else
            dist=(dist=="") and 0 or dist
            if dist+postDist==8 then
              return start..string.sub(post,postPos)
            end
            return start..m.inttostring(dist+postDist)..string.sub(post,postPos)
          end
        else
          return stack
        end
      end
    end

    local oriPostStack=postStack

    local function bestTemplateCost(stack) --cost related to current stack
      local ret,discount=bestCost[stack],0
      if ret then
        ret=ret[1]
        bestStack=stack
        m.writeLog("best "..stack.."("..ret..")")
      end
      for i=1,numTemplates do
        if string.sub(stack,-i,-i)~='#' then
          local cost=string.find('DDBS',string.sub(stack,-i,-i))
          if cost then 
            discount=discount+cost-1
            stack=string.sub(stack,1,-i-1)..'#'..string.sub(stack,-i+1,i==1 and 0 or -1)
            local new=bestCost[stack]
            if new then
              new=new[1]-discount
              if ret then
                if new<=ret then
                  bestCost[bestStack]=nil
                  ret=new
                  m.writeLog("best overWrite"..bestStack.."("..ret..") by "..stack.."("..new..")")
                  bestStack=stack             
                end
              else
                ret=new
                m.writeLog("best "..stack.."("..new..")")
                bestStack=stack
              end
            end
          else --this cannot happen
            break
          end
        end
      end
      return ret
    end

    local function getCompatible(mPreStack,preStack,mPostStack,oriPreStack,conds) --{{extPreStack, extPostStack, oriPreStack}}
      m.writeLog("getCompatible("..mPreStack..","..preStack..","..mPostStack..","..oriPreStack..","..m.conditionsToString(conds)..")")
      local numConcretized=0
      if extraBit then
        preStack=string.sub(preStack,2)
      end
      local ret={}
      if string.len(mPreStack)>string.len(preStack) then
        m.writeLog(" string.len(mPreStack)>string.len(preStack)")
        return ret
      end
      local offs,sPreStack,hIdSkip,fail=0,preStack,string.sub(conds[1],1,1)
      local cdist=string.sub(conds[1],2)
      cdist=(cdist=="") and "0" or cdist -- if conds[1] not empty than odd
      cdist = 0 + cdist
      while offs<string.len(preStack) do
        fail=false
        if (offs>0) then 
          m.writeLog(' no S#->SS is never optimal',-1)
          return ret
          --[[ here in comment is the original hugely branching method 
            it explains why there is a loop and fail rather to return
            if hIdSkip~="S" or string.sub(sPreStack,offs,offs)~="#" then
              m.writeLog(' no # compatible with hIdSkip '..hIdSkip..","..string.sub(sPreStack,offs,offs))
              return ret
            end
            sPreStack=string.sub(sPreStack,1,offs-1)..'S'..string.sub(sPreStack,offs+1)
            local oriPos=string.find(oriPreStack,'#')
            oriPreStack=string.sub(oriPreStack,1,oriPos-1)..'S'..string.sub(oriPreStack,oriPos+1)
            numConcretized=numConcretized+1 
          --]]
        end
        preStack=sPreStack
        if hIdSkip~="" then
          local pos=string.find(preStack,'['..string.gsub('TtIHhBPdDS',hIdSkip,'')..']',offs+1)
          if not pos then
            m.writeLog(" everything skipped "..hIdSkip)
            return ret
          end
          offs=pos-1
          if offs>0 then
            local pre,dist=string.match(hIdSkip..string.sub(preStack,1,offs),'(.*'..hIdSkip..')(.*)')
            dist = (dist=="") and "8" or dist
            dist=0+dist
            fail = dist<cdist
            if fail then 
              m.writeLog("  fail:small distance from hIdskip "..dist.."<"..cdist)
            end
          end
        end
        if string.len(mPreStack)+offs>string.len(preStack) then
          m.writeLog(" string.len(mPreStack)+offs>string.len(preStack)")
          return ret
        end 
        if not fail then
          for i=1,string.len(mPreStack) do
            if string.sub(mPreStack,i,i)~=string.sub(preStack,i+offs,i+offs) then
              if not string.find('DBS',string.sub(mPreStack,i,i)) or string.sub(preStack,i+offs,i+offs)~="#" then
                m.writeLog(" fail:not match at positions "..i..","..i+offs..":"..string.sub(mPreStack,i,i).."?"..string.sub(preStack,i+offs,i+offs))
                fail=true
                break
              else
                preStack=string.sub(preStack,1,i+offs-1)..string.sub(mPreStack,i,i)..string.sub(preStack,i+offs+1)
              end
            end
          end
        end
        if not fail then
          local condsToTest,pos,endPos={},1+offs+string.len(mPreStack) --mPreStack ends by an hId !!!
          condsToTest["_"]=""
          if pos<=string.len(preStack) then
            endPos=string.find(string.sub(preStack,pos),'[TtIHhBPdDS#]')
            if endPos then
              local hId=string.sub(string.sub(preStack,pos),endPos,endPos)
              condsToTest["_"]=nil
              local dist=string.sub(string.sub(preStack,pos),1,endPos-1)
              dist=(dist=="" and "8") or dist
              condsToTest[hId]=dist
              m.writeLog(" condToTest "..hId..","..dist.."("..endPos..")")
              --actually we have very rarely to check 2nd item dist as well (I4S2I...{I7} condition)
              --I bet the use of the StackChangeCost caused by prevPostStack->requiredPreStack
              --will never generate this case ... so I leave it this simplified way till it is really required
              --proving it is not necessary is another option :)
            end 
            if condsToTest['#'] then
              condsToTest['D']=condsToTest['#']
              condsToTest['B']=condsToTest['#']
              condsToTest['S']=condsToTest['#']
              condsToTest['#']=nil
            end
          end
          local OK,KO={},{}
          for i=1,#conds[2] do
            local hId=string.sub(conds[2][i],-1)
            m.writeLog("  condition "..conds[2][i]..","..hId)
            local dist = condsToTest[hId]
            if dist then
              if dist=="" then
                OK[#OK+1]=hId
                m.writeLog(" condition "..hId..","..dist.." OK")
              else
                local cdist=string.sub(conds[2][i],1,-2)
                cdist=(cdist=="" and "8") or cdist
                dist,cdist=dist+0,cdist+0
                if cdist%2==1 then
                  if cdist<dist then
                    OK[#OK+1]=hId
                    m.writeLog(" condition "..hId..","..dist.."("..cdist..")".." OK")
                  else
                    KO[#KO+1]=hId
                    m.writeLog(" condition "..hId..","..dist.."("..cdist..")".." KO")
                  end
                else
                  if cdist==dist then
                    OK[#OK+1]=hId
                    m.writeLog(" condition "..hId..","..dist.."("..cdist..")".." OK")
                  else
                    KO[#KO+1]=hId
                    m.writeLog(" condition "..hId..","..dist.."("..cdist..")".." KO")
                  end
                end
              end
              condsToTest[hId]=nil
            end
          end
          for hId,dist in pairs(condsToTest) do
            KO[#KO+1] = hId
            m.writeLog(" condition "..hId..","..dist.." KO (missed)")
          end
          if #OK==0 then
            m.writeLog(' all suffix tests failed')
          else
            for i=1,#OK do
              if #KO>0 then -- template needs further specification
                preStack=string.sub(preStack,1,endPos-1)..OK[i]..string.sub(preStack,endPos+1)
              elseif i>1 then
                m.writeLog("  all template suffixes work well so template remains unchanged")
                break
              end
              local extpre,extpost,mOriPreStack=string.sub(preStack,1,offs),string.sub(preStack,pos),oriPreStack
              local extPostStack=extStack(extpre,mPostStack,extpost)
              m.writeLog('  extPostStack='..extPostStack)
              for j=1,string.len(preStack) do
                if j>string.len(oriPreStack) then
                  break
                end
                if string.sub(oriPreStack,-j,-j)=='#' and string.sub(preStack,-j,-j)~='#' then
                  mOriPreStack=string.sub(mOriPreStack,1,-j-1)..string.sub(preStack,-j,-j)..string.sub(mOriPreStack,-j+1,j==1 and 0 or -1)
                  numConcretized=numConcretized+1
                end
              end
              ret[#ret+1]={preStack,extPostStack,mOriPreStack}
              m.writeLog(" getCompatible new result:"..preStack..","..extPostStack..","..mOriPreStack,1)
            end
          end
        end
        offs=offs+1
      end
      return ret
    end

    local oriPreStack,bits
    local cost,estC=m.ignoreSuffixChangeStackCost(preStackC,oriPostStack)
    queueCurrentEstCost,queueMaxEstCost,queueCurrentEstCostId,queueFilter=-1,0,0,{}
    if cost then                
      m.writeLog(" StartBestCost  ["..preStackC.."]+"..cost.."["..oriPostStack.."]",2)
      bestCost[preStackC]={cost,''}
    else
      queuePush(preStackC,preStackC,"",estC)
    end
    if preStackB~=preStackC then
      local cost,estB=m.ignoreSuffixChangeStackCost(preStackB,oriPostStack)
      if cost then                
        m.writeLog(" StartBestCost  ["..preStackB.."]+"..cost.."["..oriPostStack.."]",2)
        bestCost[preStackB]={cost,''}
      else
        queuePush(preStackB,preStackB,"",estB)
      end
    end
    if preStackA~=preStackB then
      local cost,estA=m.ignoreSuffixChangeStackCost(preStackA,oriPostStack)
      if cost then                
        m.writeLog(" StartBestCost  ["..preStackA.."]+"..cost.."["..oriPostStack.."]",2)
        bestCost[preStackA]={cost,''}
      else
        queuePush(preStackA,preStackA,"",estA)
      end
    end
    while not queueEmpty() do
      oriPreStack,preStack,bits=queuePop()
      m.writeLog("Search ["..oriPreStack.."]"..bits.."["..preStack.."]["..oriPostStack.."]",2)
      local best,fail=bestTemplateCost(oriPreStack)
      edgeBitLimit=nil
      if best then
        edgeBitLimit=best-string.len(bits)+((not extraBit) and 0 or 1)
        fail = edgeBitLimit<=0
        if not fail then
          local cost,est=m.ignoreSuffixChangeStackCost(preStack,oriPostStack)
          -- non null cost would prevent push as well as best test in that time, but best could have improved
          fail=edgeBitLimit<=est
        end
      end
      if not fail then
        local moveConds = firstOutGoingEdge(preStack)
        while moveConds do
          for i=1,#moveConds do
            m.writeLog(" "..preStack..">"..moveConds[i])
            local nBits,move,conds,mPreStack,mPostStack=m.parseMove(moveConds[i])
            if extraBit then
              if 0+string.sub(nBits,1,1)~= extraBit then
                m.writeLog("something wrong not matched extraBit "..extraBit.."?"..nBits,10)
              else
                nBits=string.sub(nBits,2)
              end
            end
            if string.find(nBits,'0') then
              m.writeLog(" bit 0 can be used only as extraBit ... this cannot happen",10)
              break -- all moves in moveConds has same bits
            end
            local stacks=getCompatible(mPreStack,preStack,mPostStack,oriPreStack,conds) --{{extPreStack, extPostStack, oriPreStack}}
            for j=1,#stacks do
              best=bestTemplateCost(stacks[j][3])
              if not best or best>string.len(bits)+string.len(nBits) then
                local cost,est=m.ignoreSuffixChangeStackCost(stacks[j][2],oriPostStack)
                if cost then                
                  m.writeLog(" cost  ["..stacks[j][3].."]"..bits..nBits.."["..stacks[j][2].."]+"..cost.."["..oriPostStack.."]",1)
                  if not best or best>string.len(bits)+string.len(nBits)+cost then
                    bestCost[stacks[j][3]]={string.len(bits)+string.len(nBits)+cost,bits..nBits}
                    m.writeLog(" NewBestCost ["..stacks[j][3].."]"..bits..nBits.."("..bestCost[stacks[j][3]][1]..")",2)
                  end
                else
                  if est then
                    if not best or best>string.len(bits)+string.len(nBits)+est then
                      m.writeLog("       ["..stacks[j][3].."]"..bits..nBits.."+>"..est.."["..stacks[j][2].."]>?>["..oriPostStack.."]",1)
                      queuePush(stacks[j][3],stacks[j][2],bits..nBits,est)
                    end
                  else
                    m.writeLog("       ["..stacks[j][3].."]"..bits..nBits.."["..stacks[j][2].."]>?>["..oriPostStack.."]",1)
                    queuePush(stacks[j][3],stacks[j][2],bits..nBits,est)
                  end
                end
              end
            end
          end
          moveConds = nextOutGoingEdge()
        end
      end
    end
    return bestCost
  end

  local function templateCost(preStack,preS)
    local ret,nrSubsts=0,0
    if string.len(preStack)~=string.len(preS) then
      m.writeLog("!Something wrong: search preStack len does not match template preStack len.",10)
      return 10000,10000
    end
    for i=1,string.len(preS) do
      if string.sub(preS,i,i)~=string.sub(preStack,i,i) then
        if string.sub(preStack,i,i)~='#' then
          m.writeLog("!Something wrong: search preStack does not match template preStack.",10)
          return 10000,10000
        end
        local cost=string.find('DDBS',string.sub(preS,i,i))
        if not cost then
          m.writeLog("!Something wrong: weird substitution template preStack>search preStack.",10)
          return 10000,10000
        end
        ret,nrSubsts=ret+cost-1,nrSubsts+1
      end
    end
    return ret,nrSubsts
  end

  local function bestOfBestsWithPreCost(preStack,best)
    m.writeLog("bestOfBestsWithPreCost")
    local ret,bestNrSubsts
    for preS,b in pairs(best) do
      local preCost,nrSubsts=templateCost(preStack,preS)
      b[1]=b[1]+templateCost(preStack,preS)
      m.writeLog("bestOfBestsWithPreCost b={"..preS..","..b[1]..","..b[2].."}")    
      if not ret or ret[2]>b[1] or (ret[2]==b[1] and bestNrSubsts>nrSubsts) then
        ret,bestNrSubsts={preS,b[1],b[2]},nrSubsts
        m.writeLog("bestOfBestsWithPreCost ret={"..preS..","..b[1]..","..b[2].."}")
      end
    end
    return ret
  end

  if not m.results[preStack..">"..postStack] then
    m.results[preStack..">"..postStack]=bestOfBestsWithPreCost(preStack,searchChangeStackCosts(preStack,postStack))
  end
  return m.results[preStack..">"..postStack]
end

return m

--[[
local function changeStackCostsToString(costs)
  if not costs then
    return "nil"
  end
  return "("..costs[2]..")["..costs[1].."]"..costs[3]..".."
end

local function tests()
  --local cost=easyChangeStackCost('SB','B6d6DSDDDSS');cost = not cost and m.easyChangeStackCostErr or cost;g.note(cost)
  --cost=easyChangeStackCost('#','SPDBS#');cost = not cost and m.easyChangeStackCostErr or cost;g.note(cost)
  m.writeLog("changeStackCosts('S##','B6d6DSDDSS###')="..changeStackCostsToString(changeStackCosts('S##','B6d6DSDDSS###')),3)           --65-33=32 53+34= 87 [I4S###]
  m.writeLog("changeStackCosts('S##','PDBSBB######')="..changeStackCostsToString(changeStackCosts('S##','PDBSBB######')),3)             --65-17=48 61+34= 95 [######] 
  m.writeLog("changeStackCosts('S##','S6d6BDBDDS######')="..changeStackCostsToString(changeStackCosts('S##','S6d6BDBDDS######')),3)     --65-9=56  70+52=122 [I4S######]
  m.writeLog("changeStackCosts('S##','S6d6BDSDBDDS####')="..changeStackCostsToString(changeStackCosts('S##','S6d6BDSDBDDS####')),3)     --65-25=40 73+56=129 [T6S####]
  m.writeLog("changeStackCosts('S##','PDDDDDS##')="..changeStackCostsToString(changeStackCosts('S##','PDDDDDS##')),3)                   --65-41=24 37+71=108 [I4S##]
  m.writeLog("changeStackCosts('S##','PDDDDDD##')="..changeStackCostsToString(changeStackCosts('S##','PDDDDDD##')),3)                   --65-49=16 34+76=110 [##]
  m.writeLog("changeStackCosts('S##','S6d6BDSDDS#######')="..changeStackCostsToString(changeStackCosts('S##','S6d6BDSDDS#######')),3)   --65-1=64  77+92=169 [S#######]

  m.writeLog("changeStackCosts('I4S###','S6d6BDSDDD##')="..changeStackCostsToString(changeStackCosts('I4S###','S6d6BDSDDD##')),3)           --68-52=16  87+39+37=163 [H6T14##]
  m.writeLog("changeStackCosts('######','S6d6BDSDDD##')="..changeStackCostsToString(changeStackCosts('######','S6d6BDSDDD##')),3)           --68-52=16  95+29+37=161 [H6T14##]
  m.writeLog("changeStackCosts('I4S######','S6d6BDSDDD##')="..changeStackCostsToString(changeStackCosts('I4S######','S6d6BDSDDD##')),3)     --68-52=16 122+21+37>161 [H6T14##]
  m.writeLog("changeStackCosts('T6S####','S6d6BDSDDD##')="..changeStackCostsToString(changeStackCosts('T6S####','S6d6BDSDDD##')),3)         --68-52=16 129+34+37>161 [H6T14##]
  m.writeLog("changeStackCosts('I4S##','S6d6BDSDDD##')="..changeStackCostsToString(changeStackCosts('I4S##','S6d6BDSDDD##')),3)             --68-52=16 108+45+37>161 [H6T14##]
  m.writeLog("changeStackCosts('##','S6d6BDSDDD##')="..changeStackCostsToString(changeStackCosts('##','S6d6BDSDDD##')),3)                   --68-52=16 110+53+37>161 [H6T14##]
  m.writeLog("changeStackCosts('S#######','S6d6BDSDDD##')="..changeStackCostsToString(changeStackCosts('S#######','S6d6BDSDDD##')),3)       --68-52=16 169+17+37>161 [H6T14##]
  m.writeLog("changeStackCosts('I4S###','B6d6DSDDDSS######')="..changeStackCostsToString(changeStackCosts('I4S###','B6d6DSDDDSS######')),3)       --68-20=48  87+72+58=217 [######]
  m.writeLog("changeStackCosts('######','B6d6DSDDDSS######')="..changeStackCostsToString(changeStackCosts('######','B6d6DSDDDSS######')),3)       --68-20=48  95+62+58=215 [######]
  m.writeLog("changeStackCosts('I4S######','B6d6DSDDDSS######')="..changeStackCostsToString(changeStackCosts('I4S######','B6d6DSDDDSS######')),3) --68-20=48 122+54+58>215 [######]
  m.writeLog("changeStackCosts('T6S####','B6d6DSDDDSS######')="..changeStackCostsToString(changeStackCosts('T6S####','B6d6DSDDDSS######')),3)     --68-20=48 129+67+58>215 [######]
  m.writeLog("changeStackCosts('I4S##','B6d6DSDDDSS######')="..changeStackCostsToString(changeStackCosts('I4S##','B6d6DSDDDSS######')),3)         --68-20=48 108+78+58>215 [######]
  m.writeLog("changeStackCosts('##','B6d6DSDDDSS######')="..changeStackCostsToString(changeStackCosts('##','B6d6DSDDDSS######')),3)               --68-20=48 110+86+58>215 [######]
  m.writeLog("changeStackCosts('S#######','B6d6DSDDDSS######')="..changeStackCostsToString(changeStackCosts('S#######','B6d6DSDDDSS######')),3)   --68-20=48 169+47+58>215 [######]

  m.writeLog("changeStackCosts('##','PDDDDDS')="..changeStackCostsToString(changeStackCosts('##','PDDDDDS')),3)                                   --68-60=8 110+34+59=200 [T6S#]

  m.writeLog("changeStackCosts('######','S6d6BDBDDDDB#######')="..changeStackCostsToString(changeStackCosts('######','S6d6BDBDDDDB#######')),3) --63-7=56  95+72+28=195 [T6#######]
  m.writeLog("changeStackCosts('######','SPDBS######')="..changeStackCostsToString(changeStackCosts('######','SPDBS######')),3)             --63-15=48 95+39+44=178  [T18T18T6######]
  m.writeLog("changeStackCosts('######','PDDDDD#####')="..changeStackCostsToString(changeStackCosts('######','PDDDDD#####')),3)               --63-23=40 95+31+63=189   [#####]
  m.writeLog("changeStackCosts('######','PDDDDBS##')="..changeStackCostsToString(changeStackCosts('######','PDDDDBS##')),3)                   --63-39=24 95+24+68=187   [I16T18T6###]

  m.writeLog("changeStackCosts('H6T14##','B6d6DSDDSB####')="..changeStackCostsToString(changeStackCosts('H6T14##','B6d6DSDDSB####')),3)               --61-29-32 161+75+31=267 [####]
  m.writeLog("changeStackCosts('######','B6d6DSDDSB####')="..changeStackCostsToString(changeStackCosts('######','B6d6DSDDSB####')),3)                   --61-29-32 215+43+31=289 [####]
  m.writeLog("changeStackCosts('T18T18T6######','B6d6DSDDSB####')="..changeStackCostsToString(changeStackCosts('T18T18T6######','B6d6DSDDSB####')),3) --61-29-32 178+47+31=256 [####]
  m.writeLog("changeStackCosts('#####','B6d6DSDDSB####')="..changeStackCostsToString(changeStackCosts('#####','B6d6DSDDSB####')),3)                   --61-29-32 189+49+31=269 [####]
  m.writeLog("changeStackCosts('I16T18T6###','B6d6DSDDSB####')="..changeStackCostsToString(changeStackCosts('I16T18T6###','B6d6DSDDSB####')),3)       --61-29-32 187+55+31=273 [####]
end

--tests()

--]]
CondBitSequences.txt ... probably could be reduced more

Code: Select all

   1[B]0[]{I9:_,5T,5t,5I,9H,9h,7B,9P,7d,7D,7S}
   1[B]1[S]{S5:_,5T,5t,7I,9H,9h,5B,7P,5d,5D,5S}
   1[B]2[1]{:_,5T,5t,5I,9H,9h,7B,9P,7d,7D,7S}
   1[B6D]2[1]{:_,5T,3t,-1I,7H,9h,5B,7P,5d,5D,5S}
   1[B6d6DBDS]2[]{:_,3T,1t,1I,5H,5h,5B,5P,5d,5D,5S}
   1[B6d6SPS]2[]{:_,5T,3t,3I,7H,7h,5B,7P,5d,5D,5S}
   1[B6S]2[1]{:_,5T,3t,1I,9H,9h,9B,9P,9d,9D,9S}
   1[D]1[P]{S5:_,5T,3t,5I,7H,9h,5B,7P,5d,5D,5S}
   1[H2T6d]1[]{S3:_,13T,13t,15I,17H,17h,13B,15P,13d,13D,9S}
   1[I]1[]{S-127:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,-127S}
   1[I]2[0]{:_,11T,15t,7I,9H,11h,9B,19P,9d,13D,11S}
   1[I6T]1[]{S5:_,11T,11t,13I,15H,15h,13B,15P,11d,11D,11S}
   1[P]1[B]{S5:_,5T,3t,5I,7H,9h,5B,7P,5d,5D,5S}
   1[S]0[D6d-2]{I5:_,7T,5t,3I,9H,11h,7B,9P,7d,7D,7S}
   1[S]2[P6d-2]{:_,7T,5t,3I,9H,11h,7B,9P,7d,7D,7S}
   1[S6d]2[PD2]{:_,5T,3t,3I,7H,9h,5B,7P,5d,5D,5S}
   1[S6d2I]2[P12]{:_,5T,5t,7I,9H,11h,7B,9P,7d,7D,5S}
   1[T]0[]{I11:_,7T,5t,7I,11H,11h,7B,9P,9d,7D,7S}
   1[T]1[I-2]{S-127:_,7T,7t,7I,11H,11h,7B,9P,7d,7D,-127S}
   1[T]2[1]{:_,7T,5t,7I,11H,11h,7B,9P,9d,7D,7S}
   2[B6d6DBD]21[]{:_,9T,7t,9I,11H,13h,9B,11P,9d,9D,9S}
   2[d6DD]11[]{S7:_,5T,3t,3I,7H,9h,5B,7P,5d,5D,5S}
   2[DB]22[1]{:_,5T,3t,5I,7H,9h,5B,7P,5d,5D,5S}
   2[H2T]11[]{S7:_,9T,9t,9I,13H,13h,9B,11P,7d,7D,1S}
   2[I6I]11[]{S1:_,5T,3t,7I,7H,7h,5B,7P,3d,3D,-1S}
   2[S6d]12[H6T]{:_,9T,7t,7I,11H,13h,9B,11P,9d,9D,5S}
   2[t]11[]{S-127:_,9T,9t,11I,13H,13h,9B,11P,9d,9D,-127S}
   2[t]12[]{:_,15T,13t,13I,17H,19h,15B,17P,15d,15D,11S}
   3[H2T6B]111[]{S13:_,11T,9t,11I,13H,15h,11B,13P,11d,11D,7S}
   7[H]1112112[1]{:_,5T,3t,5I,7H,9h,5B,7P,5d,5D,1S}
   8[H]11111112[H6T12]{:_,5T,3t,5I,7H,9h,5B,7P,5d,5D,1S}
   9[PDB]221112122[1T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  10[h]1111111112[1]{:_,3T,3t,5I,7H,7h,5B,7P,3d,3D,1S}
  11[H]11111111111[h4t14]{S25:_,5T,3t,5I,7H,9h,5B,7P,5d,5D,3S}
  11[h]11111111111[H6T14]{S25:_,3T,3t,5I,7H,7h,5B,7P,3d,3D,1S}
  11[PDD]21121112122[1T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  20[PDBSSSD]22112211111212121211[H6T10]{:_,9T,7t,7I,11H,13h,9B,11P,9d,9D,7S}
  20[PDBSSSDB]22112211111212121211[H6T18S]{:_,5T,3t,5I,7H,9h,5B,7P,5d,5D,5S}
  23[S6d6BDDBB]12112122121211121112111[H6T26S]{:_,9T,9t,5I,13H,15h,5B,7P,5d,5D,5S}
  28[B6d6DSDDSD]2221121121111112112111112121[S12]{:_,7T,5t,5I,9H,9h,7B,9P,7d,7D,7S}
  29[B6d6DSDBBS]21211121111111111111111112111[H6T38T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  29[PDDBD]21221112211112211111111111112[H6T18T10T]{:_,9T,7t,9I,13H,13h,13B,13P,13d,13D,13S}
  30[PDBS]221122111112121112111211111112[I14T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  31[B6d6DSDDDD]2221111121121121121111111112121[S12]{:_,7T,5t,5I,9H,9h,7B,9P,7d,7D,7S}
  31[PDBS]2211221111121211121112111111111[T16T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  32[S6d6BDSB]11212221121121112211111221121112[H6T]{:_,9T,7t,9I,13H,13h,13B,13P,13d,13D,13S}
  34[B6d6DSDDBS]2221221121121121111112112111112121[S12]{:_,7T,5t,5I,9H,11h,7B,9P,7d,7D,7S}
  34[PDBS]2211212112112211111212111211121111[H6T16T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  36[PDDDBSD]212212121211121112111111111221212212[H6T42]{:_,9T,9t,9I,13H,13h,7B,11P,9d,9D,7S}
  38[PDDDDDBS]22221121211211121111222211112111211121[H6T36T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  39[B6d6DSDDDDD]211111111211211211221121121111121111122[S22t28]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  40[B6d6DSDDS]2221121121111211222121111111112111111111[H6T34T-16]{:_,23T,23t,25I,27H,27h,25B,27P,25d,25D,23S}
  40[PDBSBSS]2211212221112111222221112121111122111111[T40T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  40[S6d6BDSB]1121222112112111221111122112111111111122[H6T18T]{:_,9T,7t,9I,13H,13h,13B,13P,13d,13D,13S}
  41[PDBSBSS]22112122211121112222211121211111121111112[H6T10T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  44[PDBDDSS]22112222112212112112112111112112111112121211[H6T10]{:_,9T,7t,7I,11H,13h,9B,11P,9d,9D,7S}
  46[S6d6BDSS]1122112112112112112112111112112111211112221211[H6T16]{:_,7T,5t,5I,9H,11h,7B,9P,7d,7D,7S}
  49[S6d6BDS]1122112112111112112112112111112112111211112221211[H6T8]{:S}
Search

Code: Select all

local g=golly()
local sd = require "StackChangeCost"

local levelFileName = "c:\\Golly\\Levels.txt"
local moveCondsFileName = "c:\\Golly\\QuarkCondBitSequences.txt"
local outputFileName = "c:\\Golly\\FixedBottomGliderLevelsToBitsResult.txt"
local log = io.open("c:\\Golly\\FixedBottomGliderLevelsToBitslog.txt","w")
local logLevel=2

local function writeLog(msg,level)
  if log and ((not level and logLevel<=0) or (level and level>=logLevel)) then
    log:write(msg.."\n")
  end
end

writeLog("StackCostTest easyChangeStackCost('SB','B6d6DSDDDSS')="..sd.easyChangeStackCost('SB','B6d6DSDDDSS'),-2)

local seqContainers = {}
seqContainers.e,seqContainers.t={},{}
translates, emissions = {},{}
translates.id, emissions.id = "t","e"

local function inDelimiters(name,leftDelimiter,rightDelimiter)
  --g.note("iD "..name.." "..leftDelimiter..","..rightDelimiter)
  return string.sub(name,string.find(name,'%'..leftDelimiter)+1,string.find(name,'%'..rightDelimiter)-1)
end

local function inttostring(num)
  return string.sub(num,1,string.find(num..".","%.")-1)
end

local function split(str,delim)
  local ret,l,p = {},1,nil
  str=str or ''
  while l <= 1+string.len(str) do
    p = string.find(str..delim,'%'..delim, l)
    ret[1+#ret],l = string.sub(str, l, p - 1), p+1
  end
  return ret
end

local function parseMove(moveConds)
  local preStack,postStack,conds,pos,move
  pos,conds=string.find(moveConds..'{','%{'),""
  conds=string.sub(moveConds,pos+1,string.find(moveConds..'}','%}')-1)
  conds=split(conds,':')
  conds[2]=split(conds[2],',')
  move=string.sub(moveConds,1,pos-1)
  pos=string.find(move,'%]')
  preStack=string.sub(move,2,pos-1)
  bits=string.sub(move,pos+1)
  pos=string.find(bits,'%[')
  postStack=string.sub(bits,pos+1,-2)
  bits=string.sub(bits,1,pos-1)
  glider,pos='',string.find(bits,'%(')
  if pos then
    glider=inDelimiters(bits,'(',')')
    bits=string.sub(bits,1,pos-1)..string.sub(bits,string.find(bits,'%)')+1)
  end
  return bits,move,conds,preStack,postStack,glider
end

emissions={}

local function insertEmissionTo(to,moveConds)
  if not emissions[to] then
    emissions[to]={}
  end
  emissions[to][#emissions[to]+1]=moveConds
end

local function insertEmission(moveConds)
  bits,move,conds,preStack,postStack,glider=parseMove(moveConds)
  if glider=="" then
    return
  end
  dist,phase=string.match(glider,'(%d*) (%d*)')
  d8=inttostring(dist%8)
  insertEmissionTo("d"..d8.."p0%1",moveConds)
  insertEmissionTo("d"..d8.."p"..inttostring(phase%2).."%2",moveConds)
  insertEmissionTo("d"..d8.."p"..inttostring(phase%8).."%8",moveConds) 
end

local function iniMoves()
  local h=io.open(moveCondsFileName,"r")
  local moveCondsLine=h:read()
  while moveCondsLine do
    insertEmission(string.sub(moveCondsLine,5))
    moveCondsLine=h:read()
  end
  h:close()
end

local levelStacks={} --{{postStack->{toalcost,previousPostStack,move}}}
local bottomymx 

local function extStack(pre,stack,post)
  writeLog("   extStack("..pre..","..stack..","..post..")",-1)
  if string.find('01',string.sub(stack,1,1)) then -- extrabit
    pre,stack=string.sub(stack,1,1)..pre,string.sub(stack,2)
  end
  stack=pre..stack
  if stack~="" and string.find('TtIHhBPdDS#',string.sub(stack,-1)) then
    return stack..post
  else
    local postPos=string.find(post,'[TtIHhBPdDS#]')
    if postPos then
      local postDist=string.sub(post,1,postPos-1)
      postDist=((postDist=="") and "8" or postDist)
      local start,dist=string.match('H'..stack,'(.*[TtIHhBPdDS#])(.*)')
      start=string.sub(start,2)
      writeLog("   extStack start, dist, postDist "..start..","..dist..","..postDist.."("..postPos..")")
      if start=="" then 
        return dist..string.sub(post,postPos) --dist is actually extrabit (or empty)
      else
        dist=(dist=="") and 0 or dist
        if dist+postDist==8 then
          return start..string.sub(post,postPos)
        end
        return start..inttostring(dist+postDist)..string.sub(post,postPos)
      end
    else
      return stack
    end
  end
end

local function search() 
  local i = io.open(levelFileName,"r")
  local inputLine=i:read()
  if inputLine then writeLog("inputLine="..inputLine) else writeLog("inputLine=nil") end
  startTemplateTop = inputLine
  local startPreStack=""
  for i=bottomymx,startTemplateTop,8 do
    startPreStack=startPreStack.."#"
  end
  writeLog("startPreStack "..startPreStack.."("..startTemplateTop..","..bottomymx..",8)",2)
  local level=1
  levelStacks[level]={}
  levelStacks[level][startPreStack]={0,"","",""}
  local prevLevel,nrSwaps={},1
  prevLevel[1]=startPreStack
  inputLine=""
  while inputLine do
    while inputLine~="" do
      local targetymx=inDelimiters(inputLine,'[',']') - bottomymx
      local emi = emissions["d"..inttostring(targetymx%8).."p"..string.sub(inputLine,3,5)]
      inputLine=string.sub(inputLine,1+string.find(inputLine,'%]'))
      for j=1,#emi do
        writeLog("trying emission "..emi[j].." on level "..level,1)
        local bits,move,conds,preStack,postStack,glider=parseMove(emi[j])
        local dist,phase = string.match(glider,'(%d*) (%d*)') --we know mod8 everything matches
        if 0+dist>targetymx then
          writeLog(" emission would overshot with this bottom (dist"..dist..">"..targetymx.."targetymx)")
        else
          local extPostStack,extPreStack=postStack,preStack
          for k=dist,targetymx,8 do
            extPostStack,extPreStack=extStack("",extPostStack,"#"),extPreStack.."#"
          end
          local postStackX=string.gsub(extPostStack,'#','') -- may be converted by adding+8 to the end
          writeLog("postStack trick "..postStack..">"..extPostStack..">"..postStackX)
          if extPostStack=="" then
            writeLog(' emission would destroy the stack')
          else
            condsToTest={}
            if dist==targetymx then
              condsToTest["_"]=""
            else
              condsToTest['D']=8
              condsToTest['B']=8
              condsToTest['S']=8
            end
            local OK,KO={},{}
            for i=1,#conds[2] do
              local hId=string.sub(conds[2][i],-1)
              writeLog("  condition "..conds[2][i]..","..hId,-1)
              local dist = condsToTest[hId]
              if dist then
                if dist=="" then
                  OK[#OK+1]=hId
                  writeLog(" condition "..hId..","..dist.." OK")
                else
                  local cdist=string.sub(conds[2][i],1,-2)
                  cdist=(cdist=="" and "8") or cdist
                  dist,cdist=dist+0,cdist+0
                  if cdist%2==1 then
                    if cdist<dist then
                      OK[#OK+1]=hId
                      writeLog(" condition "..hId..","..dist.."("..cdist..")".." OK")
                    else
                      KO[#KO+1]=hId
                      writeLog(" condition "..hId..","..dist.."("..cdist..")".." KO")
                    end
                  else
                    if cdist==dist then
                      OK[#OK+1]=hId
                      writeLog(" condition "..hId..","..dist.."("..cdist..")".." OK")
                    else
                      KO[#KO+1]=hId
                      writeLog(" condition "..hId..","..dist.."("..cdist..")".." KO")
                    end
                  end
                end
                condsToTest[hId]=nil
              end
            end
            for hId,dist in pairs(condsToTest) do
              KO[#KO+1] = hId
              writeLog(" condition "..hId..","..dist.." KO (missed)")
            end
            if #OK==0 then
              writeLog(' all suffix tests failed')
            else
              for i=1,#OK do
                if #KO>0 then -- template needs further specification
                  writeLog("Changing extPreStack "..extPreStack.." to "..preStack..OK[i]..string.sub(extPreStack,string.len(preStack)+2))
                  extPreStack=preStack..OK[i]..string.sub(extPreStack,string.len(preStack)+2)
                  writeLog("Changing extPostStack "..extPostStack.." to "..postStackX..OK[i]..string.sub(extPostStack,string.len(postStackX)+2))
                  extPostStack=postStackX..OK[i]..string.sub(extPostStack,string.len(postStackX)+2)
                elseif i>1 then
                  writeLog("  all template suffixes work well so template remain")
                  break
                end
                local preMoveCostToBeat
                if levelStacks[level][extPostStack] then
                  preMoveCostToBeat = levelStacks[level][extPostStack][1]-string.len(bits)
                  writeLog("preMoveCostToBeat="..preMoveCostToBeat.."(levelStacks[level][extPostStack("..extPostStack..")][1]-string.len(bits))="..levelStacks[level][extPostStack][1].."-"..string.len(bits))
                end
                local s=""
                for j=1,nrSwaps do s=s..","..prevLevel[j] end
                writeLog("PrevLevelStart: "..string.sub(s,2),1)
                for j=1,#prevLevel do
                  prevPostStack= prevLevel[j]
                  info=levelStacks[level-1][prevPostStack]
                  writeLog("Checking connection from prevPostStack "..prevPostStack.." to "..extPreStack)
                  local fail
                  if preMoveCostToBeat then
                    if preMoveCostToBeat<=info[1] then
                      fail=true
                      writeLog("prevPostStack alone too expensive "..preMoveCostToBeat.."<="..info[1])
                    else
                      local est = sd.easyChangeStackLowerBound(prevPostStack,extPreStack) or 0
                      if preMoveCostToBeat<=info[1]+est then
                        fail=true
                        writeLog("prevPostStack + costLowerBound too expensive "..preMoveCostToBeat.."<="..info[1].."+"..est)
                      end
                    end
                  end
                  if not fail then
                    local costResult=sd.changeStackCosts(prevPostStack,extPreStack)
                    preMoveCost = info[1]+costResult[2]
                    if preMoveCostToBeat and preMoveCostToBeat<=preMoveCost then
                      fail=true
                      writeLog("prevPostStack + cost too expensive "..preMoveCostToBeat.."<="..preMoveCost.."="..info[1].."+"..costResult[2])
                    end
                    if not fail then
                      preMoveCostToBeat=preMoveCost
                      writeLog("insert or update on level "..level.."["..extPostStack.."]preMoveCostToBeat="..preMoveCostToBeat.."="..(preMoveCost+string.len(bits)).."-"..string.len(bits)..
                         "("..prevPostStack.."("..costResult[2]..")["..costResult[1].."]"..costResult[3]..".."..move..")",2)
                      levelStacks[level][extPostStack]={preMoveCost+string.len(bits),prevPostStack,move,"["..costResult[1].."]"..costResult[3].."..(+"..costResult[2]..")["..extPreStack.."]"}
                      local k=j
                      if j>nrSwaps then
                        nrSwaps=1+nrSwaps
                        prevLevel[j]=prevLevel[nrSwaps]
                        k=nrSwaps
                      end
                      while (k>1) do
                        prevLevel[k]=prevLevel[k-1]
                        k=k-1
                      end
                      prevLevel[1]=prevPostStack
                    end
                  end
                end
              end
            end
          end
        end      
      end
    end
    inputLine=i:read()
    if inputLine then writeLog("inputLine="..inputLine) else writeLog("inputLine=nil") end
    prevLevel,nrSwaps={},1
    for prevPostStack,info in pairs(levelStacks[level]) do --we prefere best first and try to maintain best candidates near 1
      prevLevel[1+#prevLevel]=prevPostStack
      if levelStacks[level][prevLevel[nrSwaps]][1] > info[1] then 
        nrSwaps=1+nrSwaps
        prevLevel[#prevLevel]=prevLevel[nrSwaps]
        prevLevel[nrSwaps]=prevPostStack
      end
    end
    for i=1,nrSwaps//2 do
      prevLevel[nrSwaps+1-i],prevLevel[i]=prevLevel[i],prevLevel[nrSwaps+1-i]
    end
    level=level+1
    levelStacks[level]={}
  end
  i:close()
  local extPreStack,preMoveCostToBeat="S"
  writeLog("finalizing",5)
  for j=1,#prevLevel do
    prevPostStack= prevLevel[j]
    info=levelStacks[level-1][prevPostStack]
    writeLog("Checking connection from prevPostStack "..prevPostStack,2)
    local fail
    if preMoveCostToBeat then
      if info[1]>preMoveCostToBeat then
        fail=true
        writeLog("prevPostStack alone too expensive",2)
      else
        local est = sd.easyChangeStackLowerBound(prevPostStack,extPreStack)
        if info[1]+est>preMoveCostToBeat then
          fail=true
          writeLog("prevPostStack + costLowerBound too expensive",2)
        end
      end
    end
    if not fail then
      local costResult=sd.changeStackCosts(prevPostStack,extPreStack)
      preMoveCost = info[1]+costResult[2]
      if preMoveCostToBeat and preMoveCost>preMoveCostToBeat then
        fail=true
        writeLog("prevPostStack + cost too expensive",2)
      end
      if not fail then
        preMoveCostToBeat=preMoveCost
        writeLog("insert or update on final level "..level.."preMoveCostToBeat="..preMoveCostToBeat,10)
        levelStacks[level][extPreStack]={preMoveCost,prevPostStack,"","["..costResult[1].."]"..costResult[3].."..(+"..costResult[2]..")"} 
      end
    end
  end
  return level
end

local output=io.open(outputFileName,"w")
--{{postStack->{toalcost,previousPostStack,move,prepareInfo}}}
local function outputResult(level)
  output:write("bottomymx:"..bottomymx.." totalCost="..levelStacks[level]["S"][1].."\n")
  local winners={}
  winners[level+1]="S"
  for l=level,1,-1 do
    writeLog(winners[l+1],10)
    writeLog(levelStacks[l][winners[l+1]][1],10)
    writeLog(levelStacks[l][winners[l+1]][3],10)
    writeLog(levelStacks[l][winners[l+1]][4],10)
    winners[l]=levelStacks[l][winners[l+1]][2]
  end
  for l=1,level do
    output:write(
           levelStacks[l][winners[l+1]][4]
           ..levelStacks[l][winners[l+1]][3]
           .."("
           ..levelStacks[l][winners[l+1]][1]
           ..")"
           .."["..winners[l+1].."]"
           .."\n"
                )
  end
end

iniMoves()
--sd.changeStackCosts("1d6D#","T6SPDS")
local startTime=g.millisecs()
for i=2296,2352,2 do
  bottomymx=i;outputResult(search());
end
local endTime=g.millisecs()
writeLog("Total time "..(endTime-startTime).."ms",10)
Levels.txt

Code: Select all

2360
(g0%1)[2417]
(g0%1)[2420](g0%1)[2415]
(g0%1)[2413]
(g0%1)[2414]
(g0%1)[2411]
(g0%1)[2399](g0%1)[2398](g0%1)[2400](g0%1)[2401](g0%1)[2402](g0%1)[2403]
(g0%1)[2400]
(g0%1)[2390](g0%1)[2391](g0%1)[2394]
(g0%2)[2397]
(g0%2)[2404]
(g0%1)[2405](g0%1)[2400]
(g0%1)[2403]
(g0%1)[2401]
(g0%1)[2393]
(g0%1)[2396]
(g0%1)[2398](g0%1)[2393]
(g1%2)[2393]
(g1%2)[2397]
(g0%1)[2407]
(g1%2)[2410]
(g1%2)[2402]
(g0%2)[2414]
(g0%2)[2402]
(g1%2)[2390]
Result

Code: Select all

bottomymx:2296 totalCost=1894
(0)[#########]
[#########]..(+76)[PDBSBB##############][PDBSBB]2211221111121211222112111222(17 7)111111[](110)[##############]
[##############]..(+42)[SPDBSS#############][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](196)[T18T18T6S#############]
[T18T18T6SDD###########]2111..(+15)[S6d6BDD###########][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](263)[DDB###########]
[DDBD##########]112111111..(+52)[T6SPDSS##########][T6SPDS]2(38 0)111112111211[T-2](328)[T6S##########]
[T6S##########]11..(+51)[S6d6BDBDD############][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](422)[1B############]
[1B############]..(+47)[B6d6DSSDS#############][B6d6DSSDS]22(10 3)[](471)[#############]
[BDS##########]..(+42)[B6d6DBDDBDS##########][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](575)[S##########]
[S##########]..(+53)[B6d6DSSDS############][B6d6DSSDS]22(10 3)[](630)[############]
[############]..(+43)[B6d6DSDDSB##########][B6d6DSDDSB]2221121121111121121121122(29 6)112222[](704)[##########]
[##########]..(+43)[PDDDDD###########][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](811)[T18T6SD###########]
[T18T6SDD##########]21..(+13)[S6d6BDD##########][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](876)[DDB##########]
[DDB##########]11212..(+48)[S6d6BDBDD###########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](967)[1B###########]
[1B###########]..(+43)[PDBSBB############][PDBSBB]2211221111121211222112111222(17 7)111111[](1044)[############]
[############]..(+40)[PDBSBB###########][PDBSBB]2211221111121211222112111222(17 7)111111[](1118)[###########]
[###########]..(+31)[PDDDDD##########][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](1213)[T18T6SD##########]
[T18T6SDSS########]21..(+45)[T6SPDSS########][T6SPDS]2(38 0)111112111211[T-2](1271)[T6S########]
[T6S########]11..(+57)[PDBSBB###########][PDBSBB]2211221111121211222112111222(17 7)111111[](1362)[###########]
[###########]..(+20)[S6d6BDD#########][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](1434)[DDB#########]
[DDB#########]11212..(+62)[SPDBSS############][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](1540)[T18T18T6S############]
[T18T18T6S############]2111..(+57)[B6d6DSSDS##############][B6d6DSSDS]22(10 3)[](1599)[##############]
[##############]..(+44)[B6d6DSSDS#############][B6d6DSSDS]22(10 3)[](1645)[#############]
[DSS##########]..(+52)[T6SPDSS##########][T6SPDS]2(38 0)111112111211[T-2](1710)[T6S##########]
[T6S##########]11..(+69)[B6d6DDSSDDBS###########][B6d6DDSSDDB]22(18 4)2112112111111111111111112222121222[](1815)[S###########]
[SDDDD#######]..(+5)[S6d6BDDD#######][S6d6BDDD]111112212211211211211211111212(46 3)21121121121121122111112111222[](1879)[#######]
[DDDDDDB]1121212121212..(+15)(1894)[S]
bottomymx:2298 totalCost=2050
(0)[########]
[########]..(+78)[SPDBSS#############][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](122)[T18T18T6S#############]
[T18T18T6S#############]2111..(+57)[B6d6DSSDS###############][B6d6DSSDS]22(10 3)[](181)[###############]
[BDD############]..(+28)[S6d6BDBDD############][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](252)[1B############]
[1B############]..(+28)[PDDDDD############][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](344)[T18T6SD############]
[T18T6SD############]21..(+39)[PDBSBB#############][PDBSBB]2211221111121211222112111222(17 7)111111[](417)[#############]
[DBDD#########]..(+8)[S6d6BDD#########][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](477)[DDB#########]
[DDBD########]112111111..(+52)[T6SPDSS########][T6SPDS]2(38 0)111112111211[T-2](542)[T6S########]
[T6S########]11..(+25)[S6d6BDD########][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](619)[DDB########]
[DDB########]11212..(+45)[PDDDDDDD########][PDDDDDDD]221121122211211212222111122(43 6)22111111112222[1t40](705)[1t48########]
[1t48########]1..(+89)[B6d6DDSSDDBS###########][B6d6DDSSDDB]22(18 4)2112112111111111111111112222121222[](830)[S###########]
[SDSS########]..(+43)[T6SPDSS########][T6SPDS]2(38 0)111112111211[T-2](886)[T6S########]
[T6S########]11..(+63)[PDBSBB############][PDBSBB]2211221111121211222112111222(17 7)111111[](983)[############]
[############]..(+42)[SPDBSS###########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](1069)[T18T18T6S###########]
[T18T18T6SB##########]2111..(+37)[SPDBSS##########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](1150)[T18T18T6S##########]
[T18T18T6S##########]2111..(+57)[B6d6DSSDS############][B6d6DSSDS]22(10 3)[](1209)[############]
[############]..(+36)[SPDBSS##########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](1289)[T18T18T6S##########]
[T18T18T6SD#########]2111..(+32)[PDDDDDD#########][PDDDDD]21111112212111121121121121121121221111211121112112111221121211(23 1)2[](1384)[D#########]
[D#########]..(+46)[S6d6BDBDD##########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1473)[1B##########]
[1B##########]..(+42)[PDDDDBD###########][PDDDDBD]211111211211221112112112112111112111212112222221211(29 1)[S6d6DS](1566)[S6d6DS###########]
[S6d6DS###########]2..(+33)[B6d6DBDDBDS###########][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](1661)[S###########]
[S###########]..(+45)[B6d6DBDDBDS##########][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](1768)[S##########]
[S##########]..(+40)[PDDDDD############][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](1872)[T18T6SD############]
[T18T6SDDDD#########]21..(+25)[B6d6DSDDDDD#########][B6d6DSDDDDD]21112111111221112211121121121121121121121121111211112112(40 4)2212[](1957)[#########]
[DDD######]..(+35)[S6d6BDSDDD######][S6d6BDSDDD]11221111121121121121111112112122(52 5)11221[H6T14](2029)[H6T22######]
[H6T22DDDDDB]1112112111212121212..(+21)(2050)[S]
bottomymx:2300 totalCost=1926
(0)[########]
[########]..(+50)[S6d6BDD###########][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](102)[DDB###########]
[DDB###########]11212..(+48)[S6d6BDBDD############][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](193)[1B############]
[1B############]..(+43)[PDBSBB#############][PDBSBB]2211221111121211222112111222(17 7)111111[](270)[#############]
[#############]..(+56)[B6d6DSSDS##############][B6d6DSSDS]22(10 3)[](328)[##############]
[##############]..(+36)[SPDBSS############][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](408)[T18T18T6S############]
[T18T18T6S############]2111..(+45)[B6d6DSSDS############][B6d6DSSDS]22(10 3)[](455)[############]
[############]..(+25)[PDDDDD##########][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](544)[T18T6SD##########]
[T18T6SD##########]21..(+43)[B6d6DSSDS###########][B6d6DSSDS]22(10 3)[](589)[###########]
[DSS########]..(+38)[B6d6DSDDSS########][B6d6DSDDS]222112111211111111111111212111111(33 0)2[1T-2](661)[1T6S########]
[1T6S########]1..(+40)[SPBDD##########][SPBDD]21222112112112111112112112112112112112112111222211211211211112111122211211211211211(32 4)[SDDS](784)[SDDS##########]
[SDDSS#########]..(+20)[B6d6DSDDSS#########][B6d6DSDDS]222112111211111111111111212111111(33 0)2[1T-2](838)[1T6S#########]
[1T6S#########]1..(+52)[SPDBSS###########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](934)[T18T18T6S###########]
[T18T18T6SDD#########]2111..(+15)[S6d6BDD#########][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](1001)[DDB#########]
[DDB#########]..(+35)[B6d6DSDDSB#########][B6d6DSDDSB]2221121121111121121121122(29 6)112222[](1067)[#########]
[#########]..(+60)[B6d6DBDDBDS#########][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](1189)[S#########]
[S#########]..(+59)[B6d6DSSDS############][B6d6DSSDS]22(10 3)[](1250)[############]
[DDDD########]..(+8)[S6d6BDD########][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](1310)[DDB########]
[DDB########]11212..(+60)[PDBSBB###########][PDBSBB]2211221111121211222112111222(17 7)111111[](1404)[###########]
[###########]..(+46)[S6d6BDBDD###########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1493)[1B###########]
[1BDD#########]..(+17)[S6d6BDDD#########][S6d6BDDD]111112212211211211211211111212(46 3)21121121121121122111112111222[](1569)[#########]
[#########]..(+32)[S6d6BDDD########][S6d6BDDD]111112212211211211211211111212(46 3)21121121121121122111112111222[](1660)[########]
[########]..(+94)[B6d6DDSSDDBS############][B6d6DDSSDDB]22(18 4)2112112111111111111111112222121222[](1790)[S############]
[SDDSS########]1..(+37)[T6SPDSS########][T6SPDS]2(38 0)111112111211[T-2](1840)[T6S########]
[T6S########]11..(+61)[B6d6DSSDS###########][B6d6DSSDS]22(10 3)[](1903)[###########]
[DDDDDDDDDDD]112121212121212121212..(+23)(1926)[S]
bottomymx:2302 totalCost=2030
(0)[########]
[########]..(+70)[S6d6BDBDD############][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](113)[1B############]
[1BBS##########]..(+49)[T6SPDSS##########][T6SPDS]2(38 0)111112111211[T-2](175)[T6S##########]
[T6S##########]11..(+53)[SPDBSS############][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](272)[T18T18T6S############]
[T18T18T6SD###########]2111..(+25)[SPBDD###########][SPBDD]21222112112112111112112112112112112112112111222211211211211112111122211211211211211(32 4)[SDDS](380)[SDDS###########]
[SDDS###########]111111..(+34)[PDBSPSSS###########][PDBSPSS]22211221112111112(21 2)2121112111111121111122[1T18T-2](453)[1T18T6S###########]
[1T18T6S###########]111..(+50)[B6d6DSSDS############][B6d6DSSDS]22(10 3)[](505)[############]
[############]..(+50)[B6d6DSSDS############][B6d6DSSDS]22(10 3)[](557)[############]
[############]..(+34)[PDBSBB##########][PDBSBB]2211221111121211222112111222(17 7)111111[](625)[##########]
[##########]..(+48)[SPDBSS##########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](717)[T18T18T6S##########]
[T18T18T6SSS########]2111..(+53)[T6SPDSS########][T6SPDS]2(38 0)111112111211[T-2](783)[T6S########]
[T6S########]11..(+67)[B6d6DSSDS############][B6d6DSSDS]22(10 3)[](852)[############]
[BDD#########]..(+14)[S6d6BDD#########][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](918)[DDB#########]
[DDB#########]11212..(+48)[S6d6BDBDD##########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1009)[1B##########]
[1BD#########]..(+31)[S6d6BDBDD#########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1083)[1B#########]
[1BSS#######]..(+49)[T6SPDSS#######][T6SPDS]2(38 0)111112111211[T-2](1145)[T6S#######]
[T6S#######]11..(+51)[S6d6BDBDD#########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1239)[1B#########]
[1B#########]..(+37)[S6d6BDBDD#########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1319)[1B#########]
[1B#########]..(+37)[PDDDDDS#########][PDDDDD]21111112212111121121121121121121221111211121112112111221121211(23 1)2[](1419)[S#########]
[S#########]..(+55)[PDBSBB############][PDBSBB]2211221111121211222112111222(17 7)111111[](1508)[############]
[SDDD########]..(+29)[S6d6BDSDDD########][S6d6BDSDDD]11221111121121121121111112112122(52 5)11221[H6T14](1574)[H6T22########]
[H6T22D#######]11121121..(+55)[S6d6BDSDDD#######][S6d6BDSDDD]11221111121121121121111112112122(52 5)11221[H6T14](1666)[H6T22#######]
[H6T22#######]11121121..(+82)[B6d6DSDDDDD##########][B6d6DSDDDDD]21112111111221112211121121121121121121121121111211112112(40 4)2212[](1808)[##########]
[##########]..(+37)[PDDDDD##########][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](1909)[T18T6SD##########]
[T18T6SDDS########]21..(+35)[B6d6DBDDBDS########][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](2006)[S########]
[SDDDDDDDB]2112121212121212121212..(+24)(2030)[S]
bottomymx:2304 totalCost=1892
(0)[########]
[########]..(+76)[PDBSBB#############][PDBSBB]2211221111121211222112111222(17 7)111111[](110)[#############]
[#############]..(+42)[SPDBSS############][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](196)[T18T18T6S############]
[T18T18T6SDD##########]2111..(+15)[S6d6BDD##########][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](263)[DDB##########]
[DDBD#########]112111111..(+52)[T6SPDSS#########][T6SPDS]2(38 0)111112111211[T-2](328)[T6S#########]
[T6S#########]11..(+51)[S6d6BDBDD###########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](422)[1B###########]
[1B###########]..(+47)[B6d6DSSDS############][B6d6DSSDS]22(10 3)[](471)[############]
[BDS#########]..(+42)[B6d6DBDDBDS#########][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](575)[S#########]
[S#########]..(+53)[B6d6DSSDS###########][B6d6DSSDS]22(10 3)[](630)[###########]
[###########]..(+43)[B6d6DSDDSB#########][B6d6DSDDSB]2221121121111121121121122(29 6)112222[](704)[#########]
[#########]..(+43)[PDDDDD##########][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](811)[T18T6SD##########]
[T18T6SDD#########]21..(+13)[S6d6BDD#########][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](876)[DDB#########]
[DDB#########]11212..(+48)[S6d6BDBDD##########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](967)[1B##########]
[1B##########]..(+43)[PDBSBB###########][PDBSBB]2211221111121211222112111222(17 7)111111[](1044)[###########]
[###########]..(+40)[PDBSBB##########][PDBSBB]2211221111121211222112111222(17 7)111111[](1118)[##########]
[##########]..(+31)[PDDDDD#########][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](1213)[T18T6SD#########]
[T18T6SDSS#######]21..(+45)[T6SPDSS#######][T6SPDS]2(38 0)111112111211[T-2](1271)[T6S#######]
[T6S#######]11..(+57)[PDBSBB##########][PDBSBB]2211221111121211222112111222(17 7)111111[](1362)[##########]
[##########]..(+20)[S6d6BDD########][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](1434)[DDB########]
[DDB########]11212..(+92)[S6d6BDBDDDDB#############][S6d6BDBDDDDB]11212121112112222111122(7 2)11112[T6](1554)[T14#############]
[T14#############]121112..(+43)[B6d6DSSDS#############][B6d6DSSDS]22(10 3)[](1599)[#############]
[#############]..(+44)[B6d6DSSDS############][B6d6DSSDS]22(10 3)[](1645)[############]
[DSS#########]..(+52)[T6SPDSS#########][T6SPDS]2(38 0)111112111211[T-2](1710)[T6S#########]
[T6S#########]11..(+69)[B6d6DDSSDDBS##########][B6d6DDSSDDB]22(18 4)2112112111111111111111112222121222[](1815)[S##########]
[SDDDD######]..(+5)[S6d6BDDD######][S6d6BDDD]111112212211211211211211111212(46 3)21121121121121122111112111222[](1879)[######]
[DDDDDD]11212121212..(+13)(1892)[S]
bottomymx:2306 totalCost=2048
(0)[#######]
[#######]..(+78)[SPDBSS############][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](122)[T18T18T6S############]
[T18T18T6S############]2111..(+57)[B6d6DSSDS##############][B6d6DSSDS]22(10 3)[](181)[##############]
[BDD###########]..(+28)[S6d6BDBDD###########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](252)[1B###########]
[1B###########]..(+28)[PDDDDD###########][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](344)[T18T6SD###########]
[T18T6SD###########]21..(+39)[PDBSBB############][PDBSBB]2211221111121211222112111222(17 7)111111[](417)[############]
[DDDD########]..(+8)[S6d6BDD########][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](477)[DDB########]
[DDBD#######]112111111..(+52)[T6SPDSS#######][T6SPDS]2(38 0)111112111211[T-2](542)[T6S#######]
[T6S#######]11..(+25)[S6d6BDD#######][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](619)[DDB#######]
[DDB#######]11212..(+45)[PDDDDDDD#######][PDDDDDDD]221121122211211212222111122(43 6)22111111112222[1t40](705)[1t48#######]
[1t48#######]1..(+89)[B6d6DDSSDDBS##########][B6d6DDSSDDB]22(18 4)2112112111111111111111112222121222[](830)[S##########]
[SDSS#######]..(+43)[T6SPDSS#######][T6SPDS]2(38 0)111112111211[T-2](886)[T6S#######]
[T6S#######]11..(+63)[PDBSBB###########][PDBSBB]2211221111121211222112111222(17 7)111111[](983)[###########]
[###########]..(+42)[SPDBSS##########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](1069)[T18T18T6S##########]
[T18T18T6SS#########]2111..(+37)[SPDBSS#########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](1150)[T18T18T6S#########]
[T18T18T6S#########]2111..(+57)[B6d6DSSDS###########][B6d6DSSDS]22(10 3)[](1209)[###########]
[###########]..(+36)[SPDBSS#########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](1289)[T18T18T6S#########]
[T18T18T6SD########]2111..(+32)[PDDDDDD########][PDDDDD]21111112212111121121121121121121221111211121112112111221121211(23 1)2[](1384)[D########]
[D########]..(+46)[S6d6BDBDD#########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1473)[1B#########]
[1B#########]..(+42)[PDDDDBD##########][PDDDDBD]211111211211221112112112112111112111212112222221211(29 1)[S6d6DS](1566)[S6d6DS##########]
[S6d6DS##########]2..(+33)[B6d6DBDDBDS##########][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](1661)[S##########]
[S##########]..(+45)[B6d6DBDDBDS#########][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](1768)[S#########]
[S#########]..(+40)[PDDDDD###########][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](1872)[T18T6SD###########]
[T18T6SDDDD########]21..(+25)[B6d6DSDDDDD########][B6d6DSDDDDD]21112111111221112211121121121121121121121121111211112112(40 4)2212[](1957)[########]
[DDD#####]..(+35)[S6d6BDSDDD#####][S6d6BDSDDD]11221111121121121121111112112122(52 5)11221[H6T14](2029)[H6T22#####]
[H6T22DDDDB]11121121112121212..(+19)(2048)[S]
bottomymx:2308 totalCost=1924
(0)[#######]
[#######]..(+50)[S6d6BDD##########][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](102)[DDB##########]
[DDB##########]11212..(+48)[S6d6BDBDD###########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](193)[1B###########]
[1B###########]..(+43)[PDBSBB############][PDBSBB]2211221111121211222112111222(17 7)111111[](270)[############]
[############]..(+56)[B6d6DSSDS#############][B6d6DSSDS]22(10 3)[](328)[#############]
[#############]..(+36)[SPDBSS###########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](408)[T18T18T6S###########]
[T18T18T6S###########]2111..(+45)[B6d6DSSDS###########][B6d6DSSDS]22(10 3)[](455)[###########]
[###########]..(+25)[PDDDDD#########][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](544)[T18T6SD#########]
[T18T6SD#########]21..(+43)[B6d6DSSDS##########][B6d6DSSDS]22(10 3)[](589)[##########]
[DSS#######]..(+38)[B6d6DSDDSS#######][B6d6DSDDS]222112111211111111111111212111111(33 0)2[1T-2](661)[1T6S#######]
[1T6S#######]1..(+40)[SPBDD#########][SPBDD]21222112112112111112112112112112112112112111222211211211211112111122211211211211211(32 4)[SDDS](784)[SDDS#########]
[SDDSS########]..(+20)[B6d6DSDDSS########][B6d6DSDDS]222112111211111111111111212111111(33 0)2[1T-2](838)[1T6S########]
[1T6S########]1..(+52)[SPDBSS##########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](934)[T18T18T6S##########]
[T18T18T6SDD########]2111..(+15)[S6d6BDD########][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](1001)[DDB########]
[DDB########]..(+35)[B6d6DSDDSB########][B6d6DSDDSB]2221121121111121121121122(29 6)112222[](1067)[########]
[########]..(+60)[B6d6DBDDBDS########][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](1189)[S########]
[S########]..(+59)[B6d6DSSDS###########][B6d6DSSDS]22(10 3)[](1250)[###########]
[DBDD#######]..(+8)[S6d6BDD#######][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](1310)[DDB#######]
[DDB#######]11212..(+60)[PDBSBB##########][PDBSBB]2211221111121211222112111222(17 7)111111[](1404)[##########]
[##########]..(+46)[S6d6BDBDD##########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1493)[1B##########]
[1BDD########]..(+17)[S6d6BDDD########][S6d6BDDD]111112212211211211211211111212(46 3)21121121121121122111112111222[](1569)[########]
[########]..(+32)[S6d6BDDD#######][S6d6BDDD]111112212211211211211211111212(46 3)21121121121121122111112111222[](1660)[#######]
[#######]..(+94)[B6d6DDSSDDBS###########][B6d6DDSSDDB]22(18 4)2112112111111111111111112222121222[](1790)[S###########]
[SDDSS#######]1..(+37)[T6SPDSS#######][T6SPDS]2(38 0)111112111211[T-2](1840)[T6S#######]
[T6S#######]11..(+61)[B6d6DSSDS##########][B6d6DSSDS]22(10 3)[](1903)[##########]
[DDDDDDDDDB]1121212121212121212..(+21)(1924)[S]
bottomymx:2310 totalCost=2028
(0)[#######]
[#######]..(+70)[S6d6BDBDD###########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](113)[1B###########]
[1BBS#########]..(+49)[T6SPDSS#########][T6SPDS]2(38 0)111112111211[T-2](175)[T6S#########]
[T6S#########]11..(+53)[SPDBSS###########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](272)[T18T18T6S###########]
[T18T18T6SD##########]2111..(+25)[SPBDD##########][SPBDD]21222112112112111112112112112112112112112111222211211211211112111122211211211211211(32 4)[SDDS](380)[SDDS##########]
[SDDS##########]111111..(+34)[PDBSPSSS##########][PDBSPSS]22211221112111112(21 2)2121112111111121111122[1T18T-2](453)[1T18T6S##########]
[1T18T6S##########]111..(+50)[B6d6DSSDS###########][B6d6DSSDS]22(10 3)[](505)[###########]
[###########]..(+50)[B6d6DSSDS###########][B6d6DSSDS]22(10 3)[](557)[###########]
[###########]..(+34)[PDBSBB#########][PDBSBB]2211221111121211222112111222(17 7)111111[](625)[#########]
[#########]..(+48)[SPDBSS#########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](717)[T18T18T6S#########]
[T18T18T6SDS#######]2111..(+53)[T6SPDSS#######][T6SPDS]2(38 0)111112111211[T-2](783)[T6S#######]
[T6S#######]11..(+67)[B6d6DSSDS###########][B6d6DSSDS]22(10 3)[](852)[###########]
[BDD########]..(+14)[S6d6BDD########][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](918)[DDB########]
[DDB########]11212..(+48)[S6d6BDBDD#########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1009)[1B#########]
[1BD########]..(+31)[S6d6BDBDD########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1083)[1B########]
[1BBS######]..(+49)[T6SPDSS######][T6SPDS]2(38 0)111112111211[T-2](1145)[T6S######]
[T6S######]11..(+51)[S6d6BDBDD########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1239)[1B########]
[1B########]..(+37)[S6d6BDBDD########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1319)[1B########]
[1B########]..(+34)[PDDDDDD########][PDDDDD]21111112212111121121121121121121221111211121112112111221121211(23 1)2[](1416)[D########]
[D########]..(+58)[PDBSBB###########][PDBSBB]2211221111121211222112111222(17 7)111111[](1508)[###########]
[SDDD#######]..(+29)[S6d6BDSDDD#######][S6d6BDSDDD]11221111121121121121111112112122(52 5)11221[H6T14](1574)[H6T22#######]
[H6T22D######]11121121..(+55)[S6d6BDSDDD######][S6d6BDSDDD]11221111121121121121111112112122(52 5)11221[H6T14](1666)[H6T22######]
[H6T22######]11121121..(+82)[B6d6DSDDDDD#########][B6d6DSDDDDD]21112111111221112211121121121121121121121121111211112112(40 4)2212[](1808)[#########]
[#########]..(+37)[PDDDDD#########][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](1909)[T18T6SD#########]
[T18T6SDDS#######]21..(+35)[B6d6DBDDBDS#######][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](2006)[S#######]
[SDDDDDDB]21121212121212121212..(+22)(2028)[S]
bottomymx:2312 totalCost=1890
(0)[#######]
[#######]..(+76)[PDBSBB############][PDBSBB]2211221111121211222112111222(17 7)111111[](110)[############]
[############]..(+42)[SPDBSS###########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](196)[T18T18T6S###########]
[T18T18T6SDD#########]2111..(+15)[S6d6BDD#########][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](263)[DDB#########]
[DDBD########]112111111..(+52)[T6SPDSS########][T6SPDS]2(38 0)111112111211[T-2](328)[T6S########]
[T6S########]11..(+51)[S6d6BDBDD##########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](422)[1B##########]
[1B##########]..(+47)[B6d6DSSDS###########][B6d6DSSDS]22(10 3)[](471)[###########]
[BDS########]..(+42)[B6d6DBDDBDS########][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](575)[S########]
[S########]..(+53)[B6d6DSSDS##########][B6d6DSSDS]22(10 3)[](630)[##########]
[##########]..(+43)[B6d6DSDDSB########][B6d6DSDDSB]2221121121111121121121122(29 6)112222[](704)[########]
[########]..(+43)[PDDDDD#########][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](811)[T18T6SD#########]
[T18T6SDD########]21..(+13)[S6d6BDD########][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](876)[DDB########]
[DDB########]11212..(+48)[S6d6BDBDD#########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](967)[1B#########]
[1B#########]..(+43)[PDBSBB##########][PDBSBB]2211221111121211222112111222(17 7)111111[](1044)[##########]
[##########]..(+40)[PDBSBB#########][PDBSBB]2211221111121211222112111222(17 7)111111[](1118)[#########]
[#########]..(+31)[PDDDDD########][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](1213)[T18T6SD########]
[T18T6SDSS######]21..(+45)[T6SPDSS######][T6SPDS]2(38 0)111112111211[T-2](1271)[T6S######]
[T6S######]11..(+57)[PDBSBB#########][PDBSBB]2211221111121211222112111222(17 7)111111[](1362)[#########]
[#########]..(+20)[S6d6BDD#######][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](1434)[DDB#######]
[DDB#######]11212..(+92)[S6d6BDBDDDDB############][S6d6BDBDDDDB]11212121112112222111122(7 2)11112[T6](1554)[T14############]
[T14############]121112..(+43)[B6d6DSSDS############][B6d6DSSDS]22(10 3)[](1599)[############]
[############]..(+44)[B6d6DSSDS###########][B6d6DSSDS]22(10 3)[](1645)[###########]
[DSS########]..(+52)[T6SPDSS########][T6SPDS]2(38 0)111112111211[T-2](1710)[T6S########]
[T6S########]11..(+69)[B6d6DDSSDDBS#########][B6d6DDSSDDB]22(18 4)2112112111111111111111112222121222[](1815)[S#########]
[SBDDD#####]..(+5)[S6d6BDDD#####][S6d6BDDD]111112212211211211211211111212(46 3)21121121121121122111112111222[](1879)[#####]
[DDDDB]112121212..(+11)(1890)[S]
bottomymx:2314 totalCost=2046
(0)[######]
[######]..(+78)[SPDBSS###########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](122)[T18T18T6S###########]
[T18T18T6S###########]2111..(+57)[B6d6DSSDS#############][B6d6DSSDS]22(10 3)[](181)[#############]
[BDD##########]..(+28)[S6d6BDBDD##########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](252)[1B##########]
[1B##########]..(+28)[PDDDDD##########][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](344)[T18T6SD##########]
[T18T6SD##########]21..(+39)[PDBSBB###########][PDBSBB]2211221111121211222112111222(17 7)111111[](417)[###########]
[DBDD#######]..(+8)[S6d6BDD#######][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](477)[DDB#######]
[DDBB######]1121111..(+52)[T6SPDSS######][T6SPDS]2(38 0)111112111211[T-2](542)[T6S######]
[T6S######]11..(+25)[S6d6BDD######][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](619)[DDB######]
[DDB######]11212..(+45)[PDDDDDDD######][PDDDDDDD]221121122211211212222111122(43 6)22111111112222[1t40](705)[1t48######]
[1t48######]1..(+89)[B6d6DDSSDDBS#########][B6d6DDSSDDB]22(18 4)2112112111111111111111112222121222[](830)[S#########]
[SDSS######]..(+43)[T6SPDSS######][T6SPDS]2(38 0)111112111211[T-2](886)[T6S######]
[T6S######]11..(+63)[PDBSBB##########][PDBSBB]2211221111121211222112111222(17 7)111111[](983)[##########]
[##########]..(+42)[SPDBSS#########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](1069)[T18T18T6S#########]
[T18T18T6SS########]2111..(+37)[SPDBSS########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](1150)[T18T18T6S########]
[T18T18T6S########]2111..(+57)[B6d6DSSDS##########][B6d6DSSDS]22(10 3)[](1209)[##########]
[##########]..(+36)[SPDBSS########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](1289)[T18T18T6S########]
[T18T18T6SD#######]2111..(+32)[PDDDDDD#######][PDDDDD]21111112212111121121121121121121221111211121112112111221121211(23 1)2[](1384)[D#######]
[D#######]..(+46)[S6d6BDBDD########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1473)[1B########]
[1B########]..(+42)[PDDDDBD#########][PDDDDBD]211111211211221112112112112111112111212112222221211(29 1)[S6d6DS](1566)[S6d6DS#########]
[S6d6DS#########]2..(+33)[B6d6DBDDBDS#########][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](1661)[S#########]
[S#########]..(+45)[B6d6DBDDBDS########][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](1768)[S########]
[S########]..(+40)[PDDDDD##########][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](1872)[T18T6SD##########]
[T18T6SDDDD#######]21..(+25)[B6d6DSDDDDD#######][B6d6DSDDDDD]21112111111221112211121121121121121121121121111211112112(40 4)2212[](1957)[#######]
[DDD####]..(+35)[S6d6BDSDDD####][S6d6BDSDDD]11221111121121121121111112112122(52 5)11221[H6T14](2029)[H6T22####]
[H6T22DDDB]111211211121212..(+17)(2046)[S]
bottomymx:2316 totalCost=1922
(0)[######]
[######]..(+50)[S6d6BDD#########][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](102)[DDB#########]
[DDB#########]11212..(+48)[S6d6BDBDD##########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](193)[1B##########]
[1B##########]..(+43)[PDBSBB###########][PDBSBB]2211221111121211222112111222(17 7)111111[](270)[###########]
[###########]..(+56)[B6d6DSSDS############][B6d6DSSDS]22(10 3)[](328)[############]
[############]..(+36)[SPDBSS##########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](408)[T18T18T6S##########]
[T18T18T6S##########]2111..(+45)[B6d6DSSDS##########][B6d6DSSDS]22(10 3)[](455)[##########]
[##########]..(+25)[PDDDDD########][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](544)[T18T6SD########]
[T18T6SD########]21..(+43)[B6d6DSSDS#########][B6d6DSSDS]22(10 3)[](589)[#########]
[DSS######]..(+38)[B6d6DSDDSS######][B6d6DSDDS]222112111211111111111111212111111(33 0)2[1T-2](661)[1T6S######]
[1T6S######]1..(+40)[SPBDD########][SPBDD]21222112112112111112112112112112112112112111222211211211211112111122211211211211211(32 4)[SDDS](784)[SDDS########]
[SDDSS#######]..(+20)[B6d6DSDDSS#######][B6d6DSDDS]222112111211111111111111212111111(33 0)2[1T-2](838)[1T6S#######]
[1T6S#######]1..(+52)[SPDBSS#########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](934)[T18T18T6S#########]
[T18T18T6SDD#######]2111..(+15)[S6d6BDD#######][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](1001)[DDB#######]
[DDB#######]..(+35)[B6d6DSDDSB#######][B6d6DSDDSB]2221121121111121121121122(29 6)112222[](1067)[#######]
[#######]..(+60)[B6d6DBDDBDS#######][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](1189)[S#######]
[S#######]..(+59)[B6d6DSSDS##########][B6d6DSSDS]22(10 3)[](1250)[##########]
[DDDD######]..(+8)[S6d6BDD######][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](1310)[DDB######]
[DDB######]11212..(+60)[PDBSBB#########][PDBSBB]2211221111121211222112111222(17 7)111111[](1404)[#########]
[#########]..(+46)[S6d6BDBDD#########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1493)[1B#########]
[1BDD#######]..(+17)[S6d6BDDD#######][S6d6BDDD]111112212211211211211211111212(46 3)21121121121121122111112111222[](1569)[#######]
[#######]..(+32)[S6d6BDDD######][S6d6BDDD]111112212211211211211211111212(46 3)21121121121121122111112111222[](1660)[######]
[######]..(+94)[B6d6DDSSDDBS##########][B6d6DDSSDDB]22(18 4)2112112111111111111111112222121222[](1790)[S##########]
[SDDSS######]1..(+37)[T6SPDSS######][T6SPDS]2(38 0)111112111211[T-2](1840)[T6S######]
[T6S######]11..(+61)[B6d6DSSDS#########][B6d6DSSDS]22(10 3)[](1903)[#########]
[DDDDDDDDD]11212121212121212..(+19)(1922)[S]
bottomymx:2318 totalCost=2026
(0)[######]
[######]..(+70)[S6d6BDBDD##########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](113)[1B##########]
[1BBS########]..(+49)[T6SPDSS########][T6SPDS]2(38 0)111112111211[T-2](175)[T6S########]
[T6S########]11..(+53)[SPDBSS##########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](272)[T18T18T6S##########]
[T18T18T6SD#########]2111..(+25)[SPBDD#########][SPBDD]21222112112112111112112112112112112112112111222211211211211112111122211211211211211(32 4)[SDDS](380)[SDDS#########]
[SDDS#########]111111..(+34)[PDBSPSSS#########][PDBSPSS]22211221112111112(21 2)2121112111111121111122[1T18T-2](453)[1T18T6S#########]
[1T18T6S#########]111..(+50)[B6d6DSSDS##########][B6d6DSSDS]22(10 3)[](505)[##########]
[##########]..(+50)[B6d6DSSDS##########][B6d6DSSDS]22(10 3)[](557)[##########]
[##########]..(+34)[PDBSBB########][PDBSBB]2211221111121211222112111222(17 7)111111[](625)[########]
[########]..(+48)[SPDBSS########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](717)[T18T18T6S########]
[T18T18T6SSS######]2111..(+53)[T6SPDSS######][T6SPDS]2(38 0)111112111211[T-2](783)[T6S######]
[T6S######]11..(+67)[B6d6DSSDS##########][B6d6DSSDS]22(10 3)[](852)[##########]
[BDD#######]..(+14)[S6d6BDD#######][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](918)[DDB#######]
[DDB#######]11212..(+48)[S6d6BDBDD########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1009)[1B########]
[1BD#######]..(+31)[S6d6BDBDD#######][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1083)[1B#######]
[1BDS#####]..(+49)[T6SPDSS#####][T6SPDS]2(38 0)111112111211[T-2](1145)[T6S#####]
[T6S#####]11..(+51)[S6d6BDBDD#######][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1239)[1B#######]
[1B#######]..(+37)[S6d6BDBDD#######][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1319)[1B#######]
[1B#######]..(+34)[PDDDDDD#######][PDDDDD]21111112212111121121121121121121221111211121112112111221121211(23 1)2[](1416)[D#######]
[D#######]..(+58)[PDBSBB##########][PDBSBB]2211221111121211222112111222(17 7)111111[](1508)[##########]
[SDDD######]..(+29)[S6d6BDSDDD######][S6d6BDSDDD]11221111121121121121111112112122(52 5)11221[H6T14](1574)[H6T22######]
[H6T22D#####]11121121..(+55)[S6d6BDSDDD#####][S6d6BDSDDD]11221111121121121121111112112122(52 5)11221[H6T14](1666)[H6T22#####]
[H6T22#####]11121121..(+82)[B6d6DSDDDDD########][B6d6DSDDDDD]21112111111221112211121121121121121121121121111211112112(40 4)2212[](1808)[########]
[########]..(+37)[PDDDDD########][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](1909)[T18T6SD########]
[T18T6SDDS######]21..(+35)[B6d6DBDDBDS######][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](2006)[S######]
[SDDDDDB]211212121212121212..(+20)(2026)[S]
bottomymx:2320 totalCost=1888
(0)[######]
[######]..(+76)[PDBSBB###########][PDBSBB]2211221111121211222112111222(17 7)111111[](110)[###########]
[###########]..(+42)[SPDBSS##########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](196)[T18T18T6S##########]
[T18T18T6SDD########]2111..(+15)[S6d6BDD########][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](263)[DDB########]
[DDBD#######]112111111..(+52)[T6SPDSS#######][T6SPDS]2(38 0)111112111211[T-2](328)[T6S#######]
[T6S#######]11..(+51)[S6d6BDBDD#########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](422)[1B#########]
[1B#########]..(+47)[B6d6DSSDS##########][B6d6DSSDS]22(10 3)[](471)[##########]
[BDS#######]..(+42)[B6d6DBDDBDS#######][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](575)[S#######]
[S#######]..(+53)[B6d6DSSDS#########][B6d6DSSDS]22(10 3)[](630)[#########]
[#########]..(+43)[B6d6DSDDSB#######][B6d6DSDDSB]2221121121111121121121122(29 6)112222[](704)[#######]
[#######]..(+43)[PDDDDD########][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](811)[T18T6SD########]
[T18T6SDD#######]21..(+13)[S6d6BDD#######][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](876)[DDB#######]
[DDB#######]11212..(+48)[S6d6BDBDD########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](967)[1B########]
[1B########]..(+43)[PDBSBB#########][PDBSBB]2211221111121211222112111222(17 7)111111[](1044)[#########]
[#########]..(+40)[PDBSBB########][PDBSBB]2211221111121211222112111222(17 7)111111[](1118)[########]
[########]..(+31)[PDDDDD#######][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](1213)[T18T6SD#######]
[T18T6SDSS#####]21..(+45)[T6SPDSS#####][T6SPDS]2(38 0)111112111211[T-2](1271)[T6S#####]
[T6S#####]11..(+57)[PDBSBB########][PDBSBB]2211221111121211222112111222(17 7)111111[](1362)[########]
[########]..(+20)[S6d6BDD######][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](1434)[DDB######]
[DDB######]11212..(+92)[S6d6BDBDDDDB###########][S6d6BDBDDDDB]11212121112112222111122(7 2)11112[T6](1554)[T14###########]
[T14###########]121112..(+43)[B6d6DSSDS###########][B6d6DSSDS]22(10 3)[](1599)[###########]
[###########]..(+44)[B6d6DSSDS##########][B6d6DSSDS]22(10 3)[](1645)[##########]
[DSS#######]..(+52)[T6SPDSS#######][T6SPDS]2(38 0)111112111211[T-2](1710)[T6S#######]
[T6S#######]11..(+69)[B6d6DDSSDDBS########][B6d6DDSSDDB]22(18 4)2112112111111111111111112222121222[](1815)[S########]
[SBDDD####]..(+5)[S6d6BDDD####][S6d6BDDD]111112212211211211211211111212(46 3)21121121121121122111112111222[](1879)[####]
[DDDB]1121212..(+9)(1888)[S]
bottomymx:2322 totalCost=2044
(0)[#####]
[#####]..(+78)[SPDBSS##########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](122)[T18T18T6S##########]
[T18T18T6S##########]2111..(+57)[B6d6DSSDS############][B6d6DSSDS]22(10 3)[](181)[############]
[BDD#########]..(+28)[S6d6BDBDD#########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](252)[1B#########]
[1B#########]..(+28)[PDDDDD#########][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](344)[T18T6SD#########]
[T18T6SD#########]21..(+39)[PDBSBB##########][PDBSBB]2211221111121211222112111222(17 7)111111[](417)[##########]
[DDDD######]..(+8)[S6d6BDD######][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](477)[DDB######]
[DDBB#####]1121111..(+52)[T6SPDSS#####][T6SPDS]2(38 0)111112111211[T-2](542)[T6S#####]
[T6S#####]11..(+25)[S6d6BDD#####][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](619)[DDB#####]
[DDB#####]11212..(+45)[PDDDDDDD#####][PDDDDDDD]221121122211211212222111122(43 6)22111111112222[1t40](705)[1t48#####]
[1t48#####]1..(+89)[B6d6DDSSDDBS########][B6d6DDSSDDB]22(18 4)2112112111111111111111112222121222[](830)[S########]
[SDSS#####]..(+43)[T6SPDSS#####][T6SPDS]2(38 0)111112111211[T-2](886)[T6S#####]
[T6S#####]11..(+63)[PDBSBB#########][PDBSBB]2211221111121211222112111222(17 7)111111[](983)[#########]
[#########]..(+42)[SPDBSS########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](1069)[T18T18T6S########]
[T18T18T6SD#######]2111..(+37)[SPDBSS#######][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](1150)[T18T18T6S#######]
[T18T18T6S#######]2111..(+57)[B6d6DSSDS#########][B6d6DSSDS]22(10 3)[](1209)[#########]
[#########]..(+36)[SPDBSS#######][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](1289)[T18T18T6S#######]
[T18T18T6SD######]2111..(+32)[PDDDDDD######][PDDDDD]21111112212111121121121121121121221111211121112112111221121211(23 1)2[](1384)[D######]
[D######]..(+46)[S6d6BDBDD#######][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1473)[1B#######]
[1B#######]..(+42)[PDDDDBD########][PDDDDBD]211111211211221112112112112111112111212112222221211(29 1)[S6d6DS](1566)[S6d6DS########]
[S6d6DS########]2..(+33)[B6d6DBDDBDS########][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](1661)[S########]
[S########]..(+45)[B6d6DBDDBDS#######][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](1768)[S#######]
[S#######]..(+40)[PDDDDD#########][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](1872)[T18T6SD#########]
[T18T6SDDDD######]21..(+25)[B6d6DSDDDDD######][B6d6DSDDDDD]21112111111221112211121121121121121121121121111211112112(40 4)2212[](1957)[######]
[DDD###]..(+35)[S6d6BDSDDD###][S6d6BDSDDD]11221111121121121121111112112122(52 5)11221[H6T14](2029)[H6T22###]
[H6T22DDD]1112112111212..(+15)(2044)[S]
bottomymx:2324 totalCost=1920
(0)[#####]
[#####]..(+50)[S6d6BDD########][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](102)[DDB########]
[DDB########]11212..(+48)[S6d6BDBDD#########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](193)[1B#########]
[1B#########]..(+43)[PDBSBB##########][PDBSBB]2211221111121211222112111222(17 7)111111[](270)[##########]
[##########]..(+56)[B6d6DSSDS###########][B6d6DSSDS]22(10 3)[](328)[###########]
[###########]..(+36)[SPDBSS#########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](408)[T18T18T6S#########]
[T18T18T6S#########]2111..(+45)[B6d6DSSDS#########][B6d6DSSDS]22(10 3)[](455)[#########]
[#########]..(+25)[PDDDDD#######][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](544)[T18T6SD#######]
[T18T6SD#######]21..(+43)[B6d6DSSDS########][B6d6DSSDS]22(10 3)[](589)[########]
[DSS#####]..(+38)[B6d6DSDDSS#####][B6d6DSDDS]222112111211111111111111212111111(33 0)2[1T-2](661)[1T6S#####]
[1T6S#####]1..(+40)[SPBDD#######][SPBDD]21222112112112111112112112112112112112112111222211211211211112111122211211211211211(32 4)[SDDS](784)[SDDS#######]
[SDDSS######]..(+20)[B6d6DSDDSS######][B6d6DSDDS]222112111211111111111111212111111(33 0)2[1T-2](838)[1T6S######]
[1T6S######]1..(+52)[SPDBSS########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](934)[T18T18T6S########]
[T18T18T6SDD######]2111..(+15)[S6d6BDD######][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](1001)[DDB######]
[DDB######]..(+35)[B6d6DSDDSB######][B6d6DSDDSB]2221121121111121121121122(29 6)112222[](1067)[######]
[######]..(+60)[B6d6DBDDBDS######][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](1189)[S######]
[S######]..(+59)[B6d6DSSDS#########][B6d6DSSDS]22(10 3)[](1250)[#########]
[DBDD#####]..(+8)[S6d6BDD#####][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](1310)[DDB#####]
[DDB#####]11212..(+60)[PDBSBB########][PDBSBB]2211221111121211222112111222(17 7)111111[](1404)[########]
[########]..(+46)[S6d6BDBDD########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1493)[1B########]
[1BDD######]..(+17)[S6d6BDDD######][S6d6BDDD]111112212211211211211211111212(46 3)21121121121121122111112111222[](1569)[######]
[######]..(+32)[S6d6BDDD#####][S6d6BDDD]111112212211211211211211111212(46 3)21121121121121122111112111222[](1660)[#####]
[#####]..(+94)[B6d6DDSSDDBS#########][B6d6DDSSDDB]22(18 4)2112112111111111111111112222121222[](1790)[S#########]
[SDDSS#####]1..(+37)[T6SPDSS#####][T6SPDS]2(38 0)111112111211[T-2](1840)[T6S#####]
[T6S#####]11..(+61)[B6d6DSSDS########][B6d6DSSDS]22(10 3)[](1903)[########]
[DDDDDDDD]112121212121212..(+17)(1920)[S]
bottomymx:2326 totalCost=2024
(0)[#####]
[#####]..(+70)[S6d6BDBDD#########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](113)[1B#########]
[1BSS#######]..(+49)[T6SPDSS#######][T6SPDS]2(38 0)111112111211[T-2](175)[T6S#######]
[T6S#######]11..(+53)[SPDBSS#########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](272)[T18T18T6S#########]
[T18T18T6SD########]2111..(+25)[SPBDD########][SPBDD]21222112112112111112112112112112112112112111222211211211211112111122211211211211211(32 4)[SDDS](380)[SDDS########]
[SDDS########]111111..(+34)[PDBSPSSS########][PDBSPSS]22211221112111112(21 2)2121112111111121111122[1T18T-2](453)[1T18T6S########]
[1T18T6S########]111..(+50)[B6d6DSSDS#########][B6d6DSSDS]22(10 3)[](505)[#########]
[#########]..(+50)[B6d6DSSDS#########][B6d6DSSDS]22(10 3)[](557)[#########]
[#########]..(+34)[PDBSBB#######][PDBSBB]2211221111121211222112111222(17 7)111111[](625)[#######]
[#######]..(+48)[SPDBSS#######][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](717)[T18T18T6S#######]
[T18T18T6SBS#####]2111..(+53)[T6SPDSS#####][T6SPDS]2(38 0)111112111211[T-2](783)[T6S#####]
[T6S#####]11..(+67)[B6d6DSSDS#########][B6d6DSSDS]22(10 3)[](852)[#########]
[BDD######]..(+14)[S6d6BDD######][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](918)[DDB######]
[DDB######]11212..(+48)[S6d6BDBDD#######][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1009)[1B#######]
[1BD######]..(+31)[S6d6BDBDD######][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1083)[1B######]
[1BDS####]..(+49)[T6SPDSS####][T6SPDS]2(38 0)111112111211[T-2](1145)[T6S####]
[T6S####]11..(+51)[S6d6BDBDD######][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1239)[1B######]
[1B######]..(+37)[S6d6BDBDD######][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1319)[1B######]
[1B######]..(+34)[PDDDDDD######][PDDDDD]21111112212111121121121121121121221111211121112112111221121211(23 1)2[](1416)[D######]
[D######]..(+58)[PDBSBB#########][PDBSBB]2211221111121211222112111222(17 7)111111[](1508)[#########]
[SDDD#####]..(+29)[S6d6BDSDDD#####][S6d6BDSDDD]11221111121121121121111112112122(52 5)11221[H6T14](1574)[H6T22#####]
[H6T22D####]11121121..(+55)[S6d6BDSDDD####][S6d6BDSDDD]11221111121121121121111112112122(52 5)11221[H6T14](1666)[H6T22####]
[H6T22####]11121121..(+82)[B6d6DSDDDDD#######][B6d6DSDDDDD]21112111111221112211121121121121121121121121111211112112(40 4)2212[](1808)[#######]
[#######]..(+37)[PDDDDD#######][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](1909)[T18T6SD#######]
[T18T6SDDS#####]21..(+35)[B6d6DBDDBDS#####][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](2006)[S#####]
[SDDDDD]2112121212121212..(+18)(2024)[S]
bottomymx:2328 totalCost=1886
(0)[#####]
[#####]..(+76)[PDBSBB##########][PDBSBB]2211221111121211222112111222(17 7)111111[](110)[##########]
[##########]..(+42)[SPDBSS#########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](196)[T18T18T6S#########]
[T18T18T6SDD#######]2111..(+15)[S6d6BDD#######][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](263)[DDB#######]
[DDBB######]1121111..(+52)[T6SPDSS######][T6SPDS]2(38 0)111112111211[T-2](328)[T6S######]
[T6S######]11..(+51)[S6d6BDBDD########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](422)[1B########]
[1B########]..(+47)[B6d6DSSDS#########][B6d6DSSDS]22(10 3)[](471)[#########]
[BDS######]..(+42)[B6d6DBDDBDS######][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](575)[S######]
[S######]..(+53)[B6d6DSSDS########][B6d6DSSDS]22(10 3)[](630)[########]
[########]..(+43)[B6d6DSDDSB######][B6d6DSDDSB]2221121121111121121121122(29 6)112222[](704)[######]
[######]..(+43)[PDDDDD#######][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](811)[T18T6SD#######]
[T18T6SDD######]21..(+13)[S6d6BDD######][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](876)[DDB######]
[DDB######]11212..(+48)[S6d6BDBDD#######][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](967)[1B#######]
[1B#######]..(+43)[PDBSBB########][PDBSBB]2211221111121211222112111222(17 7)111111[](1044)[########]
[########]..(+40)[PDBSBB#######][PDBSBB]2211221111121211222112111222(17 7)111111[](1118)[#######]
[#######]..(+31)[PDDDDD######][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](1213)[T18T6SD######]
[T18T6SDSS####]21..(+45)[T6SPDSS####][T6SPDS]2(38 0)111112111211[T-2](1271)[T6S####]
[T6S####]11..(+57)[PDBSBB#######][PDBSBB]2211221111121211222112111222(17 7)111111[](1362)[#######]
[#######]..(+20)[S6d6BDD#####][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](1434)[DDB#####]
[DDB#####]11212..(+92)[S6d6BDBDDDDB##########][S6d6BDBDDDDB]11212121112112222111122(7 2)11112[T6](1554)[T14##########]
[T14##########]121112..(+43)[B6d6DSSDS##########][B6d6DSSDS]22(10 3)[](1599)[##########]
[##########]..(+44)[B6d6DSSDS#########][B6d6DSSDS]22(10 3)[](1645)[#########]
[DSS######]..(+52)[T6SPDSS######][T6SPDS]2(38 0)111112111211[T-2](1710)[T6S######]
[T6S######]11..(+69)[B6d6DDSSDDBS#######][B6d6DDSSDDB]22(18 4)2112112111111111111111112222121222[](1815)[S#######]
[SDDDD###]..(+5)[S6d6BDDD###][S6d6BDDD]111112212211211211211211111212(46 3)21121121121121122111112111222[](1879)[###]
[DDB]11212..(+7)(1886)[S]
bottomymx:2330 totalCost=2042
(0)[####]
[####]..(+78)[SPDBSS#########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](122)[T18T18T6S#########]
[T18T18T6S#########]2111..(+57)[B6d6DSSDS###########][B6d6DSSDS]22(10 3)[](181)[###########]
[BDD########]..(+28)[S6d6BDBDD########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](252)[1B########]
[1B########]..(+28)[PDDDDD########][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](344)[T18T6SD########]
[T18T6SD########]21..(+39)[PDBSBB#########][PDBSBB]2211221111121211222112111222(17 7)111111[](417)[#########]
[DBDD#####]..(+8)[S6d6BDD#####][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](477)[DDB#####]
[DDBB####]1121111..(+52)[T6SPDSS####][T6SPDS]2(38 0)111112111211[T-2](542)[T6S####]
[T6S####]11..(+25)[S6d6BDD####][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](619)[DDB####]
[DDB####]11212..(+45)[PDDDDDDD####][PDDDDDDD]221121122211211212222111122(43 6)22111111112222[1t40](705)[1t48####]
[1t48####]1..(+89)[B6d6DDSSDDBS#######][B6d6DDSSDDB]22(18 4)2112112111111111111111112222121222[](830)[S#######]
[SDSS####]..(+43)[T6SPDSS####][T6SPDS]2(38 0)111112111211[T-2](886)[T6S####]
[T6S####]11..(+63)[PDBSBB########][PDBSBB]2211221111121211222112111222(17 7)111111[](983)[########]
[########]..(+42)[SPDBSS#######][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](1069)[T18T18T6S#######]
[T18T18T6SB######]2111..(+37)[SPDBSS######][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](1150)[T18T18T6S######]
[T18T18T6S######]2111..(+57)[B6d6DSSDS########][B6d6DSSDS]22(10 3)[](1209)[########]
[########]..(+36)[SPDBSS######][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](1289)[T18T18T6S######]
[T18T18T6SD#####]2111..(+32)[PDDDDDD#####][PDDDDD]21111112212111121121121121121121221111211121112112111221121211(23 1)2[](1384)[D#####]
[D#####]..(+46)[S6d6BDBDD######][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1473)[1B######]
[1B######]..(+42)[PDDDDBD#######][PDDDDBD]211111211211221112112112112111112111212112222221211(29 1)[S6d6DS](1566)[S6d6DS#######]
[S6d6DS#######]2..(+33)[B6d6DBDDBDS#######][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](1661)[S#######]
[S#######]..(+45)[B6d6DBDDBDS######][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](1768)[S######]
[S######]..(+40)[PDDDDD########][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](1872)[T18T6SD########]
[T18T6SDDDD#####]21..(+25)[B6d6DSDDDDD#####][B6d6DSDDDDD]21112111111221112211121121121121121121121121111211112112(40 4)2212[](1957)[#####]
[DDD##]..(+35)[S6d6BDSDDD##][S6d6BDSDDD]11221111121121121121111112112122(52 5)11221[H6T14](2029)[H6T22##]
[H6T22DD]11121121112..(+13)(2042)[S]
bottomymx:2332 totalCost=1918
(0)[####]
[####]..(+50)[S6d6BDD#######][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](102)[DDB#######]
[DDB#######]11212..(+48)[S6d6BDBDD########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](193)[1B########]
[1B########]..(+43)[PDBSBB#########][PDBSBB]2211221111121211222112111222(17 7)111111[](270)[#########]
[#########]..(+56)[B6d6DSSDS##########][B6d6DSSDS]22(10 3)[](328)[##########]
[##########]..(+36)[SPDBSS########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](408)[T18T18T6S########]
[T18T18T6S########]2111..(+45)[B6d6DSSDS########][B6d6DSSDS]22(10 3)[](455)[########]
[########]..(+25)[PDDDDD######][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](544)[T18T6SD######]
[T18T6SD######]21..(+43)[B6d6DSSDS#######][B6d6DSSDS]22(10 3)[](589)[#######]
[DSS####]..(+38)[B6d6DSDDSS####][B6d6DSDDS]222112111211111111111111212111111(33 0)2[1T-2](661)[1T6S####]
[1T6S####]1..(+40)[SPBDD######][SPBDD]21222112112112111112112112112112112112112111222211211211211112111122211211211211211(32 4)[SDDS](784)[SDDS######]
[SDDSS#####]..(+20)[B6d6DSDDSS#####][B6d6DSDDS]222112111211111111111111212111111(33 0)2[1T-2](838)[1T6S#####]
[1T6S#####]1..(+52)[SPDBSS#######][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](934)[T18T18T6S#######]
[T18T18T6SDD#####]2111..(+15)[S6d6BDD#####][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](1001)[DDB#####]
[DDB#####]..(+35)[B6d6DSDDSB#####][B6d6DSDDSB]2221121121111121121121122(29 6)112222[](1067)[#####]
[#####]..(+60)[B6d6DBDDBDS#####][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](1189)[S#####]
[S#####]..(+59)[B6d6DSSDS########][B6d6DSSDS]22(10 3)[](1250)[########]
[DBDD####]..(+8)[S6d6BDD####][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](1310)[DDB####]
[DDB####]11212..(+60)[PDBSBB#######][PDBSBB]2211221111121211222112111222(17 7)111111[](1404)[#######]
[#######]..(+46)[S6d6BDBDD#######][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1493)[1B#######]
[1BDD#####]..(+17)[S6d6BDDD#####][S6d6BDDD]111112212211211211211211111212(46 3)21121121121121122111112111222[](1569)[#####]
[#####]..(+32)[S6d6BDDD####][S6d6BDDD]111112212211211211211211111212(46 3)21121121121121122111112111222[](1660)[####]
[####]..(+94)[B6d6DDSSDDBS########][B6d6DDSSDDB]22(18 4)2112112111111111111111112222121222[](1790)[S########]
[SDDSS####]1..(+37)[T6SPDSS####][T6SPDS]2(38 0)111112111211[T-2](1840)[T6S####]
[T6S####]11..(+61)[B6d6DSSDS#######][B6d6DSSDS]22(10 3)[](1903)[#######]
[DDDDDDB]1121212121212..(+15)(1918)[S]
bottomymx:2334 totalCost=2022
(0)[####]
[####]..(+70)[S6d6BDBDD########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](113)[1B########]
[1BBS######]..(+49)[T6SPDSS######][T6SPDS]2(38 0)111112111211[T-2](175)[T6S######]
[T6S######]11..(+53)[SPDBSS########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](272)[T18T18T6S########]
[T18T18T6SD#######]2111..(+25)[SPBDD#######][SPBDD]21222112112112111112112112112112112112112111222211211211211112111122211211211211211(32 4)[SDDS](380)[SDDS#######]
[SDDS#######]111111..(+34)[PDBSPSSS#######][PDBSPSS]22211221112111112(21 2)2121112111111121111122[1T18T-2](453)[1T18T6S#######]
[1T18T6S#######]111..(+50)[B6d6DSSDS########][B6d6DSSDS]22(10 3)[](505)[########]
[########]..(+50)[B6d6DSSDS########][B6d6DSSDS]22(10 3)[](557)[########]
[########]..(+34)[PDBSBB######][PDBSBB]2211221111121211222112111222(17 7)111111[](625)[######]
[######]..(+48)[SPDBSS######][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](717)[T18T18T6S######]
[T18T18T6SSS####]2111..(+53)[T6SPDSS####][T6SPDS]2(38 0)111112111211[T-2](783)[T6S####]
[T6S####]11..(+67)[B6d6DSSDS########][B6d6DSSDS]22(10 3)[](852)[########]
[BDD#####]..(+14)[S6d6BDD#####][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](918)[DDB#####]
[DDB#####]11212..(+48)[S6d6BDBDD######][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1009)[1B######]
[1BD#####]..(+31)[S6d6BDBDD#####][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1083)[1B#####]
[1BBS###]..(+49)[T6SPDSS###][T6SPDS]2(38 0)111112111211[T-2](1145)[T6S###]
[T6S###]11..(+51)[S6d6BDBDD#####][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1239)[1B#####]
[1B#####]..(+37)[S6d6BDBDD#####][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1319)[1B#####]
[1B#####]..(+34)[PDDDDDD#####][PDDDDD]21111112212111121121121121121121221111211121112112111221121211(23 1)2[](1416)[D#####]
[D#####]..(+58)[PDBSBB########][PDBSBB]2211221111121211222112111222(17 7)111111[](1508)[########]
[SDDD####]..(+29)[S6d6BDSDDD####][S6d6BDSDDD]11221111121121121121111112112122(52 5)11221[H6T14](1574)[H6T22####]
[H6T22D###]11121121..(+55)[S6d6BDSDDD###][S6d6BDSDDD]11221111121121121121111112112122(52 5)11221[H6T14](1666)[H6T22###]
[H6T22###]11121121..(+82)[B6d6DSDDDDD######][B6d6DSDDDDD]21112111111221112211121121121121121121121121111211112112(40 4)2212[](1808)[######]
[######]..(+37)[PDDDDD######][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](1909)[T18T6SD######]
[T18T6SDDS####]21..(+35)[B6d6DBDDBDS####][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](2006)[S####]
[SDDDB]21121212121212..(+16)(2022)[S]
bottomymx:2336 totalCost=1884
(0)[####]
[####]..(+76)[PDBSBB#########][PDBSBB]2211221111121211222112111222(17 7)111111[](110)[#########]
[#########]..(+42)[SPDBSS########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](196)[T18T18T6S########]
[T18T18T6SDD######]2111..(+15)[S6d6BDD######][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](263)[DDB######]
[DDBB#####]1121111..(+52)[T6SPDSS#####][T6SPDS]2(38 0)111112111211[T-2](328)[T6S#####]
[T6S#####]11..(+51)[S6d6BDBDD#######][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](422)[1B#######]
[1B#######]..(+47)[B6d6DSSDS########][B6d6DSSDS]22(10 3)[](471)[########]
[BDS#####]..(+42)[B6d6DBDDBDS#####][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](575)[S#####]
[S#####]..(+53)[B6d6DSSDS#######][B6d6DSSDS]22(10 3)[](630)[#######]
[#######]..(+43)[B6d6DSDDSB#####][B6d6DSDDSB]2221121121111121121121122(29 6)112222[](704)[#####]
[#####]..(+43)[PDDDDD######][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](811)[T18T6SD######]
[T18T6SDD#####]21..(+13)[S6d6BDD#####][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](876)[DDB#####]
[DDB#####]11212..(+48)[S6d6BDBDD######][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](967)[1B######]
[1B######]..(+43)[PDBSBB#######][PDBSBB]2211221111121211222112111222(17 7)111111[](1044)[#######]
[#######]..(+40)[PDBSBB######][PDBSBB]2211221111121211222112111222(17 7)111111[](1118)[######]
[######]..(+31)[PDDDDD#####][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](1213)[T18T6SD#####]
[T18T6SDSS###]21..(+45)[T6SPDSS###][T6SPDS]2(38 0)111112111211[T-2](1271)[T6S###]
[T6S###]11..(+57)[PDBSBB######][PDBSBB]2211221111121211222112111222(17 7)111111[](1362)[######]
[######]..(+20)[S6d6BDD####][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](1434)[DDB####]
[DDB####]11212..(+92)[S6d6BDBDDDDB#########][S6d6BDBDDDDB]11212121112112222111122(7 2)11112[T6](1554)[T14#########]
[T14#########]121112..(+43)[B6d6DSSDS#########][B6d6DSSDS]22(10 3)[](1599)[#########]
[#########]..(+44)[B6d6DSSDS########][B6d6DSSDS]22(10 3)[](1645)[########]
[DSS#####]..(+52)[T6SPDSS#####][T6SPDS]2(38 0)111112111211[T-2](1710)[T6S#####]
[T6S#####]11..(+69)[B6d6DDSSDDBS######][B6d6DDSSDDB]22(18 4)2112112111111111111111112222121222[](1815)[S######]
[SBDDD##]..(+5)[S6d6BDDD##][S6d6BDDD]111112212211211211211211111212(46 3)21121121121121122111112111222[](1879)[##]
[DD]112..(+5)(1884)[S]
bottomymx:2338 totalCost=2040
(0)[###]
[###]..(+78)[SPDBSS########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](122)[T18T18T6S########]
[T18T18T6S########]2111..(+57)[B6d6DSSDS##########][B6d6DSSDS]22(10 3)[](181)[##########]
[BDD#######]..(+28)[S6d6BDBDD#######][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](252)[1B#######]
[1B#######]..(+28)[PDDDDD#######][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](344)[T18T6SD#######]
[T18T6SD#######]21..(+39)[PDBSBB########][PDBSBB]2211221111121211222112111222(17 7)111111[](417)[########]
[DBDD####]..(+8)[S6d6BDD####][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](477)[DDB####]
[DDBB###]1121111..(+52)[T6SPDSS###][T6SPDS]2(38 0)111112111211[T-2](542)[T6S###]
[T6S###]11..(+25)[S6d6BDD###][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](619)[DDB###]
[DDB###]11212..(+45)[PDDDDDDD###][PDDDDDDD]221121122211211212222111122(43 6)22111111112222[1t40](705)[1t48###]
[1t48###]1..(+89)[B6d6DDSSDDBS######][B6d6DDSSDDB]22(18 4)2112112111111111111111112222121222[](830)[S######]
[SDSS###]..(+43)[T6SPDSS###][T6SPDS]2(38 0)111112111211[T-2](886)[T6S###]
[T6S###]11..(+63)[PDBSBB#######][PDBSBB]2211221111121211222112111222(17 7)111111[](983)[#######]
[#######]..(+42)[SPDBSS######][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](1069)[T18T18T6S######]
[T18T18T6SD#####]2111..(+37)[SPDBSS#####][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](1150)[T18T18T6S#####]
[T18T18T6S#####]2111..(+57)[B6d6DSSDS#######][B6d6DSSDS]22(10 3)[](1209)[#######]
[#######]..(+36)[SPDBSS#####][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](1289)[T18T18T6S#####]
[T18T18T6SD####]2111..(+32)[PDDDDDD####][PDDDDD]21111112212111121121121121121121221111211121112112111221121211(23 1)2[](1384)[D####]
[D####]..(+46)[S6d6BDBDD#####][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1473)[1B#####]
[1B#####]..(+42)[PDDDDBD######][PDDDDBD]211111211211221112112112112111112111212112222221211(29 1)[S6d6DS](1566)[S6d6DS######]
[S6d6DS######]2..(+33)[B6d6DBDDBDS######][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](1661)[S######]
[S######]..(+45)[B6d6DBDDBDS#####][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](1768)[S#####]
[S#####]..(+40)[PDDDDD#######][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](1872)[T18T6SD#######]
[T18T6SDDDD####]21..(+25)[B6d6DSDDDDD####][B6d6DSDDDDD]21112111111221112211121121121121121121121121111211112112(40 4)2212[](1957)[####]
[DDD#]..(+35)[S6d6BDSDDD#][S6d6BDSDDD]11221111121121121121111112112122(52 5)11221[H6T14](2029)[H6T22#]
[H6T22S]11121121..(+11)(2040)[S]
bottomymx:2340 totalCost=1916
(0)[###]
[###]..(+50)[S6d6BDD######][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](102)[DDB######]
[DDB######]11212..(+48)[S6d6BDBDD#######][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](193)[1B#######]
[1B#######]..(+43)[PDBSBB########][PDBSBB]2211221111121211222112111222(17 7)111111[](270)[########]
[########]..(+56)[B6d6DSSDS#########][B6d6DSSDS]22(10 3)[](328)[#########]
[#########]..(+36)[SPDBSS#######][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](408)[T18T18T6S#######]
[T18T18T6S#######]2111..(+45)[B6d6DSSDS#######][B6d6DSSDS]22(10 3)[](455)[#######]
[#######]..(+25)[PDDDDD#####][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](544)[T18T6SD#####]
[T18T6SD#####]21..(+43)[B6d6DSSDS######][B6d6DSSDS]22(10 3)[](589)[######]
[DSS###]..(+38)[B6d6DSDDSS###][B6d6DSDDS]222112111211111111111111212111111(33 0)2[1T-2](661)[1T6S###]
[1T6S###]1..(+40)[SPBDD#####][SPBDD]21222112112112111112112112112112112112112111222211211211211112111122211211211211211(32 4)[SDDS](784)[SDDS#####]
[SDDSS####]..(+20)[B6d6DSDDSS####][B6d6DSDDS]222112111211111111111111212111111(33 0)2[1T-2](838)[1T6S####]
[1T6S####]1..(+52)[SPDBSS######][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](934)[T18T18T6S######]
[T18T18T6SDD####]2111..(+15)[S6d6BDD####][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](1001)[DDB####]
[DDB####]..(+35)[B6d6DSDDSB####][B6d6DSDDSB]2221121121111121121121122(29 6)112222[](1067)[####]
[####]..(+60)[B6d6DBDDBDS####][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](1189)[S####]
[S####]..(+59)[B6d6DSSDS#######][B6d6DSSDS]22(10 3)[](1250)[#######]
[DDDD###]..(+8)[S6d6BDD###][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](1310)[DDB###]
[DDB###]11212..(+60)[PDBSBB######][PDBSBB]2211221111121211222112111222(17 7)111111[](1404)[######]
[######]..(+46)[S6d6BDBDD######][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1493)[1B######]
[1BDD####]..(+17)[S6d6BDDD####][S6d6BDDD]111112212211211211211211111212(46 3)21121121121121122111112111222[](1569)[####]
[####]..(+32)[S6d6BDDD###][S6d6BDDD]111112212211211211211211111212(46 3)21121121121121122111112111222[](1660)[###]
[###]..(+94)[B6d6DDSSDDBS#######][B6d6DDSSDDB]22(18 4)2112112111111111111111112222121222[](1790)[S#######]
[SDDSS###]1..(+37)[T6SPDSS###][T6SPDS]2(38 0)111112111211[T-2](1840)[T6S###]
[T6S###]11..(+61)[B6d6DSSDS######][B6d6DSSDS]22(10 3)[](1903)[######]
[DDDDDD]11212121212..(+13)(1916)[S]
bottomymx:2342 totalCost=2016
(0)[###]
[###]..(+70)[S6d6BDBDD#######][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](113)[1B#######]
[1BDS#####]..(+49)[T6SPDSS#####][T6SPDS]2(38 0)111112111211[T-2](175)[T6S#####]
[T6S#####]11..(+53)[SPDBSS#######][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](272)[T18T18T6S#######]
[T18T18T6SD######]2111..(+25)[SPBDD######][SPBDD]21222112112112111112112112112112112112112111222211211211211112111122211211211211211(32 4)[SDDS](380)[SDDS######]
[SDDS######]111111..(+34)[PDBSPSSS######][PDBSPSS]22211221112111112(21 2)2121112111111121111122[1T18T-2](453)[1T18T6S######]
[1T18T6S######]111..(+50)[B6d6DSSDS#######][B6d6DSSDS]22(10 3)[](505)[#######]
[#######]..(+50)[B6d6DSSDS#######][B6d6DSSDS]22(10 3)[](557)[#######]
[#######]..(+34)[PDBSBB#####][PDBSBB]2211221111121211222112111222(17 7)111111[](625)[#####]
[#####]..(+48)[SPDBSS#####][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](717)[T18T18T6S#####]
[T18T18T6SBS###]2111..(+53)[T6SPDSS###][T6SPDS]2(38 0)111112111211[T-2](783)[T6S###]
[T6S###]11..(+67)[B6d6DSSDS#######][B6d6DSSDS]22(10 3)[](852)[#######]
[BDD####]..(+14)[S6d6BDD####][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](918)[DDB####]
[DDB####]11212..(+48)[S6d6BDBDD#####][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1009)[1B#####]
[1BD####]..(+31)[S6d6BDBDD####][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1083)[1B####]
[1BDS##]..(+49)[T6SPDSS##][T6SPDS]2(38 0)111112111211[T-2](1145)[T6S##]
[T6S##]11..(+51)[S6d6BDBDD####][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1239)[1B####]
[1B####]..(+37)[S6d6BDBDD####][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1319)[1B####]
[1B####]..(+34)[PDDDDDD####][PDDDDD]21111112212111121121121121121121221111211121112112111221121211(23 1)2[](1416)[D####]
[D####]..(+58)[PDBSBB#######][PDBSBB]2211221111121211222112111222(17 7)111111[](1508)[#######]
[SDDD###]..(+29)[S6d6BDSDDD###][S6d6BDSDDD]11221111121121121121111112112122(52 5)11221[H6T14](1574)[H6T22###]
[H6T22D##]11121121..(+55)[S6d6BDSDDD##][S6d6BDSDDD]11221111121121121121111112112122(52 5)11221[H6T14](1666)[H6T22##]
[H6T22##]11121121..(+82)[B6d6DSDDDDD#####][B6d6DSDDDDD]21112111111221112211121121121121121121121121111211112112(40 4)2212[](1808)[#####]
[#####]..(+37)[PDDDDD#####][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](1909)[T18T6SD#####]
[T18T6SDDS###]21..(+35)[B6d6DBDDBDS###][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](2006)[S###]
[SDDS]1111212..(+10)(2016)[S]
bottomymx:2344 totalCost=1882
(0)[###]
[###]..(+76)[PDBSBB########][PDBSBB]2211221111121211222112111222(17 7)111111[](110)[########]
[########]..(+42)[SPDBSS#######][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](196)[T18T18T6S#######]
[T18T18T6SDD#####]2111..(+15)[S6d6BDD#####][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](263)[DDB#####]
[DDBB####]1121111..(+52)[T6SPDSS####][T6SPDS]2(38 0)111112111211[T-2](328)[T6S####]
[T6S####]11..(+51)[S6d6BDBDD######][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](422)[1B######]
[1B######]..(+47)[B6d6DSSDS#######][B6d6DSSDS]22(10 3)[](471)[#######]
[BDS####]..(+42)[B6d6DBDDBDS####][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](575)[S####]
[S####]..(+53)[B6d6DSSDS######][B6d6DSSDS]22(10 3)[](630)[######]
[######]..(+43)[B6d6DSDDSB####][B6d6DSDDSB]2221121121111121121121122(29 6)112222[](704)[####]
[####]..(+43)[PDDDDD#####][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](811)[T18T6SD#####]
[T18T6SDD####]21..(+13)[S6d6BDD####][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](876)[DDB####]
[DDB####]11212..(+48)[S6d6BDBDD#####][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](967)[1B#####]
[1B#####]..(+43)[PDBSBB######][PDBSBB]2211221111121211222112111222(17 7)111111[](1044)[######]
[######]..(+40)[PDBSBB#####][PDBSBB]2211221111121211222112111222(17 7)111111[](1118)[#####]
[#####]..(+31)[PDDDDD####][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](1213)[T18T6SD####]
[T18T6SDSS##]21..(+45)[T6SPDSS##][T6SPDS]2(38 0)111112111211[T-2](1271)[T6S##]
[T6S##]11..(+57)[PDBSBB#####][PDBSBB]2211221111121211222112111222(17 7)111111[](1362)[#####]
[#####]..(+20)[S6d6BDD###][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](1434)[DDB###]
[DDB###]11212..(+92)[S6d6BDBDDDDB########][S6d6BDBDDDDB]11212121112112222111122(7 2)11112[T6](1554)[T14########]
[T14########]121112..(+43)[B6d6DSSDS########][B6d6DSSDS]22(10 3)[](1599)[########]
[########]..(+44)[B6d6DSSDS#######][B6d6DSSDS]22(10 3)[](1645)[#######]
[DSS####]..(+52)[T6SPDSS####][T6SPDS]2(38 0)111112111211[T-2](1710)[T6S####]
[T6S####]11..(+69)[B6d6DDSSDDBS#####][B6d6DDSSDDB]22(18 4)2112112111111111111111112222121222[](1815)[S#####]
[SDDDD#]..(+5)[S6d6BDDD#][S6d6BDDD]111112212211211211211211111212(46 3)21121121121121122111112111222[](1879)[#]
[#]..(+3)(1882)[S]
bottomymx:2346 totalCost=2075
(0)[##]
[##]..(+78)[SPDBSS#######][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](122)[T18T18T6S#######]
[T18T18T6S#######]2111..(+57)[B6d6DSSDS#########][B6d6DSSDS]22(10 3)[](181)[#########]
[BDD######]..(+28)[S6d6BDBDD######][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](252)[1B######]
[1B######]..(+28)[PDDDDD######][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](344)[T18T6SD######]
[T18T6SD######]21..(+39)[PDBSBB#######][PDBSBB]2211221111121211222112111222(17 7)111111[](417)[#######]
[DDDD###]..(+8)[S6d6BDD###][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](477)[DDB###]
[DDBS##]112..(+52)[T6SPDSS##][T6SPDS]2(38 0)111112111211[T-2](542)[T6S##]
[T6S##]11..(+25)[S6d6BDD##][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](619)[DDB##]
[DDB##]11212..(+45)[PDDDDDDD##][PDDDDDDD]221121122211211212222111122(43 6)22111111112222[1t40](705)[1t48##]
[1t48##]1..(+89)[B6d6DDSSDDBS#####][B6d6DDSSDDB]22(18 4)2112112111111111111111112222121222[](830)[S#####]
[SDSS##]..(+43)[T6SPDSS##][T6SPDS]2(38 0)111112111211[T-2](886)[T6S##]
[T6S##]11..(+63)[PDBSBB######][PDBSBB]2211221111121211222112111222(17 7)111111[](983)[######]
[######]..(+42)[SPDBSS#####][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](1069)[T18T18T6S#####]
[T18T18T6SD####]2111..(+37)[SPDBSS####][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](1150)[T18T18T6S####]
[T18T18T6S####]2111..(+57)[B6d6DSSDS######][B6d6DSSDS]22(10 3)[](1209)[######]
[######]..(+36)[SPDBSS####][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](1289)[T18T18T6S####]
[T18T18T6SD###]2111..(+32)[PDDDDDD###][PDDDDD]21111112212111121121121121121121221111211121112112111221121211(23 1)2[](1384)[D###]
[D###]..(+46)[S6d6BDBDD####][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1473)[1B####]
[1B####]..(+42)[PDDDDBD#####][PDDDDBD]211111211211221112112112112111112111212112222221211(29 1)[S6d6DS](1566)[S6d6DS#####]
[S6d6DS#####]2..(+33)[B6d6DBDDBDS#####][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](1661)[S#####]
[S#####]..(+45)[B6d6DBDDBDS####][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](1768)[S####]
[S####]..(+40)[PDDDDD######][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](1872)[T18T6SD######]
[T18T6SDDDD###]21..(+25)[B6d6DSDDDDD###][B6d6DSDDDDD]21112111111221112211121121121121121121121121111211112112(40 4)2212[](1957)[###]
[###]..(+50)[S6d6BDSDDDS#][S6d6BDSDDDS]1122111111121121121121111111211211222121121121121121121111122(44 3)2111[](2072)[#]
[#]..(+3)(2075)[S]
bottomymx:2348 totalCost=1914
(0)[##]
[##]..(+50)[S6d6BDD#####][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](102)[DDB#####]
[DDB#####]11212..(+48)[S6d6BDBDD######][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](193)[1B######]
[1B######]..(+43)[PDBSBB#######][PDBSBB]2211221111121211222112111222(17 7)111111[](270)[#######]
[#######]..(+56)[B6d6DSSDS########][B6d6DSSDS]22(10 3)[](328)[########]
[########]..(+36)[SPDBSS######][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](408)[T18T18T6S######]
[T18T18T6S######]2111..(+45)[B6d6DSSDS######][B6d6DSSDS]22(10 3)[](455)[######]
[######]..(+25)[PDDDDD####][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](544)[T18T6SD####]
[T18T6SD####]21..(+43)[B6d6DSSDS#####][B6d6DSSDS]22(10 3)[](589)[#####]
[DSS##]..(+38)[B6d6DSDDSS##][B6d6DSDDS]222112111211111111111111212111111(33 0)2[1T-2](661)[1T6S##]
[1T6S##]1..(+40)[SPBDD####][SPBDD]21222112112112111112112112112112112112112111222211211211211112111122211211211211211(32 4)[SDDS](784)[SDDS####]
[SDDSS###]..(+20)[B6d6DSDDSS###][B6d6DSDDS]222112111211111111111111212111111(33 0)2[1T-2](838)[1T6S###]
[1T6S###]1..(+52)[SPDBSS#####][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](934)[T18T18T6S#####]
[T18T18T6SDD###]2111..(+15)[S6d6BDD###][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](1001)[DDB###]
[DDB###]..(+35)[B6d6DSDDSB###][B6d6DSDDSB]2221121121111121121121122(29 6)112222[](1067)[###]
[###]..(+60)[B6d6DBDDBDS###][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](1189)[S###]
[S###]..(+59)[B6d6DSSDS######][B6d6DSSDS]22(10 3)[](1250)[######]
[DDDD##]..(+8)[S6d6BDD##][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](1310)[DDB##]
[DDB##]11212..(+60)[PDBSBB#####][PDBSBB]2211221111121211222112111222(17 7)111111[](1404)[#####]
[#####]..(+46)[S6d6BDBDD#####][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1493)[1B#####]
[1BDD###]..(+17)[S6d6BDDD###][S6d6BDDD]111112212211211211211211111212(46 3)21121121121121122111112111222[](1569)[###]
[###]..(+32)[S6d6BDDD##][S6d6BDDD]111112212211211211211211111212(46 3)21121121121121122111112111222[](1660)[##]
[##]..(+94)[B6d6DDSSDDBS######][B6d6DDSSDDB]22(18 4)2112112111111111111111112222121222[](1790)[S######]
[SDDSS##]1..(+37)[T6SPDSS##][T6SPDS]2(38 0)111112111211[T-2](1840)[T6S##]
[T6S##]11..(+61)[B6d6DSSDS#####][B6d6DSSDS]22(10 3)[](1903)[#####]
[DDDDB]112121212..(+11)(1914)[S]
bottomymx:2350 totalCost=2018
(0)[##]
[##]..(+70)[S6d6BDBDD######][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](113)[1B######]
[1BDS####]..(+49)[T6SPDSS####][T6SPDS]2(38 0)111112111211[T-2](175)[T6S####]
[T6S####]11..(+53)[SPDBSS######][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](272)[T18T18T6S######]
[T18T18T6SD#####]2111..(+25)[SPBDD#####][SPBDD]21222112112112111112112112112112112112112111222211211211211112111122211211211211211(32 4)[SDDS](380)[SDDS#####]
[SDDS#####]111111..(+34)[PDBSPSSS#####][PDBSPSS]22211221112111112(21 2)2121112111111121111122[1T18T-2](453)[1T18T6S#####]
[1T18T6S#####]111..(+50)[B6d6DSSDS######][B6d6DSSDS]22(10 3)[](505)[######]
[######]..(+50)[B6d6DSSDS######][B6d6DSSDS]22(10 3)[](557)[######]
[######]..(+34)[PDBSBB####][PDBSBB]2211221111121211222112111222(17 7)111111[](625)[####]
[####]..(+48)[SPDBSS####][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](717)[T18T18T6S####]
[T18T18T6SSS##]2111..(+53)[T6SPDSS##][T6SPDS]2(38 0)111112111211[T-2](783)[T6S##]
[T6S##]11..(+67)[B6d6DSSDS######][B6d6DSSDS]22(10 3)[](852)[######]
[BDD###]..(+14)[S6d6BDD###][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](918)[DDB###]
[DDB###]11212..(+48)[S6d6BDBDD####][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1009)[1B####]
[1BD###]..(+31)[S6d6BDBDD###][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1083)[1B###]
[1BDS#]..(+49)[T6SPDSS#][T6SPDS]2(38 0)111112111211[T-2](1145)[T6S#]
[T6S#]11..(+51)[S6d6BDBDD###][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1239)[1B###]
[1B###]..(+37)[S6d6BDBDD###][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1319)[1B###]
[1B###]..(+37)[PDDDDDS###][PDDDDD]21111112212111121121121121121121221111211121112112111221121211(23 1)2[](1419)[S###]
[S###]..(+55)[PDBSBB######][PDBSBB]2211221111121211222112111222(17 7)111111[](1508)[######]
[SDDD##]..(+29)[S6d6BDSDDD##][S6d6BDSDDD]11221111121121121121111112112122(52 5)11221[H6T14](1574)[H6T22##]
[H6T22D#]11121121..(+55)[S6d6BDSDDD#][S6d6BDSDDD]11221111121121121121111112112122(52 5)11221[H6T14](1666)[H6T22#]
[H6T22#]11121121..(+82)[B6d6DSDDDDD####][B6d6DSDDDDD]21112111111221112211121121121121121121121121111211112112(40 4)2212[](1808)[####]
[####]..(+37)[PDDDDD####][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](1909)[T18T6SD####]
[T18T6SDDS##]21..(+35)[B6d6DBDDBDS##][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](2006)[S##]
[SDD]112112112121..(+12)(2018)[S]
bottomymx:2352 totalCost=1910
(0)[##]
[##]..(+76)[PDBSBB#######][PDBSBB]2211221111121211222112111222(17 7)111111[](110)[#######]
[#######]..(+42)[SPDBSS######][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](196)[T18T18T6S######]
[T18T18T6SDD####]2111..(+15)[S6d6BDD####][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](263)[DDB####]
[DDBB###]1121111..(+52)[T6SPDSS###][T6SPDS]2(38 0)111112111211[T-2](328)[T6S###]
[T6S###]11..(+51)[S6d6BDBDD#####][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](422)[1B#####]
[1B#####]..(+47)[B6d6DSSDS######][B6d6DSSDS]22(10 3)[](471)[######]
[BDS###]..(+42)[B6d6DBDDBDS###][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](575)[S###]
[S###]..(+53)[B6d6DSSDS#####][B6d6DSSDS]22(10 3)[](630)[#####]
[#####]..(+43)[B6d6DSDDSB###][B6d6DSDDSB]2221121121111121121121122(29 6)112222[](704)[###]
[###]..(+43)[PDDDDD####][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](811)[T18T6SD####]
[T18T6SDD###]21..(+13)[S6d6BDD###][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](876)[DDB###]
[DDB###]11212..(+48)[S6d6BDBDD####][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](967)[1B####]
[1B####]..(+43)[PDBSBB#####][PDBSBB]2211221111121211222112111222(17 7)111111[](1044)[#####]
[#####]..(+40)[PDBSBB####][PDBSBB]2211221111121211222112111222(17 7)111111[](1118)[####]
[####]..(+31)[PDDDDD###][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](1213)[T18T6SD###]
[T18T6SDSS#]21..(+45)[T6SPDSS#][T6SPDS]2(38 0)111112111211[T-2](1271)[T6S#]
[T6S#]11..(+57)[PDBSBB####][PDBSBB]2211221111121211222112111222(17 7)111111[](1362)[####]
[####]..(+20)[S6d6BDD##][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](1434)[DDB##]
[DDB##]11212..(+92)[S6d6BDBDDDDB#######][S6d6BDBDDDDB]11212121112112222111122(7 2)11112[T6](1554)[T14#######]
[T14#######]121112..(+43)[B6d6DSSDS#######][B6d6DSSDS]22(10 3)[](1599)[#######]
[#######]..(+44)[B6d6DSSDS######][B6d6DSSDS]22(10 3)[](1645)[######]
[DSS###]..(+52)[T6SPDSS###][T6SPDS]2(38 0)111112111211[T-2](1710)[T6S###]
[T6S###]11..(+69)[B6d6DDSSDDBS####][B6d6DDSSDDB]22(18 4)2112112111111111111111112222121222[](1815)[S####]
[SDDD#]..(+16)[PDDDDDD#][PDDDDDD]2211111211211121211211211221111121112111211111111112(38 1)112111121121121121121111[](1907)[#]
[#]..(+3)(1910)[S]
Total time 103576.0 ms for logLevel 2 in search and Total time 106788.0 ms for logLevel 5 in stackChangeCost. ... interesting logging is not the problem ... maybe some memory leak ang Golly slows down? 113634(5) 111317(2). Going to restart the comp ... and test again ...
OK independently on logLevel 2-5 the times are about 114s. I do not know why the first two attempts were faster.

Back to debugging ... for portion after block 194 failed from distance 150, but worked for (even half distances) 100-148.
Levels.txt

Code: Select all

164
(g0%1)[213]
(g0%1)[216](g0%1)[211]
(g0%1)[209]
(g0%1)[210]
(g0%1)[207]
(g0%1)[195](g0%1)[194](g0%1)[196](g0%1)[197](g0%1)[198](g0%1)[199]
(g0%1)[187]
(g0%2)[184]
(g1%2)[178]
(g0%1)[175](g0%1)[172](g0%1)[173](g0%1)[174]
(g0%1)[188]
(g0%1)[192](g0%1)[193](g0%1)[194](g0%1)[195](g0%1)[196](g0%1)[197]
(g0%1)[186]
(g1%2)[182]
(g1%2)[173]
(g0%2)[183]
Results:

Code: Select all

bottomymx:100 totalCost=1230
(0)[#########]
[#########]..(+70)[PDBSBB#############][PDBSBB]2211221111121211222112111222(17 7)111111[](104)[#############]
[#############]..(+42)[SPDBSS############][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](190)[T18T18T6S############]
[T18T18T6SDD##########]2111..(+15)[S6d6BDD##########][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](257)[DDB##########]
[DDBD#########]112111111..(+52)[T6SPDSS#########][T6SPDS]2(38 0)111112111211[T-2](322)[T6S#########]
[T6S#########]11..(+51)[S6d6BDBDD###########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](416)[1B###########]
[1B###########]..(+47)[B6d6DSSDS############][B6d6DSSDS]22(10 3)[](465)[############]
[BSS#########]..(+30)[SPDBSS#########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](539)[T18T18T6S#########]
[T18T18T6SD########]2111..(+26)[PDDDDD########][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](629)[T18T6SD########]
[T18T6SDDDD#####]21..(+7)[S6d6BDDD#####][S6d6BDDD]111112212211211211211211111212(46 3)21121121121121122111112111222[](695)[#####]
[#####]..(+74)[B6d6DSSDS#########][B6d6DSSDS]22(10 3)[](771)[#########]
[#########]..(+30)[SPBDD########][SPBDD]21222112112112111112112112112112112112112111222211211211211112111122211211211211211(32 4)[SDDS](884)[SDDS########]
[SDDSS#######]1..(+34)[T6SPDSS#######][T6SPDS]2(38 0)111112111211[T-2](931)[T6S#######]
[T6SS######]11..(+57)[T6SPDSS######][T6SPDS]2(38 0)111112111211[T-2](1001)[T6S######]
[T6S######]11..(+67)[B6d6DSSDS##########][B6d6DSSDS]22(10 3)[](1070)[##########]
[##########]..(+34)[PDBSBB########][PDBSBB]2211221111121211222112111222(17 7)111111[](1138)[########]
[DDB#####]..(+39)[PDDDDDDDB#####][PDDDDDDDB]221121122211211212222211122(51 6)22111111112222[1t48](1218)[1t56#####]
[1t56DDDDB]1112121212..(+12)(1230)[S]
bottomymx:102 totalCost=1336
(0)[########]
[########]..(+72)[SPDBSS############][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](116)[T18T18T6S############]
[T18T18T6S############]2111..(+57)[B6d6DSSDS##############][B6d6DSSDS]22(10 3)[](175)[##############]
[BDD###########]..(+28)[S6d6BDBDD###########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](246)[1B###########]
[1B###########]..(+28)[PDDDDD###########][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](338)[T18T6SD###########]
[T18T6SD###########]21..(+39)[PDBSBB############][PDBSBB]2211221111121211222112111222(17 7)111111[](411)[############]
[DDDD########]..(+8)[S6d6BDD########][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](471)[DDB########]
[DDB########]..(+35)[B6d6DSDDSB########][B6d6DSDDSB]2221121121111121121121122(29 6)112222[](537)[########]
[########]..(+70)[B6d6DDSSDDBS########][B6d6DDSSDDB]22(18 4)2112112111111111111111112222121222[](643)[S########]
[SBDDD####]..(+20)[S6d6BDSDDD####][S6d6BDSDDD]11221111121121121121111112112122(52 5)11221[H6T14](700)[H6T22####]
[H6T22####]11121121..(+78)[T6SPDSS####][T6SPDS]2(38 0)111112111211[T-2](791)[T6S####]
[T6S####]11..(+75)[T6SPDSS######][T6SPDS]2(38 0)111112111211[T-2](879)[T6S######]
[T6S######]11..(+73)[B6d6DSSDS###########][B6d6DSSDS]22(10 3)[](954)[###########]
[DDD########]..(+19)[PDDDDD########][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](1037)[T18T6SD########]
[T18T6SDS#######]21..(+41)[B6d6DBDDBDS#######][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](1140)[S#######]
[S#######]..(+28)[PDDDDDD######][PDDDDD]21111112212111121121121121121121221111211121112112111221121211(23 1)2[](1231)[D######]
[D######]..(+50)[B6d6DSDDSS######][B6d6DSDDS]222112111211111111111111212111111(33 0)2[1T-2](1315)[1T6S######]
[1T6SDDDDDB]1211212121212121212..(+21)(1336)[S]
bottomymx:104 totalCost=1235
(0)[########]
[########]..(+44)[S6d6BDD##########][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](96)[DDB##########]
[DDB##########]11212..(+48)[S6d6BDBDD###########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](187)[1B###########]
[1B###########]..(+43)[PDBSBB############][PDBSBB]2211221111121211222112111222(17 7)111111[](264)[############]
[############]..(+56)[B6d6DSSDS#############][B6d6DSSDS]22(10 3)[](322)[#############]
[#############]..(+36)[SPDBSS###########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](402)[T18T18T6S###########]
[T18T18T6S###########]2111..(+45)[B6d6DSSDS###########][B6d6DSSDS]22(10 3)[](449)[###########]
[BDD########]..(+28)[S6d6BDBDD########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](520)[1B########]
[1BDD######]..(+35)[B6d6DSDDDDD######][B6d6DSDDDDD]21112111111221112211121121121121121121121121111211112112(40 4)2212[](615)[######]
[######]..(+68)[B6d6DSSDS#########][B6d6DSSDS]22(10 3)[](685)[#########]
[DDDSS####]1111..(+40)[T6SPDSS####][T6SPDS]2(38 0)111112111211[T-2](738)[T6S####]
[T6S####]11..(+54)[PDDDDD########][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](856)[T18T6SD########]
[T18T6SD########]21..(+55)[B6d6DSSDS###########][B6d6DSSDS]22(10 3)[](913)[###########]
[###########]..(+44)[B6d6DSSDS##########][B6d6DSSDS]22(10 3)[](959)[##########]
[DBDDD#####]..(+8)[S6d6BDDD#####][S6d6BDDD]111112212211211211211211111212(46 3)21121121121121122111112111222[](1026)[#####]
[#####]..(+32)[S6d6BDD#####][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](1110)[DDB#####]
[DDB#####]112..(+36)[PDDDDBS#####][PDDDDB]2112112211111112112112121121121111121121122211121112111111121111111(39 6)2[1T18T18T-2](1214)[1T18T18T6S#####]
[1T18T18T6SDDDDD]2112112121212121212..(+21)(1235)[S]
bottomymx:106 totalCost=1262
(0)[########]
[########]..(+64)[S6d6BDBDD###########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](107)[1B###########]
[1BBS#########]..(+49)[T6SPDSS#########][T6SPDS]2(38 0)111112111211[T-2](169)[T6S#########]
[T6S#########]11..(+53)[SPDBSS###########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](266)[T18T18T6S###########]
[T18T18T6SD##########]2111..(+25)[SPBDD##########][SPBDD]21222112112112111112112112112112112112112111222211211211211112111122211211211211211(32 4)[SDDS](374)[SDDS##########]
[SDDS##########]111111..(+34)[PDBSPSSS##########][PDBSPSS]22211221112111112(21 2)2121112111111121111122[1T18T-2](447)[1T18T6S##########]
[1T18T6S##########]111..(+50)[B6d6DSSDS###########][B6d6DSSDS]22(10 3)[](499)[###########]
[###########]..(+34)[PDBSBB#########][PDBSBB]2211221111121211222112111222(17 7)111111[](567)[#########]
[DDSS#####]..(+46)[T6SPDSS#####][T6SPDS]2(38 0)111112111211[T-2](626)[T6S#####]
[T6S#####]11..(+59)[B6d6DBDDBDS######][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](747)[S######]
[S######]..(+53)[B6d6DSSDS########][B6d6DSSDS]22(10 3)[](802)[########]
[########]..(+62)[B6d6DSSDS##########][B6d6DSSDS]22(10 3)[](866)[##########]
[##########]..(+56)[B6d6DSSDS###########][B6d6DSSDS]22(10 3)[](924)[###########]
[DDDD#######]..(+12)[SPBDD#######][SPBDD]21222112112112111112112112112112112112112111222211211211211112111122211211211211211(32 4)[SDDS](1019)[SDDS#######]
[SDDSDDD####]..(+5)[S6d6BDSDDD####][S6d6BDSDDD]11221111121121121121111112112122(52 5)11221[H6T14](1061)[H6T22####]
[H6T22####]11121121..(+66)[S6d6BDBDD######][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1170)[1B######]
[1B######]..(+22)[PDDDD######][PDDDD]2112112121121121111121211111121121121121121112111121122(37 6)212[1](1250)[1######]
[1DDDDDB]1212121212..(+12)(1262)[S]
bottomymx:108 totalCost=1228
(0)[########]
[########]..(+70)[PDBSBB############][PDBSBB]2211221111121211222112111222(17 7)111111[](104)[############]
[############]..(+42)[SPDBSS###########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](190)[T18T18T6S###########]
[T18T18T6SDD#########]2111..(+15)[S6d6BDD#########][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](257)[DDB#########]
[DDBB########]1121111..(+52)[T6SPDSS########][T6SPDS]2(38 0)111112111211[T-2](322)[T6S########]
[T6S########]11..(+51)[S6d6BDBDD##########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](416)[1B##########]
[1B##########]..(+47)[B6d6DSSDS###########][B6d6DSSDS]22(10 3)[](465)[###########]
[BSS########]..(+30)[SPDBSS########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](539)[T18T18T6S########]
[T18T18T6SD#######]2111..(+26)[PDDDDD#######][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](629)[T18T6SD#######]
[T18T6SDDDD####]21..(+7)[S6d6BDDD####][S6d6BDDD]111112212211211211211211111212(46 3)21121121121121122111112111222[](695)[####]
[####]..(+74)[B6d6DSSDS########][B6d6DSSDS]22(10 3)[](771)[########]
[########]..(+30)[SPBDD#######][SPBDD]21222112112112111112112112112112112112112111222211211211211112111122211211211211211(32 4)[SDDS](884)[SDDS#######]
[SDDSS######]1..(+34)[T6SPDSS######][T6SPDS]2(38 0)111112111211[T-2](931)[T6S######]
[T6SD#####]11..(+57)[T6SPDSS#####][T6SPDS]2(38 0)111112111211[T-2](1001)[T6S#####]
[T6S#####]11..(+67)[B6d6DSSDS#########][B6d6DSSDS]22(10 3)[](1070)[#########]
[#########]..(+34)[PDBSBB#######][PDBSBB]2211221111121211222112111222(17 7)111111[](1138)[#######]
[DDB####]..(+39)[PDDDDDDDB####][PDDDDDDDB]221121122211211212222211122(51 6)22111111112222[1t48](1218)[1t56####]
[1t56DDDD]11121212..(+10)(1228)[S]
bottomymx:110 totalCost=1334
(0)[#######]
[#######]..(+72)[SPDBSS###########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](116)[T18T18T6S###########]
[T18T18T6S###########]2111..(+57)[B6d6DSSDS#############][B6d6DSSDS]22(10 3)[](175)[#############]
[BDD##########]..(+28)[S6d6BDBDD##########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](246)[1B##########]
[1B##########]..(+28)[PDDDDD##########][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](338)[T18T6SD##########]
[T18T6SD##########]21..(+39)[PDBSBB###########][PDBSBB]2211221111121211222112111222(17 7)111111[](411)[###########]
[DDDD#######]..(+8)[S6d6BDD#######][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](471)[DDB#######]
[DDB#######]..(+35)[B6d6DSDDSB#######][B6d6DSDDSB]2221121121111121121121122(29 6)112222[](537)[#######]
[#######]..(+70)[B6d6DDSSDDBS#######][B6d6DDSSDDB]22(18 4)2112112111111111111111112222121222[](643)[S#######]
[SSDDD###]..(+20)[S6d6BDSDDD###][S6d6BDSDDD]11221111121121121121111112112122(52 5)11221[H6T14](700)[H6T22###]
[H6T22###]11121121..(+78)[T6SPDSS###][T6SPDS]2(38 0)111112111211[T-2](791)[T6S###]
[T6S###]11..(+75)[T6SPDSS#####][T6SPDS]2(38 0)111112111211[T-2](879)[T6S#####]
[T6S#####]11..(+73)[B6d6DSSDS##########][B6d6DSSDS]22(10 3)[](954)[##########]
[DDD#######]..(+19)[PDDDDD#######][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](1037)[T18T6SD#######]
[T18T6SDS######]21..(+41)[B6d6DBDDBDS######][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](1140)[S######]
[S######]..(+31)[PDDDDDS#####][PDDDDD]21111112212111121121121121121121221111211121112112111221121211(23 1)2[](1234)[S#####]
[S#####]..(+47)[B6d6DSDDSS#####][B6d6DSDDS]222112111211111111111111212111111(33 0)2[1T-2](1315)[1T6S#####]
[1T6SDDDDD]12112121212121212..(+19)(1334)[S]
bottomymx:112 totalCost=1233
(0)[#######]
[#######]..(+44)[S6d6BDD#########][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](96)[DDB#########]
[DDB#########]11212..(+48)[S6d6BDBDD##########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](187)[1B##########]
[1B##########]..(+43)[PDBSBB###########][PDBSBB]2211221111121211222112111222(17 7)111111[](264)[###########]
[###########]..(+56)[B6d6DSSDS############][B6d6DSSDS]22(10 3)[](322)[############]
[############]..(+36)[SPDBSS##########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](402)[T18T18T6S##########]
[T18T18T6S##########]2111..(+45)[B6d6DSSDS##########][B6d6DSSDS]22(10 3)[](449)[##########]
[BDD#######]..(+28)[S6d6BDBDD#######][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](520)[1B#######]
[1BDD#####]..(+35)[B6d6DSDDDDD#####][B6d6DSDDDDD]21112111111221112211121121121121121121121121111211112112(40 4)2212[](615)[#####]
[#####]..(+68)[B6d6DSSDS########][B6d6DSSDS]22(10 3)[](685)[########]
[DDDSS###]1111..(+40)[T6SPDSS###][T6SPDS]2(38 0)111112111211[T-2](738)[T6S###]
[T6S###]11..(+54)[PDDDDD#######][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](856)[T18T6SD#######]
[T18T6SD#######]21..(+55)[B6d6DSSDS##########][B6d6DSSDS]22(10 3)[](913)[##########]
[##########]..(+44)[B6d6DSSDS#########][B6d6DSSDS]22(10 3)[](959)[#########]
[DDDDD####]..(+8)[S6d6BDDD####][S6d6BDDD]111112212211211211211211111212(46 3)21121121121121122111112111222[](1026)[####]
[####]..(+32)[S6d6BDD####][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](1110)[DDB####]
[DDB####]112..(+36)[PDDDDBS####][PDDDDB]2112112211111112112112121121121111121121122211121112111111121111111(39 6)2[1T18T18T-2](1214)[1T18T18T6S####]
[1T18T18T6SDDDB]21121121212121212..(+19)(1233)[S]
bottomymx:114 totalCost=1260
(0)[#######]
[#######]..(+64)[S6d6BDBDD##########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](107)[1B##########]
[1BBS########]..(+49)[T6SPDSS########][T6SPDS]2(38 0)111112111211[T-2](169)[T6S########]
[T6S########]11..(+53)[SPDBSS##########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](266)[T18T18T6S##########]
[T18T18T6SD#########]2111..(+25)[SPBDD#########][SPBDD]21222112112112111112112112112112112112112111222211211211211112111122211211211211211(32 4)[SDDS](374)[SDDS#########]
[SDDS#########]111111..(+34)[PDBSPSSS#########][PDBSPSS]22211221112111112(21 2)2121112111111121111122[1T18T-2](447)[1T18T6S#########]
[1T18T6S#########]111..(+50)[B6d6DSSDS##########][B6d6DSSDS]22(10 3)[](499)[##########]
[##########]..(+34)[PDBSBB########][PDBSBB]2211221111121211222112111222(17 7)111111[](567)[########]
[DDSS####]..(+46)[T6SPDSS####][T6SPDS]2(38 0)111112111211[T-2](626)[T6S####]
[T6S####]11..(+59)[B6d6DBDDBDS#####][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](747)[S#####]
[S#####]..(+53)[B6d6DSSDS#######][B6d6DSSDS]22(10 3)[](802)[#######]
[#######]..(+62)[B6d6DSSDS#########][B6d6DSSDS]22(10 3)[](866)[#########]
[#########]..(+56)[B6d6DSSDS##########][B6d6DSSDS]22(10 3)[](924)[##########]
[DBDD######]..(+12)[SPBDD######][SPBDD]21222112112112111112112112112112112112112111222211211211211112111122211211211211211(32 4)[SDDS](1019)[SDDS######]
[SDDSDDD###]..(+5)[S6d6BDSDDD###][S6d6BDSDDD]11221111121121121121111112112122(52 5)11221[H6T14](1061)[H6T22###]
[H6T22###]11121121..(+66)[S6d6BDBDD#####][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1170)[1B#####]
[1B#####]..(+22)[PDDDD#####][PDDDD]2112112121121121111121211111121121121121121112111121122(37 6)212[1](1250)[1#####]
[1DDDDB]12121212..(+10)(1260)[S]
bottomymx:116 totalCost=1226
(0)[#######]
[#######]..(+70)[PDBSBB###########][PDBSBB]2211221111121211222112111222(17 7)111111[](104)[###########]
[###########]..(+42)[SPDBSS##########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](190)[T18T18T6S##########]
[T18T18T6SDD########]2111..(+15)[S6d6BDD########][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](257)[DDB########]
[DDBB#######]1121111..(+52)[T6SPDSS#######][T6SPDS]2(38 0)111112111211[T-2](322)[T6S#######]
[T6S#######]11..(+51)[S6d6BDBDD#########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](416)[1B#########]
[1B#########]..(+47)[B6d6DSSDS##########][B6d6DSSDS]22(10 3)[](465)[##########]
[BSS#######]..(+30)[SPDBSS#######][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](539)[T18T18T6S#######]
[T18T18T6SD######]2111..(+26)[PDDDDD######][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](629)[T18T6SD######]
[T18T6SDDDD###]21..(+7)[S6d6BDDD###][S6d6BDDD]111112212211211211211211111212(46 3)21121121121121122111112111222[](695)[###]
[###]..(+74)[B6d6DSSDS#######][B6d6DSSDS]22(10 3)[](771)[#######]
[#######]..(+30)[SPBDD######][SPBDD]21222112112112111112112112112112112112112111222211211211211112111122211211211211211(32 4)[SDDS](884)[SDDS######]
[SDDSS#####]1..(+34)[T6SPDSS#####][T6SPDS]2(38 0)111112111211[T-2](931)[T6S#####]
[T6SS####]11..(+57)[T6SPDSS####][T6SPDS]2(38 0)111112111211[T-2](1001)[T6S####]
[T6S####]11..(+67)[B6d6DSSDS########][B6d6DSSDS]22(10 3)[](1070)[########]
[########]..(+34)[PDBSBB######][PDBSBB]2211221111121211222112111222(17 7)111111[](1138)[######]
[DDB###]..(+39)[PDDDDDDDB###][PDDDDDDDB]221121122211211212222211122(51 6)22111111112222[1t48](1218)[1t56###]
[1t56DDD]111212..(+8)(1226)[S]
bottomymx:118 totalCost=1327
(0)[######]
[######]..(+72)[SPDBSS##########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](116)[T18T18T6S##########]
[T18T18T6S##########]2111..(+57)[B6d6DSSDS############][B6d6DSSDS]22(10 3)[](175)[############]
[BDD#########]..(+28)[S6d6BDBDD#########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](246)[1B#########]
[1B#########]..(+28)[PDDDDD#########][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](338)[T18T6SD#########]
[T18T6SD#########]21..(+39)[PDBSBB##########][PDBSBB]2211221111121211222112111222(17 7)111111[](411)[##########]
[DDDSS#####]1111..(+40)[T6SPDSS#####][T6SPDS]2(38 0)111112111211[T-2](464)[T6S#####]
[T6S#####]11..(+44)[PDDDDB#######][PDDDD]21111121121122211211211211111211121211222222111211(13 1)[S6d-2](558)[S6d6B#######]
[S6d6BS######]2..(+44)[B6d6DDSSDDBS######][B6d6DDSSDDB]22(18 4)2112112111111111111111112222121222[](638)[S######]
[SSDDD##]..(+20)[S6d6BDSDDD##][S6d6BDSDDD]11221111121121121121111112112122(52 5)11221[H6T14](695)[H6T22##]
[H6T22##]11121121..(+78)[T6SPDSS##][T6SPDS]2(38 0)111112111211[T-2](786)[T6S##]
[T6S##]11..(+75)[T6SPDSS####][T6SPDS]2(38 0)111112111211[T-2](874)[T6S####]
[T6S####]11..(+73)[B6d6DSSDS#########][B6d6DSSDS]22(10 3)[](949)[#########]
[DDD######]..(+19)[PDDDDD######][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](1032)[T18T6SD######]
[T18T6SDS#####]21..(+41)[B6d6DBDDBDS#####][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](1135)[S#####]
[S#####]..(+28)[PDDDDDD####][PDDDDD]21111112212111121121121121121121221111211121112112111221121211(23 1)2[](1226)[D####]
[D####]..(+50)[B6d6DSDDSS####][B6d6DSDDS]222112111211111111111111212111111(33 0)2[1T-2](1310)[1T6S####]
[1T6SDDDD]121121212121212..(+17)(1327)[S]
bottomymx:120 totalCost=1227
(0)[######]
[######]..(+44)[S6d6BDD########][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](96)[DDB########]
[DDB########]11212..(+48)[S6d6BDBDD#########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](187)[1B#########]
[1B#########]..(+43)[PDBSBB##########][PDBSBB]2211221111121211222112111222(17 7)111111[](264)[##########]
[##########]..(+56)[B6d6DSSDS###########][B6d6DSSDS]22(10 3)[](322)[###########]
[###########]..(+36)[SPDBSS#########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](402)[T18T18T6S#########]
[T18T18T6S#########]2111..(+45)[B6d6DSSDS#########][B6d6DSSDS]22(10 3)[](449)[#########]
[BDD######]..(+28)[S6d6BDBDD######][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](520)[1B######]
[1BDD####]..(+35)[B6d6DSDDDDD####][B6d6DSDDDDD]21112111111221112211121121121121121121121121111211112112(40 4)2212[](615)[####]
[####]..(+68)[B6d6DSSDS#######][B6d6DSSDS]22(10 3)[](685)[#######]
[DDDSS##]1111..(+40)[T6SPDSS##][T6SPDS]2(38 0)111112111211[T-2](738)[T6S##]
[T6S##]11..(+54)[PDDDDD######][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](856)[T18T6SD######]
[T18T6SD######]21..(+55)[B6d6DSSDS#########][B6d6DSSDS]22(10 3)[](913)[#########]
[#########]..(+44)[B6d6DSSDS########][B6d6DSSDS]22(10 3)[](959)[########]
[DBDDD###]..(+8)[S6d6BDDD###][S6d6BDDD]111112212211211211211211111212(46 3)21121121121121122111112111222[](1026)[###]
[###]..(+32)[S6d6BDD###][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](1110)[DDB###]
[DDB###]112..(+36)[PDDDDBS###][PDDDDB]2112112211111112112112121121121111121121122211121112111111121111111(39 6)2[1T18T18T-2](1214)[1T18T18T6S###]
[1T18T18T6SDDS]2111111212..(+13)(1227)[S]
bottomymx:122 totalCost=1258
(0)[######]
[######]..(+64)[S6d6BDBDD#########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](107)[1B#########]
[1BDS#######]..(+49)[T6SPDSS#######][T6SPDS]2(38 0)111112111211[T-2](169)[T6S#######]
[T6S#######]11..(+53)[SPDBSS#########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](266)[T18T18T6S#########]
[T18T18T6SD########]2111..(+25)[SPBDD########][SPBDD]21222112112112111112112112112112112112112111222211211211211112111122211211211211211(32 4)[SDDS](374)[SDDS########]
[SDDS########]111111..(+34)[PDBSPSSS########][PDBSPSS]22211221112111112(21 2)2121112111111121111122[1T18T-2](447)[1T18T6S########]
[1T18T6S########]111..(+50)[B6d6DSSDS#########][B6d6DSSDS]22(10 3)[](499)[#########]
[#########]..(+34)[PDBSBB#######][PDBSBB]2211221111121211222112111222(17 7)111111[](567)[#######]
[DDSS###]..(+46)[T6SPDSS###][T6SPDS]2(38 0)111112111211[T-2](626)[T6S###]
[T6S###]11..(+59)[B6d6DBDDBDS####][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](747)[S####]
[S####]..(+53)[B6d6DSSDS######][B6d6DSSDS]22(10 3)[](802)[######]
[######]..(+62)[B6d6DSSDS########][B6d6DSSDS]22(10 3)[](866)[########]
[########]..(+56)[B6d6DSSDS#########][B6d6DSSDS]22(10 3)[](924)[#########]
[DDDD#####]..(+12)[SPBDD#####][SPBDD]21222112112112111112112112112112112112112111222211211211211112111122211211211211211(32 4)[SDDS](1019)[SDDS#####]
[SDDSDDD##]..(+5)[S6d6BDSDDD##][S6d6BDSDDD]11221111121121121121111112112122(52 5)11221[H6T14](1061)[H6T22##]
[H6T22##]11121121..(+66)[S6d6BDBDD####][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1170)[1B####]
[1B####]..(+22)[PDDDD####][PDDDD]2112112121121121111121211111121121121121121112111121122(37 6)212[1](1250)[1####]
[1DDDD]121212..(+8)(1258)[S]
bottomymx:124 totalCost=1224
(0)[######]
[######]..(+70)[PDBSBB##########][PDBSBB]2211221111121211222112111222(17 7)111111[](104)[##########]
[##########]..(+42)[SPDBSS#########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](190)[T18T18T6S#########]
[T18T18T6SDD#######]2111..(+15)[S6d6BDD#######][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](257)[DDB#######]
[DDBS######]112..(+52)[T6SPDSS######][T6SPDS]2(38 0)111112111211[T-2](322)[T6S######]
[T6S######]11..(+51)[S6d6BDBDD########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](416)[1B########]
[1B########]..(+47)[B6d6DSSDS#########][B6d6DSSDS]22(10 3)[](465)[#########]
[BSS######]..(+30)[SPDBSS######][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](539)[T18T18T6S######]
[T18T18T6SD#####]2111..(+26)[PDDDDD#####][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](629)[T18T6SD#####]
[T18T6SDDDD##]21..(+7)[S6d6BDDD##][S6d6BDDD]111112212211211211211211111212(46 3)21121121121121122111112111222[](695)[##]
[##]..(+74)[B6d6DSSDS######][B6d6DSSDS]22(10 3)[](771)[######]
[######]..(+30)[SPBDD#####][SPBDD]21222112112112111112112112112112112112112111222211211211211112111122211211211211211(32 4)[SDDS](884)[SDDS#####]
[SDDSS####]1..(+34)[T6SPDSS####][T6SPDS]2(38 0)111112111211[T-2](931)[T6S####]
[T6SB###]11..(+57)[T6SPDSS###][T6SPDS]2(38 0)111112111211[T-2](1001)[T6S###]
[T6S###]11..(+67)[B6d6DSSDS#######][B6d6DSSDS]22(10 3)[](1070)[#######]
[#######]..(+34)[PDBSBB#####][PDBSBB]2211221111121211222112111222(17 7)111111[](1138)[#####]
[DDB##]..(+39)[PDDDDDDDB##][PDDDDDDDB]221121122211211212222211122(51 6)22111111112222[1t48](1218)[1t56##]
[1t56DB]1112..(+6)(1224)[S]
bottomymx:126 totalCost=1326
(0)[#####]
[#####]..(+72)[SPDBSS#########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](116)[T18T18T6S#########]
[T18T18T6S#########]2111..(+57)[B6d6DSSDS###########][B6d6DSSDS]22(10 3)[](175)[###########]
[BDD########]..(+28)[S6d6BDBDD########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](246)[1B########]
[1B########]..(+28)[PDDDDD########][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](338)[T18T6SD########]
[T18T6SD########]21..(+39)[PDBSBB#########][PDBSBB]2211221111121211222112111222(17 7)111111[](411)[#########]
[DDDD#####]..(+8)[S6d6BDD#####][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](471)[DDB#####]
[DDB#####]..(+35)[B6d6DSDDSB#####][B6d6DSDDSB]2221121121111121121121122(29 6)112222[](537)[#####]
[#####]..(+70)[B6d6DDSSDDBS#####][B6d6DDSSDDB]22(18 4)2112112111111111111111112222121222[](643)[S#####]
[SDDDD#]..(+20)[S6d6BDSDDD#][S6d6BDSDDD]11221111121121121121111112112122(52 5)11221[H6T14](700)[H6T22#]
[H6T22#]11121121..(+78)[T6SPDSS#][T6SPDS]2(38 0)111112111211[T-2](791)[T6S#]
[T6S#]11..(+75)[T6SPDSS###][T6SPDS]2(38 0)111112111211[T-2](879)[T6S###]
[T6S###]11..(+73)[B6d6DSSDS########][B6d6DSSDS]22(10 3)[](954)[########]
[DDD#####]..(+19)[PDDDDD#####][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](1037)[T18T6SD#####]
[T18T6SDS####]21..(+41)[B6d6DBDDBDS####][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](1140)[S####]
[S####]..(+31)[PDDDDDS###][PDDDDD]21111112212111121121121121121121221111211121112112111221121211(23 1)2[](1234)[S###]
[S###]..(+47)[B6d6DSDDSS###][B6d6DSDDS]222112111211111111111111212111111(33 0)2[1T-2](1315)[1T6S###]
[1T6SDDS]11111212..(+11)(1326)[S]
bottomymx:128 totalCost=1229
(0)[#####]
[#####]..(+44)[S6d6BDD#######][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](96)[DDB#######]
[DDB#######]11212..(+48)[S6d6BDBDD########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](187)[1B########]
[1B########]..(+43)[PDBSBB#########][PDBSBB]2211221111121211222112111222(17 7)111111[](264)[#########]
[#########]..(+56)[B6d6DSSDS##########][B6d6DSSDS]22(10 3)[](322)[##########]
[##########]..(+36)[SPDBSS########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](402)[T18T18T6S########]
[T18T18T6S########]2111..(+45)[B6d6DSSDS########][B6d6DSSDS]22(10 3)[](449)[########]
[BDD#####]..(+28)[S6d6BDBDD#####][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](520)[1B#####]
[1BDD###]..(+35)[B6d6DSDDDDD###][B6d6DSDDDDD]21112111111221112211121121121121121121121121111211112112(40 4)2212[](615)[###]
[###]..(+68)[B6d6DSSDS######][B6d6DSSDS]22(10 3)[](685)[######]
[DDDSS#]1111..(+40)[T6SPDSS#][T6SPDS]2(38 0)111112111211[T-2](738)[T6S#]
[T6S#]11..(+54)[PDDDDD#####][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](856)[T18T6SD#####]
[T18T6SD#####]21..(+55)[B6d6DSSDS########][B6d6DSSDS]22(10 3)[](913)[########]
[########]..(+44)[B6d6DSSDS#######][B6d6DSSDS]22(10 3)[](959)[#######]
[DDDDD##]..(+8)[S6d6BDDD##][S6d6BDDD]111112212211211211211211111212(46 3)21121121121121122111112111222[](1026)[##]
[##]..(+32)[S6d6BDD##][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](1110)[DDB##]
[DDB##]112..(+36)[PDDDDBS##][PDDDDB]2112112211111112112112121121121111121121122211121112111111121111111(39 6)2[1T18T18T-2](1214)[1T18T18T6S##]
[1T18T18T6SDD]211112112112121..(+15)(1229)[S]
bottomymx:130 totalCost=1256
(0)[#####]
[#####]..(+64)[S6d6BDBDD########][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](107)[1B########]
[1BSS######]..(+49)[T6SPDSS######][T6SPDS]2(38 0)111112111211[T-2](169)[T6S######]
[T6S######]11..(+53)[SPDBSS########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](266)[T18T18T6S########]
[T18T18T6SD#######]2111..(+25)[SPBDD#######][SPBDD]21222112112112111112112112112112112112112111222211211211211112111122211211211211211(32 4)[SDDS](374)[SDDS#######]
[SDDS#######]111111..(+34)[PDBSPSSS#######][PDBSPSS]22211221112111112(21 2)2121112111111121111122[1T18T-2](447)[1T18T6S#######]
[1T18T6S#######]111..(+50)[B6d6DSSDS########][B6d6DSSDS]22(10 3)[](499)[########]
[########]..(+34)[PDBSBB######][PDBSBB]2211221111121211222112111222(17 7)111111[](567)[######]
[DDSS##]..(+46)[T6SPDSS##][T6SPDS]2(38 0)111112111211[T-2](626)[T6S##]
[T6S##]11..(+59)[B6d6DBDDBDS###][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](747)[S###]
[S###]..(+53)[B6d6DSSDS#####][B6d6DSSDS]22(10 3)[](802)[#####]
[#####]..(+62)[B6d6DSSDS#######][B6d6DSSDS]22(10 3)[](866)[#######]
[#######]..(+56)[B6d6DSSDS########][B6d6DSSDS]22(10 3)[](924)[########]
[DDDD####]..(+12)[SPBDD####][SPBDD]21222112112112111112112112112112112112112111222211211211211112111122211211211211211(32 4)[SDDS](1019)[SDDS####]
[SDDSDDD#]..(+5)[S6d6BDSDDD#][S6d6BDSDDD]11221111121121121121111112112122(52 5)11221[H6T14](1061)[H6T22#]
[H6T22#]11121121..(+66)[S6d6BDBDD###][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1170)[1B###]
[1B###]..(+22)[PDDDD###][PDDDD]2112112121121121111121211111121121121121121112111121122(37 6)212[1](1250)[1###]
[1DDD]1212..(+6)(1256)[S]
bottomymx:132 totalCost=1222
(0)[#####]
[#####]..(+70)[PDBSBB#########][PDBSBB]2211221111121211222112111222(17 7)111111[](104)[#########]
[#########]..(+42)[SPDBSS########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](190)[T18T18T6S########]
[T18T18T6SDD######]2111..(+15)[S6d6BDD######][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](257)[DDB######]
[DDBS#####]112..(+52)[T6SPDSS#####][T6SPDS]2(38 0)111112111211[T-2](322)[T6S#####]
[T6S#####]11..(+51)[S6d6BDBDD#######][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](416)[1B#######]
[1B#######]..(+47)[B6d6DSSDS########][B6d6DSSDS]22(10 3)[](465)[########]
[BSS#####]..(+30)[SPDBSS#####][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](539)[T18T18T6S#####]
[T18T18T6SD####]2111..(+26)[PDDDDD####][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](629)[T18T6SD####]
[T18T6SDDDD#]21..(+7)[S6d6BDDD#][S6d6BDDD]111112212211211211211211111212(46 3)21121121121121122111112111222[](695)[#]
[#]..(+74)[B6d6DSSDS#####][B6d6DSSDS]22(10 3)[](771)[#####]
[#####]..(+30)[SPBDD####][SPBDD]21222112112112111112112112112112112112112111222211211211211112111122211211211211211(32 4)[SDDS](884)[SDDS####]
[SDDSS###]1..(+34)[T6SPDSS###][T6SPDS]2(38 0)111112111211[T-2](931)[T6S###]
[T6SS##]11..(+57)[T6SPDSS##][T6SPDS]2(38 0)111112111211[T-2](1001)[T6S##]
[T6S##]11..(+67)[B6d6DSSDS######][B6d6DSSDS]22(10 3)[](1070)[######]
[######]..(+34)[PDBSBB####][PDBSBB]2211221111121211222112111222(17 7)111111[](1138)[####]
[DDB#]..(+39)[PDDDDDDDB#][PDDDDDDDB]221121122211211212222211122(51 6)22111111112222[1t48](1218)[1t56#]
[1t56D]1..(+4)(1222)[S]
bottomymx:134 totalCost=1350
(0)[####]
[####]..(+72)[SPDBSS########][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](116)[T18T18T6S########]
[T18T18T6S########]2111..(+57)[B6d6DSSDS##########][B6d6DSSDS]22(10 3)[](175)[##########]
[BDD#######]..(+28)[S6d6BDBDD#######][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](246)[1B#######]
[1B#######]..(+28)[PDDDDD#######][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](338)[T18T6SD#######]
[T18T6SD#######]21..(+39)[PDBSBB########][PDBSBB]2211221111121211222112111222(17 7)111111[](411)[########]
[DDDD####]..(+8)[S6d6BDD####][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](471)[DDB####]
[DDB####]..(+35)[B6d6DSDDSB####][B6d6DSDDSB]2221121121111121121121122(29 6)112222[](537)[####]
[####]..(+70)[B6d6DDSSDDBS####][B6d6DDSSDDB]22(18 4)2112112111111111111111112222121222[](643)[S####]
[S####]..(+53)[B6d6DSDDDSS####][B6d6DSDDDSS]211121121211121112221211211211212222212111211211211(20 5)1112211[](754)[####]
[DDSS]..(+46)[T6SPDSS][T6SPDS]2(38 0)111112111211[T-2](813)[T6S]
[T6S]11..(+75)[T6SPDSS##][T6SPDS]2(38 0)111112111211[T-2](901)[T6S##]
[T6S##]11..(+73)[B6d6DSSDS#######][B6d6DSSDS]22(10 3)[](976)[#######]
[DDD####]..(+19)[PDDDDD####][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](1059)[T18T6SD####]
[T18T6SDS###]21..(+41)[B6d6DBDDBDS###][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](1162)[S###]
[S###]..(+28)[PDDDDDD##][PDDDDD]21111112212111121121121121121121221111211121112112111221121211(23 1)2[](1253)[D##]
[D##]..(+50)[B6d6DSDDSS##][B6d6DSDDS]222112111211111111111111212111111(33 0)2[1T-2](1337)[1T6S##]
[1T6SDB]12112121212..(+13)(1350)[S]
bottomymx:136 totalCost=1227
(0)[####]
[####]..(+44)[S6d6BDD######][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](96)[DDB######]
[DDB######]11212..(+48)[S6d6BDBDD#######][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](187)[1B#######]
[1B#######]..(+43)[PDBSBB########][PDBSBB]2211221111121211222112111222(17 7)111111[](264)[########]
[########]..(+56)[B6d6DSSDS#########][B6d6DSSDS]22(10 3)[](322)[#########]
[#########]..(+36)[SPDBSS#######][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](402)[T18T18T6S#######]
[T18T18T6S#######]2111..(+45)[B6d6DSSDS#######][B6d6DSSDS]22(10 3)[](449)[#######]
[BDD####]..(+28)[S6d6BDBDD####][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](520)[1B####]
[1BDD##]..(+35)[B6d6DSDDDDD##][B6d6DSDDDDD]21112111111221112211121121121121121121121121111211112112(40 4)2212[](615)[##]
[##]..(+68)[B6d6DSSDS#####][B6d6DSSDS]22(10 3)[](685)[#####]
[DDDSS]1111..(+40)[T6SPDSS][T6SPDS]2(38 0)111112111211[T-2](738)[T6S]
[T6S]11..(+54)[PDDDDD####][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](856)[T18T6SD####]
[T18T6SD####]21..(+55)[B6d6DSSDS#######][B6d6DSSDS]22(10 3)[](913)[#######]
[#######]..(+44)[B6d6DSSDS######][B6d6DSSDS]22(10 3)[](959)[######]
[DBDDD#]..(+8)[S6d6BDDD#][S6d6BDDD]111112212211211211211211111212(46 3)21121121121121122111112111222[](1026)[#]
[#]..(+32)[S6d6BDD#][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](1110)[DDB#]
[DDB#]112..(+36)[PDDDDBS#][PDDDDB]2112112211111112112112121121121111121121122211121112111111121111111(39 6)2[1T18T18T-2](1214)[1T18T18T6S#]
[1T18T18T6SB]21121121212..(+13)(1227)[S]
bottomymx:138 totalCost=1300
(0)[####]
[####]..(+64)[S6d6BDBDD#######][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](107)[1B#######]
[1BSS#####]..(+49)[T6SPDSS#####][T6SPDS]2(38 0)111112111211[T-2](169)[T6S#####]
[T6S#####]11..(+53)[SPDBSS#######][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](266)[T18T18T6S#######]
[T18T18T6SD######]2111..(+25)[SPBDD######][SPBDD]21222112112112111112112112112112112112112111222211211211211112111122211211211211211(32 4)[SDDS](374)[SDDS######]
[SDDS######]111111..(+34)[PDBSPSSS######][PDBSPSS]22211221112111112(21 2)2121112111111121111122[1T18T-2](447)[1T18T6S######]
[1T18T6S######]111..(+50)[B6d6DSSDS#######][B6d6DSSDS]22(10 3)[](499)[#######]
[#######]..(+34)[PDBSBB#####][PDBSBB]2211221111121211222112111222(17 7)111111[](567)[#####]
[DDSS#]..(+46)[T6SPDSS#][T6SPDS]2(38 0)111112111211[T-2](626)[T6S#]
[T6S#]11..(+59)[B6d6DBDDBDS##][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](747)[S##]
[S##]..(+53)[B6d6DSSDS####][B6d6DSSDS]22(10 3)[](802)[####]
[####]..(+62)[B6d6DSSDS######][B6d6DSSDS]22(10 3)[](866)[######]
[######]..(+56)[B6d6DSSDS#######][B6d6DSSDS]22(10 3)[](924)[#######]
[DBDS###]..(+36)[B6d6DBDDBDS###][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](1022)[S###]
[S###]..(+59)[B6d6DSDDDSS####][B6d6DSDDDSS]211121121211121112221211211211212222212111211211211(20 5)1112211[](1139)[####]
[####]..(+34)[S6d6BDBDD##][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1216)[1B##]
[1B##]..(+22)[PDDDD##][PDDDD]2112112121121121111121211111121121121121121112111121122(37 6)212[1](1296)[1##]
[1DD]12..(+4)(1300)[S]
bottomymx:140 totalCost=1228
(0)[####]
[####]..(+70)[PDBSBB########][PDBSBB]2211221111121211222112111222(17 7)111111[](104)[########]
[########]..(+42)[SPDBSS#######][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](190)[T18T18T6S#######]
[T18T18T6SDD#####]2111..(+15)[S6d6BDD#####][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](257)[DDB#####]
[DDBD####]112111111..(+52)[T6SPDSS####][T6SPDS]2(38 0)111112111211[T-2](322)[T6S####]
[T6S####]11..(+51)[S6d6BDBDD######][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](416)[1B######]
[1B######]..(+47)[B6d6DSSDS#######][B6d6DSSDS]22(10 3)[](465)[#######]
[BSS####]..(+30)[SPDBSS####][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](539)[T18T18T6S####]
[T18T18T6SD###]2111..(+26)[PDDDDD###][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](629)[T18T6SD###]
[T18T6SD###]21..(+31)[S6d6BDD#####][S6d6BDD]111211212112112112111112111211121111211211221121121211211221(6 5)12[h4t6](722)[h4t14#####]
[h4t14B####]11111111121..(+55)[B6d6DSSDS####][B6d6DSSDS]22(10 3)[](779)[####]
[####]..(+30)[SPBDD###][SPBDD]21222112112112111112112112112112112112112111222211211211211112111122211211211211211(32 4)[SDDS](892)[SDDS###]
[SDDSS##]1..(+34)[T6SPDSS##][T6SPDS]2(38 0)111112111211[T-2](939)[T6S##]
[T6SD#]11..(+57)[T6SPDSS#][T6SPDS]2(38 0)111112111211[T-2](1009)[T6S#]
[T6S#]11..(+67)[B6d6DSSDS#####][B6d6DSSDS]22(10 3)[](1078)[#####]
[#####]..(+34)[PDBSBB###][PDBSBB]2211221111121211222112111222(17 7)111111[](1146)[###]
[###]..(+37)[PDDDDDDD#][PDDDDDDD]221121122211211212222111122(43 6)22111111112222[1t40](1224)[1t48#]
[1t48D]1..(+4)(1228)[S]
bottomymx:142 totalCost=1352
(0)[###]
[###]..(+72)[SPDBSS#######][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](116)[T18T18T6S#######]
[T18T18T6S#######]2111..(+57)[B6d6DSSDS#########][B6d6DSSDS]22(10 3)[](175)[#########]
[BDD######]..(+28)[S6d6BDBDD######][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](246)[1B######]
[1B######]..(+28)[PDDDDD######][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](338)[T18T6SD######]
[T18T6SD######]21..(+39)[PDBSBB#######][PDBSBB]2211221111121211222112111222(17 7)111111[](411)[#######]
[DBDD###]..(+8)[S6d6BDD###][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](471)[DDB###]
[DDB###]..(+35)[B6d6DSDDSB###][B6d6DSDDSB]2221121121111121121121122(29 6)112222[](537)[###]
[###]..(+70)[B6d6DDSSDDBS###][B6d6DDSSDDB]22(18 4)2112112111111111111111112222121222[](643)[S###]
[S###]..(+53)[B6d6DSDDDSS###][B6d6DSDDDSS]211121121211121112221211211211212222212111211211211(20 5)1112211[](754)[###]
[###]..(+46)[PDBSBB###][PDBSBB]2211221111121211222112111222(17 7)111111[](834)[###]
[###]..(+58)[T6SPDSS#][T6SPDS]2(38 0)111112111211[T-2](905)[T6S#]
[T6S#]11..(+73)[B6d6DSSDS######][B6d6DSSDS]22(10 3)[](980)[######]
[DDD###]..(+19)[PDDDDD###][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](1063)[T18T6SD###]
[T18T6SDS##]21..(+41)[B6d6DBDDBDS##][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](1166)[S##]
[S##]..(+28)[PDDDDDD#][PDDDDD]21111112212111121121121121121121221111211121112112111221121211(23 1)2[](1257)[D#]
[D#]..(+50)[B6d6DSDDSS#][B6d6DSDDS]222112111211111111111111212111111(33 0)2[1T-2](1341)[1T6S#]
[1T6SD]121121212..(+11)(1352)[S]
bottomymx:144 totalCost=1247
(0)[###]
[###]..(+44)[S6d6BDD#####][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](96)[DDB#####]
[DDB#####]11212..(+48)[S6d6BDBDD######][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](187)[1B######]
[1B######]..(+43)[PDBSBB#######][PDBSBB]2211221111121211222112111222(17 7)111111[](264)[#######]
[#######]..(+56)[B6d6DSSDS########][B6d6DSSDS]22(10 3)[](322)[########]
[########]..(+36)[SPDBSS######][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](402)[T18T18T6S######]
[T18T18T6S######]2111..(+45)[B6d6DSSDS######][B6d6DSSDS]22(10 3)[](449)[######]
[BDD###]..(+28)[S6d6BDBDD###][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](520)[1B###]
[1BDD#]..(+35)[B6d6DSDDDDD#][B6d6DSDDDDD]21112111111221112211121121121121121121121121111211112112(40 4)2212[](615)[#]
[#]..(+68)[B6d6DSSDS####][B6d6DSSDS]22(10 3)[](685)[####]
[####]..(+27)[PDDDDB##][PDDDD]21111121121122211211211211111211121211222222111211(13 1)[S6d-2](762)[S6d6B##]
[S6d6B##]21212..(+39)[PDDDDD###][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](865)[T18T6SD###]
[T18T6SD###]21..(+55)[B6d6DSSDS######][B6d6DSSDS]22(10 3)[](922)[######]
[######]..(+44)[B6d6DSSDS#####][B6d6DSSDS]22(10 3)[](968)[#####]
[#####]..(+32)[S6d6BDD#####][S6d6BDD]111211212112112112111112111211121111211211221121121211211221(6 5)12[h4t6](1062)[h4t14#####]
[h4t14DDB##]11111111121..(+32)[PDDDDB##][PDDDD]21111121121122211211211211111211121211222222111211(13 1)[S6d-2](1144)[S6d6B##]
[S6d6BBS]21212..(+32)[PDDDDBS][PDDDDB]2112112211111112112112121121121111121121122211121112111111121111111(39 6)2[1T18T18T-2](1244)[1T18T18T6S]
[1T18T18T6S]211..(+3)(1247)[S]
bottomymx:146 totalCost=1298
(0)[###]
[###]..(+64)[S6d6BDBDD######][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](107)[1B######]
[1BSS####]..(+49)[T6SPDSS####][T6SPDS]2(38 0)111112111211[T-2](169)[T6S####]
[T6S####]11..(+53)[SPDBSS######][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](266)[T18T18T6S######]
[T18T18T6SD#####]2111..(+25)[SPBDD#####][SPBDD]21222112112112111112112112112112112112112111222211211211211112111122211211211211211(32 4)[SDDS](374)[SDDS#####]
[SDDS#####]111111..(+34)[PDBSPSSS#####][PDBSPSS]22211221112111112(21 2)2121112111111121111122[1T18T-2](447)[1T18T6S#####]
[1T18T6S#####]111..(+50)[B6d6DSSDS######][B6d6DSSDS]22(10 3)[](499)[######]
[######]..(+34)[PDBSBB####][PDBSBB]2211221111121211222112111222(17 7)111111[](567)[####]
[DDSS]..(+46)[T6SPDSS][T6SPDS]2(38 0)111112111211[T-2](626)[T6S]
[T6S]11..(+59)[B6d6DBDDBDS#][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](747)[S#]
[S#]..(+53)[B6d6DSSDS###][B6d6DSSDS]22(10 3)[](802)[###]
[###]..(+62)[B6d6DSSDS#####][B6d6DSSDS]22(10 3)[](866)[#####]
[#####]..(+56)[B6d6DSSDS######][B6d6DSSDS]22(10 3)[](924)[######]
[DBDS##]..(+36)[B6d6DBDDBDS##][B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[](1022)[S##]
[S##]..(+59)[B6d6DSDDDSS###][B6d6DSDDDSS]211121121211121112221211211211212222212111211211211(20 5)1112211[](1139)[###]
[###]..(+34)[S6d6BDBDD#][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](1216)[1B#]
[1B#]..(+22)[PDDDD#][PDDDD]2112112121121121111121211111121121121121121112111121122(37 6)212[1](1296)[1#]
[1B]..(+2)(1298)[S]
bottomymx:148 totalCost=1263
(0)[###]
[###]..(+70)[PDBSBB#######][PDBSBB]2211221111121211222112111222(17 7)111111[](104)[#######]
[#######]..(+42)[SPDBSS######][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](190)[T18T18T6S######]
[T18T18T6SDD####]2111..(+15)[S6d6BDD####][S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB](257)[DDB####]
[DDBB###]1121111..(+52)[T6SPDSS###][T6SPDS]2(38 0)111112111211[T-2](322)[T6S###]
[T6S###]11..(+51)[S6d6BDBDD#####][S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B](416)[1B#####]
[1B#####]..(+47)[B6d6DSSDS######][B6d6DSSDS]22(10 3)[](465)[######]
[BSS###]..(+30)[SPDBSS###][SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2](539)[T18T18T6S###]
[T18T18T6SD##]2111..(+26)[PDDDDD##][PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S](629)[T18T6SD##]
[T18T6SD##]21..(+31)[S6d6BDD####][S6d6BDD]111211212112112112111112111211121111211211221121121211211221(6 5)12[h4t6](722)[h4t14####]
[h4t14D###]11111111121..(+55)[B6d6DSSDS###][B6d6DSSDS]22(10 3)[](779)[###]
[###]..(+30)[SPBDD##][SPBDD]21222112112112111112112112112112112112112111222211211211211112111122211211211211211(32 4)[SDDS](892)[SDDS##]
[SDDSS#]1..(+34)[T6SPDSS#][T6SPDS]2(38 0)111112111211[T-2](939)[T6S#]
[T6SD]11..(+57)[T6SPDSS][T6SPDS]2(38 0)111112111211[T-2](1009)[T6S]
[T6S]11..(+67)[B6d6DSSDS####][B6d6DSSDS]22(10 3)[](1078)[####]
[####]..(+34)[PDBSBB##][PDBSBB]2211221111121211222112111222(17 7)111111[](1146)[##]
[##]..(+55)[S6d6BDBSDSS][S6d6BDBSDS]112121211211211211222211121121121121121212121121112111122112(35 0)22[1I-4](1263)[1I4S]
[1I4S]..(+0)(1263)[S]
But 130+/-28k will be optimal with respect to S-28 move and 130 looks well (1256) bits. (156~1436,102~1336)

Program must fail in portion of %8 glider emissions as the repertoire is not full, so far we must split levels to portions solvable %8%8 and set them bottoms ... manually. ... I would think about optimization methods later. But precomputing costs for different bottoms is rather cheap so codding optimization using that as subroutines could be possible.

Hmmm reducing stack by twenty # takes ages ... have to make some other way around ... not done yet. Maybe detecting all emissions with the same resulting poststack first and computing them "in parallel" would save a lot of time. I should probably extend "easy cases" by stack BDDDDDDDD 212121 reduction ... but that would require some "optimality" checks.
I am thinking about introducing template % representing one of P,B,S (and maybe * for B or S) ... to allow cheap reduction B(D^k)#->(21)^k->B#->2->%. ... paying 2k+1 bits.
If we need B#^kD->D, we have to use BD^(k-4)BDBDD->(21)^(k-4)->BBDBDD->2->SDBDD->2->P6d6DBDD->1->B6d6DBDD->21->D what are 2k-3 bits, but we shoud pay 4 more to get B's from # oh this is the same cost, but it requires k>=4. And the first method has discount if we need B,S.
I am still not sure with P in place of # (it would be safe when S preceeds in most cases) .... and templating of P should be done carefully no bits on its 3 position and additional 1 bit on following S (upper on stack) posiiton.

I would probably for ########-># case use DDDDDBDB# inicialisation for search and I would wire this case to EasyStackCost. And I would probably add DDDDDDD->P target as well not to lose the conversion:).

OK, program fails when asked to do an unsolvable task ... like reducing T6D in given moveset ... I am already giving it an alternative task T6S, what it solves immediately, but I should let it abandon the other task as unecessary. ... I have installed a lua supporting editor ... so there will be easier syntax bug detection and especially typos in variables.

Still debugging ... 6 bugs corrected, few more detected (experimental software).
Now one known bug still not solved, but after adding 1000000000 result for unsolvable cases the program was able to finish all 3 "postblock" tasks from all even distances in the chosen range, but the last task with massive need of stack reductions took almost 3 hours. I am going to give the search more help (in stack reduction tasks) and finish the conversion to bits as well ... to be able to check the validity of results by life simulation.

I probably will run search for bitsequences as well. Currently here is only [d6DD]11[] reduction dealing with d start in the set, this limits posible stack transitions. This was part of a known recepie, but is it really the only case available?

Added 2 cases for stack reduction ([BD*BDBD]->[] and [BD*]->P) to exact cost and I created some lower bounds for stack reduction. This speeded up post 1296 block gliders compuation (a lot of botoms) from nearly 3 hours to about 10 minutes. Still debugging and final translation to bits should be codded.

I have made better decomposed output of the search and planned to do 3 outputs ... one before easybits are expanded, second after their expansion still with templates and finally output wihout templates. The Outpus are "symbolic bits with comments."
EasyBits conversion is already done, templates conversion remains. Then I will post new version.
User avatar
Hippo.69
Posts: 683
Joined: July 14th, 2020, 7:35 pm
Contact:

Re: Binary slow salvos

Post by Hippo.69 »

OK, I have successfully created bit sequence ready to be played in Life by my "interpretter".
And it fails just before issuing 3rd glider. Problem probably is not in arm program, but rather the construcion site is so close to the arm that chosen glider invocation interfers with the construction. I should probably chose glider invocation manually and use code after the construction moves a bit away.

Code: Select all

-- This module is loaded if a script calls require "StackChangeCost".

local g = golly()
local moveCondsFileName = "c:\\Golly\\Lua\\StackChangeCost\\CondBitSequences.txt"
local m = {}
m.log = io.open("c:\\Golly\\Lua\\StackChangeCost\\log.txt", "w")
m.logLevel = 0
m.searchStartTime = g.millisecs()

function m.inttostring(num)
    return string.sub(num, 1, string.find(num .. ".", "%.") - 1)
end

function m.writeLog(msg, level)
    local time = g.millisecs()
    if m.log and ((not level and m.logLevel <= 0) or (level and level >= m.logLevel)) then
        m.log:write(string.sub("        " .. m.inttostring(time - m.searchStartTime), -8) .. "ms " .. msg .. "\n")
    end
end

m.tries = {};--addressed by hadron.id (by top hadron on the stack)
m.trieNodeCount = 11
local hadrons = { 'B', 'D', 'd', 'S', 'P', 'T', 't', 'I', 'H', 'h', '0' } -- L,R,1,2 not here
for i = 1, #hadrons do
    m.tries[hadrons[i]] = {}
end

function m.inDelimiters(name, leftDelimiter, rightDelimiter)
    return string.match(name, '%' .. leftDelimiter .. '(.-)%' .. rightDelimiter)
end

function m.parseMove(moveConds)
    m.writeLog("parseMove(" .. moveConds .. ")", -2)
    local function split(str, delim)
        local ret, l, p = {}, 1, nil
        str = str or ''
        while l <= 1 + string.len(str) do
            p = string.find(str .. delim, '%' .. delim, l)
            ret[1 + #ret], l = string.sub(str, l, p - 1), p + 1
        end
        return ret
    end

    local preStack, postStack, conds, pos, bits, move, glider
    pos, conds = string.find(moveConds .. '{', '%{'), ""
    conds = string.sub(moveConds, pos + 1, string.find(moveConds .. '}', '%}') - 1)
    conds = split(conds, ':')
    conds[2] = split(conds[2], ',')
    move = string.sub(moveConds, 1, pos - 1)
    pos = string.find(move, '%]')
    preStack = string.sub(move, 2, pos - 1)
    bits = string.sub(move, pos + 1)
    pos = string.find(bits, '%[')
    postStack = string.sub(bits, pos + 1, -2)
    bits = string.sub(bits, 1, pos - 1)
    glider, pos = '', string.find(bits, '%(')
    if pos then
        glider = m.inDelimiters(bits, '(', ')')
        bits = string.sub(bits, 1, pos - 1) .. string.sub(bits, string.find(bits, '%)') + 1)
    end
    return bits, move, conds, preStack, postStack, glider
end

function m.conditionsToString(conditions)
    local postConitions, ret
    if #conditions == 0 then
        g.note("no conditions?")
        return "{:}"
    end
    if #conditions < 2 then
        ret = "{:"
    else
        ret = "{" .. conditions[1] .. ":"
    end
    ret = ret .. conditions[#conditions][1]
    for j = 2, #conditions[#conditions] do
        ret = ret .. "," .. conditions[#conditions][j]
    end
    ret = ret .. "}"
    return ret
end

local function noEmissionTrieInsert(moveConds)
    local bits, move, conds, preStack, postStack, glider = m.parseMove(moveConds)
    m.writeLog('noEmissionTrieInsert(' .. moveConds .. ') ', -1)
    if glider ~= "" then
        --emission
        return
    end
    if string.find(postStack, '[LR]') then
        --emission
        return
    end
    -- actually we do not need stack bottom repositioning sequences, but it is hard to eliminate them
    -- it was eliminated by preprocessing of stack sequences -:)

    local preStackLen, bitLen = string.len(preStack), string.len(bits)
    local node, nextNode, info, nextInfo = m.tries[string.sub(conds[1], 1, 1)], m.tries[string.sub(preStack, 1, 1)], string.sub(conds[1], 1, 1), string.sub(preStack, 1, 1)
    if conds[1] == "" then
        node, nextNode, info, nextInfo = nextNode, nil, nextInfo, nil
    end
    while node do
        m.writeLog("  inserting into trie " .. info, -2)
        for i = 1, string.len(bits) do
            local j = string.sub(bits, i, i)
            if not string.find('012', j) or ((i > 1) and j == "0") then
                m.writeLog("noEmissionTrieInsert wrong character bits " .. bits .. " at position " .. i .. " " .. string.sub(bits, i, i), 10)
            end
            if not node.minPreStackLen or node.minPreStackLen > preStackLen then
                node.minPreStackLen = preStackLen --prevents following the branch in nextOutGoingEdge
            end
            if not node.minBitLen or node.minBitLen > bitLen then
                node.minBitLen = bitLen --planned to prevent following the branch in nextOutGoingEdge but cost lowerbound is more effective
            end
            j = j + 0
            if j == 0 then
                node, nextNode, info, nextInfo = m.tries['0'], nil, '0', nil -- exception simplifying 0# processing
            else
                if node[j] == nil then
                    node[j], m.trieNodeCount = {}, m.trieNodeCount + 1
                end
                node = node[j]
            end
        end
        if not node.minPreStackLen or node.minPreStackLen > preStackLen then
            node.minPreStackLen = preStackLen
        end
        if not node.minBitLen or node.minBitLen > bitLen then
            node.minBitLen = bitLen
        end
        if not node.moveConds then
            node.moveConds = {}
        end
        node.moveConds[#node.moveConds + 1] = moveConds
        node, nextNode, info, nextInfo = nextNode, nil, nextInfo, nil
        conds[1] = "";
        moveConds = move .. m.conditionsToString(conds) -- to speedup matching the above need not be checked
    end
    return true
end

local function iniTrie()
    m.writeLog('InitTrie()')
    local h = io.open(moveCondsFileName, "r")
    --local o=io.open(moveCondsFileName2,"w") -- used to prefilter general conditioned sequence file
    local moveCondsLine = h:read()
    while moveCondsLine do
        if noEmissionTrieInsert(string.sub(moveCondsLine, 5)) then
            --o:write(moveCondsLine.."\n")
        end
        moveCondsLine = h:read()
    end
    h:close()
    --o:close()
end

iniTrie()

function m.easyChangeStackCost(preStack, postStack)
    -- let us try to slowly extend this to all required cases (postStacks corresponding to all emission tabulated preStacks, condition for preStacks not known yet)
    m.writeLog("easyChangeStackCost(" .. preStack .. "," .. postStack .. ")")
    local cost, tmp = 0
    m.easyChangeStackCostErr = preStack .. ">" .. postStack
    if preStack == postStack then
        return cost
    end
    if postStack == '' then
        if string.sub(preStack, -4) == "BDBD" then
            m.writeLog("easyChangeStackCost [..BDBD]>[]")
            local fail = string.sub(preStack, 1, 1) ~= "B"
            for i = 2, string.len(preStack) - 4 do
                if string.sub(preStack, i, i) ~= 'D' then
                    m.writeLog("easyChangeStackCost [BD*BDBD]>[] failed at " .. i)
                    fail = true
                    break
                end
            end
            if fail then
                m.easyChangeStackCostErr = "Reducig stack implemented only for exceptions " .. m.easyChangeStackCostErr
                return
            end
            m.writeLog("easyChangeStackCost [BD*BDBD]>[] exception detected", 2)
            cost = 2 * (string.len(preStack) - 5)
            cost = (cost < 0) and 0 or cost
            return cost + 5 -- ->(+1) [SDBD] ->(+1) [P6d6DBD]->(+1) [B6D6DBD] -> (+2) []
        end
    elseif string.len(postStack) == 1 and string.len(preStack) > 1 then
        m.writeLog("easyChangeStackCost [BD*]>[#+1]")
        tmp = string.find('PBS', postStack)
        if tmp then
            local fail = string.sub(preStack, 1, 1) ~= "B"
            for i = 2, string.len(preStack) do
                if string.sub(preStack, i, i) ~= 'D' then
                    m.writeLog("easyChangeStackCost [BD*]>[#+1] failed at " .. i)
                    fail = true
                    break
                end
            end
            if not fail then
                m.writeLog("easyChangeStackCost [BD*]>[#+1] exception detected", 2)
                return 2 * (string.len(preStack) - 1) + tmp - 2
            end
        end
    end
    tmp = string.find("DPBS", string.sub(preStack, -1)) or string.find("#", string.sub(preStack, -1))
    if not tmp then
        m.easyChangeStackCostErr = "Stack should have #DPBS on bottom! " .. m.easyChangeStackCostErr
        return 1000000000
    end
    if preStack == '' then
        m.easyChangeStackCostErr = "preStack cannot be empty " .. m.easyChangeStackCostErr
        return
    end
    if string.len(preStack) > 2 then
        m.easyChangeStackCostErr = "Reducing stack implemented only for exceptions " .. m.easyChangeStackCostErr
        return
    end
    if string.len(postStack) < string.len(preStack) then
        m.easyChangeStackCostErr = "Shortening implemented only for exceptions " .. m.easyChangeStackCostErr
        return
    end
    if string.len(preStack) == 2 then
        cost = string.find("SBPD", string.sub(preStack, -1)) or string.find("SBP#", string.sub(preStack, -1))
        if not cost then
            m.easyChangeStackCostErr = "Only D,P,B,S,# on starting positions implemented " .. m.easyChangeStackCostErr
            return
        end
        tmp = string.find("SBPD", string.sub(postStack, -1)) or string.find("SBB#", string.sub(postStack, -1))
        if not tmp then
            m.easyChangeStackCostErr = "Only D,P,B,S,# at end of postStack when preStack.len==2 on starting positions implemented " .. m.easyChangeStackCostErr
            return
        end
        cost = cost - tmp
        if cost < 0 then
            m.easyChangeStackCostErr = "when preStack.len==2, end of postStack must be on D->P->B->S from end of preStack " .. m.easyChangeStackCostErr
            return
        end
        if tmp == 3 then
            if string.sub(postStack, -2, -2) ~= 'S' or cost == 0 then
                m.easyChangeStackCostErr = "implemented P only as a part of SP at end of postStack when preStack.len==2 and prestack does not end on P" .. m.easyChangeStackCostErr
                return
            end -- SP->XSP ???
        end
        preStack = string.sub(preStack, 1, -2)
        postStack = string.sub(postStack, 1, -2)
    end
    tmp = string.find("SBPD", preStack) or string.find("SBP#", preStack)
    if not tmp then
        m.easyChangeStackCostErr = "Only D,P,B,S,# starting positions implemented " .. m.easyChangeStackCostErr
        return
    end
    if string.len(postStack) == 1 then
        if cost > 0 then
            if postStack ~= "S" then
                m.easyChangeStackCostErr = "when preStack.len==2, postStack.len==2 last item differ, implemented only for postStack starting S " .. m.easyChangeStackCostErr
                return
            end
        else
            cost = tmp
            tmp = string.find("SBPD", postStack) or string.find("SBP#", postStack)
            if not tmp then
                m.easyChangeStackCostErr = "when preStack.len==postStack.len<=2 where only first item differs implemented only for postStack starting B,S,P,D " .. m.easyChangeStackCostErr
                return
            end
            cost = cost - tmp
            if cost < 0 then
                m.easyChangeStackCostErr = "not implemented for short stacks where shift not consistent with D->P->B->S " .. m.easyChangeStackCostErr
                return
            end
            return cost
        end
    end
    cost = cost + tmp - 1
    tmp = string.find("PBS", string.sub(postStack, 1, 1))
    if string.sub(postStack, 2, 4) == "6d6" then
        if not tmp then
            m.easyChangeStackCostErr = "Only P,B,S predecessors of 6d6 implemented " .. m.easyChangeStackCostErr
            return
        end
        cost = cost + tmp
        postStack = string.sub(postStack, 5)
    elseif tmp then
        cost = cost + tmp - 3
        if string.sub(postStack, 1, 2) == "SP" then
            --P allowed here
            cost = cost + 7
            postStack = string.sub(postStack, 3)
            tmp = 2
        elseif string.sub(postStack, 2, 2) == 'D' or tmp == 3 then
            postStack = string.sub(postStack, 2)
        else
            m.easyChangeStackCostErr = "After P or B start must be either 6d or D, other costs not implemented " .. m.easyChangeStackCostErr .. "\n" .. postStack
            -- additional cost 22 (a) ->S, changing 2nd -> (+6) SD (+3-a) back to desired (+13) removal of leading S
            -- additional cost +22 does not work for P as SP->P6d6P is not possible
            return
        end
    elseif string.sub(postStack, 1, 2) == "T6" then
        cost = cost + 21 -- is (3)S6d6->(+2)H6T6->(+8)H6T18T6->(+7)I16T6->(+1)T6 optimal (at least in our current moveset)
        postStack = string.sub(postStack, 3)
    else
        m.easyChangeStackCostErr = "Only P,B,S and T6 starts implemented " .. m.easyChangeStackCostErr
        return
    end
    if tmp then
        tmp = 1 + tmp --compatibility
    end
    for i = 1, string.len(postStack) do
        if tmp == 4 then
            --P allowed after S (maintained as D and incremented after next S created)
            tmp = string.find("DPBS", string.sub(postStack, i, i)) or string.find("#", string.sub(postStack, i, i))
        else
            tmp = string.find("DDBS", string.sub(postStack, i, i)) or string.find("#", string.sub(postStack, i, i))
        end
        if tmp then
            cost = cost + 5 + tmp
        else
            m.easyChangeStackCostErr = "Only D,B,S,SP,# inner items implemented yet (" .. i .. ")=" .. string.sub(postStack, i, i) .. " " .. m.easyChangeStackCostErr
            return
        end
    end
    return cost
end

function m.easyChangeStackCostLowerBound(preStack, postStack)
    -- let us try to slowly extend this to all required cases (postStacks corresponding to all emission tabulated preStacks, condition for preStacks not known yet)
    m.writeLog("easyChangeStackCostLowerBound(" .. preStack .. "," .. postStack .. ")")
    -- called only for preStack=='D'
    local cost, tmp = 0
    m.easyChangeStackCostLowerBoundErr = preStack .. ">" .. postStack
    if preStack == postStack then
        return cost
    end
    if string.len(preStack) > 2 then
        m.easyChangeStackCostLowerBoundErr = "Reducing stack implemented only for exceptions " .. m.easyChangeStackCostLowerBoundErr
        return
    end
    if string.len(postStack) < string.len(preStack) then
        m.easyChangeStackCostLowerBoundErr = "Shortening implemented only for exceptions " .. m.easyChangeStackCostLowerBoundErr
        return
    end
    if string.len(preStack) == 2 then
        cost = string.find("SBPD", string.sub(preStack, -1)) or string.find("SBP#", string.sub(preStack, -1))
        if not cost then
            m.easyChangeStackCostLowerBoundErr = "Only D,P,B,S,# on starting positions implemented " .. m.easyChangeStackCostLowerBoundErr
            return
        end
        tmp = string.find("SBPD", string.sub(postStack, -1)) or string.find("SBP#", string.sub(postStack, -1))
        if not tmp then
            m.easyChangeStackCostLowerBoundErr = "Only D,B,S,# at end of postStack when preStack.len==2 on starting positions implemented " .. m.easyChangeStackCostLowerBoundErr
            return
        end
        cost = cost - tmp
        if cost < 0 then
            m.easyChangeStackCostLowerBoundErr = "when preStack.len==2, end of postStack must be on D->P->B->S from end of preStack " .. m.easyChangeStackCostLowerBoundErr
            return
        end
        preStack = string.sub(preStack, 1, -2)
        postStack = string.sub(postStack, 1, -2)
    end
    tmp = string.find("SBPD", preStack) or string.find("SBP#", preStack)
    if not tmp then
        m.easyChangeStackCostLowerBoundErr = "Only D,P,B,S,# starting positions implemented " .. m.easyChangeStackCostLowerBoundErr
        return
    end
    if string.len(postStack) == 1 then
        if cost > 0 then
            if postStack ~= "S" then
                m.easyChangeStackCostLowerBoundErr = "when preStack.len==2, postStack.len==2 last item differ, implemented only for postStack starting S " .. m.easyChangeStackCostLowerBoundErr
                return
            end
        else
            cost = tmp
            tmp = string.find("SBPD", postStack) or string.find("SBP#", postStack)
            if not tmp then
                m.easyChangeStackCostLowerBoundErr = "when preStack.len==postStack.len<=2 where only first item differs implemented only for postStack starting B,S,P,D " .. m.easyChangeStackCostLowerBoundErr
                return
            end
            cost = cost - tmp
            if cost < 0 then
                m.easyChangeStackCostLowerBoundErr = "not implemented for short stacks where shift not consistent with D->P->B->S " .. m.easyChangeStackCostLowerBoundErr
                return
            end
            return cost
        end
    end
    cost = cost + tmp - 1
    tmp = string.find("PBS", string.sub(postStack, 1, 1))
    if string.sub(postStack, 2, 4) == "6d6" then
        if not tmp then
            m.easyChangeStackCostLowerBoundErr = "Only P,B,S predecessors of 6d6 implemented " .. m.easyChangeStackCostLowerBoundErr
            return
        end
        cost = cost + tmp
        postStack = string.sub(postStack, 5)
    elseif tmp then
        cost = cost + tmp - 3
        if string.sub(postStack, 1, 2) == "SP" then
            --P allowed here
            cost = cost + 7
            postStack = string.sub(postStack, 3)
        elseif string.sub(postStack, 2, 2) == 'D' or tmp == 3 then
            postStack = string.sub(postStack, 2)
        else
            m.easyChangeStackCostLowerBoundErr = "After P or B start must be either 6d or D, other costs not implemented " .. m.easyChangeStackCostLowerBoundErr .. "\n" .. postStack
            -- additional cost 22 (a) ->S, changing 2nd -> (+6) SD (+3-a) back to desired (+13) removal of leading S
            -- additional cost +22 does not work for P as SP->P6d6P is not possible
            return
        end
    elseif string.sub(postStack, 1, 2) == "T6" then
        cost = cost + 21 -- is (3)S6d6->(+2)H6T6->(+8)H6T18T6->(+7)I16T6->(+1)T6 optimal (at least in our current moveset)
        postStack = string.sub(postStack, 3)
    else
        m.easyChangeStackCostLowerBoundErr = "Only P,B,S and T6 starts implemented " .. m.easyChangeStackCostLowerBoundErr
        return
    end
    for i = 1, string.len(postStack) do
        tmp = string.find("DPBS", string.sub(postStack, i, i)) or string.find("#", string.sub(postStack, i, i))
        if tmp then
            cost = cost + 5 + tmp
        else
            m.easyChangeStackCostLowerBoundErr = "Only D,B,P,S,# inner items implemented yet (" .. i .. ")=" .. string.sub(postStack, i, i) .. " " .. m.easyChangeStackCostLowerBoundErr
            return
        end
    end
    return cost
end

function m.triviCostLowerBound(postStack)
    if postStack == '' then
        return 0
    end
    local ret = m.easyChangeStackCostLowerBound('D', postStack)
    if ret then
        ret = (ret < 3) and 0 or ret - 3
    end
    return ret
end

function m.easyPreStackReductionLowerBound(preStack, postStack)
    --does not mind sending bit 1 at the end
    m.writeLog("easyPreStackReductionLowerBound(" .. preStack .. "," .. postStack .. ")")
    --postStack.len<2
    local baseStackLen = string.len(preStack)
    for i = 1, string.len(preStack) do
        if not string.find('#DPBS', string.sub(preStack, -i, -i)) then
            baseStackLen = i - 1
            break
        end
    end
    if baseStackLen > 0 then
        if string.sub(preStack, -baseStackLen - 1, -baseStackLen - 1) == "6" then
            local postCost
            if string.sub(preStack, -baseStackLen - 3, -baseStackLen - 1) == "6d6" then
                if baseStackLen >= 4 + string.len(postStack) and string.sub(preStack, -baseStackLen, -baseStackLen + 3) == "DBDS" then
                    postCost = 1 + ((baseStackLen == 4) and 0 or m.easyPreStackReductionLowerBound(string.sub(preStack, -baseStackLen + 4), postStack))
                end
                if baseStackLen >= 3 + string.len(postStack) and string.sub(preStack, -baseStackLen, -baseStackLen + 3) == "SPS" then
                    postCost = 1 + ((baseStackLen == 3) and 0 or m.easyPreStackReductionLowerBound(string.sub(preStack, -baseStackLen + 3), postStack))
                end
                if baseStackLen >= 3 + string.len(postStack) and string.sub(preStack, -baseStackLen, -baseStackLen + 3) == "DBD" then
                    postCost = 2 + ((baseStackLen == 3) and 0 or m.easyPreStackReductionLowerBound(string.sub(preStack, -baseStackLen + 3), postStack))
                end
                if postCost then
                    return m.easyPreStackReductionLowerBound(string.sub(preStack, 1, -baseStackLen - 4), 'B') + postCost
                end
                local preCost = m.easyPreStackReductionLowerBound(string.sub(preStack, 1, -baseStackLen - 4), 'S')
                return 1 + preCost + m.easyPreStackReductionLowerBound("PD" .. string.sub(preStack, -baseStackLen), postStack)
            end
            if baseStackLen >= 1 + string.len(postStack) and string.find('SD', string.sub(preStack, -baseStackLen, -baseStackLen)) then
                postCost = (baseStackLen == 1) and 0 or m.easyPreStackReductionLowerBound(string.sub(preStack, -baseStackLen + 1), postStack) -- '2' with extrabit program
            end
            if postCost then
                return m.easyPreStackReductionLowerBound(string.sub(preStack, 1, -baseStackLen - 2), 'B') + postCost
            end
        end
        local preCost = m.easyPreStackReductionLowerBound(string.sub(preStack, 1, -baseStackLen - 1), '')
        baseStackLen = baseStackLen - string.len(postStack)
        preCost = preCost + 3 * (baseStackLen // 5)
        baseStackLen = baseStackLen % 5
        return preCost + baseStackLen - ((baseStackLen == 4) and 1 or 0)
    end
    local nonBaseStackLen, nonDigits = string.len(preStack), 0
    for i = 1, string.len(preStack) do
        if string.find('#DPBS', string.sub(preStack, -i, -i)) then
            nonBaseStackLen = i - 1
            break
        end
        if string.find('HhTtId', string.sub(preStack, -i, -i)) then
            nonDigits = nonDigits + 1
        end
    end
    local preCost = 0
    if string.find('01', string.sub(preStack, 1, 1)) then
        nonDigits = nonDigits - 1
    end
    if nonBaseStackLen < string.len(preStack) then
        preCost = m.easyPreStackReductionLowerBound(string.sub(preStack, 1, -nonBaseStackLen - 1), '')
    end
    return preCost + nonDigits // 2
end

function m.easyChangeStackLowerBound(preStack, postStack)
    local cost, tmp = 0
    tmp = string.find("DPBS", string.sub(preStack, -1)) or string.find("#", string.sub(preStack, -1))
    if not tmp then
        return 1000000003
    end
    while cost == 0 do
        m.writeLog("easyChangeStackLowerBound(" .. preStack .. "," .. postStack .. ") loop cost 0")
        if preStack == postStack then
            return 0
        end
        if postStack == "" then
            return m.easyPreStackReductionLowerBound(preStack, '')
        end
        if preStack == "" then
            return m.triviCostLowerBound(postStack)
        end
        cost = string.find("DPBS", string.sub(preStack, -1)) or string.find("#", string.sub(preStack, -1))
        if not cost then
            return m.triviCostLowerBound(postStack)
        end
        tmp = string.find("DPBS", string.sub(postStack, -1, -1))
        if string.sub(postStack, -1, -1) ~= '#' then
            if not tmp then
                return m.triviCostLowerBound(postStack)
            end
            cost = tmp - cost
        end
        if cost < 0 then
            return m.triviCostLowerBound(postStack)
        end
        postStack, preStack = string.sub(postStack, 1, -2), string.sub(preStack, 1, -2)
    end
    while string.sub(postStack, -1) == 'S' do
        m.writeLog("easyChangeStackLowerBound(" .. preStack .. "," .. postStack .. ") loop cost " .. cost)
        if preStack == "" then
            tmp = m.triviCostLowerBound(postStack)
            if tmp then
                tmp = tmp + cost
            end
            return tmp
        end
        tmp = string.find("SBPD", string.sub(preStack, -1, -1)) or string.find("#", string.sub(preStack, -1, -1))
        if not tmp then
            tmp = m.triviCostLowerBound(postStack)
            if tmp then
                tmp = tmp + cost
            end
            return tmp
        end
        cost = cost + tmp - 1
        postStack, preStack = string.sub(postStack, 1, -2), string.sub(preStack, 1, -2)
    end
    if postStack == "" then
        return cost + m.easyPreStackReductionLowerBound(preStack, '') - 1 --the extrabit could be usefull
    end
    tmp = m.easyChangeStackCost('S', postStack)
    if tmp then
        return m.easyPreStackReductionLowerBound(preStack, 'S') - 1 + tmp + cost
    else
        return
    end
end

function m.ignoreSuffixChangeStackCost(preStack, postStack)
    --calls Easy changeStackCost when reduced to easy case
    while string.len(preStack) > 2 and string.len(postStack) > 0 and string.sub(preStack, -1) == string.sub(postStack, -1)
            and string.find('#DPBS', string.sub(preStack, -2, -2)) do
        preStack, postStack = string.sub(preStack, 1, -2), string.sub(postStack, 1, -2)
    end
    local ret, est = m.easyChangeStackCost(preStack, postStack), m.easyChangeStackLowerBound(preStack, postStack)
    if est then
        -- safety correction for D->S payment when D is actually destroyed
        est = est - 3
        if est < 1 then
            est = 1
            if preStack == postStack then
                est = 0
            end
        end
    end
    if ret then
        m.writeLog("ignoreSuffixChangeStackCost(" .. preStack .. "," .. postStack .. ")=" .. ret .. "," .. est, 1)
    elseif est then
        m.writeLog("ignoreSuffixChangeStackCost(" .. preStack .. "," .. postStack .. ")=nil," .. est, 1)
    end
    return ret, est
end

function m.getEasyTBits(preStack, postStack)
    --was earlier evaluated as ignoreSuffixChangeStackCost"easy"
    m.writeLog("getEasyTBits(" .. preStack .. "," .. postStack .. ")")
    while string.len(preStack) > 2 and string.len(postStack) > 0 and string.sub(preStack, -1) == string.sub(postStack, -1)
            and string.find('#DPBS', string.sub(preStack, -2, -2)) do
        preStack, postStack = string.sub(preStack, 1, -2), string.sub(postStack, 1, -2)
        m.writeLog("getEasyTBits shortening stacks (" .. preStack .. "," .. postStack .. ")", -1)
    end
    m.writeLog("getEasyTBits easy(" .. preStack .. "," .. postStack .. ")")
    if preStack == postStack then
        return ''
    end
    local errExt = '[' .. preStack .. ']>[' .. postStack .. ']'
    if postStack == '' then
        if string.sub(preStack, -4) == "BDBD" then
            m.writeLog("getEasyTBits easy [..BDBD]>[]")
            local fail = string.sub(preStack, 1, 1) ~= "B"
            for i = 2, string.len(preStack) - 4 do
                if string.sub(preStack, i, i) ~= 'D' then
                    m.writeLog("getEasyTBits easy [BD*BDBD]>[] failed at " .. i)
                    fail = true
                    break
                end
            end
            if fail then
                return '(fail .. Reducig stack implemented only for exceptions ' .. errExt .. ')'
            end
            m.writeLog("getEasyTBits easy  [BD*BDBD]>[] exception detected", 2)
            local ret = ''
            for i = 2, string.len(preStack) - 4 do
                ret = ret .. '21'
            end --[BBDBD] or [BDBD]
            if string.len(preStack) == 4 then
                ret = '1' -- = ret..'1' [BDBD]->[SDBD]
            else
                ret = ret .. '2' -- [BBDBD]->[SDBD]
            end
            return ret + '2121' -- [SDBD] ->(+1) [P6d6DBD]->(+1) [B6D6DBD] -> (+2) []
        end
    elseif string.len(postStack) == 1 and string.len(preStack) > 1 then
        m.writeLog("getEasyTBits easy [BD*]>[#+1]")
        local tmp = string.find('PBS', postStack)
        if tmp then
            local fail = string.sub(preStack, 1, 1) ~= "B"
            for i = 2, string.len(preStack) do
                if string.sub(preStack, i, i) ~= 'D' then
                    m.writeLog("getEasyTBits easy [BD*]>[#+1] failed at " .. i)
                    fail = true
                    break
                end
            end
            if not fail then
                m.writeLog("getEasyTBits easy [BD*]>[#+1] exception detected", 2)
                local ret = ''
                for i = 3, string.len(preStack) do
                    ret = ret .. '21'
                end --[BD]
                ret = ret .. '2' --[P]
                for i = 2, tmp do
                    ret = ret .. '1'
                end --postStack
                return ret
            end
        end
    end
    local tmp = string.find("DPBS", string.sub(preStack, -1)) or string.find("#", string.sub(preStack, -1))
    if not tmp then
        return '(fail preStack should have #DPBS on bottom! ' .. errExt .. ')'
    end
    if preStack == '' then
        return '(fail preStack cannot be empty ' .. errExt .. ')'
    end
    if string.len(preStack) > 2 then
        return '(fail Reducing stack implemented only for exceptions ' .. errExt .. ')'
    end
    if string.len(postStack) < string.len(preStack) then
        return '(fail Shortening implemented only for exceptions ' .. errExt .. ')'
    end
    local ret = ''
    if string.len(preStack) == 2 then
        local cost = string.find("SBPD", string.sub(preStack, -1)) or string.find("SBP#", string.sub(preStack, -1))
        if not cost then
            return '(fail Only D,P,B,S,# on starting positions implemented ' .. errExt .. ')'
        end
        tmp = string.find("SBPD", string.sub(postStack, -1)) or string.find("SBP#", string.sub(postStack, -1))
        if not tmp then
            return '(fail Only D,P,B,S,# at end of postStack when preStack.len==2 on starting positions implemented ' .. errExt .. ')'
        end
        if cost < tmp then
            return '(fail when preStack.len==2, end of postStack must be on D->P->B->S from end of preStack ' .. errExt .. ')'
        end
        if tmp == 3 then
            if string.sub(postStack, -2, -2) ~= 'S' or cost == 0 then
                return '(fail implemented P only as a part of SP at end of postStack when preStack.len==2 and prestack does not end on P ' .. errExt .. ')'
            end -- SP->XSP ???
            tmp = 4
            postStack = string.sub(postStack, 1, -3) .. 'ED'
        end
        if cost == 4 then
            ret = ret .. string.sub(postStack, -1)
        else
            ret = ret .. string.sub('1111', tmp + 1, cost)
            if string.sub(postStack, -1) == '#' then
                ret = ret .. '#'
            end
        end
        preStack = string.sub(preStack, 1, -2)
        postStack = string.sub(postStack, 1, -2)
    end
    tmp = string.find("SBPD", preStack) or string.find("SBP#", preStack)
    if not tmp then
        return '(fail Only D,P,B,S,# starting positions implemented ' .. errExt .. ')'
    end
    if string.len(postStack) == 1 then
        if ret ~= '' then
            if postStack ~= "S" then
                return '(fail when preStack.len==2, postStack.len==2 last item differ, implemented only for postStack starting S ' .. errExt .. ')'
            end
        else
            local cost = tmp + 1
            tmp = string.find("ESBPD", postStack) or string.find("ESBP#", postStack)
            if not tmp then
                return '(fail when preStack.len==postStack.len<=2 where only first item differs implemented only for postStack starting B,S,P,D ' .. errExt .. ')'
            end
            cost = cost - tmp
            if cost < 0 then
                return '(fail not implemented for short stacks where shift not consistent with D->P->B->S ' .. errExt .. ')'
            end
            ret = ret .. string.sub('11111', tmp + 1, cost)
            if postStack == '#' then
                ret = ret .. '#'
            end --'#' will be templated by 1 so order among 1* does not mater
            return ret
        end
    end
    ret = string.sub('1111', 2, tmp) .. ret --[S]..[S]->postStack portion remains
    m.writeLog("getEasyTBits " .. ret .. "..easy (S," .. postStack .. ")")
    tmp = string.find("PBS", string.sub(postStack, 1, 1))
    local endRet = ''
    if string.sub(postStack, 2, 4) == "6d6" then
        if not tmp then
            return '(fail Only P,B,S predecessors of 6d6 implemented ' .. errExt .. ')'
        end
        if string.sub(postStack, 5, 5) == "P" then
            return '(fail #6d6P* not implemented ' .. errExt .. ')'
        end
        endRet = string.sub('211', 1, tmp)
        postStack = 'S' .. string.sub(postStack, 5)
    elseif tmp then
        if not (string.sub(postStack, 2, 2) == 'D' or tmp == 3) then
            return '(fail After P or B start must be either 6d or D, other cases not implemented ' .. errExt .. ')'
        end
    elseif string.sub(postStack, 1, 2) == "T6" then
        local cost = string.find('PBSE', string.sub(postStack, 3, 3))
        if cost == 0 then
            return '(fail T6P* not implemented ' .. errExt .. ')'
        end
        endRet = '211' .. '12' .. '11111112' .. '1112112' .. '' .. '1' --[S]{_,7D,7B,7S}->[S6d6]{_,3D,3B,3S}->[H6T6]->[H6T18T6]->[1T18T6]->[I16T6]->[T6]
        postStack = 'S' .. string.sub(postStack, 3)
    else
        return '(fail Only P,B,S and T6 starts implemented ' .. errExt .. ')'
    end
    m.writeLog("getEasyTBits " .. ret .. "..easy (S," .. postStack .. ").." .. endRet)
    local template
    while string.len(postStack) > 1 do
        template = string.sub(postStack, -1)
        postStack = string.sub(postStack, 1, -2)
        local cost = string.find("DPBSE", template) or string.find("#", template)
        if cost then
            if cost == 2 then
                cost = 1
                if string.sub(postStack, -1) ~= 'S' then
                    return '(fail P allowed only at start or after S ' .. errExt .. ')'
                end
                template = 'D'
                postStack = string.sub(postStack, 1, -2) .. 'E'
            end
            --[[ret=ret..string.sub('2112111111',1,cost+5)
        if template=='#' then
          ret=ret.."#"
        end--]]
            ret = ret .. '211211' .. template
        else
            return '(fail Only D,B,S,SP,# inner items implemented ' .. errExt .. ')'
        end
    end
    m.writeLog("getEasyTBits " .. ret .. "..easy (S," .. postStack .. ").." .. endRet)
    if postStack~='S' then
        -- no bits to create S and convert template .. we know template =="D" -- tested
        -- (SP case become ED what is compatible)
        ret = string.sub(ret, 1, -4) --(-3-"template")
        local tmp = string.find('PBSE', postStack) --if template == 'D', it would work even for 'S' or 'E'
        ret = ret .. string.sub('1111', 2, tmp)
    end
    m.writeLog("getEasyTBits " .. ret .. endRet)
    return ret .. endRet
end

function m.templatingCost(startSubstedStack,numStartPreSubstStackTemplates)
    m.writeLog("templatingCost(startSubstedStack " .. (startSubstedStack or "nil") .. ",numStartPreSubstStackTemplates " .. (numStartPreSubstStackTemplates or "nil"))
    local ret, rem = 0, 0
    for i = 1, numStartPreSubstStackTemplates do
        local char, cost = string.sub(startSubstedStack, -i, -i)
        if char == '#' then
            rem = rem + 1
        else
            ret = ret + string.find('DPBS', char) - 1--there cannot be other options
        end
    end
    return ret, rem
end

m.results = {} --cache to gradually speed up
function m.changeStackCosts(startPreSubstStack, targetStack)

    local function searchChangeStackCosts(preEasyStack, targetStack)
        --returns table. when there are templates in postStack, the table contains prestacks compatible with the pattern and their costs
        --the prestacks are given as most general as possible,
        m.searchStartTime = g.millisecs()
        m.writeLog('searchChangeStackCosts(' .. preEasyStack .. "," .. targetStack .. ')', 3)
        local numStartPreSubstStackTemplates, bestCost = 0

        --local function bestCostUpdate(oriPreStack,cost,move) obsolete
        local function bestCostUpdate(cost, startSubstedStack, preEasyStack, preEasyBits)
            local tCost, tRem = m.templatingCost(startSubstedStack,numStartPreSubstStackTemplates)
            local sCost = cost + tCost
            if not bestCost then
                bestCost = { sCost, startSubstedStack, preEasyStack, tCost, preEasyBits }
                m.writeLog("Setting bestCost " .. startSubstedStack .. "(" .. cost .. ")->" .. sCost, 4)
            elseif bestCost[1] > sCost then
                m.writeLog("Decreasing bestCost " .. startSubstedStack .. "(" .. cost .. ")->" .. sCost, 4)
                bestCost = { sCost, startSubstedStack, preEasyStack, tCost, preEasyBits }
            elseif bestCost[1] == sCost then
                local oTCost, oTRem = m.templatingCost(bestCost[2],numStartPreSubstStackTemplates)
                if oTRem < tRem then
                    --just personal preferences
                    bestCost = { sCost, startSubstedStack, preEasyStack, tCost, preEasyBits }
                    m.writeLog("Updating bestCost " .. startSubstedStack .. "(" .. cost .. ")->" .. sCost, 4)
                end
            end
        end

        local function getBestCost(startSubstedStack)
            if not bestCost then
                return nil
            end
            local tCost = m.templatingCost(startSubstedStack,numStartPreSubstStackTemplates)
            return bestCost[1] - tCost
        end
        --
        bestCostUpdate(1000000000, preEasyStack, preEasyStack, '') --emergency returned value

        local cost = m.ignoreSuffixChangeStackCost(preEasyStack, targetStack)
        if cost then
            m.writeLog(' no search needed')
            bestCostUpdate(cost, preEasyStack, preEasyStack, '')
            return bestCost
        else
            m.writeLog(' search needed')
        end

        --conjecture ... D is cheaper # to both build and destroy so let us convert trailing # to D at the start.
        -- if we could access bottom under S*, we could with no additional cost convert D* to such S*
        --^ could be wrong in several cases. T6 requires S o be destroyable, wen we need to get rid of stack entirely
        -- BDBD at the end helps, but often we are happy eliminating the stack and emitting an extraBIt so DDDD is fine
        -- d6 requires DD
        local posRight -- will be the leftest template position matching postStack (indexed from bottom)
        local startSubstedStack = preEasyStack
        numStartPreSubstStackTemplates = string.len(startSubstedStack)
        for j = 1, string.len(startSubstedStack) do
            if string.sub(startSubstedStack, -j, -j) ~= '#' then
                numStartPreSubstStackTemplates = (j - 1)
                break
            elseif posRight then
                startSubstedStack = string.sub(startSubstedStack, 1, -j - 1) .. 'D' .. string.sub(startSubstedStack, -j + 1, j == 1 and 0 or -1)
            elseif j > string.len(targetStack) or not string.find('DBPS#', string.sub(targetStack, -j, -j)) then
                -- all P's in expected targets are either first or preceded by S
                posRight = j - 1
                startSubstedStack = string.sub(startSubstedStack, 1, -j - 1) .. 'D' .. string.sub(startSubstedStack, -j + 1, j == 1 and 0 or -1)
            elseif string.sub(targetStack, -j, -j) ~= '#' then
                startSubstedStack = string.sub(startSubstedStack, 1, -j - 1) .. string.sub(targetStack, -j, -j) .. string.sub(startSubstedStack, -j + 1, j == 1 and 0 or -1)
            end
        end
        posRight = not posRight and numStartPreSubstStackTemplates or posRight
        m.writeLog("numPreStackTemplates=" .. (numStartPreSubstStackTemplates or "nil") .. ", posRight=" .. (posRight or "nil"), 1)
        -- if posRight < TargetStack.len we should reduce the prefix to 'S' and we can set the next # from D afterwards
        -- if posRight == TargetStack.len, we should destroy prefix entirely, but extraBit could be used if TargetStack "suffix" does not start with D
        -- (but expected targets does not start with D (or #) so D* is fine here as well, but we have to create alternative extraBit expecting "target"
        -- exception is on the end of recepie where TargetStack.len==0 could happen and in that case extraBit could be forbidden ... hmm,
        -- but there would probably be T or t under bottom to be destroyed so extraBit would probably be welcomed (and targetSTack would be "1")
        local posLeft = numStartPreSubstStackTemplates --leftmost available to change
        if posLeft > 0 then
            if (string.sub(startSubstedStack, -posLeft - 2, -posLeft - 1) == "T6"
                    or string.sub(startSubstedStack, -posLeft - 2, -posLeft - 1) == "I4") then
                startSubstedStack = string.sub(startSubstedStack, 1, -posLeft - 1) .. 'S' .. string.sub(startSubstedStack, -posLeft + 1, posLeft == 1 and 0 or -1)
                m.writeLog("T6S/I4S forcing case", 1)
                posLeft = posLeft - 1
            end
        end
        if posRight > posLeft then
            posRight = posLeft
        end
        if posRight > 0 then
            startSubstedStack = string.sub(startSubstedStack, 1, -posRight - 1) .. 'D' .. string.sub(startSubstedStack, -posRight + 1, posRight == 1 and 0 or -1)
        end

        local trieQueue, trieQueueLastInd, trieQueueFirstInd -- increasing IndicesFirst mod trieNodeCount empty when trieQueueLastInd==trieQueueFirstInd,
        trieQueue, trieQueueLastInd, trieQueueFirstInd = {}, 0, 0

        local function trieQueuePush(trieNode)
            if trieNode then
                --allowing push(nil) doing nothing
                trieQueueLastInd = trieQueueLastInd + 1
                if trieQueueLastInd > m.trieNodeCount then
                    trieQueueLastInd = 1
                end
                trieQueue[trieQueueLastInd] = trieNode
            else
                m.writeLog("trieQueuePush(nil)", -2)
            end
        end

        local function trieQueuePull()
            if trieQueueFirstInd == trieQueueLastInd then
                return
            end
            trieQueueFirstInd = trieQueueFirstInd + 1
            if trieQueueFirstInd > m.trieNodeCount then
                trieQueueFirstInd = 1
            end
            local trieNode = trieQueue[trieQueueFirstInd]
            trieQueue[trieQueueFirstInd] = nil
            return trieNode
        end

        local extraBit, preStackLen, edgeBitLimit
        local function nextOutGoingEdge()
            m.writeLog("  NextOutGoingEdge", -1)
            local trieNode = trieQueuePull()
            while trieNode do
                if edgeBitLimit and trieNode.minBitLen >= edgeBitLimit then
                    -- extraBit should be included in edgeBitLimit
                    m.writeLog("trieBaranch discarded ... minBitLen " .. trieNode.minBitLen .. ">=" .. edgeBitLimit)
                elseif trieNode.minPreStackLen > preStackLen then
                    m.writeLog("trieBaranch discarded ... minPreStackLen " .. trieNode.minPreStackLen .. ">" .. preStackLen)
                else
                    -- trieQueuePush(trieNode[0]) used only at root with extraBit
                    m.writeLog("  NextOutGoingEdge push[1]", -2);
                    trieQueuePush(trieNode[1])
                    m.writeLog("  NextOutGoingEdge push[2]", -2);
                    trieQueuePush(trieNode[2])
                    if trieNode.moveConds then
                        m.writeLog("  NextOutGoingEdge #moves=" .. #trieNode.moveConds)
                        return trieNode.moveConds
                    end
                end
                trieNode = trieQueuePull()
            end
            return
        end

        local function firstOutGoingEdge(preStack)
            m.writeLog("  FirstOutgoingEdge " .. preStack, -1)
            extraBit = nil
            if preStack == "" then
                return
            end
            local first = string.sub(preStack, 1, 1)
            if string.find('01', first) then
                preStack = string.sub(preStack, 2)
                if preStack == "" then
                    return
                end
                extraBit = first + 0
                first = (first == "1") and string.sub(preStack, 1, 1) or first
            end
            if first == '#' then
                -- can reach other substitutes by 1* in the minimal cost, but not in 0 extraBitCase so '0' trie created
                first = 'D'
            end
            preStackLen = string.len(preStack)
            local trieNode = m.tries[first]
            if extraBit == 1 then
                -- we have not added extra level to trie['0']
                trieNode = trieNode[extraBit]
            end
            trieQueuePush(trieNode)
            return nextOutGoingEdge()
        end

        local queue, queueCurrentEstCost, queueMaxEstCost, queueCurrentEstCostInd = {}, -1, 0, 0
        local queueFilter = {}

        local function queueEmpty()
            m.writeLog("queueEmpty? " .. queueCurrentEstCost .. " " .. queueCurrentEstCostInd .. " " .. queueMaxEstCost, -1)
            if queueCurrentEstCost < 0 then
                return true
            end
            if queueCurrentEstCost < queueMaxEstCost then
                return false
            end
            if queueCurrentEstCostInd == #queue[queueMaxEstCost] then
                queue[queueMaxEstCost], queueCurrentEstCost, queueMaxEstCost, queueCurrentEstCostInd = nil, -1, 0, 0
                return true
            end
            return false
        end

        local function queuePush(startSubstedPreStack, preEasyStack, preEasyBits, est)
            local processed = queueFilter[startSubstedPreStack .. ">" .. preEasyStack]
            if processed and processed <= string.len(preEasyBits) then
                return
            end
            queueFilter[startSubstedPreStack .. ">" .. preEasyStack] = string.len(preEasyBits)
            est = not est and 0 or est
            local costEst = string.len(preEasyBits) + est
            if not queue[costEst] then
                queue[costEst] = {}
            end
            queue[costEst][1 + #queue[costEst]] = { startSubstedPreStack, preEasyStack, preEasyBits }
            if queueCurrentEstCost > costEst then
                queueCurrentEstCost, queueCurrentEstCostInd = costEst, 0
            elseif queueCurrentEstCost < 0 then
                queueCurrentEstCost = 0 --nonempty mark
            end
            if queueMaxEstCost < costEst then
                queueMaxEstCost = costEst
            end
        end

        local function queuePop()
            --nonEmpty was ensured
            if not queue[queueCurrentEstCost] then
                queueCurrentEstCostInd = 0
            end
            while not queue[queueCurrentEstCost] do
                queueCurrentEstCost = 1 + queueCurrentEstCost
            end
            queueCurrentEstCostInd = 1 + queueCurrentEstCostInd
            if queueCurrentEstCostInd > #queue[queueCurrentEstCost] then
                queue[queueCurrentEstCost] = nil
                queueCurrentEstCostInd = 1
                while not queue[queueCurrentEstCost] do
                    queueCurrentEstCost = 1 + queueCurrentEstCost
                end
            end
            local node = queue[queueCurrentEstCost][queueCurrentEstCostInd]
            return node[1], node[2], node[3]
        end

        local function extStack(pre, stack, post)
            m.writeLog("   extStack(" .. pre .. "," .. stack .. "," .. post .. ")")
            if string.find('01', string.sub(stack, 1, 1)) then
                -- extrabit
                pre, stack = string.sub(stack, 1, 1) .. pre, string.sub(stack, 2)
            end
            stack = pre .. stack
            if stack ~= "" and string.find('TtIHhBPdDS#', string.sub(stack, -1)) then
                return stack .. post
            else
                local postPos = string.find(post, '[TtIHhBPdDS#]')
                if postPos then
                    local postDist = string.sub(post, 1, postPos - 1)
                    postDist = ((postDist == "") and "8" or postDist)
                    local start, dist = string.match('H' .. stack, '(.*[TtIHhBPdDS#])(.*)')
                    start = string.sub(start, 2)
                    m.writeLog("   extStack start, dist, postDist " .. start .. "," .. dist .. "," .. postDist .. "(" .. postPos .. ")")
                    if start == "" then
                        return dist .. string.sub(post, postPos) --dist is actually extrabit (or empty)
                    else
                        dist = (dist == "") and 0 or dist
                        if dist + postDist == 8 then
                            return start .. string.sub(post, postPos)
                        end
                        return start .. m.inttostring(dist + postDist) .. string.sub(post, postPos)
                    end
                else
                    return stack
                end
            end
        end

        local function getCompatible(mPreStack, preEasyStack, mPostStack, startSubstedStack, conds)
            --{{extPreStack, extPostStack, oriPreStack}}
            m.writeLog("getCompatible(" .. mPreStack .. "," .. preEasyStack .. "," .. mPostStack .. "," .. startSubstedStack .. "," .. m.conditionsToString(conds) .. ")")
            local numConcretized = 0
            if extraBit then
                preEasyStack = string.sub(preEasyStack, 2)
            end
            local ret = {}
            if string.len(mPreStack) > string.len(preEasyStack) then
                m.writeLog(" string.len(mPreStack)>string.len(preStack)")
                return ret
            end
            local offs, sPreStack, hIdSkip, fail = 0, preEasyStack, string.sub(conds[1], 1, 1)
            local cdist = string.sub(conds[1], 2)
            cdist = (cdist == "") and "0" or cdist -- if conds[1] not empty than odd
            cdist = 0 + cdist
            --while offs<string.len(preEasyStack)
            do
                fail = false
                --if (offs>0) then
                --m.writeLog(' no S#->SS is never optimal',-1)
                --  return ret
                --[[ here in comment is the original hugely branching method
    it explains why there is a loop and fail rather to return
    if hIdSkip~="S" or string.sub(sPreStack,offs,offs)~="#" then
      m.writeLog(' no # compatible with hIdSkip '..hIdSkip..","..string.sub(sPreStack,offs,offs))
      return ret
    end
    sPreStack=string.sub(sPreStack,1,offs-1)..'S'..string.sub(sPreStack,offs+1)
    local oriPos=string.find(oriPreStack,'#')
    oriPreStack=string.sub(oriPreStack,1,oriPos-1)..'S'..string.sub(oriPreStack,oriPos+1)
    numConcretized=numConcretized+1
  --]]
                --end
                preEasyStack = sPreStack
                if hIdSkip ~= "" then
                    local pos = string.find(preEasyStack, '[' .. string.gsub('TtIHhBPdDS', hIdSkip, '') .. ']', offs + 1)
                    if not pos then
                        m.writeLog(" everything skipped " .. hIdSkip)
                        return ret
                    end
                    offs = pos - 1
                    if offs > 0 then
                        local pre, dist = string.match(hIdSkip .. string.sub(preEasyStack, 1, offs), '(.*' .. hIdSkip .. ')(.*)')
                        dist = (dist == "") and "8" or dist
                        dist = 0 + dist
                        fail = dist < cdist
                        if fail then
                            m.writeLog("  fail:small distance from hIdskip " .. dist .. "<" .. cdist)
                        end
                    end
                end
                if string.len(mPreStack) + offs > string.len(preEasyStack) then
                    m.writeLog(" string.len(mPreStack)+offs>string.len(preStack)")
                    return ret
                end
                if not fail then
                    for i = 1, string.len(mPreStack) do
                        if string.sub(mPreStack, i, i) ~= string.sub(preEasyStack, i + offs, i + offs) then
                            if not string.find('DPBS', string.sub(mPreStack, i, i)) or string.sub(preEasyStack, i + offs, i + offs) ~= "#" then
                                m.writeLog(" fail:not match at positions " .. i .. "," .. i + offs .. ":" .. string.sub(mPreStack, i, i) .. "?" .. string.sub(preEasyStack, i + offs, i + offs))
                                fail = true
                                break
                            else
                                preEasyStack = string.sub(preEasyStack, 1, i + offs - 1) .. string.sub(mPreStack, i, i) .. string.sub(preEasyStack, i + offs + 1)
                            end
                        end
                    end
                end
                if not fail then
                    local condsToTest, pos, endPos = {}, 1 + offs + string.len(mPreStack) --mPreStack ends by an hId !!!
                    condsToTest["_"] = ""
                    if pos <= string.len(preEasyStack) then
                        endPos = string.find(string.sub(preEasyStack, pos), '[TtIHhBPdDS#]')
                        if endPos then
                            local hId = string.sub(string.sub(preEasyStack, pos), endPos, endPos)
                            condsToTest["_"] = nil
                            local dist = string.sub(string.sub(preEasyStack, pos), 1, endPos - 1)
                            dist = (dist == "" and "8") or dist
                            condsToTest[hId] = dist
                            m.writeLog(" condToTest " .. hId .. "," .. dist .. "(" .. endPos .. ")")
                            --actually we have very rarely to check 2nd item dist as well (I4S2I...{I7} condition)
                            --I bet the use of the StackChangeCost caused by prevPostStack->requiredPreStack
                            --will never generate this case ... so I leave it this simplified way till it is really required
                            --proving it is not necessary is another option :)
                        end
                        if condsToTest['#'] then
                            condsToTest['D'] = condsToTest['#']
                            condsToTest['B'] = condsToTest['#']
                            condsToTest['S'] = condsToTest['#']
                            condsToTest['#'] = nil
                        end
                    end
                    local OK, KO = {}, {}
                    for i = 1, #conds[2] do
                        local hId = string.sub(conds[2][i], -1)
                        m.writeLog("  condition " .. conds[2][i] .. "," .. hId)
                        local dist = condsToTest[hId]
                        if dist then
                            if dist == "" then
                                OK[#OK + 1] = hId
                                m.writeLog(" condition " .. hId .. "," .. dist .. " OK")
                            else
                                local cdist = string.sub(conds[2][i], 1, -2)
                                cdist = (cdist == "" and "8") or cdist
                                dist, cdist = dist + 0, cdist + 0
                                if cdist % 2 == 1 then
                                    if cdist < dist then
                                        OK[#OK + 1] = hId
                                        m.writeLog(" condition " .. hId .. "," .. dist .. "(" .. cdist .. ")" .. " OK")
                                    else
                                        KO[#KO + 1] = hId
                                        m.writeLog(" condition " .. hId .. "," .. dist .. "(" .. cdist .. ")" .. " KO")
                                    end
                                else
                                    if cdist == dist then
                                        OK[#OK + 1] = hId
                                        m.writeLog(" condition " .. hId .. "," .. dist .. "(" .. cdist .. ")" .. " OK")
                                    else
                                        KO[#KO + 1] = hId
                                        m.writeLog(" condition " .. hId .. "," .. dist .. "(" .. cdist .. ")" .. " KO")
                                    end
                                end
                            end
                            condsToTest[hId] = nil
                        end
                    end
                    for hId, dist in pairs(condsToTest) do
                        KO[#KO + 1] = hId
                        m.writeLog(" condition " .. hId .. "," .. dist .. " KO (missed)")
                    end
                    if #OK == 0 then
                        m.writeLog(' all suffix tests failed')
                    else
                        for i = 1, #OK do
                            if #KO > 0 then
                                -- template needs further specification
                                preEasyStack = string.sub(preEasyStack, 1, endPos - 1) .. OK[i] .. string.sub(preEasyStack, endPos + 1)
                            elseif i > 1 then
                                m.writeLog("  all template suffixes work well so template remains unchanged")
                                break
                            end
                            local extpre, extpost, mStartSubstedStack = string.sub(preEasyStack, 1, offs), string.sub(preEasyStack, pos), startSubstedStack
                            local extPostStack = extStack(extpre, mPostStack, extpost)
                            m.writeLog('  extPostStack=' .. extPostStack)
                            for j = 1, string.len(preEasyStack) do
                                if j > string.len(startSubstedStack) then
                                    break
                                end
                                if string.sub(startSubstedStack, -j, -j) == '#' and string.sub(preEasyStack, -j, -j) ~= '#' then
                                    mStartSubstedStack = string.sub(mStartSubstedStack, 1, -j - 1) .. string.sub(preEasyStack, -j, -j) .. string.sub(mStartSubstedStack, -j + 1, j == 1 and 0 or -1)
                                    numConcretized = numConcretized + 1
                                end
                            end
                            ret[#ret + 1] = { preEasyStack, extPostStack, mStartSubstedStack }
                            m.writeLog(" getCompatible new result:" .. extPostStack .. "," .. preEasyStack .. "," .. mStartSubstedStack, 3)
                        end
                    end
                end
                offs = offs + 1
            end
            return ret
        end

        local preEasyBits, preEasyStack = '', startSubstedStack
        queueCurrentEstCost, queueMaxEstCost, queueCurrentEstCostInd, queueFilter = -1, 0, 0, {}
        do
            local cost, est = m.ignoreSuffixChangeStackCost(preEasyStack, targetStack)
            if cost then
                m.writeLog(" StartBestCost  [" .. preEasyStack .. "]+" .. cost .. "[" .. targetStack .. "]", 4)
                bestCostUpdate(cost, startSubstedStack, preEasyStack, preEasyBits)
            else
                queuePush(startSubstedStack, preEasyStack, preEasyBits, est)
            end
        end
        while not queueEmpty() do
            startSubstedStack, preEasyStack, preEasyBits = queuePop()
            m.writeLog("Search [" .. preEasyStack .. "]" .. preEasyBits .. "[" .. startSubstedStack .. "][" .. targetStack .. "]", 3)
            local best, fail = getBestCost(startSubstedStack)
            edgeBitLimit = nil
            if best then
                edgeBitLimit = best - string.len(preEasyBits) + ((not extraBit) and 0 or 1)
                fail = edgeBitLimit <= 0
                if not fail then
                    local cost, est = m.ignoreSuffixChangeStackCost(preEasyStack, targetStack)
                    -- non null cost would prevent push as well as best test in that time, but best could have improved
                    fail = edgeBitLimit <= est
                end
            end
            if not fail then
                local moveConds = firstOutGoingEdge(preEasyStack)
                while moveConds do
                    for i = 1, #moveConds do
                        m.writeLog(" " .. preEasyStack .. ">" .. moveConds[i])
                        local mBits, move, conds, mPreStack, mPostStack = m.parseMove(moveConds[i])
                        if extraBit then
                            if 0 + string.sub(mBits, 1, 1) ~= extraBit then
                                m.writeLog("something wrong not matched extraBit " .. extraBit .. "?" .. mBits, 10)
                            else
                                mBits = string.sub(mBits, 2)
                            end
                        end
                        if string.find(mBits, '0') then
                            m.writeLog(" bit 0 can be used only as extraBit ... this cannot happen", 10)
                            break -- all moves in moveConds has same bits
                        end
                        local stacks = getCompatible(mPreStack, preEasyStack, mPostStack, startSubstedStack, conds) --{{extPreStack, extPostStack, oriPreStack}}
                        for j = 1, #stacks do
                            best = getBestCost(stacks[j][3])
                            if not best or best > string.len(preEasyBits) + string.len(mBits) then
                                local cost, est = m.ignoreSuffixChangeStackCost(stacks[j][2], targetStack)
                                if cost then
                                    m.writeLog(" cost  [" .. stacks[j][3] .. "]" .. preEasyBits .. mBits .. "[" .. stacks[j][2] .. "]+" .. cost .. "[" .. targetStack .. "]", 1)
                                    if not best or best > string.len(preEasyBits) + string.len(mBits) + cost then
                                        bestCostUpdate(string.len(preEasyBits) + string.len(mBits) + cost, stacks[j][3], stacks[j][2], preEasyBits .. mBits)
                                    end
                                else
                                    if est then
                                        if not best or best > string.len(preEasyBits) + string.len(mBits) + est then
                                            m.writeLog("       [" .. stacks[j][3] .. "]" .. preEasyBits .. mBits .. "+>" .. est .. "[" .. stacks[j][2] .. "]>?>[" .. targetStack .. "]", 1)
                                            queuePush(stacks[j][3], stacks[j][2], preEasyBits .. mBits, est)
                                        end
                                    else
                                        m.writeLog("       [" .. stacks[j][3] .. "]" .. preEasyBits .. mBits .. "[" .. stacks[j][2] .. "]>?>[" .. targetStack .. "]", 1)
                                        queuePush(stacks[j][3], stacks[j][2], preEasyBits .. mBits, est)
                                    end
                                end
                            end
                        end
                    end
                    moveConds = nextOutGoingEdge()
                end
            end
        end
        return bestCost
    end

    if not m.results[startPreSubstStack .. ">" .. targetStack] then
        m.results[startPreSubstStack .. ">" .. targetStack] = searchChangeStackCosts(startPreSubstStack, targetStack)
    end
    return m.results[startPreSubstStack .. ">" .. targetStack]
end

return m

Code: Select all

local g = golly()
g.autoupdate(true)
g.show("Init")
local startTime = g.millisecs()
local sd = require "StackChangeCost"

local levelFileName = "c:\\Golly\\Levels.txt"
local moveCondsFileName = "c:\\Golly\\QuarkCondBitSequences.txt"
local resultOutputFileName = "c:\\Golly\\FixedBottomGliderLevelsToBitsResult.txt"
local easyFilledOutputFileName = "c:\\Golly\\FixedBottomGliderLevelsToBitsResultE.txt"
local templateFixedOutputFileName = "c:\\Golly\\FixedBottomGliderLevelsToBitsResultFT.txt"

local log = io.open("c:\\Golly\\FixedBottomGliderLevelsToBitslog.txt", "w")
local logLevel = 0

local function inttostring(num)
    return string.sub(num, 1, string.find(num .. ".", "%.") - 1)
end

local function writeLog(msg, level)
    local time = g.millisecs()
    if log and ((not level and logLevel <= 0) or (level and level >= logLevel)) then
        log:write(string.sub("        " .. inttostring(time - startTime), -8) .. "ms " .. msg .. "\n")
    end
end

--[[
writeLog("StackCostTest easyChangeStackCost('SB','B6d6DSDDDSS')="..sd.easyChangeStackCost('SB','B6d6DSDDDSS'),-2)
local cSC
cSC=sd.changeStackCosts('H6T22#','')
writeLog("StackCostTest changeStackCosts('H6T22#','')="
        .."("..cSC[2]..")"..cSC[3],2)
cSC=sd.changeStackCosts('T18T18T6SDDDD####################','PDDD####################')
writeLog("StackCostTest changeStackCosts('T18T18T6SDDDD####################','PDDD####################')="
        .."("..cSC[2]..")"..cSC[3],2)
--]]

local function inDelimiters(name, leftDelimiter, rightDelimiter)
    --g.note("iD "..name.." "..leftDelimiter..","..rightDelimiter)
    return string.sub(name, string.find(name, '%' .. leftDelimiter) + 1, string.find(name, '%' .. rightDelimiter) - 1)
end

local function split(str, delim)
    local ret, l, p = {}, 1
    str = str or ''
    while l <= 1 + string.len(str) do
        p = string.find(str .. delim, '%' .. delim, l)
        ret[1 + #ret], l = string.sub(str, l, p - 1), p + 1
    end
    return ret
end

local function parseMove(moveConds)
    local preStack, postStack, conds, pos, move, bits, glider
    pos, conds = string.find(moveConds .. '{', '%{'), ""
    conds = string.sub(moveConds, pos + 1, string.find(moveConds .. '}', '%}') - 1)
    conds = split(conds, ':')
    conds[2] = split(conds[2], ',')
    move = string.sub(moveConds, 1, pos - 1)
    pos = string.find(move, '%]')
    preStack = string.sub(move, 2, pos - 1)
    bits = string.sub(move, pos + 1)
    pos = string.find(bits, '%[')
    postStack = string.sub(bits, pos + 1, -2)
    bits = string.sub(bits, 1, pos - 1)
    glider, pos = '', string.find(bits, '%(')
    if pos then
        glider = inDelimiters(bits, '(', ')')
        bits = string.sub(bits, 1, pos - 1) .. string.sub(bits, string.find(bits, '%)') + 1)
    end
    return bits, move, conds, preStack, postStack, glider
end

local emissions = {}

local function insertEmissionTo(to, moveConds)
    if not emissions[to] then
        emissions[to] = {}
    end
    emissions[to][#emissions[to] + 1] = moveConds
end

local function insertEmission(moveConds)
    local _bits, _move, _conds, _preStack, _postStack, glider = parseMove(moveConds)
    if glider == "" then
        return
    end
    local dist, phase = string.match(glider, '(%d*) (%d*)')
    local d8 = inttostring(dist % 8)
    insertEmissionTo("d" .. d8 .. "p0%1", moveConds)
    insertEmissionTo("d" .. d8 .. "p" .. inttostring(phase % 2) .. "%2", moveConds)
    insertEmissionTo("d" .. d8 .. "p" .. inttostring(phase % 8) .. "%8", moveConds)
end

local function iniMoves()
    local h = io.open(moveCondsFileName, "r")
    local moveCondsLine = h:read()
    while moveCondsLine do
        insertEmission(string.sub(moveCondsLine, 5))
        moveCondsLine = h:read()
    end
    h:close()
end

--{{postStack->{toalcost,previousPostStack,move,startStackSubsted}}} obsolete
--{{postStack->{toalcost,previousPostStack,startStackSubsted,preEasyStack,preMoveStack,preEasyBits,easyBitsInfo,move,moveBotomymx}}}
local levelStacks, winners, level, bottomymx = {}

local function extStack(pre, stack, post)
    writeLog("   extStack(" .. pre .. "," .. stack .. "," .. post .. ")", -1)
    if string.find('01', string.sub(stack, 1, 1)) then
        -- extrabit
        pre, stack = string.sub(stack, 1, 1) .. pre, string.sub(stack, 2)
    end
    stack = pre .. stack
    if stack ~= "" and string.find('TtIHhBPdDS#', string.sub(stack, -1)) then
        return stack .. post
    else
        local postPos = string.find(post, '[TtIHhBPdDS#]')
        if postPos then
            local postDist = string.sub(post, 1, postPos - 1)
            postDist = ((postDist == "") and "8" or postDist)
            local start, dist = string.match('H' .. stack, '(.*[TtIHhBPdDS#])(.*)')
            start = string.sub(start, 2)
            writeLog("   extStack start, dist, postDist " .. start .. "," .. dist .. "," .. postDist .. "(" .. postPos .. ")")
            if start == "" then
                return dist .. string.sub(post, postPos) --dist is actually extrabit (or empty)
            else
                dist = (dist == "") and 0 or dist
                if dist + postDist == 8 then
                    return start .. string.sub(post, postPos)
                end
                return start .. inttostring(dist + postDist) .. string.sub(post, postPos)
            end
        else
            return stack
        end
    end
end

local startTemplateTop, finalStack
local function search()

    local queue, queueCurrentCost, queueCurrentCostInd = {}, -1, 0 --rather build list with traversal than queue

    local function queueInit()
        queue, queueCurrentCost, queueCurrentCostInd = {}, -1, 0
    end

    local function queueEmpty()
        writeLog("queueEmpty" .. queueCurrentCost .. " " .. queueCurrentCostInd)
        return queueCurrentCost < 0 or (queue[queueCurrentCost].next < 0 and queueCurrentCostInd == #queue[queueCurrentCost])
    end

    ---@return string emission, int targetymx
    local function queuePull()
        queueCurrentCostInd = 1 + queueCurrentCostInd
        if queueCurrentCostInd > #queue[queueCurrentCost] then
            queueCurrentCostInd, queueCurrentCost = 1, queue[queueCurrentCost].next
        end
        writeLog("queuePull " .. queueCurrentCost .. " " .. queueCurrentCostInd)
        local node = queue[queueCurrentCost][queueCurrentCostInd]
        return node[1], node[2]
    end

    local function queueMerge(emissions, targetymx)
        local function queuePush(node, ind)
            local bits = parseMove(node[1])
            writeLog("queuePush " .. string.len(bits) .. " {" .. node[1] .. "," .. node[2] .. "}")
            local cost = string.len(bits)
            if not queue[cost] then
                queue[cost] = {}
                if ind >= 0 then
                    -- go to a neighbour
                    while queue[ind].next > 0 and queue[ind].next < cost do
                        ind = queue[ind].next
                    end
                    while queue[ind].prev > 0 and queue[ind].prev > cost do
                        ind = queue[ind].prev
                    end
                end
                if ind > cost then
                    queue[cost].next, queue[cost].prev, queue[ind].prev = ind, queue[ind].prev, cost
                elseif ind >= 0 then
                    queue[cost].prev, queue[cost].next, queue[ind].next = ind, queue[ind].next, cost
                else
                    queue[cost].next, queue[cost].prev = ind, ind
                end
                if queue[cost].prev < 0 then
                    queueCurrentCost = cost
                end
            end
            queue[cost][1 + #queue[cost]] = node
            return cost
        end

        local ind = queueCurrentCost
        for j = 1, #emissions do
            ind = queuePush({ emissions[j], targetymx }, ind)
        end
    end

    local function extendStacks(preStack, postStack, delta)
        if delta < 0 then
            return
        end
        local extPostStack, extPreStack = postStack, preStack
        -- were I 1# off? ... I need at least 1 # for the A->B2  AX->B6X (implicit 8distance conversion trick)
        --should I remove one # later?
        for k = 0, delta, 8 do
            extPostStack, extPreStack = extStack("", extPostStack, "#"), extPreStack .. "#"
        end
        return extPostStack, extPreStack
    end

    local function checkConditions(conditions, atBottom)
        local OK, KO, conditionsToTest = {}, {}, {}
        if atBottom then
            conditionsToTest["_"] = ""
        else
            conditionsToTest['D'] = 8
            conditionsToTest['B'] = 8
            conditionsToTest['S'] = 8
        end
        for i = 1, #conditions[2] do
            --there is no conds[1] in emissions
            local hId = string.sub(conditions[2][i], -1)
            writeLog("  condition " .. conditions[2][i] .. "," .. hId, -1)
            local dist = conditionsToTest[hId]
            if dist then
                if dist == "" then
                    OK[#OK + 1] = hId
                    writeLog(" condition " .. hId .. "," .. dist .. " OK")
                else
                    local cDist = string.sub(conditions[2][i], 1, -2)
                    cDist = (cDist == "" and "8") or cDist
                    dist, cDist = dist + 0, cDist + 0
                    if cDist % 2 == 1 then
                        if cDist < dist then
                            OK[#OK + 1] = hId
                            writeLog(" condition " .. hId .. "," .. dist .. "(" .. cDist .. ")" .. " OK")
                        else
                            KO[#KO + 1] = hId
                            writeLog(" condition " .. hId .. "," .. dist .. "(" .. cDist .. ")" .. " KO")
                        end
                    else
                        if cDist == dist then
                            OK[#OK + 1] = hId
                            writeLog(" condition " .. hId .. "," .. dist .. "(" .. cDist .. ")" .. " OK")
                        else
                            KO[#KO + 1] = hId
                            writeLog(" condition " .. hId .. "," .. dist .. "(" .. cDist .. ")" .. " KO")
                        end
                    end
                end
                conditionsToTest[hId] = nil
            end
        end
        for hId, dist in pairs(conditionsToTest) do
            KO[#KO + 1] = hId
            writeLog(" condition " .. hId .. "," .. dist .. " KO (missed)")
        end
        return OK, KO
    end

    local i = io.open(levelFileName, "r")
    local inputLine = i:read()
    if inputLine then
        writeLog("inputLine=" .. inputLine)
    else
        writeLog("inputLine=nil")
    end
    startTemplateTop = inDelimiters(">" .. inputLine, ">", " ")
    finalStack = inDelimiters(inputLine, "[", "]")
    writeLog("startTemplateTop:" .. startTemplateTop .. " finalStack:" .. finalStack, 5)
    local startPreStack = "S"
    for k = bottomymx + 8, startTemplateTop, 8 do
        startPreStack = startPreStack .. "#"
    end
    writeLog("startPreStack " .. startPreStack .. "(" .. startTemplateTop .. "," .. bottomymx .. ",8)", 2)
    local level = 1
    levelStacks[level] = {}
    levelStacks[level][startPreStack] = { 0, "", "", "", "", "", "", "", "","" }
    local prevLevel, nrPrevLevelSwappers = {}, 1
    inputLine = ""
    while inputLine do
        queueInit()
        while inputLine ~= "" do
            local targetymx = inDelimiters(inputLine, '[', ']') - bottomymx
            queueMerge(emissions["d" .. inttostring(targetymx % 8) .. "p" .. string.sub(inputLine, 3, 5)], targetymx)
            inputLine = string.sub(inputLine, 1 + string.find(inputLine, '%]'))
        end
        while not queueEmpty() do
            local emission, targetymx = queuePull()
            writeLog("trying emission " .. emission .. " targeymx " .. targetymx .. " on level " .. level, 1)
            local bits, move, conditions, preStack, postStack, glider = parseMove(emission)
            local dist, _phase = string.match(glider, '(%d*) (%d*)') --we know mod8 everything matches
            local moveDelta = targetymx - dist
            local extPostStack, extPreStack = extendStacks(preStack, postStack, moveDelta)
            if not extPostStack then
                writeLog(" emission would overshot with this bottom (dist" .. dist .. ">" .. targetymx .. "targetymx)")
            elseif extPostStack == '#' and finalStack ~= '' then
                writeLog(' emission would destroy the stack')
            else
                local preMoveStack, endPreSubstStack, postStackX = string.gsub(extPreStack, '#', '', 1), string.gsub(extPostStack, '#', '', 1), string.gsub(extPostStack, '#', '')
                -- ^ may be converted by adding+8 to the end
                writeLog("postStack trick " .. postStack .. ">" .. extPostStack .. ">" .. postStackX)
                local OK, KO = checkConditions(conditions, moveDelta == 0)
                if #OK == 0 then
                    writeLog(' all suffix tests failed')
                else
                    for i = 1, #OK do
                        if #KO > 0 then
                            -- template needs further specification
                            writeLog("Changing preMoveStack " .. preMoveStack .. " to " .. preStack .. OK[i] .. string.sub(preMoveStack, string.len(preStack) + 2))
                            preMoveStack = preStack .. OK[i] .. string.sub(preMoveStack, string.len(preStack) + 2)
                            writeLog("Changing endPreSubstStack " .. endPreSubstStack .. " to " .. postStackX .. OK[i] .. string.sub(endPreSubstStack, string.len(postStackX) + 2))
                            endPreSubstStack = postStackX .. OK[i] .. string.sub(endPreSubstStack, string.len(postStackX) + 2)
                        elseif i > 1 then
                            writeLog("  done as all template suffixes work same")
                            break
                        end
                        local preMoveCostToBeat
                        if levelStacks[level][endPreSubstStack] then
                            preMoveCostToBeat = levelStacks[level][endPreSubstStack][1] - string.len(bits)
                            writeLog("preMoveCostToBeat=" .. preMoveCostToBeat .. "(levelStacks[level][endPreSubstStack(" .. endPreSubstStack .. ")][1]-string.len(bits))="
                                    .. levelStacks[level][endPreSubstStack][1] .. "-" .. string.len(bits))
                        end
                        do
                            local s = "";
                            for j = 1, nrPrevLevelSwappers do
                                s = s .. "," .. prevLevel[j]
                            end
                            writeLog("PrevLevelStart: " .. string.sub(s, 2), 1)
                        end
                        for j = 1, #prevLevel do
                            local startPreSubstStack = prevLevel[j]
                            local prevResultCost = levelStacks[level - 1][startPreSubstStack][1]
                            writeLog("Checking connection from prevEnd=startPreSubstStack " .. startPreSubstStack .. " to " .. preMoveStack .. " preMoveCostToBeat=" .. (not preMoveCostToBeat and "nil" or preMoveCostToBeat))
                            local fail
                            if preMoveCostToBeat then
                                if preMoveCostToBeat <= prevResultCost then
                                    fail = true
                                    writeLog("startPreSubstStack alone too expensive " .. preMoveCostToBeat .. "<=" .. prevResultCost)
                                else
                                    local est = sd.easyChangeStackLowerBound(startPreSubstStack, preMoveStack) or 0
                                    if preMoveCostToBeat <= prevResultCost + est then
                                        fail = true
                                        writeLog("startPreSubstStack + costLowerBound too expensive " .. preMoveCostToBeat .. "<=" .. prevResultCost .. "+" .. est)
                                    end
                                end
                            end
                            if not fail then
                                local costResult = sd.changeStackCosts(startPreSubstStack, preMoveStack)
                                local preMoveCost = prevResultCost + costResult[1]
                                if preMoveCostToBeat and preMoveCostToBeat <= preMoveCost then
                                    fail = true
                                    writeLog("startPreSubstStack + cost too expensive " .. preMoveCostToBeat .. "<=" .. preMoveCost .. "=" .. prevResultCost .. "+" .. costResult[1])
                                else
                                    preMoveCostToBeat = preMoveCost
                                    writeLog("insert or update on level " .. level .. "[" .. endPreSubstStack .. "]="
                                            .. (preMoveCost + string.len(bits))
                                            .. "(" .. startPreSubstStack .. "(" .. costResult[2] .. ")[" .. costResult[3] .. "]" .. costResult[3] .. "[" .. preMoveStack .. "]" ..
                                            costResult[5] .. "(" .. inttostring(costResult[1] - costResult[4] - string.len(costResult[5])) .. ")" .. move .. "<" .. inttostring(moveDelta + bottomymx) .. ")", 2)
                                    levelStacks[level][endPreSubstStack] = { preMoveCost + string.len(bits), startPreSubstStack, costResult[2], costResult[3], preMoveStack,
                                                                             costResult[5], costResult[1] - costResult[4] - string.len(costResult[5]), move, moveDelta + bottomymx,
                                                                             endPreSubstStack}
                                    local k = j
                                    if j > nrPrevLevelSwappers then
                                        nrPrevLevelSwappers = 1 + nrPrevLevelSwappers
                                        prevLevel[j] = prevLevel[nrPrevLevelSwappers]
                                        k = nrPrevLevelSwappers
                                    end
                                    while (k > 1) do
                                        prevLevel[k] = prevLevel[k - 1]
                                        k = k - 1
                                    end
                                    prevLevel[1] = startPreSubstStack
                                end
                            end
                        end
                    end
                end
            end
        end
        inputLine = i:read()
        if inputLine then
            writeLog("inputLine=" .. inputLine)
        else
            writeLog("inputLine=nil")
        end
        prevLevel, nrPrevLevelSwappers = {}, 1
        for endPreSubsStack, info in pairs(levelStacks[level]) do
            --we prefere best first and try to maintain best candidates near 1
            prevLevel[1 + #prevLevel] = endPreSubsStack
            if levelStacks[level][prevLevel[nrPrevLevelSwappers]][1] > info[1] then
                nrPrevLevelSwappers = 1 + nrPrevLevelSwappers
                prevLevel[#prevLevel] = prevLevel[nrPrevLevelSwappers]
                prevLevel[nrPrevLevelSwappers] = endPreSubsStack
            end
        end
        for i = 1, nrPrevLevelSwappers // 2 do
            prevLevel[nrPrevLevelSwappers + 1 - i], prevLevel[i] = prevLevel[i], prevLevel[nrPrevLevelSwappers + 1 - i]
        end
        level = level + 1
        levelStacks[level] = {}
    end
    i:close()
    local targetStack, preMoveCostToBeat = finalStack
    writeLog("finalizing", 5)
    for j = 1, #prevLevel do
        local startPreSubstStack = prevLevel[j]
        local prevResult = levelStacks[level - 1][startPreSubstStack]
        writeLog("Checking connection from startPreSubstStack " .. startPreSubstStack, 2)
        local fail
        if preMoveCostToBeat then
            if prevResult[1] > preMoveCostToBeat then
                fail = true
                writeLog("startPreSubstStack alone too expensive", 2)
            else
                local est = sd.easyChangeStackLowerBound(startPreSubstStack, targetStack)
                if prevResult[1] + est > preMoveCostToBeat then
                    fail = true
                    writeLog("startPreSubstStack + costLowerBound too expensive", 2)
                end
            end
        end
        if not fail then
            local costResult = sd.changeStackCosts(startPreSubstStack, targetStack)
            local preMoveCost = prevResult[1] + costResult[1]
            if preMoveCostToBeat and preMoveCost > preMoveCostToBeat then
                fail = true
                writeLog("prevPostStack + cost too expensive", 2)
            end
            if not fail then
                preMoveCostToBeat = preMoveCost
                writeLog("insert or update on final level " .. level .. "preMoveCostToBeat=" .. preMoveCostToBeat, 10)
                levelStacks[level][targetStack] = { preMoveCost, startPreSubstStack, costResult[2], costResult[3], targetStack,
                                                    costResult[5], costResult[1] - costResult[4] - string.len(costResult[5]), "", bottomymx, targetStack }
            end
        end
    end
    return level
end

local function getWinner()
    local winners = {}
    winners[level + 1] = finalStack
    for l = level, 1, -1 do
        winners[l] = levelStacks[l][winners[l + 1]][2]
    end
    return winners
end

--{{postStack->{toalcost,previousPostStack,move,prepareInfo}}}
local function outputResult(output)
    output:write("--bottomymx:" .. bottomymx .. " totalCost=" .. levelStacks[level][finalStack][1])
    local prevCost = 0
    for l = 1, level do
        local easyBits, easyBitsCost = levelStacks[l][winners[l + 1]][7];
        if type(easyBits) ~= "string" then
            easyBitsCost = easyBits
            easyBits = "(+" .. inttostring(easyBits) .. ")"
        else
            easyBitsCost = string.len(string.gsub(string.gsub(string.gsub(string.gsub(string.gsub(easyBits,
                    'E', '1111'),
                    'S', '111'),
                    'B', '11'),
                    'D', ''),
                    '#', ''))
        end
        local emission, bits, move, glider = levelStacks[l][winners[l + 1]][8], '', '', ''
        if emission ~= '' then
            bits, move, _, _, _, glider = parseMove(emission)
            if glider ~= '' then
                glider = '(' .. glider .. ')'
                local dist, phase = inDelimiters(glider, '(', ' '), inDelimiters(glider, ' ', ')')
                glider = '(g' .. phase .. '%8)[' .. inttostring(dist + levelStacks[l][winners[l + 1]][9]) .. ']' .. glider
            end
        end
        local preCost = levelStacks[l][winners[l + 1]][1] - prevCost - string.len(bits) - easyBitsCost - string.len(levelStacks[l][winners[l + 1]][6])
        if levelStacks[l][winners[l + 1]][2] ~= levelStacks[l][winners[l + 1]][3] then
            preCost = '(+' .. inttostring(preCost) .. ")"
        else
            preCost = ''
        end
        output:write(preCost .. "\n" .. levelStacks[l][winners[l + 1]][6] .. " " .. easyBits .. " " .. bits ..
                " --" .. glider .. "<" .. inttostring(levelStacks[l][winners[l + 1]][9]) .. "(" .. levelStacks[l][winners[l + 1]][1] .. ")" ..
                "[" .. levelStacks[l][winners[l + 1]][2] .. "]>[" .. levelStacks[l][winners[l + 1]][3] .. "]>[" ..
                levelStacks[l][winners[l + 1]][4] .. "]>[" .. levelStacks[l][winners[l + 1]][5] .. "]>(" .. winners[l + 1] .. ")[" .. levelStacks[l][winners[l + 1]][10] .. "]")
        prevCost = levelStacks[l][winners[l + 1]][1]
    end
end

local function fillWinnerEasy()
    for l = 2, level do
        local easyBitsWithTemplates = sd.getEasyTBits(levelStacks[l][winners[l + 1]][4], levelStacks[l][winners[l + 1]][5])
        levelStacks[l][winners[l + 1]][7] = easyBitsWithTemplates
    end
end

local function fixWinnerTemplates()
    local nextStartSubstedStack
    for l=level,2,-1 do
        if nextStartSubstedStack then
            local numNextStartPreSubstStackTemplates=string.len(levelStacks[l][winners[l + 1]][10])-string.len(string.gsub(levelStacks[l][winners[l + 1]][10],'#',''))
            if numNextStartPreSubstStackTemplates>0 then
                local cost=sd.templatingCost(nextStartSubstedStack,numNextStartPreSubstStackTemplates)
                levelStacks[l][winners[l + 1]][10]=nextStartSubstedStack
                levelStacks[l][winners[l + 1]][1]=levelStacks[l][winners[l + 1]][1]+cost
                levelStacks[l][winners[l + 1]][5]=string.sub(levelStacks[l][winners[l + 1]][5],1,-1-numNextStartPreSubstStackTemplates)..
                        string.sub(nextStartSubstedStack,-numNextStartPreSubstStackTemplates)
                levelStacks[l][winners[l + 1]][7]=levelStacks[l][winners[l + 1]][7]+cost
                local numPreEasyTemplates=string.len(levelStacks[l][winners[l + 1]][4])-string.len(string.gsub(levelStacks[l][winners[l + 1]][4],'#',''))
                numPreEasyTemplates = (numPreEasyTemplates < numNextStartPreSubstStackTemplates) and numPreEasyTemplates or numNextStartPreSubstStackTemplates
                if numPreEasyTemplates>0 then
                    levelStacks[l][winners[l + 1]][4]=string.sub(levelStacks[l][winners[l + 1]][4],1,-1-numPreEasyTemplates)..
                            string.sub(nextStartSubstedStack,-numPreEasyTemplates)
                    cost=sd.templatingCost(levelStacks[l][winners[l + 1]][4],numPreEasyTemplates)
                    levelStacks[l][winners[l + 1]][7]=levelStacks[l][winners[l + 1]][7]-cost
                    local numStartSubstedTemplates = string.len(levelStacks[l][winners[l + 1]][3])-string.len(string.gsub(levelStacks[l][winners[l + 1]][3],'#',''))
                    numStartSubstedTemplates = (numStartSubstedTemplates < numPreEasyTemplates) and numStartSubstedTemplates or numPreEasyTemplates
                    if numStartSubstedTemplates>0 then
                        levelStacks[l][winners[l + 1]][3]=string.sub(levelStacks[l][winners[l + 1]][3],1,-1-numStartSubstedTemplates)..
                                string.sub(nextStartSubstedStack,-numStartSubstedTemplates)
                    end
                end
            end
        end
        nextStartSubstedStack=levelStacks[l][winners[l + 1]][3]
    end
end

iniMoves()
local resultOutput = io.open(resultOutputFileName, "w")
local easyFilledOutput = io.open(easyFilledOutputFileName, "w")
local templateFixedOutput = io.open(templateFixedOutputFileName, "w")

bottomymx = 2352;
level = search();
winners = getWinner()
outputResult(resultOutput)
do
    fixWinnerTemplates()
end
outputResult(templateFixedOutput)
do
    fillWinnerEasy()
end
outputResult(easyFilledOutput)

local endTime = g.millisecs()
writeLog("Done", 10)
Levels:

Code: Select all

2360 [SBDBD]
(g0%1)[2417]
(g0%1)[2420](g0%1)[2415]
(g0%1)[2413]
(g0%1)[2414]
(g0%1)[2411]
(g0%1)[2399](g0%1)[2398](g0%1)[2400](g0%1)[2401](g0%1)[2402](g0%1)[2403]
(g0%1)[2400]
(g0%1)[2390](g0%1)[2391](g0%1)[2394]
(g0%2)[2397]
(g0%2)[2404]
(g0%1)[2405](g0%1)[2400]
(g0%1)[2403]
(g0%1)[2401]
(g0%1)[2393]
(g0%1)[2396]
(g0%1)[2398](g0%1)[2393]
(g1%2)[2393]
(g1%2)[2397]
(g0%1)[2407]
(g1%2)[2410]
(g1%2)[2402]
(g0%2)[2414]
(g0%2)[2402]
(g1%2)[2390]
Resuls:

Code: Select all

--bottomymx:2352 totalCost=1966
   --<(0)[]>[]>[]>[]>(S#)[]
 (+59) 2221121112111111111111112121111112 --(g0%8)[2417](33 0)<2384(93)[S#]>[S#]>[S#]>[B6d6DSDDSS###]>(1T6S###)[1T6S###](+0)
1 (+38) 1122111112112112112111111211212211221 --(g5%8)[2420](52 5)<2368(169)[1T6S###]>[1T6SD##]>[SD##]>[S6d6BDSDDD##]>(H6T22##)[H6T22##](+0)
11121121 (+38) 1112112121121111211211211211121121121121121122221122 --(g3%8)[2413](37 3)<2376(267)[H6T22##]>[H6T22D#]>[D#]>[S6d6BDD###]>(DDB###)[DDB###](+0)
112111111 (+43) 2111112111211 --(g0%8)[2414](38 0)<2376(332)[DDB###]>[DDBD##]>[SSS##]>[T6SPDSS##]>(T6S##)[T6S##](+0)
11 (+49) 1121211112112111121121121121111112112122112 --(g5%8)[2411](27 5)<2384(426)[T6S##]>[T6SD#]>[SD#]>[S6d6BDBDD####]>(1B####)[1B####](+6)
 (+31) 2111112111211 --(g0%8)[2398](38 0)<2360(476)[1B####]>[1BDDSS]>[SDDSS]>[T6SPDSS]>(T6S)[T6S]
11 (+63) 22121121121121121121121122112112122112112111221111111111111112 --(g3%8)[2400](24 3)<2376(603)[T6S]>[T6S]>[S]>[B6d6DBDDBDS##]>(S##)[S##]
 (+53) 22 --(g3%8)[2394](10 3)<2384(658)[S##]>[S##]>[S##]>[B6d6DSSDS####]>(####)[####]
 (+43) 2221121121111121121121122112222 --(g6%8)[2397](29 6)<2368(732)[####]>[####]>[####]>[B6d6DSDDSB##]>(##)[##]
 (+43) 2211211212111112111211122121222112112112112111112111211121111112 --(g6%8)[2404](20 6)<2384(839)[##]>[##]>[##]>[PDDDDD###]>(T18T6SD###)[T18T6SD###](+0)
21 (+11) 1112112121121111211211211211121121121121121122221122 --(g3%8)[2405](37 3)<2368(904)[T18T6SD###]>[T18T6SDD##]>[SDD##]>[S6d6BDD##]>(DDB##)[DDB##](+0)
11212 (+43) 1121211112112111121121121121111112112122112 --(g5%8)[2403](27 5)<2376(995)[DDB##]>[DDBD#]>[SD#]>[S6d6BDBDD###]>(1B###)[1B###](+0)
 (+43) 2211221111121211222112111222111111 --(g7%8)[2401](17 7)<2384(1072)[1B###]>[1BD##]>[SD##]>[PDBSBB####]>(####)[####](+6)
 (+26) 2221121112111111111111112121111112 --(g0%8)[2393](33 0)<2360(1138)[####]>[DDSS]>[DDSS]>[B6d6DSDDSS]>(1T6S)[1T6S]
1 (+40) 2211211212111112111211122121222112112112112111112111211121111112 --(g6%8)[2396](20 6)<2376(1243)[1T6S]>[1T6S]>[S]>[PDDDDD##]>(T18T6SD##)[T18T6SD##](+3)
21 (+23) 2221111121112111111111111211121111112 --(g0%8)[2393](33 0)<2360(1308)[T18T6SD##]>[T18T6SDDS]>[SDDS]>[B6d6DSDDDS]>(1T6S)[1T6S]
1 (+55) 2211221111121211222112111222111111 --(g7%8)[2393](17 7)<2376(1398)[1T6S]>[1T6S]>[S]>[PDBSBB###]>(###)[###]
 (+20) 1112112121121111211211211211121121121121121122221122 --(g3%8)[2397](37 3)<2360(1470)[###]>[###]>[###]>[S6d6BDD#]>(DDB#)[DDB#](+0)
11212 (+57) 21111211111122121112111111121111111212211112 --(g2%8)[2407](15 2)<2392(1576)[DDB#]>[DDBD]>[SD]>[SPDBSS####]>(T18T18T6S####)[T18T18T6S####](+0)
2111 (+53) 22 --(g3%8)[2410](10 3)<2400(1635)[T18T18T6S####]>[T18T18T6SD###]>[SD###]>[B6d6DSSDS######]>(######)[######]
 (+44) 22 --(g3%8)[2402](10 3)<2392(1681)[######]>[######]>[######]>[B6d6DSSDS#####]>(#####)[#####](+6)
 (+46) 2111112111211 --(g0%8)[2414](38 0)<2376(1746)[#####]>[DSS##]>[DSS##]>[T6SPDSS##]>(T6S##)[T6S##](+0)
11 (+67) 222112112111111111111111112222121222 --(g4%8)[2402](18 4)<2384(1851)[T6S##]>[T6SD#]>[SD#]>[B6d6DDSSDDBS###]>(S###)[S###]
 (+29) 11121121211211211211111211121112111121121122112112121121122112 --(g5%8)[2390](6 5)<2384(1942)[S###]>[S###]>[S###]>[S6d6BDD####]>(h4t14####)[h4t14####](+2)
11111111121 (+11)  --<2352(1966)[h4t14####]>[h4t14DDBD]>[DDBD]>[SBDBD]>(SBDBD)[SBDBD]

Code: Select all

--bottomymx:2352 totalCost=1966
   --<(0)[]>[]>[]>[]>(S#)[](+3)
 (+59) 2221121112111111111111112121111112 --(g0%8)[2417](33 0)<2384(96)[S#]>[SS]>[SS]>[B6d6DSDDSSDDS]>(1T6S###)[1T6SDDS](+0)
1 (+38) 1122111112112112112111111211212211221 --(g5%8)[2420](52 5)<2368(172)[1T6S###]>[1T6SDDS]>[SDDS]>[S6d6BDSDDDDS]>(H6T22##)[H6T22DS](+0)
11121121 (+38) 1112112121121111211211211211121121121121121122221122 --(g3%8)[2413](37 3)<2376(270)[H6T22##]>[H6T22DS]>[DS]>[S6d6BDDDDS]>(DDB###)[DDBDDS](+0)
112111111 (+43) 2111112111211 --(g0%8)[2414](38 0)<2376(335)[DDB###]>[DDBDDS]>[SSSDS]>[T6SPDSSDS]>(T6S##)[T6SDS](+0)
11 (+52) 1121211112112111121121121121111112112122112 --(g5%8)[2411](27 5)<2384(432)[T6S##]>[T6SDS]>[SDS]>[S6d6BDBDDDDSS]>(1B####)[1BDDSS](+0)
 (+31) 2111112111211 --(g0%8)[2398](38 0)<2360(476)[1B####]>[1BDDSS]>[SDDSS]>[T6SPDSS]>(T6S)[T6S]
11 (+66) 22121121121121121121121122112112122112112111221111111111111112 --(g3%8)[2400](24 3)<2376(606)[T6S]>[T6S]>[S]>[B6d6DBDDBDSDS]>(S##)[SDS](+0)
 (+53) 22 --(g3%8)[2394](10 3)<2384(661)[S##]>[SDS]>[SDS]>[B6d6DSSDS##DS]>(####)[##DS](+0)
 (+43) 2221121121111121121121122112222 --(g6%8)[2397](29 6)<2368(735)[####]>[##DS]>[##DS]>[B6d6DSDDSBDS]>(##)[DS](+0)
 (+43) 2211211212111112111211122121222112112112112111112111211121111112 --(g6%8)[2404](20 6)<2384(842)[##]>[DS]>[DS]>[PDDDDDDDS]>(T18T6SD###)[T18T6SDDDS](+0)
21 (+11) 1112112121121111211211211211121121121121121122221122 --(g3%8)[2405](37 3)<2368(907)[T18T6SD###]>[T18T6SDDDS]>[SDDDS]>[S6d6BDDDS]>(DDB##)[DDBDS](+0)
11212 (+46) 1121211112112111121121121121111112112122112 --(g5%8)[2403](27 5)<2376(1001)[DDB##]>[DDBDS]>[SDS]>[S6d6BDBDDDSS]>(1B###)[1BDSS](+0)
 (+43) 2211221111121211222112111222111111 --(g7%8)[2401](17 7)<2384(1078)[1B###]>[1BDSS]>[SDSS]>[PDBSBBDDSS]>(####)[DDSS](+0)
 (+26) 2221121112111111111111112121111112 --(g0%8)[2393](33 0)<2360(1138)[####]>[DDSS]>[DDSS]>[B6d6DSDDSS]>(1T6S)[1T6S]
1 (+43) 2211211212111112111211122121222112112112112111112111211121111112 --(g6%8)[2396](20 6)<2376(1246)[1T6S]>[1T6S]>[S]>[PDDDDDDS]>(T18T6SD##)[T18T6SDDS](+0)
21 (+23) 2221111121112111111111111211121111112 --(g0%8)[2393](33 0)<2360(1308)[T18T6SD##]>[T18T6SDDS]>[SDDS]>[B6d6DSDDDS]>(1T6S)[1T6S]
1 (+55) 2211221111121211222112111222111111 --(g7%8)[2393](17 7)<2376(1398)[1T6S]>[1T6S]>[S]>[PDBSBB##D]>(###)[##D](+0)
 (+20) 1112112121121111211211211211121121121121121122221122 --(g3%8)[2397](37 3)<2360(1470)[###]>[##D]>[##D]>[S6d6BDDD]>(DDB#)[DDBD](+0)
11212 (+60) 21111211111122121112111111121111111212211112 --(g2%8)[2407](15 2)<2392(1579)[DDB#]>[DDBD]>[SD]>[SPDBSSDSDD]>(T18T18T6S####)[T18T18T6SDSDD](+0)
2111 (+56) 22 --(g3%8)[2410](10 3)<2400(1641)[T18T18T6S####]>[T18T18T6SDSDD]>[SDSDD]>[B6d6DSSDS#DSSDD]>(######)[#DSSDD](+0)
 (+44) 22 --(g3%8)[2402](10 3)<2392(1687)[######]>[#DSSDD]>[#DSSDD]>[B6d6DSSDSDSSDD]>(#####)[DSSDD](+0)
 (+46) 2111112111211 --(g0%8)[2414](38 0)<2376(1746)[#####]>[DSSDD]>[DSSDD]>[T6SPDSSDD]>(T6S##)[T6SDD](+0)
11 (+69) 222112112111111111111111112222121222 --(g4%8)[2402](18 4)<2384(1853)[T6S##]>[T6SDD]>[SDD]>[B6d6DDSSDDBSDBD]>(S###)[SDBD](+0)
 (+29) 11121121211211211211111211121112111121121122112112121121122112 --(g5%8)[2390](6 5)<2384(1944)[S###]>[SDBD]>[SDBD]>[S6d6BDDDDBD]>(h4t14####)[h4t14DDBD](+0)
11111111121 (+11)  --<2352(1966)[h4t14####]>[h4t14DDBD]>[DDBD]>[SBDBD]>(SBDBD)[SBDBD]

Code: Select all

--bottomymx:2352 totalCost=1966
   --<(0)[]>[]>[]>[]>(S#)[](+3)
 211211D211211D211211S211211S211211D211211D211211S211211D21 2221121112111111111111112121111112 --(g0%8)[2417](33 0)<2384(96)[S#]>[SS]>[SS]>[B6d6DSDDSSDDS]>(1T6S###)[1T6SDDS](+0)
1 D211211D211211D211211S211211D211211B211 1122111112112112112111111211212211221 --(g5%8)[2420](52 5)<2368(172)[1T6S###]>[1T6SDDS]>[SDDS]>[S6d6BDSDDDDS]>(H6T22##)[H6T22DS](+0)
11121121 111211211D211211D211211D211211D211211B211 1112112121121111211211211211121121121121121122221122 --(g3%8)[2413](37 3)<2376(270)[H6T22##]>[H6T22DS]>[DS]>[S6d6BDDDDS]>(DDB###)[DDBDDS](+0)
112111111 211211D211211D211211E211121111111211121121 2111112111211 --(g0%8)[2414](38 0)<2376(335)[DDB###]>[DDBDDS]>[SSSDS]>[T6SPDSSDS]>(T6S##)[T6SDS](+0)
11 S211211D211211D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122112 --(g5%8)[2411](27 5)<2384(432)[T6S##]>[T6SDS]>[SDS]>[S6d6BDBDDDDSS]>(1B####)[1BDDSS](+0)
 D211211E211121111111211121121 2111112111211 --(g0%8)[2398](38 0)<2360(476)[1B####]>[1BDDSS]>[SDDSS]>[T6SPDSS]>(T6S)[T6S]
11 211211S211211D211211S211211D211211B211211D211211D211211B211211D21 22121121121121121121121122112112122112112111221111111111111112 --(g3%8)[2400](24 3)<2376(606)[T6S]>[T6S]>[S]>[B6d6DBDDBDSDS]>(S##)[SDS](+0)
 D211211#211211#211211S211211D211211S211211S211211D21 22 --(g3%8)[2394](10 3)<2384(661)[S##]>[SDS]>[SDS]>[B6d6DSSDS##DS]>(####)[##DS](+0)
 111B211211S211211D211211D211211S211211D21 2221121121111121121121122112222 --(g6%8)[2397](29 6)<2368(735)[####]>[##DS]>[##DS]>[B6d6DSDDSBDS]>(##)[DS](+0)
 111211211D211211D211211D211211D211211D211211D2112 2211211212111112111211122121222112112112112111112111211121111112 --(g6%8)[2404](20 6)<2384(842)[##]>[DS]>[DS]>[PDDDDDDDS]>(T18T6SD###)[T18T6SDDDS](+0)
21 D211211B211 1112112121121111211211211211121121121121121122221122 --(g3%8)[2405](37 3)<2368(907)[T18T6SD###]>[T18T6SDDDS]>[SDDDS]>[S6d6BDDDS]>(DDB##)[DDBDS](+0)
11212 S211211D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122112 --(g5%8)[2403](27 5)<2376(1001)[DDB##]>[DDBDS]>[SDS]>[S6d6BDBDDDSS]>(1B###)[1BDSS](+0)
 D211211D211211B211211B211211S211211B2112 2211221111121211222112111222111111 --(g7%8)[2401](17 7)<2384(1078)[1B###]>[1BDSS]>[SDSS]>[PDBSBBDDSS]>(####)[DDSS](+0)
 111D211211D211211S211211D21 2221121112111111111111112121111112 --(g0%8)[2393](33 0)<2360(1138)[####]>[DDSS]>[DDSS]>[B6d6DSDDSS]>(1T6S)[1T6S]
1 211211S211211D211211D211211D211211D211211D2112 2211211212111112111211122121222112112112112111112111211121111112 --(g6%8)[2396](20 6)<2376(1246)[1T6S]>[1T6S]>[S]>[PDDDDDDS]>(T18T6SD##)[T18T6SDDS](+0)
21 D211211D211211S211211D21 2221111121112111111111111211121111112 --(g0%8)[2393](33 0)<2360(1308)[T18T6SD##]>[T18T6SDDS]>[SDDS]>[B6d6DSDDDS]>(1T6S)[1T6S]
1 211211D211211#211211#211211B211211B211211S211211B2112 2211221111121211222112111222111111 --(g7%8)[2393](17 7)<2376(1398)[1T6S]>[1T6S]>[S]>[PDBSBB##D]>(###)[##D](+0)
 111D211211D211211B211 1112112121121111211211211211121121121121121122221122 --(g3%8)[2397](37 3)<2360(1470)[###]>[##D]>[##D]>[S6d6BDDD]>(DDB#)[DDBD](+0)
11212 D211211D211211S211211D211211S211211S211211B211211D2112111 21111211111122121112111111121111111212211112 --(g2%8)[2407](15 2)<2392(1579)[DDB#]>[DDBD]>[SD]>[SPDBSSDSDD]>(T18T18T6S####)[T18T18T6SDSDD](+0)
2111 S211211D211211#211211S211211D211211S211211S211211D21 22 --(g3%8)[2410](10 3)<2400(1641)[T18T18T6S####]>[T18T18T6SDSDD]>[SDSDD]>[B6d6DSSDS#DSSDD]>(######)[#DSSDD](+0)
 111D211211S211211D211211S211211S211211D21 22 --(g3%8)[2402](10 3)<2392(1687)[######]>[#DSSDD]>[#DSSDD]>[B6d6DSSDSDSSDD]>(#####)[DSSDD](+0)
 111211211D211211D211211E211121111111211121121 2111112111211 --(g0%8)[2414](38 0)<2376(1746)[#####]>[DSSDD]>[DSSDD]>[T6SPDSSDD]>(T6S##)[T6SDD](+0)
11 B211211D211211S211211B211211D211211D211211S211211S211211D211211D21 222112112111111111111111112222121222 --(g4%8)[2402](18 4)<2384(1853)[T6S##]>[T6SDD]>[SDD]>[B6d6DDSSDDBSDBD]>(S###)[SDBD](+0)
 D211211D211211D211211D211211B211 11121121211211211211111211121112111121121122112112121121122112 --(g5%8)[2390](6 5)<2384(1944)[S###]>[SDBD]>[SDBD]>[S6d6BDDDDBD]>(h4t14####)[h4t14DDBD](+0)
11111111121 111D211211B  --<2352(1966)[h4t14####]>[h4t14DDBD]>[DDBD]>[SBDBD]>(SBDBD)[SBDBD]
I use spaces as debug places, D->'' B->'11', S->'111', E->'1111'. 'L','R'
Interpreter ...

Code: Select all

local g = golly()
g.setbase(2)
local debug, debugallowed, logging
local log = io.open("c:\\Golly\\Test12Seqlog.txt", "w")
local showPrefix, showSufix = '', ''
debug, logging = false, true
g.autoupdate(debug)
g.new("play12Sequence")

-- goal is to map what the sequence does with the elbowsStack, what it removes/adds on the stack, 
-- what are prerequisities (required distance of other stack items)
-- some of the _rr moves in original classification could be described (at least) two ways, as they do not require [2,-8], 
-- but could clearly delete it
-- sequences should be split into prime ones nonprefix, (maybe even nonsuffix) representation, to make their use more effective
-- the input is in [2,0] start, so [3,0][5,0] starting sequences should be prefixed by a "to_honey" on input
-- '1' "semidel" sequence is special as it ignores [2,0] top ... it is definitely primitive and not tested here
--
-- first stable distances:
-- [2,-6][2,0]
-- [3,*][2,0] -- unrelated
-- [4,*][2,0] -- unrelated
-- [5,x][2,0] -- [5,] is always first
-- [2,*][3,0] -- unrelated
-- [3,-8][3,0]
-- [4,-6][3,0]
-- [5,x][3,0] -- [5,] is always first
-- [2,*][4,0] -- unrelated
-- [3,-6][4,0]
-- [4,-6][4,0]
-- [5,x][4,0] -- [5,] is always first
-- [2,x][5,0] -- there is always [3,0] under [5,0]
-- [3,0][5,0]
-- [4,x][5,0] -- there is always [3,0] under [5,0
-- [5,x][5,0] -- [5,] is always first
-- when multiple [A,0] at the same time, order in name should be according the type ... [2,0][3,0][4,0][5,0]
-- let me try to avoid [4,x]

local minxpyLimit, maxxpyLimit, maxPopLimit, maxNonStackPopLimit = -160, 160, 320, 120 --twice twice as usual
local minxpy, maxxpy, maxPop, maxNonStackPop
local pop, nonStackPop
local bits, bitsWithGliders = '', ''
local allBits = { '[PDBSSSDB]22112211111212121211[H2T14S]' }

local hadrons, hadronIds = {}, {}
local function newHadron(id, pattern, x, y, detectxpy, detectymx, detectCheck)
    --detectCheck ... pattern which should be empty to be sure with detection (depends on all hadrons tried in the decomposition)
    local node = {}
    node["id"], node["pattern"], node["x"], node["y"], node["detectxpy"], node["detectymx"], node["detectCheck"] = id, pattern, x, y, detectxpy, detectymx, detectCheck
    hadrons[id] = node
    hadronIds[#hadronIds + 1] = id
end

newHadron('0', g.parse("b2o$obo$2bo!"), 42, -42)
newHadron('1', g.parse("3o$2bo$bo!"), -5, 0)
newHadron('T', g.parse("bo$obo$obo$bo2$5b2o$4bo2bo$5b2o!"), 272, -282, -8, -552, { -1, 0, 0, 1, 1, 0 })
newHadron('t', g.parse("bo$obo$obo$bo2$5b2o$4bo2bo$5b2o!"), 272, -283, -8, -556, { -1, 0, 0, -1, 1, 0 })
newHadron('I', g.parse("o$o$o!"), 274, -279, -5, -553, { -1, 1 })
--newHadron('i',g.parse("o$o$o!"),274,-279,-5,-553,{-1,1})
newHadron('H', g.parse("b2o$o2bo$b2o2$6bo$5bobo$5bobo$6bo!"), 270, -280, -8, -552, { 0, -1, 0, 1, 1, 0 })
newHadron('h', g.parse("b2o$o2bo$b2o2$6bo$5bobo$5bobo$6bo!"), 269, -280, -8, -548, { -1, 0, 0, -1, 0, 1 })
newHadron('B', g.parse("2o$2o4$4b3o!"), 275, -277, -2, -552, { 2, 2, 3, 6, 5, 4 })
newHadron('P', g.parse("b2o$o2bo$o2bo$b2o2$5b3o!"), 274, -277, -2, -552, { 0, 1, 3, 6, 5, 4 })
newHadron('d', g.parse("3o2$4bo$4bo$4bo!"), 276, -275, 1, -551, { -1, -1, 1, 1, 0, 1, -1, 1, 1, -1 })
newHadron('D', g.parse("o$o$o2$2b3o!"), 277, -276, 1, -553, { -1, -1, 1, 1, 1, 0, 1, 5, 3, 3 })
newHadron('S', g.parse("3o"), 279, -272, 7, -551, { -3, -2, -1, 1, 1, -1 })
newHadron('L', g.parse("2o$2o!"), 282, -244, 38, -526)  -- to be ymx shifted?
newHadron('R', g.parse("2o$2o!"), 246, -282, -36, -528) -- to be ymx shifted?

local function putHadron(id, ymxShift, mode)
    --g.note("putHadron id="..id.." shift="..ymxShift)
    local pop = g.getpop() + 0
    g.putcells(hadrons[id].pattern, hadrons[id].x - ymxShift, hadrons[id].y + ymxShift, 1, 0, 0, 1, mode or "or")
    if not mode then
        return pop == g.getpop() - #hadrons[id].pattern // 2 -- no overwrite
    end
end

local function inDelimiters(name, leftDelimiter, rightDelimiter)
    return string.sub(name, string.find(name, '%' .. leftDelimiter) + 1, string.find(name, '%' .. rightDelimiter) - 1)
end

local function inttostring(num)
    return string.sub(num, 1, string.find(num .. ".", "%.") - 1)
end

local function split(str, delim)
    local ret, l, p = {}, 1, nil
    while l <= 1 + string.len(str) do
        p = string.find(str .. delim, '%' .. delim, l)
        ret[1 + #ret], l = string.sub(str, l, p - 1), p + 1
    end
    return ret
end

local function writeLog(msg)
    if log and logging then
        log:write(msg .. "\n")
    end
end

local function conditionsToString(conditions)
    local postConitions, ret
    if #conditions == 0 then
        g.note("no conditions?")
        return "{:}"
    end
    if #conditions < 2 then
        ret = "{:"
    else
        ret = "{" .. conditions[1] .. ":"
    end
    --  g.note("type conditions[1] ="..type(conditions[1]))
    --  g.note("type conditions["..#conditions.."] ="..type(conditions[#conditions]))
    ret = ret .. conditions[#conditions][1]
    for j = 2, #conditions[#conditions] do
        ret = ret .. "," .. conditions[#conditions][j]
    end
    ret = ret .. "}"
    return ret
end

local function isSmallAtMost1g(patternArray, orig)
    --g.show("iAM1g     "..bits)
    --g.note("iAM1g     "..bits)
    g.new("play12Sequence");
    g.select({ 279, -272, 1, 1 })
    g.putcells(patternArray)
    pop = g.getpop() + 0
    if pop > maxPopLimit then
        --
        if debug then
            g.note("pop>maxPop " .. pop)
        end
        if orig then
            writeLog("pop>maxPopLimit " .. pop)
        end
        return false
    end
    g.setbase(2)
    g.setstep(9)  -- to be sure glider if detected does not colide with the rest of the pattern
    g.step()
    g.putcells(patternArray, 0, 0, 1, 0, 0, 1, "xor") --and we have non p8 patternPart
    local tpop = g.getpop() + 0
    if tpop == 0 then
        return true
    elseif tpop ~= 10 then
        --g.note ("tpop~=10 "..tpop)
        if orig then
            writeLog("tpop~=10 " .. tpop)
        end
        return false
    end
    local i, gliderArray, movingpart
    gliderArray, movingpart = {}, g.getcells(g.getrect())
    g.new("play12Sequence");
    g.select({ 279, -272, 1, 1 })
    g.putcells(patternArray)
    for i = 1, #movingpart, 2 do
        if g.getcell(movingpart[i], movingpart[i + 1]) == 1 then
            gliderArray[1 + #gliderArray] = movingpart[i]
            gliderArray[1 + #gliderArray] = movingpart[i + 1]
        end
    end
    g.new("play12Sequence");
    g.select({ 279, -272, 1, 1 })
    g.putcells(gliderArray)
    tpop = g.getpop() + 0
    if tpop ~= 5 then
        if debug then
            g.note("tpop~=5 glider " .. tpop)
        end
        if orig then
            writeLog("tpop~=5 glider " .. tpop)
        end
        return false
    end
    g.putcells(gliderArray, -128, -128, 1, 0, 0, 1)
    g.putcells(movingpart, 0, 0, 1, 0, 0, 1, "xor")
    tpop = g.getpop() + 0
    if tpop ~= 0 then
        if debug then
            g.fit();
            g.note("tpop~=0 movingpart xor gliderpair " .. tpop)
        end
        if orig then
            writeLog("tpop~=0 movingpart xor gliderpair " .. tpop)
        end
        return false
    end
    if debug then
        g.note("ok, glider")
    end
    return true, gliderArray  -- 5 cells moving NW at c/4 is an allowed glider
end

local function extendDecomposition(decomposition, item)
    local i
    for i = #decomposition, 0, -1 do
        if i == 0 then
            decomposition[1] = item
        elseif string.find(item[1], '[01]') then
            decomposition[i + 1] = decomposition[i]
        elseif string.find(decomposition[i][1], '[01]') then
            decomposition[i + 1] = item
            break
        elseif string.find(item[1], '[RL]') then
            decomposition[i + 1] = decomposition[i]
        elseif string.find(decomposition[i][1], '[RL]') then
            decomposition[i + 1] = item
            break
        elseif decomposition[i][2] < item[2] then
            decomposition[i + 1] = decomposition[i]
        elseif decomposition[i][2] > item[2] then
            decomposition[i + 1] = item
            break
        elseif decomposition[i][1] > item[1] then
            decomposition[i + 1] = decomposition[i]
        else
            decomposition[i + 1] = item
            break
        end
    end
    return decomposition
end

local function decompositionToString(decomposition, shiftedStart, deltaymx)
    --lepší řazení, komprese?
    --g.show("dTS       "..bits)
    --  g.note("dTS       "..bits)
    local i, ret, prevPos
    ret = "]"
    --if debug then g.note("decmpostionToString #("..#decomposition..")") end
    for i = #decomposition, (not shiftedStart and 1 or shiftedStart), -1 do
        --if debug then g.note("decmpostionToString["..i.."]=('"..decomposition[i][1].."',"..decomposition[i][2]..")") end
        if not string.find('01', decomposition[i][1]) then
            if prevPos then
                if prevPos + 8 ~= decomposition[i][2] + (not deltaymx and 0 or deltaymx) then
                    ret = inttostring(decomposition[i][2] + (not deltaymx and 0 or deltaymx) - prevPos) .. ret
                end
            else
                if decomposition[i][2] + (not deltaymx and 0 or deltaymx) ~= 0 then
                    ret = inttostring(decomposition[i][2] + (not deltaymx and 0 or deltaymx)) .. ret
                end
            end
            prevPos = decomposition[i][2] + (not deltaymx and 0 or deltaymx)
        end
        ret = decomposition[i][1] .. ret
    end
    if shiftedStart and shiftedStart > 1 then
        --g.note(decompositionToString(decomposition)..","..shiftedStart..","..deltaymx.."->["..ret)
    end
    --if debug then g.note("decomposition..["..ret) end
    return "[" .. ret
end

local function hadronToDecomposition(decomposition, id, ymx)
    local stdymx = ymx - hadrons[id].detectymx
    local pop = 0 + g.getpop()
    putHadron(id, stdymx // 2, 'xor')
    if g.getpop() + (#hadrons[id].pattern) // 2 > pop then
        if debug then
            g.note("hadron does not match " .. id)
        end
        return
    end
    return true, extendDecomposition(decomposition, { id, stdymx })
end

local function isStackDecomposable(patternWithoutGliderArray)
    --g.show("iSD       "..bits)
    --  g.note("iSD       "..bits)
    local i, j, xpy, ymx, stdymx
    -- I need to estimate the nonStackPop :(
    nonStackPop = 0
    for i = 1, #patternWithoutGliderArray, 2 do
        --fast checks first
        xpy = patternWithoutGliderArray[i] + patternWithoutGliderArray[i + 1]
        if minxpy > xpy then
            minxpy = xpy
        end
        if maxxpy < xpy then
            maxxpy = xpy
        end
        if xpy < -9 or xpy > 9 then
            nonStackPop = 1 + nonStackPop
        end
    end
    for i = 1, #patternWithoutGliderArray, 2 do
        --fast checks first
        xpy = patternWithoutGliderArray[i] + patternWithoutGliderArray[i + 1]
        if xpy < -36 or xpy > 40 then
            if debug then
                g.note("iSD xpy out of bounds " .. xpy)
            end
            return false
        elseif xpy > 9 and xpy < 38 then
            if debug then
                g.note("iSD xpy in a big SE gap " .. xpy)
            end
            return false
        elseif xpy > 3 and xpy < 7 then
            if debug then
                g.note("iSD xpy in a gap " .. xpy)
            end
            return false
        elseif xpy > -34 and xpy < -10 then
            if debug then
                g.note("iSD xpy in a big NW gap " .. xpy)
            end
            return false
        end
    end

    -- try to decompose now except 'S'
    -- hardcoded .. using hadrons properties not maintained in the descriprion
    local decomposition = {}
    g.new("play12Sequence");
    g.select({ 279, -272, 1, 1 })
    g.putcells(patternWithoutGliderArray)
    local changed = true
    while changed do
        --g.show("iSD3_"..#decomposition.." "..bits)
        local tpop = g.getpop() + 0
        if tpop == 0 then
            return true, decomposition
        end
        g.fit()
        --    if debug then g.fit();g.note("isStackDecomposable? "..bitsWithGliders.." "..bits.."#"..#patternWithoutGliderArray) end
        changed = false
        for i = 1, #patternWithoutGliderArray, 2 do
            --if debug then g.fit();g.note("isStackDecomposable? "..bitsWithGliders.." "..bits.." "..i.."/"..#patternWithoutGliderArray) end
            xpy, ymx = patternWithoutGliderArray[i] + patternWithoutGliderArray[i + 1], patternWithoutGliderArray[i + 1] - patternWithoutGliderArray[i]
            local hIdDetected
            for hId, hadron in pairs(hadrons) do
                --if debug then g.note(hId.." hadrons loop") end
                if hadron.detectxpy and hadron.detectxpy == xpy then
                    hIdDetected = hId
                    --if debug then g.note(hIdDetected.." detectxpy match "..xpy..","..ymx.." "..decompositionToString(decomposition)) end
                    for j = 1, (hadron.detectCheck and #hadron.detectCheck) or 0, 2 do
                        if g.getcell(patternWithoutGliderArray[i] + hadron.detectCheck[j], patternWithoutGliderArray[i + 1] + hadron.detectCheck[j + 1]) == 1 then
                            if false and debug then
                                g.note(hIdDetected .. "detectCheck failed " ..
                                        inttostring(patternWithoutGliderArray[i] + hadron.detectCheck[j]) .. "," ..
                                        inttostring(patternWithoutGliderArray[i + 1] + hadron.detectCheck[j + 1]) .. " " ..
                                        decompositionToString(decomposition))
                            end
                            hIdDetected = nil
                            break
                        end
                    end
                    if hIdDetected then
                        break
                    end
                elseif not hadron.detectxpy then
                    --g.note(hId.." detectxpy is nil "..xpy.." "..decompositionToString(decomposition))
                else
                    --g.note(hId.." detectxpy does not match "..hadron.detectxpy.."?"..xpy.." "..decompositionToString(decomposition))
                end
            end
            if hIdDetected then
                changed, decomposition = hadronToDecomposition(decomposition, hIdDetected, ymx)
                if debug then
                    --g.note("hId detected "..hIdDetected..">"..decompositionToString(decomposition))
                end
                patternWithoutGliderArray = g.getcells(g.getrect())
                break
            end
        end
    end
    return false -- some bits remained, but no more hadrons detected
    -- ... the detection is on small xpy so the pattern eventually expands to higher xpy so this prevents infinite cycles
end

local function getNWgliderMod8name(gliderArray)
    -- numbers could require linear shifts
    --g.show("gNWgm8n   "..bits)
    --g.note("gNWgm8n   "..bits)
    if not gliderArray then
        return "" --otherwise 5 cells!
    end
    g.new("play12Sequence");
    g.select({ 279, -272, 1, 1 })
    g.putcells(gliderArray)
    local i, xpy, maxxpy, maxxpyi, x, y, ymx, mod8
    maxxpy, maxxpyi = gliderArray[1] + gliderArray[2], 1
    for i = 3, 10, 2 do
        xpy = gliderArray[i] + gliderArray[i + 1]
        if maxxpy < xpy then
            maxxpy, maxxpyi = xpy, i
        end
    end
    x, y = gliderArray[maxxpyi] - 1, gliderArray[maxxpyi + 1] - 1 -- "central cell"
    if g.getcell(x + 1, y - 1) == 0 then
        if g.getcell(x, y - 1) == 0 then
            mod8 = 3 + 4 * (x % 2)
            ymx = y - x + 2
        else
            mod8 = 2 + 4 * (x % 2)
            ymx = y - x + 1
        end
    else
        if g.getcell(x - 1, y) == 0 then
            mod8 = 1 + 4 * ((x + 1) % 2)
            ymx = y - x - 1
        else
            mod8 = 4 * (x % 2)
            ymx = y - x
        end
    end
    mod8 = (mod8 + 5) % 8 --standardise
    ymx = ymx + 551 -- standardise
    --g.note("glider name: ("..inttostring(ymx).." "..inttostring(mod8)..")")
    return "(" .. inttostring(ymx) .. " " .. inttostring(mod8) .. ")"
end

local function namecost(name)
    local ret = nil
    local tmp
    if string.find(name, '%[I') then
        ret = string.len(name) - string.len(string.gsub(name, '%[I', '['))
    end
    if not string.find(name, '%[H') and string.find(name, "%[T") then
        tmp = string.len(name) - string.len(string.gsub(name, '%[T', '['))
        ret = (ret or 0) + 2 * ((tmp + 2) // 3)
    end
    return ret
end

local function shiftedGliderBits(bitsWithGliders, ymxDelta)
    local posOpen, posClose, ret
    ret = ""
    posOpen = string.find(bitsWithGliders, '%(')
    posClose = string.find(bitsWithGliders, '% ')
    while posOpen and posClose do
        ret = ret .. string.sub(bitsWithGliders, 1, posOpen) .. inttostring(ymxDelta + string.sub(bitsWithGliders, posOpen + 1, posClose - 1)) .. ' '
        bitsWithGliders = string.sub(bitsWithGliders, posClose + 1)
        posOpen = string.find(bitsWithGliders, '%(')
        posClose = string.find(bitsWithGliders, '% ')
    end
    return ret .. bitsWithGliders
end

local moves, oriMoves = {}, {}
local expectedMoveToWrite, expectedMoveWritten, translatedMoveToWrite

local function writeMove(oriDecomposition, bitsWithGliders, decomposition)
    local i, minLen, commonSuffixLen, preDec, postDec, ymx, oriDebug
    local oriDebug = debug
    local oriDecStart = (string.find('01', oriDecomposition[1][1]) and 2) or 1
    --debug = string.find(decompositionToString(oriDecomposition),'[LR]')
    -- if debug then g.note("wM oriDecomposition:"..decompositionToString(oriDecomposition)
    --   .."\nbitsWithGliders:"..bitsWithGliders
    --   .."\n decomposition:"..decompositionToString(decomposition)) end
    minLen = #oriDecomposition - oriDecStart
    minLen = (minLen < 0) and 0 or minLen
    if minLen > #decomposition then
        minLen = #decomposition
    end
    commonSuffixLen = minLen
    for i = 1, minLen do
        if oriDecomposition[#oriDecomposition + 1 - i][1] ~= decomposition[#decomposition + 1 - i][1]
                or oriDecomposition[#oriDecomposition + 1 - i][2] ~= decomposition[#decomposition + 1 - i][2] then
            commonSuffixLen = i - 1
            break
        end
    end
    preDec, postDec = {}, {}
    ymx = oriDecomposition[#oriDecomposition - commonSuffixLen][2]
    for i = oriDecStart, #oriDecomposition - commonSuffixLen do
        preDec[#preDec + 1] = { oriDecomposition[i][1], oriDecomposition[i][2] - ymx }
    end
    for i = 1, #decomposition - commonSuffixLen do
        postDec[i] = { decomposition[i][1], decomposition[i][2] - ymx }
    end
    if debug then
        g.note("wM oriDecomposition:" .. decompositionToString(oriDecomposition)
                .. "\nbitsWithGliders:" .. bitsWithGliders
                .. "\ndecomposition:" .. decompositionToString(decomposition)
                .. "\ncommonSuffixLen:" .. commonSuffixLen
                .. "\noriDecStart:" .. oriDecStart
                .. "\npreDec:" .. decompositionToString(preDec)
                .. "\npostDec:" .. decompositionToString(postDec))
    end
    local bottom = ''
    if oriDecomposition[#oriDecomposition - commonSuffixLen + 1] then
        if oriDecomposition[#oriDecomposition - commonSuffixLen + 1][2] + 8 ~= ymx then
            bottom = inttostring(ymx - oriDecomposition[#oriDecomposition - commonSuffixLen + 1][2])
        end
        bottom = bottom .. oriDecomposition[#oriDecomposition - commonSuffixLen + 1][1]
    else
        bottom = '_'
    end
    i = 1
    while i < #preDec and i <= #postDec and preDec[i][1] == postDec[i][1] and string.find('RL', preDec[i][1]) and (preDec[i][2] == postDec[i][2]) do
        i = i + 1
    end
    local no1bits, no0bits = string.gsub(bitsWithGliders, "1", ""), string.gsub(bitsWithGliders, "0", "")
    if string.sub(no1bits, 1, 1) == "(" and string.sub(no1bits, -1, -1) == ")" then
        no1bits = ""
    end
    if string.sub(no0bits, 1, 1) == "(" and string.sub(no0bits, -1, -1) == ")" then
        no1bits = ""
    end
    if no1bits == "" then
        while i < #preDec and i <= #postDec and preDec[i][1] == postDec[i][1] and preDec[i][1] == 'S' and (preDec[i][2] == postDec[i][2]) do
            i = i + 1
        end
    end
    if no0bits == "" then
        while i < #preDec and i <= #postDec and preDec[i][1] == postDec[i][1] and preDec[i][1] == 'I' and (preDec[i][2] == postDec[i][2]) do
            i = i + 1
        end
    end

    local move = decompositionToString(preDec, i) .. shiftedGliderBits(bitsWithGliders, -ymx) .. decompositionToString(postDec, i)
    if debug then
        g.note('ori' .. decompositionToString(oriDecomposition) ..
                '\nnew' .. decompositionToString(decomposition) ..
                '\npre' .. decompositionToString(preDec) ..
                '\npost' .. decompositionToString(postDec) ..
                '\nbottom' .. bottom ..
                '\nmove' .. move)
    end
    if expectedMoveToWrite then
        if debug then
            g.note("Expected " .. expectedMoveToWrite .. " got " .. move)
        end
        if translatedMoveToWrite ~= nil then
            if debug then
                g.note("transatedMoveToWrite:" .. translatedMoveToWrite .. " move:" .. move)
            end
            if move == expectedMoveToWrite then
                move = translatedMoveToWrite
            end
        elseif expectedMoveWritten == nil or expectedMoveWritten then
            expectedMoveWritten = move == expectedMoveToWrite
            debug = oriDebug
            return
        end
    end
    if debug then
        g.note("moves[" .. move .. "].push('" .. bottom .. "')")
    end
    if not moves[move] then
        writeLog(move)
        moves[move] = { '', { bottom } }
    else
        for i = 1, #moves[move] do
            if moves[move][2][i] == bottom then
                debug = oriDebug
                return
            end
        end
        moves[move][2][1 + #moves[move][1]] = bottom
    end
    debug = oriDebug
end

local function testSeparated(pattern, postNoGliderPattern, gliderPattern, firstBit)
    local secondBit = 1 - firstBit
    g.new("play12Sequence");
    g.select({ 279, -272, 1, 1 })
    g.putcells(pattern)
    putHadron(inttostring(firstBit), 0)
    putHadron(inttostring(secondBit), 4096)
    g.setbase(2)
    g.setstep(15)
    if debug then
        g.fit();
        g.note("test separated pre step")
    end
    g.step()
    if debug then
        g.fit();
        g.note("test separated post step")
    end
    g.putcells(postNoGliderPattern, 0, 0, 1, 0, 0, 1, "xor")
    local popXor = 0 + g.getpop()
    if gliderPattern then
        return popXor == 5
    else
        return popXor == 0
    end
end

local evt
local function bitStep(pattern, bit, extrabit, orig)
    local isOK, gliderPattern, postPattern, postNoGliderPattern
    --writeLog("bitStep(pattern,"..bit..","..(extrabit or '')..")")
    evt = g.getevent()
    if evt:find("key d none") == 1 then
        debug = not debug
        g.note('debug set to ' .. (debug and "true" or "false"))
    else
        g.doevent(evt)
    end
    if extrabit then
        g.autoupdate(debug)
        g.setlayer(0)
    end
    g.new("play12Sequence");
    g.select({ 279, -272, 1, 1 })
    g.putcells(pattern)
    if 0 + bit ~= 0 then
        putHadron('1', 0)
    end
    if 0 + bit ~= 1 then
        putHadron('0', 0)
    end
    g.setbase(2)
    g.setstep(14)
    if debug then
        g.fit();
        g.note("bitStep(" .. bit .. "," .. type(extrabit) .. " " .. (extrabit or '') .. ") pre step")
    end
    g.step()
    if debug then
        g.fit();
        g.note("bitStep(" .. bit .. "," .. type(extrabit) .. " " .. (extrabit or '') .. ") post step")
    end
    postPattern = g.getcells(g.getrect())
    if extrabit then
        if debug then
            g.note("extrabit setaration test")
        end
        g.setlayer(1)
        g.new("play12Sequence");
        g.select({ 279, -272, 1, 1 })
        g.putcells(pattern)
        if extrabit == "0" then
            putHadron('1', 0)
        end
        if extrabit == "1" then
            putHadron('0', 0)
        end
        g.setbase(2)
        g.setstep(14)
        if debug then
            g.fit();
            g.note("bitStep separated, first glider) pre step")
        end
        g.step()
        if debug then
            g.fit();
            g.note("bitStep separated, first glider) post step")
        end
        local midPattern = g.getcells(g.getrect())
        g.fit()
        if debug then
            g.note("midPattern")
        end
        isOK, gliderPattern = isSmallAtMost1g(midPattern)
        if not isOK then
            g.fit()
            if debug then
                g.note("bad midPattern")
            end
            return false
        end
        g.putcells(midPattern)
        if gliderPattern then
            --g.note("glider "..bitsWithGliders)
            g.putcells(gliderPattern, 0, 0, 1, 0, 0, 1, "xor")
            g.fit()
            if debug then
                g.note("glider removed")
            end
        end
        local midNoGliderPattern = g.getcells(g.getrect())
        if extrabit == "0" then
            putHadron('0', 0)
        end
        if extrabit == "1" then
            putHadron('1', 0)
        end
        g.setbase(2)
        g.setstep(14)
        if debug then
            g.fit();
            g.note("bitStep separated, second glider) pre step")
        end
        g.step()
        if debug then
            g.fit();
            g.note("bitStep separated, second glider) post step")
        end
        local endPattern = g.getcells(g.getrect())
        g.fit()
        if debug then
            g.note("pattern with the extrabit")
        end
        g.putcells(postPattern, 0, 0, 1, 0, 0, 1, "xor")
        g.fit()
        if debug then
            g.note("xored with pattern obtained by nonseparated bit gliders")
        end
        if gliderPattern then
            --g.note("glider "..bitsWithGliders)
            g.putcells(gliderPattern, 0, 0, 1, 0, 0, 1, "xor")
            g.fit()
            if debug then
                g.note("xored with emitted glider should be empty if separation works")
            end
        end
        if g.getpop() + 0 ~= 0 then
            return false
        end
        return isOK, midNoGliderPattern, gliderPattern
    end
    isOK, gliderPattern = isSmallAtMost1g(postPattern, orig)
    if isOK then
        g.new("play12Sequence");
        g.select({ 279, -272, 1, 1 })
        if postPattern then
            g.putcells(postPattern)
        end
        if gliderPattern then
            --g.note("glider "..bitsWithGliders)
            g.putcells(gliderPattern, 0, 0, 1, 0, 0, 1, "xor")
        end
        postNoGliderPattern = g.getcells(g.getrect())
    end
    return isOK, postNoGliderPattern, gliderPattern
end

--local b = io.open("c:\\Golly\\Bits.txt","r")
--bits=''

local function DoBits(shortstackdescription, skipSpaces)
    local oriBits, pattern, postNoGliderPattern, gliderPattern, name, isOK, maxPop, maxNonStackPop
    local oriDecompositions, decomposition, oriGliderName, ymxOffs
    local ssd = shortstackdescription
    local countSpaceBits = 0
    bitsWithGliders = ''
    minxpy, maxxpy, maxPop, maxNonStackPop = 0, 0, 0, 0
    g.new("play12Sequence");
    g.select({ 279, -272, 1, 1 })
    ymxOffs = 0
    --writeLog("DoBits("..shortstackdescription..","..(extrabit or '')..")")
    while shortstackdescription ~= "" do
        local hId, pos
        hId = string.sub(shortstackdescription, 1, 1)
        if not putHadron(hId, ymxOffs // 2) then
            return
        end
        shortstackdescription = string.sub(shortstackdescription, 2)
        pos = string.find(shortstackdescription .. "H", "[SPDdBtThHIRL]")
        if pos == 1 then
            ymxOffs = ymxOffs - 8
        else
            ymxOffs = ymxOffs - string.sub(shortstackdescription, 1, pos - 1)
        end
        shortstackdescription = string.sub(shortstackdescription, pos)
    end
    pattern = g.getcells(g.getrect())
    if debug then
        g.fit();
        g.note("DoBits(" .. ssd .. "," ..  bits)
        g.setbase(2)
        g.setstep(2)
        g.step()
        g.new("play12Sequence");
        g.select({ 279, -272, 1, 1 })
        g.putcells(pattern)
    end
    local prevBit = ""
    while bits ~= "" do
        showSufix = bits
        g.show(showPrefix .. " " .. showSufix)
        local bit = string.sub(bits, 1, 1)
        bits = string.sub(bits, 2)
        while bit ~= "1" and bit ~= "2" do
            if skipSpaces <= countSpaceBits and bit ~= prevBit then
                g.autoupdate(true);
                g.fit()
                g.note(bit)
            end
            if bit == "E" then
                bits = "1111" .. bits
            elseif bit == "S" then
                bits = "111" .. bits
            elseif bit == "B" then
                bits = "11" .. bits
            --elseif bit == "P" then
                --:only before special sequences"
            --    bits = "1" .. bits
            elseif bit == " " and bit ~= prevBit then
                countSpaceBits = countSpaceBits + 1
                if isOK then
                    writeLog(countSpaceBits .. ":" .. decompositionToString(decomposition))
                end
            end
            prevBit = bit
            if bits == "" then
                return
            end
            bit = string.sub(bits, 1, 1)
            bits = string.sub(bits, 2)
        end
        prevBit = bit
        g.setlayer(0)
        isOK, postNoGliderPattern, gliderPattern = bitStep(pattern, bit, bits == "" and extrabit or nil, true)
        if not isOK then
            if debug then
                g.note('ko isSmallAtMost1g')
            end
            writeLog('ko isSmallAtMost1g')
            return
        end
        g.new("play12Sequence");
        g.select({ 279, -272, 1, 1 })
        g.putcells(postNoGliderPattern);
        g.fit()
        isOK, decomposition = isStackDecomposable(postNoGliderPattern)
        g.new("play12Sequence");
        g.select({ 279, -272, 1, 1 })
        g.putcells(postNoGliderPattern)
        g.setpos(349, -272)
        g.setmag(2)
        if maxPop < pop then
            maxPop = pop
            if maxPop > maxPopLimit then
                if debug then
                    g.note('maxPopLimit exceeded ' .. maxPop)
                end
                writeLog('maxPopLimit exceeded ' .. maxPop)
                return
            end
        end
        if maxNonStackPop < nonStackPop then
            maxNonStackPop = nonStackPop
            if maxNonStackPop > maxNonStackPopLimit then
                if debug then
                    g.note('NonStackPopLimit exceeded ' .. maxNonStackPop)
                end
                writeLog('NonStackPopLimit exceeded ' .. maxNonStackPop)
                return
            end
        end
        if minxpy < minxpyLimit then
            if debug then
                g.note('minxpyLimit exceeded ' .. minxpy)
            end
            writeLog('minxpyLimit exceeded ' .. minxpy)
            return
        end
        if maxxpy > maxxpyLimit then
            if debug then
                g.note('maxxpyLimit exceeded ' .. maxxpy)
            end
            writeLog('maxxpyLimit exceeded ' .. maxxpy)
            return
        end
        pattern = postNoGliderPattern
    end
end

local function allseq(start)
    local seqNo, pos, iniStack, saveBits
    for i = (not start and 1) or start, #allBits do
        --chosenI,chosenI do
        seqNo = i
        showPrefix = (inttostring(seqNo) .. "/" .. inttostring(#allBits))
        g.show(showPrefix .. " " .. showSufix)
        bits = allBits[seqNo]
        if string.sub(bits, 1, 1) == '[' then
            pos = string.find(bits, '%]')
            iniStack = string.sub(bits, 2, pos - 1)
            bits = string.sub(bits, pos + 1)
            pos = string.find(bits, '%[')
            bits = string.sub(bits, 1, pos - 1)
            pos = string.find(bits, '%(')
            while pos do
                bits = string.sub(bits, 1, pos - 1) .. string.sub(bits, string.find(bits, '%)') + 1)
                pos = string.find(bits, '%(')
            end
            --g.note("iniStack="..iniStack.." bits="..bits)
            saveBits = bits
            DoBits(iniStack);
            bits = saveBits
            -- DoBits(iniStack.."S");bits=saveBits
            -- DoBits(iniStack.."P");bits=saveBits
            -- DoBits(iniStack.."D");bits=saveBits
            -- DoBits(iniStack.."B");bits=saveBits
            -- DoBits(iniStack.."6d");bits=saveBits
            ---- DoBits(iniStack.."H");bits=saveBits -- spacing?
            ---- DoBits(iniStack.."T");bits=saveBits -- spacing?
        else
            DoBits('S');
            DoBits('SB');
            DoBits('SD');
            DoBits('SP');
            DoBits('SS');
            DoBits('HT');
            DoBits('I');
        end
        --  for j=3,6 do
        --    bits=allBits[seqNo]
        --    DoBits(3,j)
        --  end
    end
end

local function parseMove(moveConds)
    local preStack, postStack, conds, pos, move, extrabit,  glider
    pos, conds = string.find(moveConds .. '{', '%{'), ""
    conds = string.sub(moveConds, pos + 1, string.find(moveConds .. '}', '%}') - 1)
    move = string.sub(moveConds, 1, pos - 1)
    pos = string.find(move, '%]')
    preStack = string.sub(move, 2, pos - 1)
    bits = string.sub(move, pos + 1)
    pos = string.find(bits, '%[')
    postStack = string.sub(bits, pos + 1, -2)
    bits = string.sub(bits, 1, pos - 1)
    glider, pos = '', string.find(bits, '%(')
    if pos then
        glider = inDelimiters(bits, '(', ')')
        bits = string.sub(bits, 1, pos - 1) .. string.sub(bits, string.find(bits, '%)') + 1)
    end
    extrabit = string.sub(postStack, 1, 1)
    if extrabit ~= "1" and extrabit ~= "0" then
        extrabit = nil
    end
    --g.note("pM type(extrabit):"..type(extrabit))
    return bits, move, conds, preStack, extrabit, postStack, glider
end

local function checkOddMovePrestack(iniStack)
    local ret, i = "", 1
    while i <= string.len(iniStack) do
        ret = ret .. string.sub(iniStack, i, i)
        local nextI = string.find(iniStack .. 'H', '[BDdPSHhTtI]', i + 1)
        local dist = string.sub(iniStack, i + 1, nextI - 1)
        if dist ~= "" and (0 + dist) % 2 == 1 then
            dist = inttostring(dist + 1)
        end
        ret = ret .. dist
        i = nextI
    end
    return ret
end

local function fileseq(filename, ignoreLineStartLen)
    local i = io.open(filename, "r")
    ignoreLineStartLen = ignoreLineStartLen or 4
    if not i then
        return
    end
    local inputLine, iniStack, saveBits, conds, cond, extrabit, postCondTable, move
    local moveLines, pos, pos2
    moveLines = ""
    while not pos2 do
        showPrefix = (filename .. ">" .. moveLines)
        g.show(showPrefix .. " " .. showSufix)
        inputLine = i:read()
        if not inputLine then
            break
        end
        pos2 = string.find(inputLine, '%-%-')
        if pos2 then
            inputLine = string.sub(inputLine, 1, pos2 - 1)
        end
        moveLines = moveLines .. " " .. inputLine
        pos = string.find(moveLines, '%]')
        pos2 = string.find(moveLines, '%]', pos + 1)
    end
    i:close()
    moveLines = string.sub(moveLines, 2)
    showPrefix = (filename .. ">" .. moveLines)
    g.show(showPrefix .. " " .. showSufix)
    saveBits, move, conds, iniStack, extrabit = parseMove(moveLines)
    --  g.note("saveBits:\n"..saveBits)
    --  g.note("move:\n"..move)
    --  g.note("conds:\n"..conds)
    --  g.note("iniStack:\n"..iniStack)
    --  g.note("iniStack:\n"..iniStack)
    showPrefix = ""--filename..">"..move.."\n"
    g.show(showPrefix .. " " .. showSufix)
    bits = saveBits;
    DoBits(iniStack, 74) -- to check '_' condition
end

local function test(shift)
    minxpy, maxxpy, maxPop, maxNonStackPop = 0, 0, 0, 0
    g.new("play12Sequence");
    g.select({ 279, -272, 1, 1 })
    local pattern = g.parse("3o$o$bo!", 7 - shift, 3 - shift)
    g.putcells(pattern)
    putHadron('L', -100) -- starting position
    putHadron('R', -100) -- starting position
    pattern = g.getcells(g.getrect())
    g.fit();
    g.note('test')
    local isOK, gliderPattern = isSmallAtMost1g(pattern)
    if isOK then
        g.new("play12Sequence");
        g.select({ 279, -272, 1, 1 })
        g.putcells(pattern)
        g.putcells(gliderPattern, 0, 0, 1, 0, 0, 1, "xor")
        local nonGliderPattern = g.getcells(g.getrect())
        local gliderName = getNWgliderMod8name(gliderPattern)
        g.new("play12Sequence");
        g.select({ 279, -272, 1, 1 })
        g.putcells(nonGliderPattern)
        g.fit();
        g.note('glidername ' .. gliderName .. ' nonglider part ')
        local isOK, oriDecomposition = isStackDecomposable(nonGliderPattern)
        if isOK then
            g.note("decomposed " .. decompositionToString(oriDecomposition))
            --  g.select({-50,-50,20,20})
            --  g.setmag(0)
            --  g.putcells(gliderPattern)
            --  g.note("gliderNW "..gliderName)
        else
            g.note("not decomposed ")
        end
    else
        g.note("gliderNW is not OK")
    end
end

local function splittest()
    local conds = ''
    conds = (string.find(conds, '%:') and "" or ":") .. conds
    g.note(conds)
    local tmp = split(conds, ':')
    g.note(tmp[1] .. string.len(tmp[1]))
    g.note(tmp[2] .. string.len(tmp[2]))
    tmp[2] = split(tmp[2], ',')
    g.note(tmp[2][1] .. string.len(tmp[2][1]))
    if tmp and #tmp > 0 and tmp[#tmp] then
        for i = 1, #tmp[#tmp] do
            g.note(tmp[#tmp][i])
        end
    end
end

--debug=true;
g.autoupdate(false)
fileseq("c:\\Golly\\PlayBitSequence.txt") -- extension
--fileseq("c:\\Golly\\BlinkerBitSequences.txt",0) -- extension
--debugallowed=false;g.autoupdate(true)
--fileseq("c:\\Golly\\results.txt",0) -- extension
Failed attempt ...

Code: Select all

[S]--[3080S]1
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3052S]3
211211D211211B211211S--[3052DBSS]4
              211211S211211S211211D211211B211 11221121121111121121121111111121121111122111--[3052DBS36S]6
 211211S--[3052DBS36SS]7
 211211D211211D211211D2112 211211212211211121122L1--[3052+16+36+8L=3112L][3052DBS36S]9
 211211D211211D211211S211211D21 2111211211211211111211211211221121121211211221111121211112R1--[3052+16+36R=3104R][3052DBS]11
              211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*2S]13
--211 12 1112112 1 [] test of R,L positioning si OK (corresponds to firing base positions)
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*3S]15
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*4S]17
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*5S]19
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*6S]21
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*7S]23
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*8S]25
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*9S]27
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*10S]29
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*11S]31
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*12S]33
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*13S]35
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*14S]37
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*15S]39
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*16S]41
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*17S]43
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*18S]45
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*19S]47
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*20S]49
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*21S]51
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*22S]53
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*23S]55
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*24S]57
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*25S]59
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*26S=2352S]61
211211S211211S--[2352#SS]62
       211211S211211S211211B2112 221121211211211111212121112112112111112111212111211111112112 1--[2352#S6T32S]65
 211211D211211D211211S211211D21 2111211211211211111211211211221121121211211221111121211112R 111--[#S6T14I][2352+8+38R=2398R][2352#S]67 [T]0[]{7S} ... 2 does not work, 111 needed
--[2352SS]
   --<(0)[]>[]>[]>[]>(SS)[](+0)
 211211D211211D211211S211211S211211D211211D211211S211211D21 2221121112111111111111112121111112 --(g0%8)[2417](33 0)<2384(96)[S#]>[SS]>[SS]>[B6d6DSDDSSDDS]>(1T6S###)[1T6SDDS](+0)70
1 D211211D211211D211211S211211D211211B211 1122111112112112112111111211212211221 --(g5%8)[2420](52 5)<2368(172)[1T6S###]>[1T6SDDS]>[SDDS]>[S6d6BDSDDDDS]>(H6T22##)[H6T22DS](+0)73
11121121 111211211D211211D211211D211211D211211B211 111211212112111121121121121112112112112112 1 1 2 2 2 2 1 1 22 --(g3%8)[2413](37 3)<2376(270)[H6T22##]>[H6T22DS]>[DS]>[S6d6BDDDDS]>(DDB###)[DDBDDS](+0)76
112111111 211211D211211D211211E211121111111211121121 2111112111211 --(g0%8)[2414](38 0)<2376(335)[DDB###]>[DDBDDS]>[SSSDS]>[T6SPDSSDS]>(T6S##)[T6SDS](+0)79
11 S211211D211211D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122112 --(g5%8)[2411](27 5)<2384(432)[T6S##]>[T6SDS]>[SDS]>[S6d6BDBDDDDSS]>(1B####)[1BDDSS](+0)82
 D211211E211121111111211121121 2111112111211 --(g0%8)[2398](38 0)<2360(476)[1B####]>[1BDDSS]>[SDDSS]>[T6SPDSS]>(T6S)[T6S]85
11 211211S211211D211211S211211D211211B211211D211211D211211B211211D21 22121121121121121121121122112112122112112111221111111111111112 --(g3%8)[2400](24 3)<2376(606)[T6S]>[T6S]>[S]>[B6d6DBDDBDSDS]>(S##)[SDS](+0)88
 D211211#211211#211211S211211D211211S211211S211211D21 22 --(g3%8)[2394](10 3)<2384(661)[S##]>[SDS]>[SDS]>[B6d6DSSDS##DS]>(####)[##DS](+0)91
 111B211211S211211D211211D211211S211211D21 2221121121111121121121122112222 --(g6%8)[2397](29 6)<2368(735)[####]>[##DS]>[##DS]>[B6d6DSDDSBDS]>(##)[DS](+0)94
 111211211D211211D211211D211211D211211D211211D2112 2211211212111112111211122121222112112112112111112111211121111112 --(g6%8)[2404](20 6)<2384(842)[##]>[DS]>[DS]>[PDDDDDDDS]>(T18T6SD###)[T18T6SDDDS](+0)97
21 D211211B211 1112112121121111211211211211121121121121121122221122 --(g3%8)[2405](37 3)<2368(907)[T18T6SD###]>[T18T6SDDDS]>[SDDDS]>[S6d6BDDDS]>(DDB##)[DDBDS](+0)100
11212 S211211D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122112 --(g5%8)[2403](27 5)<2376(1001)[DDB##]>[DDBDS]>[SDS]>[S6d6BDBDDDSS]>(1B###)[1BDSS](+0)103
 D211211D211211B211211B211211S211211B2112 2211221111121211222112111222111111 --(g7%8)[2401](17 7)<2384(1078)[1B###]>[1BDSS]>[SDSS]>[PDBSBBDDSS]>(####)[DDSS](+0)106
 111D211211D211211S211211D21 2221121112111111111111112121111112 --(g0%8)[2393](33 0)<2360(1138)[####]>[DDSS]>[DDSS]>[B6d6DSDDSS]>(1T6S)[1T6S]109
1 211211S211211D211211D211211D211211D211211D2112 2211211212111112111211122121222112112112112111112111211121111112 --(g6%8)[2396](20 6)<2376(1246)[1T6S]>[1T6S]>[S]>[PDDDDDDS]>(T18T6SD##)[T18T6SDDS](+0)112
21 D211211D211211S211211D21 2221111121112111111111111211121111112 --(g0%8)[2393](33 0)<2360(1308)[T18T6SD##]>[T18T6SDDS]>[SDDS]>[B6d6DSDDDS]>(1T6S)[1T6S]115
1 211211D211211#211211#211211B211211B211211S211211B2112 2211221111121211222112111222111111 --(g7%8)[2393](17 7)<2376(1398)[1T6S]>[1T6S]>[S]>[PDBSBB##D]>(###)[##D](+0)118
 111D211211D211211B211 1112112121121111211211211211121121121121121122221122 --(g3%8)[2397](37 3)<2360(1470)[###]>[##D]>[##D]>[S6d6BDDD]>(DDB#)[DDBD](+0)121
11212 D211211D211211S211211D211211S211211S211211B211211D2112111 21111211111122121112111111121111111212211112 --(g2%8)[2407](15 2)<2392(1579)[DDB#]>[DDBD]>[SD]>[SPDBSSDSDD]>(T18T18T6S####)[T18T18T6SDSDD](+0)124
2111 S211211D211211#211211S211211D211211S211211S211211D21 22 --(g3%8)[2410](10 3)<2400(1641)[T18T18T6S####]>[T18T18T6SDSDD]>[SDSDD]>[B6d6DSSDS#DSSDD]>(######)[#DSSDD](+0)127
 111D211211S211211D211211S211211S211211D21 22 --(g3%8)[2402](10 3)<2392(1687)[######]>[#DSSDD]>[#DSSDD]>[B6d6DSSDSDSSDD]>(#####)[DSSDD](+0)130
 111211211D211211D211211E211121111111211121121 2111112111211 --(g0%8)[2414](38 0)<2376(1746)[#####]>[DSSDD]>[DSSDD]>[T6SPDSSDD]>(T6S##)[T6SDD](+0)133
11 B211211D211211S211211B211211D211211D211211S211211S211211D211211D21 222112112111111111111111112222121222 --(g4%8)[2402](18 4)<2384(1853)[T6S##]>[T6SDD]>[SDD]>[B6d6DDSSDDBSDBD]>(S###)[SDBD](+0)136
 D211211D211211D211211D211211B211 11121121211211211211111211121112111121121122112112121121122112 --(g5%8)[2390](6 5)<2384(1944)[S###]>[SDBD]>[SDBD]>[S6d6BDDDDBD]>(h4t14####)[h4t14DDBD](+0)139
11111111121 111D211211B  --<2352(1966)[h4t14####]>[h4t14DDBD]>[DDBD]>[SBDBD]>(SBDBD)[SBDBD]143
[2352DBDBS]
I have added option to "Levels" to forbid some emissions ... and now the bits failed on

Code: Select all

[B6d6DDSSDDB]22(18 4)2112112111111111111111112222121222[]{:_,21T,19t,19I,23H,25h,21B,23P,21d,21D,5S}
Where I used stack [B6d6DDSSDDB SDBD] the stack top S was fine, but following D was too close ... so I really have to check other items on stack as well. ... this move forces SS ...

After 2nd item on the stack controll was added to search (emission protion, not the inbetween one) there were no more issues with 2352 bottom portion. With 112 bottom (or rather 56 with respect to followup) portion there was issue only with first glider emission but after one glider emission was forbiden whole portion went fine. Now I have manually combined H6T->H6T18T and H6T->H6T18t20 ... to position stack bottom to create last block in initial portion. ... the manual stack bottom positioning is tedious. I would probably stop after common part of current DBCA and planned DBCA would be finished (to see expected improvement). And I would rather switch to planning compact DBCA build.

OK here is the starting ... probably common portion ... 22355 bits instead of the original 26131. I ended in a bit different configuraion with stack bottom at 56hd with several items on stack ... rather to 1. I do think these items could be helpfull, and of course if we need other items then D, we can use 1's in propper time to get them. I had to forbid first emission as well, but the rest worked well. I have not checked if I could get better results chosing other bottom than 1206. Oh 1202 program (if it works) requires only 1750 bits compared to 1908 of the 1206 one ... I have to try it. Other versions are worse. So tomorrow...

Code: Select all

[S]--[3080S]1
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3052S]3
211211D211211B211211S--[3052DBSS]4
              211211S211211S211211D211211B211 11221121121111121121121111111121121111122111--[3052DBS36S]6
 211211S--[3052DBS36SS]7
 211211D211211D211211D2112 211211212211211121122L1--[3052+16+36+8L=3112L][3052DBS36S]9
 211211D211211D211211S211211D21 2111211211211211111211211211221121121211211221111121211112R1--[3052+16+36R=3104R][3052DBS]11
              211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*2S]13
--211 12 1112112 1 [] test of R,L positioning si OK (corresponds to firing base positions)
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*3S]15
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*4S]17
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*5S]19
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*6S]21
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*7S]23
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*8S]25
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*9S]27
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*10S]29
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*11S]31
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*12S]33
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*13S]35
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*14S]37
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*15S]39
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*16S]41
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*17S]43
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*18S]45
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*19S]47
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*20S]49
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*21S]51
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*22S]53
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*23S]55
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*24S]57
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*25S]59
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*26S=2352S]61
211211D211211S--[2352DSS]62
       211211S211211S211211B2112 221121211211211111212121112112112111112111212111211111112112 1--[2352DS6T32S]65
 211211D211211D211211S211211D21 2111211211211211111211211211221121121211211221111121211112R 111--[DS6T14I][2352+8+38R=2398R][2352#S]67 [T]0[]{7S} ... 2 does not work, 111 needed
--[2352DS]
   --<(0)[]>[]>[]>[]>(DS)[](+0)
 D211211S211211D211211S211211S211211D211211D211211S211211D21 2221121112111111111111112121111112 --(g0%8)[2417](33 0)<2384(96)[S#]>[SD]>[SD]>[B6d6DSDDSSDSD]>(1T6S###)[1T6SDSD](+0)
1 D211211D211211D211211S211211S211211B211211D2112111 21111211111122121112111111121111111212211112 --(g2%8)[2415](15 2)<2400(192)[1T6S###]>[1T6SDSD]>[SDSD]>[SPDBSSDDDSD]>(T18T18T6S#####)[T18T18T6SDDDSD](+0)
2111 D211211D2112 21111112112112122211121121121122112111211221121111121122122112 --(g6%8)[2413](45 6)<2368(268)[T18T18T6S#####]>[T18T18T6SDDDSD]>[SDDDSD]>[PDDDDDSD]>(1I4S#)[1I4SD](+0)
 S211211D211211S211211S211211D211211D211211E211121111111211121121 2111112111211 --(g0%8)[2414](38 0)<2376(351)[1I4S#]>[1I4SD]>[SD]>[T6SPDSSDS]>(T6S##)[T6SDS](+0)
11 S211211D211211D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122112 --(g5%8)[2411](27 5)<2384(448)[T6S##]>[T6SDS]>[SDS]>[S6d6BDBDDDDSS]>(1B####)[1BDDSS](+0)
 D211211E211121111111211121121 2111112111211 --(g0%8)[2398](38 0)<2360(492)[1B####]>[1BDDSS]>[SDDSS]>[T6SPDSS]>(T6S)[T6S]
11 211211S211211D211211D211211D211211D211211D211211S211211D21 211121111112211122111211211211211211211211211112111121122212 --(g4%8)[2400](40 4)<2360(610)[T6S]>[T6S]>[S]>[B6d6DSDDDDDS]>(#)[S](+0)
 211211S211211D211211#211211#211211S211211D211211S211211S211211D21 22 --(g3%8)[2394](10 3)<2384(680)[#]>[S]>[S]>[B6d6DSSDS##DS]>(####)[##DS](+0)
 111B211211S211211D211211D211211S211211D21 2221121121111121121121122112222 --(g6%8)[2397](29 6)<2368(754)[####]>[##DS]>[##DS]>[B6d6DSDDSBDS]>(##)[DS](+0)
 111211211D211211D211211D211211D211211D211211D2112 2211211212111112111211122121222112112112112111112111211121111112 --(g6%8)[2404](20 6)<2384(861)[##]>[DS]>[DS]>[PDDDDDDDS]>(T18T6SD###)[T18T6SDDDS](+0)
21 D211211B211 1112112121121111211211211211121121121121121122221122 --(g3%8)[2405](37 3)<2368(926)[T18T6SD###]>[T18T6SDDDS]>[SDDDS]>[S6d6BDDDS]>(DDB##)[DDBDS](+0)
11212 S211211D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122112 --(g5%8)[2403](27 5)<2376(1020)[DDB##]>[DDBDS]>[SDS]>[S6d6BDBDDDSS]>(1B###)[1BDSS](+0)
 D211211D211211B211211B211211S211211B2112 2211221111121211222112111222111111 --(g7%8)[2401](17 7)<2384(1097)[1B###]>[1BDSS]>[SDSS]>[PDBSBBDDSS]>(####)[DDSS](+0)
 111D211211D211211S211211D21 2221121112111111111111112121111112 --(g0%8)[2393](33 0)<2360(1157)[####]>[DDSS]>[DDSS]>[B6d6DSDDSS]>(1T6S)[1T6S]
1 211211S211211D211211D211211D211211D211211D2112 2211211212111112111211122121222112112112112111112111211121111112 --(g6%8)[2396](20 6)<2376(1265)[1T6S]>[1T6S]>[S]>[PDDDDDDS]>(T18T6SD##)[T18T6SDDS](+0)
21 D211211D211211S211211D21 2221111121112111111111111211121111112 --(g0%8)[2393](33 0)<2360(1327)[T18T6SD##]>[T18T6SDDS]>[SDDS]>[B6d6DSDDDS]>(1T6S)[1T6S]
1 211211D211211#211211#211211B211211B211211S211211B2112 2211221111121211222112111222111111 --(g7%8)[2393](17 7)<2376(1417)[1T6S]>[1T6S]>[S]>[PDBSBB##D]>(###)[##D](+0)
 111D211211D211211B211 1112112121121111211211211211121121121121121122221122 --(g3%8)[2397](37 3)<2360(1489)[###]>[##D]>[##D]>[S6d6BDDD]>(DDB#)[DDBD](+0)
11212 D211211D211211S211211D211211S211211S211211B211211D2112111 21111211111122121112111111121111111212211112 --(g2%8)[2407](15 2)<2392(1598)[DDB#]>[DDBD]>[SD]>[SPDBSSDSDD]>(T18T18T6S####)[T18T18T6SDSDD](+0)
2111 S211211D211211#211211S211211D211211S211211S211211D21 22 --(g3%8)[2410](10 3)<2400(1660)[T18T18T6S####]>[T18T18T6SDSDD]>[SDSDD]>[B6d6DSSDS#DSSDD]>(######)[#DSSDD](+0)
 111D211211S211211D211211S211211S211211D21 22 --(g3%8)[2402](10 3)<2392(1706)[######]>[#DSSDD]>[#DSSDD]>[B6d6DSSDSDSSDD]>(#####)[DSSDD](+0)
 111211211D211211D211211E211121111111211121121 2111112111211 --(g0%8)[2414](38 0)<2376(1765)[#####]>[DSSDD]>[DSSDD]>[T6SPDSSDD]>(T6S##)[T6SDD](+0)
11 S211211D211211D211211D2112 2112112211111112112112121121121121122112112121121122112111112112121121112111111111111 --(g4%8)[2402](34 4)<2368(1877)[T6S##]>[T6SDD]>[SDD]>[PDDDDSD]>(t20T6S#)[t20T6SD](+0)125
1111 D211211B211211D211211D211211D211211D211211B211 11121121211211211211111211121112111121121122112112121121122112 --(g5%8)[2390](6 5)<2384(1986)[t20T6S#]>[t20T6SD]>[SD]>[S6d6BDDDDBD]>(h4t14####)[h4t14DDBD](+0)128
11111111121 111D211211B  --<2352(2008)[h4t14####]>[h4t14DDBD]>[DDBD]>[SBDBD]>(SBDBD)[SBDBD]130
                            211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*27S]132
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*28S]134
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*29S]136
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*30S]138
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*31S]140
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*32S]142
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*33S]144
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*34S]146
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*35S]148
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*36S]150
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*37S]152
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*38S]154
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*39S]156
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*40S]158
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*41S]160
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*42S]162
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*43S]164
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*44S]166
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*45S]168
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*46S]170
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*47S]172
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*48S]174
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*49S]176
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*50S]178
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*51S]180
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*52S]182
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*53S]184
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*54S]186
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*55S]188
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*56S]190
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*57S]192
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*58S]194
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*59S]196
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*60S]198
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*61S]200
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*62S]202
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*63S]204
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*64S]206
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*65S]208
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*66S]210
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*67S]212
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*68S]214
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*69S]216
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*70S]218
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*71S]220
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*72S]222
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*73S]224
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*74S]226
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*75S]228
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*76S]230
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*77S]232
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*78S]234
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*79S]236
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*80S]238
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*81S]240
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*82S]242
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*83S]244
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*84S]246
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*85S]248
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*86S]250
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*87S]252
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*8S]254
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*89S]256
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*90S]258
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*91S]260
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*92S]262
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*93S]264
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*94S]266
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*95S]268
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*96S]270
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*97S]272
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*98S]274
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*99S]276
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*100S]278
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*101S]280
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*102S]282
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*103S]284
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*104S]286
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*105S]288 0
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*106S]290 2
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*107S]292 4
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*108S]294 6
211211#211211#211211#211211#211211#211211#211211#
211211D211211D211211S211211D 211211D211211D211211D211211D211211D211211S211211D21 211111111211211211221121121111121111122 11--[56#######DDSD58S]300 6
211211D211211D211211S211211D21 2111211211211211111211211211221121121211211221111121211112R 1--[=R194][56#######DDSD]303 9
                                    S211211D211211D211211D --[56#######DDSDDDS]304 10
    --<(0)[]>[]>[]>[]>(SSDDDDD)[]
 D211211D211211D211211D211211D211211D2112 2112112121121121111121211111121121121121121112111121122212 --(g6%8)[213](37 6)<176(95)[S######]>[SDDDSDD]>[SDDDSDD]>[PDDDDDDDDDSDD]>(1########)[1DDDDDSDD](+0) 12
 11D211211D211211D211211D211211D211211D211211D2112 22112112221121121222211112222111111112222 --(g6%8)[211](43 6)<168(178)[1########]>[1DDDDDSDD]>[PDDDDSDD]>[PDDDDDDDDDDDSDD]>(1t48#######)[1t48DDDDSDD](+0) 14
1 111D211211D211211S211211S211211D211211D211211S211211D21 2221121112111111111111112121111112 --(g0%8)[209](33 0)<176(269)[1t48#######]>[1t48DDDDSDD]>[DDDDSDD]>[B6d6DSDDSSDDDDSDD]>(1T6S#######)[1T6SDDDDSDD](+0) 16
1 D211211D211211D211211#211211#211211S211211D211211S211211S211211D21 22 --(g3%8)[210](10 3)<200(337)[1T6S#######]>[1T6SDDDDSDD]>[SDDDDSDD]>[B6d6DSSDS##DDDDDDSDD]>(###########)[##DDDDDDSDD](+0)
 111S211211S211211B211211D2112111 21111211111122121112111111121111111212211112 --(g2%8)[207](15 2)<192(417)[###########]>[##DDDDDDSDD]>[##DDDDDDSDD]>[SPDBSSDDDDDDSDD]>(T18T18T6S#########)[T18T18T6SDDDDDDSDD](+0)
2111 D211211S211211D211211S211211S211211D21 22 --(g3%8)[194](10 3)<184(464)[T18T18T6S#########]>[T18T18T6SDDDDDDSDD]>[SDDDDDDSDD]>[B6d6DSSDSDDDDDDSDD]>(#########)[DDDDDDSDD](+0)
 111D211211D211211D2112 22112112221121121222211112222111111112222 --(g6%8)[187](43 6)<144(524)[#########]>[DDDDDDSDD]>[DDDDDDSDD]>[PDDDDDDDDSDD]>(1t48####)[1t48DSDD](+0)
1 111211211D211211D211211D2112 2111121121112211221122211112112112112112112112211211211111211112111112222121112111111122 --(g4%8)[184](48 4)<136(638)[1t48####]>[1t48DSDD]>[DSDD]>[PDDDDSDD]>(1I4S##)[1I4SDD](+0)
 D211211D211211D211211D211211D211211D211211S211211D211211S211211S211211D21 22 --(g3%8)[178](10 3)<168(711)[1I4S##]>[1I4SDD]>[SDD]>[B6d6DSSDSDDDDDDD]>(#######)[DDDDDDD](+0)
 111B211 1112112121121111211211211211121121121121121122221122 --(g3%8)[173](37 3)<136(771)[#######]>[DDDDDDD]>[DDDDDDD]>[S6d6BDDDDD]>(DDB###)[DDBDDD](+0) 34
11212 D211211D211211D211211D211211S211211D211211B211 1122111112112112112111111211212211221 --(g5%8)[188](52 5)<136(857)[DDB###]>[DDBDDD]>[SDDD]>[S6d6BDSDDDDDD]>(H6T22###)[H6T22DDD](+0)
11121121 111D211211D211211D211211D211211D211211D211211D211211#211211S211211D211211S211211S211211D21 22 --(g3%8)[194](10 3)<184(953)[H6T22###]>[H6T22DDD]>[DDD]>[B6d6DSSDS#DDDDDDDD]>(#########)[#DDDDDDDD](+0)
 111D211211S211211D211211S211211S211211D21 22 --(g3%8)[186](10 3)<176(999)[#########]>[#DDDDDDDD]>[#DDDDDDDD]>[B6d6DSSDSDDDDDDDD]>(########)[DDDDDDDD](+0) 42
 111B211 11111221221121121121121111121221121121121121122111112111222 --(g3%8)[182](46 3)<136(1066)[########]>[DDDDDDDD]>[DDDDDDDD]>[S6d6BDDDDDD]>(###)[DDD](+0)
 111D211211D211211D211211D211211B211 1112112121121111211211211211121121121121121122221122 --(g3%8)[173](37 3)<136(1150)[###]>[DDD]>[DDD]>[S6d6BDDDDD]>(DDB###)[DDBDDD](+0)334 46
11212 D211211S211211B211211D211211D211211D2112 21121122111111121121121211211211111211211222111211121111111211111112 --(g6%8)[183](39 6)<144(1262)[DDB###]>[DDBDDD]>[SDDD]>[PDDDDBSDDD]>(1T18T18T6S###)[1T18T18T6SDDD](+0)337
211   --<112(1265)[1T18T18T6S###]>[1T18T18T6SDDD]>[SDDD]>[SDDD]>(SDDD)[SDDD] --[56#######DDDS]343
SS211211B2112 2211212112112211111212111211121111 --[56#######DSSBDP]>[56#######DS6T16T6H]345
11111112 --[56#######DS6T16(T18)^1T6H]346
11111112 --[56#######DS6T16(T18)^2T6H]347
11111112 --[56#######DS6T16(T18)^*T6H]348
11111112 --[56#######DS6T16(T18)^*T6H]349
11111112 --[56#######DS6T16(T18)^*T6H]350
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]360
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]362
11111112 --[56#######DS6T16(T18)^*T6H]363
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]390
11111112 --[56#######DS6T16(T18)^46T6H]
11111111111 11111111111 --[56#######DS6T16(T18)^*T20t4h]>[56#######DS6T16(T18)^46T20t18T6H]393
11111111111 11111111111 --[56#######DS6T16(T18)^*T20t4h]>[56#######DS6T16(T18)^46(T20t18)^2T6H]395
11111111111 11111111111 --[56#######DS6T16(T18)^*T20t4h]>[56#######DS6T16(T18)^46(T20t18)^3T6H]397
11111111111 11111111111 --[56#######DS6T16(T18)^*T20t4h]>[56#######DS6T16(T18)^46(T20t18)^4T6H]399
11111111111 11111111111 --[56#######DS6T16(T18)^*T20t4h]>[56#######DS6T16(T18)^46(T20t18)^5T6H]401
11111111111 11111111111 --[56#######DS6T16(T18)^*T20t4h]>[56#######DS6T16(T18)^46(T20t18)^6T6H]403
111212212221111221121221121121121121121121121121121122211111211211121211211211211111122221121222211121121121121121121111122111211211211211211211211211111111212121 --[56#######DS6T16(T18)^46(T20t18)^6T24d6D]
S211# --[56#######DS6T16(T18)^46(T20t18)^6T22#S]405
211211#211211#211211#211211# 211211D211211D211211D211211D211211D211211S211211D21 211111111211211211221121121111121111122 11--[56#######DS6T16(T18)^46(T20t18)^6T22#####58S]409
211211D211211D211211S211211D21 2111211211211211111211211211221121121211211221111121211112R 1--[=R1296][56#######DS6T16(T18)^46(T20t18)^6T22#####]412
 111D211211D211211D211211D211211D211211D211211D211211D211211D2112 2112112121121121111121211111121121121121121112111121122212 --(g6%8)[1315](37 6)<1278(113)[#####]>[DDDDD]>[DDDDD]>[PDDDDDDDDDDDDD]>(1#########)[1DDDDDDDDD](+0)414
 11D211211D211211D211211D211211D211211D211211D2112 22112112221121121222211112222111111112222 --(g6%8)[1313](43 6)<1270(196)[1#########]>[1DDDDDDDDD]>[PDDDDDDDD]>[PDDDDDDDDDDDDDDD]>(1t48########)[1t48DDDDDDDD](+0)416
1 111D211211D211211S211211S211211D211211D211211S211211D21 2221121112111111111111112121111112 --(g0%8)[1311](33 0)<1278(287)[1t48########]>[1t48DDDDDDDD]>[DDDDDDDD]>[B6d6DSDDSSDDDDDDDD]>(1T6S########)[1T6SDDDDDDDD](+0)419
1 D211211S211211D211211#211211#211211S211211D211211S211211S211211D21 22 --(g3%8)[1312](10 3)<1302(358)[1T6S########]>[1T6SDDDDDDDD]>[SDDDDDDDD]>[B6d6DSSDS##DSDDDDDDDD]>(############)[##DSDDDDDDDD](+0)422
 111S211211S211211B211211D2112111 21111211111122121112111111121111111212211112 --(g2%8)[1309](15 2)<1294(438)[############]>[##DSDDDDDDDD]>[##DSDDDDDDDD]>[SPDBSSDSDDDDDDDD]>(T18T18T6S##########)[T18T18T6SDSDDDDDDDD](+0)424
2111 D211211S211211D211211S211211S211211D21 22 --(g3%8)[1296](10 3)<1286(485)[T18T18T6S##########]>[T18T18T6SDSDDDDDDDD]>[SDSDDDDDDDD]>[B6d6DSSDSDSDDDDDDDD]>(##########)[DSDDDDDDDD](+0)427
 111211211D211211B211 1122111112112112112111111211212211221 --(g5%8)[1298](52 5)<1246(542)[##########]>[DSDDDDDDDD]>[DSDDDDDDDD]>[S6d6BDSDDDDDDDD]>(H6T22#####)[H6T22DDDDD](+0)429
11121121 111D211211D211211D211211D211211D211211D211211D211211D211211D2112 22112112221121121222211112222111111112222 --(g6%8)[1297](43 6)<1254(646)[H6T22#####]>[H6T22DDDDD]>[DDDDD]>[PDDDDDDDDDDDDD]>(1t48######)[1t48DDDDDD](+0)432
1 111D211211S211211S211211D211211D211211E211121111111211121121 2111112111211 --(g0%8)[1292](38 0)<1254(724)[1t48######]>[1t48DDDDDD]>[DDDDDD]>[T6SPDSSDDDDD]>(T6S#####)[T6SDDDDD](+0)435
11 D211211D211211D211211D211211D211211D211211D211211D2112 2211111211222122111121211111211121121211211111211121112211112112112112112112 --(g6%8)[1312](34 6)<1278(848)[T6S#####]>[T6SDDDDD]>[SDDDDD]>[PDDDDDDDDDDDDD]>(1d6D########)[1d6DDDDDDDDD](+0)438
1 111D211211D211211D211211D211211B211 11111221221121121121121111121221121121121121122111112111222 --(g3%8)[1300](46 3)<1254(940)[1d6D########]>[1d6DDDDDDDDD]>[DDDDDDD]>[S6d6BDDDDDDDDD]>(######)[DDDDDD](+0)441
 111D211211D211211D211211S211211S211211D211211D211211D211211B211 1122212211222111121121121121122112112121111211222111112 --(g7%8)[1301](39 7)<1262(1057)[######]>[DDDDDD]>[DDDDDD]>[S6d6BDDDSSDDDDDDD]>(#######)[DDDDDDD](+0)443
 111D211211D211211#211211D211211D211211D211211D211211D2112 2211111211222122111121211111211121121211211111211121112211112112112112112112 --(g6%8)[1320](34 6)<1286(1182)[#######]>[DDDDDDD]>[DDDDDDD]>[PDDDDDD#DDDDDDD]>(1d6D#########)[1d6DD#DDDDDDD](+0)445
1 111D211211#211211D211211S211211S211211D211211D211211S211211D21 2221121112111111111111112121111112 --(g0%8)[1319](33 0)<1286(1279)[1d6D#########]>[1d6DD#DDDDDDD]>[#DDDDDDD]>[B6d6DSDDSSD#DDDDDDD]>(1T6S#########)[1T6SD#DDDDDDD](+0)448
1 D211211D211211D211211D211211B211 1112112121121111211211211211121121121121121122221122 --(g3%8)[1323](37 3)<1286(1361)[1T6S#########]>[1T6SD#DDDDDDD]>[SD#DDDDDDD]>[S6d6BDDDD#DDDDDDD]>(DDB##########)[DDBDD#DDDDDDD](+0)451
11212 D211211D211211B211 1112112121121111211211211211121121121121121122221122 --(g3%8)[1315](37 3)<1278(1435)[DDB##########]>[DDBDD#DDDDDDD]>[SDD#DDDDDDD]>[S6d6BDDD#DDDDDDD]>(DDB#########)[DDBD#DDDDDDD](+0)454
11212 D211211D211211D211211B211 11111221221121121121121111121221121121121121122111112111222 --(g3%8)[1316](46 3)<1270(1522)[DDB#########]>[DDBD#DDDDDDD]>[SD#DDDDDDD]>[S6d6BDDD#DDDDDDD]>(########)[#DDDDDDD](+0)457
 111D211211D211211D211211D211211S211211D211211B211 1122111112112112112111111211212211221 --(g5%8)[1314](52 5)<1262(1606)[########]>[#DDDDDDD]>[#DDDDDDD]>[S6d6BDSDDDDDDDDDD]>(H6T22#######)[H6T22DDDDDDD](+0)459
11121121 111D211211D211211D211211#211211S211211D211211B211211D211211D211211B211211D21 22121121121121121121121122112112122112112111221111111111111112 --(g3%8)[1310](24 3)<1286(1748)[H6T22#######]>[H6T22DDDDDDD]>[DDDDDDD]>[B6d6DBDDBDS#DDDDDDDD]>(S#########)[S#DDDDDDDD](+0)462
 S211211S211211D211211D211211S211211D21 2221121112111111111111112121111112 --(g0%8)[1311](33 0)<1278(1823)[S#########]>[S#DDDDDDDD]>[S#DDDDDDDD]>[B6d6DSDDSSDDDDDDDD]>(1T6S########)[1T6SDDDDDDDD](+0)464
1 D211211D211211D211211D211211S211211D211211S211211S211211D21 22 --(g3%8)[1304](10 3)<1294(1885)[1T6S########]>[1T6SDDDDDDDD]>[SDDDDDDDD]>[B6d6DSSDSDDDDDDDDDDD]>(###########)[DDDDDDDDDDD](+0)467
11 212121212121212121212  --<1206(1908)[###########]>[DDDDDDDDDDD]>[BDDDDDDDDDD]>[1]>(1)[1]469
12121212121 --470
22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 211
[56#######DS]
Oops, when checking for optimal bottom, I have discovered the results are not "stable" I got for bottom 1250 1703,1700 and 1695 bits. It probably corresponds to lower bounds are not really lower bounds so I cut some branches too early ... I should look at it. Oh lowerBound function was internally called only after removal of common stack bottom, but I made it "public" and used without the transformation ... so it tried to get rid of stack and create it again. For bottom 1250 ... the result is 1655. But I have to recalclate all previous results as well.
Last edited by Hippo.69 on May 2nd, 2023, 9:19 am, edited 1 time in total.
User avatar
Hippo.69
Posts: 683
Joined: July 14th, 2020, 7:35 pm
Contact:

Re: Binary slow salvos

Post by Hippo.69 »

OK, I am done with the initial portion it takes 253+21997 bits rather to the original 26131, morever it left 10 items on the stack with bottom 56, (and we could choose the sack contents (DBS SP) as required. Here is the "commented" version:

End of lines after --should be removed, spaces and R,L,D as well. B should be replaced by 11, S by 111 and E by 1111. Initial and closing [*] as well.

Code: Select all

[S]--[3080S]1
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3052S]3
211211D211211B211211S--[3052DBSS]4
              211211S211211S211211D211211B211 11221121121111121121121111111121121111122111--[3052DBS36S]6
 211211S--[3052DBS36SS]7
 211211D211211D211211D2112 211211212211211121122L1--[3052+16+36+8L=3112L][3052DBS36S]9
 211211D211211D211211S211211D21 2111211211211211111211211211221121121211211221111121211112R1--[3052+16+36R=3104R][3052DBS]11
              211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*2S]13
--211 12 1112112 1 [] test of R,L positioning si OK (corresponds to firing base positions)
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*3S]15
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*4S]17
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*5S]19
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*6S]21
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*7S]23
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*8S]25
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*9S]27
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*10S]29
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*11S]31
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*12S]33
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*13S]35
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*14S]37
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*15S]39
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*16S]41
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*17S]43
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*18S]45
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*19S]47
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*20S]49
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*21S]51
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*22S]53
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*23S]55
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*24S]57
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*25S]59
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*26S=2352S]61
211211S211211D--[2352DSS]62
       211211S211211D211211D211211B2112S 212221121121122112111211221121111121112111211111122 111 --[2352DSSDDBPS]>[2352SDS4I26S6T]>[2352SDS30S]
 211211D211211D211211S211211D21 2111211211211211111211211211221121121211211221111121211112R1--[2352SDS30DDSD6d6B]>[2398R][2352SDS12I]>[2352SDS]67

 D211211S211211S211211D211211#211211B211211B211211S211211B2112 2211221111121211222112111222111111 --(g7%8)[2417](17 7)<2400(104)[S##]>[SDS]>[SDS]>[PDBSBB#DSSDS]>(######)[#DSSDS](+0)
 111D211211S211211S211211B211211D2112111 21111211111122121112111111121111111212211112 --(g2%8)[2415](15 2)<2400(190)[######]>[#DSSDS]>[#DSSDS]>[SPDBSSDSSDS]>(T18T18T6S#####)[T18T18T6SDSSDS](+0)
2111 D211211B211211D211211D211211D2112 21111121121122211211211211111211121211222222111211 --(g1%8)[2413](13 1)<2400(274)[T18T18T6S#####]>[T18T18T6SDSSDS]>[SDSSDS]>[PDDDDBDSSDS]>(S6d6B#####)[S6d6BDSSDS](+0)
21212 D211211D211211E211121111111211121121 2111112111211 --(g0%8)[2414](38 0)<2376(329)[S6d6B#####]>[S6d6BDSSDS]>[SDSSDS]>[T6SPDSSDS]>(T6S##)[T6SDS](+0)
11 D211211S211211D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122112 --(g5%8)[2411](27 5)<2384(426)[T6S##]>[T6SDS]>[SDS]>[S6d6BDBDDDSDS]>(1B####)[1BDSDS](+0)
 D211211D211211S211211D211211S211211S211211D21 22 --(g3%8)[2402](10 3)<2392(475)[1B####]>[1BDSDS]>[SDSDS]>[B6d6DSSDSDDSDS]>(#####)[DDSDS](+0)
 111D211211B211211D211211D211211B211211D21 22121121121121121121121122112112122112112111221111111111111112 --(g3%8)[2400](24 3)<2376(576)[#####]>[DDSDS]>[DDSDS]>[B6d6DBDDBDSDS]>(S##)[SDS](+0)
 D211211#211211#211211S211211D211211S211211S211211D21 22 --(g3%8)[2394](10 3)<2384(631)[S##]>[SDS]>[SDS]>[B6d6DSSDS##DS]>(####)[##DS](+0)
 111B211211S211211D211211D211211S211211D21 2221121121111121121121122112222 --(g6%8)[2397](29 6)<2368(705)[####]>[##DS]>[##DS]>[B6d6DSDDSBDS]>(##)[DS](+0)
 111211211D211211D211211D211211D211211D211211D2112 2211211212111112111211122121222112112112112111112111211121111112 --(g6%8)[2404](20 6)<2384(812)[##]>[DS]>[DS]>[PDDDDDDDS]>(T18T6SD###)[T18T6SDDDS](+0)
21 D211211B211 1112112121121111211211211211121121121121121122221122 --(g3%8)[2405](37 3)<2368(877)[T18T6SD###]>[T18T6SDDDS]>[SDDDS]>[S6d6BDDDS]>(DDB##)[DDBDS](+0)
11212 D211211D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122112 --(g5%8)[2403](27 5)<2376(968)[DDB##]>[DDBDS]>[SDS]>[S6d6BDBDDDDS]>(1B###)[1BDDS](+0)
 #211211#211211B211211B211211S211211B2112 2211221111121211222112111222111111 --(g7%8)[2401](17 7)<2384(1045)[1B###]>[1BDDS]>[SDDS]>[PDBSBB##DS]>(####)[##DS](+0)
 111#211211B211211B211211S211211B2112 2211221111121211222112111222111111 --(g7%8)[2393](17 7)<2376(1119)[####]>[##DS]>[##DS]>[PDBSBB#DS]>(###)[#DS](+0)
 111D211211D211211D211211D211211D2112 2211211212111112111211122121222112112112112111112111211121111112 --(g6%8)[2396](20 6)<2376(1214)[###]>[#DS]>[#DS]>[PDDDDDDS]>(T18T6SD##)[T18T6SDDS](+0)
21 D211211D211211S211211D21 2221111121112111111111111211121111112 --(g0%8)[2393](33 0)<2360(1276)[T18T6SD##]>[T18T6SDDS]>[SDDS]>[B6d6DSDDDS]>(1T6S)[1T6S]
1 211211D211211#211211#211211B211211B211211S211211B2112 2211221111121211222112111222111111 --(g7%8)[2393](17 7)<2376(1366)[1T6S]>[1T6S]>[S]>[PDBSBB##D]>(###)[##D](+0)
 111D211211D211211B211 1112112121121111211211211211121121121121121122221122 --(g3%8)[2397](37 3)<2360(1438)[###]>[##D]>[##D]>[S6d6BDDD]>(DDB#)[DDBD](+0)
11212 D211211D211211S211211D211211S211211S211211B211211D2112111 21111211111122121112111111121111111212211112 --(g2%8)[2407](15 2)<2392(1547)[DDB#]>[DDBD]>[SD]>[SPDBSSDSDD]>(T18T18T6S####)[T18T18T6SDSDD](+0)
2111 S211211D211211#211211S211211D211211S211211S211211D21 22 --(g3%8)[2410](10 3)<2400(1609)[T18T18T6S####]>[T18T18T6SDSDD]>[SDSDD]>[B6d6DSSDS#DSSDD]>(######)[#DSSDD](+0)
 111D211211S211211D211211S211211S211211D21 22 --(g3%8)[2402](10 3)<2392(1655)[######]>[#DSSDD]>[#DSSDD]>[B6d6DSSDSDSSDD]>(#####)[DSSDD](+0)
 111211211D211211D211211E211121111111211121121 2111112111211 --(g0%8)[2414](38 0)<2376(1714)[#####]>[DSSDD]>[DSSDD]>[T6SPDSSDD]>(T6S##)[T6SDD](+0)
11 B211211D211211D211211D211211D211211D211211D211211D211211D2112 2211111211221122111121112111211111112121211211211211112112112112121222 --(g6%8)[2402](10 6)<2392(1840)[T6S##]>[T6SDD]>[SDD]>[PDDDDDDDDDBD]>(1P#####)[1PDDDBD](+0)
 1D211211D211211B211 11121121211211211211111211121112111121121122112112121121122112 --(g5%8)[2390](6 5)<2384(1920)[1P#####]>[1PDDDBD]>[BDDDBD]>[S6d6BDDDDBD]>(h4t14####)[h4t14DDBD](+0)
11111111121 111D211211B  --<2352(1942)[h4t14####]>[h4t14DDBD]>[DDBD]>[SBDBD]>(SBDBD)[SBDBD]
                            211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*27S]132
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*28S]134
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*29S]136
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*30S]138
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*31S]140
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*32S]142
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*33S]144
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*34S]146
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*35S]148
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*36S]150
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*37S]152
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*38S]154
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*39S]156
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*40S]158
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*41S]160
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*42S]162
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*43S]164
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*44S]166
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*45S]168
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*46S]170
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*47S]172
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*48S]174
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*49S]176
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*50S]178
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*51S]180
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*52S]182
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*53S]184
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*54S]186
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*55S]188
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*56S]190
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*57S]192
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*58S]194
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*59S]196
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*60S]198
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*61S]200
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*62S]202
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*63S]204
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*64S]206
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*65S]208
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*66S]210
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*67S]212
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*68S]214
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*69S]216
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*70S]218
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*71S]220
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*72S]222
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*73S]224
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*74S]226
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*75S]228
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*76S]230
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*77S]232
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*78S]234
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*79S]236
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*80S]238
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*81S]240
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*82S]242
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*83S]244
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*84S]246
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*85S]248
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*86S]250
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*87S]252
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*8S]254
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*89S]256
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*90S]258
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*91S]260
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*92S]262
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*93S]264
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*94S]266
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*95S]268
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*96S]270
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*97S]272
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*98S]274
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*99S]276
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*100S]278
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*101S]280
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*102S]282
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*103S]284
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*104S]286
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*105S]288 0
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*106S]290 2
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*107S]292 4
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[3080-28*108S]294 6
211211#211211#211211#211211#211211#211211#211211#
211211#211211#211211#211211# 211211D211211D211211D211211D211211D211211S211211D21 211111111211211211221121121111121111122 11--[56###########S]>[56###########DDDDDSD6d6B]>[56###########28t22S]>[56###########50S]300 6
211211D211211D211211S211211D21 2111211211211211111211211211221121121211211221111121211112R 1--[56###########50DDSD6d6B]>[R194][56###########36I]>[56###########]303 9
 111D211211D211211D211211D211211D211211D211211S211211D211211B211211D211211D211211D2112 21111121121122211211211211111211121211222222111211 --(g1%8)[213](13 1)<200(128)[###########]>[DD#########]>[DD#########]>[PDDDDBDSDDDDDD#########]>(S6d6B#################)[S6d6BDSDDDDDD#########](+0)
  112122112112112112111111121112111122121121121112222111 --(g7%8)[211](43 7)<168(182)[S6d6B#################]>[S6d6BDSDDDDDD#########]>[S6d6BDSDDDDDD#########]>[S6d6BDSDDDDDD#########]>(##############)[DDDDD#########](+0)
 111D211211D211211D211211D211211#211211B211211B211211S211211B2112 2211221111121211222112111222111111 --(g7%8)[209](17 7)<192(280)[##############]>[DDDDD#########]>[DDDDD#########]>[PDBSBB#DDDDDDD#########]>(#################)[#DDDDDDD#########](+0)
 111D211211#211211#211211S211211D211211S211211S211211D21 22 --(g3%8)[210](10 3)<200(338)[#################]>[#DDDDDDD#########]>[#DDDDDDD#########]>[B6d6DSSDS##DDDDDDD#########]>(##################)[##DDDDDDD#########](+0)
 111S211211S211211B211211D2112111 21111211111122121112111111121111111212211112 --(g2%8)[207](15 2)<192(418)[##################]>[##DDDDDDD#########]>[##DDDDDDD#########]>[SPDBSSDDDDDDD#########]>(T18T18T6S################)[T18T18T6SDDDDDDD#########](+0)
2111 D211211S211211D211211S211211S211211D21 22 --(g3%8)[194](10 3)<184(465)[T18T18T6S################]>[T18T18T6SDDDDDDD#########]>[SDDDDDDD#########]>[B6d6DSSDSDDDDDDD#########]>(################)[DDDDDDD#########](+0)
 111D211211B211211D211211B211 1121211112112111121121121121111112112122112 --(g5%8)[187](27 5)<160(536)[################]>[DDDDDDD#########]>[DDDDDDD#########]>[S6d6BDBDDDDDD#########]>(1B#############)[1BDDDD#########](+0)
 D211211D211211D211211D211211S211211D21 211121111112211122111211211211211211211211211112111121122212 --(g4%8)[184](40 4)<144(631)[1B#############]>[1BDDDD#########]>[SDDDD#########]>[B6d6DSDDDDDDD#########]>(###########)[DD#########](+0)
 111D211211D211211D211211#211211#211211S211211D211211S211211S211211D21 22 --(g3%8)[178](10 3)<168(701)[###########]>[DD#########]>[DD#########]>[B6d6DSSDS##DDD#########]>(##############)[##DDD#########](+0)
 111B211211D211211D211211D2112 21111121121122211211211211111211121211222222111211 --(g1%8)[173](13 1)<160(778)[##############]>[##DDD#########]>[##DDD#########]>[PDDDDBDDD#########]>(S6d6B############)[S6d6BDDD#########](+0)
2 11D211211B211 11212111121121111211211211211211211211211112111121122112111212 --(g2%8)[188](52 2)<136(854)[S6d6B############]>[S6d6BDDD#########]>[PDBDDD#########]>[S6d6BDBDDD#########]>(##########)[D#########](+0)
 111#211211D211211D211211D211211D211211D211211D211211#211211S211211D211211S211211S211211D21 22 --(g3%8)[194](10 3)<184(942)[##########]>[D#########]>[D#########]>[B6d6DSSDS#DDDDDD#########]>(################)[#DDDDDD#########](+0)
 111D211211S211211D211211S211211S211211D21 22 --(g3%8)[186](10 3)<176(988)[################]>[#DDDDDD#########]>[#DDDDDD#########]>[B6d6DSSDSDDDDDD#########]>(###############)[DDDDDD#########](+0)
 111B211 11111221221121121121121111121221121121121121122111112111222 --(g3%8)[182](46 3)<136(1055)[###############]>[DDDDDD#########]>[DDDDDD#########]>[S6d6BDDDD#########]>(##########)[D#########](+0)
 111#211211D211211D211211D211211B211 1112112121121111211211211211121121121121121122221122 --(g3%8)[173](37 3)<136(1139)[##########]>[D#########]>[D#########]>[S6d6BDDD#########]>(DDB##########)[DDBD#########](+0)
11212 D211211S211211B211211D211211D211211D2112 21121122111111121121121211211211111211211222111211121111111211111112 --(g6%8)[183](39 6)<144(1251)[DDB##########]>[DDBD#########]>[SD#########]>[PDDDDBSD#########]>(1T18T18T6S##########)[1T18T18T6SD#########](+0)
211 #  --<56(1254)[1T18T18T6S##########]>[1T18T18T6SD#########]>[SD#########]>[S##########]>(S##########)[S##########][56##########S]
S211211S211211B2112 2211212112112211111212111211121111 --[56#########SSBDP]>[56#########S6T16T6H]
11111112 --[56########S6T16(T18)^1T6H]346
11111112 --[56########S6T16(T18)^2T6H]347
11111112 --[56########S6T16(T18)^*T6H]348
11111112 --[56########S6T16(T18)^*T6H]349
11111112 --[56########S6T16(T18)^*T6H]350
11111112 --[56########S6T16(T18)^*T6H]
11111112 --[56########S6T16(T18)^*T6H]
11111112 --[56########S6T16(T18)^*T6H]
11111112 --[56########S6T16(T18)^*T6H]
11111112 --[56########S6T16(T18)^*T6H]
11111112 --[56########S6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]360
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]362
11111112 --[56#######DS6T16(T18)^*T6H]363
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]40
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]50
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56#######DS6T16(T18)^*T6H]
11111112 --[56########S6T16(T18)^56T6H]56
11111111111 11111111111 --[56#######DS6T16(T18)^*T20t4h]>[56#######DS6T16T(18T)^56 20t18T6H]393
11111111111 11111111111 --[56#######DS6T16(T18)^*T20t4h]>[56#######DS6T16T(18T)^56(20t18T)^2 6H]395
111212212221111221121221121121121121121121121121121122211111211211121211211211211111122221121222211121121121121121121111122111211211211211211211211211111111212121 --[56#######DS6T16T(18T)^56(20t18T)20t24d6D]
S211# --[56#########S6T16T(18T)^56(20t18T)20t22#S]405
211211#211211#211211S 211211D211211D211211B2112S 212221121121122112111211221121111121112111211111122 111 --[...1250##SDDBPS]>[...1250##S4I26S6T]>[...1250##S30S]
 211211D211211D211211S211211D21 2111211211211211111211211211221121121211211221111121211112R1 --[...1250##S30DDSD6d6B]>[1296R][...1250##S]
 D211211S211211S211211D211211#211211B211211B211211S211211B2112 2211221111121211222112111222111111 --(g7%8)[1315](17 7)<1298(101)[S##]>[SDD]>[SDD]>[PDBSBB#DSSDD]>(######)[#DSSDD](+0)
 111D211211S211211S211211B211211D2112111 21111211111122121112111111121111111212211112 --(g2%8)[1313](15 2)<1298(187)[######]>[#DSSDD]>[#DSSDD]>[SPDBSSDSSDD]>(T18T18T6S#####)[T18T18T6SDSSDD](+0)
2111 D211211B211211D211211D211211D2112 21111121121122211211211211111211121211222222111211 --(g1%8)[1311](13 1)<1298(271)[T18T18T6S#####]>[T18T18T6SDSSDD]>[SDSSDD]>[PDDDDBDSSDD]>(S6d6B#####)[S6d6BDSSDD](+0)
21212 D211211D211211E211121111111211121121 2111112111211 --(g0%8)[1312](38 0)<1274(326)[S6d6B#####]>[S6d6BDSSDD]>[SDSSDD]>[T6SPDSSDD]>(T6S##)[T6SDD](+0)
11 D211211S211211D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122112 --(g5%8)[1309](27 5)<1282(423)[T6S##]>[T6SDD]>[SDD]>[S6d6BDBDDDSDD]>(1B####)[1BDSDD](+0)
 D211211D211211S211211D211211S211211S211211D21 22 --(g3%8)[1300](10 3)<1290(472)[1B####]>[1BDSDD]>[SDSDD]>[B6d6DSSDSDDSDD]>(#####)[DDSDD](+0)
 111D211211B211211D211211D211211B211211D21 22121121121121121121121122112112122112112111221111111111111112 --(g3%8)[1298](24 3)<1274(573)[#####]>[DDSDD]>[DDSDD]>[B6d6DBDDBDSDD]>(S##)[SDD](+0)
 D211211D211211S211211S211211B211211D2112111 21111211111122121112111111121111111212211112 --(g2%8)[1297](15 2)<1282(662)[S##]>[SDD]>[SDD]>[SPDBSSDDD]>(T18T18T6S###)[T18T18T6SDDD](+0)
2111 #211211#211211S211211D211211S211211S211211D21 22 --(g3%8)[1292](10 3)<1282(715)[T18T18T6S###]>[T18T18T6SDDD]>[SDDD]>[B6d6DSSDS##DD]>(####)[##DD](+0)
 111S211211S211211D211211D211211E211121111111211121121 2111112111211 --(g0%8)[1312](38 0)<1274(786)[####]>[##DD]>[##DD]>[T6SPDSSDD]>(T6S##)[T6SDD](+0)
11 D211211D211211#211211#211211S211211D211211S211211S211211D21 22 --(g3%8)[1300](10 3)<1290(849)[T6S##]>[T6SDD]>[SDD]>[B6d6DSSDS##DDD]>(#####)[##DDD](+0)
 111D211211D211211B211211D211211B211 1121211112112111121121121121111112112122112 --(g5%8)[1301](27 5)<1274(926)[#####]>[##DDD]>[##DDD]>[S6d6BDBDDDDD]>(1B###)[1BDDD](+0)
 D211211S211211S211211D211211D211211E211121111111211121121 2111112111211 --(g0%8)[1320](38 0)<1282(1000)[1B###]>[1BDDD]>[SDDD]>[T6SPDSSDDD]>(T6S###)[T6SDDD](+0)
11 D211211D211211D211211D211211B211 1112112121121111211211211211121121121121121122221122 --(g3%8)[1319](37 3)<1282(1083)[T6S###]>[T6SDDD]>[SDDD]>[S6d6BDDDDDD]>(DDB####)[DDBDDDD](+0)
11212 D211211S211211D211211#211211B211211B211211S211211B2112 2211221111121211222112111222111111 --(g7%8)[1323](17 7)<1306(1180)[DDB####]>[DDBDDDD]>[SDDDD]>[PDBSBB#DSDDDD]>(#######)[#DSDDDD](+0)
 111D211211B211211B211211S211211B2112 2211221111121211222112111222111111 --(g7%8)[1315](17 7)<1298(1254)[#######]>[#DSDDDD]>[#DSDDDD]>[PDBSBBDSDDDD]>(######)[DSDDDD](+0)
 111211211D211211D211211S211211D211211S211211S211211D21 22 --(g3%8)[1316](10 3)<1306(1312)[######]>[DSDDDD]>[DSDDDD]>[B6d6DSSDSDDSDDDD]>(#######)[DDSDDDD](+0)
 111D211211B211211D211211D211211B211211D21 22121121121121121121121122112112122112112111221111111111111112 --(g3%8)[1314](24 3)<1290(1413)[#######]>[DDSDDDD]>[DDSDDDD]>[B6d6DBDDBDSDDDD]>(S####)[SDDDD](+0)
 D211211S211211D211211B211 1122111112112112112111111211212211221 --(g5%8)[1310](52 5)<1258(1476)[S####]>[SDDDD]>[SDDDD]>[S6d6BDSDDDD]>(H6T22#)[H6T22D](+0)
11121121 111211211D211211S211211S211211D211211B211211S211211D211211D211211S211211D21 2221121121111121121121122112222 --(g6%8)[1311](29 6)<1282(1594)[H6T22#]>[H6T22D]>[D]>[B6d6DSDDSBDSSD]>(####)[DSSD](+0)
 111211211D211211D211211E211121111111211121121 2111112111211 --(g0%8)[1304](38 0)<1266(1653)[####]>[DSSD]>[DSSD]>[T6SPDSSD]>(T6S#)[T6SD](+0)
1121121 21212  --<1250(1665)[T6S#]>[T6SD]>[BDD]>[1]>(1)[1]
121 --
22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 11 --
[56#########S]
I have not fully parametrized the code, but I set bottom "manually" as I have often experimented with it, I didnot want that in configuration file.
Here are last versions of the 2 main programs:

Code: Select all

-- This module is loaded if a script calls require "StackChangeCost".

local g = golly()
local moveCondsFileName = "c:\\Golly\\Lua\\StackChangeCost\\CondBitSequences.txt"
local m = {}
m.log = io.open("c:\\Golly\\Lua\\StackChangeCost\\log.txt", "w")
m.logLevel = 0
m.searchStartTime = g.millisecs()

function m.inttostring(num)
    return string.sub(num, 1, string.find(num .. ".", "%.") - 1)
end

function m.writeLog(msg, level)
    local time = g.millisecs()
    if m.log and ((not level and m.logLevel <= 0) or (level and level >= m.logLevel)) then
        m.log:write(string.sub("        " .. m.inttostring(time - m.searchStartTime), -8) .. "ms " .. msg .. "\n")
    end
end

m.tries = {};--addressed by hadron.id (by top hadron on the stack)
m.trieNodeCount = 11
local hadrons = { 'B', 'D', 'd', 'S', 'P', 'T', 't', 'I', 'H', 'h', '0' } -- L,R,1,2 not here
for i = 1, #hadrons do
    m.tries[hadrons[i]] = {}
end

function m.inDelimiters(name, leftDelimiter, rightDelimiter)
    return string.match(name, '%' .. leftDelimiter .. '(.-)%' .. rightDelimiter)
end

function m.parseMove(moveConds)
    m.writeLog("parseMove(" .. moveConds .. ")", -2)
    local function split(str, delim)
        local ret, l, p = {}, 1, nil
        str = str or ''
        while l <= 1 + string.len(str) do
            p = string.find(str .. delim, '%' .. delim, l)
            ret[1 + #ret], l = string.sub(str, l, p - 1), p + 1
        end
        return ret
    end

    local preStack, postStack, conds, pos, bits, move, glider
    pos, conds = string.find(moveConds .. '{', '%{'), ""
    conds = string.sub(moveConds, pos + 1, string.find(moveConds .. '}', '%}') - 1)
    conds = split(conds, ':')
    conds[2] = split(conds[2], ',')
    move = string.sub(moveConds, 1, pos - 1)
    pos = string.find(move, '%]')
    preStack = string.sub(move, 2, pos - 1)
    bits = string.sub(move, pos + 1)
    pos = string.find(bits, '%[')
    postStack = string.sub(bits, pos + 1, -2)
    bits = string.sub(bits, 1, pos - 1)
    glider, pos = '', string.find(bits, '%(')
    if pos then
        glider = m.inDelimiters(bits, '(', ')')
        bits = string.sub(bits, 1, pos - 1) .. string.sub(bits, string.find(bits, '%)') + 1)
    end
    return bits, move, conds, preStack, postStack, glider
end

function m.conditionsToString(conditions)
    local postConitions, ret
    if #conditions == 0 then
        g.note("no conditions?")
        return "{:}"
    end
    if #conditions < 2 then
        ret = "{:"
    else
        ret = "{" .. conditions[1] .. ":"
    end
    ret = ret .. conditions[#conditions][1]
    for j = 2, #conditions[#conditions] do
        ret = ret .. "," .. conditions[#conditions][j]
    end
    ret = ret .. "}"
    return ret
end

local function noEmissionTrieInsert(moveConds)
    local bits, move, conds, preStack, postStack, glider = m.parseMove(moveConds)
    m.writeLog('noEmissionTrieInsert(' .. moveConds .. ') ', -1)
    if glider ~= "" then
        --emission
        return
    end
    if string.find(postStack, '[LR]') then
        --emission
        return
    end
    -- actually we do not need stack bottom repositioning sequences, but it is hard to eliminate them
    -- it was eliminated by preprocessing of stack sequences -:)

    local preStackLen, bitLen = string.len(preStack), string.len(bits)
    local node, nextNode, info, nextInfo = m.tries[string.sub(conds[1], 1, 1)], m.tries[string.sub(preStack, 1, 1)], string.sub(conds[1], 1, 1), string.sub(preStack, 1, 1)
    if conds[1] == "" then
        node, nextNode, info, nextInfo = nextNode, nil, nextInfo, nil
    end
    while node do
        m.writeLog("  inserting into trie " .. info, -2)
        for i = 1, string.len(bits) do
            local j = string.sub(bits, i, i)
            if not string.find('012', j) or ((i > 1) and j == "0") then
                m.writeLog("noEmissionTrieInsert wrong character bits " .. bits .. " at position " .. i .. " " .. string.sub(bits, i, i), 10)
            end
            if not node.minPreStackLen or node.minPreStackLen > preStackLen then
                node.minPreStackLen = preStackLen --prevents following the branch in nextOutGoingEdge
            end
            if not node.minBitLen or node.minBitLen > bitLen then
                node.minBitLen = bitLen --planned to prevent following the branch in nextOutGoingEdge but cost lowerbound is more effective
            end
            j = j + 0
            if j == 0 then
                node, nextNode, info, nextInfo = m.tries['0'], nil, '0', nil -- exception simplifying 0# processing
            else
                if node[j] == nil then
                    node[j], m.trieNodeCount = {}, m.trieNodeCount + 1
                end
                node = node[j]
            end
        end
        if not node.minPreStackLen or node.minPreStackLen > preStackLen then
            node.minPreStackLen = preStackLen
        end
        if not node.minBitLen or node.minBitLen > bitLen then
            node.minBitLen = bitLen
        end
        if not node.moveConds then
            node.moveConds = {}
        end
        node.moveConds[#node.moveConds + 1] = moveConds
        node, nextNode, info, nextInfo = nextNode, nil, nextInfo, nil
        conds[1] = "";
        moveConds = move .. m.conditionsToString(conds) -- to speedup matching the above need not be checked
    end
    return true
end

local function iniTrie()
    m.writeLog('InitTrie()')
    local h = io.open(moveCondsFileName, "r")
    --local o=io.open(moveCondsFileName2,"w") -- used to prefilter general conditioned sequence file
    local moveCondsLine = h:read()
    while moveCondsLine do
        if noEmissionTrieInsert(string.sub(moveCondsLine, 5)) then
            --o:write(moveCondsLine.."\n")
        end
        moveCondsLine = h:read()
    end
    h:close()
    --o:close()
end

iniTrie()

function m.easyChangeStackCost(preStack, postStack)
    -- let us try to slowly extend this to all required cases (postStacks corresponding to all emission tabulated preStacks, condition for preStacks not known yet)
    m.writeLog("easyChangeStackCost(" .. preStack .. "," .. postStack .. ")")
    local cost, tmp = 0
    m.easyChangeStackCostErr = preStack .. ">" .. postStack
    if preStack == postStack then
        return cost
    end
    if postStack == '' then
        if string.sub(preStack, -4) == "BDBD" then
            m.writeLog("easyChangeStackCost [..BDBD]>[]")
            local fail = string.sub(preStack, 1, 1) ~= "B"
            for i = 2, string.len(preStack) - 4 do
                if string.sub(preStack, i, i) ~= 'D' then
                    m.writeLog("easyChangeStackCost [BD*BDBD]>[] failed at " .. i)
                    fail = true
                    break
                end
            end
            if fail then
                m.easyChangeStackCostErr = "Reducig stack implemented only for exceptions " .. m.easyChangeStackCostErr
                return
            end
            m.writeLog("easyChangeStackCost [BD*BDBD]>[] exception detected", 2)
            cost = 2 * (string.len(preStack) - 5)
            cost = (cost < 0) and 0 or cost
            return cost + 5 -- ->(+1) [SDBD] ->(+1) [P6d6DBD]->(+1) [B6D6DBD] -> (+2) []
        end
    elseif string.len(postStack) == 1 and string.len(preStack) > 1 then
        m.writeLog("easyChangeStackCost [BD*]>[#+1]")
        tmp = string.find('PBS', postStack) or string.find('PB1', postStack)
        if tmp then
            local fail = string.sub(preStack, 1, 1) ~= "B"
            for i = 2, string.len(preStack) do
                if string.sub(preStack, i, i) ~= 'D' then
                    m.writeLog("easyChangeStackCost [BD*]>[#+1] failed at " .. i)
                    fail = true
                    break
                end
            end
            if not fail then
                m.writeLog("easyChangeStackCost [BD*]>[#+1] exception detected", 2)
                return 2 * (string.len(preStack) - 1) + tmp - 2
            end
        end
    end
    tmp = string.find("DPBS", string.sub(preStack, -1)) or string.find("#", string.sub(preStack, -1))
    if not tmp then
        m.easyChangeStackCostErr = "Stack should have #DPBS on bottom! " .. m.easyChangeStackCostErr
        return 1000000000
    end
    if preStack == '' then
        m.easyChangeStackCostErr = "preStack cannot be empty " .. m.easyChangeStackCostErr
        return
    end
    if string.len(preStack) > 2 then
        m.easyChangeStackCostErr = "Reducing stack implemented only for exceptions " .. m.easyChangeStackCostErr
        return
    end
    if string.len(postStack) < string.len(preStack) then
        m.easyChangeStackCostErr = "Shortening implemented only for exceptions " .. m.easyChangeStackCostErr
        return
    end
    if string.len(preStack) == 2 then
        cost = string.find("SBPD", string.sub(preStack, -1)) or string.find("SBP#", string.sub(preStack, -1))
        if not cost then
            m.easyChangeStackCostErr = "Only D,P,B,S,# on starting positions implemented " .. m.easyChangeStackCostErr
            return
        end
        tmp = string.find("SBPD", string.sub(postStack, -1)) or string.find("SBB#", string.sub(postStack, -1))
        if not tmp then
            m.easyChangeStackCostErr = "Only D,P,B,S,# at end of postStack when preStack.len==2 on starting positions implemented " .. m.easyChangeStackCostErr
            return
        end
        cost = cost - tmp
        if cost < 0 then
            m.easyChangeStackCostErr = "when preStack.len==2, end of postStack must be on D->P->B->S from end of preStack " .. m.easyChangeStackCostErr
            return
        end
        if tmp == 3 then
            if string.sub(postStack, -2, -2) ~= 'S' or cost == 0 then
                m.easyChangeStackCostErr = "implemented P only as a part of SP at end of postStack when preStack.len==2 and prestack does not end on P" .. m.easyChangeStackCostErr
                return
            end -- SP->XSP ???
        end
        preStack = string.sub(preStack, 1, -2)
        postStack = string.sub(postStack, 1, -2)
    end
    tmp = string.find("SBPD", preStack) or string.find("SBP#", preStack)
    if not tmp then
        m.easyChangeStackCostErr = "Only D,P,B,S,# starting positions implemented " .. m.easyChangeStackCostErr
        return
    end
    if string.len(postStack) == 1 then
        if cost > 0 then
            if postStack ~= "S" then
                m.easyChangeStackCostErr = "when preStack.len==2, postStack.len==2 last item differ, implemented only for postStack starting S " .. m.easyChangeStackCostErr
                return
            end
        else
            cost = tmp
            tmp = string.find("SBPD", postStack) or string.find("SBP#", postStack)
            if not tmp then
                m.easyChangeStackCostErr = "when preStack.len==postStack.len<=2 where only first item differs implemented only for postStack starting B,S,P,D " .. m.easyChangeStackCostErr
                return
            end
            cost = cost - tmp
            if cost < 0 then
                m.easyChangeStackCostErr = "not implemented for short stacks where shift not consistent with D->P->B->S " .. m.easyChangeStackCostErr
                return
            end
            return cost
        end
    end
    cost = cost + tmp - 1
    tmp = string.find("PBS", string.sub(postStack, 1, 1))
    if string.sub(postStack, 2, 4) == "6d6" then
        if not tmp then
            m.easyChangeStackCostErr = "Only P,B,S predecessors of 6d6 implemented " .. m.easyChangeStackCostErr
            return
        end
        cost = cost + tmp
        postStack = string.sub(postStack, 5)
    elseif tmp then
        cost = cost + tmp - 3
        if string.sub(postStack, 1, 2) == "SP" then
            --P allowed here
            cost = cost + 7
            postStack = string.sub(postStack, 3)
            tmp = 2
        elseif string.sub(postStack, 2, 2) == 'D' or tmp == 3 then
            postStack = string.sub(postStack, 2)
        else
            m.easyChangeStackCostErr = "After P or B start must be either 6d or D, other costs not implemented " .. m.easyChangeStackCostErr .. "\n" .. postStack
            -- additional cost 22 (a) ->S, changing 2nd -> (+6) SD (+3-a) back to desired (+13) removal of leading S
            -- additional cost +22 does not work for P as SP->P6d6P is not possible
            return
        end
    elseif string.sub(postStack, 1, 2) == "T6" then
        cost = cost + 21 -- is (3)S6d6->(+2)H6T6->(+8)H6T18T6->(+7)I16T6->(+1)T6 optimal (at least in our current moveset)
        postStack = string.sub(postStack, 3)
    else
        m.easyChangeStackCostErr = "Only P,B,S and T6 starts implemented " .. m.easyChangeStackCostErr
        return
    end
    if tmp then
        tmp = 1 + tmp --compatibility
    end
    for i = 1, string.len(postStack) do
        if tmp == 4 then
            --P allowed after S (maintained as D and incremented after next S created)
            tmp = string.find("DPBS", string.sub(postStack, i, i)) or string.find("#", string.sub(postStack, i, i))
        else
            tmp = string.find("DDBS", string.sub(postStack, i, i)) or string.find("#", string.sub(postStack, i, i))
        end
        if tmp then
            cost = cost + 5 + tmp
        else
            m.easyChangeStackCostErr = "Only D,B,S,SP,# inner items implemented yet (" .. i .. ")=" .. string.sub(postStack, i, i) .. " " .. m.easyChangeStackCostErr
            return
        end
    end
    return cost
end

function m.easyChangeStackCostLowerBound(preStack, postStack)
    -- let us try to slowly extend this to all required cases (postStacks corresponding to all emission tabulated preStacks, condition for preStacks not known yet)
    m.writeLog("easyChangeStackCostLowerBound(" .. preStack .. "," .. postStack .. ")")
    -- called only for preStack=='D'
    local cost, tmp = 0
    m.easyChangeStackCostLowerBoundErr = preStack .. ">" .. postStack
    if preStack == postStack then
        return cost
    end
    if string.len(preStack) > 2 then
        m.easyChangeStackCostLowerBoundErr = "Reducing stack implemented only for exceptions " .. m.easyChangeStackCostLowerBoundErr
        return
    end
    if string.len(postStack) < string.len(preStack) then
        m.easyChangeStackCostLowerBoundErr = "Shortening implemented only for exceptions " .. m.easyChangeStackCostLowerBoundErr
        return
    end
    if string.len(preStack) == 2 then
        cost = string.find("SBPD", string.sub(preStack, -1)) or string.find("SBP#", string.sub(preStack, -1))
        if not cost then
            m.easyChangeStackCostLowerBoundErr = "Only D,P,B,S,# on starting positions implemented " .. m.easyChangeStackCostLowerBoundErr
            return
        end
        tmp = string.find("SBPD", string.sub(postStack, -1)) or string.find("SBP#", string.sub(postStack, -1))
        if not tmp then
            m.easyChangeStackCostLowerBoundErr = "Only D,B,S,# at end of postStack when preStack.len==2 on starting positions implemented " .. m.easyChangeStackCostLowerBoundErr
            return
        end
        cost = cost - tmp
        if cost < 0 then
            m.easyChangeStackCostLowerBoundErr = "when preStack.len==2, end of postStack must be on D->P->B->S from end of preStack " .. m.easyChangeStackCostLowerBoundErr
            return
        end
        preStack = string.sub(preStack, 1, -2)
        postStack = string.sub(postStack, 1, -2)
    end
    tmp = string.find("SBPD", preStack) or string.find("SBP#", preStack)
    if not tmp then
        m.easyChangeStackCostLowerBoundErr = "Only D,P,B,S,# starting positions implemented " .. m.easyChangeStackCostLowerBoundErr
        return
    end
    if string.len(postStack) == 1 then
        if cost > 0 then
            if postStack ~= "S" then
                m.easyChangeStackCostLowerBoundErr = "when preStack.len==2, postStack.len==2 last item differ, implemented only for postStack starting S " .. m.easyChangeStackCostLowerBoundErr
                return
            end
        else
            cost = tmp
            tmp = string.find("SBPD", postStack) or string.find("SBP#", postStack)
            if not tmp then
                m.easyChangeStackCostLowerBoundErr = "when preStack.len==postStack.len<=2 where only first item differs implemented only for postStack starting B,S,P,D " .. m.easyChangeStackCostLowerBoundErr
                return
            end
            cost = cost - tmp
            if cost < 0 then
                m.easyChangeStackCostLowerBoundErr = "not implemented for short stacks where shift not consistent with D->P->B->S " .. m.easyChangeStackCostLowerBoundErr
                return
            end
            return cost
        end
    end
    cost = cost + tmp - 1
    tmp = string.find("PBS", string.sub(postStack, 1, 1))
    if string.sub(postStack, 2, 4) == "6d6" then
        if not tmp then
            m.easyChangeStackCostLowerBoundErr = "Only P,B,S predecessors of 6d6 implemented " .. m.easyChangeStackCostLowerBoundErr
            return
        end
        cost = cost + tmp
        postStack = string.sub(postStack, 5)
    elseif tmp then
        cost = cost + tmp - 3
        if string.sub(postStack, 1, 2) == "SP" then
            --P allowed here
            cost = cost + 7
            postStack = string.sub(postStack, 3)
        elseif string.sub(postStack, 2, 2) == 'D' or tmp == 3 then
            postStack = string.sub(postStack, 2)
        else
            m.easyChangeStackCostLowerBoundErr = "After P or B start must be either 6d or D, other costs not implemented " .. m.easyChangeStackCostLowerBoundErr .. "\n" .. postStack
            -- additional cost 22 (a) ->S, changing 2nd -> (+6) SD (+3-a) back to desired (+13) removal of leading S
            -- additional cost +22 does not work for P as SP->P6d6P is not possible
            return
        end
    elseif string.sub(postStack, 1, 2) == "T6" then
        cost = cost + 21 -- is (3)S6d6->(+2)H6T6->(+8)H6T18T6->(+7)I16T6->(+1)T6 optimal (at least in our current moveset)
        postStack = string.sub(postStack, 3)
    else
        m.easyChangeStackCostLowerBoundErr = "Only P,B,S and T6 starts implemented " .. m.easyChangeStackCostLowerBoundErr
        return
    end
    for i = 1, string.len(postStack) do
        tmp = string.find("DPBS", string.sub(postStack, i, i)) or string.find("#", string.sub(postStack, i, i))
        if tmp then
            cost = cost + 5 + tmp
        else
            m.easyChangeStackCostLowerBoundErr = "Only D,B,P,S,# inner items implemented yet (" .. i .. ")=" .. string.sub(postStack, i, i) .. " " .. m.easyChangeStackCostLowerBoundErr
            return
        end
    end
    return cost
end

function m.triviCostLowerBound(postStack)
    if postStack == '' then
        return 0
    end
    local ret = m.easyChangeStackCostLowerBound('D', postStack)
    if ret then
        ret = (ret < 3) and 0 or ret - 3
    end
    return ret
end

function m.easyPreStackReductionLowerBound(preStack, postStack)
    --does not mind sending bit 1 at the end
    m.writeLog("easyPreStackReductionLowerBound(" .. preStack .. "," .. postStack .. ")")
    --postStack.len<2
    local baseStackLen = string.len(preStack)
    for i = 1, string.len(preStack) do
        if not string.find('#DPBS', string.sub(preStack, -i, -i)) then
            baseStackLen = i - 1
            break
        end
    end
    if baseStackLen > 0 then
        if string.sub(preStack, -baseStackLen - 1, -baseStackLen - 1) == "6" then
            local postCost
            if string.sub(preStack, -baseStackLen - 3, -baseStackLen - 1) == "6d6" then
                if baseStackLen >= 4 + string.len(postStack) and string.sub(preStack, -baseStackLen, -baseStackLen + 3) == "DBDS" then
                    postCost = 1 + ((baseStackLen == 4) and 0 or m.easyPreStackReductionLowerBound(string.sub(preStack, -baseStackLen + 4), postStack))
                end
                if baseStackLen >= 3 + string.len(postStack) and string.sub(preStack, -baseStackLen, -baseStackLen + 3) == "SPS" then
                    postCost = 1 + ((baseStackLen == 3) and 0 or m.easyPreStackReductionLowerBound(string.sub(preStack, -baseStackLen + 3), postStack))
                end
                if baseStackLen >= 3 + string.len(postStack) and string.sub(preStack, -baseStackLen, -baseStackLen + 3) == "DBD" then
                    postCost = 2 + ((baseStackLen == 3) and 0 or m.easyPreStackReductionLowerBound(string.sub(preStack, -baseStackLen + 3), postStack))
                end
                if postCost then
                    return m.easyPreStackReductionLowerBound(string.sub(preStack, 1, -baseStackLen - 4), 'B') + postCost
                end
                local preCost = m.easyPreStackReductionLowerBound(string.sub(preStack, 1, -baseStackLen - 4), 'S')
                return 1 + preCost + m.easyPreStackReductionLowerBound("PD" .. string.sub(preStack, -baseStackLen), postStack)
            end
            if baseStackLen >= 1 + string.len(postStack) and string.find('SD', string.sub(preStack, -baseStackLen, -baseStackLen)) then
                postCost = (baseStackLen == 1) and 0 or m.easyPreStackReductionLowerBound(string.sub(preStack, -baseStackLen + 1), postStack) -- '2' with extrabit program
            end
            if postCost then
                return m.easyPreStackReductionLowerBound(string.sub(preStack, 1, -baseStackLen - 2), 'B') + postCost
            end
        end
        local preCost = m.easyPreStackReductionLowerBound(string.sub(preStack, 1, -baseStackLen - 1), '')
        baseStackLen = baseStackLen - string.len(postStack)
        preCost = preCost + 3 * (baseStackLen // 5)
        baseStackLen = baseStackLen % 5
        return preCost + baseStackLen - ((baseStackLen == 4) and 1 or 0)
    end
    local nonBaseStackLen, nonDigits = string.len(preStack), 0
    for i = 1, string.len(preStack) do
        if string.find('#DPBS', string.sub(preStack, -i, -i)) then
            nonBaseStackLen = i - 1
            break
        end
        if string.find('HhTtId', string.sub(preStack, -i, -i)) then
            nonDigits = nonDigits + 1
        end
    end
    local preCost = 0
    if string.find('01', string.sub(preStack, 1, 1)) then
        nonDigits = nonDigits - 1
    end
    if nonBaseStackLen < string.len(preStack) then
        preCost = m.easyPreStackReductionLowerBound(string.sub(preStack, 1, -nonBaseStackLen - 1), '')
    end
    return preCost + nonDigits // 2
end

function m.easyChangeStackLowerBound(preStack, postStack)
    while string.len(preStack) > 2 and string.len(postStack) > 0 and string.sub(preStack, -1) == string.sub(postStack, -1)
            and string.find('#DPBS', string.sub(preStack, -2, -2)) do
        preStack, postStack = string.sub(preStack, 1, -2), string.sub(postStack, 1, -2)
    end
    local cost, tmp = 0
    tmp = string.find("DPBS", string.sub(preStack, -1)) or string.find("#", string.sub(preStack, -1))
    if not tmp then
        return 1000000003
    end
    while cost == 0 do
        m.writeLog("easyChangeStackLowerBound(" .. preStack .. "," .. postStack .. ") loop cost 0")
        if preStack == postStack then
            return 0
        end
        if postStack == "" then
            return m.easyPreStackReductionLowerBound(preStack, '')
        end
        if preStack == "" then
            return m.triviCostLowerBound(postStack)
        end
        cost = string.find("DPBS", string.sub(preStack, -1)) or string.find("#", string.sub(preStack, -1))
        if not cost then
            return m.triviCostLowerBound(postStack)
        end
        tmp = string.find("DPBS", string.sub(postStack, -1, -1))
        if string.sub(postStack, -1, -1) ~= '#' then
            if not tmp then
                return m.triviCostLowerBound(postStack)
            end
            cost = tmp - cost
        end
        if cost < 0 then
            return m.triviCostLowerBound(postStack)
        end
        postStack, preStack = string.sub(postStack, 1, -2), string.sub(preStack, 1, -2)
    end
    while string.sub(postStack, -1) == 'S' do
        m.writeLog("easyChangeStackLowerBound(" .. preStack .. "," .. postStack .. ") loop cost " .. cost)
        if preStack == "" then
            tmp = m.triviCostLowerBound(postStack)
            if tmp then
                tmp = tmp + cost
            end
            return tmp
        end
        tmp = string.find("SBPD", string.sub(preStack, -1, -1)) or string.find("#", string.sub(preStack, -1, -1))
        if not tmp then
            tmp = m.triviCostLowerBound(postStack)
            if tmp then
                tmp = tmp + cost
            end
            return tmp
        end
        cost = cost + tmp - 1
        postStack, preStack = string.sub(postStack, 1, -2), string.sub(preStack, 1, -2)
    end
    if postStack == "" then
        return cost + m.easyPreStackReductionLowerBound(preStack, '') - 1 --the extrabit could be usefull
    end
    tmp = m.easyChangeStackCost('S', postStack)
    if tmp then
        return m.easyPreStackReductionLowerBound(preStack, 'S') - 1 + tmp + cost
    else
        return
    end
end

function m.ignoreSuffixChangeStackCost(preStack, postStack)
    --calls Easy changeStackCost when reduced to easy case
    while string.len(preStack) > 2 and string.len(postStack) > 0 and string.sub(preStack, -1) == string.sub(postStack, -1)
            and string.find('#DPBS', string.sub(preStack, -2, -2)) do
        preStack, postStack = string.sub(preStack, 1, -2), string.sub(postStack, 1, -2)
    end
    local ret, est = m.easyChangeStackCost(preStack, postStack), m.easyChangeStackLowerBound(preStack, postStack)
    if est then
        -- safety correction for D->S payment when D is actually destroyed
        est = est - 3
        if est < 1 then
            est = 1
            if preStack == postStack then
                est = 0
            end
        end
    else
        est=1
    end
    if ret then
        m.writeLog("ignoreSuffixChangeStackCost(" .. preStack .. "," .. postStack .. ")=" .. ret .. "," .. est, 1)
    elseif est then
        m.writeLog("ignoreSuffixChangeStackCost(" .. preStack .. "," .. postStack .. ")=nil," .. est, 1)
    end
    return ret, est
end

function m.getEasyTBits(preStack, postStack)
    --was earlier evaluated as ignoreSuffixChangeStackCost"easy"
    m.writeLog("getEasyTBits(" .. preStack .. "," .. postStack .. ")")
    while string.len(preStack) > 2 and string.len(postStack) > 0 and string.sub(preStack, -1) == string.sub(postStack, -1)
            and string.find('#DPBS', string.sub(preStack, -2, -2)) do
        preStack, postStack = string.sub(preStack, 1, -2), string.sub(postStack, 1, -2)
        m.writeLog("getEasyTBits shortening stacks (" .. preStack .. "," .. postStack .. ")", -1)
    end
    m.writeLog("getEasyTBits easy(" .. preStack .. "," .. postStack .. ")")
    if preStack == postStack then
        return ''
    end
    local errExt = '[' .. preStack .. ']>[' .. postStack .. ']'
    if postStack == '' then
        if string.sub(preStack, -4) == "BDBD" then
            m.writeLog("getEasyTBits easy [..BDBD]>[]")
            local fail = string.sub(preStack, 1, 1) ~= "B"
            for i = 2, string.len(preStack) - 4 do
                if string.sub(preStack, i, i) ~= 'D' then
                    m.writeLog("getEasyTBits easy [BD*BDBD]>[] failed at " .. i)
                    fail = true
                    break
                end
            end
            if fail then
                return '(fail .. Reducig stack implemented only for exceptions ' .. errExt .. ')'
            end
            m.writeLog("getEasyTBits easy  [BD*BDBD]>[] exception detected", 2)
            local ret = ''
            for i = 2, string.len(preStack) - 4 do
                ret = ret .. '21'
            end --[BBDBD] or [BDBD]
            if string.len(preStack) == 4 then
                ret = '1' -- = ret..'1' [BDBD]->[SDBD]
            else
                ret = ret .. '2' -- [BBDBD]->[SDBD]
            end
            return ret + '2121' -- [SDBD] ->(+1) [P6d6DBD]->(+1) [B6D6DBD] -> (+2) []
        end
    elseif string.len(postStack) == 1 and string.len(preStack) > 1 then
        m.writeLog("getEasyTBits easy [BD*]>[#+1]")
        local tmp = string.find('PBS', postStack) or string.find('PB1', postStack)
        if tmp then
            local fail = string.sub(preStack, 1, 1) ~= "B"
            for i = 2, string.len(preStack) do
                if string.sub(preStack, i, i) ~= 'D' then
                    m.writeLog("getEasyTBits easy [BD*]>[#+1] failed at " .. i)
                    fail = true
                    break
                end
            end
            if not fail then
                m.writeLog("getEasyTBits easy [BD*]>[#+1] exception detected", 2)
                local ret = ''
                for i = 3, string.len(preStack) do
                    ret = ret .. '21'
                end --[BD]
                if postStack=='1' then
                    return ret..'212'
                else
                    return ret..string.sub('211',1,tmp)
                end
                return ret
            end
        end
    end
    local tmp = string.find("DPBS", string.sub(preStack, -1)) or string.find("#", string.sub(preStack, -1))
    if not tmp then
        return '(fail preStack should have #DPBS on bottom! ' .. errExt .. ')'
    end
    if preStack == '' then
        return '(fail preStack cannot be empty ' .. errExt .. ')'
    end
    if string.len(preStack) > 2 then
        return '(fail Reducing stack implemented only for exceptions ' .. errExt .. ')'
    end
    if string.len(postStack) < string.len(preStack) then
        return '(fail Shortening implemented only for exceptions ' .. errExt .. ')'
    end
    local ret = ''
    if string.len(preStack) == 2 then
        local cost = string.find("SBPD", string.sub(preStack, -1)) or string.find("SBP#", string.sub(preStack, -1))
        if not cost then
            return '(fail Only D,P,B,S,# on starting positions implemented ' .. errExt .. ')'
        end
        tmp = string.find("SBPD", string.sub(postStack, -1)) or string.find("SBP#", string.sub(postStack, -1))
        if not tmp then
            return '(fail Only D,P,B,S,# at end of postStack when preStack.len==2 on starting positions implemented ' .. errExt .. ')'
        end
        if cost < tmp then
            return '(fail when preStack.len==2, end of postStack must be on D->P->B->S from end of preStack ' .. errExt .. ')'
        end
        if tmp == 3 then
            if string.sub(postStack, -2, -2) ~= 'S' or cost == 0 then
                return '(fail implemented P only as a part of SP at end of postStack when preStack.len==2 and prestack does not end on P ' .. errExt .. ')'
            end -- SP->XSP ???
            tmp = 4
            postStack = string.sub(postStack, 1, -3) .. 'ED'
        end
        if cost == 4 then
            ret = ret .. string.sub(postStack, -1)
        else
            ret = ret .. string.sub('1111', tmp + 1, cost)
            if string.sub(postStack, -1) == '#' then
                ret = ret .. '#'
            end
        end
        preStack = string.sub(preStack, 1, -2)
        postStack = string.sub(postStack, 1, -2)
    end
    tmp = string.find("SBPD", preStack) or string.find("SBP#", preStack)
    if not tmp then
        return '(fail Only D,P,B,S,# starting positions implemented ' .. errExt .. ')'
    end
    if string.len(postStack) == 1 then
        if ret ~= '' then
            if postStack ~= "S" then
                return '(fail when preStack.len==2, postStack.len==2 last item differ, implemented only for postStack starting S ' .. errExt .. ')'
            end
        else
            local cost = tmp + 1
            tmp = string.find("ESBPD", postStack) or string.find("ESBP#", postStack)
            if not tmp then
                return '(fail when preStack.len==postStack.len<=2 where only first item differs implemented only for postStack starting B,S,P,D ' .. errExt .. ')'
            end
            cost = cost - tmp
            if cost < 0 then
                return '(fail not implemented for short stacks where shift not consistent with D->P->B->S ' .. errExt .. ')'
            end
            ret = ret .. string.sub('11111', tmp + 1, cost)
            if postStack == '#' then
                ret = ret .. '#'
            end --'#' will be templated by 1 so order among 1* does not mater
            return ret
        end
    end
    ret = string.sub('1111', 2, tmp) .. ret --[S]..[S]->postStack portion remains
    m.writeLog("getEasyTBits " .. ret .. "..easy (S," .. postStack .. ")")
    tmp = string.find("PBS", string.sub(postStack, 1, 1))
    local endRet = ''
    if string.sub(postStack, 2, 4) == "6d6" then
        if not tmp then
            return '(fail Only P,B,S predecessors of 6d6 implemented ' .. errExt .. ')'
        end
        if string.sub(postStack, 5, 5) == "P" then
            return '(fail #6d6P* not implemented ' .. errExt .. ')'
        end
        endRet = string.sub('211', 1, tmp)
        postStack = 'S' .. string.sub(postStack, 5)
    elseif tmp then
        if not (string.sub(postStack, 2, 2) == 'D' or tmp == 3) then
            return '(fail After P or B start must be either 6d or D, other cases not implemented ' .. errExt .. ')'
        end
    elseif string.sub(postStack, 1, 2) == "T6" then
        local cost = string.find('PBSE', string.sub(postStack, 3, 3))
        if cost == 0 then
            return '(fail T6P* not implemented ' .. errExt .. ')'
        end
        endRet = '211' .. '12' .. '11111112' .. '1112112' .. '' .. '1' --[S]{_,7D,7B,7S}->[S6d6]{_,3D,3B,3S}->[H6T6]->[H6T18T6]->[1T18T6]->[I16T6]->[T6]
        postStack = 'S' .. string.sub(postStack, 3)
    else
        return '(fail Only P,B,S and T6 starts implemented ' .. errExt .. ')'
    end
    m.writeLog("getEasyTBits " .. ret .. "..easy (S," .. postStack .. ").." .. endRet)
    local template
    while string.len(postStack) > 1 do
        template = string.sub(postStack, -1)
        postStack = string.sub(postStack, 1, -2)
        local cost = string.find("DPBSE", template) or string.find("#", template)
        if cost then
            if cost == 2 then
                cost = 1
                if string.sub(postStack, -1) ~= 'S' then
                    return '(fail P allowed only at start or after S ' .. errExt .. ')'
                end
                template = 'D'
                postStack = string.sub(postStack, 1, -2) .. 'E'
            end
            --[[ret=ret..string.sub('2112111111',1,cost+5)
        if template=='#' then
          ret=ret.."#"
        end--]]
            ret = ret .. '211211' .. template
        else
            return '(fail Only D,B,S,SP,# inner items implemented ' .. errExt .. ')'
        end
    end
    m.writeLog("getEasyTBits " .. ret .. "..easy (S," .. postStack .. ").." .. endRet)
    if postStack ~= 'S' then
        -- no bits to create S and convert template .. we know template =="D" -- tested
        -- (SP case become ED what is compatible)
        ret = string.sub(ret, 1, -4) --(-3-"template")
        local tmp = string.find('PBSE', postStack) --if template == 'D', it would work even for 'S' or 'E'
        ret = ret .. string.sub('1111', 2, tmp)
    end
    m.writeLog("getEasyTBits " .. ret .. endRet)
    return ret .. endRet
end

function m.templatingCost(startSubstedStack, numStartPreSubstStackTemplates)
    m.writeLog("templatingCost(startSubstedStack " .. (startSubstedStack or "nil") .. ",numStartPreSubstStackTemplates " .. (numStartPreSubstStackTemplates or "nil"))
    local ret, rem = 0, 0
    for i = 1, numStartPreSubstStackTemplates do
        local char, cost = string.sub(startSubstedStack, -i, -i)
        if char == '#' then
            rem = rem + 1
        else
            ret = ret + string.find('DPBS', char) - 1--there cannot be other options
        end
    end
    return ret, rem
end

m.results = {} --cache to gradually speed up
function m.changeStackCosts(startPreSubstStack, targetStack)

    local function searchChangeStackCosts(preEasyStack, targetStack)
        --returns table. when there are templates in postStack, the table contains prestacks compatible with the pattern and their costs
        --the prestacks are given as most general as possible,
        m.searchStartTime = g.millisecs()
        m.writeLog('searchChangeStackCosts(' .. preEasyStack .. "," .. targetStack .. ')', 3)
        local numStartPreSubstStackTemplates, bestCost = 0

        --local function bestCostUpdate(oriPreStack,cost,move) obsolete
        local function bestCostUpdate(cost, startSubstedStack, preEasyStack, preEasyBits)
            local tCost, tRem = m.templatingCost(startSubstedStack, numStartPreSubstStackTemplates)
            local sCost = cost + tCost
            if not bestCost then
                bestCost = { sCost, startSubstedStack, preEasyStack, tCost, preEasyBits }
                m.writeLog("Setting bestCost " .. startSubstedStack .. "(" .. cost .. ")->" .. sCost, 4)
            elseif bestCost[1] > sCost then
                m.writeLog("Decreasing bestCost " .. startSubstedStack .. "(" .. cost .. ")->" .. sCost, 4)
                bestCost = { sCost, startSubstedStack, preEasyStack, tCost, preEasyBits }
            elseif bestCost[1] == sCost then
                local oTCost, oTRem = m.templatingCost(bestCost[2], numStartPreSubstStackTemplates)
                if oTRem < tRem then
                    --just personal preferences
                    bestCost = { sCost, startSubstedStack, preEasyStack, tCost, preEasyBits }
                    m.writeLog("Updating bestCost " .. startSubstedStack .. "(" .. cost .. ")->" .. sCost, 4)
                end
            end
        end

        local function getBestCost(startSubstedStack)
            if not bestCost then
                return nil
            end
            local tCost = m.templatingCost(startSubstedStack, numStartPreSubstStackTemplates)
            return bestCost[1] - tCost
        end
        --
        bestCostUpdate(1000000000, preEasyStack, preEasyStack, '') --emergency returned value

        local cost = m.ignoreSuffixChangeStackCost(preEasyStack, targetStack)
        if cost then
            m.writeLog(' no search needed')
            bestCostUpdate(cost, preEasyStack, preEasyStack, '')
            return bestCost
        else
            m.writeLog(' search needed')
        end

        --conjecture ... D is cheaper # to both build and destroy so let us convert trailing # to D at the start.
        -- if we could access bottom under S*, we could with no additional cost convert D* to such S*
        --^ could be wrong in several cases. T6 requires S o be destroyable, wen we need to get rid of stack entirely
        -- BDBD at the end helps, but often we are happy eliminating the stack and emitting an extraBIt so DDDD is fine
        -- d6 requires DD
        local posRight -- will be the leftest template position matching postStack (indexed from bottom)
        local startSubstedStack = preEasyStack
        numStartPreSubstStackTemplates = string.len(startSubstedStack)
        for j = 1, string.len(startSubstedStack) do
            if string.sub(startSubstedStack, -j, -j) ~= '#' then
                numStartPreSubstStackTemplates = (j - 1)
                break
            elseif posRight then
                startSubstedStack = string.sub(startSubstedStack, 1, -j - 1) .. 'D' .. string.sub(startSubstedStack, -j + 1, j == 1 and 0 or -1)
            elseif j > string.len(targetStack) or not string.find('DBPS#', string.sub(targetStack, -j, -j)) then
                -- all P's in expected targets are either first or preceded by S
                posRight = j - 1
                startSubstedStack = string.sub(startSubstedStack, 1, -j - 1) .. 'D' .. string.sub(startSubstedStack, -j + 1, j == 1 and 0 or -1)
            elseif string.sub(targetStack, -j, -j) ~= '#' then
                startSubstedStack = string.sub(startSubstedStack, 1, -j - 1) .. string.sub(targetStack, -j, -j) .. string.sub(startSubstedStack, -j + 1, j == 1 and 0 or -1)
            end
        end
        posRight = not posRight and numStartPreSubstStackTemplates or posRight
        m.writeLog("numPreStackTemplates=" .. (numStartPreSubstStackTemplates or "nil") .. ", posRight=" .. (posRight or "nil"), 1)
        -- if posRight < TargetStack.len we should reduce the prefix to 'S' and we can set the next # from D afterwards
        -- if posRight == TargetStack.len, we should destroy prefix entirely, but extraBit could be used if TargetStack "suffix" does not start with D
        -- (but expected targets does not start with D (or #) so D* is fine here as well, but we have to create alternative extraBit expecting "target"
        -- exception is on the end of recepie where TargetStack.len==0 could happen and in that case extraBit could be forbidden ... hmm,
        -- but there would probably be T or t under bottom to be destroyed so extraBit would probably be welcomed (and targetSTack would be "1")
        local posLeft = numStartPreSubstStackTemplates --leftmost available to change
        if posLeft > 0 then
            if (string.sub(startSubstedStack, -posLeft - 2, -posLeft - 1) == "T6"
                    or string.sub(startSubstedStack, -posLeft - 2, -posLeft - 1) == "I4") then
                startSubstedStack = string.sub(startSubstedStack, 1, -posLeft - 1) .. 'S' .. string.sub(startSubstedStack, -posLeft + 1, posLeft == 1 and 0 or -1)
                m.writeLog("T6S/I4S forcing case", 1)
                posLeft = posLeft - 1
            end
        end
        if posRight > posLeft then
            posRight = posLeft
        end
        if posRight > 0 then
            startSubstedStack = string.sub(startSubstedStack, 1, -posRight - 1) .. 'D' .. string.sub(startSubstedStack, -posRight + 1, posRight == 1 and 0 or -1)
        end

        local trieQueue, trieQueueLastInd, trieQueueFirstInd -- increasing IndicesFirst mod trieNodeCount empty when trieQueueLastInd==trieQueueFirstInd,
        trieQueue, trieQueueLastInd, trieQueueFirstInd = {}, 0, 0

        local function trieQueuePush(trieNode)
            if trieNode then
                --allowing push(nil) doing nothing
                trieQueueLastInd = trieQueueLastInd + 1
                if trieQueueLastInd > m.trieNodeCount then
                    trieQueueLastInd = 1
                end
                trieQueue[trieQueueLastInd] = trieNode
            else
                m.writeLog("trieQueuePush(nil)", -2)
            end
        end

        local function trieQueuePull()
            if trieQueueFirstInd == trieQueueLastInd then
                return
            end
            trieQueueFirstInd = trieQueueFirstInd + 1
            if trieQueueFirstInd > m.trieNodeCount then
                trieQueueFirstInd = 1
            end
            local trieNode = trieQueue[trieQueueFirstInd]
            trieQueue[trieQueueFirstInd] = nil
            return trieNode
        end

        local extraBit, preStackLen, edgeBitLimit
        local function nextOutGoingEdge()
            m.writeLog("  NextOutGoingEdge", -1)
            local trieNode = trieQueuePull()
            while trieNode do
                if edgeBitLimit and trieNode.minBitLen >= edgeBitLimit then
                    -- extraBit should be included in edgeBitLimit
                    m.writeLog("trieBranch discarded ... minBitLen " .. trieNode.minBitLen .. ">=" .. edgeBitLimit)
                elseif trieNode.minPreStackLen > preStackLen then
                    m.writeLog("trieBranch discarded ... minPreStackLen " .. trieNode.minPreStackLen .. ">" .. preStackLen)
                else
                    -- trieQueuePush(trieNode[0]) used only at root with extraBit
                    m.writeLog("  NextOutGoingEdge push[1]", -2);
                    trieQueuePush(trieNode[1])
                    m.writeLog("  NextOutGoingEdge push[2]", -2);
                    trieQueuePush(trieNode[2])
                    if trieNode.moveConds then
                        m.writeLog("  NextOutGoingEdge #moves=" .. #trieNode.moveConds)
                        return trieNode.moveConds
                    end
                end
                trieNode = trieQueuePull()
            end
            return
        end

        local function firstOutGoingEdge(preStack)
            m.writeLog("  FirstOutgoingEdge " .. preStack, -1)
            extraBit = nil
            if preStack == "" then
                return
            end
            local first = string.sub(preStack, 1, 1)
            if string.find('01', first) then
                preStack = string.sub(preStack, 2)
                if preStack == "" then
                    return
                end
                extraBit = first + 0
                first = (first == "1") and string.sub(preStack, 1, 1) or first
            end
            if first == '#' then
                -- can reach other substitutes by 1* in the minimal cost, but not in 0 extraBitCase so '0' trie created
                first = 'D'
            end
            preStackLen = string.len(preStack)
            local trieNode = m.tries[first]
            if extraBit == 1 then
                -- we have not added extra level to trie['0']
                trieNode = trieNode[extraBit]
            end
            trieQueuePush(trieNode)
            return nextOutGoingEdge()
        end

        local queue, queueCurrentEstCost, queueMaxEstCost, queueCurrentEstCostInd = {}, -1, 0, 0
        local queueFilter = {}

        local function queueEmpty()
            m.writeLog("queueEmpty? " .. queueCurrentEstCost .. " " .. queueCurrentEstCostInd .. " " .. queueMaxEstCost, -1)
            if queueCurrentEstCost < 0 then
                return true
            end
            if queueCurrentEstCost < queueMaxEstCost then
                return false
            end
            if queueCurrentEstCostInd == #queue[queueMaxEstCost] then
                queue[queueMaxEstCost], queueCurrentEstCost, queueMaxEstCost, queueCurrentEstCostInd = nil, -1, 0, 0
                return true
            end
            return false
        end

        local function queuePush(startSubstedPreStack, preEasyStack, preEasyBits, est)
            local processed = queueFilter[startSubstedPreStack .. ">" .. preEasyStack]
            if processed and processed <= string.len(preEasyBits) then
                return
            end
            queueFilter[startSubstedPreStack .. ">" .. preEasyStack] = string.len(preEasyBits)
            est = not est and 0 or est
            local costEst = string.len(preEasyBits) + est
            if not queue[costEst] then
                queue[costEst] = {}
            end
            queue[costEst][1 + #queue[costEst]] = { startSubstedPreStack, preEasyStack, preEasyBits }
            if queueCurrentEstCost > costEst then
                queueCurrentEstCost, queueCurrentEstCostInd = costEst, 0
            elseif queueCurrentEstCost < 0 then
                queueCurrentEstCost = 0 --nonempty mark
            end
            if queueMaxEstCost < costEst then
                queueMaxEstCost = costEst
            end
        end

        local function queuePop()
            --nonEmpty was ensured
            if not queue[queueCurrentEstCost] then
                queueCurrentEstCostInd = 0
            end
            while not queue[queueCurrentEstCost] do
                queueCurrentEstCost = 1 + queueCurrentEstCost
            end
            queueCurrentEstCostInd = 1 + queueCurrentEstCostInd
            if queueCurrentEstCostInd > #queue[queueCurrentEstCost] then
                queue[queueCurrentEstCost] = nil
                queueCurrentEstCostInd = 1
                while not queue[queueCurrentEstCost] do
                    queueCurrentEstCost = 1 + queueCurrentEstCost
                end
            end
            local node = queue[queueCurrentEstCost][queueCurrentEstCostInd]
            return node[1], node[2], node[3]
        end

        local function extStack(pre, stack, post)
            m.writeLog("   extStack(" .. pre .. "," .. stack .. "," .. post .. ")")
            if string.find('01', string.sub(stack, 1, 1)) then
                -- extrabit
                pre, stack = string.sub(stack, 1, 1) .. pre, string.sub(stack, 2)
            end
            stack = pre .. stack
            if stack ~= "" and string.find('TtIHhBPdDS#', string.sub(stack, -1)) then
                return stack .. post
            else
                local postPos = string.find(post, '[TtIHhBPdDS#]')
                if postPos then
                    local postDist = string.sub(post, 1, postPos - 1)
                    postDist = ((postDist == "") and "8" or postDist)
                    local start, dist = string.match('H' .. stack, '(.*[TtIHhBPdDS#])(.*)')
                    start = string.sub(start, 2)
                    m.writeLog("   extStack start, dist, postDist " .. start .. "," .. dist .. "," .. postDist .. "(" .. postPos .. ")")
                    if start == "" then
                        return dist .. string.sub(post, postPos) --dist is actually extrabit (or empty)
                    else
                        dist = (dist == "") and 0 or dist
                        if dist + postDist == 8 then
                            return start .. string.sub(post, postPos)
                        end
                        return start .. m.inttostring(dist + postDist) .. string.sub(post, postPos)
                    end
                else
                    return stack
                end
            end
        end

        local function getCompatible(mPreStack, preEasyStack, mPostStack, startSubstedStack, conds)
            --{{extPreStack, extPostStack, oriPreStack}}
            m.writeLog("getCompatible(" .. mPreStack .. "," .. preEasyStack .. "," .. mPostStack .. "," .. startSubstedStack .. "," .. m.conditionsToString(conds) .. ")")
            local numConcretized = 0
            if extraBit then
                preEasyStack = string.sub(preEasyStack, 2)
            end
            local ret = {}
            if string.len(mPreStack) > string.len(preEasyStack) then
                m.writeLog(" string.len(mPreStack)>string.len(preStack)")
                return ret
            end
            local hIdSkip, offs, fail = string.sub(conds[1], 1, 1), 0
            local cdist = string.sub(conds[1], 2)
            cdist = (cdist == "") and "0" or cdist -- if conds[1] not empty than odd
            cdist = 0 + cdist
            fail = false
            if hIdSkip ~= "" then
                local pos = string.find(preEasyStack, '[' .. string.gsub('TtIHhBPdDS', hIdSkip, '') .. ']', offs + 1)
                if not pos then
                    m.writeLog(" everything skipped " .. hIdSkip)
                    return ret
                end
                offs = pos - 1
                if offs > 0 then
                    local pre, dist = string.match(hIdSkip .. string.sub(preEasyStack, 1, offs), '(.*' .. hIdSkip .. ')(.*)')
                    dist = (dist == "") and "8" or dist
                    dist = 0 + dist
                    fail = dist < cdist
                    if fail then
                        m.writeLog("  fail:small distance from hIdskip " .. dist .. "<" .. cdist)
                    end
                end
            end
            if string.len(mPreStack) + offs > string.len(preEasyStack) then
                m.writeLog(" string.len(mPreStack)+offs>string.len(preStack)")
                return ret
            end
            if not fail then
                for i = 1, string.len(mPreStack) do
                    if string.sub(mPreStack, i, i) ~= string.sub(preEasyStack, i + offs, i + offs) then
                        if not string.find('DPBS', string.sub(mPreStack, i, i)) or string.sub(preEasyStack, i + offs, i + offs) ~= "#" then
                            m.writeLog(" fail:not match at positions " .. i .. "," .. i + offs .. ":" .. string.sub(mPreStack, i, i) .. "?" .. string.sub(preEasyStack, i + offs, i + offs))
                            fail = true
                            break
                        else
                            preEasyStack = string.sub(preEasyStack, 1, i + offs - 1) .. string.sub(mPreStack, i, i) .. string.sub(preEasyStack, i + offs + 1)
                        end
                    end
                end
            end
            if not fail then
                local condsToTest, pos, endPos, pos2, endPos2, dist2, hId2 = {}, 1 + offs + string.len(mPreStack) --mPreStack ends by an hId !!!
                condsToTest["_"] = ""
                if pos <= string.len(preEasyStack) then
                    endPos = string.find(string.sub(preEasyStack, pos), '[TtIHhBPdDS#]')
                    if endPos then
                        endPos=endPos+pos-1
                        local hId = string.sub(preEasyStack,endPos, endPos)
                        condsToTest["_"] = nil
                        local dist = string.sub(preEasyStack,pos, endPos - 1)
                        dist = (dist == "" and "8") or dist
                        condsToTest[hId] = dist
                        m.writeLog(" condToTest " .. hId .. "," .. dist .. "(" .. endPos .. ")")
                        pos2 = 1 + endPos
                        if pos2 < string.len(preEasyStack) then
                            endPos2 = string.find(string.sub(preEasyStack, pos2), '[TtIHhBPdDS#]')
                            if endPos2 then
                                endPos2=endPos2+pos2-1
                                hId2 = string.sub(preEasyStack, endPos2, endPos2)
                                dist2 = string.sub(preEasyStack, pos2, endPos2 - 1)
                                dist2 = (dist2 == "" and "8") or dist2
                                dist2 = dist2 + dist
                                m.writeLog(" condToTest " .. hId .. "," .. dist .. "(" .. endPos .. ")"..hId2..","..dist2.."("..endPos2..")")
                            end
                        end
                        --actually we have very rarely to check 2nd item dist as well (I4S2I...{I7} condition)
                        --I bet the use of the StackChangeCost caused by prevPostStack->requiredPreStack
                        --will never generate this case ... so I leave it this simplified way till it is really required
                        --proving it is not necessary is another option :)
                    end
                    if condsToTest['#'] then
                        condsToTest['D'] = condsToTest['#']
                        condsToTest['B'] = condsToTest['#']
                        condsToTest['S'] = condsToTest['#']
                        condsToTest['#'] = nil
                    end
                end
                local OK, KO, hId2OK, dist2OK, dist2HashOK = {}, {}, true, true, true
                for i = 1, #conds[2] do
                    local hId = string.sub(conds[2][i], -1)
                    m.writeLog("  condition " .. conds[2][i] .. "," .. hId)
                    local dist = condsToTest[hId]
                    if hId~='_' then
                        cdist  = string.sub(conds[2][i], 1, -2)
                        cdist = (cdist == "" and "8") or cdist
                        cdist = cdist + 0
                        if cdist % 2 == 1 then
                            if dist2 and cdist > dist2 then
                                dist2OK=false
                                if string.find('DBS',hId) then
                                    dist2HashOK=false
                                end
                                if hId==hId2 then
                                    hId2OK=false
                                end
                            end
                        end
                    end
                    if dist then
                        if dist == "" then
                            OK[#OK + 1] = hId
                            m.writeLog(" condition " .. hId .. "," .. dist .. " OK")
                        else
                            dist = dist + 0
                            if cdist % 2 == 1 then
                                if cdist < dist then
                                    OK[#OK + 1] = hId
                                    m.writeLog(" condition " .. hId .. "," .. dist .. "(" .. cdist .. ")" .. " OK")
                                else
                                    KO[#KO + 1] = hId
                                    m.writeLog(" condition " .. hId .. "," .. dist .. "(" .. cdist .. ")" .. " KO")
                                end
                            else
                                if cdist == dist then
                                    OK[#OK + 1] = hId
                                    m.writeLog(" condition " .. hId .. "," .. dist .. "(" .. cdist .. ")" .. " OK")
                                else
                                    KO[#KO + 1] = hId
                                    m.writeLog(" condition " .. hId .. "," .. dist .. "(" .. cdist .. ")" .. " KO")
                                end
                            end
                        end
                        condsToTest[hId] = nil
                    end
                end
                for hId, dist in pairs(condsToTest) do
                    KO[#KO + 1] = hId
                    m.writeLog(" condition " .. hId .. "," .. dist .. " KO (missed)")
                end
                if #OK == 0 then
                    m.writeLog(' all suffix tests failed')
                else
                    for i = 1, #OK do
                        if #KO > 0 then
                            -- template needs further specification
                            preEasyStack = string.sub(preEasyStack, 1, endPos - 1) .. OK[i] .. string.sub(preEasyStack, 1 + endPos)
                        elseif i > 1 then
                            m.writeLog("  all template suffixes work well so template remains unchanged")
                            break
                        end
                        local extpre, extpost, mStartSubstedStack = string.sub(preEasyStack, 1, offs), string.sub(preEasyStack, pos), startSubstedStack
                        local extPostStack = extStack(extpre, mPostStack, extpost)
                        m.writeLog('  extPostStack=' .. extPostStack)
                        for j = 1, string.len(preEasyStack) do
                            if j > string.len(startSubstedStack) then
                                break
                            end
                            if string.sub(startSubstedStack, -j, -j) == '#' and string.sub(preEasyStack, -j, -j) ~= '#' then
                                mStartSubstedStack = string.sub(mStartSubstedStack, 1, -j - 1) .. string.sub(preEasyStack, -j, -j) .. string.sub(mStartSubstedStack, -j + 1, j == 1 and 0 or -1)
                                numConcretized = numConcretized + 1
                            end
                        end
                        if dist2OK then
                            ret[#ret + 1] = { preEasyStack, extPostStack, mStartSubstedStack }
                            m.writeLog(" getCompatible new result:" .. extPostStack .. "," .. preEasyStack .. "," .. mStartSubstedStack, 3)
                        elseif not hId2OK then
                            m.writeLog(" getCompatible 2nd stack Item "..hId2.." blocks", 3)
                        elseif hId2=='#' and dist2HashOK then
                            ret[#ret + 1] = { preEasyStack, extPostStack, mStartSubstedStack }
                            m.writeLog(" getCompatible new result (2 stack items case):" .. extPostStack .. "," .. preEasyStack .. "," .. mStartSubstedStack, 3)
                        elseif hId2=='#' then
                            --we have to try possible cases, but in our current moveset only {:_,21T,19t,19I,23H,25h,21B,23P,21d,21D,5S} matches with result 'S'
                            --oops it does not occur in stack->stack portion but only in emissions so it is just never needed part of code
                            preEasyStack = string.sub(preEasyStack, 1, endPos2 - 1) .. 'S' .. string.sub(preEasyStack, endPos2 + 1)
                            ret[#ret + 1] = { preEasyStack, extPostStack, mStartSubstedStack }
                            m.writeLog(" getCompatible new result (SS case):" .. extPostStack .. "," .. preEasyStack .. "," .. mStartSubstedStack, 3)
                        end
                        -- I hope we never have to test 3 top stack items
                    end
                end
            end
            return ret
        end

        local preEasyBits, preEasyStack = '', startSubstedStack
        queueCurrentEstCost, queueMaxEstCost, queueCurrentEstCostInd, queueFilter = -1, 0, 0, {}
        do
            local cost, est = m.ignoreSuffixChangeStackCost(preEasyStack, targetStack)
            if cost then
                m.writeLog(" StartBestCost  [" .. preEasyStack .. "]+" .. cost .. "[" .. targetStack .. "]", 4)
                bestCostUpdate(cost, startSubstedStack, preEasyStack, preEasyBits)
            else
                queuePush(startSubstedStack, preEasyStack, preEasyBits, est)
            end
        end
        while not queueEmpty() do
            startSubstedStack, preEasyStack, preEasyBits = queuePop()
            m.writeLog("Search [" .. preEasyStack .. "]" .. preEasyBits .. "[" .. startSubstedStack .. "][" .. targetStack .. "]", 3)
            local best, fail = getBestCost(startSubstedStack)
            edgeBitLimit = nil
            if best then
                edgeBitLimit = best - string.len(preEasyBits) + ((not extraBit) and 0 or 1)
                fail = edgeBitLimit <= 0
                if not fail then
                    local cost, est = m.ignoreSuffixChangeStackCost(preEasyStack, targetStack)
                    -- non null cost would prevent push as well as best test in that time, but best could have improved
                    fail = edgeBitLimit <= est
                end
            end
            if not fail then
                local moveConds = firstOutGoingEdge(preEasyStack)
                while moveConds do
                    for i = 1, #moveConds do
                        m.writeLog(" " .. preEasyStack .. ">" .. moveConds[i])
                        local mBits, move, conds, mPreStack, mPostStack = m.parseMove(moveConds[i])
                        if extraBit then
                            if 0 + string.sub(mBits, 1, 1) ~= extraBit then
                                m.writeLog("something wrong not matched extraBit " .. extraBit .. "?" .. mBits, 10)
                            else
                                mBits = string.sub(mBits, 2)
                            end
                        end
                        if string.find(mBits, '0') then
                            m.writeLog(" bit 0 can be used only as extraBit ... this cannot happen", 10)
                            break -- all moves in moveConds has same bits
                        end
                        local stacks = getCompatible(mPreStack, preEasyStack, mPostStack, startSubstedStack, conds) --{{extPreStack, extPostStack, oriPreStack}}
                        for j = 1, #stacks do
                            best = getBestCost(stacks[j][3])
                            if not best or best > string.len(preEasyBits) + string.len(mBits) then
                                local cost, est = m.ignoreSuffixChangeStackCost(stacks[j][2], targetStack)
                                if cost then
                                    m.writeLog(" cost  [" .. stacks[j][3] .. "]" .. preEasyBits .. mBits .. "[" .. stacks[j][2] .. "]+" .. cost .. "[" .. targetStack .. "]", 1)
                                    if not best or best > string.len(preEasyBits) + string.len(mBits) + cost then
                                        bestCostUpdate(string.len(preEasyBits) + string.len(mBits) + cost, stacks[j][3], stacks[j][2], preEasyBits .. mBits)
                                    end
                                else
                                    if est then
                                        if not best or best > string.len(preEasyBits) + string.len(mBits) + est then
                                            m.writeLog("       [" .. stacks[j][3] .. "]" .. preEasyBits .. mBits .. "+>" .. est .. "[" .. stacks[j][2] .. "]>?>[" .. targetStack .. "]", 1)
                                            queuePush(stacks[j][3], stacks[j][2], preEasyBits .. mBits, est)
                                        end
                                    else
                                        m.writeLog("       [" .. stacks[j][3] .. "]" .. preEasyBits .. mBits .. "[" .. stacks[j][2] .. "]>?>[" .. targetStack .. "]", 1)
                                        queuePush(stacks[j][3], stacks[j][2], preEasyBits .. mBits, est)
                                    end
                                end
                            end
                        end
                    end
                    moveConds = nextOutGoingEdge()
                end
            end
        end
        return bestCost
    end

    if not m.results[startPreSubstStack .. ">" .. targetStack] then
        m.results[startPreSubstStack .. ">" .. targetStack] = searchChangeStackCosts(startPreSubstStack, targetStack)
    end
    return m.results[startPreSubstStack .. ">" .. targetStack]
end

return m

Code: Select all

local g = golly()
g.autoupdate(true)
g.show("Init")
local startTime = g.millisecs()
local sd = require "StackChangeCost"

local levelFileName = "c:\\Golly\\Levels.txt"
local moveCondsFileName = "c:\\Golly\\QuarkCondBitSequences.txt"
local resultOutputFileName = "c:\\Golly\\FixedBottomGliderLevelsToBitsResult.txt"
local easyFilledOutputFileName = "c:\\Golly\\FixedBottomGliderLevelsToBitsResultE.txt"
local templateFixedOutputFileName = "c:\\Golly\\FixedBottomGliderLevelsToBitsResultFT.txt"

local log = io.open("c:\\Golly\\FixedBottomGliderLevelsToBitslog.txt", "w")
local logLevel = 0

local function inttostring(num)
    return string.sub(num, 1, string.find(num .. ".", "%.") - 1)
end

local function writeLog(msg, level)
    local time = g.millisecs()
    if log and ((not level and logLevel <= 0) or (level and level >= logLevel)) then
        log:write(string.sub("        " .. inttostring(time - startTime), -8) .. "ms " .. msg .. "\n")
    end
end

--[[
writeLog("StackCostTest easyChangeStackCost('SB','B6d6DSDDDSS')="..sd.easyChangeStackCost('SB','B6d6DSDDDSS'),-2)
local cSC
cSC=sd.changeStackCosts('####','1')
writeLog("StackCostTest changeStackCosts('####','1')="
        .."("..cSC[1]..")"..cSC[2].." "..cSC[3],2)
--cSC=sd.changeStackCosts('T18T18T6SDDDD####################','PDDD####################')
--writeLog("StackCostTest changeStackCosts('T18T18T6SDDDD####################','PDDD####################')="
--        .."("..cSC[2]..")"..cSC[3],2)
--]]

local function inDelimiters(name, leftDelimiter, rightDelimiter)
    return string.match(name, '%' .. leftDelimiter .. '(.-)%' .. rightDelimiter)
end

local function split(str, delim)
    local ret, l, p = {}, 1
    str = str or ''
    while l <= 1 + string.len(str) do
        p = string.find(str .. delim, '%' .. delim, l)
        ret[1 + #ret], l = string.sub(str, l, p - 1), p + 1
    end
    return ret
end

local function parseMove(moveConds)
    local preStack, postStack, conds, pos, move, bits, glider
    pos, conds = string.find(moveConds .. '{', '%{'), ""
    conds = string.sub(moveConds, pos + 1, string.find(moveConds .. '}', '%}') - 1)
    conds = split(conds, ':')
    conds[2] = split(conds[2], ',')
    move = string.sub(moveConds, 1, pos - 1)
    pos = string.find(move, '%]')
    preStack = string.sub(move, 2, pos - 1)
    bits = string.sub(move, pos + 1)
    pos = string.find(bits, '%[')
    postStack = string.sub(bits, pos + 1, -2)
    bits = string.sub(bits, 1, pos - 1)
    glider, pos = '', string.find(bits, '%(')
    if pos then
        glider = inDelimiters(bits, '(', ')')
        bits = string.sub(bits, 1, pos - 1) .. string.sub(bits, string.find(bits, '%)') + 1)
    end
    return bits, move, conds, preStack, postStack, glider
end

local emissions = {}

local function insertEmissionTo(to, moveConds)
    if not emissions[to] then
        emissions[to] = {}
    end
    emissions[to][#emissions[to] + 1] = moveConds
end

local function insertEmission(moveConds)
    local _bits, _move, _conds, _preStack, _postStack, glider = parseMove(moveConds)
    if glider == "" then
        return
    end
    local dist, phase = string.match(glider, '(%d*) (%d*)')
    local d8 = inttostring(dist % 8)
    insertEmissionTo("d" .. d8 .. "p0%1", moveConds)
    insertEmissionTo("d" .. d8 .. "p" .. inttostring(phase % 2) .. "%2", moveConds)
    insertEmissionTo("d" .. d8 .. "p" .. inttostring(phase % 8) .. "%8", moveConds)
end

local function iniMoves()
    local h = io.open(moveCondsFileName, "r")
    local moveCondsLine = h:read()
    while moveCondsLine do
        insertEmission(string.sub(moveCondsLine, 5))
        moveCondsLine = h:read()
    end
    h:close()
end

--{{postStack->{toalcost,previousPostStack,move,startStackSubsted}}} obsolete
--{{postStack->{toalcost,previousPostStack,startStackSubsted,preEasyStack,preMoveStack,preEasyBits,easyBitsInfo,move,moveBotomymx}}}
local levelStacks, winners, level, bottomymx = {}

local function extStack(pre, stack, post)
    writeLog("   extStack(" .. pre .. "," .. stack .. "," .. post .. ")", -1)
    if string.find('01', string.sub(stack, 1, 1)) then
        -- extrabit
        pre, stack = string.sub(stack, 1, 1) .. pre, string.sub(stack, 2)
    end
    stack = pre .. stack
    if stack ~= "" and string.find('TtIHhBPdDS#', string.sub(stack, -1)) then
        return stack .. post
    else
        local postPos = string.find(post, '[TtIHhBPdDS#]')
        if postPos then
            local postDist = string.sub(post, 1, postPos - 1)
            postDist = ((postDist == "") and "8" or postDist)
            local start, dist = string.match('H' .. stack, '(.*[TtIHhBPdDS#])(.*)')
            start = string.sub(start, 2)
            writeLog("   extStack start, dist, postDist " .. start .. "," .. dist .. "," .. postDist .. "(" .. postPos .. ")")
            if start == "" then
                return dist .. string.sub(post, postPos) --dist is actually extrabit (or empty)
            else
                dist = (dist == "") and 0 or dist
                if dist + postDist == 8 then
                    return start .. string.sub(post, postPos)
                end
                return start .. inttostring(dist + postDist) .. string.sub(post, postPos)
            end
        else
            return stack
        end
    end
end

local startTemplateTop, finalStack
local function search(startStackPrefix)

    local queue, queueCurrentCost, queueCurrentCostInd = {}, -1, 0 --rather build list with traversal than queue

    local function queueInit()
        queue, queueCurrentCost, queueCurrentCostInd = {}, -1, 0
    end

    local function queueEmpty()
        writeLog("queueEmpty" .. queueCurrentCost .. " " .. queueCurrentCostInd)
        return queueCurrentCost < 0 or (queue[queueCurrentCost].next < 0 and queueCurrentCostInd == #queue[queueCurrentCost])
    end

    ---@return string emission, int targetymx
    local function queuePull()
        queueCurrentCostInd = 1 + queueCurrentCostInd
        if queueCurrentCostInd > #queue[queueCurrentCost] then
            queueCurrentCostInd, queueCurrentCost = 1, queue[queueCurrentCost].next
        end
        writeLog("queuePull " .. queueCurrentCost .. " " .. queueCurrentCostInd)
        local node = queue[queueCurrentCost][queueCurrentCostInd]
        return node[1], node[2]
    end

    local function queueMerge(emissions, targetymx, forbidden)
        local function queuePush(node, ind)
            local bits = parseMove(node[1])
            writeLog("queuePush " .. string.len(bits) .. " {" .. node[1] .. "," .. node[2] .. "}")
            local cost = string.len(bits)
            if not queue[cost] then
                queue[cost] = {}
                if ind >= 0 then
                    -- go to a neighbour
                    while queue[ind].next > 0 and queue[ind].next < cost do
                        ind = queue[ind].next
                    end
                    while queue[ind].prev > 0 and queue[ind].prev > cost do
                        ind = queue[ind].prev
                    end
                end
                if ind > cost then
                    queue[cost].next, queue[cost].prev, queue[ind].prev = ind, queue[ind].prev, cost
                elseif ind >= 0 then
                    queue[cost].prev, queue[cost].next, queue[ind].next = ind, queue[ind].next, cost
                else
                    queue[cost].next, queue[cost].prev = ind, ind
                end
                if queue[cost].prev < 0 then
                    queueCurrentCost = cost
                end
            end
            queue[cost][1 + #queue[cost]] = node
            return cost
        end

        local ind = queueCurrentCost
        for j = 1, #emissions do
            local ok=true
            for f=1,#forbidden do
                if string.find(emissions[j],forbidden[f]) then
                    writeLog("Forbidden emission "..emissions[j])
                    ok=false
                    break
                end
            end
            if ok then
                ind = queuePush({ emissions[j], targetymx }, ind)
            end
        end
    end

    local function extendStacks(preStack, postStack, delta)
        if delta < 0 then
            return
        end
        local extPostStack, extPreStack = postStack, preStack
        -- were I 1# off? ... I need at least 1 # for the A->B2  AX->B6X (implicit 8distance conversion trick)
        --should I remove one # later?
        for k = 0, delta, 8 do
            extPostStack, extPreStack = extStack("", extPostStack, "#"), extPreStack .. "#"
        end
        return extPostStack, extPreStack
    end

    local function checkConditions(conditions, moveDelta)
        local OK, KO, conditionsToTest = {}, {}, {}
        if moveDelta==0 then
            conditionsToTest["_"] = ""
        else
            conditionsToTest['D'] = 8
            conditionsToTest['B'] = 8
            conditionsToTest['S'] = 8
        end
        for i = 1, #conditions[2] do
            --there is no conds[1] in emissions
            local hId = string.sub(conditions[2][i], -1)
            writeLog("  condition " .. conditions[2][i] .. "," .. hId, -1)
            local dist = conditionsToTest[hId]
            if dist then
                if dist == "" then
                    OK[#OK + 1] = hId
                    writeLog(" condition " .. hId .. "," .. dist .. " OK")
                else
                    local cDist = string.sub(conditions[2][i], 1, -2)
                    cDist = (cDist == "" and "8") or cDist
                    dist, cDist = dist + 0, cDist + 0
                    if cDist % 2 == 1 then
                        if cDist < dist then
                            OK[#OK + 1] = hId
                            writeLog(" condition " .. hId .. "," .. dist .. "(" .. cDist .. ")" .. " OK")
                        else
                            KO[#KO + 1] = {hId, cDist//dist}
                            writeLog(" condition " .. hId .. "," .. dist .. "(" .. cDist .. ")" .. " KO")
                        end
                    else
                        if cDist == dist then
                            OK[#OK + 1] = hId
                            writeLog(" condition " .. hId .. "," .. dist .. "(" .. cDist .. ")" .. " OK")
                        else
                            KO[#KO + 1] = {hId}
                            writeLog(" condition " .. hId .. "," .. dist .. "(" .. cDist .. ")" .. " KO")
                        end
                    end
                end
                conditionsToTest[hId] = nil
            end
        end
        for hId, dist in pairs(conditionsToTest) do
            KO[#KO + 1] = {hId}
            writeLog(" condition " .. hId .. "," .. dist .. " KO (missed)")
        end
        local minKO
        for i=1,#KO do
            if KO[i][2] then
                if not minKO or minKO>KO[i][2] then
                    minKO=KO[i][2]
                end
            end
        end
        if minKO and minKO>1 then
            if #OK>1 then
                writeLog("#OK>1 and fail for longer distance! Only SS case expected",10)
            elseif #OK==1 then
                local c=OK[1] --S
                for i=1,minKO do
                    OK[1]=OK[1]..c
                end
            end
        end
        return OK, KO
    end

    local i = io.open(levelFileName, "r")
    local inputLine = i:read()
    if inputLine then
        writeLog("inputLine=" .. inputLine)
    else
        writeLog("inputLine=nil")
    end
    startTemplateTop = inDelimiters(">" .. inputLine, ">", " ")
    finalStack = inDelimiters(inputLine, "[", "]")
    writeLog("startTemplateTop:" .. startTemplateTop .. " finalStack:" .. finalStack, 5)
    local startPreStack = ""
    for k = bottomymx, startTemplateTop, 8 do
        startPreStack = startPreStack .. "#"
    end
    if startStackPrefix then
        startPreStack=startStackPrefix..string.sub(startPreStack,string.len(startStackPrefix)+1)
    end
    writeLog("startPreStack " .. startPreStack .. "(" .. startTemplateTop .. "," .. bottomymx .. ",8)", 2)
    local level = 1
    levelStacks[level] = {}
    levelStacks[level][startPreStack] = { 0, "", "", "", "", "", "", "", "","" }
    local prevLevel, nrPrevLevelSwappers = {}, 1
    inputLine = ""
    while inputLine do
        queueInit()
        local forbidden={}
        while inputLine ~= "" do
            local forbiddenPos,targetymxPos = string.find(inputLine,'%"'),string.find(inputLine,'%[')
            while forbiddenPos and forbiddenPos<targetymxPos do
                forbidden[#forbidden+1]=inDelimiters(inputLine,'"','"')
                forbiddenPos=string.find(inputLine,'%"',forbiddenPos+1)
                inputLine=string.sub(inputLine,forbiddenPos+1)
                forbiddenPos,targetymxPos = string.find(inputLine,'%"'),string.find(inputLine,'%[')
            end
            local targetymx = inDelimiters(inputLine, '[', ']') - bottomymx
            queueMerge(emissions["d" .. inttostring(targetymx % 8) .. "p" .. string.sub(inputLine, 3, 5)], targetymx, forbidden)
            inputLine = string.sub(inputLine, 1 + string.find(inputLine, '%]'))
        end
        while not queueEmpty() do
            local emission, targetymx = queuePull()
            writeLog("trying emission " .. emission .. " targeymx " .. targetymx .. " on level " .. level, 1)
            local bits, move, conditions, preStack, postStack, glider = parseMove(emission)
            local dist, _phase = string.match(glider, '(%d*) (%d*)') --we know mod8 everything matches
            local moveDelta = targetymx - dist
            local extPostStack, extPreStack = extendStacks(preStack, postStack, moveDelta)
            if not extPostStack then
                writeLog(" emission would overshot with this bottom (dist" .. dist .. ">" .. targetymx .. "targetymx)")
            elseif extPostStack == '#' and finalStack ~= '' then
                writeLog(' emission would destroy the stack')
            else
                local preMoveStack, endPreSubstStack, postStackX = string.gsub(extPreStack, '#', '', 1), string.gsub(extPostStack, '#', '', 1), string.gsub(extPostStack, '#', '')
                -- ^ may be converted by adding+8 to the end
                writeLog("postStack trick " .. postStack .. ">" .. extPostStack .. ">" .. postStackX)
                local OK, KO = checkConditions(conditions, moveDelta)
                if #OK == 0 then
                    writeLog(' all suffix tests failed')
                else
                    for i = 1, #OK do
                        if #KO > 0 then
                            -- template needs further specification
                            writeLog("Changing preMoveStack " .. preMoveStack .. " to " .. preStack .. OK[i] .. string.sub(preMoveStack, string.len(preStack) + string.len(OK[i]) + 1))
                            preMoveStack = preStack .. OK[i] .. string.sub(preMoveStack, string.len(preStack) + string.len(OK[i]) + 1)
                            writeLog("Changing endPreSubstStack " .. endPreSubstStack .. " to " .. postStackX .. OK[i] .. string.sub(endPreSubstStack, string.len(postStackX) + string.len(OK[i]) + 1))
                            endPreSubstStack = postStackX .. OK[i] .. string.sub(endPreSubstStack, string.len(postStackX) + string.len(OK[i]) + 1)
                        elseif i > 1 then
                            writeLog("  done as all template suffixes work same")
                            break
                        end
                        local preMoveCostToBeat
                        if levelStacks[level][endPreSubstStack] then
                            preMoveCostToBeat = levelStacks[level][endPreSubstStack][1] - string.len(bits)
                            writeLog("preMoveCostToBeat=" .. preMoveCostToBeat .. "(levelStacks[level][endPreSubstStack(" .. endPreSubstStack .. ")][1]-string.len(bits))="
                                    .. levelStacks[level][endPreSubstStack][1] .. "-" .. string.len(bits))
                        end
                        do
                            local s = "";
                            for j = 1, nrPrevLevelSwappers do
                                s = s .. "," .. prevLevel[j]
                            end
                            writeLog("PrevLevelStart: " .. string.sub(s, 2), 1)
                        end
                        for j = 1, #prevLevel do
                            local startPreSubstStack = prevLevel[j]
                            local prevResultCost = levelStacks[level - 1][startPreSubstStack][1]
                            writeLog("Checking connection from prevEnd=startPreSubstStack " .. startPreSubstStack .. " to " .. preMoveStack .. " preMoveCostToBeat=" .. (not preMoveCostToBeat and "nil" or preMoveCostToBeat))
                            local fail
                            if preMoveCostToBeat then
                                if preMoveCostToBeat <= prevResultCost then
                                    fail = true
                                    writeLog("startPreSubstStack alone too expensive " .. preMoveCostToBeat .. "<=" .. prevResultCost)
                                else
                                    local est = sd.easyChangeStackLowerBound(startPreSubstStack, preMoveStack) or 0
                                    if preMoveCostToBeat <= prevResultCost + est then
                                        fail = true
                                        writeLog("startPreSubstStack + costLowerBound too expensive " .. preMoveCostToBeat .. "<=" .. prevResultCost .. "+" .. est)
                                    end
                                end
                            end
                            if not fail then
                                local costResult = sd.changeStackCosts(startPreSubstStack, preMoveStack)
                                local preMoveCost = prevResultCost + costResult[1]
                                if preMoveCostToBeat and preMoveCostToBeat <= preMoveCost then
                                    fail = true
                                    writeLog("startPreSubstStack + cost too expensive " .. preMoveCostToBeat .. "<=" .. preMoveCost .. "=" .. prevResultCost .. "+" .. costResult[1])
                                else
                                    preMoveCostToBeat = preMoveCost
                                    writeLog("insert or update on level " .. level .. "[" .. endPreSubstStack .. "]="
                                            .. (preMoveCost + string.len(bits))
                                            .. "(" .. startPreSubstStack .. "(" .. costResult[2] .. ")[" .. costResult[3] .. "]" .. costResult[3] .. "[" .. preMoveStack .. "]" ..
                                            costResult[5] .. "(" .. inttostring(costResult[1] - costResult[4] - string.len(costResult[5])) .. ")" .. move .. "<" .. inttostring(moveDelta + bottomymx) .. ")", 2)
                                    levelStacks[level][endPreSubstStack] = { preMoveCost + string.len(bits), startPreSubstStack, costResult[2], costResult[3], preMoveStack,
                                                                             costResult[5], costResult[1] - costResult[4] - string.len(costResult[5]), move, moveDelta + bottomymx,
                                                                             endPreSubstStack}
                                    local k = j
                                    if j > nrPrevLevelSwappers then
                                        nrPrevLevelSwappers = 1 + nrPrevLevelSwappers
                                        prevLevel[j] = prevLevel[nrPrevLevelSwappers]
                                        k = nrPrevLevelSwappers
                                    end
                                    while (k > 1) do
                                        prevLevel[k] = prevLevel[k - 1]
                                        k = k - 1
                                    end
                                    prevLevel[1] = startPreSubstStack
                                end
                            end
                        end
                    end
                end
            end
        end
        inputLine = i:read()
        if inputLine then
            writeLog("inputLine=" .. inputLine)
        else
            writeLog("inputLine=nil")
        end
        prevLevel, nrPrevLevelSwappers = {}, 1
        for endPreSubsStack, info in pairs(levelStacks[level]) do
            --we prefere best first and try to maintain best candidates near 1
            prevLevel[1 + #prevLevel] = endPreSubsStack
            if levelStacks[level][prevLevel[nrPrevLevelSwappers]][1] > info[1] then
                nrPrevLevelSwappers = 1 + nrPrevLevelSwappers
                prevLevel[#prevLevel] = prevLevel[nrPrevLevelSwappers]
                prevLevel[nrPrevLevelSwappers] = endPreSubsStack
            end
        end
        for i = 1, nrPrevLevelSwappers // 2 do
            prevLevel[nrPrevLevelSwappers + 1 - i], prevLevel[i] = prevLevel[i], prevLevel[nrPrevLevelSwappers + 1 - i]
        end
        level = level + 1
        levelStacks[level] = {}
    end
    i:close()
    local targetStack, preMoveCostToBeat = finalStack
    writeLog("finalizing", 5)
    for j = 1, #prevLevel do
        local startPreSubstStack = prevLevel[j]
        local prevResult = levelStacks[level - 1][startPreSubstStack]
        writeLog("Checking connection from startPreSubstStack " .. startPreSubstStack, 2)
        local fail
        if preMoveCostToBeat then
            if prevResult[1] > preMoveCostToBeat then
                fail = true
                writeLog("startPreSubstStack alone too expensive", 2)
            else
                local est = sd.easyChangeStackLowerBound(startPreSubstStack, targetStack) or 1
                if prevResult[1] + est > preMoveCostToBeat then
                    fail = true
                    writeLog("startPreSubstStack + costLowerBound too expensive", 2)
                end
            end
        end
        if not fail then
            local costResult = sd.changeStackCosts(startPreSubstStack, targetStack)
            local preMoveCost = prevResult[1] + costResult[1]
            if preMoveCostToBeat and preMoveCost > preMoveCostToBeat then
                fail = true
                writeLog("prevPostStack + cost too expensive", 2)
            end
            if not fail then
                preMoveCostToBeat = preMoveCost
                writeLog("insert or update on final level " .. level .. "preMoveCostToBeat=" .. preMoveCostToBeat, 10)
                levelStacks[level][targetStack] = { preMoveCost, startPreSubstStack, costResult[2], costResult[3], targetStack,
                                                    costResult[5], costResult[1] - costResult[4] - string.len(costResult[5]), "", bottomymx, targetStack }
            end
        end
    end
    return level
end

local function getWinner()
    local winners = {}
    winners[level + 1] = finalStack
    for l = level, 1, -1 do
        winners[l] = levelStacks[l][winners[l + 1]][2]
    end
    return winners
end

--{{postStack->{toalcost,previousPostStack,move,prepareInfo}}}
local function outputResult(output)
    output:write("--bottomymx:" .. bottomymx .. " totalCost=" .. levelStacks[level][finalStack][1])
    local prevCost = 0
    for l = 1, level do
        local easyBits, easyBitsCost = levelStacks[l][winners[l + 1]][7];
        if type(easyBits) ~= "string" then
            easyBitsCost = easyBits
            easyBits = "(+" .. inttostring(easyBits) .. ")"
        else
            easyBitsCost = string.len(string.gsub(string.gsub(string.gsub(string.gsub(string.gsub(easyBits,
                    'E', '1111'),
                    'S', '111'),
                    'B', '11'),
                    'D', ''),
                    '#', ''))
        end
        local emission, bits, move, glider = levelStacks[l][winners[l + 1]][8], '', '', ''
        if emission ~= '' then
            bits, move, _, _, _, glider = parseMove(emission)
            if glider ~= '' then
                glider = '(' .. glider .. ')'
                local dist, phase = inDelimiters(glider, '(', ' '), inDelimiters(glider, ' ', ')')
                glider = '(g' .. phase .. '%8)[' .. inttostring(dist + levelStacks[l][winners[l + 1]][9]) .. ']' .. glider
            end
        end
        local preCost = levelStacks[l][winners[l + 1]][1] - prevCost - string.len(bits) - easyBitsCost - string.len(levelStacks[l][winners[l + 1]][6])
        if levelStacks[l][winners[l + 1]][2] ~= levelStacks[l][winners[l + 1]][3] then
            preCost = '(+' .. inttostring(preCost) .. ")"
        else
            preCost = ''
        end
        output:write(preCost .. "\n" .. levelStacks[l][winners[l + 1]][6] .. " " .. easyBits .. " " .. bits ..
                " --" .. glider .. "<" .. inttostring(levelStacks[l][winners[l + 1]][9]) .. "(" .. levelStacks[l][winners[l + 1]][1] .. ")" ..
                "[" .. levelStacks[l][winners[l + 1]][2] .. "]>[" .. levelStacks[l][winners[l + 1]][3] .. "]>[" ..
                levelStacks[l][winners[l + 1]][4] .. "]>[" .. levelStacks[l][winners[l + 1]][5] .. "]>(" .. winners[l + 1] .. ")[" .. levelStacks[l][winners[l + 1]][10] .. "]")
        prevCost = levelStacks[l][winners[l + 1]][1]
    end
    output:write("\n")
end

local function fillWinnerEasy()
    for l = 2, level do
        local easyBitsWithTemplates = sd.getEasyTBits(levelStacks[l][winners[l + 1]][4], levelStacks[l][winners[l + 1]][5])
        levelStacks[l][winners[l + 1]][7] = easyBitsWithTemplates
    end
end

local function fixWinnerTemplates()
    local nextStartSubstedStack
    for l=level,2,-1 do
        if nextStartSubstedStack then
            local numNextStartPreSubstStackTemplates=string.len(levelStacks[l][winners[l + 1]][10])-string.len(string.gsub(levelStacks[l][winners[l + 1]][10],'#',''))
            if numNextStartPreSubstStackTemplates>0 then
                local cost=sd.templatingCost(nextStartSubstedStack,numNextStartPreSubstStackTemplates)
                levelStacks[l][winners[l + 1]][10]=nextStartSubstedStack
                levelStacks[l][winners[l + 1]][1]=levelStacks[l][winners[l + 1]][1]+cost
                levelStacks[l][winners[l + 1]][5]=string.sub(levelStacks[l][winners[l + 1]][5],1,-1-numNextStartPreSubstStackTemplates)..
                        string.sub(nextStartSubstedStack,-numNextStartPreSubstStackTemplates)
                levelStacks[l][winners[l + 1]][7]=levelStacks[l][winners[l + 1]][7]+cost
                local numPreEasyTemplates=string.len(levelStacks[l][winners[l + 1]][4])-string.len(string.gsub(levelStacks[l][winners[l + 1]][4],'#',''))
                numPreEasyTemplates = (numPreEasyTemplates < numNextStartPreSubstStackTemplates) and numPreEasyTemplates or numNextStartPreSubstStackTemplates
                if numPreEasyTemplates>0 then
                    levelStacks[l][winners[l + 1]][4]=string.sub(levelStacks[l][winners[l + 1]][4],1,-1-numPreEasyTemplates)..
                            string.sub(nextStartSubstedStack,-numPreEasyTemplates)
                    cost=sd.templatingCost(levelStacks[l][winners[l + 1]][4],numPreEasyTemplates)
                    levelStacks[l][winners[l + 1]][7]=levelStacks[l][winners[l + 1]][7]-cost
                    local numStartSubstedTemplates = string.len(levelStacks[l][winners[l + 1]][3])-string.len(string.gsub(levelStacks[l][winners[l + 1]][3],'#',''))
                    numStartSubstedTemplates = (numStartSubstedTemplates < numPreEasyTemplates) and numStartSubstedTemplates or numPreEasyTemplates
                    if numStartSubstedTemplates>0 then
                        levelStacks[l][winners[l + 1]][3]=string.sub(levelStacks[l][winners[l + 1]][3],1,-1-numStartSubstedTemplates)..
                                string.sub(nextStartSubstedStack,-numStartSubstedTemplates)
                    end
                end
            end
        end
        nextStartSubstedStack=levelStacks[l][winners[l + 1]][3]
    end
end

---[[
iniMoves()
local resultOutput = io.open(resultOutputFileName, "w")
local easyFilledOutput = io.open(easyFilledOutputFileName, "w")
local templateFixedOutput = io.open(templateFixedOutputFileName, "w")

--for i=2320,2360,2 do
    bottomymx = 1250
--    g.show(i)
    level = search('S')
    winners = getWinner()
    outputResult(resultOutput)
    do
        fixWinnerTemplates()
    end
    outputResult(templateFixedOutput)
    do
        fillWinnerEasy()
    end
    outputResult(easyFilledOutput)
--end
--]]

local endTime = g.millisecs()
writeLog("Done", 10)
Here are level files with some manually forbidden emissions due to collisions with close building site.
2398:

Code: Select all

2368 [SBDBD]
(g0%1)[2417]
"%(52 5%)""%(60 2%)"(g0%1)[2420](g0%1)[2415]
"%(37 3%)"(g0%1)[2413]
(g0%1)[2414]
(g0%1)[2411]
(g0%1)[2399](g0%1)[2398](g0%1)[2400](g0%1)[2401](g0%1)[2402](g0%1)[2403]
(g0%1)[2400]
(g0%1)[2390](g0%1)[2391](g0%1)[2394]
(g0%2)[2397]
(g0%2)[2404]
(g0%1)[2405](g0%1)[2400]
(g0%1)[2403]
(g0%1)[2401]
(g0%1)[2393]
(g0%1)[2396]
(g0%1)[2398](g0%1)[2393]
(g1%2)[2393]
(g1%2)[2397]
(g0%1)[2407]
(g1%2)[2410]
(g1%2)[2402]
(g0%2)[2414]
(g0%2)[2402]
(g1%2)[2390]
194:

Code: Select all

136 [S##########]
"%(37 3%)"(g0%1)[213]
(g0%1)[216](g0%1)[211]
(g0%1)[209]
(g0%1)[210]
(g0%1)[207]
(g0%1)[195](g0%1)[194](g0%1)[196](g0%1)[197](g0%1)[198](g0%1)[199]
(g0%1)[187]
(g0%2)[184]
(g1%2)[178]
(g0%1)[175](g0%1)[172](g0%1)[173](g0%1)[174]
(g0%1)[188]
(g0%1)[192](g0%1)[193](g0%1)[194](g0%1)[195](g0%1)[196](g0%1)[197]
(g0%1)[186]
(g1%2)[182]
(g1%2)[173]
(g0%2)[183]
1296:

Code: Select all

1266 [1]
"%(37 3%)"(g0%1)[1315]
(g0%1)[1318](g0%1)[1313]
"%(37 3%)"(g0%1)[1311]
(g0%1)[1312]
(g0%1)[1309]
(g0%1)[1297](g0%1)[1296](g0%1)[1298](g0%1)[1299](g0%1)[1300](g0%1)[1301]
(g0%1)[1298]
(g0%2)[1297]
(g0%1)[1292]
(g0%2)[1312]
(g1%2)[1300]
(g1%2)[1301]
(g0%2)[1320]
(g0%1)[1319]
(g1%2)[1323]
(g1%2)[1315]
(g1%2)[1316]
(g1%2)[1314]
(g1%2)[1310]
(g0%2)[1311]
(g0%1)[1304]
Last version of bits checker is here: You can deduce exact specification of 012LRHhTtIdDPBS from it.

Code: Select all

local g = golly()
g.setbase(2)
local debug, debugallowed, logging
local log = io.open("c:\\Golly\\Test12Seqlog.txt", "w")
local showPrefix, showSufix = '', ''
debug, logging = false, true
local skipSpaces = 476
g.autoupdate(debug)
g.new("play12Sequence")

-- goal is to map what the sequence does with the elbowsStack, what it removes/adds on the stack, 
-- what are prerequisities (required distance of other stack items)
-- some of the _rr moves in original classification could be described (at least) two ways, as they do not require [2,-8], 
-- but could clearly delete it
-- sequences should be split into prime ones nonprefix, (maybe even nonsufix) representation, to make their use more effective
-- the input is in [2,0] start, so [3,0][5,0] starting sequences should be prefixed by a "to_honey" on input
-- '1' "semidel" sequence is special as it ignores [2,0] top ... it is definitely primitive and not tested here
--
-- first stable distances:
-- [2,-6][2,0]
-- [3,*][2,0] -- unrelated
-- [4,*][2,0] -- unrelated
-- [5,x][2,0] -- [5,] is always first
-- [2,*][3,0] -- unrelated
-- [3,-8][3,0]
-- [4,-6][3,0]
-- [5,x][3,0] -- [5,] is always first
-- [2,*][4,0] -- unrelated
-- [3,-6][4,0]
-- [4,-6][4,0]
-- [5,x][4,0] -- [5,] is always first
-- [2,x][5,0] -- there is always [3,0] under [5,0]
-- [3,0][5,0]
-- [4,x][5,0] -- there is always [3,0] under [5,0
-- [5,x][5,0] -- [5,] is always first
-- when multiple [A,0] at the same time, order in name should be according the type ... [2,0][3,0][4,0][5,0]
-- let me try to avoid [4,x]

local minxpyLimit, maxxpyLimit, maxPopLimit, maxNonStackPopLimit = -2400, 160, 3200, 1200 --twice twice as usual
local minxpy, maxxpy, maxPop, maxNonStackPop
local pop, nonStackPop
local bits, bitsWithGliders = '', ''
local allBits = { '[PDBSSSDB]22112211111212121211[H2T14S]' }

local hadrons, hadronIds = {}, {}
local function newHadron(id, pattern, x, y, detectxpy, detectymx, detectCheck)
    --detectCheck ... pattern which should be empty to be sure with detection (depends on all hadrons tried in the decomposition)
    local node = {}
    node["id"], node["pattern"], node["x"], node["y"], node["detectxpy"], node["detectymx"], node["detectCheck"] = id, pattern, x, y, detectxpy, detectymx, detectCheck
    hadrons[id] = node
    hadronIds[#hadronIds + 1] = id
end

newHadron('0', g.parse("b2o$obo$2bo!"), 42, -42)
newHadron('1', g.parse("3o$2bo$bo!"), -5, 0)
newHadron('T', g.parse("bo$obo$obo$bo2$5b2o$4bo2bo$5b2o!"), 272, -282, -8, -552, { -1, 0, 0, 1, 1, 0 })
newHadron('t', g.parse("bo$obo$obo$bo2$5b2o$4bo2bo$5b2o!"), 272, -283, -8, -556, { -1, 0, 0, -1, 1, 0 })
newHadron('I', g.parse("o$o$o!"), 274, -279, -5, -553, { -1, 1 })
--newHadron('i',g.parse("o$o$o!"),274,-279,-5,-553,{-1,1})
newHadron('H', g.parse("b2o$o2bo$b2o2$6bo$5bobo$5bobo$6bo!"), 270, -280, -8, -552, { 0, -1, 0, 1, 1, 0 })
newHadron('h', g.parse("b2o$o2bo$b2o2$6bo$5bobo$5bobo$6bo!"), 269, -280, -8, -548, { -1, 0, 0, -1, 0, 1 })
newHadron('B', g.parse("2o$2o4$4b3o!"), 275, -277, -2, -552, { 2, 2, 3, 6, 5, 4 })
newHadron('P', g.parse("b2o$o2bo$o2bo$b2o2$5b3o!"), 274, -277, -2, -552, { 0, 1, 3, 6, 5, 4 })
newHadron('d', g.parse("3o2$4bo$4bo$4bo!"), 276, -275, 1, -551, { -1, -1, 1, 1, 0, 1, -1, 1, 1, -1 })
newHadron('D', g.parse("o$o$o2$2b3o!"), 277, -276, 1, -553, { -1, -1, 1, 1, 1, 0, 1, 5, 3, 3 })
newHadron('S', g.parse("3o"), 279, -272, 7, -551, { -3, -2, -1, 1, 1, -1 })
newHadron('L', g.parse("2o$2o!"), 282, -244, 38, -526)  -- to be ymx shifted?
newHadron('R', g.parse("2o$2o!"), 246, -282, -36, -528) -- to be ymx shifted?

local function putHadron(id, ymxShift, mode)
    --g.note("putHadron id="..id.." shift="..ymxShift)
    local pop = g.getpop() + 0
    g.putcells(hadrons[id].pattern, hadrons[id].x - ymxShift, hadrons[id].y + ymxShift, 1, 0, 0, 1, mode or "or")
    if not mode then
        return pop == g.getpop() - #hadrons[id].pattern // 2 -- no overwrite
    end
end

local function inDelimiters(name, leftDelimiter, rightDelimiter)
    return string.sub(name, string.find(name, '%' .. leftDelimiter) + 1, string.find(name, '%' .. rightDelimiter) - 1)
end

local function inttostring(num)
    return string.sub(num, 1, string.find(num .. ".", "%.") - 1)
end

local function split(str, delim)
    local ret, l, p = {}, 1, nil
    while l <= 1 + string.len(str) do
        p = string.find(str .. delim, '%' .. delim, l)
        ret[1 + #ret], l = string.sub(str, l, p - 1), p + 1
    end
    return ret
end

local function writeLog(msg)
    if log and logging then
        log:write(msg .. "\n")
    end
end

local function conditionsToString(conditions)
    local postConitions, ret
    if #conditions == 0 then
        g.note("no conditions?")
        return "{:}"
    end
    if #conditions < 2 then
        ret = "{:"
    else
        ret = "{" .. conditions[1] .. ":"
    end
    --  g.note("type conditions[1] ="..type(conditions[1]))
    --  g.note("type conditions["..#conditions.."] ="..type(conditions[#conditions]))
    ret = ret .. conditions[#conditions][1]
    for j = 2, #conditions[#conditions] do
        ret = ret .. "," .. conditions[#conditions][j]
    end
    ret = ret .. "}"
    return ret
end

local function isSmallAtMost1g(patternArray, orig)
    --g.show("iAM1g     "..bits)
    --g.note("iAM1g     "..bits)
    g.new("play12Sequence");
    g.select({ 279, -272, 1, 1 })
    g.putcells(patternArray)
    pop = g.getpop() + 0
    if pop > maxPopLimit then
        --
        if debug then
            g.note("pop>maxPop " .. pop)
        end
        if orig then
            writeLog("pop>maxPopLimit " .. pop)
        end
        return false
    end
    g.setbase(2)
    g.setstep(9)  -- to be sure glider if detected does not colide with the rest of the pattern
    g.step()
    g.putcells(patternArray, 0, 0, 1, 0, 0, 1, "xor") --and we have non p8 patternPart
    local tpop = g.getpop() + 0
    if tpop == 0 then
        return true
    elseif tpop ~= 10 then
        --g.note ("tpop~=10 "..tpop)
        if orig then
            writeLog("tpop~=10 " .. tpop)
        end
        return false
    end
    local i, gliderArray, movingpart
    gliderArray, movingpart = {}, g.getcells(g.getrect())
    g.new("play12Sequence");
    g.select({ 279, -272, 1, 1 })
    g.putcells(patternArray)
    for i = 1, #movingpart, 2 do
        if g.getcell(movingpart[i], movingpart[i + 1]) == 1 then
            gliderArray[1 + #gliderArray] = movingpart[i]
            gliderArray[1 + #gliderArray] = movingpart[i + 1]
        end
    end
    g.new("play12Sequence");
    g.select({ 279, -272, 1, 1 })
    g.putcells(gliderArray)
    tpop = g.getpop() + 0
    if tpop ~= 5 then
        if debug then
            g.note("tpop~=5 glider " .. tpop)
        end
        if orig then
            writeLog("tpop~=5 glider " .. tpop)
        end
        return false
    end
    g.putcells(gliderArray, -128, -128, 1, 0, 0, 1)
    g.putcells(movingpart, 0, 0, 1, 0, 0, 1, "xor")
    tpop = g.getpop() + 0
    if tpop ~= 0 then
        if debug then
            g.fit();
            g.note("tpop~=0 movingpart xor gliderpair " .. tpop)
        end
        if orig then
            writeLog("tpop~=0 movingpart xor gliderpair " .. tpop)
        end
        return false
    end
    if debug then
        g.note("ok, glider")
    end
    return true, gliderArray  -- 5 cells moving NW at c/4 is an allowed glider
end

local function extendDecomposition(decomposition, item)
    local i
    for i = #decomposition, 0, -1 do
        if i == 0 then
            decomposition[1] = item
        elseif string.find(item[1], '[01]') then
            decomposition[i + 1] = decomposition[i]
        elseif string.find(decomposition[i][1], '[01]') then
            decomposition[i + 1] = item
            break
        elseif string.find(item[1], '[RL]') then
            decomposition[i + 1] = decomposition[i]
        elseif string.find(decomposition[i][1], '[RL]') then
            decomposition[i + 1] = item
            break
        elseif decomposition[i][2] < item[2] then
            decomposition[i + 1] = decomposition[i]
        elseif decomposition[i][2] > item[2] then
            decomposition[i + 1] = item
            break
        elseif decomposition[i][1] > item[1] then
            decomposition[i + 1] = decomposition[i]
        else
            decomposition[i + 1] = item
            break
        end
    end
    return decomposition
end

local function decompositionToString(decomposition, shiftedStart, deltaymx)
    --lepší řazení, komprese?
    --g.show("dTS       "..bits)
    --  g.note("dTS       "..bits)
    local i, ret, prevPos
    ret = "]"
    --if debug then g.note("decmpostionToString #("..#decomposition..")") end
    for i = #decomposition, (not shiftedStart and 1 or shiftedStart), -1 do
        --if debug then g.note("decmpostionToString["..i.."]=('"..decomposition[i][1].."',"..decomposition[i][2]..")") end
        if not string.find('01', decomposition[i][1]) then
            if prevPos then
                if prevPos + 8 ~= decomposition[i][2] + (not deltaymx and 0 or deltaymx) then
                    ret = inttostring(decomposition[i][2] + (not deltaymx and 0 or deltaymx) - prevPos) .. ret
                end
            else
                if decomposition[i][2] + (not deltaymx and 0 or deltaymx) ~= 0 then
                    ret = inttostring(decomposition[i][2] + (not deltaymx and 0 or deltaymx)) .. ret
                end
            end
            prevPos = decomposition[i][2] + (not deltaymx and 0 or deltaymx)
        end
        ret = decomposition[i][1] .. ret
    end
    if shiftedStart and shiftedStart > 1 then
        --g.note(decompositionToString(decomposition)..","..shiftedStart..","..deltaymx.."->["..ret)
    end
    --if debug then g.note("decomposition..["..ret) end
    return "[" .. ret
end

local function hadronToDecomposition(decomposition, id, ymx)
    local stdymx = ymx - hadrons[id].detectymx
    local pop = 0 + g.getpop()
    putHadron(id, stdymx // 2, 'xor')
    if g.getpop() + (#hadrons[id].pattern) // 2 > pop then
        if debug then
            g.note("hadron does not match " .. id)
        end
        return
    end
    return true, extendDecomposition(decomposition, { id, stdymx })
end

local function isStackDecomposable(patternWithoutGliderArray)
    local i, j, xpy, ymx, stdymx
    -- I need to estimate the nonStackPop :(
    nonStackPop = 0
    for i = 1, #patternWithoutGliderArray, 2 do
        --fast checks first
        xpy = patternWithoutGliderArray[i] + patternWithoutGliderArray[i + 1]
        if minxpy > xpy then
            minxpy = xpy
        end
        if maxxpy < xpy then
            maxxpy = xpy
        end
        if xpy < -9 or xpy > 9 then
            nonStackPop = 1 + nonStackPop
        end
    end
    for i = 1, #patternWithoutGliderArray, 2 do
        --fast checks first
        xpy = patternWithoutGliderArray[i] + patternWithoutGliderArray[i + 1]
        if xpy < -36 or xpy > 40 then
            if (xpy == -59) or (xpy == -61) or (xpy == -62) then
                --part of R198 pattern ... boat
            elseif (xpy == -70) or (xpy == -71) or (xpy == -72) or (xpy == -73) or (xpy == -74) or (xpy == -75) or (xpy == -81) or (xpy == -82) or (xpy == -83) then
                -- part of R2398 pattern
            elseif (xpy == -2307) or (xpy == -2306) or (xpy == -2305) then
                -- part of R1296 pattern
            else
                if debug then
                    g.note("iSD xpy out of bounds " .. xpy)
                end
                return false, "A" .. xpy
            end
        elseif xpy > 9 and xpy < 38 then
            if debug then
                g.note("iSD xpy in a big SE gap " .. xpy)
            end
            return false, "B" .. xpy
        elseif xpy > 3 and xpy < 7 then
            if debug then
                g.note("iSD xpy in a gap " .. xpy)
            end
            return false, "C" .. xpy
        elseif xpy > -34 and xpy < -10 then
            if debug then
                g.note("iSD xpy in a big NW gap " .. xpy)
            end
            return false, "D" .. xpy
        end
    end

    local decomposition = {}
    g.new("play12Sequence");
    g.select({ 279, -272, 1, 1 })
    g.putcells(patternWithoutGliderArray)
    local changed = true
    while changed do
        --g.show("iSD3_"..#decomposition.." "..bits)
        local tpop = g.getpop() + 0
        if tpop == 0 then
            return true, decomposition
        end
        g.fit()
        changed = false
        for i = 1, #patternWithoutGliderArray, 2 do
            xpy, ymx = patternWithoutGliderArray[i] + patternWithoutGliderArray[i + 1], patternWithoutGliderArray[i + 1] - patternWithoutGliderArray[i]
            local hIdDetected
            if xpy < -56 then
                g.setcell(patternWithoutGliderArray[i], patternWithoutGliderArray[i + 1], 0)
                patternWithoutGliderArray = g.getcells(g.getrect())
                changed = true
                break
            else
                for hId, hadron in pairs(hadrons) do
                    if hadron.detectxpy and hadron.detectxpy == xpy then
                        hIdDetected = hId
                        for j = 1, (hadron.detectCheck and #hadron.detectCheck) or 0, 2 do
                            if g.getcell(patternWithoutGliderArray[i] + hadron.detectCheck[j], patternWithoutGliderArray[i + 1] + hadron.detectCheck[j + 1]) == 1 then
                                if false and debug then
                                    g.note(hIdDetected .. "detectCheck failed " ..
                                            inttostring(patternWithoutGliderArray[i] + hadron.detectCheck[j]) .. "," ..
                                            inttostring(patternWithoutGliderArray[i + 1] + hadron.detectCheck[j + 1]) .. " " ..
                                            decompositionToString(decomposition))
                                end
                                hIdDetected = nil
                                break
                            end
                        end
                        if hIdDetected then
                            break
                        end
                    end
                end
                if hIdDetected then
                    changed, decomposition = hadronToDecomposition(decomposition, hIdDetected, ymx)
                    patternWithoutGliderArray = g.getcells(g.getrect())
                    break
                end
            end
        end
    end
    return false, '>' .. (patternWithoutGliderArray[1] + patternWithoutGliderArray[2]) -- some bits remained, but no more hadrons detected
    -- ... the detection is on small xpy so the pattern eventually expands to higher xpy so this prevents infinite cycles
end

local function getNWgliderMod8name(gliderArray)
    -- numbers could require linear shifts
    --g.show("gNWgm8n   "..bits)
    --g.note("gNWgm8n   "..bits)
    if not gliderArray then
        return "" --otherwise 5 cells!
    end
    g.new("play12Sequence");
    g.select({ 279, -272, 1, 1 })
    g.putcells(gliderArray)
    local i, xpy, maxxpy, maxxpyi, x, y, ymx, mod8
    maxxpy, maxxpyi = gliderArray[1] + gliderArray[2], 1
    for i = 3, 10, 2 do
        xpy = gliderArray[i] + gliderArray[i + 1]
        if maxxpy < xpy then
            maxxpy, maxxpyi = xpy, i
        end
    end
    x, y = gliderArray[maxxpyi] - 1, gliderArray[maxxpyi + 1] - 1 -- "central cell"
    if g.getcell(x + 1, y - 1) == 0 then
        if g.getcell(x, y - 1) == 0 then
            mod8 = 3 + 4 * (x % 2)
            ymx = y - x + 2
        else
            mod8 = 2 + 4 * (x % 2)
            ymx = y - x + 1
        end
    else
        if g.getcell(x - 1, y) == 0 then
            mod8 = 1 + 4 * ((x + 1) % 2)
            ymx = y - x - 1
        else
            mod8 = 4 * (x % 2)
            ymx = y - x
        end
    end
    mod8 = (mod8 + 5) % 8 --standardise
    ymx = ymx + 551 -- standardise
    --g.note("glider name: ("..inttostring(ymx).." "..inttostring(mod8)..")")
    return "(" .. inttostring(ymx) .. " " .. inttostring(mod8) .. ")"
end

local function namecost(name)
    local ret = nil
    local tmp
    if string.find(name, '%[I') then
        ret = string.len(name) - string.len(string.gsub(name, '%[I', '['))
    end
    if not string.find(name, '%[H') and string.find(name, "%[T") then
        tmp = string.len(name) - string.len(string.gsub(name, '%[T', '['))
        ret = (ret or 0) + 2 * ((tmp + 2) // 3)
    end
    return ret
end

local function shiftedGliderBits(bitsWithGliders, ymxDelta)
    local posOpen, posClose, ret
    ret = ""
    posOpen = string.find(bitsWithGliders, '%(')
    posClose = string.find(bitsWithGliders, '% ')
    while posOpen and posClose do
        ret = ret .. string.sub(bitsWithGliders, 1, posOpen) .. inttostring(ymxDelta + string.sub(bitsWithGliders, posOpen + 1, posClose - 1)) .. ' '
        bitsWithGliders = string.sub(bitsWithGliders, posClose + 1)
        posOpen = string.find(bitsWithGliders, '%(')
        posClose = string.find(bitsWithGliders, '% ')
    end
    return ret .. bitsWithGliders
end

local moves, oriMoves = {}, {}
local expectedMoveToWrite, expectedMoveWritten, translatedMoveToWrite

local function writeMove(oriDecomposition, bitsWithGliders, decomposition)
    local i, minLen, commonSufixLen, preDec, postDec, ymx, oriDebug
    local oriDebug = debug
    local oriDecStart = (string.find('01', oriDecomposition[1][1]) and 2) or 1
    --debug = string.find(decompositionToString(oriDecomposition),'[LR]')
    -- if debug then g.note("wM oriDecomposition:"..decompositionToString(oriDecomposition)
    --   .."\nbitsWithGliders:"..bitsWithGliders
    --   .."\n decomposition:"..decompositionToString(decomposition)) end
    minLen = #oriDecomposition - oriDecStart
    minLen = (minLen < 0) and 0 or minLen
    if minLen > #decomposition then
        minLen = #decomposition
    end
    commonSufixLen = minLen
    for i = 1, minLen do
        if oriDecomposition[#oriDecomposition + 1 - i][1] ~= decomposition[#decomposition + 1 - i][1]
                or oriDecomposition[#oriDecomposition + 1 - i][2] ~= decomposition[#decomposition + 1 - i][2] then
            commonSufixLen = i - 1
            break
        end
    end
    preDec, postDec = {}, {}
    ymx = oriDecomposition[#oriDecomposition - commonSufixLen][2]
    for i = oriDecStart, #oriDecomposition - commonSufixLen do
        preDec[#preDec + 1] = { oriDecomposition[i][1], oriDecomposition[i][2] - ymx }
    end
    for i = 1, #decomposition - commonSufixLen do
        postDec[i] = { decomposition[i][1], decomposition[i][2] - ymx }
    end
    if debug then
        g.note("wM oriDecomposition:" .. decompositionToString(oriDecomposition)
                .. "\nbitsWithGliders:" .. bitsWithGliders
                .. "\ndecomposition:" .. decompositionToString(decomposition)
                .. "\ncommonSufixLen:" .. commonSufixLen
                .. "\noriDecStart:" .. oriDecStart
                .. "\npreDec:" .. decompositionToString(preDec)
                .. "\npostDec:" .. decompositionToString(postDec))
    end
    local bottom = ''
    if oriDecomposition[#oriDecomposition - commonSufixLen + 1] then
        if oriDecomposition[#oriDecomposition - commonSufixLen + 1][2] + 8 ~= ymx then
            bottom = inttostring(ymx - oriDecomposition[#oriDecomposition - commonSufixLen + 1][2])
        end
        bottom = bottom .. oriDecomposition[#oriDecomposition - commonSufixLen + 1][1]
    else
        bottom = '_'
    end
    i = 1
    while i < #preDec and i <= #postDec and preDec[i][1] == postDec[i][1] and string.find('RL', preDec[i][1]) and (preDec[i][2] == postDec[i][2]) do
        i = i + 1
    end
    local no1bits, no0bits = string.gsub(bitsWithGliders, "1", ""), string.gsub(bitsWithGliders, "0", "")
    if string.sub(no1bits, 1, 1) == "(" and string.sub(no1bits, -1, -1) == ")" then
        no1bits = ""
    end
    if string.sub(no0bits, 1, 1) == "(" and string.sub(no0bits, -1, -1) == ")" then
        no1bits = ""
    end
    if no1bits == "" then
        while i < #preDec and i <= #postDec and preDec[i][1] == postDec[i][1] and preDec[i][1] == 'S' and (preDec[i][2] == postDec[i][2]) do
            i = i + 1
        end
    end
    if no0bits == "" then
        while i < #preDec and i <= #postDec and preDec[i][1] == postDec[i][1] and preDec[i][1] == 'I' and (preDec[i][2] == postDec[i][2]) do
            i = i + 1
        end
    end

    local move = decompositionToString(preDec, i) .. shiftedGliderBits(bitsWithGliders, -ymx) .. decompositionToString(postDec, i)
    if debug then
        g.note('ori' .. decompositionToString(oriDecomposition) ..
                '\nnew' .. decompositionToString(decomposition) ..
                '\npre' .. decompositionToString(preDec) ..
                '\npost' .. decompositionToString(postDec) ..
                '\nbottom' .. bottom ..
                '\nmove' .. move)
    end
    if expectedMoveToWrite then
        if debug then
            g.note("Expected " .. expectedMoveToWrite .. " got " .. move)
        end
        if translatedMoveToWrite ~= nil then
            if debug then
                g.note("transatedMoveToWrite:" .. translatedMoveToWrite .. " move:" .. move)
            end
            if move == expectedMoveToWrite then
                move = translatedMoveToWrite
            end
        elseif expectedMoveWritten == nil or expectedMoveWritten then
            expectedMoveWritten = move == expectedMoveToWrite
            debug = oriDebug
            return
        end
    end
    if debug then
        g.note("moves[" .. move .. "].push('" .. bottom .. "')")
    end
    if not moves[move] then
        writeLog(move)
        moves[move] = { '', { bottom } }
    else
        for i = 1, #moves[move] do
            if moves[move][2][i] == bottom then
                debug = oriDebug
                return
            end
        end
        moves[move][2][1 + #moves[move][1]] = bottom
    end
    debug = oriDebug
end

local function testSeparated(pattern, postNoGliderPattern, gliderPattern, firstBit)
    local secondBit = 1 - firstBit
    g.new("play12Sequence");
    g.select({ 279, -272, 1, 1 })
    g.putcells(pattern)
    putHadron(inttostring(firstBit), 0)
    putHadron(inttostring(secondBit), 4096)
    g.setbase(2)
    g.setstep(15)
    if debug then
        g.fit();
        g.note("test separated pre step")
    end
    g.step()
    if debug then
        g.fit();
        g.note("test separated post step")
    end
    g.putcells(postNoGliderPattern, 0, 0, 1, 0, 0, 1, "xor")
    local popXor = 0 + g.getpop()
    if gliderPattern then
        return popXor == 5
    else
        return popXor == 0
    end
end

local evt
local function bitStep(pattern, bit, extrabit, orig)
    local isOK, gliderPattern, postPattern, postNoGliderPattern
    --writeLog("bitStep(pattern,"..bit..","..(extrabit or '')..")")
    evt = g.getevent()
    if evt:find("key d none") == 1 then
        debug = not debug
        g.note('debug set to ' .. (debug and "true" or "false"))
    else
        g.doevent(evt)
    end
    if extrabit then
        g.autoupdate(debug)
        g.setlayer(0)
    end
    g.new("play12Sequence");
    g.select({ 279, -272, 1, 1 })
    g.putcells(pattern)
    if 0 + bit ~= 0 then
        putHadron('1', 0)
    end
    if 0 + bit ~= 1 then
        putHadron('0', 0)
    end
    g.setbase(2)
    g.setstep(14)
    if debug then
        g.fit();
        g.note("bitStep(" .. bit .. "," .. type(extrabit) .. " " .. (extrabit or '') .. ") pre step")
    end
    g.step()
    if debug then
        g.fit();
        g.note("bitStep(" .. bit .. "," .. type(extrabit) .. " " .. (extrabit or '') .. ") post step")
    end
    postPattern = g.getcells(g.getrect())
    if extrabit then
        if debug then
            g.note("extrabit setaration test")
        end
        g.setlayer(1)
        g.new("play12Sequence");
        g.select({ 279, -272, 1, 1 })
        g.putcells(pattern)
        if extrabit == "0" then
            putHadron('1', 0)
        end
        if extrabit == "1" then
            putHadron('0', 0)
        end
        g.setbase(2)
        g.setstep(14)
        if debug then
            g.fit();
            g.note("bitStep separated, first glider) pre step")
        end
        g.step()
        if debug then
            g.fit();
            g.note("bitStep separated, first glider) post step")
        end
        local midPattern = g.getcells(g.getrect())
        g.fit()
        if debug then
            g.note("midPattern")
        end
        isOK, gliderPattern = isSmallAtMost1g(midPattern)
        if not isOK then
            g.fit()
            if debug then
                g.note("bad midPattern")
            end
            return false
        end
        g.putcells(midPattern)
        if gliderPattern then
            --g.note("glider "..bitsWithGliders)
            g.putcells(gliderPattern, 0, 0, 1, 0, 0, 1, "xor")
            g.fit()
            if debug then
                g.note("glider removed")
            end
        end
        local midNoGliderPattern = g.getcells(g.getrect())
        if extrabit == "0" then
            putHadron('0', 0)
        end
        if extrabit == "1" then
            putHadron('1', 0)
        end
        g.setbase(2)
        g.setstep(14)
        if debug then
            g.fit();
            g.note("bitStep separated, second glider) pre step")
        end
        g.step()
        if debug then
            g.fit();
            g.note("bitStep separated, second glider) post step")
        end
        local endPattern = g.getcells(g.getrect())
        g.fit()
        if debug then
            g.note("pattern with the extrabit")
        end
        g.putcells(postPattern, 0, 0, 1, 0, 0, 1, "xor")
        g.fit()
        if debug then
            g.note("xored with pattern obtained by nonseparated bit gliders")
        end
        if gliderPattern then
            --g.note("glider "..bitsWithGliders)
            g.putcells(gliderPattern, 0, 0, 1, 0, 0, 1, "xor")
            g.fit()
            if debug then
                g.note("xored with emitted glider should be empty if separation works")
            end
        end
        if g.getpop() + 0 ~= 0 then
            return false
        end
        return isOK, midNoGliderPattern, gliderPattern
    end
    isOK, gliderPattern = isSmallAtMost1g(postPattern, orig)
    if isOK then
        g.new("play12Sequence");
        g.select({ 279, -272, 1, 1 })
        if postPattern then
            g.putcells(postPattern)
        end
        if gliderPattern then
            --g.note("glider "..bitsWithGliders)
            g.putcells(gliderPattern, 0, 0, 1, 0, 0, 1, "xor")
        end
        postNoGliderPattern = g.getcells(g.getrect())
    end
    return isOK, postNoGliderPattern, gliderPattern
end

--local b = io.open("c:\\Golly\\Bits.txt","r")
--bits=''

local function DoBits(shortstackdescription, skipSpaces)
    local oriBits, pattern, postNoGliderPattern, gliderPattern, name, isOK, maxPop, maxNonStackPop
    local oriDecompositions, decomposition, oriGliderName, ymxOffs
    local ssd = shortstackdescription
    local countSpaceBits, countBits = 0, 0
    bitsWithGliders = ''
    minxpy, maxxpy, maxPop, maxNonStackPop = 0, 0, 0, 0
    g.new("play12Sequence");
    g.select({ 279, -272, 1, 1 })
    ymxOffs = 0
    --writeLog("DoBits("..shortstackdescription..","..(extrabit or '')..")")
    while shortstackdescription ~= "" do
        local hId, pos
        hId = string.sub(shortstackdescription, 1, 1)
        if not putHadron(hId, ymxOffs // 2) then
            return
        end
        shortstackdescription = string.sub(shortstackdescription, 2)
        pos = string.find(shortstackdescription .. "H", "[SPDdBtThHIRL]")
        if pos == 1 then
            ymxOffs = ymxOffs - 8
        else
            ymxOffs = ymxOffs - string.sub(shortstackdescription, 1, pos - 1)
        end
        shortstackdescription = string.sub(shortstackdescription, pos)
    end
    pattern = g.getcells(g.getrect())
    if debug then
        g.fit();
        g.note("DoBits(" .. ssd .. "," .. bits)
        g.setbase(2)
        g.setstep(2)
        g.step()
        g.new("play12Sequence");
        g.select({ 279, -272, 1, 1 })
        g.putcells(pattern)
    end
    local prevBit = ""
    local isCheckPoint = false
    while bits ~= "" do
        showSufix = bits
        g.show(showPrefix .. " " .. showSufix)
        local bit = string.sub(bits, 1, 1)
        bits = string.sub(bits, 2)
        while bit ~= "1" and bit ~= "2" do
            if skipSpaces <= countSpaceBits and bit ~= prevBit then
                g.autoupdate(true);
                g.fit()
                if bit == ' ' then
                    debug = true
                end
            end
            if bit == "E" then
                bits = "1111" .. bits
            elseif bit == "S" then
                bits = "111" .. bits
            elseif bit == "B" then
                bits = "11" .. bits
                --elseif bit == "P" then
                --:only before special sequences"
                --    bits = "1" .. bits
            elseif bit == " " and bit ~= prevBit then
                countSpaceBits = countSpaceBits + 1
                isCheckPoint = true
                showPrefix = inttostring(countSpaceBits) .. " " .. inttostring(countBits)
                if isOK then
                    writeLog(countSpaceBits .. ":" .. decompositionToString(decomposition))
                end
            end
            prevBit = bit
            if bits == "" then
                return
            end
            bit = string.sub(bits, 1, 1)
            bits = string.sub(bits, 2)
        end
        prevBit = bit
        g.setlayer(0)
        isOK, postNoGliderPattern, gliderPattern = bitStep(pattern, bit, nil, true)
        if isCheckPoint then
            local isOK, decomposition = isStackDecomposable(postNoGliderPattern)
            if isOK then
                writeLog(countSpaceBits .. ":" .. decompositionToString(decomposition))
            else
                writeLog(countSpaceBits .. ":not decomposable " .. (not decomposition and "" or decomposition))
            end
            isCheckPoint = false
        end
        debug = false
        countBits = 1 + countBits
        if not isOK then
            if debug then
                g.note('ko isSmallAtMost1g')
            end
            writeLog('ko isSmallAtMost1g')
            return
        end
        g.new("play12Sequence");
        g.select({ 279, -272, 1, 1 })
        g.putcells(postNoGliderPattern);
        g.fit()
        isOK, decomposition = isStackDecomposable(postNoGliderPattern)
        g.new("play12Sequence");
        g.select({ 279, -272, 1, 1 })
        g.putcells(postNoGliderPattern)
        g.setpos(349, -272)
        g.setmag(2)
        if maxPop < pop then
            maxPop = pop
            if maxPop > maxPopLimit then
                if debug then
                    g.note('maxPopLimit exceeded ' .. maxPop)
                end
                writeLog('maxPopLimit exceeded ' .. maxPop)
                return
            end
        end
        if maxNonStackPop < nonStackPop then
            maxNonStackPop = nonStackPop
            if maxNonStackPop > maxNonStackPopLimit then
                if debug then
                    g.note('NonStackPopLimit exceeded ' .. maxNonStackPop)
                end
                writeLog('NonStackPopLimit exceeded ' .. maxNonStackPop)
                return
            end
        end
        if minxpy < minxpyLimit then
            if debug then
                g.note('minxpyLimit exceeded ' .. minxpy)
            end
            writeLog('minxpyLimit exceeded ' .. minxpy)
            return
        end
        if maxxpy > maxxpyLimit then
            if debug then
                g.note('maxxpyLimit exceeded ' .. maxxpy)
            end
            writeLog('maxxpyLimit exceeded ' .. maxxpy)
            return
        end
        pattern = postNoGliderPattern
    end
end

local function allseq(start)
    local seqNo, pos, iniStack, saveBits
    for i = (not start and 1) or start, #allBits do
        --chosenI,chosenI do
        seqNo = i
        showPrefix = (inttostring(seqNo) .. "/" .. inttostring(#allBits))
        g.show(showPrefix .. " " .. showSufix)
        bits = allBits[seqNo]
        if string.sub(bits, 1, 1) == '[' then
            pos = string.find(bits, '%]')
            iniStack = string.sub(bits, 2, pos - 1)
            bits = string.sub(bits, pos + 1)
            pos = string.find(bits, '%[')
            bits = string.sub(bits, 1, pos - 1)
            pos = string.find(bits, '%(')
            while pos do
                bits = string.sub(bits, 1, pos - 1) .. string.sub(bits, string.find(bits, '%)') + 1)
                pos = string.find(bits, '%(')
            end
            --g.note("iniStack="..iniStack.." bits="..bits)
            saveBits = bits
            DoBits(iniStack);
            bits = saveBits
            -- DoBits(iniStack.."S");bits=saveBits
            -- DoBits(iniStack.."P");bits=saveBits
            -- DoBits(iniStack.."D");bits=saveBits
            -- DoBits(iniStack.."B");bits=saveBits
            -- DoBits(iniStack.."6d");bits=saveBits
            ---- DoBits(iniStack.."H");bits=saveBits -- spacing?
            ---- DoBits(iniStack.."T");bits=saveBits -- spacing?
        else
            DoBits('S');
            DoBits('SB');
            DoBits('SD');
            DoBits('SP');
            DoBits('SS');
            DoBits('HT');
            DoBits('I');
        end
        --  for j=3,6 do
        --    bits=allBits[seqNo]
        --    DoBits(3,j)
        --  end
    end
end

local function parseMove(moveConds)
    local preStack, postStack, conds, pos, move, extrabit, glider
    pos, conds = string.find(moveConds .. '{', '%{'), ""
    conds = string.sub(moveConds, pos + 1, string.find(moveConds .. '}', '%}') - 1)
    move = string.sub(moveConds, 1, pos - 1)
    pos = string.find(move, '%]')
    preStack = string.sub(move, 2, pos - 1)
    bits = string.sub(move, pos + 1)
    pos = string.find(bits, '%[')
    postStack = string.sub(bits, pos + 1, -2)
    bits = string.sub(bits, 1, pos - 1)
    glider, pos = '', string.find(bits, '%(')
    if pos then
        glider = inDelimiters(bits, '(', ')')
        bits = string.sub(bits, 1, pos - 1) .. string.sub(bits, string.find(bits, '%)') + 1)
    end
    extrabit = string.sub(postStack, 1, 1)
    if extrabit ~= "1" and extrabit ~= "0" then
        extrabit = nil
    end
    --g.note("pM type(extrabit):"..type(extrabit))
    return bits, move, conds, preStack, extrabit, postStack, glider
end

local function checkOddMovePrestack(iniStack)
    local ret, i = "", 1
    while i <= string.len(iniStack) do
        ret = ret .. string.sub(iniStack, i, i)
        local nextI = string.find(iniStack .. 'H', '[BDdPSHhTtI]', i + 1)
        local dist = string.sub(iniStack, i + 1, nextI - 1)
        if dist ~= "" and (0 + dist) % 2 == 1 then
            dist = inttostring(dist + 1)
        end
        ret = ret .. dist
        i = nextI
    end
    return ret
end

local function fileseq(filename, ignoreLineStartLen)
    local i = io.open(filename, "r")
    ignoreLineStartLen = ignoreLineStartLen or 4
    if not i then
        return
    end
    local inputLine, iniStack, saveBits, conds, cond, extrabit, postCondTable, move
    local moveLines, pos, pos2
    moveLines = ""
    while not pos2 do
        showPrefix = (filename .. ">" .. moveLines)
        g.show(showPrefix .. " " .. showSufix)
        inputLine = i:read()
        if not inputLine then
            break
        end
        pos2 = string.find(inputLine, '%-%-')
        if pos2 then
            inputLine = string.sub(inputLine, 1, pos2 - 1)
        end
        moveLines = moveLines .. " " .. inputLine
        pos = string.find(moveLines, '%]')
        pos2 = string.find(moveLines, '%]', pos + 1)
    end
    i:close()
    moveLines = string.sub(moveLines, 2)
    showPrefix = (filename .. ">" .. moveLines)
    g.show(showPrefix .. " " .. showSufix)
    saveBits, move, conds, iniStack, extrabit = parseMove(moveLines)
    --  g.note("saveBits:\n"..saveBits)
    --  g.note("move:\n"..move)
    --  g.note("conds:\n"..conds)
    --  g.note("iniStack:\n"..iniStack)
    --  g.note("iniStack:\n"..iniStack)
    showPrefix = ""--filename..">"..move.."\n"
    g.show(showPrefix .. " " .. showSufix)
    bits = saveBits;
    DoBits(iniStack, skipSpaces) -- to check '_' condition
end

--debug=true;
g.autoupdate(false)
fileseq("c:\\Golly\\PlayBitSequence.txt") -- extension
--fileseq("c:\\Golly\\BlinkerBitSequences.txt",0) -- extension
--debugallowed=false;g.autoupdate(true)
--fileseq("c:\\Golly\\results.txt",0) -- extension
I use this file of "hadron moves" for StackToStack portion, I have not experimened with is further reduction:

Code: Select all

   1[B]0[]{I9:_,5T,5t,5I,9H,9h,7B,9P,7d,7D,7S}
   1[B]1[S]{S5:_,5T,5t,7I,9H,9h,5B,7P,5d,5D,5S}
   1[B]2[1]{:_,5T,5t,5I,9H,9h,7B,9P,7d,7D,7S}
   1[B6D]2[1]{:_,5T,3t,-1I,7H,9h,5B,7P,5d,5D,5S}
   1[B6d6DBDS]2[]{:_,3T,1t,1I,5H,5h,5B,5P,5d,5D,5S}
   1[B6d6SPS]2[]{:_,5T,3t,3I,7H,7h,5B,7P,5d,5D,5S}
   1[B6S]2[1]{:_,5T,3t,1I,9H,9h,9B,9P,9d,9D,9S}
   1[D]1[P]{S5:_,5T,3t,5I,7H,9h,5B,7P,5d,5D,5S}
   1[H2T6d]1[]{S3:_,13T,13t,15I,17H,17h,13B,15P,13d,13D,9S}
   1[I]1[]{S-127:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,-127S}
   1[I]2[0]{:_,11T,15t,7I,9H,11h,9B,19P,9d,13D,11S}
   1[I6T]1[]{S5:_,11T,11t,13I,15H,15h,13B,15P,11d,11D,11S}
   1[P]1[B]{S5:_,5T,3t,5I,7H,9h,5B,7P,5d,5D,5S}
   1[S]0[D6d-2]{I5:_,7T,5t,3I,9H,11h,7B,9P,7d,7D,7S}
   1[S]2[P6d-2]{:_,7T,5t,3I,9H,11h,7B,9P,7d,7D,7S}
   1[S6d]2[PD2]{:_,5T,3t,3I,7H,9h,5B,7P,5d,5D,5S}
   1[S6d2I]2[P12]{:_,5T,5t,7I,9H,11h,7B,9P,7d,7D,5S}
   1[T]0[]{I11:_,7T,5t,7I,11H,11h,7B,9P,9d,7D,7S}
   1[T]1[I-2]{S-127:_,7T,7t,7I,11H,11h,7B,9P,7d,7D,-127S}
   1[T]2[1]{:_,7T,5t,7I,11H,11h,7B,9P,9d,7D,7S}
   2[B6d6DBD]21[]{:_,9T,7t,9I,11H,13h,9B,11P,9d,9D,9S}
   2[d6DD]11[]{S7:_,5T,3t,3I,7H,9h,5B,7P,5d,5D,5S}
   2[DB]22[1]{:_,5T,3t,5I,7H,9h,5B,7P,5d,5D,5S}
   2[H2T]11[]{S7:_,9T,9t,9I,13H,13h,9B,11P,7d,7D,1S}
   2[I6I]11[]{S1:_,5T,3t,7I,7H,7h,5B,7P,3d,3D,-1S}
   2[S6d]12[H6T]{:_,9T,7t,7I,11H,13h,9B,11P,9d,9D,5S}
   2[t]11[]{S-127:_,9T,9t,11I,13H,13h,9B,11P,9d,9D,-127S}
   2[t]12[]{:_,15T,13t,13I,17H,19h,15B,17P,15d,15D,11S}
   3[H2T6B]111[]{S13:_,11T,9t,11I,13H,15h,11B,13P,11d,11D,7S}
   7[H]1112112[1]{:_,5T,3t,5I,7H,9h,5B,7P,5d,5D,1S}
   8[H]11111112[H6T12]{:_,5T,3t,5I,7H,9h,5B,7P,5d,5D,1S}
   9[PDB]221112122[1T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  10[h]1111111112[1]{:_,3T,3t,5I,7H,7h,5B,7P,3d,3D,1S}
  11[H]11111111111[h4t14]{S25:_,5T,3t,5I,7H,9h,5B,7P,5d,5D,3S}
  11[h]11111111111[H6T14]{S25:_,3T,3t,5I,7H,7h,5B,7P,3d,3D,1S}
  11[PDD]21121112122[1T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  20[PDBSSSD]22112211111212121211[H6T10]{:_,9T,7t,7I,11H,13h,9B,11P,9d,9D,7S}
  20[PDBSSSDB]22112211111212121211[H6T18S]{:_,5T,3t,5I,7H,9h,5B,7P,5d,5D,5S}
  23[S6d6BDDBB]12112122121211121112111[H6T26S]{:_,9T,9t,5I,13H,15h,5B,7P,5d,5D,5S}
  28[B6d6DSDDSD]2221121121111112112111112121[S12]{:_,7T,5t,5I,9H,9h,7B,9P,7d,7D,7S}
  29[B6d6DSDBBS]21211121111111111111111112111[H6T38T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  29[PDDBD]21221112211112211111111111112[H6T18T10T]{:_,9T,7t,9I,13H,13h,13B,13P,13d,13D,13S}
  30[PDBS]221122111112121112111211111112[I14T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  31[B6d6DSDDDD]2221111121121121121111111112121[S12]{:_,7T,5t,5I,9H,9h,7B,9P,7d,7D,7S}
  31[PDBS]2211221111121211121112111111111[T16T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  32[S6d6BDSB]11212221121121112211111221121112[H6T]{:_,9T,7t,9I,13H,13h,13B,13P,13d,13D,13S}
  34[B6d6DSDDBS]2221221121121121111112112111112121[S12]{:_,7T,5t,5I,9H,11h,7B,9P,7d,7D,7S}
  34[PDBS]2211212112112211111212111211121111[H6T16T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  36[PDDDBSD]212212121211121112111111111221212212[H6T42]{:_,9T,9t,9I,13H,13h,7B,11P,9d,9D,7S}
  38[PDDDDDBS]22221121211211121111222211112111211121[H6T36T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  39[B6d6DSDDDDD]211111111211211211221121121111121111122[S22t28]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  40[B6d6DSDDS]2221121121111211222121111111112111111111[H6T34T-16]{:_,23T,23t,25I,27H,27h,25B,27P,25d,25D,23S}
  40[PDBSBSS]2211212221112111222221112121111122111111[T40T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  40[S6d6BDSB]1121222112112111221111122112111111111122[H6T18T]{:_,9T,7t,9I,13H,13h,13B,13P,13d,13D,13S}
  41[PDBSBSS]22112122211121112222211121211111121111112[H6T10T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  44[PDBDDSS]22112222112212112112112111112112111112121211[H6T10]{:_,9T,7t,7I,11H,13h,9B,11P,9d,9D,7S}
  46[S6d6BDSS]1122112112112112112112111112112111211112221211[H6T16]{:_,7T,5t,5I,9H,11h,7B,9P,7d,7D,7S}
  49[S6d6BDS]1122112112111112112112112111112112111211112221211[H6T8]{:S}
I use this full set for emissions (as the code filters unnecessary out):

Code: Select all

   1[B]0[]{I9:_,5T,5t,5I,9H,9h,7B,9P,7d,7D,7S}
   1[B]1[S]{S5:_,5T,5t,7I,9H,9h,5B,7P,5d,5D,5S}
   1[B]2[1]{:_,5T,5t,5I,9H,9h,7B,9P,7d,7D,7S}
   1[B6D]2[1]{:_,5T,3t,-1I,7H,9h,5B,7P,5d,5D,5S}
   1[B6d6DBDS]2[]{:_,3T,1t,1I,5H,5h,5B,5P,5d,5D,5S}
   1[B6d6SPS]2[]{:_,5T,3t,3I,7H,7h,5B,7P,5d,5D,5S}
   1[B6S]2[1]{:_,5T,3t,1I,9H,9h,9B,9P,9d,9D,9S}
   1[D]1[P]{S5:_,5T,3t,5I,7H,9h,5B,7P,5d,5D,5S}
   1[H2T6d]1[]{S3:_,13T,13t,15I,17H,17h,13B,15P,13d,13D,9S}
   1[I]1[]{S-127:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,-127S}
   1[I]2[0]{:_,11T,15t,7I,9H,11h,9B,19P,9d,13D,11S}
   1[I6T]1[]{S5:_,11T,11t,13I,15H,15h,13B,15P,11d,11D,11S}
   1[P]1[B]{S5:_,5T,3t,5I,7H,9h,5B,7P,5d,5D,5S}
   1[S]0[D6d-2]{I5:_,7T,5t,3I,9H,11h,7B,9P,7d,7D,7S}
   1[S]2[1D6d-2]{:_,7T,5t,3I,9H,11h,7B,9P,7d,7D,7S}
   1[S6d]2[1DD2]{:_,5T,3t,3I,7H,9h,5B,7P,5d,5D,5S}
   1[S6d2I]2[1D12]{:_,5T,5t,7I,9H,11h,7B,9P,7d,7D,5S}
   1[T]0[]{I11:_,7T,5t,7I,11H,11h,7B,9P,9d,7D,7S}
   1[T]1[I-2]{S-127:_,7T,7t,7I,11H,11h,7B,9P,7d,7D,-127S}
   1[T]2[1]{:_,7T,5t,7I,11H,11h,7B,9P,9d,7D,7S}
   2[B6d6DBD]21[]{:_,9T,7t,9I,11H,13h,9B,11P,9d,9D,9S}
   2[d6DD]11[]{S7:_,5T,3t,3I,7H,9h,5B,7P,5d,5D,5S}
   2[DB]22[1]{:_,5T,3t,5I,7H,9h,5B,7P,5d,5D,5S}
   2[H2T]11[]{S7:_,9T,9t,9I,13H,13h,9B,11P,7d,7D,1S}
   2[I6I]11[]{S1:_,5T,3t,7I,7H,7h,5B,7P,3d,3D,-1S}
   2[S6d]12[H6T]{:_,9T,7t,7I,11H,13h,9B,11P,9d,9D,5S}
   2[t]11[]{S-127:_,9T,9t,11I,13H,13h,9B,11P,9d,9D,-127S}
   2[t]12[]{:_,15T,13t,13I,17H,19h,15B,17P,15d,15D,11S}
   3[H2T6B]111[]{S13:_,11T,9t,11I,13H,15h,11B,13P,11d,11D,7S}
   7[B6d6DSSD]22(2 3)[]{:_,11T,11t,11I,15H,15h,13B,15P,13d,13D,9S}
   7[H]1112112[1]{:_,5T,3t,5I,7H,9h,5B,7P,5d,5D,1S}
   8[B6d6DSSDS]22(10 3)[]{:_,3T,3t,3I,7H,7h,5B,7P,5d,5D,5S}
   8[H]11111112[H6T12]{:_,5T,3t,5I,7H,9h,5B,7P,5d,5D,1S}
   8[H]11111211[H6T12]{:_,5T,3t,5I,7H,9h,5B,7P,5d,5D,1S}
   8[H]11121111[H6T12]{:_,5T,3t,5I,7H,9h,5B,7P,5d,5D,1S}
   9[B6d6DBSDS]212(10 3)[]{:_,3T,3t,3I,7H,7h,5B,7P,5d,5D,5S}
   9[PDB]221112122[1T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  10[h]1111111112[1]{:_,3T,3t,5I,7H,7h,5B,7P,3d,3D,1S}
  11[H]11111111111[h4t14]{S25:_,5T,3t,5I,7H,9h,5B,7P,5d,5D,3S}
  11[h]11111111111[H6T14]{S25:_,3T,3t,5I,7H,7h,5B,7P,3d,3D,1S}
  11[H6T18T18T]11111111222[h4t56]{:_,7T,5t,7I,11H,11h,7B,9P,9d,7D,7S}
  11[PDD]21121112122[1T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  19[T6SPDS]2(38 0)111112111211[T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  19[T6SPDS]2(38 0)112111111212[T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  20[PDBSSSD]22112211111212121211[H6T10]{:_,9T,7t,7I,11H,13h,9B,11P,9d,9D,7S}
  20[PDBSSSDB]22112211111212121211[H6T18S]{:_,5T,3t,5I,7H,9h,5B,7P,5d,5D,5S}
  21[PDDDD]211211212211211121122[1L2T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  23[S6d6BDDBB]12112122121211121112111[H6T26S]{:_,9T,9t,5I,13H,15h,5B,7P,5d,5D,5S}
  26[T6SPDBB]2(46 0)1111112112221112112[1T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  28[B6d6DSDDSD]2221121121111112112111112121[S12]{:_,7T,5t,5I,9H,9h,7B,9P,7d,7D,7S}
  29[B6d6DSDBBS]21211121111111111111111112111[H6T38T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  29[PDDBD]21221112211112211111111111112[H6T18T10T]{:_,9T,7t,9I,13H,13h,13B,13P,13d,13D,13S}
  30[PDBS]221122111112121112111211111112[1T16T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  31[B6d6DSDDDD]2221111121121121121111111112121[S12]{:_,7T,5t,5I,9H,9h,7B,9P,7d,7D,7S}
  31[PDBS]2211221111121211121112111111111[T16T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  32[S6d6BDSB]11212221121121112211111221121112[H6T]{:_,9T,7t,9I,13H,13h,13B,13P,13d,13D,13S}
  33[S6d6BDBDDDDB]11212121112112222111122(7 2)11112[T6]{:_,5T,3t,5I,7H,9h,5B,7P,5d,5D,5S}
  34[B6d6DSDDBS]2221221121121121111112112111112121[S12]{:_,7T,5t,5I,9H,11h,7B,9P,7d,7D,7S}
  34[PDBS]2211212112112211111212111211121111[H6T16T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  36[PDDDBSD]212212121211121112111111111221212212[H6T42]{:_,9T,9t,9I,13H,13h,7B,11P,9d,9D,7S}
  37[B6d6DSDDSB]2221121121111121121121122(29 6)112222[]{:_,5T,5t,7I,9H,9h,5B,7P,7d,5D,5S}
  38[PDDDDDBS]22221121211211121111222211112111211121[H6T36T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  39[B6d6DSDDDDD]211111111211211211221121121111121111122[S22t28]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  40[B6d6DSDDS]222112111211111111111111212111111(33 0)2[1T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  40[B6d6DSDDS]2221121121111211222121111111112111111111[H6T34T-16]{:_,23T,23t,25I,27H,27h,25B,27P,25d,25D,23S}
  40[PDBSBB]2211221111121211222112111222(17 7)111111[]{:_,7T,5t,5I,9H,11h,7B,9P,7d,7D,7S}
  40[PDBSBB]2211221111121211222112111222(17 7)111122[H6T12]{:_,7T,5t,5I,9H,11h,7B,9P,7d,7D,7S}
  40[PDBSBSS]2211212221112111222221112121111122111111[T40T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  40[PDDDDDDD]2122111112112111221222111211112112111222[D6d-14]{:_,19T,17t,15I,21H,23h,19B,21P,19d,19D,19S}
  40[S6d6BDDSS]12221112221121111212222(12 2)11221122212[]{:_,15T,13t,9I,19H,19h,19B,19P,19d,19D,19S}
  40[S6d6BDSB]1121222112112111221111122112111111111122[H6T18T]{:_,9T,7t,9I,13H,13h,13B,13P,13d,13D,13S}
  41[PDBSBSS]22112122211121112222211121211111121111112[H6T10T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  42[B6d6DDSSDDB]22(18 4)2112112111111111111111112222121222[]{:_,21T,19t,19I,23H,25h,21B,23P,21d,21D,5S}
  42[B6d6DSDDDD]211122122211211211211111112112112112212211[S24]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  42[B6d6DSDDDD]222111112112111111121121121122(29 6)121222[]{:_,5T,5t,7I,9H,9h,5B,7P,7d,5D,5S}
  43[B6d6DSDDD]222111112111211111111111121112111111(33 0)2[1T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  43[S6d6BDSDDD]11221111121121121121111112112122(52 5)11221[H6T14]{:_,5T,3t,-1I,7H,9h,7B,7P,7d,7D,7S}
  44[B6d6DBDDBDD]2221121112111111111111111221121111212(51 3)2[1I26t20T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  44[B6d6DSDDS]222112111211111111111111212111111(33 0)11111[H6T50T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  44[B6d6DSDDS]222112111211111111112111212111111(33 0)11111[H6T48]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,9S}
  44[PDBDDSS]22112222112212112112112111112112111112121211[H6T10]{:_,9T,7t,7I,11H,13h,9B,11P,9d,9D,7S}
  44[S6d6BDDBD]1211212211221121121122211111112212122(26 5)1[]{:_,5T,5t,3I,9H,9h,7B,9P,7d,7D,5S}
  44[S6d6BDSS]11221121121111121121121111111121121111122111[S28]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  45[B6d6DSDDSS]2221121121111121121121122(29 6)11221111111112[]{:_,1T,-1t,1I,3H,3h,5B,5P,7d,5D,5S}
  45[PDBSPSS]22211221112111112(21 2)2121112111111121111122[1T18T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  45[S6d6BDDBB]12112122112211211111211211212(-11 4)112121112[]{:_,15T,13t,13I,17H,19h,13B,13P,13d,13D,13S}
  46[PDBSPSS]22211221112111112(21 2)21211121111111211111112[H6T18T18T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  46[S6d6BDSDDDD]1122111112112111112112112111211112112111112211[S52]{:_,5T,3t,3I,7H,9h,7B,7P,7d,7D,7S}
  46[S6d6BDSS]1122112112112112112112111112112111211112221211[H6T16]{:_,7T,5t,5I,9H,11h,7B,9P,7d,7D,7S}
  47[B6d6DSDDDDD]22211111211211211221121121211112112222112221111[S32]{:_,9T,9t,11I,13H,13h,11B,13P,11d,11D,11S}
  47[PDDDDDDD]221121122211211212222111122(43 6)22111111112222[1t40]{:_,5T,3t,3I,7H,9h,7B,7P,7d,7D,7S}
  47[PDDDDDDDB]221121122211211212222211122(51 6)22111111112222[1t48]{:_,5T,5t,5I,9H,9h,7B,9P,7d,7D,7S}
  47[S6d6BDDB]121121221122112111121122211111112212122(18 5)21[]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  47[S6d6BDSD]11221111121121111121121121111111121121111122111[S28]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  49[PDBBBSS]22112212112212111211111111111112222(29 3)21211212[1D]{:_,7T,5t,5I,9H,11h,7B,9P,7d,7D,7S}
  49[PDDDDD]2112112211111112112112211112112111222(17 7)111111[]{:_,7T,5t,5I,9H,11h,7B,9P,7d,7D,7S}
  49[PDDDDD]2112112211111112112112211112112111222(17 7)111122[H6T12]{:_,7T,5t,5I,9H,11h,7B,9P,7d,7D,7S}
  49[S6d6BDBDD]11212111121121111211211211211111121121221(27 5)12[1B]{:_,5T,3t,5I,7H,9h,5B,7P,5d,5D,5S}
  49[S6d6BDDD]12112122122112112111121122211111211221122(18 5)21[]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  49[S6d6BDDS]12112122121112112111121122211111112212122(18 5)21[]{:_,7T,5t,5I,9H,11h,7B,9P,7d,7D,7S}
  49[S6d6BDS]1122112112111112112112112111112112111211112221211[H6T8]{:S}
  49[S6d6BDSDD]1122111112112111111121121121112111121121111122111[S36]{:_,5T,5t,5I,9H,9h,7B,9P,7d,7D,7S}
  50[S6d6BDDDDS]1211212212211211211111112112112111212111212(-3 4)2[]{:_,7T,5t,5I,9H,11h,7B,7P,7d,7D,7S}
  50[S6d6BDSDD]11221111121112111121121121122112112121121121121111[S6d6D6]{:_,9T,7t,9I,13H,13h,13B,13P,13d,13D,13S}
  50[SPDBS]211112(15 2)11111122121112111111121111111212211112[T18T18T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  51[SPBDD]212221121121122112111211221121111121112111211111122[T6S26I-4]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  56[PDDDD]21111121121122211211211211111211121211222222111211(13 1)[S6d-2]{:B}
  56[S6d6BDSSDD]11212211112111211122(41 4)112112221121111121111111111112[T18t28]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  57[PDDDDBD]211111211211221112112112112111112111212112222221211(29 1)[S6d6DS]{:_,5T,5t,7I,9H,9h,5B,7P,5d,5D,5S}
  57[S6d6BDBDD]1121211112112112112112111(9 0)221121121121212112111211122[1T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  58[B6d6DSDD]2111211211211211111211211211221121121211211221111121211112[1R16T-16]{:_,23T,23t,25I,27H,27h,25B,27P,25d,25D,23S}
  58[B6d6DSDDDDD]2111211211112112112112111111111121121121122(37 6)122211222[0B]{:_,5T,5t,5I,7H,9h,5B,7P,5d,5D,5S}
  58[S6d6BDD]11121121211211112112112112111211211211211211222211(37 3)22[DDB]{:_,7T,5t,5I,9H,11h,7B,9P,7d,7D,7S}
  58[S6d6BDDBD]121121221212111111111112111212111121122121112111112(27 7)2[1T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  59[S6d6BDDBDD]11222112112112111212222112112112122112112112112112112112111[D14I-4]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  60[PDBSS]221121211211211111212121112112112111112111212111211111112112[1S14T18T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  60[PDDDDSB]211211221111111211211211221121121111121121121121111211112122[S4]{:_,11T,11t,11I,15H,15h,15B,15P,15d,15D,15S}
  60[S6d6BDSD]11212211211211211211111112111211112(43 7)2121121121112222111[]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  60[S6d6BDSDDD]112122112112112112112112112112211211212111112111221(5 7)2111[I34]{:_,5T,3t,1I,7H,9h,5B,7P,5d,5D,5S}
  60[SPBDD]212221121121122112111211212111211111111211111112111212(61 7)[]{:_,11T,9t,11I,13H,15h,11B,13P,11d,11D,7S}
  61[S6d6BDDDSS]1122212211222111121121121121122112112121111211222111112(39 7)[]{:_,7T,5t,5I,9H,11h,7B,9P,7d,7D,7S}
  61[S6d6BDSDD]112122111112111211122(33 4)1121121121121111111121112111211111[T18T6SS]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  62[S6d6BDSDBDD]11222212111121121111121121121121111211112122112111211122(25 4)[T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  63[B6d6DSDDDD]211122122211211111211211211211211211111211211211221111121112221[S8]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  64[B6d6DSDDDSS]211121121211121112221211211211212222212111211211211(20 5)1112211[]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  64[PDBS]2211212112112111112121211121111211211111121121121122(29 6)112222[]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  64[PDDDD]2112112121121121111121211111121121121121121112111121122(37 6)212[1]{:_,5T,3t,5I,7H,9h,5B,7P,5d,5D,5S}
  65[PDBSS]221121211211211111212121111212(33 5)21112111211111112111111112112[1T10T18T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  65[PDDDDD]221111121122211211112121(60 2)12111111211222121111211111112112122[0T16T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  65[S6d6BDDD]111112212211211211211211111212(46 3)21121121121121122111112111222[]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  66[B6d6DSDDDDD]21112111111221112211121121121121121121121121111211112112(40 4)2212[]{:_,5T,5t,7I,9H,9h,5B,7P,5d,5D,5S}
  66[PDBSS]221121211211211111212121111212(33 5)211121112111111121111111121111[H6T16T10T18T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  66[PDDDD]211211212112112111112121111112112112112111112111212111211121111112[1S14T18T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  66[S6d6BDSDDDD]11221111111111121121121121121122112112112212(8 7)22111211111112211[]{:_,5T,3t,1I,7H,9h,5B,7P,5d,5D,5S}
  67[PDDDDDD]2111112112112221112112112112112112111112122112112112112112112222222[0BD-4]{:_,11T,9t,11I,13H,15h,11B,13P,11d,11D,11S}
  67[S6d6BDD]111211212112112112111112111211121111211211221121121211211221(6 5)12[h4t6]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  68[B6d6DBDDBD]2212112112112112112112112211211212211211211122111111111(24 3)1111112[]{:_,9T,7t,7I,11H,13h,9B,11P,9d,9D,7S}
  68[B6d6DSDBBS]21211211112112112111211111211211211211211211111112112112122112(16 3)[]{:_,7T,5t,5I,9H,11h,7B,9P,7d,7D,7S}
  68[PDDDDD]21111112112112122211121121121122112111211221121111121122(45 6)122112[1I-4]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  68[S6d6BDBDD]1121211112112111121121121121121121121121111211112112211(52 2)2111212[]{:_,5T,3t,5I,7H,9h,5B,7P,5d,5D,5S}
  68[S6d6BDBSDS]112121211211211211222211121121121121121212121121112111122112(35 0)22[1I-4]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  69[PDDDDD]21111112212111121121121121121121221111211121112112111221121211(23 1)2[]{:_,15T,15t,9I,17H,19h,9B,11P,7d,7D,7S}
  69[S6d6BDSD]112211111211211112112112111111112112112112211211212112112111112111112[H6T6S14]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  70[PDDDD]221121121211111211121112212(20 6)1222112112112112111112111211121111112[T18T6S]{:D}
  70[S6d6BDDD]11121121211211211211111211121112111121121122112112121111211222(14 5)12[h4t14]{:_,5T,5t,5I,9H,9h,7B,9P,7d,7D,7S}
  70[S6d6BDSDDB]112122112112112112111112111211112(59 7)2121121212221121111121111111121[t28]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  71[B6d6DSDBBS]212112111112112112112111112111211121121112211211111(31 1)22211121112112[1T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  71[PDDDSDD]22112112211222111211112211211211211211211221111121122212111221112111112[S20T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  71[S6d6BDSDDDS]1122111111121121121121111111211211222121121121121121121111122(44 3)2111[]{:_,3T,1t,3I,7H,7h,7B,7P,7d,7D,7S}
  72[B6d6DBDDBSD]2221121111211211211211211221121122211111121211111112111211111111(53 7)22[1I6I30]{:_,5T,5t,5I,9H,9h,7B,9P,7d,7D,7S}
  72[PDDDD]2112112121121121111121211111112111212(33 5)21112111211121111111111112112[1T10T18T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  73[PDDD]221111211212112112211122122111112111211122111112111(-19 3)211211211211212[1]{:D}
  73[PDDDDD]2112112211111112112112121121121121122112112122112112121121112111112(22 1)[T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  74[PDDDDB]2112112211111112112112121121121111121121122211121112111111121111111(39 6)2[1T18T18T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  74[PDDDDDD]21121121212121211111211121112111111121111212112212111211121111111111112111[S6d26T18T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  75[PDDDBBS]211211111112(19 4)211112211211112112112112111111211121222121111122211111122[t34]{:_,7T,5t,5I,9H,11h,7B,9P,7d,7D,7S}
  75[S6d6BDDD]111211212112112112111112112221121211211221121122111111121121121111211112112[0SD16]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  76[B6d6DSDSDD]2112121121121121121111121211211211211211111111111121121121121111121121121212[S20]{:_,5T,5t,7I,9H,9h,5B,7P,5d,5D,5S}
  76[PDDDDDD]22111112112211221111211121112111111121212112112112111121121121121212(10 6)22[1P]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  77[B6d6DBDDBD]22121121121121111111121121111211211211211111211211112112122212(8 6)1112112221[]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  77[PDDDDD]2112112121121121111121211111111112111212(41 5)2111211121111111112211121112112[1T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  77[S6d6BDBDD]11212112112111112112112112111111211211212(20 6)221221111112211121112111111111[T18T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  78[PDDDDD]2112112211111112112112121121122112112121121122112211112111211121111111(30 2)22[1I14T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  80[B6d6DSDD]2221111121121121122112112121121122111111211121121111211211212(3 5)12211211211211[]{:D}
  80[S6d6BDBDDD]1121211111112112112112112111(17 0)2211211211212112112211211212112111211211211121[T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  80[S6d6BDSDD]112211111211211211211211211111211221111121122111111122112112(-2 2)21111111111221[]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  81[PDDDD]2111112112112221121121121121121121122111111121111121112111221112112122111211(5 3)[S6d-2]{:B}
  82[PDDDD]221111121122212211112121111121112112121121111121112111221(34 6)1112112112112112112[1d-2]{:D}
  82[PDDDDDD]212211211211111212121112112111121121111211211211211211221121122212111121112(49 5)2[1I30]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  82[PDDDDDD]2211111211211121211211211221111121112111211111111112(38 1)112111121121121121121111[]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  83[S6d6BDSSDD]1122211112112111111211211112112112112112112112112211211211121(62 2)2111121211111112[1t4]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  84[SPBDD]2122211211211211211211211211111211211211212212112121112112112211112(9 1)112111111222[1I22T20]{:_,7T,7t,7I,11H,11h,7B,9P,7d,7D,7S}
  85[PDDDDDD]22112112211111112111112111211122112112112112121121121112(-13 2)2221111211111112111122[1T18T2]{:_,19T,19t,11I,23H,23h,9B,11P,7d,9D,7S}
  85[S6d6BDBDD]11212112112112112112112112112112121121121121121111111111111211121111111112112(0 0)111[]{:_,5T,5t,5I,9H,9h,5B,9P,7d,7D,5S}
  85[S6d6BDD]111222121121111211211211211211211211211211221121121211111212(36 0)2221112111111111112[1T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  85[S6d6BDSDSD]1122111121121112111221212222112112112112112211211212112112111111121121121121122(47 2)[]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  87[PDDD]211211221111111211211212112112112112111122212111121121121111111212(2 5)1121111111111221[S]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  87[PDDD]211211221111111211211212112112112112111122212111121121121111111212(2 5)1122111111111221[D6d-2]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  87[S6d6BDSD]11221111121121111121121121111111121121111122112112112112112112111111112112112122(30 3)1[]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  89[PDDDDB]211111211211222112111121121121121111112112122221121121122112112121121121121121121(44 4)11[]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  89[PDDDDD]21121122111111121121122112112211211111211212112112112112121121122112112111112(24 4)121111[]{:_,11T,11t,11I,15H,15h,9B,11P,7d,7D,7S}
  89[S6d6BDB]121121112211211211211111112112112112122121121111111211212211111112221111(-1 4)21211111221[S]{:_,7T,5t,5I,9H,11h,7B,9P,7d,7D,7S}
  89[SPBDD]21222112112112111112112112112112112112112111222211211211211112111122211211211211211(32 4)[SDDS]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  90[B6d6DSDD]211121121121121111121121111121112111211222222112121122112121211211211211211221111121112122[1T6S-8]{:_,15T,13t,15I,17H,19h,15B,17P,15d,15D,15S}
  90[S6d6BDSSSD]112221111221211221112212112121121121121121211211211211211211221121121211211211111122(8 7)1[S]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  91[PDDDD]2112112211111112112112121121121121122112112121121122112111112112121121112111111111111(34 4)[t20T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  91[PDDDDD]211211221111111211211212112112211211212112112211221111211212112111211121111111121111(42 6)1[T18T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  92[S6d6BDSSDD]1122211112112112111112112211111211221112221112121121121121121111121222(1 5)21112111211111122[1T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  93[PDDDSBS]211211122212221111112112112112111112112112112112112111111122122111221112111121121121122(21 6)[]{:_,7T,5t,5I,9H,11h,7B,9P,7d,7D,7S}
  93[S6d6BDSD]112122112112112112112112111111112112111121122222112212111211212112111121121122(15 6)121112122[T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  93[S6d6BDSDD]1121221121121121121121121111121122111112112111212211121211121112112121121111211211122(36 7)21[]{:_,13T,11t,13I,15H,15h,13B,15P,13d,13D,7S}
  93[S6d6BDSDD]112211111211211111211121112112121121121121121122112112112111121121111221221111121121211111111[S40]{:_,21T,19t,21I,23H,25h,21B,23P,21d,21D,21S}
  93[S6d6BDSSDD]1122211112112112211112112111221111221122111211211211122211211211211111121121111211212211(6 2)[]{:_,9T,7t,11I,11H,13h,9B,11P,9d,9D,7S}
  94[PDDDD]21111211211122112211222111121121121121121121122112112111112(48 4)11112111112222121112111111122[1I-4]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  94[PDDDD]2111121121112211221122211112112112112112112112211211212112112211121121212112111211111111(13 4)[T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  94[PDDDDD]2112112211111112112112121111121121121121111222111112122222111121111111121112112112111121121222[D28T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
  94[S6d6BDSSDS]1122211112111111121121112112112211121121121121121111111111211211121111111222(14 0)111111111221[]{:_,7T,5t,5I,9H,11h,7B,9P,7d,7D,7S}
  95[S6d6BDDD]11121121211211111211211112112111112112121121122(11 2)211121121121121122112112211111112111121221[]{:_,5T,5t,7I,9H,9h,7B,7P,7d,7D,7S}
  95[S6d6BDSDD]11221111121112111121121121121111121112111211222222112121122112121211211211211211221111121112122[1T6S-2]{:_,9T,7t,9I,13H,13h,13B,13P,13d,13D,13S}
  96[PDDDSD]211211112222111111112112112112112112112112112111112211211211111111212(23 3)211211111211121112112[1T6S]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  96[S6d6BDBDD]11212112112112112112112211111111211121111112112112112112112111111112111212(58 2)2212112112112112[1DSDS]{:_,5T,5t,7I,9H,9h,5B,7P,5d,5D,5S}
  96[S6d6BDD]11121121211211111211211112112111112112121121122(3 2)21112111112112112112112112111111112112112122[S]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  97[S6d6BDD]1112221211211211211211221121121211111211121212122222111211211211211211211111112112112122112(12 3)[]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  97[S6d6BDSDD]11221111121121121122112112121111121121121121121121121121121121111211111111211111111111112212(1 2)[]{:_,7T,7t,7I,11H,11h,9B,11P,9d,9D,7S}
  98[S6d6BDBD]1121211211211211211211211211111112112111112111211111111111122111121(23 0)2111211211221121122111222[]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  99[PDDDD]21111211211122112211222111121121121121121121121212121111121112121212(26 2)1121121121122112112211122[]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
  99[S6d6BDSD]1122111112112111112112112111111112112111112212112112112112112112112211111111222212112112(54 2)22222[]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
 100[PDDDDD]211111122121111211211211211211212211112112112112112112211112112112112212112112112211121112111(11 4)1[T6S]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
 102[PDDDDSD]211211212111121111212211211211211211211221121121211111211222122(68 2)211212112111212221121111112112112[T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
 103[S6d6BDSD]11212211211211112112112112111112112111222121121111121121121121111121121111111212(45 5)12112112111212212[0B]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
 103[S6d6BDSD]1122111112112112112111111112112112112112112211211122211121111211211211112121121121121121121111122(15 7)[1DB]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
 104[S6d6BDSD]11212211211211112112112112112112111121122222112112112211111211211122111211211211111211211212111211(16 2)[]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
 107[PDDDDB]2111112112112221121111211211211211211211111112121212(10 2)2112112112112112111111111112112222221111111111112[1T18t18]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
 107[PDDDDD]21121121211211211111212111121121111211211222222121121111121121111211211112112122211121122111211211111(22 2)[]{:_,5T,3t,1I,7H,9h,5B,7P,5d,5D,5S}
 108[SPBDD]212221121121121121121121122111112112211222111212112112111112111211122111112112112112111112111221112(55 7)222[S]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
 109[S6d6BDSD]112211111211211111211211211211111212(4 1)22111211211211211211111112112112111111112112112112112112111121121112[S]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
 110[PDDDD]21121121211211211111212111121121121121121111111211211211211111211211112112112111112111211111112211111221121211[S34T]{:_,9T,7t,9I,13H,13h,13B,13P,13d,13D,13S}
 110[PDDDDD]211211221111111211211211111111211112112112112211211221111112(5 6)112112112111112112112111211221111111111111122[]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
 111[PDDDD]211211212112112111112121111211211112112112211211211211211211111211221211211211211112111121211121122112212(32 1)[]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
 112[PDDD]21121122111111121121121211211211111211211222112112112112112112112211211212111111121122111111111111(23 6)22111212[1]{:D}
 112[S6d6BDBD]1121211211211211211211211211221111121122111121121122112222122112112112112112111112112212112121121122111211121122[1T6S-28]{:_,45T,45t,41I,49H,49h,45B,49P,47d,47D,45S}
 114[PDDDDD]2111121121112211221122211112111112112111122222211121121111121121121121121121111121121121222121112112112112221(4 7)[]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
 115[PDDD]21121121211211211111212111121121121121111121121121111111121122112112112112112112111112112112111111121112111(28 5)22[1T-2]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
 115[PDDDD]2112112211111112112112121121121121121111222111112111121112221211211211211211211211211211221121121211211211111112211[S-6]{:_,7T,5t,7I,11H,11h,11B,11P,11d,11D,11S}
 115[S6d6BDDD]11121121211211111111211211211211121121212211211212112112112112112112112112112112221111121112112(35 0)12111112112111[S]{:_,13T,11t,15I,15H,17h,15B,17P,13d,11D,7S}
 118[PDDD]21121121211211211111212111121121121121111111121121121112111121121121121121121121122111111121122111122121111(58 5)21121[]{:_,7T,5t,7I,9H,11h,7B,9P,7d,7D,7S}
 118[PDDDD]211211212112112111112121111112112112112111112111212112112112112112111121121112112211211211211212211121121111221(11 3)1[]{:_,7T,7t,7I,11H,11h,7B,9P,7d,7D,7S}
 121[PDDDD]21121121211211211111212111121121121121121112111111112111211121121211211111111212(20 6)12112112112111121121121121211122211[S]{:_,5T,3t,1I,7H,9h,5B,7P,5d,5D,5S}
 162[H6T]111212212221111221121221121121121121121121121121121122211111211211121211211211211111122221121222211121121121121121121111122111211211211211211211211211111111212121[D6d6]{:_,7T,7t,7I,9H,11h,13B,13P,13d,13D,13S}
 259[H6T]1112122122211112211212211211211211211111211211211211112111122111112112111112111211121121211211211211211221211211121121112112112112211211212112112112112211211212112111222221112111112111211121121121121121121121121121121121111211111112222211111211211211211221122[D34]{:_,7T,7t,7I,9H,11h,13B,13P,13d,13D,13S}
I have not codded stack bottom position selection or bit sequence generator to achieve the position. For long negative distances [S]..[S-28] is clearly optimal, for long positive distances (>200) "branching" with "T18" wins by a margin, for positioning mod 8 "T18t20" helps, but it seems to be cheaper to add one item to the stack before HT branching than replacing 8 T18 with 4 T18t20. Ending with [H6T]..[D6d6] is way cheaper than [H6T]..[D34].
Starting the branch with "6T16T6H" seems to be clearly the most effective. Branch start and end are that much expensive that you do not want to change stack bottom too often using them. The p8 specific emissions sometimes allow any bottom mod 8, but often 3 of 4 options are available, rarely there are only 2 options. ...

Now I will concentrate one starting my +4-3Fire DBCA ...to create slow salvo to be later translated to bits of the blinker arm.
User avatar
Hippo.69
Posts: 683
Joined: July 14th, 2020, 7:35 pm
Contact:

Re: Binary slow salvos

Post by Hippo.69 »

I have recently corrected some issues with SP behaviour and packed output encoding.

Code: Select all

-- This module is loaded if a script calls require "StackChangeCost".

local g = golly()
local moveCondsFileName = "c:\\Golly\\Lua\\StackChangeCost\\CondBitSequences.txt"
local m = {}
m.log = io.open("c:\\Golly\\Lua\\StackChangeCost\\log.txt", "w")
m.logLevel = 1
m.searchStartTime = g.millisecs()

function m.inttostring(num)
    return string.sub(num, 1, string.find(num .. ".", "%.") - 1)
end

function m.writeLog(msg, level)
    local time = g.millisecs()
    if m.log and ((not level and m.logLevel <= 0) or (level and level >= m.logLevel)) then
        m.log:write(string.sub("        " .. m.inttostring(time - m.searchStartTime), -8) .. "ms " .. msg .. "\n")
    end
end

local function packSixplicates(hashedString)
    --g.show("packing "..hashedString)
    local ret=''
    while (string.len(hashedString)>0) do
        local chr=string.sub(hashedString,1,1)
        local cnt=1
        if string.find(chr,'[SBD#]') then
            while (string.sub(hashedString,cnt+1, cnt+1)==chr) do
                cnt=cnt+1
            end
        end
        if (cnt>5) then
            ret=ret.."("..chr.."^"..m.inttostring(cnt)..")"
        else
            for i=1,cnt do
                ret=ret..chr
            end
        end
        hashedString=string.sub(hashedString,cnt+1)
    end
    return ret
end

m.tries = {};--addressed by hadron.id (by top hadron on the stack)
m.trieNodeCount = 11
local hadrons = { 'B', 'D', 'd', 'S', 'P', 'T', 't', 'I', 'H', 'h', '0' } -- L,R,1,2 not here
for i = 1, #hadrons do
    m.tries[hadrons[i]] = {}
end

function m.inDelimiters(name, leftDelimiter, rightDelimiter)
    return string.match(name, '%' .. leftDelimiter .. '(.-)%' .. rightDelimiter)
end

function m.parseMove(moveConds)
    m.writeLog("parseMove(" .. moveConds .. ")", -2)
    local function split(str, delim)
        local ret, l, p = {}, 1, nil
        str = str or ''
        while l <= 1 + string.len(str) do
            p = string.find(str .. delim, '%' .. delim, l)
            ret[1 + #ret], l = string.sub(str, l, p - 1), p + 1
        end
        return ret
    end

    local preStack, postStack, conds, pos, bits, move, glider
    pos, conds = string.find(moveConds .. '{', '%{'), ""
    conds = string.sub(moveConds, pos + 1, string.find(moveConds .. '}', '%}') - 1)
    conds = split(conds, ':')
    conds[2] = split(conds[2], ',')
    move = string.sub(moveConds, 1, pos - 1)
    pos = string.find(move, '%]')
    preStack = string.sub(move, 2, pos - 1)
    bits = string.sub(move, pos + 1)
    pos = string.find(bits, '%[')
    postStack = string.sub(bits, pos + 1, -2)
    bits = string.sub(bits, 1, pos - 1)
    glider, pos = '', string.find(bits, '%(')
    if pos then
        glider = m.inDelimiters(bits, '(', ')')
        bits = string.sub(bits, 1, pos - 1) .. string.sub(bits, string.find(bits, '%)') + 1)
    end
    return bits, move, conds, preStack, postStack, glider
end

function m.conditionsToString(conditions)
    local postConitions, ret
    if #conditions == 0 then
        g.note("no conditions?")
        return "{:}"
    end
    if #conditions < 2 then
        ret = "{:"
    else
        ret = "{" .. conditions[1] .. ":"
    end
    ret = ret .. conditions[#conditions][1]
    for j = 2, #conditions[#conditions] do
        ret = ret .. "," .. conditions[#conditions][j]
    end
    ret = ret .. "}"
    return ret
end

local function noEmissionTrieInsert(moveConds)
    local bits, move, conds, preStack, postStack, glider = m.parseMove(moveConds)
    m.writeLog('noEmissionTrieInsert(' .. moveConds .. ') ', -1)
    if glider ~= "" then
        --emission
        return
    end
    if string.find(postStack, '[LR]') then
        --emission
        return
    end
    -- actually we do not need stack bottom repositioning sequences, but it is hard to eliminate them
    -- it was eliminated by preprocessing of stack sequences -:)

    local preStackLen, bitLen = string.len(preStack), string.len(bits)
    local node, nextNode, info, nextInfo = m.tries[string.sub(conds[1], 1, 1)], m.tries[string.sub(preStack, 1, 1)], string.sub(conds[1], 1, 1), string.sub(preStack, 1, 1)
    if conds[1] == "" then
        node, nextNode, info, nextInfo = nextNode, nil, nextInfo, nil
    end
    while node do
        m.writeLog("  inserting into trie " .. info, -2)
        for i = 1, string.len(bits) do
            local j = string.sub(bits, i, i)
            if not string.find('012', j) or ((i > 1) and j == "0") then
                m.writeLog("noEmissionTrieInsert wrong character bits " .. bits .. " at position " .. i .. " " .. string.sub(bits, i, i), 10)
            end
            if not node.minPreStackLen or node.minPreStackLen > preStackLen then
                node.minPreStackLen = preStackLen --prevents following the branch in nextOutGoingEdge
            end
            if not node.minBitLen or node.minBitLen > bitLen then
                node.minBitLen = bitLen --planned to prevent following the branch in nextOutGoingEdge but cost lowerbound is more effective
            end
            j = j + 0
            if j == 0 then
                node, nextNode, info, nextInfo = m.tries['0'], nil, '0', nil -- exception simplifying 0# processing
            else
                if node[j] == nil then
                    node[j], m.trieNodeCount = {}, m.trieNodeCount + 1
                end
                node = node[j]
            end
        end
        if not node.minPreStackLen or node.minPreStackLen > preStackLen then
            node.minPreStackLen = preStackLen
        end
        if not node.minBitLen or node.minBitLen > bitLen then
            node.minBitLen = bitLen
        end
        if not node.moveConds then
            node.moveConds = {}
        end
        node.moveConds[#node.moveConds + 1] = moveConds
        node, nextNode, info, nextInfo = nextNode, nil, nextInfo, nil
        conds[1] = "";
        moveConds = move .. m.conditionsToString(conds) -- to speedup matching the above need not be checked
    end
    return true
end

local function iniTrie()
    m.writeLog('InitTrie()')
    local h = io.open(moveCondsFileName, "r")
    --local o=io.open(moveCondsFileName2,"w") -- used to prefilter general conditioned sequence file
    local moveCondsLine = h:read()
    while moveCondsLine do
        if noEmissionTrieInsert(string.sub(moveCondsLine, 5)) then
            --o:write(moveCondsLine.."\n")
        end
        moveCondsLine = h:read()
    end
    h:close()
    --o:close()
end

iniTrie()

function m.easyChangeStackCost(preStack, postStack)
    -- let us try to slowly extend this to all required cases (postStacks corresponding to all emission tabulated preStacks, condition for preStacks not known yet)
    m.writeLog("easyChangeStackCost(" .. packSixplicates(preStack) .. "," .. packSixplicates(postStack) .. ")")
    local cost, tmp = 0
    m.easyChangeStackCostErr = preStack .. ">" .. postStack
    if preStack == postStack then
        return cost
    end
    if postStack == '' then
        if string.sub(preStack, -4) == "BDBD" then
            m.writeLog("easyChangeStackCost [..BDBD]>[]")
            local fail = string.sub(preStack, 1, 1) ~= "B"
            for i = 2, string.len(preStack) - 4 do
                if string.sub(preStack, i, i) ~= 'D' then
                    m.writeLog("easyChangeStackCost [BD*BDBD]>[] failed at " .. i)
                    fail = true
                    break
                end
            end
            if fail then
                m.easyChangeStackCostErr = "Reducig stack implemented only for exceptions " .. m.easyChangeStackCostErr
                return
            end
            m.writeLog("easyChangeStackCost [BD*BDBD]>[] exception detected", 2)
            cost = 2 * (string.len(preStack) - 5)
            cost = (cost < 0) and 0 or cost
            return cost + 5 -- ->(+1) [SDBD] ->(+1) [P6d6DBD]->(+1) [B6D6DBD] -> (+2) []
        end
    elseif string.len(postStack) == 1 and string.len(preStack) > 1 then
        m.writeLog("easyChangeStackCost [BD*]>[#+1]")
        tmp = string.find('PBS', postStack) or string.find('PB1', postStack)
        if tmp then
            local fail = string.sub(preStack, 1, 1) ~= "B"
            for i = 2, string.len(preStack) do
                if string.sub(preStack, i, i) ~= 'D' then
                    m.writeLog("easyChangeStackCost [BD*]>[#+1] failed at " .. i)
                    fail = true
                    break
                end
            end
            if not fail then
                m.writeLog("easyChangeStackCost [BD*]>[#+1] exception detected", 2)
                return 2 * (string.len(preStack) - 1) + tmp - 2
            end
        end
    end
    tmp = string.find("DPBS", string.sub(preStack, -1)) or string.find("#", string.sub(preStack, -1))
    if not tmp then
        m.easyChangeStackCostErr = "Stack should have #DPBS on bottom! " .. m.easyChangeStackCostErr
        return 1000000000
    end
    if preStack == '' then
        m.easyChangeStackCostErr = "preStack cannot be empty " .. m.easyChangeStackCostErr
        return
    end
    if string.len(preStack) > 2 then
        m.easyChangeStackCostErr = "Reducing stack implemented only for exceptions " .. m.easyChangeStackCostErr
        return
    end
    if string.len(postStack) < string.len(preStack) then
        m.easyChangeStackCostErr = "Shortening implemented only for exceptions " .. m.easyChangeStackCostErr
        return
    end
    if string.len(preStack) == 2 then
        cost = string.find("SBPD", string.sub(preStack, -1)) or string.find("SBP#", string.sub(preStack, -1))
        if not cost then
            m.easyChangeStackCostErr = "Only D,P,B,S,# on starting positions implemented " .. m.easyChangeStackCostErr
            return
        end
        tmp = string.find("SBPD", string.sub(postStack, -1)) or string.find("SBB#", string.sub(postStack, -1))
        if not tmp then
            m.easyChangeStackCostErr = "Only D,P,B,S,# at end of postStack when preStack.len==2 on starting positions implemented " .. m.easyChangeStackCostErr
            return
        end
        cost = cost - tmp
        if cost < 0 then
            m.easyChangeStackCostErr = "when preStack.len==2, end of postStack must be on D->P->B->S from end of preStack " .. m.easyChangeStackCostErr
            return
        end
        if tmp == 3 then
            if string.sub(postStack, -2, -2) ~= 'S' or cost == 0 then
                m.easyChangeStackCostErr = "implemented P only as a part of SP at end of postStack when preStack.len==2 and prestack does not end on P" .. m.easyChangeStackCostErr
                return
            end -- SP->XSP ???
        end
        preStack = string.sub(preStack, 1, -2)
        postStack = string.sub(postStack, 1, -2)
    end
    tmp = string.find("SBPD", preStack) or string.find("SBP#", preStack)
    if not tmp then
        m.easyChangeStackCostErr = "Only D,P,B,S,# starting positions implemented " .. m.easyChangeStackCostErr
        return
    end
    if string.len(postStack) == 1 then
        if cost > 0 then
            if postStack ~= "S" then
                m.easyChangeStackCostErr = "when preStack.len==2, postStack.len==2 last item differ, implemented only for postStack starting S " .. m.easyChangeStackCostErr
                return
            end
        else
            cost = tmp
            tmp = string.find("SBPD", postStack) or string.find("SBP#", postStack)
            if not tmp then
                m.easyChangeStackCostErr = "when preStack.len==postStack.len<=2 where only first item differs implemented only for postStack starting B,S,P,D " .. m.easyChangeStackCostErr
                return
            end
            cost = cost - tmp
            if cost < 0 then
                m.easyChangeStackCostErr = "not implemented for short stacks where shift not consistent with D->P->B->S " .. m.easyChangeStackCostErr
                return
            end
            return cost
        end
    end
    cost = cost + tmp - 1
    tmp = string.find("PBS", string.sub(postStack, 1, 1))
    if string.sub(postStack, 2, 4) == "6d6" then
        if not tmp then
            m.easyChangeStackCostErr = "Only P,B,S predecessors of 6d6 implemented " .. m.easyChangeStackCostErr
            return
        end
        cost = cost + tmp
        postStack = string.sub(postStack, 5)
    elseif tmp then
        cost = cost + tmp - 3
        if string.sub(postStack, 1, 2) == "SP" then
            --P allowed here
            cost = cost + 7
            postStack = string.sub(postStack, 3)
            tmp = 2
        elseif string.sub(postStack, 2, 2) == 'D' or tmp == 3 then
            postStack = string.sub(postStack, 2)
        else
            m.easyChangeStackCostErr = "After P or B start must be either 6d or D, other costs not implemented " .. m.easyChangeStackCostErr .. "\n" .. postStack
            -- additional cost 22 (a) ->S, changing 2nd -> (+6) SD (+3-a) back to desired (+13) removal of leading S
            -- additional cost +22 does not work for P as SP->P6d6P is not possible
            return
        end
    elseif string.sub(postStack, 1, 2) == "T6" then
        cost = cost + 21 -- is (3)S6d6->(+2)H6T6->(+8)H6T18T6->(+7)I16T6->(+1)T6 optimal (at least in our current moveset)
        postStack = string.sub(postStack, 3)
    else
        m.easyChangeStackCostErr = "Only P,B,S and T6 starts implemented " .. m.easyChangeStackCostErr
        return
    end
    if tmp then
        tmp = 1 + tmp --compatibility
    end
    for i = 1, string.len(postStack) do
        if tmp == 4 then
            --P allowed after S (maintained as D and incremented after next S created)
            tmp = string.find("DPBS", string.sub(postStack, i, i)) or string.find("#", string.sub(postStack, i, i))
        else
            tmp = string.find("DDBS", string.sub(postStack, i, i)) or string.find("#", string.sub(postStack, i, i))
        end
        if tmp then
            cost = cost + 5 + tmp
        else
            m.easyChangeStackCostErr = "Only D,B,S,SP,# inner items implemented yet (" .. i .. ")=" .. string.sub(postStack, i, i) .. " " .. m.easyChangeStackCostErr
            return
        end
    end
    return cost
end

function m.easyChangeStackCostLowerBound(preStack, postStack)
    -- let us try to slowly extend this to all required cases (postStacks corresponding to all emission tabulated preStacks, condition for preStacks not known yet)
    m.writeLog("easyChangeStackCostLowerBound(" .. packSixplicates(preStack) .. "," .. packSixplicates(postStack) .. ")")
    -- called only for preStack=='D'
    local cost, tmp = 0
    m.easyChangeStackCostLowerBoundErr = packSixplicates(preStack) .. ">" .. packSixplicates(postStack)
    if preStack == postStack then
        return cost
    end
    if string.len(preStack) > 2 then
        m.easyChangeStackCostLowerBoundErr = "Reducing stack implemented only for exceptions " .. m.easyChangeStackCostLowerBoundErr
        return
    end
    if string.len(postStack) < string.len(preStack) then
        m.easyChangeStackCostLowerBoundErr = "Shortening implemented only for exceptions " .. m.easyChangeStackCostLowerBoundErr
        return
    end
    if string.len(preStack) == 2 then
        cost = string.find("SBPD", string.sub(preStack, -1)) or string.find("SBP#", string.sub(preStack, -1))
        if not cost then
            m.easyChangeStackCostLowerBoundErr = "Only D,P,B,S,# on starting positions implemented " .. m.easyChangeStackCostLowerBoundErr
            return
        end
        tmp = string.find("SBPD", string.sub(postStack, -1)) or string.find("SBP#", string.sub(postStack, -1))
        if not tmp then
            m.easyChangeStackCostLowerBoundErr = "Only D,B,S,# at end of postStack when preStack.len==2 on starting positions implemented " .. m.easyChangeStackCostLowerBoundErr
            return
        end
        cost = cost - tmp
        if cost < 0 then
            m.easyChangeStackCostLowerBoundErr = "when preStack.len==2, end of postStack must be on D->P->B->S from end of preStack " .. m.easyChangeStackCostLowerBoundErr
            return
        end
        preStack = string.sub(preStack, 1, -2)
        postStack = string.sub(postStack, 1, -2)
    end
    tmp = string.find("SBPD", preStack) or string.find("SBP#", preStack)
    if not tmp then
        m.easyChangeStackCostLowerBoundErr = "Only D,P,B,S,# starting positions implemented " .. m.easyChangeStackCostLowerBoundErr
        return
    end
    if string.len(postStack) == 1 then
        if cost > 0 then
            if postStack ~= "S" then
                m.easyChangeStackCostLowerBoundErr = "when preStack.len==2, postStack.len==2 last item differ, implemented only for postStack starting S " .. m.easyChangeStackCostLowerBoundErr
                return
            end
        else
            cost = tmp
            tmp = string.find("SBPD", postStack) or string.find("SBP#", postStack)
            if not tmp then
                m.easyChangeStackCostLowerBoundErr = "when preStack.len==postStack.len<=2 where only first item differs implemented only for postStack starting B,S,P,D " .. m.easyChangeStackCostLowerBoundErr
                return
            end
            cost = cost - tmp
            if cost < 0 then
                m.easyChangeStackCostLowerBoundErr = "not implemented for short stacks where shift not consistent with D->P->B->S " .. m.easyChangeStackCostLowerBoundErr
                return
            end
            return cost
        end
    end
    cost = cost + tmp - 1
    tmp = string.find("PBS", string.sub(postStack, 1, 1))
    if string.sub(postStack, 2, 4) == "6d6" then
        if not tmp then
            m.easyChangeStackCostLowerBoundErr = "Only P,B,S predecessors of 6d6 implemented " .. m.easyChangeStackCostLowerBoundErr
            return
        end
        cost = cost + tmp
        postStack = string.sub(postStack, 5)
    elseif tmp then
        cost = cost + tmp - 3
        if string.sub(postStack, 1, 2) == "SP" then
            --P allowed here
            cost = cost + 7
            postStack = string.sub(postStack, 3)
        elseif string.sub(postStack, 2, 2) == 'D' or tmp == 3 then
            postStack = string.sub(postStack, 2)
        else
            m.easyChangeStackCostLowerBoundErr = "After P or B start must be either 6d or D, other costs not implemented " .. m.easyChangeStackCostLowerBoundErr .. "\n" .. postStack
            -- additional cost 22 (a) ->S, changing 2nd -> (+6) SD (+3-a) back to desired (+13) removal of leading S
            -- additional cost +22 does not work for P as SP->P6d6P is not possible
            return
        end
    elseif string.sub(postStack, 1, 2) == "T6" then
        cost = cost + 21 -- is (3)S6d6->(+2)H6T6->(+8)H6T18T6->(+7)I16T6->(+1)T6 optimal (at least in our current moveset)
        postStack = string.sub(postStack, 3)
    else
        m.easyChangeStackCostLowerBoundErr = "Only P,B,S and T6 starts implemented " .. m.easyChangeStackCostLowerBoundErr
        return
    end
    for i = 1, string.len(postStack) do
        tmp = string.find("DPBS", string.sub(postStack, i, i)) or string.find("#", string.sub(postStack, i, i))
        if tmp then
            cost = cost + 5 + tmp
        else
            m.easyChangeStackCostLowerBoundErr = "Only D,B,P,S,# inner items implemented yet (" .. i .. ")=" .. string.sub(postStack, i, i) .. " " .. m.easyChangeStackCostLowerBoundErr
            return
        end
    end
    return cost
end

function m.triviCostLowerBound(postStack)
    if postStack == '' then
        return 0
    end
    local ret = m.easyChangeStackCostLowerBound('D', postStack)
    if ret then
        ret = (ret < 3) and 0 or ret - 3
    end
    return ret
end

function m.easyPreStackReductionLowerBound(preStack, postStack)
    --does not mind sending bit 1 at the end
    m.writeLog("easyPreStackReductionLowerBound(" .. packSixplicates(preStack) .. "," .. packSixplicates(postStack) .. ")")
    --postStack.len<2
    local baseStackLen = string.len(preStack)
    for i = 1, string.len(preStack) do
        if not string.find('#DPBS', string.sub(preStack, -i, -i)) then
            baseStackLen = i - 1
            break
        end
    end
    if baseStackLen > 0 then
        if string.sub(preStack, -baseStackLen - 1, -baseStackLen - 1) == "6" then
            local postCost
            if string.sub(preStack, -baseStackLen - 3, -baseStackLen - 1) == "6d6" then
                if baseStackLen >= 4 + string.len(postStack) and string.sub(preStack, -baseStackLen, -baseStackLen + 3) == "DBDS" then
                    postCost = 1 + ((baseStackLen == 4) and 0 or m.easyPreStackReductionLowerBound(string.sub(preStack, -baseStackLen + 4), postStack))
                end
                if baseStackLen >= 3 + string.len(postStack) and string.sub(preStack, -baseStackLen, -baseStackLen + 3) == "SPS" then
                    postCost = 1 + ((baseStackLen == 3) and 0 or m.easyPreStackReductionLowerBound(string.sub(preStack, -baseStackLen + 3), postStack))
                end
                if baseStackLen >= 3 + string.len(postStack) and string.sub(preStack, -baseStackLen, -baseStackLen + 3) == "DBD" then
                    postCost = 2 + ((baseStackLen == 3) and 0 or m.easyPreStackReductionLowerBound(string.sub(preStack, -baseStackLen + 3), postStack))
                end
                if postCost then
                    return m.easyPreStackReductionLowerBound(string.sub(preStack, 1, -baseStackLen - 4), 'B') + postCost
                end
                local preCost = m.easyPreStackReductionLowerBound(string.sub(preStack, 1, -baseStackLen - 4), 'S')
                return 1 + preCost + m.easyPreStackReductionLowerBound("PD" .. string.sub(preStack, -baseStackLen), postStack)
            end
            if baseStackLen >= 1 + string.len(postStack) and string.find('SD', string.sub(preStack, -baseStackLen, -baseStackLen)) then
                postCost = (baseStackLen == 1) and 0 or m.easyPreStackReductionLowerBound(string.sub(preStack, -baseStackLen + 1), postStack) -- '2' with extrabit program
            end
            if postCost then
                return m.easyPreStackReductionLowerBound(string.sub(preStack, 1, -baseStackLen - 2), 'B') + postCost
            end
        end
        local preCost = m.easyPreStackReductionLowerBound(string.sub(preStack, 1, -baseStackLen - 1), '')
        baseStackLen = baseStackLen - string.len(postStack)
        preCost = preCost + 3 * (baseStackLen // 5)
        baseStackLen = baseStackLen % 5
        return preCost + baseStackLen - ((baseStackLen == 4) and 1 or 0)
    end
    local nonBaseStackLen, nonDigits = string.len(preStack), 0
    for i = 1, string.len(preStack) do
        if string.find('#DPBS', string.sub(preStack, -i, -i)) then
            nonBaseStackLen = i - 1
            break
        end
        if string.find('HhTtId', string.sub(preStack, -i, -i)) then
            nonDigits = nonDigits + 1
        end
    end
    local preCost = 0
    if string.find('01', string.sub(preStack, 1, 1)) then
        nonDigits = nonDigits - 1
    end
    if nonBaseStackLen < string.len(preStack) then
        preCost = m.easyPreStackReductionLowerBound(string.sub(preStack, 1, -nonBaseStackLen - 1), '')
    end
    return preCost + nonDigits // 2
end

function m.easyChangeStackLowerBound(preStack, postStack)
    while string.len(preStack) > 2 and string.len(postStack) > 0 and string.sub(preStack, -1) == string.sub(postStack, -1)
            and string.find('#DPBS', string.sub(preStack, -2, -2)) do
        preStack, postStack = string.sub(preStack, 1, -2), string.sub(postStack, 1, -2)
    end
    local cost, tmp = 0
    tmp = string.find("DPBS", string.sub(preStack, -1)) or string.find("#", string.sub(preStack, -1))
    if not tmp then
        return 1000000003
    end
    while cost == 0 do
        m.writeLog("easyChangeStackLowerBound(" .. packSixplicates(preStack) .. "," .. packSixplicates(postStack) .. ") loop cost 0")
        if preStack == postStack then
            return 0
        end
        if postStack == "" then
            return m.easyPreStackReductionLowerBound(preStack, '')
        end
        if preStack == "" then
            return m.triviCostLowerBound(postStack)
        end
        cost = string.find("DPBS", string.sub(preStack, -1)) or string.find("#", string.sub(preStack, -1))
        if not cost then
            return m.triviCostLowerBound(postStack)
        end
        tmp = string.find("DPBS", string.sub(postStack, -1, -1))
        if string.sub(postStack, -1, -1) ~= '#' then
            if not tmp then
                return m.triviCostLowerBound(postStack)
            end
            cost = tmp - cost
        end
        if cost < 0 then
            return m.triviCostLowerBound(postStack)
        end
        postStack, preStack = string.sub(postStack, 1, -2), string.sub(preStack, 1, -2)
    end
    while string.sub(postStack, -1) == 'S' do
        m.writeLog("easyChangeStackLowerBound(" .. packSixplicates(preStack) .. "," .. packSixplicates(postStack) .. ") loop cost " .. cost)
        if preStack == "" then
            tmp = m.triviCostLowerBound(postStack)
            if tmp then
                tmp = tmp + cost
            end
            return tmp
        end
        tmp = string.find("SBPD", string.sub(preStack, -1, -1)) or string.find("#", string.sub(preStack, -1, -1))
        if not tmp then
            tmp = m.triviCostLowerBound(postStack)
            if tmp then
                tmp = tmp + cost
            end
            return tmp
        end
        cost = cost + tmp - 1
        postStack, preStack = string.sub(postStack, 1, -2), string.sub(preStack, 1, -2)
    end
    if postStack == "" then
        return cost + m.easyPreStackReductionLowerBound(preStack, '') - 1 --the extrabit could be usefull
    end
    tmp = m.easyChangeStackCost('S', postStack)
    if tmp then
        return m.easyPreStackReductionLowerBound(preStack, 'S') - 1 + tmp + cost
    else
        return
    end
end

function m.ignoreSuffixChangeStackCost(preStack, postStack)
    --calls Easy changeStackCost when reduced to easy case
    while string.len(preStack) > 2 and string.len(postStack) > 0 and string.sub(preStack, -1) == string.sub(postStack, -1)
            and string.find('#DPBS', string.sub(preStack, -2, -2)) do
        preStack, postStack = string.sub(preStack, 1, -2), string.sub(postStack, 1, -2)
    end
    local ret, est = m.easyChangeStackCost(preStack, postStack), m.easyChangeStackLowerBound(preStack, postStack)
    if est then
        -- safety correction for D->S payment when D is actually destroyed
        est = est - 3
        if est < 1 then
            est = 1
            if preStack == postStack then
                est = 0
            end
        end
    else
        est=1
    end
    if ret then
        m.writeLog("ignoreSuffixChangeStackCost(" .. packSixplicates(preStack) .. "," .. packSixplicates(postStack) .. ")=" .. ret .. "," .. est, 1)
    elseif est then
        m.writeLog("ignoreSuffixChangeStackCost(" .. packSixplicates(preStack) .. "," .. packSixplicates(postStack) .. ")=nil," .. est, 1)
    end
    return ret, est
end

function m.getEasyTBits(preStack, postStack)
    --was earlier evaluated as ignoreSuffixChangeStackCost"easy"
    m.writeLog("getEasyTBits(" .. packSixplicates(preStack) .. "," .. packSixplicates(postStack) .. ")")
    while string.len(preStack) > 2 and string.len(postStack) > 0 and string.sub(preStack, -1) == string.sub(postStack, -1)
            and string.find('#DPBS', string.sub(preStack, -2, -2)) do
        preStack, postStack = string.sub(preStack, 1, -2), string.sub(postStack, 1, -2)
        m.writeLog("getEasyTBits shortening stacks (" .. packSixplicates(preStack) .. "," .. packSixplicates(postStack) .. ")", -1)
    end
    m.writeLog("getEasyTBits easy(" .. packSixplicates(preStack) .. "," .. packSixplicates(postStack) .. ")")
    if preStack == postStack then
        return ''
    end
    local errExt = '[' .. packSixplicates(preStack) .. ']>[' .. packSixplicates(postStack) .. ']'
    if postStack == '' then
        if string.sub(preStack, -4) == "BDBD" then
            m.writeLog("getEasyTBits easy [..BDBD]>[]")
            local fail = string.sub(preStack, 1, 1) ~= "B"
            for i = 2, string.len(preStack) - 4 do
                if string.sub(preStack, i, i) ~= 'D' then
                    m.writeLog("getEasyTBits easy [BD*BDBD]>[] failed at " .. i)
                    fail = true
                    break
                end
            end
            if fail then
                return '(fail .. Reducig stack implemented only for exceptions ' .. errExt .. ')'
            end
            m.writeLog("getEasyTBits easy  [BD*BDBD]>[] exception detected", 2)
            local ret = ''
            for i = 2, string.len(preStack) - 4 do
                ret = ret .. '21'
            end --[BBDBD] or [BDBD]
            if string.len(preStack) == 4 then
                ret = '1' -- = ret..'1' [BDBD]->[SDBD]
            else
                ret = ret .. '2' -- [BBDBD]->[SDBD]
            end
            return ret + '2121' -- [SDBD] ->(+1) [P6d6DBD]->(+1) [B6D6DBD] -> (+2) []
        end
    elseif string.len(postStack) == 1 and string.len(preStack) > 1 then
        m.writeLog("getEasyTBits easy [BD*]>[#+1]")
        local tmp = string.find('PBS', postStack) or string.find('PB1', postStack)
        if tmp then
            local fail = string.sub(preStack, 1, 1) ~= "B"
            for i = 2, string.len(preStack) do
                if string.sub(preStack, i, i) ~= 'D' then
                    m.writeLog("getEasyTBits easy [BD*]>[#+1] failed at " .. i)
                    fail = true
                    break
                end
            end
            if not fail then
                m.writeLog("getEasyTBits easy [BD*]>[#+1] exception detected", 2)
                local ret = ''
                for i = 3, string.len(preStack) do
                    ret = ret .. '21'
                end --[BD]
                if postStack=='1' then
                    return ret..'212'
                else
                    return ret..string.sub('211',1,tmp)
                end
                return ret
            end
        end
    end
    local tmp = string.find("DPBS", string.sub(preStack, -1)) or string.find("#", string.sub(preStack, -1))
    if not tmp then
        return '(fail preStack should have #DPBS on bottom! ' .. errExt .. ')'
    end
    if preStack == '' then
        return '(fail preStack cannot be empty ' .. errExt .. ')'
    end
    if string.len(preStack) > 2 then
        return '(fail Reducing stack implemented only for exceptions ' .. errExt .. ')'
    end
    if string.len(postStack) < string.len(preStack) then
        return '(fail Shortening implemented only for exceptions ' .. errExt .. ')'
    end
    local ret = ''
    if string.len(preStack) == 2 then
        local cost = string.find("SBPD", string.sub(preStack, -1)) or string.find("SBP#", string.sub(preStack, -1))
        if not cost then
            return '(fail Only D,P,B,S,# on starting positions implemented ' .. errExt .. ')'
        end
        tmp = string.find("SBPD", string.sub(postStack, -1)) or string.find("SBP#", string.sub(postStack, -1))
        if not tmp then
            return '(fail Only D,P,B,S,# at end of postStack when preStack.len==2 on starting positions implemented ' .. errExt .. ')'
        end
        if cost < tmp then
            return '(fail when preStack.len==2, end of postStack must be on D->P->B->S from end of preStack ' .. errExt .. ')'
        end
        if tmp == 3 then
            if string.sub(postStack, -2, -2) ~= 'S' or cost == 0 then
                return '(fail implemented P only as a part of SP at end of postStack when preStack.len==2 and prestack does not end on P ' .. errExt .. ')'
            end -- SP->XSP ???
            tmp = 4
            postStack = string.sub(postStack, 1, -3) .. 'ED'
        end
        if cost == 4 then
            ret = ret .. string.sub(postStack, -1)
        else
            ret = ret .. string.sub('1111', tmp + 1, cost)
            if string.sub(postStack, -1) == '#' then
                ret = ret .. '#'
            end
        end
        preStack = string.sub(preStack, 1, -2)
        postStack = string.sub(postStack, 1, -2)
    end
    tmp = string.find("SBPD", preStack) or string.find("SBP#", preStack)
    if not tmp then
        return '(fail Only D,P,B,S,# starting positions implemented ' .. errExt .. ')'
    end
    if string.len(postStack) == 1 then
        if ret ~= '' then
            if postStack ~= "S" then
                return '(fail when preStack.len==2, postStack.len==2 last item differ, implemented only for postStack starting S ' .. errExt .. ')'
            end
        else
            local cost = tmp + 1
            tmp = string.find("ESBPD", postStack) or string.find("ESBP#", postStack)
            if not tmp then
                return '(fail when preStack.len==postStack.len<=2 where only first item differs implemented only for postStack starting B,S,P,D ' .. errExt .. ')'
            end
            cost = cost - tmp
            if cost < 0 then
                return '(fail not implemented for short stacks where shift not consistent with D->P->B->S ' .. errExt .. ')'
            end
            ret = ret .. string.sub('11111', tmp + 1, cost)
            if postStack == '#' then
                ret = ret .. '#'
            end --'#' will be templated by 1 so order among 1* does not mater
            return ret
        end
    end
    ret = string.sub('1111', 2, tmp) .. ret --[S]..[S]->postStack portion remains
    m.writeLog("getEasyTBits " .. ret .. "..easy (S," .. packSixplicates(postStack) .. ")")
    tmp = string.find("PBS", string.sub(postStack, 1, 1))
    local endRet = ''
    if string.sub(postStack, 2, 4) == "6d6" then
        if not tmp then
            return '(fail Only P,B,S predecessors of 6d6 implemented ' .. errExt .. ')'
        end
        if string.sub(postStack, 5, 5) == "P" then
            return '(fail #6d6P* not implemented ' .. errExt .. ')'
        end
        endRet = string.sub('211', 1, tmp)
        postStack = 'S' .. string.sub(postStack, 5)
    elseif tmp then
        if not (string.sub(postStack, 2, 2) == 'D' or tmp == 3) then
            return '(fail After P or B start must be either 6d or D, other cases not implemented ' .. errExt .. ')'
        end
    elseif string.sub(postStack, 1, 2) == "T6" then
        local cost = string.find('PBSE', string.sub(postStack, 3, 3))
        if cost == 0 then
            return '(fail T6P* not implemented ' .. errExt .. ')'
        end
        endRet = '211' .. '12' .. '11111112' .. '1112112' .. '' .. '1' --[S]{_,7D,7B,7S}->[S6d6]{_,3D,3B,3S}->[H6T6]->[H6T18T6]->[1T18T6]->[I16T6]->[T6]
        postStack = 'S' .. string.sub(postStack, 3)
    else
        return '(fail Only P,B,S and T6 starts implemented ' .. errExt .. ')'
    end
    m.writeLog("getEasyTBits " .. ret .. "..easy (S," .. packSixplicates(postStack) .. ").." .. endRet)
    local template
    while string.len(postStack) > 1 do
        template = string.sub(postStack, -1)
        postStack = string.sub(postStack, 1, -2)
        local cost = string.find("DPBSE", template) or string.find("#", template)
        if cost then
            if cost == 2 then
                cost = 1
                if string.sub(postStack, -1) ~= 'S' then
                    return '(fail P allowed only at start or after S ' .. errExt .. ')'
                end
                template = 'D'
                postStack = string.sub(postStack, 1, -2) .. 'E'
            end
            --[[ret=ret..string.sub('2112111111',1,cost+5)
        if template=='#' then
          ret=ret.."#"
        end--]]
            ret = ret .. '211211' .. template
        else
            return '(fail Only D,B,S,SP,# inner items implemented ' .. errExt .. ')'
        end
    end
    m.writeLog("getEasyTBits " .. ret .. "..easy (S," .. packSixplicates(postStack) .. ").." .. endRet)
    if postStack ~= 'S' then
        -- no bits to create S and convert template .. we know template =="D" -- tested
        -- (SP case become ED what is compatible)
        ret = string.sub(ret, 1, -4) --(-3-"template")
        local tmp = string.find('PBSE', postStack) --if template == 'D', it would work even for 'S' or 'E'
        ret = ret .. string.sub('1111', 2, tmp)
    end
    m.writeLog("getEasyTBits " .. ret .. endRet)
    return ret .. endRet
end

function m.templatingCost(startSubstedStack, numStartPreSubstStackTemplates)
    m.writeLog("templatingCost(startSubstedStack " .. packSixplicates(startSubstedStack or "nil") .. ",numStartPreSubstStackTemplates " .. packSixplicates(numStartPreSubstStackTemplates or "nil"))
    local ret, rem = 0, 0
    for i = 1, numStartPreSubstStackTemplates do
        local char, cost = string.sub(startSubstedStack, -i, -i)
        if char == '#' then
            rem = rem + 1
        else
            ret = ret + string.find('DPBS', char) - 1--there cannot be other options
        end
    end
    return ret, rem
end

m.results = {} --cache to gradually speed up
function m.changeStackCosts(startPreSubstStack, targetStack)

    local function searchChangeStackCosts(preEasyStack, targetStack)
        --returns table. when there are templates in postStack, the table contains prestacks compatible with the pattern and their costs
        --the prestacks are given as most general as possible,
        m.searchStartTime = g.millisecs()
        m.writeLog('searchChangeStackCosts(' .. packSixplicates(preEasyStack) .. "," .. packSixplicates(targetStack) .. ')', 3)
        local numStartPreSubstStackTemplates, bestCost = 0

        --local function bestCostUpdate(oriPreStack,cost,move) obsolete
        local function bestCostUpdate(cost, startSubstedStack, preEasyStack, preEasyBits)
            local tCost, tRem = m.templatingCost(startSubstedStack, numStartPreSubstStackTemplates)
            local sCost = cost + tCost
            if not bestCost then
                bestCost = { sCost, startSubstedStack, preEasyStack, tCost, preEasyBits }
                m.writeLog("Setting bestCost " .. packSixplicates(startSubstedStack) .. "(" .. cost .. ")->" .. sCost, 4)
            elseif bestCost[1] > sCost then
                m.writeLog("Decreasing bestCost " .. packSixplicates(startSubstedStack) .. "(" .. cost .. ")->" .. sCost, 4)
                bestCost = { sCost, startSubstedStack, preEasyStack, tCost, preEasyBits }
            elseif bestCost[1] == sCost then
                local oTCost, oTRem = m.templatingCost(bestCost[2], numStartPreSubstStackTemplates)
                if oTRem < tRem then
                    --just personal preferences
                    bestCost = { sCost, startSubstedStack, preEasyStack, tCost, preEasyBits }
                    m.writeLog("Updating bestCost " .. packSixplicates(startSubstedStack) .. "(" .. cost .. ")->" .. sCost, 4)
                end
            end
        end

        local function getBestCost(startSubstedStack)
            if not bestCost then
                return nil
            end
            local tCost = m.templatingCost(startSubstedStack, numStartPreSubstStackTemplates)
            return bestCost[1] - tCost
        end
        --
        bestCostUpdate(1000000000, preEasyStack, preEasyStack, '') --emergency returned value

        local cost = m.ignoreSuffixChangeStackCost(preEasyStack, targetStack)
        if cost then
            m.writeLog(' no search needed')
            bestCostUpdate(cost, preEasyStack, preEasyStack, '')
            return bestCost
        else
            m.writeLog(' search needed')
        end

        --conjecture ... D is cheaper # to both build and destroy so let us convert trailing # to D at the start.
        -- if we could access bottom under S*, we could with no additional cost convert D* to such S*
        --^ could be wrong in several cases. T6 requires S o be destroyable, wen we need to get rid of stack entirely
        -- BDBD at the end helps, but often we are happy eliminating the stack and emitting an extraBIt so DDDD is fine
        -- d6 requires DD
        -- exception ... precede P with S !!!
        local posRight -- will be the leftest template position matching postStack (indexed from bottom)
        local startSubstedStack = preEasyStack
        numStartPreSubstStackTemplates = string.len(startSubstedStack)
        for j = 1, string.len(startSubstedStack) do
            if string.sub(startSubstedStack, -j, -j) ~= '#' then
                numStartPreSubstStackTemplates = (j - 1)
                break
            elseif posRight then
                startSubstedStack = string.sub(startSubstedStack, 1, -j - 1) .. 'D' .. string.sub(startSubstedStack, -j + 1, j == 1 and 0 or -1)
            elseif j > string.len(targetStack) or not string.find('DBPS#', string.sub(targetStack, -j, -j)) then
                -- all P's in expected targets are either first or preceded by S
                posRight = j - 1
                startSubstedStack = string.sub(startSubstedStack, 1, -j - 1) .. 'D' .. string.sub(startSubstedStack, -j + 1, j == 1 and 0 or -1)
            elseif string.sub(targetStack, -j, -j) ~= '#' then
                startSubstedStack = string.sub(startSubstedStack, 1, -j - 1) .. string.sub(targetStack, -j, -j) .. string.sub(startSubstedStack, -j + 1, j == 1 and 0 or -1)
            end
        end
        posRight = not posRight and numStartPreSubstStackTemplates or posRight
        m.writeLog("numPreStackTemplates=" .. (numStartPreSubstStackTemplates or "nil") .. ", posRight=" .. (posRight or "nil"), 1)
        -- if posRight < TargetStack.len we should reduce the prefix to 'S' and we can set the next # from D afterwards
        -- if posRight == TargetStack.len, we should destroy prefix entirely, but extraBit could be used if TargetStack "suffix" does not start with D
        -- (but expected targets does not start with D (or #) so D* is fine here as well, but we have to create alternative extraBit expecting "target"
        -- exception is on the end of recepie where TargetStack.len==0 could happen and in that case extraBit could be forbidden ... hmm,
        -- but there would probably be T or t under bottom to be destroyed so extraBit would probably be welcomed (and targetSTack would be "1")
        local posLeft = numStartPreSubstStackTemplates --leftmost available to change
        if posLeft > 0 then
            if (string.sub(startSubstedStack, -posLeft - 2, -posLeft - 1) == "T6"
                    or string.sub(startSubstedStack, -posLeft - 2, -posLeft - 1) == "I4") then
                startSubstedStack = string.sub(startSubstedStack, 1, -posLeft - 1) .. 'S' .. string.sub(startSubstedStack, -posLeft + 1, posLeft == 1 and 0 or -1)
                m.writeLog("T6S/I4S forcing case", 1)
                posLeft = posLeft - 1
            end
        end
        if posRight > posLeft then
            posRight = posLeft
        end
        if (string.sub(startSubstedStack, -posRight,-posRight+1)~="SP") then --SP cannot be converted to DP
            if posRight > 0 then
                startSubstedStack = string.sub(startSubstedStack, 1, -posRight - 1) .. 'D' .. string.sub(startSubstedStack, -posRight + 1, posRight == 1 and 0 or -1)
            end
        end

        local trieQueue, trieQueueLastInd, trieQueueFirstInd -- increasing IndicesFirst mod trieNodeCount empty when trieQueueLastInd==trieQueueFirstInd,
        trieQueue, trieQueueLastInd, trieQueueFirstInd = {}, 0, 0

        local function trieQueuePush(trieNode)
            if trieNode then
                --allowing push(nil) doing nothing
                trieQueueLastInd = trieQueueLastInd + 1
                if trieQueueLastInd > m.trieNodeCount then
                    trieQueueLastInd = 1
                end
                trieQueue[trieQueueLastInd] = trieNode
            else
                m.writeLog("trieQueuePush(nil)", -2)
            end
        end

        local function trieQueuePull()
            if trieQueueFirstInd == trieQueueLastInd then
                return
            end
            trieQueueFirstInd = trieQueueFirstInd + 1
            if trieQueueFirstInd > m.trieNodeCount then
                trieQueueFirstInd = 1
            end
            local trieNode = trieQueue[trieQueueFirstInd]
            trieQueue[trieQueueFirstInd] = nil
            return trieNode
        end

        local extraBit, preStackLen, edgeBitLimit
        local function nextOutGoingEdge()
            m.writeLog("  NextOutGoingEdge", -1)
            local trieNode = trieQueuePull()
            while trieNode do
                if edgeBitLimit and trieNode.minBitLen >= edgeBitLimit then
                    -- extraBit should be included in edgeBitLimit
                    m.writeLog("trieBranch discarded ... minBitLen " .. trieNode.minBitLen .. ">=" .. edgeBitLimit)
                elseif trieNode.minPreStackLen > preStackLen then
                    m.writeLog("trieBranch discarded ... minPreStackLen " .. trieNode.minPreStackLen .. ">" .. preStackLen)
                else
                    -- trieQueuePush(trieNode[0]) used only at root with extraBit
                    m.writeLog("  NextOutGoingEdge push[1]", -2);
                    trieQueuePush(trieNode[1])
                    m.writeLog("  NextOutGoingEdge push[2]", -2);
                    trieQueuePush(trieNode[2])
                    if trieNode.moveConds then
                        m.writeLog("  NextOutGoingEdge #moves=" .. #trieNode.moveConds)
                        return trieNode.moveConds
                    end
                end
                trieNode = trieQueuePull()
            end
            return
        end

        local function firstOutGoingEdge(preStack)
            m.writeLog("  FirstOutgoingEdge " .. packSixplicates(preStack), -1)
            extraBit = nil
            if preStack == "" then
                return
            end
            local first = string.sub(preStack, 1, 1)
            if string.find('01', first) then
                preStack = string.sub(preStack, 2)
                if preStack == "" then
                    return
                end
                extraBit = first + 0
                first = (first == "1") and string.sub(preStack, 1, 1) or first
            end
            if first == '#' then
                -- can reach other substitutes by 1* in the minimal cost, but not in 0 extraBitCase so '0' trie created
                first = 'D'
            end
            preStackLen = string.len(preStack)
            local trieNode = m.tries[first]
            if extraBit == 1 then
                -- we have not added extra level to trie['0']
                trieNode = trieNode[extraBit]
            end
            trieQueuePush(trieNode)
            return nextOutGoingEdge()
        end

        local queue, queueCurrentEstCost, queueMaxEstCost, queueCurrentEstCostInd = {}, -1, 0, 0
        local queueFilter = {}

        local function queueEmpty()
            m.writeLog("queueEmpty? " .. queueCurrentEstCost .. " " .. queueCurrentEstCostInd .. " " .. queueMaxEstCost, -1)
            if queueCurrentEstCost < 0 then
                return true
            end
            if queueCurrentEstCost < queueMaxEstCost then
                return false
            end
            if queueCurrentEstCostInd == #queue[queueMaxEstCost] then
                queue[queueMaxEstCost], queueCurrentEstCost, queueMaxEstCost, queueCurrentEstCostInd = nil, -1, 0, 0
                return true
            end
            return false
        end

        local function queuePush(startSubstedPreStack, preEasyStack, preEasyBits, est)
            local processed = queueFilter[startSubstedPreStack .. ">" .. preEasyStack]
            if processed and processed <= string.len(preEasyBits) then
                return
            end
            queueFilter[startSubstedPreStack .. ">" .. preEasyStack] = string.len(preEasyBits)
            est = not est and 0 or est
            local costEst = string.len(preEasyBits) + est
            if not queue[costEst] then
                queue[costEst] = {}
            end
            queue[costEst][1 + #queue[costEst]] = { startSubstedPreStack, preEasyStack, preEasyBits }
            if queueCurrentEstCost > costEst then
                queueCurrentEstCost, queueCurrentEstCostInd = costEst, 0
            elseif queueCurrentEstCost < 0 then
                queueCurrentEstCost = 0 --nonempty mark
            end
            if queueMaxEstCost < costEst then
                queueMaxEstCost = costEst
            end
        end

        local function queuePop()
            --nonEmpty was ensured
            if not queue[queueCurrentEstCost] then
                queueCurrentEstCostInd = 0
            end
            while not queue[queueCurrentEstCost] do
                queueCurrentEstCost = 1 + queueCurrentEstCost
            end
            queueCurrentEstCostInd = 1 + queueCurrentEstCostInd
            if queueCurrentEstCostInd > #queue[queueCurrentEstCost] then
                queue[queueCurrentEstCost] = nil
                queueCurrentEstCostInd = 1
                while not queue[queueCurrentEstCost] do
                    queueCurrentEstCost = 1 + queueCurrentEstCost
                end
            end
            local node = queue[queueCurrentEstCost][queueCurrentEstCostInd]
            return node[1], node[2], node[3]
        end

        local function extStack(pre, stack, post)
            m.writeLog("   extStack(" .. packSixplicates(pre) .. "," .. packSixplicates(stack) .. "," .. packSixplicates(post) .. ")")
            if string.find('01', string.sub(stack, 1, 1)) then
                -- extrabit
                pre, stack = string.sub(stack, 1, 1) .. pre, string.sub(stack, 2)
            end
            stack = pre .. stack
            if stack ~= "" and string.find('TtIHhBPdDS#', string.sub(stack, -1)) then
                return stack .. post
            else
                local postPos = string.find(post, '[TtIHhBPdDS#]')
                if postPos then
                    local postDist = string.sub(post, 1, postPos - 1)
                    postDist = ((postDist == "") and "8" or postDist)
                    local start, dist = string.match('H' .. stack, '(.*[TtIHhBPdDS#])(.*)')
                    start = string.sub(start, 2)
                    m.writeLog("   extStack start, dist, postDist " .. start .. "," .. dist .. "," .. postDist .. "(" .. postPos .. ")")
                    if start == "" then
                        return dist .. string.sub(post, postPos) --dist is actually extrabit (or empty)
                    else
                        dist = (dist == "") and 0 or dist
                        if dist + postDist == 8 then
                            return start .. string.sub(post, postPos)
                        end
                        return start .. m.inttostring(dist + postDist) .. string.sub(post, postPos)
                    end
                else
                    return stack
                end
            end
        end

        local function getCompatible(mPreStack, preEasyStack, mPostStack, startSubstedStack, conds)
            --{{extPreStack, extPostStack, oriPreStack}}
            m.writeLog("getCompatible(" .. packSixplicates(mPreStack) .. "," .. packSixplicates(preEasyStack) .. "," .. packSixplicates(mPostStack) .. "," .. packSixplicates(startSubstedStack)
                    .. "," .. m.conditionsToString(conds) .. ")")
            local numConcretized = 0
            if extraBit then
                preEasyStack = string.sub(preEasyStack, 2)
            end
            local ret = {}
            if string.len(mPreStack) > string.len(preEasyStack) then
                m.writeLog(" string.len(mPreStack)>string.len(preStack)")
                return ret
            end
            local hIdSkip, offs, fail = string.sub(conds[1], 1, 1), 0
            local cdist = string.sub(conds[1], 2)
            cdist = (cdist == "") and "0" or cdist -- if conds[1] not empty than odd
            cdist = 0 + cdist
            fail = false
            if hIdSkip ~= "" then
                local pos = string.find(preEasyStack, '[' .. string.gsub('TtIHhBPdDS', hIdSkip, '') .. ']', offs + 1)
                if not pos then
                    m.writeLog(" everything skipped " .. hIdSkip)
                    return ret
                end
                offs = pos - 1
                if offs > 0 then
                    local pre, dist = string.match(hIdSkip .. string.sub(preEasyStack, 1, offs), '(.*' .. hIdSkip .. ')(.*)')
                    dist = (dist == "") and "8" or dist
                    dist = 0 + dist
                    fail = dist < cdist
                    if fail then
                        m.writeLog("  fail:small distance from hIdskip " .. dist .. "<" .. cdist)
                    end
                end
            end
            if string.len(mPreStack) + offs > string.len(preEasyStack) then
                m.writeLog(" string.len(mPreStack)+offs>string.len(preStack)")
                return ret
            end
            if not fail then
                for i = 1, string.len(mPreStack) do
                    if string.sub(mPreStack, i, i) ~= string.sub(preEasyStack, i + offs, i + offs) then
                        if not string.find('DPBS', string.sub(mPreStack, i, i)) or string.sub(preEasyStack, i + offs, i + offs) ~= "#" then
                            m.writeLog(" fail:not match at positions " .. i .. "," .. i + offs .. ":" .. string.sub(mPreStack, i, i) .. "?" .. string.sub(preEasyStack, i + offs, i + offs))
                            fail = true
                            break
                        else
                            preEasyStack = string.sub(preEasyStack, 1, i + offs - 1) .. string.sub(mPreStack, i, i) .. string.sub(preEasyStack, i + offs + 1)
                        end
                    end
                end
            end
            if not fail then
                local condsToTest, pos, endPos, pos2, endPos2, dist2, hId2 = {}, 1 + offs + string.len(mPreStack) --mPreStack ends by an hId !!!
                condsToTest["_"] = ""
                if pos <= string.len(preEasyStack) then
                    endPos = string.find(string.sub(preEasyStack, pos), '[TtIHhBPdDS#]')
                    if endPos then
                        endPos=endPos+pos-1
                        local hId = string.sub(preEasyStack,endPos, endPos)
                        condsToTest["_"] = nil
                        local dist = string.sub(preEasyStack,pos, endPos - 1)
                        dist = (dist == "" and "8") or dist
                        condsToTest[hId] = dist
                        m.writeLog(" condToTest " .. hId .. "," .. dist .. "(" .. endPos .. ")")
                        pos2 = 1 + endPos
                        if pos2 < string.len(preEasyStack) then
                            endPos2 = string.find(string.sub(preEasyStack, pos2), '[TtIHhBPdDS#]')
                            if endPos2 then
                                endPos2=endPos2+pos2-1
                                hId2 = string.sub(preEasyStack, endPos2, endPos2)
                                dist2 = string.sub(preEasyStack, pos2, endPos2 - 1)
                                dist2 = (dist2 == "" and "8") or dist2
                                dist2 = dist2 + dist
                                m.writeLog(" condToTest " .. hId .. "," .. dist .. "(" .. endPos .. ")"..hId2..","..dist2.."("..endPos2..")")
                            end
                        end
                        --actually we have very rarely to check 2nd item dist as well (I4S2I...{I7} condition)
                        --I bet the use of the StackChangeCost caused by prevPostStack->requiredPreStack
                        --will never generate this case ... so I leave it this simplified way till it is really required
                        --proving it is not necessary is another option :)
                    end
                    if condsToTest['#'] then
                        condsToTest['D'] = condsToTest['#']
                        condsToTest['B'] = condsToTest['#']
                        condsToTest['S'] = condsToTest['#']
                        condsToTest['#'] = nil
                    end
                end
                local OK, KO, hId2OK, dist2OK, dist2HashOK = {}, {}, true, true, true
                for i = 1, #conds[2] do
                    local hId = string.sub(conds[2][i], -1)
                    m.writeLog("  condition " .. conds[2][i] .. "," .. hId)
                    local dist = condsToTest[hId]
                    if hId~='_' then
                        cdist  = string.sub(conds[2][i], 1, -2)
                        cdist = (cdist == "" and "8") or cdist
                        cdist = cdist + 0
                        if cdist % 2 == 1 then
                            if dist2 and cdist > dist2 then
                                dist2OK=false
                                if string.find('DBS',hId) then
                                    dist2HashOK=false
                                end
                                if hId==hId2 then
                                    hId2OK=false
                                end
                            end
                        end
                    end
                    if dist then
                        if dist == "" then
                            OK[#OK + 1] = hId
                            m.writeLog(" condition " .. hId .. "," .. dist .. " OK")
                        else
                            dist = dist + 0
                            if cdist % 2 == 1 then
                                if cdist < dist then
                                    OK[#OK + 1] = hId
                                    m.writeLog(" condition " .. hId .. "," .. dist .. "(" .. cdist .. ")" .. " OK")
                                else
                                    KO[#KO + 1] = hId
                                    m.writeLog(" condition " .. hId .. "," .. dist .. "(" .. cdist .. ")" .. " KO")
                                end
                            else
                                if cdist == dist then
                                    OK[#OK + 1] = hId
                                    m.writeLog(" condition " .. hId .. "," .. dist .. "(" .. cdist .. ")" .. " OK")
                                else
                                    KO[#KO + 1] = hId
                                    m.writeLog(" condition " .. hId .. "," .. dist .. "(" .. cdist .. ")" .. " KO")
                                end
                            end
                        end
                        condsToTest[hId] = nil
                    end
                end
                for hId, dist in pairs(condsToTest) do
                    KO[#KO + 1] = hId
                    m.writeLog(" condition " .. hId .. "," .. dist .. " KO (missed)")
                end
                if #OK == 0 then
                    m.writeLog(' all suffix tests failed')
                else
                    for i = 1, #OK do
                        if #KO > 0 then
                            -- template needs further specification
                            preEasyStack = string.sub(preEasyStack, 1, endPos - 1) .. OK[i] .. string.sub(preEasyStack, 1 + endPos)
                        elseif i > 1 then
                            m.writeLog("  all template suffixes work well so template remains unchanged")
                            break
                        end
                        local extpre, extpost, mStartSubstedStack = string.sub(preEasyStack, 1, offs), string.sub(preEasyStack, pos), startSubstedStack
                        local extPostStack = extStack(extpre, mPostStack, extpost)
                        m.writeLog('  extPostStack=' .. packSixplicates(extPostStack))
                        for j = 1, string.len(preEasyStack) do
                            if j > string.len(startSubstedStack) then
                                break
                            end
                            if string.sub(startSubstedStack, -j, -j) == '#' and string.sub(preEasyStack, -j, -j) ~= '#' then
                                mStartSubstedStack = string.sub(mStartSubstedStack, 1, -j - 1) .. string.sub(preEasyStack, -j, -j) .. string.sub(mStartSubstedStack, -j + 1, j == 1 and 0 or -1)
                                numConcretized = numConcretized + 1
                            end
                        end
                        if dist2OK then
                            ret[#ret + 1] = { preEasyStack, extPostStack, mStartSubstedStack }
                            m.writeLog(" getCompatible new result:" .. packSixplicates(extPostStack) .. "," .. packSixplicates(preEasyStack) .. "," .. packSixplicates(mStartSubstedStack), 3)
                        elseif not hId2OK then
                            m.writeLog(" getCompatible 2nd stack Item "..hId2.." blocks", 3)
                        elseif hId2=='#' and dist2HashOK then
                            ret[#ret + 1] = { preEasyStack, extPostStack, mStartSubstedStack }
                            m.writeLog(" getCompatible new result (2 stack items case):" .. packSixplicates(extPostStack) .. "," .. packSixplicates(preEasyStack) .. "," .. packSixplicates(mStartSubstedStack), 3)
                        elseif hId2=='#' then
                            --we have to try possible cases, but in our current moveset only {:_,21T,19t,19I,23H,25h,21B,23P,21d,21D,5S} matches with result 'S'
                            --oops it does not occur in stack->stack portion but only in emissions so it is just never needed part of code
                            preEasyStack = string.sub(preEasyStack, 1, endPos2 - 1) .. 'S' .. string.sub(preEasyStack, endPos2 + 1)
                            ret[#ret + 1] = { preEasyStack, extPostStack, mStartSubstedStack }
                            m.writeLog(" getCompatible new result (SS case):" .. packSixplicates(extPostStack) .. "," .. packSixplicates(preEasyStack) .. "," .. packSixplicates(mStartSubstedStack), 3)
                        end
                        -- I hope we never have to test 3 top stack items
                    end
                end
            end
            return ret
        end

        local preEasyBits, preEasyStack = '', startSubstedStack
        queueCurrentEstCost, queueMaxEstCost, queueCurrentEstCostInd, queueFilter = -1, 0, 0, {}
        do
            local cost, est = m.ignoreSuffixChangeStackCost(preEasyStack, targetStack)
            if cost then
                m.writeLog(" StartBestCost  [" .. packSixplicates(preEasyStack) .. "]+" .. cost .. "[" .. packSixplicates(targetStack) .. "]", 4)
                bestCostUpdate(cost, startSubstedStack, preEasyStack, preEasyBits)
            else
                queuePush(startSubstedStack, preEasyStack, preEasyBits, est)
            end
        end
        while not queueEmpty() do
            startSubstedStack, preEasyStack, preEasyBits = queuePop()
            m.writeLog("Search [" .. packSixplicates(preEasyStack) .. "]" .. preEasyBits .. "[" .. packSixplicates(startSubstedStack) .. "][" .. packSixplicates(targetStack) .. "]", 3)
            local best, fail = getBestCost(startSubstedStack)
            edgeBitLimit = nil
            if best then
                edgeBitLimit = best - string.len(preEasyBits) + ((not extraBit) and 0 or 1)
                fail = edgeBitLimit <= 0
                if not fail then
                    local cost, est = m.ignoreSuffixChangeStackCost(preEasyStack, targetStack)
                    -- non null cost would prevent push as well as best test in that time, but best could have improved
                    fail = edgeBitLimit <= est
                end
            end
            if not fail then
                local moveConds = firstOutGoingEdge(preEasyStack)
                while moveConds do
                    for i = 1, #moveConds do
                        m.writeLog(" " .. packSixplicates(preEasyStack) .. ">" .. moveConds[i])
                        local mBits, move, conds, mPreStack, mPostStack = m.parseMove(moveConds[i])
                        if extraBit then
                            if 0 + string.sub(mBits, 1, 1) ~= extraBit then
                                m.writeLog("something wrong not matched extraBit " .. extraBit .. "?" .. mBits, 10)
                            else
                                mBits = string.sub(mBits, 2)
                            end
                        end
                        if string.find(mBits, '0') then
                            m.writeLog(" bit 0 can be used only as extraBit ... this cannot happen", 10)
                            break -- all moves in moveConds has same bits
                        end
                        local stacks = getCompatible(mPreStack, preEasyStack, mPostStack, startSubstedStack, conds) --{{extPreStack, extPostStack, oriPreStack}}
                        for j = 1, #stacks do
                            best = getBestCost(stacks[j][3])
                            if not best or best > string.len(preEasyBits) + string.len(mBits) then
                                local cost, est = m.ignoreSuffixChangeStackCost(stacks[j][2], targetStack)
                                if cost then
                                    m.writeLog(" cost  [" .. packSixplicates(stacks[j][3]) .. "]" .. preEasyBits .. mBits .. "[" .. packSixplicates(stacks[j][2]) .. "]+" .. cost ..
                                            "[" .. packSixplicates(targetStack) .. "]", 1)
                                    if not best or best > string.len(preEasyBits) + string.len(mBits) + cost then
                                        bestCostUpdate(string.len(preEasyBits) + string.len(mBits) + cost, stacks[j][3], stacks[j][2], preEasyBits .. mBits)
                                    end
                                else
                                    if est then
                                        if not best or best > string.len(preEasyBits) + string.len(mBits) + est then
                                            m.writeLog("       [" .. packSixplicates(stacks[j][3]) .. "]" .. preEasyBits .. mBits .. "+>" .. est .. "[" .. packSixplicates(stacks[j][2]) ..
                                                    "]>?>[" .. packSixplicates(targetStack) .. "]", 1)
                                            queuePush(stacks[j][3], stacks[j][2], preEasyBits .. mBits, est)
                                        end
                                    else
                                        m.writeLog("       [" .. packSixplicates(stacks[j][3]) .. "]" .. preEasyBits .. mBits .. "[" .. packSixplicates(stacks[j][2]) ..
                                                "]>?>[" .. packSixplicates(targetStack) .. "]", 1)
                                        queuePush(stacks[j][3], stacks[j][2], preEasyBits .. mBits, est)
                                    end
                                end
                            end
                        end
                    end
                    moveConds = nextOutGoingEdge()
                end
            end
        end
        return bestCost
    end

    if not m.results[startPreSubstStack .. ">" .. targetStack] then
        m.results[startPreSubstStack .. ">" .. targetStack] = searchChangeStackCosts(startPreSubstStack, targetStack)
    end
    return m.results[startPreSubstStack .. ">" .. targetStack]
end

return m

Code: Select all

local g = golly()
g.autoupdate(true)
g.show("Init")
local startTime = g.millisecs()
local sd = require "StackChangeCost"

local levelFileName = "c:\\Golly\\Levels.txt"
local moveCondsFileName = "c:\\Golly\\QuarkCondBitSequences.txt"
local resultOutputFileName = "c:\\Golly\\FixedBottomGliderLevelsToBitsResult.txt"
local easyFilledOutputFileName = "c:\\Golly\\FixedBottomGliderLevelsToBitsResultE.txt"
local templateFixedOutputFileName = "c:\\Golly\\FixedBottomGliderLevelsToBitsResultFT.txt"

local log = io.open("c:\\Golly\\FixedBottomGliderLevelsToBitslog.txt", "w")
local logLevel = 0

local function inttostring(num)
    return string.sub(num, 1, string.find(num .. ".", "%.") - 1)
end

local function writeLog(msg, level)
    local time = g.millisecs()
    if log and ((not level and logLevel <= 0) or (level and level >= logLevel)) then
        log:write(string.sub("        " .. inttostring(time - startTime), -8) .. "ms " .. msg .. "\n")
    end
end

local function packSixplicates(hashedString)
    --g.show("packing "..hashedString)
    local ret=''
    while (string.len(hashedString)>0) do
        local chr=string.sub(hashedString,1,1)
        local cnt=1
        if string.find(chr,'[SBD#]') then
            while (string.sub(hashedString,cnt+1, cnt+1)==chr) do
                cnt=cnt+1
            end
        end
        if (cnt>5) then
            ret=ret.."("..chr.."^"..inttostring(cnt)..")"
        else
            for i=1,cnt do
                ret=ret..chr
            end
        end
        hashedString=string.sub(hashedString,cnt+1)
    end
    return ret
end

--[[
writeLog("StackCostTest easyChangeStackCost('SB','B6d6DSDDDSS')="..sd.easyChangeStackCost('SB','B6d6DSDDDSS'),-2)
local cSC
cSC=sd.changeStackCosts('####','1')
writeLog("StackCostTest changeStackCosts('####','1')="
        .."("..cSC[1]..")"..cSC[2].." "..cSC[3],2)
--cSC=sd.changeStackCosts('T18T18T6SDDDD####################','PDDD####################')
--writeLog("StackCostTest changeStackCosts('T18T18T6SDDDD####################','PDDD####################')="
--        .."("..cSC[2]..")"..cSC[3],2)
--]]

local function inDelimiters(name, leftDelimiter, rightDelimiter)
    return string.match(name, '%' .. leftDelimiter .. '(.-)%' .. rightDelimiter)
end

local function split(str, delim)
    local ret, l, p = {}, 1
    str = str or ''
    while l <= 1 + string.len(str) do
        p = string.find(str .. delim, '%' .. delim, l)
        ret[1 + #ret], l = string.sub(str, l, p - 1), p + 1
    end
    return ret
end

local function parseMove(moveConds)
    local preStack, postStack, conds, pos, move, bits, glider
    pos, conds = string.find(moveConds .. '{', '%{'), ""
    conds = string.sub(moveConds, pos + 1, string.find(moveConds .. '}', '%}') - 1)
    conds = split(conds, ':')
    conds[2] = split(conds[2], ',')
    move = string.sub(moveConds, 1, pos - 1)
    pos = string.find(move, '%]')
    preStack = string.sub(move, 2, pos - 1)
    bits = string.sub(move, pos + 1)
    pos = string.find(bits, '%[')
    postStack = string.sub(bits, pos + 1, -2)
    bits = string.sub(bits, 1, pos - 1)
    glider, pos = '', string.find(bits, '%(')
    if pos then
        glider = inDelimiters(bits, '(', ')')
        bits = string.sub(bits, 1, pos - 1) .. string.sub(bits, string.find(bits, '%)') + 1)
    end
    return bits, move, conds, preStack, postStack, glider
end

local emissions = {}

local function insertEmissionTo(to, moveConds)
    if not emissions[to] then
        emissions[to] = {}
    end
    emissions[to][#emissions[to] + 1] = moveConds
end

local function insertEmission(moveConds)
    local _bits, _move, _conds, _preStack, _postStack, glider = parseMove(moveConds)
    if glider == "" then
        return
    end
    local dist, phase = string.match(glider, '(%d*) (%d*)')
    local d8 = inttostring(dist % 8)
    insertEmissionTo("d" .. d8 .. "p0%1", moveConds)
    insertEmissionTo("d" .. d8 .. "p" .. inttostring(phase % 2) .. "%2", moveConds)
    insertEmissionTo("d" .. d8 .. "p" .. inttostring(phase % 4) .. "%4", moveConds)
    insertEmissionTo("d" .. d8 .. "p" .. inttostring(phase % 8) .. "%8", moveConds)
end

local function iniMoves()
    local h = io.open(moveCondsFileName, "r")
    local moveCondsLine = h:read()
    while moveCondsLine do
        insertEmission(string.sub(moveCondsLine, 5))
        moveCondsLine = h:read()
    end
    h:close()
end

--{{postStack->{toalcost,previousPostStack,move,startStackSubsted}}} obsolete
--{{postStack->{toalcost,previousPostStack,startStackSubsted,preEasyStack,preMoveStack,preEasyBits,easyBitsInfo,move,moveBotomymx}}}
local levelStacks, winners, level, bottomymx = {}

local function extStack(pre, stack, post)
    writeLog("   extStack(" .. packSixplicates(pre) .. "," .. packSixplicates(stack) .. "," .. packSixplicates(post) .. ")", -1)
    if string.find('01', string.sub(stack, 1, 1)) then
        -- extrabit
        pre, stack = string.sub(stack, 1, 1) .. pre, string.sub(stack, 2)
    end
    stack = pre .. stack
    if stack ~= "" and string.find('TtIHhBPdDS#', string.sub(stack, -1)) then
        return stack .. post
    else
        local postPos = string.find(post, '[TtIHhBPdDS#]')
        if postPos then
            local postDist = string.sub(post, 1, postPos - 1)
            postDist = ((postDist == "") and "8" or postDist)
            local start, dist = string.match('H' .. stack, '(.*[TtIHhBPdDS#])(.*)')
            start = string.sub(start, 2)
            writeLog("   extStack start, dist, postDist " .. start .. "," .. dist .. "," .. postDist .. "(" .. postPos .. ")")
            if start == "" then
                return dist .. string.sub(post, postPos) --dist is actually extrabit (or empty)
            else
                dist = (dist == "") and 0 or dist
                if dist + postDist == 8 then
                    return start .. string.sub(post, postPos)
                end
                return start .. inttostring(dist + postDist) .. string.sub(post, postPos)
            end
        else
            return stack
        end
    end
end

local startTemplateTop, finalStack
local function search(startStackPrefix)

    local queue, queueCurrentCost, queueCurrentCostInd = {}, -1, 0 --rather build list with traversal than queue

    local function queueInit()
        queue, queueCurrentCost, queueCurrentCostInd = {}, -1, 0
    end

    local function queueEmpty()
        writeLog("queueEmpty" .. queueCurrentCost .. " " .. queueCurrentCostInd)
        return queueCurrentCost < 0 or (queue[queueCurrentCost].next < 0 and queueCurrentCostInd == #queue[queueCurrentCost])
    end

    ---@return string emission, int targetymx
    local function queuePull()
        queueCurrentCostInd = 1 + queueCurrentCostInd
        if queueCurrentCostInd > #queue[queueCurrentCost] then
            queueCurrentCostInd, queueCurrentCost = 1, queue[queueCurrentCost].next
        end
        writeLog("queuePull " .. queueCurrentCost .. " " .. queueCurrentCostInd)
        local node = queue[queueCurrentCost][queueCurrentCostInd]
        return node[1], node[2]
    end

    local function queueMerge(emissions, targetymx, forbidden)
        local function queuePush(node, ind)
            local bits = parseMove(node[1])
            writeLog("queuePush " .. string.len(bits) .. " {" .. node[1] .. "," .. node[2] .. "}")
            local cost = string.len(bits)
            if not queue[cost] then
                queue[cost] = {}
                if ind >= 0 then
                    -- go to a neighbour
                    while queue[ind].next > 0 and queue[ind].next < cost do
                        ind = queue[ind].next
                    end
                    while queue[ind].prev > 0 and queue[ind].prev > cost do
                        ind = queue[ind].prev
                    end
                end
                if ind > cost then
                    queue[cost].next, queue[cost].prev, queue[ind].prev = ind, queue[ind].prev, cost
                elseif ind >= 0 then
                    queue[cost].prev, queue[cost].next, queue[ind].next = ind, queue[ind].next, cost
                else
                    queue[cost].next, queue[cost].prev = ind, ind
                end
                if queue[cost].prev < 0 then
                    queueCurrentCost = cost
                end
            end
            queue[cost][1 + #queue[cost]] = node
            return cost
        end

        local ind = queueCurrentCost
        if emissions then
            for j = 1, #emissions do
                local ok=true
                for f=1,#forbidden do
                    if string.find(emissions[j],forbidden[f]) then
                        writeLog("Forbidden emission "..emissions[j])
                        ok=false
                        break
                    end
                end
                if ok then
                    ind = queuePush({ emissions[j], targetymx }, ind)
                end
            end
        else
            writeLog("No emissions ",5)
        end
    end

    local function extendStacks(preStack, postStack, delta)
        if delta < 0 then
            return
        end
        local extPostStack, extPreStack = postStack, preStack
        -- were I 1# off? ... I need at least 1 # for the A->B2  AX->B6X (implicit 8distance conversion trick)
        --should I remove one # later?
        for k = 0, delta, 8 do
            extPostStack, extPreStack = extStack("", extPostStack, "#"), extPreStack .. "#"
        end
        return extPostStack, extPreStack
    end

    local function checkConditions(conditions, moveDelta)
        local OK, KO, conditionsToTest = {}, {}, {}
        if moveDelta==0 then
            conditionsToTest["_"] = ""
        else
            conditionsToTest['D'] = 8
            conditionsToTest['B'] = 8
            conditionsToTest['S'] = 8
        end
        for i = 1, #conditions[2] do
            --there is no conds[1] in emissions
            local hId = string.sub(conditions[2][i], -1)
            writeLog("  condition " .. conditions[2][i] .. "," .. hId, -1)
            local dist = conditionsToTest[hId]
            if dist then
                if dist == "" then
                    OK[#OK + 1] = hId
                    writeLog(" condition " .. hId .. "," .. dist .. " OK")
                else
                    local cDist = string.sub(conditions[2][i], 1, -2)
                    cDist = (cDist == "" and "8") or cDist
                    dist, cDist = dist + 0, cDist + 0
                    if cDist % 2 == 1 then
                        if cDist < dist then
                            OK[#OK + 1] = hId
                            writeLog(" condition " .. hId .. "," .. dist .. "(" .. cDist .. ")" .. " OK")
                        else
                            KO[#KO + 1] = {hId, cDist//dist}
                            writeLog(" condition " .. hId .. "," .. dist .. "(" .. cDist .. ")" .. " KO")
                        end
                    else
                        if cDist == dist then
                            OK[#OK + 1] = hId
                            writeLog(" condition " .. hId .. "," .. dist .. "(" .. cDist .. ")" .. " OK")
                        else
                            KO[#KO + 1] = {hId}
                            writeLog(" condition " .. hId .. "," .. dist .. "(" .. cDist .. ")" .. " KO")
                        end
                    end
                end
                conditionsToTest[hId] = nil
            end
        end
        for hId, dist in pairs(conditionsToTest) do
            KO[#KO + 1] = {hId}
            writeLog(" condition " .. hId .. "," .. dist .. " KO (missed)")
        end
        local minKO
        for i=1,#KO do
            if KO[i][2] then
                if not minKO or minKO>KO[i][2] then
                    minKO=KO[i][2]
                end
            end
        end
        if minKO and minKO>1 then
            if #OK>1 then
                writeLog("#OK>1 and fail for longer distance! Only SS case expected",10)
            elseif #OK==1 then
                local c=OK[1] --S
                for i=1,minKO do
                    OK[1]=OK[1]..c
                end
            end
        end
        return OK, KO
    end

    local i = io.open(levelFileName, "r")
    local inputLine = i:read()
    if inputLine then
        writeLog("inputLine=" .. inputLine)
    else
        writeLog("inputLine=nil")
    end
    startTemplateTop = inDelimiters(">" .. inputLine, ">", " ")
    finalStack = inDelimiters(inputLine, "[", "]")
    writeLog("startTemplateTop:" .. packSixplicates(startTemplateTop) .. " finalStack:" .. packSixplicates(finalStack), 5)
    local startPreStack = ""
    for k = bottomymx, startTemplateTop, 8 do
        startPreStack = startPreStack .. "#"
    end
    if startStackPrefix then
        startPreStack=startStackPrefix..string.sub(startPreStack,string.len(startStackPrefix)+1)
    end
    writeLog("startPreStack " .. packSixplicates(startPreStack) .. "(" .. packSixplicates(startTemplateTop) .. "," .. bottomymx .. ",8)", 2)
    level = 1
    levelStacks[level] = {}
    levelStacks[level][startPreStack] = { 0, "", "", "", "", "", "", "", "","" }
    local prevLevel, nrPrevLevelSwappers = {}, 1
    inputLine = ""
    while inputLine do
        queueInit()
        local forbidden={}
        while inputLine ~= "" do
            local forbiddenPos,targetymxPos = string.find(inputLine,'%"'),string.find(inputLine,'%[')
            while forbiddenPos and forbiddenPos<targetymxPos do
                forbidden[#forbidden+1]=inDelimiters(inputLine,'"','"')
                forbiddenPos=string.find(inputLine,'%"',forbiddenPos+1)
                inputLine=string.sub(inputLine,forbiddenPos+1)
                forbiddenPos,targetymxPos = string.find(inputLine,'%"'),string.find(inputLine,'%[')
            end
            local targetymx = inDelimiters(inputLine, '[', ']') - bottomymx
            g.show("Adding emissions ".."d" .. inttostring(targetymx % 8) .. "p" .. string.sub(inputLine, 3, 5))
            writeLog("Adding emissions ".."d" .. inttostring(targetymx % 8) .. "p" .. string.sub(inputLine, 3, 5),5)
            queueMerge(emissions["d" .. inttostring(targetymx % 8) .. "p" .. string.sub(inputLine, 3, 5)], targetymx, forbidden)
            inputLine = string.sub(inputLine, 1 + string.find(inputLine, '%]'))
        end
        while not queueEmpty() do
            local emission, targetymx = queuePull()
            writeLog("trying emission " .. emission .. " targeymx " .. targetymx .. " on level " .. level, 1)
            local bits, move, conditions, preStack, postStack, glider = parseMove(emission)
            local dist, _phase = string.match(glider, '(%d*) (%d*)') --we know mod8 everything matches
            local moveDelta = targetymx - dist
            local extPostStack, extPreStack = extendStacks(preStack, postStack, moveDelta)
            if not extPostStack then
                writeLog(" emission would overshot with this bottom (dist" .. dist .. ">" .. targetymx .. "targetymx)")
            elseif extPostStack == '#' and finalStack ~= '' then
                writeLog(' emission would destroy the stack')
            else
                local preMoveStack, endPreSubstStack, postStackX = string.gsub(extPreStack, '#', '', 1), string.gsub(extPostStack, '#', '', 1), string.gsub(extPostStack, '#', '')
                -- ^ may be converted by adding+8 to the end
                writeLog("postStack trick " .. packSixplicates(postStack) .. ">" .. packSixplicates(extPostStack) .. ">" .. packSixplicates(postStackX))
                local OK, KO = checkConditions(conditions, moveDelta)
                if #OK == 0 then
                    writeLog(' all suffix tests failed')
                else
                    for i = 1, #OK do
                        if #KO > 0 then
                            -- template needs further specification
                            writeLog("Changing preMoveStack " .. packSixplicates(preMoveStack) .. " to " .. packSixplicates((preStack) .. OK[i] ..
                                    packSixplicates(string.sub(preMoveStack, string.len(preStack) + string.len(OK[i]) + 1))))
                            preMoveStack = preStack .. OK[i] .. string.sub(preMoveStack, string.len(preStack) + string.len(OK[i]) + 1)
                            writeLog("Changing endPreSubstStack " .. packSixplicates(endPreSubstStack) .. " to " .. packSixplicates(postStackX) .. OK[i] ..
                                    packSixplicates(string.sub(endPreSubstStack, string.len(postStackX) + string.len(OK[i]) + 1)))
                            endPreSubstStack = postStackX .. OK[i] .. string.sub(endPreSubstStack, string.len(postStackX) + string.len(OK[i]) + 1)
                        elseif i > 1 then
                            writeLog("  done as all template suffixes work same")
                            break
                        end
                        local preMoveCostToBeat
                        if levelStacks[level][endPreSubstStack] then
                            preMoveCostToBeat = levelStacks[level][endPreSubstStack][1] - string.len(bits)
                            writeLog("preMoveCostToBeat=" .. preMoveCostToBeat .. "(levelStacks[level][endPreSubstStack(" .. packSixplicates(endPreSubstStack) .. ")][1]-string.len(bits))="
                                    .. levelStacks[level][endPreSubstStack][1] .. "-" .. string.len(bits))
                        end
                        do
                            local s = "";
                            for j = 1, nrPrevLevelSwappers do
                                s = s .. "," .. packSixplicates(prevLevel[j])
                            end
                            writeLog("PrevLevelStart: " .. string.sub(s, 2), 1)
                        end
                        for j = 1, #prevLevel do
                            local startPreSubstStack = prevLevel[j]
                            local prevResultCost = levelStacks[level - 1][startPreSubstStack][1]
                            writeLog("Checking connection from prevEnd=startPreSubstStack " .. packSixplicates(startPreSubstStack) .. " to " .. packSixplicates(preMoveStack) ..
                                    " preMoveCostToBeat=" .. (not preMoveCostToBeat and "nil" or preMoveCostToBeat))
                            local fail
                            if preMoveCostToBeat then
                                if preMoveCostToBeat <= prevResultCost then
                                    fail = true
                                    writeLog("startPreSubstStack alone too expensive " .. preMoveCostToBeat .. "<=" .. prevResultCost)
                                else
                                    local est = sd.easyChangeStackLowerBound(startPreSubstStack, preMoveStack) or 0
                                    if preMoveCostToBeat <= prevResultCost + est then
                                        fail = true
                                        writeLog("startPreSubstStack + costLowerBound too expensive " .. preMoveCostToBeat .. "<=" .. prevResultCost .. "+" .. est)
                                    end
                                end
                            end
                            if not fail then
                                local costResult = sd.changeStackCosts(startPreSubstStack, preMoveStack)
                                local preMoveCost = prevResultCost + costResult[1]
                                if preMoveCostToBeat and preMoveCostToBeat <= preMoveCost then
                                    fail = true
                                    writeLog("startPreSubstStack + cost too expensive " .. preMoveCostToBeat .. "<=" .. preMoveCost .. "=" .. prevResultCost .. "+" .. costResult[1])
                                else
                                    preMoveCostToBeat = preMoveCost
                                    writeLog("insert or update on level " .. level .. "[" .. packSixplicates(endPreSubstStack) .. "]="
                                            .. (preMoveCost + string.len(bits))
                                            .. "(" .. packSixplicates(startPreSubstStack) .. "(" .. packSixplicates(costResult[2]) .. ")[" .. packSixplicates(costResult[3]) .. "]" ..
                                            packSixplicates(costResult[3]) .. "[" .. packSixplicates(preMoveStack) .. "]" ..
                                            costResult[5] .. "(" .. inttostring(costResult[1] - costResult[4] - string.len(costResult[5])) .. ")" .. move .. "<" .. inttostring(moveDelta + bottomymx) .. ")", 2)
                                    levelStacks[level][endPreSubstStack] = { preMoveCost + string.len(bits), startPreSubstStack, costResult[2], costResult[3], preMoveStack,
                                                                             costResult[5], costResult[1] - costResult[4] - string.len(costResult[5]), move, moveDelta + bottomymx,
                                                                             endPreSubstStack}
                                    local k = j
                                    if j > nrPrevLevelSwappers then
                                        nrPrevLevelSwappers = 1 + nrPrevLevelSwappers
                                        prevLevel[j] = prevLevel[nrPrevLevelSwappers]
                                        k = nrPrevLevelSwappers
                                    end
                                    while (k > 1) do
                                        prevLevel[k] = prevLevel[k - 1]
                                        k = k - 1
                                    end
                                    prevLevel[1] = startPreSubstStack
                                end
                            end
                        end
                    end
                end
            end
        end
        inputLine = i:read()
        if inputLine then
            writeLog("inputLine=" .. inputLine)
        else
            writeLog("inputLine=nil")
        end
        prevLevel, nrPrevLevelSwappers = {}, 1
        for endPreSubsStack, info in pairs(levelStacks[level]) do
            --we prefere best first and try to maintain best candidates near 1
            prevLevel[1 + #prevLevel] = endPreSubsStack
            if levelStacks[level][prevLevel[nrPrevLevelSwappers]][1] > info[1] then
                nrPrevLevelSwappers = 1 + nrPrevLevelSwappers
                prevLevel[#prevLevel] = prevLevel[nrPrevLevelSwappers]
                prevLevel[nrPrevLevelSwappers] = endPreSubsStack
            end
        end
        for i = 1, nrPrevLevelSwappers // 2 do
            prevLevel[nrPrevLevelSwappers + 1 - i], prevLevel[i] = prevLevel[i], prevLevel[nrPrevLevelSwappers + 1 - i]
        end
        level = level + 1
        levelStacks[level] = {}
    end
    i:close()
    local targetStack, preMoveCostToBeat = finalStack
    writeLog("finalizing", 5)
    if finalStack~="?" then
        for j = 1, #prevLevel do
            local startPreSubstStack = prevLevel[j]
            local prevResult = levelStacks[level - 1][startPreSubstStack]
            writeLog("Checking connection from startPreSubstStack " .. packSixplicates(startPreSubstStack).."("..prevResult[1].."+?)", 2)
            local fail
            if preMoveCostToBeat then
                if prevResult[1] > preMoveCostToBeat then
                    fail = true
                    writeLog("startPreSubstStack alone too expensive", 2)
                else
                    local est = sd.easyChangeStackLowerBound(startPreSubstStack, targetStack) or 1
                    if prevResult[1] + est > preMoveCostToBeat then
                        fail = true
                        writeLog("startPreSubstStack + costLowerBound too expensive", 2)
                    end
                end
            end
            if not fail then
                local costResult = sd.changeStackCosts(startPreSubstStack, targetStack)
                local preMoveCost = prevResult[1] + costResult[1]
                if preMoveCostToBeat and preMoveCost > preMoveCostToBeat then
                    fail = true
                    writeLog("prevPostStack + cost too expensive", 2)
                end
                if not fail then
                    preMoveCostToBeat = preMoveCost
                    writeLog("insert or update on final level " .. level .. "preMoveCostToBeat=" .. preMoveCostToBeat, 10)
                    levelStacks[level][targetStack] = { preMoveCost, startPreSubstStack, costResult[2], costResult[3], targetStack,
                                                        costResult[5], costResult[1] - costResult[4] - string.len(costResult[5]), "", bottomymx, targetStack }
                end
            end
        end
        return {}
    end
    writeLog("finalStack == ?", 5)
    level = level-1
    return prevLevel
end

local function getWinner(startPreSubstStack)
    local winners = {}
    winners[level + 1] = (finalStack=="?") and startPreSubstStack or finalStack
    writeLog("finalStack ... ="..packSixplicates(winners[level + 1]), 5)
    for l = level, 1, -1 do
        winners[l] = levelStacks[l][winners[l + 1]][2]
    end
    return winners
end

--{{postStack->{toalcost,previousPostStack,move,prepareInfo}}}
local function outputResult(output,finalStack)
    output:write("--bottomymx:" .. bottomymx .. " totalCost=" .. levelStacks[level][finalStack][1])
    local prevCost = 0
    for l = 1, level do
        local easyBits, easyBitsCost = levelStacks[l][winners[l + 1]][7];
        if type(easyBits) ~= "string" then
            easyBitsCost = easyBits
            easyBits = "(+" .. inttostring(easyBits) .. ")"
        else
            easyBitsCost = string.len(string.gsub(string.gsub(string.gsub(string.gsub(string.gsub(easyBits,
                    'E', '1111'),
                    'S', '111'),
                    'B', '11'),
                    'D', ''),
                    '#', ''))
        end
        local emission, bits, move, glider = levelStacks[l][winners[l + 1]][8], '', '', ''
        if emission ~= '' then
            bits, move, _, _, _, glider = parseMove(emission)
            if glider ~= '' then
                glider = '(' .. glider .. ')'
                local dist, phase = inDelimiters(glider, '(', ' '), inDelimiters(glider, ' ', ')')
                glider = '(g' .. phase .. '%8)[' .. inttostring(dist + levelStacks[l][winners[l + 1]][9]) .. ']' .. glider
            end
        end
        local preCost = levelStacks[l][winners[l + 1]][1] - prevCost - string.len(bits) - easyBitsCost - string.len(levelStacks[l][winners[l + 1]][6])
        if levelStacks[l][winners[l + 1]][2] ~= levelStacks[l][winners[l + 1]][3] then
            preCost = '(+' .. inttostring(preCost) .. ")"
        else
            preCost = ''
        end
        local bbits,bbbits
        if move=='' then
            bbbits=''
        else
            bbits = string.sub(move,2,-2)
            bbbits = string.sub(inDelimiters(bbits,']','('),1,-2).." "..string.sub(inDelimiters(bbits,']','('),-1)
            .." "..inDelimiters(bbits,')','[')
        end
        output:write(preCost .. "\n" .. levelStacks[l][winners[l + 1]][6] .. " " .. easyBits .. " " .. bbbits ..
        " --" .. glider .. "<" .. inttostring(levelStacks[l][winners[l + 1]][9]) .. "(" .. levelStacks[l][winners[l + 1]][1] .. ")" ..
    "[" .. packSixplicates(levelStacks[l][winners[l + 1]][2]) .. "]>[" .. packSixplicates(levelStacks[l][winners[l + 1]][3]) .. "]>[" ..
                packSixplicates(levelStacks[l][winners[l + 1]][4]) .. "]>[" .. packSixplicates(levelStacks[l][winners[l + 1]][5]) .. "]>(" ..
                packSixplicates(winners[l + 1]) .. ")[" .. packSixplicates(levelStacks[l][winners[l + 1]][10]) .. "]")
    prevCost = levelStacks[l][winners[l + 1]][1]
        end
    output:write("\n")
end

local function fillWinnerEasy()
    for l = 2, level do
        levelStacks[l][winners[l + 1]][11]=levelStacks[l][winners[l + 1]][7]
        local easyBitsWithTemplates = sd.getEasyTBits(levelStacks[l][winners[l + 1]][4], levelStacks[l][winners[l + 1]][5])
        levelStacks[l][winners[l + 1]][7] = easyBitsWithTemplates
    end
end

local function restoreWinner()
    for l = 2, level do
        levelStacks[l][winners[l + 1]][7]=levelStacks[l][winners[l + 1]][11]
        levelStacks[l][winners[l + 1]][10]=levelStacks[l][winners[l + 1]][12]
        levelStacks[l][winners[l + 1]][1]=levelStacks[l][winners[l + 1]][13]
        levelStacks[l][winners[l + 1]][5]=levelStacks[l][winners[l + 1]][14]
        levelStacks[l][winners[l + 1]][4]=levelStacks[l][winners[l + 1]][15]
        levelStacks[l][winners[l + 1]][3]=levelStacks[l][winners[l + 1]][16]
    end
end

local function fixWinnerTemplates()
    local nextStartSubstedStack
    for l=level,2,-1 do
        levelStacks[l][winners[l + 1]][12]=levelStacks[l][winners[l + 1]][10]
        levelStacks[l][winners[l + 1]][13]=levelStacks[l][winners[l + 1]][1]
        levelStacks[l][winners[l + 1]][14]=levelStacks[l][winners[l + 1]][5]
        levelStacks[l][winners[l + 1]][15]=levelStacks[l][winners[l + 1]][4]
        levelStacks[l][winners[l + 1]][16]=levelStacks[l][winners[l + 1]][3]
        if nextStartSubstedStack then
            local numNextStartPreSubstStackTemplates=string.len(levelStacks[l][winners[l + 1]][10])-string.len(string.gsub(levelStacks[l][winners[l + 1]][10],'#',''))
            if numNextStartPreSubstStackTemplates>0 then
                local cost=sd.templatingCost(nextStartSubstedStack,numNextStartPreSubstStackTemplates)
                levelStacks[l][winners[l + 1]][10]=nextStartSubstedStack
                levelStacks[l][winners[l + 1]][1]=levelStacks[l][winners[l + 1]][1]+cost
                levelStacks[l][winners[l + 1]][5]=string.sub(levelStacks[l][winners[l + 1]][5],1,-1-numNextStartPreSubstStackTemplates)..
                        string.sub(nextStartSubstedStack,-numNextStartPreSubstStackTemplates)
                levelStacks[l][winners[l + 1]][7]=levelStacks[l][winners[l + 1]][7]+cost
                local numPreEasyTemplates=string.len(levelStacks[l][winners[l + 1]][4])-string.len(string.gsub(levelStacks[l][winners[l + 1]][4],'#',''))
                numPreEasyTemplates = (numPreEasyTemplates < numNextStartPreSubstStackTemplates) and numPreEasyTemplates or numNextStartPreSubstStackTemplates
                if numPreEasyTemplates>0 then
                    local second=string.sub(levelStacks[l][winners[l + 1]][4],2,2)
                    levelStacks[l][winners[l + 1]][4]=string.sub(levelStacks[l][winners[l + 1]][4],1,-1-numPreEasyTemplates)..
                            string.sub(nextStartSubstedStack,-numPreEasyTemplates)
                    if string.sub(levelStacks[l][winners[l + 1]][4],1,2) == 'SP' and second=="#" then
                        levelStacks[l][winners[l + 1]][4]='SD' .. string.sub(levelStacks[l][winners[l + 1]][4],3)
                    end
                    cost=sd.templatingCost(levelStacks[l][winners[l + 1]][4],numPreEasyTemplates)
                    levelStacks[l][winners[l + 1]][7]=levelStacks[l][winners[l + 1]][7]-cost
                    local numStartSubstedTemplates = string.len(levelStacks[l][winners[l + 1]][3])-string.len(string.gsub(levelStacks[l][winners[l + 1]][3],'#',''))
                    numStartSubstedTemplates = (numStartSubstedTemplates < numPreEasyTemplates) and numStartSubstedTemplates or numPreEasyTemplates
                    second=string.sub(levelStacks[l][winners[l + 1]][3],2,2)
                    if numStartSubstedTemplates>0 then
                        levelStacks[l][winners[l + 1]][3]=string.sub(levelStacks[l][winners[l + 1]][3],1,-1-numStartSubstedTemplates)..
                                string.sub(nextStartSubstedStack,-numStartSubstedTemplates)
                    end
                    if string.sub(levelStacks[l][winners[l + 1]][3],1,2) == 'SP' and second=="#" then
                        levelStacks[l][winners[l + 1]][3]='SD' .. string.sub(levelStacks[l][winners[l + 1]][3],3)
                    end
                end
            end
        end
        nextStartSubstedStack=levelStacks[l][winners[l + 1]][3]
    end
end

---[[
iniMoves()
local resultOutput = io.open(resultOutputFileName, "w")
local easyFilledOutput = io.open(easyFilledOutputFileName, "w")
local templateFixedOutput = io.open(templateFixedOutputFileName, "w")
local prevLevel

--sd.changeStackCosts('#######################', 'T6SPDSS##################')
---[[
--for i=150,157,1 do
    bottomymx = -2716
--    g.show(i)
    prevLevel = search('S')
                --search('I4S#######################')
    for j = 1, #prevLevel do
        local startPreSubstStack = prevLevel[j]
        if finalStack == "?" then
            winners = getWinner(startPreSubstStack)
        else
            startPreSubstStack=finalStack
            winners = getWinner()
        end
        outputResult(resultOutput,startPreSubstStack)
        do
            fixWinnerTemplates()
        end
        outputResult(templateFixedOutput,startPreSubstStack)
        do
            fillWinnerEasy()
        end
        outputResult(easyFilledOutput,startPreSubstStack)
        if finalStack~="?" then
            break
        end
        do
            restoreWinner()
        end
    end
--end
--]]

--[[logLevel = 10
writeLog("S>PDBSSSD:"..sd.easyChangeStackCost('S','PDBSSSD'),10)
writeLog("S>PDBSSSDB:"..sd.easyChangeStackCost('S','PDBSSSDB'),10)
writeLog("S>S6d6BDDBB:"..sd.easyChangeStackCost('S','S6d6BDDBB'),10)
writeLog("S>B6d6DSDBBS:"..sd.easyChangeStackCost('S','B6d6DSDBBS'),10)
writeLog("S>PDDBD:"..sd.easyChangeStackCost('S','PDDBD'),10)
writeLog("S>S6d6BDSB:"..sd.easyChangeStackCost('S','S6d6BDSB'),10)
writeLog("S>PDBS:"..sd.easyChangeStackCost('S','PDBS'),10)
writeLog("S>PDDDBSD:"..sd.easyChangeStackCost('S','PDDDBSD'),10)
writeLog("S>PDDDDDBS:"..sd.easyChangeStackCost('S','PDDDDDBS'),10)
writeLog("S>S6d6BDSB:"..sd.easyChangeStackCost('S','S6d6BDSB'),10)
writeLog("S>PDBSBSS:"..sd.easyChangeStackCost('S','PDBSBSS'),10)
writeLog("S>PDBDDSS:"..sd.easyChangeStackCost('S','PDBDDSS'),10)
writeLog("S>S6d6BDSS:"..sd.easyChangeStackCost('S','S6d6BDSS'),10)
writeLog("S>S6d6BDS:"..sd.easyChangeStackCost('S','S6d6BDS'),10)--]]

local endTime = g.millisecs()
writeLog("Done", 10)
I am slowly going forward to complete the DBCA recepie. (Block placement is done, bottoms are roughly planned, but first portion of code built two p8 reflectors (correct but out of sync) compared to what defragmented.mc does ... so I should probably step back and carefully check p8 salvo decomposition detection ... (maybe just the part creating recipe variants is wrong ... I was surprised 2 times the glider phase was p4 ... rather to p8 or p2).
I should check early not to create whole construction in sync mod 8, but not in sync with incomming gliders ... .
I should probably save and restore intermediate results as simulating about 47000 bits of whole so far program (just a small portion) again and again is rather time consuming.
Last edited by Hippo.69 on April 20th, 2023, 5:33 pm, edited 1 time in total.
User avatar
dvgrn
Moderator
Posts: 12026
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Binary slow salvos

Post by dvgrn »

Hippo.69 wrote: April 20th, 2023, 1:44 pmI should check early not to create whole construction in sync mod 8, but not in sync with incomming gliders ... .
I should probably save and restore intermediate results as simulating about 47000 bits of whole so far program (just a small portion) again and again is rather time consuming.
I haven't tried to double-check any of this good work lately, but there might be a time coming up soon when it would be good to have everything in operating order.

The spacefiller synthesis recipe just got reduced to a three-digit number of gliders -- and it does seem like there's no more appropriate object for an RCT recipe to construct than a spacefiller! (just because the RCT mechanism so conveniently gets out of the way before the spacefiller shows up)

So we'll have a rather large one-glider seed constellation for a spacefiller available at some point, and then it would be great to be able to set up a demo script showing all of the latest and greatest optimizations.

At this point, is there anything in particular that you could use another set of eyes for review or checking?
User avatar
Hippo.69
Posts: 683
Joined: July 14th, 2020, 7:35 pm
Contact:

Re: Binary slow salvos

Post by Hippo.69 »

dvgrn wrote: April 20th, 2023, 2:31 pm At this point, is there anything in particular that you could use another set of eyes for review or checking?
Oh I have tought, I do it just for myself with nobody else interested ... There would be a lot of work after DBCA would be ready.

... actually I have expected the comunity would much more profit from recodding slsparse to use dynamic maintanance of dimers (and spanning trees ... the delaunay stuff ...) and I am wasting my "waste time" to finish optimization of DBCA construction rather than doing work on slsparse ...

I have expected even ECCA would be nice to have in "new interface", but in compact "multiplexer" form (I have not worked on it). And seed of destruction is definitely not what I have experience with. As RiskDBCA_m3_p4_fc_#cpo has different interface, the number of gliders emited while SE absorbers are built would differ ... I have not prepared code for ECCA to destruct DBCA ...

I am working on it steadily, but slowly ...

Curent result I am sure is

Code: Select all

x = 1042435, y = 1042997, rule = B3/S23
2o$2o131$127b3o$127bo$128bo128$254b3o$254bo$255bo124$382b3o$382bo$383b
o141$511bo$510b2o$510bobo109$639b3o$639bo$640bo136$766b3o$766bo$767bo
126$895b3o$895bo$896bo135$1024b2o$1024bobo$1024bo115$1152b2o$1152bobo$
1152bo131$1280b2o$1280bobo$1280bo156$1408b2o$1408bobo$1408bo125$1535b
2o$1535bobo$1535bo133$1663b2o$1663bobo$1663bo111$1791b2o$1791bobo$
1791bo146$1919b2o$1918b2o$1920bo134$2047b2o$2047bobo$2047bo133$2175b2o
$2175bobo$2175bo111$2303b2o$2303bobo$2303bo46$2432b2o$2432bobo$2432bo
136$2560b2o$2560bobo$2560bo121$2688b2o$2688bobo$2688bo121$2816b2o$
2816bobo$2816bo132$2944b2o$2943b2o$2945bo133$3072b2o$3071b2o$3073bo
125$3200b2o$3200bobo$3200bo134$3328b2o$3328bobo$3328bo118$3456b2o$
3456bobo$3456bo113$3584b2o$3584bobo$3584bo134$3712b2o$3712bobo$3712bo
92$3839b2o$3838b2o$3840bo130$3967b2o$3966b2o$3968bo129$4095b2o$4094b2o
$4096bo115$4222b3o$4222bo$4223bo119$4350b3o$4350bo$4351bo137$4478b3o$
4478bo$4479bo118$4608b2o$4607b2o$4609bo126$4736b2o$4735b2o$4737bo122$
4863b3o$4863bo$4864bo145$4992b2o$4991b2o$4993bo119$5120b2o$5119b2o$
5121bo134$5247b3o$5247bo$5248bo117$5375b3o$5375bo$5376bo116$5504b2o$
5504bobo$5504bo119$5632b2o$5632bobo$5632bo134$5760b2o$5760bobo$5760bo
149$5888b2o$5887b2o$5889bo120$6016b2o$6015b2o$6017bo126$6144b2o$6144bo
bo$6144bo116$6272b2o$6271b2o$6273bo129$6399bo$6398b2o$6398bobo141$
6527bo$6526b2o$6526bobo119$6656bo$6655b2o$6655bobo120$6784bo$6783b2o$
6783bobo134$6912bo$6911b2o$6911bobo122$7039bo$7038b2o$7038bobo110$
7167bo$7166b2o$7166bobo144$7295bo$7294b2o$7294bobo116$7424b2o$7424bobo
$7424bo119$7552b2o$7552bobo$7552bo124$7680b2o$7680bobo$7680bo145$7808b
2o$7808bobo$7808bo118$7936b2o$7936bobo$7936bo127$8064b2o$8064bobo$
8064bo132$8192b2o$8191b2o$8193bo124$8320b2o$8320bobo$8320bo129$8448b2o
$8448bobo$8448bo121$8576b2o$8576bobo$8576bo123$8704b2o$8703b2o$8705bo
140$8832b2o$8832bobo$8832bo148$8959b3o$8959bo$8960bo118$9087b3o$9087bo
$9088bo128$9214b3o$9214bo$9215bo120$9343b3o$9343bo$9344bo140$9471b3o$
9471bo$9472bo128$9599b3o$9599bo$9600bo120$9727b3o$9727bo$9728bo124$
9854b3o$9854bo$9855bo135$9982b3o$9982bo$9983bo124$10111b3o$10111bo$
10112bo126$10239b3o$10239bo$10240bo125$10368bo$10367b2o$10367bobo139$
10494b3o$10494bo$10495bo109$10623bo$10622b2o$10622bobo145$10751b3o$
10751bo$10752bo77$10880b2o$10879b2o$10881bo133$11008b2o$11007b2o$
11009bo118$11136b2o$11136bobo$11136bo123$11264b2o$11264bobo$11264bo
103$11391b3o$11391bo$11392bo128$11518b3o$11518bo$11519bo128$11647b3o$
11647bo$11648bo116$11775b3o$11775bo$11776bo131$11903b2o$11902b2o$
11904bo126$12031b2o$12030b2o$12032bo134$12158b3o$12158bo$12159bo107$
12287b3o$12287bo$12288bo128$12414b3o$12414bo$12415bo135$12543b2o$
12542b2o$12544bo131$12670b3o$12670bo$12671bo108$12798b3o$12798bo$
12799bo132$12927bo$12926b2o$12926bobo136$13056bo$13055b2o$13055bobo
118$13183bo$13182b2o$13182bobo128$13312b2o$13312bobo$13312bo128$13439b
o$13438b2o$13438bobo120$13567b2o$13567bobo$13567bo131$13696b2o$13695b
2o$13697bo130$13824b2o$13823b2o$13825bo110$13951b3o$13951bo$13952bo
150$14079b3o$14079bo$14080bo124$14207b3o$14207bo$14208bo111$14335b3o$
14335bo$14336bo134$14462b3o$14462bo$14463bo124$14591b3o$14591bo$14592b
o130$14718b3o$14718bo$14719bo125$14847bo$14846b2o$14846bobo112$14975bo
$14974b2o$14974bobo141$15102b3o$15102bo$15103bo140$15230b3o$15230bo$
15231bo129$15359b3o$15359bo$15360bo122$15486b3o$15486bo$15487bo120$
15615b3o$15615bo$15616bo126$15742b3o$15742bo$15743bo132$15871b3o$
15871bo$15872bo114$15999b3o$15999bo$16000bo130$16127b3o$16127bo$16128b
o146$16255bo$16254b2o$16254bobo130$16384bo$16383b2o$16383bobo134$
16512bo$16511b2o$16511bobo118$16640bo$16639b2o$16639bobo136$16767b2o$
16767bobo$16767bo122$16895b3o$16895bo$16896bo106$17023b2o$17023bobo$
17023bo134$17150b3o$17150bo$17151bo142$17279b3o$17279bo$17280bo126$
17407b3o$17407bo$17408bo120$17535b3o$17535bo$17536bo120$17662b3o$
17662bo$17663bo140$17790b3o$17790bo$17791bo91$17920b2o$17920bobo$
17920bo116$18048b2o$18048bobo$18048bo158$18176b2o$18176bobo$18176bo97$
18304b2o$18304bobo$18304bo123$18432b2o$18432bobo$18432bo128$18560b2o$
18560bobo$18560bo113$18688b2o$18688bobo$18688bo133$18816b2o$18816bobo$
18816bo136$18944b2o$18944bobo$18944bo125$19072b2o$19072bobo$19072bo
125$19200b2o$19200bobo$19200bo116$19327b2o$19327bobo$19327bo137$19455b
2o$19455bobo$19455bo116$19583b2o$19583bobo$19583bo103$19712b2o$19711b
2o$19713bo123$19840b2o$19839b2o$19841bo124$19967b3o$19967bo$19968bo
136$20096b2o$20095b2o$20097bo132$20224b2o$20223b2o$20225bo131$20351b3o
$20351bo$20352bo167$20479bo$20478b2o$20478bobo122$20607bo$20606b2o$
20606bobo118$20735bo$20734b2o$20734bobo130$20863b2o$20863bobo$20863bo
144$20992b2o$20992bobo$20992bo130$21120b2o$21120bobo$21120bo122$21248b
2o$21248bobo$21248bo108$21375bo$21374b2o$21374bobo134$21504bo$21503b2o
$21503bobo125$21631b2o$21630b2o$21632bo129$21759b2o$21758b2o$21760bo
133$21887b2o$21886b2o$21888bo111$22015b2o$22014b2o$22016bo127$22143b2o
$22142b2o$22144bo126$22272b2o$22271b2o$22273bo123$22400b2o$22399b2o$
22401bo117$22528b2o$22527b2o$22529bo156$22654b3o$22654bo$22655bo121$
22784b2o$22783b2o$22785bo115$22912b2o$22911b2o$22913bo122$23039b3o$
23039bo$23040bo122$23167b3o$23167bo$23168bo105$23295b3o$23295bo$23296b
o133$23423b3o$23423bo$23424bo124$23550b3o$23550bo$23551bo121$23679bo$
23678b2o$23678bobo127$23807b3o$23807bo$23808bo126$23935b3o$23935bo$
23936bo146$24063b3o$24063bo$24064bo113$24192bo$24191b2o$24191bobo141$
24319b3o$24319bo$24320bo136$24448b2o$24448bobo$24448bo129$24576b2o$
24576bobo$24576bo114$24704b2o$24704bobo$24704bo134$24832b2o$24832bobo$
24832bo134$24960b2o$24960bobo$24960bo128$25088b2o$25088bobo$25088bo
124$25216bo$25215b2o$25215bobo122$25344bo$25343b2o$25343bobo130$25472b
o$25471b2o$25471bobo114$25600bo$25599b2o$25599bobo134$25728b2o$25728bo
bo$25728bo116$25855bo$25854b2o$25854bobo136$25983bo$25982b2o$25982bobo
116$26111b2o$26111bobo$26111bo146$26239b2o$26239bobo$26239bo156$26367b
3o$26367bo$26368bo136$26495b3o$26495bo$26496bo92$26623b3o$26623bo$
26624bo130$26751b3o$26751bo$26752bo130$26879b3o$26879bo$26880bo128$
27007b3o$27007bo$27008bo137$27135b2o$27135bobo$27135bo131$27263b2o$
27263bobo$27263bo108$27391b2o$27391bobo$27391bo128$27519b2o$27518b2o$
27520bo137$27647b2o$27647bobo$27647bo111$27775b2o$27775bobo$27775bo
153$27903b2o$27903bobo$27903bo125$28031b2o$28031bobo$28031bo130$28159b
2o$28159bobo$28159bo129$28287b2o$28287bobo$28287bo121$28415b2o$28415bo
bo$28415bo139$28543b2o$28543bobo$28543bo110$28671b2o$28671bobo$28671bo
136$28800b2o$28800bobo$28800bo131$28928b2o$28928bobo$28928bo108$29056b
2o$29056bobo$29056bo128$29184b2o$29183b2o$29185bo137$29312b2o$29312bob
o$29312bo134$29440b2o$29439b2o$29441bo129$29566b3o$29566bo$29567bo124$
29695b3o$29695bo$29696bo118$29822b3o$29822bo$29823bo134$29950b3o$
29950bo$29951bo134$30079b3o$30079bo$30080bo124$30207b3o$30207bo$30208b
o127$30336b2o$30335b2o$30337bo130$30464b2o$30463b2o$30465bo136$30591b
3o$30591bo$30592bo121$30720b2o$30719b2o$30721bo114$30847b3o$30847bo$
30848bo141$30976b2o$30975b2o$30977bo138$31104b2o$31103b2o$31105bo125$
31231b3o$31231bo$31232bo112$31359b3o$31359bo$31360bo146$31488b2o$
31487b2o$31489bo123$31615b2o$31614b2o$31616bo129$31743b2o$31742b2o$
31744bo121$31871b2o$31870b2o$31872bo118$31999b2o$31998b2o$32000bo156$
32127b2o$32126b2o$32128bo134$32255b2o$32255bobo$32255bo133$32383b2o$
32383bobo$32383bo111$32511b2o$32511bobo$32511bo146$32639b2o$32638b2o$
32640bo134$32767b2o$32767bobo$32767bo115$32895b2o$32895bobo$32895bo
131$33023b2o$33023bobo$33023bo156$33151b2o$33151bobo$33151bo127$33280b
2o$33280bobo$33280bo133$33408b2o$33408bobo$33408bo111$33536b2o$33536bo
bo$33536bo146$33664b2o$33663b2o$33665bo134$33792b2o$33792bobo$33792bo
133$33920b2o$33920bobo$33920bo111$34048b2o$34048bobo$34048bo146$34176b
2o$34175b2o$34177bo134$34304b2o$34304bobo$34304bo133$34432b2o$34432bob
o$34432bo111$34560b2o$34560bobo$34560bo146$34688b2o$34687b2o$34689bo
134$34816b2o$34816bobo$34816bo115$34944b2o$34944bobo$34944bo131$35072b
2o$35072bobo$35072bo156$35200b2o$35200bobo$35200bo125$35327b2o$35327bo
bo$35327bo115$35455b2o$35455bobo$35455bo131$35583b2o$35583bobo$35583bo
156$35711b2o$35711bobo$35711bo127$35840b2o$35840bobo$35840bo115$35968b
2o$35968bobo$35968bo131$36096b2o$36096bobo$36096bo156$36224b2o$36224bo
bo$36224bo125$36351b2o$36351bobo$36351bo115$36479b2o$36479bobo$36479bo
136$36607b2o$36607bobo$36607bo150$36735b2o$36735bobo$36735bo115$36863b
2o$36863bobo$36863bo136$36991b2o$36991bobo$36991bo150$37119b2o$37119bo
bo$37119bo115$37247b2o$37247bobo$37247bo136$37375b2o$37375bobo$37375bo
150$37503b2o$37503bobo$37503bo115$37631b2o$37631bobo$37631bo136$37759b
2o$37759bobo$37759bo150$37887b2o$37887bobo$37887bo115$38015b2o$38015bo
bo$38015bo136$38143b2o$38143bobo$38143bo150$38271b2o$38271bobo$38271bo
115$38399b2o$38399bobo$38399bo136$38527b2o$38527bobo$38527bo150$38655b
2o$38655bobo$38655bo115$38783b2o$38783bobo$38783bo136$38911b2o$38911bo
bo$38911bo150$39039b2o$39039bobo$39039bo115$39167b2o$39167bobo$39167bo
136$39295b2o$39295bobo$39295bo150$39423b2o$39423bobo$39423bo115$39551b
2o$39551bobo$39551bo136$39679b2o$39679bobo$39679bo150$39807b2o$39807bo
bo$39807bo115$39935b2o$39935bobo$39935bo136$40063b2o$40063bobo$40063bo
150$40191b2o$40191bobo$40191bo115$40319b2o$40319bobo$40319bo136$40447b
2o$40447bobo$40447bo150$40575b2o$40575bobo$40575bo115$40703b2o$40703bo
bo$40703bo136$40831b2o$40831bobo$40831bo150$40958b3o$40958bo$40959bo
122$41087b3o$41087bo$41088bo114$41215b3o$41215bo$41216bo158$41342b3o$
41342bo$41343bo112$41470b3o$41470bo$41471bo131$41600bo$41599b2o$41599b
obo122$41727bo$41726b2o$41726bobo129$41856bo$41855b2o$41855bobo128$
41983bo$41982b2o$41982bobo144$42111b2o$42111bobo$42111bo125$42239b2o$
42239bobo$42239bo121$42367b2o$42366b2o$42368bo126$42496b2o$42496bobo$
42496bo124$42624b2o$42624bobo$42624bo114$42751bo$42750b2o$42750bobo
116$42880bo$42879b2o$42879bobo126$43008b2o$43008bobo$43008bo150$43136b
2o$43136bobo$43136bo139$43263b2o$43263bobo$43263bo130$43392bo$43391b2o
$43391bobo128$43519bo$43518b2o$43518bobo132$43648b2o$43648bobo$43648bo
114$43776b2o$43776bobo$43776bo122$43904b2o$43904bobo$43904bo130$44031b
o$44030b2o$44030bobo128$44160b2o$44160bobo$44160bo148$44288b2o$44288bo
bo$44288bo133$44416b2o$44416bobo$44416bo111$44544b2o$44544bobo$44544bo
146$44672b2o$44671b2o$44673bo134$44800b2o$44800bobo$44800bo133$44928b
2o$44928bobo$44928bo111$45056b2o$45056bobo$45056bo65$45183b2o$45183bob
o$45183bo119$45311b2o$45311bobo$45311bo143$45439b2o$45439bobo$45439bo
122$45567b2o$45567bobo$45567bo126$45695b2o$45695bobo$45695bo136$45823b
3o$45823bo$45824bo128$45950b3o$45950bo$45951bo127$46079bo$46078b2o$
46078bobo126$46207bo$46206b2o$46206bobo113$46335b3o$46335bo$46336bo
131$46463bo$46462b2o$46462bobo140$46592b2o$46591b2o$46593bo119$46720b
2o$46719b2o$46721bo133$46848b2o$46847b2o$46849bo144$46975b3o$46975bo$
46976bo110$47104b2o$47103b2o$47105bo130$47232b2o$47231b2o$47233bo125$
47359b3o$47359bo$47360bo129$47488b2o$47487b2o$47489bo129$47616b2o$
47615b2o$47617bo124$47744b2o$47744bobo$47744bo119$47872b2o$47872bobo$
47872bo126$48000b2o$48000bobo$48000bo124$48128b2o$48128bobo$48128bo
146$48256b2o$48256bobo$48256bo99$48384b2o$48384bobo$48384bo124$48512b
2o$48512bobo$48512bo127$48639b3o$48639bo$48640bo118$48767b3o$48767bo$
48768bo132$48894b3o$48894bo$48895bo134$49022b3o$49022bo$49023bo118$
49151b3o$49151bo$49152bo100$49279b2o$49279bobo$49279bo127$49407b2o$
49407bobo$49407bo134$49535bo$49534b2o$49534bobo134$49664b2o$49664bobo$
49664bo123$49792b2o$49792bobo$49792bo117$49920b2o$49920bobo$49920bo
137$50048b2o$50048bobo$50048bo130$50176b2o$50175b2o$50177bo127$50304b
2o$50304bobo$50304bo139$50432b2o$50432bobo$50432bo121$50559b3o$50559bo
$50560bo101$50687b3o$50687bo$50688bo128$50814b3o$50814bo$50815bo127$
50943bo$50942b2o$50942bobo134$51071bo$51070b2o$51070bobo114$51199bo$
51198b2o$51198bobo120$51327bo$51326b2o$51326bobo135$51455b3o$51455bo$
51456bo132$51582b3o$51582bo$51583bo129$51711bo$51710b2o$51710bobo137$
51839b3o$51839bo$51840bo120$51968b2o$51968bobo$51968bo119$52096b2o$
52096bobo$52096bo124$52224b2o$52224bobo$52224bo130$52352b2o$52352bobo$
52352bo120$52480b2o$52479b2o$52481bo133$52608b2o$52607b2o$52609bo129$
52736b2o$52736bobo$52736bo131$52864b2o$52864bobo$52864bo122$52992b2o$
52992bobo$52992bo106$53120b2o$53120bobo$53120bo123$53248b2o$53248bobo$
53248bo130$53376b2o$53375b2o$53377bo121$53504b2o$53504bobo$53504bo123$
53632b2o$53632bobo$53632bo130$53760b2o$53759b2o$53761bo121$53888b2o$
53888bobo$53888bo123$54016b2o$54016bobo$54016bo130$54144b2o$54143b2o$
54145bo130$54271b3o$54271bo$54272bo128$54398b3o$54398bo$54399bo130$
54527b3o$54527bo$54528bo120$54654b3o$54654bo$54655bo129$54783bo$54782b
2o$54782bobo121$54911b3o$54911bo$54912bo142$55038b3o$55038bo$55039bo
126$55167b2o$55167bobo$55167bo115$55295b2o$55295bobo$55295bo136$55423b
2o$55423bobo$55423bo85$55552b2o$55551b2o$55553bo117$55680b2o$55679b2o$
55681bo131$55808b2o$55807b2o$55809bo131$55936b2o$55935b2o$55937bo142$
56063b2o$56063bobo$56063bo129$56191b2o$56191bobo$56191bo126$56319b2o$
56319bobo$56319bo126$56447b2o$56446b2o$56448bo113$56575b2o$56575bobo$
56575bo142$56703b2o$56702b2o$56704bo109$56831b2o$56831bobo$56831bo106$
56959b3o$56959bo$56960bo121$57087b3o$57087bo$57088bo126$57215b3o$
57215bo$57216bo125$57343b2o$57343bobo$57343bo137$57471b2o$57471bobo$
57471bo91$57599b2o$57599bobo$57599bo127$57728b2o$57728bobo$57728bo119$
57856b2o$57856bobo$57856bo141$57984b2o$57984bobo$57984bo106$58112b2o$
58111b2o$58113bo118$58240b2o$58240bobo$58240bo137$58368b2o$58368bobo$
58368bo121$58496b2o$58496bobo$58496bo96$58624b2o$58624bobo$58624bo125$
58751b2o$58750b2o$58752bo127$58879b2o$58878b2o$58880bo114$59006b3o$
59006bo$59007bo135$59135b2o$59134b2o$59136bo120$59263b2o$59262b2o$
59264bo143$59391b2o$59390b2o$59392bo125$59519b2o$59518b2o$59520bo134$
59647b2o$59646b2o$59648bo129$59775b2o$59774b2o$59776bo120$59903b2o$
59902b2o$59904bo130$60031b2o$60030b2o$60032bo131$60158b3o$60158bo$
60159bo104$60286b3o$60286bo$60287bo137$60415b2o$60415bobo$60415bo133$
60543b2o$60543bobo$60543bo111$60671b2o$60671bobo$60671bo105$60800b2o$
60800bobo$60800bo119$60928b2o$60928bobo$60928bo141$61056b2o$61056bobo$
61056bo106$61184b2o$61183b2o$61185bo118$61312b2o$61312bobo$61312bo127$
61440b2o$61440bobo$61440bo131$61568b2o$61567b2o$61569bo114$61696b2o$
61696bobo$61696bo121$61824b2o$61824bobo$61824bo119$61952b2o$61952bobo$
61952bo141$62080b2o$62080bobo$62080bo106$62208b2o$62207b2o$62209bo118$
62336b2o$62336bobo$62336bo119$62464b2o$62464bobo$62464bo141$62592b2o$
62592bobo$62592bo106$62720b2o$62719b2o$62721bo118$62848b2o$62848bobo$
62848bo127$62976b2o$62976bobo$62976bo131$63104b2o$63103b2o$63105bo114$
63232b2o$63232bobo$63232bo121$63360b2o$63360bobo$63360bo119$63488b2o$
63488bobo$63488bo141$63616b2o$63616bobo$63616bo106$63744b2o$63743b2o$
63745bo118$63872b2o$63872bobo$63872bo127$64000b2o$64000bobo$64000bo
131$64128b2o$64127b2o$64129bo114$64256b2o$64256bobo$64256bo121$64384b
2o$64384bobo$64384bo127$64512b2o$64512bobo$64512bo131$64640b2o$64639b
2o$64641bo114$64768b2o$64768bobo$64768bo121$64896b2o$64895b2o$64897bo
117$65024b2o$65023b2o$65025bo131$65152b2o$65151b2o$65153bo131$65280b2o
$65279b2o$65281bo151$65406b3o$65406bo$65407bo130$65535b3o$65535bo$
65536bo133$65664bo$65663b2o$65663bobo133$65791b3o$65791bo$65792bo106$
65919b3o$65919bo$65920bo136$66046b3o$66046bo$66047bo145$66175b2o$
66175bobo$66175bo134$66303b2o$66303bobo$66303bo119$66431b2o$66431bobo$
66431bo127$66559b2o$66559bobo$66559bo114$66687b2o$66686b2o$66688bo135$
66815b2o$66814b2o$66816bo143$66943b2o$66943bobo$66943bo122$67072bo$
67071b2o$67071bobo132$67199bo$67198b2o$67198bobo120$67328bo$67327b2o$
67327bobo116$67456b2o$67456bobo$67456bo130$67583b2o$67583bobo$67583bo
144$67711bo$67710b2o$67710bobo128$67840b2o$67840bobo$67840bo119$67967b
2o$67966b2o$67968bo123$68095b2o$68094b2o$68096bo124$68222b3o$68222bo$
68223bo128$68351b2o$68350b2o$68352bo116$68478b3o$68478bo$68479bo131$
68606b3o$68606bo$68607bo123$68734b3o$68734bo$68735bo105$68863b2o$
68862b2o$68864bo136$68991b3o$68991bo$68992bo90$69119b3o$69119bo$69120b
o124$69248b2o$69248bobo$69248bo119$69376b2o$69376bobo$69376bo141$
69504b2o$69504bobo$69504bo90$69631b3o$69631bo$69632bo130$69759b3o$
69759bo$69760bo129$69887b3o$69887bo$69888bo116$70015b2o$70015bobo$
70015bo137$70143b2o$70143bobo$70143bo121$70271b2o$70271bobo$70271bo
139$70400b2o$70399b2o$70401bo127$70527b3o$70527bo$70528bo128$70654b3o$
70654bo$70655bo133$70784bo$70783b2o$70783bobo113$70910b3o$70910bo$
70911bo127$71040bo$71039b2o$71039bobo85$71167b2o$71167bobo$71167bo127$
71296b2o$71296bobo$71296bo137$71424b2o$71424bobo$71424bo116$71552b2o$
71552bobo$71552bo101$71679b2o$71679bobo$71679bo137$71807b2o$71807bobo$
71807bo116$71935b2o$71935bobo$71935bo111$72064bo$72063b2o$72063bobo
116$72192bo$72191b2o$72191bobo130$72319bo$72318b2o$72318bobo132$72448b
o$72447b2o$72447bobo144$72575b3o$72575bo$72576bo122$72702b3o$72702bo$
72703bo117$72832b2o$72831b2o$72833bo148$72959b2o$72958b2o$72960bo119$
73087b3o$73087bo$73088bo122$73216b2o$73215b2o$73217bo133$73342b3o$
73342bo$73343bo128$73471b3o$73471bo$73472bo127$73600b2o$73599b2o$
73601bo124$73727b2o$73726b2o$73728bo126$73856b2o$73855b2o$73857bo122$
73983b2o$73982b2o$73984bo139$74112b2o$74112bobo$74112bo135$74240b2o$
74240bobo$74240bo118$74367b2o$74367bobo$74367bo138$74496b2o$74496bobo$
74496bo116$74624bo$74623b2o$74623bobo107$74752b2o$74752bobo$74752bo
114$74880b2o$74880bobo$74880bo126$75007b2o$75006b2o$75008bo130$75134b
3o$75134bo$75135bo103$75264b2o$75264bobo$75264bo120$75391bo$75390b2o$
75390bobo126$75520b2o$75520bobo$75520bo140$75647b2o$75646b2o$75648bo
124$75775b2o$75774b2o$75776bo134$75903b3o$75903bo$75904bo142$76030b3o$
76030bo$76031bo131$76159b2o$76159bobo$76159bo126$76288b2o$76288bobo$
76288bo114$76416b2o$76416bobo$76416bo103$76542b3o$76542bo$76543bo130$
76671b3o$76671bo$76672bo131$76799bo$76798b2o$76798bobo108$76928bo$
76927b2o$76927bobo152$77056bo$77055b2o$77055bobo128$77183bo$77182b2o$
77182bobo128$77312bo$77311b2o$77311bobo127$77438b3o$77438bo$77439bo
136$77567b3o$77567bo$77568bo128$77695b3o$77695bo$77696bo121$77824b2o$
77823b2o$77825bo123$77952b2o$77951b2o$77953bo134$78080b2o$78079b2o$
78081bo118$78207b3o$78207bo$78208bo127$78335b3o$78335bo$78336bo121$
78463b3o$78463bo$78464bo119$78591b2o$78591bobo$78591bo129$78719b2o$
78719bobo$78719bo126$78847b2o$78847bobo$78847bo126$78975b2o$78974b2o$
78976bo113$79103b2o$79103bobo$79103bo142$79231b2o$79230b2o$79232bo109$
79359b2o$79359bobo$79359bo172$79488b2o$79488bobo$79488bo126$79616b2o$
79616bobo$79616bo140$79744b2o$79743b2o$79745bo131$79872b2o$79871b2o$
79873bo121$80000b2o$80000bobo$80000bo124$80128b2o$80128bobo$80128bo
129$80256b2o$80255b2o$80257bo108$80384b2o$80384bobo$80384bo135$80512b
2o$80512bobo$80512bo112$80640b2o$80639b2o$80641bo129$80768b2o$80767b2o
$80769bo114$80896b2o$80895b2o$80897bo141$81024b2o$81023b2o$81025bo125$
81151b3o$81151bo$81152bo122$81279b3o$81279bo$81280bo133$81408b2o$
81407b2o$81409bo127$81535b3o$81535bo$81536bo124$81663b3o$81663bo$
81664bo131$81791b3o$81791bo$81792bo105$81919b3o$81919bo$81920bo124$
82046b3o$82046bo$82047bo140$82174b3o$82174bo$82175bo124$82302b3o$
82302bo$82303bo121$82432bo$82431b2o$82431bobo145$82558b3o$82558bo$
82559bo129$82687bo$82686b2o$82686bobo121$82815b3o$82815bo$82816bo126$
82944b2o$82944bobo$82944bo126$83072b2o$83072bobo$83072bo116$83200b2o$
83199b2o$83201bo135$83328b2o$83327b2o$83329bo134$83456b2o$83455b2o$
83457bo140$83584b2o$83584bobo$83584bo99$83712b2o$83711b2o$83713bo137$
83840b2o$83840bobo$83840bo171$83967b3o$83967bo$83968bo129$84095bo$
84094b2o$84094bobo155$84223b3o$84223bo$84224bo101$84351bo$84350b2o$
84350bobo147$84478b3o$84478bo$84479bo119$84607b3o$84607bo$84608bo116$
84735b3o$84735bo$84736bo126$84863b3o$84863bo$84864bo122$84990b3o$
84990bo$84991bo131$85119bo$85118b2o$85118bobo139$85246b3o$85246bo$
85247bo124$85375b3o$85375bo$85376bo137$85503bo$85502b2o$85502bobo123$
85631b3o$85631bo$85632bo113$85759bo$85758b2o$85758bobo100$85887bo$
85886b2o$85886bobo122$86015bo$86014b2o$86014bobo128$86143bo$86142b2o$
86142bobo120$86271bo$86270b2o$86270bobo136$86400bo$86399b2o$86399bobo
124$86528b2o$86528bobo$86528bo146$86656b2o$86655b2o$86657bo127$86784b
2o$86783b2o$86785bo124$86911b3o$86911bo$86912bo120$87040b2o$87039b2o$
87041bo120$87167b3o$87167bo$87168bo124$87295b3o$87295bo$87296bo145$
87423b3o$87423bo$87424bo118$87552b2o$87551b2o$87553bo148$87679b3o$
87679bo$87680bo114$87808b2o$87807b2o$87809bo129$87936b2o$87935b2o$
87937bo133$88064b2o$88063b2o$88065bo116$88192b2o$88191b2o$88193bo126$
88320b2o$88319b2o$88321bo133$88447b3o$88447bo$88448bo128$88576b2o$
88575b2o$88577bo120$88703b3o$88703bo$88704bo127$88831b2o$88830b2o$
88832bo119$88959b2o$88958b2o$88960bo124$89087b2o$89086b2o$89088bo143$
89215b2o$89214b2o$89216bo126$89343b2o$89342b2o$89344bo104$89471b2o$
89470b2o$89472bo125$89598b3o$89598bo$89599bo123$89727b2o$89726b2o$
89728bo123$89855b2o$89854b2o$89856bo104$89983b2o$89983bobo$89983bo123$
90111b2o$90111bobo$90111bo121$90239b2o$90238b2o$90240bo135$90367b2o$
90367bobo$90367bo127$90495b2o$90495bobo$90495bo127$90624b2o$90623b2o$
90625bo122$90752b2o$90751b2o$90753bo112$90879b3o$90879bo$90880bo150$
91007b3o$91007bo$91008bo139$91135b3o$91135bo$91136bo109$91263b3o$
91263bo$91264bo129$91391b2o$91391bobo$91391bo129$91519b2o$91519bobo$
91519bo121$91647b2o$91647bobo$91647bo118$91775b2o$91775bobo$91775bo
139$91903b2o$91903bobo$91903bo130$92031b2o$92031bobo$92031bo114$92159b
2o$92159bobo$92159bo134$92287b2o$92287bobo$92287bo136$92415b2o$92415bo
bo$92415bo117$92543b2o$92542b2o$92544bo136$92671b2o$92670b2o$92672bo
121$92799b2o$92798b2o$92800bo122$92927b2o$92926b2o$92928bo136$93055b2o
$93054b2o$93056bo113$93183b2o$93182b2o$93184bo123$93311b2o$93310b2o$
93312bo140$93438b3o$93438bo$93439bo141$93566b3o$93566bo$93567bo102$
93696bo$93695b2o$93695bobo122$93824bo$93823b2o$93823bobo118$93951b2o$
93951bobo$93951bo120$94079b2o$94079bobo$94079bo132$94207b2o$94207bobo$
94207bo122$94335b2o$94335bobo$94335bo136$94464b2o$94464bobo$94464bo
116$94592bo$94591b2o$94591bobo126$94719b2o$94719bobo$94719bo142$94847b
o$94846b2o$94846bobo125$94975bo$94974b2o$94974bobo136$95104bo$95103b2o
$95103bobo120$95231bo$95230b2o$95230bobo122$95360bo$95359b2o$95359bobo
134$95488b2o$95488bobo$95488bo132$95615b2o$95615bobo$95615bo116$95743b
2o$95743bobo$95743bo134$95871bo$95870b2o$95870bobo130$96000bo$95999b2o
$95999bobo136$96127b2o$96127bobo$96127bo124$96255b2o$96255bobo$96255bo
116$96384bo$96383b2o$96383bobo114$96511bo$96510b2o$96510bobo108$96639b
3o$96639bo$96640bo122$96766b3o$96766bo$96767bo138$96894b3o$96894bo$
96895bo128$97023b3o$97023bo$97024bo134$97151b2o$97151bobo$97151bo150$
97279b2o$97279bobo$97279bo74$97407b3o$97407bo$97408bo126$97534b3o$
97534bo$97535bo132$97663b3o$97663bo$97664bo119$97792bo$97791b2o$97791b
obo130$97919bo$97918b2o$97918bobo134$98048bo$98047b2o$98047bobo130$
98175b2o$98175bobo$98175bo119$98303b2o$98303bobo$98303bo138$98431b2o$
98431bobo$98431bo121$98559b2o$98558b2o$98560bo135$98687b2o$98687bobo$
98687bo118$98815b2o$98814b2o$98816bo123$98943b2o$98942b2o$98944bo130$
99072b2o$99072bobo$99072bo123$99200b2o$99200bobo$99200bo122$99328b2o$
99327b2o$99329bo144$99456b2o$99455b2o$99457bo124$99584b2o$99584bobo$
99584bo124$99712b2o$99712bobo$99712bo114$99840b2o$99839b2o$99841bo135$
99968b2o$99968bobo$99968bo114$100094b3o$100094bo$100095bo116$100222b3o
$100222bo$100223bo134$100351b3o$100351bo$100352bo138$100478b3o$100478b
o$100479bo116$100607b3o$100607bo$100608bo120$100734b3o$100734bo$
100735bo134$100862b3o$100862bo$100863bo114$100991b2o$100991bobo$
100991bo123$101119b2o$101119bobo$101119bo122$101247b2o$101247bobo$
101247bo127$101375b2o$101375bobo$101375bo135$101503b2o$101503bobo$
101503bo119$101631b2o$101630b2o$101632bo120$101759b2o$101759bobo$
101759bo133$101887b2o$101887bobo$101887bo134$102015b2o$102015bobo$
102015bo128$102143b2o$102143bobo$102143bo123$102271b2o$102271bobo$
102271bo130$102399b2o$102398b2o$102400bo259$102527b2o$102527bobo$
102527bo123$102655b2o$102655bobo$102655bo122$102783b2o$102783bobo$
102783bo134$102911b2o$102911bobo$102911bo126$103039b2o$103039bobo$
103039bo129$103167b2o$103167bobo$103167bo122$103295b2o$103295bobo$
103295bo126$103423b2o$103423bobo$103423bo130$103551b2o$103551bobo$
103551bo129$103679b2o$103679bobo$103679bo126$103807b2o$103806b2o$
103808bo131$103935b2o$103935bobo$103935bo112$104063b2o$104063bobo$
104063bo128$104191b2o$104190b2o$104192bo143$104319b2o$104319bobo$
104319bo137$104447b2o$104447bobo$104447bo124$104575b2o$104575bobo$
104575bo127$104703b2o$104703bobo$104703bo117$104831b2o$104831bobo$
104831bo123$104959b2o$104959bobo$104959bo128$105087b2o$105087bobo$
105087bo129$105215b2o$105215bobo$105215bo156$105343b2o$105342b2o$
105344bo134$105471b2o$105471bobo$105471bo125$105599b2o$105599bobo$
105599bo121$105727b2o$105726b2o$105728bo139$105855b2o$105855bobo$
105855bo131$105984b2o$105984bobo$105984bo133$106112b2o$106112bobo$
106112bo111$106240b2o$106240bobo$106240bo146$106368b2o$106367b2o$
106369bo89$106495bo$106494b2o$106494bobo122$106623bo$106622b2o$106622b
obo118$106752b2o$106752bobo$106752bo132$106879bo$106878b2o$106878bobo
126$107007bo$107006b2o$107006bobo138$107136b2o$107136bobo$107136bo136$
107264b2o$107264bobo$107264bo103$107392bo$107391b2o$107391bobo134$
107519bo$107518b2o$107518bobo120$107648bo$107647b2o$107647bobo136$
107775b2o$107775bobo$107775bo118$107903b2o$107903bobo$107903bo122$
108032bo$108031b2o$108031bobo126$108159bo$108158b2o$108158bobo124$
108288b2o$108288bobo$108288bo126$108416b2o$108416bobo$108416bo123$
108544b2o$108544bobo$108544bo128$108672b2o$108672bobo$108672bo128$
108800b2o$108800bobo$108800bo109$108928b2o$108928bobo$108928bo122$
109056b2o$109056bobo$109056bo134$109184b2o$109184bobo$109184bo127$
109311bo$109310b2o$109310bobo126$109440bo$109439b2o$109439bobo124$
109568bo$109567b2o$109567bobo114$109695bo$109694b2o$109694bobo144$
109824b2o$109824bobo$109824bo130$109951bo$109950b2o$109950bobo124$
110080bo$110079b2o$110079bobo115$110207b2o$110206b2o$110208bo136$
110335b2o$110334b2o$110336bo121$110463b2o$110462b2o$110464bo121$
110591b2o$110590b2o$110592bo141$110718b3o$110718bo$110719bo130$110847b
2o$110846b2o$110848bo123$110974b3o$110974bo$110975bo134$111102b3o$
111102bo$111103bo121$111232b2o$111231b2o$111233bo123$111360b2o$111359b
2o$111361bo124$111487b3o$111487bo$111488bo125$111615b3o$111615bo$
111616bo124$111744b2o$111743b2o$111745bo125$111872b2o$111871b2o$
111873bo126$112000b2o$111999b2o$112001bo141$112128b2o$112127b2o$
112129bo141$112255b3o$112255bo$112256bo130$112383b3o$112383bo$112384bo
109$112511bo$112510b2o$112510bobo124$112639bo$112638b2o$112638bobo118$
112767bo$112766b2o$112766bobo159$112894b3o$112894bo$112895bo122$
113022b3o$113022bo$113023bo118$113151b3o$113151bo$113152bo128$113279b
3o$113279bo$113280bo167$113407b2o$113407bobo$113407bo115$113536b2o$
113536bobo$113536bo125$113664b2o$113664bobo$113664bo121$113792b2o$
113791b2o$113793bo139$113920b2o$113920bobo$113920bo128$114047bo$
114046b2o$114046bobo136$114176bo$114175b2o$114175bobo126$114304bo$
114303b2o$114303bobo122$114432bo$114431b2o$114431bobo116$114560bo$
114559b2o$114559bobo116$114688b2o$114688bobo$114688bo125$114815bo$
114814b2o$114814bobo122$114943bo$114942b2o$114942bobo124$115072bo$
115071b2o$115071bobo130$115199bo$115198b2o$115198bobo122$115327bo$
115326b2o$115326bobo156$115455b2o$115455bobo$115455bo133$115583b2o$
115583bobo$115583bo111$115711b2o$115711bobo$115711bo122$115839b2o$
115839bobo$115839bo122$115967b2o$115967bobo$115967bo132$116096b2o$
116096bobo$116096bo114$116223b2o$116223bobo$116223bo126$116351b2o$
116351bobo$116351bo126$116479b2o$116479bobo$116479bo129$116607b2o$
116607bobo$116607bo118$116735b2o$116735bobo$116735bo129$116863b2o$
116863bobo$116863bo139$116991b2o$116990b2o$116992bo127$117119b2o$
117118b2o$117120bo119$117247b2o$117247bobo$117247bo119$117375b2o$
117375bobo$117375bo119$117503b2o$117503bobo$117503bo140$117631b2o$
117631bobo$117631bo114$117759b2o$117759bobo$117759bo133$117887b2o$
117887bobo$117887bo127$118015b2o$118015bobo$118015bo126$118143b2o$
118143bobo$118143bo130$118271b2o$118271bobo$118271bo124$118399b2o$
118399bobo$118399bo124$118527b2o$118527bobo$118527bo116$118655b2o$
118654b2o$118656bo123$118783b2o$118782b2o$118784bo119$118910b3o$
118910bo$118911bo118$119038b3o$119038bo$119039bo88$119168b2o$119167b2o
$119169bo97$119295b3o$119295bo$119296bo151$119423b2o$119423bobo$
119423bo126$119551b2o$119551bobo$119551bo128$119679b2o$119678b2o$
119680bo135$119807b2o$119806b2o$119808bo117$119935b2o$119934b2o$
119936bo120$120063b2o$120063bobo$120063bo131$120191b2o$120191bobo$
120191bo110$120319b2o$120318b2o$120320bo129$120447b3o$120447bo$120448b
o132$120574b3o$120574bo$120575bo124$120703b3o$120703bo$120704bo112$
120831b3o$120831bo$120832bo138$120959b3o$120959bo$120960bo126$121086b
3o$121086bo$121087bo116$121215b3o$121215bo$121216bo131$121344bo$
121343b2o$121343bobo139$121471b3o$121471bo$121472bo124$121599b2o$
121599bobo$121599bo130$121727b2o$121727bobo$121727bo130$121855b2o$
121855bobo$121855bo121$121983b2o$121983bobo$121983bo136$122111b2o$
122111bobo$122111bo125$122239b2o$122239bobo$122239bo139$122367b2o$
122367bobo$122367bo137$122494b3o$122494bo$122495bo126$122623b3o$
122623bo$122624bo148$122751b2o$122750b2o$122752bo142$122878b3o$122878b
o$122879bo120$123006b3o$123006bo$123007bo122$123134b3o$123134bo$
123135bo112$123263b3o$123263bo$123264bo116$123390b3o$123390bo$123391bo
119$123519bo$123518b2o$123518bobo122$123648bo$123647b2o$123647bobo138$
123775bo$123774b2o$123774bobo137$123903b3o$123903bo$123904bo120$
124030b3o$124030bo$124031bo138$124158b3o$124158bo$124159bo159$124287b
2o$124287bobo$124287bo125$124415b2o$124415bobo$124415bo125$124544b2o$
124544bobo$124544bo129$124672b2o$124672bobo$124672bo121$124800b2o$
124800bobo$124800bo146$124927b2o$124926b2o$124928bo134$125055b2o$
125055bobo$125055bo125$125183b2o$125183bobo$125183bo121$125311b2o$
125310b2o$125312bo117$125440b2o$125439b2o$125441bo115$125568b2o$
125568bobo$125568bo117$125696b2o$125695b2o$125697bo148$125824b2o$
125824bobo$125824bo102$125952b2o$125952bobo$125952bo126$126080b2o$
126080bobo$126080bo130$126208b2o$126208bobo$126208bo124$126336b2o$
126336bobo$126336bo132$126464b2o$126464bobo$126464bo114$126592b2o$
126592bobo$126592bo121$126720b2o$126720bobo$126720bo152$126848b2o$
126847b2o$126849bo119$126976b2o$126975b2o$126977bo127$127104b2o$
127104bobo$127104bo126$127232b2o$127232bobo$127232bo114$127360b2o$
127360bobo$127360bo119$127488b2o$127488bobo$127488bo140$127616b2o$
127615b2o$127617bo97$127744b2o$127743b2o$127745bo120$127872b2o$127872b
obo$127872bo137$128000b2o$128000bobo$128000bo130$128128b2o$128128bobo$
128128bo125$128256bo$128255b2o$128255bobo122$128384bo$128383b2o$
128383bobo132$128511bo$128510b2o$128510bobo126$128639bo$128638b2o$
128638bobo140$128767b2o$128767bobo$128767bo86$128896bo$128895b2o$
128895bobo130$129024b2o$129024bobo$129024bo136$129151b2o$129151bobo$
129151bo120$129279b2o$129279bobo$129279bo118$129408b2o$129408bobo$
129408bo119$129536b2o$129536bobo$129536bo124$129664b2o$129664bobo$
129664bo145$129792b2o$129792bobo$129792bo115$129920b2o$129919b2o$
129921bo121$130048b2o$130047b2o$130049bo132$130176b2o$130176bobo$
130176bo127$130304b2o$130303b2o$130305bo83$130431b2o$130431bobo$
130431bo124$130559b2o$130559bobo$130559bo136$130687b2o$130687bobo$
130687bo126$130815b2o$130815bobo$130815bo129$130943b2o$130943bobo$
130943bo120$131071b2o$131070b2o$131072bo114$131199b2o$131199bobo$
131199bo129$131327b2o$131327bobo$131327bo113$131455b2o$131454b2o$
131456bo131$131583b2o$131583bobo$131583bo137$131711b2o$131710b2o$
131712bo141$131839bo$131838b2o$131838bobo137$131968b2o$131967b2o$
131969bo134$132095b2o$132095bobo$132095bo130$132223b2o$132223bobo$
132223bo132$132351b2o$132350b2o$132352bo107$132479b2o$132478b2o$
132480bo134$132607b2o$132607bobo$132607bo136$132735b2o$132734b2o$
132736bo123$132863b2o$132862b2o$132864bo110$132991b2o$132991bobo$
132991bo134$133119b2o$133119bobo$133119bo124$133247b2o$133246b2o$
133248bo144$133375b2o$133374b2o$133376bo126$133503b2o$133502b2o$
133504bo123$133631b2o$133630b2o$133632bo118$133760bo$133759b2o$133759b
obo122$133888bo$133887b2o$133887bobo117$134015b3o$134015bo$134016bo
134$134143b3o$134143bo$134144bo120$134270b3o$134270bo$134271bo137$
134399bo$134398b2o$134398bobo129$134527b3o$134527bo$134528bo173$
134655b2o$134655bobo$134655bo113$134782b3o$134782bo$134783bo124$
134911b3o$134911bo$134912bo132$135038b3o$135038bo$135039bo114$135166b
3o$135166bo$135167bo120$135296b2o$135295b2o$135297bo132$135423b3o$
135423bo$135424bo124$135552b2o$135551b2o$135553bo140$135679b2o$135678b
2o$135680bo116$135806b3o$135806bo$135807bo142$135934b3o$135934bo$
135935bo126$136063b2o$136063bobo$136063bo127$136191b2o$136191bobo$
136191bo127$136320bo$136319b2o$136319bobo113$136448bo$136447b2o$
136447bobo122$136575b2o$136575bobo$136575bo116$136704bo$136703b2o$
136703bobo126$136832bo$136831b2o$136831bobo134$136960bo$136959b2o$
136959bobo107$137088bo$137087b2o$137087bobo122$137215bo$137214b2o$
137214bobo132$137344bo$137343b2o$137343bobo127$137471b3o$137471bo$
137472bo131$137599bo$137598b2o$137598bobo105$137726b3o$137726bo$
137727bo140$137855b3o$137855bo$137856bo120$137982b3o$137982bo$137983bo
146$138111b3o$138111bo$138112bo125$138238b3o$138238bo$138239bo116$
138366b3o$138366bo$138367bo103$138494b3o$138494bo$138495bo118$138624bo
$138623b2o$138623bobo124$138751bo$138750b2o$138750bobo140$138880b2o$
138880bobo$138880bo134$139007b3o$139007bo$139008bo128$139134b3o$
139134bo$139135bo127$139263bo$139262b2o$139262bobo134$139391bo$139390b
2o$139390bobo133$139519b3o$139519bo$139520bo123$139647bo$139646b2o$
139646bobo104$139776bo$139775b2o$139775bobo124$139904bo$139903b2o$
139903bobo115$140032bo$140031b2o$140031bobo120$140159bo$140158b2o$
140158bobo124$140287bo$140286b2o$140286bobo120$140416b2o$140415b2o$
140417bo117$140544b2o$140543b2o$140545bo133$140672b2o$140671b2o$
140673bo128$140799b3o$140799bo$140800bo128$140927b3o$140927bo$140928bo
111$141055b3o$141055bo$141056bo136$141184b2o$141184bobo$141184bo136$
141312b2o$141312bobo$141312bo121$141440b2o$141440bobo$141440bo131$
141568b2o$141568bobo$141568bo123$141696b2o$141695b2o$141697bo139$
141824b2o$141823b2o$141825bo118$141952b2o$141952bobo$141952bo114$
142080b2o$142080bobo$142080bo108$142206b3o$142206bo$142207bo126$
142334b3o$142334bo$142335bo119$142463bo$142462b2o$142462bobo120$
142591bo$142590b2o$142590bobo137$142718b3o$142718bo$142719bo119$
142848bo$142847b2o$142847bobo134$142976bo$142975b2o$142975bobo127$
143102b3o$143102bo$143103bo146$143231b2o$143231bobo$143231bo131$
143359b2o$143359bobo$143359bo118$143487b2o$143487bobo$143487bo133$
143615b2o$143615bobo$143615bo105$143743b2o$143742b2o$143744bo128$
143871b2o$143871bobo$143871bo147$144000bo$143999b2o$143999bobo128$
144127bo$144126b2o$144126bobo138$144256b2o$144256bobo$144256bo124$
144384b2o$144384bobo$144384bo114$144511bo$144510b2o$144510bobo116$
144640bo$144639b2o$144639bobo126$144768b2o$144768bobo$144768bo150$
144896b2o$144896bobo$144896bo90$145024bo$145023b2o$145023bobo118$
145152bo$145151b2o$145151bobo138$145280bo$145279b2o$145279bobo134$
145407b2o$145407bobo$145407bo110$145536b2o$145536bobo$145536bo114$
145664bo$145663b2o$145663bobo130$145792bo$145791b2o$145791bobo126$
145919b2o$145919bobo$145919bo142$146048bo$146047b2o$146047bobo119$
146175b2o$146175bobo$146175bo123$146303b2o$146303bobo$146303bo118$
146431b2o$146430b2o$146432bo121$146559b2o$146558b2o$146560bo144$
146687b2o$146687bobo$146687bo131$146815b2o$146814b2o$146816bo132$
146943b2o$146943bobo$146943bo115$147071b2o$147071bobo$147071bo129$
147200b2o$147200bobo$147200bo129$147328b2o$147328bobo$147328bo133$
147456b2o$147456bobo$147456bo95$147583b2o$147583bobo$147583bo142$
147712b2o$147712bobo$147712bo115$147840b2o$147839b2o$147841bo132$
147968b2o$147968bobo$147968bo134$148096b2o$148095b2o$148097bo123$
148224b2o$148223b2o$148225bo128$148352b2o$148351b2o$148353bo124$
148480b2o$148480bobo$148480bo123$148608b2o$148608bobo$148608bo130$
148736b2o$148736bobo$148736bo113$148864b2o$148863b2o$148865bo132$
148992b2o$148991b2o$148993bo131$149120b2o$149120bobo$149120bo114$
149248b2o$149248bobo$149248bo143$149376b2o$149375b2o$149377bo115$
149504b2o$149504bobo$149504bo123$149632b2o$149632bobo$149632bo139$
149760b2o$149759b2o$149761bo118$149888b2o$149888bobo$149888bo132$
150016b2o$150015b2o$150017bo126$150143b3o$150143bo$150144bo128$150270b
3o$150270bo$150271bo135$150399bo$150398b2o$150398bobo124$150527bo$
150526b2o$150526bobo117$150654b3o$150654bo$150655bo109$150784b2o$
150784bobo$150784bo118$150911b2o$150911bobo$150911bo140$151040bo$
151039b2o$151039bobo124$151167bo$151166b2o$151166bobo122$151295b2o$
151295bobo$151295bo128$151423b2o$151423bobo$151423bo107$151551b2o$
151551bobo$151551bo137$151679b2o$151678b2o$151680bo119$151807b2o$
151807bobo$151807bo129$151935b2o$151934b2o$151936bo154$152064bo$
152063b2o$152063bobo127$152190b3o$152190bo$152191bo116$152319b2o$
152318b2o$152320bo119$152447b2o$152446b2o$152448bo128$152575b2o$
152575bobo$152575bo126$152704bo$152703b2o$152703bobo128$152831bo$
152830b2o$152830bobo134$152959bo$152958b2o$152958bobo124$153087b2o$
153087bobo$153087bo110$153216b2o$153216bobo$153216bo124$153343b2o$
153343bobo$153343bo148$153472b2o$153472bobo$153472bo114$153599b2o$
153599bobo$153599bo122$153727b2o$153727bobo$153727bo136$153855bo$
153854b2o$153854bobo116$153983bo$153982b2o$153982bobo134$154112bo$
154111b2o$154111bobo126$154239b2o$154239bobo$154239bo165$154367b3o$
154367bo$154368bo117$154496b2o$154496bobo$154496bo129$154624b2o$
154624bobo$154624bo123$154752b2o$154752bobo$154752bo120$154880b2o$
154880bobo$154880bo123$155008b2o$155008bobo$155008bo119$155135bo$
155134b2o$155134bobo126$155263bo$155262b2o$155262bobo130$155391bo$
155390b2o$155390bobo118$155519bo$155518b2o$155518bobo124$155647bo$
155646b2o$155646bobo146$155776bo$155775b2o$155775bobo116$155904b2o$
155904bobo$155904bo124$156032bo$156031b2o$156031bobo124$156160bo$
156159b2o$156159bobo124$156287b2o$156287bobo$156287bo126$156415b2o$
156415bobo$156415bo126$156543b2o$156542b2o$156544bo131$156671b2o$
156670b2o$156672bo128$156798b3o$156798bo$156799bo127$156926b3o$156926b
o$156927bo103$157054b3o$157054bo$157055bo127$157182b3o$157182bo$
157183bo136$157310b3o$157310bo$157311bo115$157438b3o$157438bo$157439bo
165$157566b3o$157566bo$157567bo165$157695bo$157694b2o$157694bobo135$
157823b3o$157823bo$157824bo123$157951b2o$157951bobo$157951bo192$
158079b2o$158079bobo$158079bo122$158208b2o$158208bobo$158208bo136$
158336b2o$158336bobo$158336bo126$158464b2o$158464bobo$158464bo119$
158592b2o$158592bobo$158592bo140$158720b2o$158719b2o$158721bo131$
158848b2o$158847b2o$158849bo124$158976b2o$158975b2o$158977bo126$
159104b2o$159104bobo$159104bo126$159232b2o$159232bobo$159232bo132$
159360b2o$159359b2o$159361bo149$159487b2o$159487bobo$159487bo115$
159615b2o$159615bobo$159615bo136$159743b2o$159743bobo$159743bo150$
159871b2o$159871bobo$159871bo115$159999b2o$159999bobo$159999bo136$
160127b2o$160127bobo$160127bo141$160255b2o$160254b2o$160256bo129$
160383b2o$160382b2o$160384bo126$160511b2o$160510b2o$160512bo113$
160638b3o$160638bo$160639bo125$160767b2o$160766b2o$160768bo158$160896b
2o$160895b2o$160897bo134$161024b2o$161024bobo$161024bo133$161152b2o$
161152bobo$161152bo111$161280b2o$161280bobo$161280bo119$161407b2o$
161406b2o$161408bo113$161535bo$161534b2o$161534bobo134$161664bo$
161663b2o$161663bobo128$161792bo$161791b2o$161791bobo100$161919b2o$
161918b2o$161920bo129$162046b3o$162046bo$162047bo131$162175bo$162174b
2o$162174bobo130$162303bo$162302b2o$162302bobo170$162432b2o$162431b2o$
162433bo134$162560b2o$162560bobo$162560bo133$162688b2o$162688bobo$
162688bo111$162816b2o$162816bobo$162816bo146$162944b2o$162943b2o$
162945bo125$163072b2o$163072bobo$163072bo119$163200b2o$163200bobo$
163200bo134$163328b2o$163328bobo$163328bo131$163456b2o$163455b2o$
163457bo130$163584b2o$163583b2o$163585bo144$163712b2o$163712bobo$
163712bo96$163839b2o$163839bobo$163839bo123$163967b2o$163967bobo$
163967bo118$164095b2o$164095bobo$164095bo137$164223b2o$164222b2o$
164224bo131$164351b2o$164350b2o$164352bo127$164479b2o$164479bobo$
164479bo144$164607b2o$164607bobo$164607bo117$164735b2o$164735bobo$
164735bo136$164863b2o$164863bobo$164863bo126$164991b2o$164991bobo$
164991bo115$165119b2o$165119bobo$165119bo128$165247b2o$165246b2o$
165248bo121$165375b2o$165374b2o$165376bo120$165504b2o$165503b2o$
165505bo129$165632b2o$165631b2o$165633bo121$165760b2o$165759b2o$
165761bo121$165887b3o$165887bo$165888bo122$166015b3o$166015bo$166016bo
146$166143b3o$166143bo$166144bo137$166272b2o$166271b2o$166273bo107$
166400b2o$166399b2o$166401bo133$166527b2o$166527bobo$166527bo131$
166655b2o$166655bobo$166655bo146$166783b2o$166783bobo$166783bo118$
166911b2o$166911bobo$166911bo93$167039b2o$167039bobo$167039bo140$
167167b2o$167167bobo$167167bo121$167295b2o$167294b2o$167296bo129$
167423b2o$167422b2o$167424bo135$167551bo$167550b2o$167550bobo95$
167679b2o$167679bobo$167679bo116$167807b2o$167807bobo$167807bo136$
167935b2o$167935bobo$167935bo108$168064b2o$168064bobo$168064bo126$
168191b2o$168191bobo$168191bo125$168319b2o$168319bobo$168319bo123$
168447b2o$168447bobo$168447bo134$168575b2o$168575bobo$168575bo131$
168703b2o$168703bobo$168703bo113$168831b2o$168831bobo$168831bo103$
168959b2o$168959bobo$168959bo145$169087b2o$169087bobo$169087bo123$
169215b2o$169215bobo$169215bo134$169343b2o$169343bobo$169343bo122$
169471b2o$169471bobo$169471bo133$169599b2o$169598b2o$169600bo105$
169727b2o$169727bobo$169727bo117$169854b3o$169854bo$169855bo141$
169983b2o$169983bobo$169983bo127$170111b2o$170111bobo$170111bo131$
170239b2o$170238b2o$170240bo109$170367b2o$170366b2o$170368bo119$
170496b2o$170496bobo$170496bo119$170624b2o$170624bobo$170624bo124$
170752b2o$170752bobo$170752bo145$170880b2o$170880bobo$170880bo115$
171008b2o$171007b2o$171009bo113$171136b2o$171136bobo$171136bo129$
171264b2o$171263b2o$171265bo123$171392b2o$171391b2o$171393bo138$
171520b2o$171519b2o$171521bo119$171648b2o$171648bobo$171648bo125$
171775bo$171774b2o$171774bobo130$171904bo$171903b2o$171903bobo130$
172031b2o$172031bobo$172031bo116$172160bo$172159b2o$172159bobo138$
172288b2o$172288bobo$172288bo136$172416b2o$172416bobo$172416bo126$
172543bo$172542b2o$172542bobo116$172671b2o$172671bobo$172671bo126$
172799bo$172798b2o$172798bobo136$172927b3o$172927bo$172928bo124$
173054b3o$173054bo$173055bo127$173184bo$173183b2o$173183bobo138$
173311bo$173310b2o$173310bobo123$173439b3o$173439bo$173440bo118$
173567b3o$173567bo$173568bo123$173695bo$173694b2o$173694bobo145$
173823b2o$173823bobo$173823bo123$173951b2o$173951bobo$173951bo130$
174079b2o$174078b2o$174080bo121$174207b2o$174206b2o$174208bo134$
174335b2o$174334b2o$174336bo120$174463b2o$174462b2o$174464bo130$
174591b2o$174590b2o$174592bo132$174718b3o$174718bo$174719bo118$174846b
3o$174846bo$174847bo130$174974b3o$174974bo$174975bo126$175103b2o$
175102b2o$175104bo140$175231b2o$175230b2o$175232bo129$175359b2o$
175358b2o$175360bo126$175487b2o$175486b2o$175488bo111$175615b2o$
175614b2o$175616bo128$175742b3o$175742bo$175743bo130$175870b3o$175870b
o$175871bo136$175998b3o$175998bo$175999bo153$176127b2o$176127bobo$
176127bo122$176255b2o$176255bobo$176255bo128$176383b2o$176383bobo$
176383bo129$176511b2o$176511bobo$176511bo153$176639b3o$176639bo$
176640bo118$176767b3o$176767bo$176768bo128$176894b3o$176894bo$176895bo
120$177023b3o$177023bo$177024bo99$177150b3o$177150bo$177151bo117$
177279b2o$177278b2o$177280bo123$177407b2o$177406b2o$177408bo117$
177535b2o$177534b2o$177536bo128$177662b3o$177662bo$177663bo141$177790b
3o$177790bo$177791bo133$177918b3o$177918bo$177919bo96$178046b3o$
178046bo$178047bo127$178176b2o$178175b2o$178177bo127$178304b2o$178303b
2o$178305bo131$178432b2o$178431b2o$178433bo126$178560b2o$178559b2o$
178561bo126$178688b2o$178687b2o$178689bo132$178816b2o$178815b2o$
178817bo106$178943b3o$178943bo$178944bo129$179072b2o$179071b2o$179073b
o150$179200bo$179199b2o$179199bobo126$179327bo$179326b2o$179326bobo
114$179456b2o$179456bobo$179456bo122$179583bo$179582b2o$179582bobo134$
179712bo$179711b2o$179711bobo132$179839b2o$179839bobo$179839bo128$
179967b2o$179967bobo$179967bo114$180096bo$180095b2o$180095bobo130$
180223b2o$180223bobo$180223bo126$180352b2o$180352bobo$180352bo125$
180480b2o$180480bobo$180480bo121$180608b2o$180607b2o$180609bo139$
180736b2o$180736bobo$180736bo129$180862b3o$180862bo$180863bo124$
180991b3o$180991bo$180992bo118$181118b3o$181118bo$181119bo138$181247b
3o$181247bo$181248bo118$181375b3o$181375bo$181376bo119$181504b2o$
181503b2o$181505bo129$181632b2o$181631b2o$181633bo126$181760b2o$
181759b2o$181761bo113$181887b3o$181887bo$181888bo125$182016b2o$182015b
2o$182017bo122$182144b2o$182143b2o$182145bo129$182271b3o$182271bo$
182272bo152$182400b2o$182399b2o$182401bo114$182527b3o$182527bo$182528b
o122$182654b3o$182654bo$182655bo138$182782b3o$182782bo$182783bo124$
182910b3o$182910bo$182911bo132$183038b3o$183038bo$183039bo117$183167b
2o$183167bobo$183167bo126$183295b2o$183295bobo$183295bo140$183423b2o$
183422b2o$183424bo132$183551b2o$183550b2o$183552bo110$183679b2o$
183679bobo$183679bo134$183807b2o$183807bobo$183807bo137$183935b2o$
183935bobo$183935bo115$184063b2o$184063bobo$184063bo106$184192b2o$
184191b2o$184193bo144$184319b2o$184318b2o$184320bo127$184447b2o$
184446b2o$184448bo131$184574b3o$184574bo$184575bo105$184702b3o$184702b
o$184703bo127$184830b3o$184830bo$184831bo117$184959b2o$184958b2o$
184960bo119$185087b2o$185086b2o$185088bo124$185215b2o$185214b2o$
185216bo145$185343b2o$185342b2o$185344bo115$185470b3o$185470bo$185471b
o111$185598b3o$185598bo$185599bo120$185726b3o$185726bo$185727bo130$
185855b2o$185854b2o$185856bo104$185984b2o$185984bobo$185984bo134$
186112b2o$186112bobo$186112bo133$186239b2o$186238b2o$186240bo111$
186368b2o$186368bobo$186368bo109$186496b2o$186495b2o$186497bo119$
186624b2o$186623b2o$186625bo136$186752b2o$186751b2o$186753bo128$
186880b2o$186879b2o$186881bo126$187008b2o$187007b2o$187009bo133$
187136b2o$187135b2o$187137bo120$187264b2o$187263b2o$187265bo121$
187392b2o$187391b2o$187393bo124$187520b2o$187519b2o$187521bo118$
187648b2o$187647b2o$187649bo123$187776b2o$187775b2o$187777bo116$
187903b3o$187903bo$187904bo128$188031b3o$188031bo$188032bo136$188160b
2o$188159b2o$188161bo137$188288b2o$188287b2o$188289bo127$188415b3o$
188415bo$188416bo102$188543b3o$188543bo$188544bo119$188672b2o$188671b
2o$188673bo116$188800b2o$188800bobo$188800bo133$188928b2o$188927b2o$
188929bo118$189056b2o$189055b2o$189057bo125$189184b2o$189184bobo$
189184bo91$189311b2o$189310b2o$189312bo131$189439b2o$189438b2o$189440b
o129$189566b3o$189566bo$189567bo99$189695b2o$189694b2o$189696bo130$
189822b3o$189822bo$189823bo125$189952bo$189951b2o$189951bobo116$
190080bo$190079b2o$190079bobo132$190207bo$190206b2o$190206bobo118$
190336b2o$190336bobo$190336bo134$190464b2o$190464bobo$190464bo128$
190591bo$190590b2o$190590bobo126$190720bo$190719b2o$190719bobo126$
190847b2o$190847bobo$190847bo142$190976b2o$190976bobo$190976bo129$
191104b2o$191104bobo$191104bo121$191232b2o$191232bobo$191232bo126$
191360b2o$191359b2o$191361bo140$191488b2o$191487b2o$191489bo112$
191616b2o$191616bobo$191616bo112$191744b2o$191744bobo$191744bo132$
191870b3o$191870bo$191871bo124$191999b3o$191999bo$192000bo126$192127b
3o$192127bo$192128bo118$192255b3o$192255bo$192256bo105$192383b2o$
192383bobo$192383bo132$192511b2o$192510b2o$192512bo127$192639b2o$
192639bobo$192639bo113$192767b2o$192767bobo$192767bo124$192895b2o$
192895bobo$192895bo130$193023b2o$193023bobo$193023bo128$193152b2o$
193151b2o$193153bo134$193280b2o$193279b2o$193281bo128$193408b2o$
193407b2o$193409bo107$193536b2o$193535b2o$193537bo137$193663b3o$
193663bo$193664bo121$193792b2o$193791b2o$193793bo135$193920b2o$193919b
2o$193921bo157$194046b3o$194046bo$194047bo126$194174b3o$194174bo$
194175bo130$194303b3o$194303bo$194304bo121$194431bo$194430b2o$194430bo
bo126$194560bo$194559b2o$194559bobo127$194687b3o$194687bo$194688bo144$
194815b3o$194815bo$194816bo128$194942b3o$194942bo$194943bo124$195070b
3o$195070bo$195071bo124$195198b3o$195198bo$195199bo136$195326b3o$
195326bo$195327bo132$195455b3o$195455bo$195456bo126$195583b3o$195583bo
$195584bo122$195711b3o$195711bo$195712bo128$195839b3o$195839bo$195840b
o112$195966b3o$195966bo$195967bo134$196094b3o$196094bo$196095bo134$
196223b3o$196223bo$196224bo110$196352b2o$196352bobo$196352bo123$
196480b2o$196480bobo$196480bo124$196608b2o$196607b2o$196609bo131$
196736b2o$196735b2o$196737bo126$196864b2o$196864bobo$196864bo133$
196992b2o$196992bobo$196992bo120$197120b2o$197119b2o$197121bo130$
197248b2o$197247b2o$197249bo115$197376bo$197375b2o$197375bobo126$
197504bo$197503b2o$197503bobo136$197631b2o$197631bobo$197631bo104$
197759b2o$197759bobo$197759bo136$197887b2o$197887bobo$197887bo117$
198014b3o$198014bo$198015bo130$198143b3o$198143bo$198144bo128$198270b
3o$198270bo$198271bo122$198399b3o$198399bo$198400bo138$198527b3o$
198527bo$198528bo122$198655b3o$198655bo$198656bo114$198782b3o$198782bo
$198783bo144$198911b3o$198911bo$198912bo128$199038b3o$199038bo$199039b
o131$199168bo$199167b2o$199167bobo117$199294b3o$199294bo$199295bo124$
199424bo$199423b2o$199423bobo126$199552bo$199551b2o$199551bobo124$
199679b2o$199679bobo$199679bo120$199807bo$199806b2o$199806bobo122$
199935b2o$199935bobo$199935bo134$200064bo$200063b2o$200063bobo128$
200192bo$200191b2o$200191bobo115$200320b2o$200320bobo$200320bo130$
200448b2o$200448bobo$200448bo134$200576b2o$200576bobo$200576bo117$
200704b2o$200703b2o$200705bo124$200832b2o$200832bobo$200832bo114$
200960b2o$200960bobo$200960bo130$201088b2o$201088bobo$201088bo160$
201216b2o$201215b2o$201217bo100$201344bo$201343b2o$201343bobo122$
201472bo$201471b2o$201471bobo116$201599bo$201598b2o$201598bobo148$
201727bo$201726b2o$201726bobo122$201856b2o$201856bobo$201856bo124$
201983b2o$201983bobo$201983bo131$202110b3o$202110bo$202111bo130$
202239b3o$202239bo$202240bo134$202367b3o$202367bo$202368bo116$202494b
3o$202494bo$202495bo128$202623b3o$202623bo$202624bo131$202752bo$
202751b2o$202751bobo123$202878b3o$202878bo$202879bo133$203008bo$
203007b2o$203007bobo105$203135b3o$203135bo$203136bo107$203263bo$
203262b2o$203262bobo126$203391bo$203390b2o$203390bobo132$203519b2o$
203519bobo$203519bo120$203648bo$203647b2o$203647bobo116$203776bo$
203775b2o$203775bobo138$203904b2o$203904bobo$203904bo126$204031bo$
204030b2o$204030bobo132$204159b2o$204159bobo$204159bo137$204286b3o$
204286bo$204287bo122$204414b3o$204414bo$204415bo128$204542b3o$204542bo
$204543bo117$204672bo$204671b2o$204671bobo120$204800bo$204799b2o$
204799bobo145$204926b3o$204926bo$204927bo118$205054b3o$205054bo$
205055bo126$205183b3o$205183bo$205184bo124$205310b3o$205310bo$205311bo
134$205439bo$205438b2o$205438bobo126$205568bo$205567b2o$205567bobo128$
205695bo$205694b2o$205694bobo138$205824bo$205823b2o$205823bobo120$
205952b2o$205952bobo$205952bo106$206079b2o$206079bobo$206079bo134$
206206b3o$206206bo$206207bo124$206335b3o$206335bo$206336bo128$206462b
3o$206462bo$206463bo129$206591bo$206590b2o$206590bobo162$206720b2o$
206720bobo$206720bo134$206848b2o$206848bobo$206848bo128$206976b2o$
206976bobo$206976bo122$207104b2o$207104bobo$207104bo132$207232b2o$
207231b2o$207233bo130$207360b2o$207360bobo$207360bo115$207488b2o$
207487b2o$207489bo122$207616b2o$207616bobo$207616bo121$207744b2o$
207743b2o$207745bo126$207872b2o$207871b2o$207873bo129$208000b2o$
207999b2o$208001bo138$208128b2o$208127b2o$208129bo126$208256b2o$
208255b2o$208257bo111$208384b2o$208383b2o$208385bo116$208511b3o$
208511bo$208512bo143$208639bo$208638b2o$208638bobo136$208768bo$208767b
2o$208767bobo120$208895bo$208894b2o$208894bobo122$209024bo$209023b2o$
209023bobo142$209151bo$209150b2o$209150bobo128$209279bo$209278b2o$
209278bobo136$209407b2o$209407bobo$209407bo125$209535bo$209534b2o$
209534bobo116$209663bo$209662b2o$209662bobo132$209792bo$209791b2o$
209791bobo130$209919bo$209918b2o$209918bobo112$210047b2o$210047bobo$
210047bo122$210176b2o$210176bobo$210176bo126$210304b2o$210304bobo$
210304bo124$210431b2o$210431bobo$210431bo127$210560b2o$210560bobo$
210560bo116$210688b2o$210688bobo$210688bo139$210816b2o$210816bobo$
210816bo116$210943b2o$210943bobo$210943bo119$211071b2o$211071bobo$
211071bo141$211199b2o$211199bobo$211199bo106$211327b2o$211326b2o$
211328bo109$211456b2o$211455b2o$211457bo135$211583b2o$211582b2o$
211584bo123$211711b2o$211710b2o$211712bo116$211838b3o$211838bo$211839b
o128$211966b3o$211966bo$211967bo136$212095b2o$212094b2o$212096bo137$
212223b2o$212222b2o$212224bo127$212350b3o$212350bo$212351bo166$212480b
2o$212480bobo$212480bo128$212608b2o$212608bobo$212608bo120$212736b2o$
212736bobo$212736bo131$212864b2o$212864bobo$212864bo139$212992b2o$
212991b2o$212993bo136$213120b2o$213119b2o$213121bo119$213248b2o$
213247b2o$213249bo136$213375b3o$213375bo$213376bo118$213503b3o$213503b
o$213504bo122$213632b2o$213631b2o$213633bo127$213760b2o$213759b2o$
213761bo126$213887b3o$213887bo$213888bo120$214016bo$214015b2o$214015bo
bo134$214143bo$214142b2o$214142bobo120$214272bo$214271b2o$214271bobo
134$214399b2o$214399bobo$214399bo108$214527b2o$214527bobo$214527bo127$
214655b2o$214654b2o$214656bo126$214783b2o$214782b2o$214784bo116$
214910b3o$214910bo$214911bo153$215040bo$215039b2o$215039bobo121$
215166b3o$215166bo$215167bo116$215294b3o$215294bo$215295bo127$215423b
2o$215423bobo$215423bo127$215551b2o$215551bobo$215551bo123$215679b2o$
215678b2o$215680bo125$215807b2o$215807bobo$215807bo129$215935b2o$
215935bobo$215935bo121$216063b2o$216063bobo$216063bo123$216191b2o$
216191bobo$216191bo137$216319b2o$216318b2o$216320bo125$216447b2o$
216446b2o$216448bo141$216574b3o$216574bo$216575bo126$216702b3o$216702b
o$216703bo112$216830b3o$216830bo$216831bo141$216959bo$216958b2o$
216958bobo129$217087b3o$217087bo$217088bo124$217214b3o$217214bo$
217215bo129$217343bo$217342b2o$217342bobo124$217472bo$217471b2o$
217471bobo126$217600bo$217599b2o$217599bobo111$217727b3o$217727bo$
217728bo133$217855bo$217854b2o$217854bobo118$217982b3o$217982bo$
217983bo126$218110b3o$218110bo$218111bo119$218239bo$218238b2o$218238bo
bo123$218367b3o$218367bo$218368bo123$218495bo$218494b2o$218494bobo159$
218623b2o$218623bobo$218623bo115$218751bo$218750b2o$218750bobo115$
218879b3o$218879bo$218880bo117$219008b2o$219008bobo$219008bo116$
219136b2o$219136bobo$219136bo138$219263b3o$219263bo$219264bo126$
219391b3o$219391bo$219392bo119$219520bo$219519b2o$219519bobo121$
219646b3o$219646bo$219647bo125$219776bo$219775b2o$219775bobo159$
219904b2o$219904bobo$219904bo115$220032bo$220031b2o$220031bobo130$
220160b2o$220159b2o$220161bo136$220288b2o$220287b2o$220289bo119$
220416b2o$220415b2o$220417bo136$220543b3o$220543bo$220544bo118$220671b
3o$220671bo$220672bo122$220800b2o$220799b2o$220801bo127$220928b2o$
220927b2o$220929bo126$221055b3o$221055bo$221056bo107$221182b3o$221182b
o$221183bo125$221311bo$221310b2o$221310bobo116$221439bo$221438b2o$
221438bobo132$221568bo$221567b2o$221567bobo130$221695bo$221694b2o$
221694bobo112$221824bo$221823b2o$221823bobo130$221952b2o$221952bobo$
221952bo126$222080b2o$222080bobo$222080bo116$222207b2o$222206b2o$
222208bo134$222335b2o$222334b2o$222336bo120$222463b2o$222462b2o$
222464bo124$222591b2o$222590b2o$222592bo128$222718b3o$222718bo$222719b
o127$222847b2o$222847bobo$222847bo127$222975b2o$222975bobo$222975bo
131$223103b2o$223102b2o$223104bo114$223231b2o$223231bobo$223231bo121$
223359b2o$223359bobo$223359bo119$223487b2o$223487bobo$223487bo141$
223615b2o$223615bobo$223615bo106$223743b2o$223742b2o$223744bo118$
223871b2o$223871bobo$223871bo114$223998b3o$223998bo$223999bo131$
224127b2o$224127bobo$224127bo141$224255b2o$224255bobo$224255bo106$
224383b2o$224382b2o$224384bo118$224511b2o$224511bobo$224511bo127$
224639b2o$224639bobo$224639bo131$224767b2o$224766b2o$224768bo114$
224895b2o$224895bobo$224895bo130$225022b3o$225022bo$225023bo124$
225151b3o$225151bo$225152bo126$225279b3o$225279bo$225280bo119$225407bo
$225406b2o$225406bobo125$225535b3o$225535bo$225536bo138$225662b3o$
225662bo$225663bo77$225792b2o$225792bobo$225792bo130$225920b2o$225920b
obo$225920bo130$226048b2o$226047b2o$226049bo136$226176b2o$226175b2o$
226177bo128$226304b2o$226304bobo$226304bo121$226432b2o$226432bobo$
226432bo123$226560b2o$226560bobo$226560bo128$226688b2o$226688bobo$
226688bo144$226815b2o$226814b2o$226816bo123$226943b2o$226942b2o$
226944bo116$227070b3o$227070bo$227071bo128$227198b3o$227198bo$227199bo
136$227327b2o$227326b2o$227328bo137$227455b2o$227454b2o$227456bo127$
227582b3o$227582bo$227583bo148$227711b3o$227711bo$227712bo136$227839b
3o$227839bo$227840bo134$227967b3o$227967bo$227968bo128$228094b3o$
228094bo$228095bo130$228222b3o$228222bo$228223bo116$228351b3o$228351bo
$228352bo118$228479b3o$228479bo$228480bo164$228607b3o$228607bo$228608b
o148$228735b2o$228734b2o$228736bo122$228863b2o$228863bobo$228863bo127$
228991b2o$228991bobo$228991bo123$229119b2o$229118b2o$229120bo125$
229247b2o$229247bobo$229247bo129$229375b2o$229375bobo$229375bo121$
229503b2o$229503bobo$229503bo123$229631b2o$229631bobo$229631bo120$
229759b3o$229759bo$229760bo117$229888b2o$229887b2o$229889bo123$230016b
2o$230015b2o$230017bo116$230143b3o$230143bo$230144bo128$230271b3o$
230271bo$230272bo136$230400b2o$230399b2o$230401bo137$230528b2o$230527b
2o$230529bo127$230655b3o$230655bo$230656bo102$230783b3o$230783bo$
230784bo107$230912b2o$230911b2o$230913bo134$231040b2o$231039b2o$
231041bo118$231168b2o$231167b2o$231169bo112$231296b2o$231295b2o$
231297bo125$231424b2o$231423b2o$231425bo120$231551b3o$231551bo$231552b
o132$231679b3o$231679bo$231680bo125$231808bo$231807b2o$231807bobo132$
231935bo$231934b2o$231934bobo120$232064bo$232063b2o$232063bobo132$
232192b2o$232192bobo$232192bo136$232320b2o$232320bobo$232320bo128$
232448b2o$232448bobo$232448bo100$232576bo$232575b2o$232575bobo97$
232702b3o$232702bo$232703bo148$232831bo$232830b2o$232830bobo130$
232960bo$232959b2o$232959bobo128$233087b2o$233087bobo$233087bo122$
233216bo$233215b2o$233215bobo124$233343bo$233342b2o$233342bobo128$
233471bo$233470b2o$233470bobo144$233599b2o$233599bobo$233599bo120$
233728b2o$233728bobo$233728bo98$233856bo$233855b2o$233855bobo122$
233983bo$233982b2o$233982bobo138$234111bo$234110b2o$234110bobo118$
234239bo$234238b2o$234238bobo114$234368bo$234367b2o$234367bobo128$
234496bo$234495b2o$234495bobo128$234624b2o$234624bobo$234624bo118$
234752b2o$234752bobo$234752bo133$234879bo$234878b2o$234878bobo118$
235007bo$235006b2o$235006bobo134$235135bo$235134b2o$235134bobo150$
235264bo$235263b2o$235263bobo118$235391b2o$235391bobo$235391bo130$
235519b2o$235519bobo$235519bo124$235647b2o$235647bobo$235647bo118$
235776b2o$235775b2o$235777bo119$235904b2o$235903b2o$235905bo124$
236032b2o$236031b2o$236033bo145$236160b2o$236159b2o$236161bo115$
236287b3o$236287bo$236288bo131$236416b2o$236415b2o$236417bo121$236543b
3o$236543bo$236544bo121$236672b2o$236671b2o$236673bo127$236799b3o$
236799bo$236800bo134$236926b3o$236926bo$236927bo118$237054b3o$237054bo
$237055bo124$237182b3o$237182bo$237183bo146$237311b3o$237311bo$237312b
o113$237439bo$237438b2o$237438bobo135$237567b3o$237567bo$237568bo112$
237694b3o$237694bo$237695bo122$237823b3o$237823bo$237824bo126$237952b
2o$237952bobo$237952bo134$238080b2o$238080bobo$238080bo128$238208b2o$
238208bobo$238208bo107$238336b2o$238336bobo$238336bo137$238464b2o$
238463b2o$238465bo128$238592b2o$238591b2o$238593bo138$238720b2o$
238719b2o$238721bo122$238848b2o$238848bobo$238848bo122$238976b2o$
238976bobo$238976bo170$239104b2o$239104bobo$239104bo119$239232b2o$
239232bobo$239232bo143$239360b2o$239360bobo$239360bo127$239488b2o$
239488bobo$239488bo120$239616b2o$239616bobo$239616bo116$239744b2o$
239743b2o$239745bo130$239872b2o$239872bobo$239872bo126$240000b2o$
240000bobo$240000bo186$240127b2o$240126b2o$240128bo125$240255b2o$
240254b2o$240256bo142$240383b3o$240383bo$240384bo124$240510b3o$240510b
o$240511bo146$240639bo$240638b2o$240638bobo167$240767b2o$240766b2o$
240768bo113$240895b2o$240895bobo$240895bo128$241023b2o$241023bobo$
241023bo121$241151b2o$241151bobo$241151bo139$241279b2o$241278b2o$
241280bo115$241407b2o$241407bobo$241407bo132$241535b2o$241534b2o$
241536bo127$241663b2o$241662b2o$241664bo127$241791b2o$241790b2o$
241792bo114$241919b2o$241919bobo$241919bo130$242047b2o$242047bobo$
242047bo136$242175b3o$242175bo$242176bo128$242302b3o$242302bo$242303bo
131$242431bo$242430b2o$242430bobo127$242559b3o$242559bo$242560bo114$
242686b3o$242686bo$242687bo116$242815b3o$242815bo$242816bo150$242942b
3o$242942bo$242943bo118$243070b3o$243070bo$243071bo130$243199b2o$
243199bobo$243199bo123$243327b2o$243327bobo$243327bo130$243455b2o$
243454b2o$243456bo121$243583b2o$243583bobo$243583bo129$243711b2o$
243711bobo$243711bo134$243839b2o$243839bobo$243839bo107$243968b2o$
243967b2o$243969bo127$244096b2o$244095b2o$244097bo131$244224b2o$
244223b2o$244225bo126$244352b2o$244351b2o$244353bo126$244480b2o$
244479b2o$244481bo132$244608b2o$244607b2o$244609bo106$244735b3o$
244735bo$244736bo129$244864b2o$244863b2o$244865bo112$244991b2o$244991b
obo$244991bo124$245119b2o$245119bobo$245119bo128$245248bo$245247b2o$
245247bobo104$245374b3o$245374bo$245375bo118$245503b3o$245503bo$
245504bo120$245630b3o$245630bo$245631bo124$245758b3o$245758bo$245759bo
146$245887b3o$245887bo$245888bo123$246015bo$246014b2o$246014bobo126$
246143bo$246142b2o$246142bobo112$246272bo$246271b2o$246271bobo132$
246400b2o$246400bobo$246400bo132$246527bo$246526b2o$246526bobo124$
246656b2o$246656bobo$246656bo148$246784b2o$246784bobo$246784bo124$
246911b2o$246910b2o$246912bo126$247039b2o$247038b2o$247040bo141$
247167b2o$247166b2o$247168bo129$247294b3o$247294bo$247295bo112$247423b
2o$247422b2o$247424bo122$247551b2o$247550b2o$247552bo144$247679b2o$
247678b2o$247680bo120$247806b3o$247806bo$247807bo114$247935bo$247934b
2o$247934bobo122$248064bo$248063b2o$248063bobo130$248191b2o$248191bobo
$248191bo122$248319b2o$248319bobo$248319bo136$248448b2o$248448bobo$
248448bo116$248575b2o$248575bobo$248575bo138$248704b2o$248704bobo$
248704bo128$248832bo$248831b2o$248831bobo110$248960b2o$248960bobo$
248960bo111$249087bo$249086b2o$249086bobo124$249216bo$249215b2o$
249215bobo126$249344bo$249343b2o$249343bobo118$249471bo$249470b2o$
249470bobo138$249599b2o$249599bobo$249599bo138$249727bo$249726b2o$
249726bobo141$249856b2o$249856bobo$249856bo123$249983b2o$249983bobo$
249983bo124$250111b2o$250111bobo$250111bo128$250240bo$250239b2o$
250239bobo144$250367b2o$250367bobo$250367bo137$250495b2o$250495bobo$
250495bo116$250623b2o$250623bobo$250623bo103$250752b2o$250751b2o$
250753bo136$250880b2o$250879b2o$250881bo121$251008b2o$251007b2o$
251009bo131$251136b2o$251135b2o$251137bo130$251263b3o$251263bo$251264b
o109$251391b3o$251391bo$251392bo129$251519b3o$251519bo$251520bo139$
251647b3o$251647bo$251648bo125$251774b3o$251774bo$251775bo130$251902b
3o$251902bo$251903bo107$252032bo$252031b2o$252031bobo132$252160bo$
252159b2o$252159bobo107$252287b3o$252287bo$252288bo156$252415b3o$
252415bo$252416bo103$252543bo$252542b2o$252542bobo118$252671bo$252670b
2o$252670bobo120$252800b2o$252800bobo$252800bo126$252928b2o$252928bobo
$252928bo121$253056b2o$253055b2o$253057bo145$253184b2o$253183b2o$
253185bo122$253312b2o$253312bobo$253312bo118$253440b2o$253439b2o$
253441bo112$253568b2o$253568bobo$253568bo130$253696b2o$253695b2o$
253697bo119$253824b2o$253824bobo$253824bo126$253952b2o$253951b2o$
253953bo126$254080b2o$254079b2o$254081bo140$254208b2o$254207b2o$
254209bo124$254336b2o$254335b2o$254337bo121$254463b3o$254463bo$254464b
o117$254591b3o$254591bo$254592bo122$254719b3o$254719bo$254720bo134$
254847b3o$254847bo$254848bo109$254976bo$254975b2o$254975bobo131$
255103b3o$255103bo$255104bo132$255230b3o$255230bo$255231bo137$255360bo
$255359b2o$255359bobo105$255486b3o$255486bo$255487bo130$255615b3o$
255615bo$255616bo167$255743b3o$255743bo$255744bo128$255871b3o$255871bo
$255872bo132$255998b3o$255998bo$255999bo124$256127b3o$256127bo$256128b
o130$256254b3o$256254bo$256255bo138$256382b3o$256382bo$256383bo108$
256510b3o$256510bo$256511bo138$256638b3o$256638bo$256639bo128$256768b
2o$256768bobo$256768bo119$256896b2o$256896bobo$256896bo143$257024b2o$
257024bobo$257024bo126$257152b2o$257152bobo$257152bo126$257280b2o$
257280bobo$257280bo121$257408b2o$257408bobo$257408bo116$257536b2o$
257535b2o$257537bo130$257664b2o$257664bobo$257664bo126$257792b2o$
257792bobo$257792bo134$257920b2o$257920bobo$257920bo134$258046b3o$
258046bo$258047bo136$258175b3o$258175bo$258176bo120$258302b3o$258302bo
$258303bo132$258431b3o$258431bo$258432bo121$258559bo$258558b2o$258558b
obo121$258687b3o$258687bo$258688bo126$258814b3o$258814bo$258815bo126$
258943b3o$258943bo$258944bo125$259071b2o$259071bobo$259071bo137$
259199b2o$259199bobo$259199bo101$259327b2o$259327bobo$259327bo135$
259455b2o$259455bobo$259455bo121$259583b2o$259583bobo$259583bo133$
259711b2o$259711bobo$259711bo138$259840b2o$259840bobo$259840bo133$
259968b2o$259968bobo$259968bo111$260096b2o$260096bobo$260096bo146$
260224b2o$260223b2o$260225bo134$260352b2o$260352bobo$260352bo115$
260480b2o$260480bobo$260480bo136$260608b2o$260608bobo$260608bo163$
260735b3o$260735bo$260736bo128$260863b3o$260863bo$260864bo120$260991b
3o$260991bo$260992bo124$261118b3o$261118bo$261119bo135$261246b3o$
261246bo$261247bo124$261375b3o$261375bo$261376bo126$261503b3o$261503bo
$261504bo125$261632bo$261631b2o$261631bobo139$261758b3o$261758bo$
261759bo109$261887bo$261886b2o$261886bobo117$262016b2o$262016bobo$
262016bo133$262144b2o$262144bobo$262144bo111$262272b2o$262272bobo$
262272bo146$262400b2o$262399b2o$262401bo142$262527b3o$262527bo$262528b
o118$262656b2o$262656bobo$262656bo133$262784b2o$262784bobo$262784bo
111$262912b2o$262912bobo$262912bo146$263040b2o$263039b2o$263041bo125$
263168b2o$263168bobo$263168bo134$263296b2o$263296bobo$263296bo118$
263424b2o$263424bobo$263424bo114$263552b2o$263552bobo$263552bo116$
263680b2o$263680bobo$263680bo136$263807bo$263806b2o$263806bobo130$
263936bo$263935b2o$263935bobo118$264064bo$264063b2o$264063bobo138$
264192bo$264191b2o$264191bobo134$264320b2o$264320bobo$264320bo110$
264447b2o$264447bobo$264447bo116$264576b2o$264576bobo$264576bo125$
264703b2o$264703bobo$264703bo130$264831b2o$264831bobo$264831bo127$
264959b2o$264959bobo$264959bo116$265087b2o$265087bobo$265087bo131$
265215b2o$265215bobo$265215bo127$265344b2o$265344bobo$265344bo114$
265471b2o$265471bobo$265471bo129$265600b2o$265600bobo$265600bo131$
265728b2o$265728bobo$265728bo131$265856b2o$265856bobo$265856bo142$
265984b2o$265984bobo$265984bo125$266111b2o$266111bobo$266111bo134$
266239b2o$266239bobo$266239bo119$266367b2o$266367bobo$266367bo118$
266495b2o$266495bobo$266495bo135$266623b2o$266623bobo$266623bo141$
266751b2o$266750b2o$266752bo120$266878b3o$266878bo$266879bo130$267007b
3o$267007bo$267008bo134$267134b3o$267134bo$267135bo116$267263b3o$
267263bo$267264bo121$267392bo$267391b2o$267391bobo125$267518b3o$
267518bo$267519bo114$267647b3o$267647bo$267648bo131$267776b2o$267776bo
bo$267776bo105$267904b2o$267903b2o$267905bo119$268032b2o$268031b2o$
268033bo118$268160b2o$268160bobo$268160bo116$268288b2o$268288bobo$
268288bo136$268416b2o$268416bobo$268416bo70$268543b2o$268543bobo$
268543bo125$268671b3o$268671bo$268672bo122$268798b3o$268798bo$268799bo
138$268926b3o$268926bo$268927bo112$269054b3o$269054bo$269055bo138$
269182b3o$269182bo$269183bo108$269311b3o$269311bo$269312bo131$269440b
2o$269440bobo$269440bo130$269568b2o$269568bobo$269568bo124$269696b2o$
269696bobo$269696bo132$269824b2o$269824bobo$269824bo118$269952b2o$
269952bobo$269952bo108$270079b2o$270079bobo$270079bo134$270207b2o$
270207bobo$270207bo118$270335b2o$270335bobo$270335bo118$270463b2o$
270463bobo$270463bo109$270591b2o$270591bobo$270591bo147$270719b2o$
270719bobo$270719bo118$270847b2o$270847bobo$270847bo125$270976b2o$
270975b2o$270977bo127$271104b2o$271103b2o$271105bo114$271231b3o$
271231bo$271232bo135$271360b2o$271359b2o$271361bo120$271488b2o$271487b
2o$271489bo122$271615bo$271614b2o$271614bobo130$271744bo$271743b2o$
271743bobo143$271872b2o$271871b2o$271873bo117$271999b2o$271999bobo$
271999bo112$272128b2o$272128bobo$272128bo124$272256bo$272255b2o$
272255bobo120$272384b2o$272384bobo$272384bo144$272511b2o$272511bobo$
272511bo122$272640b2o$272640bobo$272640bo171$272768b2o$272768bobo$
272768bo130$272896b2o$272895b2o$272897bo118$273023b2o$273023bobo$
273023bo124$273152b2o$273151b2o$273153bo130$273280b2o$273279b2o$
273281bo132$273407b3o$273407bo$273408bo104$273535b3o$273535bo$273536bo
141$273663b3o$273663bo$273664bo120$273791b3o$273791bo$273792bo147$
273919b3o$273919bo$273920bo128$274046b3o$274046bo$274047bo131$274176bo
$274175b2o$274175bobo115$274302b3o$274302bo$274303bo136$274430b3o$
274430bo$274431bo122$274559b3o$274559bo$274560bo112$274687b3o$274687bo
$274688bo110$274815b2o$274814b2o$274816bo126$274943b2o$274942b2o$
274944bo129$275071b2o$275070b2o$275072bo138$275199b2o$275198b2o$
275200bo126$275327b2o$275326b2o$275328bo110$275454b3o$275454bo$275455b
o137$275584bo$275583b2o$275583bobo120$275711bo$275710b2o$275710bobo
122$275839bo$275838b2o$275838bobo138$275968bo$275967b2o$275967bobo120$
276096b2o$276096bobo$276096bo142$276224b2o$276224bobo$276224bo118$
276351bo$276350b2o$276350bobo138$276479b2o$276479bobo$276479bo136$
276607b3o$276607bo$276608bo116$276735b3o$276735bo$276736bo134$276862b
3o$276862bo$276863bo130$276991b3o$276991bo$276992bo132$277118b3o$
277118bo$277119bo109$277248bo$277247b2o$277247bobo124$277376b2o$
277376bobo$277376bo129$277504b2o$277504bobo$277504bo126$277632b2o$
277632bobo$277632bo126$277760b2o$277759b2o$277761bo112$277888b2o$
277887b2o$277889bo127$278016b2o$278016bobo$278016bo136$278144b2o$
278144bobo$278144bo145$278272b2o$278272bobo$278272bo133$278399b3o$
278399bo$278400bo122$278527b3o$278527bo$278528bo128$278655b3o$278655bo
$278656bo137$278783bo$278782b2o$278782bobo106$278912bo$278911b2o$
278911bobo124$279039bo$279038b2o$279038bobo126$279168b2o$279168bobo$
279168bo129$279296b2o$279296bobo$279296bo121$279424b2o$279424bobo$
279424bo123$279552b2o$279551b2o$279553bo129$279680b2o$279679b2o$
279681bo138$279808b2o$279807b2o$279809bo127$279936b2o$279935b2o$
279937bo125$280064b2o$280063b2o$280065bo21$280192b2o$280192bobo$
280192bo129$280320b2o$280320bobo$280320bo114$280448b2o$280448bobo$
280448bo128$280576b2o$280576bobo$280576bo120$280704b2o$280704bobo$
280704bo125$280832b2o$280832bobo$280832bo126$280960b2o$280960bobo$
280960bo126$281088b2o$281088bobo$281088bo128$281216b2o$281215b2o$
281217bo135$281344b2o$281344bobo$281344bo119$281472b2o$281472bobo$
281472bo118$281600b2o$281600bobo$281600bo115$281728b2o$281727b2o$
281729bo91$281856bo$281855b2o$281855bobo124$281983bo$281982b2o$281982b
obo142$282112bo$282111b2o$282111bobo130$282240b2o$282240bobo$282240bo
116$282367b2o$282367bobo$282367bo134$282495bo$282494b2o$282494bobo108$
282623b2o$282623bobo$282623bo124$282751b2o$282751bobo$282751bo138$
282879b2o$282879bobo$282879bo132$283008b2o$283008bobo$283008bo133$
283136b2o$283135b2o$283137bo130$283264b2o$283263b2o$283265bo124$
283392b2o$283391b2o$283393bo132$283520b2o$283519b2o$283521bo117$
283648b2o$283647b2o$283649bo129$283775b3o$283775bo$283776bo136$283903b
o$283902b2o$283902bobo126$284031bo$284030b2o$284030bobo116$284160b2o$
284160bobo$284160bo134$284288bo$284287b2o$284287bobo124$284416b2o$
284416bobo$284416bo132$284544bo$284543b2o$284543bobo122$284672b2o$
284672bobo$284672bo128$284800b2o$284800bobo$284800bo126$284928b2o$
284928bobo$284928bo122$285055b2o$285055bobo$285055bo120$285184bo$
285183b2o$285183bobo122$285312bo$285311b2o$285311bobo122$285440bo$
285439b2o$285439bobo126$285567bo$285566b2o$285566bobo124$285695bo$
285694b2o$285694bobo113$285823b2o$285823bobo$285823bo119$285951b2o$
285951bobo$285951bo124$286079b2o$286079bobo$286079bo137$286207b2o$
286207bobo$286207bo134$286335b2o$286335bobo$286335bo117$286464bo$
286463b2o$286463bobo132$286591b2o$286590b2o$286592bo136$286719b2o$
286718b2o$286720bo121$286847b2o$286846b2o$286848bo119$286975b2o$
286974b2o$286976bo142$287103b2o$287102b2o$287104bo112$287231b2o$
287230b2o$287232bo128$287359b2o$287358b2o$287360bo119$287487b2o$
287487bobo$287487bo139$287615b2o$287615bobo$287615bo127$287743b2o$
287742b2o$287744bo130$287871b2o$287870b2o$287872bo118$287999b2o$
287998b2o$288000bo127$288127b2o$288126b2o$288128bo122$288255b2o$
288255bobo$288255bo125$288383b2o$288382b2o$288384bo132$288511b2o$
288511bobo$288511bo117$288639b2o$288638b2o$288640bo108$288767b2o$
288767bobo$288767bo135$288895b2o$288894b2o$288896bo126$289023b2o$
289022b2o$289024bo130$289151b2o$289150b2o$289152bo125$289279b2o$
289279bobo$289279bo131$289407b2o$289407bobo$289407bo117$289535b2o$
289535bobo$289535bo116$289663b2o$289663bobo$289663bo126$289791bo$
289790b2o$289790bobo124$289920bo$289919b2o$289919bobo138$290048bo$
290047b2o$290047bobo128$290175bo$290174b2o$290174bobo125$290303b3o$
290303bo$290304bo132$290431b3o$290431bo$290432bo128$290559b3o$290559bo
$290560bo110$290688bo$290687b2o$290687bobo141$290815b3o$290815bo$
290816bo158$290944b2o$290944bobo$290944bo125$291071b3o$291071bo$
291072bo122$291199b3o$291199bo$291200bo119$291328bo$291327b2o$291327bo
bo137$291455b3o$291455bo$291456bo122$291583b3o$291583bo$291584bo130$
291710b3o$291710bo$291711bo134$291839bo$291838b2o$291838bobo134$
291968bo$291967b2o$291967bobo118$292095bo$292094b2o$292094bobo132$
292223b2o$292223bobo$292223bo112$292351bo$292350b2o$292350bobo122$
292479b3o$292479bo$292480bo128$292606b3o$292606bo$292607bo111$292736bo
$292735b2o$292735bobo134$292864bo$292863b2o$292863bobo109$292990b3o$
292990bo$292991bo159$293119bo$293118b2o$293118bobo125$293246b3o$
293246bo$293247bo120$293375b3o$293375bo$293376bo104$293503b3o$293503bo
$293504bo129$293631b2o$293630b2o$293632bo134$293759b2o$293758b2o$
293760bo114$293887b2o$293886b2o$293888bo130$294014b3o$294014bo$294015b
o131$294143b2o$294142b2o$294144bo120$294271b2o$294270b2o$294272bo132$
294398b3o$294398bo$294399bo129$294527b2o$294526b2o$294528bo113$294655b
2o$294654b2o$294656bo126$294783b2o$294782b2o$294784bo128$294910b3o$
294910bo$294911bo118$295038b3o$295038bo$295039bo137$295166b3o$295166bo
$295167bo140$295294b3o$295294bo$295295bo122$295422b3o$295422bo$295423b
o125$295550b3o$295550bo$295551bo126$295679b2o$295679bobo$295679bo123$
295807b2o$295807bobo$295807bo130$295935b2o$295934b2o$295936bo121$
296063b2o$296063bobo$296063bo129$296191b2o$296191bobo$296191bo126$
296319b2o$296319bobo$296319bo129$296447b2o$296446b2o$296448bo123$
296575b2o$296574b2o$296576bo131$296703b2o$296702b2o$296704bo120$
296831b2o$296831bobo$296831bo122$296960b2o$296959b2o$296961bo134$
297088b2o$297087b2o$297089bo118$297216b2o$297215b2o$297217bo116$
297343b3o$297343bo$297344bo113$297472b2o$297471b2o$297473bo126$297599b
3o$297599bo$297600bo138$297727b3o$297727bo$297728bo132$297856bo$
297855b2o$297855bobo122$297984bo$297983b2o$297983bobo116$298111b2o$
298111bobo$298111bo140$298239bo$298238b2o$298238bobo112$298367b2o$
298367bobo$298367bo128$298495bo$298494b2o$298494bobo116$298624bo$
298623b2o$298623bobo124$298752bo$298751b2o$298751bobo119$298880b2o$
298880bobo$298880bo117$299008b2o$299008bobo$299008bo133$299136b2o$
299136bobo$299136bo141$299264b2o$299264bobo$299264bo106$299392b2o$
299392bobo$299392bo139$299520b2o$299520bobo$299520bo100$299648b2o$
299647b2o$299649bo127$299775b3o$299775bo$299776bo122$299902b3o$299902b
o$299903bo138$300030b3o$300030bo$300031bo116$300159b3o$300159bo$
300160bo140$300286b3o$300286bo$300287bo128$300415b2o$300414b2o$300416b
o122$300543b2o$300542b2o$300544bo141$300670b3o$300670bo$300671bo129$
300798b3o$300798bo$300799bo122$300927b2o$300926b2o$300928bo131$301054b
3o$301054bo$301055bo133$301183b2o$301182b2o$301184bo104$301310b3o$
301310bo$301311bo107$301439bo$301438b2o$301438bobo126$301568bo$301567b
2o$301567bobo126$301695bo$301694b2o$301694bobo136$301823bo$301822b2o$
301822bobo124$301951b2o$301951bobo$301951bo132$302080b2o$302080bobo$
302080bo126$302207b3o$302207bo$302208bo122$302335b3o$302335bo$302336bo
128$302463b3o$302463bo$302464bo106$302591b2o$302591bobo$302591bo135$
302719bo$302718b2o$302718bobo120$302847bo$302846b2o$302846bobo147$
302975b3o$302975bo$302976bo118$303103b3o$303103bo$303104bo124$303230b
3o$303230bo$303231bo136$303359b3o$303359bo$303360bo122$303486b3o$
303486bo$303487bo132$303615b3o$303615bo$303616bo112$303742b3o$303742bo
$303743bo131$303871bo$303870b2o$303870bobo125$303999b3o$303999bo$
304000bo126$304127b3o$304127bo$304128bo122$304255bo$304254b2o$304254bo
bo126$304384bo$304383b2o$304383bobo138$304511b2o$304511bobo$304511bo
134$304639bo$304638b2o$304638bobo128$304767b3o$304767bo$304768bo104$
304895bo$304894b2o$304894bobo130$305023bo$305022b2o$305022bobo130$
305151bo$305150b2o$305150bobo136$305278b3o$305278bo$305279bo134$
305407b3o$305407bo$305408bo128$305534b3o$305534bo$305535bo118$305662b
3o$305662bo$305663bo124$305792bo$305791b2o$305791bobo140$305919b3o$
305919bo$305920bo125$306047b2o$306047bobo$306047bo117$306175b2o$
306175bobo$306175bo126$306303b2o$306303bobo$306303bo132$306431b2o$
306431bobo$306431bo116$306559b2o$306559bobo$306559bo123$306687b2o$
306687bobo$306687bo125$306815b2o$306815bobo$306815bo125$306943b2o$
306943bobo$306943bo126$307072b2o$307072bobo$307072bo166$307199b2o$
307198b2o$307200bo134$307326b3o$307326bo$307327bo130$307455b3o$307455b
o$307456bo141$307583b3o$307583bo$307584bo119$307710b3o$307710bo$
307711bo116$307839b3o$307839bo$307840bo121$307968bo$307967b2o$307967bo
bo125$308094b3o$308094bo$308095bo114$308223b3o$308223bo$308224bo130$
308352bo$308351b2o$308351bobo155$308479b3o$308479bo$308480bo128$
308606b3o$308606bo$308607bo153$308735b3o$308735bo$308736bo115$308863b
2o$308863bobo$308863bo118$308990b3o$308990bo$308991bo123$309120bo$
309119b2o$309119bobo108$309247bo$309246b2o$309246bobo122$309375bo$
309374b2o$309374bobo133$309503b3o$309503bo$309504bo127$309631bo$
309630b2o$309630bobo122$309760bo$309759b2o$309759bobo132$309887bo$
309886b2o$309886bobo116$310016bo$310015b2o$310015bobo122$310144bo$
310143b2o$310143bobo122$310271b2o$310271bobo$310271bo116$310399b2o$
310399bobo$310399bo136$310528bo$310527b2o$310527bobo126$310655bo$
310654b2o$310654bobo136$310784bo$310783b2o$310783bobo106$310912bo$
310911b2o$310911bobo128$311039b2o$311039bobo$311039bo118$311167b3o$
311167bo$311168bo122$311294b3o$311294bo$311295bo118$311422b3o$311422bo
$311423bo136$311551b3o$311551bo$311552bo136$311679b3o$311679bo$311680b
o127$311807bo$311806b2o$311806bobo118$311935bo$311934b2o$311934bobo
121$312062b3o$312062bo$312063bo126$312191b3o$312191bo$312192bo130$
312318b3o$312318bo$312319bo100$312448b2o$312448bobo$312448bo123$
312576b2o$312576bobo$312576bo130$312704b2o$312703b2o$312705bo121$
312832b2o$312832bobo$312832bo123$312960b2o$312960bobo$312960bo130$
313088b2o$313087b2o$313089bo121$313216b2o$313215b2o$313217bo123$
313344b2o$313343b2o$313345bo134$313472b2o$313471b2o$313473bo116$
313600b2o$313599b2o$313601bo118$313727b3o$313727bo$313728bo125$313855b
3o$313855bo$313856bo127$313983b3o$313983bo$313984bo90$314111b2o$
314111bobo$314111bo129$314239b2o$314239bobo$314239bo126$314367b2o$
314367bobo$314367bo129$314495b2o$314494b2o$314496bo109$314623b2o$
314622b2o$314624bo133$314751b2o$314750b2o$314752bo127$314879b2o$
314879bobo$314879bo116$315008b2o$315008bobo$315008bo123$315136b2o$
315136bobo$315136bo124$315264b2o$315263b2o$315265bo126$315392b2o$
315392bobo$315392bo122$315520b2o$315519b2o$315521bo120$315648b2o$
315647b2o$315649bo142$315776b2o$315776bobo$315776bo100$315904b2o$
315904bobo$315904bo130$316032b2o$316032bobo$316032bo130$316160b2o$
316159b2o$316161bo136$316288b2o$316287b2o$316289bo128$316416b2o$
316416bobo$316416bo121$316544b2o$316544bobo$316544bo123$316672b2o$
316672bobo$316672bo128$316800b2o$316800bobo$316800bo111$316928b2o$
316927b2o$316929bo136$317056b2o$317055b2o$317057bo113$317184b2o$
317183b2o$317185bo138$317312b2o$317311b2o$317313bo123$317439b3o$
317439bo$317440bo112$317567b3o$317567bo$317568bo137$317695b3o$317695bo
$317696bo129$317822b3o$317822bo$317823bo130$317951b3o$317951bo$317952b
o131$318080bo$318079b2o$318079bobo106$318207bo$318206b2o$318206bobo
135$318334b3o$318334bo$318335bo122$318463b3o$318463bo$318464bo116$
318591b3o$318591bo$318592bo126$318719b2o$318718b2o$318720bo134$318847b
2o$318846b2o$318848bo118$318975b2o$318974b2o$318976bo111$319102b3o$
319102bo$319103bo124$319231b2o$319230b2o$319232bo135$319358b3o$319358b
o$319359bo107$319488b2o$319488bobo$319488bo123$319616b2o$319616bobo$
319616bo139$319744b2o$319743b2o$319745bo118$319872b2o$319872bobo$
319872bo132$320000b2o$319999b2o$320001bo125$320128bo$320127b2o$320127b
obo128$320255bo$320254b2o$320254bobo138$320384b2o$320384bobo$320384bo
124$320512b2o$320512bobo$320512bo114$320639bo$320638b2o$320638bobo110$
320768b2o$320768bobo$320768bo118$320895b2o$320894b2o$320896bo140$
321024bo$321023b2o$321023bobo126$321152b2o$321152bobo$321152bo120$
321279b2o$321278b2o$321280bo128$321407b2o$321406b2o$321408bo107$
321535b2o$321534b2o$321536bo137$321662b3o$321662bo$321663bo140$321790b
3o$321790bo$321791bo118$321918b3o$321918bo$321919bo122$322046b3o$
322046bo$322047bo122$322174b3o$322174bo$322175bo126$322304bo$322303b2o
$322303bobo122$322432bo$322431b2o$322431bobo116$322559b2o$322559bobo$
322559bo124$322688b2o$322688bobo$322688bo128$322815b2o$322815bobo$
322815bo130$322944b2o$322944bobo$322944bo127$323071b3o$323071bo$
323072bo122$323199b3o$323199bo$323200bo134$323327b3o$323327bo$323328bo
117$323456bo$323455b2o$323455bobo126$323583bo$323582b2o$323582bobo114$
323712bo$323711b2o$323711bobo146$323840bo$323839b2o$323839bobo102$
323968bo$323967b2o$323967bobo104$324095bo$324094b2o$324094bobo122$
324223bo$324222b2o$324222bobo124$324352bo$324351b2o$324351bobo128$
324480bo$324479b2o$324479bobo122$324608bo$324607b2o$324607bobo130$
324736bo$324735b2o$324735bobo132$324864bo$324863b2o$324863bobo108$
324991b2o$324991bobo$324991bo119$325119b2o$325119bobo$325119bo141$
325247b2o$325247bobo$325247bo106$325375b2o$325374b2o$325376bo118$
325503b2o$325503bobo$325503bo127$325631b2o$325631bobo$325631bo131$
325759b2o$325758b2o$325760bo114$325887b2o$325887bobo$325887bo121$
326015b2o$326015bobo$326015bo119$326143b2o$326143bobo$326143bo141$
326271b2o$326271bobo$326271bo106$326399b2o$326398b2o$326400bo118$
326527b2o$326527bobo$326527bo119$326655b2o$326655bobo$326655bo141$
326783b2o$326783bobo$326783bo106$326911b2o$326910b2o$326912bo126$
327039bo$327038b2o$327038bobo122$327167bo$327166b2o$327166bobo134$
327295bo$327294b2o$327294bobo120$327424b2o$327424bobo$327424bo126$
327551b2o$327551bobo$327551bo122$327680b2o$327680bobo$327680bo130$
327808b2o$327808bobo$327808bo116$327935b2o$327935bobo$327935bo119$
328063b2o$328063bobo$328063bo141$328191b2o$328191bobo$328191bo106$
328319b2o$328318b2o$328320bo118$328447b2o$328447bobo$328447bo137$
328575b2o$328575bobo$328575bo121$328703b2o$328703bobo$328703bo96$
328831b2o$328831bobo$328831bo127$328960b2o$328960bobo$328960bo137$
329088b2o$329088bobo$329088bo116$329216b2o$329216bobo$329216bo101$
329343b2o$329343bobo$329343bo137$329471b2o$329471bobo$329471bo116$
329599b2o$329599bobo$329599bo94$329726b3o$329726bo$329727bo129$329854b
3o$329854bo$329855bo105$329983b2o$329982b2o$329984bo130$330111b2o$
330110b2o$330112bo118$330239b2o$330238b2o$330240bo130$330367b2o$
330366b2o$330368bo120$330495b2o$330494b2o$330496bo132$330623b2o$
330622b2o$330624bo133$330751b2o$330750b2o$330752bo121$330878b3o$
330878bo$330879bo126$331008bo$331007b2o$331007bobo130$331136bo$331135b
2o$331135bobo128$331263b2o$331263bobo$331263bo128$331392b2o$331392bobo
$331392bo125$331519b3o$331519bo$331520bo122$331646b3o$331646bo$331647b
o126$331774b3o$331774bo$331775bo132$331903b3o$331903bo$331904bo123$
332031bo$332030b2o$332030bobo122$332159bo$332158b2o$332158bobo127$
332286b3o$332286bo$332287bo127$332415b3o$332415bo$332416bo122$332543b
3o$332543bo$332544bo106$332672bo$332671b2o$332671bobo130$332799b2o$
332799bobo$332799bo134$332927b3o$332927bo$332928bo139$333055bo$333054b
2o$333054bobo135$333183b3o$333183bo$333184bo126$333310b3o$333310bo$
333311bo92$333438b3o$333438bo$333439bo126$333567b2o$333567bobo$333567b
o123$333695b2o$333695bobo$333695bo117$333823b2o$333823bobo$333823bo
137$333951b2o$333951bobo$333951bo130$334079b2o$334078b2o$334080bo127$
334207b2o$334207bobo$334207bo139$334335b2o$334335bobo$334335bo122$
334464b2o$334463b2o$334465bo115$334591bo$334590b2o$334590bobo124$
334720bo$334719b2o$334719bobo126$334848bo$334847b2o$334847bobo124$
334976b2o$334976bobo$334976bo126$335103bo$335102b2o$335102bobo128$
335232b2o$335232bobo$335232bo171$335360b2o$335360bobo$335360bo137$
335488b2o$335488bobo$335488bo116$335616b2o$335616bobo$335616bo101$
335743b2o$335743bobo$335743bo137$335871b2o$335871bobo$335871bo116$
335999b2o$335999bobo$335999bo103$336128b2o$336128bobo$336128bo130$
336256b2o$336256bobo$336256bo118$336384b2o$336384bobo$336384bo126$
336512b2o$336511b2o$336513bo122$336640b2o$336640bobo$336640bo128$
336768b2o$336768bobo$336768bo129$336896b2o$336895b2o$336897bo97$
337024b2o$337024bobo$337024bo127$337151b2o$337151bobo$337151bo136$
337279b2o$337279bobo$337279bo113$337407b2o$337407bobo$337407bo119$
337535b2o$337535bobo$337535bo143$337663b2o$337662b2o$337664bo117$
337791b2o$337791bobo$337791bo114$337919b2o$337918b2o$337920bo129$
338047b2o$338046b2o$338048bo126$338175b2o$338174b2o$338176bo134$
338303b2o$338302b2o$338304bo118$338431b2o$338430b2o$338432bo138$
338558b3o$338558bo$338559bo99$338686b3o$338686bo$338687bo113$338815b3o
$338815bo$338816bo121$338944bo$338943b2o$338943bobo77$339071b2o$
339070b2o$339072bo130$339199b2o$339198b2o$339200bo126$339327b2o$
339326b2o$339328bo117$339455b2o$339454b2o$339456bo124$339582b3o$
339582bo$339583bo146$339711b2o$339710b2o$339712bo136$339840b2o$339839b
2o$339841bo130$339968b2o$339967b2o$339969bo134$340096b2o$340095b2o$
340097bo123$340223b3o$340223bo$340224bo109$340351b3o$340351bo$340352bo
138$340480b2o$340479b2o$340481bo131$340608b2o$340607b2o$340609bo131$
340736b2o$340735b2o$340737bo116$340864b2o$340863b2o$340865bo112$
340991b3o$340991bo$340992bo124$341120b2o$341119b2o$341121bo130$341248b
2o$341247b2o$341249bo129$341376b2o$341375b2o$341377bo121$341504b2o$
341503b2o$341505bo124$341631b3o$341631bo$341632bo138$341759b3o$341759b
o$341760bo128$341887b3o$341887bo$341888bo128$342014b3o$342014bo$
342015bo135$342143bo$342142b2o$342142bobo104$342272bo$342271b2o$
342271bobo128$342400bo$342399b2o$342399bobo132$342528bo$342527b2o$
342527bobo144$342656bo$342655b2o$342655bobo122$342784bo$342783b2o$
342783bobo102$342912bo$342911b2o$342911bobo118$343039b2o$343038b2o$
343040bo127$343167b2o$343166b2o$343168bo112$343294b3o$343294bo$343295b
o130$343423b2o$343422b2o$343424bo128$343550b3o$343550bo$343551bo125$
343678b3o$343678bo$343679bo134$343806b3o$343806bo$343807bo99$343936b2o
$343936bobo$343936bo129$344064b2o$344064bobo$344064bo114$344192b2o$
344192bobo$344192bo137$344320b2o$344320bobo$344320bo134$344446b3o$
344446bo$344447bo133$344574b3o$344574bo$344575bo127$344702b3o$344702bo
$344703bo127$344831b3o$344831bo$344832bo122$344958b3o$344958bo$344959b
o132$345087b3o$345087bo$345088bo121$345215bo$345214b2o$345214bobo130$
345344bo$345343b2o$345343bobo144$345471bo$345470b2o$345470bobo103$
345598b3o$345598bo$345599bo122$345727b3o$345727bo$345728bo112$345856b
2o$345856bobo$345856bo122$345984b2o$345984bobo$345984bo131$346110b3o$
346110bo$346111bo170$346239b3o$346239bo$346240bo120$346366b3o$346366bo
$346367bo114$346494b3o$346494bo$346495bo160$346623b3o$346623bo$346624b
o112$346751b3o$346751bo$346752bo129$346879bo$346878b2o$346878bobo124$
347008bo$347007b2o$347007bobo140$347136b2o$347135b2o$347137bo129$
347264b2o$347263b2o$347265bo126$347392b2o$347391b2o$347393bo123$
347520b2o$347519b2o$347521bo119$347647b3o$347647bo$347648bo131$347775b
3o$347775bo$347776bo132$347903b3o$347903bo$347904bo125$348031b2o$
348030b2o$348032bo131$348159b2o$348158b2o$348160bo140$348286b3o$
348286bo$348287bo88$348415b2o$348414b2o$348416bo133$348542b3o$348542bo
$348543bo118$348670b3o$348670bo$348671bo114$348798b3o$348798bo$348799b
o165$348926b3o$348926bo$348927bo125$349055bo$349054b2o$349054bobo136$
349184bo$349183b2o$349183bobo120$349311bo$349310b2o$349310bobo122$
349440bo$349439b2o$349439bobo142$349568b2o$349568bobo$349568bo120$
349695bo$349694b2o$349694bobo134$349823b2o$349823bobo$349823bo118$
349952b2o$349952bobo$349952bo129$350080b2o$350080bobo$350080bo126$
350208b2o$350208bobo$350208bo126$350336b2o$350335b2o$350337bo112$
350464b2o$350463b2o$350465bo140$350592b2o$350592bobo$350592bo137$
350720b2o$350719b2o$350721bo100$350847b2o$350846b2o$350848bo127$
350975b2o$350974b2o$350976bo114$351102b3o$351102bo$351103bo134$351231b
2o$351230b2o$351232bo135$351359b2o$351358b2o$351360bo134$351487b2o$
351486b2o$351488bo102$351616bo$351615b2o$351615bobo128$351743bo$
351742b2o$351742bobo138$351872b2o$351872bobo$351872bo108$352000b2o$
352000bobo$352000bo122$352128bo$352127b2o$352127bobo150$352256bo$
352255b2o$352255bobo110$352383bo$352382b2o$352382bobo118$352511bo$
352510b2o$352510bobo134$352640bo$352639b2o$352639bobo134$352768bo$
352767b2o$352767bobo141$352896bo$352895b2o$352895bobo122$353024bo$
353023b2o$353023bobo134$353152bo$353151b2o$353151bobo122$353280bo$
353279b2o$353279bobo124$353408b2o$353408bobo$353408bo138$353536b2o$
353536bobo$353536bo120$353664bo$353663b2o$353663bobo122$353791bo$
353790b2o$353790bobo126$353919bo$353918b2o$353918bobo142$354048bo$
354047b2o$354047bobo116$354175bo$354174b2o$354174bobo118$354304b2o$
354304bobo$354304bo128$354432bo$354431b2o$354431bobo122$354559b2o$
354559bobo$354559bo126$354687b2o$354687bobo$354687bo117$354815b2o$
354814b2o$354816bo128$354943b2o$354942b2o$354944bo153$355071b2o$
355071bobo$355071bo122$355199b2o$355198b2o$355200bo120$355327b2o$
355327bobo$355327bo118$355455b2o$355455bobo$355455bo127$355583b2o$
355582b2o$355584bo129$355711b2o$355710b2o$355712bo114$355839b2o$
355838b2o$355840bo136$355967b2o$355966b2o$355968bo123$356095b2o$
356094b2o$356096bo156$356224b2o$356224bobo$356224bo122$356352b2o$
356352bobo$356352bo130$356480b2o$356479b2o$356481bo130$356608b2o$
356608bobo$356608bo122$356736b2o$356736bobo$356736bo130$356864b2o$
356863b2o$356865bo130$356992b2o$356992bobo$356992bo122$357120b2o$
357120bobo$357120bo130$357248b2o$357247b2o$357249bo121$357376b2o$
357375b2o$357377bo123$357504b2o$357503b2o$357505bo116$357631b3o$
357631bo$357632bo128$357759b3o$357759bo$357760bo136$357888b2o$357887b
2o$357889bo137$358016b2o$358015b2o$358017bo127$358143b3o$358143bo$
358144bo136$358271b2o$358271bobo$358271bo130$358399b2o$358399bobo$
358399bo128$358527b2o$358526b2o$358528bo134$358655b2o$358654b2o$
358656bo111$358783b2o$358783bobo$358783bo147$358911b2o$358911bobo$
358911bo105$359039b2o$359038b2o$359040bo156$359167b2o$359167bobo$
359167bo118$359296b2o$359296bobo$359296bo129$359424b2o$359424bobo$
359424bo133$359552b2o$359552bobo$359552bo115$359680b2o$359680bobo$
359680bo141$359808b2o$359808bobo$359808bo118$359936b2o$359936bobo$
359936bo133$360063bo$360062b2o$360062bobo124$360192bo$360191b2o$
360191bobo126$360320bo$360319b2o$360319bobo132$360448b2o$360448bobo$
360448bo132$360575b2o$360575bobo$360575bo110$360703b2o$360703bobo$
360703bo120$360831b2o$360831bobo$360831bo154$360959b2o$360959bobo$
360959bo58$361086b3o$361086bo$361087bo134$361215b3o$361215bo$361216bo
127$361344bo$361343b2o$361343bobo113$361471b3o$361471bo$361472bo130$
361599b3o$361599bo$361600bo110$361727b3o$361727bo$361728bo129$361856bo
$361855b2o$361855bobo90$361983b2o$361982b2o$361984bo99$362112bo$
362111b2o$362111bobo130$362239bo$362238b2o$362238bobo130$362368bo$
362367b2o$362367bobo116$362496bo$362495b2o$362495bobo130$362623bo$
362622b2o$362622bobo126$362752bo$362751b2o$362751bobo128$362879bo$
362878b2o$362878bobo130$363008bo$363007b2o$363007bobo114$363135bo$
363134b2o$363134bobo124$363263b2o$363263bobo$363263bo127$363392b2o$
363391b2o$363393bo130$363520b2o$363519b2o$363521bo135$363648b2o$
363647b2o$363649bo104$363776b2o$363775b2o$363777bo132$363903b3o$
363903bo$363904bo127$364031b3o$364031bo$364032bo121$364160b2o$364160bo
bo$364160bo123$364288b2o$364288bobo$364288bo118$364416b2o$364416bobo$
364416bo135$364544b2o$364544bobo$364544bo125$364672b2o$364672bobo$
364672bo120$364800b2o$364799b2o$364801bo129$364928b2o$364928bobo$
364928bo119$365056b2o$365055b2o$365057bo148$365184b2o$365184bobo$
365184bo144$365311b2o$365310b2o$365312bo132$365438b3o$365438bo$365439b
o125$365566b3o$365566bo$365567bo100$365695b2o$365695bobo$365695bo129$
365823b2o$365823bobo$365823bo126$365951b2o$365951bobo$365951bo137$
366079b2o$366079bobo$366079bo112$366207b2o$366206b2o$366208bo126$
366335b2o$366335bobo$366335bo115$366463b2o$366463bobo$366463bo136$
366591b3o$366591bo$366592bo128$366718b3o$366718bo$366719bo124$366846b
3o$366846bo$366847bo114$366975b3o$366975bo$366976bo127$367104b2o$
367104bobo$367104bo129$367232b2o$367232bobo$367232bo114$367360b2o$
367360bobo$367360bo128$367488b2o$367488bobo$367488bo120$367616b2o$
367616bobo$367616bo125$367744b2o$367744bobo$367744bo126$367872b2o$
367872bobo$367872bo126$368000b2o$368000bobo$368000bo128$368128b2o$
368127b2o$368129bo135$368256b2o$368256bobo$368256bo119$368384b2o$
368384bobo$368384bo107$368512b2o$368511b2o$368513bo137$368640b2o$
368640bobo$368640bo173$368767b3o$368767bo$368768bo126$368895b3o$
368895bo$368896bo127$369022b3o$369022bo$369023bo124$369151b3o$369151bo
$369152bo132$369278b3o$369278bo$369279bo118$369407b3o$369407bo$369408b
o132$369535b3o$369535bo$369536bo128$369663b3o$369663bo$369664bo129$
369792bo$369791b2o$369791bobo136$369919b2o$369918b2o$369920bo129$
370047b2o$370046b2o$370048bo134$370174b3o$370174bo$370175bo125$370302b
3o$370302bo$370303bo113$370431b2o$370430b2o$370432bo120$370558b3o$
370558bo$370559bo120$370687b2o$370686b2o$370688bo107$370816bo$370815b
2o$370815bobo117$370943b2o$370942b2o$370944bo167$371070b3o$371070bo$
371071bo125$371199bo$371198b2o$371198bobo126$371328bo$371327b2o$
371327bobo128$371455b2o$371455bobo$371455bo118$371583b2o$371583bobo$
371583bo132$371711b2o$371711bobo$371711bo148$371840b2o$371840bobo$
371840bo135$371968bo$371967b2o$371967bobo133$372095b3o$372095bo$
372096bo113$372223bo$372222b2o$372222bobo124$372352bo$372351b2o$
372351bobo126$372480bo$372479b2o$372479bobo140$372607bo$372606b2o$
372606bobo126$372736b2o$372736bobo$372736bo122$372864b2o$372864bobo$
372864bo116$372992b2o$372992bobo$372992bo110$373120b2o$373120bobo$
373120bo173$373248b2o$373248bobo$373248bo123$373376b2o$373376bobo$
373376bo117$373504b2o$373504bobo$373504bo137$373632b2o$373632bobo$
373632bo130$373760b2o$373759b2o$373761bo127$373888b2o$373888bobo$
373888bo139$374016b2o$374016bobo$374016bo120$374143b2o$374142b2o$
374144bo76$374272bo$374271b2o$374271bobo126$374400bo$374399b2o$374399b
obo120$374528bo$374527b2o$374527bobo136$374655b2o$374655bobo$374655bo
138$374784bo$374783b2o$374783bobo116$374911b2o$374911bobo$374911bo145$
375040b2o$375040bobo$375040bo122$375168b2o$375168bobo$375168bo128$
375296b2o$375296bobo$375296bo129$375424b2o$375424bobo$375424bo195$
375552b2o$375551b2o$375553bo119$375680b2o$375679b2o$375681bo133$
375808b2o$375807b2o$375809bo144$375935b3o$375935bo$375936bo110$376064b
2o$376063b2o$376065bo129$376192b2o$376191b2o$376193bo106$376319b3o$
376319bo$376320bo97$376446b3o$376446bo$376447bo134$376575b3o$376575bo$
376576bo108$376702b3o$376702bo$376703bo126$376831b3o$376831bo$376832bo
132$376959b3o$376959bo$376960bo135$377088bo$377087b2o$377087bobo123$
377215b3o$377215bo$377216bo126$377343b3o$377343bo$377344bo187$377471b
3o$377471bo$377472bo122$377598b3o$377598bo$377599bo126$377726b3o$
377726bo$377727bo121$377856bo$377855b2o$377855bobo123$377982b3o$
377982bo$377983bo140$378111b3o$378111bo$378112bo140$378238b3o$378238bo
$378239bo136$378366b3o$378366bo$378367bo133$378495bo$378494b2o$378494b
obo124$378624bo$378623b2o$378623bobo126$378752bo$378751b2o$378751bobo
140$378879b2o$378879bobo$378879bo130$379008b2o$379008bobo$379008bo122$
379135b3o$379135bo$379136bo122$379262b3o$379262bo$379263bo132$379391b
3o$379391bo$379392bo136$379518b3o$379518bo$379519bo115$379647bo$
379646b2o$379646bobo115$379774b3o$379774bo$379775bo130$379903b3o$
379903bo$379904bo109$380032b2o$380031b2o$380033bo89$380160b2o$380160bo
bo$380160bo116$380288b2o$380288bobo$380288bo138$380416b2o$380416bobo$
380416bo129$380544b2o$380544bobo$380544bo124$380672b2o$380672bobo$
380672bo123$380800b2o$380800bobo$380800bo140$380928b2o$380928bobo$
380928bo95$381055b3o$381055bo$381056bo128$381182b3o$381182bo$381183bo
124$381310b3o$381310bo$381311bo140$381439b3o$381439bo$381440bo126$
381567bo$381566b2o$381566bobo130$381696bo$381695b2o$381695bobo134$
381823bo$381822b2o$381822bobo98$381950b3o$381950bo$381951bo117$382080b
2o$382080bobo$382080bo129$382208b2o$382208bobo$382208bo128$382336b2o$
382336bobo$382336bo128$382464b2o$382464bobo$382464bo120$382592b2o$
382592bobo$382592bo133$382720b2o$382720bobo$382720bo131$382848bo$
382847b2o$382847bobo136$382975bo$382974b2o$382974bobo132$383104b2o$
383104bobo$383104bo102$383230b3o$383230bo$383231bo118$383358b3o$
383358bo$383359bo138$383486b3o$383486bo$383487bo121$383616bo$383615b2o
$383615bobo127$383742b3o$383742bo$383743bo137$383871bo$383870b2o$
383870bobo128$383999bo$383998b2o$383998bobo123$384127b2o$384127bobo$
384127bo153$384256b2o$384256bobo$384256bo123$384384b2o$384384bobo$
384384bo128$384512b2o$384512bobo$384512bo109$384640b2o$384639b2o$
384641bo122$384768b2o$384767b2o$384769bo130$384896b2o$384896bobo$
384896bo134$385024b2o$385023b2o$385025bo142$385152b2o$385152bobo$
385152bo110$385280b2o$385279b2o$385281bo125$385407bo$385406b2o$385406b
obo130$385536bo$385535b2o$385535bobo118$385664bo$385663b2o$385663bobo
132$385792bo$385791b2o$385791bobo130$385920b2o$385920bobo$385920bo108$
386047bo$386046b2o$386046bobo132$386176b2o$386176bobo$386176bo136$
386304bo$386303b2o$386303bobo132$386432bo$386431b2o$386431bobo147$
386560b2o$386559b2o$386561bo117$386688b2o$386687b2o$386689bo137$
386816b2o$386815b2o$386817bo137$386944b2o$386943b2o$386945bo144$
387071b3o$387071bo$387072bo122$387199b3o$387199bo$387200bo119$387328bo
$387327b2o$387327bobo137$387455b3o$387455bo$387456bo122$387583b3o$
387583bo$387584bo130$387710b3o$387710bo$387711bo135$387838b3o$387838bo
$387839bo122$387966b3o$387966bo$387967bo81$388095b3o$388095bo$388096bo
125$388223b3o$388223bo$388224bo125$388351b2o$388350b2o$388352bo129$
388479b2o$388478b2o$388480bo121$388607b2o$388606b2o$388608bo133$
388735b2o$388734b2o$388736bo121$388863b2o$388862b2o$388864bo123$
388990b3o$388990bo$388991bo140$389119b2o$389118b2o$389120bo136$389248b
2o$389247b2o$389249bo141$389375bo$389374b2o$389374bobo140$389504bo$
389503b2o$389503bobo126$389632bo$389631b2o$389631bobo117$389759b3o$
389759bo$389760bo143$389888bo$389887b2o$389887bobo105$390014b3o$
390014bo$390015bo116$390144b2o$390143b2o$390145bo124$390272b2o$390271b
2o$390273bo127$390399b3o$390399bo$390400bo124$390528b2o$390527b2o$
390529bo134$390655b3o$390655bo$390656bo125$390784b2o$390783b2o$390785b
o115$390912b2o$390911b2o$390913bo109$391039b3o$391039bo$391040bo116$
391167b3o$391167bo$391168bo126$391295b3o$391295bo$391296bo122$391422b
3o$391422bo$391423bo131$391551bo$391550b2o$391550bobo139$391678b3o$
391678bo$391679bo124$391807b3o$391807bo$391808bo137$391935bo$391934b2o
$391934bobo123$392063b3o$392063bo$392064bo113$392191bo$392190b2o$
392190bobo14$392319bo$392318b2o$392318bobo136$392448bo$392447b2o$
392447bobo120$392575bo$392574b2o$392574bobo122$392704bo$392703b2o$
392703bobo142$392831bo$392830b2o$392830bobo128$392959bo$392958b2o$
392958bobo135$393088bo$393087b2o$393087bobo128$393215bo$393214b2o$
393214bobo130$393344b2o$393344bobo$393344bo118$393471b2o$393471bobo$
393471bo116$393599bo$393598b2o$393598bobo136$393727b2o$393727bobo$
393727bo131$393855b2o$393854b2o$393856bo123$393983b2o$393982b2o$
393984bo122$394110b3o$394110bo$394111bo140$394239b2o$394238b2o$394240b
o131$394366b3o$394366bo$394367bo121$394494b3o$394494bo$394495bo127$
394623b2o$394622b2o$394624bo104$394751b2o$394750b2o$394752bo127$
394878b3o$394878bo$394879bo160$395006b3o$395006bo$395007bo130$395135b
3o$395135bo$395136bo128$395262b3o$395262bo$395263bo116$395391b3o$
395391bo$395392bo131$395520bo$395519b2o$395519bobo126$395647bo$395646b
2o$395646bobo113$395775b3o$395775bo$395776bo134$395903b3o$395903bo$
395904bo116$396030b3o$396030bo$396031bo126$396158b3o$396158bo$396159bo
128$396287b3o$396287bo$396288bo138$396415b3o$396415bo$396416bo131$
396544bo$396543b2o$396543bobo113$396670b3o$396670bo$396671bo130$
396798b3o$396798bo$396799bo135$396928bo$396927b2o$396927bobo132$
397055bo$397054b2o$397054bobo110$397184bo$397183b2o$397183bobo130$
397311bo$397310b2o$397310bobo134$397439bo$397438b2o$397438bobo126$
397568b2o$397568bobo$397568bo116$397695b2o$397695bobo$397695bo116$
397824bo$397823b2o$397823bobo124$397952bo$397951b2o$397951bobo125$
398080b2o$398079b2o$398081bo126$398208b2o$398207b2o$398209bo122$
398335b3o$398335bo$398336bo134$398463b3o$398463bo$398464bo108$398592b
2o$398591b2o$398593bo130$398719b3o$398719bo$398720bo128$398847b3o$
398847bo$398848bo125$398974b3o$398974bo$398975bo130$399103b3o$399103bo
$399104bo124$399231b3o$399231bo$399232bo134$399359b3o$399359bo$399360b
o130$399487b3o$399487bo$399488bo138$399616b2o$399615b2o$399617bo87$
399743bo$399742b2o$399742bobo139$399871b3o$399871bo$399872bo117$
400000b2o$400000bobo$400000bo126$400128b2o$400128bobo$400128bo138$
400256b2o$400255b2o$400257bo135$400384b2o$400384bobo$400384bo103$
400512b2o$400512bobo$400512bo125$400640b2o$400639b2o$400641bo129$
400768b2o$400767b2o$400769bo127$400896b2o$400895b2o$400897bo133$
401024b2o$401023b2o$401025bo129$401152b2o$401152bobo$401152bo106$
401280bo$401279b2o$401279bobo124$401407bo$401406b2o$401406bobo140$
401536b2o$401536bobo$401536bo112$401663bo$401662b2o$401662bobo124$
401792b2o$401792bobo$401792bo130$401919b2o$401919bobo$401919bo136$
402048b2o$402048bobo$402048bo135$402175b2o$402174b2o$402176bo130$
402303b2o$402302b2o$402304bo128$402430b3o$402430bo$402431bo119$402558b
3o$402558bo$402559bo117$402687b2o$402686b2o$402688bo135$402814b3o$
402814bo$402815bo130$402942b3o$402942bo$402943bo135$403072bo$403071b2o
$403071bobo128$403199bo$403198b2o$403198bobo138$403328b2o$403328bobo$
403328bo124$403456b2o$403456bobo$403456bo114$403583bo$403582b2o$
403582bobo116$403712bo$403711b2o$403711bobo126$403840b2o$403840bobo$
403840bo105$403967bo$403966b2o$403966bobo124$404096bo$404095b2o$
404095bobo130$404223bo$404222b2o$404222bobo120$404352bo$404351b2o$
404351bobo124$404479b2o$404479bobo$404479bo120$404607b2o$404607bobo$
404607bo152$404735b2o$404735bobo$404735bo104$404864b2o$404864bobo$
404864bo136$404992b2o$404992bobo$404992bo116$405120b2o$405120bobo$
405120bo134$405246b3o$405246bo$405247bo124$405375b3o$405375bo$405376bo
138$405503b3o$405503bo$405504bo122$405630b3o$405630bo$405631bo122$
405759b3o$405759bo$405760bo129$405887bo$405886b2o$405886bobo126$
406015bo$406014b2o$406014bobo134$406143bo$406142b2o$406142bobo129$
406270b3o$406270bo$406271bo121$406400b2o$406400bobo$406400bo130$
406528b2o$406528bobo$406528bo128$406656b2o$406655b2o$406657bo154$
406784b2o$406784bobo$406784bo104$406912b2o$406912bobo$406912bo113$
407040b2o$407040bobo$407040bo104$407168b2o$407167b2o$407169bo152$
407296b2o$407296bobo$407296bo113$407422b3o$407422bo$407423bo126$
407551b3o$407551bo$407552bo122$407678b3o$407678bo$407679bo132$407806b
3o$407806bo$407807bo138$407935b3o$407935bo$407936bo130$408063b3o$
408063bo$408064bo110$408191b3o$408191bo$408192bo139$408320bo$408319b2o
$408319bobo132$408447b3o$408447bo$408448bo122$408574b3o$408574bo$
408575bo126$408702b3o$408702bo$408703bo139$408831bo$408830b2o$408830bo
bo116$408960bo$408959b2o$408959bobo126$409088bo$409087b2o$409087bobo
127$409214b3o$409214bo$409215bo110$409342b3o$409342bo$409343bo145$
409471bo$409470b2o$409470bobo111$409598b3o$409598bo$409599bo133$
409728b2o$409727b2o$409729bo126$409856b2o$409855b2o$409857bo142$
409983b3o$409983bo$409984bo125$410111b3o$410111bo$410112bo134$410239b
2o$410239bobo$410239bo122$410367b2o$410367bobo$410367bo130$410495b2o$
410494b2o$410496bo129$410623bo$410622b2o$410622bobo126$410752bo$
410751b2o$410751bobo138$410879b2o$410879bobo$410879bo134$411007b2o$
411007bobo$411007bo110$411136bo$411135b2o$411135bobo131$411263b2o$
411263bobo$411263bo136$411391b2o$411391bobo$411391bo82$411519b3o$
411519bo$411520bo125$411648b2o$411647b2o$411649bo132$411776bo$411775b
2o$411775bobo126$411904bo$411903b2o$411903bobo124$412031b2o$412031bobo
$412031bo124$412160b2o$412160bobo$412160bo118$412288bo$412287b2o$
412287bobo136$412416bo$412415b2o$412415bobo120$412544b2o$412544bobo$
412544bo136$412672b2o$412672bobo$412672bo130$412800b2o$412800bobo$
412800bo134$412927bo$412926b2o$412926bobo118$413055bo$413054b2o$
413054bobo120$413184b2o$413183b2o$413185bo117$413312b2o$413311b2o$
413313bo131$413440b2o$413439b2o$413441bo123$413568b2o$413567b2o$
413569bo133$413696b2o$413695b2o$413697bo119$413823b3o$413823bo$413824b
o122$413951b3o$413951bo$413952bo130$414080b2o$414079b2o$414081bo121$
414207b3o$414207bo$414208bo143$414335b2o$414334b2o$414336bo134$414463b
2o$414462b2o$414464bo118$414591b2o$414590b2o$414592bo111$414718b3o$
414718bo$414719bo120$414846b3o$414846bo$414847bo134$414975b2o$414974b
2o$414976bo127$415103b2o$415102b2o$415104bo134$415231b2o$415230b2o$
415232bo120$415359b2o$415358b2o$415360bo130$415487b2o$415486b2o$
415488bo117$415615b2o$415614b2o$415616bo121$415742b3o$415742bo$415743b
o129$415871b2o$415871bobo$415871bo119$415999b2o$415999bobo$415999bo
126$416127b2o$416127bobo$416127bo124$416255b2o$416255bobo$416255bo146$
416383b2o$416383bobo$416383bo99$416511b2o$416511bobo$416511bo124$
416639b2o$416639bobo$416639bo127$416766b3o$416766bo$416767bo118$
416894b3o$416894bo$416895bo134$417023b3o$417023bo$417024bo134$417151b
3o$417151bo$417152bo116$417278b3o$417278bo$417279bo111$417408bo$
417407b2o$417407bobo132$417535b2o$417535bobo$417535bo123$417663b2o$
417663bobo$417663bo117$417791b2o$417791bobo$417791bo137$417919b2o$
417919bobo$417919bo130$418047b2o$418046b2o$418048bo127$418175b2o$
418175bobo$418175bo139$418303b2o$418303bobo$418303bo122$418432b2o$
418431b2o$418433bo151$418559b2o$418558b2o$418560bo123$418687b2o$
418686b2o$418688bo126$418815b2o$418814b2o$418816bo125$418943b2o$
418942b2o$418944bo128$419070b3o$419070bo$419071bo132$419198b3o$419198b
o$419199bo115$419326b3o$419326bo$419327bo133$419456b2o$419456bobo$
419456bo127$419584b2o$419584bobo$419584bo117$419712b2o$419712bobo$
419712bo136$419840b2o$419839b2o$419841bo125$419968b2o$419968bobo$
419968bo127$420096b2o$420096bobo$420096bo131$420224b2o$420223b2o$
420225bo125$420352b2o$420352bobo$420352bo121$420480b2o$420479b2o$
420481bo131$420608b2o$420608bobo$420608bo105$420735b2o$420735bobo$
420735bo130$420863b2o$420863bobo$420863bo118$420991b2o$420991bobo$
420991bo126$421119b2o$421118b2o$421120bo122$421247b2o$421247bobo$
421247bo128$421375b2o$421375bobo$421375bo129$421503b2o$421502b2o$
421504bo123$421631b3o$421631bo$421632bo128$421758b3o$421758bo$421759bo
122$421886b3o$421886bo$421887bo138$422014b3o$422014bo$422015bo124$
422143b3o$422143bo$422144bo116$422271b3o$422271bo$422272bo132$422398b
3o$422398bo$422399bo132$422526b3o$422526bo$422527bo118$422654b3o$
422654bo$422655bo124$422782b3o$422782bo$422783bo146$422911b3o$422911bo
$422912bo113$423039bo$423038b2o$423038bobo124$423167bo$423166b2o$
423166bobo114$423295bo$423294b2o$423294bobo131$423422b3o$423422bo$
423423bo130$423550b3o$423550bo$423551bo119$423680bo$423679b2o$423679bo
bo116$423808bo$423807b2o$423807bobo130$423935bo$423934b2o$423934bobo
132$424064bo$424063b2o$424063bobo143$424191b2o$424191bobo$424191bo119$
424319b2o$424319bobo$424319bo143$424447b2o$424447bobo$424447bo127$
424575b2o$424575bobo$424575bo120$424703b2o$424703bobo$424703bo116$
424831b2o$424830b2o$424832bo130$424959b2o$424959bobo$424959bo126$
425087b2o$425087bobo$425087bo92$425215bo$425214b2o$425214bobo134$
425344bo$425343b2o$425343bobo124$425471b2o$425471bobo$425471bo134$
425599bo$425598b2o$425598bobo126$425727bo$425726b2o$425726bobo120$
425855bo$425854b2o$425854bobo138$425984b2o$425984bobo$425984bo136$
426111bo$426110b2o$426110bobo118$426240b2o$426240bobo$426240bo122$
426368b2o$426367b2o$426369bo123$426496b2o$426495b2o$426497bo116$
426623b3o$426623bo$426624bo128$426751b3o$426751bo$426752bo136$426880b
2o$426879b2o$426881bo137$427008b2o$427007b2o$427009bo127$427135b3o$
427135bo$427136bo135$427263bo$427262b2o$427262bobo126$427392bo$427391b
2o$427391bobo128$427519b2o$427519bobo$427519bo132$427648bo$427647b2o$
427647bobo110$427775bo$427774b2o$427774bobo134$427903b2o$427903bobo$
427903bo129$428032b2o$428032bobo$428032bo119$428160b2o$428160bobo$
428160bo124$428288b2o$428288bobo$428288bo145$428416b2o$428416bobo$
428416bo115$428544b2o$428543b2o$428545bo131$428672b2o$428671b2o$
428673bo121$428800b2o$428799b2o$428801bo113$428928b2o$428928bobo$
428928bo128$429056b2o$429056bobo$429056bo146$429184b2o$429184bobo$
429184bo123$429311b2o$429310b2o$429312bo134$429439b2o$429438b2o$
429440bo120$429567b2o$429566b2o$429568bo124$429695b2o$429694b2o$
429696bo128$429822b3o$429822bo$429823bo126$429950b3o$429950bo$429951bo
158$430079b2o$430078b2o$430080bo130$430207bo$430206b2o$430206bobo151$
430335b2o$430335bobo$430335bo115$430463b2o$430463bobo$430463bo136$
430591b2o$430591bobo$430591bo141$430719b2o$430719bobo$430719bo130$
430847b2o$430847bobo$430847bo113$430975b2o$430974b2o$430976bo134$
431103b2o$431103bobo$431103bo120$431231b2o$431230b2o$431232bo136$
431359b2o$431359bobo$431359bo127$431487b2o$431487bobo$431487bo118$
431616b2o$431616bobo$431616bo130$431744b2o$431744bobo$431744bo130$
431872b2o$431872bobo$431872bo115$432000b2o$432000bobo$432000bo153$
432128b2o$432128bobo$432128bo116$432256b2o$432256bobo$432256bo134$
432384bo$432383b2o$432383bobo118$432512bo$432511b2o$432511bobo128$
432639bo$432638b2o$432638bobo122$432768bo$432767b2o$432767bobo124$
432896bo$432895b2o$432895bobo126$433024bo$433023b2o$433023bobo105$
433152b2o$433152bobo$433152bo133$433279b2o$433279bobo$433279bo146$
433408b2o$433408bobo$433408bo113$433534b3o$433534bo$433535bo126$
433663b3o$433663bo$433664bo140$433790b3o$433790bo$433791bo126$433919b
3o$433919bo$433920bo112$434047b3o$434047bo$434048bo125$434175bo$
434174b2o$434174bobo134$434303b2o$434302b2o$434304bo122$434431b2o$
434430b2o$434432bo139$434559b2o$434558b2o$434560bo130$434686b3o$
434686bo$434687bo140$434814b3o$434814bo$434815bo117$434942b3o$434942bo
$434943bo101$435070b3o$435070bo$435071bo135$435198b3o$435198bo$435199b
o119$435326b3o$435326bo$435327bo134$435455b3o$435455bo$435456bo108$
435582b3o$435582bo$435583bo126$435711b3o$435711bo$435712bo132$435839b
3o$435839bo$435840bo135$435968bo$435967b2o$435967bobo123$436095b3o$
436095bo$436096bo126$436223b3o$436223bo$436224bo118$436352b2o$436352bo
bo$436352bo133$436480b2o$436480bobo$436480bo120$436608b2o$436608bobo$
436608bo123$436736b2o$436736bobo$436736bo119$436864b2o$436864bobo$
436864bo116$436992b2o$436992bobo$436992bo119$437120bo$437119b2o$
437119bobo128$437247bo$437246b2o$437246bobo108$437375bo$437374b2o$
437374bobo126$437504bo$437503b2o$437503bobo120$437632bo$437631b2o$
437631bobo134$437760b2o$437760bobo$437760bo120$437888bo$437887b2o$
437887bobo132$438015bo$438014b2o$438014bobo105$438142b3o$438142bo$
438143bo124$438271b3o$438271bo$438272bo138$438399b3o$438399bo$438400bo
122$438526b3o$438526bo$438527bo110$438654b3o$438654bo$438655bo128$
438783b3o$438783bo$438784bo130$438910b3o$438910bo$438911bo119$439039bo
$439038b2o$439038bobo132$439168bo$439167b2o$439167bobo134$439295bo$
439294b2o$439294bobo120$439423b2o$439423bobo$439423bo129$439551b2o$
439551bobo$439551bo128$439679b2o$439679bobo$439679bo129$439807b2o$
439807bobo$439807bo115$439935b2o$439935bobo$439935bo148$440063b2o$
440063bobo$440063bo117$440191b2o$440191bobo$440191bo125$440320bo$
440319b2o$440319bobo128$440447bo$440446b2o$440446bobo130$440576b2o$
440576bobo$440576bo114$440703bo$440702b2o$440702bobo122$440831bo$
440830b2o$440830bobo124$440959b2o$440959bobo$440959bo148$441088b2o$
441088bobo$441088bo137$441215b3o$441215bo$441216bo122$441343b3o$
441343bo$441344bo118$441471b3o$441471bo$441472bo122$441599b3o$441599bo
$441600bo126$441727b3o$441727bo$441728bo116$441856b2o$441856bobo$
441856bo123$441984b2o$441984bobo$441984bo118$442112b2o$442112bobo$
442112bo135$442240b2o$442240bobo$442240bo125$442368b2o$442368bobo$
442368bo138$442496b2o$442496bobo$442496bo108$442624b2o$442623b2o$
442625bo129$442752b2o$442752bobo$442752bo118$442880b2o$442880bobo$
442880bo118$443008b2o$443008bobo$443008bo134$443134b3o$443134bo$
443135bo134$443263b3o$443263bo$443264bo108$443390b3o$443390bo$443391bo
126$443519b3o$443519bo$443520bo132$443647b3o$443647bo$443648bo135$
443776bo$443775b2o$443775bobo123$443903b3o$443903bo$443904bo126$
444031b3o$444031bo$444032bo176$444159b3o$444159bo$444160bo117$444288b
2o$444288bobo$444288bo123$444416b2o$444416bobo$444416bo122$444544b2o$
444543b2o$444545bo138$444672b2o$444671b2o$444673bo130$444800b2o$
444799b2o$444801bo123$444928b2o$444928bobo$444928bo136$445055b2o$
445055bobo$445055bo119$445183b2o$445183bobo$445183bo143$445311b2o$
445311bobo$445311bo150$445440b2o$445440bobo$445440bo116$445568b2o$
445568bobo$445568bo126$445696b2o$445695b2o$445697bo127$445824b2o$
445823b2o$445825bo130$445951b3o$445951bo$445952bo118$446079b3o$446079b
o$446080bo132$446207b3o$446207bo$446208bo134$446336b2o$446335b2o$
446337bo128$446463b3o$446463bo$446464bo119$446592b2o$446592bobo$
446592bo123$446720b2o$446720bobo$446720bo128$446848b2o$446848bobo$
446848bo120$446976b2o$446976bobo$446976bo134$447104b2o$447104bobo$
447104bo120$447232b2o$447232bobo$447232bo121$447358b3o$447358bo$
447359bo117$447487b2o$447487bobo$447487bo120$447615b2o$447615bobo$
447615bo116$447743b2o$447742b2o$447744bo95$447872b2o$447871b2o$447873b
o118$447999b2o$447998b2o$448000bo130$448127b2o$448126b2o$448128bo136$
448254b3o$448254bo$448255bo118$448383b2o$448382b2o$448384bo126$448511b
2o$448510b2o$448512bo137$448640bo$448639b2o$448639bobo122$448768bo$
448767b2o$448767bobo109$448894b3o$448894bo$448895bo116$449022b3o$
449022bo$449023bo143$449151b2o$449151bobo$449151bo140$449279bo$449278b
2o$449278bobo112$449407b2o$449407bobo$449407bo118$449535b2o$449535bobo
$449535bo118$449662b3o$449662bo$449663bo130$449791b3o$449791bo$449792b
o130$449919b3o$449919bo$449920bo114$450046b3o$450046bo$450047bo152$
450175b3o$450175bo$450176bo128$450302b3o$450302bo$450303bo100$450430b
3o$450430bo$450431bo153$450559b3o$450559bo$450560bo134$450686b3o$
450686bo$450687bo120$450815b3o$450815bo$450816bo136$450942b3o$450942bo
$450943bo117$451072bo$451071b2o$451071bobo107$451199b3o$451199bo$
451200bo114$451327b3o$451327bo$451328bo126$451455b2o$451455bobo$
451455bo129$451583b2o$451583bobo$451583bo126$451711b2o$451711bobo$
451711bo129$451839b2o$451838b2o$451840bo123$451967b2o$451966b2o$
451968bo131$452095b2o$452094b2o$452096bo120$452223b2o$452223bobo$
452223bo108$452350b3o$452350bo$452351bo122$452478b3o$452478bo$452479bo
118$452606b3o$452606bo$452607bo129$452736bo$452735b2o$452735bobo128$
452864bo$452863b2o$452863bobo140$452991bo$452990b2o$452990bobo113$
453118b3o$453118bo$453119bo110$453247b3o$453247bo$453248bo133$453376bo
$453375b2o$453375bobo144$453503bo$453502b2o$453502bobo120$453632bo$
453631b2o$453631bobo143$453760b2o$453759b2o$453761bo122$453888b2o$
453887b2o$453889bo127$454016b2o$454015b2o$454017bo148$454143b3o$
454143bo$454144bo118$454271b3o$454271bo$454272bo117$454399b3o$454399bo
$454400bo133$454527bo$454526b2o$454526bobo122$454655bo$454654b2o$
454654bobo118$454784b2o$454784bobo$454784bo140$454912bo$454911b2o$
454911bobo112$455040b2o$455040bobo$455040bo111$455167b3o$455167bo$
455168bo133$455296b2o$455296bobo$455296bo108$455422b3o$455422bo$
455423bo116$455550b3o$455550bo$455551bo136$455679b3o$455679bo$455680bo
128$455806b3o$455806bo$455807bo134$455935b3o$455935bo$455936bo107$
456063bo$456062b2o$456062bobo132$456191bo$456190b2o$456190bobo124$
456320bo$456319b2o$456319bobo126$456448bo$456447b2o$456447bobo124$
456576b2o$456576bobo$456576bo142$456704b2o$456704bobo$456704bo128$
456831bo$456830b2o$456830bobo135$456960bo$456959b2o$456959bobo124$
457087bo$457086b2o$457086bobo130$457215b2o$457215bobo$457215bo116$
457343bo$457342b2o$457342bobo109$457471b2o$457471bobo$457471bo141$
457599bo$457598b2o$457598bobo110$457728bo$457727b2o$457727bobo142$
457855bo$457854b2o$457854bobo118$457984b2o$457984bobo$457984bo122$
458112b2o$458112bobo$458112bo150$458240b2o$458240bobo$458240bo127$
458368b2o$458367b2o$458369bo134$458496b2o$458495b2o$458497bo109$
458624b2o$458623b2o$458625bo125$458752b2o$458751b2o$458753bo132$
458879b3o$458879bo$458880bo129$459007b3o$459007bo$459008bo129$459135b
3o$459135bo$459136bo128$459264bo$459263b2o$459263bobo124$459391bo$
459390b2o$459390bobo122$459519b2o$459519bobo$459519bo195$459647b2o$
459647bobo$459647bo126$459775b2o$459775bobo$459775bo183$459904b2o$
459904bobo$459904bo123$460032b2o$460032bobo$460032bo130$460160b2o$
460159b2o$460161bo130$460287b3o$460287bo$460288bo116$460415b3o$460415b
o$460416bo126$460543b3o$460543bo$460544bo126$460670b3o$460670bo$
460671bo132$460799b3o$460799bo$460800bo137$460928bo$460927b2o$460927bo
bo151$461056bo$461055b2o$461055bobo122$461184bo$461183b2o$461183bobo
134$461312bo$461311b2o$461311bobo178$461438b3o$461438bo$461439bo124$
461567b3o$461567bo$461568bo124$461695b3o$461695bo$461696bo122$461822b
3o$461822bo$461823bo134$461950b3o$461950bo$461951bo106$462080b2o$
462079b2o$462081bo130$462208b2o$462207b2o$462209bo128$462335b3o$
462335bo$462336bo115$462463b3o$462463bo$462464bo121$462591b3o$462591bo
$462592bo149$462720b2o$462719b2o$462721bo116$462847b3o$462847bo$
462848bo119$462975b3o$462975bo$462976bo144$463103b2o$463102b2o$463104b
o123$463231b2o$463230b2o$463232bo122$463358b3o$463358bo$463359bo106$
463486b3o$463486bo$463487bo121$463615b2o$463614b2o$463616bo147$463742b
3o$463742bo$463743bo140$463870b3o$463870bo$463871bo110$463998b3o$
463998bo$463999bo118$464126b3o$464126bo$464127bo134$464255b3o$464255bo
$464256bo134$464383b3o$464383bo$464384bo132$464512b2o$464511b2o$
464513bo130$464640b2o$464639b2o$464641bo124$464768b2o$464767b2o$
464769bo136$464895b3o$464895bo$464896bo134$465023b3o$465023bo$465024bo
116$465151b2o$465150b2o$465152bo126$465279b2o$465278b2o$465280bo124$
465406b3o$465406bo$465407bo129$465535b2o$465534b2o$465536bo141$465663b
2o$465662b2o$465664bo117$465790b3o$465790bo$465791bo130$465918b3o$
465918bo$465919bo118$466048b2o$466048bobo$466048bo126$466176b2o$
466176bobo$466176bo136$466304b2o$466303b2o$466305bo116$466432b2o$
466431b2o$466433bo127$466560b2o$466560bobo$466560bo121$466688b2o$
466688bobo$466688bo124$466816b2o$466816bobo$466816bo91$466942b3o$
466942bo$466943bo130$467070b3o$467070bo$467071bo122$467198b3o$467198bo
$467199bo143$467327b3o$467327bo$467328bo124$467456b2o$467456bobo$
467456bo118$467583b3o$467583bo$467584bo122$467710b3o$467710bo$467711bo
126$467838b3o$467838bo$467839bo118$467966b3o$467966bo$467967bo118$
468095bo$468094b2o$468094bobo120$468223b2o$468223bobo$468223bo120$
468351b2o$468351bobo$468351bo135$468478b3o$468478bo$468479bo126$
468606b3o$468606bo$468607bo120$468734b3o$468734bo$468735bo122$468862b
3o$468862bo$468863bo130$468990b3o$468990bo$468991bo116$469118b3o$
469118bo$469119bo134$469247b3o$469247bo$469248bo133$469375bo$469374b2o
$469374bobo123$469503b3o$469503bo$469504bo162$469631bo$469630b2o$
469630bobo119$469758b3o$469758bo$469759bo121$469887bo$469886b2o$
469886bobo145$470015b3o$470015bo$470016bo136$470142b3o$470142bo$
470143bo108$470270b3o$470270bo$470271bo127$470399b3o$470399bo$470400bo
132$470526b3o$470526bo$470527bo110$470655b3o$470655bo$470656bo124$
470782b3o$470782bo$470783bo132$470910b3o$470910bo$470911bo116$471038b
3o$471038bo$471039bo130$471167b3o$471167bo$471168bo141$471295bo$
471294b2o$471294bobo123$471422b3o$471422bo$471423bo126$471550b3o$
471550bo$471551bo121$471680bo$471679b2o$471679bobo124$471807bo$471806b
2o$471806bobo104$471935bo$471934b2o$471934bobo124$472063bo$472062b2o$
472062bobo128$472191bo$472190b2o$472190bobo137$472319b3o$472319bo$
472320bo128$472447b3o$472447bo$472448bo118$472574b3o$472574bo$472575bo
130$472703b3o$472703bo$472704bo129$472831bo$472830b2o$472830bobo119$
472959b3o$472959bo$472960bo114$473087b2o$473087bobo$473087bo130$
473215b2o$473215bobo$473215bo124$473343b2o$473343bobo$473343bo143$
473471b2o$473470b2o$473472bo117$473599b2o$473598b2o$473600bo122$
473727b2o$473727bobo$473727bo134$473855b2o$473854b2o$473856bo112$
473983b2o$473982b2o$473984bo131$474111b2o$474111bobo$474111bo108$
474239b2o$474239bobo$474239bo164$474367b3o$474367bo$474368bo132$
474494b3o$474494bo$474495bo110$474623b3o$474623bo$474624bo130$474751b
3o$474751bo$474752bo142$474878b3o$474878bo$474879bo127$475007bo$
475006b2o$475006bobo99$475136b2o$475136bobo$475136bo119$475264b2o$
475264bobo$475264bo124$475392b2o$475392bobo$475392bo137$475520b2o$
475520bobo$475520bo134$475648b2o$475648bobo$475648bo115$475775bo$
475774b2o$475774bobo134$475904b2o$475903b2o$475905bo136$476032b2o$
476031b2o$476033bo121$476160b2o$476159b2o$476161bo119$476288b2o$
476287b2o$476289bo142$476416b2o$476415b2o$476417bo112$476544b2o$
476543b2o$476545bo128$476672b2o$476671b2o$476673bo119$476800b2o$
476800bobo$476800bo139$476928b2o$476928bobo$476928bo127$477056b2o$
477055b2o$477057bo130$477184b2o$477183b2o$477185bo118$477312b2o$
477311b2o$477313bo127$477440b2o$477439b2o$477441bo122$477568b2o$
477568bobo$477568bo125$477696b2o$477695b2o$477697bo132$477824b2o$
477824bobo$477824bo117$477952b2o$477951b2o$477953bo108$478080b2o$
478080bobo$478080bo135$478208b2o$478207b2o$478209bo126$478336b2o$
478335b2o$478337bo130$478464b2o$478463b2o$478465bo125$478592b2o$
478592bobo$478592bo131$478720b2o$478720bobo$478720bo117$478848b2o$
478848bobo$478848bo116$478976b2o$478976bobo$478976bo126$479104bo$
479103b2o$479103bobo122$479231bo$479230b2o$479230bobo116$479358b3o$
479358bo$479359bo126$479487b3o$479487bo$479488bo148$479615bo$479614b2o
$479614bobo130$479744bo$479743b2o$479743bobo123$479870b3o$479870bo$
479871bo132$479998b3o$479998bo$479999bo128$480126b3o$480126bo$480127bo
110$480255bo$480254b2o$480254bobo125$480383b3o$480383bo$480384bo116$
480510b3o$480510bo$480511bo119$480639bo$480638b2o$480638bobo122$
480768bo$480767b2o$480767bobo138$480895bo$480894b2o$480894bobo137$
481023b3o$481023bo$481024bo120$481150b3o$481150bo$481151bo146$481278b
3o$481278bo$481279bo118$481406b3o$481406bo$481407bo90$481535b2o$
481535bobo$481535bo106$481664bo$481663b2o$481663bobo135$481791b2o$
481791bobo$481791bo136$481919b2o$481919bobo$481919bo150$482046b3o$
482046bo$482047bo130$482175b3o$482175bo$482176bo128$482302b3o$482302bo
$482303bo122$482431b3o$482431bo$482432bo129$482560bo$482559b2o$482559b
obo119$482686b3o$482686bo$482687bo144$482815b3o$482815bo$482816bo117$
482944b2o$482944bobo$482944bo127$483072b2o$483072bobo$483072bo128$
483200b2o$483200bobo$483200bo132$483328b2o$483328bobo$483328bo115$
483456b2o$483455b2o$483457bo120$483584b2o$483584bobo$483584bo127$
483711b3o$483711bo$483712bo122$483838b3o$483838bo$483839bo132$483967b
3o$483967bo$483968bo111$484096bo$484095b2o$484095bobo136$484223bo$
484222b2o$484222bobo113$484350b3o$484350bo$484351bo136$484478b3o$
484478bo$484479bo131$484607bo$484606b2o$484606bobo117$484734b3o$
484734bo$484735bo139$484863b2o$484862b2o$484864bo127$484991b2o$484990b
2o$484992bo114$485118b3o$485118bo$485119bo134$485247b2o$485246b2o$
485248bo135$485375b2o$485374b2o$485376bo158$485503b2o$485502b2o$
485504bo129$485631b2o$485630b2o$485632bo128$485759b2o$485758b2o$
485760bo134$485887b2o$485886b2o$485888bo110$486015b2o$486014b2o$
486016bo140$486143b2o$486142b2o$486144bo136$486271b3o$486271bo$486272b
o126$486399b3o$486399bo$486400bo123$486528bo$486527b2o$486527bobo121$
486655b3o$486655bo$486656bo119$486784bo$486783b2o$486783bobo124$
486912bo$486911b2o$486911bobo137$487038b3o$487038bo$487039bo136$
487166b3o$487166bo$487167bo126$487295b3o$487295bo$487296bo136$487423b
3o$487423bo$487424bo117$487552b2o$487552bobo$487552bo123$487680b2o$
487680bobo$487680bo116$487808b2o$487807b2o$487809bo141$487936b2o$
487936bobo$487936bo126$488064b2o$488064bobo$488064bo109$488192b2o$
488192bobo$488192bo108$488318b3o$488318bo$488319bo133$488448b2o$
488448bobo$488448bo125$488576b2o$488576bobo$488576bo134$488702b3o$
488702bo$488703bo130$488831b3o$488831bo$488832bo109$488959bo$488958b2o
$488958bobo134$489087bo$489086b2o$489086bobo111$489215b3o$489215bo$
489216bo159$489344bo$489343b2o$489343bobo125$489471b3o$489471bo$
489472bo118$489598b3o$489598bo$489599bo134$489726b3o$489726bo$489727bo
166$489856b2o$489856bobo$489856bo128$489984b2o$489983b2o$489985bo128$
490112b2o$490112bobo$490112bo125$490240b2o$490240bobo$490240bo121$
490368b2o$490367b2o$490369bo139$490496b2o$490496bobo$490496bo128$
490623bo$490622b2o$490622bobo130$490752bo$490751b2o$490751bobo136$
490879b2o$490879bobo$490879bo124$491007b2o$491007bobo$491007bo116$
491136bo$491135b2o$491135bobo114$491263bo$491262b2o$491262bobo126$
491391b2o$491391bobo$491391bo108$491519b2o$491519bobo$491519bo127$
491647b2o$491647bobo$491647bo114$491775b2o$491774b2o$491776bo117$
491903b2o$491903bobo$491903bo146$492031b2o$492031bobo$492031bo124$
492159b2o$492159bobo$492159bo118$492287b2o$492287bobo$492287bo117$
492415b2o$492415bobo$492415bo123$492543b2o$492543bobo$492543bo93$
492670b3o$492670bo$492671bo151$492799b2o$492798b2o$492800bo125$492927b
2o$492927bobo$492927bo137$493055b2o$493055bobo$493055bo137$493183b2o$
493182b2o$493184bo121$493311b2o$493310b2o$493312bo132$493439b2o$
493438b2o$493440bo106$493567b2o$493566b2o$493568bo122$493695b2o$
493694b2o$493696bo151$493823bo$493822b2o$493822bobo126$493951bo$
493950b2o$493950bobo122$494080bo$494079b2o$494079bobo126$494208bo$
494207b2o$494207bobo134$494335bo$494334b2o$494334bobo116$494463bo$
494462b2o$494462bobo111$494591bo$494590b2o$494590bobo130$494719bo$
494718b2o$494718bobo118$494848bo$494847b2o$494847bobo120$494975b2o$
494975bobo$494975bo144$495104bo$495103b2o$495103bobo123$495232bo$
495231b2o$495231bobo128$495359bo$495358b2o$495358bobo130$495488b2o$
495488bobo$495488bo136$495615bo$495614b2o$495614bobo132$495743bo$
495742b2o$495742bobo130$495871b2o$495871bobo$495871bo112$495999bo$
495998b2o$495998bobo112$496128bo$496127b2o$496127bobo130$496256b2o$
496256bobo$496256bo128$496383b2o$496383bobo$496383bo142$496511b3o$
496511bo$496512bo122$496638b3o$496638bo$496639bo132$496767b3o$496767bo
$496768bo120$496894b3o$496894bo$496895bo117$497024bo$497023b2o$497023b
obo145$497151b3o$497151bo$497152bo124$497279b3o$497279bo$497280bo125$
497407bo$497406b2o$497406bobo121$497534b3o$497534bo$497535bo83$497663b
o$497662b2o$497662bobo118$497791bo$497790b2o$497790bobo114$497919b2o$
497918b2o$497920bo134$498046b3o$498046bo$498047bo136$498175b3o$498175b
o$498176bo118$498302b3o$498302bo$498303bo92$498432bo$498431b2o$498431b
obo128$498559bo$498558b2o$498558bobo135$498686b3o$498686bo$498687bo
127$498815bo$498814b2o$498814bobo108$498943bo$498942b2o$498942bobo126$
499071bo$499070b2o$499070bobo130$499200bo$499199b2o$499199bobo135$
499328b2o$499327b2o$499329bo130$499456b2o$499455b2o$499457bo136$
499584b2o$499584bobo$499584bo118$499712b2o$499712bobo$499712bo131$
499840b2o$499840bobo$499840bo114$499968b2o$499967b2o$499969bo125$
500096b2o$500096bobo$500096bo94$500224b2o$500224bobo$500224bo119$
500352b2o$500352bobo$500352bo138$500480b2o$500480bobo$500480bo131$
500607bo$500606b2o$500606bobo122$500736b2o$500736bobo$500736bo126$
500863bo$500862b2o$500862bobo111$500991bo$500990b2o$500990bobo138$
501120b2o$501120bobo$501120bo110$501248b2o$501248bobo$501248bo125$
501374b3o$501374bo$501375bo126$501503b3o$501503bo$501504bo124$501631b
2o$501630b2o$501632bo140$501760b2o$501759b2o$501761bo130$501887b3o$
501887bo$501888bo136$502016b2o$502015b2o$502017bo126$502144b2o$502143b
2o$502145bo118$502272b2o$502271b2o$502273bo144$502399b2o$502398b2o$
502400bo129$502527b2o$502526b2o$502528bo121$502655b2o$502654b2o$
502656bo126$502783b2o$502783bobo$502783bo119$502911b2o$502910b2o$
502912bo148$503039b2o$503039bobo$503039bo113$503167b2o$503167bobo$
503167bo131$503295b2o$503295bobo$503295bo107$503423b2o$503423bobo$
503423bo127$503552b2o$503552bobo$503552bo123$503679b2o$503679bobo$
503679bo139$503808b2o$503808bobo$503808bo124$503935b2o$503935bobo$
503935bo150$504063b2o$504063bobo$504063bo132$504191b3o$504191bo$
504192bo146$504319b3o$504319bo$504320bo137$504447bo$504446b2o$504446bo
bo134$504575bo$504574b2o$504574bobo130$504704bo$504703b2o$504703bobo
128$504831bo$504830b2o$504830bobo122$504960bo$504959b2o$504959bobo130$
505088bo$505087b2o$505087bobo110$505216b2o$505216bobo$505216bo130$
505344b2o$505344bobo$505344bo120$505471b2o$505471bobo$505471bo138$
505600b2o$505600bobo$505600bo127$505728b2o$505727b2o$505729bo127$
505856b2o$505855b2o$505857bo124$505983b3o$505983bo$505984bo134$506111b
3o$506111bo$506112bo115$506239b3o$506239bo$506240bo116$506367b3o$
506367bo$506368bo147$506494b3o$506494bo$506495bo126$506622b3o$506622bo
$506623bo123$506751bo$506750b2o$506750bobo121$506878b3o$506878bo$
506879bo119$507007bo$507006b2o$507006bobo124$507135bo$507134b2o$
507134bobo139$507263b3o$507263bo$507264bo146$507390b3o$507390bo$
507391bo69$507518b3o$507518bo$507519bo119$507646b3o$507646bo$507647bo
124$507774b3o$507774bo$507775bo132$507903b3o$507903bo$507904bo119$
508031bo$508030b2o$508030bobo120$508160bo$508159b2o$508159bobo130$
508288bo$508287b2o$508287bobo142$508416bo$508415b2o$508415bobo144$
508543b3o$508543bo$508544bo128$508670b3o$508670bo$508671bo124$508798b
3o$508798bo$508799bo134$508926b3o$508926bo$508927bo116$509055b3o$
509055bo$509056bo134$509183b3o$509183bo$509184bo92$509312b2o$509311b2o
$509313bo134$509440b2o$509439b2o$509441bo128$509568b2o$509567b2o$
509569bo107$509696b2o$509695b2o$509697bo137$509823b3o$509823bo$509824b
o121$509952b2o$509951b2o$509953bo135$510080b2o$510079b2o$510081bo154$
510208b2o$510208bobo$510208bo119$510336b2o$510336bobo$510336bo143$
510464b2o$510464bobo$510464bo127$510592b2o$510592bobo$510592bo120$
510720b2o$510720bobo$510720bo116$510848b2o$510847b2o$510849bo130$
510976b2o$510976bobo$510976bo126$511104b2o$511104bobo$511104bo52$
511232b2o$511231b2o$511233bo123$511360b2o$511359b2o$511361bo128$
511488b2o$511487b2o$511489bo139$511615b3o$511615bo$511616bo93$511743b
2o$511743bobo$511743bo136$511871b3o$511871bo$511872bo129$511999b3o$
511999bo$512000bo116$512127b3o$512127bo$512128bo125$512255b2o$512254b
2o$512256bo123$512383b2o$512382b2o$512384bo118$512511b2o$512510b2o$
512512bo129$512638b3o$512638bo$512639bo143$512766b3o$512766bo$512767bo
130$512894b3o$512894bo$512895bo118$513023b2o$513022b2o$513024bo129$
513150b3o$513150bo$513151bo129$513278b3o$513278bo$513279bo115$513408b
2o$513407b2o$513409bo127$513536b2o$513535b2o$513537bo112$513664b2o$
513663b2o$513665bo128$513792b2o$513791b2o$513793bo131$513919b3o$
513919bo$513920bo134$514048b2o$514047b2o$514049bo133$514175bo$514174b
2o$514174bobo130$514304bo$514303b2o$514303bobo128$514431bo$514430b2o$
514430bobo120$514560b2o$514560bobo$514560bo128$514688bo$514687b2o$
514687bobo116$514815bo$514814b2o$514814bobo126$514944bo$514943b2o$
514943bobo152$515071b2o$515071bobo$515071bo120$515199b2o$515199bobo$
515199bo126$515327b2o$515327bobo$515327bo73$515455b3o$515455bo$515456b
o127$515583b3o$515583bo$515584bo127$515712bo$515711b2o$515711bobo134$
515839bo$515838b2o$515838bobo122$515968bo$515967b2o$515967bobo120$
516095bo$516094b2o$516094bobo142$516223b2o$516223bobo$516223bo130$
516351b2o$516351bobo$516351bo118$516479b2o$516479bobo$516479bo132$
516606b3o$516606bo$516607bo122$516734b3o$516734bo$516735bo118$516862b
3o$516862bo$516863bo136$516991b3o$516991bo$516992bo119$517120bo$
517119b2o$517119bobo131$517246b3o$517246bo$517247bo123$517376bo$
517375b2o$517375bobo121$517502b3o$517502bo$517503bo133$517632bo$
517631b2o$517631bobo127$517759b3o$517759bo$517760bo118$517886b3o$
517886bo$517887bo126$518014b3o$518014bo$518015bo112$518142b3o$518142bo
$518143bo128$518270b3o$518270bo$518271bo131$518400bo$518399b2o$518399b
obo107$518526b3o$518526bo$518527bo127$518655bo$518654b2o$518654bobo
120$518783b2o$518782b2o$518784bo134$518911b2o$518910b2o$518912bo128$
519039b2o$519038b2o$519040bo127$519167b2o$519166b2o$519168bo107$
519295b2o$519294b2o$519296bo129$519423b2o$519422b2o$519424bo120$
519550b3o$519550bo$519551bo127$519679b2o$519678b2o$519680bo126$519807b
2o$519806b2o$519808bo144$519936b2o$519936bobo$519936bo119$520064b2o$
520064bobo$520064bo124$520192b2o$520192bobo$520192bo137$520320b2o$
520320bobo$520320bo134$520448b2o$520448bobo$520448bo115$520575bo$
520574b2o$520574bobo134$520704b2o$520703b2o$520705bo136$520832b2o$
520831b2o$520833bo121$520960b2o$520959b2o$520961bo119$521088b2o$
521087b2o$521089bo142$521216b2o$521215b2o$521217bo112$521344b2o$
521343b2o$521345bo128$521472b2o$521471b2o$521473bo119$521600b2o$
521600bobo$521600bo139$521728b2o$521728bobo$521728bo127$521856b2o$
521855b2o$521857bo130$521984b2o$521983b2o$521985bo118$522112b2o$
522111b2o$522113bo127$522240b2o$522239b2o$522241bo122$522368b2o$
522368bobo$522368bo125$522496b2o$522495b2o$522497bo132$522624b2o$
522624bobo$522624bo117$522752b2o$522751b2o$522753bo108$522880b2o$
522880bobo$522880bo135$523008b2o$523007b2o$523009bo126$523136b2o$
523135b2o$523137bo130$523264b2o$523263b2o$523265bo125$523392b2o$
523392bobo$523392bo131$523520b2o$523520bobo$523520bo117$523648b2o$
523648bobo$523648bo116$523776b2o$523776bobo$523776bo126$523904bo$
523903b2o$523903bobo122$524031bo$524030b2o$524030bobo106$524160b2o$
524160bobo$524160bo118$524287bo$524286b2o$524286bobo122$524415b2o$
524415bobo$524415bo134$524543bo$524542b2o$524542bobo130$524671bo$
524670b2o$524670bobo134$524799b2o$524799bobo$524799bo108$524927b2o$
524927bobo$524927bo133$525056bo$525055b2o$525055bobo134$525183bo$
525182b2o$525182bobo120$525312bo$525311b2o$525311bobo126$525439b2o$
525439bobo$525439bo130$525568bo$525567b2o$525567bobo120$525696b2o$
525696bobo$525696bo137$525823bo$525822b2o$525822bobo130$525952bo$
525951b2o$525951bobo146$526079bo$526078b2o$526078bobo130$526208bo$
526207b2o$526207bobo123$526334b3o$526334bo$526335bo132$526462b3o$
526462bo$526463bo128$526590b3o$526590bo$526591bo110$526719bo$526718b2o
$526718bobo123$526847b2o$526847bobo$526847bo124$526975b2o$526975bobo$
526975bo116$527104bo$527103b2o$527103bobo114$527231bo$527230b2o$
527230bobo126$527359b2o$527359bobo$527359bo121$527488bo$527487b2o$
527487bobo122$527615bo$527614b2o$527614bobo132$527744bo$527743b2o$
527743bobo122$527872b2o$527872bobo$527872bo118$528000bo$527999b2o$
527999bobo126$528128bo$528127b2o$528127bobo130$528256bo$528255b2o$
528255bobo124$528383b2o$528383bobo$528383bo126$528511b2o$528511bobo$
528511bo133$528639b2o$528639bobo$528639bo119$528767b2o$528767bobo$
528767bo124$528895b2o$528895bobo$528895bo130$529023b2o$529023bobo$
529023bo125$529151b2o$529151bobo$529151bo127$529280b2o$529279b2o$
529281bo126$529408b2o$529407b2o$529409bo134$529535b3o$529535bo$529536b
o121$529663b3o$529663bo$529664bo134$529791b3o$529791bo$529792bo130$
529919b3o$529919bo$529920bo146$530047b2o$530047bobo$530047bo96$530176b
2o$530175b2o$530177bo119$530304b2o$530304bobo$530304bo127$530432b2o$
530432bobo$530432bo123$530560b2o$530559b2o$530561bo125$530688b2o$
530688bobo$530688bo129$530816b2o$530816bobo$530816bo121$530944b2o$
530944bobo$530944bo123$531072b2o$531072bobo$531072bo137$531200b2o$
531199b2o$531201bo125$531328b2o$531327b2o$531329bo133$531455b2o$
531455bobo$531455bo123$531583b2o$531583bobo$531583bo128$531711b2o$
531711bobo$531711bo120$531839b2o$531839bobo$531839bo131$531967b2o$
531966b2o$531968bo115$532095b2o$532094b2o$532096bo141$532223b2o$
532222b2o$532224bo153$532351b3o$532351bo$532352bo122$532479b3o$532479b
o$532480bo134$532607b3o$532607bo$532608bo117$532736bo$532735b2o$
532735bobo126$532863bo$532862b2o$532862bobo114$532992bo$532991b2o$
532991bobo146$533120bo$533119b2o$533119bobo115$533246b3o$533246bo$
533247bo113$533376bo$533375b2o$533375bobo99$533504b2o$533504bobo$
533504bo129$533632b2o$533632bobo$533632bo121$533760b2o$533760bobo$
533760bo131$533888b2o$533887b2o$533889bo133$534016b2o$534016bobo$
534016bo107$534144b2o$534143b2o$534145bo134$534272b2o$534272bobo$
534272bo124$534400b2o$534400bobo$534400bo153$534527b2o$534527bobo$
534527bo134$534655b2o$534655bobo$534655bo118$534783b2o$534783bobo$
534783bo120$534911b2o$534911bobo$534911bo116$535039b2o$535039bobo$
535039bo125$535167b2o$535167bobo$535167bo122$535295b2o$535295bobo$
535295bo127$535423b2o$535423bobo$535423bo126$535551b2o$535551bobo$
535551bo130$535679b2o$535679bobo$535679bo126$535807b2o$535807bobo$
535807bo136$535935b2o$535934b2o$535936bo122$536063b2o$536062b2o$
536064bo129$536191b2o$536190b2o$536192bo118$536320b2o$536320bobo$
536320bo123$536448b2o$536448bobo$536448bo118$536576b2o$536575b2o$
536577bo150$536704b2o$536703b2o$536705bo115$536832b2o$536831b2o$
536833bo130$536960b2o$536960bobo$536960bo117$537088b2o$537088bobo$
537088bo120$537216b2o$537216bobo$537216bo114$537344b2o$537344bobo$
537344bo135$537471b3o$537471bo$537472bo132$537598b3o$537598bo$537599bo
110$537727b3o$537727bo$537728bo124$537854b3o$537854bo$537855bo132$
537982b3o$537982bo$537983bo135$538111bo$538110b2o$538110bobo123$
538238b3o$538238bo$538239bo126$538366b3o$538366bo$538367bo117$538495b
2o$538495bobo$538495bo117$538623b2o$538623bobo$538623bo126$538751b2o$
538751bobo$538751bo132$538879b2o$538879bobo$538879bo112$539007b2o$
539007bobo$539007bo152$539135b2o$539135bobo$539135bo130$539263b2o$
539263bobo$539263bo118$539392b2o$539391b2o$539393bo126$539520b2o$
539519b2o$539521bo128$539647b3o$539647bo$539648bo118$539775b3o$539775b
o$539776bo135$539903b3o$539903bo$539904bo142$540031b3o$540031bo$
540032bo122$540159b3o$540159bo$540160bo123$540286b3o$540286bo$540287bo
124$540415b3o$540415bo$540416bo118$540543b3o$540543bo$540544bo148$
540671b3o$540671bo$540672bo130$540799b3o$540799bo$540800bo124$540926b
3o$540926bo$540927bo132$541055b3o$541055bo$541056bo107$541183bo$
541182b2o$541182bobo133$541311b3o$541311bo$541312bo110$541438b3o$
541438bo$541439bo133$541567b2o$541567bobo$541567bo123$541695b2o$
541695bobo$541695bo128$541823b2o$541823bobo$541823bo120$541951b2o$
541951bobo$541951bo134$542079b2o$542079bobo$542079bo120$542207b2o$
542207bobo$542207bo123$542335b3o$542335bo$542336bo150$542463b2o$
542463bobo$542463bo137$542591b2o$542591bobo$542591bo116$542719b2o$
542719bobo$542719bo103$542848b2o$542847b2o$542849bo137$542976b2o$
542975b2o$542977bo114$543104b2o$543103b2o$543105bo123$543232b2o$
543231b2o$543233bo128$543360b2o$543359b2o$543361bo129$543488b2o$
543487b2o$543489bo101$543615b3o$543615bo$543616bo125$543743b2o$543742b
2o$543744bo127$543871b2o$543870b2o$543872bo112$543999b2o$543998b2o$
544000bo130$544127b2o$544126b2o$544128bo136$544254b3o$544254bo$544255b
o125$544383b2o$544382b2o$544384bo116$544512b2o$544512bobo$544512bo130$
544640b2o$544640bobo$544640bo130$544768b2o$544767b2o$544769bo136$
544896b2o$544895b2o$544897bo128$545024b2o$545024bobo$545024bo121$
545152b2o$545152bobo$545152bo123$545280b2o$545280bobo$545280bo128$
545408b2o$545408bobo$545408bo174$545535b3o$545535bo$545536bo128$
545662b3o$545662bo$545663bo113$545792bo$545791b2o$545791bobo133$
545918b3o$545918bo$545919bo142$546046b3o$546046bo$546047bo128$546175b
3o$546175bo$546176bo108$546302b3o$546302bo$546303bo128$546432b2o$
546432bobo$546432bo129$546560b2o$546560bobo$546560bo121$546688b2o$
546688bobo$546688bo126$546816b2o$546815b2o$546817bo139$546944b2o$
546944bobo$546944bo110$547072b2o$547071b2o$547073bo136$547200b2o$
547200bobo$547200bo136$547328b2o$547328bobo$547328bo125$547456b2o$
547456bobo$547456bo126$547584b2o$547584bobo$547584bo122$547712b2o$
547711b2o$547713bo134$547840b2o$547839b2o$547841bo118$547968b2o$
547967b2o$547969bo118$548095b3o$548095bo$548096bo125$548224b2o$548223b
2o$548225bo114$548351b3o$548351bo$548352bo132$548478b3o$548478bo$
548479bo118$548606b3o$548606bo$548607bo124$548734b3o$548734bo$548735bo
146$548863b3o$548863bo$548864bo113$548991bo$548990b2o$548990bobo127$
549119b3o$549119bo$549120bo115$549247bo$549246b2o$549246bobo124$
549375bo$549374b2o$549374bobo142$549504bo$549503b2o$549503bobo124$
549631bo$549630b2o$549630bobo109$549759bo$549758b2o$549758bobo130$
549888bo$549887b2o$549887bobo134$550016bo$550015b2o$550015bobo120$
550143b2o$550143bobo$550143bo132$550271bo$550270b2o$550270bobo140$
550400bo$550399b2o$550399bobo126$550528b2o$550528bobo$550528bo94$
550655b2o$550654b2o$550656bo123$550783b2o$550782b2o$550784bo116$
550910b3o$550910bo$550911bo128$551038b3o$551038bo$551039bo136$551167b
2o$551166b2o$551168bo137$551295b2o$551294b2o$551296bo127$551422b3o$
551422bo$551423bo102$551550b3o$551550bo$551551bo178$551679b3o$551679bo
$551680bo128$551806b3o$551806bo$551807bo118$551934b3o$551934bo$551935b
o122$552063b3o$552063bo$552064bo138$552190b3o$552190bo$552191bo156$
552318b3o$552318bo$552319bo151$552448b2o$552447b2o$552449bo130$552576b
2o$552575b2o$552577bo134$552704b2o$552703b2o$552705bo116$552832b2o$
552831b2o$552833bo118$552959b3o$552959bo$552960bo128$553087b3o$553087b
o$553088bo143$553215b3o$553215bo$553216bo101$553343bo$553342b2o$
553342bobo122$553472bo$553471b2o$553471bobo124$553599b2o$553599bobo$
553599bo126$553728b2o$553728bobo$553728bo152$553856bo$553855b2o$
553855bobo126$553982b3o$553982bo$553983bo122$554111b3o$554111bo$
554112bo128$554239b3o$554239bo$554240bo120$554366b3o$554366bo$554367bo
131$554495bo$554494b2o$554494bobo131$554622b3o$554622bo$554623bo117$
554751bo$554750b2o$554750bobo116$554878b3o$554878bo$554879bo124$
555007b3o$555007bo$555008bo118$555134b3o$555134bo$555135bo142$555263b
3o$555263bo$555264bo152$555392bo$555391b2o$555391bobo116$555520bo$
555519b2o$555519bobo117$555647bo$555646b2o$555646bobo114$555775bo$
555774b2o$555774bobo122$555903bo$555902b2o$555902bobo154$556030b3o$
556030bo$556031bo138$556159b3o$556159bo$556160bo124$556286b3o$556286bo
$556287bo126$556414b3o$556414bo$556415bo142$556543b3o$556543bo$556544b
o128$556670b3o$556670bo$556671bo108$556798b3o$556798bo$556799bo131$
556928bo$556927b2o$556927bobo123$557055b3o$557055bo$557056bo139$
557183b2o$557182b2o$557184bo127$557311b2o$557310b2o$557312bo114$
557438b3o$557438bo$557439bo138$557567b2o$557566b2o$557568bo121$557695b
2o$557694b2o$557696bo124$557823b2o$557822b2o$557824bo123$557951b3o$
557951bo$557952bo128$558078b3o$558078bo$558079bo118$558206b3o$558206bo
$558207bo130$558334b3o$558334bo$558335bo120$558463b3o$558463bo$558464b
o140$558590b3o$558590bo$558591bo134$558719bo$558718b2o$558718bobo122$
558847bo$558846b2o$558846bobo140$558975b2o$558975bobo$558975bo116$
559104b2o$559104bobo$559104bo112$559231bo$559230b2o$559230bobo124$
559359bo$559358b2o$559358bobo150$559488b2o$559488bobo$559488bo96$
559616b2o$559615b2o$559617bo119$559744b2o$559743b2o$559745bo133$
559872b2o$559871b2o$559873bo144$559999b3o$559999bo$560000bo110$560128b
2o$560127b2o$560129bo130$560256b2o$560255b2o$560257bo125$560383b3o$
560383bo$560384bo129$560512b2o$560511b2o$560513bo129$560640b2o$560639b
2o$560641bo124$560768b2o$560768bobo$560768bo119$560896b2o$560896bobo$
560896bo126$561024b2o$561024bobo$561024bo124$561152b2o$561152bobo$
561152bo146$561280b2o$561280bobo$561280bo99$561408b2o$561408bobo$
561408bo124$561536b2o$561536bobo$561536bo127$561663b3o$561663bo$
561664bo118$561791b3o$561791bo$561792bo132$561918b3o$561918bo$561919bo
134$562046b3o$562046bo$562047bo118$562175b3o$562175bo$562176bo109$
562303bo$562302b2o$562302bobo134$562432b2o$562432bobo$562432bo123$
562560b2o$562560bobo$562560bo117$562688b2o$562688bobo$562688bo137$
562816b2o$562816bobo$562816bo130$562944b2o$562943b2o$562945bo127$
563072b2o$563072bobo$563072bo139$563200b2o$563200bobo$563200bo121$
563327b3o$563327bo$563328bo163$563455b2o$563454b2o$563456bo127$563583b
2o$563582b2o$563584bo111$563711b2o$563710b2o$563712bo137$563839b2o$
563838b2o$563840bo129$563967b2o$563966b2o$563968bo147$564095b2o$
564094b2o$564096bo90$564223b2o$564222b2o$564224bo122$564351b2o$564351b
obo$564351bo130$564479b2o$564479bobo$564479bo124$564607b2o$564607bobo$
564607bo139$564735b2o$564735bobo$564735bo128$564863b2o$564863bobo$
564863bo115$564991b2o$564991bobo$564991bo119$565119b2o$565119bobo$
565119bo146$565248b2o$565248bobo$565248bo122$565376b2o$565376bobo$
565376bo130$565504b2o$565503b2o$565505bo130$565631b3o$565631bo$565632b
o116$565759b3o$565759bo$565760bo132$565886b3o$565886bo$565887bo136$
566015b3o$566015bo$566016bo113$566143bo$566142b2o$566142bobo132$
566271bo$566270b2o$566270bobo135$566399b3o$566399bo$566400bo145$
566527b2o$566527bobo$566527bo133$566655b2o$566655bobo$566655bo111$
566783b2o$566783bobo$566783bo146$566911b2o$566910b2o$566912bo134$
567039b2o$567039bobo$567039bo133$567167b2o$567167bobo$567167bo111$
567295b2o$567295bobo$567295bo146$567423b2o$567422b2o$567424bo125$
567552bo$567551b2o$567551bobo124$567680bo$567679b2o$567679bobo138$
567807bo$567806b2o$567806bobo110$567935bo$567934b2o$567934bobo124$
568063b2o$568063bobo$568063bo129$568191bo$568190b2o$568190bobo130$
568320bo$568319b2o$568319bobo128$568447bo$568446b2o$568446bobo122$
568576bo$568575b2o$568575bobo138$568703b2o$568703bobo$568703bo112$
568832b2o$568832bobo$568832bo108$568958b3o$568958bo$568959bo130$
569087b3o$569087bo$569088bo78$569215b2o$569214b2o$569216bo119$569343b
2o$569342b2o$569344bo124$569471b2o$569470b2o$569472bo145$569599b2o$
569598b2o$569600bo115$569726b3o$569726bo$569727bo120$569854b3o$569854b
o$569855bo119$569982b3o$569982bo$569983bo140$570110b3o$570110bo$
570111bo126$570238b3o$570238bo$570239bo137$570366b3o$570366bo$570367bo
132$570496b2o$570496bobo$570496bo129$570624b2o$570624bobo$570624bo121$
570752b2o$570752bobo$570752bo126$570880b2o$570879b2o$570881bo139$
571008b2o$571008bobo$571008bo110$571136b2o$571135b2o$571137bo127$
571264b2o$571264bobo$571264bo125$571392b2o$571392bobo$571392bo144$
571520b2o$571520bobo$571520bo127$571647bo$571646b2o$571646bobo134$
571775bo$571774b2o$571774bobo111$571903b3o$571903bo$571904bo159$
572032bo$572031b2o$572031bobo125$572159b3o$572159bo$572160bo118$
572286b3o$572286bo$572287bo134$572414b3o$572414bo$572415bo143$572544b
2o$572544bobo$572544bo130$572672b2o$572672bobo$572672bo124$572800b2o$
572800bobo$572800bo123$572928b2o$572928bobo$572928bo99$573056b2o$
573056bobo$573056bo125$573184b2o$573184bobo$573184bo125$573312b2o$
573312bobo$573312bo109$573438b3o$573438bo$573439bo112$573568b2o$
573568bobo$573568bo123$573696b2o$573696bobo$573696bo128$573824b2o$
573824bobo$573824bo109$573952b2o$573951b2o$573953bo124$574080b2o$
574079b2o$574081bo158$574208b2o$574207b2o$574209bo125$574335b3o$
574335bo$574336bo126$574463b3o$574463bo$574464bo119$574592bo$574591b2o
$574591bobo120$574720bo$574719b2o$574719bobo137$574847b3o$574847bo$
574848bo117$574975bo$574974b2o$574974bobo134$575103bo$575102b2o$
575102bobo129$575231b3o$575231bo$575232bo146$575360b2o$575359b2o$
575361bo130$575488b2o$575487b2o$575489bo128$575615b3o$575615bo$575616b
o119$575743b3o$575743bo$575744bo117$575872b2o$575871b2o$575873bo135$
575999b3o$575999bo$576000bo130$576127b3o$576127bo$576128bo71$576255bo$
576254b2o$576254bobo134$576384bo$576383b2o$576383bobo128$576512bo$
576511b2o$576511bobo93$576638b3o$576638bo$576639bo134$576767b3o$
576767bo$576768bo108$576894b3o$576894bo$576895bo126$577023b3o$577023bo
$577024bo132$577151b3o$577151bo$577152bo135$577280bo$577279b2o$577279b
obo123$577407b3o$577407bo$577408bo126$577535b3o$577535bo$577536bo86$
577662b3o$577662bo$577663bo125$577792bo$577791b2o$577791bobo117$
577919b3o$577919bo$577920bo124$578047bo$578046b2o$578046bobo130$
578176bo$578175b2o$578175bobo130$578304bo$578303b2o$578303bobo124$
578431bo$578430b2o$578430bobo132$578560bo$578559b2o$578559bobo124$
578688b2o$578688bobo$578688bo124$578816b2o$578816bobo$578816bo110$
578944bo$578943b2o$578943bobo116$579070b3o$579070bo$579071bo130$
579199b3o$579199bo$579200bo122$579327b3o$579327bo$579328bo142$579455b
2o$579455bobo$579455bo122$579583b3o$579583bo$579584bo122$579710b3o$
579710bo$579711bo116$579838b3o$579838bo$579839bo134$579967b3o$579967bo
$579968bo123$580096b2o$580095b2o$580097bo129$580224b2o$580223b2o$
580225bo114$580352b2o$580351b2o$580353bo141$580480b2o$580479b2o$
580481bo104$580607b3o$580607bo$580608bo119$580735b3o$580735bo$580736bo
156$580863b3o$580863bo$580864bo123$580991b3o$580991bo$580992bo141$
581120b2o$581120bobo$581120bo122$581247b3o$581247bo$581248bo126$
581375b3o$581375bo$581376bo128$581502b3o$581502bo$581503bo127$581631bo
$581630b2o$581630bobo134$581759bo$581758b2o$581758bobo113$581887b3o$
581887bo$581888bo146$582014b3o$582014bo$582015bo105$582144bo$582143b2o
$582143bobo145$582270b3o$582270bo$582271bo127$582400b2o$582399b2o$
582401bo136$582528b2o$582527b2o$582529bo121$582656b2o$582655b2o$
582657bo121$582784b2o$582783b2o$582785bo141$582912b2o$582911b2o$
582913bo118$583039b3o$583039bo$583040bo131$583168bo$583167b2o$583167bo
bo130$583296bo$583295b2o$583295bobo128$583423b2o$583423bobo$583423bo
128$583552b2o$583552bobo$583552bo102$583679b2o$583679bobo$583679bo128$
583808b2o$583808bobo$583808bo136$583936b2o$583936bobo$583936bo91$
584063b2o$584063bobo$584063bo134$584191b2o$584191bobo$584191bo112$
584319b2o$584319bobo$584319bo138$584447b2o$584447bobo$584447bo119$
584575b2o$584575bobo$584575bo124$584702b3o$584702bo$584703bo126$
584831b3o$584831bo$584832bo127$584959bo$584958b2o$584958bobo135$
585086b3o$585086bo$585087bo110$585215b3o$585215bo$585216bo125$585343b
2o$585343bobo$585343bo129$585471b2o$585471bobo$585471bo123$585599b2o$
585599bobo$585599bo122$585727b2o$585726b2o$585728bo130$585855b2o$
585855bobo$585855bo113$585983b2o$585983bobo$585983bo168$586111b2o$
586110b2o$586112bo128$586239b2o$586238b2o$586240bo127$586366b3o$
586366bo$586367bo128$586495b2o$586494b2o$586496bo113$586622b3o$586622b
o$586623bo136$586750b3o$586750bo$586751bo135$586878b3o$586878bo$
586879bo124$587007b2o$587006b2o$587008bo126$587134b3o$587134bo$587135b
o150$587263b2o$587263bobo$587263bo147$587391bo$587390b2o$587390bobo
138$587519b2o$587519bobo$587519bo126$587647bo$587646b2o$587646bobo132$
587775bo$587774b2o$587774bobo132$587904b2o$587904bobo$587904bo116$
588031b2o$588031bobo$588031bo127$588159b3o$588159bo$588160bo122$
588287b3o$588287bo$588288bo119$588416bo$588415b2o$588415bobo144$
588543bo$588542b2o$588542bobo119$588670b3o$588670bo$588671bo136$
588799b3o$588799bo$588800bo97$588927b2o$588927bobo$588927bo130$589055b
2o$589055bobo$589055bo130$589183b2o$589182b2o$589184bo136$589311b2o$
589310b2o$589312bo128$589439b2o$589439bobo$589439bo121$589567b2o$
589567bobo$589567bo123$589695b2o$589695bobo$589695bo128$589823b2o$
589823bobo$589823bo151$589952b2o$589952bobo$589952bo119$590080b2o$
590080bobo$590080bo124$590208b2o$590208bobo$590208bo137$590336b2o$
590336bobo$590336bo134$590464b2o$590464bobo$590464bo115$590591bo$
590590b2o$590590bobo134$590720b2o$590719b2o$590721bo136$590848b2o$
590847b2o$590849bo121$590976b2o$590975b2o$590977bo119$591104b2o$
591103b2o$591105bo142$591232b2o$591231b2o$591233bo112$591360b2o$
591359b2o$591361bo128$591488b2o$591487b2o$591489bo119$591616b2o$
591616bobo$591616bo139$591744b2o$591744bobo$591744bo127$591872b2o$
591871b2o$591873bo130$592000b2o$591999b2o$592001bo118$592128b2o$
592127b2o$592129bo127$592256b2o$592255b2o$592257bo122$592384b2o$
592384bobo$592384bo125$592512b2o$592511b2o$592513bo132$592640b2o$
592640bobo$592640bo117$592768b2o$592767b2o$592769bo108$592896b2o$
592896bobo$592896bo135$593024b2o$593023b2o$593025bo126$593152b2o$
593151b2o$593153bo130$593280b2o$593279b2o$593281bo125$593408b2o$
593408bobo$593408bo131$593536b2o$593536bobo$593536bo117$593664b2o$
593664bobo$593664bo116$593792b2o$593792bobo$593792bo126$593920bo$
593919b2o$593919bobo122$594047bo$594046b2o$594046bobo138$594175bo$
594174b2o$594174bobo130$594304bo$594303b2o$594303bobo123$594430b3o$
594430bo$594431bo132$594558b3o$594558bo$594559bo128$594686b3o$594686bo
$594687bo110$594815bo$594814b2o$594814bobo141$594942b3o$594942bo$
594943bo154$595071b2o$595071bobo$595071bo123$595199b2o$595199bobo$
595199bo122$595327b2o$595327bobo$595327bo134$595455b2o$595455bobo$
595455bo126$595583b2o$595583bobo$595583bo129$595711b2o$595711bobo$
595711bo132$595838b3o$595838bo$595839bo126$595967b3o$595967bo$595968bo
140$596095b3o$596095bo$596096bo116$596222b3o$596222bo$596223bo119$
596351bo$596350b2o$596350bobo122$596480bo$596479b2o$596479bobo138$
596607bo$596606b2o$596606bobo137$596735b3o$596735bo$596736bo120$
596862b3o$596862bo$596863bo138$596990b3o$596990bo$596991bo71$597119b2o
$597119bobo$597119bo136$597247b3o$597247bo$597248bo124$597374b3o$
597374bo$597375bo124$597503b3o$597503bo$597504bo132$597631b3o$597631bo
$597632bo136$597758b3o$597758bo$597759bo130$597886b3o$597886bo$597887b
o130$598015b3o$598015bo$598016bo124$598144b2o$598144bobo$598144bo134$
598272bo$598271b2o$598271bobo118$598400bo$598399b2o$598399bobo142$
598527bo$598526b2o$598526bobo92$598654b3o$598654bo$598655bo128$598784b
2o$598783b2o$598785bo129$598912b2o$598911b2o$598913bo121$599040b2o$
599039b2o$599041bo133$599168b2o$599167b2o$599169bo118$599296b2o$
599295b2o$599297bo117$599423b3o$599423bo$599424bo136$599551b3o$599551b
o$599552bo117$599679b3o$599679bo$599680bo132$599807b3o$599807bo$
599808bo128$599935b3o$599935bo$599936bo143$600064bo$600063b2o$600063bo
bo134$600191b2o$600191bobo$600191bo112$600320b2o$600320bobo$600320bo
134$600447bo$600446b2o$600446bobo128$600576bo$600575b2o$600575bobo122$
600704b2o$600704bobo$600704bo150$600832bo$600831b2o$600831bobo124$
600959b2o$600958b2o$600960bo129$601087b2o$601086b2o$601088bo126$
601215b2o$601214b2o$601216bo129$601342b3o$601342bo$601343bo110$601470b
3o$601470bo$601471bo122$601599b2o$601598b2o$601600bo127$601728bo$
601727b2o$601727bobo128$601855bo$601854b2o$601854bobo140$601982b3o$
601982bo$601983bo121$602110b3o$602110bo$602111bo127$602239bo$602238b2o
$602238bobo108$602367bo$602366b2o$602366bobo126$602495bo$602494b2o$
602494bobo130$602624bo$602623b2o$602623bobo135$602752b2o$602751b2o$
602753bo130$602880b2o$602879b2o$602881bo136$603008b2o$603008bobo$
603008bo118$603136b2o$603136bobo$603136bo131$603264b2o$603264bobo$
603264bo114$603392b2o$603391b2o$603393bo125$603520b2o$603520bobo$
603520bo94$603648b2o$603648bobo$603648bo119$603776b2o$603776bobo$
603776bo138$603904b2o$603904bobo$603904bo131$604031bo$604030b2o$
604030bobo122$604160b2o$604160bobo$604160bo126$604287bo$604286b2o$
604286bobo111$604415bo$604414b2o$604414bobo138$604544b2o$604544bobo$
604544bo110$604672b2o$604672bobo$604672bo125$604798b3o$604798bo$
604799bo126$604927b3o$604927bo$604928bo124$605055b2o$605054b2o$605056b
o140$605184b2o$605183b2o$605185bo130$605311b3o$605311bo$605312bo136$
605440b2o$605439b2o$605441bo126$605568b2o$605567b2o$605569bo118$
605696b2o$605695b2o$605697bo144$605823b2o$605822b2o$605824bo129$
605951b2o$605950b2o$605952bo121$606079b2o$606078b2o$606080bo126$
606207b2o$606207bobo$606207bo119$606335b2o$606334b2o$606336bo148$
606463b2o$606463bobo$606463bo132$606591b2o$606591bobo$606591bo107$
606719b2o$606719bobo$606719bo131$606847b2o$606847bobo$606847bo107$
606975b2o$606975bobo$606975bo127$607104b2o$607104bobo$607104bo118$
607232b2o$607231b2o$607233bo66$607359b2o$607359bobo$607359bo116$
607487b2o$607487bobo$607487bo112$607615b3o$607615bo$607616bo128$
607742b3o$607742bo$607743bo124$607870b3o$607870bo$607871bo143$608000bo
$607999b2o$607999bobo117$608127b3o$608127bo$608128bo126$608255b3o$
608255bo$608256bo116$608383b3o$608383bo$608384bo108$608512bo$608511b2o
$608511bobo122$608640bo$608639b2o$608639bobo113$608766b3o$608766bo$
608767bo131$608896bo$608895b2o$608895bobo130$609024b2o$609024bobo$
609024bo142$609151b2o$609151bobo$609151bo106$609279b2o$609279bobo$
609279bo132$609407b2o$609407bobo$609407bo144$609536b2o$609536bobo$
609536bo110$609664b2o$609664bobo$609664bo162$609792b2o$609791b2o$
609793bo129$609920b2o$609919b2o$609921bo126$610048b2o$610047b2o$
610049bo121$610175b3o$610175bo$610176bo119$610303b3o$610303bo$610304bo
142$610431b3o$610431bo$610432bo132$610559b3o$610559bo$610560bo133$
610688bo$610687b2o$610687bobo126$610816bo$610815b2o$610815bobo114$
610943b2o$610943bobo$610943bo138$611072bo$611071b2o$611071bobo120$
611199bo$611198b2o$611198bobo134$611328bo$611327b2o$611327bobo90$
611456b2o$611456bobo$611456bo130$611584b2o$611584bobo$611584bo118$
611712b2o$611712bobo$611712bo127$611840b2o$611840bobo$611840bo115$
611968b2o$611967b2o$611969bo130$612096b2o$612096bobo$612096bo122$
612224b2o$612223b2o$612225bo136$612352b2o$612352bobo$612352bo126$
612480b2o$612480bobo$612480bo144$612607b2o$612607bobo$612607bo123$
612735b2o$612735bobo$612735bo122$612863b2o$612863bobo$612863bo137$
612991b2o$612991bobo$612991bo134$613119b2o$613119bobo$613119bo88$
613247b2o$613247bobo$613247bo122$613375b2o$613375bobo$613375bo126$
613503b2o$613503bobo$613503bo119$613631b2o$613631bobo$613631bo124$
613759b2o$613759bobo$613759bo137$613887b2o$613887bobo$613887bo134$
614015b2o$614015bobo$614015bo117$614144bo$614143b2o$614143bobo132$
614271b2o$614270b2o$614272bo136$614399b2o$614398b2o$614400bo121$
614527b2o$614526b2o$614528bo119$614655b2o$614654b2o$614656bo142$
614783b2o$614782b2o$614784bo112$614911b2o$614910b2o$614912bo128$
615039b2o$615038b2o$615040bo119$615167b2o$615167bobo$615167bo139$
615295b2o$615295bobo$615295bo127$615423b2o$615422b2o$615424bo130$
615551b2o$615550b2o$615552bo118$615679b2o$615678b2o$615680bo127$
615807b2o$615806b2o$615808bo122$615935b2o$615935bobo$615935bo125$
616063b2o$616062b2o$616064bo132$616191b2o$616191bobo$616191bo117$
616319b2o$616318b2o$616320bo108$616447b2o$616447bobo$616447bo135$
616575b2o$616574b2o$616576bo126$616703b2o$616702b2o$616704bo130$
616831b2o$616830b2o$616832bo125$616959b2o$616959bobo$616959bo131$
617087b2o$617087bobo$617087bo117$617215b2o$617215bobo$617215bo116$
617343b2o$617343bobo$617343bo126$617471bo$617470b2o$617470bobo124$
617600bo$617599b2o$617599bobo138$617728bo$617727b2o$617727bobo128$
617855bo$617854b2o$617854bobo125$617983b3o$617983bo$617984bo132$
618111b3o$618111bo$618112bo128$618239b3o$618239bo$618240bo110$618368bo
$618367b2o$618367bobo141$618495b3o$618495bo$618496bo155$618623b2o$
618623bobo$618623bo119$618751b2o$618751bobo$618751bo129$618879b2o$
618879bobo$618879bo140$619007b2o$619007bobo$619007bo130$619135b2o$
619135bobo$619135bo100$619263b2o$619263bobo$619263bo121$619391b2o$
619391bobo$619391bo141$619519b3o$619519bo$619520bo128$619646b3o$
619646bo$619647bo111$619776bo$619775b2o$619775bobo134$619904bo$619903b
2o$619903bobo109$620030b3o$620030bo$620031bo159$620159bo$620158b2o$
620158bobo125$620286b3o$620286bo$620287bo120$620415b3o$620415bo$
620416bo104$620543b3o$620543bo$620544bo57$620671b2o$620670b2o$620672bo
123$620799b2o$620798b2o$620800bo117$620927b2o$620926b2o$620928bo137$
621055b2o$621054b2o$621056bo130$621182b3o$621182bo$621183bo134$621311b
2o$621310b2o$621312bo127$621438b3o$621438bo$621439bo115$621566b3o$
621566bo$621567bo134$621695b3o$621695bo$621696bo114$621823b3o$621823bo
$621824bo129$621952bo$621951b2o$621951bobo130$622079bo$622078b2o$
622078bobo124$622208bo$622207b2o$622207bobo124$622335bo$622334b2o$
622334bobo136$622463bo$622462b2o$622462bobo118$622592bo$622591b2o$
622591bobo125$622719b3o$622719bo$622720bo126$622847b3o$622847bo$
622848bo118$622975b3o$622975bo$622976bo138$623103b3o$623103bo$623104bo
121$623232bo$623231b2o$623231bobo125$623358b3o$623358bo$623359bo131$
623487bo$623486b2o$623486bobo126$623616b2o$623615b2o$623617bo130$
623744b2o$623743b2o$623745bo118$623872b2o$623871b2o$623873bo139$
623999b3o$623999bo$624000bo117$624127b3o$624127bo$624128bo130$624255b
3o$624255bo$624256bo131$624383b3o$624383bo$624384bo113$624511b2o$
624511bobo$624511bo123$624639b2o$624639bobo$624639bo122$624767b2o$
624767bobo$624767bo127$624895b2o$624895bobo$624895bo135$625023b2o$
625023bobo$625023bo119$625151b2o$625150b2o$625152bo120$625279b2o$
625279bobo$625279bo133$625407b2o$625407bobo$625407bo134$625535b2o$
625535bobo$625535bo119$625664b2o$625664bobo$625664bo127$625792b2o$
625792bobo$625792bo131$625920b2o$625919b2o$625921bo114$626048b2o$
626048bobo$626048bo130$626175b3o$626175bo$626176bo124$626302b3o$
626302bo$626303bo124$626430b3o$626430bo$626431bo125$626559bo$626558b2o
$626558bobo140$626687bo$626686b2o$626686bobo109$626814b3o$626814bo$
626815bo142$626942b3o$626942bo$626943bo127$627072b2o$627072bobo$
627072bo126$627200b2o$627200bobo$627200bo134$627328b2o$627328bobo$
627328bo129$627454b3o$627454bo$627455bo110$627584b2o$627583b2o$627585b
o120$627711b3o$627711bo$627712bo126$627839b3o$627839bo$627840bo129$
627967bo$627966b2o$627966bobo121$628094b3o$628094bo$628095bo116$
628222b3o$628222bo$628223bo145$628352bo$628351b2o$628351bobo123$
628479b3o$628479bo$628480bo129$628607b3o$628607bo$628608bo126$628735b
3o$628735bo$628736bo119$628864bo$628863b2o$628863bobo120$628992bo$
628991b2o$628991bobo137$629119b3o$629119bo$629120bo117$629247bo$
629246b2o$629246bobo134$629375bo$629374b2o$629374bobo129$629503b3o$
629503bo$629504bo131$629630b3o$629630bo$629631bo134$629759b3o$629759bo
$629760bo136$629887b3o$629887bo$629888bo108$630014b3o$630014bo$630015b
o136$630143b3o$630143bo$630144bo126$630270b3o$630270bo$630271bo106$
630398b3o$630398bo$630399bo132$630527b3o$630527bo$630528bo91$630655bo$
630654b2o$630654bobo126$630784bo$630783b2o$630783bobo138$630911b2o$
630911bobo$630911bo114$631040bo$631039b2o$631039bobo128$631168b2o$
631168bobo$631168bo135$631295b2o$631295bobo$631295bo129$631423b2o$
631423bobo$631423bo114$631551b2o$631551bobo$631551bo137$631679b2o$
631679bobo$631679bo136$631807b2o$631807bobo$631807bo115$631935b2o$
631935bobo$631935bo136$632063b2o$632063bobo$632063bo102$632191b2o$
632191bobo$632191bo133$632318b3o$632318bo$632319bo130$632447b3o$
632447bo$632448bo118$632575b3o$632575bo$632576bo122$632703b3o$632703bo
$632704bo135$632832bo$632831b2o$632831bobo128$632960bo$632959b2o$
632959bobo141$633086b3o$633086bo$633087bo129$633216bo$633215b2o$
633215bobo142$633343b3o$633343bo$633344bo128$633470b3o$633470bo$
633471bo118$633598b3o$633598bo$633599bo130$633726b3o$633726bo$633727bo
120$633855b3o$633855bo$633856bo140$633982b3o$633982bo$633983bo135$
634110b3o$634110bo$634111bo126$634238b3o$634238bo$634239bo123$634367bo
$634366b2o$634366bobo118$634496bo$634495b2o$634495bobo134$634623bo$
634622b2o$634622bobo127$634751b3o$634751bo$634752bo142$634878b3o$
634878bo$634879bo108$635008bo$635007b2o$635007bobo122$635136bo$635135b
2o$635135bobo134$635264bo$635263b2o$635263bobo110$635392bo$635391b2o$
635391bobo122$635519bo$635518b2o$635518bobo134$635648bo$635647b2o$
635647bobo142$635775b2o$635775bobo$635775bo120$635903bo$635902b2o$
635902bobo132$636031bo$636030b2o$636030bobo128$636160b2o$636160bobo$
636160bo133$636287b2o$636286b2o$636288bo123$636415b2o$636414b2o$
636416bo128$636543b2o$636542b2o$636544bo93$636672b2o$636672bobo$
636672bo119$636800b2o$636800bobo$636800bo143$636928b2o$636928bobo$
636928bo127$637056b2o$637056bobo$637056bo120$637184b2o$637184bobo$
637184bo116$637312b2o$637311b2o$637313bo130$637440b2o$637440bobo$
637440bo126$637568b2o$637568bobo$637568bo143$637694b3o$637694bo$
637695bo136$637823b2o$637822b2o$637824bo110$637950b3o$637950bo$637951b
o127$638078b3o$638078bo$638079bo151$638206b3o$638206bo$638207bo105$
638334b3o$638334bo$638335bo125$638463bo$638462b2o$638462bobo130$
638592bo$638591b2o$638591bobo134$638720bo$638719b2o$638719bobo116$
638847bo$638846b2o$638846bobo116$638975bo$638974b2o$638974bobo132$
639103bo$639102b2o$639102bobo116$639232bo$639231b2o$639231bobo128$
639360b2o$639359b2o$639361bo129$639488b2o$639487b2o$639489bo119$
639616b2o$639615b2o$639617bo131$639744b2o$639743b2o$639745bo122$
639871b3o$639871bo$639872bo117$640000b2o$639999b2o$640001bo115$640128b
2o$640127b2o$640129bo131$640256b2o$640255b2o$640257bo120$640383b2o$
640383bobo$640383bo123$640511b2o$640511bobo$640511bo130$640639b2o$
640638b2o$640640bo121$640767b2o$640767bobo$640767bo123$640895b2o$
640895bobo$640895bo130$641023b2o$641022b2o$641024bo143$641151b2o$
641151bobo$641151bo130$641279b2o$641279bobo$641279bo136$641407b2o$
641406b2o$641408bo118$641535b2o$641535bobo$641535bo114$641663b2o$
641663bobo$641663bo135$641791b2o$641791bobo$641791bo125$641919b2o$
641919bobo$641919bo137$642047b3o$642047bo$642048bo122$642175b3o$
642175bo$642176bo134$642303b3o$642303bo$642304bo114$642431b3o$642431bo
$642432bo117$642559bo$642558b2o$642558bobo166$642687bo$642686b2o$
642686bobo130$642816bo$642815b2o$642815bobo122$642943bo$642942b2o$
642942bobo112$643072bo$643071b2o$643071bobo119$643198b3o$643198bo$
643199bo132$643326b3o$643326bo$643327bo117$643455b2o$643455bobo$
643455bo123$643583b2o$643583bobo$643583bo118$643711b2o$643711bobo$
643711bo135$643839b2o$643839bobo$643839bo125$643967b2o$643967bobo$
643967bo120$644095b2o$644094b2o$644096bo129$644223b2o$644223bobo$
644223bo141$644351b2o$644351bobo$644351bo174$644479b3o$644479bo$
644480bo126$644607b3o$644607bo$644608bo110$644734b3o$644734bo$644735bo
140$644862b3o$644862bo$644863bo130$644990b3o$644990bo$644991bo122$
645118b3o$645118bo$645119bo119$645247bo$645246b2o$645246bobo119$
645374b3o$645374bo$645375bo116$645503b3o$645503bo$645504bo122$645631b
3o$645631bo$645632bo134$645759b3o$645759bo$645760bo117$645888bo$
645887b2o$645887bobo126$646015bo$646014b2o$646014bobo114$646144bo$
646143b2o$646143bobo146$646272bo$646271b2o$646271bobo115$646398b3o$
646398bo$646399bo113$646528bo$646527b2o$646527bobo103$646655b2o$
646654b2o$646656bo113$646783bo$646782b2o$646782bobo126$646912bo$
646911b2o$646911bobo140$647040bo$647039b2o$647039bobo124$647168bo$
647167b2o$647167bobo122$647296b2o$647296bobo$647296bo115$647423bo$
647422b2o$647422bobo134$647552bo$647551b2o$647551bobo112$647680bo$
647679b2o$647679bobo126$647807bo$647806b2o$647806bobo108$647935bo$
647934b2o$647934bobo150$648064b2o$648064bobo$648064bo107$648192b2o$
648192bobo$648192bo123$648320b2o$648320bobo$648320bo128$648448b2o$
648448bobo$648448bo109$648576b2o$648575b2o$648577bo136$648704b2o$
648704bobo$648704bo126$648832b2o$648832bobo$648832bo136$648960b2o$
648960bobo$648960bo151$649086b3o$649086bo$649087bo155$649216b2o$
649216bobo$649216bo124$649343b2o$649343bobo$649343bo124$649471b2o$
649471bobo$649471bo130$649599b2o$649599bobo$649599bo136$649727b2o$
649727bobo$649727bo122$649855b2o$649855bobo$649855bo129$649983b2o$
649983bobo$649983bo109$650111b2o$650111bobo$650111bo132$650239b2o$
650239bobo$650239bo115$650367b2o$650367bobo$650367bo143$650495bo$
650494b2o$650494bobo122$650623bo$650622b2o$650622bobo126$650752b2o$
650752bobo$650752bo136$650879b2o$650879bobo$650879bo132$651008b2o$
651008bobo$651008bo104$651135bo$651134b2o$651134bobo124$651264b2o$
651264bobo$651264bo113$651391b3o$651391bo$651392bo108$651518b3o$
651518bo$651519bo126$651647b3o$651647bo$651648bo132$651775b3o$651775bo
$651776bo135$651904bo$651903b2o$651903bobo123$652031b3o$652031bo$
652032bo126$652159b3o$652159bo$652160bo118$652288b2o$652288bobo$
652288bo133$652416b2o$652416bobo$652416bo120$652544b2o$652544bobo$
652544bo123$652672b2o$652672bobo$652672bo119$652800b2o$652800bobo$
652800bo116$652928b2o$652928bobo$652928bo164$653056b2o$653056bobo$
653056bo116$653184b2o$653184bobo$653184bo126$653312b2o$653311b2o$
653313bo127$653440b2o$653439b2o$653441bo130$653567b3o$653567bo$653568b
o118$653695b3o$653695bo$653696bo132$653823b3o$653823bo$653824bo134$
653952b2o$653951b2o$653953bo128$654079b3o$654079bo$654080bo119$654208b
2o$654208bobo$654208bo123$654336b2o$654336bobo$654336bo128$654464b2o$
654464bobo$654464bo120$654592b2o$654592bobo$654592bo134$654720b2o$
654720bobo$654720bo120$654848b2o$654848bobo$654848bo121$654976bo$
654975b2o$654975bobo201$655102b3o$655102bo$655103bo163$655231b3o$
655231bo$655232bo145$655359b3o$655359bo$655360bo128$655486b3o$655486bo
$655487bo118$655614b3o$655614bo$655615bo120$655743b3o$655743bo$655744b
o150$655871b3o$655871bo$655872bo118$655998b3o$655998bo$655999bo124$
656127b2o$656126b2o$656128bo130$656255b2o$656254b2o$656256bo113$
656382b3o$656382bo$656383bo134$656510b3o$656510bo$656511bo129$656638b
3o$656638bo$656639bo120$656766b3o$656766bo$656767bo120$656895b2o$
656894b2o$656896bo144$657023b3o$657023bo$657024bo122$657150b3o$657150b
o$657151bo132$657279b3o$657279bo$657280bo125$657408bo$657407b2o$
657407bobo113$657534b3o$657534bo$657535bo120$657662b3o$657662bo$
657663bo121$657791bo$657790b2o$657790bobo150$657919bo$657918b2o$
657918bobo121$658047b3o$658047bo$658048bo127$658176b2o$658175b2o$
658177bo119$658304b2o$658303b2o$658305bo129$658432b2o$658431b2o$
658433bo128$658560b2o$658559b2o$658561bo133$658688b2o$658687b2o$
658689bo128$658816b2o$658815b2o$658817bo134$658944b2o$658943b2o$
658945bo124$659072b2o$659071b2o$659073bo116$659200b2o$659199b2o$
659201bo117$659327b3o$659327bo$659328bo110$659455bo$659454b2o$659454bo
bo186$659584b2o$659583b2o$659585bo140$659712b2o$659712bobo$659712bo
122$659839b3o$659839bo$659840bo118$659967b3o$659967bo$659968bo131$
660095b3o$660095bo$660096bo117$660223b3o$660223bo$660224bo132$660352b
2o$660351b2o$660353bo132$660479b3o$660479bo$660480bo123$660608b2o$
660607b2o$660609bo166$660735bo$660734b2o$660734bobo124$660864bo$
660863b2o$660863bobo118$660991bo$660990b2o$660990bobo134$661119bo$
661118b2o$661118bobo128$661247bo$661246b2o$661246bobo128$661375bo$
661374b2o$661374bobo128$661503b2o$661503bobo$661503bo120$661632b2o$
661631b2o$661633bo123$661760b2o$661759b2o$661761bo118$661888b2o$
661887b2o$661889bo129$662015b3o$662015bo$662016bo123$662143b3o$662143b
o$662144bo131$662271b3o$662271bo$662272bo125$662400b2o$662399b2o$
662401bo142$662527b3o$662527bo$662528bo126$662655b3o$662655bo$662656bo
124$662783b3o$662783bo$662784bo126$662911b3o$662911bo$662912bo116$
663039b3o$663039bo$663040bo126$663167b3o$663167bo$663168bo128$663295b
3o$663295bo$663296bo120$663423b3o$663423bo$663424bo140$663550b3o$
663550bo$663551bo121$663680bo$663679b2o$663679bobo119$663807b3o$
663807bo$663808bo122$663934b3o$663934bo$663935bo140$664062b3o$664062bo
$664063bo117$664191b2o$664190b2o$664192bo123$664319b2o$664318b2o$
664320bo124$664446b3o$664446bo$664447bo118$664575b2o$664574b2o$664576b
o144$664703b2o$664702b2o$664704bo132$664831b2o$664830b2o$664832bo116$
664958b3o$664958bo$664959bo126$665088bo$665087b2o$665087bobo132$
665215bo$665214b2o$665214bobo128$665343bo$665342b2o$665342bobo108$
665472bo$665471b2o$665471bobo138$665600b2o$665600bobo$665600bo130$
665727b2o$665727bobo$665727bo142$665856b2o$665856bobo$665856bo120$
665984bo$665983b2o$665983bobo124$666112bo$666111b2o$666111bobo118$
666239b2o$666238b2o$666240bo130$666367b2o$666366b2o$666368bo134$
666495b2o$666494b2o$666496bo130$666623b2o$666622b2o$666624bo130$
666751b2o$666750b2o$666752bo134$666879b2o$666878b2o$666880bo126$
667008b2o$667008bobo$667008bo119$667136b2o$667136bobo$667136bo143$
667264b2o$667264bobo$667264bo127$667392b2o$667392bobo$667392bo120$
667520b2o$667520bobo$667520bo116$667648b2o$667647b2o$667649bo130$
667776b2o$667776bobo$667776bo126$667904b2o$667904bobo$667904bo97$
668030b3o$668030bo$668031bo134$668159b3o$668159bo$668160bo108$668286b
3o$668286bo$668287bo126$668415b3o$668415bo$668416bo132$668543b3o$
668543bo$668544bo135$668672bo$668671b2o$668671bobo123$668799b3o$
668799bo$668800bo126$668927b3o$668927bo$668928bo191$669055b2o$669055bo
bo$669055bo147$669182b3o$669182bo$669183bo160$669310b3o$669310bo$
669311bo130$669439b3o$669439bo$669440bo124$669567b3o$669567bo$669568bo
145$669696b2o$669696bobo$669696bo121$669822b3o$669822bo$669823bo122$
669951b3o$669951bo$669952bo112$670078b3o$670078bo$670079bo139$670207b
2o$670206b2o$670208bo134$670335b2o$670334b2o$670336bo114$670463b2o$
670462b2o$670464bo133$670590b3o$670590bo$670591bo133$670718b3o$670718b
o$670719bo156$670847b2o$670846b2o$670848bo126$670975b2o$670974b2o$
670976bo122$671103b2o$671102b2o$671104bo144$671231b2o$671230b2o$
671232bo128$671358b3o$671358bo$671359bo121$671487b2o$671486b2o$671488b
o104$671615b2o$671614b2o$671616bo130$671742b3o$671742bo$671743bo126$
671870b3o$671870bo$671871bo135$671998b3o$671998bo$671999bo137$672127b
3o$672127bo$672128bo124$672254b3o$672254bo$672255bo125$672384bo$
672383b2o$672383bobo138$672511bo$672510b2o$672510bobo122$672640bo$
672639b2o$672639bobo115$672766b3o$672766bo$672767bo96$672894b3o$
672894bo$672895bo125$673023b2o$673022b2o$673024bo129$673150b3o$673150b
o$673151bo111$673279b3o$673279bo$673280bo124$673406b3o$673406bo$
673407bo115$673535bo$673534b2o$673534bobo143$673662b3o$673662bo$
673663bo133$673792bo$673791b2o$673791bobo120$673919bo$673918b2o$
673918bobo129$674047b3o$674047bo$674048bo132$674174b3o$674174bo$
674175bo111$674303bo$674302b2o$674302bobo129$674432b2o$674431b2o$
674433bo127$674560b2o$674559b2o$674561bo114$674687b3o$674687bo$674688b
o138$674816b2o$674815b2o$674817bo125$674943b3o$674943bo$674944bo89$
675071bo$675070b2o$675070bobo116$675199bo$675198b2o$675198bobo134$
675328bo$675327b2o$675327bobo116$675455b2o$675455bobo$675455bo134$
675583b2o$675583bobo$675583bo130$675712bo$675711b2o$675711bobo124$
675839bo$675838b2o$675838bobo128$675968b2o$675968bobo$675968bo143$
676095b3o$676095bo$676096bo125$676223b2o$676223bobo$676223bo129$
676351b2o$676351bobo$676351bo119$676479b2o$676479bobo$676479bo131$
676607b2o$676607bobo$676607bo122$676735b2o$676734b2o$676736bo103$
676863b2o$676863bobo$676863bo140$676991b2o$676991bobo$676991bo184$
677120bo$677119b2o$677119bobo129$677247bo$677246b2o$677246bobo131$
677374b3o$677374bo$677375bo123$677503b2o$677503bobo$677503bo129$
677631b2o$677631bobo$677631bo126$677759b2o$677759bobo$677759bo117$
677887b2o$677886b2o$677888bo127$678015b2o$678014b2o$678016bo136$
678143b2o$678142b2o$678144bo119$678271b2o$678270b2o$678272bo128$
678399b2o$678398b2o$678400bo127$678527b2o$678526b2o$678528bo132$
678655b2o$678654b2o$678656bo157$678784b2o$678784bobo$678784bo119$
678912b2o$678912bobo$678912bo141$679040b2o$679040bobo$679040bo106$
679168b2o$679167b2o$679169bo127$679295b3o$679295bo$679296bo128$679422b
3o$679422bo$679423bo124$679550b3o$679550bo$679551bo134$679679b3o$
679679bo$679680bo116$679807b3o$679807bo$679808bo109$679935b3o$679935bo
$679936bo124$680062b3o$680062bo$680063bo140$680190b3o$680190bo$680191b
o118$680319b3o$680319bo$680320bo119$680448bo$680447b2o$680447bobo120$
680575bo$680574b2o$680574bobo140$680704bo$680703b2o$680703bobo135$
680830b3o$680830bo$680831bo122$680959b3o$680959bo$680960bo138$681087b
3o$681087bo$681088bo130$681215b2o$681215bobo$681215bo137$681343b2o$
681343bobo$681343bo116$681471b2o$681471bobo$681471bo111$681600bo$
681599b2o$681599bobo128$681727bo$681726b2o$681726bobo126$681855bo$
681854b2o$681854bobo122$681984bo$681983b2o$681983bobo126$682111b2o$
682111bobo$682111bo122$682239b2o$682239bobo$682239bo116$682367b2o$
682367bobo$682367bo138$682495b2o$682495bobo$682495bo126$682623b2o$
682623bobo$682623bo138$682751b2o$682751bobo$682751bo136$682878b3o$
682878bo$682879bo126$683006b3o$683006bo$683007bo113$683135bo$683134b2o
$683134bobo139$683263b3o$683263bo$683264bo125$683391bo$683390b2o$
683390bobo108$683520b2o$683519b2o$683521bo130$683648b2o$683647b2o$
683649bo118$683776b2o$683775b2o$683777bo134$683903b3o$683903bo$683904b
o125$684031b3o$684031bo$684032bo131$684159b3o$684159bo$684160bo122$
684287b3o$684287bo$684288bo126$684416b2o$684415b2o$684417bo130$684544b
2o$684543b2o$684545bo136$684671b3o$684671bo$684672bo118$684799b3o$
684799bo$684800bo131$684927b3o$684927bo$684928bo106$685055b3o$685055bo
$685056bo130$685183b3o$685183bo$685184bo119$685312b2o$685311b2o$
685313bo123$685440b2o$685439b2o$685441bo118$685568b2o$685568bobo$
685568bo124$685696b2o$685695b2o$685697bo144$685824b2o$685823b2o$
685825bo126$685952b2o$685951b2o$685953bo123$686080b2o$686079b2o$
686081bo116$686207bo$686206b2o$686206bobo122$686335bo$686334b2o$
686334bobo117$686462b3o$686462bo$686463bo134$686590b3o$686590bo$
686591bo122$686719b3o$686719bo$686720bo137$686848bo$686847b2o$686847bo
bo127$686974b3o$686974bo$686975bo158$687102b3o$687102bo$687103bo134$
687231b3o$687231bo$687232bo114$687359b3o$687359bo$687360bo118$687487b
2o$687486b2o$687488bo132$687614b3o$687614bo$687615bo124$687743b2o$
687742b2o$687744bo142$687872b2o$687871b2o$687873bo116$687999b3o$
687999bo$688000bo142$688127b3o$688127bo$688128bo126$688256b2o$688256bo
bo$688256bo127$688384b2o$688384bobo$688384bo125$688511bo$688510b2o$
688510bobo113$688639bo$688638b2o$688638bobo124$688768b2o$688768bobo$
688768bo114$688895bo$688894b2o$688894bobo126$689023bo$689022b2o$
689022bobo134$689151bo$689150b2o$689150bobo133$689279b2o$689279bobo$
689279bo133$689407b2o$689407bobo$689407bo93$689535bo$689534b2o$689534b
obo124$689664bo$689663b2o$689663bobo130$689791bo$689790b2o$689790bobo
127$689918b3o$689918bo$689919bo133$690048bo$690047b2o$690047bobo105$
690175b3o$690175bo$690176bo120$690303b3o$690303bo$690304bo144$690430b
3o$690430bo$690431bo122$690559b3o$690559bo$690560bo144$690686b3o$
690686bo$690687bo127$690815b3o$690815bo$690816bo128$690943b2o$690943bo
bo$690943bo142$691071b2o$691071bobo$691071bo131$691199b3o$691199bo$
691200bo134$691326b3o$691326bo$691327bo126$691454b3o$691454bo$691455bo
120$691582b3o$691582bo$691583bo136$691710b3o$691710bo$691711bo128$
691840bo$691839b2o$691839bobo116$691968bo$691967b2o$691967bobo132$
692095bo$692094b2o$692094bobo118$692224b2o$692224bobo$692224bo134$
692352b2o$692352bobo$692352bo128$692479bo$692478b2o$692478bobo126$
692608bo$692607b2o$692607bobo126$692735b2o$692735bobo$692735bo91$
692864bo$692863b2o$692863bobo126$692991bo$692990b2o$692990bobo130$
693120bo$693119b2o$693119bobo132$693247b2o$693247bobo$693247bo116$
693376bo$693375b2o$693375bobo136$693503bo$693502b2o$693502bobo124$
693632bo$693631b2o$693631bobo130$693759bo$693758b2o$693758bobo124$
693888bo$693887b2o$693887bobo126$694015bo$694014b2o$694014bobo106$
694143b3o$694143bo$694144bo134$694272b2o$694272bobo$694272bo134$
694400b2o$694400bobo$694400bo130$694528b2o$694528bobo$694528bo119$
694656b2o$694655b2o$694657bo119$694784b2o$694783b2o$694785bo125$
694912b2o$694911b2o$694913bo133$695040b2o$695039b2o$695041bo124$
695168b2o$695168bobo$695168bo136$695296b2o$695296bobo$695296bo121$
695424b2o$695424bobo$695424bo131$695552b2o$695552bobo$695552bo123$
695680b2o$695679b2o$695681bo119$695808b2o$695808bobo$695808bo99$
695935b2o$695934b2o$695936bo130$696063b2o$696062b2o$696064bo134$
696191b2o$696190b2o$696192bo114$696318b3o$696318bo$696319bo130$696447b
2o$696446b2o$696448bo137$696575b2o$696574b2o$696576bo150$696704b2o$
696704bobo$696704bo125$696830b3o$696830bo$696831bo130$696959b3o$
696959bo$696960bo124$697087b3o$697087bo$697088bo132$697215b3o$697215bo
$697216bo119$697343bo$697342b2o$697342bobo138$697472bo$697471b2o$
697471bobo110$697599bo$697598b2o$697598bobo94$697726b3o$697726bo$
697727bo116$697854b3o$697854bo$697855bo130$697983b2o$697982b2o$697984b
o139$698111b2o$698110b2o$698112bo129$698239b2o$698238b2o$698240bo119$
698367b2o$698366b2o$698368bo131$698495b2o$698494b2o$698496bo128$
698623b2o$698622b2o$698624bo119$698751b2o$698750b2o$698752bo129$
698879b2o$698879bobo$698879bo130$699007b2o$699007bobo$699007bo108$
699134b3o$699134bo$699135bo126$699263b3o$699263bo$699264bo136$699391b
3o$699391bo$699392bo124$699519b3o$699519bo$699520bo94$699647b3o$
699647bo$699648bo124$699775b3o$699775bo$699776bo132$699903b3o$699903bo
$699904bo120$700030b3o$700030bo$700031bo126$700159b3o$700159bo$700160b
o124$700286b3o$700286bo$700287bo140$700414b3o$700414bo$700415bo118$
700543b3o$700543bo$700544bo119$700672bo$700671b2o$700671bobo120$
700799bo$700798b2o$700798bobo140$700928bo$700927b2o$700927bobo135$
701054b3o$701054bo$701055bo122$701183b3o$701183bo$701184bo138$701311b
3o$701311bo$701312bo129$701440b2o$701440bobo$701440bo137$701568b2o$
701568bobo$701568bo116$701696b2o$701696bobo$701696bo101$701823b2o$
701823bobo$701823bo119$701951b2o$701951bobo$701951bo124$702079b2o$
702079bobo$702079bo145$702207b2o$702207bobo$702207bo115$702335b2o$
702334b2o$702336bo120$702463b2o$702463bobo$702463bo119$702591b2o$
702590b2o$702592bo129$702719b2o$702719bobo$702719bo126$702847b2o$
702847bobo$702847bo184$702975b2o$702974b2o$702976bo136$703103b2o$
703102b2o$703104bo128$703231b2o$703231bobo$703231bo121$703359b2o$
703359bobo$703359bo123$703487b2o$703487bobo$703487bo128$703615b2o$
703615bobo$703615bo162$703744b2o$703744bobo$703744bo122$703872b2o$
703872bobo$703872bo130$704000b2o$703999b2o$704001bo121$704128b2o$
704128bobo$704128bo123$704256b2o$704256bobo$704256bo130$704384b2o$
704383b2o$704385bo121$704512b2o$704512bobo$704512bo130$704640b2o$
704640bobo$704640bo124$704768b2o$704768bobo$704768bo123$704896b2o$
704896bobo$704896bo100$705024b2o$705024bobo$705024bo130$705152b2o$
705152bobo$705152bo124$705280b2o$705280bobo$705280bo142$705408b2o$
705407b2o$705409bo107$705536b2o$705536bobo$705536bo100$705664b2o$
705663b2o$705665bo134$705792b2o$705791b2o$705793bo118$705920b2o$
705919b2o$705921bo101$706047b3o$706047bo$706048bo132$706175b3o$706175b
o$706176bo133$706303b3o$706303bo$706304bo114$706432b2o$706431b2o$
706433bo123$706560b2o$706559b2o$706561bo118$706688b2o$706688bobo$
706688bo124$706816b2o$706815b2o$706817bo144$706944b2o$706943b2o$
706945bo126$707072b2o$707071b2o$707073bo123$707200b2o$707199b2o$
707201bo116$707327bo$707326b2o$707326bobo122$707455bo$707454b2o$
707454bobo117$707582b3o$707582bo$707583bo134$707710b3o$707710bo$
707711bo122$707839b3o$707839bo$707840bo137$707968bo$707967b2o$707967bo
bo127$708094b3o$708094bo$708095bo158$708222b3o$708222bo$708223bo134$
708351b3o$708351bo$708352bo114$708479b3o$708479bo$708480bo118$708607b
2o$708606b2o$708608bo132$708734b3o$708734bo$708735bo124$708863b2o$
708862b2o$708864bo142$708992b2o$708991b2o$708993bo116$709119b3o$
709119bo$709120bo142$709247b3o$709247bo$709248bo126$709376b2o$709376bo
bo$709376bo127$709504b2o$709504bobo$709504bo125$709631bo$709630b2o$
709630bobo113$709759bo$709758b2o$709758bobo124$709888b2o$709888bobo$
709888bo114$710015bo$710014b2o$710014bobo126$710143bo$710142b2o$
710142bobo134$710271bo$710270b2o$710270bobo107$710399bo$710398b2o$
710398bobo124$710528bo$710527b2o$710527bobo130$710655bo$710654b2o$
710654bobo127$710782b3o$710782bo$710783bo133$710912bo$710911b2o$
710911bobo105$711039b3o$711039bo$711040bo120$711167b3o$711167bo$
711168bo144$711294b3o$711294bo$711295bo122$711423b3o$711423bo$711424bo
144$711550b3o$711550bo$711551bo127$711679b3o$711679bo$711680bo169$
711808b2o$711807b2o$711809bo131$711936b2o$711935b2o$711937bo140$
712064b2o$712063b2o$712065bo92$712192b2o$712191b2o$712193bo131$712320b
2o$712319b2o$712321bo136$712448b2o$712447b2o$712449bo107$712576b2o$
712575b2o$712577bo118$712704b2o$712703b2o$712705bo117$712831b2o$
712831bobo$712831bo109$712959b3o$712959bo$712960bo134$713087b2o$
713087bobo$713087bo126$713215b2o$713215bobo$713215bo128$713343b2o$
713343bobo$713343bo120$713471b2o$713471bobo$713471bo141$713599b2o$
713599bobo$713599bo121$713727b2o$713726b2o$713728bo127$713855b2o$
713855bobo$713855bo123$713983b2o$713983bobo$713983bo126$714111b2o$
714111bobo$714111bo127$714239b3o$714239bo$714240bo122$714367b3o$
714367bo$714368bo119$714496bo$714495b2o$714495bobo127$714622b3o$
714622bo$714623bo124$714750b3o$714750bo$714751bo147$714879bo$714878b2o
$714878bobo124$715008bo$715007b2o$715007bobo130$715135bo$715134b2o$
715134bobo114$715264bo$715263b2o$715263bobo128$715391bo$715390b2o$
715390bobo136$715520bo$715519b2o$715519bobo118$715647b2o$715647bobo$
715647bo118$715775b2o$715775bobo$715775bo126$715903b2o$715902b2o$
715904bo134$716031b2o$716030b2o$716032bo128$716159b2o$716158b2o$
716160bo107$716287b2o$716286b2o$716288bo137$716414b3o$716414bo$716415b
o119$716543b2o$716542b2o$716544bo146$716671b2o$716670b2o$716672bo117$
716799b2o$716798b2o$716800bo126$716926b3o$716926bo$716927bo104$717055b
2o$717055bobo$717055bo130$717183b2o$717183bobo$717183bo130$717311b2o$
717310b2o$717312bo136$717439b2o$717438b2o$717440bo128$717567b2o$
717567bobo$717567bo121$717695b2o$717695bobo$717695bo123$717823b2o$
717823bobo$717823bo128$717951b2o$717951bobo$717951bo169$718079b2o$
718079bobo$718079bo122$718207b2o$718207bobo$718207bo130$718335b2o$
718334b2o$718336bo130$718463b2o$718463bobo$718463bo122$718591b2o$
718591bobo$718591bo130$718719b2o$718718b2o$718720bo130$718847b2o$
718847bobo$718847bo122$718975b2o$718975bobo$718975bo130$719103b2o$
719102b2o$719104bo121$719231b2o$719231bobo$719231bo123$719359b2o$
719359bobo$719359bo130$719487b2o$719486b2o$719488bo121$719615b2o$
719615bobo$719615bo123$719743b2o$719743bobo$719743bo130$719871b2o$
719870b2o$719872bo121$719999b2o$719999bobo$719999bo123$720127b2o$
720127bobo$720127bo130$720255b2o$720254b2o$720256bo121$720383b2o$
720383bobo$720383bo123$720511b2o$720511bobo$720511bo130$720639b2o$
720638b2o$720640bo121$720767b2o$720767bobo$720767bo119$720895b2o$
720895bobo$720895bo134$721023b2o$721023bobo$721023bo139$721151b2o$
721151bobo$721151bo119$721279b2o$721279bobo$721279bo136$721407b2o$
721407bobo$721407bo121$721535b2o$721535bobo$721535bo105$721663b2o$
721663bobo$721663bo137$721791b2o$721791bobo$721791bo116$721919b2o$
721919bobo$721919bo166$722048b2o$722048bobo$722048bo131$722176b2o$
722176bobo$722176bo113$722304b2o$722303b2o$722305bo116$722432b2o$
722432bobo$722432bo146$722560b2o$722560bobo$722560bo109$722688b2o$
722688bobo$722688bo115$722815b2o$722815bobo$722815bo126$722943b2o$
722943bobo$722943bo132$723071b2o$723070b2o$723072bo132$723199b2o$
723198b2o$723200bo116$723327b2o$723327bobo$723327bo133$723455b2o$
723454b2o$723456bo118$723583b2o$723582b2o$723584bo125$723711b2o$
723711bobo$723711bo89$723840b2o$723840bobo$723840bo123$723968b2o$
723968bobo$723968bo122$724096b2o$724095b2o$724097bo138$724224b2o$
724223b2o$724225bo136$724352b2o$724351b2o$724353bo122$724479bo$724478b
2o$724478bobo134$724608bo$724607b2o$724607bobo118$724735bo$724734b2o$
724734bobo110$724864b2o$724864bobo$724864bo140$724991bo$724990b2o$
724990bobo122$725119bo$725118b2o$725118bobo128$725247b2o$725247bobo$
725247bo122$725375bo$725374b2o$725374bobo124$725504bo$725503b2o$
725503bobo129$725631b3o$725631bo$725632bo132$725758b3o$725758bo$
725759bo126$725886b3o$725886bo$725887bo128$726014b3o$726014bo$726015bo
106$726142b3o$726142bo$726143bo116$726272b2o$726272bobo$726272bo164$
726399b3o$726399bo$726400bo128$726527b3o$726527bo$726528bo125$726656b
2o$726656bobo$726656bo134$726784b2o$726784bobo$726784bo119$726912b2o$
726912bobo$726912bo118$727040b2o$727040bobo$727040bo135$727168b2o$
727168bobo$727168bo141$727296b2o$727295b2o$727297bo120$727423b3o$
727423bo$727424bo128$727550b3o$727550bo$727551bo164$727680b2o$727680bo
bo$727680bo116$727807b2o$727806b2o$727808bo136$727935b2o$727934b2o$
727936bo121$728063b2o$728062b2o$728064bo121$728191b2o$728190b2o$
728192bo134$728319b2o$728318b2o$728320bo130$728446b3o$728446bo$728447b
o119$728574b3o$728574bo$728575bo135$728704bo$728703b2o$728703bobo128$
728831bo$728830b2o$728830bobo149$728959b3o$728959bo$728960bo125$
729087b3o$729087bo$729088bo128$729214b3o$729214bo$729215bo133$729344bo
$729343b2o$729343bobo113$729470b3o$729470bo$729471bo153$729599bo$
729598b2o$729598bobo130$729727bo$729726b2o$729726bobo139$729854b3o$
729854bo$729855bo136$729984b2o$729984bobo$729984bo115$730112b2o$
730112bobo$730112bo136$730240b2o$730240bobo$730240bo163$730368b2o$
730368bobo$730368bo134$730496bo$730495b2o$730495bobo128$730623bo$
730622b2o$730622bobo124$730751bo$730750b2o$730750bobo138$730880b2o$
730880bobo$730880bo122$731007b2o$731007bobo$731007bo136$731135b2o$
731135bobo$731135bo125$731263bo$731262b2o$731262bobo126$731392bo$
731391b2o$731391bobo140$731519bo$731518b2o$731518bobo130$731647b2o$
731647bobo$731647bo118$731776b2o$731776bobo$731776bo134$731904bo$
731903b2o$731903bobo108$732032b2o$732032bobo$732032bo124$732160b2o$
732160bobo$732160bo138$732288b2o$732288bobo$732288bo130$732415b2o$
732415bobo$732415bo133$732543b2o$732542b2o$732544bo130$732671b2o$
732670b2o$732672bo130$732799b2o$732798b2o$732800bo125$732927b2o$
732926b2o$732928bo128$733055b2o$733054b2o$733056bo132$733184b2o$
733183b2o$733185bo117$733312b2o$733311b2o$733313bo131$733440b2o$
733439b2o$733441bo131$733568b2o$733567b2o$733569bo99$733694b3o$733694b
o$733695bo136$733824b2o$733823b2o$733825bo124$733952b2o$733951b2o$
733953bo161$734079b2o$734078b2o$734080bo127$734207b2o$734206b2o$
734208bo111$734335b2o$734334b2o$734336bo137$734463b2o$734462b2o$
734464bo129$734591b2o$734590b2o$734592bo108$734718b3o$734718bo$734719b
o130$734846b3o$734846bo$734847bo118$734976b2o$734975b2o$734977bo136$
735104b2o$735103b2o$735105bo113$735232b2o$735231b2o$735233bo138$
735360b2o$735359b2o$735361bo118$735487b3o$735487bo$735488bo136$735616b
2o$735615b2o$735617bo114$735743b3o$735743bo$735744bo135$735872b2o$
735871b2o$735873bo123$736000b2o$735999b2o$736001bo134$736128b2o$
736127b2o$736129bo118$736255b3o$736255bo$736256bo127$736383b3o$736383b
o$736384bo121$736511b3o$736511bo$736512bo119$736639b2o$736639bobo$
736639bo126$736767b2o$736767bobo$736767bo140$736895b2o$736895bobo$
736895bo124$737023b2o$737023bobo$737023bo121$737151b2o$737150b2o$
737152bo118$737279b2o$737279bobo$737279bo158$737407b2o$737406b2o$
737408bo119$737535b2o$737534b2o$737536bo130$737663b2o$737662b2o$
737664bo126$737791b2o$737790b2o$737792bo127$737918b3o$737918bo$737919b
o130$738046b3o$738046bo$738047bo130$738175b2o$738174b2o$738176bo101$
738302b3o$738302bo$738303bo130$738431b3o$738431bo$738432bo124$738558b
3o$738558bo$738559bo121$738687bo$738686b2o$738686bobo142$738815bo$
738814b2o$738814bobo125$738942b3o$738942bo$738943bo137$739071bo$
739070b2o$739070bobo123$739199b3o$739199bo$739200bo115$739328bo$
739327b2o$739327bobo122$739455bo$739454b2o$739454bobo138$739583bo$
739582b2o$739582bobo112$739712bo$739711b2o$739711bobo124$739840b2o$
739840bobo$739840bo130$739967b3o$739967bo$739968bo144$740096b2o$
740096bobo$740096bo110$740222b3o$740222bo$740223bo124$740350b3o$
740350bo$740351bo144$740479b3o$740479bo$740480bo126$740607b3o$740607bo
$740608bo127$740734b3o$740734bo$740735bo124$740863b3o$740863bo$740864b
o132$740990b3o$740990bo$740991bo142$741118b3o$741118bo$741119bo124$
741247b3o$741247bo$741248bo132$741374b3o$741374bo$741375bo130$741503b
3o$741503bo$741504bo118$741631b3o$741631bo$741632bo136$741758b3o$
741758bo$741759bo156$741888b2o$741888bobo$741888bo123$742016b2o$
742016bobo$742016bo118$742144b2o$742143b2o$742145bo129$742272b2o$
742272bobo$742272bo136$742400b2o$742399b2o$742401bo117$742528b2o$
742527b2o$742529bo136$742656b2o$742656bobo$742656bo112$742784b2o$
742784bobo$742784bo130$742911b2o$742910b2o$742912bo136$743039b2o$
743038b2o$743040bo117$743167b2o$743166b2o$743168bo123$743295b2o$
743294b2o$743296bo123$743423b2o$743422b2o$743424bo127$743550b3o$
743550bo$743551bo122$743679b2o$743678b2o$743680bo89$743807b3o$743807bo
$743808bo118$743935b3o$743935bo$743936bo95$744063b3o$744063bo$744064bo
136$744191b3o$744191bo$744192bo126$744319b3o$744319bo$744320bo123$
744448bo$744447b2o$744447bobo116$744575bo$744574b2o$744574bobo136$
744704bo$744703b2o$744703bobo125$744830b3o$744830bo$744831bo144$
744959b3o$744959bo$744960bo125$745088b2o$745087b2o$745089bo123$745216b
2o$745215b2o$745217bo117$745344b2o$745343b2o$745345bo151$745472b2o$
745471b2o$745473bo115$745600b2o$745599b2o$745601bo122$745727b3o$
745727bo$745728bo158$745855b3o$745855bo$745856bo125$745982b3o$745982bo
$745983bo130$746111b3o$746111bo$746112bo129$746239bo$746238b2o$746238b
obo119$746367b3o$746367bo$746368bo114$746495b3o$746495bo$746496bo133$
746623bo$746622b2o$746622bobo136$746752bo$746751b2o$746751bobo120$
746879bo$746878b2o$746878bobo122$747008bo$747007b2o$747007bobo142$
747135bo$747134b2o$747134bobo126$747264b2o$747264bobo$747264bo130$
747391b2o$747391bobo$747391bo126$747520bo$747519b2o$747519bobo132$
747647bo$747646b2o$747646bobo120$747776bo$747775b2o$747775bobo118$
747904bo$747903b2o$747903bobo101$748032b2o$748032bobo$748032bo97$
748158b3o$748158bo$748159bo136$748287b3o$748287bo$748288bo118$748414b
3o$748414bo$748415bo132$748543b3o$748543bo$748544bo137$748671bo$
748670b2o$748670bobo146$748799b2o$748798b2o$748800bo119$748927b2o$
748926b2o$748928bo124$749055b2o$749054b2o$749056bo145$749183b2o$
749182b2o$749184bo115$749310b3o$749310bo$749311bo111$749438b3o$749438b
o$749439bo120$749566b3o$749566bo$749567bo130$749695b2o$749694b2o$
749696bo119$749823b2o$749822b2o$749824bo106$749950b3o$749950bo$749951b
o105$750079bo$750078b2o$750078bobo135$750206b3o$750206bo$750207bo136$
750335b3o$750335bo$750336bo122$750463b3o$750463bo$750464bo117$750592bo
$750591b2o$750591bobo133$750719b3o$750719bo$750720bo130$750846b3o$
750846bo$750847bo123$750975bo$750974b2o$750974bobo128$751103bo$751102b
2o$751102bobo129$751230b3o$751230bo$751231bo103$751359b2o$751359bobo$
751359bo126$751487b2o$751487bobo$751487bo123$751615b2o$751615bobo$
751615bo130$751743b2o$751742b2o$751744bo121$751871b2o$751871bobo$
751871bo134$751999b2o$751999bobo$751999bo112$752127b2o$752127bobo$
752127bo126$752255b2o$752255bobo$752255bo122$752383b2o$752383bobo$
752383bo107$752511b2o$752511bobo$752511bo116$752640bo$752639b2o$
752639bobo122$752767bo$752766b2o$752766bobo126$752895bo$752894b2o$
752894bobo124$753023b2o$753023bobo$753023bo136$753151b2o$753151bobo$
753151bo134$753279bo$753278b2o$753278bobo110$753407b2o$753407bobo$
753407bo122$753536bo$753535b2o$753535bobo134$753664b2o$753664bobo$
753664bo117$753792b2o$753792bobo$753792bo117$753920b2o$753920bobo$
753920bo131$754048b2o$754048bobo$754048bo131$754176b2o$754176bobo$
754176bo120$754304b2o$754303b2o$754305bo119$754432b2o$754431b2o$
754433bo127$754559b3o$754559bo$754560bo126$754687b3o$754687bo$754688bo
117$754816bo$754815b2o$754815bobo124$754943bo$754942b2o$754942bobo122$
755071bo$755070b2o$755070bobo169$755200b2o$755200bobo$755200bo116$
755327b3o$755327bo$755328bo118$755455b3o$755455bo$755456bo140$755583b
3o$755583bo$755584bo114$755711b3o$755711bo$755712bo132$755838b3o$
755838bo$755839bo138$755967b3o$755967bo$755968bo132$756094b3o$756094bo
$756095bo120$756222b3o$756222bo$756223bo130$756350b3o$756350bo$756351b
o107$756479bo$756478b2o$756478bobo150$756607bo$756606b2o$756606bobo
126$756736b2o$756735b2o$756737bo129$756864b2o$756863b2o$756865bo126$
756992b2o$756991b2o$756993bo126$757119b3o$757119bo$757120bo112$757247b
3o$757247bo$757248bo140$757376b2o$757375b2o$757377bo227$757503b2o$
757502b2o$757504bo112$757631bo$757630b2o$757630bobo130$757760bo$
757759b2o$757759bobo112$757888b2o$757888bobo$757888bo116$758015b2o$
758015bobo$758015bo134$758144b2o$758144bobo$758144bo114$758271b2o$
758271bobo$758271bo136$758399b2o$758399bobo$758399bo126$758528b2o$
758528bobo$758528bo134$758655b2o$758655bobo$758655bo114$758783b2o$
758783bobo$758783bo185$758911bo$758910b2o$758910bobo122$759040b2o$
759040bobo$759040bo127$759167b2o$759167bobo$759167bo125$759295b2o$
759295bobo$759295bo121$759423b2o$759422b2o$759424bo139$759551b2o$
759551bobo$759551bo122$759680b2o$759680bobo$759680bo123$759808b2o$
759808bobo$759808bo118$759936b2o$759935b2o$759937bo120$760064b2o$
760064bobo$760064bo146$760192b2o$760192bobo$760192bo115$760320b2o$
760320bobo$760320bo107$760447b3o$760447bo$760448bo132$760574b3o$
760574bo$760575bo110$760703b3o$760703bo$760704bo124$760830b3o$760830bo
$760831bo132$760958b3o$760958bo$760959bo135$761087bo$761086b2o$761086b
obo123$761214b3o$761214bo$761215bo126$761342b3o$761342bo$761343bo103$
761472bo$761471b2o$761471bobo124$761599bo$761598b2o$761598bobo130$
761728b2o$761728bobo$761728bo140$761856bo$761855b2o$761855bobo122$
761984b2o$761984bobo$761984bo132$762111b2o$762111bobo$762111bo130$
762239b2o$762239bobo$762239bo138$762367b2o$762367bobo$762367bo87$
762495b3o$762495bo$762496bo128$762622b3o$762622bo$762623bo134$762750b
3o$762750bo$762751bo115$762880bo$762879b2o$762879bobo120$763007bo$
763006b2o$763006bobo127$763135b3o$763135bo$763136bo117$763262b3o$
763262bo$763263bo130$763391b3o$763391bo$763392bo134$763519b3o$763519bo
$763520bo116$763646b3o$763646bo$763647bo128$763775b3o$763775bo$763776b
o131$763904bo$763903b2o$763903bobo123$764030b3o$764030bo$764031bo133$
764160bo$764159b2o$764159bobo105$764287b3o$764287bo$764288bo129$
764415b2o$764415bobo$764415bo129$764543b2o$764543bobo$764543bo126$
764671b2o$764671bobo$764671bo113$764799b2o$764798b2o$764800bo132$
764927b2o$764927bobo$764927bo111$765055b2o$765054b2o$765056bo137$
765183b2o$765182b2o$765184bo127$765312bo$765311b2o$765311bobo128$
765439bo$765438b2o$765438bobo138$765568b2o$765568bobo$765568bo120$
765696bo$765695b2o$765695bobo114$765823b2o$765823bobo$765823bo136$
765952b2o$765952bobo$765952bo134$766080bo$766079b2o$766079bobo104$
766207bo$766206b2o$766206bobo136$766336b2o$766336bobo$766336bo116$
766463b2o$766462b2o$766464bo123$766591b2o$766590b2o$766592bo118$
766718b3o$766718bo$766719bo141$766846b3o$766846bo$766847bo127$766975b
2o$766974b2o$766976bo133$767102b3o$767102bo$767103bo140$767230b3o$
767230bo$767231bo136$767359b3o$767359bo$767360bo108$767486b3o$767486bo
$767487bo140$767615b3o$767615bo$767616bo125$767743bo$767742b2o$767742b
obo135$767870b3o$767870bo$767871bo125$767999b2o$767999bobo$767999bo
127$768127b2o$768127bobo$768127bo124$768255b2o$768254b2o$768256bo117$
768383b2o$768383bobo$768383bo133$768511b2o$768511bobo$768511bo134$
768639b2o$768639bobo$768639bo102$768767bo$768766b2o$768766bobo99$
768894b3o$768894bo$768895bo131$769022b3o$769022bo$769023bo108$769151b
3o$769151bo$769152bo128$769279b3o$769279bo$769280bo124$769407b2o$
769406b2o$769408bo117$769535b2o$769534b2o$769536bo131$769663b2o$
769662b2o$769664bo123$769791b2o$769790b2o$769792bo140$769919b2o$
769918b2o$769920bo108$770047b2o$770046b2o$770048bo118$770175b2o$
770174b2o$770176bo130$770303b2o$770302b2o$770304bo148$770431bo$770430b
2o$770430bobo124$770560bo$770559b2o$770559bobo124$770688bo$770687b2o$
770687bobo118$770816bo$770815b2o$770815bobo142$770944bo$770943b2o$
770943bobo112$771072bo$771071b2o$771071bobo144$771199b2o$771199bobo$
771199bo133$771327b2o$771327bobo$771327bo125$771455b2o$771455bobo$
771455bo134$771583b2o$771583bobo$771583bo131$771712b2o$771712bobo$
771712bo133$771840b2o$771840bobo$771840bo101$771967b2o$771966b2o$
771968bo136$772096b2o$772096bobo$772096bo97$772222b3o$772222bo$772223b
o122$772350b3o$772350bo$772351bo128$772478b3o$772478bo$772479bo139$
772608bo$772607b2o$772607bobo104$772735bo$772734b2o$772734bobo126$
772864bo$772863b2o$772863bobo124$772991b2o$772991bobo$772991bo87$
773118b3o$773118bo$773119bo124$773247b3o$773247bo$773248bo126$773375b
3o$773375bo$773376bo114$773502b3o$773502bo$773503bo137$773632bo$
773631b2o$773631bobo139$773759b3o$773759bo$773760bo138$773887b3o$
773887bo$773888bo91$774015bo$774014b2o$774014bobo127$774143b2o$774143b
obo$774143bo126$774271b2o$774271bobo$774271bo122$774399b2o$774398b2o$
774400bo122$774527b2o$774527bobo$774527bo139$774655b2o$774654b2o$
774656bo114$774783b2o$774782b2o$774784bo118$774911b2o$774911bobo$
774911bo148$775039b2o$775039bobo$775039bo127$775168b2o$775168bobo$
775168bo134$775296b2o$775296bobo$775296bo118$775424b2o$775424bobo$
775424bo113$775552b2o$775552bobo$775552bo134$775680b2o$775680bobo$
775680bo92$775807b3o$775807bo$775808bo128$775934b3o$775934bo$775935bo
131$776063bo$776062b2o$776062bobo117$776190b3o$776190bo$776191bo130$
776318b3o$776318bo$776319bo120$776448bo$776447b2o$776447bobo122$
776575bo$776574b2o$776574bobo126$776703bo$776702b2o$776702bobo116$
776831b3o$776831bo$776832bo134$776959b2o$776959bobo$776959bo128$
777088bo$777087b2o$777087bobo138$777216bo$777215b2o$777215bobo130$
777343b2o$777343bobo$777343bo135$777471b3o$777471bo$777472bo99$777598b
3o$777598bo$777599bo130$777727b3o$777727bo$777728bo124$777855b3o$
777855bo$777856bo141$777983bo$777982b2o$777982bobo130$778111bo$778110b
2o$778110bobo123$778238b3o$778238bo$778239bo117$778367bo$778366b2o$
778366bobo111$778494b3o$778494bo$778495bo141$778623bo$778622b2o$
778622bobo127$778752b2o$778751b2o$778753bo123$778880b2o$778879b2o$
778881bo134$779008b2o$779007b2o$779009bo120$779136b2o$779135b2o$
779137bo123$779263b3o$779263bo$779264bo142$779392b2o$779391b2o$779393b
o122$779519b3o$779519bo$779520bo115$779648b2o$779647b2o$779649bo120$
779776b2o$779775b2o$779777bo111$779904b2o$779904bobo$779904bo124$
780032b2o$780032bobo$780032bo114$780159bo$780158b2o$780158bobo116$
780288bo$780287b2o$780287bobo126$780416b2o$780416bobo$780416bo150$
780544b2o$780544bobo$780544bo80$780671b3o$780671bo$780672bo114$780798b
3o$780798bo$780799bo121$780927bo$780926b2o$780926bobo127$781055b3o$
781055bo$781056bo112$781182b3o$781182bo$781183bo132$781312b2o$781312bo
bo$781312bo151$781440bo$781439b2o$781439bobo134$781567bo$781566b2o$
781566bobo110$781696bo$781695b2o$781695bobo126$781823bo$781822b2o$
781822bobo138$781951bo$781950b2o$781950bobo128$782080bo$782079b2o$
782079bobo130$782207b2o$782207bobo$782207bo122$782335b2o$782335bobo$
782335bo134$782462b3o$782462bo$782463bo130$782591b3o$782591bo$782592bo
131$782720bo$782719b2o$782719bobo117$782847b3o$782847bo$782848bo130$
782975b3o$782975bo$782976bo119$783102b3o$783102bo$783103bo116$783230b
3o$783230bo$783231bo134$783359b3o$783359bo$783360bo140$783486b3o$
783486bo$783487bo124$783614b3o$783614bo$783615bo104$783743b3o$783743bo
$783744bo115$783872b2o$783872bobo$783872bo131$783999b3o$783999bo$
784000bo133$784128b2o$784128bobo$784128bo123$784256b2o$784256bobo$
784256bo139$784384b2o$784383b2o$784385bo118$784512b2o$784512bobo$
784512bo122$784640b2o$784639b2o$784641bo125$784768b2o$784768bobo$
784768bo126$784895b3o$784895bo$784896bo128$785022b3o$785022bo$785023bo
134$785150b3o$785150bo$785151bo115$785280bo$785279b2o$785279bobo120$
785407bo$785406b2o$785406bobo127$785535b3o$785535bo$785536bo117$
785662b3o$785662bo$785663bo130$785791b3o$785791bo$785792bo134$785919b
3o$785919bo$785920bo116$786046b3o$786046bo$786047bo128$786175b3o$
786175bo$786176bo131$786304bo$786303b2o$786303bobo123$786430b3o$
786430bo$786431bo133$786560bo$786559b2o$786559bobo139$786687b2o$
786686b2o$786688bo126$786815b2o$786814b2o$786816bo132$786942b3o$
786942bo$786943bo120$787070b3o$787070bo$787071bo123$787199b2o$787198b
2o$787200bo126$787326b3o$787326bo$787327bo142$787454b3o$787454bo$
787455bo120$787582b3o$787582bo$787583bo141$787711b3o$787711bo$787712bo
134$787838b3o$787838bo$787839bo110$787967b3o$787967bo$787968bo138$
788094b3o$788094bo$788095bo127$788224bo$788223b2o$788223bobo135$
788351b3o$788351bo$788352bo125$788480b2o$788480bobo$788480bo127$
788608b2o$788608bobo$788608bo124$788736b2o$788735b2o$788737bo117$
788864b2o$788864bobo$788864bo133$788992b2o$788992bobo$788992bo134$
789120b2o$789120bobo$789120bo137$789248b2o$789247b2o$789249bo41$
789375b3o$789375bo$789376bo129$789503b2o$789503bobo$789503bo129$
789631b2o$789631bobo$789631bo126$789759b2o$789759bobo$789759bo113$
789887b2o$789886b2o$789888bo132$790015b2o$790015bobo$790015bo111$
790143b2o$790142b2o$790144bo137$790271b2o$790270b2o$790272bo127$
790400bo$790399b2o$790399bobo128$790527bo$790526b2o$790526bobo138$
790656b2o$790656bobo$790656bo120$790784bo$790783b2o$790783bobo114$
790911b2o$790911bobo$790911bo136$791040b2o$791040bobo$791040bo134$
791168bo$791167b2o$791167bobo104$791295bo$791294b2o$791294bobo136$
791424b2o$791424bobo$791424bo116$791551b2o$791550b2o$791552bo123$
791679b2o$791678b2o$791680bo118$791806b3o$791806bo$791807bo141$791934b
3o$791934bo$791935bo127$792063b2o$792062b2o$792064bo133$792190b3o$
792190bo$792191bo107$792318b3o$792318bo$792319bo131$792446b3o$792446bo
$792447bo154$792574b3o$792574bo$792575bo136$792703b3o$792703bo$792704b
o108$792830b3o$792830bo$792831bo140$792959b3o$792959bo$792960bo125$
793087bo$793086b2o$793086bobo135$793214b3o$793214bo$793215bo125$
793343b2o$793343bobo$793343bo127$793471b2o$793471bobo$793471bo124$
793599b2o$793598b2o$793600bo117$793727b2o$793727bobo$793727bo133$
793855b2o$793855bobo$793855bo134$793983b2o$793983bobo$793983bo103$
794111b2o$794111bobo$794111bo160$794239b2o$794238b2o$794240bo133$
794366b3o$794366bo$794367bo246$794495b2o$794495bobo$794495bo143$
794623b2o$794623bobo$794623bo127$794751b2o$794751bobo$794751bo120$
794879b2o$794879bobo$794879bo116$795007b2o$795006b2o$795008bo130$
795135b2o$795135bobo$795135bo126$795263b2o$795263bobo$795263bo141$
795391b2o$795391bobo$795391bo117$795519b2o$795519bobo$795519bo133$
795647b2o$795647bobo$795647bo136$795775b2o$795774b2o$795776bo109$
795903b2o$795903bobo$795903bo118$796031b2o$796031bobo$796031bo151$
796159b2o$796159bobo$796159bo117$796287b2o$796286b2o$796288bo134$
796415b2o$796414b2o$796416bo119$796543b2o$796542b2o$796544bo121$
796670b3o$796670bo$796671bo150$796799b2o$796798b2o$796800bo128$796926b
3o$796926bo$796927bo89$797054b3o$797054bo$797055bo127$797184b2o$
797183b2o$797185bo136$797312b2o$797311b2o$797313bo119$797440b2o$
797439b2o$797441bo126$797567b3o$797567bo$797568bo127$797695b3o$797695b
o$797696bo117$797823b3o$797823bo$797824bo149$797951b3o$797951bo$
797952bo171$798080b2o$798079b2o$798081bo125$798208b2o$798208bobo$
798208bo130$798336b2o$798336bobo$798336bo118$798464b2o$798464bobo$
798464bo130$798592b2o$798592bobo$798592bo125$798720b2o$798719b2o$
798721bo129$798848b2o$798847b2o$798849bo140$798976b2o$798976bobo$
798976bo116$799103b2o$799103bobo$799103bo134$799231b2o$799231bobo$
799231bo109$799359b2o$799359bobo$799359bo129$799487b2o$799486b2o$
799488bo122$799615b2o$799614b2o$799616bo124$799743b2o$799743bobo$
799743bo137$799871b2o$799871bobo$799871bo123$799998b3o$799998bo$
799999bo116$800126b3o$800126bo$800127bo140$800255b3o$800255bo$800256bo
126$800382b3o$800382bo$800383bo118$800510b3o$800510bo$800511bo132$
800639b3o$800639bo$800640bo128$800768b2o$800767b2o$800769bo127$800896b
2o$800895b2o$800897bo112$801024b2o$801023b2o$801025bo130$801152b2o$
801151b2o$801153bo136$801279b3o$801279bo$801280bo125$801408b2o$801407b
2o$801409bo123$801534b3o$801534bo$801535bo122$801662b3o$801662bo$
801663bo126$801790b3o$801790bo$801791bo126$801919b3o$801919bo$801920bo
131$802048bo$802047b2o$802047bobo119$802174b3o$802174bo$802175bo135$
802304b2o$802303b2o$802305bo127$802432b2o$802431b2o$802433bo110$
802559b3o$802559bo$802560bo127$802687b3o$802687bo$802688bo141$802815b
3o$802815bo$802816bo121$802943b3o$802943bo$802944bo133$803071b3o$
803071bo$803072bo108$803200bo$803199b2o$803199bobo124$803327bo$803326b
2o$803326bobo126$803456b2o$803456bobo$803456bo114$803584bo$803583b2o$
803583bobo156$803711b2o$803711bobo$803711bo122$803840b2o$803840bobo$
803840bo133$803968bo$803967b2o$803967bobo122$804096bo$804095b2o$
804095bobo116$804223b2o$804223bobo$804223bo144$804351b2o$804351bobo$
804351bo102$804479bo$804478b2o$804478bobo138$804608bo$804607b2o$
804607bobo118$804736bo$804735b2o$804735bobo126$804863bo$804862b2o$
804862bobo140$804991b3o$804991bo$804992bo128$805118b3o$805118bo$
805119bo134$805246b3o$805246bo$805247bo115$805376bo$805375b2o$805375bo
bo125$805502b3o$805502bo$805503bo127$805631bo$805630b2o$805630bobo115$
805759b3o$805759bo$805760bo128$805886b3o$805886bo$805887bo135$806015bo
$806014b2o$806014bobo135$806144b2o$806144bobo$806144bo140$806271b2o$
806270b2o$806272bo120$806400b2o$806400bobo$806400bo112$806528b2o$
806528bobo$806528bo138$806656b2o$806656bobo$806656bo119$806784b2o$
806784bobo$806784bo58$806912b2o$806911b2o$806913bo129$807040b2o$
807039b2o$807041bo119$807168b2o$807167b2o$807169bo131$807296b2o$
807295b2o$807297bo122$807423b3o$807423bo$807424bo117$807552b2o$807551b
2o$807553bo115$807680b2o$807679b2o$807681bo131$807808b2o$807807b2o$
807809bo129$807934b3o$807934bo$807935bo116$808062b3o$808062bo$808063bo
136$808191b3o$808191bo$808192bo128$808318b3o$808318bo$808319bo134$
808447b3o$808447bo$808448bo107$808575bo$808574b2o$808574bobo123$
808702b3o$808702bo$808703bo134$808831bo$808830b2o$808830bobo130$
808960bo$808959b2o$808959bobo134$809087bo$809086b2o$809086bobo114$
809216b2o$809216bobo$809216bo120$809344b2o$809344bobo$809344bo120$
809471b2o$809471bobo$809471bo138$809599b2o$809599bobo$809599bo138$
809727b2o$809727bobo$809727bo110$809855bo$809854b2o$809854bobo118$
809983bo$809982b2o$809982bobo134$810111bo$810110b2o$810110bobo150$
810240bo$810239b2o$810239bobo118$810367b2o$810367bobo$810367bo130$
810495b2o$810495bobo$810495bo114$810623b2o$810623bobo$810623bo130$
810751b2o$810751bobo$810751bo129$810879b2o$810879bobo$810879bo117$
811007b2o$811007bobo$811007bo115$811135b2o$811134b2o$811136bo125$
811263b2o$811262b2o$811264bo144$811391b2o$811390b2o$811392bo120$
811519b2o$811519bobo$811519bo129$811647b2o$811647bobo$811647bo120$
811774b3o$811774bo$811775bo126$811903b3o$811903bo$811904bo123$812032bo
$812031b2o$812031bobo128$812159bo$812158b2o$812158bobo118$812288bo$
812287b2o$812287bobo131$812414b3o$812414bo$812415bo139$812544bo$
812543b2o$812543bobo121$812670b3o$812670bo$812671bo118$812798b3o$
812798bo$812799bo127$812927b3o$812927bo$812928bo118$813055b3o$813055bo
$813056bo134$813183b3o$813183bo$813184bo138$813310b3o$813310bo$813311b
o118$813438b3o$813438bo$813439bo126$813567b2o$813567bobo$813567bo130$
813695b2o$813695bobo$813695bo132$813823b2o$813822b2o$813824bo127$
813951b2o$813951bobo$813951bo129$814079b2o$814079bobo$814079bo136$
814207b2o$814207bobo$814207bo110$814336bo$814335b2o$814335bobo124$
814463bo$814462b2o$814462bobo118$814592b2o$814592bobo$814592bo148$
814720b2o$814720bobo$814720bo116$814848b2o$814848bobo$814848bo144$
814975b2o$814975bobo$814975bo117$815103b2o$815103bobo$815103bo122$
815231b2o$815231bobo$815231bo111$815359b2o$815359bobo$815359bo162$
815487b2o$815486b2o$815488bo134$815615b2o$815615bobo$815615bo118$
815743b2o$815743bobo$815743bo111$815871b2o$815870b2o$815872bo114$
815999b2o$815998b2o$816000bo148$816127b3o$816127bo$816128bo128$816254b
3o$816254bo$816255bo124$816382b3o$816382bo$816383bo143$816512bo$
816511b2o$816511bobo117$816639b3o$816639bo$816640bo126$816767b3o$
816767bo$816768bo130$816896b2o$816896bobo$816896bo112$817023b3o$
817023bo$817024bo133$817152b2o$817152bobo$817152bo124$817280b2o$
817280bobo$817280bo137$817408b2o$817408bobo$817408bo134$817536b2o$
817536bobo$817536bo117$817664b2o$817663b2o$817665bo112$817792b2o$
817792bobo$817792bo154$817920bo$817919b2o$817919bobo116$818048bo$
818047b2o$818047bobo134$818175bo$818174b2o$818174bobo136$818303bo$
818302b2o$818302bobo118$818432bo$818431b2o$818431bobo134$818560b2o$
818560bobo$818560bo83$818688b2o$818688bobo$818688bo130$818816b2o$
818816bobo$818816bo126$818944b2o$818943b2o$818945bo118$819072b2o$
819072bobo$819072bo129$819200b2o$819199b2o$819201bo132$819328b2o$
819328bobo$819328bo111$819456b2o$819456bobo$819456bo142$819584b2o$
819584bobo$819584bo114$819711b2o$819710b2o$819712bo134$819839b2o$
819838b2o$819840bo109$819967b2o$819966b2o$819968bo144$820094b3o$
820094bo$820095bo116$820222b3o$820222bo$820223bo147$820350b3o$820350bo
$820351bo121$820479b2o$820478b2o$820480bo130$820607b2o$820606b2o$
820608bo133$820734b3o$820734bo$820735bo155$820863b2o$820862b2o$820864b
o114$820991b2o$820990b2o$820992bo111$821119b2o$821118b2o$821120bo112$
821246b3o$821246bo$821247bo145$821376b2o$821376bobo$821376bo123$
821504b2o$821504bobo$821504bo116$821632b2o$821631b2o$821633bo141$
821760b2o$821760bobo$821760bo126$821888b2o$821888bobo$821888bo109$
822016b2o$822016bobo$822016bo115$822144b2o$822144bobo$822144bo125$
822272b2o$822272bobo$822272bo133$822399bo$822398b2o$822398bobo126$
822528bo$822527b2o$822527bobo140$822656bo$822655b2o$822655bobo124$
822784bo$822783b2o$822783bobo122$822912b2o$822912bobo$822912bo152$
823040b2o$823040bobo$823040bo126$823167bo$823166b2o$823166bobo129$
823296bo$823295b2o$823295bobo126$823424bo$823423b2o$823423bobo120$
823551b2o$823551bobo$823551bo132$823680b2o$823680bobo$823680bo118$
823808b2o$823808bobo$823808bo136$823935b2o$823935bobo$823935bo128$
824064bo$824063b2o$824063bobo128$824191b2o$824191bobo$824191bo124$
824319b2o$824318b2o$824320bo136$824447b2o$824446b2o$824448bo119$
824575b2o$824574b2o$824576bo126$824702b3o$824702bo$824703bo127$824830b
3o$824830bo$824831bo117$824958b3o$824958bo$824959bo149$825086b3o$
825086bo$825087bo117$825215b2o$825215bobo$825215bo129$825343b2o$
825343bobo$825343bo119$825471b2o$825471bobo$825471bo131$825599b2o$
825599bobo$825599bo122$825727b2o$825726b2o$825728bo103$825855b2o$
825855bobo$825855bo130$825983b2o$825982b2o$825984bo119$826111b2o$
826110b2o$826112bo138$826239b2o$826238b2o$826240bo126$826366b3o$
826366bo$826367bo133$826494b3o$826494bo$826495bo103$826623b2o$826622b
2o$826624bo149$826750b3o$826750bo$826751bo141$826878b3o$826878bo$
826879bo116$827006b3o$827006bo$827007bo136$827135b3o$827135bo$827136bo
128$827262b3o$827262bo$827263bo113$827392bo$827391b2o$827391bobo135$
827519b3o$827519bo$827520bo129$827648bo$827647b2o$827647bobo139$
827775b3o$827775bo$827776bo116$827903b2o$827903bobo$827903bo134$
828031b2o$828031bobo$828031bo118$828159b2o$828159bobo$828159bo116$
828287b2o$828287bobo$828287bo131$828415b2o$828415bobo$828415bo125$
828543b2o$828543bobo$828543bo114$828671b2o$828671bobo$828671bo130$
828800bo$828799b2o$828799bobo124$828927bo$828926b2o$828926bobo134$
829056bo$829055b2o$829055bobo120$829184bo$829183b2o$829183bobo120$
829311bo$829310b2o$829310bobo124$829439bo$829438b2o$829438bobo136$
829568b2o$829568bobo$829568bo134$829695b2o$829695bobo$829695bo122$
829823b2o$829823bobo$829823bo130$829951b2o$829950b2o$829952bo111$
830079b3o$830079bo$830080bo122$830206b3o$830206bo$830207bo132$830335b
3o$830335bo$830336bo124$830463b3o$830463bo$830464bo125$830592bo$
830591b2o$830591bobo127$830719b3o$830719bo$830720bo119$830847bo$
830846b2o$830846bobo130$830976bo$830975b2o$830975bobo134$831104bo$
831103b2o$831103bobo102$831231b2o$831231bobo$831231bo136$831359bo$
831358b2o$831358bobo126$831487b2o$831487bobo$831487bo144$831616b2o$
831616bobo$831616bo120$831744b2o$831744bobo$831744bo142$831871b2o$
831871bobo$831871bo122$831999b2o$831999bobo$831999bo130$832127b2o$
832126b2o$832128bo130$832255b2o$832255bobo$832255bo125$832383b2o$
832383bobo$832383bo121$832511b2o$832510b2o$832512bo139$832639b2o$
832639bobo$832639bo122$832768b2o$832767b2o$832769bo119$832896b2o$
832895b2o$832897bo138$833024b2o$833023b2o$833025bo121$833151b3o$
833151bo$833152bo121$833280b2o$833279b2o$833281bo144$833408b2o$833407b
2o$833409bo114$833535b3o$833535bo$833536bo108$833663b2o$833662b2o$
833664bo100$833792b2o$833792bobo$833792bo119$833920b2o$833920bobo$
833920bo123$834048b2o$834048bobo$834048bo130$834176b2o$834176bobo$
834176bo98$834303b2o$834303bobo$834303bo130$834431b2o$834431bobo$
834431bo111$834559b2o$834558b2o$834560bo123$834687b2o$834687bobo$
834687bo135$834815b2o$834815bobo$834815bo131$834943b2o$834943bobo$
834943bo106$835071b2o$835070b2o$835072bo126$835199b2o$835199bobo$
835199bo116$835327b2o$835327bobo$835327bo135$835454b3o$835454bo$
835455bo116$835582b3o$835582bo$835583bo140$835711b3o$835711bo$835712bo
126$835838b3o$835838bo$835839bo118$835966b3o$835966bo$835967bo132$
836095b3o$836095bo$836096bo128$836224b2o$836224bobo$836224bo127$
836352b2o$836352bobo$836352bo112$836480b2o$836479b2o$836481bo136$
836608b2o$836608bobo$836608bo130$836736b2o$836735b2o$836737bo125$
836864b2o$836864bobo$836864bo108$836992b2o$836991b2o$836993bo127$
837120b2o$837119b2o$837121bo126$837248b2o$837247b2o$837249bo128$
837375b3o$837375bo$837376bo118$837503b3o$837503bo$837504bo137$837631b
3o$837631bo$837632bo140$837759b3o$837759bo$837760bo122$837887b3o$
837887bo$837888bo135$838016b2o$838016bobo$838016bo122$838144b2o$
838144bobo$838144bo130$838272b2o$838271b2o$838273bo103$838400bo$
838399b2o$838399bobo116$838528bo$838527b2o$838527bobo134$838655bo$
838654b2o$838654bobo136$838783bo$838782b2o$838782bobo118$838912bo$
838911b2o$838911bobo134$839040b2o$839040bobo$839040bo136$839168b2o$
839168bobo$839168bo130$839296b2o$839296bobo$839296bo128$839424b2o$
839423b2o$839425bo128$839552b2o$839552bobo$839552bo131$839680b2o$
839679b2o$839681bo115$839808b2o$839808bobo$839808bo127$839936b2o$
839936bobo$839936bo129$840064b2o$840063b2o$840065bo119$840192b2o$
840191b2o$840193bo134$840319b2o$840318b2o$840320bo134$840447b2o$
840446b2o$840448bo109$840575b2o$840574b2o$840576bo138$840703b2o$
840702b2o$840704bo122$840830b3o$840830bo$840831bo153$840960b2o$840960b
obo$840960bo123$841088b2o$841088bobo$841088bo126$841216b2o$841215b2o$
841217bo126$841344b2o$841343b2o$841345bo124$841472b2o$841471b2o$
841473bo126$841599b3o$841599bo$841600bo148$841728b2o$841728bobo$
841728bo131$841856b2o$841856bobo$841856bo120$841984b2o$841984bobo$
841984bo119$842111b3o$842111bo$842112bo123$842239b3o$842239bo$842240bo
122$842368b2o$842367b2o$842369bo128$842495b3o$842495bo$842496bo138$
842624bo$842623b2o$842623bobo122$842752bo$842751b2o$842751bobo124$
842879b2o$842879bobo$842879bo124$843008bo$843007b2o$843007bobo146$
843135b2o$843135bobo$843135bo133$843263b2o$843262b2o$843264bo143$
843391b2o$843390b2o$843392bo114$843519b2o$843518b2o$843520bo130$
843646b3o$843646bo$843647bo145$843775b2o$843774b2o$843776bo136$843903b
2o$843902b2o$843904bo121$844031b2o$844030b2o$844032bo121$844159b2o$
844158b2o$844160bo141$844287b2o$844286b2o$844288bo118$844414b3o$
844414bo$844415bo132$844542b3o$844542bo$844543bo134$844671b3o$844671bo
$844672bo118$844799b3o$844799bo$844800bo120$844927b3o$844927bo$844928b
o116$845055b3o$845055bo$845056bo124$845182b3o$845182bo$845183bo122$
845311b3o$845311bo$845312bo128$845439b2o$845439bobo$845439bo134$
845567b2o$845567bobo$845567bo112$845695b2o$845695bobo$845695bo138$
845823b2o$845823bobo$845823bo119$845951b2o$845951bobo$845951bo125$
846079b2o$846079bobo$846079bo118$846208b2o$846207b2o$846209bo127$
846336b2o$846335b2o$846337bo124$846463b3o$846463bo$846464bo134$846591b
3o$846591bo$846592bo115$846719b3o$846719bo$846720bo116$846847b3o$
846847bo$846848bo96$846976bo$846975b2o$846975bobo128$847104b2o$847104b
obo$847104bo128$847231b2o$847231bobo$847231bo138$847360b2o$847360bobo$
847360bo106$847488b2o$847488bobo$847488bo117$847616b2o$847616bobo$
847616bo123$847744b2o$847744bobo$847744bo120$847872b2o$847871b2o$
847873bo145$848000b2o$847999b2o$848001bo117$848128b2o$848128bobo$
848128bo123$848254b3o$848254bo$848255bo126$848383b3o$848383bo$848384bo
125$848511bo$848510b2o$848510bobo121$848638b3o$848638bo$848639bo147$
848768bo$848767b2o$848767bobo123$848894b3o$848894bo$848895bo123$
849023bo$849022b2o$849022bobo113$849151b3o$849151bo$849152bo120$
849279b3o$849279bo$849280bo126$849408b2o$849407b2o$849409bo123$849536b
2o$849535b2o$849537bo121$849663b3o$849663bo$849664bo137$849792b2o$
849791b2o$849793bo123$849920b2o$849919b2o$849921bo121$850047b3o$
850047bo$850048bo133$850175b3o$850175bo$850176bo130$850304b2o$850304bo
bo$850304bo123$850432b2o$850432bobo$850432bo130$850560b2o$850559b2o$
850561bo137$850687b2o$850687bobo$850687bo129$850815b2o$850815bobo$
850815bo121$850943b2o$850943bobo$850943bo139$851071b2o$851070b2o$
851072bo117$851199b2o$851198b2o$851200bo118$851327b2o$851327bobo$
851327bo116$851456b2o$851456bobo$851456bo130$851584b2o$851584bobo$
851584bo128$851712b2o$851711b2o$851713bo128$851840b2o$851840bobo$
851840bo131$851968b2o$851967b2o$851969bo115$852096b2o$852096bobo$
852096bo127$852224b2o$852224bobo$852224bo129$852352b2o$852351b2o$
852353bo119$852480b2o$852479b2o$852481bo134$852607b2o$852606b2o$
852608bo134$852735b2o$852734b2o$852736bo109$852863b2o$852862b2o$
852864bo138$852991b2o$852990b2o$852992bo122$853118b3o$853118bo$853119b
o165$853247b3o$853247bo$853248bo125$853375b3o$853375bo$853376bo126$
853504b2o$853504bobo$853504bo126$853632b2o$853632bobo$853632bo132$
853760b2o$853760bobo$853760bo118$853888b2o$853888bobo$853888bo140$
854016b2o$854015b2o$854017bo122$854144b2o$854143b2o$854145bo116$
854272b2o$854271b2o$854273bo123$854400b2o$854400bobo$854400bo118$
854528b2o$854528bobo$854528bo146$854655b2o$854654b2o$854656bo123$
854783b2o$854782b2o$854784bo124$854910b3o$854910bo$854911bo127$855039b
2o$855038b2o$855040bo116$855167b2o$855166b2o$855168bo127$855294b3o$
855294bo$855295bo139$855422b3o$855422bo$855423bo124$855550b3o$855550bo
$855551bo132$855680b2o$855679b2o$855681bo126$855808b2o$855807b2o$
855809bo117$855936b2o$855935b2o$855937bo141$856063b3o$856063bo$856064b
o121$856192b2o$856191b2o$856193bo139$856320b2o$856319b2o$856321bo121$
856448b2o$856447b2o$856449bo124$856576b2o$856575b2o$856577bo104$
856704b2o$856703b2o$856705bo120$856831b3o$856831bo$856832bo122$856959b
3o$856959bo$856960bo119$857088bo$857087b2o$857087bobo119$857215b3o$
857215bo$857216bo120$857342b3o$857342bo$857343bo126$857470b3o$857470bo
$857471bo144$857599b3o$857599bo$857600bo132$857726b3o$857726bo$857727b
o126$857855b2o$857855bobo$857855bo130$857983b2o$857983bobo$857983bo
134$858111b2o$858110b2o$858112bo132$858239b2o$858239bobo$858239bo106$
858367b2o$858367bobo$858367bo121$858495b2o$858494b2o$858496bo142$
858623b2o$858623bobo$858623bo98$858751b2o$858750b2o$858752bo123$
858879b2o$858878b2o$858880bo124$859006b3o$859006bo$859007bo120$859134b
3o$859134bo$859135bo150$859262b3o$859262bo$859263bo117$859390b3o$
859390bo$859391bo109$859518b3o$859518bo$859519bo117$859647b2o$859646b
2o$859648bo117$859775b2o$859774b2o$859776bo131$859903b2o$859902b2o$
859904bo125$860031b2o$860030b2o$860032bo129$860159b2o$860158b2o$
860160bo132$860287b2o$860286b2o$860288bo123$860414b3o$860414bo$860415b
o131$860543b2o$860543bobo$860543bo127$860671b2o$860671bobo$860671bo
125$860799b2o$860799bobo$860799bo117$860927b2o$860927bobo$860927bo134$
861055b2o$861055bobo$861055bo134$861183b2o$861183bobo$861183bo118$
861311b2o$861311bobo$861311bo123$861439b2o$861439bobo$861439bo127$
861567b3o$861567bo$861568bo122$861695b3o$861695bo$861696bo142$861823b
3o$861823bo$861824bo100$861950b3o$861950bo$861951bo126$862078b3o$
862078bo$862079bo123$862208bo$862207b2o$862207bobo150$862336bo$862335b
2o$862335bobo116$862463bo$862462b2o$862462bobo129$862590b3o$862590bo$
862591bo122$862720b2o$862719b2o$862721bo127$862848b2o$862847b2o$
862849bo136$862975b3o$862975bo$862976bo104$863103b3o$863103bo$863104bo
136$863231b3o$863231bo$863232bo118$863359b3o$863359bo$863360bo126$
863487b3o$863487bo$863488bo128$863614b3o$863614bo$863615bo131$863743bo
$863742b2o$863742bobo129$863871b3o$863871bo$863872bo112$863998b3o$
863998bo$863999bo138$864127b3o$864127bo$864128bo104$864254b3o$864254bo
$864255bo135$864382b3o$864382bo$864383bo124$864511b3o$864511bo$864512b
o132$864638b3o$864638bo$864639bo130$864767b3o$864767bo$864768bo118$
864895b3o$864895bo$864896bo136$865022b3o$865022bo$865023bo127$865152b
2o$865152bobo$865152bo127$865280b2o$865280bobo$865280bo119$865408b2o$
865408bobo$865408bo120$865536b2o$865536bobo$865536bo142$865664b2o$
865664bobo$865664bo121$865792b2o$865792bobo$865792bo125$865920b2o$
865920bobo$865920bo116$866047b2o$866047bobo$866047bo129$866175b2o$
866175bobo$866175bo133$866303b2o$866303bobo$866303bo115$866431b2o$
866431bobo$866431bo134$866559b2o$866559bobo$866559bo124$866687b2o$
866687bobo$866687bo127$866815b2o$866815bobo$866815bo121$866943b2o$
866942b2o$866944bo116$867071b2o$867070b2o$867072bo140$867199b2o$
867199bobo$867199bo138$867327b2o$867327bobo$867327bo117$867455b2o$
867455bobo$867455bo128$867583b2o$867583bobo$867583bo127$867711b2o$
867711bobo$867711bo124$867839b2o$867838b2o$867840bo129$867967b2o$
867967bobo$867967bo124$868095b2o$868095bobo$868095bo134$868223b2o$
868223bobo$868223bo112$868351b2o$868351bobo$868351bo119$868479b2o$
868478b2o$868480bo121$868607b2o$868607bobo$868607bo127$868735b2o$
868735bobo$868735bo111$868863b2o$868863bobo$868863bo137$868991b2o$
868990b2o$868992bo131$869119b2o$869119bobo$869119bo109$869247b2o$
869247bobo$869247bo118$869375b2o$869375bobo$869375bo137$869503b3o$
869503bo$869504bo118$869631b3o$869631bo$869632bo134$869759b3o$869759bo
$869760bo143$869887bo$869886b2o$869886bobo125$870015b3o$870015bo$
870016bo118$870143b3o$870143bo$870144bo134$870271b3o$870271bo$870272bo
135$870399b3o$870399bo$870400bo126$870527b3o$870527bo$870528bo113$
870656bo$870655b2o$870655bobo137$870782b3o$870782bo$870783bo127$
870912bo$870911b2o$870911bobo106$871039b2o$871039bobo$871039bo123$
871167b2o$871167bobo$871167bo122$871295b2o$871294b2o$871296bo140$
871423b2o$871423bobo$871423bo138$871551b2o$871551bobo$871551bo90$
871679b2o$871678b2o$871680bo139$871807b2o$871807bobo$871807bo127$
871935b2o$871935bobo$871935bo116$872063b2o$872063bobo$872063bo134$
872191bo$872190b2o$872190bobo118$872319bo$872318b2o$872318bobo134$
872447bo$872446b2o$872446bobo138$872576bo$872575b2o$872575bobo132$
872704b2o$872704bobo$872704bo134$872832bo$872831b2o$872831bobo137$
872959bo$872958b2o$872958bobo116$873087bo$873086b2o$873086bobo132$
873216bo$873215b2o$873215bobo130$873343bo$873342b2o$873342bobo110$
873472bo$873471b2o$873471bobo124$873600bo$873599b2o$873599bobo128$
873727b3o$873727bo$873728bo136$873855b3o$873855bo$873856bo124$873983b
3o$873983bo$873984bo117$874112b2o$874112bobo$874112bo130$874240b2o$
874240bobo$874240bo130$874368b2o$874368bobo$874368bo126$874496b2o$
874496bobo$874496bo128$874624b2o$874624bobo$874624bo136$874752b2o$
874751b2o$874753bo113$874880b2o$874879b2o$874881bo114$875008b2o$
875008bobo$875008bo132$875136b2o$875135b2o$875137bo129$875264b2o$
875264bobo$875264bo123$875392b2o$875392bobo$875392bo130$875520b2o$
875519b2o$875521bo129$875648bo$875647b2o$875647bobo120$875775bo$
875774b2o$875774bobo114$875903bo$875902b2o$875902bobo231$876030b3o$
876030bo$876031bo126$876159b3o$876159bo$876160bo125$876287bo$876286b2o
$876286bobo131$876414b3o$876414bo$876415bo123$876543bo$876542b2o$
876542bobo114$876671bo$876670b2o$876670bobo122$876799bo$876798b2o$
876798bobo134$876927bo$876926b2o$876926bobo146$877055bo$877054b2o$
877054bobo126$877184bo$877183b2o$877183bobo124$877311b2o$877310b2o$
877312bo117$877439b2o$877438b2o$877440bo126$877567b2o$877566b2o$
877568bo126$877695b2o$877694b2o$877696bo140$877823b2o$877822b2o$
877824bo118$877951b2o$877950b2o$877952bo135$878078b3o$878078bo$878079b
o122$878207b2o$878206b2o$878208bo132$878334b3o$878334bo$878335bo118$
878464b2o$878463b2o$878465bo123$878592b2o$878591b2o$878593bo124$
878719b3o$878719bo$878720bo120$878847b3o$878847bo$878848bo150$878975b
3o$878975bo$878976bo117$879103b3o$879103bo$879104bo109$879231b3o$
879231bo$879232bo117$879360b2o$879359b2o$879361bo117$879488b2o$879487b
2o$879489bo131$879616b2o$879615b2o$879617bo125$879744b2o$879743b2o$
879745bo129$879872b2o$879871b2o$879873bo132$880000b2o$879999b2o$
880001bo123$880127b3o$880127bo$880128bo131$880256b2o$880256bobo$
880256bo127$880384b2o$880384bobo$880384bo125$880512b2o$880512bobo$
880512bo117$880640b2o$880640bobo$880640bo134$880768b2o$880768bobo$
880768bo134$880896b2o$880896bobo$880896bo118$881024b2o$881024bobo$
881024bo123$881152b2o$881152bobo$881152bo125$881278b3o$881278bo$
881279bo122$881406b3o$881406bo$881407bo142$881534b3o$881534bo$881535bo
102$881663b3o$881663bo$881664bo126$881791b3o$881791bo$881792bo121$
881919bo$881918b2o$881918bobo150$882047bo$882046b2o$882046bobo118$
882176bo$882175b2o$882175bobo129$882303b3o$882303bo$882304bo120$
882431b2o$882430b2o$882432bo127$882559b2o$882558b2o$882560bo136$
882686b3o$882686bo$882687bo104$882814b3o$882814bo$882815bo136$882942b
3o$882942bo$882943bo118$883070b3o$883070bo$883071bo126$883198b3o$
883198bo$883199bo130$883327b3o$883327bo$883328bo131$883456bo$883455b2o
$883455bobo127$883582b3o$883582bo$883583bo114$883711b3o$883711bo$
883712bo136$883838b3o$883838bo$883839bo106$883967b3o$883967bo$883968bo
135$884095b3o$884095bo$884096bo122$884222b3o$884222bo$884223bo134$
884351b3o$884351bo$884352bo128$884478b3o$884478bo$884479bo118$884606b
3o$884606bo$884607bo138$884735b3o$884735bo$884736bo125$884863b2o$
884863bobo$884863bo127$884991b2o$884991bobo$884991bo119$885119b2o$
885119bobo$885119bo120$885247b2o$885247bobo$885247bo142$885375b2o$
885375bobo$885375bo121$885503b2o$885503bobo$885503bo125$885631b2o$
885631bobo$885631bo118$885760b2o$885760bobo$885760bo129$885888b2o$
885888bobo$885888bo133$886016b2o$886016bobo$886016bo115$886144b2o$
886144bobo$886144bo134$886272b2o$886272bobo$886272bo124$886400b2o$
886400bobo$886400bo119$886528b2o$886528bobo$886528bo127$886656b2o$
886656bobo$886656bo116$886784b2o$886784bobo$886784bo144$886912b2o$
886911b2o$886913bo135$887040b2o$887040bobo$887040bo106$887168b2o$
887168bobo$887168bo138$887296b2o$887295b2o$887297bo131$887424b2o$
887423b2o$887425bo131$887552b2o$887551b2o$887553bo125$887679b3o$
887679bo$887680bo139$887807b3o$887807bo$887808bo126$887935b3o$887935bo
$887936bo125$888063b2o$888063bobo$888063bo122$888191b2o$888191bobo$
888191bo130$888319b2o$888318b2o$888320bo130$888447b2o$888447bobo$
888447bo122$888575b2o$888575bobo$888575bo130$888703b2o$888702b2o$
888704bo87$888832b2o$888831b2o$888833bo130$888959b3o$888959bo$888960bo
124$889086b3o$889086bo$889087bo126$889215b3o$889215bo$889216bo127$
889344bo$889343b2o$889343bobo123$889470b3o$889470bo$889471bo128$
889598b3o$889598bo$889599bo118$889726b3o$889726bo$889727bo140$889854b
3o$889854bo$889855bo133$889984bo$889983b2o$889983bobo122$890111b2o$
890111bobo$890111bo134$890239b2o$890239bobo$890239bo112$890367b2o$
890367bobo$890367bo138$890495b2o$890495bobo$890495bo119$890623b2o$
890623bobo$890623bo159$890751b2o$890751bobo$890751bo122$890879b2o$
890879bobo$890879bo130$891007b2o$891006b2o$891008bo121$891135b2o$
891134b2o$891136bo130$891263b2o$891262b2o$891264bo124$891391b2o$
891390b2o$891392bo143$891518b3o$891518bo$891519bo129$891647b2o$891646b
2o$891648bo127$891774b3o$891774bo$891775bo121$891903b2o$891902b2o$
891904bo107$892030b3o$892030bo$892031bo100$892159b2o$892159bobo$
892159bo134$892287b2o$892287bobo$892287bo112$892415b2o$892415bobo$
892415bo138$892543b2o$892543bobo$892543bo119$892671b2o$892671bobo$
892671bo157$892800b2o$892800bobo$892800bo137$892928b2o$892928bobo$
892928bo101$893056b2o$893056bobo$893056bo125$893184b2o$893184bobo$
893184bo133$893312b2o$893311b2o$893313bo118$893440b2o$893439b2o$
893441bo130$893568b2o$893567b2o$893569bo126$893696b2o$893696bobo$
893696bo113$893823b2o$893823bobo$893823bo134$893951b2o$893951bobo$
893951bo112$894079b2o$894079bobo$894079bo130$894207b2o$894207bobo$
894207bo138$894335b2o$894335bobo$894335bo129$894463b2o$894463bobo$
894463bo119$894591b2o$894590b2o$894592bo127$894719b2o$894718b2o$
894720bo118$894848b2o$894847b2o$894849bo119$894976b2o$894975b2o$
894977bo138$895104b2o$895103b2o$895105bo126$895231b3o$895231bo$895232b
o133$895359b3o$895359bo$895360bo82$895487b2o$895487bobo$895487bo128$
895616b2o$895616bobo$895616bo125$895744bo$895743b2o$895743bobo116$
895872bo$895871b2o$895871bobo134$895999bo$895998b2o$895998bobo136$
896127bo$896126b2o$896126bobo118$896256bo$896255b2o$896255bobo134$
896384b2o$896384bobo$896384bo98$896511b2o$896511bobo$896511bo116$
896639b2o$896639bobo$896639bo126$896768b2o$896768bobo$896768bo134$
896896b2o$896896bobo$896896bo135$897024bo$897023b2o$897023bobo128$
897151bo$897150b2o$897150bobo136$897280b2o$897280bobo$897280bo110$
897407b2o$897407bobo$897407bo132$897535bo$897534b2o$897534bobo122$
897664bo$897663b2o$897663bobo128$897791bo$897790b2o$897790bobo131$
897920b2o$897919b2o$897921bo134$898048b2o$898047b2o$898049bo103$
898175bo$898174b2o$898174bobo132$898304b2o$898303b2o$898305bo138$
898432b2o$898431b2o$898433bo122$898559b3o$898559bo$898560bo93$898687b
2o$898687bobo$898687bo121$898816b2o$898816bobo$898816bo123$898944b2o$
898944bobo$898944bo130$899072b2o$899071b2o$899073bo130$899199b3o$
899199bo$899200bo118$899327b3o$899327bo$899328bo134$899455b3o$899455bo
$899456bo135$899584bo$899583b2o$899583bobo129$899710b3o$899710bo$
899711bo125$899839bo$899838b2o$899838bobo135$899968b2o$899967b2o$
899969bo123$900096b2o$900095b2o$900097bo123$900224b2o$900223b2o$
900225bo134$900351b3o$900351bo$900352bo127$900479b3o$900479bo$900480bo
128$900607b3o$900607bo$900608bo120$900736b2o$900735b2o$900737bo114$
900863b3o$900863bo$900864bo144$900992b2o$900991b2o$900993bo124$901119b
2o$901118b2o$901120bo134$901247b2o$901246b2o$901248bo109$901375b2o$
901374b2o$901376bo138$901503b2o$901502b2o$901504bo122$901630b3o$
901630bo$901631bo166$901760b2o$901759b2o$901761bo149$901887b3o$901887b
o$901888bo130$902015b3o$902015bo$902016bo125$902143b3o$902143bo$
902144bo126$902272b2o$902271b2o$902273bo136$902400b2o$902399b2o$
902401bo119$902528b2o$902527b2o$902529bo126$902655b3o$902655bo$902656b
o111$902784b2o$902783b2o$902785bo126$902912b2o$902911b2o$902913bo122$
903040b2o$903040bobo$903040bo129$903168b2o$903168bobo$903168bo126$
903296b2o$903296bobo$903296bo113$903424b2o$903423b2o$903425bo125$
903552b2o$903552bobo$903552bo122$903680b2o$903679b2o$903681bo129$
903808b2o$903808bobo$903808bo130$903936b2o$903935b2o$903937bo118$
904064b2o$904063b2o$904065bo103$904192b2o$904191b2o$904193bo126$
904320b2o$904319b2o$904321bo138$904447b3o$904447bo$904448bo114$904576b
2o$904575b2o$904577bo131$904704b2o$904703b2o$904705bo119$904832b2o$
904831b2o$904833bo139$904960b2o$904959b2o$904961bo130$905088b2o$
905087b2o$905089bo113$905215b3o$905215bo$905216bo125$905343b3o$905343b
o$905344bo141$905472b2o$905471b2o$905473bo116$905599b2o$905599bobo$
905599bo123$905727b2o$905727bobo$905727bo119$905855b2o$905854b2o$
905856bo131$905983b2o$905983bobo$905983bo133$906111b2o$906110b2o$
906112bo144$906240b2o$906239b2o$906241bo123$906368b2o$906367b2o$
906369bo133$906496b2o$906495b2o$906497bo113$906624b2o$906623b2o$
906625bo123$906752b2o$906751b2o$906753bo116$906880b2o$906879b2o$
906881bo155$907008b2o$907007b2o$907009bo134$907135b3o$907135bo$907136b
o119$907264b2o$907263b2o$907265bo128$907391b3o$907391bo$907392bo122$
907519b3o$907519bo$907520bo115$907648bo$907647b2o$907647bobo141$
907774b3o$907774bo$907775bo126$907902b3o$907902bo$907903bo110$908031b
3o$908031bo$908032bo115$908159b2o$908158b2o$908160bo137$908287b2o$
908286b2o$908288bo123$908415b2o$908414b2o$908416bo122$908543b2o$
908542b2o$908544bo128$908671b2o$908670b2o$908672bo129$908799b2o$
908798b2o$908800bo143$908927b2o$908927bobo$908927bo116$909055b2o$
909055bobo$909055bo138$909183b2o$909183bobo$909183bo139$909311b2o$
909311bobo$909311bo108$909439b2o$909439bobo$909439bo158$909567b3o$
909567bo$909568bo126$909694b3o$909694bo$909695bo115$909823b2o$909823bo
bo$909823bo93$909951b2o$909951bobo$909951bo137$910079b3o$910079bo$
910080bo118$910207b3o$910207bo$910208bo99$910334b3o$910334bo$910335bo
94$910463b2o$910462b2o$910464bo143$910591b2o$910590b2o$910592bo132$
910719b2o$910719bobo$910719bo129$910847b2o$910847bobo$910847bo119$
910975b2o$910975bobo$910975bo131$911103b2o$911103bobo$911103bo122$
911231b2o$911230b2o$911232bo103$911359b2o$911359bobo$911359bo130$
911487b2o$911487bobo$911487bo123$911615b2o$911615bobo$911615bo118$
911743b2o$911742b2o$911744bo112$911871b3o$911871bo$911872bo122$911998b
3o$911998bo$911999bo128$912126b3o$912126bo$912127bo130$912255b3o$
912255bo$912256bo134$912383b2o$912383bobo$912383bo124$912511b2o$
912510b2o$912512bo138$912639b2o$912639bobo$912639bo130$912767b2o$
912766b2o$912768bo132$912895b2o$912895bobo$912895bo132$913023b2o$
913023bobo$913023bo133$913150b3o$913150bo$913151bo130$913279b3o$
913279bo$913280bo132$913407b3o$913407bo$913408bo105$913535bo$913534b2o
$913534bobo135$913663b3o$913663bo$913664bo127$913792bo$913791b2o$
913791bobo118$913919b2o$913919bobo$913919bo123$914047b2o$914047bobo$
914047bo120$914175b2o$914174b2o$914176bo125$914303b2o$914303bobo$
914303bo139$914431b2o$914431bobo$914431bo115$914559b2o$914559bobo$
914559bo147$914687b2o$914687bobo$914687bo118$914816b2o$914816bobo$
914816bo129$914944b2o$914944bobo$914944bo133$915072b2o$915072bobo$
915072bo115$915200b2o$915200bobo$915200bo134$915328b2o$915328bobo$
915328bo124$915456b2o$915456bobo$915456bo126$915584b2o$915584bobo$
915584bo136$915712b2o$915712bobo$915712bo116$915840b2o$915840bobo$
915840bo129$915968b2o$915968bobo$915968bo128$916096b2o$916096bobo$
916096bo131$916224b2o$916224bobo$916224bo122$916352b2o$916352bobo$
916352bo124$916480bo$916479b2o$916479bobo124$916607bo$916606b2o$
916606bobo140$916736b2o$916736bobo$916736bo112$916863bo$916862b2o$
916862bobo128$916991b2o$916991bobo$916991bo137$917120b2o$917120bobo$
917120bo123$917248b2o$917248bobo$917248bo128$917376b2o$917376bobo$
917376bo109$917504b2o$917503b2o$917505bo136$917632b2o$917632bobo$
917632bo119$917760b2o$917759b2o$917761bo143$917888b2o$917888bobo$
917888bo156$918015b3o$918015bo$918016bo138$918143b3o$918143bo$918144bo
136$918271b3o$918271bo$918272bo123$918399b3o$918399bo$918400bo126$
918527b3o$918527bo$918528bo118$918654b3o$918654bo$918655bo134$918783b
3o$918783bo$918784bo128$918911b3o$918911bo$918912bo122$919039b3o$
919039bo$919040bo125$919166b3o$919166bo$919167bo124$919295b3o$919295bo
$919296bo130$919422b3o$919422bo$919423bo129$919552bo$919551b2o$919551b
obo125$919679b3o$919679bo$919680bo111$919808bo$919807b2o$919807bobo
131$919934b3o$919934bo$919935bo126$920063b3o$920063bo$920064bo113$
920192b2o$920192bobo$920192bo117$920320b2o$920319b2o$920321bo119$
920448b2o$920447b2o$920449bo134$920576b2o$920575b2o$920577bo151$
920703b3o$920703bo$920704bo117$920832b2o$920831b2o$920833bo126$920959b
3o$920959bo$920960bo135$921087b3o$921087bo$921088bo132$921214b3o$
921214bo$921215bo126$921343b3o$921343bo$921344bo124$921470b3o$921470bo
$921471bo122$921599b3o$921599bo$921600bo128$921727b3o$921727bo$921728b
o119$921856bo$921855b2o$921855bobo121$921983b2o$921982b2o$921984bo129$
922111b2o$922110b2o$922112bo121$922239b2o$922238b2o$922240bo123$
922366b3o$922366bo$922367bo133$922495b2o$922494b2o$922496bo131$922623b
2o$922622b2o$922624bo124$922751b2o$922750b2o$922752bo118$922878b3o$
922878bo$922879bo118$923006b3o$923006bo$923007bo134$923134b3o$923134bo
$923135bo140$923263b3o$923263bo$923264bo118$923391b3o$923391bo$923392b
o124$923518b3o$923518bo$923519bo135$923648bo$923647b2o$923647bobo122$
923776bo$923775b2o$923775bobo116$923903b2o$923903bobo$923903bo128$
924032b2o$924032bobo$924032bo117$924160b2o$924159b2o$924161bo123$
924288b2o$924287b2o$924289bo126$924416b2o$924415b2o$924417bo116$
924544b2o$924543b2o$924545bo122$924672b2o$924671b2o$924673bo122$
924799b3o$924799bo$924800bo131$924928b2o$924927b2o$924929bo100$925056b
o$925055b2o$925055bobo126$925184bo$925183b2o$925183bobo124$925311b2o$
925311bobo$925311bo134$925439b2o$925439bobo$925439bo116$925568b2o$
925568bobo$925568bo112$925696b2o$925696bobo$925696bo130$925824b2o$
925824bobo$925824bo126$925951b2o$925951bobo$925951bo118$926080b2o$
926079b2o$926081bo126$926208b2o$926207b2o$926209bo127$926335b3o$
926335bo$926336bo130$926464b2o$926463b2o$926465bo124$926591b3o$926591b
o$926592bo114$926719b3o$926719bo$926720bo122$926847b3o$926847bo$
926848bo134$926975b3o$926975bo$926976bo141$927104b2o$927103b2o$927105b
o155$927231b3o$927231bo$927232bo126$927359b3o$927359bo$927360bo114$
927487b3o$927487bo$927488bo165$927615b2o$927615bobo$927615bo127$
927743b2o$927743bobo$927743bo125$927871b2o$927871bobo$927871bo117$
927999b2o$927999bobo$927999bo134$928127b2o$928127bobo$928127bo134$
928255b2o$928255bobo$928255bo118$928383b2o$928383bobo$928383bo123$
928511b2o$928511bobo$928511bo127$928639b3o$928639bo$928640bo132$
928766b3o$928766bo$928767bo118$928894b3o$928894bo$928895bo114$929023b
3o$929023bo$929024bo132$929150b3o$929150bo$929151bo116$929278b3o$
929278bo$929279bo132$929407b3o$929407bo$929408bo137$929535b2o$929535bo
bo$929535bo130$929663b2o$929663bobo$929663bo111$929791b2o$929790b2o$
929792bo134$929919b2o$929918b2o$929920bo90$930048b2o$930048bobo$
930048bo134$930176b2o$930176bobo$930176bo112$930304b2o$930304bobo$
930304bo138$930432b2o$930432bobo$930432bo119$930560b2o$930560bobo$
930560bo146$930687b2o$930687bobo$930687bo154$930815b2o$930814b2o$
930816bo131$930943b2o$930943bobo$930943bo146$931072b2o$931072bobo$
931072bo128$931200b2o$931200bobo$931200bo119$931327b2o$931327bobo$
931327bo80$931456b2o$931455b2o$931457bo127$931584b2o$931583b2o$931585b
o124$931711b3o$931711bo$931712bo118$931839b3o$931839bo$931840bo125$
931967b3o$931967bo$931968bo126$932095b3o$932095bo$932096bo134$932223b
3o$932223bo$932224bo143$932351b3o$932351bo$932352bo118$932479b3o$
932479bo$932480bo134$932607b3o$932607bo$932608bo139$932736bo$932735b2o
$932735bobo122$932863bo$932862b2o$932862bobo127$932990b3o$932990bo$
932991bo129$933120b2o$933120bobo$933120bo130$933248b2o$933248bobo$
933248bo113$933376b2o$933375b2o$933377bo134$933504b2o$933504bobo$
933504bo120$933632b2o$933631b2o$933633bo125$933759b2o$933758b2o$
933760bo126$933887b2o$933886b2o$933888bo121$934014b3o$934014bo$934015b
o152$934144b2o$934144bobo$934144bo121$934270b3o$934270bo$934271bo129$
934398b3o$934398bo$934399bo126$934526b3o$934526bo$934527bo111$934654b
3o$934654bo$934655bo126$934783b2o$934783bobo$934783bo136$934911b2o$
934911bobo$934911bo119$935039b2o$935039bobo$935039bo124$935167b2o$
935166b2o$935168bo119$935295b2o$935294b2o$935296bo139$935423b2o$
935423bobo$935423bo125$935551b2o$935551bobo$935551bo118$935679b2o$
935679bobo$935679bo115$935807b2o$935807bobo$935807bo97$935935b3o$
935935bo$935936bo129$936064b2o$936063b2o$936065bo130$936192b2o$936191b
2o$936193bo128$936319b3o$936319bo$936320bo125$936448b2o$936447b2o$
936449bo136$936576b2o$936575b2o$936577bo125$936703b3o$936703bo$936704b
o113$936831b3o$936831bo$936832bo128$936959b3o$936959bo$936960bo122$
937087b3o$937087bo$937088bo125$937214b3o$937214bo$937215bo122$937342b
3o$937342bo$937343bo134$937470b3o$937470bo$937471bo114$937599b3o$
937599bo$937600bo162$937727b3o$937727bo$937728bo97$937856bo$937855b2o$
937855bobo135$937983b3o$937983bo$937984bo108$938110b3o$938110bo$
938111bo142$938238b3o$938238bo$938239bo145$938367b3o$938367bo$938368bo
126$938495b3o$938495bo$938496bo123$938623bo$938622b2o$938622bobo138$
938752bo$938751b2o$938751bobo120$938879bo$938878b2o$938878bobo118$
939008bo$939007b2o$939007bobo126$939135bo$939134b2o$939134bobo119$
939262b3o$939262bo$939263bo140$939390b3o$939390bo$939391bo113$939520b
2o$939519b2o$939521bo130$939648b2o$939647b2o$939649bo124$939776b2o$
939775b2o$939777bo132$939904b2o$939903b2o$939905bo117$940031b3o$
940031bo$940032bo142$940160b2o$940159b2o$940161bo123$940288b2o$940287b
2o$940289bo131$940415bo$940414b2o$940414bobo126$940544bo$940543b2o$
940543bobo140$940671b2o$940671bobo$940671bo122$940800bo$940799b2o$
940799bobo116$940928bo$940927b2o$940927bobo126$941056bo$941055b2o$
941055bobo120$941183bo$941182b2o$941182bobo118$941311bo$941310b2o$
941310bobo120$941440b2o$941439b2o$941441bo136$941568b2o$941567b2o$
941569bo127$941696b2o$941695b2o$941697bo116$941824b2o$941823b2o$
941825bo116$941952b2o$941951b2o$941953bo113$942080b2o$942079b2o$
942081bo141$942208b2o$942207b2o$942209bo127$942336b2o$942335b2o$
942337bo131$942464b2o$942463b2o$942465bo125$942592b2o$942591b2o$
942593bo136$942720b2o$942719b2o$942721bo121$942848b2o$942847b2o$
942849bo121$942976b2o$942975b2o$942977bo99$943103b3o$943103bo$943104bo
136$943231b3o$943231bo$943232bo160$943360b2o$943359b2o$943361bo128$
943488b2o$943487b2o$943489bo133$943614b3o$943614bo$943615bo144$943743b
o$943742b2o$943742bobo118$943870b3o$943870bo$943871bo114$943998b3o$
943998bo$943999bo124$944127b3o$944127bo$944128bo128$944255b3o$944255bo
$944256bo128$944382b3o$944382bo$944383bo103$944512b2o$944511b2o$
944513bo126$944640b2o$944639b2o$944641bo127$944768b2o$944767b2o$
944769bo140$944896b2o$944895b2o$944897bo124$945024b2o$945023b2o$
945025bo129$945151b3o$945151bo$945152bo115$945279b3o$945279bo$945280bo
115$945407b3o$945407bo$945408bo124$945536bo$945535b2o$945535bobo126$
945664bo$945663b2o$945663bobo136$945791b2o$945791bobo$945791bo104$
945919b2o$945919bobo$945919bo136$946047b2o$946047bobo$946047bo117$
946174b3o$946174bo$946175bo124$946303b3o$946303bo$946304bo138$946431b
3o$946431bo$946432bo118$946558b3o$946558bo$946559bo124$946686b3o$
946686bo$946687bo140$946814b3o$946814bo$946815bo135$946943bo$946942b2o
$946942bobo115$947070b3o$947070bo$947071bo145$947200bo$947199b2o$
947199bobo150$947328bo$947327b2o$947327bobo134$947455bo$947454b2o$
947454bobo126$947583bo$947582b2o$947582bobo126$947711bo$947710b2o$
947710bobo112$947839bo$947838b2o$947838bobo134$947967bo$947966b2o$
947966bobo118$948095b2o$948095bobo$948095bo130$948224bo$948223b2o$
948223bobo120$948351b2o$948351bobo$948351bo136$948479b2o$948479bobo$
948479bo117$948607b2o$948606b2o$948608bo134$948735b2o$948734b2o$
948736bo119$948863b2o$948862b2o$948864bo112$948990b3o$948990bo$948991b
o126$949119b2o$949118b2o$949120bo135$949246b3o$949246bo$949247bo135$
949375b2o$949374b2o$949376bo137$949502b3o$949502bo$949503bo87$949631b
2o$949631bobo$949631bo116$949759b2o$949759bobo$949759bo138$949887b2o$
949887bobo$949887bo129$950015b2o$950015bobo$950015bo124$950143b2o$
950143bobo$950143bo123$950271b2o$950271bobo$950271bo140$950399b2o$
950399bobo$950399bo126$950527b2o$950527bobo$950527bo119$950655b2o$
950655bobo$950655bo134$950783b2o$950783bobo$950783bo134$950911b2o$
950910b2o$950912bo136$951039b2o$951039bobo$951039bo117$951167b2o$
951167bobo$951167bo132$951295b2o$951295bobo$951295bo135$951424bo$
951423b2o$951423bobo122$951552bo$951551b2o$951551bobo134$951680bo$
951679b2o$951679bobo132$951807bo$951806b2o$951806bobo120$951935b2o$
951935bobo$951935bo120$952063b2o$952063bobo$952063bo126$952191b2o$
952190b2o$952192bo123$952319b2o$952318b2o$952320bo134$952447b2o$
952446b2o$952448bo120$952575b2o$952574b2o$952576bo123$952702b3o$
952702bo$952703bo124$952831b2o$952830b2o$952832bo119$952958b3o$952958b
o$952959bo126$953088bo$953087b2o$953087bobo122$953216bo$953215b2o$
953215bobo80$953343b2o$953343bobo$953343bo122$953471b2o$953471bobo$
953471bo111$953599b2o$953599bobo$953599bo162$953727b2o$953726b2o$
953728bo134$953855b2o$953855bobo$953855bo118$953983b2o$953983bobo$
953983bo111$954111b2o$954110b2o$954112bo114$954239b2o$954238b2o$
954240bo148$954367b2o$954367bobo$954367bo117$954495b2o$954494b2o$
954496bo134$954623b2o$954622b2o$954624bo109$954751b2o$954750b2o$
954752bo138$954879b2o$954878b2o$954880bo122$955006b3o$955006bo$955007b
o162$955136bo$955135b2o$955135bobo132$955263b2o$955263bobo$955263bo
112$955392b2o$955392bobo$955392bo144$955519bo$955518b2o$955518bobo134$
955647b2o$955647bobo$955647bo104$955775b2o$955775bobo$955775bo126$
955903b2o$955902b2o$955904bo129$956031b2o$956030b2o$956032bo126$
956159b2o$956158b2o$956160bo111$956287b2o$956286b2o$956288bo128$
956414b3o$956414bo$956415bo130$956542b3o$956542bo$956543bo136$956670b
3o$956670bo$956671bo142$956798b3o$956798bo$956799bo117$956927b2o$
956927bobo$956927bo134$957055b2o$957055bobo$957055bo114$957183b2o$
957183bobo$957183bo118$957311b2o$957310b2o$957312bo122$957439b2o$
957438b2o$957440bo137$957567b2o$957567bobo$957567bo127$957695b2o$
957695bobo$957695bo106$957823b2o$957823bobo$957823bo126$957951bo$
957950b2o$957950bobo134$958080bo$958079b2o$958079bobo118$958208bo$
958207b2o$958207bobo102$958336b2o$958336bobo$958336bo134$958464bo$
958463b2o$958463bobo126$958591b2o$958591bobo$958591bo126$958720bo$
958719b2o$958719bobo116$958848bo$958847b2o$958847bobo126$958976bo$
958975b2o$958975bobo126$959104bo$959103b2o$959103bobo140$959232bo$
959231b2o$959231bobo118$959360bo$959359b2o$959359bobo136$959488b2o$
959488bobo$959488bo120$959615bo$959614b2o$959614bobo122$959743b2o$
959743bobo$959743bo127$959872b2o$959872bobo$959872bo136$960000b2o$
960000bobo$960000bo119$960128b2o$960128bobo$960128bo126$960256b2o$
960255b2o$960257bo121$960384b2o$960383b2o$960385bo121$960512b2o$
960512bobo$960512bo123$960640b2o$960639b2o$960641bo117$960768b2o$
960768bobo$960768bo140$960896b2o$960896bobo$960896bo126$961023b3o$
961023bo$961024bo122$961151b3o$961151bo$961152bo122$961279b3o$961279bo
$961280bo126$961407b3o$961407bo$961408bo124$961535b3o$961535bo$961536b
o115$961664bo$961663b2o$961663bobo138$961791bo$961790b2o$961790bobo
139$961918b3o$961918bo$961919bo119$962047bo$962046b2o$962046bobo116$
962176b2o$962176bobo$962176bo123$962304b2o$962304bobo$962304bo123$
962432b2o$962432bobo$962432bo134$962560b2o$962559b2o$962561bo137$
962688b2o$962687b2o$962689bo121$962816b2o$962816bobo$962816bo114$
962944b2o$962944bobo$962944bo132$963072b2o$963072bobo$963072bo125$
963199b2o$963199bobo$963199bo127$963327b2o$963327bobo$963327bo111$
963455b2o$963455bobo$963455bo137$963583b2o$963582b2o$963584bo114$
963711b2o$963711bobo$963711bo118$963839b2o$963839bobo$963839bo151$
963967b2o$963967bobo$963967bo111$964096bo$964095b2o$964095bobo118$
964224bo$964223b2o$964223bobo134$964352bo$964351b2o$964351bobo148$
964479bo$964478b2o$964478bobo126$964607bo$964606b2o$964606bobo122$
964736b2o$964736bobo$964736bo126$964863b2o$964863bobo$964863bo203$
964992bo$964991b2o$964991bobo122$965120bo$965119b2o$965119bobo142$
965247b2o$965247bobo$965247bo106$965375b2o$965375bobo$965375bo120$
965504bo$965503b2o$965503bobo150$965632b2o$965632bobo$965632bo120$
965760b2o$965760bobo$965760bo120$965888b2o$965888bobo$965888bo132$
966015b2o$966015bobo$966015bo130$966143b2o$966143bobo$966143bo113$
966271b2o$966270b2o$966272bo133$966399b2o$966399bobo$966399bo127$
966527b2o$966526b2o$966528bo125$966655b2o$966655bobo$966655bo132$
966782b3o$966782bo$966783bo126$966910b3o$966910bo$966911bo120$967039b
3o$967039bo$967040bo120$967167b3o$967167bo$967168bo142$967295b3o$
967295bo$967296bo120$967422b3o$967422bo$967423bo124$967550b3o$967550bo
$967551bo118$967678b3o$967678bo$967679bo140$967806b3o$967806bo$967807b
o122$967934b3o$967934bo$967935bo114$968062b3o$968062bo$968063bo124$
968191b3o$968191bo$968192bo131$968319bo$968318b2o$968318bobo126$
968448bo$968447b2o$968447bobo127$968576b2o$968576bobo$968576bo126$
968704b2o$968704bobo$968704bo124$968832b2o$968831b2o$968833bo129$
968960b2o$968959b2o$968961bo117$969088b2o$969087b2o$969089bo131$
969216b2o$969216bobo$969216bo139$969344b2o$969343b2o$969345bo121$
969472b2o$969471b2o$969473bo108$969600b2o$969600bobo$969600bo125$
969727b2o$969726b2o$969728bo123$969855b2o$969854b2o$969856bo124$
969982b3o$969982bo$969983bo124$970110b3o$970110bo$970111bo137$970239b
2o$970238b2o$970240bo126$970366b3o$970366bo$970367bo130$970495b2o$
970494b2o$970496bo132$970623b2o$970622b2o$970624bo109$970751b2o$
970750b2o$970752bo118$970879b2o$970878b2o$970880bo126$971007b2o$
971006b2o$971008bo124$971135b2o$971134b2o$971136bo120$971263b2o$
971262b2o$971264bo132$971391b2o$971390b2o$971392bo127$971518b3o$
971518bo$971519bo141$971647b2o$971646b2o$971648bo117$971774b3o$971774b
o$971775bo132$971902b3o$971902bo$971903bo117$972031b2o$972031bobo$
972031bo127$972159b2o$972159bobo$972159bo112$972287b2o$972287bobo$
972287bo128$972415b2o$972415bobo$972415bo131$972543b2o$972542b2o$
972544bo134$972671b2o$972671bobo$972671bo136$972799b3o$972799bo$
972800bo122$972927b3o$972927bo$972928bo131$973055bo$973054b2o$973054bo
bo131$973182b3o$973182bo$973183bo130$973311b3o$973311bo$973312bo116$
973439b3o$973439bo$973440bo127$973567b2o$973566b2o$973568bo117$973695b
2o$973694b2o$973696bo135$973823b2o$973822b2o$973824bo136$973951b2o$
973950b2o$973952bo142$974078b3o$974078bo$974079bo89$974206b3o$974206bo
$974207bo136$974335bo$974334b2o$974334bobo122$974463bo$974462b2o$
974462bobo134$974591bo$974590b2o$974590bobo134$974720bo$974719b2o$
974719bobo120$974848b2o$974848bobo$974848bo120$974976b2o$974976bobo$
974976bo134$975104bo$975103b2o$975103bobo124$975231bo$975230b2o$
975230bobo140$975359bo$975358b2o$975358bobo122$975487bo$975486b2o$
975486bobo118$975616b2o$975616bobo$975616bo126$975744bo$975743b2o$
975743bobo138$975871b3o$975871bo$975872bo134$975998b3o$975998bo$
975999bo126$976126b3o$976126bo$976127bo112$976254b3o$976254bo$976255bo
144$976383b3o$976383bo$976384bo106$976510b3o$976510bo$976511bo139$
976640bo$976639b2o$976639bobo128$976767bo$976766b2o$976766bobo130$
976896b2o$976896bobo$976896bo128$977024b2o$977024bobo$977024bo130$
977152bo$977151b2o$977151bobo120$977280b2o$977280bobo$977280bo132$
977408b2o$977408bobo$977408bo130$977535bo$977534b2o$977534bobo118$
977663b2o$977663bobo$977663bo134$977792bo$977791b2o$977791bobo122$
977920bo$977919b2o$977919bobo116$978047bo$978046b2o$978046bobo142$
978176b2o$978176bobo$978176bo132$978304b2o$978304bobo$978304bo118$
978431b2o$978431bobo$978431bo114$978559b2o$978559bobo$978559bo149$
978687b2o$978687bobo$978687bo122$978815b2o$978815bobo$978815bo130$
978943b2o$978942b2o$978944bo130$979071b2o$979071bobo$979071bo122$
979199b2o$979199bobo$979199bo130$979327b2o$979326b2o$979328bo130$
979455b2o$979455bobo$979455bo125$979583b2o$979583bobo$979583bo121$
979711b2o$979710b2o$979712bo139$979839b2o$979839bobo$979839bo131$
979968b2o$979968bobo$979968bo165$980095bo$980094b2o$980094bobo124$
980224bo$980223b2o$980223bobo132$980351bo$980350b2o$980350bobo122$
980480bo$980479b2o$980479bobo124$980608bo$980607b2o$980607bobo132$
980735bo$980734b2o$980734bobo138$980863b2o$980863bobo$980863bo136$
980991b2o$980991bobo$980991bo125$981119b2o$981119bobo$981119bo121$
981247b2o$981246b2o$981248bo139$981375b2o$981375bobo$981375bo131$
981503b3o$981503bo$981504bo122$981631b3o$981631bo$981632bo128$981759b
3o$981759bo$981760bo128$981887b3o$981887bo$981888bo108$982014b3o$
982014bo$982015bo128$982143b3o$982143bo$982144bo98$982272b2o$982272bob
o$982272bo119$982400b2o$982400bobo$982400bo143$982528b2o$982528bobo$
982528bo127$982656b2o$982656bobo$982656bo120$982784b2o$982784bobo$
982784bo116$982912b2o$982911b2o$982913bo130$983040b2o$983040bobo$
983040bo126$983168b2o$983168bobo$983168bo110$983296b2o$983296bobo$
983296bo117$983424b2o$983424bobo$983424bo111$983552b2o$983552bobo$
983552bo146$983680b2o$983679b2o$983681bo125$983808b2o$983808bobo$
983808bo126$983936b2o$983936bobo$983936bo140$984064b2o$984063b2o$
984065bo128$984192b2o$984192bobo$984192bo111$984320b2o$984320bobo$
984320bo125$984448b2o$984448bobo$984448bo124$984576b2o$984575b2o$
984577bo132$984704b2o$984704bobo$984704bo115$984832b2o$984832bobo$
984832bo130$984960b2o$984960bobo$984960bo127$985088b2o$985088bobo$
985088bo119$985216b2o$985216bobo$985216bo124$985344b2o$985343b2o$
985345bo140$985472b2o$985471b2o$985473bo104$985600b2o$985599b2o$
985601bo134$985728b2o$985728bobo$985728bo120$985856b2o$985856bobo$
985856bo130$985984b2o$985984bobo$985984bo113$986112b2o$986111b2o$
986113bo132$986240b2o$986239b2o$986241bo134$986368b2o$986368bobo$
986368bo118$986496b2o$986496bobo$986496bo137$986624b2o$986623b2o$
986625bo115$986752b2o$986752bobo$986752bo118$986879b2o$986878b2o$
986880bo130$987007b2o$987006b2o$987008bo128$987134b3o$987134bo$987135b
o115$987262b3o$987262bo$987263bo121$987390b3o$987390bo$987391bo138$
987518b3o$987518bo$987519bo123$987646b3o$987646bo$987647bo119$987774b
3o$987774bo$987775bo150$987904b2o$987903b2o$987905bo130$988032b2o$
988031b2o$988033bo118$988160b2o$988159b2o$988161bo127$988288b2o$
988287b2o$988289bo115$988415b3o$988415bo$988416bo141$988544b2o$988543b
2o$988545bo134$988671b3o$988671bo$988672bo127$988799b3o$988799bo$
988800bo117$988928b2o$988927b2o$988929bo130$989056b2o$989055b2o$
989057bo126$989184b2o$989183b2o$989185bo132$989311b3o$989311bo$989312b
o119$989439b3o$989439bo$989440bo127$989568b2o$989567b2o$989569bo126$
989696b2o$989695b2o$989697bo134$989823b3o$989823bo$989824bo124$989951b
o$989950b2o$989950bobo116$990079bo$990078b2o$990078bobo132$990208bo$
990207b2o$990207bobo130$990335bo$990334b2o$990334bobo114$990463b2o$
990463bobo$990463bo134$990591b2o$990591bobo$990591bo126$990718b3o$
990718bo$990719bo124$990847b3o$990847bo$990848bo126$990975b3o$990975bo
$990976bo132$991102b3o$991102bo$991103bo126$991230b3o$991230bo$991231b
o115$991360bo$991359b2o$991359bobo142$991488bo$991487b2o$991487bobo
108$991616b2o$991615b2o$991617bo136$991744b2o$991743b2o$991745bo121$
991872b2o$991871b2o$991873bo121$992000b2o$991999b2o$992001bo141$
992128b2o$992127b2o$992129bo123$992255b3o$992255bo$992256bo126$992383b
3o$992383bo$992384bo135$992511b3o$992511bo$992512bo128$992638b3o$
992638bo$992639bo124$992766b3o$992766bo$992767bo134$992894b3o$992894bo
$992895bo116$993023b3o$993023bo$993024bo134$993151b3o$993151bo$993152b
o135$993279b3o$993279bo$993280bo132$993406b3o$993406bo$993407bo120$
993535b3o$993535bo$993536bo118$993663b3o$993663bo$993664bo110$993791b
2o$993790b2o$993792bo123$993919b2o$993918b2o$993920bo123$994047b2o$
994046b2o$994048bo131$994175b2o$994174b2o$994176bo114$994302b3o$
994302bo$994303bo141$994430b3o$994430bo$994431bo105$994558b3o$994558bo
$994559bo127$994688b2o$994688bobo$994688bo123$994816b2o$994816bobo$
994816bo134$994944b2o$994944bobo$994944bo113$995072b2o$995071b2o$
995073bo141$995200b2o$995199b2o$995201bo108$995328b2o$995327b2o$
995329bo130$995456b2o$995455b2o$995457bo127$995582b3o$995582bo$995583b
o124$995711b3o$995711bo$995712bo130$995838b3o$995838bo$995839bo134$
995967b3o$995967bo$995968bo113$996096bo$996095b2o$996095bobo124$
996224bo$996223b2o$996223bobo135$996351b3o$996351bo$996352bo131$
996479bo$996478b2o$996478bobo147$996607b3o$996607bo$996608bo126$
996734b3o$996734bo$996735bo117$996863b2o$996862b2o$996864bo116$996991b
2o$996990b2o$996992bo176$997120bo$997119b2o$997119bobo131$997246b3o$
997246bo$997247bo116$997375b3o$997375bo$997376bo125$997503b2o$997502b
2o$997504bo130$997631b2o$997630b2o$997632bo124$997759b2o$997758b2o$
997760bo143$997886b3o$997886bo$997887bo124$998015b2o$998014b2o$998016b
o120$998142b3o$998142bo$998143bo96$998271b2o$998270b2o$998272bo130$
998399b2o$998398b2o$998400bo118$998527b2o$998526b2o$998528bo127$
998655b2o$998654b2o$998656bo128$998782b3o$998782bo$998783bo130$998910b
3o$998910bo$998911bo111$999038b3o$999038bo$999039bo118$999168b2o$
999167b2o$999169bo130$999296b2o$999295b2o$999297bo129$999424b2o$
999423b2o$999425bo126$999551b3o$999551bo$999552bo108$999680b2o$999679b
2o$999681bo116$999808b2o$999807b2o$999809bo136$999935b2o$999934b2o$
999936bo130$1000063b2o$1000062b2o$1000064bo133$1000190b3o$1000190bo$
1000191bo157$1000319b2o$1000318b2o$1000320bo120$1000447b2o$1000446b2o$
1000448bo115$1000574b3o$1000574bo$1000575bo115$1000702b3o$1000702bo$
1000703bo115$1000830b3o$1000830bo$1000831bo126$1000959b2o$1000958b2o$
1000960bo192$1001087bo$1001086b2o$1001086bobo134$1001216bo$1001215b2o$
1001215bobo118$1001343bo$1001342b2o$1001342bobo118$1001471bo$1001470b
2o$1001470bobo113$1001600b2o$1001600bobo$1001600bo126$1001728b2o$
1001728bobo$1001728bo135$1001856b2o$1001856bobo$1001856bo125$1001984b
2o$1001984bobo$1001984bo128$1002112b2o$1002111b2o$1002113bo122$
1002240b2o$1002240bobo$1002240bo121$1002368b2o$1002368bobo$1002368bo
127$1002495b3o$1002495bo$1002496bo122$1002623b3o$1002623bo$1002624bo
121$1002752bo$1002751b2o$1002751bobo116$1002880bo$1002879b2o$1002879bo
bo125$1003007b3o$1003007bo$1003008bo130$1003134b3o$1003134bo$1003135bo
130$1003263b3o$1003263bo$1003264bo124$1003391b3o$1003391bo$1003392bo
165$1003519b2o$1003519bobo$1003519bo130$1003647b2o$1003647bobo$
1003647bo130$1003776bo$1003775b2o$1003775bobo134$1003903b2o$1003903bob
o$1003903bo118$1004032b2o$1004032bobo$1004032bo123$1004160b2o$1004160b
obo$1004160bo130$1004288b2o$1004288bobo$1004288bo114$1004416b2o$
1004416bobo$1004416bo129$1004544b2o$1004543b2o$1004545bo127$1004672b2o
$1004672bobo$1004672bo130$1004800b2o$1004800bobo$1004800bo142$1004928b
2o$1004928bobo$1004928bo125$1005056bo$1005055b2o$1005055bobo122$
1005183bo$1005182b2o$1005182bobo132$1005312bo$1005311b2o$1005311bobo
132$1005440b2o$1005440bobo$1005440bo120$1005567b2o$1005567bobo$
1005567bo112$1005696b2o$1005696bobo$1005696bo150$1005824b2o$1005824bob
o$1005824bo120$1005951b2o$1005951bobo$1005951bo118$1006080bo$1006079b
2o$1006079bobo140$1006208b2o$1006208bobo$1006208bo125$1006336b2o$
1006336bobo$1006336bo127$1006464b2o$1006464bobo$1006464bo131$1006592b
2o$1006591b2o$1006593bo120$1006720b2o$1006720bobo$1006720bo116$
1006848b2o$1006848bobo$1006848bo111$1006975b2o$1006974b2o$1006976bo
129$1007103b2o$1007102b2o$1007104bo126$1007231b2o$1007230b2o$1007232bo
119$1007359b2o$1007358b2o$1007360bo132$1007486b3o$1007486bo$1007487bo
135$1007615b2o$1007614b2o$1007616bo120$1007743b2o$1007742b2o$1007744bo
124$1007870b3o$1007870bo$1007871bo108$1007998b3o$1007998bo$1007999bo
126$1008127b2o$1008127bobo$1008127bo129$1008255b2o$1008255bobo$
1008255bo133$1008383b2o$1008383bobo$1008383bo116$1008511b2o$1008511bob
o$1008511bo126$1008639b2o$1008639bobo$1008639bo133$1008767b2o$1008766b
2o$1008768bo136$1008895b2o$1008895bobo$1008895bo107$1009023b2o$
1009022b2o$1009024bo130$1009151b2o$1009150b2o$1009152bo120$1009279b2o$
1009279bobo$1009279bo128$1009407bo$1009406b2o$1009406bobo126$1009536bo
$1009535b2o$1009535bobo138$1009663b2o$1009663bobo$1009663bo118$
1009792bo$1009791b2o$1009791bobo116$1009919bo$1009918b2o$1009918bobo
118$1010047bo$1010046b2o$1010046bobo151$1010175b2o$1010175bobo$
1010175bo134$1010303b2o$1010303bobo$1010303bo114$1010431b2o$1010431bob
o$1010431bo133$1010559b2o$1010558b2o$1010560bo122$1010687b2o$1010687bo
bo$1010687bo120$1010815b2o$1010814b2o$1010816bo108$1010943b2o$1010942b
2o$1010944bo129$1011071b2o$1011070b2o$1011072bo126$1011199b2o$1011198b
2o$1011200bo129$1011326b3o$1011326bo$1011327bo109$1011454b3o$1011454bo
$1011455bo128$1011583b2o$1011582b2o$1011584bo130$1011711b2o$1011710b2o
$1011712bo132$1011839bo$1011838b2o$1011838bobo130$1011968bo$1011967b2o
$1011967bobo124$1012096bo$1012095b2o$1012095bobo140$1012223bo$1012222b
2o$1012222bobo124$1012352bo$1012351b2o$1012351bobo132$1012480b2o$
1012480bobo$1012480bo128$1012608b2o$1012608bobo$1012608bo125$1012736b
2o$1012735b2o$1012737bo130$1012864b2o$1012863b2o$1012865bo167$1012992b
2o$1012991b2o$1012993bo125$1013120b2o$1013120bobo$1013120bo116$
1013246b3o$1013246bo$1013247bo134$1013375b3o$1013375bo$1013376bo122$
1013502b3o$1013502bo$1013503bo132$1013631b3o$1013631bo$1013632bo120$
1013758b3o$1013758bo$1013759bo136$1013887b3o$1013887bo$1013888bo128$
1014014b3o$1014014bo$1014015bo132$1014143b3o$1014143bo$1014144bo121$
1014271b2o$1014271bobo$1014271bo126$1014399b2o$1014399bobo$1014399bo
132$1014527b2o$1014526b2o$1014528bo131$1014655b2o$1014655bobo$1014655b
o127$1014783b2o$1014782b2o$1014784bo104$1014911b2o$1014910b2o$1014912b
o139$1015039b2o$1015039bobo$1015039bo126$1015167b2o$1015166b2o$
1015168bo123$1015295b2o$1015294b2o$1015296bo142$1015422b3o$1015422bo$
1015423bo105$1015551b2o$1015550b2o$1015552bo115$1015678b3o$1015678bo$
1015679bo132$1015806b3o$1015806bo$1015807bo113$1015934b3o$1015934bo$
1015935bo115$1016062b3o$1016062bo$1016063bo123$1016191b3o$1016191bo$
1016192bo115$1016320b2o$1016319b2o$1016321bo132$1016447b3o$1016447bo$
1016448bo106$1016576b2o$1016576bobo$1016576bo123$1016704b2o$1016704bob
o$1016704bo141$1016832b2o$1016831b2o$1016833bo129$1016960b2o$1016960bo
bo$1016960bo117$1017088b2o$1017088bobo$1017088bo121$1017216b2o$
1017216bobo$1017216bo139$1017344b2o$1017343b2o$1017345bo138$1017472b2o
$1017472bobo$1017472bo133$1017600bo$1017599b2o$1017599bobo122$1017728b
o$1017727b2o$1017727bobo116$1017855b2o$1017855bobo$1017855bo140$
1017983bo$1017982b2o$1017982bobo112$1018111b2o$1018111bobo$1018111bo
128$1018239bo$1018238b2o$1018238bobo120$1018367b2o$1018367bobo$
1018367bo125$1018496b2o$1018496bobo$1018496bo117$1018624b2o$1018624bob
o$1018624bo133$1018752b2o$1018752bobo$1018752bo140$1018880b2o$1018879b
2o$1018881bo123$1019008b2o$1019008bobo$1019008bo110$1019136b2o$
1019136bobo$1019136bo131$1019264b2o$1019264bobo$1019264bo130$1019392b
2o$1019391b2o$1019393bo114$1019520b2o$1019520bobo$1019520bo131$
1019648b2o$1019647b2o$1019649bo130$1019776b2o$1019775b2o$1019777bo135$
1019904b2o$1019903b2o$1019905bo116$1020031b3o$1020031bo$1020032bo49$
1020158b3o$1020158bo$1020159bo130$1020287b3o$1020287bo$1020288bo125$
1020416bo$1020415b2o$1020415bobo136$1020544bo$1020543b2o$1020543bobo
114$1020671bo$1020670b2o$1020670bobo127$1020798b3o$1020798bo$1020799bo
85$1020927b2o$1020927bobo$1020927bo134$1021055b2o$1021055bobo$1021055b
o112$1021183b2o$1021183bobo$1021183bo138$1021311b2o$1021311bobo$
1021311bo119$1021439b2o$1021439bobo$1021439bo62$1021567b2o$1021567bobo
$1021567bo124$1021695b2o$1021695bobo$1021695bo118$1021823b2o$1021823bo
bo$1021823bo123$1021951b2o$1021951bobo$1021951bo128$1022079b2o$
1022079bobo$1022079bo118$1022207b2o$1022207bobo$1022207bo126$1022335b
2o$1022335bobo$1022335bo119$1022463b2o$1022463bobo$1022463bo128$
1022591b2o$1022591bobo$1022591bo118$1022719b2o$1022719bobo$1022719bo
127$1022846b3o$1022846bo$1022847bo116$1022974b3o$1022974bo$1022975bo
132$1023103b3o$1023103bo$1023104bo122$1023230b3o$1023230bo$1023231bo
120$1023358b3o$1023358bo$1023359bo148$1023486b3o$1023486bo$1023487bo
118$1023614b3o$1023614bo$1023615bo119$1023742b3o$1023742bo$1023743bo
116$1023870b3o$1023870bo$1023871bo134$1023999b3o$1023999bo$1024000bo
120$1024126b3o$1024126bo$1024127bo121$1024256bo$1024255b2o$1024255bobo
156$1024383bo$1024382b2o$1024382bobo128$1024512bo$1024511b2o$1024511bo
bo128$1024639bo$1024638b2o$1024638bobo128$1024768bo$1024767b2o$
1024767bobo117$1024895b3o$1024895bo$1024896bo134$1025024bo$1025023b2o$
1025023bobo118$1025152bo$1025151b2o$1025151bobo134$1025280bo$1025279b
2o$1025279bobo140$1025408b2o$1025408bobo$1025408bo128$1025536b2o$
1025536bobo$1025536bo134$1025664b2o$1025664bobo$1025664bo100$1025792bo
$1025791b2o$1025791bobo124$1025919b2o$1025919bobo$1025919bo126$
1026048b2o$1026048bobo$1026048bo126$1026176b2o$1026176bobo$1026176bo
123$1026304b2o$1026304bobo$1026304bo130$1026432b2o$1026431b2o$1026433b
o139$1026560b2o$1026560bobo$1026560bo138$1026688b2o$1026688bobo$
1026688bo119$1026816b2o$1026816bobo$1026816bo111$1026944bo$1026943b2o$
1026943bobo122$1027072bo$1027071b2o$1027071bobo124$1027199b2o$1027199b
obo$1027199bo136$1027328bo$1027327b2o$1027327bobo132$1027456bo$
1027455b2o$1027455bobo132$1027584b2o$1027584bobo$1027584bo140$1027712b
2o$1027712bobo$1027712bo82$1027840bo$1027839b2o$1027839bobo136$
1027967b3o$1027967bo$1027968bo118$1028095b3o$1028095bo$1028096bo134$
1028223b3o$1028223bo$1028224bo134$1028351b3o$1028351bo$1028352bo142$
1028479b3o$1028479bo$1028480bo127$1028607bo$1028606b2o$1028606bobo116$
1028736bo$1028735b2o$1028735bobo113$1028863b3o$1028863bo$1028864bo126$
1028991b3o$1028991bo$1028992bo128$1029118b3o$1029118bo$1029119bo125$
1029247bo$1029246b2o$1029246bobo126$1029375bo$1029374b2o$1029374bobo
133$1029503b3o$1029503bo$1029504bo130$1029630b3o$1029630bo$1029631bo
137$1029759bo$1029758b2o$1029758bobo123$1029887b3o$1029887bo$1029888bo
124$1030014b3o$1030014bo$1030015bo137$1030143bo$1030142b2o$1030142bobo
137$1030271b3o$1030271bo$1030272bo104$1030398b3o$1030398bo$1030399bo
130$1030527b3o$1030527bo$1030528bo134$1030655b3o$1030655bo$1030656bo
125$1030783b2o$1030783bobo$1030783bo123$1030911b2o$1030911bobo$
1030911bo126$1031039b2o$1031039bobo$1031039bo119$1031167b2o$1031166b2o
$1031168bo126$1031295b2o$1031294b2o$1031296bo146$1031423b2o$1031422b2o
$1031424bo118$1031551b2o$1031550b2o$1031552bo115$1031679b2o$1031678b2o
$1031680bo130$1031807b2o$1031806b2o$1031808bo134$1031935b2o$1031934b2o
$1031936bo130$1032063b2o$1032062b2o$1032064bo130$1032191b2o$1032190b2o
$1032192bo136$1032318b3o$1032318bo$1032319bo111$1032446b3o$1032446bo$
1032447bo135$1032574b3o$1032574bo$1032575bo91$1032703b2o$1032702b2o$
1032704bo130$1032831b2o$1032830b2o$1032832bo126$1032959b2o$1032958b2o$
1032960bo132$1033086b3o$1033086bo$1033087bo119$1033214b3o$1033214bo$
1033215bo127$1033343b2o$1033342b2o$1033344bo133$1033471b2o$1033470b2o$
1033472bo123$1033598b3o$1033598bo$1033599bo130$1033727bo$1033726b2o$
1033726bobo116$1033855bo$1033854b2o$1033854bobo126$1033983bo$1033982b
2o$1033982bobo130$1034111bo$1034110b2o$1034110bobo136$1034239bo$
1034238b2o$1034238bobo140$1034368bo$1034367b2o$1034367bobo110$1034495b
o$1034494b2o$1034494bobo136$1034623b2o$1034623bobo$1034623bo106$
1034751b2o$1034751bobo$1034751bo130$1034879b2o$1034879bobo$1034879bo
118$1035007b2o$1035007bobo$1035007bo127$1035135b2o$1035135bobo$
1035135bo127$1035263b2o$1035262b2o$1035264bo126$1035391b2o$1035391bobo
$1035391bo125$1035519b2o$1035519bobo$1035519bo127$1035648b2o$1035647b
2o$1035649bo116$1035776b2o$1035775b2o$1035777bo161$1035904b2o$1035903b
2o$1035905bo127$1036032b2o$1036031b2o$1036033bo117$1036160b2o$1036159b
2o$1036161bo119$1036288b2o$1036287b2o$1036289bo143$1036416b2o$1036415b
2o$1036417bo110$1036544b2o$1036543b2o$1036545bo107$1036671b3o$1036671b
o$1036672bo126$1036800b2o$1036800bobo$1036800bo123$1036928b2o$1036928b
obo$1036928bo118$1037056b2o$1037056bobo$1037056bo130$1037184b2o$
1037184bobo$1037184bo134$1037312b2o$1037312bobo$1037312bo126$1037439b
3o$1037439bo$1037440bo122$1037566b3o$1037566bo$1037567bo141$1037696b2o
$1037696bobo$1037696bo119$1037823b3o$1037823bo$1037824bo128$1037950b3o
$1037950bo$1037951bo140$1038078b3o$1038078bo$1038079bo104$1038206b3o$
1038206bo$1038207bo130$1038334b3o$1038334bo$1038335bo134$1038463bo$
1038462b2o$1038462bobo134$1038592bo$1038591b2o$1038591bobo128$1038720b
o$1038719b2o$1038719bobo108$1038847bo$1038846b2o$1038846bobo140$
1038976bo$1038975b2o$1038975bobo148$1039104b2o$1039104bobo$1039104bo
110$1039231b2o$1039231bobo$1039231bo136$1039360b2o$1039360bobo$
1039360bo112$1039488b2o$1039488bobo$1039488bo125$1039616bo$1039615b2o$
1039615bobo128$1039743bo$1039742b2o$1039742bobo130$1039872b2o$1039872b
obo$1039872bo114$1039999bo$1039998b2o$1039998bobo122$1040127bo$
1040126b2o$1040126bobo124$1040255b2o$1040255bobo$1040255bo148$1040384b
2o$1040384bobo$1040384bo136$1040512bo$1040511b2o$1040511bobo130$
1040640bo$1040639b2o$1040639bobo134$1040767b2o$1040767bobo$1040767bo
98$1040895bo$1040894b2o$1040894bobo140$1041024b2o$1041024bobo$1041024b
o120$1041152bo$1041151b2o$1041151bobo130$1041279b2o$1041279bobo$
1041279bo143$1041407b3o$1041407bo$1041408bo128$1041534b3o$1041534bo$
1041535bo127$1041663bo$1041662b2o$1041662bobo117$1041790b3o$1041790bo$
1041791bo130$1041918b3o$1041918bo$1041919bo139$1042047bo$1042046b2o$
1042046bobo122$1042176bo$1042175b2o$1042175bobo118$1042303bo$1042302b
2o$1042302bobo90$1042432b2o$1042432bobo$1042432bo!
What I have translated to (variants)

Code: Select all

(block_right_r)[-2508]
(g0%1)[-2480]
(g1%2)[-2477]
(g1%2)[-2479]
(g0%2)[-2463]
(g0%1)[-2482]
(g0%1)[-2471]
(g0%1)[-2472]
(g0%1)[-2463]
(g0%1)[-2474]
(g0%1)[-2469](g0%1)[-2468](g0%1)[-2467](g0%1)[-2466](g0%1)[-2465](g0%1)[-2464]
(g0%1)[-2439]
(g0%1)[-2439]
(g0%1)[-2432]
(g1%2)[-2447]
(g0%2)[-2427]
(g0%1)[-2419]
(g0%1)[-2412]
(g1%2)[-2427]
(g0%1)[-2508]
(g0%1)[-2498](g0%1)[-2502](g0%1)[-2499]
(g0%1)[-2503]
(g1%2)[-2508]
(g0%2)[-2502]
(g0%2)[-2495]
(g0%1)[-2496]
(g0%1)[-2488]
(g1%2)[-2496]
(g1%2)[-2509]
(g0%1)[-2501]
(g0%1)[-2534]
(g0%2)[-2530]
(g0%2)[-2527]
(g1%2)[-2538]
(g0%1)[-2545]
(g0%1)[-2534]
(g0%1)[-2543]
(g0%2)[-2543]
(g0%1)[-2547]
(g0%2)[-2528]
(g0%2)[-2535]
(g0%1)[-2527]
(g0%1)[-2536]
(g0%1)[-2546]
(g0%1)[-2553]
(g1%2)[-2545]
(g0%2)[-2522]
(g0%2)[-2528]
(g1%2)[-2528]
(g0%2)[-2538](g0%2)[-2537]
(g0%1)[-2533]
(g2%8)[-2518]
(g0%1)[-2526]
(g0%1)[-2532]
(g0%1)[-2524]
(g0%1)[-2527]
(g0%2)[-2543]
(g0%2)[-2525]
(g0%1)[-2537]
(g0%1)[-2544]
(g0%1)[-2546]
(g1%2)[-2527]
(g1%2)[-2535]
(g1%2)[-2534]
(g0%2)[-2528]
(g0%1)[-2530]
(g0%1)[-2527](g0%1)[-2532]
(g1%2)[-2532]
(g0%2)[-2535]
(g1%2)[-2521]
(g0%1)[-2499]
(g0%1)[-2507]
(g0%1)[-2504]
(g1%2)[-2511]
(g0%1)[-2497]
(g0%1)[-2495]
(g0%1)[-2501]
(g0%1)[-2502]
(g0%1)[-2493]
(g0%1)[-2496](g0%1)[-2491]
(g1%2)[-2496]
(g0%2)[-2496]
(g1%2)[-2483]
(g0%2)[-2499]
(g0%1)[-2482]
(g0%2)[-2531]
(g0%2)[-2524]
(g3%4)[-2532]
(g1%2)[-2535]
(g0%1)[-2558]
(g1%2)[-2555]
(g1%2)[-2554](g1%2)[-2553]
(g0%1)[-2564](g0%1)[-2568](g0%1)[-2567](g0%1)[-2566](g0%1)[-2565]
(g0%1)[-2558]
(g0%2)[-2558]
(g1%2)[-2550](g1%2)[-2549](g0%2)[-2546](g0%2)[-2545]
(g0%1)[-2570]
(g0%1)[-2567]
(g0%2)[-2558]
(g1%2)[-2553]
(g0%1)[-2571]
(g0%1)[-2564]
(g0%1)[-2555](g0%1)[-2559](g0%1)[-2556]
(g0%2)[-2562]
(g1%2)[-2562]
(g0%1)[-2558]
(g1%2)[-2565]
(g0%1)[-2561]
(g0%2)[-2557]
(g0%1)[-2573]
(g1%2)[-2549]
(g1%2)[-2551]
(g0%1)[-2566]
(g0%1)[-2557]
(g0%1)[-2560](g0%1)[-2555]
(g1%2)[-2555]
(g0%2)[-2555]
(g0%2)[-2569]
(g1%2)[-2555]
(g1%2)[-2541]
(g0%1)[-2539]
(g0%1)[-2542](g0%1)[-2537]
(g0%1)[-2549]
(g0%1)[-2548]
(g1%2)[-2543]
(g1%2)[-2555]
(g1%8)[-2551]
(g0%1)[-2529]
(g0%2)[-2526]
(g0%2)[-2518]
(g0%2)[-2526]
(g1%2)[-2516]
(g0%1)[-2521]
(g0%1)[-2540]
(g0%1)[-2532]
(g1%2)[-2517]
(g1%2)[-2517](g1%2)[-2516]
(g1%2)[-2523]
(g1%2)[-2528]
(g0%1)[-2514](g0%1)[-2519](g0%1)[-2518](g0%1)[-2517](g0%1)[-2516](g0%1)[-2515]
(g0%1)[-2550]
(g0%1)[-2560]
(g0%1)[-2528](g0%1)[-2533](g0%1)[-2532](g0%1)[-2531](g0%1)[-2530](g0%1)[-2529]
(g0%1)[-2557]
(g1%2)[-2560]
(g1%2)[-2558]
(g1%2)[-2571]
(g0%1)[-2564]
(g0%1)[-2554]
(g0%1)[-2555]
(g0%1)[-2556]
(g0%1)[-2565]
(g0%1)[-2554]
(g0%1)[-2564](g0%1)[-2563](g0%1)[-2562](g0%1)[-2561](g0%1)[-2560](g0%1)[-2559]
(g0%1)[-2588]
(g0%2)[-2591]
(g1%2)[-2593](g0%2)[-2598](g0%2)[-2597](g1%2)[-2594]
(g0%2)[-2583]
(g0%2)[-2577]
(g1%2)[-2572]
(g0%1)[-2529]
(g0%2)[-2533]
(g0%2)[-2541]
(g1%2)[-2538]
(g1%2)[-2521]
(g0%1)[-2517]
(g1%2)[-2521]
(g0%2)[-2537]
(g0%2)[-2530]
(g0%1)[-2531]
(g0%1)[-2528](g0%1)[-2533]
(g0%1)[-2521]
(g0%2)[-2536]
(g0%2)[-2535]
(g0%1)[-2536]
(g0%2)[-2539]
(g0%2)[-2548]
(g0%1)[-2517]
(g0%1)[-2523]
(g0%2)[-2534]
(g1%2)[-2538]
(g0%1)[-2542]
(g1%2)[-2563]
(g0%1)[-2556]
(g1%2)[-2557]
(g0%1)[-2561]
(g0%1)[-2562]
(g0%1)[-2562]
(g1%2)[-2542]
(g0%2)[-2554](g0%2)[-2553]
(g1%2)[-2540]
(g0%1)[-2530]
(g0%1)[-2527](g0%1)[-2532]
(g0%1)[-2539]
(g0%1)[-2531]
(g0%1)[-2523]
(g0%1)[-2521]
(g0%1)[-2522]
(g0%2)[-2526]
(g0%2)[-2522](g1%2)[-2527](g1%2)[-2526](g0%2)[-2523]
(g0%2)[-2534]
(g1%2)[-2527]
(g0%2)[-2535]
(g0%2)[-2525]
(g1%2)[-2536]
(g1%2)[-2516]
(g0%1)[-2487]
(g0%1)[-2477]
(g0%1)[-2511]
(g1%2)[-2507]
(g1%2)[-2503]
(g1%2)[-2501]
(g0%1)[-2489]
(g1%2)[-2484]
(g1%2)[-2502]
(g0%2)[-2500]
(g1%2)[-2489]
(g0%1)[-2504]
(g1%2)[-2477]
(g0%1)[-2478]
(g1%2)[-2474]
(g1%2)[-2471]
(g1%2)[-2476]
(g1%2)[-2463]
(g0%1)[-2479]
(g0%1)[-2470]
(g1%2)[-2465]
(g1%2)[-2483]
(g0%2)[-2481]
(g1%2)[-2470]
(g0%2)[-2462](g0%2)[-2463]
(g0%1)[-2458]
(g0%1)[-2461](g0%1)[-2456]
(g0%1)[-2468]
(g0%1)[-2460]
(g0%1)[-2453]
(g0%1)[-2455]
(g0%1)[-2454]
(g0%2)[-2450]
(g1%2)[-2440]
(g0%2)[-2445]
(g1%2)[-2457]
(g0%2)[-2442]
(g0%2)[-2430]
(g1%2)[-2431]
(g1%2)[-2445]
(g0%2)[-2425]
(g0%1)[-2427]
(g0%1)[-2424](g0%1)[-2429]
(g0%2)[-2429]
(g0%1)[-2437]
(g0%2)[-2407]
(g0%1)[-2399]
(g0%1)[-2392]
(g1%2)[-2407]
(g0%2)[-2387]
(g0%1)[-2379]
(g0%1)[-2390]
(g0%1)[-2385](g0%1)[-2384](g0%1)[-2383](g0%1)[-2382](g0%1)[-2381](g0%1)[-2380]
(g0%1)[-2355]
(g0%1)[-2355]
(g0%1)[-2348]
(g1%2)[-2363]
(g0%2)[-2343]
(g0%1)[-2335]
(g0%1)[-2328]
(g1%2)[-2343]
(g0%2)[-2323]
(g0%1)[-2315]
(g0%1)[-2308]
(g1%2)[-2323]
(g0%2)[-2303]
(g0%1)[-2295]
(g0%1)[-2306]
(g0%1)[-2301](g0%1)[-2300](g0%1)[-2299](g0%1)[-2298](g0%1)[-2297](g0%1)[-2296]
(g0%1)[-2271]
(g0%1)[-2271]
(g0%1)[-2282]
(g0%1)[-2277](g0%1)[-2276](g0%1)[-2275](g0%1)[-2274](g0%1)[-2273](g0%1)[-2272]
(g0%1)[-2247]
(g0%1)[-2247]
(g0%1)[-2258]
(g0%1)[-2253](g0%1)[-2252](g0%1)[-2251](g0%1)[-2250](g0%1)[-2249](g0%1)[-2248]
(g0%1)[-2223]
(g0%1)[-2223]
(g0%1)[-2234]
(g0%1)[-2224](g0%1)[-2229](g0%1)[-2228](g0%1)[-2227](g0%1)[-2226](g0%1)[-2225]
(g0%1)[-2200]
(g0%1)[-2211]
(g0%1)[-2201](g0%1)[-2206](g0%1)[-2205](g0%1)[-2204](g0%1)[-2203](g0%1)[-2202]
(g0%1)[-2177]
(g0%1)[-2188]
(g0%1)[-2178](g0%1)[-2183](g0%1)[-2182](g0%1)[-2181](g0%1)[-2180](g0%1)[-2179]
(g0%1)[-2154]
(g0%1)[-2165]
(g0%1)[-2155](g0%1)[-2160](g0%1)[-2159](g0%1)[-2158](g0%1)[-2157](g0%1)[-2156]
(g0%1)[-2131]
(g0%1)[-2142]
(g0%1)[-2132](g0%1)[-2137](g0%1)[-2136](g0%1)[-2135](g0%1)[-2134](g0%1)[-2133]
(g0%1)[-2108]
(g0%1)[-2119]
(g0%1)[-2109](g0%1)[-2114](g0%1)[-2113](g0%1)[-2112](g0%1)[-2111](g0%1)[-2110]
(g0%1)[-2085]
(g0%1)[-2096]
(g0%1)[-2086](g0%1)[-2091](g0%1)[-2090](g0%1)[-2089](g0%1)[-2088](g0%1)[-2087]
(g0%1)[-2062]
(g0%1)[-2073]
(g0%1)[-2063](g0%1)[-2068](g0%1)[-2067](g0%1)[-2066](g0%1)[-2065](g0%1)[-2064]
(g0%1)[-2039]
(g0%1)[-2050]
(g0%1)[-2040](g0%1)[-2045](g0%1)[-2044](g0%1)[-2043](g0%1)[-2042](g0%1)[-2041]
(g0%1)[-2016]
(g0%1)[-2027]
(g0%1)[-2017](g0%1)[-2022](g0%1)[-2021](g0%1)[-2020](g0%1)[-2019](g0%1)[-2018]
(g0%1)[-1993]
(g0%1)[-2004]
(g0%1)[-1994](g0%1)[-1999](g0%1)[-1998](g0%1)[-1997](g0%1)[-1996](g0%1)[-1995]
(g0%1)[-1970]
(g0%1)[-1981]
(g0%1)[-1971](g0%1)[-1976](g0%1)[-1975](g0%1)[-1974](g0%1)[-1973](g0%1)[-1972]
(g0%1)[-1947]
(g1%2)[-1952]
(g0%1)[-1964]
(g1%2)[-1931]
(g1%2)[-1945]
(g0%1)[-1940](g0%1)[-1933](g0%1)[-1930]
(g0%2)[-1943]
(g0%1)[-1941]
(g0%2)[-1938]
(g0%1)[-1921]
(g1%2)[-1922]
(g0%1)[-1927]
(g1%2)[-1928]
(g1%2)[-1930]
(g0%2)[-1940]
(g0%2)[-1951]
(g1%2)[-1952]
(g1%2)[-1928]
(g1%2)[-1914](g1%2)[-1915]
(g0%1)[-1910]
(g0%2)[-1907]
(g1%2)[-1903]
(g0%1)[-1915]
(g1%2)[-1919]
(g0%2)[-1913]
(g0%1)[-1913]
(g0%1)[-1891]
(g0%1)[-1884]
(g1%2)[-1899]
(g0%2)[-1879]
(g0%1)[-1871]
(g0%1)[-1864]
(g1%2)[-1879]
(g0%1)[-1939]
(g0%1)[-1946]
(g1%2)[-1929]
(g1%2)[-1933]
(g0%1)[-1933]
(g0%1)[-1924]
(g1%2)[-1921]
(g0%2)[-1919](g0%2)[-1918](g1%2)[-1915](g1%2)[-1914]
(g0%2)[-1919]
(g0%1)[-1934](g0%1)[-1933](g0%1)[-1932](g0%1)[-1931](g0%1)[-1930]
(g0%2)[-1927]
(g0%1)[-1915]
(g0%1)[-1922]
(g0%2)[-1915]
(g1%2)[-1897](g0%2)[-1902](g0%2)[-1901](g1%2)[-1898]
(g0%2)[-1913]
(g0%1)[-1909]
(g1%2)[-1910]
(g0%2)[-1907]
(g0%2)[-1904]
(g0%1)[-1906]
(g0%1)[-1913]
(g0%1)[-1913]
(g0%1)[-1915]
(g1%2)[-1895]
(g1%2)[-1922]
(g1%2)[-1924]
(g0%1)[-1923]
(g0%1)[-1931]
(g1%2)[-1924]
(g1%2)[-1916]
(g0%1)[-1925]
(g1%2)[-1950]
(g1%2)[-1949]
(g0%2)[-1940](g0%2)[-1936]
(g0%1)[-1934]
(g1%2)[-1937]
(g1%2)[-1946]
(g1%2)[-1935]
(g0%2)[-1931]
(g0%1)[-1930]
(g1%2)[-1917]
(g5%8)[-1922]
(g0%1)[-1947]
(g1%2)[-1944]
(g0%2)[-1942](g0%2)[-1941](g1%2)[-1938](g1%2)[-1937]
(g0%2)[-1934]
(g0%2)[-1946]
(g0%2)[-1952]
(g1%2)[-1945]
(g1%2)[-1938]
(g0%2)[-1934]
(g1%8)[-1925]
(g0%1)[-1931]
(g0%1)[-1938]
(g0%1)[-1940]
(g1%2)[-1936]
(g0%1)[-1942]
(g0%2)[-1935]
(g1%2)[-1932]
(g1%2)[-1927]
(g0%1)[-1931]
(g0%1)[-1951]
(g1%2)[-1954]
(g0%2)[-1950]
(g0%1)[-1955]
(g1%2)[-1958]
(g0%2)[-1954]
(g0%1)[-1959]
(g1%2)[-1962]
(g0%2)[-1958]
(g0%1)[-1954]
(g1%2)[-1951]
(g1%2)[-1948]
(g1%2)[-1953]
(g0%2)[-1949]
(g0%1)[-1956]
(g0%1)[-1939]
(g0%1)[-1939]
(g0%1)[-1950]
(g0%1)[-1940](g0%1)[-1945](g0%1)[-1944](g0%1)[-1943](g0%1)[-1942](g0%1)[-1941]
(g0%1)[-1982]
(g0%1)[-1991](g0%1)[-1990](g0%1)[-1987]
(g0%1)[-1986]
(g0%2)[-1981]
(g0%1)[-1964]
(g0%1)[-1961](g0%1)[-1966]
(g1%2)[-1961]
(g0%2)[-1961]
(g1%2)[-1974]
(g0%2)[-1958]
(g0%1)[-1975]
(g1%2)[-1996]
(g1%2)[-2001]
(g0%1)[-2001]
(g0%1)[-2001]
(g0%1)[-1990]
(g0%1)[-2025]
(g0%1)[-2025]
(g0%1)[-2032]
(g1%2)[-2017]
(g0%2)[-2037]
(g0%1)[-2045]
(g0%1)[-2034]
(g0%1)[-2039](g0%1)[-2044](g0%1)[-2043](g0%1)[-2042](g0%1)[-2041](g0%1)[-2040]
(g0%1)[-2069]
(g0%1)[-2069]
(g0%2)[-2068]
(g1%2)[-2080]
(g0%2)[-2071]
(g0%1)[-2077]
(g0%2)[-2060]
(g0%1)[-2061]
(g0%1)[-2053]
(g0%1)[-2050]
(g0%1)[-2056]
(g0%2)[-2052]
(g1%2)[-2047]
(g0%1)[-2069]
(g0%1)[-2058]
(g0%1)[-2051]
(g1%2)[-2066]
(g0%1)[-2088]
(g0%1)[-2095]
(g1%2)[-2080]
(g0%2)[-2100]
(g0%1)[-2108]
(g1%2)[-2107]
(g0%1)[-2102]
(g1%2)[-2114](g1%2)[-2115]
(g0%1)[-2119]
(g0%1)[-2126]
(g1%2)[-2111]
(g0%2)[-2131]
(g0%1)[-2139]
(g0%1)[-2146]
(g1%2)[-2131]
(g0%2)[-2151]
(g0%1)[-2159]
(g1%2)[-2158]
(g0%1)[-2153]
(g1%2)[-2165](g1%2)[-2166]
(g0%1)[-2170]
(g0%1)[-2177]
(g1%2)[-2162]
(g0%2)[-2182]
(g0%1)[-2190]
(g1%2)[-2189]
(g0%1)[-2184]
(g1%2)[-2196](g1%2)[-2197]
(g0%1)[-2201]
(g1%2)[-2200]
(g0%1)[-2195]
(g1%2)[-2207](g1%2)[-2208]
(g0%1)[-2212]
(g0%1)[-2221](g0%1)[-2220](g0%1)[-2217]
(g0%1)[-2216]
(g0%2)[-2211]
(g0%1)[-2185]
(g1%2)[-2182]
(g0%2)[-2174]
(g1%2)[-2168]
(g1%2)[-2188]
(g1%2)[-2177]
(g0%1)[-2158]
(g0%1)[-2150]
(g1%2)[-2157]
(g1%2)[-2156]
(g0%2)[-2168]
(g0%2)[-2159]
(g1%2)[-2142]
(g0%1)[-2146]
(g0%1)[-2139]
(g0%2)[-2146]
(g1%2)[-2157]
(g1%2)[-2152]
(g0%2)[-2133]
(g0%1)[-2133]
(g0%1)[-2139]
(g0%2)[-2142]
(g1%2)[-2144](g0%2)[-2149](g0%2)[-2148](g1%2)[-2145]
(g0%2)[-2142]
(g1%2)[-2152]
(g1%2)[-2147]
(g0%1)[-2150](g0%1)[-2149](g0%1)[-2148](g0%1)[-2147](g0%1)[-2146]
(g0%2)[-2171]
(g5%8)[-2162]
(g1%2)[-2198]
(g0%1)[-2200]
(g0%1)[-2207]
(g1%2)[-2192]
(g1%2)[-2228]
(g0%1)[-2224](g0%1)[-2225]
(g0%1)[-2221]
(g0%1)[-2230]
(g0%1)[-2219]
(g0%1)[-2224](g0%1)[-2229](g0%1)[-2228](g0%1)[-2227](g0%1)[-2226](g0%1)[-2225]
(g0%2)[-2212]
(g0%1)[-2211]
(g1%2)[-2208]
(g0%2)[-2201]
(g0%1)[-2214](g0%1)[-2221](g0%1)[-2218](g0%1)[-2217]
(g0%2)[-2213]
(g0%1)[-2254]
(g0%1)[-2254]
(g0%1)[-2243]
(g0%1)[-2253](g0%1)[-2252](g0%1)[-2251](g0%1)[-2250](g0%1)[-2249](g0%1)[-2248]
(g0%1)[-2277]
(g0%1)[-2266]
(g0%1)[-2276](g0%1)[-2275](g0%1)[-2274](g0%1)[-2273](g0%1)[-2272](g0%1)[-2271]
(g0%1)[-2291]
(g0%1)[-2301](g0%1)[-2300](g0%1)[-2297]
(g0%1)[-2296]
(g0%2)[-2291]
(g0%1)[-2274]
(g1%2)[-2277]
(g0%2)[-2287]
(g0%1)[-2264](g0%1)[-2268](g0%1)[-2267](g0%1)[-2266](g0%1)[-2265]
(g1%2)[-2272]
(g0%2)[-2276]
(g0%1)[-2268]
(g1%2)[-2267]
(g0%2)[-2266]
(g0%2)[-2267]
(g0%1)[-2268]
(g0%1)[-2271](g0%1)[-2278]
(g0%1)[-2259]
(g0%1)[-2250](g0%1)[-2254](g0%1)[-2251]
(g1%2)[-2257]
(g1%2)[-2246]
(g0%2)[-2255]
(g1%2)[-2275]
(g0%1)[-2287]
(g0%1)[-2286]
(g1%2)[-2282]
(g1%2)[-2306]
(g0%2)[-2310]
(g1%2)[-2312]
(g0%1)[-2297]
(g0%1)[-2299](g0%1)[-2294]
(g1%2)[-2292]
(g1%2)[-2275]
(g1%2)[-2270]
(g0%1)[-2271](g0%1)[-2267](g0%1)[-2266](g0%1)[-2264](g0%1)[-2261]
(g0%1)[-2283](g0%1)[-2287](g0%1)[-2286](g0%1)[-2276]
(g0%1)[-2305]
(g1%2)[-2302]
(g0%2)[-2295]
(g0%2)[-2314]
(g0%2)[-2288]
(g0%1)[-2285]
(g0%2)[-2284]
(g0%1)[-2283](g0%1)[-2280]
(g0%1)[-2274]
(g0%1)[-2272]
(g0%1)[-2277]
(g0%2)[-2280]
(g0%2)[-2272]
(g1%2)[-2280]
(g0%1)[-2279]
(g0%1)[-2284]
(g0%1)[-2290]
(g0%1)[-2287](g0%1)[-2292]
(g1%2)[-2287]
(g0%2)[-2287]
(g1%2)[-2300]
(g0%2)[-2284]
(g0%1)[-2301]
(g0%1)[-2256]
(g1%2)[-2256]
(g0%2)[-2242]
(g0%2)[-2237]
(g1%2)[-2242]
(g1%2)[-2244]
(g0%2)[-2241]
(g1%2)[-2259]
(g0%1)[-2250](g0%1)[-2253](g0%1)[-2252]
(g0%1)[-2264]
(g0%1)[-2261](g0%1)[-2266]
(g0%1)[-2273]
(g0%2)[-2258]
(g1%2)[-2259](g1%2)[-2260](g0%2)[-2256](g0%2)[-2255]
(g1%2)[-2263]
(g0%2)[-2256]
(g1%2)[-2255]
(g0%1)[-2257]
(g0%1)[-2252]
(g0%1)[-2273]
(g1%2)[-2274]
(g1%2)[-2260]
(g0%1)[-2262]
(g0%2)[-2267]
(g1%2)[-2248]
(g0%2)[-2244]
(g0%1)[-2251]
(g0%1)[-2251]
(g1%2)[-2251]
(g0%1)[-2261](g0%1)[-2254]
(g0%2)[-2252]
(g0%2)[-2244]
(g1%2)[-2230](g1%2)[-2237]
(g0%2)[-2257]
(g1%2)[-2246](g1%2)[-2245]
(g1%2)[-2201]
(g0%2)[-2196]
(g0%1)[-2169]
(g2%8)[-2192]
(g0%1)[-2172](g0%1)[-2182](g0%1)[-2179](g0%1)[-2177](g0%1)[-2176]
(g0%1)[-2180]
(g0%1)[-2190](g0%1)[-2189](g0%1)[-2186]
(g0%1)[-2190]
(g1%2)[-2193]
(g0%2)[-2187]
(g1%2)[-2175]
(g1%2)[-2178]
(g0%2)[-2165]
(g0%1)[-2170]
(g0%2)[-2181]
(g0%1)[-2207]
(g0%2)[-2211]
(g0%2)[-2209]
(g0%2)[-2215]
(g0%2)[-2206]
(g1%2)[-2209]
(g0%1)[-2189]
(g0%2)[-2188]
(g1%2)[-2190]
(g0%2)[-2196]
(g0%1)[-2202]
(g1%2)[-2204]
(g0%1)[-2185](g0%1)[-2187](g0%1)[-2186]
(g0%2)[-2193]
(g0%1)[-2171]
(g0%1)[-2183]
(g0%1)[-2180](g0%1)[-2185]
(g0%1)[-2173]
(g0%1)[-2183](g0%1)[-2193](g0%1)[-2186]
(g0%2)[-2183]
(g1%2)[-2176]
(g0%2)[-2174](g0%2)[-2173]
(g0%1)[-2180]
(g0%1)[-2178]
(g0%1)[-2185]
(g0%1)[-2187]
(g0%2)[-2170]
(g0%1)[-2170]
(g0%2)[-2192]
(g1%2)[-2193]
(g0%2)[-2196]
(g0%2)[-2199]
(g0%1)[-2221]
(g1%2)[-2224]
(g0%2)[-2229]
(g0%1)[-2220]
(g0%1)[-2219]
(g0%1)[-2219]
(g0%2)[-2223]
(g0%1)[-2237](g0%1)[-2236](g0%1)[-2233]
(g1%2)[-2213]
(g0%1)[-2200]
(g0%1)[-2217](g0%1)[-2222](g0%1)[-2221](g0%1)[-2220](g0%1)[-2219](g0%1)[-2218]
(g0%1)[-2213]
(g0%1)[-2210](g0%1)[-2215]
(g1%2)[-2215]
(g0%1)[-2223]
(g1%2)[-2210](g0%2)[-2214](g0%2)[-2213](g1%2)[-2209]
(g1%2)[-2206]
(g0%1)[-2218](g0%1)[-2217](g0%1)[-2216](g0%1)[-2215](g0%1)[-2214](g0%1)[-2213]
(g0%1)[-2210]
(g0%1)[-2200]
(g0%1)[-2209]
(g0%1)[-2199](g0%1)[-2203](g0%1)[-2200]
(g0%1)[-2204]
(g0%1)[-2208]
(g0%1)[-2198]
(g0%2)[-2211]
(g0%2)[-2214](g1%2)[-2219](g1%2)[-2218](g1%2)[-2217](g0%2)[-2216](g0%2)[-2215]
(g0%1)[-2200]
(g5%8)[-2185]
(g0%1)[-2209]
(g0%2)[-2213]
(g1%2)[-2221]
(g1%2)[-2227]
(g1%2)[-2221]
(g1%2)[-2225]
(g1%2)[-2216]
(g0%2)[-2225]
(g0%1)[-2225]
(g0%2)[-2208](g0%2)[-2209](g1%2)[-2206](g1%2)[-2205](g1%2)[-2204]
(g0%1)[-2209]
(g0%1)[-2200](g0%1)[-2204](g0%1)[-2201]
(g0%1)[-2205]
(g0%2)[-2210]
(g1%2)[-2203]
(g0%1)[-2196]
(g0%1)[-2206]
(g0%1)[-2197]
(g0%2)[-2194]
(g1%2)[-2184]
(g1%2)[-2186]
(g0%2)[-2196]
(g0%2)[-2207]
(g0%1)[-2227]
(g0%1)[-2230](g0%1)[-2225]
(g0%1)[-2218]
(g0%1)[-2217](g0%1)[-2218]
(g1%2)[-2208]
(g1%2)[-2184]
(g0%1)[-2237]
(g0%1)[-2236]
(g1%2)[-2231]
(g0%2)[-2237]
(g0%2)[-2232]
(g0%2)[-2225](g0%2)[-2227](g0%2)[-2226](g1%2)[-2223](g1%2)[-2222]
(g0%1)[-2221]
(g0%1)[-2228]
(g1%2)[-2216]
(g0%2)[-2221]
(g1%2)[-2212]
(g0%1)[-2220]
(g0%2)[-2223]
(g0%1)[-2220]
(g1%2)[-2223]
(g0%2)[-2227]
(g0%1)[-2209]
(g0%1)[-2211]
(g0%1)[-2213]
(g0%2)[-2225]
(g0%1)[-2216](g0%1)[-2213](g0%1)[-2211](g0%1)[-2210](g0%1)[-2206]
(g0%1)[-2227]
(g0%1)[-2237](g0%1)[-2236](g0%1)[-2233]
(g1%2)[-2230]
(g1%2)[-2217]
(g0%1)[-2228]
(g0%1)[-2233]
(g0%1)[-2225]
(g0%1)[-2237]
(g1%2)[-2240]
(g1%2)[-2244]
(g1%2)[-2243]
(g1%2)[-2234]
(g0%2)[-2241]
(g0%1)[-2247]
(g0%1)[-2240](g0%1)[-2250](g0%1)[-2247]
(g0%1)[-2232]
(g0%1)[-2230]
(g1%2)[-2233]
(g0%2)[-2229]
(g0%1)[-2096]
(g1%2)[-2099]
(g1%2)[-2103]
(g0%1)[-2095]
(g0%1)[-2095]
(g0%1)[-2092]
(g0%1)[-2096]
(g0%1)[-2096]
(g1%2)[-2092]
(g1%2)[-2089]
(g0%2)[-2089]
(g1%2)[-2084]
(g1%2)[-2098]
(g0%2)[-2096]
(g0%1)[-2079]
(g0%1)[-2068]
(g0%1)[-2070]
(g0%1)[-2069]
(g0%1)[-2078]
(g1%2)[-2081]
(g1%2)[-2079]
(g1%2)[-2076]
(g0%2)[-2046]
(g0%1)[-2038]
(g1%2)[-2039]
(g0%1)[-2044]
(g1%2)[-2031](g1%2)[-2032]
(g0%1)[-2027]
(g0%1)[-2020]
(g1%2)[-2035]
(g0%2)[-2015]
(g0%1)[-2050]
(g0%2)[-2054]
(g1%2)[-2064]
(g0%2)[-2056]
(g0%2)[-2056]
(g1%2)[-2046]
(g1%2)[-2036]
(g0%1)[-2058]
(g0%1)[-2049](g0%1)[-2053](g0%1)[-2050]
(g0%2)[-2056]
(g0%1)[-2046](g0%1)[-2050](g0%1)[-2047]
(g1%2)[-2054]
(g0%2)[-2058]
(g0%2)[-2057]
(g0%1)[-2061]
(g0%1)[-2061]
(g1%2)[-2064]
(g1%2)[-2062]
(g0%1)[-2060]
(g1%2)[-2077]
(g1%2)[-2081]
(g0%1)[-2073]
(g0%1)[-2070]
(g0%2)[-2071]
(g0%2)[-2073]
(g0%2)[-2084]
(g1%2)[-2068]
(g0%2)[-2062]
(g0%2)[-2065]
(g0%1)[-2076]
(g0%1)[-2066](g0%1)[-2070](g0%1)[-2067]
(g0%1)[-2071]
(g0%2)[-2076]
(g1%2)[-2061]
(g0%2)[-2057]
(g1%2)[-2060]
(g0%1)[-2052]
(g0%1)[-2058]
(g0%2)[-2061]
(g1%2)[-2063](g0%2)[-2068](g0%2)[-2067](g1%2)[-2064]
(g1%2)[-2064]
(g0%2)[-2066]
(g0%2)[-2067]
(g0%2)[-2067]
(g0%1)[-2052](g0%1)[-2049](g0%1)[-2047]
(g0%1)[-2037]
(g1%2)[-2033]
(g0%1)[-2048]
(g0%1)[-2050](g0%1)[-2045]
(g0%1)[-2058](g0%1)[-2051]
(g1%2)[-2026](g0%2)[-2031](g0%2)[-2030](g1%2)[-2027]
(g1%2)[-2030]
(g1%2)[-2039]
(g0%1)[-2037]
(g0%1)[-1995](g0%1)[-2000](g0%1)[-1999](g0%1)[-1998](g0%1)[-1997](g0%1)[-1996]
(g0%1)[-2007]
(g1%2)[-2008]
(g0%1)[-2013]
(g1%2)[-2000](g1%2)[-2001]
(g0%1)[-1996]
(g0%1)[-1987](g0%1)[-1991](g0%1)[-1988]
(g0%1)[-1987]
(g0%2)[-1991]
(g0%2)[-2001]
(g1%2)[-2012]
(g0%1)[-2011]
(g0%2)[-2015]
(g0%2)[-2018]
(g0%2)[-2013]
(g0%2)[-2017]
(g0%1)[-1988]
(g0%1)[-1981]
(g1%2)[-1996]
(g1%2)[-2000]
(g0%1)[-2004](g0%1)[-2009](g0%1)[-2008](g0%1)[-2007](g0%1)[-2006](g0%1)[-2005]
(g0%1)[-1999](g0%1)[-1996]
(g0%1)[-2010]
(g0%1)[-2010]
(g0%1)[-2010]
(g1%2)[-2007]
(g1%2)[-2015]
(g1%2)[-2012]
(g0%2)[-1999]
(g0%2)[-1998]
(g1%2)[-2005]
(g0%1)[-2012]
(g0%1)[-2019]
(g0%1)[-2005]
(g0%1)[-2017]
(g0%1)[-2010]
(g0%1)[-2009]
(g0%1)[-2009]
(g1%2)[-2005]
(g1%2)[-2007]
(g0%1)[-2009]
(g0%1)[-2019]
(g0%2)[-2022]
(g1%2)[-2029]
(g0%1)[-2037]
(g0%2)[-2076]
(g1%8)[-2105]
(g0%1)[-2079]
(g1%2)[-2079]
(g0%2)[-2077]
(g0%2)[-2068]
(g0%2)[-2077]
(g1%2)[-2083]
(g1%2)[-2078]
(g0%2)[-2094]
(g0%1)[-2092]
(g0%1)[-2085]
(g0%1)[-2088]
(g0%1)[-2102]
(g0%1)[-2090](g0%1)[-2085]
(g1%2)[-2089]
(g5%8)[-2100]
(g0%1)[-2094](g0%1)[-2098](g0%1)[-2095]
(g1%2)[-2082]
(g0%1)[-2083]
(g1%2)[-2079]
(g1%2)[-2075]
(g0%1)[-2080]
(g0%1)[-2070]
(g0%1)[-2071](g0%1)[-2068]
(g0%1)[-2058]
(g0%1)[-2047]
(g1%2)[-2048]
(g0%2)[-2025]
(g0%1)[-2009](g0%1)[-2016](g0%1)[-2013](g0%1)[-2012]
(g0%1)[-2015]
(g0%1)[-2019]
(g1%2)[-2034]
(g1%2)[-2043]
(g0%2)[-2049]
(g0%2)[-2054]
(g0%2)[-2041]
(g0%1)[-2032](g0%1)[-2031](g0%1)[-2030](g0%1)[-2029](g0%1)[-2028]
(g1%2)[-2037]
(g1%2)[-2025](g1%2)[-2032]
(g1%2)[-1992]
(g1%2)[-1993]
(g0%1)[-1995]
(g0%1)[-1992](g0%1)[-1997]
(g1%2)[-1997]
(g0%2)[-1976]
(g0%1)[-1968]
(g1%2)[-1969]
(g0%1)[-1974]
(g0%2)[-1984]
(g1%2)[-1995]
(g0%2)[-2004]
(g1%2)[-1982]
(g0%1)[-2006]
(g0%1)[-2006]
(g1%2)[-2002]
(g1%2)[-2004]
(g1%2)[-1998]
(g1%2)[-2010]
(g0%1)[-2015]
(g0%2)[-1989]
(g0%2)[-1996]
(g0%1)[-1995](g0%1)[-1991]
(g0%1)[-1995]
(g0%1)[-2007]
(g1%2)[-2014]
(g0%2)[-2000]
(g0%2)[-2029]
(g1%2)[-2035]
(g1%2)[-2024]
(g0%1)[-2020]
(g0%1)[-2020]
(g0%2)[-2024]
(g0%2)[-2017]
(g0%2)[-2017]
(g1%2)[-2004]
(g0%2)[-2044]
(g1%2)[-2041]
(g0%1)[-2030](g0%1)[-2035](g0%1)[-2034](g0%1)[-2033](g0%1)[-2032](g0%1)[-2031]
(g0%1)[-2036]
(g0%1)[-2045]
(g0%1)[-2052]
(g0%1)[-2054]
(g1%2)[-2035]
(g0%2)[-2046]
(g0%2)[-2051]
(g0%1)[-2045]
(g0%1)[-2044]
(g0%1)[-2086]
(g0%1)[-2088]
(g0%1)[-2078](g0%1)[-2082](g0%1)[-2079]
(g0%1)[-2078]
(g1%2)[-2075]
(g0%2)[-2081]
(g1%2)[-2093]
(g1%2)[-2090]
(g0%2)[-2103]
(g0%1)[-2098]
(g0%2)[-2087]
(g6%8)[-2071]
(g0%2)[-2062](g1%2)[-2065](g1%2)[-2064](g1%2)[-2063](g0%2)[-2061](g0%2)[-2060]
(g0%1)[-2053]
(g1%2)[-2049]
(g0%2)[-2043]
(g0%1)[-2062](g0%1)[-2061](g0%1)[-2060](g0%1)[-2059](g0%1)[-2058](g0%1)[-2057]
(g0%1)[-2054]
(g0%1)[-2044]
(g0%2)[-2047]
(g0%1)[-2063](g0%1)[-2064]
(g1%2)[-2055]
(g0%2)[-2057]
(g0%2)[-2039]
(g0%2)[-2039]
(g0%2)[-2042]
(g0%1)[-2050]
(g0%2)[-2054]
(g1%2)[-2064]
(g1%2)[-2056]
(g1%2)[-2061]
(g0%2)[-2049]
(g0%1)[-2048]
(g0%1)[-2000]
(g5%8)[-2013]
(g0%1)[-2016]
(g0%1)[-2009]
(g1%2)[-2021]
(g0%2)[-2028]
(g1%2)[-2022]
(g0%2)[-2024]
(g0%2)[-2009]
(g1%2)[-2019]
(g0%1)[-2003]
(g0%1)[-2003]
(g1%2)[-2002]
(g0%2)[-2001]
(g0%2)[-2014]
(g1%2)[-2018]
(g0%2)[-2028]
(g0%2)[-2028]
(g0%2)[-2020]
(g0%1)[-2039]
(g0%1)[-2042](g0%1)[-2037]
(g0%2)[-2037]
(g1%2)[-2037]
(g0%1)[-2030]
(g1%2)[-2052]
(g1%2)[-2039]
(g1%2)[-2044]
(g0%1)[-2025]
(g0%1)[-2025](g0%1)[-2027](g0%1)[-2026](g0%1)[-2024](g0%1)[-2023]
(g0%1)[-2035](g0%1)[-2037](g0%1)[-2036](g0%1)[-2034](g0%1)[-2033](g0%1)[-2032]
(g0%1)[-2058](g0%1)[-2057](g0%1)[-2056](g0%1)[-2055](g0%1)[-2054](g0%1)[-2053]
(g0%1)[-2066]
(g0%2)[-2067]
(g1%2)[-2055]
(g0%1)[-2047]
(g1%2)[-2044]
(g0%2)[-2042](g0%2)[-2041](g1%2)[-2038](g1%2)[-2037]
(g0%2)[-2034]
(g1%2)[-2029]
(g0%2)[-2030]
(g0%1)[-2053](g0%1)[-2057](g0%1)[-2056](g0%1)[-2055](g0%1)[-2054](g0%1)[-2052]
(g0%2)[-2055]
(g0%2)[-2066]
(g0%2)[-2071]
(g0%2)[-2073]
(g0%1)[-2081]
(g0%1)[-2090](g0%1)[-2089](g0%1)[-2086]
(g0%2)[-2083]
(g0%1)[-2081]
(g0%1)[-2079]
(g1%2)[-2094]
(g0%1)[-2084]
(g0%1)[-2074](g0%1)[-2078](g0%1)[-2075]
(g0%1)[-2079]
(g1%2)[-2074]
(g0%2)[-2077](g0%2)[-2078]
(g0%2)[-2064]
(g0%1)[-2072]
(g0%1)[-2084]
(g0%1)[-2101]
(g1%2)[-2101]
(g0%2)[-2107](g0%2)[-2108](g1%2)[-2104](g1%2)[-2103]
(g0%2)[-2113]
(g1%2)[-2103]
(g0%2)[-2110]
(g0%2)[-2102]
(g0%1)[-2101](g0%1)[-2105](g0%1)[-2102]
(g0%1)[-2081]
(g1%2)[-2076]
(g0%1)[-2084]
(g1%2)[-2077]
(g0%2)[-2098]
(g0%1)[-2096]
(g0%1)[-2075]
(g0%2)[-2072]
(g1%2)[-2062]
(g1%2)[-2064]
(g0%2)[-2074]
(g0%2)[-2085]
(g1%2)[-2086]
(g1%2)[-2062]
(g0%1)[-2097]
(g0%1)[-2105]
(g0%2)[-2093]
(g1%2)[-2085]
(g1%2)[-2102]
(g0%1)[-2113](g0%1)[-2112](g0%1)[-2109]
(g0%2)[-2109]
(g1%2)[-2109]
(g0%2)[-2093]
(g0%1)[-2100]
(g1%2)[-2103]
(g0%2)[-2111]
(g0%2)[-2116]
(g1%2)[-2098]
(g0%2)[-2093]
(g0%1)[-2087]
(g0%1)[-2098]
(g0%1)[-2096]
(g0%1)[-2093](g0%1)[-2098]
(g0%1)[-2086]
(g0%1)[-2116](g0%1)[-2109](g0%1)[-2106]
(g1%2)[-2101]
(g0%2)[-2112]
(g1%2)[-2106]
(g0%2)[-2098]
(g0%2)[-2101]
(g0%2)[-2099]
(g0%1)[-2101]
(g0%1)[-2104]
(g1%2)[-2100]
(g0%1)[-2113](g0%1)[-2112](g0%1)[-2111](g0%1)[-2110](g0%1)[-2109]
(g0%2)[-2107]
(g1%2)[-2102]
(g1%2)[-2114]
(g0%2)[-2097]
(g0%1)[-2108]
(g1%2)[-2111]
(g0%1)[-2098](g0%1)[-2102](g0%1)[-2101](g0%1)[-2100](g0%1)[-2099]
(g1%2)[-2106]
(g0%2)[-2100]
(g0%1)[-2100]
(g1%2)[-2097]
(g0%2)[-2087]
(g0%2)[-2089]
(g1%2)[-2099]
(g0%1)[-2117]
(g0%1)[-2124]
(g0%2)[-2110](g0%1)[-2109](g0%1)[-2108](g0%1)[-2107](g0%1)[-2106]
(g0%2)[-2111]
(g0%1)[-2116]
(g0%1)[-2114]
(g1%2)[-2133]
(g0%2)[-2122]
(g0%1)[-2129](g0%1)[-2125](g0%1)[-2124](g0%1)[-2122](g0%1)[-2119]
(g0%1)[-2126]
(g0%2)[-2098]
(g0%1)[-2097]
(g0%2)[-2107]
(g0%2)[-2114]
(g0%1)[-2112]
(g0%1)[-2112]
(g0%2)[-2109]
(g0%2)[-2101]
(g1%2)[-2104]
(g1%2)[-2121]
(g0%1)[-2122]
(g0%1)[-2101]
(g1%2)[-2112]
(g0%1)[-2116]
(g0%1)[-2105]
(g0%1)[-2115](g0%1)[-2114](g0%1)[-2111]
(g0%2)[-2108]
(g1%2)[-2108]
(g0%1)[-2070]
(g0%1)[-2079]
(g0%1)[-2076](g0%1)[-2081]
(g1%2)[-2079]
(g1%2)[-2085]
(g0%1)[-2088]
(g0%2)[-2093]
(g0%2)[-2093]
(g0%1)[-2089]
(g0%1)[-2097]
(g0%1)[-2099]
(g0%2)[-2080]
(g1%2)[-2091]
(g0%2)[-2092]
(g0%2)[-2094](g0%1)[-2102](g0%2)[-2095]
(g0%1)[-2096]
(g0%1)[-2096]
(g0%1)[-2096]
(g0%2)[-2091]
(g0%1)[-2089]
(g0%1)[-2088](g0%1)[-2081](g0%1)[-2078]
(g1%2)[-2111]
(g0%1)[-2110]
(g0%1)[-2100]
(g0%1)[-2111]
(g0%1)[-2072]
(g0%2)[-2032](g0%2)[-2030]
(g1%2)[-2025]
(g0%1)[-2027]
(g1%2)[-1961](g1%2)[-1962]
(g0%1)[-1966]
(g0%1)[-1956](g0%1)[-1960](g0%1)[-1957]
(g0%1)[-1956]
(g1%2)[-1963]
(g0%2)[-1949]
(g0%2)[-1944]
(g0%2)[-1946]
(g0%1)[-1946]
(g1%2)[-1946]
(g0%2)[-1940](g1%2)[-1944](g1%2)[-1943](g0%2)[-1939]
(g0%1)[-1916]
(g0%1)[-1927]
(g0%1)[-1917](g0%1)[-1922](g0%1)[-1921](g0%1)[-1920](g0%1)[-1919](g0%1)[-1918]
(g0%1)[-1893]
(g0%1)[-1904]
(g0%1)[-1894](g0%1)[-1899](g0%1)[-1898](g0%1)[-1897](g0%1)[-1896](g0%1)[-1895]
(g0%1)[-1879]
(g0%1)[-1876](g0%1)[-1881]
(g0%2)[-1876]
(g1%2)[-1889]
(g0%2)[-1890]
(g0%2)[-1859]
(g0%1)[-1851]
(g0%1)[-1844]
(g1%2)[-1859]
(g0%2)[-1865]
(g0%1)[-1877]
(g0%1)[-1870]
(g0%1)[-1868]
(g0%2)[-1894]
(g1%2)[-1891]
(g0%2)[-1885]
(g0%1)[-1881](g0%1)[-1884](g0%1)[-1883](g0%1)[-1882]
(g0%2)[-1839]
(g0%1)[-1831]
(g0%1)[-1824]
(g1%2)[-1839]
(g0%2)[-1819]
(g0%1)[-1820]
(g0%1)[-1827]
(g1%2)[-1819]
(g0%1)[-1814]
(g0%2)[-1810]
(g1%2)[-1792]
(g0%1)[-1821]
(g1%2)[-1824]
(g1%2)[-1832]
(g0%2)[-1821]
(g0%2)[-1816]
(g1%2)[-1815]
(g0%1)[-1797]
(g0%1)[-1806]
(g0%1)[-1796](g0%1)[-1800](g0%1)[-1797]
(g0%1)[-1796]
(g1%2)[-1807]
(g0%1)[-1805]
(g0%2)[-1810]
(g0%1)[-1817]
(g0%1)[-1814](g0%1)[-1819]
(g0%2)[-1819]
(g1%2)[-1824]
(g1%2)[-1828]
(g1%2)[-1808]
(g0%1)[-1797](g0%1)[-1796]
(g0%2)[-1816]
(g0%1)[-1808]
(g1%2)[-1803]
(g0%1)[-1783](g0%1)[-1787](g0%1)[-1784]
(g0%1)[-1791]
(g1%2)[-1824]
(g1%2)[-1810]
(g0%1)[-1815](g0%1)[-1825](g0%1)[-1822]
(g0%2)[-1812]
(g2%8)[-1802]
(g0%1)[-1834]
(g0%1)[-1844]
(g0%1)[-1834](g0%1)[-1839](g0%1)[-1838](g0%1)[-1837](g0%1)[-1836](g0%1)[-1835]
(g1%2)[-1853](g0%2)[-1857](g0%2)[-1856](g1%2)[-1852]
(g1%2)[-1852]
(g0%1)[-1853]
(g1%2)[-1856]
(g1%2)[-1848]
(g0%1)[-1843](g0%1)[-1847](g0%1)[-1846]
(g1%2)[-1856]
(g0%1)[-1879](g0%1)[-1882]
(g0%1)[-1860]
(g1%2)[-1863]
(g1%2)[-1855]
(g1%2)[-1859]
(g0%2)[-1852]
(g0%1)[-1873](g0%1)[-1876](g0%1)[-1875](g0%1)[-1874]
(g1%8)[-1882]
(g0%1)[-1867]
(g1%2)[-1866]
(g0%1)[-1861]
(g0%2)[-1878]
(g0%1)[-1886]
(g0%1)[-1893]
(g0%1)[-1895]
(g1%2)[-1876]
(g0%2)[-1887]
(g1%2)[-1900]
(g0%2)[-1897]
(g0%1)[-1900]
(g0%2)[-1888]
(g1%2)[-1895]
(g0%1)[-1894]
(g0%2)[-1891]
(g1%2)[-1887]
(g0%1)[-1897](g0%1)[-1896](g0%1)[-1895](g0%1)[-1894](g0%1)[-1893](g0%1)[-1892]
(g0%1)[-1886]
(g1%2)[-1876]
(g0%2)[-1874]
(g1%2)[-1885]
(g2%8)[-1884]
(g0%1)[-1876]
(g1%2)[-1877]
(g0%2)[-1876]
(g0%2)[-1863]
(g1%2)[-1868]
(g1%2)[-1876]
(g0%2)[-1877]
(g0%1)[-1859]
(g1%2)[-1862]
(g0%2)[-1858]
(g0%1)[-1863]
(g0%1)[-1855]
(g0%1)[-1861]
(g0%2)[-1857]
(g1%2)[-1851]
(g0%1)[-1859]
(g1%2)[-1855]
(g0%2)[-1855]
(g0%1)[-1841]
(g0%1)[-1838](g0%1)[-1843]
(g0%2)[-1838]
(g0%2)[-1853]
(g1%2)[-1851]
(g1%2)[-1847]
(g0%1)[-1837]
(g0%1)[-1810]
(g1%2)[-1814]
(g1%2)[-1812]
(g1%2)[-1809]
(g0%1)[-1783]
(g0%1)[-1791]
(g0%1)[-1788]
(g1%2)[-1795]
(g0%1)[-1821]
(g0%1)[-1830]
(g0%2)[-1833]
(g0%2)[-1842]
(g1%2)[-1840]
(g0%1)[-1825]
(g0%1)[-1818]
(g0%1)[-1848](g0%1)[-1847](g0%1)[-1844]
(g0%1)[-1848]
(g0%1)[-1847]
(g0%2)[-1842]
(g0%2)[-1842]
(g0%2)[-1842](g0%2)[-1843](g1%2)[-1839](g1%2)[-1838]
(g0%2)[-1836]
(g1%2)[-1856]
(g0%2)[-1853]
(g0%1)[-1828]
(g0%2)[-1827]
(g1%2)[-1841]
(g0%2)[-1843]
(g0%2)[-1836]
(g0%1)[-1830](g0%1)[-1829](g0%1)[-1828](g0%1)[-1827](g0%1)[-1826](g0%1)[-1825]
(g0%1)[-1828]
(g0%2)[-1840]
(g0%1)[-1836]
(g0%1)[-1837]
(g1%2)[-1838]
(g0%1)[-1843]
(g1%2)[-1830](g1%2)[-1831]
(g0%1)[-1826]
(g0%1)[-1829](g0%1)[-1824]
(g0%1)[-1836]
(g0%1)[-1825]
(g0%1)[-1833]
(g0%1)[-1840]
(g0%1)[-1837](g0%1)[-1842]
(g0%2)[-1837]
(g1%2)[-1850]
(g0%2)[-1851]
(g0%2)[-1855]
(g1%2)[-1852]
(g0%2)[-1826]
(g0%1)[-1838]
(g0%1)[-1841](g0%1)[-1836]
(g0%1)[-1829]
(g0%1)[-1831]
(g0%1)[-1825]
(g0%1)[-1834]
(g1%2)[-1834]
(g0%2)[-1820]
(g0%2)[-1814]
(g1%2)[-1830]
(g1%2)[-1822]
(g0%1)[-1811](g0%1)[-1815](g0%1)[-1812]
(g0%1)[-1822]
(g0%8)[-1843]
(g0%1)[-1824]
(g0%2)[-1823]
(g0%1)[-1818]
(g1%2)[-1839]
(g1%2)[-1838]
(g0%1)[-1847]
(g0%1)[-1854]
(g0%1)[-1856]
(g0%2)[-1837]
(g1%2)[-1848]
(g1%2)[-1863]
(g1%2)[-1869]
(g0%1)[-1865](g0%1)[-1866]
(g0%1)[-1888]
(g0%1)[-1880]
(g0%2)[-1872]
(g1%2)[-1888]
(g0%2)[-1905](g1%2)[-1910](g1%2)[-1909](g0%2)[-1906]
(g0%2)[-1912]
(g0%2)[-1902]
(g0%1)[-1900]
(g0%2)[-1900]
(g0%2)[-1893](g0%2)[-1892]
(g0%2)[-1899]
(g0%2)[-1904]
(g0%2)[-1906]
(g0%1)[-1914]
(g0%2)[-1917]
(g1%2)[-1927]
(g1%2)[-1925]
(g0%2)[-1915]
(g0%2)[-1904]
(g1%2)[-1903]
(g1%2)[-1927]
(g0%2)[-1934]
(g1%2)[-1944]
(g0%2)[-1937]
(g0%2)[-1945]
(g0%1)[-1946](g0%1)[-1945](g0%1)[-1942]
(g0%1)[-1980]
(g0%2)[-1975]
(g0%1)[-1972](g0%1)[-1965](g0%1)[-1962]
(g0%2)[-1999](g1%2)[-1990]
(g0%1)[-1995]
(g0%1)[-1996]
(g0%1)[-2006](g0%1)[-2005](g0%1)[-2002]
(g0%2)[-1999]
(g0%1)[-2009](g0%1)[-2008](g0%1)[-2005]
(g1%2)[-2001]
(g0%2)[-1997]
(g0%2)[-1998]
(g0%1)[-1998](g0%1)[-2001]
(g0%1)[-1983]
(g0%1)[-1980](g0%1)[-1985]
(g1%2)[-1985]
(g0%2)[-1985]
(g0%2)[-1971]
(g1%2)[-1985]
(g1%2)[-1999]
(g0%1)[-1992]
(g0%1)[-1995](g0%1)[-1990]
(g1%2)[-1995]
(g0%1)[-2003]
(g1%2)[-2023]
(g0%2)[-2017]
(g0%1)[-2016]
(g0%1)[-2029]
(g0%1)[-2031](g0%1)[-2036](g0%1)[-2035](g0%1)[-2034](g0%1)[-2033](g0%1)[-2032]
(g0%1)[-2027]
(g0%1)[-2026]
(g0%1)[-2018]
(g0%1)[-2016]
(g0%2)[-2035]
(g1%2)[-2024]
(g0%2)[-2029]
(g0%2)[-2020]
(g1%2)[-1988](g1%2)[-1987](g0%2)[-1984](g0%2)[-1983]
(g1%2)[-1988]
(g1%2)[-1985]
(g0%2)[-1988]
(g0%2)[-1989]
(g0%1)[-1989](g0%1)[-1992]
(g0%1)[-1971]
(g1%2)[-1968]
(g1%2)[-1970]
(g0%1)[-1972]
(g1%2)[-1962]
(g0%1)[-1957]
(g0%1)[-1957]
(g1%2)[-1961]
(g1%2)[-1959]
(g1%2)[-1972]
(g0%1)[-1964]
(g0%1)[-1957]
(g0%1)[-1973]
(g1%2)[-1976]
(g0%2)[-1978](g1%2)[-1983](g1%2)[-1982](g0%2)[-1979]
(g0%2)[-1973]
(g1%2)[-1973]
(g0%1)[-1966](g0%1)[-1969](g0%1)[-1968](g0%1)[-1967]
(g0%1)[-1972]
(g0%2)[-1968]
(g0%1)[-1978]
(g0%2)[-1978]
(g0%1)[-1968](g0%1)[-1975]
(g1%2)[-1990]
(g0%1)[-1980]
(g0%1)[-1989]
(g1%2)[-1986]
(g1%2)[-1983]
(g1%2)[-1988]
(g1%2)[-1976]
(g0%1)[-1980]
(g0%1)[-1991]
(g0%1)[-1974]
(g1%2)[-1971]
(g0%2)[-1966]
(g0%1)[-1975]
(g0%1)[-1977]
(g0%2)[-1977]
(g1%2)[-1979]
(g0%1)[-1984](g0%1)[-1977]
(g1%2)[-1989](g0%2)[-1994](g0%2)[-1993](g0%2)[-1992](g1%2)[-1991](g1%2)[-1990]
(g0%2)[-1981]
(g0%2)[-1979]
(g0%1)[-1991]
(g1%2)[-1987]
(g1%2)[-1979]
(g0%2)[-1988]
(g0%1)[-1990](g0%1)[-1987](g0%1)[-1985]
(g0%1)[-2002](g0%1)[-1995]
(g0%1)[-1998]
(g4%8)[-1964]
(g0%1)[-1989]
(g0%2)[-1993]
(g0%2)[-2002]
(g0%1)[-1980](g0%1)[-1984](g0%1)[-1983](g0%1)[-1982](g0%1)[-1981]
(g1%2)[-1986]
(g1%2)[-1987]
(g0%1)[-1982]
(g1%2)[-1979]
(g1%2)[-1971]
(g1%2)[-1980]
(g0%1)[-1979]
(g0%2)[-1973]
(g1%2)[-1976]
(g0%2)[-1969](g0%2)[-1968](g0%2)[-1967](g1%2)[-1966](g1%2)[-1965](g1%2)[-1964]
(g0%1)[-1991](g0%1)[-1984](g0%1)[-1981]
(g0%1)[-2008]
(g0%2)[-2008]
(g0%1)[-2003]
(g0%2)[-2009]
(g0%2)[-2019]
(g0%1)[-2008]
(g0%2)[-2006]
(g1%2)[-2001]
(g0%1)[-1990]
(g1%2)[-1994]
(g1%2)[-1992]
(g0%2)[-2001]
(g0%2)[-2007](g0%2)[-2006](g0%2)[-2005](g1%2)[-2004](g1%2)[-2003](g1%2)[-2002]
(g0%1)[-1988]
(g0%1)[-1996]
(g0%1)[-1997]
(g0%1)[-1998]
(g0%1)[-1989]
(g0%2)[-1990]
(g0%2)[-1987](g0%2)[-1988](g1%2)[-1984](g1%2)[-1983]
(g0%2)[-1976]
(g1%2)[-1983]
(g0%1)[-2002]
(g0%1)[-1994]
(g0%1)[-1997](g0%1)[-1992]
(g1%2)[-1994]
(g0%2)[-1990]
(g0%1)[-1956]
(g0%1)[-1948]
(g0%1)[-1946]
(g1%2)[-1950]
(g0%1)[-1944]
(g0%1)[-1940](g0%1)[-1939](g0%1)[-1938](g0%1)[-1937](g0%1)[-1936]
(g0%2)[-1951]
(g1%2)[-1955](g1%2)[-1956]
(g0%1)[-1960]
(g0%2)[-1960]
(g0%2)[-1957](g0%2)[-1958](g1%2)[-1954](g1%2)[-1953]
(g0%2)[-1945]
(g0%2)[-1945]
(g0%1)[-1960]
(g1%2)[-1970]
(g0%1)[-1951]
(g0%1)[-1942](g0%1)[-1946](g0%1)[-1943]
(g0%1)[-1947]
(g0%2)[-1952]
(g0%2)[-1935]
(g0%2)[-1933]
(g0%1)[-1924]
(g0%1)[-1924]
(g0%1)[-1934](g0%1)[-1933](g0%1)[-1930]
(g0%1)[-1929]
(g0%2)[-1924]
(g1%2)[-1939]
(g1%2)[-1944]
(g0%1)[-1944]
(g0%1)[-1945]
(g0%1)[-1945]
(g0%1)[-1955]
(g0%1)[-1942]
(g0%1)[-1951]
(g0%1)[-1958]
(g1%2)[-1943]
(g0%2)[-1963]
(g0%8)[-1981]
(g0%1)[-1971]
(g0%2)[-1974]
(g1%2)[-1984]
(g1%2)[-1982]
(g0%2)[-1972]
(g0%2)[-1961]
(g1%2)[-1960]
(g0%1)[-1921]
(g0%1)[-1919](g0%1)[-1924]
(g0%1)[-1925](g0%1)[-1932]
(g0%1)[-1920]
(g0%1)[-1907]
(g0%1)[-1897](g0%1)[-1901](g0%1)[-1898]
(g0%2)[-1904]
(g0%1)[-1894](g0%1)[-1898](g0%1)[-1895]
(g1%2)[-1902]
(g0%2)[-1906]
(g0%2)[-1905]
(g0%1)[-1905](g0%1)[-1902]
(g0%1)[-1910]
(g0%1)[-1901](g0%1)[-1905](g0%1)[-1902]
(g0%2)[-1908]
(g0%1)[-1900]
(g1%2)[-1918]
(g0%1)[-1917]
(g0%2)[-1917]
(g0%1)[-1927](g0%1)[-1920]
(g0%2)[-1900](g1%2)[-1898](g1%2)[-1897](g1%2)[-1896]
(g1%2)[-1905]
(g0%1)[-1915]
(g0%1)[-1914]
(g1%2)[-1913]
(g0%2)[-1916]
(g0%1)[-1917]
(g0%1)[-1914](g0%1)[-1919]
(g1%2)[-1919]
(g1%2)[-1922]
(g0%2)[-1911]
(g0%2)[-1912]
(g0%1)[-1897]
(g1%2)[-1897]
(g1%2)[-1911]
(g0%2)[-1895]
(g1%2)[-1894]
(g0%1)[-1895]
(g0%1)[-1891]
(g0%1)[-1894](g0%1)[-1889]
(g0%2)[-1894]
(g0%1)[-1910]
(g0%2)[-1901]
(g0%1)[-1910]
(g1%2)[-1910]
(g0%2)[-1916](g0%2)[-1917](g1%2)[-1913](g1%2)[-1912]
(g1%2)[-1921]
(g0%2)[-1922]
(g1%2)[-1890]
(g0%2)[-1900]
(g0%1)[-1913]
(g0%1)[-1922]
(g0%1)[-1932]
(g0%1)[-1920]
(g1%2)[-1920]
(g0%2)[-1926](g0%2)[-1927](g1%2)[-1923](g1%2)[-1922]
(g1%2)[-1931]
(g0%2)[-1932]
(g0%1)[-1900](g0%1)[-1903](g0%1)[-1902](g0%1)[-1901]
(g0%2)[-1910]
(g0%1)[-1907]
(g0%1)[-1897](g0%1)[-1901](g0%1)[-1898]
(g0%2)[-1904]
(g0%1)[-1894](g0%1)[-1898](g0%1)[-1895]
(g1%2)[-1902]
(g0%2)[-1906]
(g0%2)[-1905]
(g0%1)[-1905](g0%1)[-1902]
(g0%1)[-1923]
(g0%1)[-1923]
(g0%1)[-1933](g0%1)[-1932](g0%1)[-1929]
(g0%1)[-1928]
(g0%2)[-1923]
(g0%2)[-1938]
(g0%1)[-1935]
(g0%1)[-1935]
(g0%1)[-1944]
(g0%1)[-1936]
(g0%1)[-1942]
(g0%2)[-1944]
(g0%1)[-1942]
(g0%1)[-1941]
(g1%2)[-1940]
(g0%1)[-1935]
(g1%2)[-1947](g1%2)[-1948]
(g0%1)[-1952]
(g0%1)[-1959]
(g1%2)[-1944]
(g0%2)[-1964]
(g0%1)[-1972]
(g1%2)[-1984]
(g0%1)[-1979]
(g1%2)[-1964]
(g0%2)[-1984]
(g0%1)[-1992]
(g1%2)[-1991]
(g0%1)[-1986]
(g1%2)[-1998](g1%2)[-1999]
(g0%1)[-1994]
(g0%1)[-1997](g0%1)[-1992]
(g1%2)[-1997]
(g0%2)[-2002]
(g1%2)[-2005]
(g1%2)[-1992]
(g0%1)[-2042]
(g1%2)[-2038]
(g0%2)[-2034]
(g0%2)[-2024]
(g0%1)[-2022]
(g0%1)[-2027](g0%1)[-2028]
(g0%1)[-2030]
(g0%1)[-2028](g0%1)[-2030]
(g0%1)[-2009]
(g0%2)[-2012]
(g1%2)[-2022]
(g1%2)[-2020]
(g0%2)[-2010]
(g0%2)[-1999]
(g1%2)[-1998]
(g1%2)[-1977]
(g1%2)[-1967]
(g0%1)[-1959]
(g1%2)[-1956]
(g1%2)[-1952]
(g0%1)[-1963]
(g0%1)[-1971]
(g0%1)[-1933]
(g0%2)[-1910]
(g0%1)[-1914]
(g1%2)[-1913]
(g0%2)[-1916]
(g0%1)[-1917]
(g0%1)[-1914](g0%1)[-1919]
(g1%2)[-1919]
(g1%2)[-1922]
(g0%1)[-1929]
(g0%1)[-1938]
(g0%2)[-1941]
(g1%2)[-1951]
(g1%2)[-1949]
(g0%2)[-1939]
(g0%2)[-1928]
(g1%2)[-1927]
(g1%2)[-1951]
(g0%1)[-1970]
(g0%1)[-1962]
(g0%2)[-1970]
(g0%2)[-1984]
(g0%2)[-1985]
(g1%2)[-1991](g1%2)[-1990]
(g0%1)[-1985]
(g0%1)[-1985]
(g0%1)[-1978]
(g0%2)[-1985]
(g0%1)[-1980](g0%1)[-1979](g0%1)[-1978](g0%1)[-1977](g0%1)[-1976]
(g1%2)[-1970]
(g0%1)[-1968]
(g0%2)[-1993]
(g1%2)[-2022]
(g0%1)[-1999]
(g0%2)[-1996]
(g1%2)[-1994](g1%2)[-1993](g0%2)[-1990](g0%2)[-1989]
(g0%2)[-1998]
(g0%2)[-1999]
(g0%2)[-1997]
(g1%2)[-1980]
(g0%1)[-1987]
(g0%1)[-2014]
(g0%1)[-2017](g0%1)[-2012]
(g0%1)[-2005]
(g0%1)[-2013]
(g0%1)[-2026]
(g0%2)[-2024]
(g1%2)[-2023]
(g0%1)[-2031]
(g0%1)[-2022]
(g0%1)[-2030]
(g0%2)[-2022]
(g0%2)[-1999]
(g1%2)[-2007]
(g0%1)[-2003](g0%1)[-2002]
(g0%1)[-2005]
(g0%1)[-2014]
(g0%1)[-2021]
(g0%1)[-2023]
(g0%2)[-2004]
(g1%2)[-2015]
(g0%2)[-2010]
(g1%2)[-2015]
(g0%2)[-2020]
(g0%1)[-2019]
(g0%1)[-2010]
(g0%1)[-2018]
(g0%1)[-2020]
(g1%2)[-2001]
(g0%2)[-2012]
(g0%1)[-2005](g0%1)[-2015](g0%1)[-2012](g0%1)[-2010](g0%1)[-2009]
(g1%2)[-2018]
(g0%1)[-2023]
(g0%1)[-2023]
(g0%1)[-2015]
(g0%1)[-2013]
(g1%2)[-2032]
(g0%2)[-2021]
(g0%2)[-2019]
(g0%2)[-2007]
(g0%1)[-2011](g0%1)[-2015](g0%1)[-2012]
(g0%1)[-2015](g0%1)[-2014](g0%1)[-2013](g0%1)[-2012](g0%1)[-2011](g0%1)[-2010]
(g0%1)[-1971]
(g0%1)[-1978]
(g1%2)[-1961]
(g0%1)[-1960]
(g1%2)[-1966]
(g0%2)[-1976]
(g1%2)[-1972]
(g1%2)[-1972]
(g0%2)[-1911]
(g0%2)[-1912]
(g0%1)[-1897]
(g1%2)[-1898]
(g0%2)[-1877]
(g0%2)[-1837](g0%2)[-1844]
(g0%1)[-1850]
(g0%1)[-1848](g0%1)[-1853]
(g1%2)[-1853]
(g0%2)[-1840]
(g1%2)[-1851]
(g0%1)[-1845]
(g0%8)[-1844]
(g0%2)[-1843]
(g0%1)[-1855](g0%1)[-1854]
(g0%1)[-1851]
(g0%1)[-1842]
(g1%2)[-1839]
(g0%2)[-1833]
(g0%1)[-1834](g0%1)[-1839](g0%1)[-1838](g0%1)[-1837](g0%1)[-1836](g0%1)[-1835]
(g0%1)[-1845]
(g0%1)[-1856]
(g0%1)[-1831]
(g0%1)[-1839]
(g0%1)[-1835]
(g1%2)[-1838]
(g0%2)[-1834]
(g0%1)[-1839]
(g0%1)[-1836](g0%1)[-1841]
(g0%1)[-1828](g0%1)[-1835]
(g0%1)[-1848]
(g0%1)[-1847]
(g0%2)[-1842]
(g0%2)[-1842]
(g0%2)[-1842](g0%2)[-1843](g1%2)[-1839](g1%2)[-1838]
(g0%2)[-1836]
(g1%2)[-1856]
(g0%2)[-1853]
(g1%2)[-1866]
(g1%2)[-1868]
(g0%2)[-1866]
(g1%2)[-1888]
(g1%2)[-1897]
(g1%2)[-1902]
(g1%2)[-1904]
(g0%1)[-1885]
(g0%1)[-1886]
(g0%2)[-1886]
(g0%2)[-1901]
(g1%2)[-1896]
(g0%2)[-1888]
(g1%2)[-1892]
(g1%2)[-1870]
(g0%1)[-1871]
(g0%2)[-1871]
(g0%2)[-1856]
(g1%2)[-1853]
(g0%2)[-1867]
(g0%2)[-1871]
(g0%2)[-1853]
(g1%2)[-1859]
(g0%2)[-1870]
(g0%2)[-1875]
(g0%1)[-1871](g0%1)[-1872]
(g1%2)[-1875]
(g1%2)[-1866]
(g1%2)[-1875]
(g1%2)[-1864]
(g0%2)[-1861]
(g1%2)[-1878]
(g0%1)[-1891]
(g0%1)[-1894](g0%1)[-1889]
(g0%2)[-1894]
(g0%2)[-1901]
(g1%2)[-1890]
(g0%2)[-1877]
(g0%1)[-1864](g0%1)[-1867](g0%1)[-1866](g0%1)[-1865]
(g1%2)[-1866]
(g1%2)[-1868]
(g0%2)[-1866]
(g0%1)[-1848]
(g0%1)[-1837]
(g0%1)[-1847](g0%1)[-1846](g0%1)[-1845](g0%1)[-1844](g0%1)[-1843](g0%1)[-1842]
(g0%1)[-1871]
(g0%1)[-1861](g0%1)[-1865](g0%1)[-1862]
(g0%1)[-1866]
(g0%2)[-1861]
(g1%2)[-1857]
(g1%2)[-1874]
(g0%1)[-1871]
(g0%1)[-1858]
(g0%1)[-1858]
(g1%2)[-1854]
(g0%2)[-1873]
(g0%2)[-1867]
(g0%1)[-1887](g0%1)[-1886](g0%1)[-1883]
(g1%2)[-1857]
(g0%2)[-1878]
(g0%2)[-1886]
(g0%1)[-1894]
(g1%2)[-1894]
(g0%1)[-1899]
(g0%2)[-1880]
(g1%2)[-1884]
(g0%2)[-1892]
(g1%2)[-1906]
(g0%2)[-1902]
(g0%1)[-1909]
(g0%1)[-1909]
(g0%2)[-1909]
(g0%2)[-1895]
(g0%1)[-1897]
(g1%2)[-1902]
(g0%1)[-1911]
(g1%2)[-1915]
(g1%2)[-1907]
(g0%2)[-1923]
(g1%2)[-1919]
(g1%2)[-1912]
(g0%2)[-1901]
(g1%2)[-1922]
(g1%2)[-1919]
(g1%2)[-1878]
(g0%1)[-1876]
(g0%1)[-1869]
(g0%1)[-1872]
(g0%1)[-1867]
(g0%1)[-1855]
(g0%1)[-1873]
(g0%1)[-1861]
(g0%1)[-1860]
(g0%1)[-1867]
(g1%2)[-1850]
(g0%1)[-1850]
(g0%1)[-1850](g0%1)[-1849]
(g1%2)[-1855]
(g0%2)[-1865]
(g1%2)[-1861]
(g1%2)[-1861]
(g0%1)[-1853]
(g0%1)[-1844]
(g0%1)[-1835](g0%1)[-1839](g0%1)[-1836]
(g0%1)[-1840]
(g1%2)[-1835]
(g0%2)[-1838](g0%2)[-1839]
(g0%1)[-1845]
(g0%1)[-1844]
(g0%1)[-1845]
(g0%1)[-1845]
(g0%1)[-1834]
(g0%1)[-1859]
(g0%1)[-1850](g0%1)[-1854](g0%1)[-1851]
(g0%1)[-1855]
(g0%1)[-1848](g0%1)[-1855]
(g0%1)[-1837]
(g0%1)[-1830]
(g1%2)[-1845]
(g0%2)[-1825]
(g0%1)[-1817]
(g0%1)[-1828]
(g0%1)[-1818](g0%1)[-1823](g0%1)[-1822](g0%1)[-1821](g0%1)[-1820](g0%1)[-1819]
(g0%1)[-1781]
(g0%1)[-1779]
(g0%1)[-1785]
(g0%1)[-1786]
(g0%1)[-1777]
(g0%1)[-1780](g0%1)[-1775]
(g1%2)[-1780]
(g0%2)[-1780]
(g1%2)[-1767]
(g0%2)[-1783]
(g0%1)[-1794]
(g0%1)[-1787]
(g1%2)[-1802]
(g0%2)[-1782]
(g0%1)[-1766]
(g0%1)[-1774]
(g0%1)[-1767]
(g1%2)[-1782]
(g0%2)[-1762]
(g0%1)[-1763]
(g0%1)[-1755]
(g1%2)[-1763]
(g1%2)[-1775]
(g0%1)[-1785]
(g0%1)[-1773]
(g0%2)[-1770]
(g0%2)[-1778]
(g0%2)[-1766]
(g0%1)[-1759](g0%1)[-1756]
(g0%1)[-1774]
(g0%1)[-1785]
(g0%1)[-1785]
(g1%2)[-1781]
(g1%2)[-1780](g1%2)[-1779]
(g0%1)[-1790](g0%1)[-1794](g0%1)[-1793](g0%1)[-1792](g0%1)[-1791]
(g0%1)[-1785]
(g0%1)[-1785]
(g0%1)[-1796]
(g0%1)[-1794](g0%1)[-1793](g0%1)[-1790]
(g0%1)[-1789]
(g1%2)[-1784]
(g0%1)[-1768]
(g0%1)[-1768]
(g0%1)[-1760]
(g1%2)[-1767]
(g1%2)[-1775]
(g0%1)[-1766]
(g0%2)[-1751](g0%2)[-1755]
(g0%1)[-1757]
(g1%2)[-1754]
(g1%2)[-1745]
(g1%2)[-1756]
(g0%2)[-1760]
(g0%1)[-1761]
(g1%2)[-1774]
(g7%8)[-1769]
(g0%2)[-1790]
(g0%2)[-1797]
(g0%1)[-1805]
(g0%1)[-1815]
(g0%1)[-1805](g0%1)[-1810](g0%1)[-1809](g0%1)[-1808](g0%1)[-1807](g0%1)[-1806]
(g0%1)[-1860]
(g0%1)[-1862]
(g0%1)[-1865](g0%1)[-1860]
(g0%1)[-1853]
(g0%1)[-1867]
(g0%1)[-1855](g0%1)[-1850]
(g0%1)[-1874]
(g0%1)[-1869]
(g1%2)[-1865]
(g1%2)[-1867]
(g1%2)[-1861]
(g0%1)[-1869]
(g0%1)[-1886]
(g0%1)[-1878]
(g1%2)[-1886]
(g1%2)[-1894]
(g1%2)[-1911]
(g0%1)[-1890](g0%1)[-1889]
(g0%1)[-1898]
(g0%1)[-1900]
(g0%2)[-1899]
(g1%2)[-1911]
(g0%2)[-1902]
(g0%1)[-1908]
(g0%1)[-1910]
(g0%2)[-1907]
(g0%2)[-1891]
(g1%2)[-1899]
(g1%2)[-1914]
(g0%2)[-1915]
(g1%2)[-1922]
(g1%2)[-1903]
(g1%2)[-1908](g1%2)[-1901]
(g1%2)[-1863]
(g0%8)[-1859]
(g0%1)[-1866]
(g0%1)[-1869]
(g0%2)[-1865]
(g1%2)[-1859]
(g0%1)[-1881]
(g0%1)[-1866]
(g0%1)[-1872]
(g0%1)[-1851]
(g1%2)[-1848]
(g0%2)[-1843]
(g0%1)[-1854]
(g0%1)[-1844]
(g0%1)[-1849](g0%1)[-1854](g0%1)[-1853](g0%1)[-1852](g0%1)[-1851](g0%1)[-1850]
(g0%1)[-1863]
(g0%1)[-1878]
(g0%2)[-1878]
(g0%2)[-1875](g0%2)[-1876](g1%2)[-1872](g1%2)[-1871]
(g0%2)[-1863]
(g0%2)[-1863]
(g1%2)[-1879]
(g0%1)[-1868]
(g0%2)[-1873]
(g0%1)[-1877]
(g0%2)[-1866]
(g1%2)[-1873]
(g1%2)[-1857]
(g0%2)[-1863](g0%2)[-1853]
(g0%1)[-1852]
(g0%1)[-1843]
(g0%1)[-1853](g0%1)[-1852](g0%1)[-1849]
(g0%1)[-1844]
(g0%1)[-1841]
(g1%2)[-1834]
(g0%2)[-1851]
(g0%1)[-1854]
(g0%1)[-1851](g0%1)[-1856]
(g1%2)[-1851]
(g0%2)[-1851]
(g0%2)[-1865]
(g1%2)[-1864]
(g1%2)[-1854]
(g0%1)[-1835]
(g0%1)[-1828]
(g1%2)[-1832]
(g1%2)[-1830]
(g0%1)[-1817]
(g0%2)[-1838]
(g0%2)[-1839]
(g0%1)[-1841]
(g0%1)[-1838](g0%1)[-1843]
(g1%2)[-1843]
(g0%2)[-1846]
(g0%2)[-1843]
(g0%2)[-1831](g1%2)[-1836](g1%2)[-1835](g0%2)[-1832]
(g0%2)[-1830]
(g0%2)[-1831]
(g0%1)[-1936]
(g0%1)[-1933](g0%1)[-1938]
(g0%1)[-1945]
(g0%1)[-1943]
(g0%1)[-1949]
(g0%1)[-1950]
(g0%1)[-1950]
(g1%2)[-1950]
(g0%2)[-1948]
(g1%2)[-1939]
(g1%2)[-1946]
(g1%2)[-1954]
(g0%1)[-1965](g0%1)[-1975](g0%1)[-1968](g0%1)[-1964]
(g0%1)[-1999]
(g0%2)[-2000]
(g0%2)[-1985]
(g1%2)[-1982]
(g0%1)[-1991]
(g0%1)[-1982]
(g1%2)[-2001]
(g1%2)[-2003]
(g0%1)[-1991]
(g0%1)[-1986](g0%1)[-1985](g0%1)[-1984](g0%1)[-1983](g0%1)[-1982](g0%1)[-1981]
(g0%1)[-1979]
(g0%2)[-1975]
(g0%2)[-1977]
(g0%2)[-1971]
(g0%2)[-1980]
(g1%2)[-1977]
(g0%1)[-1965]
(g0%2)[-1965]
(g1%2)[-1977]
(g0%2)[-1968]
(g1%2)[-1971]
(g0%2)[-1964]
(g1%2)[-1969]
(g1%2)[-1967]
(g1%2)[-1967]
(g1%2)[-1970]
(g0%1)[-1976]
(g0%2)[-1980]
(g0%2)[-1984]
(g0%2)[-1983]
(g0%2)[-1985]
(g0%1)[-1999]
(g0%1)[-2006]
(g0%1)[-2008]
(g1%2)[-1997]
(g0%1)[-1989]
(g0%1)[-1998]
(g0%1)[-1992]
(g0%1)[-1982](g0%1)[-1986](g0%1)[-1983]
(g0%1)[-1987]
(g0%1)[-1994]
(g0%1)[-1978]
(g0%1)[-1992](g0%1)[-1997]
(g0%2)[-1990]
(g1%2)[-1997]
(g0%1)[-1984]
(g0%1)[-1983]
(g0%2)[-1979]
(g0%2)[-1987]
(g0%2)[-1986]
(g1%2)[-1990]
(g0%1)[-1991]
(g0%1)[-1985]
(g0%1)[-1994]
(g1%2)[-2012]
(g0%1)[-2003](g0%1)[-2002](g0%1)[-1999]
(g0%1)[-2003]
(g0%2)[-1999]
(g0%1)[-2000](g0%1)[-2003](g0%1)[-2002]
(g1%2)[-1995]
(g1%2)[-2004]
(g1%2)[-2014]
(g0%1)[-2013]
(g0%1)[-2016](g0%1)[-2011]
(g0%1)[-2004]
(g0%2)[-2001]
(g1%2)[-2004]
(g1%2)[-1998]
(g1%2)[-1996]
(g0%2)[-2011]
(g0%1)[-1997](g0%1)[-2001](g0%1)[-2000](g0%1)[-1999](g0%1)[-1998](g0%1)[-1996]
(g0%1)[-1965]
(g0%1)[-1966]
(g1%2)[-1970]
(g0%2)[-1976]
(g0%1)[-1966]
(g0%1)[-1970](g0%1)[-1975](g0%1)[-1974](g0%1)[-1973](g0%1)[-1972](g0%1)[-1971]
(g0%1)[-1965]
(g0%1)[-1956]
(g0%1)[-1949]
(g0%2)[-1956]
(g0%1)[-1951](g0%1)[-1950](g0%1)[-1949](g0%1)[-1948](g0%1)[-1947]
(g0%2)[-1964]
(g0%1)[-1970]
(g1%2)[-1967]
(g0%1)[-1982]
(g0%1)[-1974]
(g1%2)[-1991]
(g0%2)[-1957]
(g1%2)[-1959]
(g1%2)[-1966]
(g0%1)[-1988](g0%1)[-1987](g0%1)[-1986](g0%1)[-1985](g0%1)[-1984](g0%1)[-1983]
(g0%1)[-1984]
(g0%1)[-1976]
(g0%2)[-1988]
(g1%2)[-1984]
(g0%2)[-1979]
(g0%2)[-1985]
(g1%2)[-1979]
(g0%2)[-1976](g1%2)[-1981](g1%2)[-1980](g0%2)[-1977]
(g0%1)[-1989]
(g0%2)[-1989]
(g1%2)[-1987]
(g1%2)[-1995]
(g0%1)[-1984](g0%1)[-1987]
(g0%1)[-1970](g0%1)[-1971]
(g0%1)[-1974]
(g0%1)[-1975]
(g0%1)[-1975]
(g1%2)[-1978]
(g0%2)[-1974]
(g0%1)[-1979]
(g0%1)[-1976](g0%1)[-1981]
(g1%2)[-1976]
(g0%2)[-1973]
(g0%2)[-1976]
(g0%2)[-1971]
(g1%2)[-1977]
(g0%1)[-1982]
(g0%1)[-1974]
(g0%2)[-1982]
(g1%2)[-1992]
(g0%2)[-2005]
(g1%2)[-2005]
(g1%2)[-1993]
(g0%1)[-1986]
(g0%2)[-1990]
(g1%2)[-2000]
(g0%2)[-1985]
(g1%2)[-2000]
(g0%1)[-1997](g0%1)[-2006](g0%1)[-2005](g0%1)[-1998]
(g0%2)[-2008]
(g0%2)[-2010]
(g0%1)[-2018]
(g0%1)[-2027](g0%1)[-2026](g0%1)[-2023]
(g1%2)[-2020]
(g1%2)[-2005]
(g1%2)[-2025]
(g1%2)[-2012]
(g0%2)[-2038]
(g0%1)[-2037]
(g0%1)[-2040](g0%1)[-2035]
(g0%1)[-2028]
(g0%1)[-2039]
(g0%1)[-2024]
(g0%1)[-2022]
(g0%2)[-2026]
(g0%1)[-2011]
(g1%2)[-2008]
(g0%2)[-2012]
(g0%1)[-2007](g0%1)[-2013](g0%1)[-2010]
(g0%2)[-2000](g1%2)[-2003](g1%2)[-2002](g1%2)[-2001](g0%2)[-1999](g0%2)[-1998]
(g0%1)[-2022]
(g0%1)[-2040]
(g0%2)[-2041]
(g0%2)[-2040]
(g0%2)[-2030]
(g0%1)[-2033]
(g0%1)[-2028]
(g0%1)[-2028]
(g1%2)[-2032]
(g1%2)[-2030]
(g1%2)[-2049]
(g0%2)[-2039]
(g0%2)[-2045](g0%2)[-2044](g0%2)[-2043](g1%2)[-2042](g1%2)[-2041](g1%2)[-2040]
(g0%1)[-2026]
(g0%1)[-2034]
(g0%1)[-2035]
(g0%1)[-2026]
(g0%1)[-2029](g0%1)[-2024]
(g1%2)[-2024]
(g1%2)[-2037]
(g0%2)[-2031]
(g1%2)[-2034]
(g0%1)[-2034](g0%1)[-2033](g0%1)[-2032](g0%1)[-2031](g0%1)[-2030](g0%1)[-2029]
(g0%1)[-2036]
(g0%2)[-2037]
(g1%2)[-2025]
(g0%1)[-2016]
(g0%1)[-2016]
(g0%2)[-2036]
(g0%2)[-2032]
(g0%2)[-2028]
(g0%1)[-2019](g0%1)[-2014]
(g0%1)[-2012]
(g0%1)[-2009]
(g0%1)[-2017]
(g2%8)[-2019]
(g0%1)[-2006]
(g0%1)[-2006]
(g0%1)[-2015](g0%1)[-2014](g0%1)[-2011]
(g0%1)[-2015]
(g0%1)[-2009]
(g1%2)[-2019]
(g0%1)[-2022]
(g0%1)[-2023]
(g0%1)[-2024]
(g0%1)[-2025]
(g0%2)[-1984]
(g0%1)[-1976]
(g1%2)[-1973]
(g0%1)[-1958]
(g1%2)[-1964]
(g1%2)[-1975]
(g0%2)[-1979]
(g0%1)[-1980]
(g1%2)[-1993]
(g6%8)[-1988]
(g0%1)[-1960]
(g1%2)[-1957]
(g1%8)[-1931]
(g1%2)[-1941]
(g1%2)[-1949]
(g0%2)[-1952]
(g0%2)[-1969]
(g0%1)[-1973]
(g1%2)[-1968]
(g0%2)[-1965]
(g0%2)[-1970](g0%2)[-1969]
(g0%2)[-1963]
(g0%1)[-1974]
(g0%2)[-1978]
(g1%2)[-1982]
(g1%2)[-1992]
(g0%1)[-1982](g0%1)[-1987](g0%1)[-1986](g0%1)[-1985](g0%1)[-1984](g0%1)[-1983]
(g0%2)[-1981]
(g0%2)[-1972](g1%2)[-1975](g1%2)[-1974](g1%2)[-1973](g0%2)[-1971](g0%2)[-1970]
(g0%2)[-1992]
(g0%1)[-1990]
(g0%1)[-1999]
(g1%2)[-2002]
(g1%2)[-2010]
(g1%2)[-2001]
(g0%1)[-1991]
(g0%2)[-1988]
(g0%2)[-1996]
(g0%1)[-2002]
(g1%8)[-2003]
(g0%1)[-1998](g0%1)[-2001]
(g0%1)[-2025]
(g1%2)[-2028]
(g0%2)[-2024]
(g0%1)[-2029]
(g1%2)[-2032]
(g0%2)[-2028]
(g0%1)[-2033]
(g0%2)[-2036]
(g0%2)[-2028]
(g0%2)[-2038]
(g0%1)[-2046]
(g0%1)[-2047]
(g0%1)[-2046]
(g0%1)[-2081]
(g0%1)[-2078](g0%1)[-2083]
(g1%2)[-2078]
(g0%2)[-2075]
(g0%2)[-2092]
(g0%2)[-2085]
(g1%2)[-2084]
(g0%1)[-2095]
(g1%2)[-2098]
(g0%2)[-2100](g1%2)[-2105](g1%2)[-2104](g0%2)[-2101]
(g1%2)[-2100]
(g0%2)[-2104]
(g0%2)[-2110]
(g1%2)[-2094]
(g0%1)[-2120]
(g1%2)[-2116]
(g0%2)[-2112]
(g0%2)[-2102]
(g0%1)[-2100]
(g0%1)[-2105](g0%1)[-2106]
(g0%1)[-2108]
(g0%1)[-2106](g0%1)[-2108]
(g0%1)[-2121]
(g0%1)[-2111](g0%1)[-2115](g0%1)[-2112]
(g0%2)[-2124]
(g0%2)[-2112]
(g0%1)[-2115](g0%1)[-2116]
(g1%2)[-2129]
(g1%2)[-2118](g1%2)[-2119]
(g0%1)[-2114]
(g1%2)[-2111]
(g0%2)[-2105]
(g0%1)[-2124](g0%1)[-2123](g0%1)[-2122](g0%1)[-2121](g0%1)[-2120](g0%1)[-2119]
(g0%1)[-2116]
(g0%1)[-2121]
(g0%1)[-2131](g0%1)[-2135](g0%1)[-2134](g0%1)[-2133](g0%1)[-2132]
(g0%1)[-2130]
(g0%1)[-2122]
(g0%2)[-2130]
(g1%2)[-2145]
(g0%2)[-2147]
(g0%1)[-2138](g0%1)[-2142](g0%1)[-2141](g0%1)[-2140](g0%1)[-2139]
(g0%1)[-2158]
(g1%2)[-2161]
(g0%1)[-2148](g0%1)[-2152](g0%1)[-2151](g0%1)[-2150](g0%1)[-2149]
(g1%2)[-2156]
(g0%2)[-2150]
(g0%1)[-2150]
(g0%2)[-2147]
(g1%2)[-2137]
(g1%2)[-2139]
(g0%2)[-2149]
(g0%1)[-2167]
(g0%1)[-2174]
(g0%2)[-2160]
(g1%2)[-2161]
(g0%1)[-2166]
(g0%1)[-2164]
(g0%2)[-2183]
(g1%2)[-2172]
(g1%2)[-2158]
(g1%2)[-2166]
(g1%2)[-2170]
(g0%1)[-2174]
(g0%1)[-2174]
(g0%2)[-2178]
(g1%2)[-2188]
(g1%2)[-2191]
(g0%1)[-2188]
(g0%1)[-2185]
(g0%1)[-2184]
(g1%2)[-2188]
(g1%2)[-2180]
(g0%2)[-2188]
(g0%1)[-2187]
(g0%1)[-2200](g0%1)[-2199](g0%1)[-2196]
(g0%2)[-2180]
(g0%2)[-2204]
(g0%1)[-2225]
(g0%2)[-2229]
(g0%2)[-2232]
(g0%2)[-2230]
(g0%2)[-2234]
(g0%2)[-2230](g0%2)[-2229](g1%2)[-2226](g1%2)[-2225]
(g0%2)[-2224]
(g0%1)[-2242]
(g0%1)[-2249]
(g1%2)[-2234]
(g0%2)[-2254]
(g0%1)[-2262]
(g1%2)[-2261]
(g0%1)[-2256]
(g1%2)[-2268](g1%2)[-2269]
(g0%1)[-2273]
(g0%1)[-2280]
(g1%2)[-2265]
(g0%2)[-2285]
(g0%1)[-2293]
(g0%1)[-2300]
(g1%2)[-2285]
(g0%2)[-2305]
(g0%1)[-2304]
(g0%2)[-2308]
(g0%2)[-2300]
(g1%2)[-2308]
(g0%1)[-2307]
(g0%1)[-2312]
(g0%1)[-2308]
(g0%1)[-2317]
(g0%1)[-2324]
(g1%2)[-2309]
(g0%2)[-2329]
(g0%1)[-2337]
(g0%1)[-2326]
(g0%1)[-2331](g0%1)[-2336](g0%1)[-2335](g0%1)[-2334](g0%1)[-2333](g0%1)[-2332]
(g0%1)[-2361]
(g0%1)[-2361]
(g0%1)[-2350]
(g0%1)[-2360](g0%1)[-2359](g0%1)[-2358](g0%1)[-2357](g0%1)[-2356](g0%1)[-2355]
(g0%1)[-2384]
(g0%1)[-2373]
(g0%1)[-2383](g0%1)[-2382](g0%1)[-2381](g0%1)[-2380](g0%1)[-2379](g0%1)[-2378]
(g1%2)[-2415]
(g1%2)[-2412]
(g0%1)[-2433]
(g0%2)[-2429]
(g0%2)[-2437]
(g0%2)[-2433]
(g0%2)[-2439]
(g0%2)[-2433]
(g0%2)[-2426](g0%2)[-2425](g0%2)[-2424](g1%2)[-2423](g1%2)[-2422](g1%2)[-2421]
(g0%1)[-2431]
(g0%1)[-2431]
(g0%2)[-2427]
(g0%1)[-2425]
(g0%1)[-2424](g0%1)[-2417](g0%1)[-2414]
(g0%1)[-2425]
(g0%1)[-2428](g0%1)[-2423]
(g1%2)[-2428]
(g1%2)[-2423](g0%2)[-2427](g0%2)[-2426](g1%2)[-2422]
(g0%2)[-2424]
(g0%2)[-2428]
(g0%1)[-2428]
(g0%1)[-2428]
(g1%2)[-2432]
(g0%2)[-2451]
(g0%1)[-2447]
(g1%2)[-2440]
(g0%2)[-2425]
(g0%1)[-2418](g0%1)[-2428](g0%1)[-2425]
(g0%1)[-2417]
(g0%1)[-2451]
(g0%1)[-2451]
(g1%2)[-2454]
(g1%2)[-2463]
(g1%2)[-2452]
(g0%2)[-2448]
(g0%1)[-2447]
(g1%2)[-2434]
(g0%8)[-2439]
(g0%1)[-2448]
(g0%1)[-2451](g0%1)[-2446]
(g0%2)[-2451]
(g1%2)[-2454]
(g0%2)[-2452]
(g1%2)[-2452]
(g0%1)[-2407]
(g0%1)[-2396]
(g0%1)[-2406](g0%1)[-2405](g0%1)[-2404](g0%1)[-2403](g0%1)[-2402](g0%1)[-2401]
(g0%1)[-2430]
(g0%1)[-2419]
(g0%1)[-2429](g0%1)[-2428](g0%1)[-2427](g0%1)[-2426](g0%1)[-2425](g0%1)[-2424]
(g0%1)[-2453]
(g1%2)[-2449]
(g1%2)[-2457]
(g0%2)[-2457]
(g0%1)[-2461]
(g0%1)[-2459]
(g0%2)[-2456]
(g0%1)[-2485]
(g0%1)[-2483]
(g0%1)[-2473](g0%1)[-2477](g0%1)[-2474]
(g1%2)[-2486]
(g0%1)[-2493]
(g0%2)[-2476]
(g1%2)[-2485]
(g0%1)[-2497]
(g0%1)[-2494](g0%1)[-2499]
(g0%2)[-2494]
(g0%1)[-2486]
(g0%2)[-2494]
(g0%1)[-2482]
(g0%1)[-2509](g0%1)[-2501]
(g1%2)[-2523]
(g0%2)[-2527]
(g0%1)[-2576]
(g0%2)[-2572]
(g0%2)[-2572]
(g0%1)[-2581](g0%1)[-2585](g0%1)[-2584](g0%1)[-2583](g0%1)[-2582]
(g1%2)[-2583]
(g0%2)[-2563](g0%2)[-2572](g1%2)[-2568](g1%2)[-2567]
(g0%1)[-2554]
(g0%2)[-2550]
(g0%2)[-2542]
(g1%2)[-2545]
(g1%2)[-2562]
(g0%2)[-2550]
(g0%2)[-2545](g0%2)[-2546](g1%2)[-2542](g1%2)[-2541]
(g0%2)[-2540]
(g0%2)[-2550]
(g1%2)[-2564]
(g0%1)[-2566]
(g0%2)[-2562]
(g0%2)[-2559]
(g0%2)[-2564]
(g0%1)[-2566]
(g1%2)[-2554]
(g0%1)[-2552]
(g1%2)[-2549]
(g0%2)[-2539]
(g0%1)[-2562](g0%1)[-2561](g0%1)[-2560](g0%1)[-2559](g0%1)[-2558]
(g0%2)[-2560]
(g0%2)[-2554]
(g0%1)[-2536]
(g0%1)[-2540]
(g0%2)[-2564]
(g0%1)[-2572]
(g0%2)[-2571]
(g1%2)[-2585]
(g0%2)[-2581]
(g1%2)[-2579]
(g1%2)[-2580]
(g0%1)[-2572](g0%1)[-2577](g0%1)[-2576](g0%1)[-2575](g0%1)[-2574](g0%1)[-2573]
(g0%1)[-2600]
(g0%1)[-2597](g0%1)[-2602]
(g0%1)[-2609]
(g0%1)[-2598]
(g1%2)[-2589]
(g0%1)[-2582]
(g0%1)[-2581]
(g0%1)[-2581]
(g0%1)[-2584](g0%1)[-2579]
(g1%2)[-2579]
(g0%2)[-2582]
(g0%2)[-2579]
(g0%2)[-2560]
(g1%2)[-2584]
(g0%1)[-2589]
(g0%1)[-2603]
(g0%1)[-2607]
(g5%8)[-2601]
(g0%1)[-2558]
(g1%2)[-2563]
(g0%1)[-2575]
(g1%2)[-2542]
(g1%2)[-2556]
(g0%1)[-2551](g0%1)[-2544](g0%1)[-2541]
(g0%2)[-2554]
(g0%1)[-2541]
(g0%1)[-2538](g0%1)[-2543]
(g0%2)[-2538]
(g0%2)[-2541]
(g0%1)[-2548]
(g0%1)[-2543](g0%1)[-2542](g0%1)[-2541](g0%1)[-2540](g0%1)[-2539]
(g0%1)[-2537]
(g0%1)[-2537]
(g0%2)[-2532]
(g0%1)[-2518](g0%1)[-2522](g0%1)[-2519]
(g0%2)[-2556](g1%2)[-2547]
(g0%1)[-2549]
(g0%1)[-2557](g0%1)[-2556](g0%1)[-2555](g0%1)[-2554]
(g0%1)[-2569](g0%1)[-2577]
(g0%1)[-2530]
(g0%1)[-2530]
(g0%1)[-2521](g0%1)[-2525](g0%1)[-2522]
(g0%1)[-2526]
(g0%2)[-2531]
(g1%2)[-2516]
(g0%2)[-2520]
(g0%1)[-2513]
(g0%1)[-2522]
(g0%1)[-2519](g0%1)[-2524]
(g1%2)[-2519]
(g0%2)[-2519]
(g0%2)[-2533]
(g1%2)[-2519]
(g0%2)[-2508]
(g0%1)[-2533]
(g0%2)[-2532]
(g1%2)[-2544]
(g0%1)[-2536]
(g0%2)[-2527]
(g0%2)[-2519]
(g0%1)[-2543]
(g0%2)[-2540]
(g1%2)[-2530]
(g1%2)[-2548]
(g0%1)[-2551]
(g0%2)[-2527]
(g0%1)[-2542]
(g0%1)[-2550]
(g0%2)[-2543]
(g0%2)[-2535]
(g0%1)[-2520]
(g0%2)[-2524]
(g0%2)[-2516]
(g0%2)[-2520]
(g1%2)[-2523]
(g1%2)[-2511]
(g0%1)[-2516]
(g0%1)[-2519](g0%1)[-2514]
(g0%2)[-2519]
(g0%2)[-2504]
(g0%2)[-2513]
(g1%2)[-2523]
(g0%2)[-2520](g0%2)[-2519]
(g0%1)[-2524]
(g1%2)[-2524]
(g0%1)[-2533]
(g0%1)[-2531]
(g1%2)[-2504]
(g0%2)[-2508]
(g1%2)[-2514]
(g0%1)[-2522]
(g0%1)[-2521]
(g0%1)[-2518](g0%1)[-2523]
(g0%1)[-2530]
(g0%1)[-2520](g0%1)[-2517](g0%1)[-2510]
(g0%2)[-2523]
(g0%1)[-2494]
(g1%2)[-2498]
(g0%2)[-2494]
(g0%1)[-2490]
(g1%2)[-2494]
(g0%2)[-2490]
(g0%1)[-2486]
(g1%2)[-2490]
(g0%2)[-2486]
(g0%1)[-2491]
(g0%2)[-2494]
(g1%2)[-2504]
(g1%2)[-2502]
(g0%2)[-2492]
(g0%2)[-2481]
(g1%2)[-2480]
(g0%1)[-2469]
(g1%2)[-2465]
(g0%2)[-2463](g0%2)[-2462](g1%2)[-2459](g1%2)[-2458]
(g0%2)[-2455]
(g1%2)[-2470]
(g1%2)[-2449]
(g0%2)[-2470]
(g0%1)[-2440]
(g0%1)[-2449]
(g0%1)[-2446](g0%1)[-2451]
(g0%1)[-2439]
(g0%1)[-2450]
(g0%1)[-2435]
(g0%1)[-2443]
(g0%1)[-2434]
(g0%1)[-2437](g0%1)[-2432]
(g0%2)[-2437]
(g1%2)[-2432]
(g1%2)[-2425](g0%2)[-2430](g0%2)[-2429](g1%2)[-2426]
(g1%2)[-2441]
(g1%2)[-2447]
(g0%1)[-2419]
(g0%1)[-2487]
(g0%1)[-2480]
(g0%1)[-2478]
(g1%2)[-2492]
(g0%1)[-2488]
(g1%2)[-2504]
(g0%2)[-2500]
(g0%2)[-2536]
(g0%2)[-2563]
(g0%2)[-2558]
(g0%1)[-2555]
(g0%1)[-2565](g0%1)[-2564](g0%1)[-2561]
(g0%1)[-2560]
(g0%1)[-2561]
(g0%2)[-2558]
(g0%1)[-2555]
(g0%2)[-2566]
(g0%1)[-2569]
(g0%1)[-2569]
(g0%2)[-2565]
(g0%2)[-2556]
(g0%1)[-2578](g0%1)[-2577](g0%1)[-2576](g0%1)[-2575](g0%1)[-2574]
(g1%2)[-2572]
(g1%2)[-2571]
(g0%1)[-2576]
(g1%2)[-2579]
(g1%2)[-2587]
(g1%2)[-2578]
(g0%1)[-2579]
(g0%2)[-2585]
(g1%2)[-2582]
(g0%2)[-2589](g1%2)[-2594](g1%2)[-2593](g1%2)[-2592](g0%2)[-2591](g0%2)[-2590]
(g0%1)[-2567](g0%1)[-2577](g0%1)[-2574]
(g0%2)[-2548]
(g1%2)[-2542]
(g0%1)[-2543]
(g0%1)[-2569]
(g0%1)[-2566](g0%1)[-2571]
(g1%2)[-2566]
(g1%2)[-2555]
(g0%2)[-2569]
(g0%1)[-2569]
(g0%1)[-2580]
(g0%1)[-2571]
(g1%2)[-2568]
(g1%2)[-2570]
(g0%1)[-2583]
(g0%1)[-2582]
(g0%1)[-2579](g0%1)[-2584]
(g0%1)[-2591]
(g0%1)[-2589]
(g0%1)[-2595]
(g0%1)[-2596]
(g0%1)[-2596]
(g1%2)[-2596]
(g0%2)[-2594]
(g1%2)[-2585]
(g1%2)[-2592]
(g0%1)[-2611](g0%1)[-2621](g0%1)[-2614]
(g1%2)[-2600]
(g1%2)[-2553]
(g0%1)[-2553]
(g0%1)[-2551]
(g0%1)[-2554](g0%1)[-2549]
(g0%1)[-2547]
(g0%1)[-2556]
(g0%1)[-2550](g0%1)[-2551]
(g1%2)[-2548]
(g0%1)[-2544]
(g0%1)[-2534]
(g0%2)[-2531]
(g1%2)[-2523]
(g1%2)[-2524]
(g0%2)[-2537]
(g1%2)[-2543]
(g0%2)[-2549]
(g0%2)[-2568]
(g4%8)[-2577]
(g0%1)[-2536]
(g0%1)[-2536]
(g0%2)[-2537]
(g1%2)[-2535]
(g1%2)[-2543]
(g0%1)[-2537]
(g0%1)[-2516](g0%1)[-2521]
(g0%2)[-2506]
(g1%2)[-2500]
(g0%1)[-2511]
(g0%1)[-2514](g0%1)[-2509]
(g0%2)[-2514]
(g0%2)[-2499]
(g1%2)[-2501]
(g1%2)[-2505]
(g0%1)[-2515]
(g0%1)[-2531]
(g0%1)[-2484]
(g1%2)[-2487]
(g1%2)[-2496]
(g1%2)[-2485]
(g0%2)[-2481]
(g0%1)[-2480]
(g1%2)[-2467]
(g0%8)[-2472]
(g0%1)[-2522]
(g0%2)[-2522]
(g0%2)[-2528]
(g0%1)[-2518]
(g0%1)[-2506]
(g1%2)[-2516]
(g0%1)[-2498]
(g1%2)[-2502]
(g1%2)[-2500]
(g1%2)[-2497]
(g0%1)[-2428]
(g0%1)[-2435]
(g0%2)[-2428]
(g1%2)[-2410](g0%2)[-2415](g0%2)[-2414](g1%2)[-2411]
(g0%2)[-2426]
(g0%1)[-2423]
(g1%2)[-2443]
(g0%1)[-2471]
(g0%1)[-2464]
(g1%2)[-2481]
(g0%1)[-2482]
(g1%2)[-2476]
(g0%2)[-2466]
(g1%2)[-2470]
(g1%2)[-2470]
(g0%1)[-2409]
(g0%1)[-2412](g0%1)[-2407]
(g1%2)[-2412]
(g0%2)[-2417]
(g1%2)[-2420]
(g1%2)[-2407]
(g1%2)[-2392]
(g1%2)[-2382]
(g0%1)[-2374]
(g0%1)[-2377](g0%1)[-2372]
(g0%2)[-2377]
(g1%2)[-2363]
(g1%2)[-2360]
(g0%1)[-2364]
(g0%1)[-2367](g0%1)[-2362]
(g1%2)[-2362]
(g1%2)[-2351]
(g0%2)[-2361]
(g1%2)[-2373]
(g1%2)[-2370]
(g0%1)[-2387]
(g0%1)[-2424]
(g0%1)[-2434]
(g0%1)[-2422]
(g1%2)[-2419]
(g1%2)[-2421]
(g1%2)[-2424]
(g0%1)[-2410]
(g0%1)[-2441]
(g1%2)[-2438]
(g1%2)[-2440]
(g1%2)[-2427]
(g0%1)[-2425]
(g0%2)[-2422]
(g0%2)[-2413]
(g0%1)[-2442]
(g0%1)[-2452]
(g0%1)[-2449](g0%1)[-2454]
(g0%1)[-2447]
(g0%1)[-2445]
(g0%1)[-2451](g0%1)[-2444](g0%1)[-2441]
(g0%1)[-2444]
(g0%1)[-2438]
(g0%2)[-2427]
(g1%2)[-2423]
(g0%1)[-2446]
(g0%1)[-2454]
(g1%2)[-2442]
(g0%2)[-2447]
(g1%2)[-2446]
(g0%2)[-2434]
(g0%2)[-2432]
(g7%8)[-2436]
(g0%1)[-2410]
(g1%2)[-2413]
(g1%2)[-2411]
(g0%2)[-2428]
(g0%2)[-2432]
(g1%2)[-2428]
(g4%8)[-2420]
(g1%2)[-2404]
(g0%2)[-2420]
(g0%1)[-2419]
(g0%2)[-2416]
(g0%2)[-2424]
(g0%1)[-2418]
(g1%2)[-2415]
(g0%1)[-2431]
(g0%1)[-2427]
(g0%2)[-2416]
(g0%2)[-2410](g0%2)[-2409](g0%2)[-2408](g1%2)[-2407](g1%2)[-2406](g1%2)[-2405]
(g0%2)[-2390]
(g0%2)[-2399]
(g0%2)[-2388]
(g0%2)[-2377]
(g0%1)[-2359]
(g1%2)[-2363]
(g0%2)[-2369]
(g0%1)[-2359]
(g0%1)[-2363](g0%1)[-2368](g0%1)[-2367](g0%1)[-2366](g0%1)[-2365](g0%1)[-2364]
(g0%1)[-2358]
(g0%1)[-2349]
(g1%2)[-2353]
(g0%1)[-2399](g0%1)[-2398](g0%1)[-2397](g0%1)[-2396](g0%1)[-2395](g0%1)[-2394]
(g0%1)[-2400]
(g0%1)[-2400]
(g0%1)[-2397](g0%1)[-2402]
(g0%2)[-2402]
(g0%2)[-2395](g0%2)[-2394](g1%2)[-2391](g1%2)[-2390]
(g0%2)[-2400]
(g1%2)[-2403]
(g0%2)[-2389]
(g4%8)[-2380]
(g0%2)[-2363]
(g0%2)[-2350]
(g0%2)[-2350]
(g0%1)[-2360]
(g0%2)[-2342]
(g0%1)[-2363]
(g0%1)[-2374]
(g0%2)[-2376]
(g1%2)[-2375]
(g0%2)[-2377]
(g1%2)[-2369]
(g4%8)[-2370]
(g0%2)[-2381](g0%2)[-2380](g1%2)[-2378](g1%2)[-2377](g1%2)[-2376]
(g0%1)[-2398]
(g0%1)[-2408](g0%1)[-2407](g0%1)[-2404]
(g0%1)[-2408]
(g1%2)[-2411]
(g0%2)[-2405]
(g1%2)[-2393]
(g1%2)[-2396]
(g0%2)[-2383]
(g0%1)[-2388]
(g0%2)[-2399]
(g0%1)[-2511]
(g0%1)[-2502](g0%1)[-2506](g0%1)[-2503]
(g0%1)[-2507]
(g0%2)[-2512]
(g0%2)[-2495]
(g0%2)[-2493]
(g0%1)[-2485]
(g0%2)[-2482]
(g1%2)[-2480](g1%2)[-2479](g0%2)[-2476](g0%2)[-2475]
(g1%2)[-2487]
(g0%2)[-2496](g0%2)[-2489]
(g0%1)[-2487]
(g0%1)[-2482]
(g0%2)[-2485]
(g1%2)[-2489]
(g0%2)[-2475]
(g1%2)[-2470]
(g1%2)[-2475]
(g0%2)[-2474]
(g0%2)[-2496]
(g1%2)[-2495]
(g0%1)[-2461]
(g1%2)[-2458]
(g1%2)[-2455]
(g1%2)[-2466]
(g0%1)[-2460]
(g0%2)[-2459]
(g0%1)[-2474]
(g0%1)[-2466]
(g0%1)[-2475](g0%1)[-2474](g0%1)[-2471]
(g0%1)[-2475]
(g0%1)[-2474]
(g1%2)[-2462]
(g0%1)[-2456]
(g1%2)[-2469]
(g0%1)[-2465]
(g0%1)[-2456]
(g0%1)[-2449]
(g0%2)[-2466]
(g0%2)[-2461]
(g0%1)[-2453](g0%1)[-2446]
(g1%2)[-2455]
(g1%2)[-2464]
(g0%1)[-2474](g0%1)[-2473](g0%1)[-2472](g0%1)[-2471](g0%1)[-2470](g0%1)[-2469]
(g0%2)[-2476]
(g0%1)[-2478]
(g0%2)[-2478]
(g0%1)[-2482]
(g1%2)[-2474]
(g0%2)[-2492]
(g1%2)[-2488]
(g1%2)[-2486]
(g0%1)[-2486]
(g1%2)[-2483]
(g1%2)[-2485]
(g1%2)[-2477]
(g0%1)[-2473]
(g0%8)[-2461]
(g0%1)[-2498]
(g0%1)[-2487]
(g0%1)[-2496]
(g1%2)[-2496]
(g0%2)[-2484]
(g0%1)[-2475]
(g1%2)[-2498]
(g0%2)[-2499]
(g0%1)[-2496](g0%1)[-2500](g0%1)[-2497]
(g0%2)[-2495]
(g4%8)[-2488]
(g0%1)[-2485]
(g0%1)[-2504]
(g0%2)[-2505]
(g1%2)[-2493]
(g0%2)[-2505]
(g1%2)[-2509]
(g0%1)[-2504]
(g0%1)[-2495]
(g0%1)[-2485]
(g0%2)[-2481]
(g1%2)[-2479](g1%2)[-2478](g0%2)[-2475](g0%2)[-2474]
(g1%2)[-2486]
(g0%2)[-2495](g0%2)[-2488]
(g0%1)[-2486]
(g0%1)[-2482]
(g0%1)[-2473]
(g0%2)[-2470]
(g1%2)[-2460]
(g1%2)[-2462]
(g0%2)[-2472]
(g0%2)[-2483]
(g1%2)[-2484]
(g0%1)[-2503]
(g0%1)[-2506](g0%1)[-2501]
(g0%2)[-2501]
(g0%2)[-2508](g1%2)[-2513](g1%2)[-2512](g0%2)[-2509]
(g1%2)[-2510]
(g1%2)[-2516]
(g1%2)[-2490]
(g1%2)[-2513]
(g0%1)[-2503]
(g0%1)[-2513]
(g0%1)[-2504]
(g0%1)[-2507](g0%1)[-2502]
(g0%1)[-2495]
(g0%1)[-2498]
(g1%2)[-2503]
(g0%1)[-2498](g0%1)[-2501](g0%1)[-2500](g0%1)[-2499]
(g0%1)[-2498]
(g0%2)[-2490]
(g0%1)[-2488]
(g0%1)[-2494]
(g1%2)[-2490]
(g0%2)[-2488](g0%2)[-2487](g1%2)[-2484](g1%2)[-2483]
(g1%2)[-2460]
(g1%2)[-2482]
(g1%2)[-2495]
(g0%1)[-2517]
(g1%2)[-2491]
(g0%1)[-2503]
(g1%2)[-2504]
(g0%1)[-2507]
(g1%2)[-2501](g1%2)[-2502](g0%2)[-2498](g0%2)[-2497]
(g1%2)[-2490]
(g1%2)[-2486]
(g0%1)[-2502]
(g0%2)[-2488](g0%2)[-2487]
(g0%1)[-2483]
(g0%1)[-2486](g0%1)[-2481]
(g1%2)[-2486]
(g0%2)[-2472]
(g0%2)[-2483]
(g0%2)[-2483]
(g1%2)[-2482]
(g1%2)[-2498]
(g0%2)[-2478]
(g0%1)[-2494](g0%1)[-2496]
(g0%1)[-2488]
(g0%2)[-2488]
(g1%2)[-2472]
(g1%2)[-2473]
(g0%1)[-2464]
(g1%2)[-2468]
(g0%2)[-2464]
(g0%1)[-2460]
(g0%2)[-2461]
(g1%2)[-2449]
(g0%1)[-2441]
(g0%1)[-2457]
(g0%1)[-2452]
(g0%1)[-2442](g0%1)[-2447](g0%1)[-2446](g0%1)[-2445](g0%1)[-2444](g0%1)[-2443]
(g1%2)[-2487]
(g0%2)[-2488]
(g0%1)[-2481]
(g0%2)[-2481]
(g1%2)[-2483]
(g1%2)[-2486]
(g0%2)[-2493]
(g0%2)[-2483]
(g1%2)[-2490]
(g1%2)[-2480]
(g1%2)[-2476]
(g0%2)[-2466]
(g0%2)[-2474]
(g0%1)[-2482]
(g0%1)[-2491](g0%1)[-2490](g0%1)[-2487]
(g0%1)[-2486]
(g0%2)[-2489]
(g0%2)[-2482]
(g1%2)[-2489]
(g1%2)[-2493]
(g0%2)[-2489]
(g1%2)[-2494]
(g0%1)[-2476]
(g0%1)[-2468]
(g0%2)[-2476]
(g1%2)[-2491]
(g1%2)[-2497]
(g0%2)[-2489](g1%2)[-2493](g0%2)[-2488](g1%2)[-2484]
(g0%1)[-2488]
(g0%1)[-2480]
(g0%1)[-2486]
(g0%2)[-2482]
(g0%2)[-2491]
(g0%1)[-2496]
(g0%1)[-2493]
(g0%1)[-2500]
(g0%1)[-2500]
(g0%1)[-2502]
(g1%2)[-2482]
(g1%2)[-2509]
(g1%2)[-2511]
(g0%1)[-2510]
(g0%1)[-2518]
(g1%2)[-2511]
(g1%2)[-2503]
(g0%1)[-2512]
(g0%2)[-2527](g0%2)[-2523]
(g0%1)[-2521]
(g1%2)[-2524]
(g1%2)[-2533]
(g1%2)[-2522]
(g0%2)[-2518]
(g0%1)[-2517]
(g1%2)[-2504]
(g0%8)[-2509]
(g0%1)[-2483]
(g0%2)[-2486]
(g0%2)[-2486]
(g0%2)[-2487]
(g0%1)[-2485]
(g1%2)[-2479]
(g1%2)[-2490]
(g0%1)[-2484]
(g1%2)[-2483]
(g1%2)[-2492]
(g0%2)[-2482]
(g1%2)[-2483]
(g1%2)[-2482]
(g0%2)[-2477]
(g0%1)[-2478](g0%1)[-2483](g0%1)[-2482](g0%1)[-2481](g0%1)[-2480](g0%1)[-2479]
(g0%2)[-2483]
(g0%1)[-2478]
(g0%1)[-2498]
(g1%2)[-2494]
(g1%2)[-2502]
(g0%2)[-2502]
(g0%1)[-2506]
(g0%1)[-2504]
(g0%2)[-2501]
(g0%1)[-2505]
(g1%2)[-2502]
(g1%2)[-2506](g1%2)[-2505](g0%2)[-2502](g0%2)[-2501]
(g1%2)[-2494]
(g1%2)[-2497]
(g0%1)[-2507]
(g0%1)[-2500]
(g0%1)[-2494]
(g0%1)[-2502]
(g0%1)[-2504]
(g1%2)[-2485]
(g0%2)[-2496]
(g0%2)[-2498]
(g0%2)[-2510]
(g0%1)[-2506](g0%1)[-2505](g0%1)[-2502]
(g0%1)[-2502](g0%1)[-2507](g0%1)[-2506](g0%1)[-2505](g0%1)[-2504](g0%1)[-2503]
(g0%1)[-2509]
(g0%1)[-2519](g0%1)[-2518](g0%1)[-2515]
(g0%1)[-2514]
(g0%2)[-2509]
(g0%1)[-2492]
(g0%1)[-2499]
(g1%2)[-2482]
(g0%1)[-2481]
(g1%2)[-2487]
(g0%2)[-2497]
(g1%2)[-2493]
(g1%2)[-2493]
(g0%2)[-2526]
(g0%2)[-2519]
(g0%1)[-2521]
(g0%1)[-2512]
(g0%2)[-2512]
(g0%2)[-2518]
(g0%1)[-2508]
(g0%1)[-2496]
(g1%2)[-2506]
(g0%1)[-2510]
(g0%2)[-2513]
(g1%2)[-2523]
(g1%2)[-2521]
(g0%2)[-2511]
(g0%2)[-2500]
(g1%2)[-2499]
(g0%1)[-2488]
(g0%2)[-2489]
(g1%2)[-2487]
(g0%2)[-2481]
(g0%1)[-2496](g0%1)[-2500](g0%1)[-2499](g0%1)[-2498](g0%1)[-2497]
(g0%1)[-2489]
(g0%1)[-2487]
(g0%1)[-2494]
(g0%1)[-2496]
(g1%2)[-2477]
(g0%2)[-2488]
(g0%2)[-2483]
(g0%2)[-2488]
(g1%2)[-2501]
(g1%2)[-2499]
(g1%2)[-2479]
(g0%1)[-2481]
(g0%1)[-2473]
(g0%1)[-2479]
(g0%2)[-2481]
(g0%1)[-2479]
(g0%1)[-2479]
(g0%2)[-2447]
(g0%1)[-2442]
(g0%1)[-2418]
(g0%1)[-2429]
(g0%1)[-2419](g0%1)[-2424](g0%1)[-2423](g0%1)[-2422](g0%1)[-2421](g0%1)[-2420]
(g0%1)[-2404]
(g1%2)[-2400]
(g0%1)[-2413](g0%1)[-2412](g0%1)[-2411](g0%1)[-2410](g0%1)[-2409]
(g1%2)[-2405]
(g0%2)[-2411]
(g0%1)[-2401]
(g0%1)[-2400]
(g0%1)[-2409]
(g1%2)[-2405]
(g1%2)[-2401]
(g0%1)[-2412]
(g0%1)[-2385]
(g0%1)[-2395]
(g0%1)[-2386]
(g0%1)[-2394]
(g0%1)[-2391]
(g0%1)[-2396]
(g0%1)[-2398](g0%1)[-2403]
(g0%2)[-2398]
(g0%1)[-2420]
(g1%2)[-2412]
(g1%2)[-2393]
(g0%1)[-2405]
(g1%2)[-2406]
(g1%2)[-2391]
(g1%2)[-2392]
(g1%2)[-2406]
(g0%2)[-2405]
(g0%1)[-2398]
(g0%2)[-2402]
(g0%2)[-2389](g0%2)[-2388](g0%2)[-2387](g1%2)[-2386](g1%2)[-2385](g1%2)[-2384]
(g0%1)[-2385]
(g0%1)[-2371]
(g0%1)[-2380](g0%1)[-2379](g0%1)[-2378](g0%1)[-2377]
(g0%1)[-2405](g0%1)[-2415](g0%1)[-2412]
(g0%1)[-2396](g0%1)[-2401](g0%1)[-2400](g0%1)[-2399](g0%1)[-2398](g0%1)[-2397]
(g0%1)[-2403]
(g0%1)[-2396]
(g1%2)[-2413]
(g0%1)[-2414]
(g1%2)[-2408]
(g0%2)[-2398]
(g1%2)[-2402]
(g1%2)[-2402]
(g0%1)[-2410]
(g0%1)[-2403]
(g0%1)[-2409]
(g0%1)[-2412]
(g0%1)[-2419]
(g0%1)[-2429]
(g0%1)[-2435]
(g0%1)[-2432]
(g0%1)[-2450]
(g0%1)[-2451]
(g0%2)[-2457]
(g1%2)[-2450]
(g0%2)[-2455]
(g0%2)[-2448]
(g0%1)[-2470]
(g0%1)[-2473](g0%1)[-2468]
(g0%1)[-2461]
(g0%1)[-2464]
(g0%1)[-2480]
(g0%1)[-2479]
(g1%2)[-2474]
(g0%2)[-2480]
(g0%2)[-2475]
(g0%2)[-2466]
(g0%1)[-2473]
(g0%1)[-2470](g0%1)[-2475]
(g0%1)[-2468]
(g0%1)[-2465]
(g0%1)[-2476](g0%1)[-2472]
(g0%1)[-2454](g0%1)[-2458](g0%1)[-2457](g0%1)[-2456](g0%1)[-2455]
(g0%1)[-2463]
(g0%1)[-2464]
(g0%2)[-2461]
(g1%2)[-2459](g1%2)[-2458](g0%2)[-2455](g0%2)[-2454]
(g0%2)[-2469]
(g0%2)[-2473]
(g0%1)[-2476](g0%1)[-2479](g0%1)[-2478](g0%1)[-2477]
(g0%1)[-2455](g0%1)[-2454](g0%1)[-2453](g0%1)[-2452]
(g0%1)[-2444]
(g1%2)[-2448]
(g1%2)[-2456]
(g1%2)[-2460]
(g0%1)[-2460]
(g0%1)[-2470]
(g1%2)[-2473]
(g1%2)[-2481]
(g1%2)[-2472]
(g0%1)[-2473]
(g0%1)[-2461](g0%1)[-2471](g0%1)[-2468]
(g0%2)[-2479]
(g1%2)[-2476]
(g1%2)[-2484]
(g0%1)[-2492]
(g0%1)[-2483]
(g0%1)[-2476]
(g1%2)[-2493]
(g0%1)[-2494]
(g1%2)[-2488]
(g0%2)[-2478]
(g1%2)[-2482]
(g1%2)[-2482]
(g0%1)[-2432]
(g0%1)[-2441]
(g1%2)[-2444]
(g0%2)[-2448]
(g0%1)[-2436]
(g0%2)[-2432]
(g1%2)[-2435]
(g0%1)[-2424]
(g0%1)[-2431]
(g1%2)[-2414]
(g0%1)[-2391]
(g0%1)[-2401]
(g0%1)[-2401]
(g0%2)[-2400]
(g0%1)[-2396]
(g1%2)[-2404]
(g1%2)[-2398](g0%2)[-2403](g0%2)[-2402](g0%2)[-2401](g1%2)[-2400](g1%2)[-2399]
(g0%2)[-2390]
(g1%2)[-2388]
(g0%1)[-2395]
(g1%2)[-2398]
(g1%2)[-2396]
(g1%2)[-2402]
(g0%1)[-2394]
(g1%2)[-2400]
(g1%8)[-2404]
(g0%1)[-2413]
(g1%2)[-2419]
(g0%2)[-2429]
(g0%2)[-2461]
(g0%1)[-2468]
(g0%2)[-2464]
(g1%2)[-2454]
(g0%2)[-2462]
(g0%2)[-2462]
(g0%1)[-2451]
(g0%2)[-2455]
(g1%2)[-2472]
(g1%2)[-2482]
(g1%2)[-2465]
(g0%2)[-2450]
(g1%2)[-2465]
(g1%2)[-2473]
(g0%1)[-2481]
(g1%2)[-2478]
(g1%2)[-2474]
(g0%1)[-2485]
(g0%1)[-2460]
(g0%1)[-2457]
(g0%1)[-2483]
(g0%1)[-2457]
(g0%1)[-2448](g0%1)[-2452](g0%1)[-2449]
(g1%2)[-2455]
(g1%2)[-2444]
(g0%2)[-2453]
(g1%2)[-2473]
(g0%1)[-2485]
(g0%1)[-2484]
(g0%1)[-2481](g0%1)[-2486]
(g1%2)[-2481]
(g0%2)[-2478]
(g0%2)[-2481]
(g0%2)[-2476]
(g1%2)[-2482]
(g0%1)[-2500]
(g1%2)[-2504]
(g1%2)[-2512]
(g0%2)[-2509]
(g0%2)[-2507](g0%2)[-2508](g1%2)[-2506]
(g0%2)[-2492]
(g1%2)[-2506]
(g1%2)[-2523]
(g0%2)[-2515]
(g0%2)[-2496]
(g0%2)[-2503]
(g0%1)[-2487]
(g0%2)[-2491]
(g0%1)[-2490](g0%1)[-2489](g0%1)[-2488](g0%1)[-2487](g0%1)[-2486](g0%1)[-2485]
(g1%2)[-2468]
(g0%1)[-2476](g0%1)[-2475](g0%1)[-2474](g0%1)[-2473](g0%1)[-2472](g0%1)[-2471]
(g0%1)[-2485]
(g0%1)[-2476]
(g0%2)[-2480]
(g1%2)[-2490]
(g0%2)[-2475]
(g1%2)[-2490]
(g0%1)[-2505](g0%1)[-2504](g0%1)[-2501]
(g1%2)[-2498]
(g0%1)[-2515]
(g0%1)[-2525](g0%1)[-2524](g0%1)[-2521]
(g0%1)[-2516]
(g0%1)[-2513]
(g1%2)[-2506]
(g0%2)[-2523]
(g0%1)[-2517]
(g0%1)[-2520](g0%1)[-2515]
(g0%2)[-2520]
(g1%2)[-2523]
(g1%2)[-2507]
(g0%2)[-2503]
(g0%1)[-2495]
(g0%2)[-2496]
(g1%2)[-2493]
(g0%1)[-2502]
(g0%1)[-2520]
(g0%1)[-2504]
(g0%2)[-2521]
(g0%2)[-2504]
(g0%1)[-2514]
(g0%1)[-2518]
(g0%1)[-2494]
(g0%1)[-2493]
(g0%1)[-2485]
(g0%2)[-2502]
(g0%1)[-2503]
(g1%2)[-2497]
(g0%1)[-2494]
(g0%1)[-2491]
(g0%1)[-2488]
(g0%2)[-2489]
(g0%1)[-2494]
(g1%2)[-2425]
(g1%2)[-2425]
(g0%1)[-2369]
(g1%2)[-2372]
(g0%2)[-2368]
(g0%1)[-2364]
(g0%1)[-2374](g0%1)[-2373](g0%1)[-2370]
(g0%1)[-2374]
(g0%1)[-2373]
(g1%2)[-2368]
(g0%2)[-2356]
(g0%1)[-2331]
(g0%2)[-2335]
(g0%2)[-2327]
(g0%1)[-2275]
(g0%1)[-2278](g0%1)[-2273]
(g0%1)[-2280]
(g0%1)[-2283]
(g0%1)[-2275]
(g0%1)[-2296]
(g0%2)[-2292]
(g1%2)[-2290](g1%2)[-2289](g0%2)[-2286](g0%2)[-2285]
(g0%1)[-2301](g0%1)[-2305](g0%1)[-2304](g0%1)[-2303](g0%1)[-2302]
(g1%2)[-2306]
(g0%2)[-2283]
(g0%1)[-2293]
(g0%1)[-2300]
(g0%1)[-2281]
(g0%2)[-2284]
(g1%2)[-2288]
(g1%2)[-2308]
(g0%2)[-2313]
(g1%2)[-2292]
(g0%1)[-2278]
(g0%1)[-2294]
(g0%1)[-2302]
(g1%2)[-2295]
(g1%2)[-2287]
(g0%1)[-2281]
(g0%2)[-2277]
(g0%2)[-2279]
(g1%2)[-2269]
(g0%1)[-2261]
(g0%1)[-2270]
(g0%2)[-2270]
(g1%2)[-2272]
(g0%2)[-2269]
(g0%2)[-2254]
(g1%2)[-2263]
(g1%2)[-2259]
(g0%1)[-2268]
(g1%2)[-2268]
(g0%2)[-2258]
(g0%2)[-2268]
(g1%2)[-2267]
(g1%2)[-2272]
(g1%2)[-2274]
(g1%2)[-2308]
(g0%1)[-2304](g0%1)[-2303](g0%1)[-2302](g0%1)[-2301](g0%1)[-2300](g0%1)[-2299]
(g0%1)[-2308]
(g0%1)[-2292]
(g3%8)[-2294]
(g0%1)[-2302]
(g0%1)[-2305](g0%1)[-2300]
(g1%2)[-2305]
(g0%1)[-2313]
(g0%1)[-2320]
(g1%2)[-2327]
(g0%1)[-2333]
(g0%1)[-2324]
(g1%2)[-2324]
(g1%2)[-2330]
(g1%2)[-2334]
(g1%2)[-2330]
(g1%2)[-2340]
(g1%2)[-2333]
(g0%1)[-2324]
(g1%2)[-2329]
(g0%2)[-2291]
(g1%2)[-2299]
(g0%1)[-2303]
(g1%2)[-2286](g1%2)[-2288](g1%2)[-2287]
(g1%2)[-2275]
(g0%1)[-2293]
(g0%1)[-2293]
(g0%1)[-2286]
(g1%2)[-2303]
(g0%1)[-2304]
(g1%2)[-2298]
(g0%1)[-2308]
(g1%2)[-2305]
(g0%2)[-2288]
(g1%2)[-2292]
(g1%2)[-2292]
(g0%2)[-2297]
(g0%2)[-2298]
(g0%1)[-2320]
(g0%1)[-2322](g0%1)[-2317]
(g0%2)[-2320]
(g1%2)[-2311]
(g1%2)[-2309]
(g0%1)[-2316]
(g1%2)[-2313]
(g0%2)[-2308]
(g0%1)[-2317]
(g0%1)[-2328]
(g1%2)[-2324]
(g1%2)[-2326]
(g0%2)[-2309]
(g0%2)[-2318]
(g1%2)[-2322]
(g0%2)[-2314]
(g0%2)[-2328]
(g1%2)[-2323]
(g0%1)[-2341](g0%1)[-2340](g0%1)[-2339](g0%1)[-2338](g0%1)[-2337]
(g0%1)[-2304]
(g0%1)[-2297]
(g1%2)[-2314]
(g1%2)[-2310]
(g1%2)[-2293]
(g0%2)[-2291]
(g0%1)[-2320]
(g0%1)[-2327]
(g0%1)[-2329]
(g1%2)[-2318]
(g0%1)[-2310]
(g0%1)[-2319]
(g0%1)[-2313]
(g0%1)[-2303](g0%1)[-2307](g0%1)[-2304]
(g0%1)[-2308]
(g0%1)[-2315]
(g0%1)[-2299]
(g0%1)[-2313](g0%1)[-2318]
(g0%2)[-2311]
(g1%2)[-2318]
(g0%1)[-2305]
(g0%1)[-2304]
(g0%2)[-2300]
(g0%2)[-2308]
(g0%2)[-2307]
(g1%2)[-2311]
(g0%1)[-2312]
(g0%1)[-2306]
(g0%1)[-2315]
(g1%2)[-2333]
(g0%1)[-2324](g0%1)[-2323](g0%1)[-2320]
(g0%1)[-2324]
(g0%2)[-2320]
(g0%1)[-2321](g0%1)[-2324](g0%1)[-2323]
(g1%2)[-2316]
(g1%2)[-2325]
(g1%2)[-2335]
(g0%1)[-2334]
(g0%1)[-2337](g0%1)[-2332]
(g0%1)[-2348]
(g1%2)[-2349]
(g0%1)[-2325]
(g0%2)[-2322]
(g1%2)[-2325]
(g1%2)[-2319]
(g1%2)[-2317]
(g0%2)[-2332]
(g1%2)[-2335]
(g1%2)[-2344]
(g0%2)[-2350]
(g0%2)[-2355]
(g0%2)[-2342]
(g0%1)[-2333](g0%1)[-2332](g0%1)[-2331](g0%1)[-2330](g0%1)[-2329]
(g1%2)[-2338]
(g0%1)[-2318](g0%1)[-2320](g0%1)[-2319](g0%1)[-2317]
(g1%2)[-2326](g1%2)[-2333]
(g0%1)[-2362]
(g0%1)[-2382](g0%1)[-2386](g0%1)[-2383]
(g0%1)[-2373]
(g0%1)[-2363](g0%1)[-2368](g0%1)[-2367](g0%1)[-2366](g0%1)[-2365](g0%1)[-2364]
(g0%1)[-2339]
(g1%2)[-2336]
(g1%2)[-2333]
(g1%2)[-2338]
(g0%2)[-2334]
(g0%1)[-2341]
(g0%1)[-2324]
(g0%1)[-2333]
(g1%2)[-2332]
(g1%2)[-2330]
(g0%1)[-2324](g0%1)[-2321](g0%1)[-2320]
(g0%2)[-2335]
(g1%2)[-2341]
(g0%1)[-2340]
(g0%1)[-2343](g0%1)[-2338]
(g1%2)[-2338]
(g0%2)[-2352]
(g0%2)[-2341]
(g0%1)[-2355]
(g1%2)[-2345]
(g0%2)[-2339]
(g0%1)[-2349](g0%1)[-2348](g0%1)[-2347](g0%1)[-2346](g0%1)[-2345]
(g0%1)[-2336]
(g0%2)[-2335]
(g1%2)[-2347]
(g0%1)[-2339]
(g0%2)[-2330]
(g0%1)[-2298]
(g0%1)[-2295](g0%1)[-2300]
(g0%1)[-2293]
(g0%1)[-2285]
(g0%1)[-2301]
(g0%2)[-2287]
(g0%1)[-2278]
(g1%2)[-2278]
(g0%2)[-2280]
(g1%2)[-2286]
(g0%1)[-2292]
(g0%2)[-2294]
(g1%2)[-2283]
(g0%1)[-2273]
(g0%1)[-2274]
(g0%1)[-2264]
(g0%1)[-2273]
(g1%2)[-2276]
(g0%2)[-2286]
(g1%2)[-2271]
(g1%2)[-2271]
(g0%1)[-2288]
(g1%2)[-2305]
(g0%1)[-2299]
(g0%1)[-2300]
(g0%1)[-2291]
(g1%2)[-2288]
(g0%1)[-2303]
(g0%1)[-2295]
(g1%2)[-2312]
(g0%2)[-2278]
(g1%2)[-2280]
(g1%2)[-2287]
(g0%1)[-2279](g0%1)[-2284]
(g1%2)[-2240]
(g0%2)[-2238]
(g0%1)[-2236]
(g1%2)[-2237]
(g0%1)[-2242]
(g1%2)[-2229](g1%2)[-2230]
(g0%1)[-2225]
(g0%2)[-2222]
(g1%2)[-2212]
(g1%2)[-2214]
(g0%2)[-2224]
(g0%2)[-2235]
(g1%2)[-2236]
(g0%1)[-2254]
(g1%2)[-2253]
(g0%2)[-2265]
(g0%1)[-2274]
(g1%2)[-2254]
(g1%2)[-2256]
(g0%1)[-2264]
(g0%1)[-2273]
(g1%2)[-2276]
(g0%1)[-2309](g0%1)[-2308](g0%1)[-2307](g0%1)[-2306](g0%1)[-2305](g0%1)[-2304]
(g0%2)[-2284]
(g1%2)[-2285]
(g1%2)[-2274]
(g0%2)[-2263](g0%1)[-2267](g0%1)[-2266](g0%1)[-2265](g0%1)[-2264]
(g0%2)[-2268]
(g0%2)[-2262]
(g0%2)[-2282]
(g0%2)[-2286]
(g0%1)[-2260]
(g0%2)[-2260]
(g0%2)[-2265]
(g0%1)[-2265]
(g0%1)[-2256]
(g0%1)[-2266](g0%1)[-2265](g0%1)[-2264](g0%1)[-2263](g0%1)[-2262](g0%1)[-2261]
(g0%1)[-2281]
(g0%2)[-2277]
(g0%1)[-2286]
(g1%2)[-2292](g0%2)[-2301]
(g0%1)[-2274](g0%1)[-2267](g0%1)[-2264]
(g0%1)[-2277]
(g0%2)[-2274]
(g1%2)[-2272](g1%2)[-2271](g0%2)[-2268](g0%2)[-2267]
(g0%2)[-2260]
(g0%2)[-2254]
(g0%1)[-2251]
(g0%2)[-2264]
(g0%2)[-2279]
(g0%1)[-2276](g0%1)[-2279](g0%1)[-2278](g0%1)[-2277]
(g0%1)[-2273]
(g0%1)[-2258]
(g0%1)[-2261](g0%1)[-2256]
(g1%2)[-2256]
(g1%2)[-2261](g1%2)[-2262](g0%2)[-2258](g0%2)[-2257]
(g0%2)[-2270]
(g1%2)[-2252]
(g1%2)[-2254](g1%2)[-2255](g0%2)[-2251](g0%2)[-2250]
(g0%2)[-2253]
(g1%2)[-2259]
(g0%2)[-2301]
(g0%2)[-2309]
(g0%2)[-2322]
(g0%1)[-2314]
(g0%1)[-2305](g0%1)[-2309](g0%1)[-2306]
(g1%2)[-2312]
(g0%1)[-2346]
(g0%2)[-2343]
(g1%2)[-2335]
(g0%2)[-2333]
(g0%2)[-2351]
(g0%2)[-2351]
(g0%2)[-2348]
(g0%1)[-2340]
(g0%2)[-2336]
(g1%2)[-2326]
(g1%2)[-2334]
(g1%2)[-2329]
(g0%2)[-2341]
(g0%1)[-2342]
(g0%1)[-2374]
(g0%1)[-2381]
(g1%2)[-2369]
(g0%2)[-2362]
(g1%2)[-2368]
(g0%2)[-2366]
(g0%2)[-2381]
(g1%2)[-2371]
(g0%1)[-2387]
(g0%1)[-2387]
(g1%2)[-2388]
(g0%2)[-2389]
(g0%2)[-2376]
(g1%2)[-2372]
(g0%2)[-2362]
(g0%2)[-2362]
(g0%2)[-2370]
(g0%1)[-2351]
(g0%1)[-2348](g0%1)[-2353]
(g0%2)[-2353]
(g1%2)[-2353]
(g0%1)[-2360]
(g1%2)[-2338]
(g1%2)[-2351]
(g1%2)[-2346]
(g0%1)[-2365]
(g0%1)[-2365](g0%1)[-2367](g0%1)[-2366](g0%1)[-2364](g0%1)[-2363]
(g0%1)[-2367]
(g0%1)[-2355](g0%1)[-2358](g0%1)[-2357](g0%1)[-2356](g0%1)[-2354](g0%1)[-2353]
(g0%1)[-2356]
(g0%1)[-2332](g0%1)[-2337](g0%1)[-2336](g0%1)[-2335](g0%1)[-2334](g0%1)[-2333]
(g1%2)[-2327]
(g1%2)[-2307]
(g0%2)[-2294]
(g0%1)[-2286]
(g0%2)[-2283]
(g0%2)[-2280]
(g0%2)[-2285]
(g0%2)[-2281]
(g1%2)[-2298]
(g0%1)[-2294](g0%1)[-2293](g0%1)[-2292](g0%1)[-2291](g0%1)[-2290](g0%1)[-2289]
(g0%1)[-2299](g0%1)[-2302]
(g0%1)[-2288]
(g0%1)[-2287]
(g0%2)[-2286]
(g1%2)[-2288]
(g1%2)[-2280]
(g0%1)[-2291](g0%1)[-2288]
(g0%1)[-2301]
(g0%1)[-2279]
(g1%2)[-2279]
(g0%2)[-2281]
(g1%2)[-2287]
(g0%1)[-2293]
(g0%2)[-2295]
(g1%2)[-2284]
(g0%1)[-2263]
(g1%2)[-2320]
(g0%1)[-2327]
(g0%1)[-2329](g0%1)[-2324]
(g1%2)[-2324]
(g0%2)[-2329]
(g0%2)[-2336](g0%2)[-2335](g1%2)[-2332](g1%2)[-2331]
(g0%2)[-2332]
(g0%2)[-2316]
(g0%1)[-2299]
(g1%2)[-2296]
(g1%2)[-2298]
(g1%2)[-2290]
(g0%1)[-2301]
(g0%1)[-2293]
(g0%1)[-2327]
(g0%1)[-2319]
(g0%1)[-2317]
(g0%2)[-2336]
(g1%2)[-2325]
(g0%2)[-2330]
(g0%2)[-2321]
(g0%1)[-2293]
(g0%1)[-2300]
(g1%2)[-2283]
(g0%1)[-2282]
(g1%2)[-2288]
(g0%2)[-2298]
(g1%2)[-2294]
(g1%2)[-2294]
(g0%1)[-2368]
(g0%2)[-2371]
(g0%2)[-2369]
(g0%1)[-2356]
(g0%1)[-2388](g0%1)[-2387]
(g1%2)[-2379]
(g0%1)[-2376]
(g0%1)[-2386]
(g0%1)[-2386]
(g0%2)[-2389]
(g0%2)[-2397]
(g1%2)[-2394]
(g1%2)[-2377]
(g0%1)[-2373]
(g0%2)[-2381]
(g0%1)[-2378]
(g0%1)[-2375](g0%1)[-2368](g0%1)[-2365]
(g0%1)[-2387]
(g0%2)[-2386]
(g0%2)[-2400]
(g0%1)[-2398]
(g1%2)[-2393]
(g0%1)[-2385]
(g0%1)[-2376]
(g0%2)[-2373]
(g0%2)[-2370]
(g1%2)[-2378]
(g0%2)[-2375]
(g0%2)[-2384]
(g0%2)[-2385]
(g1%2)[-2359]
(g1%2)[-2365]
(g1%2)[-2365]
(g1%2)[-2419]
(g1%2)[-2418]
(g0%1)[-2416]
(g0%1)[-2407](g0%1)[-2411](g0%1)[-2408]
(g0%1)[-2412]
(g0%2)[-2417]
(g1%2)[-2402]
(g1%2)[-2398]
(g0%1)[-2406]
(g0%1)[-2400]
(g1%2)[-2404]
(g1%2)[-2412]
(g1%2)[-2403]
(g0%2)[-2409]
(g1%2)[-2404]
(g0%1)[-2407](g0%1)[-2408]
(g0%1)[-2412]
(g0%2)[-2405]
(g0%1)[-2405](g0%1)[-2408]
(g0%1)[-2412]
(g1%2)[-2412]
(g1%2)[-2426]
(g0%1)[-2424]
(g0%2)[-2419]
(g1%2)[-2438]
(g0%2)[-2436]
(g0%1)[-2443]
(g0%1)[-2435]
(g0%1)[-2433]
(g0%1)[-2432](g0%1)[-2433]
(g0%1)[-2451](g0%1)[-2448]
(g0%2)[-2448]
(g1%2)[-2454]
(g0%2)[-2453](g0%2)[-2455](g0%2)[-2454](g1%2)[-2452](g1%2)[-2451](g1%2)[-2450]
(g4%8)[-2453]
(g0%1)[-2436]
(g0%1)[-2443]
(g0%1)[-2445]
(g1%2)[-2434]
(g0%1)[-2426]
(g0%1)[-2435]
(g0%1)[-2429]
(g0%1)[-2419](g0%1)[-2423](g0%1)[-2420]
(g0%1)[-2424]
(g0%1)[-2431]
(g0%1)[-2415]
(g0%1)[-2429](g0%1)[-2434]
(g0%2)[-2427]
(g1%2)[-2434]
(g0%1)[-2421]
(g0%1)[-2420]
(g0%2)[-2416]
(g0%2)[-2424]
(g0%2)[-2423]
(g1%2)[-2427]
(g0%1)[-2428]
(g0%1)[-2422]
(g0%1)[-2431]
(g1%2)[-2449]
(g0%1)[-2440](g0%1)[-2439](g0%1)[-2436]
(g0%1)[-2440]
(g0%2)[-2436]
(g0%1)[-2437](g0%1)[-2440](g0%1)[-2439]
(g1%2)[-2432]
(g1%2)[-2441]
(g1%2)[-2451]
(g0%1)[-2450]
(g0%1)[-2453](g0%1)[-2448]
(g1%2)[-2475]
(g0%2)[-2481]
(g1%2)[-2486]
(g0%2)[-2477]
(g0%2)[-2473]
(g0%1)[-2466](g0%1)[-2471](g0%1)[-2470](g0%1)[-2469](g0%1)[-2468](g0%1)[-2467]
(g0%1)[-2484]
(g0%1)[-2477]
(g0%1)[-2468](g0%1)[-2472](g0%1)[-2469]
(g0%2)[-2475]
(g1%2)[-2475]
(g0%1)[-2471]
(g1%2)[-2478]
(g0%1)[-2465]
(g0%2)[-2462]
(g0%1)[-2441]
(g0%2)[-2438]
(g1%2)[-2441]
(g1%2)[-2435]
(g1%2)[-2433]
(g0%2)[-2448]
(g1%2)[-2452]
(g1%2)[-2454]
(g0%2)[-2464]
(g0%2)[-2475]
(g1%2)[-2476]
(g0%1)[-2481]
(g0%1)[-2484](g0%1)[-2479]
(g0%2)[-2479]
(g1%2)[-2484]
(g0%2)[-2491]
(g0%2)[-2491]
(g0%2)[-2487]
(g0%1)[-2489]
(g1%2)[-2489]
(g1%2)[-2482](g1%2)[-2481]
(g1%2)[-2489]
(g1%2)[-2491]
(g0%1)[-2487]
(g0%1)[-2488]
(g0%1)[-2488]
(g0%2)[-2488]
(g1%2)[-2480](g1%2)[-2479](g0%2)[-2476](g0%2)[-2475]
(g1%2)[-2485]
(g1%2)[-2477]
(g1%2)[-2473]
(g1%2)[-2452]
(g0%2)[-2483]
(g0%1)[-2490]
(g1%2)[-2489]
(g0%2)[-2492]
(g0%1)[-2493]
(g0%1)[-2490](g0%1)[-2495]
(g1%2)[-2495]
(g1%2)[-2498]
(g0%2)[-2487]
(g0%2)[-2488]
(g0%1)[-2480]
(g1%2)[-2483]
(g1%2)[-2481]
(g1%2)[-2487]
(g0%2)[-2482]
(g0%2)[-2493]
(g0%2)[-2478]
(g0%1)[-2452]
(g1%2)[-2456]
(g1%2)[-2448]
(g0%2)[-2456]
(g0%1)[-2455]
(g0%1)[-2468](g0%1)[-2467](g0%1)[-2464]
(g0%2)[-2448]
(g0%1)[-2459](g0%1)[-2455](g0%1)[-2454](g0%1)[-2452](g0%1)[-2449]
(g0%2)[-2472]
(g0%1)[-2500]
(g0%1)[-2497](g0%1)[-2502]
(g1%2)[-2502]
(g0%2)[-2497]
(g1%2)[-2490]
(g0%2)[-2509]
(g1%2)[-2501]
(g1%2)[-2503]
(g0%1)[-2475]
(g0%1)[-2467]
(g1%2)[-2475]
(g1%2)[-2481]
(g1%2)[-2491]
(g1%2)[-2492]
(g1%2)[-2496]
(g0%1)[-2495]
(g0%1)[-2495]
(g1%2)[-2491]
(g1%2)[-2491]
(g0%2)[-2481]
(g0%1)[-2485](g0%1)[-2484]
(g0%2)[-2482]
(g0%1)[-2491]
(g1%2)[-2494]
(g0%2)[-2502]
(g0%1)[-2478]
(g0%2)[-2489]
(g1%2)[-2485]
(g0%1)[-2494](g0%1)[-2498](g0%1)[-2497](g0%1)[-2496](g0%1)[-2495]
(g0%1)[-2500](g0%1)[-2502](g0%1)[-2501]
(g0%1)[-2512]
(g0%1)[-2503]
(g0%1)[-2496]
(g1%2)[-2513]
(g0%1)[-2514]
(g1%2)[-2508]
(g0%2)[-2498]
(g1%2)[-2502]
(g1%2)[-2502]
(g0%1)[-2511]
(g0%1)[-2520](g0%1)[-2519](g0%1)[-2516]
(g0%1)[-2520]
(g0%1)[-2514]
(g0%1)[-2528]
(g0%1)[-2502](g0%1)[-2501]
(g0%1)[-2498]
(g0%1)[-2507]
(g0%2)[-2507]
(g1%2)[-2505]
(g1%2)[-2513]
(g0%1)[-2504]
(g0%1)[-2488](g0%1)[-2489]
(g0%1)[-2492]
(g0%1)[-2494]
(g0%1)[-2497]
(g0%1)[-2505](g0%1)[-2498]
(g0%1)[-2483]
(g1%2)[-2479]
(g0%1)[-2480](g0%1)[-2485](g0%1)[-2484](g0%1)[-2483](g0%1)[-2482](g0%1)[-2481]
(g0%1)[-2475]
(g0%2)[-2492]
(g0%1)[-2487]
(g0%1)[-2502](g0%1)[-2507](g0%1)[-2506](g0%1)[-2505](g0%1)[-2504](g0%1)[-2503]
(g0%1)[-2495]
(g1%2)[-2498]
(g1%2)[-2496]
(g1%2)[-2502]
(g0%1)[-2494]
(g1%2)[-2500]
(g5%8)[-2504]
(g0%1)[-2479]
(g0%1)[-2468]
(g0%1)[-2478](g0%1)[-2477](g0%1)[-2476](g0%1)[-2475](g0%1)[-2474](g0%1)[-2473]
(g0%1)[-2502]
(g0%1)[-2491]
(g0%1)[-2503]
(g0%2)[-2506]
(g0%2)[-2504]
(g0%2)[-2501]
(g0%1)[-2526]
(g0%1)[-2526]
(g0%2)[-2525]
(g0%2)[-2539]
(g0%2)[-2535]
(g1%2)[-2525]
(g0%2)[-2526]
(g0%1)[-2537]
(g1%2)[-2533]
(g0%2)[-2529]
(g0%2)[-2519]
(g0%1)[-2517]
(g0%1)[-2522](g0%1)[-2523]
(g0%1)[-2525]
(g0%1)[-2523](g0%1)[-2525]
(g0%1)[-2475]
(g1%2)[-2472]
(g0%1)[-2485](g0%1)[-2484](g0%1)[-2483](g0%1)[-2482](g0%1)[-2481]
(g1%2)[-2478]
(g1%2)[-2462]
(g1%2)[-2461]
(g0%1)[-2478]
(g0%1)[-2477]
(g0%1)[-2474](g0%1)[-2479]
(g1%2)[-2479]
(g0%2)[-2479]
(g1%2)[-2466]
(g0%2)[-2482]
(g0%1)[-2472]
(g0%1)[-2462]
(g1%2)[-2463]
(g1%2)[-2463](g1%2)[-2462]
(g0%1)[-2467]
(g0%1)[-2459]
(g0%2)[-2467]
(g1%2)[-2475]
(g0%2)[-2476]
(g1%2)[-2488]
(g0%1)[-2481]
(g0%1)[-2489]
(g0%1)[-2491]
(g1%2)[-2472]
(g0%2)[-2483]
(g1%2)[-2484]
(g0%2)[-2493]
(g0%2)[-2495]
(g0%1)[-2480](g0%1)[-2477](g0%1)[-2476]
(g0%2)[-2481]
(g0%1)[-2498]
(g0%2)[-2495]
(g0%2)[-2487]
(g1%2)[-2493]
(g0%2)[-2486]
(g0%2)[-2473]
(g1%2)[-2474]
(g0%1)[-2505]
(g0%2)[-2508]
(g1%2)[-2518]
(g1%2)[-2516]
(g0%2)[-2506]
(g0%2)[-2495]
(g1%2)[-2494]
(g1%2)[-2518]
(g0%1)[-2467]
(g1%2)[-2464]
(g1%2)[-2472]
(g0%1)[-2477](g0%1)[-2474](g0%1)[-2473]
(g1%2)[-2464]
(g0%1)[-2434](g0%1)[-2433]
(g0%1)[-2410]
(g0%2)[-2406]
(g0%2)[-2398]
(g0%2)[-2408]
(g1%2)[-2416]
(g0%1)[-2414]
(g0%1)[-2397]
(g0%1)[-2420]
(g0%2)[-2425]
(g0%1)[-2427]
(g0%1)[-2428]
(g0%2)[-2401](g1%2)[-2410]
(g1%2)[-2401]
(g1%2)[-2406]
(g1%2)[-2404]
(g1%2)[-2409]
(g0%2)[-2403]
(g1%2)[-2399]
(g0%1)[-2407]
(g0%1)[-2418]
(g0%1)[-2421](g0%1)[-2416]
(g0%1)[-2428]
(g1%2)[-2413]
(g0%2)[-2386]
(g0%2)[-2396]
(g0%2)[-2404](g1%2)[-2409](g1%2)[-2408](g0%2)[-2405]
(g0%2)[-2416]
(g0%2)[-2420]
(g0%1)[-2393](g0%1)[-2392](g0%1)[-2391](g0%1)[-2390](g0%1)[-2389]
(g0%1)[-2382]
(g1%2)[-2383]
(g1%2)[-2383]
(g1%2)[-2368]
(g1%2)[-2365]
(g1%2)[-2383]
(g0%2)[-2378]
(g0%1)[-2382](g0%1)[-2381]
(g0%1)[-2368]
(g0%2)[-2367]
(g1%2)[-2379]
(g0%2)[-2367]
(g0%2)[-2372]
(g0%2)[-2374]
(g0%1)[-2378]
(g1%2)[-2375]
(g1%2)[-2383]
(g1%2)[-2379]
(g1%2)[-2386]
(g0%1)[-2371]
(g0%1)[-2362]
(g0%2)[-2366]
(g0%1)[-2353](g0%1)[-2357](g0%1)[-2356](g0%1)[-2355](g0%1)[-2354]
(g1%2)[-2364]
(g0%2)[-2376]
(g0%2)[-2378]
(g1%2)[-2356]
(g0%1)[-2386]
(g0%1)[-2393]
(g0%2)[-2386]
(g1%2)[-2368](g0%2)[-2373](g0%2)[-2372](g1%2)[-2369]
(g0%2)[-2384]
(g0%1)[-2380]
(g1%2)[-2381]
(g0%2)[-2378]
(g0%2)[-2375]
(g0%1)[-2377]
(g0%1)[-2384]
(g0%1)[-2384]
(g0%1)[-2386]
(g1%2)[-2366]
(g1%2)[-2393]
(g1%2)[-2395]
(g0%1)[-2394]
(g0%1)[-2402]
(g1%2)[-2395]
(g1%2)[-2387]
(g0%1)[-2396]
(g0%2)[-2411](g0%2)[-2407]
(g0%1)[-2405]
(g1%2)[-2408]
(g1%2)[-2417]
(g1%2)[-2406]
(g0%2)[-2402]
(g0%1)[-2401]
(g1%2)[-2388]
(g1%8)[-2393]
(g0%1)[-2355]
(g0%2)[-2354]
(g0%2)[-2369]
(g0%2)[-2358]
(g0%2)[-2355]
(g0%1)[-2334](g0%1)[-2333](g0%1)[-2332](g0%1)[-2331](g0%1)[-2330](g0%1)[-2329]
(g0%2)[-2370](g0%2)[-2369]
(g0%1)[-2374]
(g1%2)[-2370]
(g1%2)[-2372]
(g1%2)[-2359]
(g0%1)[-2357]
(g0%1)[-2368]
(g0%1)[-2375]
(g0%1)[-2356]
(g1%2)[-2360]
(g0%2)[-2356]
(g0%1)[-2352]
(g0%1)[-2362](g0%1)[-2361](g0%1)[-2358]
(g1%2)[-2355]
(g1%2)[-2346]
(g0%2)[-2357]
(g0%2)[-2351]
(g1%2)[-2344]
(g0%1)[-2324]
(g0%1)[-2317]
(g1%2)[-2332]
(g0%2)[-2312]
(g0%1)[-2304]
(g0%1)[-2297]
(g1%2)[-2312]
(g0%2)[-2292]
(g0%1)[-2293]
(g0%1)[-2295](g0%1)[-2290]
(g0%1)[-2282](g0%1)[-2289]
(g0%2)[-2298]
(g1%2)[-2301](g1%2)[-2302]
(g0%1)[-2297]
(g0%2)[-2294]
(g0%2)[-2291]
(g0%2)[-2296]
(g1%2)[-2284]
(g1%2)[-2299]
(g0%1)[-2316]
(g1%2)[-2313]
(g0%1)[-2360]
(g0%1)[-2367]
(g0%1)[-2369]
(g0%2)[-2350]
(g1%2)[-2361]
(g1%2)[-2367]
(g0%1)[-2374]
(g0%1)[-2360](g0%1)[-2359]
(g0%1)[-2360]
(g0%1)[-2349](g0%1)[-2355](g0%1)[-2350]
(g0%1)[-2344]
(g0%1)[-2341](g0%1)[-2346]
(g1%2)[-2346]
(g0%2)[-2346]
(g1%2)[-2333]
(g0%2)[-2349]
(g0%1)[-2348]
(g0%1)[-2349]
(g0%1)[-2331]
(g0%1)[-2328]
(g0%1)[-2320]
(g1%2)[-2337]
(g0%2)[-2303]
(g1%2)[-2305]
(g1%2)[-2312]
(g0%1)[-2304](g0%1)[-2309]
(g0%1)[-2288]
(g1%2)[-2284]
(g1%2)[-2286]
(g1%2)[-2289]
(g0%1)[-2316]
(g0%1)[-2317]
(g0%1)[-2318]
(g0%1)[-2334](g0%1)[-2333](g0%1)[-2332](g0%1)[-2331](g0%1)[-2330](g0%1)[-2329]
(g0%1)[-2349]
(g1%2)[-2352]
(g1%2)[-2350]
(g0%2)[-2367]
(g0%2)[-2369]
(g0%1)[-2337]
(g0%1)[-2338]
(g1%2)[-2338]
(g0%2)[-2344](g0%2)[-2345](g1%2)[-2341](g1%2)[-2340]
(g0%2)[-2350]
(g1%2)[-2340]
(g0%2)[-2347]
(g0%2)[-2339]
(g0%1)[-2338](g0%1)[-2342](g0%1)[-2339]
(g0%1)[-2318]
(g0%2)[-2314]
(g1%2)[-2312](g1%2)[-2311](g0%2)[-2308](g0%2)[-2307]
(g1%2)[-2319]
(g0%2)[-2328](g0%2)[-2321]
(g0%1)[-2319]
(g0%1)[-2315]
(g0%1)[-2368]
(g0%1)[-2361]
(g0%1)[-2359]
(g0%1)[-2392]
(g0%1)[-2385]
(g1%2)[-2402]
(g0%1)[-2403]
(g1%2)[-2397]
(g0%2)[-2387]
(g1%2)[-2391]
(g1%2)[-2391]
(g1%2)[-2430]
(g0%2)[-2431]
(g0%1)[-2441](g0%1)[-2438]
(g0%1)[-2441]
(g0%2)[-2438]
(g0%2)[-2434]
(g0%2)[-2435]
(g0%2)[-2430]
(g0%1)[-2433](g0%1)[-2434]
(g1%2)[-2435]
(g0%2)[-2450]
(g0%1)[-2460]
(g1%2)[-2457]
(g1%2)[-2461](g1%2)[-2460](g0%2)[-2457](g0%2)[-2456]
(g1%2)[-2444]
(g1%2)[-2449]
(g1%2)[-2452]
(g0%1)[-2462]
(g0%1)[-2455]
(g0%1)[-2458]
(g0%1)[-2455](g0%1)[-2460]
(g0%1)[-2467]
(g0%2)[-2452]
(g0%1)[-2474]
(g0%1)[-2481]
(g1%2)[-2451]
(g0%1)[-2454]
(g0%1)[-2439](g0%1)[-2438]
(g0%1)[-2443]
(g0%1)[-2443]
(g1%2)[-2440]
(g0%2)[-2438](g0%2)[-2437](g1%2)[-2434](g1%2)[-2433]
(g0%2)[-2430]
(g1%2)[-2445]
(g1%2)[-2424]
(g0%2)[-2445]
(g0%1)[-2426]
(g0%1)[-2426]
(g0%1)[-2416](g0%1)[-2420](g0%1)[-2417]
(g0%1)[-2421]
(g0%2)[-2426]
(g0%2)[-2411]
(g0%1)[-2419]
(g0%1)[-2413]
(g0%2)[-2409]
(g0%1)[-2407]
(g0%1)[-2406](g0%1)[-2399](g0%1)[-2396]
(g1%2)[-2429]
(g0%1)[-2428]
(g0%1)[-2418]
(g0%1)[-2452]
(g0%1)[-2444]
(g0%1)[-2458]
(g0%1)[-2446]
(g0%1)[-2453]
(g0%1)[-2455]
(g1%2)[-2456]
(g0%2)[-2453]
(g0%1)[-2445]
(g0%1)[-2462]
(g0%1)[-2462]
(g0%1)[-2459](g0%1)[-2464]
(g1%2)[-2462]
(g0%2)[-2466]
(g0%1)[-2462]
(g3%8)[-2475]
(g0%2)[-2433]
(g0%2)[-2431]
(g1%2)[-2430]
(g0%2)[-2428]
(g1%2)[-2441]
(g1%2)[-2431]
(g1%2)[-2422]
(g0%2)[-2424]
(g1%2)[-2424]
(g0%1)[-2400]
(g0%2)[-2378]
(g1%2)[-2367]
(g0%2)[-2366]
(g0%1)[-2360](g0%1)[-2359](g0%1)[-2355]
(g1%2)[-2356]
(g1%2)[-2365]
(g0%1)[-2365]
(g1%2)[-2369]
(g0%2)[-2375]
(g0%1)[-2356](g0%1)[-2361](g0%1)[-2360](g0%1)[-2359](g0%1)[-2358](g0%1)[-2357]
(g0%1)[-2364]
(g0%1)[-2355](g0%1)[-2354]
(g0%1)[-2383]
(g1%2)[-2379]
(g0%2)[-2375]
(g0%2)[-2365]
(g0%1)[-2363]
(g0%1)[-2368](g0%1)[-2369]
(g0%1)[-2371]
(g0%1)[-2369](g0%1)[-2371]
(g0%1)[-2345]
(g0%1)[-2352]
(g0%1)[-2354]
(g1%2)[-2343]
(g0%1)[-2335]
(g0%1)[-2344]
(g0%1)[-2338]
(g0%1)[-2328](g0%1)[-2332](g0%1)[-2329]
(g0%1)[-2333]
(g0%1)[-2340]
(g0%1)[-2324]
(g0%1)[-2338](g0%1)[-2343]
(g0%2)[-2336]
(g1%2)[-2343]
(g0%1)[-2330]
(g0%1)[-2329]
(g0%2)[-2325]
(g0%2)[-2333]
(g0%2)[-2332]
(g1%2)[-2336]
(g0%1)[-2337]
(g0%1)[-2331]
(g0%1)[-2340]
(g1%2)[-2358]
(g0%1)[-2349](g0%1)[-2348](g0%1)[-2345]
(g0%1)[-2349]
(g0%2)[-2345]
(g0%1)[-2346](g0%1)[-2349](g0%1)[-2348]
(g1%2)[-2341]
(g1%2)[-2350]
(g1%2)[-2360]
(g0%1)[-2359]
(g0%1)[-2362](g0%1)[-2357]
(g0%1)[-2350]
(g0%2)[-2347]
(g1%2)[-2350]
(g1%2)[-2344]
(g1%2)[-2342]
(g0%2)[-2357]
(g0%1)[-2343](g0%1)[-2347](g0%1)[-2346](g0%1)[-2345](g0%1)[-2344](g0%1)[-2342]
(g0%1)[-2315]
(g1%2)[-2318]
(g1%2)[-2322]
(g0%1)[-2314]
(g0%1)[-2314]
(g0%1)[-2311]
(g0%1)[-2305]
(g1%2)[-2306]
(g1%2)[-2292]
(g1%2)[-2301]
(g0%2)[-2307]
(g0%2)[-2312]
(g0%2)[-2299]
(g0%1)[-2290](g0%1)[-2289](g0%1)[-2288](g0%1)[-2287](g0%1)[-2286]
(g1%2)[-2295]
(g1%2)[-2283](g1%2)[-2290]
(g0%1)[-2338]
(g0%1)[-2329]
(g1%2)[-2330]
(g0%1)[-2333](g0%1)[-2340]
(g1%2)[-2327](g1%2)[-2328](g0%2)[-2324](g0%2)[-2323]
(g1%2)[-2316]
(g1%2)[-2312]
(g1%2)[-2309]
(g0%1)[-2311]
(g0%1)[-2302]
(g0%1)[-2310]
(g0%2)[-2293]
(g0%1)[-2328]
(g0%1)[-2327]
(g0%1)[-2324](g0%1)[-2329]
(g0%2)[-2329]
(g0%2)[-2322](g0%2)[-2321](g1%2)[-2318](g1%2)[-2317]
(g0%2)[-2330]
(g0%1)[-2339]
(g0%1)[-2329]
(g0%1)[-2338]
(g0%1)[-2332]
(g0%1)[-2330]
(g0%1)[-2312]
(g1%2)[-2304]
(g1%2)[-2319]
(g0%2)[-2309]
(g0%2)[-2308]
(g1%2)[-2313]
(g0%2)[-2288]
(g0%1)[-2290]
(g0%1)[-2287](g0%1)[-2292]
(g0%2)[-2287]
(g1%2)[-2284]
(g1%2)[-2300]
(g0%2)[-2304]
(g0%1)[-2303]
(g0%2)[-2300]
(g0%1)[-2287]
(g1%2)[-2292]
(g0%2)[-2290]
(g0%2)[-2308]
(g0%2)[-2308]
(g0%2)[-2305]
(g0%1)[-2297]
(g0%2)[-2293]
(g1%2)[-2283]
(g1%2)[-2291]
(g1%2)[-2286]
(g0%2)[-2298]
(g0%1)[-2299]
(g0%1)[-2331]
(g0%1)[-2338]
(g1%2)[-2326]
(g0%2)[-2319]
(g1%2)[-2325]
(g0%2)[-2323]
(g0%2)[-2338]
(g1%2)[-2328]
(g0%1)[-2344]
(g0%1)[-2344]
(g1%2)[-2345]
(g0%2)[-2346]
(g0%2)[-2333]
(g1%2)[-2329]
(g0%2)[-2319]
(g0%2)[-2319]
(g0%2)[-2327]
(g0%1)[-2308]
(g0%1)[-2305](g0%1)[-2310]
(g0%2)[-2310]
(g1%2)[-2310]
(g0%1)[-2317]
(g1%2)[-2295]
(g0%1)[-2289](g0%1)[-2293](g0%1)[-2292](g0%1)[-2291](g0%1)[-2290]
(g1%2)[-2308]
(g1%2)[-2303]
(g0%1)[-2322]
(g0%1)[-2322](g0%1)[-2324](g0%1)[-2323](g0%1)[-2321](g0%1)[-2320]
(g0%1)[-2330]
(g0%1)[-2389]
(g0%1)[-2399](g0%1)[-2398](g0%1)[-2397](g0%1)[-2396](g0%1)[-2395](g0%1)[-2394]
(g0%1)[-2414]
(g1%2)[-2411]
(g1%2)[-2413]
(g0%2)[-2396]
(g1%2)[-2406]
(g1%2)[-2406]
(g0%1)[-2416]
(g0%1)[-2433]
(g0%2)[-2437]
(g0%1)[-2450](g0%1)[-2449](g0%1)[-2448](g0%1)[-2447]
(g0%2)[-2445]
(g1%2)[-2442]
(g1%2)[-2425]
(g0%1)[-2445]
(g1%2)[-2439]
(g0%1)[-2422]
(g0%1)[-2438]
(g0%1)[-2402]
(g0%1)[-2399](g0%1)[-2404]
(g0%2)[-2399]
(g1%2)[-2404]
(g1%2)[-2411](g1%2)[-2410](g0%2)[-2407](g0%2)[-2406]
(g1%2)[-2395]
(g1%2)[-2389]
(g0%1)[-2381]
(g0%2)[-2381]
(g1%2)[-2393]
(g0%2)[-2381]
(g0%2)[-2386]
(g0%2)[-2379]
(g0%1)[-2416]
(g1%2)[-2412]
(g1%2)[-2420]
(g1%2)[-2419]
(g0%1)[-2430](g0%1)[-2429](g0%1)[-2428](g0%1)[-2427](g0%1)[-2426](g0%1)[-2425]
(g1%2)[-2426](g1%2)[-2425](g0%2)[-2424](g0%2)[-2423]
(g0%2)[-2430]
(g1%2)[-2420]
(g1%2)[-2420]
(g0%1)[-2401]
(g1%2)[-2404]
(g1%2)[-2408]
(g0%1)[-2397]
(g0%1)[-2389]
(g0%1)[-2427]
(g0%1)[-2431]
(g0%1)[-2431]
(g0%1)[-2438]
(g0%1)[-2440]
(g1%2)[-2429]
(g0%1)[-2421]
(g0%1)[-2430]
(g0%1)[-2424]
(g0%1)[-2414](g0%1)[-2418](g0%1)[-2415]
(g0%1)[-2419]
(g0%1)[-2426]
(g0%1)[-2410]
(g0%1)[-2424](g0%1)[-2429]
(g0%2)[-2422]
(g1%2)[-2429]
(g0%1)[-2416]
(g0%1)[-2415]
(g0%2)[-2411]
(g0%2)[-2419]
(g0%2)[-2418]
(g1%2)[-2422]
(g0%1)[-2423]
(g0%1)[-2417]
(g0%1)[-2426]
(g1%2)[-2444]
(g0%1)[-2435](g0%1)[-2434](g0%1)[-2431]
(g0%1)[-2435]
(g0%2)[-2431]
(g0%1)[-2432](g0%1)[-2435](g0%1)[-2434]
(g1%2)[-2427]
(g1%2)[-2436]
(g1%2)[-2446]
(g0%1)[-2445]
(g0%1)[-2448](g0%1)[-2443]
(g0%1)[-2436]
(g0%2)[-2433]
(g1%2)[-2436]
(g1%2)[-2430]
(g1%2)[-2428]
(g0%2)[-2443]
(g0%1)[-2429](g0%1)[-2433](g0%1)[-2432](g0%1)[-2431](g0%1)[-2430](g0%1)[-2428]
(g0%1)[-2399]
(g0%1)[-2406]
(g0%1)[-2403]
(g0%1)[-2389]
(g0%1)[-2385]
(g0%1)[-2411]
(g0%1)[-2416]
(g0%1)[-2402]
(g1%2)[-2399]
(g0%1)[-2414]
(g0%1)[-2406]
(g1%2)[-2423]
(g0%2)[-2389]
(g1%2)[-2391]
(g1%2)[-2398]
(g0%1)[-2420](g0%1)[-2419](g0%1)[-2418](g0%1)[-2417](g0%1)[-2416](g0%1)[-2415]
(g0%1)[-2488]
(g0%2)[-2491]
(g0%2)[-2500]
(g0%2)[-2489]
(g1%2)[-2485]
(g0%2)[-2477]
(g0%1)[-2476](g0%1)[-2486](g0%1)[-2483]
(g0%1)[-2487]
(g0%1)[-2480]
(g1%2)[-2492]
(g0%2)[-2488]
(g0%2)[-2483]
(g0%2)[-2486]
(g0%2)[-2487]
(g0%2)[-2477]
(g0%2)[-2486]
(g0%1)[-2488]
(g0%1)[-2488]
(g0%1)[-2496]
(g1%2)[-2484]
(g0%2)[-2488]
(g1%2)[-2489]
(g0%2)[-2483]
(g0%1)[-2485]
(g0%2)[-2481]
(g0%2)[-2489]
(g1%4)[-2476]
(g0%1)[-2485](g0%1)[-2484](g0%1)[-2483](g0%1)[-2482](g0%1)[-2481](g0%1)[-2480]
(g0%1)[-2481]
(g0%1)[-2476]
(g0%1)[-2488]
(g1%2)[-2491]
(g1%2)[-2495]
(g1%2)[-2494]
(g1%2)[-2485]
(g0%2)[-2492]
(g0%1)[-2498]
(g0%1)[-2491](g0%1)[-2501](g0%1)[-2498]
(g0%1)[-2483]
(g0%1)[-2491]
(g1%2)[-2490]
(g0%1)[-2485]
(g1%2)[-2497](g1%2)[-2498]
(g0%1)[-2493]
(g1%2)[-2494]
(g1%2)[-2496]
(g0%2)[-2496]
(g0%2)[-2482]
(g1%2)[-2500]
(g0%1)[-2484]
(g0%1)[-2484]
(g1%2)[-2484]
(g1%2)[-2476](g1%2)[-2477]
(g0%1)[-2472]
(g0%1)[-2489]
(g0%1)[-2495]
(g1%2)[-2495]
(g0%1)[-2490]
(g1%2)[-2496]
(g1%2)[-2506]
(g0%2)[-2487]
(g0%1)[-2491]
(g0%1)[-2488]
(g1%2)[-2488]
(g0%2)[-2494](g0%2)[-2495](g1%2)[-2491](g1%2)[-2490]
(g0%2)[-2500]
(g1%2)[-2490]
(g0%2)[-2497]
(g0%2)[-2489]
(g0%1)[-2488](g0%1)[-2492](g0%1)[-2489]
(g0%1)[-2482](g0%1)[-2481](g0%1)[-2478]
(g1%2)[-2475]
(g1%2)[-2465]
(g0%1)[-2482]
(g0%1)[-2473](g0%1)[-2472](g0%1)[-2471](g0%1)[-2470](g0%1)[-2469](g0%1)[-2468]
(g0%1)[-2472](g0%1)[-2476]
(g1%8)[-2492]
(g0%1)[-2487](g0%1)[-2492](g0%1)[-2491](g0%1)[-2490](g0%1)[-2489](g0%1)[-2488]
(g0%1)[-2520]
(g0%2)[-2521]
(g1%2)[-2509]
(g0%2)[-2521]
(g1%2)[-2520]
(g0%1)[-2510]
(g0%1)[-2507](g0%1)[-2512]
(g0%1)[-2519]
(g0%1)[-2508]
(g0%1)[-2498]
(g0%1)[-2509]
(g0%1)[-2499](g0%1)[-2504](g0%1)[-2503](g0%1)[-2502](g0%1)[-2501](g0%1)[-2500]
(g0%1)[-2523]
(g0%1)[-2516]
(g1%2)[-2513]
(g1%2)[-2521]
(g1%2)[-2525]
(g0%1)[-2515](g0%1)[-2519](g0%1)[-2518](g0%1)[-2517](g0%1)[-2516]
(g0%2)[-2513]
(g1%2)[-2498]
(g0%2)[-2495]
(g0%1)[-2480]
(g1%2)[-2477]
(g1%2)[-2485]
(g1%2)[-2481]
(g1%2)[-2488]
(g0%1)[-2473]
(g0%1)[-2464]
(g1%2)[-2464]
(g0%2)[-2466]
(g0%2)[-2475]
(g0%2)[-2466]
(g0%1)[-2467]
(g1%2)[-2450]
(g0%1)[-2468]
(g0%2)[-2472]
(g0%2)[-2464]
(g0%2)[-2480]
(g0%2)[-2483]
(g0%2)[-2476]
(g1%2)[-2460]
(g0%2)[-2465]
(g0%2)[-2459]
(g0%1)[-2459](g0%1)[-2462]
(g0%1)[-2451]
(g0%2)[-2454]
(g0%2)[-2452]
(g0%1)[-2486]
(g0%1)[-2493]
(g1%2)[-2476]
(g0%1)[-2475]
(g1%2)[-2481]
(g0%2)[-2491]
(g1%2)[-2487]
(g1%2)[-2487]
(g1%2)[-2469]
(g0%2)[-2459]
(g1%2)[-2475]
(g1%2)[-2474]
(g0%1)[-2449]
(g0%1)[-2470]
(g0%1)[-2470]
(g0%2)[-2467]
(g0%2)[-2459]
(g0%2)[-2468]
(g0%1)[-2478]
(g0%1)[-2472]
(g0%1)[-2483]
(g0%1)[-2482]
(g0%1)[-2479](g0%1)[-2484]
(g0%1)[-2486]
(g0%2)[-2481]
(g1%2)[-2485]
(g0%1)[-2494]
(g0%2)[-2505]
(g0%2)[-2500](g0%2)[-2501]
(g0%1)[-2505]
(g1%2)[-2508]
(g0%2)[-2504]
(g0%1)[-2509]
(g1%2)[-2512]
(g0%2)[-2508]
(g0%1)[-2491]
(g1%2)[-2487]
(g0%2)[-2477]
(g1%2)[-2485]
(g0%1)[-2497]
(g1%2)[-2488]
(g0%1)[-2489]
(g0%1)[-2479]
(g1%2)[-2483]
(g1%2)[-2475]
(g1%2)[-2487]
(g0%1)[-2494](g0%1)[-2497]
(g0%2)[-2454]
(g0%2)[-2451]
(g0%2)[-2454](g1%2)[-2457](g1%2)[-2456](g1%2)[-2455](g0%2)[-2453](g0%2)[-2452]
(g0%2)[-2469]
(g1%2)[-2476]
(g1%2)[-2470]
(g0%1)[-2479]
(g1%2)[-2482]
(g1%2)[-2490]
(g1%2)[-2481]
(g0%1)[-2482]
(g0%2)[-2488]
(g1%2)[-2485]
(g0%1)[-2470](g0%1)[-2480](g0%1)[-2477]
(g0%1)[-2423]
(g1%2)[-2423]
(g1%2)[-2438]
(g1%2)[-2424]
(g1%2)[-2420]
(g1%2)[-2424]
(g0%2)[-2430]
(g1%2)[-2438]
(g0%1)[-2449]
(g1%2)[-2453]
(g1%2)[-2445]
(g0%2)[-2453]
(g0%1)[-2452]
(g0%1)[-2465](g0%1)[-2464](g0%1)[-2461]
(g0%2)[-2445]
(g0%1)[-2456](g0%1)[-2452](g0%1)[-2451](g0%1)[-2449](g0%1)[-2446]
(g0%2)[-2469]
(g0%2)[-2492](g1%2)[-2497](g1%2)[-2496](g1%2)[-2495](g0%2)[-2494](g0%2)[-2493]
(g0%1)[-2504]
(g0%2)[-2505]
(g0%2)[-2491]
(g0%1)[-2493]
(g1%2)[-2498]
(g0%1)[-2507]
(g0%1)[-2500]
(g0%1)[-2514]
(g0%1)[-2513]
(g0%2)[-2531]
(g1%2)[-2509]
(g0%1)[-2528]
(g1%2)[-2531]
(g1%2)[-2529]
(g0%2)[-2546]
(g1%2)[-2536]
(g1%2)[-2536]
(g0%1)[-2526]
(g0%1)[-2500]
(g1%2)[-2472]
(g1%2)[-2473]
(g0%1)[-2475]
(g1%2)[-2471]
(g1%2)[-2461]
(g0%1)[-2465]
(g0%1)[-2462]
(g0%1)[-2479](g0%1)[-2484](g0%1)[-2483](g0%1)[-2482](g0%1)[-2481](g0%1)[-2480]
(g0%1)[-2473]
(g0%1)[-2484]
(g0%1)[-2466]
(g0%2)[-2470]
(g1%2)[-2472](g0%2)[-2477](g0%2)[-2476](g1%2)[-2473]
(g0%1)[-2461](g0%1)[-2460](g0%1)[-2459](g0%1)[-2458](g0%1)[-2457]
(g1%2)[-2456]
(g0%2)[-2476]
(g0%1)[-2480](g0%1)[-2479](g0%1)[-2478](g0%1)[-2477](g0%1)[-2476](g0%1)[-2475]
(g0%1)[-2493]
(g1%2)[-2510]
(g0%1)[-2511]
(g1%2)[-2505]
(g0%2)[-2495]
(g1%2)[-2499]
(g1%2)[-2499]
(g0%1)[-2507]
(g0%1)[-2500]
(g0%1)[-2506]
(g0%1)[-2509]
(g0%1)[-2516]
(g0%1)[-2526]
(g0%1)[-2488]
(g0%1)[-2498]
(g0%1)[-2498]
(g0%2)[-2497]
(g0%1)[-2493]
(g1%2)[-2501]
(g1%2)[-2495](g0%2)[-2500](g0%2)[-2499](g0%2)[-2498](g1%2)[-2497](g1%2)[-2496]
(g0%2)[-2487]
(g1%2)[-2485]
(g0%1)[-2492]
(g1%2)[-2495]
(g1%2)[-2493]
(g1%2)[-2499]
(g0%1)[-2491]
(g1%2)[-2497]
(g2%8)[-2501]
(g1%2)[-2426]
(g0%1)[-2390](g0%1)[-2395]
(g0%1)[-2371]
(g1%2)[-2368]
(g1%2)[-2376]
(g0%1)[-2383]
(g1%2)[-2359]
(g1%2)[-2366]
(g0%1)[-2368]
(g0%2)[-2364]
(g0%1)[-2377](g0%1)[-2376](g0%1)[-2375](g0%1)[-2374](g0%1)[-2373]
(g1%2)[-2369]
(g1%2)[-2366]
(g1%2)[-2372]
(g0%2)[-2378]
(g0%1)[-2361]
(g0%1)[-2364](g0%1)[-2359]
(g1%2)[-2359]
(g0%2)[-2359]
(g1%2)[-2372]
(g1%2)[-2378]
(g0%2)[-2382]
(g0%2)[-2358]
(g0%1)[-2365]
(g0%1)[-2364]
(g0%1)[-2371]
(g0%1)[-2368]
(g0%1)[-2366](g0%1)[-2371]
(g0%1)[-2359]
(g0%1)[-2357]
(g0%1)[-2349]
(g0%1)[-2351]
(g0%2)[-2361]
(g1%2)[-2370]
(g0%2)[-2384](g1%2)[-2389](g1%2)[-2388](g1%2)[-2387](g0%2)[-2386](g0%2)[-2385]
(g0%2)[-2326]
(g0%1)[-2312](g0%1)[-2315](g0%1)[-2314](g0%1)[-2313](g0%1)[-2311](g0%1)[-2310]
(g1%2)[-2316]
(g1%2)[-2324]
(g1%2)[-2319]
(g1%2)[-2328]
(g0%2)[-2322]
(g1%2)[-2316]
(g0%2)[-2319](g0%2)[-2318]
(g0%1)[-2277]
(g0%1)[-2280](g0%1)[-2275]
(g0%1)[-2287]
(g0%1)[-2279]
(g0%1)[-2277]
(g0%2)[-2275]
(g1%2)[-2274]
(g0%1)[-2281]
(g0%2)[-2284]
(g0%2)[-2292]
(g1%2)[-2289]
(g0%1)[-2292]
(g1%2)[-2287]
(g0%2)[-2288]
(g1%2)[-2272]
(g0%1)[-2272](g0%1)[-2267]
(g0%1)[-2274]
(g0%1)[-2274]
(g0%1)[-2284](g0%1)[-2283](g0%1)[-2280]
(g0%1)[-2284]
(g0%1)[-2282]
(g0%1)[-2288]
(g1%2)[-2273]
(g0%2)[-2278]
(g0%1)[-2286]
(g0%1)[-2289]
(g0%1)[-2275]
(g0%1)[-2284]
(g0%2)[-2287]
(g1%2)[-2289](g0%2)[-2294](g0%2)[-2293](g1%2)[-2290]
(g0%2)[-2297]
(g0%2)[-2279]
(g0%2)[-2273]
(g0%1)[-2283]
(g0%1)[-2283]
(g0%1)[-2276]
(g0%1)[-2274]
(g0%2)[-2293]
(g1%2)[-2282]
(g1%2)[-2277]
(g1%2)[-2262]
(g0%2)[-2267]
(g0%2)[-2269]
(g0%1)[-2277]
(g0%2)[-2273]
(g0%2)[-2265]
(g0%2)[-2261]
(g0%2)[-2257]
(g0%2)[-2249]
(g0%1)[-2250]
(g0%1)[-2257]
(g1%2)[-2240]
(g0%1)[-2239]
(g1%2)[-2245]
(g0%2)[-2255]
(g1%2)[-2251]
(g1%2)[-2251]
(g0%1)[-2279]
(g0%1)[-2272]
(g1%2)[-2289]
(g0%1)[-2290]
(g1%2)[-2284]
(g0%2)[-2274]
(g1%2)[-2278]
(g1%2)[-2278]
(g1%2)[-2212]
(g0%1)[-2191](g0%1)[-2187](g0%1)[-2186](g0%1)[-2184](g0%1)[-2181]
(g0%1)[-2157]
(g1%2)[-2154]
(g1%2)[-2156]
(g1%2)[-2137]
(g1%2)[-2141]
(g1%2)[-2146]
(g0%1)[-2159]
(g0%1)[-2146]
(g0%1)[-2138]
(g0%2)[-2150]
(g1%2)[-2143]
(g1%2)[-2136]
(g0%1)[-2106]
(g0%2)[-2106]
(g0%1)[-2110]
(g0%2)[-2092]
(g1%2)[-2090]
(g0%2)[-2095]
(g0%2)[-2117]
(g1%2)[-2113]
(g1%2)[-2113]
(g0%1)[-2104]
(g0%1)[-2094]
(g1%2)[-2095]
(g0%2)[-2096]
(g0%2)[-2083]
(g0%2)[-2088]
(g0%1)[-2099]
(g1%2)[-2129]
(g0%2)[-2130]
(g0%1)[-2127]
(g0%1)[-2143]
(g1%2)[-2144]
(g0%1)[-2154](g0%1)[-2147]
(g1%2)[-2138]
(g0%2)[-2131]
(g0%2)[-2136]
(g1%2)[-2135]
(g1%2)[-2128]
(g0%1)[-2142]
(g0%1)[-2141]
(g0%2)[-2140]
(g1%2)[-2152]
(g0%2)[-2140]
(g1%2)[-2141]
(g0%1)[-2176]
(g0%1)[-2186](g0%1)[-2185](g0%1)[-2182]
(g0%2)[-2179]
(g0%1)[-2189](g0%1)[-2188](g0%1)[-2185]
(g1%2)[-2181]
(g0%2)[-2177]
(g0%2)[-2178]
(g0%1)[-2178](g0%1)[-2181]
(g0%1)[-2161]
(g0%1)[-2161]
(g0%1)[-2158](g0%1)[-2163]
(g0%1)[-2165]
(g1%2)[-2160]
(g0%2)[-2164]
(g0%1)[-2187]
(g0%1)[-2173]
(g0%2)[-2115](g1%2)[-2120](g1%2)[-2119](g1%2)[-2118](g0%2)[-2117](g0%2)[-2116]
(g0%2)[-2111]
(g0%1)[-2107]
(g0%1)[-2110]
(g0%1)[-2107](g0%1)[-2112]
(g1%2)[-2107]
(g0%2)[-2116]
(g0%2)[-2115]
(g0%2)[-2105]
(g0%2)[-2112](g1%2)[-2117](g1%2)[-2116](g0%2)[-2113]
(g0%2)[-2110]
(g0%2)[-2109]
(g0%2)[-2103](g0%2)[-2107]
(g0%1)[-2073]
(g0%1)[-2080]
(g1%2)[-2065]
(g0%2)[-2085]
(g0%1)[-2084]
(g1%2)[-2081]
(g1%2)[-2083]
(g1%2)[-2076]
(g0%1)[-2086]
(g0%1)[-2103]
(g1%2)[-2104]
(g1%2)[-2090]
(g1%2)[-2099]
(g0%2)[-2105]
(g0%2)[-2110]
(g0%2)[-2097]
(g0%1)[-2088](g0%1)[-2087](g0%1)[-2086](g0%1)[-2085](g0%1)[-2084]
(g1%2)[-2093]
(g1%2)[-2081](g1%2)[-2088]
(g0%1)[-2076]
(g0%1)[-2065]
(g0%1)[-2075](g0%1)[-2074](g0%1)[-2073](g0%1)[-2072](g0%1)[-2071](g0%1)[-2070]
(g0%1)[-2090]
(g0%2)[-2087]
(g0%2)[-2087]
(g0%1)[-2092]
(g0%1)[-2092]
(g1%2)[-2096]
(g1%2)[-2106]
(g1%2)[-2094]
(g1%2)[-2094]
(g0%1)[-2082]
(g0%1)[-2072]
(g1%2)[-2072]
(g0%2)[-2084]
(g1%2)[-2073]
(g0%2)[-2072]
(g0%1)[-2092]
(g0%2)[-2088]
(g0%2)[-2096]
(g1%2)[-2088]
(g0%1)[-2089]
(g0%1)[-2084]
(g0%1)[-2088]
(g0%1)[-2088]
(g0%2)[-2084]
(g1%2)[-2074]
(g1%2)[-2082]
(g1%2)[-2077]
(g1%2)[-2097]
(g1%2)[-2093]
(g0%1)[-2100]
(g0%2)[-2103]
(g1%2)[-2111]
(g0%2)[-2113]
(g0%2)[-2095]
(g0%2)[-2095]
(g0%2)[-2098]
(g0%1)[-2106]
(g0%2)[-2110]
(g1%2)[-2120]
(g1%2)[-2112]
(g1%2)[-2117]
(g0%2)[-2105]
(g0%1)[-2104]
(g0%1)[-2072]
(g0%1)[-2065]
(g1%2)[-2077]
(g0%2)[-2084]
(g1%2)[-2078]
(g0%2)[-2080]
(g0%2)[-2065]
(g1%2)[-2075]
(g0%1)[-2059]
(g0%1)[-2059]
(g1%2)[-2058]
(g0%2)[-2057]
(g0%2)[-2070]
(g1%2)[-2074]
(g0%2)[-2084]
(g0%2)[-2084]
(g0%2)[-2076]
(g0%1)[-2070]
(g0%1)[-2063]
(g0%1)[-2095]
(g0%1)[-2098](g0%1)[-2093]
(g0%2)[-2093]
(g1%2)[-2093]
(g0%1)[-2086]
(g1%2)[-2108]
(g0%1)[-2114](g0%1)[-2113](g0%1)[-2112](g0%1)[-2111](g0%1)[-2110]
(g1%2)[-2095]
(g1%2)[-2100]
(g0%1)[-2081]
(g0%1)[-2081](g0%1)[-2083](g0%1)[-2082](g0%1)[-2080](g0%1)[-2079]
(g1%2)[-2078]
(g1%2)[-2062](g1%2)[-2063]
(g0%1)[-2058]
(g0%1)[-2049](g0%1)[-2053](g0%1)[-2050]
(g0%1)[-2049]
(g0%1)[-2055]
(g1%2)[-2045]
(g0%1)[-2043]
(g0%1)[-2053](g0%1)[-2052](g0%1)[-2049]
(g0%2)[-2046]
(g0%1)[-2056](g0%1)[-2055](g0%1)[-2052]
(g1%2)[-2048]
(g0%2)[-2044]
(g0%2)[-2045]
(g0%1)[-2045](g0%1)[-2048]
(g0%2)[-2080]
(g0%1)[-2079]
(g0%2)[-2076]
(g1%2)[-2070]
(g0%1)[-2080]
(g0%1)[-2069]
(g0%1)[-2072](g0%1)[-2067]
(g0%2)[-2067]
(g0%2)[-2070]
(g0%2)[-2069](g1%2)[-2073](g1%2)[-2072](g0%2)[-2068]
(g0%1)[-2091](g0%1)[-2093](g0%1)[-2092](g0%1)[-2090](g0%1)[-2089](g0%1)[-2088]
(g1%2)[-2083]
(g0%1)[-2075]
(g1%2)[-2071]
(g0%2)[-2078]
(g0%1)[-2085](g0%1)[-2086]
(g0%1)[-2086]
(g0%2)[-2079]
(g0%1)[-2081]
(g0%1)[-2071](g0%1)[-2075](g0%1)[-2072]
(g0%1)[-2076]
(g1%2)[-2071]
(g0%2)[-2074](g0%2)[-2075]
(g0%1)[-2081]
(g0%1)[-2107]
(g0%2)[-2103]
(g0%2)[-2095]
(g1%2)[-2107]
(g0%2)[-2103]
(g0%2)[-2092]
(g0%1)[-2069]
(g0%1)[-2069]
(g1%2)[-2066]
(g1%2)[-2068]
(g1%2)[-2062]
(g0%2)[-2067]
(g0%2)[-2056]
(g0%2)[-2071]
(g1%2)[-2104]
(g1%2)[-2114]
(g0%2)[-2110](g1%2)[-2116](g0%2)[-2105]
(g0%1)[-2097]
(g0%1)[-2094](g0%1)[-2099]
(g0%1)[-2101]
(g0%2)[-2096]
(g0%2)[-2094]
(g0%2)[-2101]
(g0%1)[-2098]
(g1%2)[-2094]
(g0%1)[-2112]
(g0%1)[-2113]
(g0%1)[-2103]
(g0%1)[-2105]
(g0%1)[-2137]
(g0%1)[-2139](g0%1)[-2134]
(g0%1)[-2133](g0%1)[-2126]
(g0%1)[-2138]
(g0%1)[-2139]
(g1%2)[-2140]
(g1%2)[-2126]
(g1%2)[-2135]
(g0%2)[-2141]
(g0%2)[-2146]
(g0%2)[-2133]
(g0%1)[-2124](g0%1)[-2123](g0%1)[-2122](g0%1)[-2121](g0%1)[-2120]
(g1%2)[-2129]
(g1%2)[-2117](g1%2)[-2124]
(g0%1)[-2114]
(g0%1)[-2103]
(g0%1)[-2113](g0%1)[-2112](g0%1)[-2111](g0%1)[-2110](g0%1)[-2109](g0%1)[-2108]
(g0%1)[-2137]
(g0%1)[-2144]
(g0%1)[-2146]
(g1%2)[-2127]
(g0%2)[-2138]
(g1%2)[-2144]
(g0%2)[-2151]
(g1%2)[-2148]
(g0%1)[-2148]
(g0%2)[-2090]
(g0%2)[-2080]
(g0%1)[-2078]
(g0%1)[-2083](g0%1)[-2084]
(g0%1)[-2086]
(g0%1)[-2084](g0%1)[-2086]
(g0%1)[-2049]
(g1%2)[-2053]
(g0%2)[-2049]
(g0%1)[-2054]
(g1%2)[-2057]
(g0%2)[-2053]
(g0%1)[-2058]
(g1%2)[-2054]
(g1%2)[-2056]
(g1%2)[-2059]
(g0%1)[-2085]
(g1%2)[-2081]
(g1%2)[-2083]
(g0%2)[-2067]
(g0%1)[-2086]
(g0%1)[-2112]
(g0%1)[-2104]
(g0%2)[-2112]
(g1%2)[-2137]
(g1%2)[-2131]
(g0%1)[-2124](g0%1)[-2123](g0%1)[-2122](g0%1)[-2121](g0%1)[-2120]
(g0%1)[-2136]
(g0%2)[-2139]
(g1%2)[-2147]
(g0%2)[-2149]
(g0%2)[-2131]
(g0%2)[-2131]
(g0%2)[-2134]
(g0%1)[-2142]
(g0%2)[-2146]
(g1%2)[-2156]
(g1%2)[-2148]
(g1%2)[-2153]
(g0%2)[-2141]
(g0%1)[-2140]
(g0%1)[-2108]
(g0%1)[-2101]
(g1%2)[-2113]
(g0%2)[-2120]
(g1%2)[-2114]
(g0%2)[-2116]
(g0%2)[-2101]
(g1%2)[-2111]
(g0%1)[-2095]
(g0%1)[-2095]
(g1%2)[-2094]
(g0%2)[-2093]
(g0%2)[-2106]
(g1%2)[-2110]
(g0%2)[-2120]
(g0%2)[-2120]
(g0%2)[-2112]
(g0%1)[-2131]
(g0%1)[-2134](g0%1)[-2129]
(g0%2)[-2129]
(g1%2)[-2129]
(g0%1)[-2122]
(g1%2)[-2144]
(g0%1)[-2150](g0%1)[-2149](g0%1)[-2148](g0%1)[-2147](g0%1)[-2146]
(g1%2)[-2131]
(g1%2)[-2136]
(g0%1)[-2117]
(g0%1)[-2117](g0%1)[-2119](g0%1)[-2118](g0%1)[-2116](g0%1)[-2115]
(g0%1)[-2074]
(g0%2)[-2069]
(g0%1)[-2055](g0%1)[-2059](g0%1)[-2056]
(g0%2)[-2089]
(g0%1)[-2084]
(g0%1)[-2074]
(g0%2)[-2093]
(g0%2)[-2101]
(g0%1)[-2109]
(g0%1)[-2127](g0%1)[-2129](g0%1)[-2128](g0%1)[-2126](g0%1)[-2125](g0%1)[-2124]
(g0%1)[-2118](g0%1)[-2117](g0%1)[-2114]
(g0%1)[-2118]
(g0%1)[-2116]
(g0%1)[-2122]
(g1%2)[-2107]
(g0%2)[-2112]
(g0%1)[-2111](g0%1)[-2121](g0%1)[-2118]
(g0%1)[-2114]
(g0%1)[-2114]
(g0%1)[-2114]
(g1%2)[-2118]
(g0%2)[-2124]
(g0%1)[-2123](g0%1)[-2122](g0%1)[-2121](g0%1)[-2120](g0%1)[-2119](g0%1)[-2118]
(g0%1)[-2125](g0%1)[-2129](g0%1)[-2128](g0%1)[-2127](g0%1)[-2126]
(g0%1)[-2103]
(g0%1)[-2106](g0%1)[-2101]
(g0%2)[-2101]
(g0%2)[-2114]
(g0%2)[-2111]
(g0%2)[-2102]
(g1%2)[-2110]
(g0%1)[-2118]
(g0%1)[-2118]
(g0%1)[-2110]
(g0%1)[-2108]
(g0%2)[-2127]
(g1%2)[-2116]
(g0%1)[-2123](g0%1)[-2119](g0%1)[-2118](g0%1)[-2116](g0%1)[-2113]
(g0%2)[-2103]
(g0%2)[-2112]
(g0%1)[-2112](g0%1)[-2111](g0%1)[-2110](g0%1)[-2109](g0%1)[-2108](g0%1)[-2107]
(g0%1)[-2134]
(g1%2)[-2130]
(g0%2)[-2126]
(g0%2)[-2116]
(g0%1)[-2114]
(g0%1)[-2119](g0%1)[-2120]
(g0%1)[-2122]
(g0%1)[-2120](g0%1)[-2122]
(g0%1)[-2077]
(g1%2)[-2081]
(g0%2)[-2077]
(g0%1)[-2073]
(g1%2)[-2077]
(g0%2)[-2073]
(g0%1)[-2069]
(g1%2)[-2073]
(g0%2)[-2069]
(g0%1)[-2074]
(g1%2)[-2077]
(g0%2)[-2073]
(g0%1)[-2078]
(g1%2)[-2081]
(g0%2)[-2077]
(g0%1)[-2082]
(g1%2)[-2085]
(g0%2)[-2081]
(g0%1)[-2086]
(g1%2)[-2089]
(g0%2)[-2085]
(g0%1)[-2090]
(g0%1)[-2097]
(g1%2)[-2089]
(g1%2)[-2076]
(g0%1)[-2083]
(g0%1)[-2073](g0%1)[-2077](g0%1)[-2074]
(g0%1)[-2078]
(g0%1)[-2099]
(g0%1)[-2088]
(g0%1)[-2098](g0%1)[-2097](g0%1)[-2096](g0%1)[-2095](g0%1)[-2094](g0%1)[-2093]
(g0%1)[-2059]
(g1%2)[-2054]
(g0%2)[-2067]
(g1%2)[-2077]
(g0%1)[-2057]
(g0%1)[-2074]
(g0%1)[-2084]
(g1%2)[-2084]
(g0%2)[-2078](g1%2)[-2082](g1%2)[-2081](g0%2)[-2077]
(g0%2)[-2072]
(g1%2)[-2082]
(g0%2)[-2075]
(g0%2)[-2083]
(g0%1)[-2084](g0%1)[-2083](g0%1)[-2080]
(g0%1)[-2122]
(g1%2)[-2125]
(g0%2)[-2129]
(g0%1)[-2117]
(g0%2)[-2107]
(g0%1)[-2109]
(g0%1)[-2102]
(g0%2)[-2109]
(g1%2)[-2127](g1%2)[-2126](g0%2)[-2123](g0%2)[-2122]
(g0%2)[-2111]
(g0%1)[-2115]
(g1%2)[-2114]
(g0%2)[-2117]
(g0%2)[-2120]
(g0%1)[-2118]
(g0%1)[-2111]
(g0%1)[-2111]
(g0%1)[-2109]
(g1%2)[-2129]
(g0%1)[-2140](g0%1)[-2139](g0%1)[-2138](g0%1)[-2137](g0%1)[-2136](g0%1)[-2135]
(g1%2)[-2102]
(g1%2)[-2100]
(g0%1)[-2101]
(g0%1)[-2093]
(g1%2)[-2100]
(g1%2)[-2108]
(g0%1)[-2099]
(g0%2)[-2084](g0%2)[-2088]
(g0%1)[-2090]
(g1%2)[-2087]
(g0%1)[-2050]
(g0%1)[-2059]
(g0%1)[-2049](g0%1)[-2053](g0%1)[-2050]
(g0%1)[-2054]
(g0%2)[-2059]
(g0%2)[-2051]
(g1%2)[-2047]
(g0%1)[-2054]
(g0%1)[-2045]
(g0%2)[-2042]
(g0%1)[-2021]
(g0%1)[-2022]
(g1%2)[-2019]
(g0%2)[-2012]
(g0%1)[-2025](g0%1)[-2029](g0%1)[-2028]
(g0%2)[-1997]
(g0%2)[-1993]
(g1%2)[-1981]
(g0%1)[-1972]
(g0%1)[-1983]
(g0%1)[-1973](g0%1)[-1978](g0%1)[-1977](g0%1)[-1976](g0%1)[-1975](g0%1)[-1974]
(g0%1)[-1936]
(g0%1)[-1927]
(g0%2)[-1924]
(g0%2)[-1926]
(g1%2)[-1916]
(g0%1)[-1919]
(g0%1)[-1909]
(g0%1)[-1909]
(g0%2)[-1910]
(g0%2)[-1895]
(g1%2)[-1892]
(g0%1)[-1901]
(g0%1)[-1892]
(g1%2)[-1911]
(g1%2)[-1913]
(g0%1)[-1901]
(g0%1)[-1896](g0%1)[-1895](g0%1)[-1894](g0%1)[-1893](g0%1)[-1892](g0%1)[-1891]
(g0%1)[-1889]
(g0%2)[-1885]
(g0%2)[-1881]
(g0%2)[-1882]
(g0%2)[-1880]
(g0%1)[-1875]
(g0%1)[-1884](g0%1)[-1883](g0%1)[-1880]
(g0%1)[-1879]
(g0%2)[-1874]
(g0%1)[-1900]
(g0%2)[-1891]
(g0%2)[-1893]
(g0%1)[-1857]
(g0%2)[-1856]
(g0%2)[-1871]
(g0%2)[-1860]
(g0%2)[-1857]
(g1%2)[-1875](g1%2)[-1868]
(g0%1)[-1871]
(g0%1)[-1880]
(g0%1)[-1870](g0%1)[-1874](g0%1)[-1871]
(g0%2)[-1883]
(g0%2)[-1871]
(g1%2)[-1879]
(g0%2)[-1869]
(g1%2)[-1881]
(g0%1)[-1872]
(g0%2)[-1875]
(g0%2)[-1867]
(g1%2)[-1875]
(g0%1)[-1874]
(g0%1)[-1879]
(g0%1)[-1885]
(g1%2)[-1885]
(g1%2)[-1871]
(g0%1)[-1873]
(g0%2)[-1878]
(g0%1)[-1886]
(g0%2)[-1854]
(g0%1)[-1861]
(g0%2)[-1857]
(g0%2)[-1857]
(g1%2)[-1856]
(g0%1)[-1852](g0%1)[-1857](g0%1)[-1856](g0%1)[-1855](g0%1)[-1854](g0%1)[-1853]
(g0%2)[-1848]
(g1%2)[-1873]
(g0%1)[-1870]
(g1%2)[-1871]
(g0%1)[-1875]
(g0%2)[-1859]
(g1%2)[-1861](g0%2)[-1866](g0%2)[-1865](g1%2)[-1862]
(g0%2)[-1849]
(g1%2)[-1854]
(g0%1)[-1864]
(g0%1)[-1867](g0%1)[-1862]
(g0%1)[-1855]
(g0%2)[-1870]
(g1%2)[-1873](g1%2)[-1874]
(g0%1)[-1869]
(g0%1)[-1851]
(g1%2)[-1866]
(g1%2)[-1868]
(g1%2)[-1851]
(g0%1)[-1851]
(g0%1)[-1849]
(g0%1)[-1852](g0%1)[-1847]
(g0%1)[-1845]
(g0%1)[-1829]
(g0%1)[-1832](g0%1)[-1827]
(g0%1)[-1825]
(g0%1)[-1822]
(g0%1)[-1830]
(g0%1)[-1819]
(g0%1)[-1790]
(g1%2)[-1793]
(g0%2)[-1801]
(g1%2)[-1798]
(g0%2)[-1788]
(g0%1)[-1797]
(g1%2)[-1787]
(g0%1)[-1801]
(g0%1)[-1796]
(g0%1)[-1786](g0%1)[-1790](g0%1)[-1787]
(g0%1)[-1795]
(g0%1)[-1798]
(g0%2)[-1801]
(g1%2)[-1800](g1%2)[-1799](g0%2)[-1796](g0%2)[-1795]
(g0%2)[-1804]
(g0%1)[-1842]
(g0%1)[-1850]
(g0%1)[-1881]
(g0%1)[-1871]
(g1%2)[-1871]
(g0%2)[-1873]
(g0%2)[-1882]
(g0%2)[-1873]
(g0%1)[-1874]
(g1%2)[-1857]
(g0%1)[-1858]
(g0%2)[-1861]
(g0%2)[-1870]
(g0%1)[-1845]
(g0%2)[-1856]
(g1%2)[-1860]
(g0%1)[-1828]
(g0%1)[-1828]
(g1%2)[-1825]
(g0%2)[-1820]
(g0%1)[-1829]
(g0%1)[-1841]
(g0%1)[-1832]
(g0%1)[-1823](g0%1)[-1827](g0%1)[-1824]
(g0%1)[-1828]
(g0%2)[-1833]
(g0%2)[-1816]
(g1%2)[-1818](g1%2)[-1819]
(g0%1)[-1813]
(g0%1)[-1813]
(g0%1)[-1806]
(g0%2)[-1813]
(g0%2)[-1821]
(g7%8)[-1847]
(g0%1)[-1875]
(g0%1)[-1866](g0%1)[-1870](g0%1)[-1867]
(g1%2)[-1873]
(g1%2)[-1868]
(g0%2)[-1855]
(g0%1)[-1836]
(g0%1)[-1843]
(g0%1)[-1845]
(g0%2)[-1826]
(g1%2)[-1837]
(g1%2)[-1852]
(g1%2)[-1858]
(g0%1)[-1854](g0%1)[-1855]
(g0%2)[-1861]
(g1%2)[-1881](g1%2)[-1880](g1%2)[-1879](g0%2)[-1878](g0%2)[-1877](g0%2)[-1876]
(g0%1)[-1901](g0%1)[-1899](g0%1)[-1896]
(g0%1)[-1893]
(g0%1)[-1884]
(g1%2)[-1888]
(g0%2)[-1896]
(g1%2)[-1890]
(g1%2)[-1885]
(g0%2)[-1887]
(g0%2)[-1885]
(g1%2)[-1883]
(g0%1)[-1906]
(g0%1)[-1906]
(g1%2)[-1909]
(g0%2)[-1905]
(g0%1)[-1910]
(g0%1)[-1902]
(g0%1)[-1916]
(g0%1)[-1916](g0%1)[-1919](g0%1)[-1918](g0%1)[-1917]
(g0%1)[-1920]
(g0%1)[-1939]
(g0%1)[-1949]
(g0%1)[-1952](g0%1)[-1947]
(g0%2)[-1952]
(g1%2)[-1955]
(g1%2)[-1945]
(g0%2)[-1936]
(g1%2)[-1953]
(g0%2)[-1957]
(g0%1)[-1950]
(g0%1)[-1959]
(g0%1)[-1968](g0%1)[-1967](g0%1)[-1964]
(g0%1)[-1963]
(g1%2)[-1958]
(g0%2)[-1964]
(g0%2)[-1971]
(g0%1)[-1970]
(g1%2)[-1970]
(g0%2)[-1978](g1%2)[-1983](g1%2)[-1982](g0%2)[-1979]
(g0%2)[-1979]
(g0%2)[-1983]
(g0%1)[-1942]
(g0%1)[-1952]
(g0%1)[-1960]
(g0%1)[-1946]
(g0%1)[-1958]
(g0%1)[-1951]
(g0%1)[-1940]
(g0%1)[-1933]
(g0%1)[-1939]
(g1%2)[-1935]
(g0%2)[-1953]
(g0%2)[-1929]
(g0%1)[-1931]
(g0%1)[-1928](g0%1)[-1933]
(g0%2)[-1928]
(g1%2)[-1928]
(g1%2)[-1942]
(g0%2)[-1928]
(g0%2)[-1826](g0%2)[-1833]
(g0%1)[-1839]
(g0%2)[-1836]
(g0%1)[-1851]
(g0%1)[-1860](g0%1)[-1859](g0%1)[-1856]
(g1%2)[-1853]
(g1%2)[-1864]
(g1%2)[-1854]
(g0%1)[-1855]
(g1%2)[-1846]
(g0%1)[-1858]
(g0%2)[-1798]
(g0%1)[-1804](g0%1)[-1809](g0%1)[-1808](g0%1)[-1807](g0%1)[-1806](g0%1)[-1805]
(g0%1)[-1802]
(g1%2)[-1803]
(g0%1)[-1808]
(g1%2)[-1795](g1%2)[-1796]
(g0%1)[-1800]
(g1%2)[-1803]
(g0%2)[-1811]
(g1%2)[-1817]
(g1%2)[-1797]
(g1%2)[-1808]
(g0%1)[-1827]
(g0%1)[-1820]
(g1%2)[-1837]
(g0%1)[-1838]
(g1%2)[-1832]
(g0%2)[-1822]
(g1%2)[-1826]
(g1%2)[-1826]
(g0%1)[-1849]
(g0%2)[-1850]
(g1%2)[-1848]
(g0%2)[-1833](g1%2)[-1838](g1%2)[-1837](g1%2)[-1836](g0%2)[-1835](g0%2)[-1834]
(g0%1)[-1838]
(g0%1)[-1831]
(g0%1)[-1827]
(g0%1)[-1815]
(g0%1)[-1855]
(g1%2)[-1852]
(g1%2)[-1844]
(g0%2)[-1855]
(g0%2)[-1860]
(g1%2)[-1861]
(g0%1)[-1869]
(g1%2)[-1866]
(g1%2)[-1858]
(g1%2)[-1867]
(g0%1)[-1866]
(g0%2)[-1860]
(g1%2)[-1863]
(g0%2)[-1856](g0%2)[-1855](g0%2)[-1854](g1%2)[-1853](g1%2)[-1852](g1%2)[-1851]
(g0%1)[-1878](g0%1)[-1871](g0%1)[-1868]
(g0%1)[-1874]
(g0%1)[-1871]
(g1%2)[-1871]
(g0%2)[-1884]
(g1%2)[-1878]
(g0%1)[-1893]
(g0%2)[-1882]
(g0%1)[-1881]
(g0%2)[-1878]
(g1%2)[-1868]
(g0%2)[-1873]
(g1%2)[-1885]
(g1%2)[-1876]
(g0%1)[-1867](g0%1)[-1877](g0%1)[-1874]
(g0%2)[-1888]
(g0%1)[-1880]
(g0%1)[-1889]
(g0%2)[-1892]
(g1%2)[-1900]
(g1%2)[-1885]
(g0%2)[-1884]
(g1%2)[-1877]
(g0%1)[-1863]
(g0%1)[-1854](g0%1)[-1858](g0%1)[-1855]
(g0%1)[-1871]
(g1%2)[-1858]
(g0%2)[-1857]
(g1%2)[-1849]
(g0%1)[-1850]
(g1%2)[-1849]
(g0%2)[-1851]
(g1%2)[-1860]
(g1%2)[-1853]
(g1%2)[-1845]
(g2%8)[-1868]
(g1%2)[-1896]
(g1%2)[-1891](g1%2)[-1898]
(g1%2)[-1910]
(g1%2)[-1908]
(g0%1)[-1909]
(g0%1)[-1918](g0%1)[-1917](g0%1)[-1914]
(g0%1)[-1913]
(g0%2)[-1916]
(g0%2)[-1902]
(g0%2)[-1920]
(g0%2)[-1928]
(g0%8)[-1924]
(g0%1)[-1901]
(g0%1)[-1904](g0%1)[-1899]
(g0%1)[-1906]
(g0%1)[-1914]
(g0%1)[-1898]
(g0%2)[-1912]
(g1%2)[-1894]
(g0%1)[-1887]
(g1%2)[-1888]
(g1%2)[-1880](g1%2)[-1881]
(g0%1)[-1876]
(g0%1)[-1869]
(g0%1)[-1893]
(g1%2)[-1884]
(g0%1)[-1912]
(g1%2)[-1916]
(g1%2)[-1914]
(g0%1)[-1901]
(g0%2)[-1922]
(g0%2)[-1923]
(g0%1)[-1925]
(g0%1)[-1964]
(g0%1)[-1967](g0%1)[-1962]
(g1%2)[-1967]
(g1%2)[-1978]
(g0%2)[-1967]
(g1%2)[-1955]
(g1%2)[-1943]
(g0%1)[-1976]
(g0%1)[-1976]
(g1%2)[-1976]
(g0%1)[-1980]
(g1%2)[-1984]
(g0%2)[-1971]
(g0%2)[-1983]
(g0%1)[-1991]
(g0%1)[-1969]
(g0%1)[-1969]
(g0%1)[-1961]
(g1%2)[-1969]
(g1%2)[-1982]
(g0%1)[-1974]
(g0%1)[-2008]
(g1%2)[-2005]
(g0%2)[-1999]
(g0%1)[-2009]
(g0%1)[-2005](g0%1)[-2004](g0%1)[-2003](g0%1)[-2002](g0%1)[-2001](g0%1)[-2000]
(g0%1)[-2011]
(g0%1)[-2014](g0%1)[-2009]
(g0%2)[-2014]
(g0%1)[-2026]
(g1%2)[-2017]
(g0%2)[-2015]
(g0%2)[-2003]
(g1%2)[-1999]
(g1%8)[-1991]
(g0%1)[-2017]
(g1%2)[-2014]
(g1%2)[-2016]
(g0%2)[-1999]
(g0%2)[-1995]
(g1%2)[-1999]
(g6%8)[-2007]
(g1%2)[-2023]
(g0%2)[-2007]
(g0%1)[-2008]
(g0%2)[-2011]
(g0%2)[-2003]
(g0%1)[-2009]
(g1%2)[-2012]
(g0%1)[-1996]
(g0%1)[-2000]
(g0%2)[-2011]
(g0%2)[-2017](g1%2)[-2022](g1%2)[-2021](g1%2)[-2020](g0%2)[-2019](g0%2)[-2018]
(g1%2)[-2032]
(g1%2)[-2034]
(g0%2)[-2044]
(g0%2)[-2055]
(g1%2)[-2056]
(g1%2)[-2032]
(g1%2)[-2078]
(g1%2)[-2089]
(g0%2)[-2093]
(g0%1)[-2094]
(g1%2)[-2107]
(g3%8)[-2102]
(g0%1)[-2076]
(g0%1)[-2067](g0%1)[-2071](g0%1)[-2068]
(g0%1)[-2084]
(g0%1)[-2083]
(g0%2)[-2071]
(g0%2)[-2070]
(g1%2)[-2066]
(g1%2)[-2070]
(g0%1)[-2062]
(g1%2)[-2059]
(g0%2)[-2053]
(g0%1)[-2063]
(g0%1)[-2059](g0%1)[-2058](g0%1)[-2057](g0%1)[-2056](g0%1)[-2055]
(g0%1)[-2065]
(g0%1)[-2075](g0%1)[-2074](g0%1)[-2071]
(g1%2)[-2068]
(g1%2)[-2053]
(g1%2)[-2055]
(g0%1)[-2078]
(g0%1)[-2089](g0%1)[-2092]
(g0%1)[-2084]
(g0%1)[-2077]
(g1%2)[-2080]
(g0%1)[-2067](g0%1)[-2071](g0%1)[-2070](g0%1)[-2069](g0%1)[-2068]
(g1%2)[-2075]
(g0%2)[-2079]
(g0%1)[-2080]
(g0%1)[-2080]
(g1%2)[-2077]
(g1%2)[-2069]
(g0%2)[-2080]
(g0%2)[-2085]
(g1%2)[-2086]
(g0%1)[-2094]
(g1%2)[-2091]
(g1%2)[-2083]
(g1%2)[-2092]
(g0%1)[-2091]
(g0%2)[-2085]
(g1%2)[-2088]
(g0%2)[-2081](g0%2)[-2080](g0%2)[-2079](g1%2)[-2078](g1%2)[-2077](g1%2)[-2076]
(g0%1)[-2068]
(g0%2)[-2068]
(g1%2)[-2062](g0%2)[-2066](g0%2)[-2065](g1%2)[-2061]
(g1%2)[-2068]
(g0%2)[-2071]
(g0%1)[-2071]
(g1%2)[-2055]
(g1%2)[-2061]
(g0%1)[-2047]
(g0%1)[-2038](g0%1)[-2042](g0%1)[-2039]
(g0%1)[-2055]
(g1%2)[-2042]
(g0%2)[-2041]
(g1%2)[-2033]
(g0%1)[-2034]
(g1%2)[-2033]
(g0%2)[-2035]
(g1%2)[-2044]
(g1%2)[-2037]
(g1%2)[-2029]
(g0%1)[-2018](g0%1)[-2019](g0%1)[-2015](g0%1)[-2008]
(g0%1)[-2103](g0%1)[-2096](g0%1)[-2093]
(g0%1)[-2099]
(g0%1)[-2096]
(g1%2)[-2096]
(g0%2)[-2109]
(g1%2)[-2103]
(g0%1)[-2118]
(g0%2)[-2107]
(g0%1)[-2106]
(g0%2)[-2103]
(g1%2)[-2093]
(g0%2)[-2098]
(g1%2)[-2110]
(g1%2)[-2101]
(g0%1)[-2092](g0%1)[-2102](g0%1)[-2099]
(g0%2)[-2113]
(g0%1)[-2105]
(g0%1)[-2114]
(g0%2)[-2117]
(g1%2)[-2125]
(g1%2)[-2110]
(g0%2)[-2109]
(g1%2)[-2102]
(g1%2)[-2121]
(g1%2)[-2116](g1%2)[-2123]
(g0%1)[-2088]
(g0%1)[-2079](g0%1)[-2083](g0%1)[-2080]
(g0%1)[-2096]
(g1%2)[-2083]
(g0%2)[-2082]
(g1%2)[-2074]
(g0%1)[-2075]
(g1%2)[-2074]
(g0%2)[-2076]
(g1%2)[-2085]
(g1%2)[-2078]
(g1%2)[-2070]
(g3%8)[-2093]
(g0%1)[-2059](g0%1)[-2060](g0%1)[-2056](g0%1)[-2049]
(g1%8)[-2052]
(g0%1)[-1932]
(g1%2)[-1915]
(g0%1)[-1914]
(g1%2)[-1920]
(g0%2)[-1930]
(g1%2)[-1926]
(g1%2)[-1926]
(g0%1)[-1911]
(g0%1)[-1920](g0%1)[-1919](g0%1)[-1916]
(g1%2)[-1913]
(g0%2)[-1903]
(g1%2)[-1920]
(g1%2)[-1928]
(g0%1)[-1903]
(g0%1)[-1912]
(g0%1)[-1904]
(g0%2)[-1911]
(g1%2)[-1916]
(g0%2)[-1892]
(g1%2)[-1890]
(g0%1)[-1927]
(g0%1)[-1927]
(g0%1)[-1917](g0%1)[-1921](g0%1)[-1918]
(g0%2)[-1924]
(g1%2)[-1924]
(g1%2)[-1923]
(g0%1)[-1932]
(g0%1)[-1909]
(g0%2)[-1864]
(g0%1)[-1865]
(g1%2)[-1861]
(g1%2)[-1869]
(g1%2)[-1865]
(g0%1)[-1866]
(g0%2)[-1863]
(g0%1)[-1849]
(g0%1)[-1858]
(g0%1)[-1850]
(g1%2)[-1867]
(g0%2)[-1864]
(g0%2)[-1868]
(g1%2)[-1870]
(g1%2)[-1859]
(g0%1)[-1862]
(g0%1)[-1872](g0%1)[-1871](g0%1)[-1868]
(g1%2)[-1859]
(g1%2)[-1858]
(g0%1)[-1866](g0%1)[-1873]
(g0%1)[-1861]
(g0%1)[-1859]
(g0%2)[-1858]
(g0%2)[-1872]
(g0%2)[-1868]
(g1%2)[-1858]
(g0%2)[-1859]
(g0%1)[-1861]
(g1%2)[-1865]
(g1%2)[-1865]
(g1%2)[-1866]
(g0%1)[-1860](g0%1)[-1863](g0%1)[-1862](g0%1)[-1861]
(g1%2)[-1867]
(g0%1)[-1859]
(g0%2)[-1858]
(g1%2)[-1874]
(g1%2)[-1873]
(g1%2)[-1858]
(g1%2)[-1863]
(g1%2)[-1856]
(g0%1)[-1873]
(g0%2)[-1874]
(g1%2)[-1876]
(g0%2)[-1887]
(g1%2)[-1857]
(g1%2)[-1862]
(g0%1)[-1854]
(g0%2)[-1858]
(g1%2)[-1868]
(g1%2)[-1850]
(g0%2)[-1873]
(g0%2)[-1862]
(g0%2)[-1870]
(g0%2)[-1869]
(g0%1)[-1857]
(g1%2)[-1854]
(g1%2)[-1846]
(g0%2)[-1857]
(g1%2)[-1858]
(g0%2)[-1856]
(g0%1)[-1869]
(g1%2)[-1866]
(g0%2)[-1856]
(g0%1)[-1849]
(g0%1)[-1834](g0%1)[-1835](g0%1)[-1831](g0%1)[-1824]
(g0%1)[-1841]
(g0%1)[-1855]
(g0%1)[-1843]
(g0%1)[-1850]
(g0%1)[-1918]
(g0%1)[-1915](g0%1)[-1920]
(g0%1)[-1922]
(g0%2)[-1917]
(g1%2)[-1921]
(g0%1)[-1930]
(g0%2)[-1941]
(g0%2)[-1936](g0%2)[-1937]
(g0%1)[-1932]
(g0%1)[-1942](g0%1)[-1941](g0%1)[-1938]
(g0%1)[-1933]
(g0%1)[-1930]
(g1%2)[-1923]
(g0%2)[-1940]
(g0%1)[-1944]
(g0%1)[-1935]
(g0%2)[-1932]
(g0%2)[-1923]
(g1%2)[-1937]
(g1%2)[-1943](g1%2)[-1942]
(g0%1)[-1948]
(g0%1)[-1936]
(g0%1)[-1924]
(g0%1)[-1939]
(g0%1)[-1947]
(g0%2)[-1939]
(g0%2)[-1916]
(g1%2)[-1924]
(g0%1)[-1920](g0%1)[-1919]
(g0%1)[-1932]
(g1%2)[-1928]
(g1%2)[-1925]
(g1%2)[-1934]
(g0%2)[-1945]
(g0%1)[-1946]
(g0%2)[-1928]
(g1%2)[-1934]
(g1%2)[-1931](g1%2)[-1926]
(g0%1)[-1937]
(g1%2)[-1938]
(g0%2)[-1940]
(g0%2)[-1937]
(g0%1)[-1946](g0%1)[-1950](g0%1)[-1949]
(g1%2)[-1941]
(g0%2)[-1928]
(g1%2)[-1933]
(g0%1)[-1941]
(g0%1)[-1941]
(g0%1)[-1949]
(g1%2)[-1941]
(g1%2)[-1928]
(g0%1)[-1936]
(g0%1)[-1936]
(g1%2)[-1932]
(g0%2)[-1926]
(g0%1)[-1925]
(g1%2)[-1922]
(g1%2)[-1912]
(g0%1)[-1928]
(g0%2)[-1929]
(g0%1)[-1939](g0%1)[-1932]
(g1%2)[-1917]
(g0%1)[-1927]
(g0%1)[-1908]
(g0%1)[-1917]
(g1%2)[-1921]
(g0%1)[-1936]
(g0%2)[-1900]
(g0%1)[-1892](g0%1)[-1899]
(g1%2)[-1900]
(g0%1)[-1915](g0%1)[-1914](g0%1)[-1913](g0%1)[-1912]
(g0%2)[-1927]
(g0%1)[-1906]
(g1%2)[-1903]
(g1%2)[-1905]
(g0%2)[-1888]
(g1%2)[-1898]
(g1%2)[-1898]
(g0%1)[-1894]
(g0%1)[-1908]
(g0%1)[-1901]
(g0%1)[-1903]
(g1%2)[-1892]
(g0%1)[-1884]
(g0%1)[-1893]
(g1%2)[-1907]
(g0%1)[-1878]
(g0%1)[-1888](g0%1)[-1887](g0%1)[-1884]
(g0%1)[-1879]
(g0%2)[-1869]
(g0%2)[-1878]
(g1%2)[-1871]
(g0%1)[-1914]
(g1%2)[-1910]
(g0%2)[-1910](g1%2)[-1914](g1%2)[-1913](g0%2)[-1909]
(g0%1)[-1918](g0%1)[-1923](g0%1)[-1922](g0%1)[-1921](g0%1)[-1920](g0%1)[-1919]
(g0%2)[-1915]
(g1%2)[-1909]
(g1%2)[-1924]
(g0%1)[-1908]
(g0%1)[-1919]
(g0%1)[-1911]
(g0%2)[-1928]
(g1%2)[-1910]
(g0%1)[-1920]
(g0%1)[-1899]
(g0%1)[-1904]
(g0%2)[-1900]
(g1%2)[-1893]
(g0%1)[-1864]
(g0%1)[-1876]
(g0%2)[-1891]
(g0%1)[-1905]
(g0%1)[-1887]
(g1%2)[-1890]
(g0%2)[-1900]
(g1%2)[-1885]
(g1%2)[-1885]
(g0%1)[-1902]
(g0%1)[-1913]
(g0%1)[-1914]
(g0%1)[-1905]
(g0%2)[-1906]
(g0%2)[-1892]
(g0%1)[-1894]
(g1%2)[-1899]
(g1%2)[-1873]
(g0%2)[-1871]
(g0%1)[-1869]
(g0%2)[-1869]
(g1%2)[-1875](g1%2)[-1876](g0%2)[-1872](g0%2)[-1871]
(g1%2)[-1870]
(g1%2)[-1878](g0%2)[-1882](g0%2)[-1881](g1%2)[-1877]
(g1%2)[-1867]
(g0%2)[-1865]
(g1%2)[-1863]
(g0%1)[-1865]
(g0%1)[-1855](g0%1)[-1859](g0%1)[-1856]
(g0%2)[-1862]
(g1%2)[-1862]
(g1%2)[-1861]
(g0%1)[-1870]
(g0%1)[-1847]
(g0%1)[-1856]
(g0%1)[-1853](g0%1)[-1858]
(g0%1)[-1860]
(g1%2)[-1855]
(g0%2)[-1859]
(g0%1)[-1882]
(g0%1)[-1878]
(g0%1)[-1885]
(g0%2)[-1873]
(g1%2)[-1873]
(g1%2)[-1866]
(g0%2)[-1889]
(g1%2)[-1866](g1%2)[-1873]
(g0%1)[-1851]
(g0%1)[-1861]
(g0%1)[-1852]
(g1%2)[-1849]
(g0%1)[-1862](g0%1)[-1861](g0%1)[-1860](g0%1)[-1859](g0%1)[-1858]
(g1%2)[-1854]
(g0%2)[-1850]
(g0%1)[-1838]
(g0%1)[-1847]
(g0%1)[-1839]
(g1%2)[-1847]
(g1%2)[-1857]
(g0%1)[-1852]
(g1%2)[-1853]
(g0%1)[-1865]
(g0%1)[-1861]
(g0%2)[-1862]
(g0%2)[-1855](g0%2)[-1854]
(g0%2)[-1861]
(g0%2)[-1866]
(g0%2)[-1868]
(g0%1)[-1860]
(g0%1)[-1851]
(g1%2)[-1855]
(g0%2)[-1851]
(g0%1)[-1867]
(g0%1)[-1870](g0%1)[-1865]
(g1%2)[-1865]
(g1%2)[-1867]
(g0%2)[-1867]
(g0%1)[-1867]
(g0%1)[-1872]
(g0%2)[-1869]
(g0%2)[-1861]
(g0%1)[-1885]
(g0%2)[-1874]
(g1%2)[-1875]
(g1%2)[-1858]
(g1%2)[-1864]
(g0%1)[-1847]
(g1%2)[-1851]
(g0%2)[-1847]
(g0%1)[-1843]
(g1%2)[-1844]
(g0%1)[-1849]
(g1%2)[-1836](g1%2)[-1837]
(g0%1)[-1841]
(g0%1)[-1848]
(g0%2)[-1836]
(g1%2)[-1841]
(g0%2)[-1846]
(g0%2)[-1828]
(g0%1)[-1840]
(g0%1)[-1857]
(g0%1)[-1884]
(g0%1)[-1891]
(g0%1)[-1894]
(g0%1)[-1890]
(g0%1)[-1917]
(g1%2)[-1913]
(g0%1)[-1928]
(g1%2)[-1931]
(g0%1)[-1922](g0%1)[-1921](g0%1)[-1920](g0%1)[-1919](g0%1)[-1918]
(g1%2)[-1917]
(g0%2)[-1937]
(g0%1)[-1937]
(g0%1)[-1947]
(g0%1)[-1938]
(g0%1)[-1948](g0%1)[-1947](g0%1)[-1944]
(g1%2)[-1935]
(g1%2)[-1934]
(g0%1)[-1942](g0%1)[-1949]
(g0%1)[-1937]
(g0%1)[-1935]
(g1%2)[-1934]
(g0%2)[-1948]
(g1%2)[-1938]
(g0%2)[-1934]
(g1%2)[-1935]
(g0%1)[-1953]
(g0%1)[-1952]
(g0%2)[-1952]
(g1%2)[-1950]
(g1%2)[-1958]
(g0%1)[-1947](g0%1)[-1950]
(g0%1)[-1933](g0%1)[-1934]
(g0%1)[-1937]
(g0%1)[-1928]
(g1%2)[-1932]
(g0%2)[-1928]
(g0%1)[-1950]
(g0%1)[-1960](g0%1)[-1959](g0%1)[-1956]
(g0%1)[-1951]
(g0%2)[-1941]
(g0%2)[-1950]
(g1%2)[-1943]
(g0%1)[-1933]
(g1%2)[-1929]
(g0%2)[-1927](g0%2)[-1926](g1%2)[-1923](g1%2)[-1922]
(g1%2)[-1925]
(g0%2)[-1920]
(g1%2)[-1931]
(g1%2)[-1930]
(g0%1)[-1927]
(g0%2)[-1934]
(g0%1)[-1925]
(g0%1)[-1917]
(g0%2)[-1934]
(g0%2)[-1922]
(g0%1)[-1926]
(g1%2)[-1900]
(g0%1)[-1903]
(g0%1)[-1903]
(g0%2)[-1903]
(g0%2)[-1905]
(g1%2)[-1905]
(g1%2)[-1883]
(g1%2)[-1878]
(g0%1)[-1884]
(g1%2)[-1891]
(g1%2)[-1894]
(g0%2)[-1898]
(g0%1)[-1896](g0%1)[-1894]
(g0%1)[-1883]
(g0%2)[-1887]
(g1%2)[-1889](g0%2)[-1894](g0%2)[-1893](g1%2)[-1890]
(g0%2)[-1891]
(g0%1)[-1871]
(g0%1)[-1864]
(g0%2)[-1847]
(g0%2)[-1859]
(g0%1)[-1855]
(g0%1)[-1836]
(g0%1)[-1826](g0%1)[-1830](g0%1)[-1827]
(g0%1)[-1831]
(g0%2)[-1836]
(g0%2)[-1821]
(g0%1)[-1829]
(g0%1)[-1823]
(g0%1)[-1816]
(g1%2)[-1824]
(g1%2)[-1830]
(g1%2)[-1840]
(g1%2)[-1841]
(g1%2)[-1846]
(g0%1)[-1843]
(g0%1)[-1835]
(g0%1)[-1849]
(g0%1)[-1837]
(g0%1)[-1844]
(g0%1)[-1845]
(g0%1)[-1854]
(g0%2)[-1853]
(g1%2)[-1855]
(g1%2)[-1847]
(g0%1)[-1858](g0%1)[-1855]
(g0%1)[-1868]
(g0%2)[-1897]
(g1%2)[-1896]
(g0%1)[-1893]
(g0%1)[-1882]
(g0%1)[-1902]
(g0%1)[-1911]
(g1%2)[-1914]
(g0%2)[-1920]
(g0%1)[-1901](g0%1)[-1906](g0%1)[-1905](g0%1)[-1904](g0%1)[-1903](g0%1)[-1902]
(g0%1)[-1910]
(g0%1)[-1912]
(g1%2)[-1913]
(g0%2)[-1912]
(g1%2)[-1918]
(g0%2)[-1897]
(g0%1)[-1900](g0%1)[-1901]
(g0%2)[-1902]
(g1%2)[-1917](g1%2)[-1918]
(g0%1)[-1923]
(g0%1)[-1923]
(g0%2)[-1926]
(g1%2)[-1931]
(g0%1)[-1920]
(g0%2)[-1923]
(g1%2)[-1928]
(g0%1)[-1921]
(g0%1)[-1917]
(g1%2)[-1920]
(g0%2)[-1916]
(g0%1)[-1904]
(g0%1)[-1901](g0%1)[-1906]
(g1%2)[-1906]
(g0%2)[-1893]
(g0%2)[-1902]
(g0%1)[-1910]
(g0%1)[-1921]
(g1%2)[-1917]
(g0%2)[-1915](g0%2)[-1914](g1%2)[-1911](g1%2)[-1910]
(g1%2)[-1913]
(g0%2)[-1908]
(g1%2)[-1919]
(g1%2)[-1918]
(g0%1)[-1915]
(g0%2)[-1922]
(g0%1)[-1913]
(g0%1)[-1905]
(g0%2)[-1922]
(g0%2)[-1910]
(g0%1)[-1914]
(g0%1)[-1876]
(g0%1)[-1877]
(g0%1)[-1877]
(g1%2)[-1877]
(g1%2)[-1871]
(g0%1)[-1879]
(g0%2)[-1865]
(g0%2)[-1869]
(g0%2)[-1879]
(g0%1)[-1882]
(g1%2)[-1890]
(g0%1)[-1869]
(g0%2)[-1872]
(g1%2)[-1874](g0%2)[-1879](g0%2)[-1878](g1%2)[-1875]
(g0%2)[-1873]
(g0%1)[-1883](g0%1)[-1884]
(g0%1)[-1882]
(g0%1)[-1869](g0%1)[-1879](g0%1)[-1876]
(g1%2)[-1871]
(g0%1)[-1866]
(g0%2)[-1866]
(g0%1)[-1875]
(g1%2)[-1860](g0%2)[-1864](g0%2)[-1863](g1%2)[-1859]
(g0%2)[-1865]
(g0%2)[-1852]
(g0%1)[-1857]
(g0%2)[-1859]
(g0%2)[-1881]
(g0%1)[-1887]
(g1%2)[-1891]
(g0%2)[-1897]
(g0%1)[-1905]
(g0%1)[-1910](g0%1)[-1914](g0%1)[-1913]
(g0%1)[-1910]
(g0%1)[-1893]
(g0%1)[-1886]
(g0%1)[-1886]
(g1%2)[-1882]
(g0%2)[-1874]
(g1%2)[-1868]
(g1%2)[-1888]
(g0%2)[-1893]
(g1%2)[-1877]
(g0%1)[-1905]
(g0%2)[-1908]
(g1%2)[-1910](g0%2)[-1915](g0%2)[-1914](g1%2)[-1911]
(g1%2)[-1916]
(g0%1)[-1892]
(g1%2)[-1901]
(g0%1)[-1918]
(g0%1)[-1927]
(g0%1)[-1936](g0%1)[-1935](g0%1)[-1932]
(g0%1)[-1931]
(g0%1)[-1932]
(g0%2)[-1929]
(g0%2)[-1923]
(g0%1)[-1926]
(g0%1)[-1921]
(g1%2)[-1920]
(g1%2)[-1921]
(g1%2)[-1930]
(g0%1)[-1922]
(g0%1)[-1914]
(g0%1)[-1922]
(g0%1)[-1925]
(g0%1)[-1925]
(g1%2)[-1929]
(g0%1)[-1913]
(g1%2)[-1938]
(g1%2)[-1938]
(g0%2)[-1941]
(g0%1)[-1917]
(g0%2)[-1926]
(g1%2)[-1924](g1%2)[-1925]
(g0%1)[-1929]
(g0%2)[-1928]
(g0%1)[-1918](g0%1)[-1925]
(g1%2)[-1940]
(g0%1)[-1930]
(g0%1)[-1938]
(g0%1)[-1938]
(g1%2)[-1935]
(g0%2)[-1929]
(g0%1)[-1928]
(g0%1)[-1941]
(g0%1)[-1930](g0%1)[-1937]
(g0%1)[-1951]
(g0%1)[-1942]
(g0%1)[-1945](g0%1)[-1940]
(g0%1)[-1938]
(g0%1)[-1935]
(g0%1)[-1943]
(g0%1)[-1932]
(g0%1)[-1932]
(g1%2)[-1931]
(g1%2)[-1938](g1%2)[-1939]
(g0%1)[-1944]
(g0%1)[-1928](g0%1)[-1921]
(g0%1)[-1933]
(g0%1)[-1934]
(g0%1)[-1943]
(g0%1)[-1940](g0%1)[-1945]
(g0%1)[-1933]
(g0%1)[-1944]
(g0%1)[-1936]
(g0%1)[-1938]
(g1%2)[-1937]
(g0%2)[-1942]
(g0%2)[-1952]
(g1%2)[-1938]
(g1%2)[-1926]
(g1%2)[-1935]
(g0%1)[-1933]
(g1%2)[-1932]
(g0%2)[-1934]
(g0%1)[-1931](g0%1)[-1930](g0%1)[-1929]
(g0%1)[-1933]
(g1%2)[-1925]
(g1%2)[-1939]
(g0%2)[-1946](g0%2)[-1947]
(g0%1)[-1951]
(g1%2)[-1950]
(g1%2)[-1965]
(g0%2)[-1954]
(g0%1)[-1949]
(g0%1)[-1966]
(g0%1)[-1974]
(g0%1)[-1964]
(g0%1)[-1972]
(g1%2)[-1964]
(g0%2)[-1945]
(g0%1)[-1948]
(g0%1)[-1956](g0%1)[-1955](g0%1)[-1954](g0%1)[-1953](g0%1)[-1952]
(g0%1)[-1948]
(g0%1)[-1939]
(g1%2)[-1939]
(g0%2)[-1951]
(g1%2)[-1940]
(g0%2)[-1939]
(g0%1)[-1959]
(g1%2)[-1962]
(g0%2)[-1966]
(g1%2)[-1952]
(g1%2)[-1940]
(g0%2)[-1976]
(g0%1)[-1963]
(g0%1)[-1962]
(g0%1)[-1972]
(g0%1)[-1963]
(g0%1)[-1971]
(g0%2)[-1963]
(g0%2)[-1952]
(g1%2)[-1947]
(g0%2)[-1938]
(g0%1)[-1926]
(g0%1)[-1936](g0%1)[-1935](g0%1)[-1932]
(g0%1)[-1931]
(g0%2)[-1926]
(g0%2)[-1943]
(g0%2)[-1945]
(g0%1)[-1944]
(g0%1)[-1934]
(g0%1)[-1936]
(g0%1)[-1945]
(g1%2)[-1941]
(g1%2)[-1937]
(g0%1)[-1937]
(g1%2)[-1935]
(g0%2)[-1925]
(g0%2)[-1938]
(g1%2)[-1950]
(g0%2)[-1944]
(g0%1)[-1941]
(g1%2)[-1944]
(g0%2)[-1940]
(g0%1)[-1936]
(g0%2)[-1941]
(g0%1)[-1953]
(g0%1)[-1849]
(g1%2)[-1850]
(g0%2)[-1849]
(g1%2)[-1845]
(g0%2)[-1847]
(g0%1)[-1859]
(g0%1)[-1863]
(g0%2)[-1855]
(g0%2)[-1835]
(g0%2)[-1836]
(g0%1)[-1838]
(g0%1)[-1847](g0%1)[-1846](g0%1)[-1843]
(g0%1)[-1847]
(g0%1)[-1847](g0%1)[-1848]
(g0%1)[-1833]
(g0%2)[-1841]
(g0%1)[-1832]
(g0%2)[-1836]
(g0%1)[-1830]
(g0%1)[-1839]
(g0%2)[-1842]
(g1%2)[-1844](g0%2)[-1849](g0%2)[-1848](g1%2)[-1845]
(g1%2)[-1850]
(g0%1)[-1826]
(g1%2)[-1835]
(g0%1)[-1852]
(g0%1)[-1861]
(g0%1)[-1870](g0%1)[-1869](g0%1)[-1866]
(g0%1)[-1865]
(g0%1)[-1866]
(g0%2)[-1863]
(g0%2)[-1857]
(g0%1)[-1860]
(g0%1)[-1855]
(g1%2)[-1854]
(g1%2)[-1855]
(g1%2)[-1864]
(g0%1)[-1856]
(g0%1)[-1848]
(g0%1)[-1856]
(g0%1)[-1859]
(g0%1)[-1859]
(g1%2)[-1863]
(g0%1)[-1847]
(g1%2)[-1872]
(g1%2)[-1872]
(g0%2)[-1875]
(g0%1)[-1851]
(g0%2)[-1860]
(g1%2)[-1858](g1%2)[-1859]
(g0%1)[-1863]
(g0%2)[-1862]
(g0%1)[-1852](g0%1)[-1859]
(g1%2)[-1874]
(g0%1)[-1864]
(g0%1)[-1872]
(g0%1)[-1872]
(g1%2)[-1869]
(g0%2)[-1863]
(g0%1)[-1862]
(g0%1)[-1875]
(g0%1)[-1864](g0%1)[-1871]
(g0%1)[-1885]
(g0%1)[-1876]
(g0%1)[-1879](g0%1)[-1874]
(g0%1)[-1872]
(g0%1)[-1869]
(g0%1)[-1877]
(g0%1)[-1866]
(g0%1)[-1866]
(g1%2)[-1865]
(g1%2)[-1872](g1%2)[-1873]
(g0%1)[-1878]
(g0%1)[-1862](g0%1)[-1855]
(g0%1)[-1867]
(g0%1)[-1868]
(g0%1)[-1877]
(g0%1)[-1874](g0%1)[-1879]
(g0%1)[-1867]
(g0%1)[-1878]
(g0%1)[-1870]
(g0%1)[-1872]
(g0%1)[-1879]
(g0%1)[-1878]
(g1%2)[-1888]
(g0%2)[-1870]
(g0%1)[-1861]
(g1%2)[-1881]
(g0%2)[-1869]
(g0%1)[-1864]
(g0%2)[-1859]
(g0%1)[-1860](g0%1)[-1865](g0%1)[-1864](g0%1)[-1863](g0%1)[-1862](g0%1)[-1861]
(g0%1)[-1847]
(g0%1)[-1847]
(g0%1)[-1847]
(g1%2)[-1851]
(g0%2)[-1847]
(g0%1)[-1843]
(g1%2)[-1847]
(g0%2)[-1843]
(g0%2)[-1883](g1%2)[-1874]
(g0%1)[-1879]
(g0%1)[-1880]
(g1%2)[-1881]
(g0%2)[-1879]
(g0%1)[-1882](g0%1)[-1884](g0%1)[-1883]
(g0%1)[-1880]
(g1%2)[-1888]
(g1%2)[-1874]
(g0%2)[-1867](g0%2)[-1866]
(g0%1)[-1871]
(g0%1)[-1863]
(g0%1)[-1877]
(g0%1)[-1865]
(g0%1)[-1872]
(g0%1)[-1839]
(g1%2)[-1843]
(g0%2)[-1839]
(g0%1)[-1844]
(g0%2)[-1840]
(g0%2)[-1842]
(g1%2)[-1825]
(g0%2)[-1822](g1%2)[-1827](g1%2)[-1826](g0%2)[-1823]
(g1%2)[-1821]
(g0%2)[-1826]
(g0%1)[-1845]
(g0%1)[-1871]
(g0%1)[-1863]
(g0%1)[-1877]
(g0%1)[-1865]
(g0%1)[-1872]
(g0%1)[-1842]
(g0%1)[-1831]
(g0%1)[-1856]
(g1%2)[-1857]
(g0%2)[-1850](g1%2)[-1855](g1%2)[-1854](g0%2)[-1851]
(g0%2)[-1858]
(g0%2)[-1854]
(g1%2)[-1854]
(g0%1)[-1866]
(g0%1)[-1858]
(g0%1)[-1872]
(g1%2)[-1868]
(g0%1)[-1856]
(g1%2)[-1853]
(g0%2)[-1860]
(g0%2)[-1859]
(g0%1)[-1868]
(g0%1)[-1875]
(g0%2)[-1863]
(g1%2)[-1863]
(g1%2)[-1856]
(g0%1)[-1899]
(g0%1)[-1898]
(g0%1)[-1898]
(g0%1)[-1908](g0%1)[-1907](g0%1)[-1904]
(g0%1)[-1899]
(g0%2)[-1889]
(g0%2)[-1898]
(g1%2)[-1891]
(g1%2)[-1918]
(g1%2)[-1928]
(g0%1)[-1929](g0%1)[-1925]
(g0%1)[-1921]
(g0%1)[-1911]
(g0%2)[-1908]
(g1%2)[-1900]
(g1%2)[-1915]
(g0%1)[-1908]
(g0%2)[-1913]
(g0%2)[-1910]
(g0%1)[-1907]
(g0%1)[-1899]
(g0%2)[-1920]
(g0%2)[-1916]
(g0%2)[-1904]
(g0%1)[-1908]
(g0%1)[-1940]
(g0%1)[-1946]
(g1%2)[-1949]
(g0%2)[-1945]
(g0%1)[-1941]
(g0%1)[-1949]
(g1%2)[-1941]
(g0%2)[-1931]
(g1%2)[-1928]
(g0%2)[-1928]
(g0%1)[-1921]
(g0%2)[-1924]
(g0%2)[-1927]
(g1%2)[-1919]
(g1%2)[-1918](g1%2)[-1919](g0%2)[-1915](g0%2)[-1914]
(g1%2)[-1916]
(g0%2)[-1922]
(g1%2)[-1934]
(g0%1)[-1916](g0%1)[-1917](g0%1)[-1915](g0%1)[-1914](g0%1)[-1913](g0%1)[-1912]
(g0%1)[-1917]
(g0%1)[-1909]
(g0%2)[-1926]
(g0%2)[-1914]
(g0%1)[-1918]
(g0%2)[-1879]
(g1%2)[-1856](g1%2)[-1863]
(g0%1)[-1852]
(g0%1)[-1853]
(g0%1)[-1853]
(g0%1)[-1843](g0%1)[-1847](g0%1)[-1844]
(g0%2)[-1850]
(g1%2)[-1850]
(g0%2)[-1865]
(g0%2)[-1865]
(g0%1)[-1869]
(g0%1)[-1866](g0%1)[-1871]
(g1%2)[-1866]
(g0%2)[-1879]
(g1%2)[-1880]
(g0%2)[-1884]
(g0%1)[-1881]
(g0%1)[-1877]
(g0%2)[-1885]
(g0%1)[-1908]
(g0%2)[-1908]
(g1%2)[-1896]
(g0%2)[-1908]
(g0%2)[-1903]
(g0%2)[-1910]
(g0%1)[-1897]
(g0%2)[-1893]
(g0%1)[-1906](g0%1)[-1905](g0%1)[-1904](g0%1)[-1903](g0%1)[-1902]
(g1%2)[-1907]
(g0%2)[-1892]
(g0%1)[-1901]
(g1%2)[-1904]
(g0%2)[-1911]
(g1%2)[-1906](g0%2)[-1908](g0%2)[-1907](g1%2)[-1903]
(g0%2)[-1899]
(g0%1)[-1882]
(g0%2)[-1885]
(g0%2)[-1878]
(g0%2)[-1891]
(g0%1)[-1894]
(g0%1)[-1904]
(g0%2)[-1875]
(g0%1)[-1867]
(g0%2)[-1874]
(g0%1)[-1872]
(g1%2)[-1876]
(g0%2)[-1886]
(g1%2)[-1871]
(g1%2)[-1871]
(g0%1)[-1888]
(g0%1)[-1898]
(g0%1)[-1887]
(g0%1)[-1890]
(g0%2)[-1894]
(g0%2)[-1892]
(g0%2)[-1889]
(g0%1)[-1872]
(g0%1)[-1882]
(g0%1)[-1870]
(g0%1)[-1857]
(g0%1)[-1875]
(g0%1)[-1844]
(g0%1)[-1843]
(g0%1)[-1854]
(g0%1)[-1887]
(g0%1)[-1877]
(g0%1)[-1885]
(g0%1)[-1911]
(g0%1)[-1943]
(g0%2)[-1926]
(g0%1)[-1920]
(g0%1)[-1917](g0%1)[-1922]
(g0%1)[-1924]
(g1%2)[-1919]
(g0%2)[-1923]
(g0%1)[-1946]
(g0%1)[-1942]
(g1%2)[-1945]
(g0%2)[-1953]
(g0%1)[-1968]
(g1%2)[-1971]
(g1%2)[-1969]
(g1%2)[-1966]
(g1%2)[-1957]
(g0%2)[-1959]
(g1%2)[-1947]
(g0%2)[-1943]
(g1%2)[-1937]
(g1%2)[-1931]
(g0%1)[-1924]
(g1%2)[-1921]
(g1%2)[-1915](g0%2)[-1919](g0%2)[-1918](g1%2)[-1914]
(g0%1)[-1934](g0%1)[-1933](g0%1)[-1932](g0%1)[-1931](g0%1)[-1930]
(g1%2)[-1927]
(g0%2)[-1925]
(g0%1)[-1933]
(g1%2)[-1936]
(g0%2)[-1942]
(g0%1)[-1943]
(g0%1)[-1930]
(g0%1)[-1941](g0%1)[-1934]
(g0%1)[-1920]
(g0%1)[-1929]
(g0%1)[-1926](g0%1)[-1931]
(g0%1)[-1919]
(g0%1)[-1930]
(g0%1)[-1922]
(g0%1)[-1924]
(g1%2)[-1924]
(g1%2)[-1914]
(g1%2)[-1924]
(g1%2)[-1921]
(g0%1)[-1919]
(g0%1)[-1914]
(g0%1)[-1918]
(g0%1)[-1919]
(g0%2)[-1920]
(g1%2)[-1908]
(g0%2)[-1920]
(g1%2)[-1919]
(g0%1)[-1909]
(g1%2)[-1912]
(g1%2)[-1910]
(g0%2)[-1927]
(g1%2)[-1917]
(g0%2)[-1924]
(g1%2)[-1907]
(g1%2)[-1877]
(g1%2)[-1865]
(g0%1)[-1855]
(g0%1)[-1858]
(g1%2)[-1858]
(g1%2)[-1865](g1%2)[-1866]
(g1%2)[-1858]
(g1%2)[-1856]
(g0%1)[-1860]
(g0%1)[-1860]
(g0%1)[-1863](g0%1)[-1858]
(g1%2)[-1858]
(g0%2)[-1855]
(g1%2)[-1857]
(g0%2)[-1871]
(g0%1)[-1866]
(g1%2)[-1867]
(g0%1)[-1880]
(g0%1)[-1889]
(g0%1)[-1896]
(g0%2)[-1888]
(g1%2)[-1863]
(g0%2)[-1872]
(g0%1)[-1872]
(g0%1)[-1863]
(g0%1)[-1856]
(g0%1)[-1857]
(g0%1)[-1858]
(g0%1)[-1863]
(g1%2)[-1861]
(g0%2)[-1867](g0%2)[-1868]
(g0%1)[-1872]
(g0%1)[-1869](g0%1)[-1874]
(g0%2)[-1874]
(g1%2)[-1877]
(g0%2)[-1870]
(g0%2)[-1865]
(g0%2)[-1867]
(g0%1)[-1875]
(g0%1)[-1883]
(g1%2)[-1875]
(g1%2)[-1862]
(g0%1)[-1870]
(g0%1)[-1871]
(g0%1)[-1862]
(g0%2)[-1866]
(g1%2)[-1876]
(g1%2)[-1875]
(g0%1)[-1884]
(g0%2)[-1887]
(g0%2)[-1887]
(g0%2)[-1897]
(g0%2)[-1901]
(g1%2)[-1905]
(g0%2)[-1900]
(g0%1)[-1925]
(g0%2)[-1925]
(g1%2)[-1927]
(g1%2)[-1919]
(g0%1)[-1930](g0%1)[-1927]
(g0%1)[-1944](g0%1)[-1943]
(g0%1)[-1940]
(g0%1)[-1939]
(g0%1)[-1948]
(g0%2)[-1948]
(g1%2)[-1947]
(g0%2)[-1943]
(g1%2)[-1945]
(g0%1)[-1957]
(g0%1)[-1961]
(g1%2)[-1953]
(g0%2)[-1938]
(g1%2)[-1909]
(g1%2)[-1909]
(g1%2)[-1921]
(g0%1)[-1881]
(g1%2)[-1880]
(g1%2)[-1881]
(g1%2)[-1890]
(g0%1)[-1882]
(g0%1)[-1874]
(g0%1)[-1882]
(g0%1)[-1885]
(g0%1)[-1885]
(g0%1)[-1878]
(g1%2)[-1886]
(g1%2)[-1899]
(g0%1)[-1892]
(g0%1)[-1902](g0%1)[-1901](g0%1)[-1898]
(g0%1)[-1897]
(g0%1)[-1885]
(g1%2)[-1881]
(g0%1)[-1896]
(g0%1)[-1888]
(g0%1)[-1925]
(g0%1)[-1917]
(g0%1)[-1931]
(g0%1)[-1919]
(g0%1)[-1926]
(g1%2)[-1905]
(g0%2)[-1877]
(g1%2)[-1872]
(g0%1)[-1853](g0%1)[-1856](g0%1)[-1855](g0%1)[-1854]
(g0%1)[-1851]
(g1%2)[-1857]
(g0%1)[-1904]
(g0%2)[-1903]
(g1%2)[-1905]
(g1%2)[-1913]
(g0%1)[-1914]
(g0%1)[-1914](g0%1)[-1911]
(g0%1)[-1906]
(g0%1)[-1889]
(g0%1)[-1897]
(g1%2)[-1889]
(g0%2)[-1875]
(g0%2)[-1878]
(g0%1)[-1878](g0%1)[-1881](g0%1)[-1880](g0%1)[-1879]
(g0%1)[-1876]
(g1%2)[-1872]
(g0%1)[-1885](g0%1)[-1884](g0%1)[-1883](g0%1)[-1882](g0%1)[-1881]
(g1%2)[-1877]
(g0%2)[-1883]
(g0%1)[-1883]
(g0%2)[-1883]
(g0%1)[-1888]
(g0%1)[-1863]
(g1%2)[-1867]
(g1%2)[-1864]
(g0%1)[-1864](g0%1)[-1861](g0%1)[-1860]
(g0%1)[-1879]
(g0%1)[-1879]
(g0%1)[-1869](g0%1)[-1873](g0%1)[-1870]
(g1%2)[-1876]
(g0%1)[-1878]
(g0%2)[-1885]
(g1%2)[-1872]
(g1%2)[-1873]
(g1%2)[-1881]
(g0%1)[-1892]
(g0%1)[-1922]
(g0%1)[-1919]
(g0%2)[-1915]
(g1%2)[-1913](g1%2)[-1912](g0%2)[-1909](g0%2)[-1908]
(g0%2)[-1914]
(g0%1)[-1904](g0%1)[-1903]
(g0%1)[-1905]
(g0%1)[-1918](g0%1)[-1911](g0%1)[-1908]
(g1%2)[-1916]
(g0%1)[-1920]
(g0%1)[-1920]
(g1%2)[-1924]
(g1%2)[-1916]
(g1%2)[-1929]
(g1%2)[-1893]
(g0%1)[-1921]
(g0%1)[-1913]
(g1%2)[-1930]
(g1%2)[-1914]
(g0%1)[-1896]
(g1%2)[-1896]
(g0%2)[-1897]
(g0%1)[-1886]
(g0%2)[-1891]
(g0%2)[-1900]
(g0%2)[-1899]
(g0%1)[-1907]
(g1%2)[-1893]
(g0%1)[-1907]
(g0%2)[-1903]
(g0%2)[-1905]
(g0%2)[-1899]
(g1%2)[-1908]
(g0%2)[-1892]
(g0%2)[-1895]
(g0%1)[-1888]
(g0%2)[-1889]
(g1%2)[-1875]
(g0%2)[-1879]
(g0%2)[-1889]
(g0%2)[-1889]
(g0%2)[-1894]
(g0%2)[-1902]
(g0%1)[-1910]
(g0%1)[-1900](g0%1)[-1904](g0%1)[-1901]
(g0%1)[-1899](g0%1)[-1906]
(g0%1)[-1909]
(g0%2)[-1919]
(g0%1)[-1932]
(g0%2)[-1917]
(g0%2)[-1916]
(g0%2)[-1911]
(g0%1)[-1912]
(g0%1)[-1902](g0%1)[-1906](g0%1)[-1903]
(g0%1)[-1907]
(g0%2)[-1912]
(g0%1)[-1939]
(g0%1)[-1929]
(g0%2)[-1895]
(g0%2)[-1893]
(g0%1)[-1885]
(g0%1)[-1866]
(g0%1)[-1875]
(g0%1)[-1887]
(g1%2)[-1890]
(g1%2)[-1888]
(g1%2)[-1885]
(g0%1)[-1909]
(g0%2)[-1909]
(g0%2)[-1908]
(g0%2)[-1894]
(g0%2)[-1896]
(g0%1)[-1893](g0%1)[-1898]
(g0%1)[-1904]
(g0%1)[-1915](g0%1)[-1914](g0%1)[-1913](g0%1)[-1912](g0%1)[-1911]
(g0%1)[-1916]
(g0%2)[-1916]
(g0%1)[-1906](g0%1)[-1913]
(g1%2)[-1928]
(g0%1)[-1918]
(g0%1)[-1927]
(g0%1)[-1930](g0%1)[-1925]
(g0%1)[-1918]
(g1%2)[-1925]
(g1%2)[-1927]
(g1%2)[-1913]
(g0%2)[-1903]
(g1%2)[-1915]
(g0%2)[-1896]
(g0%1)[-1872]
(g0%1)[-1863](g0%1)[-1867](g0%1)[-1864]
(g0%1)[-1863]
(g0%1)[-1863](g0%1)[-1862]
(g0%1)[-1877]
(g0%2)[-1869]
(g0%1)[-1878]
(g0%2)[-1874]
(g0%1)[-1880]
(g0%1)[-1870]
(g0%1)[-1879]
(g0%1)[-1871]
(g0%2)[-1878]
(g1%2)[-1892]
(g0%2)[-1892]
(g1%2)[-1883]
(g0%1)[-1874](g0%1)[-1873](g0%1)[-1872](g0%1)[-1871](g0%1)[-1870](g0%1)[-1869]
(g1%2)[-1863]
(g0%1)[-1902]
(g0%1)[-1912]
(g0%1)[-1900]
(g1%2)[-1897]
(g1%2)[-1899]
(g1%2)[-1902]
(g0%1)[-1888]
(g0%1)[-1888]
(g0%1)[-1895]
(g1%2)[-1887]
(g0%2)[-1879]
(g1%2)[-1869]
(g1%2)[-1878]
(g0%1)[-1872]
(g0%1)[-1863]
(g0%2)[-1867]
(g0%2)[-1859]
(g0%1)[-1852]
(g1%2)[-1859]
(g0%1)[-1865]
(g0%1)[-1865]
(g0%2)[-1868]
(g0%2)[-1860]
(g0%1)[-1866]
(g1%2)[-1869]
(g0%2)[-1871]
(g0%1)[-1878]
(g0%1)[-1878]
(g0%2)[-1882]
(g0%1)[-1928]
(g1%2)[-1932]
(g0%1)[-1947]
(g0%2)[-1911]
(g0%1)[-1903](g0%1)[-1910]
(g1%2)[-1911]
(g0%1)[-1926](g0%1)[-1925](g0%1)[-1924](g0%1)[-1923]
(g0%2)[-1938]
(g0%1)[-1916]
(g0%1)[-1925]
(g0%1)[-1917]
(g0%2)[-1934]
(g0%2)[-1922]
(g0%1)[-1926]
(g0%2)[-1890]
(g1%2)[-1884]
(g0%1)[-1899]
(g0%2)[-1879]
(g0%1)[-1872]
(g0%1)[-1894]
(g0%1)[-1894]
(g0%1)[-1891](g0%1)[-1896]
(g0%2)[-1891]
(g0%2)[-1906]
(g1%2)[-1904]
(g1%2)[-1900]
(g0%1)[-1890]
(g0%1)[-1874]
(g0%1)[-1883]
(g0%1)[-1875]
(g1%2)[-1887]
(g0%2)[-1895]
(g0%2)[-1899]
(g1%2)[-1888](g0%2)[-1892](g0%2)[-1891](g1%2)[-1887]
(g1%2)[-1887]
(g1%2)[-1907]
(g0%1)[-1906]
(g0%1)[-1899]
(g0%2)[-1907]
(g1%2)[-1932]
(g0%2)[-1923]
(g0%1)[-1923]
(g0%1)[-1923]
(g0%1)[-1933](g0%1)[-1932](g0%1)[-1929]
(g0%1)[-1933]
(g0%1)[-1933](g0%1)[-1934]
(g0%1)[-1919]
(g0%2)[-1927]
(g0%1)[-1918]
(g0%2)[-1922]
(g0%1)[-1927]
(g0%1)[-1927]
(g0%1)[-1917](g0%1)[-1921](g0%1)[-1918]
(g1%2)[-1924]
(g0%2)[-1924]
(g0%2)[-1929]
(g1%2)[-1934](g0%2)[-1938](g0%2)[-1937](g1%2)[-1933]
(g0%2)[-1937]
(g1%2)[-1946]
(g0%1)[-1932]
(g0%1)[-1932]
(g1%2)[-1936]
(g1%2)[-1940]
(g0%1)[-1940]
(g1%2)[-1942]
(g0%2)[-1952]
(g0%2)[-1939]
(g1%2)[-1927]
(g0%2)[-1933]
(g0%1)[-1945]
(g1%2)[-1948]
(g1%2)[-1951]
(g0%2)[-1943]
(g0%2)[-1932](g1%2)[-1937](g1%2)[-1936](g0%2)[-1933]
(g1%2)[-1937]
(g1%2)[-1949]
(g0%1)[-1943]
(g0%1)[-1943]
(g1%2)[-1942]
(g1%2)[-1957]
(g0%2)[-1946]
(g0%1)[-1958]
(g0%1)[-1966]
(g0%1)[-1941]
(g0%1)[-1956]
(g0%1)[-1964]
(g0%2)[-1956]
(g0%2)[-1933]
(g0%2)[-1933]
(g0%1)[-1939]
(g0%1)[-1938]
(g0%1)[-1861]
(g0%2)[-1865]
(g0%1)[-1849]
(g1%2)[-1869]
(g0%2)[-1875]
(g1%2)[-1852]
(g1%2)[-1858]
(g1%2)[-1864]
(g0%1)[-1857]
(g1%2)[-1853]
(g0%1)[-1866](g0%1)[-1865](g0%1)[-1864](g0%1)[-1863](g0%1)[-1862]
(g1%2)[-1859]
(g0%2)[-1858]
(g0%1)[-1859]
(g0%1)[-1853]
(g1%2)[-1853]
(g1%2)[-1860](g1%2)[-1861]
(g0%1)[-1866]
(g0%1)[-1850](g0%1)[-1843]
(g0%1)[-1855]
(g0%1)[-1857]
(g0%1)[-1865]
(g0%1)[-1851]
(g1%2)[-1855]
(g0%1)[-1867]
(g1%2)[-1870]
(g0%2)[-1863]
(g0%2)[-1864]
(g0%1)[-1864]
(g1%2)[-1864]
(g0%2)[-1866]
(g0%2)[-1863]
(g0%1)[-1872](g0%1)[-1876](g0%1)[-1875]
(g1%2)[-1867]
(g0%2)[-1854]
(g0%2)[-1859]
(g0%1)[-1877]
(g0%1)[-1877]
(g0%2)[-1880]
(g1%2)[-1882](g0%2)[-1887](g0%2)[-1886](g1%2)[-1883]
(g1%2)[-1884]
(g0%2)[-1873]
(g1%2)[-1873]
(g0%2)[-1869]
(g0%2)[-1863]
(g0%2)[-1880]
(g0%1)[-1888]
(g0%2)[-1888]
(g0%2)[-1890]
(g0%1)[-1896](g0%1)[-1900](g0%1)[-1899]
(g0%2)[-1890]
(g1%2)[-1889]
(g0%2)[-1874]
(g1%2)[-1883]
(g0%1)[-1877]
(g0%1)[-1886]
(g1%2)[-1885]
(g1%2)[-1899]
(g0%1)[-1897]
(g0%2)[-1892]
(g0%1)[-1884]
(g0%1)[-1875]
(g1%2)[-1879]
(g0%2)[-1872]
(g1%2)[-1868]
(g0%1)[-1865]
(g0%1)[-1875]
(g0%1)[-1873]
(g0%1)[-1882](g0%1)[-1881](g0%1)[-1878]
(g0%1)[-1873]
(g0%2)[-1863]
(g1%2)[-1847]
(g0%1)[-1884]
(g0%1)[-1873]
(g0%2)[-1877]
(g0%2)[-1869]
(g0%1)[-1862]
(g1%2)[-1869]
(g0%1)[-1875]
(g0%1)[-1866]
(g0%2)[-1867]
(g0%2)[-1853]
(g0%2)[-1857]
(g1%2)[-1867]
(g0%2)[-1866]
(g0%1)[-1855]
(g0%1)[-1846](g0%1)[-1850](g0%1)[-1847]
(g0%1)[-1846]
(g0%1)[-1860]
(g0%1)[-1843]
(g0%1)[-1862]
(g0%1)[-1849]
(g0%2)[-1846]
(g1%2)[-1844](g1%2)[-1843](g0%2)[-1840](g0%2)[-1839]
(g1%2)[-1842]
(g0%2)[-1837]
(g1%2)[-1844]
(g1%2)[-1838]
(g0%2)[-1832]
(g1%2)[-1841]
(g0%1)[-1833]
(g0%2)[-1837]
(g0%2)[-1846]
(g1%2)[-1832]
(g1%2)[-1826](g1%2)[-1827]
(g0%1)[-1833]
(g0%1)[-1845]
(g0%1)[-1822]
(g1%2)[-1826]
(g0%2)[-1822]
(g0%1)[-1818]
(g1%2)[-1822]
(g0%2)[-1818]
(g0%1)[-1814]
(g1%2)[-1815]
(g0%1)[-1820]
(g1%2)[-1807](g1%2)[-1808]
(g0%1)[-1803]
(g0%1)[-1762]
(g0%1)[-1765](g0%1)[-1760]
(g0%1)[-1758]
(g0%2)[-1763]
(g0%2)[-1765]
(g0%2)[-1758]
(g0%1)[-1747]
(g0%1)[-1737]
(g1%2)[-1738]
(g0%1)[-1743]
(g1%2)[-1730](g1%2)[-1731]
(g0%1)[-1726]
(g1%2)[-1730]
(g1%2)[-1728]
(g0%1)[-1726]
(g1%2)[-1743]
(g1%2)[-1742]
(g0%1)[-1770]
(g0%1)[-1777]
(g1%2)[-1760]
(g0%1)[-1759]
(g1%2)[-1765]
(g0%2)[-1775]
(g1%2)[-1771]
(g1%2)[-1771]
(g1%2)[-1787]
(g0%1)[-1796]
(g1%2)[-1811]
(g0%2)[-1791]
(g0%1)[-1792]
(g1%2)[-1792]
(g0%2)[-1778]
(g1%2)[-1776]
(g1%2)[-1791]
(g1%2)[-1792]
(g0%2)[-1794]
(g1%2)[-1788]
(g0%1)[-1799]
(g1%2)[-1795]
(g1%2)[-1794](g1%2)[-1793]
(g1%2)[-1801]
(g0%2)[-1803]
(g0%2)[-1789]
(g0%2)[-1811]
(g0%1)[-1803]
(g0%1)[-1809]
(g1%2)[-1805]
(g0%1)[-1818](g0%1)[-1817](g0%1)[-1816](g0%1)[-1815](g0%1)[-1814]
(g0%2)[-1812]
(g1%2)[-1804]
(g1%2)[-1812]
(g0%2)[-1801]
(g1%2)[-1812]
(g0%1)[-1819]
(g0%2)[-1815]
(g1%2)[-1813](g1%2)[-1812](g0%2)[-1809](g0%2)[-1808]
(g0%1)[-1824](g0%1)[-1828](g0%1)[-1827](g0%1)[-1826](g0%1)[-1825]
(g1%2)[-1829]
(g1%2)[-1817]
(g0%1)[-1820]
(g0%1)[-1827]
(g0%1)[-1804]
(g0%2)[-1800]
(g0%2)[-1808]
(g0%2)[-1807]
(g0%1)[-1818](g0%1)[-1817](g0%1)[-1816](g0%1)[-1815](g0%1)[-1814](g0%1)[-1813]
(g0%2)[-1803]
(g0%1)[-1795]
(g0%1)[-1794]
(g0%1)[-1803]
(g0%2)[-1799]
(g0%2)[-1799]
(g1%2)[-1793]
(g1%2)[-1800]
(g0%2)[-1799]
(g0%2)[-1799]
(g0%1)[-1791]
(g0%1)[-1791]
(g0%1)[-1801](g0%1)[-1800](g0%1)[-1797]
(g0%1)[-1796]
(g0%2)[-1791]
(g1%2)[-1804]
(g0%1)[-1796]
(g0%1)[-1796]
(g0%1)[-1799](g0%1)[-1794]
(g1%2)[-1799]
(g1%2)[-1792](g1%2)[-1791](g0%2)[-1788](g0%2)[-1787]
(g1%2)[-1792]
(g0%2)[-1803]
(g0%2)[-1787]
(g0%1)[-1806]
(g0%1)[-1796](g0%1)[-1800](g0%1)[-1797]
(g0%1)[-1801]
(g0%2)[-1806]
(g0%2)[-1791]
(g0%1)[-1794]
(g0%1)[-1794]
(g0%1)[-1785]
(g1%2)[-1782]
(g1%2)[-1784]
(g1%2)[-1776]
(g0%1)[-1787]
(g0%1)[-1779]
(g0%1)[-1770]
(g0%1)[-1763]
(g1%2)[-1770]
(g1%2)[-1778]
(g0%1)[-1793]
(g0%2)[-1796]
(g0%2)[-1799]
(g0%2)[-1794]
(g1%2)[-1806]
(g1%2)[-1791]
(g0%1)[-1812]
(g0%1)[-1812]
(g1%2)[-1815]
(g1%2)[-1807]
(g0%2)[-1820]
(g0%1)[-1805]
(g0%2)[-1823]
(g0%2)[-1819]
(g0%1)[-1817]
(g0%1)[-1820](g0%1)[-1815]
(g1%2)[-1815]
(g1%2)[-1808]
(g0%2)[-1820]
(g0%2)[-1822]
(g1%2)[-1814]
(g0%2)[-1807]
(g0%1)[-1788]
(g0%1)[-1787]
(g0%1)[-1796]
(g0%1)[-1806]
(g0%2)[-1756]
(g0%1)[-1751]
(g0%1)[-1762]
(g0%1)[-1762]
(g0%2)[-1758]
(g0%2)[-1760]
(g1%2)[-1743]
(g0%2)[-1745](g0%2)[-1746]
(g0%1)[-1751]
(g0%1)[-1781]
(g0%2)[-1777]
(g0%2)[-1785]
(g0%2)[-1784]
(g1%2)[-1782]
(g0%1)[-1778]
(g0%1)[-1793]
(g0%1)[-1802]
(g0%2)[-1798]
(g0%2)[-1795]
(g1%2)[-1795]
(g0%1)[-1813]
(g0%2)[-1823]
(g0%1)[-1812]
(g0%2)[-1808]
(g1%2)[-1801]
(g0%1)[-1770](g0%1)[-1774](g0%1)[-1771]
(g0%2)[-1776]
(g1%2)[-1787](g1%2)[-1786](g1%2)[-1785](g0%2)[-1784](g0%2)[-1783](g0%2)[-1782]
(g0%1)[-1798]
(g1%2)[-1809]
(g0%2)[-1809]
(g0%1)[-1742]
(g0%1)[-1735]
(g0%2)[-1742]
(g0%2)[-1750]
(g0%1)[-1765]
(g1%2)[-1765]
(g1%2)[-1756]
(g1%2)[-1757]
(g0%1)[-1755](g0%1)[-1754](g0%1)[-1753](g0%1)[-1752](g0%1)[-1751](g0%1)[-1750]
(g1%2)[-1759]
(g1%2)[-1764]
(g0%1)[-1763]
(g1%2)[-1767]
(g0%2)[-1771]
(g0%2)[-1781]
(g0%1)[-1783]
(g0%1)[-1778](g0%1)[-1777]
(g0%1)[-1775]
(g0%1)[-1777](g0%1)[-1775]
(g0%1)[-1737](g0%1)[-1738](g0%1)[-1736](g0%1)[-1735](g0%1)[-1734](g0%1)[-1733]
(g0%1)[-1733]
(g0%2)[-1729]
(g0%1)[-1721]
(g0%1)[-1730]
(g1%2)[-1733]
(g1%2)[-1729](g0%2)[-1734](g0%2)[-1733](g1%2)[-1730]
(g1%2)[-1741]
(g0%2)[-1738]
(g0%1)[-1737]
(g0%1)[-1733](g0%1)[-1729]
(g0%1)[-1717]
(g0%1)[-1717]
(g0%1)[-1720](g0%1)[-1715]
(g0%2)[-1715]
(g1%2)[-1710]
(g1%2)[-1715]
(g1%2)[-1730]
(g1%2)[-1706]
(g1%2)[-1711]
(g0%2)[-1719]
(g1%2)[-1706]
(g0%1)[-1707]
(g1%2)[-1706]
(g0%1)[-1701]
(g1%2)[-1707]
(g1%2)[-1717]
(g0%1)[-1731]
(g0%2)[-1728]
(g0%2)[-1728]
(g0%2)[-1735]
(g1%2)[-1729]
(g0%2)[-1720]
(g0%2)[-1726]
(g0%1)[-1728]
(g0%1)[-1746]
(g0%1)[-1746]
(g0%1)[-1743](g0%1)[-1748]
(g0%1)[-1736]
(g0%1)[-1746](g0%1)[-1756](g0%1)[-1749]
(g1%2)[-1746]
(g0%2)[-1739]
(g1%2)[-1729]
(g0%1)[-1748]
(g0%2)[-1744]
(g1%2)[-1750]
(g0%1)[-1747]
(g0%2)[-1748]
(g1%2)[-1736]
(g0%1)[-1744]
(g0%2)[-1753]
(g0%2)[-1761]
(g0%1)[-1737]
(g0%1)[-1729]
(g1%2)[-1741]
(g0%2)[-1734]
(g1%2)[-1738]
(g0%2)[-1744]
(g0%1)[-1762]
(g0%1)[-1759](g0%1)[-1764]
(g0%2)[-1759]
(g1%2)[-1756]
(g1%2)[-1773]
(g0%2)[-1771]
(g0%2)[-1767]
(g0%1)[-1760]
(g0%2)[-1757]
(g0%2)[-1759]
(g0%2)[-1744]
(g0%2)[-1747]
(g1%2)[-1742]
(g1%2)[-1740]
(g0%1)[-1741]
(g0%2)[-1737]
(g0%2)[-1696](g1%2)[-1701](g1%2)[-1700](g0%2)[-1697]
(g0%1)[-1697]
(g0%1)[-1706]
(g0%1)[-1699]
(g0%1)[-1702]
(g0%1)[-1697]
(g0%1)[-1702](g0%1)[-1701](g0%1)[-1698]
(g0%1)[-1693]
(g0%1)[-1690]
(g0%1)[-1685]
(g0%1)[-1689]
(g1%2)[-1689]
(g0%2)[-1683](g1%2)[-1687](g1%2)[-1686](g0%2)[-1682]
(g1%2)[-1678]
(g0%2)[-1677]
(g0%2)[-1699]
(g0%1)[-1686]
(g0%1)[-1686]
(g0%2)[-1689]
(g0%1)[-1673]
(g0%2)[-1694]
(g0%1)[-1705]
(g0%1)[-1699]
(g0%1)[-1712]
(g0%1)[-1723]
(g1%2)[-1727]
(g0%2)[-1738]
(g0%1)[-1732]
(g0%1)[-1752]
(g1%2)[-1755]
(g0%1)[-1740]
(g1%2)[-1737]
(g0%1)[-1746](g0%1)[-1750](g0%1)[-1749](g0%1)[-1748](g0%1)[-1747]
(g1%2)[-1751]
(g0%2)[-1738]
(g1%2)[-1726]
(g0%1)[-1718]
(g0%2)[-1722]
(g1%2)[-1732]
(g0%2)[-1717]
(g1%2)[-1732]
(g0%1)[-1729](g0%1)[-1738](g0%1)[-1737](g0%1)[-1730]
(g1%2)[-1736]
(g0%1)[-1738]
(g0%1)[-1747](g0%1)[-1746](g0%1)[-1743]
(g1%2)[-1740]
(g0%2)[-1726]
(g1%2)[-1729]
(g0%1)[-1745]
(g1%2)[-1740]
(g0%2)[-1736]
(g1%2)[-1748]
(g0%1)[-1743]
(g0%2)[-1739]
(g0%2)[-1730]
(g1%2)[-1740]
(g0%1)[-1816]
(g1%2)[-1813]
(g0%2)[-1813](g1%2)[-1817](g1%2)[-1816](g0%2)[-1812]
(g0%2)[-1803]
(g0%2)[-1814]
(g0%1)[-1814](g0%1)[-1815]
(g0%1)[-1855]
(g0%1)[-1847]
(g0%1)[-1861]
(g0%1)[-1849]
(g0%1)[-1856]
(g1%2)[-1920]
(g1%2)[-1922]
(g0%1)[-1930]
(g1%2)[-1933]
(g1%2)[-1931]
(g1%2)[-1939]
(g0%1)[-1939]
(g0%1)[-1946]
(g1%2)[-1944]
(g1%2)[-1952]
(g0%1)[-1951]
(g0%1)[-1961](g0%1)[-1960](g0%1)[-1957]
(g0%1)[-1956]
(g1%2)[-1959]
(g1%2)[-1965]
(g0%1)[-1943]
(g0%1)[-1951]
(g0%1)[-1958]
(g0%1)[-1968](g0%1)[-1967](g0%1)[-1964]
(g1%2)[-1961]
(g1%2)[-1966]
(g0%2)[-1971](g0%2)[-1978]
(g0%1)[-1940]
(g0%2)[-1939]
(g0%2)[-1936]
(g0%2)[-1935]
(g0%1)[-1945]
(g0%1)[-1936]
(g0%1)[-1944]
(g0%2)[-1936]
(g1%2)[-1923]
(g0%1)[-1921]
(g0%1)[-1913]
(g0%2)[-1938]
(g0%1)[-1940]
(g0%1)[-1941]
(g0%1)[-1941]
(g1%2)[-1944]
(g0%2)[-1940]
(g0%1)[-1927]
(g0%1)[-1915]
(g0%1)[-1922]
(g0%1)[-1936]
(g0%2)[-1940]
(g1%2)[-1942](g0%2)[-1947](g0%2)[-1946](g1%2)[-1943]
(g0%2)[-1932]
(g0%2)[-1926]
(g1%2)[-1921]
(g1%2)[-1907]
(g0%1)[-1950]
(g0%1)[-1941]
(g0%1)[-1949]
(g1%2)[-1941]
(g1%2)[-1933]
(g1%2)[-1917]
(g0%2)[-1914]
(g0%2)[-1925]
(g0%1)[-1939]
(g0%1)[-1939]
(g1%2)[-1936]
(g0%2)[-1936](g1%2)[-1940](g1%2)[-1939](g0%2)[-1935]
(g0%2)[-1936]
(g1%2)[-1931]
(g0%1)[-1926](g0%1)[-1925](g0%1)[-1924](g0%1)[-1923](g0%1)[-1922](g0%1)[-1921]
(g0%1)[-1914]
(g0%1)[-1919]
(g1%2)[-1920]
(g0%2)[-1908]
(g0%1)[-1899]
(g1%2)[-1920]
(g1%2)[-1917]
(g0%1)[-1909]
(g0%1)[-1909]
(g1%2)[-1912]
(g1%2)[-1912]
(g0%2)[-1919]
(g0%2)[-1919]
(g0%1)[-1899](g0%1)[-1904](g0%1)[-1903](g0%1)[-1902](g0%1)[-1901](g0%1)[-1900]
(g0%2)[-1907]
(g0%1)[-1918]
(g0%2)[-1914]
(g0%2)[-1906]
(g0%2)[-1902]
(g0%2)[-1898]
(g1%2)[-1888]
(g1%2)[-1903]
(g0%1)[-1894]
(g0%1)[-1929]
(g0%2)[-1925]
(g0%2)[-1925]
(g1%2)[-1919]
(g1%2)[-1926]
(g0%2)[-1925]
(g0%2)[-1918]
(g1%2)[-1921](g1%2)[-1920]
(g0%1)[-1916]
(g0%1)[-1926](g0%1)[-1925](g0%1)[-1922]
(g0%1)[-1926]
(g0%2)[-1922]
(g0%2)[-1912]
(g0%2)[-1899]
(g0%2)[-1914]
(g0%1)[-1905]
(g0%1)[-1925]
(g1%2)[-1921]
(g1%2)[-1929]
(g1%2)[-1928]
(g0%2)[-1927]
(g0%1)[-1927]
(g0%1)[-1928]
(g0%1)[-1928]
(g0%1)[-1938]
(g0%1)[-1903]
(g0%1)[-1902]
(g0%1)[-1911]
(g0%1)[-1918]
(g0%2)[-1901]
(g0%2)[-1917]
(g0%1)[-1936]
(g0%1)[-1936]
(g1%2)[-1939]
(g1%2)[-1947]
(g1%2)[-1943]
(g0%1)[-1935]
(g0%1)[-1935]
(g0%1)[-1938](g0%1)[-1933]
(g0%1)[-1924]
(g0%1)[-1931]
(g0%1)[-1928]
(g0%1)[-1914]
(g0%1)[-1936]
(g0%1)[-1932]
(g0%1)[-1923]
(g0%1)[-1916]
(g0%1)[-1914]
(g0%2)[-1931]
(g0%1)[-1918]
(g1%2)[-1897]
(g1%2)[-1912]
(g0%1)[-1903]
(g0%1)[-1917]
(g0%1)[-1917]
(g0%2)[-1914]
(g1%2)[-1912](g1%2)[-1911](g0%2)[-1908](g0%2)[-1907]
(g0%2)[-1922]
(g0%2)[-1926]
(g0%1)[-1929](g0%1)[-1932](g0%1)[-1931](g0%1)[-1930]
(g0%1)[-1908](g0%1)[-1907](g0%1)[-1906](g0%1)[-1905]
(g0%1)[-1897]
(g0%2)[-1893]
(g1%2)[-1885]
(g0%2)[-1912]
(g1%2)[-1900]
(g0%1)[-1905]
(g0%1)[-1901](g0%1)[-1898](g0%1)[-1897]
(g0%1)[-1885]
(g1%2)[-1882]
(g0%2)[-1880](g0%2)[-1879](g1%2)[-1876](g1%2)[-1875]
(g1%2)[-1890]
(g1%2)[-1886]
(g0%2)[-1872]
(g0%2)[-1877]
(g0%2)[-1884](g1%2)[-1887](g1%2)[-1886](g1%2)[-1885](g0%2)[-1883](g0%2)[-1882]
(g1%2)[-1922]
And this is what I should check first ...especially the two places with %4 ...

Here is current approximate plan / or rather base for planning of stack bottom mod 8 positioning ... but it could be wrong as it depends on the previous step ... and I should carefully check the phase would be OK. ... As we do not have all phase mod 8 disance mod 8 emissions, we have to reposition the bottom mod 8 several times.

Code: Select all

(block_right_r)[-2508] --with (g2%4) could have be problem, but there is no such there are just (g1%4) and (g3%4)
<4>
(g2%8)[-2518 2] 0246
(g1%8)[-2551 1] 0 46
<4><6>(~-2500-2463)
(g5%8)[-1922 6] 0 46
(g1%8)[-1925 3]  246
(g5%8)[-2162 6] 0 46
(g2%8)[-2192 6] 0246
(g5%8)[-2185 7]  246

(g1%8)[-2105 7] 02 6
(g5%8)[-2100 4] 02 6
(g6%8)[-2071 1]  246
(g5%8)[-2013 3] 02 6
(g2%8)[-1802 6] 0246
(g1%8)[-1882 6] 02 6
(g2%8)[-1884 4] 0246
(g0%8)[-1843 5]  246
(g4%8)[-1964 4] 0 46
(g0%8)[-1981 3] 0 46
<4><6><2>(~-2049)
(g0%8)[-1844 4] 024
(g7%8)[-1769 7] 0246
(g0%8)[-1859 5]  246
(g2%8)[-2019 5] 0246
(g6%8)[-1988 2] 02 6
(g1%8)[-1931 5] 024
(g1%8)[-2003 5] 024
<4><6>
(g0%8)[-2439 1] 02 6
<4>
(g5%8)[-2601 7]  246 OK
(g4%8)[-2577 7] 0246
(g0%8)[-2472 7] 024
(g7%8)[-2436 4] 0 4
(g4%8)[-2420 4] 0 46
(g4%8)[-2380 4] 0 46
(g4%8)[-2370 6]  246
(g0%8)[-2461 3] 0 46
(g4%8)[-2488 0] 024
(g0%8)[-2509 3] 0 46
(g1%8)[-2404 4] 024
(g3%8)[-2294 2] 0246
(g4%8)[-2453 3] 0246
(g5%8)[-2504 0]  246
<4><0>(~2481)
(g1%8)[-2393 7] 02 6
(g3%8)[-2475 5] 02 6
<4>
(g1%8)[-2492 4] 024
(g2%8)[-2501 3] 0246
(g7%8)[-1847 1] 0246
(g2%8)[-1868 4] 0246
(g0%8)[-1924 4] 024
(g1%8)[-1991 1] 0 46
(g6%8)[-2007 1]  246
(g3%8)[-2102 2] 0246
(g3%8)[-2093 3] 024
(g1%8)[-2052 4] 024
T<(3 jumps)>
<3 jumps>
Here are current commented starting bits (wrongly p8 synced...) bottom <4> portion ... before the first push of <6> (but the push of <6> could be earlier if it would be more efficient) ... it corresponds just to first 2 rows of %8 planning. But I am not planning to change positioning of the starting block :).

Code: Select all

[S]--0
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[S-28]3
211211D --[SD-28]4
211211S211211D--[SDSD-28]5
       211211S211211D211211D211211B2112S 212221121121122112111211221121111121112111211111122 111 --[SPBDDSDSD-28]>[T6S26I4SDSD-28]>[S30SDSD-28]8
 211211D211211D211211S211211D21 2111211211211211111211211211221121121211211221111121211112R1--[B6d6DSDD30SDSD-28]>[R30][SDSD-28]10

 D211211S211211S211211D211211#211211B211211B211211S211211B2112 2211221111121211222112111222111111 --(g7%8)[2417](17 7)<2400(104)[S##]>[SDS]>[SDS]>[PDBSBB#DSSDS]>(######)[#DSSDS](+0)
 111D211211S211211S211211B211211D2112111 21111211111122121112111111121111111212211112 --(g2%8)[2415](15 2)<2400(190)[######]>[#DSSDS]>[#DSSDS]>[SPDBSSDSSDS]>(T18T18T6S#####)[T18T18T6SDSSDS](+0)
2111 D211211B211211D211211D211211D2112 21111121121122211211211211111211121211222222111211 --(g1%8)[2413](13 1)<2400(274)[T18T18T6S#####]>[T18T18T6SDSSDS]>[SDSSDS]>[PDDDDBDSSDS]>(S6d6B#####)[S6d6BDSSDS](+0)
21212 D211211D211211E211121111111211121121 2111112111211 --(g0%8)[2414](38 0)<2376(329)[S6d6B#####]>[S6d6BDSSDS]>[SDSSDS]>[T6SPDSSDS]>(T6S##)[T6SDS](+0)
11 D211211S211211D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122112 --(g5%8)[2411](27 5)<2384(426)[T6S##]>[T6SDS]>[SDS]>[S6d6BDBDDDSDS]>(1B####)[1BDSDS](+0)
 D211211D211211S211211D211211S211211S211211D21 22 --(g3%8)[2402](10 3)<2392(475)[1B####]>[1BDSDS]>[SDSDS]>[B6d6DSSDSDDSDS]>(#####)[DDSDS](+0)
 111D211211B211211D211211D211211B211211D21 22121121121121121121121122112112122112112111221111111111111112 --(g3%8)[2400](24 3)<2376(576)[#####]>[DDSDS]>[DDSDS]>[B6d6DBDDBDSDS]>(S##)[SDS](+0)
 D211211#211211#211211S211211D211211S211211S211211D21 22 --(g3%8)[2394](10 3)<2384(631)[S##]>[SDS]>[SDS]>[B6d6DSSDS##DS]>(####)[##DS](+0)
 111B211211S211211D211211D211211S211211D21 2221121121111121121121122112222 --(g6%8)[2397](29 6)<2368(705)[####]>[##DS]>[##DS]>[B6d6DSDDSBDS]>(##)[DS](+0)
 111211211D211211D211211D211211D211211D211211D2112 2211211212111112111211122121222112112112112111112111211121111112 --(g6%8)[2404](20 6)<2384(812)[##]>[DS]>[DS]>[PDDDDDDDS]>(T18T6SD###)[T18T6SDDDS](+0)
21 D211211B211 1112112121121111211211211211121121121121121122221122 --(g3%8)[2405](37 3)<2368(877)[T18T6SD###]>[T18T6SDDDS]>[SDDDS]>[S6d6BDDDS]>(DDB##)[DDBDS](+0)
11212 D211211D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122112 --(g5%8)[2403](27 5)<2376(968)[DDB##]>[DDBDS]>[SDS]>[S6d6BDBDDDDS]>(1B###)[1BDDS](+0)
 #211211#211211B211211B211211S211211B2112 2211221111121211222112111222111111 --(g7%8)[2401](17 7)<2384(1045)[1B###]>[1BDDS]>[SDDS]>[PDBSBB##DS]>(####)[##DS](+0)
 111#211211B211211B211211S211211B2112 2211221111121211222112111222111111 --(g7%8)[2393](17 7)<2376(1119)[####]>[##DS]>[##DS]>[PDBSBB#DS]>(###)[#DS](+0)
 111D211211D211211D211211D211211D2112 2211211212111112111211122121222112112112112111112111211121111112 --(g6%8)[2396](20 6)<2376(1214)[###]>[#DS]>[#DS]>[PDDDDDDS]>(T18T6SD##)[T18T6SDDS](+0)
21 D211211D211211S211211D21 2221111121112111111111111211121111112 --(g0%8)[2393](33 0)<2360(1276)[T18T6SD##]>[T18T6SDDS]>[SDDS]>[B6d6DSDDDS]>(1T6S)[1T6S]
1 211211D211211#211211#211211B211211B211211S211211B2112 2211221111121211222112111222111111 --(g7%8)[2393](17 7)<2376(1366)[1T6S]>[1T6S]>[S]>[PDBSBB##D]>(###)[##D](+0)
 111D211211D211211B211 1112112121121111211211211211121121121121121122221122 --(g3%8)[2397](37 3)<2360(1438)[###]>[##D]>[##D]>[S6d6BDDD]>(DDB#)[DDBD](+0)
11212 D211211D211211S211211D211211S211211S211211B211211D2112111 21111211111122121112111111121111111212211112 --(g2%8)[2407](15 2)<2392(1547)[DDB#]>[DDBD]>[SD]>[SPDBSSDSDD]>(T18T18T6S####)[T18T18T6SDSDD](+0)
2111 S211211D211211#211211S211211D211211S211211S211211D21 22 --(g3%8)[2410](10 3)<2400(1609)[T18T18T6S####]>[T18T18T6SDSDD]>[SDSDD]>[B6d6DSSDS#DSSDD]>(######)[#DSSDD](+0)
 111D211211S211211D211211S211211S211211D21 22 --(g3%8)[2402](10 3)<2392(1655)[######]>[#DSSDD]>[#DSSDD]>[B6d6DSSDSDSSDD]>(#####)[DSSDD](+0)
 111211211D211211D211211E211121111111211121121 2111112111211 --(g0%8)[2414](38 0)<2376(1714)[#####]>[DSSDD]>[DSSDD]>[T6SPDSSDD]>(T6S##)[T6SDD](+0)
11 S211211D211211D211211D211211D211211D211211D211211D211211D2112 2211111211221122111121112111211111112121211211211211112112112112121222 --(g6%8)[2402](10 6)<2392(1841)[T6S##]>[T6SDD]>[SDD]>[PDDDDDDDDDSD]>(1P#####)[1PDDDSD](+0)
 1D211211D2112 2112112211111112112112121121121121122112112122112112121121112111112 --(g1%8)[2390](22 1)<2368(1919)[1P#####]>[1PDDDSD]>[BDDDSD]>[PDDDDDSD]>(T6S#)[T6SD](+0)
11 B211211S  --<2352(1932)[T6S#]>[T6SD]>[SD]>[SSB]>(SSB)[SSB]
--[SSBD-28]70
              211211S211211S211211D211211B211 11221121121111121121121111111121121111122111--[S6d6BDSSSBD-28]>[S36SBD-28]72
 211211S--[SS36SBD-28]73
 211211D211211D211211D2112 211211212211211121122L1--[PDDDDS36SBD-28]>[LS36SBD-28]
 211211D211211D211211S211211D21 2111211211211211111211211211221121121211211221111121211112R1--[L-28B6d6DSDD36SBD-28][LR36SBD-28]77
              211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[LR24+28*2S-28*2]79
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[LR24+28*3S-28*3]81
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*4]83
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*5]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*6]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*7]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*8]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*9]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*10]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*11]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*12]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*13]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*14]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*15]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*16]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*17]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*18]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*19]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*20]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*21]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*22]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*23]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*24]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*25]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*26]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*27]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*28]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*29]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*30]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*31]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*32]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*33]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*34]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*35]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*36]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*37]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*38]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*39]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*40]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*41]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*42]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*43]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*44]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*45]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*46]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*47]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*48]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*49]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*50]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*51]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*52]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*53]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*54]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*55]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*56]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*57]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*58]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*59]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*60]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*61]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*62]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*63]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*64]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*65]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*66]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*67]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*68]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*69]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*70]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*71]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*72]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*73]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*74]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*75]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*76]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*77]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*78]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*79]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*80]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*81]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*82]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*83]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*84]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*85]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*86]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*87]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*88]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*89]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*90]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*91]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*92]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*93]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*94]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*95]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*96]
211211D211211B211211D211211B211 11212112112112112112112112112211111211221111211211221122221221121121121121121111121122121121211211221112111211221--[..S-28*97]269 X=364 Y=?

211211#211211#211211#211211#211211# 211211D211211D211211D211211D211211D211211S211211D21 211111111211211211221121121111121111122 11--[LR2700SDDDDD-2716]>[..B6d6DSDDDDD#####-2716]>[..S22t36#####-2716]>[..S58#####-2716]273 6
211211D211211D211211S211211D21 2111211211211211111211211211221121121211211221111121211112R 1--[..B6d6DSDD58#####-2716]>[LR265018I40#####-2716]>[LR2650R58#####-2716]276 9

         111D211211D211211D211211D211211D211211D211211S211211D211211B211211D211211D211211D2112 21111121121122211211211211111211121211222222111211 --(g1%8)[213+Y](13 1)<200(128)[########]>[DD######]>[DD######]>[..PDDDDBDSDDDD#####-2716]>(S6d6B##############)[S6d6BDSDDDDDD######](+0)
  112122112112112112111111121112111122121121121112222111 --(g7%8)[211+Y](43 7)<168(182)[S6d6B##############]>[S6d6BDSDDDDDD######]>[S6d6BDSDDDDDD######]>[S6d6BDSDDDDDD###]>(########)[DDDDD###](+0)
 111D211211D211211D211211D211211#211211B211211B211211S211211B2112 2211221111121211222112111222111111 --(g7%8)[209+Y](17 7)<192(280)[###########]>[DDDDD######]>[DDDDD######]>[PDBSBB#DDDDDDD######]>(##############)[#DDDDDDD######](+0)
 111D211211#211211#211211S211211D211211S211211S211211D21 22 --(g3%8)[210+Y](10 3)<200(338)[##############]>[#DDDDDDD######]>[#DDDDDDD######]>[B6d6DSSDS##DDDDDDD######]>(###############)[##DDDDDDD######](+0)
 111S211211S211211B211211D2112111 21111211111122121112111111121111111212211112 --(g2%8)[207+Y](15 2)<192(418)[###############]>[##DDDDDDD######]>[##DDDDDDD######]>[SPDBSSDDDDDDD######]>(T18T18T6S#############)[T18T18T6SDDDDDDD######](+0)
2111 D211211S211211D211211S211211S211211D21 22 --(g3%8)[194+Y](10 3)<184(465)[T18T18T6S#############]>[T18T18T6SDDDDDDD######]>[SDDDDDDD######]>[B6d6DSSDSDDDDDDD######]>(#############)[DDDDDDD######](+0)
 111D211211B211211D211211B211 1121211112112111121121121121111112112122112 --(g5%8)[187+Y](27 5)<160(536)[#############]>[DDDDDDD######]>[DDDDDDD######]>[S6d6BDBDDDDDD######]>(1B##########)[1BDDDD######](+0)
 D211211D211211D211211D211211S211211D21 211121111112211122111211211211211211211211211112111121122212 --(g4%8)[184+Y](40 4)<144(631)[1B##########]>[1BDDDD######]>[SDDDD######]>[B6d6DSDDDDDDD######]>(########)[DD######](+0)
 111D211211D211211D211211#211211#211211S211211D211211S211211S211211D21 22 --(g3%8)[178+Y](10 3)<168(701)[########]>[DD######]>[DD######]>[B6d6DSSDS##DDD######]>(###########)[##DDD######](+0)
 111B211211D211211D211211D2112 21111121121122211211211211111211121211222222111211 --(g1%8)[173+Y](13 1)<160(778)[###########]>[##DDD######]>[##DDD######]>[PDDDDBDDD######]>(S6d6B#########)[S6d6BDDD######](+0)
2 11D211211B211 11212111121121111211211211211211211211211112111121122112111212 --(g2%8)[188+Y](52 2)<136(854)[S6d6B#########]>[S6d6BDDD######]>[PDBDDD######]>[S6d6BDBDDD######]>(#######)[D######](+0)
 111#211211D211211D211211D211211D211211D211211D211211#211211S211211D211211S211211S211211D21 22 --(g3%8)[194+Y](10 3)<184(942)[#######]>[D######]>[D######]>[B6d6DSSDS#DDDDDD######]>(#############)[#DDDDDD######](+0)300
 111D211211S211211D211211S211211S211211D21 22 --(g3%8)[186+Y](10 3)<176(988)[#############]>[#DDDDDD######]>[#DDDDDD######]>[B6d6DSSDSDDDDDD######]>(############)[DDDDDD######](+0)
 111B211 11111221221121121121121111121221121121121121122111112111222 --(g3%8)[182+Y](46 3)<136(1055)[############]>[DDDDDD######]>[DDDDDD######]>[S6d6BDDDD######]>(#######)[D######](+0)
 111#211211D211211D211211D211211B211 1112112121121111211211211211121121121121121122221122 --(g3%8)[173+Y](37 3)<136(1139)[#######]>[D######]>[D######]>[S6d6BDDD######]>(DDB#######)[DDBD######](+0)
11212 D211211S211211B211211D211211D211211D2112 21121122111111121121121211211211111211211222111211121111111211111112 --(g6%8)[183+Y](39 6)<144(1251)[DDB#######]>[DDBD######]>[SD######]>[PDDDDBSD######]>(1T18T18T6S###)[1T18T18T6SD###](+0)
211 #  --<56(1254)[1T18T18T6S#######]>[1T18T18T6SD######]>[SD####-2716]>[S#######]>(S#######)[S#######][X#######S]
211211# S211211S211211B2112 2211212112112211111212111211121111 --[..PDBSS####-2716]>[..H6T16T6S####-2716]315

11111112 --[..H6(T18)^1T16T6S####-2716]316
11111112 --[..H6(T18)^2T16T6S####-2716]317
11111112 --[..H6(T18)^*T16T6S####-2716]315+*=318
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111112 --[..H6(T18)^*T16T6S####-2716]315+*=383
--11111112 --[..H6(T18)^*T16T6S####-2716]315+*
--11111112 --[..H6(T18)^*T16T6S####-2716]315+*
--11111112 --[..H6(T18)^*T16T6S####-2716]315+*
--11111112 --[..H6(T18)^*T16T6S####-2716]315+*
11111111111 11111111111 --[..h4t20(T18)^68T16T6S####-2716]>[..H6(T18t20)^1(T18)^68T16T6S####-2716]385
11111111111 11111111111 --[..h4t20(T18t20)^1(T18)^68T16T6S####-2716]>[LR1380H6(T18t20)^2(T18)^68T16T6S####-2716]387
111212212221111221121221121121121121121121121121121122211111211211121211211211211111122221121222211121121121121121121111122111211211211211211211211211111111212121 --[..D6d24(T18t20)^2(T18)^68T16T6S####-2716]388
S211# --[S#26(T18t20)^2(T18)^68T16T6S####-2716]389
211211#211211#211211S 211211D211211D211211B2112S 212221121121122112111211221121111121112111211111122 111 --[...1250##SDDBPS]>[...1250##S4I26S6T]>[...1250##S30S]
 211211D211211D211211S211211D21 2111211211211211111211211211221121121211211221111121211112R1 --[...1250##S30DDSD6d6B]>[1296R][...1250##S]
 D211211S211211S211211D211211#211211B211211B211211S211211B2112 2211221111121211222112111222111111 --(g7%8)[1315](17 7)<1298(101)[S##]>[SDD]>[SDD]>[PDBSBB#DSSDD]>(######)[#DSSDD](+0)
 111D211211S211211S211211B211211D2112111 21111211111122121112111111121111111212211112 --(g2%8)[1313](15 2)<1298(187)[######]>[#DSSDD]>[#DSSDD]>[SPDBSSDSSDD]>(T18T18T6S#####)[T18T18T6SDSSDD](+0)
2111 D211211B211211D211211D211211D2112 21111121121122211211211211111211121211222222111211 --(g1%8)[1311](13 1)<1298(271)[T18T18T6S#####]>[T18T18T6SDSSDD]>[SDSSDD]>[PDDDDBDSSDD]>(S6d6B#####)[S6d6BDSSDD](+0)
21212 D211211D211211E211121111111211121121 2111112111211 --(g0%8)[1312](38 0)<1274(326)[S6d6B#####]>[S6d6BDSSDD]>[SDSSDD]>[T6SPDSSDD]>(T6S##)[T6SDD](+0)
11 D211211S211211D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122112 --(g5%8)[1309](27 5)<1282(423)[T6S##]>[T6SDD]>[SDD]>[S6d6BDBDDDSDD]>(1B####)[1BDSDD](+0)
 D211211D211211S211211D211211S211211S211211D21 22 --(g3%8)[1300](10 3)<1290(472)[1B####]>[1BDSDD]>[SDSDD]>[B6d6DSSDSDDSDD]>(#####)[DDSDD](+0)
 111D211211B211211D211211D211211B211211D21 22121121121121121121121122112112122112112111221111111111111112 --(g3%8)[1298](24 3)<1274(573)[#####]>[DDSDD]>[DDSDD]>[B6d6DBDDBDSDD]>(S##)[SDD](+0)
 D211211D211211S211211S211211B211211D2112111 21111211111122121112111111121111111212211112 --(g2%8)[1297](15 2)<1282(662)[S##]>[SDD]>[SDD]>[SPDBSSDDD]>(T18T18T6S###)[T18T18T6SDDD](+0)
2111 #211211#211211S211211D211211S211211S211211D21 22 --(g3%8)[1292](10 3)<1282(715)[T18T18T6S###]>[T18T18T6SDDD]>[SDDD]>[B6d6DSSDS##DD]>(####)[##DD](+0)
 111S211211S211211D211211D211211E211121111111211121121 2111112111211 --(g0%8)[1312](38 0)<1274(786)[####]>[##DD]>[##DD]>[T6SPDSSDD]>(T6S##)[T6SDD](+0)
11 D211211D211211#211211#211211S211211D211211S211211S211211D21 22 --(g3%8)[1300](10 3)<1290(849)[T6S##]>[T6SDD]>[SDD]>[B6d6DSSDS##DDD]>(#####)[##DDD](+0)
 111D211211D211211B211211D211211B211 1121211112112111121121121121111112112122112 --(g5%8)[1301](27 5)<1274(926)[#####]>[##DDD]>[##DDD]>[S6d6BDBDDDDD]>(1B###)[1BDDD](+0)
 D211211S211211S211211D211211D211211E211121111111211121121 2111112111211 --(g0%8)[1320](38 0)<1282(1000)[1B###]>[1BDDD]>[SDDD]>[T6SPDSSDDD]>(T6S###)[T6SDDD](+0)
11 D211211D211211D211211D211211B211 1112112121121111211211211211121121121121121122221122 --(g3%8)[1319](37 3)<1282(1083)[T6S###]>[T6SDDD]>[SDDD]>[S6d6BDDDDDD]>(DDB####)[DDBDDDD](+0)
11212 D211211S211211D211211#211211B211211B211211S211211B2112 2211221111121211222112111222111111 --(g7%8)[1323](17 7)<1306(1180)[DDB####]>[DDBDDDD]>[SDDDD]>[PDBSBB#DSDDDD]>(#######)[#DSDDDD](+0)
 111D211211B211211B211211S211211B2112 2211221111121211222112111222111111 --(g7%8)[1315](17 7)<1298(1254)[#######]>[#DSDDDD]>[#DSDDDD]>[PDBSBBDSDDDD]>(######)[DSDDDD](+0)
 111211211D211211D211211S211211D211211S211211S211211D21 22 --(g3%8)[1316](10 3)<1306(1312)[######]>[DSDDDD]>[DSDDDD]>[B6d6DSSDSDDSDDDD]>(#######)[DDSDDDD](+0)
 111D211211B211211D211211D211211B211211D21 22121121121121121121121122112112122112112111221111111111111112 --(g3%8)[1314](24 3)<1290(1413)[#######]>[DDSDDDD]>[DDSDDDD]>[B6d6DBDDBDSDDDD]>(S####)[SDDDD](+0)
 D211211S211211D211211B211 1122111112112112112111111211212211221 --(g5%8)[1310](52 5)<1258(1476)[S####]>[SDDDD]>[SDDDD]>[S6d6BDSDDDD]>(H6T22#)[H6T22D](+0)
11121121 111211211D211211S211211S211211D211211B211211S211211D211211D211211S211211D21 2221121121111121121121122112222 --(g6%8)[1311](29 6)<1282(1594)[H6T22#]>[H6T22D]>[D]>[B6d6DSDDSBDSSD]>(####)[DSSD](+0)443
 111211211D211211D211211E211121111111211121121 2111112111211 --(g0%8)[1304](38 0)<1266(1653)[####]>[DSSD]>[DSSD]>[T6SPDSSD]>(T6S#)[T6SD](+0)
1121121 21212  --<1250(1665)[T6S#]>[T6SD]>[BDD]>[1]>(1)[1]
121 --
22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22
11 -- [LR2702T6S####-2716]>[LR2708S####-2716]473
--211211#211211#211211S211211S211211D211211D211211S211211D21 222112111211111111111111212111111 2 --(33 0)[-2627][LR2640B6d6DSDDSS######-2716]->[I-4S######-2716]{:_,11T,9t,9I,13H,15h,11B,13P,11d,11D,7S}
--1 211211#211211#211211#211211#211211#B211211D211211D211211D211211D211211B211211D211211B211 1121212111211222211112 2 11112 --(7 2)[-2629] [T6##########-2716]{:_,5T,3t,5I,7H,9h,5B,7P,5d,5D,5S} [X###########BDDDDBDB6d6S]
 #211211#211211D211211S211211S211211D211211D211211S211211D21 22211211121111111111111121211111 1 2 --(g0%8)[-2627](33 0)<-2660(93)[S####]>[S####]>[S####]>[B6d6DSDDSSD#####]>(1T6S(#^6))[1T6SD#####](+0)
1 D211211D211211D211211S211211S211211B211211D2112111 21111 2 11111122121112111111121111111212211112 --(g2%8)[-2629](15 2)<-2644(189)[1T6S(#^6)]>[1T6SD#####]>[SD#####]>[SPDBSSDDD#####]>(T18T18T6S(#^8))[T18T18T6SDDD#####](+0)
2111 D211211B211 1112112121121111211211211211121121121121121122221 1 22 --(g3%8)[-2631](37 3)<-2668(256)[T18T18T6S(#^8)]>[T18T18T6SDDD#####]>[SDDD#####]>[S6d6BDDD#####]>(DDB(#^6))[DDBD#####](+0)
11212 #211211D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122 1 12 --(g5%8)[-2633](27 5)<-2660(347)[DDB(#^6)]>[DDBD#####]>[SD#####]>[S6d6BDBDDD(#^6)]>(1B(#^7))[1BD(#^6)](+0)
 D211211D211211#211211#211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2626](10 3)<-2636(408)[1B(#^7)]>[1BD(#^6)]>[SD(#^6)]>[B6d6DSSDS##DD(#^6)]>((#^10))[##DD(#^6)](+0)
 111#211211B211211B211211S211211B2112 221122111112121122211211122 2 111111 --(g7%8)[-2627](17 7)<-2644(482)[(#^10)]>[##DD(#^6)]>[##DD(#^6)]>[PDBSBB#DD(#^6)]>((#^9))[#DD(#^6)](+0)
 111D211211D211211D211211D211211D2112 22112112121111121112111221 2 1222112112112112111112111211121111112 --(g6%8)[-2624](20 6)<-2644(577)[(#^9)]>[#DD(#^6)]>[#DD(#^6)]>[P(D^7)(#^6)]>(T18T6SD(#^8))[T18T6SDDD(#^6)](+0)
21111111 211211D211211D211211E211121111111211121121  2 111112111211 --(g0%8)[-2614](38 0)<-2652(641)[T18T6SD(#^8)]>[T18T6SDDD(#^6)]>[SSSD(#^6)]>[T6SPDSSD(#^6)]>(T6S(#^7))[T6SD(#^6)](+0)
11 D211211D211211D211211D211211S211211S211211B211211D2112111 21111 2 11111122121112111111121111111212211112 --(g2%8)[-2613](15 2)<-2628(744)[T6S(#^7)]>[T6SD(#^6)]>[SD(#^6)]>[SPDBSSDDDD(#^6)]>(T18T18T6S(#^10))[T18T18T6SDDDD(#^6)](+0)
2111 D211211S211211D211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2610](10 3)<-2620(806)[T18T18T6S(#^10)]>[T18T18T6SDDDD(#^6)]>[SDDDD(#^6)]>[B6d6DSSDSDSDDDD(#^6)]>((#^12))[DSDDDD(#^6)](+0)
 111211211D211211B211 1122111112112112112111111211212 2 11221 --(g5%8)[-2608](52 5)<-2660(863)[(#^12)]>[DSDDDD(#^6)]>[DSDDDD(#^6)]>[S6d6BDSDDDD(#^6)]>(H6T22(#^7))[H6T22D(#^6)](+0)
11121121 111#211211D211211D211211S211211D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122 1 12 --(g5%8)[-2609](27 5)<-2636(981)[H6T22(#^7)]>[H6T22D(#^6)]>[D(#^6)]>[S6d6BDBDDDSDD(#^6)]>(1B(#^10))[1BDSDD(#^6)](+0)
 S211211D211211D211211E211121111111211121121  2 111112111211 --(g0%8)[-2606](38 0)<-2644(1040)[1B(#^10)]>[1BDSDD(#^6)]>[SDSDD(#^6)]>[T6SPDSSDD(#^6)]>(T6S(#^8))[T6SDD(#^6)](+0)
11 D211211D211211D211211D211211D211211D211211#211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2594](10 3)<-2604(1121)[T6S(#^8)]>[T6SDD(#^6)]>[SDD(#^6)]>[B6d6DSSDS#(D^7)(#^6)]>((#^14))[#(D^7)(#^6)](+0)
 111D211211#211211#211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2586](10 3)<-2596(1179)[(#^14)]>[#(D^7)(#^6)]>[#(D^7)(#^6)]>[B6d6DSSDS##(D^7)(#^6)]>((#^15))[##(D^7)(#^6)](+0)
 111S211211S211211B211211D2112111 21111 2 11111122121112111111121111111212211112 --(g2%8)[-2589](15 2)<-2604(1259)[(#^15)]>[##(D^7)(#^6)]>[##(D^7)(#^6)]>[SPDBSS(D^7)(#^6)]>(T18T18T6S(#^13))[T18T18T6S(D^7)(#^6)](+0)
2111 D211211B211 1112112121121111211211211211121121121121121122221 1 22 --(g3%8)[-2591](37 3)<-2628(1326)[T18T18T6S(#^13)]>[T18T18T6S(D^7)(#^6)]>[S(D^7)(#^6)]>[S6d6B(D^7)(#^6)]>(DDB(#^11))[DDBDDDDD(#^6)](+0)
112111111 211211D211211D211211E211121111111211121121  2 111112111211 --(g0%8)[-2590](38 0)<-2628(1391)[DDB(#^11)]>[DDBDDDDD(#^6)]>[SSSDDDD(#^6)]>[T6SPDSSDDDD(#^6)]>(T6S(#^10))[T6SDDDD(#^6)](+0)
11 D211211S211211D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122 1 12 --(g5%8)[-2593](27 5)<-2620(1488)[T6S(#^10)]>[T6SDDDD(#^6)]>[SDDDD(#^6)]>[S6d6BDBDDDSDDDD(#^6)]>(1B(#^12))[1BDSDDDD(#^6)](+0)
 S211211D211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2602](10 3)<-2612(1540)[1B(#^12)]>[1BDSDDDD(#^6)]>[SDSDDDD(#^6)]>[B6d6DSSDSDSSDDDD(#^6)]>((#^13))[DSSDDDD(#^6)](+0)
 111211211B211211D2112111 21111 2 11111122121112111111121111111212211112 --(g2%8)[-2613](15 2)<-2628(1608)[(#^13)]>[DSSDDDD(#^6)]>[DSSDDDD(#^6)]>[SPDBSSDDDD(#^6)]>(T18T18T6S(#^10))[T18T18T6SDDDD(#^6)](+0)
2111 D211211S211211D211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2610](10 3)<-2620(1670)[T18T18T6S(#^10)]>[T18T18T6SDDDD(#^6)]>[SDDDD(#^6)]>[B6d6DSSDSDSDDDD(#^6)]>((#^12))[DSDDDD(#^6)](+0)
 111211211D211211B211 1122111112112112112111111211212 2 11221 --(g5%8)[-2608](52 5)<-2660(1727)[(#^12)]>[DSDDDD(#^6)]>[DSDDDD(#^6)]>[S6d6BDSDDDD(#^6)]>(H6T22(#^7))[H6T22D(#^6)](+0)
11121121 111#211211D211211D211211S211211D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122 1 12 --(g5%8)[-2609](27 5)<-2636(1845)[H6T22(#^7)]>[H6T22D(#^6)]>[D(#^6)]>[S6d6BDBDDDSDD(#^6)]>(1B(#^10))[1BDSDD(#^6)](+0)
 S211211D211211D211211E211121111111211121121  2 111112111211 --(g0%8)[-2606](38 0)<-2644(1904)[1B(#^10)]>[1BDSDD(#^6)]>[SDSDD(#^6)]>[T6SPDSSDD(#^6)]>(T6S(#^8))[T6SDD(#^6)](+0)
11 D211211D211211D211211D211211D211211D211211#211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2594](10 3)<-2604(1985)[T6S(#^8)]>[T6SDD(#^6)]>[SDD(#^6)]>[B6d6DSSDS#(D^7)(#^6)]>((#^14))[#(D^7)(#^6)](+0)
 111D211211#211211#211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2586](10 3)<-2596(2043)[(#^14)]>[#(D^7)(#^6)]>[#(D^7)(#^6)]>[B6d6DSSDS##(D^7)(#^6)]>((#^15))[##(D^7)(#^6)](+0)
 111S211211S211211B211211D2112111 21111 2 11111122121112111111121111111212211112 --(g2%8)[-2589](15 2)<-2604(2123)[(#^15)]>[##(D^7)(#^6)]>[##(D^7)(#^6)]>[SPDBSS(D^7)(#^6)]>(T18T18T6S(#^13))[T18T18T6S(D^7)(#^6)](+0)
2111 D211211B211 1112112121121111211211211211121121121121121122221 1 22 --(g3%8)[-2591](37 3)<-2628(2190)[T18T18T6S(#^13)]>[T18T18T6S(D^7)(#^6)]>[S(D^7)(#^6)]>[S6d6B(D^7)(#^6)]>(DDB(#^11))[DDBDDDDD(#^6)](+0)
112111111 211211D211211D211211E211121111111211121121  2 111112111211 --(g0%8)[-2590](38 0)<-2628(2255)[DDB(#^11)]>[DDBDDDDD(#^6)]>[SSSDDDD(#^6)]>[T6SPDSSDDDD(#^6)]>(T6S(#^10))[T6SDDDD(#^6)](+0)
11 D211211S211211D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122 1 12 --(g5%8)[-2593](27 5)<-2620(2352)[T6S(#^10)]>[T6SDDDD(#^6)]>[SDDDD(#^6)]>[S6d6BDBDDDSDDDD(#^6)]>(1B(#^12))[1BDSDDDD(#^6)](+0)
 S211211D211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2602](10 3)<-2612(2404)[1B(#^12)]>[1BDSDDDD(#^6)]>[SDSDDDD(#^6)]>[B6d6DSSDSDSSDDDD(#^6)]>((#^13))[DSSDDDD(#^6)](+0)
 111211211B211211D2112111 21111 2 11111122121112111111121111111212211112 --(g2%8)[-2613](15 2)<-2628(2472)[(#^13)]>[DSSDDDD(#^6)]>[DSSDDDD(#^6)]>[SPDBSSDDDD(#^6)]>(T18T18T6S(#^10))[T18T18T6SDDDD(#^6)](+0)
2111 D211211S211211D211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2610](10 3)<-2620(2534)[T18T18T6S(#^10)]>[T18T18T6SDDDD(#^6)]>[SDDDD(#^6)]>[B6d6DSSDSDSDDDD(#^6)]>((#^12))[DSDDDD(#^6)](+0)
 111211211D211211B211 1122111112112112112111111211212 2 11221 --(g5%8)[-2608](52 5)<-2660(2591)[(#^12)]>[DSDDDD(#^6)]>[DSDDDD(#^6)]>[S6d6BDSDDDD(#^6)]>(H6T22(#^7))[H6T22D(#^6)](+0)
11121121 111#211211#211211D211211S211211D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122 1 12 --(g5%8)[-2609](27 5)<-2636(2709)[H6T22(#^7)]>[H6T22D(#^6)]>[D(#^6)]>[S6d6BDBDDDSD(#^7)]>(1B(#^10))[1BDSD(#^7)](+0)
 S211211D211211D211211E211121111111211121121  2 111112111211 --(g0%8)[-2606](38 0)<-2644(2768)[1B(#^10)]>[1BDSD(#^7)]>[SDSD(#^7)]>[T6SPDSSD(#^7)]>(T6S(#^8))[T6SD(#^7)](+0)
11 #211211#211211#211211D211211S211211D211211#211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2594](10 3)<-2604(2852)[T6S(#^8)]>[T6SD(#^7)]>[SD(#^7)]>[B6d6DSSDS#DSD(#^10)]>((#^14))[#DSD(#^10)](+0)
 111D211211#211211#211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2586](10 3)<-2596(2910)[(#^14)]>[#DSD(#^10)]>[#DSD(#^10)]>[B6d6DSSDS##DSD(#^10)]>((#^15))[##DSD(#^10)](+0)
 111S211211S211211B211211D2112111 21111 2 11111122121112111111121111111212211112 --(g2%8)[-2589](15 2)<-2604(2990)[(#^15)]>[##DSD(#^10)]>[##DSD(#^10)]>[SPDBSSDSD(#^10)]>(T18T18T6S(#^13))[T18T18T6SDSD(#^10)](+0)
2111 S211211D211211D211211E211121111111211121121  2 111112111211 --(g0%8)[-2582](38 0)<-2620(3053)[T18T18T6S(#^13)]>[T18T18T6SDSD(#^10)]>[SDSD(#^10)]>[T6SPDSSD(#^10)]>(T6S(#^11))[T6SD(#^10)](+0)
11 #211211D211211D211211D211211B211 1112112121121111211211211211121121121121121122221 1 22 --(g3%8)[-2583](37 3)<-2620(3136)[T6S(#^11)]>[T6SD(#^10)]>[SD(#^10)]>[S6d6BDDD(#^11)]>(DDB(#^12))[DDBD(#^11)](+0)
11212 D211211D211211S211211D211211B211211D211211D211211B211211D21 221211211211211211211211221121121221121121112211111111 1 1111112 --(g3%8)[-2580](24 3)<-2604(3260)[DDB(#^12)]>[DDBD(#^11)]>[SD(#^11)]>[B6d6DBDDBDSDD(#^11)]>(S(#^13))[SDD(#^11)](+0)
 D211211S211211D211211#211211#211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2570](10 3)<-2580(3330)[S(#^13)]>[SDD(#^11)]>[SDD(#^11)]>[B6d6DSSDS##DSDD(#^11)]>((#^17))[##DSDD(#^11)](+0)
 111D211211D211211B211211D211211B211 1121211112112111121121121121111112112122 1 12 --(g5%8)[-2569](27 5)<-2596(3407)[(#^17)]>[##DSDD(#^11)]>[##DSDD(#^11)]>[S6d6BDBDDDSDD(#^11)]>(1B(#^15))[1BDSDD(#^11)](+0)
 S211211D211211D211211E211121111111211121121  2 111112111211 --(g0%8)[-2566](38 0)<-2604(3466)[1B(#^15)]>[1BDSDD(#^11)]>[SDSDD(#^11)]>[T6SPDSSDD(#^11)]>(T6S(#^13))[T6SDD(#^11)](+0)
11 D211211D211211D211211D211211D211211B2112111 2122211211211211111211211211211211211211211122221121121121111211112221121121121121 1  --(g4%8)[-2564](32 4)<-2596(3590)[T6S(#^13)]>[T6SDD(#^11)]>[SDD(#^11)]>[SPB(D^6)(#^11)]>(SDDS(#^15))[SDDSDDDD(#^11)](+0)
 D211211D211211D2112 2111111221211112112112112112112122111121112111211211122112121 1 2 --(g1%8)[-2565](23 1)<-2588(3669)[SDDS(#^15)]>[SDDSDDDD(#^11)]>[SDDSDDDD(#^11)]>[PDDDDDSDDDD(#^11)]>(S(#^15))[SDDDD(#^11)](+0)
 D211211D211211D211211D211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2562](10 3)<-2572(3730)[S(#^15)]>[SDDDD(#^11)]>[SDDDD(#^11)]>[B6d6DSSDS(D^7)(#^11)]>((#^18))[(D^7)(#^11)](+0)
 111D211211D211211D211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2554](10 3)<-2564(3788)[(#^18)]>[(D^7)(#^11)]>[(D^7)(#^11)]>[B6d6DSSDS(D^8)(#^11)]>((#^19))[(D^8)(#^11)](+0)
 111D211211B211 1112112121121111211211211211121121121121121122221 1 22 --(g3%8)[-2551](37 3)<-2588(3854)[(#^19)]>[(D^8)(#^11)]>[(D^8)(#^11)]>[S6d6B(D^7)(#^11)]>(DDB(#^16))[DDBDDDDD(#^11)](+0)
11212 D211211D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122 1 12 --(g5%8)[-2553](27 5)<-2580(3945)[DDB(#^16)]>[DDBDDDDD(#^11)]>[SDDDDD(#^11)]>[S6d6BDB(D^8)(#^11)]>(1B(#^17))[1B(D^6)(#^11)](+0)
 D211211D211211#211211#211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2546](10 3)<-2556(4006)[1B(#^17)]>[1B(D^6)(#^11)]>[S(D^6)(#^11)]>[B6d6DSSDS##(D^7)(#^11)]>((#^20))[##(D^7)(#^11)](+0)
 111#211211B211211B211211S211211B2112 221122111112121122211211122 2 111111 --(g7%8)[-2547](17 7)<-2564(4080)[(#^20)]>[##(D^7)(#^11)]>[##(D^7)(#^11)]>[PDBSBB#(D^7)(#^11)]>((#^19))[#(D^7)(#^11)](+0)
 111D211211D211211D211211D211211D2112 22112112121111121112111221 2 1222112112112112111112111211121111112 --(g6%8)[-2544](20 6)<-2564(4175)[(#^19)]>[#(D^7)(#^11)]>[#(D^7)(#^11)]>[P(D^12)(#^11)]>(T18T6SD(#^18))[T18T6S(D^8)(#^11)](+0)
21111111 211211D211211D211211E211121111111211121121  2 111112111211 --(g0%8)[-2534](38 0)<-2572(4239)[T18T6SD(#^18)]>[T18T6S(D^8)(#^11)]>[SSS(D^6)(#^11)]>[T6SPDSS(D^6)(#^11)]>(T6S(#^17))[T6S(D^6)(#^11)](+0)
11 D211211D211211D211211D211211S211211S211211B211211D2112111 21111 2 11111122121112111111121111111212211112 --(g2%8)[-2533](15 2)<-2548(4342)[T6S(#^17)]>[T6S(D^6)(#^11)]>[S(D^6)(#^11)]>[SPDBSS(D^9)(#^11)]>(T18T18T6S(#^20))[T18T18T6S(D^9)(#^11)](+0)
2111 D211211S211211D211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2530](10 3)<-2540(4404)[T18T18T6S(#^20)]>[T18T18T6S(D^9)(#^11)]>[S(D^9)(#^11)]>[B6d6DSSDSDS(D^9)(#^11)]>((#^22))[DS(D^9)(#^11)](+0)
 111211211D211211B211 1122111112112112112111111211212 2 11221 --(g5%8)[-2528](52 5)<-2580(4461)[(#^22)]>[DS(D^9)(#^11)]>[DS(D^9)(#^11)]>[S6d6BDS(D^9)(#^11)]>(H6T22(#^17))[H6T22(D^6)(#^11)](+0)
11121121 111D211211D211211D211211S211211D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122 1 12 --(g5%8)[-2529](27 5)<-2556(4579)[H6T22(#^17)]>[H6T22(D^6)(#^11)]>[(D^6)(#^11)]>[S6d6BDBDDDS(D^7)(#^11)]>(1B(#^20))[1BDS(D^7)(#^11)](+0)
 S211211D211211D211211E211121111111211121121  2 111112111211 --(g0%8)[-2526](38 0)<-2564(4638)[1B(#^20)]>[1BDS(D^7)(#^11)]>[SDS(D^7)(#^11)]>[T6SPDSS(D^7)(#^11)]>(T6S(#^18))[T6S(D^7)(#^11)](+0)
11 S211211S211211D211211D211211S211211D211211#211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2514](10 3)<-2524(4728)[T6S(#^18)]>[T6S(D^7)(#^11)]>[S(D^7)(#^11)]>[B6d6DSSDS#DSDDSS(D^6)(#^11)]>((#^24))[#DSDDSS(D^6)(#^11)](+0)
 111D211211#211211#211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2506](10 3)<-2516(4786)[(#^24)]>[#DSDDSS(D^6)(#^11)]>[#DSDDSS(D^6)(#^11)]>[B6d6DSSDS##DSDDSS(D^6)(#^11)]>((#^25))[##DSDDSS(D^6)(#^11)](+0)
 111S211211S211211B211211D2112111 21111 2 11111122121112111111121111111212211112 --(g2%8)[-2509](15 2)<-2524(4866)[(#^25)]>[##DSDDSS(D^6)(#^11)]>[##DSDDSS(D^6)(#^11)]>[SPDBSSDSDDSS(D^6)(#^11)]>(T18T18T6S(#^23))[T18T18T6SDSDDSS(D^6)(#^11)](+0)
2111 S211211D211211D211211E211121111111211121121  2 111112111211 --(g0%8)[-2502](38 0)<-2540(4929)[T18T18T6S(#^23)]>[T18T18T6SDSDDSS(D^6)(#^11)]>[SDSDDSS(D^6)(#^11)]>[T6SPDSSDDSS(D^6)(#^11)]>(T6S(#^21))[T6SDDSS(D^6)(#^11)](+0)
11 D211211D211211D211211D211211B211 1112112121121111211211211211121121121121121122221 1 22 --(g3%8)[-2503](37 3)<-2540(5012)[T6S(#^21)]>[T6SDDSS(D^6)(#^11)]>[SDDSS(D^6)(#^11)]>[S6d6BDDDDDSS(D^6)(#^11)]>(DDB(#^22))[DDBDDDSS(D^6)(#^11)](+0)
11212 D211211D211211S211211D211211B211211D211211D211211B211211D21 221211211211211211211211221121121221121121112211111111 1 1111112 --(g3%8)[-2500](24 3)<-2524(5136)[DDB(#^22)]>[DDBDDDSS(D^6)(#^11)]>[SDDDSS(D^6)(#^11)]>[B6d6DBDDBDSDDDDSS(D^6)(#^11)]>(S(#^23))[SDDDDSS(D^6)(#^11)](+0)
 D211211D211211D211211D211211D211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2490](10 3)<-2500(5203)[S(#^23)]>[SDDDDSS(D^6)(#^11)]>[SDDDDSS(D^6)(#^11)]>[B6d6DSSDS(D^8)SS(D^6)(#^11)]>((#^27))[(D^8)SS(D^6)(#^11)](+0)
 111D211211S211211D211211B211 1122111112112112112111111211212 2 11221 --(g5%8)[-2480](52 5)<-2532(5269)[(#^27)]>[(D^8)SS(D^6)(#^11)]>[(D^8)SS(D^6)(#^11)]>[S6d6BDS(D^7)SS(D^6)(#^11)]>(H6T22(#^23))[H6T22DDDDSS(D^6)(#^11)](+0)
11121121 111D211211D211211D211211D211211#211211D211211D211211D211211D211211D2112 2111111221211112112112112112112122111121112111211211122112121 1 2 --(g1%8)[-2477](23 1)<-2500(5401)[H6T22(#^23)]>[H6T22DDDDSS(D^6)(#^11)]>[DDDDSS(D^6)(#^11)]>[P(D^6)#(D^6)SS(D^6)(#^11)]>(D(#^26))[D#(D^6)SS(D^6)(#^11)](+0)
 111D211211D211211B211 1112112121121111211211211211121121121121121122221 1 22 --(g3%8)[-2479](37 3)<-2516(5473)[D(#^26)]>[D#(D^6)SS(D^6)(#^11)]>[D#(D^6)SS(D^6)(#^11)]>[S6d6B(D^8)SS(D^6)(#^11)]>(DDB(#^25))[DDB(D^6)SS(D^6)(#^11)](+0)
11212 D211211D211211D211211#211211B211211S211211D211211D211211S211211D21 222112112111112112112112 2 112222 --(g6%8)[-2463](29 6)<-2492(5573)[DDB(#^25)]>[DDB(D^6)SS(D^6)(#^11)]>[S(D^6)SS(D^6)(#^11)]>[B6d6DSDDSB#(D^8)SS(D^6)(#^11)]>((#^28))[#(D^8)SS(D^6)(#^11)](+0)
 111D211211#211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2482](10 3)<-2492(5625)[(#^28)]>[#(D^8)SS(D^6)(#^11)]>[#(D^8)SS(D^6)(#^11)]>[B6d6DSSDS#(D^8)SS(D^6)(#^11)]>((#^28))[#(D^8)SS(D^6)(#^11)](+0)
 111D211211D211211B211211D211211D211211D2112 21111121121122111211211211211111211121211222222121 1  --(g1%8)[-2471](29 1)<-2500(5715)[(#^28)]>[#(D^8)SS(D^6)(#^11)]>[#(D^8)SS(D^6)(#^11)]>[PDDDDB(D^9)SS(D^6)(#^11)]>(S6d6DS(#^27))[S6d6DS(D^8)SS(D^6)(#^11)](+0)
2 11B211 1122111112112112112111111211212 2 11221 --(g5%8)[-2472](52 5)<-2524(5760)[S6d6DS(#^27)]>[S6d6DS(D^8)SS(D^6)(#^11)]>[PDDS(D^8)SS(D^6)(#^11)]>[S6d6BDS(D^8)SS(D^6)(#^11)]>(H6T22(#^24))[H6T22DDDDDSS(D^6)(#^11)](+0)
11121121 111D211211D211211D211211D211211D211211D211211D211211B211 1112112121121111211211211211121121121121121122221 1 22 --(g3%8)[-2463](37 3)<-2500(5870)[H6T22(#^24)]>[H6T22DDDDDSS(D^6)(#^11)]>[DDDDDSS(D^6)(#^11)]>[S6d6B(D^10)SS(D^6)(#^11)]>(DDB(#^27))[DDB(D^8)SS(D^6)(#^11)](+0)
11212 D211211D211211D211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2474](10 3)<-2484(5930)[DDB(#^27)]>[DDB(D^8)SS(D^6)(#^11)]>[S(D^8)SS(D^6)(#^11)]>[B6d6DSSDS(D^10)SS(D^6)(#^11)]>((#^29))[(D^10)SS(D^6)(#^11)](+0)
 111D211211D211211D211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2466](10 3)<-2476(5988)[(#^29)]>[(D^10)SS(D^6)(#^11)]>[(D^10)SS(D^6)(#^11)]>[B6d6DSSDS(D^11)SS(D^6)(#^11)]>((#^30))[(D^11)SS(D^6)(#^11)](+0)
 111D211211D211211D211211D211211B211211D211211D211211D2112 2111112112112221121121121111121112121122222211121 1  --(g1%8)[-2439](13 1)<-2452(6089)[(#^30)]>[(D^11)SS(D^6)(#^11)]>[(D^11)SS(D^6)(#^11)]>[PDDDDB(D^13)SS(D^6)(#^11)]>(S6d6B(#^32))[S6d6B(D^13)SS(D^6)(#^11)](+0)
  1112112121121111211211211211121121121121121122221 1 22 --(g3%8)[-2439](37 3)<-2476(6141)[S6d6B(#^32)]>[S6d6B(D^13)SS(D^6)(#^11)]>[S6d6B(D^13)SS(D^6)(#^11)]>[S6d6B(D^13)SS(D^6)(#^11)]>(DDB(#^30))[DDB(D^11)SS(D^6)(#^11)](+0)
11212 D211211D211211D211211S211211D211211B211 1122111112112112112111111211212 2 11221 --(g5%8)[-2432](52 5)<-2484(6221)[DDB(#^30)]>[DDB(D^11)SS(D^6)(#^11)]>[S(D^11)SS(D^6)(#^11)]>[S6d6BDS(D^13)SS(D^6)(#^11)]>(H6T22(#^29))[H6T22(D^10)SS(D^6)(#^11)](+0)
11121121 111D211211D211211D211211D211211B211 1112112121121111211211211211121121121121121122221 1 22 --(g3%8)[-2447](37 3)<-2484(6313)[H6T22(#^29)]>[H6T22(D^10)SS(D^6)(#^11)]>[(D^10)SS(D^6)(#^11)]>[S6d6B(D^12)SS(D^6)(#^11)]>(DDB(#^29))[DDB(D^10)SS(D^6)(#^11)](+0)
11212 D211211S211211D211211S211211S211211D211211D211211S211211D21 22211211121111111111111121211111 1 2 --(g0%8)[-2427](33 0)<-2460(6414)[DDB(#^29)]>[DDB(D^10)SS(D^6)(#^11)]>[S(D^10)SS(D^6)(#^11)]>[B6d6DSDDSSDS(D^10)SS(D^6)(#^11)]>(1T6S(#^31))[1T6SDS(D^10)SS(D^6)(#^11)](+0)
1 D211211D211211D211211D211211#211211B211211B211211S211211B2112 221122111112121122211211122 2 111111 --(g7%8)[-2419](17 7)<-2436(6510)[1T6S(#^31)]>[1T6SDS(D^10)SS(D^6)(#^11)]>[SDS(D^10)SS(D^6)(#^11)]>[PDBSBB#DDDDS(D^10)SS(D^6)(#^11)]>((#^35))[#DDDDS(D^10)SS(D^6)(#^11)](+0)
 111D211211S211211D211211B211211D211211D211211B211211D21 221211211211211211211211221121121221121121112211111111 1 1111112 --(g3%8)[-2412](24 3)<-2436(6626)[(#^35)]>[#DDDDS(D^10)SS(D^6)(#^11)]>[#DDDDS(D^10)SS(D^6)(#^11)]>[B6d6DBDDBDSDDDDS(D^10)SS(D^6)(#^11)]>(S(#^34))[SDDDDS(D^10)SS(D^6)(#^11)](+0)
 D211211B211211B211211S211211B2112 221122111112121122211211122 2 111111 --(g7%8)[-2427](17 7)<-2444(6697)[S(#^34)]>[SDDDDS(D^10)SS(D^6)(#^11)]>[SDDDDS(D^10)SS(D^6)(#^11)]>[PDBSBBDDDDS(D^10)SS(D^6)(#^11)]>((#^34))[DDDDS(D^10)SS(D^6)(#^11)](+0)
112 11B211 1122111111111112112112112112112211211211221 2 22111211111112211 --(g7%8)[-2508](8 7)<-2516(6768)[(#^34)]>[DDDDS(D^10)SS(D^6)(#^11)]>[PDDS(D^10)SS(D^6)(#^11)]>[S6d6BDS(D^10)SS(D^6)(#^11)]>((#^25))[(D^6)SS(D^6)(#^11)](+0)
 111D211211D211211D211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2498](10 3)<-2508(6826)[(#^25)]>[(D^6)SS(D^6)(#^11)]>[(D^6)SS(D^6)(#^11)]>[B6d6DSSDS(D^7)SS(D^6)(#^11)]>((#^26))[(D^7)SS(D^6)(#^11)](+0)
 111B211 1112112121121111211211211211121121121121121122221 1 22 --(g3%8)[-2503](37 3)<-2540(6886)[(#^26)]>[(D^7)SS(D^6)(#^11)]>[(D^7)SS(D^6)(#^11)]>[S6d6BDDDDDSS(D^6)(#^11)]>(DDB(#^22))[DDBDDDSS(D^6)(#^11)](+0)
11212 #211211S211211D211211B211211D211211D211211B211211D21 221211211211211211211211221121121221121121112211111111 1 1111112 --(g3%8)[-2508](24 3)<-2532(7004)[DDB(#^22)]>[DDBDDDSS(D^6)(#^11)]>[SDDDSS(D^6)(#^11)]>[B6d6DBDDBDS#DDSS(D^6)(#^11)]>(S(#^22))[S#DDSS(D^6)(#^11)](+0)
 S211211S211211D211211D211211E211121111111211121121  2 111112111211 --(g0%8)[-2502](38 0)<-2540(7072)[S(#^22)]>[S#DDSS(D^6)(#^11)]>[S#DDSS(D^6)(#^11)]>[T6SPDSSDDSS(D^6)(#^11)]>(T6S(#^21))[T6SDDSS(D^6)(#^11)](+0)
11 D211211D211211D211211D211211B211211S211211D211211D211211S211211D21 222112112111112112112112 2 112222 --(g6%8)[-2495](29 6)<-2524(7169)[T6S(#^21)]>[T6SDDSS(D^6)(#^11)]>[SDDSS(D^6)(#^11)]>[B6d6DSDDSBDDDDDSS(D^6)(#^11)]>((#^24))[DDDDDSS(D^6)(#^11)](+0)
 111D211211D211211D211211D211211D211211D2112 22112112121111121112111221 2 1222112112112112111112111211121111112 --(g6%8)[-2496](20 6)<-2516(7270)[(#^24)]>[DDDDDSS(D^6)(#^11)]>[DDDDDSS(D^6)(#^11)]>[P(D^10)SS(D^6)(#^11)]>(T18T6SD(#^24))[T18T6S(D^6)SS(D^6)(#^11)](+0)
21 D211211S211211D211211B211 1122111112112112112111111211212 2 11221 --(g5%8)[-2488](52 5)<-2540(7335)[T18T6SD(#^24)]>[T18T6S(D^6)SS(D^6)(#^11)]>[S(D^6)SS(D^6)(#^11)]>[S6d6BDS(D^6)SS(D^6)(#^11)]>(H6T22(#^22))[H6T22DDDSS(D^6)(#^11)](+0)
11121121 111D211211D211211D211211D211211S211211D211211B211 1122111112112112112111111211212 2 11221 --(g5%8)[-2496](52 5)<-2548(7427)[H6T22(#^22)]>[H6T22DDDSS(D^6)(#^11)]>[DDDSS(D^6)(#^11)]>[S6d6BDSDDDDDSS(D^6)(#^11)]>(H6T22(#^21))[H6T22DDSS(D^6)(#^11)](+0)
11121121 111D211211D211211E211211D211211D211211D211211D211211D2112 2111111221211112112112112112112122111121112111211211122112121 1 2 --(g1%8)[-2509](23 1)<-2532(7551)[H6T22(#^21)]>[H6T22DDSS(D^6)(#^11)]>[DDSS(D^6)(#^11)]>[P(D^6)SPDSS(D^6)(#^11)]>(D(#^22))[DSPDSS(D^6)(#^11)](+0)
 111211211D211211D211211S211211S211211B211211D2112111 21111 2 11111122121112111111121111111212211112 --(g2%8)[-2501](15 2)<-2516(7649)[D(#^22)]>[DSPDSS(D^6)(#^11)]>[DSPDSS(D^6)(#^11)]>[SPDBSSDDSPDSS(D^6)(#^11)]>(T18T18T6S(#^24))[T18T18T6SDDSPDSS(D^6)(#^11)](+0)
21112112121212 11211121111111211121121  2 111112111211 --(g0%8)[-2534](38 0)<-2572(7699)[T18T18T6S(#^24)]>[T18T18T6SDDSPDSS(D^6)(#^11)]>[PSPDSS(D^6)(#^11)]>[T6SPDSS(D^6)(#^11)]>(T6S(#^17))[T6S(D^6)(#^11)](+0)
11 D211211D211211D211211D211211B211211D211211D211211D211211D211211D211211D2112 2211111211221122111121112111211111112121211211211211112112112112121 2 22 --(g6%8)[-2530](10 6)<-2540(7837)[T6S(#^17)]>[T6S(D^6)(#^11)]>[S(D^6)(#^11)]>[P(D^7)B(D^9)(#^11)]>(1P(#^22))[1PDB(D^9)(#^11)](+0)
 1S211211D211211D211211S211211D21 222112112111112112112112 2 112222 --(g6%8)[-2527](29 6)<-2556(7901)[1P(#^22)]>[1PDB(D^9)(#^11)]>[BDB(D^9)(#^11)]>[B6d6DSDDSB(D^9)(#^11)]>((#^20))[(D^9)(#^11)](+0)
 111D211211D211211D211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2538](10 3)<-2548(7959)[(#^20)]>[(D^9)(#^11)]>[(D^9)(#^11)]>[B6d6DSSDS(D^10)(#^11)]>((#^21))[(D^10)(#^11)](+0)
 111D211211B211211D211211B211 1121211112112111121121121121111112112122 1 12 --(g5%8)[-2545](27 5)<-2572(8030)[(#^21)]>[(D^10)(#^11)]>[(D^10)(#^11)]>[S6d6BDB(D^9)(#^11)]>(1B(#^18))[1B(D^7)(#^11)](+0)
 S211211S211211D211211D211211E211121111111211121121  2 111112111211 --(g0%8)[-2534](38 0)<-2572(8098)[1B(#^18)]>[1B(D^7)(#^11)]>[S(D^7)(#^11)]>[T6SPDSS(D^6)(#^11)]>(T6S(#^17))[T6S(D^6)(#^11)](+0)
11 D211211D211211D211211B211211D211211D211211D2112 2111112112112221121121121111121112121122222211121 1  --(g1%8)[-2543](13 1)<-2556(8192)[T6S(#^17)]>[T6S(D^6)(#^11)]>[S(D^6)(#^11)]>[PDDDDB(D^8)(#^11)]>(S6d6B(#^19))[S6d6B(D^8)(#^11)](+0)
21211111 211211D211211D211211S211211D21 222112112111112112112112 2 112222 --(g6%8)[-2543](29 6)<-2572(8260)[S6d6B(#^19)]>[S6d6B(D^8)(#^11)]>[SSB(D^7)(#^11)]>[B6d6DSDDSB(D^7)(#^11)]>((#^18))[(D^7)(#^11)](+0)
 111D211211D211211D211211B211211B211211S211211B2112 221122111112121122211211122 2 111111 --(g7%8)[-2547](17 7)<-2564(8346)[(#^18)]>[(D^7)(#^11)]>[(D^7)(#^11)]>[PDBSBB(D^8)(#^11)]>((#^19))[(D^8)(#^11)](+0)
 111D211211D211211D211211D211211D211211D211211D2112 22112112121111121112111221 2 1222112112112112111112111211121111112 --(g6%8)[-2528](20 6)<-2548(8453)[(#^19)]>[(D^8)(#^11)]>[(D^8)(#^11)]>[P(D^14)(#^11)]>(T18T6SD(#^20))[T18T6S(D^10)(#^11)](+0)
2111111 211211D211211D211211S211211D21 222112112111112112112112 2 112222 --(g6%8)[-2535](29 6)<-2564(8520)[T18T6SD(#^20)]>[T18T6S(D^10)(#^11)]>[SSB(D^8)(#^11)]>[B6d6DSDDSB(D^8)(#^11)]>((#^19))[(D^8)(#^11)](+0)
 111D211211D211211D211211D211211B211 1112112121121111211211211211121121121121121122221 1 22 --(g3%8)[-2527](37 3)<-2564(8604)[(#^19)]>[(D^8)(#^11)]>[(D^8)(#^11)]>[S6d6B(D^10)(#^11)]>(DDB(#^19))[DDB(D^8)(#^11)](+0)
112 111211211D211211B211 1122111112112112112111111211212 2 11221 --(g5%8)[-2536](52 5)<-2588(8664)[DDB(#^19)]>[DDB(D^8)(#^11)]>[PB(D^8)(#^11)]>[S6d6BDS(D^8)(#^11)]>(H6T22(#^16))[H6T22DDDDD(#^11)](+0)
11121121 111D211211D211211D211211D211211D211211D211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2546](10 3)<-2556(8748)[H6T22(#^16)]>[H6T22DDDDD(#^11)]>[DDDDD(#^11)]>[B6d6DSSDS(D^9)(#^11)]>((#^20))[(D^9)(#^11)](+0)
 111D211211B211211D211211B211 1121211112112111121121121121111112112122 1 12 --(g5%8)[-2553](27 5)<-2580(8819)[(#^20)]>[(D^9)(#^11)]>[(D^9)(#^11)]>[S6d6BDB(D^8)(#^11)]>(1B(#^17))[1B(D^6)(#^11)](+0)
 D211211D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122 1 12 --(g5%8)[-2545](27 5)<-2572(8905)[1B(#^17)]>[1B(D^6)(#^11)]>[S(D^6)(#^11)]>[S6d6BDB(D^9)(#^11)]>(1B(#^18))[1B(D^7)(#^11)](+0)
 D211211D211211D211211D211211D211211D211211D211211D211211D211211D211211D2112 2211111211221122111121112111211111112121211211211211112112112112121 2 22 --(g6%8)[-2522](10 6)<-2532(9039)[1B(#^18)]>[1B(D^7)(#^11)]>[S(D^7)(#^11)]>[P(D^18)(#^11)]>(1P(#^23))[1P(D^12)(#^11)](+0)
 1D211211D2112 22112112121111121112111221 2 1222112112112112111112111211121111112 --(g6%8)[-2528](20 6)<-2548(9114)[1P(#^23)]>[1P(D^12)(#^11)]>[B(D^12)(#^11)]>[P(D^14)(#^11)]>(T18T6SD(#^20))[T18T6S(D^10)(#^11)](+0)
21 S211211D211211B211 1122111112112112112111111211212 2 11221 --(g5%8)[-2528](52 5)<-2580(9173)[T18T6SD(#^20)]>[T18T6S(D^10)(#^11)]>[S(D^10)(#^11)]>[S6d6BDS(D^9)(#^11)]>(H6T22(#^17))[H6T22(D^6)(#^11)](+0)
11121121 111D211211D211211D211211D211211D211211D211211D211211D2112 22112112221121121222211112 2 22111111112222 --(g6%8)[-2537](43 6)<-2580(9271)[H6T22(#^17)]>[H6T22(D^6)(#^11)]>[(D^6)(#^11)]>[P(D^13)(#^11)]>(1t48(#^17))[1t48(D^6)(#^11)](+0)
1 111D211211D211211D211211S211211D211211S211211S211211B211211D2112111 21111 2 11111122121112111111121111111212211112 --(g2%8)[-2533](15 2)<-2548(9385)[1t48(#^17)]>[1t48(D^6)(#^11)]>[(D^6)(#^11)]>[SPDBSSDS(D^7)(#^11)]>(T18T18T6S(#^20))[T18T18T6SDS(D^7)(#^11)](+0)
2111 D211211S211211D211211D211211D211211D2112 211211221111111211211212112112211211212112112211221111211121112111111 1 22 --(g2%8)[-2518](30 2)<-2548(9498)[T18T18T6S(#^20)]>[T18T18T6SDS(D^7)(#^11)]>[SDS(D^7)(#^11)]>[PDDDDDSDS(D^7)(#^11)]>(1I14T6S(#^20))[1I14T6SDS(D^7)(#^11)](+0)
11 S211211D211211D211211E211121111111211121121  2 111112111211 --(g0%8)[-2526](38 0)<-2564(9559)[1I14T6S(#^20)]>[1I14T6SDS(D^7)(#^11)]>[SDS(D^7)(#^11)]>[T6SPDSS(D^7)(#^11)]>(T6S(#^18))[T6S(D^7)(#^11)](+0)
11 D211211D211211S211211D211211B211211D211211D211211B211211D21 221211211211211211211211221121121221121121112211111111 1 1111112 --(g3%8)[-2532](24 3)<-2556(9680)[T6S(#^18)]>[T6S(D^7)(#^11)]>[S(D^7)(#^11)]>[B6d6DBDDBDS(D^8)(#^11)]>(S(#^19))[S(D^8)(#^11)](+0)
 D211211#211211S211211D211211B211211D211211D211211B211211D21 221211211211211211211211221121121221121121112211111111 1 1111112 --(g3%8)[-2524](24 3)<-2548(9799)[S(#^19)]>[S(D^8)(#^11)]>[S(D^8)(#^11)]>[B6d6DBDDBDS#(D^8)(#^11)]>(S(#^20))[S#(D^8)(#^11)](+0)
 D211211D211211B211 1112112121121111211211211211121121121121121122221 1 22 --(g3%8)[-2527](37 3)<-2564(9868)[S(#^20)]>[S#(D^8)(#^11)]>[S#(D^8)(#^11)]>[S6d6B(D^10)(#^11)]>(DDB(#^19))[DDB(D^8)(#^11)](+0)
11211111 211211D211211D211211S211211D21 222112112111112112112112 2 112222 --(g6%8)[-2543](29 6)<-2572(9936)[DDB(#^19)]>[DDB(D^8)(#^11)]>[SSB(D^7)(#^11)]>[B6d6DSDDSB(D^7)(#^11)]>((#^18))[(D^7)(#^11)](+0)
 111D211211D211211D211211D211211D211211S211211S211211B211211D2112111 21111 2 11111122121112111111121111111212211112 --(g2%8)[-2525](15 2)<-2540(10046)[(#^18)]>[(D^7)(#^11)]>[(D^7)(#^11)]>[SPDBSS(D^10)(#^11)]>(T18T18T6S(#^21))[T18T18T6S(D^10)(#^11)](+0)
2111 D211211B211211D211211B211 1121211112112111121121121121111112112122 1 12 --(g5%8)[-2537](27 5)<-2564(10118)[T18T18T6S(#^21)]>[T18T18T6S(D^10)(#^11)]>[S(D^10)(#^11)]>[S6d6BDB(D^10)(#^11)]>(1B(#^19))[1B(D^8)(#^11)](+0)
 S211211D211211B211 1122111112112112112111111211212 2 11221 --(g5%8)[-2544](52 5)<-2596(10175)[1B(#^19)]>[1B(D^8)(#^11)]>[S(D^8)(#^11)]>[S6d6BDS(D^7)(#^11)]>(H6T22(#^15))[H6T22DDDD(#^11)](+0)
11121121 111D211211D211211#211211#211211D211211D211211#211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2546](10 3)<-2556(10265)[H6T22(#^15)]>[H6T22DDDD(#^11)]>[DDDD(#^11)]>[B6d6DSSDS#DD##DDDD(#^11)]>((#^20))[#DD##DDDD(#^11)](+0)
 111D211211D211211D211211B211 1112112121121111211211211211121121121121121122221 1 22 --(g3%8)[-2527](37 3)<-2564(10343)[(#^20)]>[#DD##DDDD(#^11)]>[#DD##DDDD(#^11)]>[S6d6BDDDD##DDDD(#^11)]>(DDB(#^19))[DDBDD##DDDD(#^11)](+0)
11212 D211211D211211B211211D211211D211211D2112 2111112112112221121121121111121112121122222211121 1  --(g1%8)[-2535](13 1)<-2548(10434)[DDB(#^19)]>[DDBDD##DDDD(#^11)]>[SDD##DDDD(#^11)]>[PDDDDBDDD##DDDD(#^11)]>(S6d6B(#^20))[S6d6BDDD##DDDD(#^11)](+0)
  11111221221121121121121111121 2 21121121121121122111112111222 --(g3%8)[-2534](46 3)<-2580(10493)[S6d6B(#^20)]>[S6d6BDDD##DDDD(#^11)]>[S6d6BDDD##DDDD(#^11)]>[S6d6BDDD##DDDD(#^11)]>((#^17))[##DDDD(#^11)](+0)
 111S211211D211211D211211D211211D2112 22111112112221121111212 1 12111111211222121111211111112112122 --(g2%8)[-2528](60 2)<-2588(10586)[(#^17)]>[##DDDD(#^11)]>[##DDDD(#^11)]>[PDDDDDSDDDD(#^11)]>(0T16T6S(#^15))[0T16T6SDDDD(#^11)](+0)
11 S211211S211211D211211D211211D211211D211211D211211D211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2530](10 3)<-2540(10679)[0T16T6S(#^15)]>[0T16T6SDDDD(#^11)]>[SDDDD(#^11)]>[B6d6DSSDS(D^6)SSDDD(#^11)]>((#^22))[(D^6)SSDDD(#^11)](+0)
 111D211211B211 1112112121121111211211211211121121121121121122221 1 22 --(g3%8)[-2527](37 3)<-2564(10745)[(#^22)]>[(D^6)SSDDD(#^11)]>[(D^6)SSDDD(#^11)]>[S6d6BDDDDDSSDDD(#^11)]>(DDB(#^19))[DDBDDDSSDDD(#^11)](+0)
11212 D211211S211211D211211B211211D211211D211211B211211D21 221211211211211211211211221121121221121121112211111111 1 1111112 --(g3%8)[-2532](24 3)<-2556(10863)[DDB(#^19)]>[DDBDDDSSDDD(#^11)]>[SDDDSSDDD(#^11)]>[B6d6DBDDBDSDDDSSDDD(#^11)]>(S(#^19))[SDDDSSDDD(#^11)](+0)
 D211211B211211S211211D211211D211211S211211D21 222112112111112112112112 2 112222 --(g6%8)[-2535](29 6)<-2564(10940)[S(#^19)]>[SDDDSSDDD(#^11)]>[SDDDSSDDD(#^11)]>[B6d6DSDDSBDDDSSDDD(#^11)]>((#^19))[DDDSSDDD(#^11)](+0)
 111D211211D211211S211211D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122 1 12 --(g5%8)[-2521](27 5)<-2548(11044)[(#^19)]>[DDDSSDDD(#^11)]>[DDDSSDDD(#^11)]>[S6d6BDBDDDSDDDSSDDD(#^11)]>(1B(#^21))[1BDSDDDSSDDD(#^11)](+0)
 D211211D211211D211211#211211#211211B211211B211211S211211B2112 221122111112121122211211122 2 111111 --(g7%8)[-2499](17 7)<-2516(11139)[1B(#^21)]>[1BDSDDDSSDDD(#^11)]>[SDSDDDSSDDD(#^11)]>[PDBSBB##DDDSDDDSSDDD(#^11)]>((#^25))[##DDDSDDDSSDDD(#^11)](+0)
 111#211211B211211B211211S211211B2112 221122111112121122211211122 2 111111 --(g7%8)[-2507](17 7)<-2524(11213)[(#^25)]>[##DDDSDDDSSDDD(#^11)]>[##DDDSDDDSSDDD(#^11)]>[PDBSBB#DDDSDDDSSDDD(#^11)]>((#^24))[#DDDSDDDSSDDD(#^11)](+0)
 111D211211D211211D211211D211211D2112 22112112121111121112111221 2 1222112112112112111112111211121111112 --(g6%8)[-2504](20 6)<-2524(11308)[(#^24)]>[#DDDSDDDSSDDD(#^11)]>[#DDDSDDDSSDDD(#^11)]>[P(D^8)SDDDSSDDD(#^11)]>(T18T6SD(#^23))[T18T6SDDDDSDDDSSDDD(#^11)](+0)
21 B211 1112112121121111211211211211121121121121121122221 1 22 --(g3%8)[-2511](37 3)<-2548(11367)[T18T6SD(#^23)]>[T18T6SDDDDSDDDSSDDD(#^11)]>[SDDDDSDDDSSDDD(#^11)]>[S6d6BDDDSDDDSSDDD(#^11)]>(DDB(#^21))[DDBDSDDDSSDDD(#^11)](+0)
11212 D211211S211211S211211D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122 1 12 --(g5%8)[-2497](27 5)<-2524(11476)[DDB(#^21)]>[DDBDSDDDSSDDD(#^11)]>[SDSDDDSSDDD(#^11)]>[S6d6BDBDDDSSDSDDDSSDDD(#^11)]>(1B(#^24))[1BDSSDSDDDSSDDD(#^11)](+0)
 D211211D211211B211211D211211D211211D2112 2111112112112221121121121111121112121122222211121 1  --(g1%8)[-2495](13 1)<-2508(11562)[1B(#^24)]>[1BDSSDSDDDSSDDD(#^11)]>[SDSSDSDDDSSDDD(#^11)]>[PDDDDBDDSSDSDDDSSDDD(#^11)]>(S6d6B(#^25))[S6d6BDDSSDSDDDSSDDD(#^11)](+0)
212111111 211211B211211D2112111 21111 2 11111122121112111111121111111212211112 --(g2%8)[-2501](15 2)<-2516(11636)[S6d6B(#^25)]>[S6d6BDDSSDSDDDSSDDD(#^11)]>[SSSDSSDSDDDSSDDD(#^11)]>[SPDBSSDSSDSDDDSSDDD(#^11)]>(T18T18T6S(#^24))[T18T18T6SDSSDSDDDSSDDD(#^11)](+0)
2111 D211211D211211E211121111111211121121  2 111112111211 --(g0%8)[-2502](38 0)<-2540(11690)[T18T18T6S(#^24)]>[T18T18T6SDSSDSDDDSSDDD(#^11)]>[SDSSDSDDDSSDDD(#^11)]>[T6SPDSSDSDDDSSDDD(#^11)]>(T6S(#^21))[T6SDSDDDSSDDD(#^11)](+0)
11 D211211D211211D211211D211211D211211S211211S211211B211211D2112111 21111 2 11111122121112111111121111111212211112 --(g2%8)[-2493](15 2)<-2508(11799)[T6S(#^21)]>[T6SDSDDDSSDDD(#^11)]>[SDSDDDSSDDD(#^11)]>[SPDBSSDDDDDSDDDSSDDD(#^11)]>(T18T18T6S(#^25))[T18T18T6SDDDDDSDDDSSDDD(#^11)](+0)
2111 S211211D211211B211211B211211S211211B2112 221122111112121122211211122 2 111111 --(g7%8)[-2491](17 7)<-2508(11883)[T18T18T6S(#^25)]>[T18T18T6SDDDDDSDDDSSDDD(#^11)]>[SDDDDDSDDDSSDDD(#^11)]>[PDBSBBDSDDDDSDDDSSDDD(#^11)]>((#^26))[DSDDDDSDDDSSDDD(#^11)](+0)
 111211211D211211B211 1122111112112112112111111211212 2 11221 --(g5%8)[-2496](52 5)<-2548(11940)[(#^26)]>[DSDDDDSDDDSSDDD(#^11)]>[DSDDDDSDDDSSDDD(#^11)]>[S6d6BDSDDDDSDDDSSDDD(#^11)]>(H6T22(#^21))[H6T22DSDDDSSDDD(#^11)](+0)
11121121 111211211D211211D211211D211211D2112 22111112112221121111212 1 12111111211222121111211111112112122 --(g2%8)[-2496](60 2)<-2556(12038)[H6T22(#^21)]>[H6T22DSDDDSSDDD(#^11)]>[DSDDDSSDDD(#^11)]>[PDDDDDSDDDSSDDD(#^11)]>(0T16T6S(#^19))[0T16T6SDDDSSDDD(#^11)](+0)
11 #211211D211211D211211D211211S211211S211211D211211D211211D211211B211211B211211S211211B2112 221122111112121122211211122 2 111111 --(g7%8)[-2483](17 7)<-2500(12165)[0T16T6S(#^19)]>[0T16T6SDDDSSDDD(#^11)]>[SDDDSSDDD(#^11)]>[PDBSBBDDDSSDDD#DDSSDDD(#^11)]>((#^27))[DDDSSDDD#DDSSDDD(#^11)](+0)
 111D211211S211211D21 22211211121111111111111121211111 1 2 --(g0%8)[-2499](33 0)<-2532(12219)[(#^27)]>[DDDSSDDD#DDSSDDD(#^11)]>[DDDSSDDD#DDSSDDD(#^11)]>[B6d6DSDDSSDDD#DDSSDDD(#^11)]>(1T6S(#^22))[1T6SDDD#DDSSDDD(#^11)](+0)
1 S211211D211211D211211B211211D211211D211211D211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2482](10 3)<-2492(12304)[1T6S(#^22)]>[1T6SDDD#DDSSDDD(#^11)]>[SDDD#DDSSDDD(#^11)]>[B6d6DSSDSDDDBDDSDD#DDSSDDD(#^11)]>((#^28))[DDDBDDSDD#DDSSDDD(#^11)](+0)
 111B211 112121111211211211211211 1 221121121121212112111211122 --(g0%8)[-2531](9 0)<-2540(12364)[(#^28)]>[DDDBDDSDD#DDSSDDD(#^11)]>[DDDBDDSDD#DDSSDDD(#^11)]>[S6d6BDBDDSDD#DDSSDDD(#^11)]>(1T6S(#^21))[1T6SDD#DDSSDDD(#^11)](+0)
1 D211211D211211D211211D211211S211211D21 2111211111122111221112112112112112112112112111121111211 2 2212 --(g4%8)[-2524](40 4)<-2564(12460)[1T6S(#^21)]>[1T6SDD#DDSSDDD(#^11)]>[SDD#DDSSDDD(#^11)]>[B6d6DSDDDDD#DDSSDDD(#^11)]>((#^19))[#DDSSDDD(#^11)](+0)
 111D211211#211211S211211D211211B211211D211211D211211B211211D21 221211211211211211211211221121121221121121112211111111 1 1111112 --(g3%8)[-2532](24 3)<-2556(12582)[(#^19)]>[#DDSSDDD(#^11)]>[#DDSSDDD(#^11)]>[B6d6DBDDBDS#DDSSDDD(#^11)]>(S(#^19))[S#DDSSDDD(#^11)](+0)
 D211211D211211B211 1112112121121111211211211211121121121121121122221 1 22 --(g3%8)[-2535](37 3)<-2572(12651)[S(#^19)]>[S#DDSSDDD(#^11)]>[S#DDSSDDD(#^11)]>[S6d6BDDDDSSDDD(#^11)]>(DDB(#^18))[DDBDDSSDDD(#^11)](+0)
1121111 211121111111211121121  2 111112111211 --(g0%8)[-2558](38 0)<-2596(12692)[DDB(#^18)]>[DDBDDSSDDD(#^11)]>[SSPDSSDDD(#^11)]>[T6SPDSSDDD(#^11)]>(T6S(#^14))[T6SDDD(#^11)](+0)
11 S211211S211211D211211D211211S211211B211211B211211S211211B2112 221122111112121122211211122 2 111111 --(g7%8)[-2555](17 7)<-2572(12798)[T6S(#^14)]>[T6SDDD(#^11)]>[SDDD(#^11)]>[PDBSBBSDDSSDD(#^11)]>((#^18))[SDDSSDD(#^11)](+0)
 D211211E211211D211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2554](10 3)<-2564(12857)[(#^18)]>[SDDSSDD(#^11)]>[SDDSSDD(#^11)]>[B6d6DSSDSDSPDSSDD(#^11)]>((#^19))[DSPDSSDD(#^11)](+0)
 111211121111111211121121  2 111112111211 --(g0%8)[-2566](38 0)<-2604(12894)[(#^19)]>[DSPDSSDD(#^11)]>[DSPDSSDD(#^11)]>[T6SPDSSDD(#^11)]>(T6S(#^13))[T6SDD(#^11)](+0)
11 D211211D211211S211211S211211D211211D211211E211121111111211121121  2 111112111211 --(g0%8)[-2558](38 0)<-2596(12976)[T6S(#^13)]>[T6SDD(#^11)]>[SDD(#^11)]>[T6SPDSSDDD(#^11)]>(T6S(#^14))[T6SDDD(#^11)](+0)
11 D211211S211211S211211D211211D211211E211121111111211121121  2 111112111211 --(g0%8)[-2558](38 0)<-2596(13052)[T6S(#^14)]>[T6SDDD(#^11)]>[SDDD(#^11)]>[T6SPDSSDDD(#^11)]>(T6S(#^14))[T6SDDD(#^11)](+0)
11 D211211D211211D211211D211211D211211D211211D211211D211211D2112 22112112221121121222211112 2 22111111112222 --(g6%8)[-2545](43 6)<-2588(13147)[T6S(#^14)]>[T6SDDD(#^11)]>[SDDD(#^11)]>[P(D^12)(#^11)]>(1t48(#^16))[1t48DDDDD(#^11)](+0)
1 111D211211D211211D211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2570](10 3)<-2580(13206)[1t48(#^16)]>[1t48DDDDD(#^11)]>[DDDDD(#^11)]>[B6d6DSSDS(D^6)(#^11)]>((#^17))[(D^6)(#^11)](+0)
 111D211211B211 1112112121121111211211211211121121121121121122221 1 22 --(g3%8)[-2567](37 3)<-2604(13272)[(#^17)]>[(D^6)(#^11)]>[(D^6)(#^11)]>[S6d6BDDDDD(#^11)]>(DDB(#^14))[DDBDDD(#^11)](+0)
11212 D211211S211211S211211D211211D211211E211121111111211121121  2 111112111211 --(g0%8)[-2558](38 0)<-2596(13351)[DDB(#^14)]>[DDBDDD(#^11)]>[SDDD(#^11)]>[T6SPDSSDDD(#^11)]>(T6S(#^14))[T6SDDD(#^11)](+0)
11 D211211D211211#211211D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122 1 12 --(g5%8)[-2553](27 5)<-2580(13451)[T6S(#^14)]>[T6SDDD(#^11)]>[SDDD(#^11)]>[S6d6BDBDDD#DDDD(#^11)]>(1B(#^17))[1BD#DDDD(#^11)](+0)
 B211211B211211S211211B2112 221122111112121122211211122 2 111111 --(g7%8)[-2571](17 7)<-2588(13516)[1B(#^17)]>[1BD#DDDD(#^11)]>[SD#DDDD(#^11)]>[PDBSBB#DDDD(#^11)]>((#^16))[#DDDD(#^11)](+0)
 111D211211D211211D211211B2112111 2122211211211211111211211211211211211211211122221121121121111211112221121121121121 1  --(g4%8)[-2564](32 4)<-2596(13629)[(#^16)]>[#DDDD(#^11)]>[#DDDD(#^11)]>[SPB(D^6)(#^11)]>(SDDS(#^15))[SDDSDDDD(#^11)](+0)
 D211211D211211S211211D21 22211111211121111111111112111211111 1 2 --(g0%8)[-2555](33 0)<-2588(13689)[SDDS(#^15)]>[SDDSDDDD(#^11)]>[SDDSDDDD(#^11)]>[B6d6DSDDDSDDDD(#^11)]>(1T6S(#^15))[1T6SDDDD(#^11)](+0)
1 S211211S211211D211211D211211D211211D211211D211211D211211D2112 2211111211221122111121112111211111112121211211211211112112112112121 2 22 --(g6%8)[-2562](10 6)<-2572(13818)[1T6S(#^15)]>[1T6SDDDD(#^11)]>[SDDDD(#^11)]>[P(D^8)SSDDD(#^11)]>(1P(#^18))[1PDDSSDDD(#^11)](+0)
 1D211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2562](10 3)<-2572(13862)[1P(#^18)]>[1PDDSSDDD(#^11)]>[BDDSSDDD(#^11)]>[B6d6DSSDSDDSSDDD(#^11)]>((#^18))[DDSSDDD(#^11)](+0)
 111D211211D211211E211121111111211121121  2 111112111211 --(g0%8)[-2558](38 0)<-2596(13915)[(#^18)]>[DDSSDDD(#^11)]>[DDSSDDD(#^11)]>[T6SPDSSDDD(#^11)]>(T6S(#^14))[T6SDDD(#^11)](+0)
11 S211211D211211D211211D211211D211211D211211D2112 2111111221211112112112112112112122111121112111211211122112121 1 2 --(g1%8)[-2565](23 1)<-2588(14023)[T6S(#^14)]>[T6SDDD(#^11)]>[SDDD(#^11)]>[P(D^7)SDD(#^11)]>(D(#^15))[DDSDD(#^11)](+0)
 111D211211D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122 1 12 --(g5%8)[-2561](27 5)<-2588(14112)[D(#^15)]>[DDSDD(#^11)]>[DDSDD(#^11)]>[S6d6BDBDDDDSDD(#^11)]>(1B(#^16))[1BDDSDD(#^11)](+0)
 S211211D211211S211211S211211B211211D2112111 21111 2 11111122121112111111121111111212211112 --(g2%8)[-2557](15 2)<-2572(14204)[1B(#^16)]>[1BDDSDD(#^11)]>[SDDSDD(#^11)]>[SPDBSSDSDSDD(#^11)]>(T18T18T6S(#^17))[T18T18T6SDSDSDD(#^11)](+0)
2111 S211211B211211D2112111 21111 2 11111122121112111111121111111212211112 --(g2%8)[-2573](15 2)<-2588(14276)[T18T18T6S(#^17)]>[T18T18T6SDSDSDD(#^11)]>[SDSDSDD(#^11)]>[SPDBSSDSDD(#^11)]>(T18T18T6S(#^15))[T18T18T6SDSDD(#^11)](+0)
2111 S211211D211211#211211D211211D211211D211211D211211D2112 2111111221211112112112112112112122111121112111211211122112121 1 2 --(g1%8)[-2549](23 1)<-2572(14392)[T18T18T6S(#^15)]>[T18T18T6SDSDD(#^11)]>[SDSDD(#^11)]>[P(D^6)#DSSDD(#^11)]>(D(#^17))[D#DSSDD(#^11)](+0)
 111D211211D211211B211 1112112121121111211211211211121121121121121122221 1 22 --(g3%8)[-2551](37 3)<-2588(14464)[D(#^17)]>[D#DSSDD(#^11)]>[D#DSSDD(#^11)]>[S6d6BDDDSSDD(#^11)]>(DDB(#^16))[DDBDSSDD(#^11)](+0)
11212 D211211D211211E211121111111211121121  2 111112111211 --(g0%8)[-2566](38 0)<-2604(14519)[DDB(#^16)]>[DDBDSSDD(#^11)]>[SDSSDD(#^11)]>[T6SPDSSDD(#^11)]>(T6S(#^13))[T6SDD(#^11)](+0)
11 D211211D211211D211211S211211D211211S211211S211211B211211D2112111 21111 2 11111122121112111111121111111212211112 --(g2%8)[-2557](15 2)<-2572(14631)[T6S(#^13)]>[T6SDD(#^11)]>[SDD(#^11)]>[SPDBSSDSDDDD(#^11)]>(T18T18T6S(#^17))[T18T18T6SDSDDDD(#^11)](+0)
2111 S211211D211211B211211B211211S211211B2112 221122111112121122211211122 2 111111 --(g7%8)[-2555](17 7)<-2572(14715)[T18T18T6S(#^17)]>[T18T18T6SDSDDDD(#^11)]>[SDSDDDD(#^11)]>[PDBSBBDSSDDDD(#^11)]>((#^18))[DSSDDDD(#^11)](+0)
 111211211D211211B211211B211211S211211B2112 221122111112121122211211122 2 111111 --(g7%8)[-2555](17 7)<-2572(14795)[(#^18)]>[DSSDDDD(#^11)]>[DSSDDDD(#^11)]>[PDBSBBDSSDDDD(#^11)]>((#^18))[DSSDDDD(#^11)](+0)
 111211211D211211D211211S211211D21 22211211121111111111111121211111 1 2 --(g0%8)[-2555](33 0)<-2588(14861)[(#^18)]>[DSSDDDD(#^11)]>[DSSDDDD(#^11)]>[B6d6DSDDSSDDDD(#^11)]>(1T6S(#^15))[1T6SDDDD(#^11)](+0)
1 D211211D211211D211211D211211D2112 22112112221121121222211112 2 22111111112222 --(g6%8)[-2569](43 6)<-2612(14931)[1T6S(#^15)]>[1T6SDDDD(#^11)]>[SDDDD(#^11)]>[P(D^9)(#^11)]>(1t48(#^13))[1t48DD(#^11)](+0)
1 111D211211D211211D211211D211211D211211S211211S211211B211211B211211S211211B2112 221122111112121122211211122 2 111111 --(g7%8)[-2555](17 7)<-2572(15048)[1t48(#^13)]>[1t48DD(#^11)]>[DD(#^11)]>[PDBSBBSSDDDDD(#^11)]>((#^18))[SSDDDDD(#^11)](+0)
 211211S211211S211211D211211D211211D211211D2112 2111111221211112112112112112112122111121112111211211122112121 1 2 --(g1%8)[-2541](23 1)<-2564(15157)[(#^18)]>[SSDDDDD(#^11)]>[SSDDDDD(#^11)]>[PDDDDDSSSDDDDD(#^11)]>(S(#^18))[SSSDDDDD(#^11)](+0)
 211211D211211D211211B211211B211211S211211B2112 221122111112121122211211122 2 111111 --(g7%8)[-2539](17 7)<-2556(15240)[S(#^18)]>[SSSDDDDD(#^11)]>[SSSDDDDD(#^11)]>[PDBSBBDDSSDDDDD(#^11)]>((#^20))[DDSSDDDDD(#^11)](+0)
 111D211211D211211E211121111111211121121  2 111112111211 --(g0%8)[-2542](38 0)<-2580(15293)[(#^20)]>[DDSSDDDDD(#^11)]>[DDSSDDDDD(#^11)]>[T6SPDSSDDDDD(#^11)]>(T6S(#^16))[T6SDDDDD(#^11)](+0)
11 S211211D211211D211211S211211S211211B211211D2112111 21111 2 11111122121112111111121111111212211112 --(g2%8)[-2549](15 2)<-2564(15393)[T6S(#^16)]>[T6SDDDDD(#^11)]>[SDDDDD(#^11)]>[SPDBSSDDSDDDD(#^11)]>(T18T18T6S(#^18))[T18T18T6SDDSDDDD(#^11)](+0)
2111 S211211D211211B211211D211211D211211B211211D21 221211211211211211211211221121121221121121112211111111 1 1111112 --(g3%8)[-2548](24 3)<-2572(15504)[T18T18T6S(#^18)]>[T18T18T6SDDSDDDD(#^11)]>[SDDSDDDD(#^11)]>[B6d6DBDDBDSDSDDDD(#^11)]>(S(#^17))[SDSDDDD(#^11)](+0)
 D211211D211211D211211B211 1112112121121111211211211211121121121121121122221 1 22 --(g3%8)[-2543](37 3)<-2580(15579)[S(#^17)]>[SDSDDDD(#^11)]>[SDSDDDD(#^11)]>[S6d6BDDDSDDDD(#^11)]>(DDB(#^17))[DDBDSDDDD(#^11)](+0)
11212 D211211D211211B211211B211211S211211B2112 221122111112121122211211122 2 111111 --(g7%8)[-2555](17 7)<-2572(15661)[DDB(#^17)]>[DDBDSDDDD(#^11)]>[SDSDDDD(#^11)]>[PDBSBBDDSDDDD(#^11)]>((#^18))[DDSDDDD(#^11)](+0)
 111D211211D211211B211211D211211D211211D2112 2111112112112221121121121111121112121122222211121 1  --(g1%8)[-2551](13 1)<-2564(15750)[(#^18)]>[DDSDDDD(#^11)]>[DDSDDDD(#^11)]>[PDDDDBDDSDDDD(#^11)]>(S6d6B(#^18))[S6d6BDDSDDDD(#^11)](+0)
21212 D211211S211211D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122 1 12 --(g5%8)[-2529](27 5)<-2556(15850)[S6d6B(#^18)]>[S6d6BDDSDDDD(#^11)]>[SDDSDDDD(#^11)]>[S6d6BDBDDDSDDSDDDD(#^11)]>(1B(#^20))[1BDSDDSDDDD(#^11)](+0)
 S211211D211211D211211E211121111111211121121  2 111112111211 --(g0%8)[-2526](38 0)<-2564(15909)[1B(#^20)]>[1BDSDDSDDDD(#^11)]>[SDSDDSDDDD(#^11)]>[T6SPDSSDDSDDDD(#^11)]>(T6S(#^18))[T6SDDSDDDD(#^11)](+0)
11 D211211D211211S211211S211211D211211D211211E211121111111211121121  2 111112111211 --(g0%8)[-2518](38 0)<-2556(15991)[T6S(#^18)]>[T6SDDSDDDD(#^11)]>[SDDSDDDD(#^11)]>[T6SPDSSDDDSDDDD(#^11)]>(T6S(#^19))[T6SDDDSDDDD(#^11)](+0)
11 S211211S211211D211211D211211E211121111111211121121  2 111112111211 --(g0%8)[-2526](38 0)<-2564(16061)[T6S(#^19)]>[T6SDDDSDDDD(#^11)]>[SDDDSDDDD(#^11)]>[T6SPDSSDDSDDDD(#^11)]>(T6S(#^18))[T6SDDSDDDD(#^11)](+0)
11 D211211S211211D211211D211211S211211D211211B211211D211211D211211B211211D21 221211211211211211211211221121121221121121112211111111 1 1111112 --(g3%8)[-2516](24 3)<-2540(16197)[T6S(#^18)]>[T6SDDSDDDD(#^11)]>[SDDSDDDD(#^11)]>[B6d6DBDDBDSDDSDDSDDDD(#^11)]>(S(#^21))[SDDSDDSDDDD(#^11)](+0)
 D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122 1 12 --(g5%8)[-2521](27 5)<-2548(16277)[S(#^21)]>[SDDSDDSDDDD(#^11)]>[SDDSDDSDDDD(#^11)]>[S6d6BDBDDDDSDDSDDDD(#^11)]>(1B(#^21))[1BDDSDDSDDDD(#^11)](+0)
 B211211D211211D211211B211211D21 221211211211211211211211221121121221121121112211111111 1 1111112 --(g3%8)[-2540](24 3)<-2564(16369)[1B(#^21)]>[1BDDSDDSDDDD(#^11)]>[SDDSDDSDDDD(#^11)]>[B6d6DBDDBDSDDSDDDD(#^11)]>(S(#^18))[SDDSDDDD(#^11)](+0)
 D211211D211211S211211D211211B211211D211211D211211B211211D21 221211211211211211211211221121121221121121112211111111 1 1111112 --(g3%8)[-2532](24 3)<-2556(16488)[S(#^18)]>[SDDSDDDD(#^11)]>[SDDSDDDD(#^11)]>[B6d6DBDDBDSDDDSDDDD(#^11)]>(S(#^19))[SDDDSDDDD(#^11)](+0)
 D211211D211211S211211D211211D211211D211211D211211D2112 2111111221211112112112112112112122111121112111211211122112121 1 2 --(g1%8)[-2517](23 1)<-2540(16600)[S(#^19)]>[SDDDSDDDD(#^11)]>[SDDDSDDDD(#^11)]>[P(D^6)SDDDDSDDDD(#^11)]>(D(#^21))[DSDDDDSDDDD(#^11)](+0)
 111211211D211211D211211D211211D211211D2112 2111111221211112112112112112112122111121112111211211122112121 1 2 --(g1%8)[-2517](23 1)<-2540(16700)[D(#^21)]>[DSDDDDSDDDD(#^11)]>[DSDDDDSDDDD(#^11)]>[P(D^6)SDDDDSDDDD(#^11)]>(D(#^21))[DSDDDDSDDDD(#^11)](+0)
 111211211D211211B211211B211211S211211B2112 221122111112121122211211122 2 111111 --(g7%8)[-2523](17 7)<-2540(16780)[D(#^21)]>[DSDDDDSDDDD(#^11)]>[DSDDDDSDDDD(#^11)]>[PDBSBBDSDDDDSDDDD(#^11)]>((#^22))[DSDDDDSDDDD(#^11)](+0)
 111211211D211211B211 1122111112112112112111111211212 2 11221 --(g5%8)[-2528](52 5)<-2580(16837)[(#^22)]>[DSDDDDSDDDD(#^11)]>[DSDDDDSDDDD(#^11)]>[S6d6BDSDDDDSDDDD(#^11)]>(H6T22(#^17))[H6T22DSDDDD(#^11)](+0)
11121121 111211211S211211D211211D211211E211211D211211D211211D211211D211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2514](10 3)<-2524(16946)[H6T22(#^17)]>[H6T22DSDDDD(#^11)]>[DSDDDD(#^11)]>[B6d6DSSDSDDDDSPDSSDDDD(#^11)]>((#^24))[DDDDSPDSSDDDD(#^11)](+0)
1121212 11211121111111211121121  2 111112111211 --(g0%8)[-2550](38 0)<-2588(16989)[(#^24)]>[DDDDSPDSSDDDD(#^11)]>[PSPDSSDDDD(#^11)]>[T6SPDSSDDDD(#^11)]>(T6S(#^15))[T6SDDDD(#^11)](+0)
11 D211211D211211S211211D211211B211 1122111112112112112111111211212 2 11221 --(g5%8)[-2560](52 5)<-2612(17060)[T6S(#^15)]>[T6SDDDD(#^11)]>[SDDDD(#^11)]>[S6d6BDSDDDDD(#^11)]>(H6T22(#^13))[H6T22DD(#^11)](+0)
11121121 111D211211D211211D211211D211211D211211D211211S211211S211211B211211D211211D211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2530](10 3)<-2540(17182)[H6T22(#^13)]>[H6T22DD(#^11)]>[DD(#^11)]>[B6d6DSSDSDDBSS(D^6)(#^11)]>((#^22))[DDBSS(D^6)(#^11)](+0)
 111D2112111 21111 2 11111122121112111111121111111212211112 --(g2%8)[-2557](15 2)<-2572(17236)[(#^22)]>[DDBSS(D^6)(#^11)]>[DDBSS(D^6)(#^11)]>[SPDBSS(D^6)(#^11)]>(T18T18T6S(#^17))[T18T18T6S(D^6)(#^11)](+0)
2111 S211211D211211B211 1122111112112112112111111211212 2 11221 --(g5%8)[-2560](52 5)<-2612(17297)[T18T18T6S(#^17)]>[T18T18T6S(D^6)(#^11)]>[S(D^6)(#^11)]>[S6d6BDSDDDDD(#^11)]>(H6T22(#^13))[H6T22DD(#^11)](+0)
11121121 111D211211S211211D211211D211211D211211D211211B211 11111221221121121121121111121 2 21121121121121122111112111222 --(g3%8)[-2558](46 3)<-2604(17411)[H6T22(#^13)]>[H6T22DD(#^11)]>[DD(#^11)]>[S6d6BDDDDSD(#^11)]>((#^14))[DSD(#^11)](+0)
 111211211D211211B211211#211211B211211B211211S211211B2112 221122111112121122211211122 2 111111 --(g7%8)[-2571](17 7)<-2588(17505)[(#^14)]>[DSD(#^11)]>[DSD(#^11)]>[PDBSBB#BDSD(#^11)]>((#^16))[#BDSD(#^11)](+0)
 111211211S211211D211211B211211D211211D211211B211211D21 221211211211211211211211221121121221121121112211111111 1 1111112 --(g3%8)[-2564](24 3)<-2588(17621)[(#^16)]>[#BDSD(#^11)]>[#BDSD(#^11)]>[B6d6DBDDBDSBDSD(#^11)]>(S(#^15))[SBDSD(#^11)](+0)
 211211D211211#211211#211211#211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2554](10 3)<-2564(17688)[S(#^15)]>[SBDSD(#^11)]>[SBDSD(#^11)]>[B6d6DSSDS###DBDSD(#^11)]>((#^19))[###DBDSD(#^11)](+0)
 111#211211B211211B211211S211211B2112 221122111112121122211211122 2 111111 --(g7%8)[-2555](17 7)<-2572(17762)[(#^19)]>[###DBDSD(#^11)]>[###DBDSD(#^11)]>[PDBSBB##DBDSD(#^11)]>((#^18))[##DBDSD(#^11)](+0)
 111S211211D211211B211211D211211D211211B211211D21 221211211211211211211211221121121221121121112211111111 1 1111112 --(g3%8)[-2556](24 3)<-2580(17872)[(#^18)]>[##DBDSD(#^11)]>[##DBDSD(#^11)]>[B6d6DBDDBDSDBDSD(#^11)]>(S(#^16))[SDBDSD(#^11)](+0)
 D211211S211211S211211B211211D2112111 21111 2 11111122121112111111121111111212211112 --(g2%8)[-2565](15 2)<-2580(17955)[S(#^16)]>[SDBDSD(#^11)]>[SDBDSD(#^11)]>[SPDBSSDBDSD(#^11)]>(T18T18T6S(#^16))[T18T18T6SDBDSD(#^11)](+0)
2111 D211211D211211D211211#211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2554](10 3)<-2564(18020)[T18T18T6S(#^16)]>[T18T18T6SDBDSD(#^11)]>[SDBDSD(#^11)]>[B6d6DSSDS#DDDBDSD(#^11)]>((#^19))[#DDDBDSD(#^11)](+0)
 111D211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2562](10 3)<-2572(18066)[(#^19)]>[#DDDBDSD(#^11)]>[#DDDBDSD(#^11)]>[B6d6DSSDSDDDBDSD(#^11)]>((#^18))[DDDBDSD(#^11)](+0)
 111D211211B211211D21 221211211211211211211211221121121221121121112211111111 1 1111112 --(g3%8)[-2588](24 3)<-2612(18147)[(#^18)]>[DDDBDSD(#^11)]>[DDDBDSD(#^11)]>[B6d6DBDDBDSD(#^11)]>(S(#^12))[SD(#^11)](+0)
 D211211B211211S211211D211211D211211S211211D21 222112112111112112112112 2 112222 --(g6%8)[-2591](29 6)<-2620(18224)[S(#^12)]>[SD(#^11)]>[SD(#^11)]>[B6d6DSDDSBD(#^11)]>((#^12))[D(#^11)](+0)
 111#211211D211211#211211#211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2594](10 3)<-2604(18288)[(#^12)]>[D(#^11)]>[D(#^11)]>[B6d6DSSDS##D(#^11)]>((#^14))[##D(#^11)](+0)
 111#211211B211211S211211D211211D211211S211211D21 222112112111112112112112 2 112222 --(g6%8)[-2583](29 6)<-2612(18368)[(#^14)]>[##D(#^11)]>[##D(#^11)]>[B6d6DSDDSB#D(#^11)]>((#^13))[#D(#^11)](+0)
 111D211211D211211D211211D211211D211211D211211D2112 22112112221121121222211112 2 22111111112222 --(g6%8)[-2577](43 6)<-2620(18452)[(#^13)]>[#D(#^11)]>[#D(#^11)]>[P(D^8)(#^11)]>(1t48(#^12))[1t48D(#^11)](+0)
1 111#211211#211211#211211#211211S211211D211211B211211D211211D211211B211211D21 221211211211211211211211221121121221121121112211111111 1 1111112 --(g3%8)[-2572](24 3)<-2596(18587)[1t48(#^12)]>[1t48D(#^11)]>[D(#^11)]>[B6d6DBDDBDS(#^14)]>(S(#^14))[S(#^14)]
 #211211D211211D211211D211211D211211D211211D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122 1 12 --(g5%8)[-2529](27 5)<-2556(18703)[S(#^14)]>[S(#^14)]>[S(#^14)]>[S6d6BDB(D^8)(#^14)]>(1B(#^20))[1B(D^6)(#^14)](+0)
 D211211S211211S211211B211211D2112111 21111 2 11111122121112111111121111111212211112 --(g2%8)[-2533](15 2)<-2548(18786)[1B(#^20)]>[1B(D^6)(#^14)]>[S(D^6)(#^14)]>[SPDBSS(D^6)(#^14)]>(T18T18T6S(#^20))[T18T18T6S(D^6)(#^14)](+0)
2111 S211211S211211B211211D2112111 21111 2 11111122121112111111121111111212211112 --(g2%8)[-2541](15 2)<-2556(18867)[T18T18T6S(#^20)]>[T18T18T6S(D^6)(#^14)]>[S(D^6)(#^14)]>[SPDBSSDDDDD(#^14)]>(T18T18T6S(#^19))[T18T18T6SDDDDD(#^14)](+0)
2111 D211211D211211D211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2538](10 3)<-2548(18926)[T18T18T6S(#^19)]>[T18T18T6SDDDDD(#^14)]>[SDDDDD(#^14)]>[B6d6DSSDS(D^7)(#^14)]>((#^21))[(D^7)(#^14)](+0)
 111D211211D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122 1 12 --(g5%8)[-2521](27 5)<-2548(19015)[(#^21)]>[(D^7)(#^14)]>[(D^7)(#^14)]>[S6d6BDB(D^9)(#^14)]>(1B(#^21))[1B(D^7)(#^14)](+0)
 D211211D211211S211211S211211B211211D2112111 21111 2 11111122121112111111121111111212211112 --(g2%8)[-2517](15 2)<-2532(19104)[1B(#^21)]>[1B(D^7)(#^14)]>[S(D^7)(#^14)]>[SPDBSS(D^8)(#^14)]>(T18T18T6S(#^22))[T18T18T6S(D^8)(#^14)](+0)
2111 D211211D211211B211211D211211B211 1121211112112111121121121121111112112122 1 12 --(g5%8)[-2521](27 5)<-2548(19182)[T18T18T6S(#^22)]>[T18T18T6S(D^8)(#^14)]>[S(D^8)(#^14)]>[S6d6BDB(D^9)(#^14)]>(1B(#^21))[1B(D^7)(#^14)](+0)
 D211211D211211D2112 22112112221121121222211112 2 22111111112222 --(g6%8)[-2537](43 6)<-2580(19239)[1B(#^21)]>[1B(D^7)(#^14)]>[S(D^7)(#^14)]>[P(D^10)(#^14)]>(1t48(#^17))[1t48DDD(#^14)](+0)
1 111D211211D211211D211211S211211S211211S211211B211211D211211D211211S211211S211211D211211D21 2 2 2112112111111111111111112222121222 --(g4%8)[-2530](18 4)<-2548(19370)[1t48(#^17)]>[1t48DDD(#^14)]>[DDD(#^14)]>[B6d6DDSSDDBSSSDDDD(#^14)]>(SSS(#^18))[SSSDDDD(#^14)](+0)
 211211D211211D211211S211211D21 22211211121111111111111121211111 1 2 --(g0%8)[-2531](33 0)<-2564(19433)[SSS(#^18)]>[SSSDDDD(#^14)]>[SSSDDDD(#^14)]>[B6d6DSDDSSDDDD(#^14)]>(1T6S(#^18))[1T6SDDDD(#^14)](+0)
1 D211211D211211D211211S211211S211211B211211D2112111 21111 2 11111122121112111111121111111212211112 --(g2%8)[-2533](15 2)<-2548(19529)[1T6S(#^18)]>[1T6SDDDD(#^14)]>[SDDDD(#^14)]>[SPDBSS(D^6)(#^14)]>(T18T18T6S(#^20))[T18T18T6S(D^6)(#^14)](+0)
2111 D211211D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122 1 12 --(g5%8)[-2521](27 5)<-2548(19619)[T18T18T6S(#^20)]>[T18T18T6S(D^6)(#^14)]>[S(D^6)(#^14)]>[S6d6BDB(D^9)(#^14)]>(1B(#^21))[1B(D^7)(#^14)](+0)
 D211211D211211D2112 22112112121111121112111221 2 1222112112112112111112111211121111112 --(g6%8)[-2536](20 6)<-2556(19699)[1B(#^21)]>[1B(D^7)(#^14)]>[S(D^7)(#^14)]>[P(D^10)(#^14)]>(T18T6SD(#^19))[T18T6S(D^6)(#^14)](+0)
21 D211211D2112 211211212112112111112121111112112112112112111211112112 2 212 --(g6%8)[-2535](37 6)<-2572(19769)[T18T6SD(#^19)]>[T18T6S(D^6)(#^14)]>[S(D^6)(#^14)]>[P(D^8)(#^14)]>(1(#^18))[1DDDD(#^14)](+0)
 11D211211D211211D211211S211211D211211B211 1122111112112112112111111211212 2 11221 --(g5%8)[-2536](52 5)<-2588(19846)[1(#^18)]>[1DDDD(#^14)]>[PDDD(#^14)]>[S6d6BDSDDDDD(#^14)]>(H6T22(#^16))[H6T22DD(#^14)](+0)
11121121 111D211211D211211D211211S211211S211211D211211D211211S211211D21 22211211121111111111111121211111 1 2 --(g0%8)[-2539](33 0)<-2572(19950)[H6T22(#^16)]>[H6T22DD(#^14)]>[DD(#^14)]>[B6d6DSDDSSDDD(#^14)]>(1T6S(#^17))[1T6SDDD(#^14)](+0)
1 D211211D211211D211211D211211D211211S211211D21 2111211111122111221112112112112112112112112111121111211 2 2212 --(g4%8)[-2548](40 4)<-2588(20052)[1T6S(#^17)]>[1T6SDDD(#^14)]>[SDDD(#^14)]>[B6d6DS(D^7)(#^14)]>((#^16))[DD(#^14)](+0)
 111D211211D211211D211211S211211D211211S211211S211211D211211S211211S211211B211211D2112111 21111 2 11111122121112111111121111111212211112 --(g2%8)[-2517](15 2)<-2532(20189)[(#^16)]>[DD(#^14)]>[DD(#^14)]>[SPDBSSDSSDSDDD(#^14)]>(T18T18T6S(#^22))[T18T18T6SDSSDSDDD(#^14)](+0)
2111 D211211D211211S211211D21 22211211121111111111111121211111 1 2 --(g0%8)[-2523](33 0)<-2556(20250)[T18T18T6S(#^22)]>[T18T18T6SDSSDSDDD(#^14)]>[SDSSDSDDD(#^14)]>[B6d6DSDDSSDSDDD(#^14)]>(1T6S(#^19))[1T6SDSDDD(#^14)](+0)
1 S211211D211211D211211E211121111111211121121  2 111112111211 --(g0%8)[-2534](38 0)<-2572(20310)[1T6S(#^19)]>[1T6SDSDDD(#^14)]>[SDSDDD(#^14)]>[T6SPDSSDDD(#^14)]>(T6S(#^17))[T6SDDD(#^14)](+0)
11 S211211S211211D211211D211211E211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2538](10 3)<-2548(20389)[T6S(#^17)]>[T6SDDD(#^14)]>[SDDD(#^14)]>[B6d6DSSDSSPDSSDD(#^14)]>((#^21))[SPDSSDD(#^14)](+0)
121121212 D211211D211211E211121111111211121121  2 111112111211 --(g0%8)[-2542](38 0)<-2580(20448)[(#^21)]>[SPDSSDD(#^14)]>[SDSSDD(#^14)]>[T6SPDSSDD(#^14)]>(T6S(#^16))[T6SDD(#^14)](+0)
11 D211211#211211B211211B211211S211211B2112 221122111112121122211211122 2 111111 --(g7%8)[-2563](17 7)<-2580(20527)[T6S(#^16)]>[T6SDD(#^14)]>[SDD(#^14)]>[PDBSBB#DD(#^14)]>((#^17))[#DD(#^14)](+0)
 111D211211D211211D211211B2112111 2122211211211211111211211211211211211211211122221121121121111211112221121121121121 1  --(g4%8)[-2556](32 4)<-2588(20640)[(#^17)]>[#DD(#^14)]>[#DD(#^14)]>[SPBDDDD(#^14)]>(SDDS(#^16))[SDDSDD(#^14)](+0)
 D211211D211211D2112 2111111221211112112112112112112122111121112111211211122112121 1 2 --(g1%8)[-2557](23 1)<-2580(20719)[SDDS(#^16)]>[SDDSDD(#^14)]>[SDDSDD(#^14)]>[PDDDDDSDD(#^14)]>(S(#^16))[SDD(#^14)](+0)
 D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122 1 12 --(g5%8)[-2561](27 5)<-2588(20799)[S(#^16)]>[SDD(#^14)]>[SDD(#^14)]>[S6d6BDBDDDD(#^14)]>(1B(#^16))[1BDD(#^14)](+0)
 #211211#211211#211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2562](10 3)<-2572(20854)[1B(#^16)]>[1BDD(#^14)]>[SDD(#^14)]>[B6d6DSSDS###D(#^14)]>((#^18))[###D(#^14)](+0)
 111#211211#211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2562](10 3)<-2572(20906)[(#^18)]>[###D(#^14)]>[###D(#^14)]>[B6d6DSSDS###D(#^14)]>((#^18))[###D(#^14)](+0)
 111D211211D211211D211211B211 11111221221121121121121111121 2 21121121121121122111112111222 --(g3%8)[-2542](46 3)<-2588(20991)[(#^18)]>[###D(#^14)]>[###D(#^14)]>[S6d6BDDD#D(#^14)]>((#^16))[#D(#^14)](+0)
 111D211211D211211D211211D211211D211211D211211D2112 22112112221121121222211112 2 22111111112222 --(g6%8)[-2553](43 6)<-2596(21075)[(#^16)]>[#D(#^14)]>[#D(#^14)]>[P(D^8)(#^14)]>(1t48(#^15))[1t48D(#^14)](+0)
1 111#211211#211211D211211D211211D211211S211211D211211B211211D211211D211211B211211D21 221211211211211211211211221121121221121121112211111111 1 1111112 --(g3%8)[-2540](24 3)<-2564(21216)[1t48(#^15)]>[1t48D(#^14)]>[D(#^14)]>[B6d6DBDDBDSDDD(#^15)]>(S(#^18))[SDDD(#^15)](+0)
 D211211D211211D211211D211211D211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2530](10 3)<-2540(21283)[S(#^18)]>[SDDD(#^15)]>[SDDD(#^15)]>[B6d6DSSDS(D^7)(#^15)]>((#^22))[(D^7)(#^15)](+0)
 111D211211B211 1112112121121111211211211211121121121121121122221 1 22 --(g3%8)[-2527](37 3)<-2564(21349)[(#^22)]>[(D^7)(#^15)]>[(D^7)(#^15)]>[S6d6B(D^6)(#^15)]>(DDB(#^19))[DDBDDDD(#^15)](+0)
11212 S211211S211211B211211B211211S211211B2112 221122111112121122211211122 2 111111 --(g7%8)[-2539](17 7)<-2556(21437)[DDB(#^19)]>[DDBDDDD(#^15)]>[SDDDD(#^15)]>[PDBSBBSSDDD(#^15)]>((#^20))[SSDDD(#^15)](+0)
 211211S211211D211211B211211B211211S211211B2112 221122111112121122211211122 2 111111 --(g7%8)[-2531](17 7)<-2548(21523)[(#^20)]>[SSDDD(#^15)]>[SSDDD(#^15)]>[PDBSBBDSSDDD(#^15)]>((#^21))[DSSDDD(#^15)](+0)
 111211211D211211#211211B211211B211211S211211B2112 221122111112121122211211122 2 111111 --(g7%8)[-2523](17 7)<-2540(21609)[(#^21)]>[DSSDDD(#^15)]>[DSSDDD(#^15)]>[PDBSBB#DSSDDD(#^15)]>((#^22))[#DSSDDD(#^15)](+0)
 111D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122 1 12 --(g5%8)[-2521](27 5)<-2548(21692)[(#^22)]>[#DSSDDD(#^15)]>[#DSSDDD(#^15)]>[S6d6BDBDDDSSDDD(#^15)]>(1B(#^21))[1BDSSDDD(#^15)](+0)
 D211211D211211E211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2522](10 3)<-2532(21751)[1B(#^21)]>[1BDSSDDD(#^15)]>[SDSSDDD(#^15)]>[B6d6DSSDSSPDSSDDD(#^15)]>((#^23))[SPDSSDDD(#^15)](+0)
121121212 D211211D211211E211121111111211121121  2 111112111211 --(g0%8)[-2526](38 0)<-2564(21810)[(#^23)]>[SPDSSDDD(#^15)]>[SDSSDDD(#^15)]>[T6SPDSSDDD(#^15)]>(T6S(#^18))[T6SDDD(#^15)](+0)
11 S211211D211211D211211D211211B211 1112112121121111211211211211121121121121121122221 1 22 --(g3%8)[-2527](37 3)<-2564(21896)[T6S(#^18)]>[T6SDDD(#^15)]>[SDDD(#^15)]>[S6d6BDDDSDD(#^15)]>(DDB(#^19))[DDBDSDD(#^15)](+0)
11212 S211211D211211D211211E211121111111211121121  2 111112111211 --(g0%8)[-2534](38 0)<-2572(21960)[DDB(#^19)]>[DDBDSDD(#^15)]>[SDSDD(#^15)]>[T6SPDSSDD(#^15)]>(T6S(#^17))[T6SDD(#^15)](+0)
11 D211211D211211D211211D211211D211211B211 1112112121121111211211211211121121121121121122221 1 22 --(g3%8)[-2527](37 3)<-2564(22049)[T6S(#^17)]>[T6SDD(#^15)]>[SDD(#^15)]>[S6d6B(D^6)(#^15)]>(DDB(#^19))[DDBDDDD(#^15)](+0)
 111S211211D211211D211211S211211D21 222112112111112112112112 2 112222 --(g6%8)[-2535](29 6)<-2564(22115)[DDB(#^19)]>[DDBDDDD(#^15)]>[DDBDDDD(#^15)]>[B6d6DSDDSBDDDD(#^15)]>((#^19))[DDDD(#^15)](+0)
 111D211211D211211S211211D211211S211211S211211B211211D2112111 21111 2 11111122121112111111121111111212211112 --(g2%8)[-2525](15 2)<-2540(22222)[(#^19)]>[DDDD(#^15)]>[DDDD(#^15)]>[SPDBSSDSDDDD(#^15)]>(T18T18T6S(#^21))[T18T18T6SDSDDDD(#^15)](+0)
2111 D211211B211 1122111112112112112111111211212 2 11221 --(g5%8)[-2536](52 5)<-2588(22274)[T18T18T6S(#^21)]>[T18T18T6SDSDDDD(#^15)]>[SDSDDDD(#^15)]>[S6d6BDSDDDD(#^15)]>(H6T22(#^16))[H6T22D(#^15)](+0)
11121121 111#211211#211211#211211#211211#211211D211211D211211S211211D211211B211211D211211D211211B211211D21 221211211211211211211211221121121221121121112211111111 1 1111112 --(g3%8)[-2516](24 3)<-2540(22434)[H6T22(#^16)]>[H6T22D(#^15)]>[D(#^15)]>[B6d6DBDDBDSDD(#^19)]>(S(#^21))[SDD(#^19)](+0)
 D211211D211211D211211D211211D211211D211211B211 1112112121121111211211211211121121121121121122221 1 22 --(g3%8)[-2487](37 3)<-2524(22527)[S(#^21)]>[SDD(#^19)]>[SDD(#^19)]>[S6d6B(D^7)(#^19)]>(DDB(#^24))[DDBDDDDD(#^19)](+0)
11212 B211211D211211D211211D211211S211211S211211B211211D2112111 21111 2 11111122121112111111121111111212211112 --(g2%8)[-2477](15 2)<-2492(22635)[DDB(#^24)]>[DDBDDDDD(#^19)]>[SDDDDD(#^19)]>[SPDBSSDDDBDDDD(#^19)]>(T18T18T6S(#^27))[T18T18T6SDDDBDDDD(#^19)](+0)
2111 D2112 2111112112112221121121121111121112121122222211121 1  --(g1%8)[-2511](13 1)<-2524(22693)[T18T18T6S(#^27)]>[T18T18T6SDDDBDDDD(#^19)]>[SDDDBDDDD(#^19)]>[PDDDDBDDDD(#^19)]>(S6d6B(#^23))[S6d6BDDDD(#^19)](+0)
21212 #211211#211211B211211B211211S211211B2112 221122111112121122211211122 2 111111 --(g7%8)[-2507](17 7)<-2524(22775)[S6d6B(#^23)]>[S6d6BDDDD(#^19)]>[SDDDD(#^19)]>[PDBSBB##DDD(#^19)]>((#^24))[##DDD(#^19)](+0)
 111D211211D211211B211 1112112121121111211211211211121121121121121122221 1 22 --(g3%8)[-2503](37 3)<-2540(22847)[(#^24)]>[##DDD(#^19)]>[##DDD(#^19)]>[S6d6BDDDDD(#^19)]>(DDB(#^22))[DDBDDD(#^19)](+0)
11212 D211211D211211D211211D211211D211211D211211D2112 2111111221211112112112112112112122111121112111211211122112121 1 2 --(g1%8)[-2501](23 1)<-2524(22955)[DDB(#^22)]>[DDBDDD(#^19)]>[SDDD(#^19)]>[P(D^10)(#^19)]>(D(#^23))[DDDDD(#^19)](+0)
 111D211211D211211D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122 1 12 --(g5%8)[-2489](27 5)<-2516(23050)[D(#^23)]>[DDDDD(#^19)]>[DDDDD(#^19)]>[S6d6BDB(D^8)(#^19)]>(1B(#^25))[1B(D^6)(#^19)](+0)
 D211211S211211D211211B211211D211211D211211B211211D21 221211211211211211211211221121121221121121112211111111 1 1111112 --(g3%8)[-2484](24 3)<-2508(23163)[1B(#^25)]>[1B(D^6)(#^19)]>[S(D^6)(#^19)]>[B6d6DBDDBDS(D^6)(#^19)]>(S(#^25))[S(D^6)(#^19)](+0)
 B211 11111221221121121121121111121 2 21121121121121122111112111222 --(g3%8)[-2502](46 3)<-2548(23227)[S(#^25)]>[S(D^6)(#^19)]>[S(D^6)(#^19)]>[S6d6BDDDDD(#^19)]>((#^21))[DD(#^19)](+0)
 111D211211D211211D211211D211211D211211D211211D211211D211211S211211D21 2111211111122111221112112112112112112112112111121111211 2 2212 --(g4%8)[-2500](40 4)<-2540(23349)[(#^21)]>[DD(#^19)]>[DD(#^19)]>[B6d6DS(D^8)(#^19)]>((#^22))[DDD(#^19)](+0)
 111D211211D211211D211211S211211D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122 1 12 --(g5%8)[-2489](27 5)<-2516(23459)[(#^22)]>[DDD(#^19)]>[DDD(#^19)]>[S6d6BDBDDDSDDDD(#^19)]>(1B(#^25))[1BDSDDDD(#^19)](+0)
 D211211B211 1122111112112112112111111211212 2 11221 --(g5%8)[-2504](52 5)<-2556(23507)[1B(#^25)]>[1BDSDDDD(#^19)]>[SDSDDDD(#^19)]>[S6d6BDSDDDD(#^19)]>(H6T22(#^20))[H6T22D(#^19)](+0)
11121121 111#211211#211211#211211#211211#211211D211211S211211D211211D211211D211211D211211D211211D2112 2111111221211112112112112112112122111121112111211211122112121 1 2 --(g1%8)[-2477](23 1)<-2500(23660)[H6T22(#^20)]>[H6T22D(#^19)]>[D(#^19)]>[P(D^7)SD(#^23)]>(D(#^26))[DDSD(#^23)](+0)
 111S211211D211211D211211E211121111111211121121  2 111112111211 --(g0%8)[-2478](38 0)<-2516(23722)[D(#^26)]>[DDSD(#^23)]>[DDSD(#^23)]>[T6SPDSSD(#^23)]>(T6S(#^24))[T6SD(#^23)](+0)
11 D211211D211211D211211D211211D211211D211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2474](10 3)<-2484(23797)[T6S(#^24)]>[T6SD(#^23)]>[SD(#^23)]>[B6d6DSSDS(D^6)(#^23)]>((#^29))[(D^6)(#^23)](+0)
 111D211211B211 1112112121121111211211211211121121121121121122221 1 22 --(g3%8)[-2471](37 3)<-2508(23863)[(#^29)]>[(D^6)(#^23)]>[(D^6)(#^23)]>[S6d6BDDDDD(#^23)]>(DDB(#^26))[DDBDDD(#^23)](+0)
11212 S211211S211211D211211B211211D211211D211211B211211D21 221211211211211211211211221121121221121121112211111111 1 1111112 --(g3%8)[-2476](24 3)<-2500(23984)[DDB(#^26)]>[DDBDDD(#^23)]>[SDDD(#^23)]>[B6d6DBDDBDSSDD(#^23)]>(S(#^26))[SSDD(#^23)](+0)
 211211D211211D211211D211211B211 1112112121121111211211211211121121121121121122221 1 22 --(g3%8)[-2463](37 3)<-2500(24065)[S(#^26)]>[SSDD(#^23)]>[SSDD(#^23)]>[S6d6BDDDSDD(#^23)]>(DDB(#^27))[DDBDSDD(#^23)](+0)
 111D211211D211211D2112 2111112112112221121121121111121112121122222211121 1  --(g1%8)[-2479](13 1)<-2492(24134)[DDB(#^27)]>[DDBDSDD(#^23)]>[DDBDSDD(#^23)]>[PDDDDBDSDD(#^23)]>(S6d6B(#^27))[S6d6BDSDD(#^23)](+0)
21212 S211211D211211D211211E211121111111211121121  2 111112111211 --(g0%8)[-2470](38 0)<-2508(24198)[S6d6B(#^27)]>[S6d6BDSDD(#^23)]>[SDSDD(#^23)]>[T6SPDSSDD(#^23)]>(T6S(#^25))[T6SDD(#^23)](+0)
11 D211211D211211D211211D211211D211211D211211B211211D211211B211 1121211112112111121121121121111112112122 1 12 --(g5%8)[-2465](27 5)<-2492(24298)[T6S(#^25)]>[T6SDD(#^23)]>[SDD(#^23)]>[S6d6BDB(D^7)(#^23)]>(1B(#^28))[1BDDDDD(#^23)](+0)
 B211211B211211S211211B2112 221122111112121122211211122 2 111111 --(g7%8)[-2483](17 7)<-2500(24363)[1B(#^28)]>[1BDDDDD(#^23)]>[SDDDDD(#^23)]>[PDBSBBDDDD(#^23)]>((#^27))[DDDD(#^23)](+0)
 111D211211D211211D211211D211211D2112 22112112221121121222211112 2 22111111112222 --(g6%8)[-2481](43 6)<-2524(24435)[(#^27)]>[DDDD(#^23)]>[DDDD(#^23)]>[P(D^8)(#^23)]>(1t48(#^24))[1t48D(#^23)](+0)
1 111#211211#211211#211211D211211D211211D211211B211 11111221221121121121121111121 2 21121121121121122111112111222 --(g3%8)[-2470](46 3)<-2516(24539)[1t48(#^24)]>[1t48D(#^23)]>[D(#^23)]>[S6d6BDDD(#^25)]>((#^25))[(#^25)]
 111#211211#211211D211211S211211S211211D211211D211211E211121111111211121121  2 111112111211 --(g0%8)[-2462](38 0)<-2500(24628)[(#^25)]>[(#^25)]>[(#^25)]>[T6SPDSSD(#^25)]>(T6S(#^26))[T6SD(#^25)](+0)
11 #211211D211211S211211D211211#211211#211211S211211D211211S211211S211211D21 2 2  --(g3%8)[-2458](10 3)<-2468(24706)[T6S(#^26)]>[T6SD(#^25)]>[SD(#^25)]>[B6d6DSSDS##DSD(#^26)]>((#^31))[##DSD(#^26)](+0)
 111S211211S211211B211211D2112111 21111 2 11111122121112111111121111111212211112 --(g2%8)[-2461](15 2)<-2476(24786)[(#^31)]>[##DSD(#^26)]>[##DSD(#^26)]>[SPDBSSDSD(#^26)]>(T18T18T6S(#^29))[T18T18T6SDSD(#^26)](+0)
2111 D211211B211211D211211D211211B211211D21 221211211211211211211211221121121221121121112211111111 1 1111112 --(g3%8)[-2468](24 3)<-2492(24888)[T18T18T6S(#^29)]>[T18T18T6SDSD(#^26)]>[SDSD(#^26)]>[B6d6DBDDBDSD(#^26)]>(S(#^27))[SD(#^26)](+0)
 D211211D211211S211211D211211B211211D211211D211211B211211D21 221211211211211211211211221121121221121121112211111111 1 1111112 --(g3%8)[-2460](24 3)<-2484(25007)[S(#^27)]>[SD(#^26)]>[SD(#^26)]>[B6d6DBDDBDSDD(#^26)]>(S(#^28))[SDD(#^26)](+0)
 D211211D211211D211211S211211S211211B211211D2112111 21111 2 11111122121112111111121111111212211112 --(g2%8)[-2453](15 2)<-2468(25102)[S(#^28)]>[SDD(#^26)]>[SDD(#^26)]>[SPDBSSDDDD(#^26)]>(T18T18T6S(#^30))[T18T18T6SDDDD(#^26)](+0)
2111 D211211B211 1112112121121111211211211211121121121121121122221 1 22 --(g3%8)[-2455](37 3)<-2492(25169)[T18T18T6S(#^30)]>[T18T18T6SDDDD(#^26)]>[SDDDD(#^26)]>[S6d6BDDDD(#^26)]>(DDB(#^28))[DDBDD(#^26)](+0)
112111111 211211D211211D211211E211121111111211121121  2 111112111211 --(g0%8)[-2454](38 0)<-2492(25234)[DDB(#^28)]>[DDBDD(#^26)]>[SSSD(#^26)]>[T6SPDSSD(#^26)]>(T6S(#^27))[T6SD(#^26)](+0)
11 #211211D211211D211211D211211D211211D211211D211211D211211D211211D211211D2112 2211111211221122111121112111211111112121211211211211112112112112121 2 22 --(g6%8)[-2450](10 6)<-2460(25370)[T6S(#^27)]>[T6SD(#^26)]>[SD(#^26)]>[P(D^11)(#^27)]>(1P(#^32))[1PDDDDD(#^27)](+0)
 1S211211D211211B211 1122111112112112112111111211212 2 11221 --(g5%8)[-2440](52 5)<-2492(25428)[1P(#^32)]>[1PDDDDD(#^27)]>[BDDDDD(#^27)]>[S6d6BDSDDDD(#^27)]>(H6T22(#^28))[H6T22D(#^27)](+0)
11121121 111#211211#211211D211211D211211D211211S211211S211211B211211D2112111 21111 2 11111122121112111111121111111212211112 --(g2%8)[-2445](15 2)<-2460(25546)[H6T22(#^28)]>[H6T22D(#^27)]>[D(#^27)]>[SPDBSSDDD(#^28)]>(T18T18T6S(#^31))[T18T18T6SDDD(#^28)](+0)
2111 D211211B211211D211211B211 1121211112112111121121121121111112112122 1 12 --(g5%8)[-2457](27 5)<-2484(25618)[T18T18T6S(#^31)]>[T18T18T6SDDD(#^28)]>[SDDD(#^28)]>[S6d6BDBDDD(#^28)]>(1B(#^29))[1BD(#^28)](+0)
 #211211D211211S211211S211211D211211D211211D211211D211211D211211D2112 2211111211221122111121112111211111112121211211211211112112112112121 2 22 --(g6%8)[-2442](10 6)<-2452(25752)[1B(#^29)]>[1BD(#^28)]>[SD(#^28)]>[P(D^7)SSD(#^29)]>(1P(#^33))[1PDSSD(#^29)](+0)
 1D211211D211211E211121111111211121121  2 111112111211 --(g0%8)[-2430](38 0)<-2468(25803)[1P(#^33)]>[1PDSSD(#^29)]>[BDSSD(#^29)]>[T6SPDSSD(#^29)]>(T6S(#^30))[T6SD(#^29)](+0)
11 #211211D211211D211211D211211B211 1112112121121111211211211211121121121121121122221 1 22 --(g3%8)[-2431](37 3)<-2468(25886)[T6S(#^30)]>[T6SD(#^29)]>[SD(#^29)]>[S6d6BDDD(#^30)]>(DDB(#^31))[DDBD(#^30)](+0)
11212 S211211D211211D211211D211211D2112 2111111221211112112112112112112122111121112111211211122112121 1 2 --(g1%8)[-2445](23 1)<-2468(25985)[DDB(#^31)]>[DDBD(#^30)]>[SD(#^30)]>[PDDDDDS(#^30)]>(S(#^30))[S(#^30)]
 #211211D211211D211211D211211D211211D211211D211211D2112 22112112221121121222211112 2 22111111112222 --(g6%8)[-2425](43 6)<-2468(26072)[S(#^30)]>[S(#^30)]>[S(#^30)]>[P(D^8)(#^30)]>(1t48(#^31))[1t48D(#^30)](+0)
1 111#211211#211211#211211D211211#211211B211211B211211S211211B2112 221122111112121122211211122 2 111111 --(g7%8)[-2427](17 7)<-2444(26171)[1t48(#^31)]>[1t48D(#^30)]>[D(#^30)]>[PDBSBB#D(#^32)]>((#^34))[#D(#^32)](+0)
 111D211211S211211S211211B211211D2112111 21111 2 11111122121112111111121111111212211112 --(g2%8)[-2429](15 2)<-2444(26257)[(#^34)]>[#D(#^32)]>[#D(#^32)]>[SPDBSSD(#^32)]>(T18T18T6S(#^33))[T18T18T6SD(#^32)](+0)
2111 D211211S211211S211211B211211D2112111 21111 2 11111122121112111111121111111212211112 --(g2%8)[-2429](15 2)<-2444(26344)[T18T18T6S(#^33)]>[T18T18T6SD(#^32)]>[SD(#^32)]>[SPDBSSD(#^32)]>(T18T18T6S(#^33))[T18T18T6SD(#^32)](+0)
2111 S211211S211211B211211D2112111 21111 2 11111122121112111111121111111212211112 --(g2%8)[-2437](15 2)<-2452(26425)[T18T18T6S(#^33)]>[T18T18T6SD(#^32)]>[SD(#^32)]>[SPDBSS(#^32)]>(T18T18T6S(#^32))[T18T18T6S(#^32)]

[]
(The starting 253 bits creating [S]--0 are omited.)

Code: Select all

local g = golly()
g.setbase(2)
local debug, debugallowed, logging, showing
local log = io.open("c:\\Golly\\Test12Seqlog.txt", "w")
local showPrefix, showSufix = '', ''
debug, logging, showing = false, true, false
local skipSpaces = 473
local startDebugging = 1800
g.autoupdate(debug)
g.new("play12Sequence")

-- goal is to map what the sequence does with the elbowsStack, what it removes/adds on the stack,
-- what are prerequisities (required distance of other stack items)
-- some of the _rr moves in original classification could be described (at least) two ways, as they do not require [2,-8],
-- but could clearly delete it
-- sequences should be split into prime ones nonprefix, (maybe even nonsufix) representation, to make their use more effective
-- the input is in [2,0] start, so [3,0][5,0] starting sequences should be prefixed by a "to_honey" on input
-- '1' "semidel" sequence is special as it ignores [2,0] top ... it is definitely primitive and not tested here
--
-- first stable distances:
-- [2,-6][2,0]
-- [3,*][2,0] -- unrelated
-- [4,*][2,0] -- unrelated
-- [5,x][2,0] -- [5,] is always first
-- [2,*][3,0] -- unrelated
-- [3,-8][3,0]
-- [4,-6][3,0]
-- [5,x][3,0] -- [5,] is always first
-- [2,*][4,0] -- unrelated
-- [3,-6][4,0]
-- [4,-6][4,0]
-- [5,x][4,0] -- [5,] is always first
-- [2,x][5,0] -- there is always [3,0] under [5,0]
-- [3,0][5,0]
-- [4,x][5,0] -- there is always [3,0] under [5,0
-- [5,x][5,0] -- [5,] is always first
-- when multiple [A,0] at the same time, order in name should be according the type ... [2,0][3,0][4,0][5,0]
-- let me try to avoid [4,x]

local minxpyLimit, maxxpyLimit, maxPopLimit, maxNonStackPopLimit = -4000, 160, 3200, 1200 --twice twice as usual
local minxpy, maxxpy, maxPop, maxNonStackPop
local pop, nonStackPop
local bits, bitsWithGliders = '', ''
local allBits = { '[PDBSSSDB]22112211111212121211[H2T14S]' }

local hadrons, hadronIds = {}, {}
local function newHadron(id, pattern, x, y, detectxpy, detectymx, detectCheck)
    --detectCheck ... pattern which should be empty to be sure with detection (depends on all hadrons tried in the decomposition)
    local node = {}
    node["id"], node["pattern"], node["x"], node["y"], node["detectxpy"], node["detectymx"], node["detectCheck"] = id, pattern, x, y, detectxpy, detectymx, detectCheck
    hadrons[id] = node
    hadronIds[#hadronIds + 1] = id
end

newHadron('0', g.parse("b2o$obo$2bo!"), 42, -42)
newHadron('1', g.parse("3o$2bo$bo!"), -5, 0)
newHadron('T', g.parse("bo$obo$obo$bo2$5b2o$4bo2bo$5b2o!"), 272, -282, -8, -552, { -1, 0, 0, 1, 1, 0 })
newHadron('t', g.parse("bo$obo$obo$bo2$5b2o$4bo2bo$5b2o!"), 272, -283, -8, -556, { -1, 0, 0, -1, 1, 0 })
newHadron('I', g.parse("o$o$o!"), 274, -279, -5, -553, { -1, 1 })
--newHadron('i',g.parse("o$o$o!"),274,-279,-5,-553,{-1,1})
newHadron('H', g.parse("b2o$o2bo$b2o2$6bo$5bobo$5bobo$6bo!"), 270, -280, -8, -552, { 0, -1, 0, 1, 1, 0 })
newHadron('h', g.parse("b2o$o2bo$b2o2$6bo$5bobo$5bobo$6bo!"), 269, -280, -8, -548, { -1, 0, 0, -1, 0, 1 })
newHadron('B', g.parse("2o$2o4$4b3o!"), 275, -277, -2, -552, { 2, 2, 3, 6, 5, 4 })
newHadron('P', g.parse("b2o$o2bo$o2bo$b2o2$5b3o!"), 274, -277, -2, -552, { 0, 1, 3, 6, 5, 4 })
newHadron('d', g.parse("3o2$4bo$4bo$4bo!"), 276, -275, 1, -551, { -1, -1, 1, 1, 0, 1, -1, 1, 1, -1 })
newHadron('D', g.parse("o$o$o2$2b3o!"), 277, -276, 1, -553, { -1, -1, 1, 1, 1, 0, 1, 5, 3, 3 })
newHadron('S', g.parse("3o"), 279, -272, 7, -551, { -3, -2, -1, 1, 1, -1 })
newHadron('L', g.parse("2o$2o!"), 282, -244, 38, -526)  -- to be ymx shifted?
newHadron('R', g.parse("2o$2o!"), 246, -282, -36, -528) -- to be ymx shifted?

local function putHadron(id, ymxShift, mode)
    --g.note("putHadron id="..id.." shift="..ymxShift)
    local pop = g.getpop() + 0
    g.putcells(hadrons[id].pattern, hadrons[id].x - ymxShift, hadrons[id].y + ymxShift, 1, 0, 0, 1, mode or "or")
    if not mode then
        return pop == g.getpop() - #hadrons[id].pattern // 2 -- no overwrite
    end
end

local function inDelimiters(name, leftDelimiter, rightDelimiter)
    return string.sub(name, string.find(name, '%' .. leftDelimiter) + 1, string.find(name, '%' .. rightDelimiter) - 1)
end

local function inttostring(num)
    return string.sub(num, 1, string.find(num .. ".", "%.") - 1)
end

local function split(str, delim)
    local ret, l, p = {}, 1, nil
    while l <= 1 + string.len(str) do
        p = string.find(str .. delim, '%' .. delim, l)
        ret[1 + #ret], l = string.sub(str, l, p - 1), p + 1
    end
    return ret
end

local function writeLog(msg)
    if log and logging then
        log:write(msg .. "\n")
    end
end

local function conditionsToString(conditions)
    local postConitions, ret
    if #conditions == 0 then
        g.note("no conditions?")
        return "{:}"
    end
    if #conditions < 2 then
        ret = "{:"
    else
        ret = "{" .. conditions[1] .. ":"
    end
    --  g.note("type conditions[1] ="..type(conditions[1]))
    --  g.note("type conditions["..#conditions.."] ="..type(conditions[#conditions]))
    ret = ret .. conditions[#conditions][1]
    for j = 2, #conditions[#conditions] do
        ret = ret .. "," .. conditions[#conditions][j]
    end
    ret = ret .. "}"
    return ret
end

local function isSmallAtMost1g(patternArray, orig)
    --g.show("iAM1g     "..bits)
    --g.note("iAM1g     "..bits)
    g.new("play12Sequence");
    g.select({ 279, -272, 1, 1 })
    g.putcells(patternArray)
    pop = g.getpop() + 0
    if pop > maxPopLimit then
        --
        if debug then
            g.note("pop>maxPop " .. pop)
        end
        if orig then
            writeLog("pop>maxPopLimit " .. pop)
        end
        return false
    end
    g.setbase(2)
    g.setstep(9)  -- to be sure glider if detected does not colide with the rest of the pattern
    g.step()
    g.putcells(patternArray, 0, 0, 1, 0, 0, 1, "xor") --and we have non p8 patternPart
    local tpop = g.getpop() + 0
    if tpop == 0 then
        return true
    elseif tpop ~= 10 then
        --g.note ("tpop~=10 "..tpop)
        if orig then
            writeLog("tpop~=10 " .. tpop)
        end
        return false
    end
    local i, gliderArray, movingpart
    gliderArray, movingpart = {}, g.getcells(g.getrect())
    g.new("play12Sequence");
    g.select({ 279, -272, 1, 1 })
    g.putcells(patternArray)
    for i = 1, #movingpart, 2 do
        if g.getcell(movingpart[i], movingpart[i + 1]) == 1 then
            gliderArray[1 + #gliderArray] = movingpart[i]
            gliderArray[1 + #gliderArray] = movingpart[i + 1]
        end
    end
    g.new("play12Sequence");
    g.select({ 279, -272, 1, 1 })
    g.putcells(gliderArray)
    tpop = g.getpop() + 0
    if tpop ~= 5 then
        if debug then
            g.note("tpop~=5 glider " .. tpop)
        end
        if orig then
            writeLog("tpop~=5 glider " .. tpop)
        end
        return false
    end
    g.putcells(gliderArray, -128, -128, 1, 0, 0, 1)
    g.putcells(movingpart, 0, 0, 1, 0, 0, 1, "xor")
    tpop = g.getpop() + 0
    if tpop ~= 0 then
        if debug then
            g.fit();
            g.note("tpop~=0 movingpart xor gliderpair " .. tpop)
        end
        if orig then
            writeLog("tpop~=0 movingpart xor gliderpair " .. tpop)
        end
        return false
    end
    if debug then
        g.note("ok, glider")
    end
    return true, gliderArray  -- 5 cells moving NW at c/4 is an allowed glider
end

local function extendDecomposition(decomposition, item)
    local i
    for i = #decomposition, 0, -1 do
        if i == 0 then
            decomposition[1] = item
        elseif string.find(item[1], '[01]') then
            decomposition[i + 1] = decomposition[i]
        elseif string.find(decomposition[i][1], '[01]') then
            decomposition[i + 1] = item
            break
        elseif string.find(item[1], '[RL]') then
            decomposition[i + 1] = decomposition[i]
        elseif string.find(decomposition[i][1], '[RL]') then
            decomposition[i + 1] = item
            break
        elseif decomposition[i][2] < item[2] then
            decomposition[i + 1] = decomposition[i]
        elseif decomposition[i][2] > item[2] then
            decomposition[i + 1] = item
            break
        elseif decomposition[i][1] > item[1] then
            decomposition[i + 1] = decomposition[i]
        else
            decomposition[i + 1] = item
            break
        end
    end
    return decomposition
end

local function decompositionToString(decomposition, shiftedStart, deltaymx)
    --lepší řazení, komprese?
    --g.show("dTS       "..bits)
    --  g.note("dTS       "..bits)
    local i, ret, prevPos
    ret = "]"
    --if debug then g.note("decmpostionToString #("..#decomposition..")") end
    for i = #decomposition, (not shiftedStart and 1 or shiftedStart), -1 do
        --if debug then g.note("decmpostionToString["..i.."]=('"..decomposition[i][1].."',"..decomposition[i][2]..")") end
        if not string.find('01', decomposition[i][1]) then
            if prevPos then
                if prevPos + 8 ~= decomposition[i][2] + (not deltaymx and 0 or deltaymx) then
                    ret = inttostring(decomposition[i][2] + (not deltaymx and 0 or deltaymx) - prevPos) .. ret
                end
            else
                if decomposition[i][2] + (not deltaymx and 0 or deltaymx) ~= 0 then
                    ret = inttostring(decomposition[i][2] + (not deltaymx and 0 or deltaymx)) .. ret
                end
            end
            prevPos = decomposition[i][2] + (not deltaymx and 0 or deltaymx)
        end
        ret = decomposition[i][1] .. ret
    end
    if shiftedStart and shiftedStart > 1 then
        --g.note(decompositionToString(decomposition)..","..shiftedStart..","..deltaymx.."->["..ret)
    end
    --if debug then g.note("decomposition..["..ret) end
    return "[" .. ret
end

local function hadronToDecomposition(decomposition, id, ymx)
    local stdymx = ymx - hadrons[id].detectymx
    local pop = 0 + g.getpop()
    putHadron(id, stdymx // 2, 'xor')
    if g.getpop() + (#hadrons[id].pattern) // 2 > pop then
        if debug then
            g.note("hadron does not match " .. id)
        end
        return
    end
    return true, extendDecomposition(decomposition, { id, stdymx })
end

local function isStackDecomposable(patternWithoutGliderArray)
    local i, j, xpy, ymx, stdymx
    -- I need to estimate the nonStackPop :(
    nonStackPop = 0
    for i = 1, #patternWithoutGliderArray, 2 do
        --fast checks first
        xpy = patternWithoutGliderArray[i] + patternWithoutGliderArray[i + 1]
        if minxpy > xpy then
            minxpy = xpy
        end
        if maxxpy < xpy then
            maxxpy = xpy
        end
        if xpy < -9 or xpy > 9 then
            nonStackPop = 1 + nonStackPop
        end
    end
    for i = 1, #patternWithoutGliderArray, 2 do
        --fast checks first
        xpy = patternWithoutGliderArray[i] + patternWithoutGliderArray[i + 1]
        if xpy < -36 or xpy > 40 then
            if (xpy == -59) or (xpy == -61) or (xpy == -62) then
                --part of R198 pattern ... boat
            elseif (xpy == -70) or (xpy == -71) or (xpy == -72) or (xpy == -73) or (xpy == -74) or (xpy == -75) or (xpy == -81) or (xpy == -82) or (xpy == -83) then
                -- part of R2398 pattern
            elseif (xpy >= -3500) and (xpy <= -2000) then
                -- part of DBCA construction
            else
                if debug then
                    g.note("iSD xpy out of bounds " .. xpy)
                end
                return false, "A" .. xpy
            end
        elseif xpy > 9 and xpy < 38 then
            if debug then
                g.note("iSD xpy in a big SE gap " .. xpy)
            end
            return false, "B" .. xpy
        elseif xpy > 3 and xpy < 7 then
            if debug then
                g.note("iSD xpy in a gap " .. xpy)
            end
            return false, "C" .. xpy
        elseif xpy > -34 and xpy < -10 then
            if debug then
                g.note("iSD xpy in a big NW gap " .. xpy)
            end
            return false, "D" .. xpy
        end
    end

    local decomposition = {}
    g.new("play12Sequence");
    g.select({ 279, -272, 1, 1 })
    g.putcells(patternWithoutGliderArray)
    local changed = true
    while changed do
        --g.show("iSD3_"..#decomposition.." "..bits)
        local tpop = g.getpop() + 0
        if tpop == 0 then
            return true, decomposition
        end
        g.fit()
        changed = false
        for i = 1, #patternWithoutGliderArray, 2 do
            xpy, ymx = patternWithoutGliderArray[i] + patternWithoutGliderArray[i + 1], patternWithoutGliderArray[i + 1] - patternWithoutGliderArray[i]
            local hIdDetected
            if xpy < -56 then
                g.setcell(patternWithoutGliderArray[i], patternWithoutGliderArray[i + 1], 0)
                patternWithoutGliderArray = g.getcells(g.getrect())
                changed = true
                break
            else
                for hId, hadron in pairs(hadrons) do
                    if hadron.detectxpy and hadron.detectxpy == xpy then
                        hIdDetected = hId
                        for j = 1, (hadron.detectCheck and #hadron.detectCheck) or 0, 2 do
                            if g.getcell(patternWithoutGliderArray[i] + hadron.detectCheck[j], patternWithoutGliderArray[i + 1] + hadron.detectCheck[j + 1]) == 1 then
                                if false and debug then
                                    g.note(hIdDetected .. "detectCheck failed " ..
                                            inttostring(patternWithoutGliderArray[i] + hadron.detectCheck[j]) .. "," ..
                                            inttostring(patternWithoutGliderArray[i + 1] + hadron.detectCheck[j + 1]) .. " " ..
                                            decompositionToString(decomposition))
                                end
                                hIdDetected = nil
                                break
                            end
                        end
                        if hIdDetected then
                            break
                        end
                    end
                end
                if hIdDetected then
                    changed, decomposition = hadronToDecomposition(decomposition, hIdDetected, ymx)
                    patternWithoutGliderArray = g.getcells(g.getrect())
                    break
                end
            end
        end
    end
    return false, '>' .. (patternWithoutGliderArray[1] + patternWithoutGliderArray[2]) -- some bits remained, but no more hadrons detected
    -- ... the detection is on small xpy so the pattern eventually expands to higher xpy so this prevents infinite cycles
end

local function getNWgliderMod8name(gliderArray)
    -- numbers could require linear shifts
    --g.show("gNWgm8n   "..bits)
    --g.note("gNWgm8n   "..bits)
    if not gliderArray then
        return "" --otherwise 5 cells!
    end
    g.new("play12Sequence");
    g.select({ 279, -272, 1, 1 })
    g.putcells(gliderArray)
    local i, xpy, maxxpy, maxxpyi, x, y, ymx, mod8
    maxxpy, maxxpyi = gliderArray[1] + gliderArray[2], 1
    for i = 3, 10, 2 do
        xpy = gliderArray[i] + gliderArray[i + 1]
        if maxxpy < xpy then
            maxxpy, maxxpyi = xpy, i
        end
    end
    x, y = gliderArray[maxxpyi] - 1, gliderArray[maxxpyi + 1] - 1 -- "central cell"
    if g.getcell(x + 1, y - 1) == 0 then
        if g.getcell(x, y - 1) == 0 then
            mod8 = 3 + 4 * (x % 2)
            ymx = y - x + 2
        else
            mod8 = 2 + 4 * (x % 2)
            ymx = y - x + 1
        end
    else
        if g.getcell(x - 1, y) == 0 then
            mod8 = 1 + 4 * ((x + 1) % 2)
            ymx = y - x - 1
        else
            mod8 = 4 * (x % 2)
            ymx = y - x
        end
    end
    mod8 = (mod8 + 5) % 8 --standardise
    ymx = ymx + 551 -- standardise
    --g.note("glider name: ("..inttostring(ymx).." "..inttostring(mod8)..")")
    return "(" .. inttostring(ymx) .. " " .. inttostring(mod8) .. ")"
end

local function namecost(name)
    local ret = nil
    local tmp
    if string.find(name, '%[I') then
        ret = string.len(name) - string.len(string.gsub(name, '%[I', '['))
    end
    if not string.find(name, '%[H') and string.find(name, "%[T") then
        tmp = string.len(name) - string.len(string.gsub(name, '%[T', '['))
        ret = (ret or 0) + 2 * ((tmp + 2) // 3)
    end
    return ret
end

local function shiftedGliderBits(bitsWithGliders, ymxDelta)
    local posOpen, posClose, ret
    ret = ""
    posOpen = string.find(bitsWithGliders, '%(')
    posClose = string.find(bitsWithGliders, '% ')
    while posOpen and posClose do
        ret = ret .. string.sub(bitsWithGliders, 1, posOpen) .. inttostring(ymxDelta + string.sub(bitsWithGliders, posOpen + 1, posClose - 1)) .. ' '
        bitsWithGliders = string.sub(bitsWithGliders, posClose + 1)
        posOpen = string.find(bitsWithGliders, '%(')
        posClose = string.find(bitsWithGliders, '% ')
    end
    return ret .. bitsWithGliders
end

local moves, oriMoves = {}, {}
local expectedMoveToWrite, expectedMoveWritten, translatedMoveToWrite

local function writeMove(oriDecomposition, bitsWithGliders, decomposition)
    local i, minLen, commonSufixLen, preDec, postDec, ymx, oriDebug
    local oriDebug = debug
    local oriDecStart = (string.find('01', oriDecomposition[1][1]) and 2) or 1
    --debug = string.find(decompositionToString(oriDecomposition),'[LR]')
    -- if debug then g.note("wM oriDecomposition:"..decompositionToString(oriDecomposition)
    --   .."\nbitsWithGliders:"..bitsWithGliders
    --   .."\n decomposition:"..decompositionToString(decomposition)) end
    minLen = #oriDecomposition - oriDecStart
    minLen = (minLen < 0) and 0 or minLen
    if minLen > #decomposition then
        minLen = #decomposition
    end
    commonSufixLen = minLen
    for i = 1, minLen do
        if oriDecomposition[#oriDecomposition + 1 - i][1] ~= decomposition[#decomposition + 1 - i][1]
                or oriDecomposition[#oriDecomposition + 1 - i][2] ~= decomposition[#decomposition + 1 - i][2] then
            commonSufixLen = i - 1
            break
        end
    end
    preDec, postDec = {}, {}
    ymx = oriDecomposition[#oriDecomposition - commonSufixLen][2]
    for i = oriDecStart, #oriDecomposition - commonSufixLen do
        preDec[#preDec + 1] = { oriDecomposition[i][1], oriDecomposition[i][2] - ymx }
    end
    for i = 1, #decomposition - commonSufixLen do
        postDec[i] = { decomposition[i][1], decomposition[i][2] - ymx }
    end
    if debug then
        g.note("wM oriDecomposition:" .. decompositionToString(oriDecomposition)
                .. "\nbitsWithGliders:" .. bitsWithGliders
                .. "\ndecomposition:" .. decompositionToString(decomposition)
                .. "\ncommonSufixLen:" .. commonSufixLen
                .. "\noriDecStart:" .. oriDecStart
                .. "\npreDec:" .. decompositionToString(preDec)
                .. "\npostDec:" .. decompositionToString(postDec))
    end
    local bottom = ''
    if oriDecomposition[#oriDecomposition - commonSufixLen + 1] then
        if oriDecomposition[#oriDecomposition - commonSufixLen + 1][2] + 8 ~= ymx then
            bottom = inttostring(ymx - oriDecomposition[#oriDecomposition - commonSufixLen + 1][2])
        end
        bottom = bottom .. oriDecomposition[#oriDecomposition - commonSufixLen + 1][1]
    else
        bottom = '_'
    end
    i = 1
    while i < #preDec and i <= #postDec and preDec[i][1] == postDec[i][1] and string.find('RL', preDec[i][1]) and (preDec[i][2] == postDec[i][2]) do
        i = i + 1
    end
    local no1bits, no0bits = string.gsub(bitsWithGliders, "1", ""), string.gsub(bitsWithGliders, "0", "")
    if string.sub(no1bits, 1, 1) == "(" and string.sub(no1bits, -1, -1) == ")" then
        no1bits = ""
    end
    if string.sub(no0bits, 1, 1) == "(" and string.sub(no0bits, -1, -1) == ")" then
        no1bits = ""
    end
    if no1bits == "" then
        while i < #preDec and i <= #postDec and preDec[i][1] == postDec[i][1] and preDec[i][1] == 'S' and (preDec[i][2] == postDec[i][2]) do
            i = i + 1
        end
    end
    if no0bits == "" then
        while i < #preDec and i <= #postDec and preDec[i][1] == postDec[i][1] and preDec[i][1] == 'I' and (preDec[i][2] == postDec[i][2]) do
            i = i + 1
        end
    end

    local move = decompositionToString(preDec, i) .. shiftedGliderBits(bitsWithGliders, -ymx) .. decompositionToString(postDec, i)
    if debug then
        g.note('ori' .. decompositionToString(oriDecomposition) ..
                '\nnew' .. decompositionToString(decomposition) ..
                '\npre' .. decompositionToString(preDec) ..
                '\npost' .. decompositionToString(postDec) ..
                '\nbottom' .. bottom ..
                '\nmove' .. move)
    end
    if expectedMoveToWrite then
        if debug then
            g.note("Expected " .. expectedMoveToWrite .. " got " .. move)
        end
        if translatedMoveToWrite ~= nil then
            if debug then
                g.note("transatedMoveToWrite:" .. translatedMoveToWrite .. " move:" .. move)
            end
            if move == expectedMoveToWrite then
                move = translatedMoveToWrite
            end
        elseif expectedMoveWritten == nil or expectedMoveWritten then
            expectedMoveWritten = move == expectedMoveToWrite
            debug = oriDebug
            return
        end
    end
    if debug then
        g.note("moves[" .. move .. "].push('" .. bottom .. "')")
    end
    if not moves[move] then
        writeLog(move)
        moves[move] = { '', { bottom } }
    else
        for i = 1, #moves[move] do
            if moves[move][2][i] == bottom then
                debug = oriDebug
                return
            end
        end
        moves[move][2][1 + #moves[move][1]] = bottom
    end
    debug = oriDebug
end

local function testSeparated(pattern, postNoGliderPattern, gliderPattern, firstBit)
    local secondBit = 1 - firstBit
    g.new("play12Sequence");
    g.select({ 279, -272, 1, 1 })
    g.putcells(pattern)
    putHadron(inttostring(firstBit), 0)
    putHadron(inttostring(secondBit), 4096)
    g.setbase(2)
    g.setstep(15)
    if debug then
        g.fit();
        g.note("test separated pre step")
    end
    g.step()
    if debug then
        g.fit()
        g.note("test separated post step")
    end
    g.putcells(postNoGliderPattern, 0, 0, 1, 0, 0, 1, "xor")
    local popXor = 0 + g.getpop()
    if gliderPattern then
        return popXor == 5
    else
        return popXor == 0
    end
end

local evt
local function bitStep(pattern, bit, extrabit, orig)
    local isOK, gliderPattern, postPattern, postNoGliderPattern
    --writeLog("bitStep(pattern,"..bit..","..(extrabit or '')..")")
    evt = g.getevent()
    if evt:find("key d none") == 1 then
        debug = not debug
        g.note('debug set to ' .. (debug and "true" or "false"))
    else
        g.doevent(evt)
    end
    if extrabit then
        g.autoupdate(debug)
        g.setlayer(0)
    end
    g.new("play12Sequence");
    g.select({ 279, -272, 1, 1 })
    g.putcells(pattern)
    if 0 + bit ~= 0 then
        putHadron('1', 0)
    end
    if 0 + bit ~= 1 then
        putHadron('0', 0)
    end
    g.setbase(2)
    g.setstep(14)
    if debug then
        g.fit();
        g.note("bitStep(" .. bit .. "," .. type(extrabit) .. " " .. (extrabit or '') .. ") pre step")
    end
    g.step()
    if debug then
        g.fit();
        g.note("bitStep(" .. bit .. "," .. type(extrabit) .. " " .. (extrabit or '') .. ") post step")
    end
    postPattern = g.getcells(g.getrect())
    if extrabit then
        if debug then
            g.note("extrabit setaration test")
        end
        g.setlayer(1)
        g.new("play12Sequence");
        g.select({ 279, -272, 1, 1 })
        g.putcells(pattern)
        if extrabit == "0" then
            putHadron('1', 0)
        end
        if extrabit == "1" then
            putHadron('0', 0)
        end
        g.setbase(2)
        g.setstep(14)
        if debug then
            g.fit();
            g.note("bitStep separated, first glider) pre step")
        end
        g.step()
        if debug then
            g.fit();
            g.note("bitStep separated, first glider) post step")
        end
        local midPattern = g.getcells(g.getrect())
        g.fit()
        if debug then
            g.note("midPattern")
        end
        isOK, gliderPattern = isSmallAtMost1g(midPattern)
        if not isOK then
            g.fit()
            if debug then
                g.note("bad midPattern")
            end
            return false
        end
        g.putcells(midPattern)
        if gliderPattern then
            --g.note("glider "..bitsWithGliders)
            g.putcells(gliderPattern, 0, 0, 1, 0, 0, 1, "xor")
            g.fit()
            if debug then
                g.note("glider removed")
            end
        end
        local midNoGliderPattern = g.getcells(g.getrect())
        if extrabit == "0" then
            putHadron('0', 0)
        end
        if extrabit == "1" then
            putHadron('1', 0)
        end
        g.setbase(2)
        g.setstep(14)
        if debug then
            g.fit();
            g.note("bitStep separated, second glider) pre step")
        end
        g.step()
        if debug then
            g.fit();
            g.note("bitStep separated, second glider) post step")
        end
        local endPattern = g.getcells(g.getrect())
        g.fit()
        if debug then
            g.note("pattern with the extrabit")
        end
        g.putcells(postPattern, 0, 0, 1, 0, 0, 1, "xor")
        g.fit()
        if debug then
            g.note("xored with pattern obtained by nonseparated bit gliders")
        end
        if gliderPattern then
            --g.note("glider "..bitsWithGliders)
            g.putcells(gliderPattern, 0, 0, 1, 0, 0, 1, "xor")
            g.fit()
            if debug then
                g.note("xored with emitted glider should be empty if separation works")
            end
        end
        if g.getpop() + 0 ~= 0 then
            return false
        end
        return isOK, midNoGliderPattern, gliderPattern
    end
    isOK, gliderPattern = isSmallAtMost1g(postPattern, orig)
    if isOK then
        g.new("play12Sequence");
        g.select({ 279, -272, 1, 1 })
        if postPattern then
            g.putcells(postPattern)
        end
        if gliderPattern then
            --g.note("glider "..bitsWithGliders)
            g.putcells(gliderPattern, 0, 0, 1, 0, 0, 1, "xor")
        end
        postNoGliderPattern = g.getcells(g.getrect())
    end
    return isOK, postNoGliderPattern, gliderPattern
end

--local b = io.open("c:\\Golly\\Bits.txt","r")
--bits=''

local function DoBits(shortstackdescription)
    local oriBits, pattern, postNoGliderPattern, gliderPattern, name, isOK, maxPop, maxNonStackPop
    local oriDecompositions, decomposition, oriGliderName, ymxOffs
    local ssd = shortstackdescription
    local countSpaceBits, countBits = 0, 0
    bitsWithGliders = ''
    minxpy, maxxpy, maxPop, maxNonStackPop = 0, 0, 0, 0
    g.new("play12Sequence");
    g.select({ 279, -272, 1, 1 })
    ymxOffs = 0
    --writeLog("DoBits("..shortstackdescription..","..(extrabit or '')..")")
    while shortstackdescription ~= "" do
        local hId, pos
        hId = string.sub(shortstackdescription, 1, 1)
        if not putHadron(hId, ymxOffs // 2) then
            return
        end
        shortstackdescription = string.sub(shortstackdescription, 2)
        pos = string.find(shortstackdescription .. "H", "[SPDdBtThHIRL]")
        if pos == 1 then
            ymxOffs = ymxOffs - 8
        else
            ymxOffs = ymxOffs - string.sub(shortstackdescription, 1, pos - 1)
        end
        shortstackdescription = string.sub(shortstackdescription, pos)
    end
    pattern = g.getcells(g.getrect())
    if debug then
        g.fit();
        g.note("DoBits(" .. ssd .. "," .. bits)
        g.setbase(2)
        g.setstep(2)
        g.step()
        g.new("play12Sequence");
        g.select({ 279, -272, 1, 1 })
        g.putcells(pattern)
    end
    local prevBit = ""
    local isCheckPoint = false
    while bits ~= "" do
        showSufix = bits
        g.show(showPrefix .. " " .. showSufix)
        local bit = string.sub(bits, 1, 1)
        bits = string.sub(bits, 2)
        while bit ~= "1" and bit ~= "2" do
            if skipSpaces <= countSpaceBits and bit ~= prevBit then
                if bit == ' ' then
                    showing = true
                    debug = startDebugging <= countSpaceBits
                end
            end
            if bit == "E" then
                bits = "1111" .. bits
            elseif bit == "S" then
                bits = "111" .. bits
            elseif bit == "B" then
                bits = "11" .. bits
                --elseif bit == "P" then
                --:only before special sequences"
                --    bits = "1" .. bits
            elseif bit == " " and bit ~= prevBit then
                countSpaceBits = countSpaceBits + 1
                isCheckPoint = true
                showPrefix = inttostring(countSpaceBits) .. " " .. inttostring(countBits)
                g.show(showPrefix .. " " .. showSufix)
                if isOK then
                    writeLog(countSpaceBits .. ":" .. decompositionToString(decomposition))
                end
            end
            prevBit = bit
            if bits == "" then
                return
            end
            bit = string.sub(bits, 1, 1)
            bits = string.sub(bits, 2)
        end
        prevBit = bit
        g.setlayer(0)
        isOK, postNoGliderPattern, gliderPattern = bitStep(pattern, bit, nil, true)
        if isCheckPoint then
            if showing then
                g.new("play12Sequence");
                g.select({ 279, -272, 1, 1 })
                g.putcells(postNoGliderPattern);
                g.fit()
                g.update()
                showing=false;
            end
            local isOK, decomposition = isStackDecomposable(postNoGliderPattern)
            if isOK then
                writeLog(countSpaceBits .. ":" .. decompositionToString(decomposition))
            else
                writeLog(countSpaceBits .. ":not decomposable " .. (not decomposition and "" or decomposition))
            end
            isCheckPoint = false
        end
        debug = false
        countBits = 1 + countBits
        if not isOK then
            if debug then
                g.note('ko isSmallAtMost1g')
            end
            writeLog('ko isSmallAtMost1g')
            return
        end
        g.new("play12Sequence");
        g.select({ 279, -272, 1, 1 })
        g.putcells(postNoGliderPattern);
        g.fit()
        isOK, decomposition = isStackDecomposable(postNoGliderPattern)
        g.new("play12Sequence");
        g.select({ 279, -272, 1, 1 })
        g.putcells(postNoGliderPattern)
        g.setpos(349, -272)
        g.setmag(2)
        if maxPop < pop then
            maxPop = pop
            if maxPop > maxPopLimit then
                if debug then
                    g.note('maxPopLimit exceeded ' .. maxPop)
                end
                writeLog('maxPopLimit exceeded ' .. maxPop)
                return
            end
        end
        if maxNonStackPop < nonStackPop then
            maxNonStackPop = nonStackPop
            if maxNonStackPop > maxNonStackPopLimit then
                if debug then
                    g.note('NonStackPopLimit exceeded ' .. maxNonStackPop)
                end
                writeLog('NonStackPopLimit exceeded ' .. maxNonStackPop)
                return
            end
        end
        if minxpy < minxpyLimit then
            if debug then
                g.note('minxpyLimit exceeded ' .. minxpy)
            end
            writeLog('minxpyLimit exceeded ' .. minxpy)
            return
        end
        if maxxpy > maxxpyLimit then
            if debug then
                g.note('maxxpyLimit exceeded ' .. maxxpy)
            end
            writeLog('maxxpyLimit exceeded ' .. maxxpy)
            return
        end
        pattern = postNoGliderPattern
    end
end

local function allseq(start)
    local seqNo, pos, iniStack, saveBits
    for i = (not start and 1) or start, #allBits do
        --chosenI,chosenI do
        seqNo = i
        showPrefix = (inttostring(seqNo) .. "/" .. inttostring(#allBits))
        g.show(showPrefix .. " " .. showSufix)
        bits = allBits[seqNo]
        if string.sub(bits, 1, 1) == '[' then
            pos = string.find(bits, '%]')
            iniStack = string.sub(bits, 2, pos - 1)
            bits = string.sub(bits, pos + 1)
            pos = string.find(bits, '%[')
            bits = string.sub(bits, 1, pos - 1)
            pos = string.find(bits, '%(')
            while pos do
                bits = string.sub(bits, 1, pos - 1) .. string.sub(bits, string.find(bits, '%)') + 1)
                pos = string.find(bits, '%(')
            end
            --g.note("iniStack="..iniStack.." bits="..bits)
            saveBits = bits
            DoBits(iniStack);
            bits = saveBits
            -- DoBits(iniStack.."S");bits=saveBits
            -- DoBits(iniStack.."P");bits=saveBits
            -- DoBits(iniStack.."D");bits=saveBits
            -- DoBits(iniStack.."B");bits=saveBits
            -- DoBits(iniStack.."6d");bits=saveBits
            ---- DoBits(iniStack.."H");bits=saveBits -- spacing?
            ---- DoBits(iniStack.."T");bits=saveBits -- spacing?
        else
            DoBits('S');
            DoBits('SB');
            DoBits('SD');
            DoBits('SP');
            DoBits('SS');
            DoBits('HT');
            DoBits('I');
        end
        --  for j=3,6 do
        --    bits=allBits[seqNo]
        --    DoBits(3,j)
        --  end
    end
end

local function parseMove(moveConds)
    local preStack, postStack, conds, pos, move, extrabit, glider
    pos, conds = string.find(moveConds .. '{', '%{'), ""
    conds = string.sub(moveConds, pos + 1, string.find(moveConds .. '}', '%}') - 1)
    move = string.sub(moveConds, 1, pos - 1)
    pos = string.find(move, '%]')
    preStack = string.sub(move, 2, pos - 1)
    bits = string.sub(move, pos + 1)
    pos = string.find(bits, '%[')
    postStack = string.sub(bits, pos + 1, -2)
    bits = string.sub(bits, 1, pos - 1)
    glider, pos = '', string.find(bits, '%(')
    if pos then
        glider = inDelimiters(bits, '(', ')')
        bits = string.sub(bits, 1, pos - 1) .. string.sub(bits, string.find(bits, '%)') + 1)
    end
    extrabit = string.sub(postStack, 1, 1)
    if extrabit ~= "1" and extrabit ~= "0" then
        extrabit = nil
    end
    --g.note("pM type(extrabit):"..type(extrabit))
    return bits, move, conds, preStack, extrabit, postStack, glider
end

local function checkOddMovePrestack(iniStack)
    local ret, i = "", 1
    while i <= string.len(iniStack) do
        ret = ret .. string.sub(iniStack, i, i)
        local nextI = string.find(iniStack .. 'H', '[BDdPSHhTtI]', i + 1)
        local dist = string.sub(iniStack, i + 1, nextI - 1)
        if dist ~= "" and (0 + dist) % 2 == 1 then
            dist = inttostring(dist + 1)
        end
        ret = ret .. dist
        i = nextI
    end
    return ret
end

local function fileseq(filename, ignoreLineStartLen)
    local i = io.open(filename, "r")
    ignoreLineStartLen = ignoreLineStartLen or 4
    if not i then
        return
    end
    local inputLine, iniStack, saveBits, conds, cond, extrabit, postCondTable, move
    local moveLines, pos, pos2
    moveLines = ""
    while not pos2 do
        showPrefix = (filename .. ">" .. moveLines)
        g.show(showPrefix .. " " .. showSufix)
        inputLine = i:read()
        if not inputLine then
            break
        end
        pos2 = string.find(inputLine, '%-%-')
        if pos2 then
            inputLine = string.sub(inputLine, 1, pos2 - 1)
        end
        moveLines = moveLines .. " " .. inputLine
        pos = string.find(moveLines, '%]')
        pos2 = string.find(moveLines, '%]', pos + 1)
    end
    i:close()
    moveLines = string.sub(moveLines, 2)
    showPrefix = (filename .. ">" .. moveLines)
    g.show(showPrefix .. " " .. showSufix)
    saveBits, move, conds, iniStack, extrabit = parseMove(moveLines)
    --  g.note("saveBits:\n"..saveBits)
    --  g.note("move:\n"..move)
    --  g.note("conds:\n"..conds)
    --  g.note("iniStack:\n"..iniStack)
    --  g.note("iniStack:\n"..iniStack)
    showPrefix = ""--filename..">"..move.."\n"
    g.show(showPrefix .. " " .. showSufix)
    bits = saveBits;
    DoBits(iniStack) -- to check '_' condition
end

--debug=true;
g.autoupdate(false)
fileseq("c:\\Golly\\PlayBitSequence.txt") -- extension
--fileseq("c:\\Golly\\BlinkerBitSequences.txt",0) -- extension
--debugallowed=false;g.autoupdate(true)
--fileseq("c:\\Golly\\results.txt",0) -- extension
This is what I currently use for final testing of generated bits.

For global synchronization I should add cordership starting glider to the salvo pattern and sync its phase in the recepie decomposition ... why I didn't do it already? ... Uff ... starting glider is emitted as (2 3) (phase 3 mod 8 ), but is in sync with recipe at (phase 4 mod 8 ) ... .

Hmm, seems %4 was not wrong, but more carefull testing shown it was (g0%8)[-2532](g2%8)[-2532](g6%8)[-2532]. Now I got often more %8 variants with the same y-x, what could simplify botom positioning.

Code: Select all

local g = golly()
local gp = require "gplus"
local gpo = require "gplus.objects"

g.new("playLevels")
g.setbase(2)
g.setstep(14)
g.autoupdate(false)
g.setpos(500,-1200)
g.setmag(-2)
local block  =  g.parse("2o$2o") -- for alternatives ...
--g.parse("2E$2E") -- ... to see result in lifehistory ... would not detect alternatives
local glider = g.parse("b2o$2o$2bo")

local bn = require "../gplus.bignum"

local l = io.open("c:\\Golly\\BlinkerLevels.txt","r")
local a = io.open("c:\\Golly\\BlinkerLevelsA.txt","w")
--local log = io.open("c:\\Golly\\BlinkerLevels.log","w")

local aCache=""
local inputline = l:read()

local function writeACache()
  if a then
    a:write(aCache.."\n")
  end
  aCache=""
end

local function writeLog(msg)
  if log then
    log:write(msg.."\n")
  end
end

local function readXY()
  local startPos, endPos, ret
  startPos=string.find(inputline,'%[')+1
  endPos=string.find(inputline,'%]')-1
  ret=string.sub(inputline,startPos,endPos)-3232 -- blinkers center (y-x),((x+y)=8)
  return ret
end

local t=gp.pattern()
local t0=gp.pattern()
local tx=gp.pattern()
local ymx, mod8, xyshift, p, ymxshift, smod8, ap, amod8, minymx, maxymx, maxarange
maxarange = 0

local function tabletostring(t)
  local s=""
  s = s .. "{"
  for k, v in pairs(t) do
    if type(k)=="string" then
      s=s.."['"..k.."']="
    else
      s=s.."["..k.."]="
    end
    if type(v)=="string" then
      s=s.."'"..v.."', "
    elseif type(v)=="number" then
      s=s..v..", "
    elseif type(v)=="table" then
      s=s..tabletostring(v)..", "
    elseif type(v)=="boolean" then
      if v==true then
        s=s.."T, "
      else
        s=s.."F, "
      end
    elseif type(v)=="nil" then
        s=s.."nil,"
    end
  end
  s = s .. "}"
  return s
end


local function equalRerectFills(f1,f2) --we know the arrays have the same dimensions
  local i
  if #f1~=#f2 then return false end
  for i=1,#f1 do
    if f1[i]~=f2[i] then return false end
  end
  return true
end

local function inttostring(num)
  return string.sub(num,1,string.find(num..".","%.")-1)
end

local shift,blockShift = 3000,-500
while inputline do
  if string.sub(inputline,1,15)=="(block_right_r)" then
    ymx=readXY()+24
    g.show("(block_right_r) "..inttostring(shift-18-(ymx//2))..","..inttostring(shift-18+(ymx//2)))
    g.putcells(block,blockShift-18-(ymx//2),blockShift-18+(ymx//2))
    aCache=inputline
    writeACache()
  elseif string.sub(inputline,1,14)=="(block_left_r)" then
    ymx=readXY()+26
    g.show("(block_left_r) "..inttostring(19-(ymx//2))..","..inttostring(19+(ymx//2)))
    g.putcells(block,blockShift+19-(ymx//2),blockShift+19+(ymx//2))
    aCache=inputline
    writeACache()
  elseif string.sub(inputline,1,2)=="(g" then
    ymx=readXY()+1
    mod8=0+string.sub(inputline,3,3)
    xyshift=2*(ymx//4)
    t.array=g.getcells(g.getrect())
    tx.array=g.evolve(t.array,8)
    if not equalRerectFills(t.array,tx.array) then
      g.note("Not a p8 target")
    end
    t0=(t+gpo.glider[mod8].t(shift+xyshift-ymx,shift+xyshift))[16384]
    p=8
    maxymx,minymx=ymx,ymx
    local mask,m=0,1
    for i=0,7 do
      tx=(t+gpo.glider[i].t(shift+xyshift-ymx,shift+xyshift))[16384]
      if equalRerectFills(t0.array,tx.array) then
        mask = mask + m
      end
      m=m+m
    end
    if mask*16 == mask + 255*(mask%16) then
      p=4
      mask=mask % 16
      if mask*4 == mask + 15*(mask % 4) then
        p=2
        mask=mask % 4
        if mask == 3 then
          p,mask=1,1
        end
      end
    end
    aCache = ""
    if p>2 then
      for i=0,p-1 do
        if mask%2>0 then
          aCache=aCache.."(g"..inttostring(i).."%"..inttostring(p)..")["..inttostring(ymx-1+3232).."]"
        end
        mask=mask//2
      end
    else
      aCache="(g"..inttostring(mod8 % p).."%"..inttostring(p)..")["..inttostring(ymx-1+3232).."]"
      --writeLog("(g"..inttostring(mod8%p).."%"..inttostring(p)..")["..inttostring(ymx-1+3232).."]")
      for ymxshift=-10,10 do
        if ymxshift~=0 then
          local mask,m=0,1
          for i=0,7 do
            if i==p and mask==0 then
              break
            end
            tx=(t+gpo.glider[i].t(shift+xyshift-(ymx+ymxshift),shift+xyshift))[16384]
            if equalRerectFills(t0.array,tx.array) then
              mask = mask + m
            end
            m=m+m
          end
          if mask~=0 then
            if ymxshift<0 then
              if ymx+ymxshift<minymx then
                minymx = ymx+ymxshift
              end
            else
              if ymx+ymxshift>maxymx then
                maxymx = ymx+ymxshift
              end
            end
            ap=8
            if mask*16 == mask + 255*(mask%16) then
              ap=4
              mask=mask % 16
              if mask*4 == mask + 15*(mask % 4) then
                ap=2
                mask=mask % 4
                if mask == 3 then
                  ap,mask=1,1
                end
              end
            end
            if ap>2 then
              for i=0,ap-1 do
                if mask%2>0 then
                  aCache=aCache.."(g"..inttostring(i).."%"..inttostring(ap)..")["..inttostring(ymx+ymxshift-1+3232).."]"
                end
                mask=mask//2
              end
            else
              aCache=aCache.."(g"..inttostring(mask-1).."%"..inttostring(ap)..")["..inttostring(ymx+ymxshift-1+3232).."]"
            end
          end
        end
      end
    end
    g.show(maxymx..","..minymx..","..maxarange)
    if maxymx-minymx > maxarange then
      maxarange = maxymx-minymx
    end
    g.show(aCache)
    writeACache()
    g.putcells(g.evolve(glider,mod8),shift+xyshift-ymx,shift+xyshift)
    g.fit()
    --g.note("Check me pre")
    g.step()
    g.fit()
    --g.note("Check me post")
  else
    aCache=inputline
    writeACache()
  end
  inputline = l:read()
end

if a then
  a:close()
end

if l then
  l:close()
end

if log then
  log:close()
end

g.note("maxARange="..maxarange)

Code: Select all

(block_right_r)[-2508]
(g0%1)[-2480]
(g0%2)[-2477]
(g0%2)[-2479]
(g1%2)[-2463]
(g0%1)[-2482]
(g0%1)[-2471]
(g0%1)[-2472]
(g0%1)[-2463]
(g0%1)[-2474]
(g0%1)[-2469](g0%1)[-2468](g0%1)[-2467](g0%1)[-2466](g0%1)[-2465](g0%1)[-2464]
(g0%1)[-2439]
(g0%1)[-2439]
(g0%1)[-2432]
(g0%2)[-2447]
(g1%2)[-2427]
(g0%1)[-2419]
(g0%1)[-2412]
(g0%2)[-2427]
(g0%1)[-2508]
(g0%1)[-2498](g0%1)[-2502](g0%1)[-2499]
(g0%1)[-2503]
(g0%2)[-2508]
(g1%2)[-2502]
(g1%2)[-2495]
(g0%1)[-2496]
(g0%1)[-2488]
(g0%2)[-2496]
(g0%2)[-2509]
(g0%1)[-2501]
(g0%1)[-2534]
(g1%2)[-2530]
(g1%2)[-2527]
(g0%2)[-2538]
(g0%1)[-2545]
(g0%1)[-2534]
(g0%1)[-2543]
(g1%2)[-2543]
(g0%1)[-2547]
(g1%2)[-2528]
(g1%2)[-2535]
(g0%1)[-2527]
(g0%1)[-2536]
(g0%1)[-2546]
(g0%1)[-2553]
(g0%2)[-2545]
(g1%2)[-2522]
(g1%2)[-2528]
(g0%2)[-2528]
(g1%2)[-2538](g1%2)[-2537]
(g0%1)[-2533]
(g1%8)[-2518]
(g0%1)[-2526]
(g0%1)[-2532]
(g0%1)[-2524]
(g0%1)[-2527]
(g1%2)[-2543]
(g1%2)[-2525]
(g0%1)[-2537]
(g0%1)[-2544]
(g0%1)[-2546]
(g0%2)[-2527]
(g0%2)[-2535]
(g0%2)[-2534]
(g1%2)[-2528]
(g0%1)[-2530]
(g0%1)[-2527](g0%1)[-2532]
(g0%2)[-2532]
(g1%2)[-2535]
(g0%2)[-2521]
(g0%1)[-2499]
(g0%1)[-2507]
(g0%1)[-2504]
(g0%8)[-2511](g1%8)[-2511](g2%8)[-2511](g3%8)[-2511](g4%8)[-2511](g6%8)[-2511](g7%8)[-2511]
(g0%1)[-2497]
(g0%1)[-2495]
(g0%1)[-2501]
(g0%1)[-2502]
(g0%1)[-2493]
(g0%1)[-2496](g0%1)[-2491]
(g0%2)[-2496]
(g1%2)[-2496]
(g0%2)[-2483]
(g1%2)[-2499]
(g0%1)[-2482]
(g1%2)[-2531]
(g1%2)[-2524]
(g0%8)[-2532](g2%8)[-2532](g6%8)[-2532]
(g0%2)[-2535]
(g0%1)[-2558]
(g0%2)[-2555]
(g0%2)[-2554](g0%2)[-2553]
(g0%1)[-2564](g0%1)[-2568](g0%1)[-2567](g0%1)[-2566](g0%1)[-2565]
(g0%1)[-2558]
(g1%2)[-2558]
(g0%2)[-2550](g0%2)[-2549](g1%2)[-2546](g1%2)[-2545]
(g0%1)[-2570]
(g0%1)[-2567]
(g1%2)[-2558]
(g0%2)[-2553]
(g0%1)[-2571]
(g0%1)[-2564]
(g0%1)[-2555](g0%1)[-2559](g0%1)[-2556]
(g1%2)[-2562]
(g0%2)[-2562]
(g0%1)[-2558]
(g0%2)[-2565]
(g0%1)[-2561]
(g1%2)[-2557]
(g0%1)[-2573]
(g0%2)[-2549]
(g0%2)[-2551]
(g0%1)[-2566]
(g0%1)[-2557]
(g0%1)[-2560](g0%1)[-2555]
(g0%2)[-2555]
(g1%2)[-2555]
(g1%2)[-2569]
(g0%2)[-2555]
(g0%2)[-2541]
(g0%1)[-2539]
(g0%1)[-2542](g0%1)[-2537]
(g0%1)[-2549]
(g0%1)[-2548]
(g0%2)[-2543]
(g0%2)[-2555]
(g0%8)[-2551]
(g0%1)[-2529]
(g1%2)[-2526]
(g1%2)[-2518]
(g1%2)[-2526]
(g0%2)[-2516]
(g0%1)[-2521]
(g0%1)[-2540]
(g0%1)[-2532]
(g0%2)[-2517]
(g0%2)[-2517](g0%2)[-2516]
(g0%2)[-2523]
(g0%2)[-2528]
(g0%1)[-2514](g0%1)[-2519](g0%1)[-2518](g0%1)[-2517](g0%1)[-2516](g0%1)[-2515]
(g0%1)[-2550]
(g0%1)[-2560]
(g0%1)[-2528](g0%1)[-2533](g0%1)[-2532](g0%1)[-2531](g0%1)[-2530](g0%1)[-2529]
(g0%1)[-2557]
(g0%2)[-2560]
(g0%2)[-2558]
(g0%2)[-2571]
(g0%1)[-2564]
(g0%1)[-2554]
(g0%1)[-2555]
(g0%1)[-2556]
(g0%1)[-2565]
(g0%1)[-2554]
(g0%1)[-2564](g0%1)[-2563](g0%1)[-2562](g0%1)[-2561](g0%1)[-2560](g0%1)[-2559]
(g0%1)[-2588]
(g1%2)[-2591]
(g0%2)[-2593](g1%2)[-2598](g1%2)[-2597](g0%2)[-2594]
(g1%2)[-2583]
(g1%2)[-2577]
(g0%2)[-2572]
(g0%1)[-2529]
(g1%2)[-2533]
(g1%2)[-2541]
(g0%2)[-2538]
(g0%2)[-2521]
(g0%1)[-2517]
(g0%2)[-2521]
(g1%2)[-2537]
(g1%2)[-2530]
(g0%1)[-2531]
(g0%1)[-2528](g0%1)[-2533]
(g0%1)[-2521]
(g1%2)[-2536]
(g1%2)[-2535]
(g0%1)[-2536]
(g1%2)[-2539]
(g1%2)[-2548]
(g0%1)[-2517]
(g0%1)[-2523]
(g1%2)[-2534]
(g0%2)[-2538]
(g0%1)[-2542]
(g0%2)[-2563]
(g0%1)[-2556]
(g0%2)[-2557]
(g0%1)[-2561]
(g0%1)[-2562]
(g0%1)[-2562]
(g0%2)[-2542]
(g1%2)[-2554](g1%2)[-2553]
(g0%2)[-2540]
(g0%1)[-2530]
(g0%1)[-2527](g0%1)[-2532]
(g0%1)[-2539]
(g0%1)[-2531]
(g0%1)[-2523]
(g0%1)[-2521]
(g0%1)[-2522]
(g1%2)[-2526]
(g1%2)[-2522](g0%2)[-2527](g0%2)[-2526](g1%2)[-2523]
(g1%2)[-2534]
(g0%2)[-2527]
(g1%2)[-2535]
(g1%2)[-2525]
(g0%2)[-2536]
(g0%2)[-2516]
(g0%1)[-2487]
(g0%1)[-2477]
(g0%1)[-2511]
(g0%2)[-2507]
(g0%2)[-2503]
(g0%2)[-2501]
(g0%1)[-2489]
(g0%2)[-2484]
(g0%2)[-2502]
(g1%2)[-2500]
(g0%2)[-2489]
(g0%1)[-2504]
(g0%2)[-2477]
(g0%1)[-2478]
(g0%2)[-2474]
(g0%2)[-2471]
(g0%2)[-2476]
(g0%2)[-2463]
(g0%1)[-2479]
(g0%1)[-2470]
(g0%2)[-2465]
(g0%2)[-2483]
(g1%2)[-2481]
(g0%2)[-2470]
(g1%2)[-2462](g1%2)[-2463]
(g0%1)[-2458]
(g0%1)[-2461](g0%1)[-2456]
(g0%1)[-2468]
(g0%1)[-2460]
(g0%1)[-2453]
(g0%1)[-2455]
(g0%1)[-2454]
(g1%2)[-2450]
(g0%2)[-2440]
(g1%2)[-2445]
(g0%2)[-2457]
(g1%2)[-2442]
(g1%2)[-2430]
(g0%2)[-2431]
(g0%2)[-2445]
(g1%2)[-2425]
(g0%1)[-2427]
(g0%1)[-2424](g0%1)[-2429]
(g1%2)[-2429]
(g0%1)[-2437]
(g1%2)[-2407]
(g0%1)[-2399]
(g0%1)[-2392]
(g0%2)[-2407]
(g1%2)[-2387]
(g0%1)[-2379]
(g0%1)[-2390]
(g0%1)[-2385](g0%1)[-2384](g0%1)[-2383](g0%1)[-2382](g0%1)[-2381](g0%1)[-2380]
(g0%1)[-2355]
(g0%1)[-2355]
(g0%1)[-2348]
(g0%2)[-2363]
(g1%2)[-2343]
(g0%1)[-2335]
(g0%1)[-2328]
(g0%2)[-2343]
(g1%2)[-2323]
(g0%1)[-2315]
(g0%1)[-2308]
(g0%2)[-2323]
(g1%2)[-2303]
(g0%1)[-2295]
(g0%1)[-2306]
(g0%1)[-2301](g0%1)[-2300](g0%1)[-2299](g0%1)[-2298](g0%1)[-2297](g0%1)[-2296]
(g0%1)[-2271]
(g0%1)[-2271]
(g0%1)[-2282]
(g0%1)[-2277](g0%1)[-2276](g0%1)[-2275](g0%1)[-2274](g0%1)[-2273](g0%1)[-2272]
(g0%1)[-2247]
(g0%1)[-2247]
(g0%1)[-2258]
(g0%1)[-2253](g0%1)[-2252](g0%1)[-2251](g0%1)[-2250](g0%1)[-2249](g0%1)[-2248]
(g0%1)[-2223]
(g0%1)[-2223]
(g0%1)[-2234]
(g0%1)[-2224](g0%1)[-2229](g0%1)[-2228](g0%1)[-2227](g0%1)[-2226](g0%1)[-2225]
(g0%1)[-2200]
(g0%1)[-2211]
(g0%1)[-2201](g0%1)[-2206](g0%1)[-2205](g0%1)[-2204](g0%1)[-2203](g0%1)[-2202]
(g0%1)[-2177]
(g0%1)[-2188]
(g0%1)[-2178](g0%1)[-2183](g0%1)[-2182](g0%1)[-2181](g0%1)[-2180](g0%1)[-2179]
(g0%1)[-2154]
(g0%1)[-2165]
(g0%1)[-2155](g0%1)[-2160](g0%1)[-2159](g0%1)[-2158](g0%1)[-2157](g0%1)[-2156]
(g0%1)[-2131]
(g0%1)[-2142]
(g0%1)[-2132](g0%1)[-2137](g0%1)[-2136](g0%1)[-2135](g0%1)[-2134](g0%1)[-2133]
(g0%1)[-2108]
(g0%1)[-2119]
(g0%1)[-2109](g0%1)[-2114](g0%1)[-2113](g0%1)[-2112](g0%1)[-2111](g0%1)[-2110]
(g0%1)[-2085]
(g0%1)[-2096]
(g0%1)[-2086](g0%1)[-2091](g0%1)[-2090](g0%1)[-2089](g0%1)[-2088](g0%1)[-2087]
(g0%1)[-2062]
(g0%1)[-2073]
(g0%1)[-2063](g0%1)[-2068](g0%1)[-2067](g0%1)[-2066](g0%1)[-2065](g0%1)[-2064]
(g0%1)[-2039]
(g0%1)[-2050]
(g0%1)[-2040](g0%1)[-2045](g0%1)[-2044](g0%1)[-2043](g0%1)[-2042](g0%1)[-2041]
(g0%1)[-2016]
(g0%1)[-2027]
(g0%1)[-2017](g0%1)[-2022](g0%1)[-2021](g0%1)[-2020](g0%1)[-2019](g0%1)[-2018]
(g0%1)[-1993]
(g0%1)[-2004]
(g0%1)[-1994](g0%1)[-1999](g0%1)[-1998](g0%1)[-1997](g0%1)[-1996](g0%1)[-1995]
(g0%1)[-1970]
(g0%1)[-1981]
(g0%1)[-1971](g0%1)[-1976](g0%1)[-1975](g0%1)[-1974](g0%1)[-1973](g0%1)[-1972]
(g0%1)[-1947]
(g0%2)[-1952]
(g0%1)[-1964]
(g0%2)[-1931]
(g0%2)[-1945]
(g0%1)[-1940](g0%1)[-1933](g0%1)[-1930]
(g1%2)[-1943]
(g0%1)[-1941]
(g1%2)[-1938]
(g0%1)[-1921]
(g0%2)[-1922]
(g0%1)[-1927]
(g0%2)[-1928]
(g0%2)[-1930]
(g1%2)[-1940]
(g1%2)[-1951]
(g0%2)[-1952]
(g0%2)[-1928]
(g0%2)[-1914](g0%2)[-1915]
(g0%1)[-1910]
(g1%2)[-1907]
(g0%2)[-1903]
(g0%1)[-1915]
(g0%2)[-1919]
(g1%2)[-1913]
(g0%1)[-1913]
(g0%1)[-1891]
(g0%1)[-1884]
(g0%2)[-1899]
(g1%2)[-1879]
(g0%1)[-1871]
(g0%1)[-1864]
(g0%2)[-1879]
(g0%1)[-1939]
(g0%1)[-1946]
(g0%2)[-1929]
(g0%2)[-1933]
(g0%1)[-1933]
(g0%1)[-1924]
(g0%2)[-1921]
(g1%2)[-1919](g1%2)[-1918](g0%2)[-1915](g0%2)[-1914]
(g1%2)[-1919]
(g0%1)[-1934](g0%1)[-1933](g0%1)[-1932](g0%1)[-1931](g0%1)[-1930]
(g1%2)[-1927]
(g0%1)[-1915]
(g0%1)[-1922]
(g1%2)[-1915]
(g0%2)[-1897](g1%2)[-1902](g1%2)[-1901](g0%2)[-1898]
(g1%2)[-1913]
(g0%1)[-1909]
(g0%2)[-1910]
(g1%2)[-1907]
(g1%2)[-1904]
(g0%1)[-1906]
(g0%1)[-1913]
(g0%1)[-1913]
(g0%1)[-1915]
(g0%2)[-1895]
(g0%2)[-1922]
(g0%2)[-1924]
(g0%1)[-1923]
(g0%1)[-1931]
(g0%2)[-1924]
(g0%2)[-1916]
(g0%1)[-1925]
(g0%2)[-1950]
(g0%2)[-1949]
(g1%2)[-1940](g1%2)[-1936]
(g0%1)[-1934]
(g0%2)[-1937]
(g0%2)[-1946]
(g0%2)[-1935]
(g1%2)[-1931]
(g0%1)[-1930]
(g0%2)[-1917]
(g4%8)[-1922]
(g0%1)[-1947]
(g0%2)[-1944]
(g1%2)[-1942](g1%2)[-1941](g0%2)[-1938](g0%2)[-1937]
(g1%2)[-1934]
(g1%2)[-1946]
(g1%2)[-1952]
(g0%2)[-1945]
(g0%2)[-1938]
(g1%2)[-1934]
(g0%8)[-1925](g2%8)[-1925]
(g0%1)[-1931]
(g0%1)[-1938]
(g0%1)[-1940]
(g0%2)[-1936]
(g0%1)[-1942]
(g1%2)[-1935]
(g0%2)[-1932]
(g0%2)[-1927]
(g0%1)[-1931]
(g0%1)[-1951]
(g0%2)[-1954]
(g1%2)[-1950]
(g0%1)[-1955]
(g0%2)[-1958]
(g1%2)[-1954]
(g0%1)[-1959]
(g0%2)[-1962]
(g1%2)[-1958]
(g0%1)[-1954]
(g0%2)[-1951]
(g0%2)[-1948]
(g0%2)[-1953]
(g1%2)[-1949]
(g0%1)[-1956]
(g0%1)[-1939]
(g0%1)[-1939]
(g0%1)[-1950]
(g0%1)[-1940](g0%1)[-1945](g0%1)[-1944](g0%1)[-1943](g0%1)[-1942](g0%1)[-1941]
(g0%1)[-1982]
(g0%1)[-1991](g0%1)[-1990](g0%1)[-1987]
(g0%1)[-1986]
(g1%2)[-1981]
(g0%1)[-1964]
(g0%1)[-1961](g0%1)[-1966]
(g0%2)[-1961]
(g1%2)[-1961]
(g0%2)[-1974]
(g1%2)[-1958]
(g0%1)[-1975]
(g0%2)[-1996]
(g0%2)[-2001]
(g0%1)[-2001]
(g0%1)[-2001]
(g0%1)[-1990]
(g0%1)[-2025]
(g0%1)[-2025]
(g0%1)[-2032]
(g0%2)[-2017]
(g1%2)[-2037]
(g0%1)[-2045]
(g0%1)[-2034]
(g0%1)[-2039](g0%1)[-2044](g0%1)[-2043](g0%1)[-2042](g0%1)[-2041](g0%1)[-2040]
(g0%1)[-2069]
(g0%1)[-2069]
(g1%2)[-2068]
(g0%2)[-2080]
(g1%2)[-2071]
(g0%1)[-2077]
(g1%2)[-2060]
(g0%1)[-2061]
(g0%1)[-2053]
(g0%1)[-2050]
(g0%1)[-2056]
(g1%2)[-2052]
(g0%2)[-2047]
(g0%1)[-2069]
(g0%1)[-2058]
(g0%1)[-2051]
(g0%2)[-2066]
(g0%1)[-2088]
(g0%1)[-2095]
(g0%2)[-2080]
(g1%2)[-2100]
(g0%1)[-2108]
(g0%2)[-2107]
(g0%1)[-2102]
(g0%2)[-2114](g0%2)[-2115]
(g0%1)[-2119]
(g0%1)[-2126]
(g0%2)[-2111]
(g1%2)[-2131]
(g0%1)[-2139]
(g0%1)[-2146]
(g0%2)[-2131]
(g1%2)[-2151]
(g0%1)[-2159]
(g0%2)[-2158]
(g0%1)[-2153]
(g0%2)[-2165](g0%2)[-2166]
(g0%1)[-2170]
(g0%1)[-2177]
(g0%2)[-2162]
(g1%2)[-2182]
(g0%1)[-2190]
(g0%2)[-2189]
(g0%1)[-2184]
(g0%2)[-2196](g0%2)[-2197]
(g0%1)[-2201]
(g0%2)[-2200]
(g0%1)[-2195]
(g0%2)[-2207](g0%2)[-2208]
(g0%1)[-2212]
(g0%1)[-2221](g0%1)[-2220](g0%1)[-2217]
(g0%1)[-2216]
(g1%2)[-2211]
(g0%1)[-2185]
(g0%2)[-2182]
(g1%2)[-2174]
(g0%2)[-2168]
(g0%2)[-2188]
(g0%2)[-2177]
(g0%1)[-2158]
(g0%1)[-2150]
(g0%2)[-2157]
(g0%2)[-2156]
(g1%2)[-2168]
(g1%2)[-2159]
(g0%2)[-2142]
(g0%1)[-2146]
(g0%1)[-2139]
(g1%2)[-2146]
(g0%2)[-2157]
(g0%2)[-2152]
(g1%2)[-2133]
(g0%1)[-2133]
(g0%1)[-2139]
(g1%2)[-2142]
(g0%2)[-2144](g1%2)[-2149](g1%2)[-2148](g0%2)[-2145]
(g1%2)[-2142]
(g0%2)[-2152]
(g0%2)[-2147]
(g0%1)[-2150](g0%1)[-2149](g0%1)[-2148](g0%1)[-2147](g0%1)[-2146]
(g1%2)[-2171]
(g4%8)[-2162]
(g0%2)[-2198]
(g0%1)[-2200]
(g0%1)[-2207]
(g0%2)[-2192]
(g0%2)[-2228]
(g0%1)[-2224](g0%1)[-2225]
(g0%1)[-2221]
(g0%1)[-2230]
(g0%1)[-2219]
(g0%1)[-2224](g0%1)[-2229](g0%1)[-2228](g0%1)[-2227](g0%1)[-2226](g0%1)[-2225]
(g1%2)[-2212]
(g0%1)[-2211]
(g0%2)[-2208]
(g1%2)[-2201]
(g0%1)[-2214](g0%1)[-2221](g0%1)[-2218](g0%1)[-2217]
(g1%2)[-2213]
(g0%1)[-2254]
(g0%1)[-2254]
(g0%1)[-2243]
(g0%1)[-2253](g0%1)[-2252](g0%1)[-2251](g0%1)[-2250](g0%1)[-2249](g0%1)[-2248]
(g0%1)[-2277]
(g0%1)[-2266]
(g0%1)[-2276](g0%1)[-2275](g0%1)[-2274](g0%1)[-2273](g0%1)[-2272](g0%1)[-2271]
(g0%1)[-2291]
(g0%1)[-2301](g0%1)[-2300](g0%1)[-2297]
(g0%1)[-2296]
(g1%2)[-2291]
(g0%1)[-2274]
(g0%2)[-2277]
(g1%2)[-2287]
(g0%1)[-2264](g0%1)[-2268](g0%1)[-2267](g0%1)[-2266](g0%1)[-2265]
(g0%2)[-2272]
(g1%2)[-2276]
(g0%1)[-2268]
(g0%2)[-2267]
(g1%2)[-2266]
(g1%2)[-2267]
(g0%1)[-2268]
(g0%1)[-2271](g0%1)[-2278]
(g0%1)[-2259]
(g0%1)[-2250](g0%1)[-2254](g0%1)[-2251]
(g0%2)[-2257]
(g0%2)[-2246]
(g1%2)[-2255]
(g0%2)[-2275]
(g0%1)[-2287]
(g0%1)[-2286]
(g0%2)[-2282]
(g0%2)[-2306]
(g1%2)[-2310]
(g0%2)[-2312]
(g0%1)[-2297]
(g0%1)[-2299](g0%1)[-2294]
(g0%2)[-2292]
(g0%2)[-2275]
(g0%2)[-2270]
(g0%1)[-2271](g0%1)[-2267](g0%1)[-2266](g0%1)[-2264](g0%1)[-2261]
(g0%1)[-2283](g0%1)[-2287](g0%1)[-2286](g0%1)[-2276]
(g0%1)[-2305]
(g0%2)[-2302]
(g1%2)[-2295]
(g1%2)[-2314]
(g1%2)[-2288]
(g0%1)[-2285]
(g1%2)[-2284]
(g0%1)[-2283](g0%1)[-2280]
(g0%1)[-2274]
(g0%1)[-2272]
(g0%1)[-2277]
(g1%2)[-2280]
(g1%2)[-2272]
(g0%2)[-2280]
(g0%1)[-2279]
(g0%1)[-2284]
(g0%1)[-2290]
(g0%1)[-2287](g0%1)[-2292]
(g0%2)[-2287]
(g1%2)[-2287]
(g0%2)[-2300]
(g1%2)[-2284]
(g0%1)[-2301]
(g0%1)[-2256]
(g0%2)[-2256]
(g1%2)[-2242]
(g1%2)[-2237]
(g0%2)[-2242]
(g0%2)[-2244]
(g1%2)[-2241]
(g0%2)[-2259]
(g0%1)[-2250](g0%1)[-2253](g0%1)[-2252]
(g0%1)[-2264]
(g0%1)[-2261](g0%1)[-2266]
(g0%1)[-2273]
(g1%2)[-2258]
(g0%2)[-2259](g0%2)[-2260](g1%2)[-2256](g1%2)[-2255]
(g0%2)[-2263]
(g1%2)[-2256]
(g0%2)[-2255]
(g0%1)[-2257]
(g0%1)[-2252]
(g0%1)[-2273]
(g0%2)[-2274]
(g0%2)[-2260]
(g0%1)[-2262]
(g1%2)[-2267]
(g0%2)[-2248]
(g1%2)[-2244]
(g0%1)[-2251]
(g0%1)[-2251]
(g0%2)[-2251]
(g0%1)[-2261](g0%1)[-2254]
(g1%2)[-2252]
(g1%2)[-2244]
(g0%2)[-2230](g0%2)[-2237]
(g1%2)[-2257]
(g0%2)[-2246](g0%2)[-2245]
(g0%2)[-2201]
(g1%2)[-2196]
(g0%1)[-2169]
(g1%8)[-2192]
(g0%1)[-2172](g0%1)[-2182](g0%1)[-2179](g0%1)[-2177](g0%1)[-2176]
(g0%1)[-2180]
(g0%1)[-2190](g0%1)[-2189](g0%1)[-2186]
(g0%1)[-2190]
(g0%2)[-2193]
(g1%2)[-2187]
(g0%2)[-2175]
(g0%2)[-2178]
(g1%2)[-2165]
(g0%1)[-2170]
(g1%2)[-2181]
(g0%1)[-2207]
(g1%2)[-2211]
(g1%2)[-2209]
(g1%2)[-2215]
(g1%2)[-2206]
(g0%2)[-2209]
(g0%1)[-2189]
(g1%2)[-2188]
(g0%2)[-2190]
(g1%2)[-2196]
(g0%1)[-2202]
(g0%2)[-2204]
(g0%1)[-2185](g0%1)[-2187](g0%1)[-2186]
(g1%2)[-2193]
(g0%1)[-2171]
(g0%1)[-2183]
(g0%1)[-2180](g0%1)[-2185]
(g0%1)[-2173]
(g0%1)[-2183](g0%1)[-2193](g0%1)[-2186]
(g1%2)[-2183]
(g0%2)[-2176]
(g1%2)[-2174](g1%2)[-2173]
(g0%1)[-2180]
(g0%1)[-2178]
(g0%1)[-2185]
(g0%1)[-2187]
(g1%2)[-2170]
(g0%1)[-2170]
(g1%2)[-2192]
(g0%2)[-2193]
(g1%2)[-2196]
(g1%2)[-2199]
(g0%1)[-2221]
(g0%2)[-2224]
(g1%2)[-2229]
(g0%1)[-2220]
(g0%1)[-2219]
(g0%1)[-2219]
(g1%2)[-2223]
(g0%1)[-2237](g0%1)[-2236](g0%1)[-2233]
(g0%2)[-2213]
(g0%1)[-2200]
(g0%1)[-2217](g0%1)[-2222](g0%1)[-2221](g0%1)[-2220](g0%1)[-2219](g0%1)[-2218]
(g0%1)[-2213]
(g0%1)[-2210](g0%1)[-2215]
(g0%2)[-2215]
(g0%1)[-2223]
(g0%2)[-2210](g1%2)[-2214](g1%2)[-2213](g0%2)[-2209]
(g0%2)[-2206]
(g0%1)[-2218](g0%1)[-2217](g0%1)[-2216](g0%1)[-2215](g0%1)[-2214](g0%1)[-2213]
(g0%1)[-2210]
(g0%1)[-2200]
(g0%1)[-2209]
(g0%1)[-2199](g0%1)[-2203](g0%1)[-2200]
(g0%1)[-2204]
(g0%1)[-2208]
(g0%1)[-2198]
(g1%2)[-2211]
(g1%2)[-2214](g0%2)[-2219](g0%2)[-2218](g0%2)[-2217](g1%2)[-2216](g1%2)[-2215]
(g0%1)[-2200]
(g4%8)[-2185]
(g0%1)[-2209]
(g1%2)[-2213]
(g0%2)[-2221]
(g0%2)[-2227]
(g0%2)[-2221]
(g0%2)[-2225]
(g0%2)[-2216]
(g1%2)[-2225]
(g0%1)[-2225]
(g1%2)[-2208](g1%2)[-2209](g0%2)[-2206](g0%2)[-2205](g0%2)[-2204]
(g0%1)[-2209]
(g0%1)[-2200](g0%1)[-2204](g0%1)[-2201]
(g0%1)[-2205]
(g1%2)[-2210]
(g0%2)[-2203]
(g0%1)[-2196]
(g0%1)[-2206]
(g0%1)[-2197]
(g1%2)[-2194]
(g0%2)[-2184]
(g0%2)[-2186]
(g1%2)[-2196]
(g1%2)[-2207]
(g0%1)[-2227]
(g0%1)[-2230](g0%1)[-2225]
(g0%1)[-2218]
(g0%1)[-2217](g0%1)[-2218]
(g0%2)[-2208]
(g0%2)[-2184]
(g0%1)[-2237]
(g0%1)[-2236]
(g0%2)[-2231]
(g1%2)[-2237]
(g1%2)[-2232]
(g1%2)[-2225](g1%2)[-2227](g1%2)[-2226](g0%2)[-2223](g0%2)[-2222]
(g0%1)[-2221]
(g0%1)[-2228]
(g0%2)[-2216]
(g1%2)[-2221]
(g0%2)[-2212]
(g0%1)[-2220]
(g1%2)[-2223]
(g0%1)[-2220]
(g0%2)[-2223]
(g1%2)[-2227]
(g0%1)[-2209]
(g0%1)[-2211]
(g0%1)[-2213]
(g1%2)[-2225]
(g0%1)[-2216](g0%1)[-2213](g0%1)[-2211](g0%1)[-2210](g0%1)[-2206]
(g0%1)[-2227]
(g0%1)[-2237](g0%1)[-2236](g0%1)[-2233]
(g0%2)[-2230]
(g0%2)[-2217]
(g0%1)[-2228]
(g0%1)[-2233]
(g0%1)[-2225]
(g0%1)[-2237]
(g0%2)[-2240]
(g0%2)[-2244]
(g0%2)[-2243]
(g0%2)[-2234]
(g1%2)[-2241]
(g0%1)[-2247]
(g0%1)[-2240](g0%1)[-2250](g0%1)[-2247]
(g0%1)[-2232]
(g0%1)[-2230]
(g0%2)[-2233]
(g1%2)[-2229]
(g0%1)[-2096]
(g0%2)[-2099]
(g0%2)[-2103]
(g0%1)[-2095]
(g0%1)[-2095]
(g0%1)[-2092]
(g0%1)[-2096]
(g0%1)[-2096]
(g0%2)[-2092]
(g0%2)[-2089]
(g1%2)[-2089]
(g0%2)[-2084]
(g0%2)[-2098]
(g1%2)[-2096]
(g0%1)[-2079]
(g0%1)[-2068]
(g0%1)[-2070]
(g0%1)[-2069]
(g0%1)[-2078]
(g0%2)[-2081]
(g0%2)[-2079]
(g0%2)[-2076]
(g1%2)[-2046]
(g0%1)[-2038]
(g0%2)[-2039]
(g0%1)[-2044]
(g0%2)[-2031](g0%2)[-2032]
(g0%1)[-2027]
(g0%1)[-2020]
(g0%2)[-2035]
(g1%2)[-2015]
(g0%1)[-2050]
(g1%2)[-2054]
(g0%2)[-2064]
(g1%2)[-2056]
(g1%2)[-2056]
(g0%2)[-2046]
(g0%2)[-2036]
(g0%1)[-2058]
(g0%1)[-2049](g0%1)[-2053](g0%1)[-2050]
(g1%2)[-2056]
(g0%1)[-2046](g0%1)[-2050](g0%1)[-2047]
(g0%2)[-2054]
(g1%2)[-2058]
(g1%2)[-2057]
(g0%1)[-2061]
(g0%1)[-2061]
(g0%2)[-2064]
(g0%2)[-2062]
(g0%1)[-2060]
(g0%2)[-2077]
(g0%2)[-2081]
(g0%1)[-2073]
(g0%1)[-2070]
(g1%2)[-2071]
(g1%2)[-2073]
(g1%2)[-2084]
(g0%2)[-2068]
(g1%2)[-2062]
(g1%2)[-2065]
(g0%1)[-2076]
(g0%1)[-2066](g0%1)[-2070](g0%1)[-2067]
(g0%1)[-2071]
(g1%2)[-2076]
(g0%2)[-2061]
(g1%2)[-2057]
(g0%2)[-2060]
(g0%1)[-2052]
(g0%1)[-2058]
(g1%2)[-2061]
(g0%2)[-2063](g1%2)[-2068](g1%2)[-2067](g0%2)[-2064]
(g0%2)[-2064]
(g1%2)[-2066]
(g1%2)[-2067]
(g1%2)[-2067]
(g0%1)[-2052](g0%1)[-2049](g0%1)[-2047]
(g0%1)[-2037]
(g0%2)[-2033]
(g0%1)[-2048]
(g0%1)[-2050](g0%1)[-2045]
(g0%1)[-2058](g0%1)[-2051]
(g0%2)[-2026](g1%2)[-2031](g1%2)[-2030](g0%2)[-2027]
(g0%2)[-2030]
(g0%2)[-2039]
(g0%1)[-2037]
(g0%1)[-1995](g0%1)[-2000](g0%1)[-1999](g0%1)[-1998](g0%1)[-1997](g0%1)[-1996]
(g0%1)[-2007]
(g0%2)[-2008]
(g0%1)[-2013]
(g0%2)[-2000](g0%2)[-2001]
(g0%1)[-1996]
(g0%1)[-1987](g0%1)[-1991](g0%1)[-1988]
(g0%1)[-1987]
(g1%2)[-1991]
(g1%2)[-2001]
(g0%2)[-2012]
(g0%1)[-2011]
(g1%2)[-2015]
(g1%2)[-2018]
(g1%2)[-2013]
(g1%2)[-2017]
(g0%1)[-1988]
(g0%1)[-1981]
(g0%2)[-1996]
(g0%2)[-2000]
(g0%1)[-2004](g0%1)[-2009](g0%1)[-2008](g0%1)[-2007](g0%1)[-2006](g0%1)[-2005]
(g0%1)[-1999](g0%1)[-1996]
(g0%1)[-2010]
(g0%1)[-2010]
(g0%1)[-2010]
(g0%2)[-2007]
(g0%2)[-2015]
(g0%2)[-2012]
(g1%2)[-1999]
(g1%2)[-1998]
(g0%2)[-2005]
(g0%1)[-2012]
(g0%1)[-2019]
(g0%1)[-2005]
(g0%1)[-2017]
(g0%1)[-2010]
(g0%1)[-2009]
(g0%1)[-2009]
(g0%2)[-2005]
(g0%2)[-2007]
(g0%1)[-2009]
(g0%1)[-2019]
(g1%2)[-2022]
(g0%2)[-2029]
(g0%1)[-2037]
(g1%2)[-2076]
(g0%8)[-2105]
(g0%1)[-2079]
(g0%2)[-2079]
(g1%2)[-2077]
(g1%2)[-2068]
(g1%2)[-2077]
(g0%2)[-2083]
(g0%2)[-2078]
(g1%2)[-2094]
(g0%1)[-2092]
(g0%1)[-2085]
(g0%1)[-2088]
(g0%1)[-2102]
(g0%1)[-2090](g0%1)[-2085]
(g0%2)[-2089]
(g3%8)[-2100](g4%8)[-2100]
(g0%1)[-2094](g0%1)[-2098](g0%1)[-2095]
(g0%2)[-2082]
(g0%1)[-2083]
(g0%2)[-2079]
(g0%2)[-2075]
(g0%1)[-2080]
(g0%1)[-2070]
(g0%1)[-2071](g0%1)[-2068]
(g0%1)[-2058]
(g0%1)[-2047]
(g0%2)[-2048]
(g1%2)[-2025]
(g0%1)[-2009](g0%1)[-2016](g0%1)[-2013](g0%1)[-2012]
(g0%1)[-2015]
(g0%1)[-2019]
(g0%2)[-2034]
(g0%2)[-2043]
(g1%2)[-2049]
(g1%2)[-2054]
(g1%2)[-2041]
(g0%1)[-2032](g0%1)[-2031](g0%1)[-2030](g0%1)[-2029](g0%1)[-2028]
(g0%2)[-2037]
(g0%2)[-2025](g0%2)[-2032]
(g0%2)[-1992]
(g0%2)[-1993]
(g0%1)[-1995]
(g0%1)[-1992](g0%1)[-1997]
(g0%2)[-1997]
(g1%2)[-1976]
(g0%1)[-1968]
(g0%2)[-1969]
(g0%1)[-1974]
(g1%2)[-1984]
(g0%2)[-1995]
(g1%2)[-2004]
(g0%2)[-1982]
(g0%1)[-2006]
(g0%1)[-2006]
(g0%2)[-2002]
(g0%2)[-2004]
(g0%2)[-1998]
(g0%2)[-2010]
(g0%1)[-2015]
(g1%2)[-1989]
(g1%2)[-1996]
(g0%1)[-1995](g0%1)[-1991]
(g0%1)[-1995]
(g0%1)[-2007]
(g0%2)[-2014]
(g1%2)[-2000]
(g1%2)[-2029]
(g0%2)[-2035]
(g0%2)[-2024]
(g0%1)[-2020]
(g0%1)[-2020]
(g1%2)[-2024]
(g1%2)[-2017]
(g1%2)[-2017]
(g0%2)[-2004]
(g1%2)[-2044]
(g0%2)[-2041]
(g0%1)[-2030](g0%1)[-2035](g0%1)[-2034](g0%1)[-2033](g0%1)[-2032](g0%1)[-2031]
(g0%1)[-2036]
(g0%1)[-2045]
(g0%1)[-2052]
(g0%1)[-2054]
(g0%2)[-2035]
(g1%2)[-2046]
(g1%2)[-2051]
(g0%1)[-2045]
(g0%1)[-2044]
(g0%1)[-2086]
(g0%1)[-2088]
(g0%1)[-2078](g0%1)[-2082](g0%1)[-2079]
(g0%1)[-2078]
(g0%2)[-2075]
(g1%2)[-2081]
(g0%2)[-2093]
(g0%2)[-2090]
(g1%2)[-2103]
(g0%1)[-2098]
(g1%2)[-2087]
(g5%8)[-2071]
(g1%2)[-2062](g0%2)[-2065](g0%2)[-2064](g0%2)[-2063](g1%2)[-2061](g1%2)[-2060]
(g0%1)[-2053]
(g0%2)[-2049]
(g1%2)[-2043]
(g0%1)[-2062](g0%1)[-2061](g0%1)[-2060](g0%1)[-2059](g0%1)[-2058](g0%1)[-2057]
(g0%1)[-2054]
(g0%1)[-2044]
(g1%2)[-2047]
(g0%1)[-2063](g0%1)[-2064]
(g0%2)[-2055]
(g1%2)[-2057]
(g1%2)[-2039]
(g1%2)[-2039]
(g1%2)[-2042]
(g0%1)[-2050]
(g1%2)[-2054]
(g0%2)[-2064]
(g0%2)[-2056]
(g0%2)[-2061]
(g1%2)[-2049]
(g0%1)[-2048]
(g0%1)[-2000]
(g4%8)[-2013]
(g0%1)[-2016]
(g0%1)[-2009]
(g0%2)[-2021]
(g1%2)[-2028]
(g0%2)[-2022]
(g1%2)[-2024]
(g1%2)[-2009]
(g0%2)[-2019]
(g0%1)[-2003]
(g0%1)[-2003]
(g0%2)[-2002]
(g1%2)[-2001]
(g1%2)[-2014]
(g0%2)[-2018]
(g1%2)[-2028]
(g1%2)[-2028]
(g1%2)[-2020]
(g0%1)[-2039]
(g0%1)[-2042](g0%1)[-2037]
(g1%2)[-2037]
(g0%2)[-2037]
(g0%1)[-2030]
(g0%2)[-2052]
(g0%2)[-2039]
(g0%2)[-2044]
(g0%1)[-2025]
(g0%1)[-2025](g0%1)[-2027](g0%1)[-2026](g0%1)[-2024](g0%1)[-2023]
(g0%1)[-2035](g0%1)[-2037](g0%1)[-2036](g0%1)[-2034](g0%1)[-2033](g0%1)[-2032]
(g0%1)[-2058](g0%1)[-2057](g0%1)[-2056](g0%1)[-2055](g0%1)[-2054](g0%1)[-2053]
(g0%1)[-2066]
(g1%2)[-2067]
(g0%2)[-2055]
(g0%1)[-2047]
(g0%2)[-2044]
(g1%2)[-2042](g1%2)[-2041](g0%2)[-2038](g0%2)[-2037]
(g1%2)[-2034]
(g0%2)[-2029]
(g1%2)[-2030]
(g0%1)[-2053](g0%1)[-2057](g0%1)[-2056](g0%1)[-2055](g0%1)[-2054](g0%1)[-2052]
(g1%2)[-2055]
(g1%2)[-2066]
(g1%2)[-2071]
(g1%2)[-2073]
(g0%1)[-2081]
(g0%1)[-2090](g0%1)[-2089](g0%1)[-2086]
(g1%2)[-2083]
(g0%1)[-2081]
(g0%1)[-2079]
(g0%2)[-2094]
(g0%1)[-2084]
(g0%1)[-2074](g0%1)[-2078](g0%1)[-2075]
(g0%1)[-2079]
(g0%2)[-2074]
(g1%2)[-2077](g1%2)[-2078]
(g1%2)[-2064]
(g0%1)[-2072]
(g0%1)[-2084]
(g0%1)[-2101]
(g0%2)[-2101]
(g1%2)[-2107](g1%2)[-2108](g0%2)[-2104](g0%2)[-2103]
(g1%2)[-2113]
(g0%2)[-2103]
(g1%2)[-2110]
(g1%2)[-2102]
(g0%1)[-2101](g0%1)[-2105](g0%1)[-2102]
(g0%1)[-2081]
(g0%2)[-2076]
(g0%1)[-2084]
(g0%2)[-2077]
(g1%2)[-2098]
(g0%1)[-2096]
(g0%1)[-2075]
(g1%2)[-2072]
(g0%2)[-2062]
(g0%2)[-2064]
(g1%2)[-2074]
(g1%2)[-2085]
(g0%2)[-2086]
(g0%2)[-2062]
(g0%1)[-2097]
(g0%1)[-2105]
(g1%2)[-2093]
(g0%2)[-2085]
(g0%2)[-2102]
(g0%1)[-2113](g0%1)[-2112](g0%1)[-2109]
(g1%2)[-2109]
(g0%2)[-2109]
(g1%2)[-2093]
(g0%1)[-2100]
(g0%2)[-2103]
(g1%2)[-2111]
(g1%2)[-2116]
(g0%2)[-2098]
(g1%2)[-2093]
(g0%1)[-2087]
(g0%1)[-2098]
(g0%1)[-2096]
(g0%1)[-2093](g0%1)[-2098]
(g0%1)[-2086]
(g0%1)[-2116](g0%1)[-2109](g0%1)[-2106]
(g0%2)[-2101]
(g1%2)[-2112]
(g0%2)[-2106]
(g1%2)[-2098]
(g1%2)[-2101]
(g1%2)[-2099]
(g0%1)[-2101]
(g0%1)[-2104]
(g0%2)[-2100]
(g0%1)[-2113](g0%1)[-2112](g0%1)[-2111](g0%1)[-2110](g0%1)[-2109]
(g1%2)[-2107]
(g0%2)[-2102]
(g0%2)[-2114]
(g1%2)[-2097]
(g0%1)[-2108]
(g0%2)[-2111]
(g0%1)[-2098](g0%1)[-2102](g0%1)[-2101](g0%1)[-2100](g0%1)[-2099]
(g0%2)[-2106]
(g1%2)[-2100]
(g0%1)[-2100]
(g0%2)[-2097]
(g1%2)[-2087]
(g1%2)[-2089]
(g0%2)[-2099]
(g0%1)[-2117]
(g0%1)[-2124]
(g1%2)[-2110](g0%1)[-2109](g0%1)[-2108](g0%1)[-2107](g0%1)[-2106]
(g1%2)[-2111]
(g0%1)[-2116]
(g0%1)[-2114]
(g0%2)[-2133]
(g1%2)[-2122]
(g0%1)[-2129](g0%1)[-2125](g0%1)[-2124](g0%1)[-2122](g0%1)[-2119]
(g0%1)[-2126]
(g1%2)[-2098]
(g0%1)[-2097]
(g1%2)[-2107]
(g1%2)[-2114]
(g0%1)[-2112]
(g0%1)[-2112]
(g1%2)[-2109]
(g1%2)[-2101]
(g0%2)[-2104]
(g0%2)[-2121]
(g0%1)[-2122]
(g0%1)[-2101]
(g0%2)[-2112]
(g0%1)[-2116]
(g0%1)[-2105]
(g0%1)[-2115](g0%1)[-2114](g0%1)[-2111]
(g1%2)[-2108]
(g0%2)[-2108]
(g0%1)[-2070]
(g0%1)[-2079]
(g0%1)[-2076](g0%1)[-2081]
(g0%2)[-2079]
(g0%2)[-2085]
(g0%1)[-2088]
(g1%2)[-2093]
(g1%2)[-2093]
(g0%1)[-2089]
(g0%1)[-2097]
(g0%1)[-2099]
(g1%2)[-2080]
(g0%2)[-2091]
(g1%2)[-2092]
(g1%2)[-2094](g0%1)[-2102](g1%2)[-2095]
(g0%1)[-2096]
(g0%1)[-2096]
(g0%1)[-2096]
(g1%2)[-2091]
(g0%1)[-2089]
(g0%1)[-2088](g0%1)[-2081](g0%1)[-2078]
(g0%2)[-2111]
(g0%1)[-2110]
(g0%1)[-2100]
(g0%1)[-2111]
(g0%1)[-2072]
(g1%2)[-2032](g1%2)[-2030]
(g0%2)[-2025]
(g0%1)[-2027]
(g0%2)[-1961](g0%2)[-1962]
(g0%1)[-1966]
(g0%1)[-1956](g0%1)[-1960](g0%1)[-1957]
(g0%1)[-1956]
(g0%2)[-1963]
(g1%2)[-1949]
(g1%2)[-1944]
(g1%2)[-1946]
(g0%1)[-1946]
(g0%2)[-1946]
(g1%2)[-1940](g0%2)[-1944](g0%2)[-1943](g1%2)[-1939]
(g0%1)[-1916]
(g0%1)[-1927]
(g0%1)[-1917](g0%1)[-1922](g0%1)[-1921](g0%1)[-1920](g0%1)[-1919](g0%1)[-1918]
(g0%1)[-1893]
(g0%1)[-1904]
(g0%1)[-1894](g0%1)[-1899](g0%1)[-1898](g0%1)[-1897](g0%1)[-1896](g0%1)[-1895]
(g0%1)[-1879]
(g0%1)[-1876](g0%1)[-1881]
(g1%2)[-1876]
(g0%2)[-1889]
(g1%2)[-1890]
(g1%2)[-1859]
(g0%1)[-1851]
(g0%1)[-1844]
(g0%2)[-1859]
(g1%2)[-1865]
(g0%1)[-1877]
(g0%1)[-1870]
(g0%1)[-1868]
(g1%2)[-1894]
(g0%2)[-1891]
(g1%2)[-1885]
(g0%1)[-1881](g0%1)[-1884](g0%1)[-1883](g0%1)[-1882]
(g1%2)[-1839]
(g0%1)[-1831]
(g0%1)[-1824]
(g0%2)[-1839]
(g1%2)[-1819]
(g0%1)[-1820]
(g0%1)[-1827]
(g0%2)[-1819]
(g0%1)[-1814]
(g1%2)[-1810]
(g0%2)[-1792]
(g0%1)[-1821]
(g0%2)[-1824]
(g0%2)[-1832]
(g1%2)[-1821]
(g1%2)[-1816]
(g0%2)[-1815]
(g0%1)[-1797]
(g0%1)[-1806]
(g0%1)[-1796](g0%1)[-1800](g0%1)[-1797]
(g0%1)[-1796]
(g0%2)[-1807]
(g0%1)[-1805]
(g1%2)[-1810]
(g0%1)[-1817]
(g0%1)[-1814](g0%1)[-1819]
(g1%2)[-1819]
(g0%2)[-1824]
(g0%2)[-1828]
(g0%2)[-1808]
(g0%1)[-1797](g0%1)[-1796]
(g1%2)[-1816]
(g0%1)[-1808]
(g0%2)[-1803]
(g0%1)[-1783](g0%1)[-1787](g0%1)[-1784]
(g0%1)[-1791]
(g0%2)[-1824]
(g0%2)[-1810]
(g0%1)[-1815](g0%1)[-1825](g0%1)[-1822]
(g1%2)[-1812]
(g1%8)[-1802]
(g0%1)[-1834]
(g0%1)[-1844]
(g0%1)[-1834](g0%1)[-1839](g0%1)[-1838](g0%1)[-1837](g0%1)[-1836](g0%1)[-1835]
(g0%2)[-1853](g1%2)[-1857](g1%2)[-1856](g0%2)[-1852]
(g0%2)[-1852]
(g0%1)[-1853]
(g0%2)[-1856]
(g0%2)[-1848]
(g0%1)[-1843](g0%1)[-1847](g0%1)[-1846]
(g0%2)[-1856]
(g0%1)[-1879](g0%1)[-1882]
(g0%1)[-1860]
(g0%2)[-1863]
(g0%2)[-1855]
(g0%2)[-1859]
(g1%2)[-1852]
(g0%1)[-1873](g0%1)[-1876](g0%1)[-1875](g0%1)[-1874]
(g0%8)[-1882]
(g0%1)[-1867]
(g0%2)[-1866]
(g0%1)[-1861]
(g1%2)[-1878]
(g0%1)[-1886]
(g0%1)[-1893]
(g0%1)[-1895]
(g0%2)[-1876]
(g1%2)[-1887]
(g0%2)[-1900]
(g1%2)[-1897]
(g0%1)[-1900]
(g1%2)[-1888]
(g0%2)[-1895]
(g0%1)[-1894]
(g1%2)[-1891]
(g0%2)[-1887]
(g0%1)[-1897](g0%1)[-1896](g0%1)[-1895](g0%1)[-1894](g0%1)[-1893](g0%1)[-1892]
(g0%1)[-1886]
(g0%2)[-1876]
(g1%2)[-1874]
(g0%2)[-1885]
(g1%8)[-1884]
(g0%1)[-1876]
(g0%2)[-1877]
(g1%2)[-1876]
(g1%2)[-1863]
(g0%2)[-1868]
(g0%2)[-1876]
(g1%2)[-1877]
(g0%1)[-1859]
(g0%2)[-1862]
(g1%2)[-1858]
(g0%1)[-1863]
(g0%1)[-1855]
(g0%1)[-1861]
(g1%2)[-1857]
(g0%2)[-1851]
(g0%1)[-1859]
(g0%2)[-1855]
(g1%2)[-1855]
(g0%1)[-1841]
(g0%1)[-1838](g0%1)[-1843]
(g1%2)[-1838]
(g1%2)[-1853]
(g0%2)[-1851]
(g0%2)[-1847]
(g0%1)[-1837]
(g0%1)[-1810]
(g0%2)[-1814]
(g0%2)[-1812]
(g0%2)[-1809]
(g0%1)[-1783]
(g0%1)[-1791]
(g0%1)[-1788]
(g0%8)[-1795](g1%8)[-1795](g2%8)[-1795](g3%8)[-1795](g4%8)[-1795](g6%8)[-1795](g7%8)[-1795]
(g0%1)[-1821]
(g0%1)[-1830]
(g1%2)[-1833]
(g1%2)[-1842]
(g0%2)[-1840]
(g0%1)[-1825]
(g0%1)[-1818]
(g0%1)[-1848](g0%1)[-1847](g0%1)[-1844]
(g0%1)[-1848]
(g0%1)[-1847]
(g1%2)[-1842]
(g1%2)[-1842]
(g1%2)[-1842](g1%2)[-1843](g0%2)[-1839](g0%2)[-1838]
(g1%2)[-1836]
(g0%2)[-1856]
(g1%2)[-1853]
(g0%1)[-1828]
(g1%2)[-1827]
(g0%2)[-1841]
(g1%2)[-1843]
(g1%2)[-1836]
(g0%1)[-1830](g0%1)[-1829](g0%1)[-1828](g0%1)[-1827](g0%1)[-1826](g0%1)[-1825]
(g0%1)[-1828]
(g1%2)[-1840]
(g0%1)[-1836]
(g0%1)[-1837]
(g0%2)[-1838]
(g0%1)[-1843]
(g0%2)[-1830](g0%2)[-1831]
(g0%1)[-1826]
(g0%1)[-1829](g0%1)[-1824]
(g0%1)[-1836]
(g0%1)[-1825]
(g0%1)[-1833]
(g0%1)[-1840]
(g0%1)[-1837](g0%1)[-1842]
(g1%2)[-1837]
(g0%2)[-1850]
(g1%2)[-1851]
(g1%2)[-1855]
(g0%2)[-1852]
(g1%2)[-1826]
(g0%1)[-1838]
(g0%1)[-1841](g0%1)[-1836]
(g0%1)[-1829]
(g0%1)[-1831]
(g0%1)[-1825]
(g0%1)[-1834]
(g0%2)[-1834]
(g1%2)[-1820]
(g1%2)[-1814]
(g0%2)[-1830]
(g0%2)[-1822]
(g0%1)[-1811](g0%1)[-1815](g0%1)[-1812]
(g0%1)[-1822]
(g7%8)[-1843]
(g0%1)[-1824]
(g1%2)[-1823]
(g0%1)[-1818]
(g0%2)[-1839]
(g0%2)[-1838]
(g0%1)[-1847]
(g0%1)[-1854]
(g0%1)[-1856]
(g1%2)[-1837]
(g0%2)[-1848]
(g0%2)[-1863]
(g0%2)[-1869]
(g0%1)[-1865](g0%1)[-1866]
(g0%1)[-1888]
(g0%1)[-1880]
(g1%2)[-1872]
(g0%2)[-1888]
(g1%2)[-1905](g0%2)[-1910](g0%2)[-1909](g1%2)[-1906]
(g1%2)[-1912]
(g1%2)[-1902]
(g0%1)[-1900]
(g1%2)[-1900]
(g1%2)[-1893](g1%2)[-1892]
(g1%2)[-1899]
(g1%2)[-1904]
(g1%2)[-1906]
(g0%1)[-1914]
(g1%2)[-1917]
(g0%2)[-1927]
(g0%2)[-1925]
(g1%2)[-1915]
(g1%2)[-1904]
(g0%2)[-1903]
(g0%2)[-1927]
(g1%2)[-1934]
(g0%2)[-1944]
(g1%2)[-1937]
(g1%2)[-1945]
(g0%1)[-1946](g0%1)[-1945](g0%1)[-1942]
(g0%1)[-1980]
(g1%2)[-1975]
(g0%1)[-1972](g0%1)[-1965](g0%1)[-1962]
(g1%2)[-1999](g0%2)[-1990]
(g0%1)[-1995]
(g0%1)[-1996]
(g0%1)[-2006](g0%1)[-2005](g0%1)[-2002]
(g1%2)[-1999]
(g0%1)[-2009](g0%1)[-2008](g0%1)[-2005]
(g0%2)[-2001]
(g1%2)[-1997]
(g1%2)[-1998]
(g0%1)[-1998](g0%1)[-2001]
(g0%1)[-1983]
(g0%1)[-1980](g0%1)[-1985]
(g0%2)[-1985]
(g1%2)[-1985]
(g1%2)[-1971]
(g0%2)[-1985]
(g0%2)[-1999]
(g0%1)[-1992]
(g0%1)[-1995](g0%1)[-1990]
(g0%2)[-1995]
(g0%1)[-2003]
(g0%2)[-2023]
(g1%2)[-2017]
(g0%1)[-2016]
(g0%1)[-2029]
(g0%1)[-2031](g0%1)[-2036](g0%1)[-2035](g0%1)[-2034](g0%1)[-2033](g0%1)[-2032]
(g0%1)[-2027]
(g0%1)[-2026]
(g0%1)[-2018]
(g0%1)[-2016]
(g1%2)[-2035]
(g0%2)[-2024]
(g1%2)[-2029]
(g1%2)[-2020]
(g0%2)[-1988](g0%2)[-1987](g1%2)[-1984](g1%2)[-1983]
(g0%2)[-1988]
(g0%2)[-1985]
(g1%2)[-1988]
(g1%2)[-1989]
(g0%1)[-1989](g0%1)[-1992]
(g0%1)[-1971]
(g0%2)[-1968]
(g0%2)[-1970]
(g0%1)[-1972]
(g0%2)[-1962]
(g0%1)[-1957]
(g0%1)[-1957]
(g0%2)[-1961]
(g0%2)[-1959]
(g0%2)[-1972]
(g0%1)[-1964]
(g0%1)[-1957]
(g0%1)[-1973]
(g0%2)[-1976]
(g1%2)[-1978](g0%2)[-1983](g0%2)[-1982](g1%2)[-1979]
(g1%2)[-1973]
(g0%2)[-1973]
(g0%1)[-1966](g0%1)[-1969](g0%1)[-1968](g0%1)[-1967]
(g0%1)[-1972]
(g1%2)[-1968]
(g0%1)[-1978]
(g1%2)[-1978]
(g0%1)[-1968](g0%1)[-1975]
(g0%2)[-1990]
(g0%1)[-1980]
(g0%1)[-1989]
(g0%2)[-1986]
(g0%2)[-1983]
(g0%2)[-1988]
(g0%2)[-1976]
(g0%1)[-1980]
(g0%1)[-1991]
(g0%1)[-1974]
(g0%2)[-1971]
(g1%2)[-1966]
(g0%1)[-1975]
(g0%1)[-1977]
(g1%2)[-1977]
(g0%2)[-1979]
(g0%1)[-1984](g0%1)[-1977]
(g0%2)[-1989](g1%2)[-1994](g1%2)[-1993](g1%2)[-1992](g0%2)[-1991](g0%2)[-1990]
(g1%2)[-1981]
(g1%2)[-1979]
(g0%1)[-1991]
(g0%2)[-1987]
(g0%2)[-1979]
(g1%2)[-1988]
(g0%1)[-1990](g0%1)[-1987](g0%1)[-1985]
(g0%1)[-2002](g0%1)[-1995]
(g0%1)[-1998]
(g3%8)[-1964]
(g0%1)[-1989]
(g1%2)[-1993]
(g1%2)[-2002]
(g0%1)[-1980](g0%1)[-1984](g0%1)[-1983](g0%1)[-1982](g0%1)[-1981]
(g0%2)[-1986]
(g0%2)[-1987]
(g0%1)[-1982]
(g0%2)[-1979]
(g0%2)[-1971]
(g0%2)[-1980]
(g0%1)[-1979]
(g1%2)[-1973]
(g0%2)[-1976]
(g1%2)[-1969](g1%2)[-1968](g1%2)[-1967](g0%2)[-1966](g0%2)[-1965](g0%2)[-1964]
(g0%1)[-1991](g0%1)[-1984](g0%1)[-1981]
(g0%1)[-2008]
(g1%2)[-2008]
(g0%1)[-2003]
(g1%2)[-2009]
(g1%2)[-2019]
(g0%1)[-2008]
(g1%2)[-2006]
(g0%2)[-2001]
(g0%1)[-1990]
(g0%2)[-1994]
(g0%2)[-1992]
(g1%2)[-2001]
(g1%2)[-2007](g1%2)[-2006](g1%2)[-2005](g0%2)[-2004](g0%2)[-2003](g0%2)[-2002]
(g0%1)[-1988]
(g0%1)[-1996]
(g0%1)[-1997]
(g0%1)[-1998]
(g0%1)[-1989]
(g1%2)[-1990]
(g1%2)[-1987](g1%2)[-1988](g0%2)[-1984](g0%2)[-1983]
(g1%2)[-1976]
(g0%2)[-1983]
(g0%1)[-2002]
(g0%1)[-1994]
(g0%1)[-1997](g0%1)[-1992]
(g0%2)[-1994]
(g1%2)[-1990]
(g0%1)[-1956]
(g0%1)[-1948]
(g0%1)[-1946]
(g0%2)[-1950]
(g0%1)[-1944]
(g0%1)[-1940](g0%1)[-1939](g0%1)[-1938](g0%1)[-1937](g0%1)[-1936]
(g1%2)[-1951]
(g0%2)[-1955](g0%2)[-1956]
(g0%1)[-1960]
(g1%2)[-1960]
(g1%2)[-1957](g1%2)[-1958](g0%2)[-1954](g0%2)[-1953]
(g1%2)[-1945]
(g1%2)[-1945]
(g0%1)[-1960]
(g0%2)[-1970]
(g0%1)[-1951]
(g0%1)[-1942](g0%1)[-1946](g0%1)[-1943]
(g0%1)[-1947]
(g1%2)[-1952]
(g1%2)[-1935]
(g1%2)[-1933]
(g0%1)[-1924]
(g0%1)[-1924]
(g0%1)[-1934](g0%1)[-1933](g0%1)[-1930]
(g0%1)[-1929]
(g1%2)[-1924]
(g0%2)[-1939]
(g0%2)[-1944]
(g0%1)[-1944]
(g0%1)[-1945]
(g0%1)[-1945]
(g0%1)[-1955]
(g0%1)[-1942]
(g0%1)[-1951]
(g0%1)[-1958]
(g0%2)[-1943]
(g1%2)[-1963]
(g7%8)[-1981]
(g0%1)[-1971]
(g1%2)[-1974]
(g0%2)[-1984]
(g0%2)[-1982]
(g1%2)[-1972]
(g1%2)[-1961]
(g0%2)[-1960]
(g0%1)[-1921]
(g0%1)[-1919](g0%1)[-1924]
(g0%1)[-1925](g0%1)[-1932]
(g0%1)[-1920]
(g0%1)[-1907]
(g0%1)[-1897](g0%1)[-1901](g0%1)[-1898]
(g1%2)[-1904]
(g0%1)[-1894](g0%1)[-1898](g0%1)[-1895]
(g0%2)[-1902]
(g1%2)[-1906]
(g1%2)[-1905]
(g0%1)[-1905](g0%1)[-1902]
(g0%1)[-1910]
(g0%1)[-1901](g0%1)[-1905](g0%1)[-1902]
(g1%2)[-1908]
(g0%1)[-1900]
(g0%2)[-1918]
(g0%1)[-1917]
(g1%2)[-1917]
(g0%1)[-1927](g0%1)[-1920]
(g1%2)[-1900](g0%2)[-1898](g0%2)[-1897](g0%2)[-1896]
(g0%2)[-1905]
(g0%1)[-1915]
(g0%1)[-1914]
(g0%2)[-1913]
(g1%2)[-1916]
(g0%1)[-1917]
(g0%1)[-1914](g0%1)[-1919]
(g0%2)[-1919]
(g0%2)[-1922]
(g1%2)[-1911]
(g1%2)[-1912]
(g0%1)[-1897]
(g0%2)[-1897]
(g0%2)[-1911]
(g1%2)[-1895]
(g0%2)[-1894]
(g0%1)[-1895]
(g0%1)[-1891]
(g0%1)[-1894](g0%1)[-1889]
(g1%2)[-1894]
(g0%1)[-1910]
(g1%2)[-1901]
(g0%1)[-1910]
(g0%2)[-1910]
(g1%2)[-1916](g1%2)[-1917](g0%2)[-1913](g0%2)[-1912]
(g0%2)[-1921]
(g1%2)[-1922]
(g0%2)[-1890]
(g1%2)[-1900]
(g0%1)[-1913]
(g0%1)[-1922]
(g0%1)[-1932]
(g0%1)[-1920]
(g0%2)[-1920]
(g1%2)[-1926](g1%2)[-1927](g0%2)[-1923](g0%2)[-1922]
(g0%2)[-1931]
(g1%2)[-1932]
(g0%1)[-1900](g0%1)[-1903](g0%1)[-1902](g0%1)[-1901]
(g1%2)[-1910]
(g0%1)[-1907]
(g0%1)[-1897](g0%1)[-1901](g0%1)[-1898]
(g1%2)[-1904]
(g0%1)[-1894](g0%1)[-1898](g0%1)[-1895]
(g0%2)[-1902]
(g1%2)[-1906]
(g1%2)[-1905]
(g0%1)[-1905](g0%1)[-1902]
(g0%1)[-1923]
(g0%1)[-1923]
(g0%1)[-1933](g0%1)[-1932](g0%1)[-1929]
(g0%1)[-1928]
(g1%2)[-1923]
(g1%2)[-1938]
(g0%1)[-1935]
(g0%1)[-1935]
(g0%1)[-1944]
(g0%1)[-1936]
(g0%1)[-1942]
(g1%2)[-1944]
(g0%1)[-1942]
(g0%1)[-1941]
(g0%2)[-1940]
(g0%1)[-1935]
(g0%2)[-1947](g0%2)[-1948]
(g0%1)[-1952]
(g0%1)[-1959]
(g0%2)[-1944]
(g1%2)[-1964]
(g0%1)[-1972]
(g0%2)[-1984]
(g0%1)[-1979]
(g0%2)[-1964]
(g1%2)[-1984]
(g0%1)[-1992]
(g0%2)[-1991]
(g0%1)[-1986]
(g0%2)[-1998](g0%2)[-1999]
(g0%1)[-1994]
(g0%1)[-1997](g0%1)[-1992]
(g0%2)[-1997]
(g1%2)[-2002]
(g0%2)[-2005]
(g0%2)[-1992]
(g0%1)[-2042]
(g0%2)[-2038]
(g1%2)[-2034]
(g1%2)[-2024]
(g0%1)[-2022]
(g0%1)[-2027](g0%1)[-2028]
(g0%1)[-2030]
(g0%1)[-2028](g0%1)[-2030]
(g0%1)[-2009]
(g1%2)[-2012]
(g0%2)[-2022]
(g0%2)[-2020]
(g1%2)[-2010]
(g1%2)[-1999]
(g0%2)[-1998]
(g0%2)[-1977]
(g0%2)[-1967]
(g0%1)[-1959]
(g0%2)[-1956]
(g0%2)[-1952]
(g0%1)[-1963]
(g0%1)[-1971]
(g0%1)[-1933]
(g1%2)[-1910]
(g0%1)[-1914]
(g0%2)[-1913]
(g1%2)[-1916]
(g0%1)[-1917]
(g0%1)[-1914](g0%1)[-1919]
(g0%2)[-1919]
(g0%2)[-1922]
(g0%1)[-1929]
(g0%1)[-1938]
(g1%2)[-1941]
(g0%2)[-1951]
(g0%2)[-1949]
(g1%2)[-1939]
(g1%2)[-1928]
(g0%2)[-1927]
(g0%2)[-1951]
(g0%1)[-1970]
(g0%1)[-1962]
(g1%2)[-1970]
(g1%2)[-1984]
(g1%2)[-1985]
(g0%2)[-1991](g0%2)[-1990]
(g0%1)[-1985]
(g0%1)[-1985]
(g0%1)[-1978]
(g1%2)[-1985]
(g0%1)[-1980](g0%1)[-1979](g0%1)[-1978](g0%1)[-1977](g0%1)[-1976]
(g0%2)[-1970]
(g0%1)[-1968]
(g1%2)[-1993]
(g0%2)[-2022]
(g0%1)[-1999]
(g1%2)[-1996]
(g0%2)[-1994](g0%2)[-1993](g1%2)[-1990](g1%2)[-1989]
(g1%2)[-1998]
(g1%2)[-1999]
(g1%2)[-1997]
(g0%2)[-1980]
(g0%1)[-1987]
(g0%1)[-2014]
(g0%1)[-2017](g0%1)[-2012]
(g0%1)[-2005]
(g0%1)[-2013]
(g0%1)[-2026]
(g1%2)[-2024]
(g0%2)[-2023]
(g0%1)[-2031]
(g0%1)[-2022]
(g0%1)[-2030]
(g1%2)[-2022]
(g1%2)[-1999]
(g0%2)[-2007]
(g0%1)[-2003](g0%1)[-2002]
(g0%1)[-2005]
(g0%1)[-2014]
(g0%1)[-2021]
(g0%1)[-2023]
(g1%2)[-2004]
(g0%2)[-2015]
(g1%2)[-2010]
(g0%2)[-2015]
(g1%2)[-2020]
(g0%1)[-2019]
(g0%1)[-2010]
(g0%1)[-2018]
(g0%1)[-2020]
(g0%2)[-2001]
(g1%2)[-2012]
(g0%1)[-2005](g0%1)[-2015](g0%1)[-2012](g0%1)[-2010](g0%1)[-2009]
(g0%2)[-2018]
(g0%1)[-2023]
(g0%1)[-2023]
(g0%1)[-2015]
(g0%1)[-2013]
(g0%2)[-2032]
(g1%2)[-2021]
(g1%2)[-2019]
(g1%2)[-2007]
(g0%1)[-2011](g0%1)[-2015](g0%1)[-2012]
(g0%1)[-2015](g0%1)[-2014](g0%1)[-2013](g0%1)[-2012](g0%1)[-2011](g0%1)[-2010]
(g0%1)[-1971]
(g0%1)[-1978]
(g0%2)[-1961]
(g0%1)[-1960]
(g0%2)[-1966]
(g1%2)[-1976]
(g0%2)[-1972]
(g0%2)[-1972]
(g1%2)[-1911]
(g1%2)[-1912]
(g0%1)[-1897]
(g0%2)[-1898]
(g1%2)[-1877]
(g1%2)[-1837](g1%2)[-1844]
(g0%1)[-1850]
(g0%1)[-1848](g0%1)[-1853]
(g0%2)[-1853]
(g1%2)[-1840]
(g0%2)[-1851]
(g0%1)[-1845]
(g7%8)[-1844]
(g1%2)[-1843]
(g0%1)[-1855](g0%1)[-1854]
(g0%1)[-1851]
(g0%1)[-1842]
(g0%2)[-1839]
(g1%2)[-1833]
(g0%1)[-1834](g0%1)[-1839](g0%1)[-1838](g0%1)[-1837](g0%1)[-1836](g0%1)[-1835]
(g0%1)[-1845]
(g0%1)[-1856]
(g0%1)[-1831]
(g0%1)[-1839]
(g0%1)[-1835]
(g0%2)[-1838]
(g1%2)[-1834]
(g0%1)[-1839]
(g0%1)[-1836](g0%1)[-1841]
(g0%1)[-1828](g0%1)[-1835]
(g0%1)[-1848]
(g0%1)[-1847]
(g1%2)[-1842]
(g1%2)[-1842]
(g1%2)[-1842](g1%2)[-1843](g0%2)[-1839](g0%2)[-1838]
(g1%2)[-1836]
(g0%2)[-1856]
(g1%2)[-1853]
(g0%2)[-1866]
(g0%2)[-1868]
(g1%2)[-1866]
(g0%2)[-1888]
(g0%2)[-1897]
(g0%2)[-1902]
(g0%2)[-1904]
(g0%1)[-1885]
(g0%1)[-1886]
(g1%2)[-1886]
(g1%2)[-1901]
(g0%2)[-1896]
(g1%2)[-1888]
(g0%2)[-1892]
(g0%2)[-1870]
(g0%1)[-1871]
(g1%2)[-1871]
(g1%2)[-1856]
(g0%2)[-1853]
(g1%2)[-1867]
(g1%2)[-1871]
(g1%2)[-1853]
(g0%2)[-1859]
(g1%2)[-1870]
(g1%2)[-1875]
(g0%1)[-1871](g0%1)[-1872]
(g0%2)[-1875]
(g0%2)[-1866]
(g0%2)[-1875]
(g0%2)[-1864]
(g1%2)[-1861]
(g0%2)[-1878]
(g0%1)[-1891]
(g0%1)[-1894](g0%1)[-1889]
(g1%2)[-1894]
(g1%2)[-1901]
(g0%2)[-1890]
(g1%2)[-1877]
(g0%1)[-1864](g0%1)[-1867](g0%1)[-1866](g0%1)[-1865]
(g0%2)[-1866]
(g0%2)[-1868]
(g1%2)[-1866]
(g0%1)[-1848]
(g0%1)[-1837]
(g0%1)[-1847](g0%1)[-1846](g0%1)[-1845](g0%1)[-1844](g0%1)[-1843](g0%1)[-1842]
(g0%1)[-1871]
(g0%1)[-1861](g0%1)[-1865](g0%1)[-1862]
(g0%1)[-1866]
(g1%2)[-1861]
(g0%2)[-1857]
(g0%2)[-1874]
(g0%1)[-1871]
(g0%1)[-1858]
(g0%1)[-1858]
(g0%2)[-1854]
(g1%2)[-1873]
(g1%2)[-1867]
(g0%1)[-1887](g0%1)[-1886](g0%1)[-1883]
(g0%2)[-1857]
(g1%2)[-1878]
(g1%2)[-1886]
(g0%1)[-1894]
(g0%2)[-1894]
(g0%1)[-1899]
(g1%2)[-1880]
(g0%2)[-1884]
(g1%2)[-1892]
(g0%2)[-1906]
(g1%2)[-1902]
(g0%1)[-1909]
(g0%1)[-1909]
(g1%2)[-1909]
(g1%2)[-1895]
(g0%1)[-1897]
(g0%2)[-1902]
(g0%1)[-1911]
(g0%2)[-1915]
(g0%2)[-1907]
(g1%2)[-1923]
(g0%2)[-1919]
(g0%2)[-1912]
(g1%2)[-1901]
(g0%2)[-1922]
(g0%2)[-1919]
(g0%2)[-1878]
(g0%1)[-1876]
(g0%1)[-1869]
(g0%1)[-1872]
(g0%1)[-1867]
(g0%1)[-1855]
(g0%1)[-1873]
(g0%1)[-1861]
(g0%1)[-1860]
(g0%1)[-1867]
(g0%2)[-1850]
(g0%1)[-1850]
(g0%1)[-1850](g0%1)[-1849]
(g0%2)[-1855]
(g1%2)[-1865]
(g0%2)[-1861]
(g0%2)[-1861]
(g0%1)[-1853]
(g0%1)[-1844]
(g0%1)[-1835](g0%1)[-1839](g0%1)[-1836]
(g0%1)[-1840]
(g0%2)[-1835]
(g1%2)[-1838](g1%2)[-1839]
(g0%1)[-1845]
(g0%1)[-1844]
(g0%1)[-1845]
(g0%1)[-1845]
(g0%1)[-1834]
(g0%1)[-1859]
(g0%1)[-1850](g0%1)[-1854](g0%1)[-1851]
(g0%1)[-1855]
(g0%1)[-1848](g0%1)[-1855]
(g0%1)[-1837]
(g0%1)[-1830]
(g0%2)[-1845]
(g1%2)[-1825]
(g0%1)[-1817]
(g0%1)[-1828]
(g0%1)[-1818](g0%1)[-1823](g0%1)[-1822](g0%1)[-1821](g0%1)[-1820](g0%1)[-1819]
(g0%1)[-1781]
(g0%1)[-1779]
(g0%1)[-1785]
(g0%1)[-1786]
(g0%1)[-1777]
(g0%1)[-1780](g0%1)[-1775]
(g0%2)[-1780]
(g1%2)[-1780]
(g0%2)[-1767]
(g1%2)[-1783]
(g0%1)[-1794]
(g0%1)[-1787]
(g0%2)[-1802]
(g1%2)[-1782]
(g0%1)[-1766]
(g0%1)[-1774]
(g0%1)[-1767]
(g0%2)[-1782]
(g1%2)[-1762]
(g0%1)[-1763]
(g0%1)[-1755]
(g0%2)[-1763]
(g0%2)[-1775]
(g0%1)[-1785]
(g0%1)[-1773]
(g1%2)[-1770]
(g1%2)[-1778]
(g1%2)[-1766]
(g0%1)[-1759](g0%1)[-1756]
(g0%1)[-1774]
(g0%1)[-1785]
(g0%1)[-1785]
(g0%2)[-1781]
(g0%2)[-1780](g0%2)[-1779]
(g0%1)[-1790](g0%1)[-1794](g0%1)[-1793](g0%1)[-1792](g0%1)[-1791]
(g0%1)[-1785]
(g0%1)[-1785]
(g0%1)[-1796]
(g0%1)[-1794](g0%1)[-1793](g0%1)[-1790]
(g0%1)[-1789]
(g0%2)[-1784]
(g0%1)[-1768]
(g0%1)[-1768]
(g0%1)[-1760]
(g0%2)[-1767]
(g0%2)[-1775]
(g0%1)[-1766]
(g1%2)[-1751](g1%2)[-1755]
(g0%1)[-1757]
(g0%2)[-1754]
(g0%2)[-1745]
(g0%2)[-1756]
(g1%2)[-1760]
(g0%1)[-1761]
(g0%2)[-1774]
(g6%8)[-1769]
(g1%2)[-1790]
(g1%2)[-1797]
(g0%1)[-1805]
(g0%1)[-1815]
(g0%1)[-1805](g0%1)[-1810](g0%1)[-1809](g0%1)[-1808](g0%1)[-1807](g0%1)[-1806]
(g0%1)[-1860]
(g0%1)[-1862]
(g0%1)[-1865](g0%1)[-1860]
(g0%1)[-1853]
(g0%1)[-1867]
(g0%1)[-1855](g0%1)[-1850]
(g0%1)[-1874]
(g0%1)[-1869]
(g0%2)[-1865]
(g0%2)[-1867]
(g0%2)[-1861]
(g0%1)[-1869]
(g0%1)[-1886]
(g0%1)[-1878]
(g0%2)[-1886]
(g0%2)[-1894]
(g0%2)[-1911]
(g0%1)[-1890](g0%1)[-1889]
(g0%1)[-1898]
(g0%1)[-1900]
(g1%2)[-1899]
(g0%2)[-1911]
(g1%2)[-1902]
(g0%1)[-1908]
(g0%1)[-1910]
(g1%2)[-1907]
(g1%2)[-1891]
(g0%2)[-1899]
(g0%2)[-1914]
(g1%2)[-1915]
(g0%2)[-1922]
(g0%2)[-1903]
(g0%2)[-1908](g0%2)[-1901]
(g0%2)[-1863]
(g7%8)[-1859]
(g0%1)[-1866]
(g0%1)[-1869]
(g1%2)[-1865]
(g0%2)[-1859]
(g0%1)[-1881]
(g0%1)[-1866]
(g0%1)[-1872]
(g0%1)[-1851]
(g0%2)[-1848]
(g1%2)[-1843]
(g0%1)[-1854]
(g0%1)[-1844]
(g0%1)[-1849](g0%1)[-1854](g0%1)[-1853](g0%1)[-1852](g0%1)[-1851](g0%1)[-1850]
(g0%1)[-1863]
(g0%1)[-1878]
(g1%2)[-1878]
(g1%2)[-1875](g1%2)[-1876](g0%2)[-1872](g0%2)[-1871]
(g1%2)[-1863]
(g1%2)[-1863]
(g0%2)[-1879]
(g0%1)[-1868]
(g1%2)[-1873]
(g0%1)[-1877]
(g1%2)[-1866]
(g0%2)[-1873]
(g0%2)[-1857]
(g1%2)[-1863](g1%2)[-1853]
(g0%1)[-1852]
(g0%1)[-1843]
(g0%1)[-1853](g0%1)[-1852](g0%1)[-1849]
(g0%1)[-1844]
(g0%1)[-1841]
(g0%2)[-1834]
(g1%2)[-1851]
(g0%1)[-1854]
(g0%1)[-1851](g0%1)[-1856]
(g0%2)[-1851]
(g1%2)[-1851]
(g1%2)[-1865]
(g0%2)[-1864]
(g0%2)[-1854]
(g0%1)[-1835]
(g0%1)[-1828]
(g0%2)[-1832]
(g0%2)[-1830]
(g0%1)[-1817]
(g1%2)[-1838]
(g1%2)[-1839]
(g0%1)[-1841]
(g0%1)[-1838](g0%1)[-1843]
(g0%2)[-1843]
(g1%2)[-1846]
(g1%2)[-1843]
(g1%2)[-1831](g0%2)[-1836](g0%2)[-1835](g1%2)[-1832]
(g1%2)[-1830]
(g1%2)[-1831]
(g0%1)[-1936]
(g0%1)[-1933](g0%1)[-1938]
(g0%1)[-1945]
(g0%1)[-1943]
(g0%1)[-1949]
(g0%1)[-1950]
(g0%1)[-1950]
(g0%2)[-1950]
(g1%2)[-1948]
(g0%2)[-1939]
(g0%2)[-1946]
(g0%2)[-1954]
(g0%1)[-1965](g0%1)[-1975](g0%1)[-1968](g0%1)[-1964]
(g0%1)[-1999]
(g1%2)[-2000]
(g1%2)[-1985]
(g0%2)[-1982]
(g0%1)[-1991]
(g0%1)[-1982]
(g0%2)[-2001]
(g0%2)[-2003]
(g0%1)[-1991]
(g0%1)[-1986](g0%1)[-1985](g0%1)[-1984](g0%1)[-1983](g0%1)[-1982](g0%1)[-1981]
(g0%1)[-1979]
(g1%2)[-1975]
(g1%2)[-1977]
(g1%2)[-1971]
(g1%2)[-1980]
(g0%2)[-1977]
(g0%1)[-1965]
(g1%2)[-1965]
(g0%2)[-1977]
(g1%2)[-1968]
(g0%2)[-1971]
(g1%2)[-1964]
(g0%2)[-1969]
(g0%2)[-1967]
(g0%2)[-1967]
(g0%2)[-1970]
(g0%1)[-1976]
(g1%2)[-1980]
(g1%2)[-1984]
(g1%2)[-1983]
(g1%2)[-1985]
(g0%1)[-1999]
(g0%1)[-2006]
(g0%1)[-2008]
(g0%2)[-1997]
(g0%1)[-1989]
(g0%1)[-1998]
(g0%1)[-1992]
(g0%1)[-1982](g0%1)[-1986](g0%1)[-1983]
(g0%1)[-1987]
(g0%1)[-1994]
(g0%1)[-1978]
(g0%1)[-1992](g0%1)[-1997]
(g1%2)[-1990]
(g0%2)[-1997]
(g0%1)[-1984]
(g0%1)[-1983]
(g1%2)[-1979]
(g1%2)[-1987]
(g1%2)[-1986]
(g0%2)[-1990]
(g0%1)[-1991]
(g0%1)[-1985]
(g0%1)[-1994]
(g0%2)[-2012]
(g0%1)[-2003](g0%1)[-2002](g0%1)[-1999]
(g0%1)[-2003]
(g1%2)[-1999]
(g0%1)[-2000](g0%1)[-2003](g0%1)[-2002]
(g0%2)[-1995]
(g0%2)[-2004]
(g0%2)[-2014]
(g0%1)[-2013]
(g0%1)[-2016](g0%1)[-2011]
(g0%1)[-2004]
(g1%2)[-2001]
(g0%2)[-2004]
(g0%2)[-1998]
(g0%2)[-1996]
(g1%2)[-2011]
(g0%1)[-1997](g0%1)[-2001](g0%1)[-2000](g0%1)[-1999](g0%1)[-1998](g0%1)[-1996]
(g0%1)[-1965]
(g0%1)[-1966]
(g0%2)[-1970]
(g1%2)[-1976]
(g0%1)[-1966]
(g0%1)[-1970](g0%1)[-1975](g0%1)[-1974](g0%1)[-1973](g0%1)[-1972](g0%1)[-1971]
(g0%1)[-1965]
(g0%1)[-1956]
(g0%1)[-1949]
(g1%2)[-1956]
(g0%1)[-1951](g0%1)[-1950](g0%1)[-1949](g0%1)[-1948](g0%1)[-1947]
(g1%2)[-1964]
(g0%1)[-1970]
(g0%2)[-1967]
(g0%1)[-1982]
(g0%1)[-1974]
(g0%2)[-1991]
(g1%2)[-1957]
(g0%2)[-1959]
(g0%2)[-1966]
(g0%1)[-1988](g0%1)[-1987](g0%1)[-1986](g0%1)[-1985](g0%1)[-1984](g0%1)[-1983]
(g0%1)[-1984]
(g0%1)[-1976]
(g1%2)[-1988]
(g0%2)[-1984]
(g1%2)[-1979]
(g1%2)[-1985]
(g0%2)[-1979]
(g1%2)[-1976](g0%2)[-1981](g0%2)[-1980](g1%2)[-1977]
(g0%1)[-1989]
(g1%2)[-1989]
(g0%2)[-1987]
(g0%2)[-1995]
(g0%1)[-1984](g0%1)[-1987]
(g0%1)[-1970](g0%1)[-1971]
(g0%1)[-1974]
(g0%1)[-1975]
(g0%1)[-1975]
(g0%2)[-1978]
(g1%2)[-1974]
(g0%1)[-1979]
(g0%1)[-1976](g0%1)[-1981]
(g0%2)[-1976]
(g1%2)[-1973]
(g1%2)[-1976]
(g1%2)[-1971]
(g0%2)[-1977]
(g0%1)[-1982]
(g0%1)[-1974]
(g1%2)[-1982]
(g0%2)[-1992]
(g1%2)[-2005]
(g0%2)[-2005]
(g0%2)[-1993]
(g0%1)[-1986]
(g1%2)[-1990]
(g0%2)[-2000]
(g1%2)[-1985]
(g0%2)[-2000]
(g0%1)[-1997](g0%1)[-2006](g0%1)[-2005](g0%1)[-1998]
(g1%2)[-2008]
(g1%2)[-2010]
(g0%1)[-2018]
(g0%1)[-2027](g0%1)[-2026](g0%1)[-2023]
(g0%2)[-2020]
(g0%2)[-2005]
(g0%2)[-2025]
(g0%2)[-2012]
(g1%2)[-2038]
(g0%1)[-2037]
(g0%1)[-2040](g0%1)[-2035]
(g0%1)[-2028]
(g0%1)[-2039]
(g0%1)[-2024]
(g0%1)[-2022]
(g1%2)[-2026]
(g0%1)[-2011]
(g0%2)[-2008]
(g1%2)[-2012]
(g0%1)[-2007](g0%1)[-2013](g0%1)[-2010]
(g1%2)[-2000](g0%2)[-2003](g0%2)[-2002](g0%2)[-2001](g1%2)[-1999](g1%2)[-1998]
(g0%1)[-2022]
(g0%1)[-2040]
(g1%2)[-2041]
(g1%2)[-2040]
(g1%2)[-2030]
(g0%1)[-2033]
(g0%1)[-2028]
(g0%1)[-2028]
(g0%2)[-2032]
(g0%2)[-2030]
(g0%2)[-2049]
(g1%2)[-2039]
(g1%2)[-2045](g1%2)[-2044](g1%2)[-2043](g0%2)[-2042](g0%2)[-2041](g0%2)[-2040]
(g0%1)[-2026]
(g0%1)[-2034]
(g0%1)[-2035]
(g0%1)[-2026]
(g0%1)[-2029](g0%1)[-2024]
(g0%2)[-2024]
(g0%2)[-2037]
(g1%2)[-2031]
(g0%2)[-2034]
(g0%1)[-2034](g0%1)[-2033](g0%1)[-2032](g0%1)[-2031](g0%1)[-2030](g0%1)[-2029]
(g0%1)[-2036]
(g1%2)[-2037]
(g0%2)[-2025]
(g0%1)[-2016]
(g0%1)[-2016]
(g1%2)[-2036]
(g1%2)[-2032]
(g1%2)[-2028]
(g0%1)[-2019](g0%1)[-2014]
(g0%1)[-2012]
(g0%1)[-2009]
(g0%1)[-2017]
(g1%8)[-2019]
(g0%1)[-2006]
(g0%1)[-2006]
(g0%1)[-2015](g0%1)[-2014](g0%1)[-2011]
(g0%1)[-2015]
(g0%1)[-2009]
(g0%2)[-2019]
(g0%1)[-2022]
(g0%1)[-2023]
(g0%1)[-2024]
(g0%1)[-2025]
(g1%2)[-1984]
(g0%1)[-1976]
(g0%2)[-1973]
(g0%1)[-1958]
(g0%2)[-1964]
(g0%2)[-1975]
(g1%2)[-1979]
(g0%1)[-1980]
(g0%2)[-1993]
(g5%8)[-1988]
(g0%1)[-1960]
(g0%2)[-1957]
(g0%8)[-1931]
(g0%2)[-1941]
(g0%2)[-1949]
(g1%2)[-1952]
(g1%2)[-1969]
(g0%1)[-1973]
(g0%2)[-1968]
(g1%2)[-1965]
(g1%2)[-1970](g1%2)[-1969]
(g1%2)[-1963]
(g0%1)[-1974]
(g1%2)[-1978]
(g0%2)[-1982]
(g0%2)[-1992]
(g0%1)[-1982](g0%1)[-1987](g0%1)[-1986](g0%1)[-1985](g0%1)[-1984](g0%1)[-1983]
(g1%2)[-1981]
(g1%2)[-1972](g0%2)[-1975](g0%2)[-1974](g0%2)[-1973](g1%2)[-1971](g1%2)[-1970]
(g1%2)[-1992]
(g0%1)[-1990]
(g0%1)[-1999]
(g0%2)[-2002]
(g0%2)[-2010]
(g0%2)[-2001]
(g0%1)[-1991]
(g1%2)[-1988]
(g1%2)[-1996]
(g0%1)[-2002]
(g0%8)[-2003](g2%8)[-2003](g6%8)[-2003]
(g0%1)[-1998](g0%1)[-2001]
(g0%1)[-2025]
(g0%2)[-2028]
(g1%2)[-2024]
(g0%1)[-2029]
(g0%2)[-2032]
(g1%2)[-2028]
(g0%1)[-2033]
(g1%2)[-2036]
(g1%2)[-2028]
(g1%2)[-2038]
(g0%1)[-2046]
(g0%1)[-2047]
(g0%1)[-2046]
(g0%1)[-2081]
(g0%1)[-2078](g0%1)[-2083]
(g0%2)[-2078]
(g1%2)[-2075]
(g1%2)[-2092]
(g1%2)[-2085]
(g0%2)[-2084]
(g0%1)[-2095]
(g0%2)[-2098]
(g1%2)[-2100](g0%2)[-2105](g0%2)[-2104](g1%2)[-2101]
(g0%2)[-2100]
(g1%2)[-2104]
(g1%2)[-2110]
(g0%2)[-2094]
(g0%1)[-2120]
(g0%2)[-2116]
(g1%2)[-2112]
(g1%2)[-2102]
(g0%1)[-2100]
(g0%1)[-2105](g0%1)[-2106]
(g0%1)[-2108]
(g0%1)[-2106](g0%1)[-2108]
(g0%1)[-2121]
(g0%1)[-2111](g0%1)[-2115](g0%1)[-2112]
(g1%2)[-2124]
(g1%2)[-2112]
(g0%1)[-2115](g0%1)[-2116]
(g0%2)[-2129]
(g0%2)[-2118](g0%2)[-2119]
(g0%1)[-2114]
(g0%2)[-2111]
(g1%2)[-2105]
(g0%1)[-2124](g0%1)[-2123](g0%1)[-2122](g0%1)[-2121](g0%1)[-2120](g0%1)[-2119]
(g0%1)[-2116]
(g0%1)[-2121]
(g0%1)[-2131](g0%1)[-2135](g0%1)[-2134](g0%1)[-2133](g0%1)[-2132]
(g0%1)[-2130]
(g0%1)[-2122]
(g1%2)[-2130]
(g0%2)[-2145]
(g1%2)[-2147]
(g0%1)[-2138](g0%1)[-2142](g0%1)[-2141](g0%1)[-2140](g0%1)[-2139]
(g0%1)[-2158]
(g0%2)[-2161]
(g0%1)[-2148](g0%1)[-2152](g0%1)[-2151](g0%1)[-2150](g0%1)[-2149]
(g0%2)[-2156]
(g1%2)[-2150]
(g0%1)[-2150]
(g1%2)[-2147]
(g0%2)[-2137]
(g0%2)[-2139]
(g1%2)[-2149]
(g0%1)[-2167]
(g0%1)[-2174]
(g1%2)[-2160]
(g0%2)[-2161]
(g0%1)[-2166]
(g0%1)[-2164]
(g1%2)[-2183]
(g0%2)[-2172]
(g0%2)[-2158]
(g0%2)[-2166]
(g0%2)[-2170]
(g0%1)[-2174]
(g0%1)[-2174]
(g1%2)[-2178]
(g0%2)[-2188]
(g0%2)[-2191]
(g0%1)[-2188]
(g0%1)[-2185]
(g0%1)[-2184]
(g0%2)[-2188]
(g0%2)[-2180]
(g1%2)[-2188]
(g0%1)[-2187]
(g0%1)[-2200](g0%1)[-2199](g0%1)[-2196]
(g1%2)[-2180]
(g1%2)[-2204]
(g0%1)[-2225]
(g1%2)[-2229]
(g1%2)[-2232]
(g1%2)[-2230]
(g1%2)[-2234]
(g1%2)[-2230](g1%2)[-2229](g0%2)[-2226](g0%2)[-2225]
(g1%2)[-2224]
(g0%1)[-2242]
(g0%1)[-2249]
(g0%2)[-2234]
(g1%2)[-2254]
(g0%1)[-2262]
(g0%2)[-2261]
(g0%1)[-2256]
(g0%2)[-2268](g0%2)[-2269]
(g0%1)[-2273]
(g0%1)[-2280]
(g0%2)[-2265]
(g1%2)[-2285]
(g0%1)[-2293]
(g0%1)[-2300]
(g0%2)[-2285]
(g1%2)[-2305]
(g0%1)[-2304]
(g1%2)[-2308]
(g1%2)[-2300]
(g0%2)[-2308]
(g0%1)[-2307]
(g0%1)[-2312]
(g0%1)[-2308]
(g0%1)[-2317]
(g0%1)[-2324]
(g0%2)[-2309]
(g1%2)[-2329]
(g0%1)[-2337]
(g0%1)[-2326]
(g0%1)[-2331](g0%1)[-2336](g0%1)[-2335](g0%1)[-2334](g0%1)[-2333](g0%1)[-2332]
(g0%1)[-2361]
(g0%1)[-2361]
(g0%1)[-2350]
(g0%1)[-2360](g0%1)[-2359](g0%1)[-2358](g0%1)[-2357](g0%1)[-2356](g0%1)[-2355]
(g0%1)[-2384]
(g0%1)[-2373]
(g0%1)[-2383](g0%1)[-2382](g0%1)[-2381](g0%1)[-2380](g0%1)[-2379](g0%1)[-2378]
(g0%2)[-2415]
(g0%2)[-2412]
(g0%1)[-2433]
(g1%2)[-2429]
(g1%2)[-2437]
(g1%2)[-2433]
(g1%2)[-2439]
(g1%2)[-2433]
(g1%2)[-2426](g1%2)[-2425](g1%2)[-2424](g0%2)[-2423](g0%2)[-2422](g0%2)[-2421]
(g0%1)[-2431]
(g0%1)[-2431]
(g1%2)[-2427]
(g0%1)[-2425]
(g0%1)[-2424](g0%1)[-2417](g0%1)[-2414]
(g0%1)[-2425]
(g0%1)[-2428](g0%1)[-2423]
(g0%2)[-2428]
(g0%2)[-2423](g1%2)[-2427](g1%2)[-2426](g0%2)[-2422]
(g1%2)[-2424]
(g1%2)[-2428]
(g0%1)[-2428]
(g0%1)[-2428]
(g0%2)[-2432]
(g1%2)[-2451]
(g0%1)[-2447]
(g0%2)[-2440]
(g1%2)[-2425]
(g0%1)[-2418](g0%1)[-2428](g0%1)[-2425]
(g0%1)[-2417]
(g0%1)[-2451]
(g0%1)[-2451]
(g0%2)[-2454]
(g0%2)[-2463]
(g0%2)[-2452]
(g1%2)[-2448]
(g0%1)[-2447]
(g0%2)[-2434]
(g7%8)[-2439]
(g0%1)[-2448]
(g0%1)[-2451](g0%1)[-2446]
(g1%2)[-2451]
(g0%2)[-2454]
(g1%2)[-2452]
(g0%2)[-2452]
(g0%1)[-2407]
(g0%1)[-2396]
(g0%1)[-2406](g0%1)[-2405](g0%1)[-2404](g0%1)[-2403](g0%1)[-2402](g0%1)[-2401]
(g0%1)[-2430]
(g0%1)[-2419]
(g0%1)[-2429](g0%1)[-2428](g0%1)[-2427](g0%1)[-2426](g0%1)[-2425](g0%1)[-2424]
(g0%1)[-2453]
(g0%2)[-2449]
(g0%2)[-2457]
(g1%2)[-2457]
(g0%1)[-2461]
(g0%1)[-2459]
(g1%2)[-2456]
(g0%1)[-2485]
(g0%1)[-2483]
(g0%1)[-2473](g0%1)[-2477](g0%1)[-2474]
(g0%2)[-2486]
(g0%1)[-2493]
(g1%2)[-2476]
(g0%2)[-2485]
(g0%1)[-2497]
(g0%1)[-2494](g0%1)[-2499]
(g1%2)[-2494]
(g0%1)[-2486]
(g1%2)[-2494]
(g0%1)[-2482]
(g0%1)[-2509](g0%1)[-2501]
(g0%2)[-2523]
(g1%2)[-2527]
(g0%1)[-2576]
(g1%2)[-2572]
(g1%2)[-2572]
(g0%1)[-2581](g0%1)[-2585](g0%1)[-2584](g0%1)[-2583](g0%1)[-2582]
(g0%2)[-2583]
(g1%2)[-2563](g1%2)[-2572](g0%2)[-2568](g0%2)[-2567]
(g0%1)[-2554]
(g1%2)[-2550]
(g1%2)[-2542]
(g0%2)[-2545]
(g0%2)[-2562]
(g1%2)[-2550]
(g1%2)[-2545](g1%2)[-2546](g0%2)[-2542](g0%2)[-2541]
(g1%2)[-2540]
(g1%2)[-2550]
(g0%2)[-2564]
(g0%1)[-2566]
(g1%2)[-2562]
(g1%2)[-2559]
(g1%2)[-2564]
(g0%1)[-2566]
(g0%2)[-2554]
(g0%1)[-2552]
(g0%2)[-2549]
(g1%2)[-2539]
(g0%1)[-2562](g0%1)[-2561](g0%1)[-2560](g0%1)[-2559](g0%1)[-2558]
(g1%2)[-2560]
(g1%2)[-2554]
(g0%1)[-2536]
(g0%1)[-2540]
(g1%2)[-2564]
(g0%1)[-2572]
(g1%2)[-2571]
(g0%2)[-2585]
(g1%2)[-2581]
(g0%2)[-2579]
(g0%2)[-2580]
(g0%1)[-2572](g0%1)[-2577](g0%1)[-2576](g0%1)[-2575](g0%1)[-2574](g0%1)[-2573]
(g0%1)[-2600]
(g0%1)[-2597](g0%1)[-2602]
(g0%1)[-2609]
(g0%1)[-2598]
(g0%2)[-2589]
(g0%1)[-2582]
(g0%1)[-2581]
(g0%1)[-2581]
(g0%1)[-2584](g0%1)[-2579]
(g0%2)[-2579]
(g1%2)[-2582]
(g1%2)[-2579]
(g1%2)[-2560]
(g0%2)[-2584]
(g0%1)[-2589]
(g0%1)[-2603]
(g0%1)[-2607]
(g4%8)[-2601]
(g0%1)[-2558]
(g0%2)[-2563]
(g0%1)[-2575]
(g0%2)[-2542]
(g0%2)[-2556]
(g0%1)[-2551](g0%1)[-2544](g0%1)[-2541]
(g1%2)[-2554]
(g0%1)[-2541]
(g0%1)[-2538](g0%1)[-2543]
(g1%2)[-2538]
(g1%2)[-2541]
(g0%1)[-2548]
(g0%1)[-2543](g0%1)[-2542](g0%1)[-2541](g0%1)[-2540](g0%1)[-2539]
(g0%1)[-2537]
(g0%1)[-2537]
(g1%2)[-2532]
(g0%1)[-2518](g0%1)[-2522](g0%1)[-2519]
(g1%2)[-2556](g0%2)[-2547]
(g0%1)[-2549]
(g0%1)[-2557](g0%1)[-2556](g0%1)[-2555](g0%1)[-2554]
(g0%1)[-2569](g0%1)[-2577]
(g0%1)[-2530]
(g0%1)[-2530]
(g0%1)[-2521](g0%1)[-2525](g0%1)[-2522]
(g0%1)[-2526]
(g1%2)[-2531]
(g0%2)[-2516]
(g1%2)[-2520]
(g0%1)[-2513]
(g0%1)[-2522]
(g0%1)[-2519](g0%1)[-2524]
(g0%2)[-2519]
(g1%2)[-2519]
(g1%2)[-2533]
(g0%2)[-2519]
(g1%2)[-2508]
(g0%1)[-2533]
(g1%2)[-2532]
(g0%2)[-2544]
(g0%1)[-2536]
(g1%2)[-2527]
(g1%2)[-2519]
(g0%1)[-2543]
(g1%2)[-2540]
(g0%2)[-2530]
(g0%2)[-2548]
(g0%1)[-2551]
(g1%2)[-2527]
(g0%1)[-2542]
(g0%1)[-2550]
(g1%2)[-2543]
(g1%2)[-2535]
(g0%1)[-2520]
(g1%2)[-2524]
(g1%2)[-2516]
(g1%2)[-2520]
(g0%2)[-2523]
(g0%2)[-2511]
(g0%1)[-2516]
(g0%1)[-2519](g0%1)[-2514]
(g1%2)[-2519]
(g1%2)[-2504]
(g1%2)[-2513]
(g0%2)[-2523]
(g1%2)[-2520](g1%2)[-2519]
(g0%1)[-2524]
(g0%2)[-2524]
(g0%1)[-2533]
(g0%1)[-2531]
(g0%2)[-2504]
(g1%2)[-2508]
(g0%2)[-2514]
(g0%1)[-2522]
(g0%1)[-2521]
(g0%1)[-2518](g0%1)[-2523]
(g0%1)[-2530]
(g0%1)[-2520](g0%1)[-2517](g0%1)[-2510]
(g1%2)[-2523]
(g0%1)[-2494]
(g0%2)[-2498]
(g1%2)[-2494]
(g0%1)[-2490]
(g0%2)[-2494]
(g1%2)[-2490]
(g0%1)[-2486]
(g0%2)[-2490]
(g1%2)[-2486]
(g0%1)[-2491]
(g1%2)[-2494]
(g0%2)[-2504]
(g0%2)[-2502]
(g1%2)[-2492]
(g1%2)[-2481]
(g0%2)[-2480]
(g0%1)[-2469]
(g0%2)[-2465]
(g1%2)[-2463](g1%2)[-2462](g0%2)[-2459](g0%2)[-2458]
(g1%2)[-2455]
(g0%2)[-2470]
(g0%2)[-2449]
(g1%2)[-2470]
(g0%1)[-2440]
(g0%1)[-2449]
(g0%1)[-2446](g0%1)[-2451]
(g0%1)[-2439]
(g0%1)[-2450]
(g0%1)[-2435]
(g0%1)[-2443]
(g0%1)[-2434]
(g0%1)[-2437](g0%1)[-2432]
(g1%2)[-2437]
(g0%2)[-2432]
(g0%2)[-2425](g1%2)[-2430](g1%2)[-2429](g0%2)[-2426]
(g0%2)[-2441]
(g0%2)[-2447]
(g0%1)[-2419]
(g0%1)[-2487]
(g0%1)[-2480]
(g0%1)[-2478]
(g0%2)[-2492]
(g0%1)[-2488]
(g0%2)[-2504]
(g1%2)[-2500]
(g1%2)[-2536]
(g1%2)[-2563]
(g1%2)[-2558]
(g0%1)[-2555]
(g0%1)[-2565](g0%1)[-2564](g0%1)[-2561]
(g0%1)[-2560]
(g0%1)[-2561]
(g1%2)[-2558]
(g0%1)[-2555]
(g1%2)[-2566]
(g0%1)[-2569]
(g0%1)[-2569]
(g1%2)[-2565]
(g1%2)[-2556]
(g0%1)[-2578](g0%1)[-2577](g0%1)[-2576](g0%1)[-2575](g0%1)[-2574]
(g0%2)[-2572]
(g0%2)[-2571]
(g0%1)[-2576]
(g0%2)[-2579]
(g0%2)[-2587]
(g0%2)[-2578]
(g0%1)[-2579]
(g1%2)[-2585]
(g0%2)[-2582]
(g1%2)[-2589](g0%2)[-2594](g0%2)[-2593](g0%2)[-2592](g1%2)[-2591](g1%2)[-2590]
(g0%1)[-2567](g0%1)[-2577](g0%1)[-2574]
(g1%2)[-2548]
(g0%2)[-2542]
(g0%1)[-2543]
(g0%1)[-2569]
(g0%1)[-2566](g0%1)[-2571]
(g0%2)[-2566]
(g0%2)[-2555]
(g1%2)[-2569]
(g0%1)[-2569]
(g0%1)[-2580]
(g0%1)[-2571]
(g0%2)[-2568]
(g0%2)[-2570]
(g0%1)[-2583]
(g0%1)[-2582]
(g0%1)[-2579](g0%1)[-2584]
(g0%1)[-2591]
(g0%1)[-2589]
(g0%1)[-2595]
(g0%1)[-2596]
(g0%1)[-2596]
(g0%2)[-2596]
(g1%2)[-2594]
(g0%2)[-2585]
(g0%2)[-2592]
(g0%1)[-2611](g0%1)[-2621](g0%1)[-2614]
(g0%2)[-2600]
(g0%2)[-2553]
(g0%1)[-2553]
(g0%1)[-2551]
(g0%1)[-2554](g0%1)[-2549]
(g0%1)[-2547]
(g0%1)[-2556]
(g0%1)[-2550](g0%1)[-2551]
(g0%2)[-2548]
(g0%1)[-2544]
(g0%1)[-2534]
(g1%2)[-2531]
(g0%2)[-2523]
(g0%2)[-2524]
(g1%2)[-2537]
(g0%2)[-2543]
(g1%2)[-2549]
(g1%2)[-2568]
(g3%8)[-2577]
(g0%1)[-2536]
(g0%1)[-2536]
(g1%2)[-2537]
(g0%2)[-2535]
(g0%2)[-2543]
(g0%1)[-2537]
(g0%1)[-2516](g0%1)[-2521]
(g1%2)[-2506]
(g0%2)[-2500]
(g0%1)[-2511]
(g0%1)[-2514](g0%1)[-2509]
(g1%2)[-2514]
(g1%2)[-2499]
(g0%2)[-2501]
(g0%2)[-2505]
(g0%1)[-2515]
(g0%1)[-2531]
(g0%1)[-2484]
(g0%2)[-2487]
(g0%2)[-2496]
(g0%2)[-2485]
(g1%2)[-2481]
(g0%1)[-2480]
(g0%2)[-2467]
(g7%8)[-2472]
(g0%1)[-2522]
(g1%2)[-2522]
(g1%2)[-2528]
(g0%1)[-2518]
(g0%1)[-2506]
(g0%2)[-2516]
(g0%1)[-2498]
(g0%2)[-2502]
(g0%2)[-2500]
(g0%2)[-2497]
(g0%1)[-2428]
(g0%1)[-2435]
(g1%2)[-2428]
(g0%2)[-2410](g1%2)[-2415](g1%2)[-2414](g0%2)[-2411]
(g1%2)[-2426]
(g0%1)[-2423]
(g0%2)[-2443]
(g0%1)[-2471]
(g0%1)[-2464]
(g0%2)[-2481]
(g0%1)[-2482]
(g0%2)[-2476]
(g1%2)[-2466]
(g0%2)[-2470]
(g0%2)[-2470]
(g0%1)[-2409]
(g0%1)[-2412](g0%1)[-2407]
(g0%2)[-2412]
(g1%2)[-2417]
(g0%2)[-2420]
(g0%2)[-2407]
(g0%2)[-2392]
(g0%2)[-2382]
(g0%1)[-2374]
(g0%1)[-2377](g0%1)[-2372]
(g1%2)[-2377]
(g0%2)[-2363]
(g0%2)[-2360]
(g0%1)[-2364]
(g0%1)[-2367](g0%1)[-2362]
(g0%2)[-2362]
(g0%2)[-2351]
(g1%2)[-2361]
(g0%2)[-2373]
(g0%2)[-2370]
(g0%1)[-2387]
(g0%1)[-2424]
(g0%1)[-2434]
(g0%1)[-2422]
(g0%2)[-2419]
(g0%2)[-2421]
(g0%2)[-2424]
(g0%1)[-2410]
(g0%1)[-2441]
(g0%2)[-2438]
(g0%2)[-2440]
(g0%2)[-2427]
(g0%1)[-2425]
(g1%2)[-2422]
(g1%2)[-2413]
(g0%1)[-2442]
(g0%1)[-2452]
(g0%1)[-2449](g0%1)[-2454]
(g0%1)[-2447]
(g0%1)[-2445]
(g0%1)[-2451](g0%1)[-2444](g0%1)[-2441]
(g0%1)[-2444]
(g0%1)[-2438]
(g1%2)[-2427]
(g0%2)[-2423]
(g0%1)[-2446]
(g0%1)[-2454]
(g0%2)[-2442]
(g1%2)[-2447]
(g0%2)[-2446]
(g1%2)[-2434]
(g1%2)[-2432]
(g6%8)[-2436]
(g0%1)[-2410]
(g0%2)[-2413]
(g0%2)[-2411]
(g1%2)[-2428]
(g1%2)[-2432]
(g0%2)[-2428]
(g3%8)[-2420]
(g0%2)[-2404]
(g1%2)[-2420]
(g0%1)[-2419]
(g1%2)[-2416]
(g1%2)[-2424]
(g0%1)[-2418]
(g0%2)[-2415]
(g0%1)[-2431]
(g0%1)[-2427]
(g1%2)[-2416]
(g1%2)[-2410](g1%2)[-2409](g1%2)[-2408](g0%2)[-2407](g0%2)[-2406](g0%2)[-2405]
(g1%2)[-2390]
(g1%2)[-2399]
(g1%2)[-2388]
(g1%2)[-2377]
(g0%1)[-2359]
(g0%2)[-2363]
(g1%2)[-2369]
(g0%1)[-2359]
(g0%1)[-2363](g0%1)[-2368](g0%1)[-2367](g0%1)[-2366](g0%1)[-2365](g0%1)[-2364]
(g0%1)[-2358]
(g0%1)[-2349]
(g0%2)[-2353]
(g0%1)[-2399](g0%1)[-2398](g0%1)[-2397](g0%1)[-2396](g0%1)[-2395](g0%1)[-2394]
(g0%1)[-2400]
(g0%1)[-2400]
(g0%1)[-2397](g0%1)[-2402]
(g1%2)[-2402]
(g1%2)[-2395](g1%2)[-2394](g0%2)[-2391](g0%2)[-2390]
(g1%2)[-2400]
(g0%2)[-2403]
(g1%2)[-2389]
(g3%8)[-2380]
(g1%2)[-2363]
(g1%2)[-2350]
(g1%2)[-2350]
(g0%1)[-2360]
(g1%2)[-2342]
(g0%1)[-2363]
(g0%1)[-2374]
(g1%2)[-2376]
(g0%2)[-2375]
(g1%2)[-2377]
(g0%2)[-2369]
(g1%8)[-2370](g3%8)[-2370]
(g1%2)[-2381](g1%2)[-2380](g0%2)[-2378](g0%2)[-2377](g0%2)[-2376]
(g0%1)[-2398]
(g0%1)[-2408](g0%1)[-2407](g0%1)[-2404]
(g0%1)[-2408]
(g0%2)[-2411]
(g1%2)[-2405]
(g0%2)[-2393]
(g0%2)[-2396]
(g1%2)[-2383]
(g0%1)[-2388]
(g1%2)[-2399]
(g0%1)[-2511]
(g0%1)[-2502](g0%1)[-2506](g0%1)[-2503]
(g0%1)[-2507]
(g1%2)[-2512]
(g1%2)[-2495]
(g1%2)[-2493]
(g0%1)[-2485]
(g1%2)[-2482]
(g0%2)[-2480](g0%2)[-2479](g1%2)[-2476](g1%2)[-2475]
(g0%2)[-2487]
(g1%2)[-2496](g1%2)[-2489]
(g0%1)[-2487]
(g0%1)[-2482]
(g1%2)[-2485]
(g0%2)[-2489]
(g1%2)[-2475]
(g0%2)[-2470]
(g0%2)[-2475]
(g1%2)[-2474]
(g1%2)[-2496]
(g0%2)[-2495]
(g0%1)[-2461]
(g0%2)[-2458]
(g0%2)[-2455]
(g0%2)[-2466]
(g0%1)[-2460]
(g1%2)[-2459]
(g0%1)[-2474]
(g0%1)[-2466]
(g0%1)[-2475](g0%1)[-2474](g0%1)[-2471]
(g0%1)[-2475]
(g0%1)[-2474]
(g0%2)[-2462]
(g0%1)[-2456]
(g0%2)[-2469]
(g0%1)[-2465]
(g0%1)[-2456]
(g0%1)[-2449]
(g1%2)[-2466]
(g1%2)[-2461]
(g0%1)[-2453](g0%1)[-2446]
(g0%2)[-2455]
(g0%2)[-2464]
(g0%1)[-2474](g0%1)[-2473](g0%1)[-2472](g0%1)[-2471](g0%1)[-2470](g0%1)[-2469]
(g1%2)[-2476]
(g0%1)[-2478]
(g1%2)[-2478]
(g0%1)[-2482]
(g0%2)[-2474]
(g1%2)[-2492]
(g0%2)[-2488]
(g0%2)[-2486]
(g0%1)[-2486]
(g0%2)[-2483]
(g0%2)[-2485]
(g0%2)[-2477]
(g0%1)[-2473]
(g7%8)[-2461]
(g0%1)[-2498]
(g0%1)[-2487]
(g0%1)[-2496]
(g0%2)[-2496]
(g1%2)[-2484]
(g0%1)[-2475]
(g0%2)[-2498]
(g1%2)[-2499]
(g0%1)[-2496](g0%1)[-2500](g0%1)[-2497]
(g1%2)[-2495]
(g3%8)[-2488]
(g0%1)[-2485]
(g0%1)[-2504]
(g1%2)[-2505]
(g0%2)[-2493]
(g1%2)[-2505]
(g0%2)[-2509]
(g0%1)[-2504]
(g0%1)[-2495]
(g0%1)[-2485]
(g1%2)[-2481]
(g0%2)[-2479](g0%2)[-2478](g1%2)[-2475](g1%2)[-2474]
(g0%2)[-2486]
(g1%2)[-2495](g1%2)[-2488]
(g0%1)[-2486]
(g0%1)[-2482]
(g0%1)[-2473]
(g1%2)[-2470]
(g0%2)[-2460]
(g0%2)[-2462]
(g1%2)[-2472]
(g1%2)[-2483]
(g0%2)[-2484]
(g0%1)[-2503]
(g0%1)[-2506](g0%1)[-2501]
(g1%2)[-2501]
(g1%2)[-2508](g0%2)[-2513](g0%2)[-2512](g1%2)[-2509]
(g0%2)[-2510]
(g0%2)[-2516]
(g0%2)[-2490]
(g0%2)[-2513]
(g0%1)[-2503]
(g0%1)[-2513]
(g0%1)[-2504]
(g0%1)[-2507](g0%1)[-2502]
(g0%1)[-2495]
(g0%1)[-2498]
(g0%2)[-2503]
(g0%1)[-2498](g0%1)[-2501](g0%1)[-2500](g0%1)[-2499]
(g0%1)[-2498]
(g1%2)[-2490]
(g0%1)[-2488]
(g0%1)[-2494]
(g0%2)[-2490]
(g1%2)[-2488](g1%2)[-2487](g0%2)[-2484](g0%2)[-2483]
(g0%2)[-2460]
(g0%2)[-2482]
(g0%2)[-2495]
(g0%1)[-2517]
(g0%2)[-2491]
(g0%1)[-2503]
(g0%2)[-2504]
(g0%1)[-2507]
(g0%2)[-2501](g0%2)[-2502](g1%2)[-2498](g1%2)[-2497]
(g0%2)[-2490]
(g0%2)[-2486]
(g0%1)[-2502]
(g1%2)[-2488](g1%2)[-2487]
(g0%1)[-2483]
(g0%1)[-2486](g0%1)[-2481]
(g0%2)[-2486]
(g1%2)[-2472]
(g1%2)[-2483]
(g1%2)[-2483]
(g0%2)[-2482]
(g0%2)[-2498]
(g1%2)[-2478]
(g0%1)[-2494](g0%1)[-2496]
(g0%1)[-2488]
(g1%2)[-2488]
(g0%2)[-2472]
(g0%2)[-2473]
(g0%1)[-2464]
(g0%2)[-2468]
(g1%2)[-2464]
(g0%1)[-2460]
(g1%2)[-2461]
(g0%2)[-2449]
(g0%1)[-2441]
(g0%1)[-2457]
(g0%1)[-2452]
(g0%1)[-2442](g0%1)[-2447](g0%1)[-2446](g0%1)[-2445](g0%1)[-2444](g0%1)[-2443]
(g0%2)[-2487]
(g1%2)[-2488]
(g0%1)[-2481]
(g1%2)[-2481]
(g0%2)[-2483]
(g0%2)[-2486]
(g1%2)[-2493]
(g1%2)[-2483]
(g0%2)[-2490]
(g0%2)[-2480]
(g0%2)[-2476]
(g1%2)[-2466]
(g1%2)[-2474]
(g0%1)[-2482]
(g0%1)[-2491](g0%1)[-2490](g0%1)[-2487]
(g0%1)[-2486]
(g1%2)[-2489]
(g1%2)[-2482]
(g0%2)[-2489]
(g0%2)[-2493]
(g1%2)[-2489]
(g0%2)[-2494]
(g0%1)[-2476]
(g0%1)[-2468]
(g1%2)[-2476]
(g0%2)[-2491]
(g0%2)[-2497]
(g1%2)[-2489](g0%2)[-2493](g1%2)[-2488](g0%2)[-2484]
(g0%1)[-2488]
(g0%1)[-2480]
(g0%1)[-2486]
(g1%2)[-2482]
(g1%2)[-2491]
(g0%1)[-2496]
(g0%1)[-2493]
(g0%1)[-2500]
(g0%1)[-2500]
(g0%1)[-2502]
(g0%2)[-2482]
(g0%2)[-2509]
(g0%2)[-2511]
(g0%1)[-2510]
(g0%1)[-2518]
(g0%2)[-2511]
(g0%2)[-2503]
(g0%1)[-2512]
(g1%2)[-2527](g1%2)[-2523]
(g0%1)[-2521]
(g0%2)[-2524]
(g0%2)[-2533]
(g0%2)[-2522]
(g1%2)[-2518]
(g0%1)[-2517]
(g0%2)[-2504]
(g7%8)[-2509]
(g0%1)[-2483]
(g1%2)[-2486]
(g1%2)[-2486]
(g1%2)[-2487]
(g0%1)[-2485]
(g0%2)[-2479]
(g0%2)[-2490]
(g0%1)[-2484]
(g0%2)[-2483]
(g0%2)[-2492]
(g1%2)[-2482]
(g0%2)[-2483]
(g0%2)[-2482]
(g1%2)[-2477]
(g0%1)[-2478](g0%1)[-2483](g0%1)[-2482](g0%1)[-2481](g0%1)[-2480](g0%1)[-2479]
(g1%2)[-2483]
(g0%1)[-2478]
(g0%1)[-2498]
(g0%2)[-2494]
(g0%2)[-2502]
(g1%2)[-2502]
(g0%1)[-2506]
(g0%1)[-2504]
(g1%2)[-2501]
(g0%1)[-2505]
(g0%2)[-2502]
(g0%2)[-2506](g0%2)[-2505](g1%2)[-2502](g1%2)[-2501]
(g0%2)[-2494]
(g0%2)[-2497]
(g0%1)[-2507]
(g0%1)[-2500]
(g0%1)[-2494]
(g0%1)[-2502]
(g0%1)[-2504]
(g0%2)[-2485]
(g1%2)[-2496]
(g1%2)[-2498]
(g1%2)[-2510]
(g0%1)[-2506](g0%1)[-2505](g0%1)[-2502]
(g0%1)[-2502](g0%1)[-2507](g0%1)[-2506](g0%1)[-2505](g0%1)[-2504](g0%1)[-2503]
(g0%1)[-2509]
(g0%1)[-2519](g0%1)[-2518](g0%1)[-2515]
(g0%1)[-2514]
(g1%2)[-2509]
(g0%1)[-2492]
(g0%1)[-2499]
(g0%2)[-2482]
(g0%1)[-2481]
(g0%2)[-2487]
(g1%2)[-2497]
(g0%2)[-2493]
(g0%2)[-2493]
(g1%2)[-2526]
(g1%2)[-2519]
(g0%1)[-2521]
(g0%1)[-2512]
(g1%2)[-2512]
(g1%2)[-2518]
(g0%1)[-2508]
(g0%1)[-2496]
(g0%2)[-2506]
(g0%1)[-2510]
(g1%2)[-2513]
(g0%2)[-2523]
(g0%2)[-2521]
(g1%2)[-2511]
(g1%2)[-2500]
(g0%2)[-2499]
(g0%1)[-2488]
(g1%2)[-2489]
(g0%2)[-2487]
(g1%2)[-2481]
(g0%1)[-2496](g0%1)[-2500](g0%1)[-2499](g0%1)[-2498](g0%1)[-2497]
(g0%1)[-2489]
(g0%1)[-2487]
(g0%1)[-2494]
(g0%1)[-2496]
(g0%2)[-2477]
(g1%2)[-2488]
(g1%2)[-2483]
(g1%2)[-2488]
(g0%2)[-2501]
(g0%2)[-2499]
(g0%2)[-2479]
(g0%1)[-2481]
(g0%1)[-2473]
(g0%1)[-2479]
(g1%2)[-2481]
(g0%1)[-2479]
(g0%1)[-2479]
(g1%2)[-2447]
(g0%1)[-2442]
(g0%1)[-2418]
(g0%1)[-2429]
(g0%1)[-2419](g0%1)[-2424](g0%1)[-2423](g0%1)[-2422](g0%1)[-2421](g0%1)[-2420]
(g0%1)[-2404]
(g0%2)[-2400]
(g0%1)[-2413](g0%1)[-2412](g0%1)[-2411](g0%1)[-2410](g0%1)[-2409]
(g0%2)[-2405]
(g1%2)[-2411]
(g0%1)[-2401]
(g0%1)[-2400]
(g0%1)[-2409]
(g0%2)[-2405]
(g0%2)[-2401]
(g0%1)[-2412]
(g0%1)[-2385]
(g0%1)[-2395]
(g0%1)[-2386]
(g0%1)[-2394]
(g0%1)[-2391]
(g0%1)[-2396]
(g0%1)[-2398](g0%1)[-2403]
(g1%2)[-2398]
(g0%1)[-2420]
(g0%2)[-2412]
(g0%2)[-2393]
(g0%1)[-2405]
(g0%2)[-2406]
(g0%2)[-2391]
(g0%2)[-2392]
(g0%2)[-2406]
(g1%2)[-2405]
(g0%1)[-2398]
(g1%2)[-2402]
(g1%2)[-2389](g1%2)[-2388](g1%2)[-2387](g0%2)[-2386](g0%2)[-2385](g0%2)[-2384]
(g0%1)[-2385]
(g0%1)[-2371]
(g0%1)[-2380](g0%1)[-2379](g0%1)[-2378](g0%1)[-2377]
(g0%1)[-2405](g0%1)[-2415](g0%1)[-2412]
(g0%1)[-2396](g0%1)[-2401](g0%1)[-2400](g0%1)[-2399](g0%1)[-2398](g0%1)[-2397]
(g0%1)[-2403]
(g0%1)[-2396]
(g0%2)[-2413]
(g0%1)[-2414]
(g0%2)[-2408]
(g1%2)[-2398]
(g0%2)[-2402]
(g0%2)[-2402]
(g0%1)[-2410]
(g0%1)[-2403]
(g0%1)[-2409]
(g0%1)[-2412]
(g0%1)[-2419]
(g0%1)[-2429]
(g0%1)[-2435]
(g0%1)[-2432]
(g0%1)[-2450]
(g0%1)[-2451]
(g1%2)[-2457]
(g0%2)[-2450]
(g1%2)[-2455]
(g1%2)[-2448]
(g0%1)[-2470]
(g0%1)[-2473](g0%1)[-2468]
(g0%1)[-2461]
(g0%1)[-2464]
(g0%1)[-2480]
(g0%1)[-2479]
(g0%2)[-2474]
(g1%2)[-2480]
(g1%2)[-2475]
(g1%2)[-2466]
(g0%1)[-2473]
(g0%1)[-2470](g0%1)[-2475]
(g0%1)[-2468]
(g0%1)[-2465]
(g0%1)[-2476](g0%1)[-2472]
(g0%1)[-2454](g0%1)[-2458](g0%1)[-2457](g0%1)[-2456](g0%1)[-2455]
(g0%1)[-2463]
(g0%1)[-2464]
(g1%2)[-2461]
(g0%2)[-2459](g0%2)[-2458](g1%2)[-2455](g1%2)[-2454]
(g1%2)[-2469]
(g1%2)[-2473]
(g0%1)[-2476](g0%1)[-2479](g0%1)[-2478](g0%1)[-2477]
(g0%1)[-2455](g0%1)[-2454](g0%1)[-2453](g0%1)[-2452]
(g0%1)[-2444]
(g0%2)[-2448]
(g0%2)[-2456]
(g0%2)[-2460]
(g0%1)[-2460]
(g0%1)[-2470]
(g0%2)[-2473]
(g0%2)[-2481]
(g0%2)[-2472]
(g0%1)[-2473]
(g0%1)[-2461](g0%1)[-2471](g0%1)[-2468]
(g1%2)[-2479]
(g0%2)[-2476]
(g0%2)[-2484]
(g0%1)[-2492]
(g0%1)[-2483]
(g0%1)[-2476]
(g0%2)[-2493]
(g0%1)[-2494]
(g0%2)[-2488]
(g1%2)[-2478]
(g0%2)[-2482]
(g0%2)[-2482]
(g0%1)[-2432]
(g0%1)[-2441]
(g0%2)[-2444]
(g1%2)[-2448]
(g0%1)[-2436]
(g1%2)[-2432]
(g0%2)[-2435]
(g0%1)[-2424]
(g0%1)[-2431]
(g0%2)[-2414]
(g0%1)[-2391]
(g0%1)[-2401]
(g0%1)[-2401]
(g1%2)[-2400]
(g0%1)[-2396]
(g0%2)[-2404]
(g0%2)[-2398](g1%2)[-2403](g1%2)[-2402](g1%2)[-2401](g0%2)[-2400](g0%2)[-2399]
(g1%2)[-2390]
(g0%2)[-2388]
(g0%1)[-2395]
(g0%2)[-2398]
(g0%2)[-2396]
(g0%2)[-2402]
(g0%1)[-2394]
(g0%2)[-2400]
(g0%8)[-2404]
(g0%1)[-2413]
(g0%2)[-2419]
(g1%2)[-2429]
(g1%2)[-2461]
(g0%1)[-2468]
(g1%2)[-2464]
(g0%2)[-2454]
(g1%2)[-2462]
(g1%2)[-2462]
(g0%1)[-2451]
(g1%2)[-2455]
(g0%2)[-2472]
(g0%2)[-2482]
(g0%2)[-2465]
(g1%2)[-2450]
(g0%2)[-2465]
(g0%2)[-2473]
(g0%1)[-2481]
(g0%2)[-2478]
(g0%2)[-2474]
(g0%1)[-2485]
(g0%1)[-2460]
(g0%1)[-2457]
(g0%1)[-2483]
(g0%1)[-2457]
(g0%1)[-2448](g0%1)[-2452](g0%1)[-2449]
(g0%2)[-2455]
(g0%2)[-2444]
(g1%2)[-2453]
(g0%2)[-2473]
(g0%1)[-2485]
(g0%1)[-2484]
(g0%1)[-2481](g0%1)[-2486]
(g0%2)[-2481]
(g1%2)[-2478]
(g1%2)[-2481]
(g1%2)[-2476]
(g0%2)[-2482]
(g0%1)[-2500]
(g0%2)[-2504]
(g0%2)[-2512]
(g1%2)[-2509]
(g1%2)[-2507](g1%2)[-2508](g0%2)[-2506]
(g1%2)[-2492]
(g0%2)[-2506]
(g0%2)[-2523]
(g1%2)[-2515]
(g1%2)[-2496]
(g1%2)[-2503]
(g0%1)[-2487]
(g1%2)[-2491]
(g0%1)[-2490](g0%1)[-2489](g0%1)[-2488](g0%1)[-2487](g0%1)[-2486](g0%1)[-2485]
(g0%2)[-2468]
(g0%1)[-2476](g0%1)[-2475](g0%1)[-2474](g0%1)[-2473](g0%1)[-2472](g0%1)[-2471]
(g0%1)[-2485]
(g0%1)[-2476]
(g1%2)[-2480]
(g0%2)[-2490]
(g1%2)[-2475]
(g0%2)[-2490]
(g0%1)[-2505](g0%1)[-2504](g0%1)[-2501]
(g0%2)[-2498]
(g0%1)[-2515]
(g0%1)[-2525](g0%1)[-2524](g0%1)[-2521]
(g0%1)[-2516]
(g0%1)[-2513]
(g0%2)[-2506]
(g1%2)[-2523]
(g0%1)[-2517]
(g0%1)[-2520](g0%1)[-2515]
(g1%2)[-2520]
(g0%2)[-2523]
(g0%2)[-2507]
(g1%2)[-2503]
(g0%1)[-2495]
(g1%2)[-2496]
(g0%2)[-2493]
(g0%1)[-2502]
(g0%1)[-2520]
(g0%1)[-2504]
(g1%2)[-2521]
(g1%2)[-2504]
(g0%1)[-2514]
(g0%1)[-2518]
(g0%1)[-2494]
(g0%1)[-2493]
(g0%1)[-2485]
(g1%2)[-2502]
(g0%1)[-2503]
(g0%2)[-2497]
(g0%1)[-2494]
(g0%1)[-2491]
(g0%1)[-2488]
(g1%2)[-2489]
(g0%1)[-2494]
(g0%2)[-2425]
(g0%2)[-2425]
(g0%1)[-2369]
(g0%2)[-2372]
(g1%2)[-2368]
(g0%1)[-2364]
(g0%1)[-2374](g0%1)[-2373](g0%1)[-2370]
(g0%1)[-2374]
(g0%1)[-2373]
(g0%2)[-2368]
(g1%2)[-2356]
(g0%1)[-2331]
(g1%2)[-2335]
(g1%2)[-2327]
(g0%1)[-2275]
(g0%1)[-2278](g0%1)[-2273]
(g0%1)[-2280]
(g0%1)[-2283]
(g0%1)[-2275]
(g0%1)[-2296]
(g1%2)[-2292]
(g0%2)[-2290](g0%2)[-2289](g1%2)[-2286](g1%2)[-2285]
(g0%1)[-2301](g0%1)[-2305](g0%1)[-2304](g0%1)[-2303](g0%1)[-2302]
(g0%2)[-2306]
(g1%2)[-2283]
(g0%1)[-2293]
(g0%1)[-2300]
(g0%1)[-2281]
(g1%2)[-2284]
(g0%2)[-2288]
(g0%2)[-2308]
(g1%2)[-2313]
(g0%2)[-2292]
(g0%1)[-2278]
(g0%1)[-2294]
(g0%1)[-2302]
(g0%2)[-2295]
(g0%2)[-2287]
(g0%1)[-2281]
(g1%2)[-2277]
(g1%2)[-2279]
(g0%2)[-2269]
(g0%1)[-2261]
(g0%1)[-2270]
(g1%2)[-2270]
(g0%2)[-2272]
(g1%2)[-2269]
(g1%2)[-2254]
(g0%2)[-2263]
(g0%2)[-2259]
(g0%1)[-2268]
(g0%2)[-2268]
(g1%2)[-2258]
(g1%2)[-2268]
(g0%2)[-2267]
(g0%2)[-2272]
(g0%2)[-2274]
(g0%2)[-2308]
(g0%1)[-2304](g0%1)[-2303](g0%1)[-2302](g0%1)[-2301](g0%1)[-2300](g0%1)[-2299]
(g0%1)[-2308]
(g0%1)[-2292]
(g2%8)[-2294]
(g0%1)[-2302]
(g0%1)[-2305](g0%1)[-2300]
(g0%2)[-2305]
(g0%1)[-2313]
(g0%1)[-2320]
(g0%2)[-2327]
(g0%1)[-2333]
(g0%1)[-2324]
(g0%2)[-2324]
(g0%2)[-2330]
(g0%2)[-2334]
(g0%2)[-2330]
(g0%2)[-2340]
(g0%2)[-2333]
(g0%1)[-2324]
(g0%2)[-2329]
(g1%2)[-2291]
(g0%2)[-2299]
(g0%1)[-2303]
(g0%2)[-2286](g0%2)[-2288](g0%2)[-2287]
(g0%2)[-2275]
(g0%1)[-2293]
(g0%1)[-2293]
(g0%1)[-2286]
(g0%2)[-2303]
(g0%1)[-2304]
(g0%2)[-2298]
(g0%1)[-2308]
(g0%2)[-2305]
(g1%2)[-2288]
(g0%2)[-2292]
(g0%2)[-2292]
(g1%2)[-2297]
(g1%2)[-2298]
(g0%1)[-2320]
(g0%1)[-2322](g0%1)[-2317]
(g1%2)[-2320]
(g0%2)[-2311]
(g0%2)[-2309]
(g0%1)[-2316]
(g0%2)[-2313]
(g1%2)[-2308]
(g0%1)[-2317]
(g0%1)[-2328]
(g0%2)[-2324]
(g0%2)[-2326]
(g1%2)[-2309]
(g1%2)[-2318]
(g0%2)[-2322]
(g1%2)[-2314]
(g1%2)[-2328]
(g0%2)[-2323]
(g0%1)[-2341](g0%1)[-2340](g0%1)[-2339](g0%1)[-2338](g0%1)[-2337]
(g0%1)[-2304]
(g0%1)[-2297]
(g0%2)[-2314]
(g0%2)[-2310]
(g0%2)[-2293]
(g1%2)[-2291]
(g0%1)[-2320]
(g0%1)[-2327]
(g0%1)[-2329]
(g0%2)[-2318]
(g0%1)[-2310]
(g0%1)[-2319]
(g0%1)[-2313]
(g0%1)[-2303](g0%1)[-2307](g0%1)[-2304]
(g0%1)[-2308]
(g0%1)[-2315]
(g0%1)[-2299]
(g0%1)[-2313](g0%1)[-2318]
(g1%2)[-2311]
(g0%2)[-2318]
(g0%1)[-2305]
(g0%1)[-2304]
(g1%2)[-2300]
(g1%2)[-2308]
(g1%2)[-2307]
(g0%2)[-2311]
(g0%1)[-2312]
(g0%1)[-2306]
(g0%1)[-2315]
(g0%2)[-2333]
(g0%1)[-2324](g0%1)[-2323](g0%1)[-2320]
(g0%1)[-2324]
(g1%2)[-2320]
(g0%1)[-2321](g0%1)[-2324](g0%1)[-2323]
(g0%2)[-2316]
(g0%2)[-2325]
(g0%2)[-2335]
(g0%1)[-2334]
(g0%1)[-2337](g0%1)[-2332]
(g0%1)[-2348]
(g0%2)[-2349]
(g0%1)[-2325]
(g1%2)[-2322]
(g0%2)[-2325]
(g0%2)[-2319]
(g0%2)[-2317]
(g1%2)[-2332]
(g0%2)[-2335]
(g0%2)[-2344]
(g1%2)[-2350]
(g1%2)[-2355]
(g1%2)[-2342]
(g0%1)[-2333](g0%1)[-2332](g0%1)[-2331](g0%1)[-2330](g0%1)[-2329]
(g0%2)[-2338]
(g0%1)[-2318](g0%1)[-2320](g0%1)[-2319](g0%1)[-2317]
(g0%2)[-2326](g0%2)[-2333]
(g0%1)[-2362]
(g0%1)[-2382](g0%1)[-2386](g0%1)[-2383]
(g0%1)[-2373]
(g0%1)[-2363](g0%1)[-2368](g0%1)[-2367](g0%1)[-2366](g0%1)[-2365](g0%1)[-2364]
(g0%1)[-2339]
(g0%2)[-2336]
(g0%2)[-2333]
(g0%2)[-2338]
(g1%2)[-2334]
(g0%1)[-2341]
(g0%1)[-2324]
(g0%1)[-2333]
(g0%2)[-2332]
(g0%2)[-2330]
(g0%1)[-2324](g0%1)[-2321](g0%1)[-2320]
(g1%2)[-2335]
(g0%2)[-2341]
(g0%1)[-2340]
(g0%1)[-2343](g0%1)[-2338]
(g0%2)[-2338]
(g1%2)[-2352]
(g1%2)[-2341]
(g0%1)[-2355]
(g0%2)[-2345]
(g1%2)[-2339]
(g0%1)[-2349](g0%1)[-2348](g0%1)[-2347](g0%1)[-2346](g0%1)[-2345]
(g0%1)[-2336]
(g1%2)[-2335]
(g0%2)[-2347]
(g0%1)[-2339]
(g1%2)[-2330]
(g0%1)[-2298]
(g0%1)[-2295](g0%1)[-2300]
(g0%1)[-2293]
(g0%1)[-2285]
(g0%1)[-2301]
(g1%2)[-2287]
(g0%1)[-2278]
(g0%2)[-2278]
(g1%2)[-2280]
(g0%2)[-2286]
(g0%1)[-2292]
(g1%2)[-2294]
(g0%2)[-2283]
(g0%1)[-2273]
(g0%1)[-2274]
(g0%1)[-2264]
(g0%1)[-2273]
(g0%2)[-2276]
(g1%2)[-2286]
(g0%2)[-2271]
(g0%2)[-2271]
(g0%1)[-2288]
(g0%2)[-2305]
(g0%1)[-2299]
(g0%1)[-2300]
(g0%1)[-2291]
(g0%2)[-2288]
(g0%1)[-2303]
(g0%1)[-2295]
(g0%2)[-2312]
(g1%2)[-2278]
(g0%2)[-2280]
(g0%2)[-2287]
(g0%1)[-2279](g0%1)[-2284]
(g0%2)[-2240]
(g1%2)[-2238]
(g0%1)[-2236]
(g0%2)[-2237]
(g0%1)[-2242]
(g0%2)[-2229](g0%2)[-2230]
(g0%1)[-2225]
(g1%2)[-2222]
(g0%2)[-2212]
(g0%2)[-2214]
(g1%2)[-2224]
(g1%2)[-2235]
(g0%2)[-2236]
(g0%1)[-2254]
(g0%2)[-2253]
(g1%2)[-2265]
(g0%1)[-2274]
(g0%2)[-2254]
(g0%2)[-2256]
(g0%1)[-2264]
(g0%1)[-2273]
(g0%2)[-2276]
(g0%1)[-2309](g0%1)[-2308](g0%1)[-2307](g0%1)[-2306](g0%1)[-2305](g0%1)[-2304]
(g1%2)[-2284]
(g0%2)[-2285]
(g0%2)[-2274]
(g1%2)[-2263](g0%1)[-2267](g0%1)[-2266](g0%1)[-2265](g0%1)[-2264]
(g1%2)[-2268]
(g1%2)[-2262]
(g1%2)[-2282]
(g1%2)[-2286]
(g0%1)[-2260]
(g1%2)[-2260]
(g1%2)[-2265]
(g0%1)[-2265]
(g0%1)[-2256]
(g0%1)[-2266](g0%1)[-2265](g0%1)[-2264](g0%1)[-2263](g0%1)[-2262](g0%1)[-2261]
(g0%1)[-2281]
(g1%2)[-2277]
(g0%1)[-2286]
(g0%2)[-2292](g1%2)[-2301]
(g0%1)[-2274](g0%1)[-2267](g0%1)[-2264]
(g0%1)[-2277]
(g1%2)[-2274]
(g0%2)[-2272](g0%2)[-2271](g1%2)[-2268](g1%2)[-2267]
(g1%2)[-2260]
(g1%2)[-2254]
(g0%1)[-2251]
(g1%2)[-2264]
(g1%2)[-2279]
(g0%1)[-2276](g0%1)[-2279](g0%1)[-2278](g0%1)[-2277]
(g0%1)[-2273]
(g0%1)[-2258]
(g0%1)[-2261](g0%1)[-2256]
(g0%2)[-2256]
(g0%2)[-2261](g0%2)[-2262](g1%2)[-2258](g1%2)[-2257]
(g1%2)[-2270]
(g0%2)[-2252]
(g0%2)[-2254](g0%2)[-2255](g1%2)[-2251](g1%2)[-2250]
(g1%2)[-2253]
(g0%2)[-2259]
(g1%2)[-2301]
(g1%2)[-2309]
(g1%2)[-2322]
(g0%1)[-2314]
(g0%1)[-2305](g0%1)[-2309](g0%1)[-2306]
(g0%2)[-2312]
(g0%1)[-2346]
(g1%2)[-2343]
(g0%2)[-2335]
(g1%2)[-2333]
(g1%2)[-2351]
(g1%2)[-2351]
(g1%2)[-2348]
(g0%1)[-2340]
(g1%2)[-2336]
(g0%2)[-2326]
(g0%2)[-2334]
(g0%2)[-2329]
(g1%2)[-2341]
(g0%1)[-2342]
(g0%1)[-2374]
(g0%1)[-2381]
(g0%2)[-2369]
(g1%2)[-2362]
(g0%2)[-2368]
(g1%2)[-2366]
(g1%2)[-2381]
(g0%2)[-2371]
(g0%1)[-2387]
(g0%1)[-2387]
(g0%2)[-2388]
(g1%2)[-2389]
(g1%2)[-2376]
(g0%2)[-2372]
(g1%2)[-2362]
(g1%2)[-2362]
(g1%2)[-2370]
(g0%1)[-2351]
(g0%1)[-2348](g0%1)[-2353]
(g1%2)[-2353]
(g0%2)[-2353]
(g0%1)[-2360]
(g0%2)[-2338]
(g0%2)[-2351]
(g0%2)[-2346]
(g0%1)[-2365]
(g0%1)[-2365](g0%1)[-2367](g0%1)[-2366](g0%1)[-2364](g0%1)[-2363]
(g0%1)[-2367]
(g0%1)[-2355](g0%1)[-2358](g0%1)[-2357](g0%1)[-2356](g0%1)[-2354](g0%1)[-2353]
(g0%1)[-2356]
(g0%1)[-2332](g0%1)[-2337](g0%1)[-2336](g0%1)[-2335](g0%1)[-2334](g0%1)[-2333]
(g0%2)[-2327]
(g0%2)[-2307]
(g1%2)[-2294]
(g0%1)[-2286]
(g1%2)[-2283]
(g1%2)[-2280]
(g1%2)[-2285]
(g1%2)[-2281]
(g0%2)[-2298]
(g0%1)[-2294](g0%1)[-2293](g0%1)[-2292](g0%1)[-2291](g0%1)[-2290](g0%1)[-2289]
(g0%1)[-2299](g0%1)[-2302]
(g0%1)[-2288]
(g0%1)[-2287]
(g1%2)[-2286]
(g0%2)[-2288]
(g0%2)[-2280]
(g0%1)[-2291](g0%1)[-2288]
(g0%1)[-2301]
(g0%1)[-2279]
(g0%2)[-2279]
(g1%2)[-2281]
(g0%2)[-2287]
(g0%1)[-2293]
(g1%2)[-2295]
(g0%2)[-2284]
(g0%1)[-2263]
(g0%2)[-2320]
(g0%1)[-2327]
(g0%1)[-2329](g0%1)[-2324]
(g0%2)[-2324]
(g1%2)[-2329]
(g1%2)[-2336](g1%2)[-2335](g0%2)[-2332](g0%2)[-2331]
(g1%2)[-2332]
(g1%2)[-2316]
(g0%1)[-2299]
(g0%2)[-2296]
(g0%2)[-2298]
(g0%2)[-2290]
(g0%1)[-2301]
(g0%1)[-2293]
(g0%1)[-2327]
(g0%1)[-2319]
(g0%1)[-2317]
(g1%2)[-2336]
(g0%2)[-2325]
(g1%2)[-2330]
(g1%2)[-2321]
(g0%1)[-2293]
(g0%1)[-2300]
(g0%2)[-2283]
(g0%1)[-2282]
(g0%2)[-2288]
(g1%2)[-2298]
(g0%2)[-2294]
(g0%2)[-2294]
(g0%1)[-2368]
(g1%2)[-2371]
(g1%2)[-2369]
(g0%1)[-2356]
(g0%1)[-2388](g0%1)[-2387]
(g0%2)[-2379]
(g0%1)[-2376]
(g0%1)[-2386]
(g0%1)[-2386]
(g1%2)[-2389]
(g1%2)[-2397]
(g0%2)[-2394]
(g0%2)[-2377]
(g0%1)[-2373]
(g1%2)[-2381]
(g0%1)[-2378]
(g0%1)[-2375](g0%1)[-2368](g0%1)[-2365]
(g0%1)[-2387]
(g1%2)[-2386]
(g1%2)[-2400]
(g0%1)[-2398]
(g0%2)[-2393]
(g0%1)[-2385]
(g0%1)[-2376]
(g1%2)[-2373]
(g1%2)[-2370]
(g0%2)[-2378]
(g1%2)[-2375]
(g1%2)[-2384]
(g1%2)[-2385]
(g0%2)[-2359]
(g0%2)[-2365]
(g0%2)[-2365]
(g0%2)[-2419]
(g0%2)[-2418]
(g0%1)[-2416]
(g0%1)[-2407](g0%1)[-2411](g0%1)[-2408]
(g0%1)[-2412]
(g1%2)[-2417]
(g0%2)[-2402]
(g0%2)[-2398]
(g0%1)[-2406]
(g0%1)[-2400]
(g0%2)[-2404]
(g0%2)[-2412]
(g0%2)[-2403]
(g1%2)[-2409]
(g0%2)[-2404]
(g0%1)[-2407](g0%1)[-2408]
(g0%1)[-2412]
(g1%2)[-2405]
(g0%1)[-2405](g0%1)[-2408]
(g0%1)[-2412]
(g0%2)[-2412]
(g0%2)[-2426]
(g0%1)[-2424]
(g1%2)[-2419]
(g0%2)[-2438]
(g1%2)[-2436]
(g0%1)[-2443]
(g0%1)[-2435]
(g0%1)[-2433]
(g0%1)[-2432](g0%1)[-2433]
(g0%1)[-2451](g0%1)[-2448]
(g1%2)[-2448]
(g0%2)[-2454]
(g1%2)[-2453](g1%2)[-2455](g1%2)[-2454](g0%2)[-2452](g0%2)[-2451](g0%2)[-2450]
(g3%8)[-2453]
(g0%1)[-2436]
(g0%1)[-2443]
(g0%1)[-2445]
(g0%2)[-2434]
(g0%1)[-2426]
(g0%1)[-2435]
(g0%1)[-2429]
(g0%1)[-2419](g0%1)[-2423](g0%1)[-2420]
(g0%1)[-2424]
(g0%1)[-2431]
(g0%1)[-2415]
(g0%1)[-2429](g0%1)[-2434]
(g1%2)[-2427]
(g0%2)[-2434]
(g0%1)[-2421]
(g0%1)[-2420]
(g1%2)[-2416]
(g1%2)[-2424]
(g1%2)[-2423]
(g0%2)[-2427]
(g0%1)[-2428]
(g0%1)[-2422]
(g0%1)[-2431]
(g0%2)[-2449]
(g0%1)[-2440](g0%1)[-2439](g0%1)[-2436]
(g0%1)[-2440]
(g1%2)[-2436]
(g0%1)[-2437](g0%1)[-2440](g0%1)[-2439]
(g0%2)[-2432]
(g0%2)[-2441]
(g0%2)[-2451]
(g0%1)[-2450]
(g0%1)[-2453](g0%1)[-2448]
(g0%2)[-2475]
(g1%2)[-2481]
(g0%2)[-2486]
(g1%2)[-2477]
(g1%2)[-2473]
(g0%1)[-2466](g0%1)[-2471](g0%1)[-2470](g0%1)[-2469](g0%1)[-2468](g0%1)[-2467]
(g0%1)[-2484]
(g0%1)[-2477]
(g0%1)[-2468](g0%1)[-2472](g0%1)[-2469]
(g1%2)[-2475]
(g0%2)[-2475]
(g0%1)[-2471]
(g0%2)[-2478]
(g0%1)[-2465]
(g1%2)[-2462]
(g0%1)[-2441]
(g1%2)[-2438]
(g0%2)[-2441]
(g0%2)[-2435]
(g0%2)[-2433]
(g1%2)[-2448]
(g0%2)[-2452]
(g0%2)[-2454]
(g1%2)[-2464]
(g1%2)[-2475]
(g0%2)[-2476]
(g0%1)[-2481]
(g0%1)[-2484](g0%1)[-2479]
(g1%2)[-2479]
(g0%2)[-2484]
(g1%2)[-2491]
(g1%2)[-2491]
(g1%2)[-2487]
(g0%1)[-2489]
(g0%2)[-2489]
(g0%2)[-2482](g0%2)[-2481]
(g0%2)[-2489]
(g0%2)[-2491]
(g0%1)[-2487]
(g0%1)[-2488]
(g0%1)[-2488]
(g1%2)[-2488]
(g0%2)[-2480](g0%2)[-2479](g1%2)[-2476](g1%2)[-2475]
(g0%2)[-2485]
(g0%2)[-2477]
(g0%2)[-2473]
(g0%2)[-2452]
(g1%2)[-2483]
(g0%1)[-2490]
(g0%2)[-2489]
(g1%2)[-2492]
(g0%1)[-2493]
(g0%1)[-2490](g0%1)[-2495]
(g0%2)[-2495]
(g0%2)[-2498]
(g1%2)[-2487]
(g1%2)[-2488]
(g0%1)[-2480]
(g0%2)[-2483]
(g0%2)[-2481]
(g0%2)[-2487]
(g1%2)[-2482]
(g1%2)[-2493]
(g1%2)[-2478]
(g0%1)[-2452]
(g0%2)[-2456]
(g0%2)[-2448]
(g1%2)[-2456]
(g0%1)[-2455]
(g0%1)[-2468](g0%1)[-2467](g0%1)[-2464]
(g1%2)[-2448]
(g0%1)[-2459](g0%1)[-2455](g0%1)[-2454](g0%1)[-2452](g0%1)[-2449]
(g1%2)[-2472]
(g0%1)[-2500]
(g0%1)[-2497](g0%1)[-2502]
(g0%2)[-2502]
(g1%2)[-2497]
(g0%2)[-2490]
(g1%2)[-2509]
(g0%2)[-2501]
(g0%2)[-2503]
(g0%1)[-2475]
(g0%1)[-2467]
(g0%2)[-2475]
(g0%2)[-2481]
(g0%2)[-2491]
(g0%2)[-2492]
(g0%2)[-2496]
(g0%1)[-2495]
(g0%1)[-2495]
(g0%2)[-2491]
(g0%2)[-2491]
(g1%2)[-2481]
(g0%1)[-2485](g0%1)[-2484]
(g1%2)[-2482]
(g0%1)[-2491]
(g0%2)[-2494]
(g1%2)[-2502]
(g0%1)[-2478]
(g1%2)[-2489]
(g0%2)[-2485]
(g0%1)[-2494](g0%1)[-2498](g0%1)[-2497](g0%1)[-2496](g0%1)[-2495]
(g0%1)[-2500](g0%1)[-2502](g0%1)[-2501]
(g0%1)[-2512]
(g0%1)[-2503]
(g0%1)[-2496]
(g0%2)[-2513]
(g0%1)[-2514]
(g0%2)[-2508]
(g1%2)[-2498]
(g0%2)[-2502]
(g0%2)[-2502]
(g0%1)[-2511]
(g0%1)[-2520](g0%1)[-2519](g0%1)[-2516]
(g0%1)[-2520]
(g0%1)[-2514]
(g0%1)[-2528]
(g0%1)[-2502](g0%1)[-2501]
(g0%1)[-2498]
(g0%1)[-2507]
(g1%2)[-2507]
(g0%2)[-2505]
(g0%2)[-2513]
(g0%1)[-2504]
(g0%1)[-2488](g0%1)[-2489]
(g0%1)[-2492]
(g0%1)[-2494]
(g0%1)[-2497]
(g0%1)[-2505](g0%1)[-2498]
(g0%1)[-2483]
(g0%2)[-2479]
(g0%1)[-2480](g0%1)[-2485](g0%1)[-2484](g0%1)[-2483](g0%1)[-2482](g0%1)[-2481]
(g0%1)[-2475]
(g1%2)[-2492]
(g0%1)[-2487]
(g0%1)[-2502](g0%1)[-2507](g0%1)[-2506](g0%1)[-2505](g0%1)[-2504](g0%1)[-2503]
(g0%1)[-2495]
(g0%2)[-2498]
(g0%2)[-2496]
(g0%2)[-2502]
(g0%1)[-2494]
(g0%2)[-2500]
(g4%8)[-2504]
(g0%1)[-2479]
(g0%1)[-2468]
(g0%1)[-2478](g0%1)[-2477](g0%1)[-2476](g0%1)[-2475](g0%1)[-2474](g0%1)[-2473]
(g0%1)[-2502]
(g0%1)[-2491]
(g0%1)[-2503]
(g1%2)[-2506]
(g1%2)[-2504]
(g1%2)[-2501]
(g0%1)[-2526]
(g0%1)[-2526]
(g1%2)[-2525]
(g1%2)[-2539]
(g1%2)[-2535]
(g0%2)[-2525]
(g1%2)[-2526]
(g0%1)[-2537]
(g0%2)[-2533]
(g1%2)[-2529]
(g1%2)[-2519]
(g0%1)[-2517]
(g0%1)[-2522](g0%1)[-2523]
(g0%1)[-2525]
(g0%1)[-2523](g0%1)[-2525]
(g0%1)[-2475]
(g0%2)[-2472]
(g0%1)[-2485](g0%1)[-2484](g0%1)[-2483](g0%1)[-2482](g0%1)[-2481]
(g0%2)[-2478]
(g0%2)[-2462]
(g0%2)[-2461]
(g0%1)[-2478]
(g0%1)[-2477]
(g0%1)[-2474](g0%1)[-2479]
(g0%2)[-2479]
(g1%2)[-2479]
(g0%2)[-2466]
(g1%2)[-2482]
(g0%1)[-2472]
(g0%1)[-2462]
(g0%2)[-2463]
(g0%2)[-2463](g0%2)[-2462]
(g0%1)[-2467]
(g0%1)[-2459]
(g1%2)[-2467]
(g0%2)[-2475]
(g1%2)[-2476]
(g0%2)[-2488]
(g0%1)[-2481]
(g0%1)[-2489]
(g0%1)[-2491]
(g0%2)[-2472]
(g1%2)[-2483]
(g0%2)[-2484]
(g1%2)[-2493]
(g1%2)[-2495]
(g0%1)[-2480](g0%1)[-2477](g0%1)[-2476]
(g1%2)[-2481]
(g0%1)[-2498]
(g1%2)[-2495]
(g1%2)[-2487]
(g0%2)[-2493]
(g1%2)[-2486]
(g1%2)[-2473]
(g0%2)[-2474]
(g0%1)[-2505]
(g1%2)[-2508]
(g0%2)[-2518]
(g0%2)[-2516]
(g1%2)[-2506]
(g1%2)[-2495]
(g0%2)[-2494]
(g0%2)[-2518]
(g0%1)[-2467]
(g0%2)[-2464]
(g0%2)[-2472]
(g0%1)[-2477](g0%1)[-2474](g0%1)[-2473]
(g0%2)[-2464]
(g0%1)[-2434](g0%1)[-2433]
(g0%1)[-2410]
(g1%2)[-2406]
(g1%2)[-2398]
(g1%2)[-2408]
(g0%2)[-2416]
(g0%1)[-2414]
(g0%1)[-2397]
(g0%1)[-2420]
(g1%2)[-2425]
(g0%1)[-2427]
(g0%1)[-2428]
(g1%2)[-2401](g0%2)[-2410]
(g0%2)[-2401]
(g0%2)[-2406]
(g0%2)[-2404]
(g0%2)[-2409]
(g1%2)[-2403]
(g0%2)[-2399]
(g0%1)[-2407]
(g0%1)[-2418]
(g0%1)[-2421](g0%1)[-2416]
(g0%1)[-2428]
(g0%2)[-2413]
(g1%2)[-2386]
(g1%2)[-2396]
(g1%2)[-2404](g0%2)[-2409](g0%2)[-2408](g1%2)[-2405]
(g1%2)[-2416]
(g1%2)[-2420]
(g0%1)[-2393](g0%1)[-2392](g0%1)[-2391](g0%1)[-2390](g0%1)[-2389]
(g0%1)[-2382]
(g0%2)[-2383]
(g0%2)[-2383]
(g0%2)[-2368]
(g0%2)[-2365]
(g0%2)[-2383]
(g1%2)[-2378]
(g0%1)[-2382](g0%1)[-2381]
(g0%1)[-2368]
(g1%2)[-2367]
(g0%2)[-2379]
(g1%2)[-2367]
(g1%2)[-2372]
(g1%2)[-2374]
(g0%1)[-2378]
(g0%2)[-2375]
(g0%2)[-2383]
(g0%2)[-2379]
(g0%2)[-2386]
(g0%1)[-2371]
(g0%1)[-2362]
(g1%2)[-2366]
(g0%1)[-2353](g0%1)[-2357](g0%1)[-2356](g0%1)[-2355](g0%1)[-2354]
(g0%2)[-2364]
(g1%2)[-2376]
(g1%2)[-2378]
(g0%2)[-2356]
(g0%1)[-2386]
(g0%1)[-2393]
(g1%2)[-2386]
(g0%2)[-2368](g1%2)[-2373](g1%2)[-2372](g0%2)[-2369]
(g1%2)[-2384]
(g0%1)[-2380]
(g0%2)[-2381]
(g1%2)[-2378]
(g1%2)[-2375]
(g0%1)[-2377]
(g0%1)[-2384]
(g0%1)[-2384]
(g0%1)[-2386]
(g0%2)[-2366]
(g0%2)[-2393]
(g0%2)[-2395]
(g0%1)[-2394]
(g0%1)[-2402]
(g0%2)[-2395]
(g0%2)[-2387]
(g0%1)[-2396]
(g1%2)[-2411](g1%2)[-2407]
(g0%1)[-2405]
(g0%2)[-2408]
(g0%2)[-2417]
(g0%2)[-2406]
(g1%2)[-2402]
(g0%1)[-2401]
(g0%2)[-2388]
(g0%8)[-2393]
(g0%1)[-2355]
(g1%2)[-2354]
(g1%2)[-2369]
(g1%2)[-2358]
(g1%2)[-2355]
(g0%1)[-2334](g0%1)[-2333](g0%1)[-2332](g0%1)[-2331](g0%1)[-2330](g0%1)[-2329]
(g1%2)[-2370](g1%2)[-2369]
(g0%1)[-2374]
(g0%2)[-2370]
(g0%2)[-2372]
(g0%2)[-2359]
(g0%1)[-2357]
(g0%1)[-2368]
(g0%1)[-2375]
(g0%1)[-2356]
(g0%2)[-2360]
(g1%2)[-2356]
(g0%1)[-2352]
(g0%1)[-2362](g0%1)[-2361](g0%1)[-2358]
(g0%2)[-2355]
(g0%2)[-2346]
(g1%2)[-2357]
(g1%2)[-2351]
(g0%2)[-2344]
(g0%1)[-2324]
(g0%1)[-2317]
(g0%2)[-2332]
(g1%2)[-2312]
(g0%1)[-2304]
(g0%1)[-2297]
(g0%2)[-2312]
(g1%2)[-2292]
(g0%1)[-2293]
(g0%1)[-2295](g0%1)[-2290]
(g0%1)[-2282](g0%1)[-2289]
(g1%2)[-2298]
(g0%2)[-2301](g0%2)[-2302]
(g0%1)[-2297]
(g1%2)[-2294]
(g1%2)[-2291]
(g1%2)[-2296]
(g0%2)[-2284]
(g0%2)[-2299]
(g0%1)[-2316]
(g0%2)[-2313]
(g0%1)[-2360]
(g0%1)[-2367]
(g0%1)[-2369]
(g1%2)[-2350]
(g0%2)[-2361]
(g0%2)[-2367]
(g0%1)[-2374]
(g0%1)[-2360](g0%1)[-2359]
(g0%1)[-2360]
(g0%1)[-2349](g0%1)[-2355](g0%1)[-2350]
(g0%1)[-2344]
(g0%1)[-2341](g0%1)[-2346]
(g0%2)[-2346]
(g1%2)[-2346]
(g0%2)[-2333]
(g1%2)[-2349]
(g0%1)[-2348]
(g0%1)[-2349]
(g0%1)[-2331]
(g0%1)[-2328]
(g0%1)[-2320]
(g0%2)[-2337]
(g1%2)[-2303]
(g0%2)[-2305]
(g0%2)[-2312]
(g0%1)[-2304](g0%1)[-2309]
(g0%1)[-2288]
(g0%2)[-2284]
(g0%2)[-2286]
(g0%2)[-2289]
(g0%1)[-2316]
(g0%1)[-2317]
(g0%1)[-2318]
(g0%1)[-2334](g0%1)[-2333](g0%1)[-2332](g0%1)[-2331](g0%1)[-2330](g0%1)[-2329]
(g0%1)[-2349]
(g0%2)[-2352]
(g0%2)[-2350]
(g1%2)[-2367]
(g1%2)[-2369]
(g0%1)[-2337]
(g0%1)[-2338]
(g0%2)[-2338]
(g1%2)[-2344](g1%2)[-2345](g0%2)[-2341](g0%2)[-2340]
(g1%2)[-2350]
(g0%2)[-2340]
(g1%2)[-2347]
(g1%2)[-2339]
(g0%1)[-2338](g0%1)[-2342](g0%1)[-2339]
(g0%1)[-2318]
(g1%2)[-2314]
(g0%2)[-2312](g0%2)[-2311](g1%2)[-2308](g1%2)[-2307]
(g0%2)[-2319]
(g1%2)[-2328](g1%2)[-2321]
(g0%1)[-2319]
(g0%1)[-2315]
(g0%1)[-2368]
(g0%1)[-2361]
(g0%1)[-2359]
(g0%1)[-2392]
(g0%1)[-2385]
(g0%2)[-2402]
(g0%1)[-2403]
(g0%2)[-2397]
(g1%2)[-2387]
(g0%2)[-2391]
(g0%2)[-2391]
(g0%2)[-2430]
(g1%2)[-2431]
(g0%1)[-2441](g0%1)[-2438]
(g0%1)[-2441]
(g1%2)[-2438]
(g1%2)[-2434]
(g1%2)[-2435]
(g1%2)[-2430]
(g0%1)[-2433](g0%1)[-2434]
(g0%2)[-2435]
(g1%2)[-2450]
(g0%1)[-2460]
(g0%2)[-2457]
(g0%2)[-2461](g0%2)[-2460](g1%2)[-2457](g1%2)[-2456]
(g0%2)[-2444]
(g0%2)[-2449]
(g0%2)[-2452]
(g0%1)[-2462]
(g0%1)[-2455]
(g0%1)[-2458]
(g0%1)[-2455](g0%1)[-2460]
(g0%1)[-2467]
(g1%2)[-2452]
(g0%1)[-2474]
(g0%1)[-2481]
(g0%2)[-2451]
(g0%1)[-2454]
(g0%1)[-2439](g0%1)[-2438]
(g0%1)[-2443]
(g0%1)[-2443]
(g0%2)[-2440]
(g1%2)[-2438](g1%2)[-2437](g0%2)[-2434](g0%2)[-2433]
(g1%2)[-2430]
(g0%2)[-2445]
(g0%2)[-2424]
(g1%2)[-2445]
(g0%1)[-2426]
(g0%1)[-2426]
(g0%1)[-2416](g0%1)[-2420](g0%1)[-2417]
(g0%1)[-2421]
(g1%2)[-2426]
(g1%2)[-2411]
(g0%1)[-2419]
(g0%1)[-2413]
(g1%2)[-2409]
(g0%1)[-2407]
(g0%1)[-2406](g0%1)[-2399](g0%1)[-2396]
(g0%2)[-2429]
(g0%1)[-2428]
(g0%1)[-2418]
(g0%1)[-2452]
(g0%1)[-2444]
(g0%1)[-2458]
(g0%1)[-2446]
(g0%1)[-2453]
(g0%1)[-2455]
(g0%2)[-2456]
(g1%2)[-2453]
(g0%1)[-2445]
(g0%1)[-2462]
(g0%1)[-2462]
(g0%1)[-2459](g0%1)[-2464]
(g0%2)[-2462]
(g1%2)[-2466]
(g0%1)[-2462]
(g2%8)[-2475]
(g1%2)[-2433]
(g1%2)[-2431]
(g0%2)[-2430]
(g1%2)[-2428]
(g0%2)[-2441]
(g0%2)[-2431]
(g0%2)[-2422]
(g1%2)[-2424]
(g0%2)[-2424]
(g0%1)[-2400]
(g1%2)[-2378]
(g0%2)[-2367]
(g1%2)[-2366]
(g0%1)[-2360](g0%1)[-2359](g0%1)[-2355]
(g0%2)[-2356]
(g0%2)[-2365]
(g0%1)[-2365]
(g0%2)[-2369]
(g1%2)[-2375]
(g0%1)[-2356](g0%1)[-2361](g0%1)[-2360](g0%1)[-2359](g0%1)[-2358](g0%1)[-2357]
(g0%1)[-2364]
(g0%1)[-2355](g0%1)[-2354]
(g0%1)[-2383]
(g0%2)[-2379]
(g1%2)[-2375]
(g1%2)[-2365]
(g0%1)[-2363]
(g0%1)[-2368](g0%1)[-2369]
(g0%1)[-2371]
(g0%1)[-2369](g0%1)[-2371]
(g0%1)[-2345]
(g0%1)[-2352]
(g0%1)[-2354]
(g0%2)[-2343]
(g0%1)[-2335]
(g0%1)[-2344]
(g0%1)[-2338]
(g0%1)[-2328](g0%1)[-2332](g0%1)[-2329]
(g0%1)[-2333]
(g0%1)[-2340]
(g0%1)[-2324]
(g0%1)[-2338](g0%1)[-2343]
(g1%2)[-2336]
(g0%2)[-2343]
(g0%1)[-2330]
(g0%1)[-2329]
(g1%2)[-2325]
(g1%2)[-2333]
(g1%2)[-2332]
(g0%2)[-2336]
(g0%1)[-2337]
(g0%1)[-2331]
(g0%1)[-2340]
(g0%2)[-2358]
(g0%1)[-2349](g0%1)[-2348](g0%1)[-2345]
(g0%1)[-2349]
(g1%2)[-2345]
(g0%1)[-2346](g0%1)[-2349](g0%1)[-2348]
(g0%2)[-2341]
(g0%2)[-2350]
(g0%2)[-2360]
(g0%1)[-2359]
(g0%1)[-2362](g0%1)[-2357]
(g0%1)[-2350]
(g1%2)[-2347]
(g0%2)[-2350]
(g0%2)[-2344]
(g0%2)[-2342]
(g1%2)[-2357]
(g0%1)[-2343](g0%1)[-2347](g0%1)[-2346](g0%1)[-2345](g0%1)[-2344](g0%1)[-2342]
(g0%1)[-2315]
(g0%2)[-2318]
(g0%2)[-2322]
(g0%1)[-2314]
(g0%1)[-2314]
(g0%1)[-2311]
(g0%1)[-2305]
(g0%2)[-2306]
(g0%2)[-2292]
(g0%2)[-2301]
(g1%2)[-2307]
(g1%2)[-2312]
(g1%2)[-2299]
(g0%1)[-2290](g0%1)[-2289](g0%1)[-2288](g0%1)[-2287](g0%1)[-2286]
(g0%2)[-2295]
(g0%2)[-2283](g0%2)[-2290]
(g0%1)[-2338]
(g0%1)[-2329]
(g0%2)[-2330]
(g0%1)[-2333](g0%1)[-2340]
(g0%2)[-2327](g0%2)[-2328](g1%2)[-2324](g1%2)[-2323]
(g0%2)[-2316]
(g0%2)[-2312]
(g0%2)[-2309]
(g0%1)[-2311]
(g0%1)[-2302]
(g0%1)[-2310]
(g1%2)[-2293]
(g0%1)[-2328]
(g0%1)[-2327]
(g0%1)[-2324](g0%1)[-2329]
(g1%2)[-2329]
(g1%2)[-2322](g1%2)[-2321](g0%2)[-2318](g0%2)[-2317]
(g1%2)[-2330]
(g0%1)[-2339]
(g0%1)[-2329]
(g0%1)[-2338]
(g0%1)[-2332]
(g0%1)[-2330]
(g0%1)[-2312]
(g0%2)[-2304]
(g0%2)[-2319]
(g1%2)[-2309]
(g1%2)[-2308]
(g0%2)[-2313]
(g1%2)[-2288]
(g0%1)[-2290]
(g0%1)[-2287](g0%1)[-2292]
(g1%2)[-2287]
(g0%2)[-2284]
(g0%2)[-2300]
(g1%2)[-2304]
(g0%1)[-2303]
(g1%2)[-2300]
(g0%1)[-2287]
(g0%2)[-2292]
(g1%2)[-2290]
(g1%2)[-2308]
(g1%2)[-2308]
(g1%2)[-2305]
(g0%1)[-2297]
(g1%2)[-2293]
(g0%2)[-2283]
(g0%2)[-2291]
(g0%2)[-2286]
(g1%2)[-2298]
(g0%1)[-2299]
(g0%1)[-2331]
(g0%1)[-2338]
(g0%2)[-2326]
(g1%2)[-2319]
(g0%2)[-2325]
(g1%2)[-2323]
(g1%2)[-2338]
(g0%2)[-2328]
(g0%1)[-2344]
(g0%1)[-2344]
(g0%2)[-2345]
(g1%2)[-2346]
(g1%2)[-2333]
(g0%2)[-2329]
(g1%2)[-2319]
(g1%2)[-2319]
(g1%2)[-2327]
(g0%1)[-2308]
(g0%1)[-2305](g0%1)[-2310]
(g1%2)[-2310]
(g0%2)[-2310]
(g0%1)[-2317]
(g0%2)[-2295]
(g0%1)[-2289](g0%1)[-2293](g0%1)[-2292](g0%1)[-2291](g0%1)[-2290]
(g0%2)[-2308]
(g0%2)[-2303]
(g0%1)[-2322]
(g0%1)[-2322](g0%1)[-2324](g0%1)[-2323](g0%1)[-2321](g0%1)[-2320]
(g0%1)[-2330]
(g0%1)[-2389]
(g0%1)[-2399](g0%1)[-2398](g0%1)[-2397](g0%1)[-2396](g0%1)[-2395](g0%1)[-2394]
(g0%1)[-2414]
(g0%2)[-2411]
(g0%2)[-2413]
(g1%2)[-2396]
(g0%2)[-2406]
(g0%2)[-2406]
(g0%1)[-2416]
(g0%1)[-2433]
(g1%2)[-2437]
(g0%1)[-2450](g0%1)[-2449](g0%1)[-2448](g0%1)[-2447]
(g1%2)[-2445]
(g0%2)[-2442]
(g0%2)[-2425]
(g0%1)[-2445]
(g0%2)[-2439]
(g0%1)[-2422]
(g0%1)[-2438]
(g0%1)[-2402]
(g0%1)[-2399](g0%1)[-2404]
(g1%2)[-2399]
(g0%2)[-2404]
(g0%2)[-2411](g0%2)[-2410](g1%2)[-2407](g1%2)[-2406]
(g0%2)[-2395]
(g0%2)[-2389]
(g0%1)[-2381]
(g1%2)[-2381]
(g0%2)[-2393]
(g1%2)[-2381]
(g1%2)[-2386]
(g1%2)[-2379]
(g0%1)[-2416]
(g0%2)[-2412]
(g0%2)[-2420]
(g0%2)[-2419]
(g0%1)[-2430](g0%1)[-2429](g0%1)[-2428](g0%1)[-2427](g0%1)[-2426](g0%1)[-2425]
(g0%2)[-2426](g0%2)[-2425](g1%2)[-2424](g1%2)[-2423]
(g1%2)[-2430]
(g0%2)[-2420]
(g0%2)[-2420]
(g0%1)[-2401]
(g0%2)[-2404]
(g0%2)[-2408]
(g0%1)[-2397]
(g0%1)[-2389]
(g0%1)[-2427]
(g0%1)[-2431]
(g0%1)[-2431]
(g0%1)[-2438]
(g0%1)[-2440]
(g0%2)[-2429]
(g0%1)[-2421]
(g0%1)[-2430]
(g0%1)[-2424]
(g0%1)[-2414](g0%1)[-2418](g0%1)[-2415]
(g0%1)[-2419]
(g0%1)[-2426]
(g0%1)[-2410]
(g0%1)[-2424](g0%1)[-2429]
(g1%2)[-2422]
(g0%2)[-2429]
(g0%1)[-2416]
(g0%1)[-2415]
(g1%2)[-2411]
(g1%2)[-2419]
(g1%2)[-2418]
(g0%2)[-2422]
(g0%1)[-2423]
(g0%1)[-2417]
(g0%1)[-2426]
(g0%2)[-2444]
(g0%1)[-2435](g0%1)[-2434](g0%1)[-2431]
(g0%1)[-2435]
(g1%2)[-2431]
(g0%1)[-2432](g0%1)[-2435](g0%1)[-2434]
(g0%2)[-2427]
(g0%2)[-2436]
(g0%2)[-2446]
(g0%1)[-2445]
(g0%1)[-2448](g0%1)[-2443]
(g0%1)[-2436]
(g1%2)[-2433]
(g0%2)[-2436]
(g0%2)[-2430]
(g0%2)[-2428]
(g1%2)[-2443]
(g0%1)[-2429](g0%1)[-2433](g0%1)[-2432](g0%1)[-2431](g0%1)[-2430](g0%1)[-2428]
(g0%1)[-2399]
(g0%1)[-2406]
(g0%1)[-2403]
(g0%1)[-2389]
(g0%1)[-2385]
(g0%1)[-2411]
(g0%1)[-2416]
(g0%1)[-2402]
(g0%2)[-2399]
(g0%1)[-2414]
(g0%1)[-2406]
(g0%2)[-2423]
(g1%2)[-2389]
(g0%2)[-2391]
(g0%2)[-2398]
(g0%1)[-2420](g0%1)[-2419](g0%1)[-2418](g0%1)[-2417](g0%1)[-2416](g0%1)[-2415]
(g0%1)[-2488]
(g1%2)[-2491]
(g1%2)[-2500]
(g1%2)[-2489]
(g0%2)[-2485]
(g1%2)[-2477]
(g0%1)[-2476](g0%1)[-2486](g0%1)[-2483]
(g0%1)[-2487]
(g0%1)[-2480]
(g0%2)[-2492]
(g1%2)[-2488]
(g1%2)[-2483]
(g1%2)[-2486]
(g1%2)[-2487]
(g1%2)[-2477]
(g1%2)[-2486]
(g0%1)[-2488]
(g0%1)[-2488]
(g0%1)[-2496]
(g0%2)[-2484]
(g1%2)[-2488]
(g0%2)[-2489]
(g1%2)[-2483]
(g0%1)[-2485]
(g1%2)[-2481]
(g1%2)[-2489]
(g0%8)[-2476](g4%8)[-2476](g6%8)[-2476]
(g0%1)[-2485](g0%1)[-2484](g0%1)[-2483](g0%1)[-2482](g0%1)[-2481](g0%1)[-2480]
(g0%1)[-2481]
(g0%1)[-2476]
(g0%1)[-2488]
(g0%2)[-2491]
(g0%2)[-2495]
(g0%2)[-2494]
(g0%2)[-2485]
(g1%2)[-2492]
(g0%1)[-2498]
(g0%1)[-2491](g0%1)[-2501](g0%1)[-2498]
(g0%1)[-2483]
(g0%1)[-2491]
(g0%2)[-2490]
(g0%1)[-2485]
(g0%2)[-2497](g0%2)[-2498]
(g0%1)[-2493]
(g0%2)[-2494]
(g0%2)[-2496]
(g1%2)[-2496]
(g1%2)[-2482]
(g0%2)[-2500]
(g0%1)[-2484]
(g0%1)[-2484]
(g0%2)[-2484]
(g0%2)[-2476](g0%2)[-2477]
(g0%1)[-2472]
(g0%1)[-2489]
(g0%1)[-2495]
(g0%2)[-2495]
(g0%1)[-2490]
(g0%2)[-2496]
(g0%2)[-2506]
(g1%2)[-2487]
(g0%1)[-2491]
(g0%1)[-2488]
(g0%2)[-2488]
(g1%2)[-2494](g1%2)[-2495](g0%2)[-2491](g0%2)[-2490]
(g1%2)[-2500]
(g0%2)[-2490]
(g1%2)[-2497]
(g1%2)[-2489]
(g0%1)[-2488](g0%1)[-2492](g0%1)[-2489]
(g0%1)[-2482](g0%1)[-2481](g0%1)[-2478]
(g0%2)[-2475]
(g0%2)[-2465]
(g0%1)[-2482]
(g0%1)[-2473](g0%1)[-2472](g0%1)[-2471](g0%1)[-2470](g0%1)[-2469](g0%1)[-2468]
(g0%1)[-2472](g0%1)[-2476]
(g0%8)[-2492]
(g0%1)[-2487](g0%1)[-2492](g0%1)[-2491](g0%1)[-2490](g0%1)[-2489](g0%1)[-2488]
(g0%1)[-2520]
(g1%2)[-2521]
(g0%2)[-2509]
(g1%2)[-2521]
(g0%2)[-2520]
(g0%1)[-2510]
(g0%1)[-2507](g0%1)[-2512]
(g0%1)[-2519]
(g0%1)[-2508]
(g0%1)[-2498]
(g0%1)[-2509]
(g0%1)[-2499](g0%1)[-2504](g0%1)[-2503](g0%1)[-2502](g0%1)[-2501](g0%1)[-2500]
(g0%1)[-2523]
(g0%1)[-2516]
(g0%2)[-2513]
(g0%2)[-2521]
(g0%2)[-2525]
(g0%1)[-2515](g0%1)[-2519](g0%1)[-2518](g0%1)[-2517](g0%1)[-2516]
(g1%2)[-2513]
(g0%2)[-2498]
(g1%2)[-2495]
(g0%1)[-2480]
(g0%2)[-2477]
(g0%2)[-2485]
(g0%2)[-2481]
(g0%2)[-2488]
(g0%1)[-2473]
(g0%1)[-2464]
(g0%2)[-2464]
(g1%2)[-2466]
(g1%2)[-2475]
(g1%2)[-2466]
(g0%1)[-2467]
(g0%2)[-2450]
(g0%1)[-2468]
(g1%2)[-2472]
(g1%2)[-2464]
(g1%2)[-2480]
(g1%2)[-2483]
(g1%2)[-2476]
(g0%2)[-2460]
(g1%2)[-2465]
(g1%2)[-2459]
(g0%1)[-2459](g0%1)[-2462]
(g0%1)[-2451]
(g1%2)[-2454]
(g1%2)[-2452]
(g0%1)[-2486]
(g0%1)[-2493]
(g0%2)[-2476]
(g0%1)[-2475]
(g0%2)[-2481]
(g1%2)[-2491]
(g0%2)[-2487]
(g0%2)[-2487]
(g0%2)[-2469]
(g1%2)[-2459]
(g0%2)[-2475]
(g0%2)[-2474]
(g0%1)[-2449]
(g0%1)[-2470]
(g0%1)[-2470]
(g1%2)[-2467]
(g1%2)[-2459]
(g1%2)[-2468]
(g0%1)[-2478]
(g0%1)[-2472]
(g0%1)[-2483]
(g0%1)[-2482]
(g0%1)[-2479](g0%1)[-2484]
(g0%1)[-2486]
(g1%2)[-2481]
(g0%2)[-2485]
(g0%1)[-2494]
(g1%2)[-2505]
(g1%2)[-2500](g1%2)[-2501]
(g0%1)[-2505]
(g0%2)[-2508]
(g1%2)[-2504]
(g0%1)[-2509]
(g0%2)[-2512]
(g1%2)[-2508]
(g0%1)[-2491]
(g0%2)[-2487]
(g1%2)[-2477]
(g0%2)[-2485]
(g0%1)[-2497]
(g0%2)[-2488]
(g0%1)[-2489]
(g0%1)[-2479]
(g0%2)[-2483]
(g0%2)[-2475]
(g0%2)[-2487]
(g0%1)[-2494](g0%1)[-2497]
(g1%2)[-2454]
(g1%2)[-2451]
(g1%2)[-2454](g0%2)[-2457](g0%2)[-2456](g0%2)[-2455](g1%2)[-2453](g1%2)[-2452]
(g1%2)[-2469]
(g0%2)[-2476]
(g0%2)[-2470]
(g0%1)[-2479]
(g0%2)[-2482]
(g0%2)[-2490]
(g0%2)[-2481]
(g0%1)[-2482]
(g1%2)[-2488]
(g0%2)[-2485]
(g0%1)[-2470](g0%1)[-2480](g0%1)[-2477]
(g0%1)[-2423]
(g0%2)[-2423]
(g0%2)[-2438]
(g0%2)[-2424]
(g0%2)[-2420]
(g0%2)[-2424]
(g1%2)[-2430]
(g0%2)[-2438]
(g0%1)[-2449]
(g0%2)[-2453]
(g0%2)[-2445]
(g1%2)[-2453]
(g0%1)[-2452]
(g0%1)[-2465](g0%1)[-2464](g0%1)[-2461]
(g1%2)[-2445]
(g0%1)[-2456](g0%1)[-2452](g0%1)[-2451](g0%1)[-2449](g0%1)[-2446]
(g1%2)[-2469]
(g1%2)[-2492](g0%2)[-2497](g0%2)[-2496](g0%2)[-2495](g1%2)[-2494](g1%2)[-2493]
(g0%1)[-2504]
(g1%2)[-2505]
(g1%2)[-2491]
(g0%1)[-2493]
(g0%2)[-2498]
(g0%1)[-2507]
(g0%1)[-2500]
(g0%1)[-2514]
(g0%1)[-2513]
(g1%2)[-2531]
(g0%2)[-2509]
(g0%1)[-2528]
(g0%2)[-2531]
(g0%2)[-2529]
(g1%2)[-2546]
(g0%2)[-2536]
(g0%2)[-2536]
(g0%1)[-2526]
(g0%1)[-2500]
(g0%2)[-2472]
(g0%2)[-2473]
(g0%1)[-2475]
(g0%2)[-2471]
(g0%2)[-2461]
(g0%1)[-2465]
(g0%1)[-2462]
(g0%1)[-2479](g0%1)[-2484](g0%1)[-2483](g0%1)[-2482](g0%1)[-2481](g0%1)[-2480]
(g0%1)[-2473]
(g0%1)[-2484]
(g0%1)[-2466]
(g1%2)[-2470]
(g0%2)[-2472](g1%2)[-2477](g1%2)[-2476](g0%2)[-2473]
(g0%1)[-2461](g0%1)[-2460](g0%1)[-2459](g0%1)[-2458](g0%1)[-2457]
(g0%2)[-2456]
(g1%2)[-2476]
(g0%1)[-2480](g0%1)[-2479](g0%1)[-2478](g0%1)[-2477](g0%1)[-2476](g0%1)[-2475]
(g0%1)[-2493]
(g0%2)[-2510]
(g0%1)[-2511]
(g0%2)[-2505]
(g1%2)[-2495]
(g0%2)[-2499]
(g0%2)[-2499]
(g0%1)[-2507]
(g0%1)[-2500]
(g0%1)[-2506]
(g0%1)[-2509]
(g0%1)[-2516]
(g0%1)[-2526]
(g0%1)[-2488]
(g0%1)[-2498]
(g0%1)[-2498]
(g1%2)[-2497]
(g0%1)[-2493]
(g0%2)[-2501]
(g0%2)[-2495](g1%2)[-2500](g1%2)[-2499](g1%2)[-2498](g0%2)[-2497](g0%2)[-2496]
(g1%2)[-2487]
(g0%2)[-2485]
(g0%1)[-2492]
(g0%2)[-2495]
(g0%2)[-2493]
(g0%2)[-2499]
(g0%1)[-2491]
(g0%2)[-2497]
(g1%8)[-2501]
(g0%2)[-2426]
(g0%1)[-2390](g0%1)[-2395]
(g0%1)[-2371]
(g0%2)[-2368]
(g0%2)[-2376]
(g0%1)[-2383]
(g0%2)[-2359]
(g0%2)[-2366]
(g0%1)[-2368]
(g1%2)[-2364]
(g0%1)[-2377](g0%1)[-2376](g0%1)[-2375](g0%1)[-2374](g0%1)[-2373]
(g0%2)[-2369]
(g0%2)[-2366]
(g0%2)[-2372]
(g1%2)[-2378]
(g0%1)[-2361]
(g0%1)[-2364](g0%1)[-2359]
(g0%2)[-2359]
(g1%2)[-2359]
(g0%2)[-2372]
(g0%2)[-2378]
(g1%2)[-2382]
(g1%2)[-2358]
(g0%1)[-2365]
(g0%1)[-2364]
(g0%1)[-2371]
(g0%1)[-2368]
(g0%1)[-2366](g0%1)[-2371]
(g0%1)[-2359]
(g0%1)[-2357]
(g0%1)[-2349]
(g0%1)[-2351]
(g1%2)[-2361]
(g0%2)[-2370]
(g1%2)[-2384](g0%2)[-2389](g0%2)[-2388](g0%2)[-2387](g1%2)[-2386](g1%2)[-2385]
(g1%2)[-2326]
(g0%1)[-2312](g0%1)[-2315](g0%1)[-2314](g0%1)[-2313](g0%1)[-2311](g0%1)[-2310]
(g0%2)[-2316]
(g0%2)[-2324]
(g0%2)[-2319]
(g0%2)[-2328]
(g1%2)[-2322]
(g0%2)[-2316]
(g1%2)[-2319](g1%2)[-2318]
(g0%1)[-2277]
(g0%1)[-2280](g0%1)[-2275]
(g0%1)[-2287]
(g0%1)[-2279]
(g0%1)[-2277]
(g1%2)[-2275]
(g0%2)[-2274]
(g0%1)[-2281]
(g1%2)[-2284]
(g1%2)[-2292]
(g0%2)[-2289]
(g0%1)[-2292]
(g0%2)[-2287]
(g1%2)[-2288]
(g0%2)[-2272]
(g0%1)[-2272](g0%1)[-2267]
(g0%1)[-2274]
(g0%1)[-2274]
(g0%1)[-2284](g0%1)[-2283](g0%1)[-2280]
(g0%1)[-2284]
(g0%1)[-2282]
(g0%1)[-2288]
(g0%2)[-2273]
(g1%2)[-2278]
(g0%1)[-2286]
(g0%1)[-2289]
(g0%1)[-2275]
(g0%1)[-2284]
(g1%2)[-2287]
(g0%2)[-2289](g1%2)[-2294](g1%2)[-2293](g0%2)[-2290]
(g1%2)[-2297]
(g1%2)[-2279]
(g1%2)[-2273]
(g0%1)[-2283]
(g0%1)[-2283]
(g0%1)[-2276]
(g0%1)[-2274]
(g1%2)[-2293]
(g0%2)[-2282]
(g0%2)[-2277]
(g0%2)[-2262]
(g1%2)[-2267]
(g1%2)[-2269]
(g0%1)[-2277]
(g1%2)[-2273]
(g1%2)[-2265]
(g1%2)[-2261]
(g1%2)[-2257]
(g1%2)[-2249]
(g0%1)[-2250]
(g0%1)[-2257]
(g0%2)[-2240]
(g0%1)[-2239]
(g0%2)[-2245]
(g1%2)[-2255]
(g0%2)[-2251]
(g0%2)[-2251]
(g0%1)[-2279]
(g0%1)[-2272]
(g0%2)[-2289]
(g0%1)[-2290]
(g0%2)[-2284]
(g1%2)[-2274]
(g0%2)[-2278]
(g0%2)[-2278]
(g0%2)[-2212]
(g0%1)[-2191](g0%1)[-2187](g0%1)[-2186](g0%1)[-2184](g0%1)[-2181]
(g0%1)[-2157]
(g0%2)[-2154]
(g0%2)[-2156]
(g0%2)[-2137]
(g0%2)[-2141]
(g0%2)[-2146]
(g0%1)[-2159]
(g0%1)[-2146]
(g0%1)[-2138]
(g1%2)[-2150]
(g0%2)[-2143]
(g0%2)[-2136]
(g0%1)[-2106]
(g1%2)[-2106]
(g0%1)[-2110]
(g1%2)[-2092]
(g0%2)[-2090]
(g1%2)[-2095]
(g1%2)[-2117]
(g0%2)[-2113]
(g0%2)[-2113]
(g0%1)[-2104]
(g0%1)[-2094]
(g0%2)[-2095]
(g1%2)[-2096]
(g1%2)[-2083]
(g1%2)[-2088]
(g0%1)[-2099]
(g0%2)[-2129]
(g1%2)[-2130]
(g0%1)[-2127]
(g0%1)[-2143]
(g0%2)[-2144]
(g0%1)[-2154](g0%1)[-2147]
(g0%2)[-2138]
(g1%2)[-2131]
(g1%2)[-2136]
(g0%2)[-2135]
(g0%2)[-2128]
(g0%1)[-2142]
(g0%1)[-2141]
(g1%2)[-2140]
(g0%2)[-2152]
(g1%2)[-2140]
(g0%2)[-2141]
(g0%1)[-2176]
(g0%1)[-2186](g0%1)[-2185](g0%1)[-2182]
(g1%2)[-2179]
(g0%1)[-2189](g0%1)[-2188](g0%1)[-2185]
(g0%2)[-2181]
(g1%2)[-2177]
(g1%2)[-2178]
(g0%1)[-2178](g0%1)[-2181]
(g0%1)[-2161]
(g0%1)[-2161]
(g0%1)[-2158](g0%1)[-2163]
(g0%1)[-2165]
(g0%2)[-2160]
(g1%2)[-2164]
(g0%1)[-2187]
(g0%1)[-2173]
(g1%2)[-2115](g0%2)[-2120](g0%2)[-2119](g0%2)[-2118](g1%2)[-2117](g1%2)[-2116]
(g1%2)[-2111]
(g0%1)[-2107]
(g0%1)[-2110]
(g0%1)[-2107](g0%1)[-2112]
(g0%2)[-2107]
(g1%2)[-2116]
(g1%2)[-2115]
(g1%2)[-2105]
(g1%2)[-2112](g0%2)[-2117](g0%2)[-2116](g1%2)[-2113]
(g1%2)[-2110]
(g1%2)[-2109]
(g1%2)[-2103](g1%2)[-2107]
(g0%1)[-2073]
(g0%1)[-2080]
(g0%2)[-2065]
(g1%2)[-2085]
(g0%1)[-2084]
(g0%2)[-2081]
(g0%2)[-2083]
(g0%2)[-2076]
(g0%1)[-2086]
(g0%1)[-2103]
(g0%2)[-2104]
(g0%2)[-2090]
(g0%2)[-2099]
(g1%2)[-2105]
(g1%2)[-2110]
(g1%2)[-2097]
(g0%1)[-2088](g0%1)[-2087](g0%1)[-2086](g0%1)[-2085](g0%1)[-2084]
(g0%2)[-2093]
(g0%2)[-2081](g0%2)[-2088]
(g0%1)[-2076]
(g0%1)[-2065]
(g0%1)[-2075](g0%1)[-2074](g0%1)[-2073](g0%1)[-2072](g0%1)[-2071](g0%1)[-2070]
(g0%1)[-2090]
(g1%2)[-2087]
(g1%2)[-2087]
(g0%1)[-2092]
(g0%1)[-2092]
(g0%2)[-2096]
(g0%2)[-2106]
(g0%2)[-2094]
(g0%2)[-2094]
(g0%1)[-2082]
(g0%1)[-2072]
(g0%2)[-2072]
(g1%2)[-2084]
(g0%2)[-2073]
(g1%2)[-2072]
(g0%1)[-2092]
(g1%2)[-2088]
(g1%2)[-2096]
(g0%2)[-2088]
(g0%1)[-2089]
(g0%1)[-2084]
(g0%1)[-2088]
(g0%1)[-2088]
(g1%2)[-2084]
(g0%2)[-2074]
(g0%2)[-2082]
(g0%2)[-2077]
(g0%2)[-2097]
(g0%2)[-2093]
(g0%1)[-2100]
(g1%2)[-2103]
(g0%2)[-2111]
(g1%2)[-2113]
(g1%2)[-2095]
(g1%2)[-2095]
(g1%2)[-2098]
(g0%1)[-2106]
(g1%2)[-2110]
(g0%2)[-2120]
(g0%2)[-2112]
(g0%2)[-2117]
(g1%2)[-2105]
(g0%1)[-2104]
(g0%1)[-2072]
(g0%1)[-2065]
(g0%2)[-2077]
(g1%2)[-2084]
(g0%2)[-2078]
(g1%2)[-2080]
(g1%2)[-2065]
(g0%2)[-2075]
(g0%1)[-2059]
(g0%1)[-2059]
(g0%2)[-2058]
(g1%2)[-2057]
(g1%2)[-2070]
(g0%2)[-2074]
(g1%2)[-2084]
(g1%2)[-2084]
(g1%2)[-2076]
(g0%1)[-2070]
(g0%1)[-2063]
(g0%1)[-2095]
(g0%1)[-2098](g0%1)[-2093]
(g1%2)[-2093]
(g0%2)[-2093]
(g0%1)[-2086]
(g0%2)[-2108]
(g0%1)[-2114](g0%1)[-2113](g0%1)[-2112](g0%1)[-2111](g0%1)[-2110]
(g0%2)[-2095]
(g0%2)[-2100]
(g0%1)[-2081]
(g0%1)[-2081](g0%1)[-2083](g0%1)[-2082](g0%1)[-2080](g0%1)[-2079]
(g0%2)[-2078]
(g0%2)[-2062](g0%2)[-2063]
(g0%1)[-2058]
(g0%1)[-2049](g0%1)[-2053](g0%1)[-2050]
(g0%1)[-2049]
(g0%1)[-2055]
(g0%2)[-2045]
(g0%1)[-2043]
(g0%1)[-2053](g0%1)[-2052](g0%1)[-2049]
(g1%2)[-2046]
(g0%1)[-2056](g0%1)[-2055](g0%1)[-2052]
(g0%2)[-2048]
(g1%2)[-2044]
(g1%2)[-2045]
(g0%1)[-2045](g0%1)[-2048]
(g1%2)[-2080]
(g0%1)[-2079]
(g1%2)[-2076]
(g0%2)[-2070]
(g0%1)[-2080]
(g0%1)[-2069]
(g0%1)[-2072](g0%1)[-2067]
(g1%2)[-2067]
(g1%2)[-2070]
(g1%2)[-2069](g0%2)[-2073](g0%2)[-2072](g1%2)[-2068]
(g0%1)[-2091](g0%1)[-2093](g0%1)[-2092](g0%1)[-2090](g0%1)[-2089](g0%1)[-2088]
(g0%2)[-2083]
(g0%1)[-2075]
(g0%2)[-2071]
(g1%2)[-2078]
(g0%1)[-2085](g0%1)[-2086]
(g0%1)[-2086]
(g1%2)[-2079]
(g0%1)[-2081]
(g0%1)[-2071](g0%1)[-2075](g0%1)[-2072]
(g0%1)[-2076]
(g0%2)[-2071]
(g1%2)[-2074](g1%2)[-2075]
(g0%1)[-2081]
(g0%1)[-2107]
(g1%2)[-2103]
(g1%2)[-2095]
(g0%2)[-2107]
(g1%2)[-2103]
(g1%2)[-2092]
(g0%1)[-2069]
(g0%1)[-2069]
(g0%2)[-2066]
(g0%2)[-2068]
(g0%2)[-2062]
(g1%2)[-2067]
(g1%2)[-2056]
(g1%2)[-2071]
(g0%2)[-2104]
(g0%2)[-2114]
(g1%2)[-2110](g0%2)[-2116](g1%2)[-2105]
(g0%1)[-2097]
(g0%1)[-2094](g0%1)[-2099]
(g0%1)[-2101]
(g1%2)[-2096]
(g1%2)[-2094]
(g1%2)[-2101]
(g0%1)[-2098]
(g0%2)[-2094]
(g0%1)[-2112]
(g0%1)[-2113]
(g0%1)[-2103]
(g0%1)[-2105]
(g0%1)[-2137]
(g0%1)[-2139](g0%1)[-2134]
(g0%1)[-2133](g0%1)[-2126]
(g0%1)[-2138]
(g0%1)[-2139]
(g0%2)[-2140]
(g0%2)[-2126]
(g0%2)[-2135]
(g1%2)[-2141]
(g1%2)[-2146]
(g1%2)[-2133]
(g0%1)[-2124](g0%1)[-2123](g0%1)[-2122](g0%1)[-2121](g0%1)[-2120]
(g0%2)[-2129]
(g0%2)[-2117](g0%2)[-2124]
(g0%1)[-2114]
(g0%1)[-2103]
(g0%1)[-2113](g0%1)[-2112](g0%1)[-2111](g0%1)[-2110](g0%1)[-2109](g0%1)[-2108]
(g0%1)[-2137]
(g0%1)[-2144]
(g0%1)[-2146]
(g0%2)[-2127]
(g1%2)[-2138]
(g0%2)[-2144]
(g1%2)[-2151]
(g0%2)[-2148]
(g0%1)[-2148]
(g1%2)[-2090]
(g1%2)[-2080]
(g0%1)[-2078]
(g0%1)[-2083](g0%1)[-2084]
(g0%1)[-2086]
(g0%1)[-2084](g0%1)[-2086]
(g0%1)[-2049]
(g0%2)[-2053]
(g1%2)[-2049]
(g0%1)[-2054]
(g0%2)[-2057]
(g1%2)[-2053]
(g0%1)[-2058]
(g0%2)[-2054]
(g0%2)[-2056]
(g0%2)[-2059]
(g0%1)[-2085]
(g0%2)[-2081]
(g0%2)[-2083]
(g1%2)[-2067]
(g0%1)[-2086]
(g0%1)[-2112]
(g0%1)[-2104]
(g1%2)[-2112]
(g0%2)[-2137]
(g0%2)[-2131]
(g0%1)[-2124](g0%1)[-2123](g0%1)[-2122](g0%1)[-2121](g0%1)[-2120]
(g0%1)[-2136]
(g1%2)[-2139]
(g0%2)[-2147]
(g1%2)[-2149]
(g1%2)[-2131]
(g1%2)[-2131]
(g1%2)[-2134]
(g0%1)[-2142]
(g1%2)[-2146]
(g0%2)[-2156]
(g0%2)[-2148]
(g0%2)[-2153]
(g1%2)[-2141]
(g0%1)[-2140]
(g0%1)[-2108]
(g0%1)[-2101]
(g0%2)[-2113]
(g1%2)[-2120]
(g0%2)[-2114]
(g1%2)[-2116]
(g1%2)[-2101]
(g0%2)[-2111]
(g0%1)[-2095]
(g0%1)[-2095]
(g0%2)[-2094]
(g1%2)[-2093]
(g1%2)[-2106]
(g0%2)[-2110]
(g1%2)[-2120]
(g1%2)[-2120]
(g1%2)[-2112]
(g0%1)[-2131]
(g0%1)[-2134](g0%1)[-2129]
(g1%2)[-2129]
(g0%2)[-2129]
(g0%1)[-2122]
(g0%2)[-2144]
(g0%1)[-2150](g0%1)[-2149](g0%1)[-2148](g0%1)[-2147](g0%1)[-2146]
(g0%2)[-2131]
(g0%2)[-2136]
(g0%1)[-2117]
(g0%1)[-2117](g0%1)[-2119](g0%1)[-2118](g0%1)[-2116](g0%1)[-2115]
(g0%1)[-2074]
(g1%2)[-2069]
(g0%1)[-2055](g0%1)[-2059](g0%1)[-2056]
(g1%2)[-2089]
(g0%1)[-2084]
(g0%1)[-2074]
(g1%2)[-2093]
(g1%2)[-2101]
(g0%1)[-2109]
(g0%1)[-2127](g0%1)[-2129](g0%1)[-2128](g0%1)[-2126](g0%1)[-2125](g0%1)[-2124]
(g0%1)[-2118](g0%1)[-2117](g0%1)[-2114]
(g0%1)[-2118]
(g0%1)[-2116]
(g0%1)[-2122]
(g0%2)[-2107]
(g1%2)[-2112]
(g0%1)[-2111](g0%1)[-2121](g0%1)[-2118]
(g0%1)[-2114]
(g0%1)[-2114]
(g0%1)[-2114]
(g0%2)[-2118]
(g1%2)[-2124]
(g0%1)[-2123](g0%1)[-2122](g0%1)[-2121](g0%1)[-2120](g0%1)[-2119](g0%1)[-2118]
(g0%1)[-2125](g0%1)[-2129](g0%1)[-2128](g0%1)[-2127](g0%1)[-2126]
(g0%1)[-2103]
(g0%1)[-2106](g0%1)[-2101]
(g1%2)[-2101]
(g1%2)[-2114]
(g1%2)[-2111]
(g1%2)[-2102]
(g0%2)[-2110]
(g0%1)[-2118]
(g0%1)[-2118]
(g0%1)[-2110]
(g0%1)[-2108]
(g1%2)[-2127]
(g0%2)[-2116]
(g0%1)[-2123](g0%1)[-2119](g0%1)[-2118](g0%1)[-2116](g0%1)[-2113]
(g1%2)[-2103]
(g1%2)[-2112]
(g0%1)[-2112](g0%1)[-2111](g0%1)[-2110](g0%1)[-2109](g0%1)[-2108](g0%1)[-2107]
(g0%1)[-2134]
(g0%2)[-2130]
(g1%2)[-2126]
(g1%2)[-2116]
(g0%1)[-2114]
(g0%1)[-2119](g0%1)[-2120]
(g0%1)[-2122]
(g0%1)[-2120](g0%1)[-2122]
(g0%1)[-2077]
(g0%2)[-2081]
(g1%2)[-2077]
(g0%1)[-2073]
(g0%2)[-2077]
(g1%2)[-2073]
(g0%1)[-2069]
(g0%2)[-2073]
(g1%2)[-2069]
(g0%1)[-2074]
(g0%2)[-2077]
(g1%2)[-2073]
(g0%1)[-2078]
(g0%2)[-2081]
(g1%2)[-2077]
(g0%1)[-2082]
(g0%2)[-2085]
(g1%2)[-2081]
(g0%1)[-2086]
(g0%2)[-2089]
(g1%2)[-2085]
(g0%1)[-2090]
(g0%1)[-2097]
(g0%2)[-2089]
(g0%2)[-2076]
(g0%1)[-2083]
(g0%1)[-2073](g0%1)[-2077](g0%1)[-2074]
(g0%1)[-2078]
(g0%1)[-2099]
(g0%1)[-2088]
(g0%1)[-2098](g0%1)[-2097](g0%1)[-2096](g0%1)[-2095](g0%1)[-2094](g0%1)[-2093]
(g0%1)[-2059]
(g0%2)[-2054]
(g1%2)[-2067]
(g0%2)[-2077]
(g0%1)[-2057]
(g0%1)[-2074]
(g0%1)[-2084]
(g0%2)[-2084]
(g1%2)[-2078](g0%2)[-2082](g0%2)[-2081](g1%2)[-2077]
(g1%2)[-2072]
(g0%2)[-2082]
(g1%2)[-2075]
(g1%2)[-2083]
(g0%1)[-2084](g0%1)[-2083](g0%1)[-2080]
(g0%1)[-2122]
(g0%2)[-2125]
(g1%2)[-2129]
(g0%1)[-2117]
(g1%2)[-2107]
(g0%1)[-2109]
(g0%1)[-2102]
(g1%2)[-2109]
(g0%2)[-2127](g0%2)[-2126](g1%2)[-2123](g1%2)[-2122]
(g1%2)[-2111]
(g0%1)[-2115]
(g0%2)[-2114]
(g1%2)[-2117]
(g1%2)[-2120]
(g0%1)[-2118]
(g0%1)[-2111]
(g0%1)[-2111]
(g0%1)[-2109]
(g0%2)[-2129]
(g0%1)[-2140](g0%1)[-2139](g0%1)[-2138](g0%1)[-2137](g0%1)[-2136](g0%1)[-2135]
(g0%2)[-2102]
(g0%2)[-2100]
(g0%1)[-2101]
(g0%1)[-2093]
(g0%2)[-2100]
(g0%2)[-2108]
(g0%1)[-2099]
(g1%2)[-2084](g1%2)[-2088]
(g0%1)[-2090]
(g0%2)[-2087]
(g0%1)[-2050]
(g0%1)[-2059]
(g0%1)[-2049](g0%1)[-2053](g0%1)[-2050]
(g0%1)[-2054]
(g1%2)[-2059]
(g1%2)[-2051]
(g0%2)[-2047]
(g0%1)[-2054]
(g0%1)[-2045]
(g1%2)[-2042]
(g0%1)[-2021]
(g0%1)[-2022]
(g0%2)[-2019]
(g1%2)[-2012]
(g0%1)[-2025](g0%1)[-2029](g0%1)[-2028]
(g1%2)[-1997]
(g1%2)[-1993]
(g0%2)[-1981]
(g0%1)[-1972]
(g0%1)[-1983]
(g0%1)[-1973](g0%1)[-1978](g0%1)[-1977](g0%1)[-1976](g0%1)[-1975](g0%1)[-1974]
(g0%1)[-1936]
(g0%1)[-1927]
(g1%2)[-1924]
(g1%2)[-1926]
(g0%2)[-1916]
(g0%1)[-1919]
(g0%1)[-1909]
(g0%1)[-1909]
(g1%2)[-1910]
(g1%2)[-1895]
(g0%2)[-1892]
(g0%1)[-1901]
(g0%1)[-1892]
(g0%2)[-1911]
(g0%2)[-1913]
(g0%1)[-1901]
(g0%1)[-1896](g0%1)[-1895](g0%1)[-1894](g0%1)[-1893](g0%1)[-1892](g0%1)[-1891]
(g0%1)[-1889]
(g1%2)[-1885]
(g1%2)[-1881]
(g1%2)[-1882]
(g1%2)[-1880]
(g0%1)[-1875]
(g0%1)[-1884](g0%1)[-1883](g0%1)[-1880]
(g0%1)[-1879]
(g1%2)[-1874]
(g0%1)[-1900]
(g1%2)[-1891]
(g1%2)[-1893]
(g0%1)[-1857]
(g1%2)[-1856]
(g1%2)[-1871]
(g1%2)[-1860]
(g1%2)[-1857]
(g0%2)[-1875](g0%2)[-1868]
(g0%1)[-1871]
(g0%1)[-1880]
(g0%1)[-1870](g0%1)[-1874](g0%1)[-1871]
(g1%2)[-1883]
(g1%2)[-1871]
(g0%2)[-1879]
(g1%2)[-1869]
(g0%2)[-1881]
(g0%1)[-1872]
(g1%2)[-1875]
(g1%2)[-1867]
(g0%2)[-1875]
(g0%1)[-1874]
(g0%1)[-1879]
(g0%1)[-1885]
(g0%2)[-1885]
(g0%2)[-1871]
(g0%1)[-1873]
(g1%2)[-1878]
(g0%1)[-1886]
(g1%2)[-1854]
(g0%1)[-1861]
(g1%2)[-1857]
(g1%2)[-1857]
(g0%2)[-1856]
(g0%1)[-1852](g0%1)[-1857](g0%1)[-1856](g0%1)[-1855](g0%1)[-1854](g0%1)[-1853]
(g1%2)[-1848]
(g0%2)[-1873]
(g0%1)[-1870]
(g0%2)[-1871]
(g0%1)[-1875]
(g1%2)[-1859]
(g0%2)[-1861](g1%2)[-1866](g1%2)[-1865](g0%2)[-1862]
(g1%2)[-1849]
(g0%2)[-1854]
(g0%1)[-1864]
(g0%1)[-1867](g0%1)[-1862]
(g0%1)[-1855]
(g1%2)[-1870]
(g0%2)[-1873](g0%2)[-1874]
(g0%1)[-1869]
(g0%1)[-1851]
(g0%2)[-1866]
(g0%2)[-1868]
(g0%2)[-1851]
(g0%1)[-1851]
(g0%1)[-1849]
(g0%1)[-1852](g0%1)[-1847]
(g0%1)[-1845]
(g0%1)[-1829]
(g0%1)[-1832](g0%1)[-1827]
(g0%1)[-1825]
(g0%1)[-1822]
(g0%1)[-1830]
(g0%1)[-1819]
(g0%1)[-1790]
(g0%2)[-1793]
(g1%2)[-1801]
(g0%2)[-1798]
(g1%2)[-1788]
(g0%1)[-1797]
(g0%2)[-1787]
(g0%1)[-1801]
(g0%1)[-1796]
(g0%1)[-1786](g0%1)[-1790](g0%1)[-1787]
(g0%1)[-1795]
(g0%1)[-1798]
(g1%2)[-1801]
(g0%2)[-1800](g0%2)[-1799](g1%2)[-1796](g1%2)[-1795]
(g1%2)[-1804]
(g0%1)[-1842]
(g0%1)[-1850]
(g0%1)[-1881]
(g0%1)[-1871]
(g0%2)[-1871]
(g1%2)[-1873]
(g1%2)[-1882]
(g1%2)[-1873]
(g0%1)[-1874]
(g0%2)[-1857]
(g0%1)[-1858]
(g1%2)[-1861]
(g1%2)[-1870]
(g0%1)[-1845]
(g1%2)[-1856]
(g0%2)[-1860]
(g0%1)[-1828]
(g0%1)[-1828]
(g0%2)[-1825]
(g1%2)[-1820]
(g0%1)[-1829]
(g0%1)[-1841]
(g0%1)[-1832]
(g0%1)[-1823](g0%1)[-1827](g0%1)[-1824]
(g0%1)[-1828]
(g1%2)[-1833]
(g1%2)[-1816]
(g0%2)[-1818](g0%2)[-1819]
(g0%1)[-1813]
(g0%1)[-1813]
(g0%1)[-1806]
(g1%2)[-1813]
(g1%2)[-1821]
(g6%8)[-1847]
(g0%1)[-1875]
(g0%1)[-1866](g0%1)[-1870](g0%1)[-1867]
(g0%2)[-1873]
(g0%2)[-1868]
(g1%2)[-1855]
(g0%1)[-1836]
(g0%1)[-1843]
(g0%1)[-1845]
(g1%2)[-1826]
(g0%2)[-1837]
(g0%2)[-1852]
(g0%2)[-1858]
(g0%1)[-1854](g0%1)[-1855]
(g1%2)[-1861]
(g0%2)[-1881](g0%2)[-1880](g0%2)[-1879](g1%2)[-1878](g1%2)[-1877](g1%2)[-1876]
(g0%1)[-1901](g0%1)[-1899](g0%1)[-1896]
(g0%1)[-1893]
(g0%1)[-1884]
(g0%2)[-1888]
(g1%2)[-1896]
(g0%2)[-1890]
(g0%2)[-1885]
(g1%2)[-1887]
(g1%2)[-1885]
(g0%2)[-1883]
(g0%1)[-1906]
(g0%1)[-1906]
(g0%2)[-1909]
(g1%2)[-1905]
(g0%1)[-1910]
(g0%1)[-1902]
(g0%1)[-1916]
(g0%1)[-1916](g0%1)[-1919](g0%1)[-1918](g0%1)[-1917]
(g0%1)[-1920]
(g0%1)[-1939]
(g0%1)[-1949]
(g0%1)[-1952](g0%1)[-1947]
(g1%2)[-1952]
(g0%2)[-1955]
(g0%2)[-1945]
(g1%2)[-1936]
(g0%2)[-1953]
(g1%2)[-1957]
(g0%1)[-1950]
(g0%1)[-1959]
(g0%1)[-1968](g0%1)[-1967](g0%1)[-1964]
(g0%1)[-1963]
(g0%2)[-1958]
(g1%2)[-1964]
(g1%2)[-1971]
(g0%1)[-1970]
(g0%2)[-1970]
(g1%2)[-1978](g0%2)[-1983](g0%2)[-1982](g1%2)[-1979]
(g1%2)[-1979]
(g1%2)[-1983]
(g0%1)[-1942]
(g0%1)[-1952]
(g0%1)[-1960]
(g0%1)[-1946]
(g0%1)[-1958]
(g0%1)[-1951]
(g0%1)[-1940]
(g0%1)[-1933]
(g0%1)[-1939]
(g0%2)[-1935]
(g1%2)[-1953]
(g1%2)[-1929]
(g0%1)[-1931]
(g0%1)[-1928](g0%1)[-1933]
(g1%2)[-1928]
(g0%2)[-1928]
(g0%2)[-1942]
(g1%2)[-1928]
(g1%2)[-1826](g1%2)[-1833]
(g0%1)[-1839]
(g1%2)[-1836]
(g0%1)[-1851]
(g0%1)[-1860](g0%1)[-1859](g0%1)[-1856]
(g0%2)[-1853]
(g0%2)[-1864]
(g0%2)[-1854]
(g0%1)[-1855]
(g0%2)[-1846]
(g0%1)[-1858]
(g1%2)[-1798]
(g0%1)[-1804](g0%1)[-1809](g0%1)[-1808](g0%1)[-1807](g0%1)[-1806](g0%1)[-1805]
(g0%1)[-1802]
(g0%2)[-1803]
(g0%1)[-1808]
(g0%2)[-1795](g0%2)[-1796]
(g0%1)[-1800]
(g0%2)[-1803]
(g1%2)[-1811]
(g0%2)[-1817]
(g0%2)[-1797]
(g0%2)[-1808]
(g0%1)[-1827]
(g0%1)[-1820]
(g0%2)[-1837]
(g0%1)[-1838]
(g0%2)[-1832]
(g1%2)[-1822]
(g0%2)[-1826]
(g0%2)[-1826]
(g0%1)[-1849]
(g1%2)[-1850]
(g0%2)[-1848]
(g1%2)[-1833](g0%2)[-1838](g0%2)[-1837](g0%2)[-1836](g1%2)[-1835](g1%2)[-1834]
(g0%1)[-1838]
(g0%1)[-1831]
(g0%1)[-1827]
(g0%1)[-1815]
(g0%1)[-1855]
(g0%2)[-1852]
(g0%2)[-1844]
(g1%2)[-1855]
(g1%2)[-1860]
(g0%2)[-1861]
(g0%1)[-1869]
(g0%2)[-1866]
(g0%2)[-1858]
(g0%2)[-1867]
(g0%1)[-1866]
(g1%2)[-1860]
(g0%2)[-1863]
(g1%2)[-1856](g1%2)[-1855](g1%2)[-1854](g0%2)[-1853](g0%2)[-1852](g0%2)[-1851]
(g0%1)[-1878](g0%1)[-1871](g0%1)[-1868]
(g0%1)[-1874]
(g0%1)[-1871]
(g0%2)[-1871]
(g1%2)[-1884]
(g0%2)[-1878]
(g0%1)[-1893]
(g1%2)[-1882]
(g0%1)[-1881]
(g1%2)[-1878]
(g0%2)[-1868]
(g1%2)[-1873]
(g0%2)[-1885]
(g0%2)[-1876]
(g0%1)[-1867](g0%1)[-1877](g0%1)[-1874]
(g1%2)[-1888]
(g0%1)[-1880]
(g0%1)[-1889]
(g1%2)[-1892]
(g0%2)[-1900]
(g0%2)[-1885]
(g1%2)[-1884]
(g0%2)[-1877]
(g0%1)[-1863]
(g0%1)[-1854](g0%1)[-1858](g0%1)[-1855]
(g0%1)[-1871]
(g0%2)[-1858]
(g1%2)[-1857]
(g0%2)[-1849]
(g0%1)[-1850]
(g0%2)[-1849]
(g1%2)[-1851]
(g0%2)[-1860]
(g0%2)[-1853]
(g0%2)[-1845]
(g1%8)[-1868]
(g0%2)[-1896]
(g0%2)[-1891](g0%2)[-1898]
(g0%2)[-1910]
(g0%2)[-1908]
(g0%1)[-1909]
(g0%1)[-1918](g0%1)[-1917](g0%1)[-1914]
(g0%1)[-1913]
(g1%2)[-1916]
(g1%2)[-1902]
(g1%2)[-1920]
(g1%2)[-1928]
(g7%8)[-1924]
(g0%1)[-1901]
(g0%1)[-1904](g0%1)[-1899]
(g0%1)[-1906]
(g0%1)[-1914]
(g0%1)[-1898]
(g1%2)[-1912]
(g0%2)[-1894]
(g0%1)[-1887]
(g0%2)[-1888]
(g0%2)[-1880](g0%2)[-1881]
(g0%1)[-1876]
(g0%1)[-1869]
(g0%1)[-1893]
(g0%2)[-1884]
(g0%1)[-1912]
(g0%2)[-1916]
(g0%2)[-1914]
(g0%1)[-1901]
(g1%2)[-1922]
(g1%2)[-1923]
(g0%1)[-1925]
(g0%1)[-1964]
(g0%1)[-1967](g0%1)[-1962]
(g0%2)[-1967]
(g0%2)[-1978]
(g1%2)[-1967]
(g0%2)[-1955]
(g0%2)[-1943]
(g0%1)[-1976]
(g0%1)[-1976]
(g0%2)[-1976]
(g0%1)[-1980]
(g0%2)[-1984]
(g1%2)[-1971]
(g1%2)[-1983]
(g0%1)[-1991]
(g0%1)[-1969]
(g0%1)[-1969]
(g0%1)[-1961]
(g0%2)[-1969]
(g0%2)[-1982]
(g0%1)[-1974]
(g0%1)[-2008]
(g0%2)[-2005]
(g1%2)[-1999]
(g0%1)[-2009]
(g0%1)[-2005](g0%1)[-2004](g0%1)[-2003](g0%1)[-2002](g0%1)[-2001](g0%1)[-2000]
(g0%1)[-2011]
(g0%1)[-2014](g0%1)[-2009]
(g1%2)[-2014]
(g0%1)[-2026]
(g0%2)[-2017]
(g1%2)[-2015]
(g1%2)[-2003]
(g0%2)[-1999]
(g0%8)[-1991]
(g0%1)[-2017]
(g0%2)[-2014]
(g0%2)[-2016]
(g1%2)[-1999]
(g1%2)[-1995]
(g0%2)[-1999]
(g5%8)[-2007]
(g0%2)[-2023]
(g1%2)[-2007]
(g0%1)[-2008]
(g1%2)[-2011]
(g1%2)[-2003]
(g0%1)[-2009]
(g0%2)[-2012]
(g0%1)[-1996]
(g0%1)[-2000]
(g1%2)[-2011]
(g1%2)[-2017](g0%2)[-2022](g0%2)[-2021](g0%2)[-2020](g1%2)[-2019](g1%2)[-2018]
(g0%2)[-2032]
(g0%2)[-2034]
(g1%2)[-2044]
(g1%2)[-2055]
(g0%2)[-2056]
(g0%2)[-2032]
(g0%2)[-2078]
(g0%2)[-2089]
(g1%2)[-2093]
(g0%1)[-2094]
(g0%2)[-2107]
(g2%8)[-2102]
(g0%1)[-2076]
(g0%1)[-2067](g0%1)[-2071](g0%1)[-2068]
(g0%1)[-2084]
(g0%1)[-2083]
(g1%2)[-2071]
(g1%2)[-2070]
(g0%2)[-2066]
(g0%2)[-2070]
(g0%1)[-2062]
(g0%2)[-2059]
(g1%2)[-2053]
(g0%1)[-2063]
(g0%1)[-2059](g0%1)[-2058](g0%1)[-2057](g0%1)[-2056](g0%1)[-2055]
(g0%1)[-2065]
(g0%1)[-2075](g0%1)[-2074](g0%1)[-2071]
(g0%2)[-2068]
(g0%2)[-2053]
(g0%2)[-2055]
(g0%1)[-2078]
(g0%1)[-2089](g0%1)[-2092]
(g0%1)[-2084]
(g0%1)[-2077]
(g0%2)[-2080]
(g0%1)[-2067](g0%1)[-2071](g0%1)[-2070](g0%1)[-2069](g0%1)[-2068]
(g0%2)[-2075]
(g1%2)[-2079]
(g0%1)[-2080]
(g0%1)[-2080]
(g0%2)[-2077]
(g0%2)[-2069]
(g1%2)[-2080]
(g1%2)[-2085]
(g0%2)[-2086]
(g0%1)[-2094]
(g0%2)[-2091]
(g0%2)[-2083]
(g0%2)[-2092]
(g0%1)[-2091]
(g1%2)[-2085]
(g0%2)[-2088]
(g1%2)[-2081](g1%2)[-2080](g1%2)[-2079](g0%2)[-2078](g0%2)[-2077](g0%2)[-2076]
(g0%1)[-2068]
(g1%2)[-2068]
(g0%2)[-2062](g1%2)[-2066](g1%2)[-2065](g0%2)[-2061]
(g0%2)[-2068]
(g1%2)[-2071]
(g0%1)[-2071]
(g0%2)[-2055]
(g0%2)[-2061]
(g0%1)[-2047]
(g0%1)[-2038](g0%1)[-2042](g0%1)[-2039]
(g0%1)[-2055]
(g0%2)[-2042]
(g1%2)[-2041]
(g0%2)[-2033]
(g0%1)[-2034]
(g0%2)[-2033]
(g1%2)[-2035]
(g0%2)[-2044]
(g0%2)[-2037]
(g0%2)[-2029]
(g0%1)[-2018](g0%1)[-2019](g0%1)[-2015](g0%1)[-2008]
(g0%1)[-2103](g0%1)[-2096](g0%1)[-2093]
(g0%1)[-2099]
(g0%1)[-2096]
(g0%2)[-2096]
(g1%2)[-2109]
(g0%2)[-2103]
(g0%1)[-2118]
(g1%2)[-2107]
(g0%1)[-2106]
(g1%2)[-2103]
(g0%2)[-2093]
(g1%2)[-2098]
(g0%2)[-2110]
(g0%2)[-2101]
(g0%1)[-2092](g0%1)[-2102](g0%1)[-2099]
(g1%2)[-2113]
(g0%1)[-2105]
(g0%1)[-2114]
(g1%2)[-2117]
(g0%2)[-2125]
(g0%2)[-2110]
(g1%2)[-2109]
(g0%2)[-2102]
(g0%2)[-2121]
(g0%2)[-2116](g0%2)[-2123]
(g0%1)[-2088]
(g0%1)[-2079](g0%1)[-2083](g0%1)[-2080]
(g0%1)[-2096]
(g0%2)[-2083]
(g1%2)[-2082]
(g0%2)[-2074]
(g0%1)[-2075]
(g0%2)[-2074]
(g1%2)[-2076]
(g0%2)[-2085]
(g0%2)[-2078]
(g0%2)[-2070]
(g2%8)[-2093]
(g0%1)[-2059](g0%1)[-2060](g0%1)[-2056](g0%1)[-2049]
(g0%8)[-2052]
(g0%1)[-1932]
(g0%2)[-1915]
(g0%1)[-1914]
(g0%2)[-1920]
(g1%2)[-1930]
(g0%2)[-1926]
(g0%2)[-1926]
(g0%1)[-1911]
(g0%1)[-1920](g0%1)[-1919](g0%1)[-1916]
(g0%2)[-1913]
(g1%2)[-1903]
(g0%2)[-1920]
(g0%2)[-1928]
(g0%1)[-1903]
(g0%1)[-1912]
(g0%1)[-1904]
(g1%2)[-1911]
(g0%2)[-1916]
(g1%2)[-1892]
(g0%2)[-1890]
(g0%1)[-1927]
(g0%1)[-1927]
(g0%1)[-1917](g0%1)[-1921](g0%1)[-1918]
(g1%2)[-1924]
(g0%2)[-1924]
(g0%2)[-1923]
(g0%1)[-1932]
(g0%1)[-1909]
(g1%2)[-1864]
(g0%1)[-1865]
(g0%2)[-1861]
(g0%2)[-1869]
(g0%2)[-1865]
(g0%1)[-1866]
(g1%2)[-1863]
(g0%1)[-1849]
(g0%1)[-1858]
(g0%1)[-1850]
(g0%2)[-1867]
(g1%2)[-1864]
(g1%2)[-1868]
(g0%2)[-1870]
(g0%2)[-1859]
(g0%1)[-1862]
(g0%1)[-1872](g0%1)[-1871](g0%1)[-1868]
(g0%2)[-1859]
(g0%2)[-1858]
(g0%1)[-1866](g0%1)[-1873]
(g0%1)[-1861]
(g0%1)[-1859]
(g1%2)[-1858]
(g1%2)[-1872]
(g1%2)[-1868]
(g0%2)[-1858]
(g1%2)[-1859]
(g0%1)[-1861]
(g0%2)[-1865]
(g0%2)[-1865]
(g0%2)[-1866]
(g0%1)[-1860](g0%1)[-1863](g0%1)[-1862](g0%1)[-1861]
(g0%2)[-1867]
(g0%1)[-1859]
(g1%2)[-1858]
(g0%2)[-1874]
(g0%2)[-1873]
(g0%2)[-1858]
(g0%2)[-1863]
(g0%2)[-1856]
(g0%1)[-1873]
(g1%2)[-1874]
(g0%2)[-1876]
(g1%2)[-1887]
(g0%2)[-1857]
(g0%2)[-1862]
(g0%1)[-1854]
(g1%2)[-1858]
(g0%2)[-1868]
(g0%2)[-1850]
(g1%2)[-1873]
(g1%2)[-1862]
(g1%2)[-1870]
(g1%2)[-1869]
(g0%1)[-1857]
(g0%2)[-1854]
(g0%2)[-1846]
(g1%2)[-1857]
(g0%2)[-1858]
(g1%2)[-1856]
(g0%1)[-1869]
(g0%2)[-1866]
(g1%2)[-1856]
(g0%1)[-1849]
(g0%1)[-1834](g0%1)[-1835](g0%1)[-1831](g0%1)[-1824]
(g0%1)[-1841]
(g0%1)[-1855]
(g0%1)[-1843]
(g0%1)[-1850]
(g0%1)[-1918]
(g0%1)[-1915](g0%1)[-1920]
(g0%1)[-1922]
(g1%2)[-1917]
(g0%2)[-1921]
(g0%1)[-1930]
(g1%2)[-1941]
(g1%2)[-1936](g1%2)[-1937]
(g0%1)[-1932]
(g0%1)[-1942](g0%1)[-1941](g0%1)[-1938]
(g0%1)[-1933]
(g0%1)[-1930]
(g0%2)[-1923]
(g1%2)[-1940]
(g0%1)[-1944]
(g0%1)[-1935]
(g1%2)[-1932]
(g1%2)[-1923]
(g0%2)[-1937]
(g0%2)[-1943](g0%2)[-1942]
(g0%1)[-1948]
(g0%1)[-1936]
(g0%1)[-1924]
(g0%1)[-1939]
(g0%1)[-1947]
(g1%2)[-1939]
(g1%2)[-1916]
(g0%2)[-1924]
(g0%1)[-1920](g0%1)[-1919]
(g0%1)[-1932]
(g0%2)[-1928]
(g0%2)[-1925]
(g0%2)[-1934]
(g1%2)[-1945]
(g0%1)[-1946]
(g1%2)[-1928]
(g0%2)[-1934]
(g0%2)[-1931](g0%2)[-1926]
(g0%1)[-1937]
(g0%2)[-1938]
(g1%2)[-1940]
(g1%2)[-1937]
(g0%1)[-1946](g0%1)[-1950](g0%1)[-1949]
(g0%2)[-1941]
(g1%2)[-1928]
(g0%2)[-1933]
(g0%1)[-1941]
(g0%1)[-1941]
(g0%1)[-1949]
(g0%2)[-1941]
(g0%2)[-1928]
(g0%1)[-1936]
(g0%1)[-1936]
(g0%2)[-1932]
(g1%2)[-1926]
(g0%1)[-1925]
(g0%2)[-1922]
(g0%2)[-1912]
(g0%1)[-1928]
(g1%2)[-1929]
(g0%1)[-1939](g0%1)[-1932]
(g0%2)[-1917]
(g0%1)[-1927]
(g0%1)[-1908]
(g0%1)[-1917]
(g0%2)[-1921]
(g0%1)[-1936]
(g1%2)[-1900]
(g0%1)[-1892](g0%1)[-1899]
(g0%2)[-1900]
(g0%1)[-1915](g0%1)[-1914](g0%1)[-1913](g0%1)[-1912]
(g1%2)[-1927]
(g0%1)[-1906]
(g0%2)[-1903]
(g0%2)[-1905]
(g1%2)[-1888]
(g0%2)[-1898]
(g0%2)[-1898]
(g0%1)[-1894]
(g0%1)[-1908]
(g0%1)[-1901]
(g0%1)[-1903]
(g0%2)[-1892]
(g0%1)[-1884]
(g0%1)[-1893]
(g0%2)[-1907]
(g0%1)[-1878]
(g0%1)[-1888](g0%1)[-1887](g0%1)[-1884]
(g0%1)[-1879]
(g1%2)[-1869]
(g1%2)[-1878]
(g0%2)[-1871]
(g0%1)[-1914]
(g0%2)[-1910]
(g1%2)[-1910](g0%2)[-1914](g0%2)[-1913](g1%2)[-1909]
(g0%1)[-1918](g0%1)[-1923](g0%1)[-1922](g0%1)[-1921](g0%1)[-1920](g0%1)[-1919]
(g1%2)[-1915]
(g0%2)[-1909]
(g0%2)[-1924]
(g0%1)[-1908]
(g0%1)[-1919]
(g0%1)[-1911]
(g1%2)[-1928]
(g0%2)[-1910]
(g0%1)[-1920]
(g0%1)[-1899]
(g0%1)[-1904]
(g1%2)[-1900]
(g0%2)[-1893]
(g0%1)[-1864]
(g0%1)[-1876]
(g1%2)[-1891]
(g0%1)[-1905]
(g0%1)[-1887]
(g0%2)[-1890]
(g1%2)[-1900]
(g0%2)[-1885]
(g0%2)[-1885]
(g0%1)[-1902]
(g0%1)[-1913]
(g0%1)[-1914]
(g0%1)[-1905]
(g1%2)[-1906]
(g1%2)[-1892]
(g0%1)[-1894]
(g0%2)[-1899]
(g0%2)[-1873]
(g1%2)[-1871]
(g0%1)[-1869]
(g1%2)[-1869]
(g0%2)[-1875](g0%2)[-1876](g1%2)[-1872](g1%2)[-1871]
(g0%2)[-1870]
(g0%2)[-1878](g1%2)[-1882](g1%2)[-1881](g0%2)[-1877]
(g0%2)[-1867]
(g1%2)[-1865]
(g0%2)[-1863]
(g0%1)[-1865]
(g0%1)[-1855](g0%1)[-1859](g0%1)[-1856]
(g1%2)[-1862]
(g0%2)[-1862]
(g0%2)[-1861]
(g0%1)[-1870]
(g0%1)[-1847]
(g0%1)[-1856]
(g0%1)[-1853](g0%1)[-1858]
(g0%1)[-1860]
(g0%2)[-1855]
(g1%2)[-1859]
(g0%1)[-1882]
(g0%1)[-1878]
(g0%1)[-1885]
(g1%2)[-1873]
(g0%2)[-1873]
(g0%2)[-1866]
(g1%2)[-1889]
(g0%2)[-1866](g0%2)[-1873]
(g0%1)[-1851]
(g0%1)[-1861]
(g0%1)[-1852]
(g0%2)[-1849]
(g0%1)[-1862](g0%1)[-1861](g0%1)[-1860](g0%1)[-1859](g0%1)[-1858]
(g0%2)[-1854]
(g1%2)[-1850]
(g0%1)[-1838]
(g0%1)[-1847]
(g0%1)[-1839]
(g0%2)[-1847]
(g0%2)[-1857]
(g0%1)[-1852]
(g0%2)[-1853]
(g0%1)[-1865]
(g0%1)[-1861]
(g1%2)[-1862]
(g1%2)[-1855](g1%2)[-1854]
(g1%2)[-1861]
(g1%2)[-1866]
(g1%2)[-1868]
(g0%1)[-1860]
(g0%1)[-1851]
(g0%2)[-1855]
(g1%2)[-1851]
(g0%1)[-1867]
(g0%1)[-1870](g0%1)[-1865]
(g0%2)[-1865]
(g0%2)[-1867]
(g1%2)[-1867]
(g0%1)[-1867]
(g0%1)[-1872]
(g1%2)[-1869]
(g1%2)[-1861]
(g0%1)[-1885]
(g1%2)[-1874]
(g0%2)[-1875]
(g0%2)[-1858]
(g0%2)[-1864]
(g0%1)[-1847]
(g0%2)[-1851]
(g1%2)[-1847]
(g0%1)[-1843]
(g0%2)[-1844]
(g0%1)[-1849]
(g0%2)[-1836](g0%2)[-1837]
(g0%1)[-1841]
(g0%1)[-1848]
(g1%2)[-1836]
(g0%2)[-1841]
(g1%2)[-1846]
(g1%2)[-1828]
(g0%1)[-1840]
(g0%1)[-1857]
(g0%1)[-1884]
(g0%1)[-1891]
(g0%1)[-1894]
(g0%1)[-1890]
(g0%1)[-1917]
(g0%2)[-1913]
(g0%1)[-1928]
(g0%2)[-1931]
(g0%1)[-1922](g0%1)[-1921](g0%1)[-1920](g0%1)[-1919](g0%1)[-1918]
(g0%2)[-1917]
(g1%2)[-1937]
(g0%1)[-1937]
(g0%1)[-1947]
(g0%1)[-1938]
(g0%1)[-1948](g0%1)[-1947](g0%1)[-1944]
(g0%2)[-1935]
(g0%2)[-1934]
(g0%1)[-1942](g0%1)[-1949]
(g0%1)[-1937]
(g0%1)[-1935]
(g0%2)[-1934]
(g1%2)[-1948]
(g0%2)[-1938]
(g1%2)[-1934]
(g0%2)[-1935]
(g0%1)[-1953]
(g0%1)[-1952]
(g1%2)[-1952]
(g0%2)[-1950]
(g0%2)[-1958]
(g0%1)[-1947](g0%1)[-1950]
(g0%1)[-1933](g0%1)[-1934]
(g0%1)[-1937]
(g0%1)[-1928]
(g0%2)[-1932]
(g1%2)[-1928]
(g0%1)[-1950]
(g0%1)[-1960](g0%1)[-1959](g0%1)[-1956]
(g0%1)[-1951]
(g1%2)[-1941]
(g1%2)[-1950]
(g0%2)[-1943]
(g0%1)[-1933]
(g0%2)[-1929]
(g1%2)[-1927](g1%2)[-1926](g0%2)[-1923](g0%2)[-1922]
(g0%2)[-1925]
(g1%2)[-1920]
(g0%2)[-1931]
(g0%2)[-1930]
(g0%1)[-1927]
(g1%2)[-1934]
(g0%1)[-1925]
(g0%1)[-1917]
(g1%2)[-1934]
(g1%2)[-1922]
(g0%1)[-1926]
(g0%2)[-1900]
(g0%1)[-1903]
(g0%1)[-1903]
(g1%2)[-1903]
(g1%2)[-1905]
(g0%2)[-1905]
(g0%2)[-1883]
(g0%2)[-1878]
(g0%1)[-1884]
(g0%2)[-1891]
(g0%2)[-1894]
(g1%2)[-1898]
(g0%1)[-1896](g0%1)[-1894]
(g0%1)[-1883]
(g1%2)[-1887]
(g0%2)[-1889](g1%2)[-1894](g1%2)[-1893](g0%2)[-1890]
(g1%2)[-1891]
(g0%1)[-1871]
(g0%1)[-1864]
(g1%2)[-1847]
(g1%2)[-1859]
(g0%1)[-1855]
(g0%1)[-1836]
(g0%1)[-1826](g0%1)[-1830](g0%1)[-1827]
(g0%1)[-1831]
(g1%2)[-1836]
(g1%2)[-1821]
(g0%1)[-1829]
(g0%1)[-1823]
(g0%1)[-1816]
(g0%2)[-1824]
(g0%2)[-1830]
(g0%2)[-1840]
(g0%2)[-1841]
(g0%2)[-1846]
(g0%1)[-1843]
(g0%1)[-1835]
(g0%1)[-1849]
(g0%1)[-1837]
(g0%1)[-1844]
(g0%1)[-1845]
(g0%1)[-1854]
(g1%2)[-1853]
(g0%2)[-1855]
(g0%2)[-1847]
(g0%1)[-1858](g0%1)[-1855]
(g0%1)[-1868]
(g1%2)[-1897]
(g0%2)[-1896]
(g0%1)[-1893]
(g0%1)[-1882]
(g0%1)[-1902]
(g0%1)[-1911]
(g0%2)[-1914]
(g1%2)[-1920]
(g0%1)[-1901](g0%1)[-1906](g0%1)[-1905](g0%1)[-1904](g0%1)[-1903](g0%1)[-1902]
(g0%1)[-1910]
(g0%1)[-1912]
(g0%2)[-1913]
(g1%2)[-1912]
(g0%2)[-1918]
(g1%2)[-1897]
(g0%1)[-1900](g0%1)[-1901]
(g1%2)[-1902]
(g0%2)[-1917](g0%2)[-1918]
(g0%1)[-1923]
(g0%1)[-1923]
(g1%2)[-1926]
(g0%2)[-1931]
(g0%1)[-1920]
(g1%2)[-1923]
(g0%2)[-1928]
(g0%1)[-1921]
(g0%1)[-1917]
(g0%2)[-1920]
(g1%2)[-1916]
(g0%1)[-1904]
(g0%1)[-1901](g0%1)[-1906]
(g0%2)[-1906]
(g1%2)[-1893]
(g1%2)[-1902]
(g0%1)[-1910]
(g0%1)[-1921]
(g0%2)[-1917]
(g1%2)[-1915](g1%2)[-1914](g0%2)[-1911](g0%2)[-1910]
(g0%2)[-1913]
(g1%2)[-1908]
(g0%2)[-1919]
(g0%2)[-1918]
(g0%1)[-1915]
(g1%2)[-1922]
(g0%1)[-1913]
(g0%1)[-1905]
(g1%2)[-1922]
(g1%2)[-1910]
(g0%1)[-1914]
(g0%1)[-1876]
(g0%1)[-1877]
(g0%1)[-1877]
(g0%2)[-1877]
(g0%2)[-1871]
(g0%1)[-1879]
(g1%2)[-1865]
(g1%2)[-1869]
(g1%2)[-1879]
(g0%1)[-1882]
(g0%2)[-1890]
(g0%1)[-1869]
(g1%2)[-1872]
(g0%2)[-1874](g1%2)[-1879](g1%2)[-1878](g0%2)[-1875]
(g1%2)[-1873]
(g0%1)[-1883](g0%1)[-1884]
(g0%1)[-1882]
(g0%1)[-1869](g0%1)[-1879](g0%1)[-1876]
(g0%2)[-1871]
(g0%1)[-1866]
(g1%2)[-1866]
(g0%1)[-1875]
(g0%2)[-1860](g1%2)[-1864](g1%2)[-1863](g0%2)[-1859]
(g1%2)[-1865]
(g1%2)[-1852]
(g0%1)[-1857]
(g1%2)[-1859]
(g1%2)[-1881]
(g0%1)[-1887]
(g0%2)[-1891]
(g1%2)[-1897]
(g0%1)[-1905]
(g0%1)[-1910](g0%1)[-1914](g0%1)[-1913]
(g0%1)[-1910]
(g0%1)[-1893]
(g0%1)[-1886]
(g0%1)[-1886]
(g0%2)[-1882]
(g1%2)[-1874]
(g0%2)[-1868]
(g0%2)[-1888]
(g1%2)[-1893]
(g0%2)[-1877]
(g0%1)[-1905]
(g1%2)[-1908]
(g0%2)[-1910](g1%2)[-1915](g1%2)[-1914](g0%2)[-1911]
(g0%2)[-1916]
(g0%1)[-1892]
(g0%2)[-1901]
(g0%1)[-1918]
(g0%1)[-1927]
(g0%1)[-1936](g0%1)[-1935](g0%1)[-1932]
(g0%1)[-1931]
(g0%1)[-1932]
(g1%2)[-1929]
(g1%2)[-1923]
(g0%1)[-1926]
(g0%1)[-1921]
(g0%2)[-1920]
(g0%2)[-1921]
(g0%2)[-1930]
(g0%1)[-1922]
(g0%1)[-1914]
(g0%1)[-1922]
(g0%1)[-1925]
(g0%1)[-1925]
(g0%2)[-1929]
(g0%1)[-1913]
(g0%2)[-1938]
(g0%2)[-1938]
(g1%2)[-1941]
(g0%1)[-1917]
(g1%2)[-1926]
(g0%2)[-1924](g0%2)[-1925]
(g0%1)[-1929]
(g1%2)[-1928]
(g0%1)[-1918](g0%1)[-1925]
(g0%2)[-1940]
(g0%1)[-1930]
(g0%1)[-1938]
(g0%1)[-1938]
(g0%2)[-1935]
(g1%2)[-1929]
(g0%1)[-1928]
(g0%1)[-1941]
(g0%1)[-1930](g0%1)[-1937]
(g0%1)[-1951]
(g0%1)[-1942]
(g0%1)[-1945](g0%1)[-1940]
(g0%1)[-1938]
(g0%1)[-1935]
(g0%1)[-1943]
(g0%1)[-1932]
(g0%1)[-1932]
(g0%2)[-1931]
(g0%2)[-1938](g0%2)[-1939]
(g0%1)[-1944]
(g0%1)[-1928](g0%1)[-1921]
(g0%1)[-1933]
(g0%1)[-1934]
(g0%1)[-1943]
(g0%1)[-1940](g0%1)[-1945]
(g0%1)[-1933]
(g0%1)[-1944]
(g0%1)[-1936]
(g0%1)[-1938]
(g0%2)[-1937]
(g1%2)[-1942]
(g1%2)[-1952]
(g0%2)[-1938]
(g0%2)[-1926]
(g0%2)[-1935]
(g0%1)[-1933]
(g0%2)[-1932]
(g1%2)[-1934]
(g0%1)[-1931](g0%1)[-1930](g0%1)[-1929]
(g0%1)[-1933]
(g0%2)[-1925]
(g0%2)[-1939]
(g1%2)[-1946](g1%2)[-1947]
(g0%1)[-1951]
(g0%2)[-1950]
(g0%2)[-1965]
(g1%2)[-1954]
(g0%1)[-1949]
(g0%1)[-1966]
(g0%1)[-1974]
(g0%1)[-1964]
(g0%1)[-1972]
(g0%2)[-1964]
(g1%2)[-1945]
(g0%1)[-1948]
(g0%1)[-1956](g0%1)[-1955](g0%1)[-1954](g0%1)[-1953](g0%1)[-1952]
(g0%1)[-1948]
(g0%1)[-1939]
(g0%2)[-1939]
(g1%2)[-1951]
(g0%2)[-1940]
(g1%2)[-1939]
(g0%1)[-1959]
(g0%2)[-1962]
(g1%2)[-1966]
(g0%2)[-1952]
(g0%2)[-1940]
(g1%2)[-1976]
(g0%1)[-1963]
(g0%1)[-1962]
(g0%1)[-1972]
(g0%1)[-1963]
(g0%1)[-1971]
(g1%2)[-1963]
(g1%2)[-1952]
(g0%2)[-1947]
(g1%2)[-1938]
(g0%1)[-1926]
(g0%1)[-1936](g0%1)[-1935](g0%1)[-1932]
(g0%1)[-1931]
(g1%2)[-1926]
(g1%2)[-1943]
(g1%2)[-1945]
(g0%1)[-1944]
(g0%1)[-1934]
(g0%1)[-1936]
(g0%1)[-1945]
(g0%2)[-1941]
(g0%2)[-1937]
(g0%1)[-1937]
(g0%2)[-1935]
(g1%2)[-1925]
(g1%2)[-1938]
(g0%2)[-1950]
(g1%2)[-1944]
(g0%1)[-1941]
(g0%2)[-1944]
(g1%2)[-1940]
(g0%1)[-1936]
(g1%2)[-1941]
(g0%1)[-1953]
(g0%1)[-1849]
(g0%2)[-1850]
(g1%2)[-1849]
(g0%2)[-1845]
(g1%2)[-1847]
(g0%1)[-1859]
(g0%1)[-1863]
(g1%2)[-1855]
(g1%2)[-1835]
(g1%2)[-1836]
(g0%1)[-1838]
(g0%1)[-1847](g0%1)[-1846](g0%1)[-1843]
(g0%1)[-1847]
(g0%1)[-1847](g0%1)[-1848]
(g0%1)[-1833]
(g1%2)[-1841]
(g0%1)[-1832]
(g1%2)[-1836]
(g0%1)[-1830]
(g0%1)[-1839]
(g1%2)[-1842]
(g0%2)[-1844](g1%2)[-1849](g1%2)[-1848](g0%2)[-1845]
(g0%2)[-1850]
(g0%1)[-1826]
(g0%2)[-1835]
(g0%1)[-1852]
(g0%1)[-1861]
(g0%1)[-1870](g0%1)[-1869](g0%1)[-1866]
(g0%1)[-1865]
(g0%1)[-1866]
(g1%2)[-1863]
(g1%2)[-1857]
(g0%1)[-1860]
(g0%1)[-1855]
(g0%2)[-1854]
(g0%2)[-1855]
(g0%2)[-1864]
(g0%1)[-1856]
(g0%1)[-1848]
(g0%1)[-1856]
(g0%1)[-1859]
(g0%1)[-1859]
(g0%2)[-1863]
(g0%1)[-1847]
(g0%2)[-1872]
(g0%2)[-1872]
(g1%2)[-1875]
(g0%1)[-1851]
(g1%2)[-1860]
(g0%2)[-1858](g0%2)[-1859]
(g0%1)[-1863]
(g1%2)[-1862]
(g0%1)[-1852](g0%1)[-1859]
(g0%2)[-1874]
(g0%1)[-1864]
(g0%1)[-1872]
(g0%1)[-1872]
(g0%2)[-1869]
(g1%2)[-1863]
(g0%1)[-1862]
(g0%1)[-1875]
(g0%1)[-1864](g0%1)[-1871]
(g0%1)[-1885]
(g0%1)[-1876]
(g0%1)[-1879](g0%1)[-1874]
(g0%1)[-1872]
(g0%1)[-1869]
(g0%1)[-1877]
(g0%1)[-1866]
(g0%1)[-1866]
(g0%2)[-1865]
(g0%2)[-1872](g0%2)[-1873]
(g0%1)[-1878]
(g0%1)[-1862](g0%1)[-1855]
(g0%1)[-1867]
(g0%1)[-1868]
(g0%1)[-1877]
(g0%1)[-1874](g0%1)[-1879]
(g0%1)[-1867]
(g0%1)[-1878]
(g0%1)[-1870]
(g0%1)[-1872]
(g0%1)[-1879]
(g0%1)[-1878]
(g0%2)[-1888]
(g1%2)[-1870]
(g0%1)[-1861]
(g0%2)[-1881]
(g1%2)[-1869]
(g0%1)[-1864]
(g1%2)[-1859]
(g0%1)[-1860](g0%1)[-1865](g0%1)[-1864](g0%1)[-1863](g0%1)[-1862](g0%1)[-1861]
(g0%1)[-1847]
(g0%1)[-1847]
(g0%1)[-1847]
(g0%2)[-1851]
(g1%2)[-1847]
(g0%1)[-1843]
(g0%2)[-1847]
(g1%2)[-1843]
(g1%2)[-1883](g0%2)[-1874]
(g0%1)[-1879]
(g0%1)[-1880]
(g0%2)[-1881]
(g1%2)[-1879]
(g0%1)[-1882](g0%1)[-1884](g0%1)[-1883]
(g0%1)[-1880]
(g0%2)[-1888]
(g0%2)[-1874]
(g1%2)[-1867](g1%2)[-1866]
(g0%1)[-1871]
(g0%1)[-1863]
(g0%1)[-1877]
(g0%1)[-1865]
(g0%1)[-1872]
(g0%1)[-1839]
(g0%2)[-1843]
(g1%2)[-1839]
(g0%1)[-1844]
(g1%2)[-1840]
(g1%2)[-1842]
(g0%2)[-1825]
(g1%2)[-1822](g0%2)[-1827](g0%2)[-1826](g1%2)[-1823]
(g0%2)[-1821]
(g1%2)[-1826]
(g0%1)[-1845]
(g0%1)[-1871]
(g0%1)[-1863]
(g0%1)[-1877]
(g0%1)[-1865]
(g0%1)[-1872]
(g0%1)[-1842]
(g0%1)[-1831]
(g0%1)[-1856]
(g0%2)[-1857]
(g1%2)[-1850](g0%2)[-1855](g0%2)[-1854](g1%2)[-1851]
(g1%2)[-1858]
(g1%2)[-1854]
(g0%2)[-1854]
(g0%1)[-1866]
(g0%1)[-1858]
(g0%1)[-1872]
(g0%2)[-1868]
(g0%1)[-1856]
(g0%2)[-1853]
(g1%2)[-1860]
(g1%2)[-1859]
(g0%1)[-1868]
(g0%1)[-1875]
(g1%2)[-1863]
(g0%2)[-1863]
(g0%2)[-1856]
(g0%1)[-1899]
(g0%1)[-1898]
(g0%1)[-1898]
(g0%1)[-1908](g0%1)[-1907](g0%1)[-1904]
(g0%1)[-1899]
(g1%2)[-1889]
(g1%2)[-1898]
(g0%2)[-1891]
(g0%2)[-1918]
(g0%2)[-1928]
(g0%1)[-1929](g0%1)[-1925]
(g0%1)[-1921]
(g0%1)[-1911]
(g1%2)[-1908]
(g0%2)[-1900]
(g0%2)[-1915]
(g0%1)[-1908]
(g1%2)[-1913]
(g1%2)[-1910]
(g0%1)[-1907]
(g0%1)[-1899]
(g1%2)[-1920]
(g1%2)[-1916]
(g1%2)[-1904]
(g0%1)[-1908]
(g0%1)[-1940]
(g0%1)[-1946]
(g0%2)[-1949]
(g1%2)[-1945]
(g0%1)[-1941]
(g0%1)[-1949]
(g0%2)[-1941]
(g1%2)[-1931]
(g0%2)[-1928]
(g1%2)[-1928]
(g0%1)[-1921]
(g1%2)[-1924]
(g1%2)[-1927]
(g0%2)[-1919]
(g0%2)[-1918](g0%2)[-1919](g1%2)[-1915](g1%2)[-1914]
(g0%2)[-1916]
(g1%2)[-1922]
(g0%2)[-1934]
(g0%1)[-1916](g0%1)[-1917](g0%1)[-1915](g0%1)[-1914](g0%1)[-1913](g0%1)[-1912]
(g0%1)[-1917]
(g0%1)[-1909]
(g1%2)[-1926]
(g1%2)[-1914]
(g0%1)[-1918]
(g1%2)[-1879]
(g0%2)[-1856](g0%2)[-1863]
(g0%1)[-1852]
(g0%1)[-1853]
(g0%1)[-1853]
(g0%1)[-1843](g0%1)[-1847](g0%1)[-1844]
(g1%2)[-1850]
(g0%2)[-1850]
(g1%2)[-1865]
(g1%2)[-1865]
(g0%1)[-1869]
(g0%1)[-1866](g0%1)[-1871]
(g0%2)[-1866]
(g1%2)[-1879]
(g0%2)[-1880]
(g1%2)[-1884]
(g0%1)[-1881]
(g0%1)[-1877]
(g1%2)[-1885]
(g0%1)[-1908]
(g1%2)[-1908]
(g0%2)[-1896]
(g1%2)[-1908]
(g1%2)[-1903]
(g1%2)[-1910]
(g0%1)[-1897]
(g1%2)[-1893]
(g0%1)[-1906](g0%1)[-1905](g0%1)[-1904](g0%1)[-1903](g0%1)[-1902]
(g0%2)[-1907]
(g1%2)[-1892]
(g0%1)[-1901]
(g0%2)[-1904]
(g1%2)[-1911]
(g0%2)[-1906](g1%2)[-1908](g1%2)[-1907](g0%2)[-1903]
(g1%2)[-1899]
(g0%1)[-1882]
(g1%2)[-1885]
(g1%2)[-1878]
(g1%2)[-1891]
(g0%1)[-1894]
(g0%1)[-1904]
(g1%2)[-1875]
(g0%1)[-1867]
(g1%2)[-1874]
(g0%1)[-1872]
(g0%2)[-1876]
(g1%2)[-1886]
(g0%2)[-1871]
(g0%2)[-1871]
(g0%1)[-1888]
(g0%1)[-1898]
(g0%1)[-1887]
(g0%1)[-1890]
(g1%2)[-1894]
(g1%2)[-1892]
(g1%2)[-1889]
(g0%1)[-1872]
(g0%1)[-1882]
(g0%1)[-1870]
(g0%1)[-1857]
(g0%1)[-1875]
(g0%1)[-1844]
(g0%1)[-1843]
(g0%1)[-1854]
(g0%1)[-1887]
(g0%1)[-1877]
(g0%1)[-1885]
(g0%1)[-1911]
(g0%1)[-1943]
(g1%2)[-1926]
(g0%1)[-1920]
(g0%1)[-1917](g0%1)[-1922]
(g0%1)[-1924]
(g0%2)[-1919]
(g1%2)[-1923]
(g0%1)[-1946]
(g0%1)[-1942]
(g0%2)[-1945]
(g1%2)[-1953]
(g0%1)[-1968]
(g0%2)[-1971]
(g0%2)[-1969]
(g0%2)[-1966]
(g0%2)[-1957]
(g1%2)[-1959]
(g0%2)[-1947]
(g1%2)[-1943]
(g0%2)[-1937]
(g0%2)[-1931]
(g0%1)[-1924]
(g0%2)[-1921]
(g0%2)[-1915](g1%2)[-1919](g1%2)[-1918](g0%2)[-1914]
(g0%1)[-1934](g0%1)[-1933](g0%1)[-1932](g0%1)[-1931](g0%1)[-1930]
(g0%2)[-1927]
(g1%2)[-1925]
(g0%1)[-1933]
(g0%2)[-1936]
(g1%2)[-1942]
(g0%1)[-1943]
(g0%1)[-1930]
(g0%1)[-1941](g0%1)[-1934]
(g0%1)[-1920]
(g0%1)[-1929]
(g0%1)[-1926](g0%1)[-1931]
(g0%1)[-1919]
(g0%1)[-1930]
(g0%1)[-1922]
(g0%1)[-1924]
(g0%2)[-1924]
(g0%2)[-1914]
(g0%2)[-1924]
(g0%2)[-1921]
(g0%1)[-1919]
(g0%1)[-1914]
(g0%1)[-1918]
(g0%1)[-1919]
(g1%2)[-1920]
(g0%2)[-1908]
(g1%2)[-1920]
(g0%2)[-1919]
(g0%1)[-1909]
(g0%2)[-1912]
(g0%2)[-1910]
(g1%2)[-1927]
(g0%2)[-1917]
(g1%2)[-1924]
(g0%2)[-1907]
(g0%2)[-1877]
(g0%2)[-1865]
(g0%1)[-1855]
(g0%1)[-1858]
(g0%2)[-1858]
(g0%2)[-1865](g0%2)[-1866]
(g0%2)[-1858]
(g0%2)[-1856]
(g0%1)[-1860]
(g0%1)[-1860]
(g0%1)[-1863](g0%1)[-1858]
(g0%2)[-1858]
(g1%2)[-1855]
(g0%2)[-1857]
(g1%2)[-1871]
(g0%1)[-1866]
(g0%2)[-1867]
(g0%1)[-1880]
(g0%1)[-1889]
(g0%1)[-1896]
(g1%2)[-1888]
(g0%2)[-1863]
(g1%2)[-1872]
(g0%1)[-1872]
(g0%1)[-1863]
(g0%1)[-1856]
(g0%1)[-1857]
(g0%1)[-1858]
(g0%1)[-1863]
(g0%2)[-1861]
(g1%2)[-1867](g1%2)[-1868]
(g0%1)[-1872]
(g0%1)[-1869](g0%1)[-1874]
(g1%2)[-1874]
(g0%2)[-1877]
(g1%2)[-1870]
(g1%2)[-1865]
(g1%2)[-1867]
(g0%1)[-1875]
(g0%1)[-1883]
(g0%2)[-1875]
(g0%2)[-1862]
(g0%1)[-1870]
(g0%1)[-1871]
(g0%1)[-1862]
(g1%2)[-1866]
(g0%2)[-1876]
(g0%2)[-1875]
(g0%1)[-1884]
(g1%2)[-1887]
(g1%2)[-1887]
(g1%2)[-1897]
(g1%2)[-1901]
(g0%2)[-1905]
(g1%2)[-1900]
(g0%1)[-1925]
(g1%2)[-1925]
(g0%2)[-1927]
(g0%2)[-1919]
(g0%1)[-1930](g0%1)[-1927]
(g0%1)[-1944](g0%1)[-1943]
(g0%1)[-1940]
(g0%1)[-1939]
(g0%1)[-1948]
(g1%2)[-1948]
(g0%2)[-1947]
(g1%2)[-1943]
(g0%2)[-1945]
(g0%1)[-1957]
(g0%1)[-1961]
(g0%2)[-1953]
(g1%2)[-1938]
(g0%2)[-1909]
(g0%2)[-1909]
(g0%2)[-1921]
(g0%1)[-1881]
(g0%2)[-1880]
(g0%2)[-1881]
(g0%2)[-1890]
(g0%1)[-1882]
(g0%1)[-1874]
(g0%1)[-1882]
(g0%1)[-1885]
(g0%1)[-1885]
(g0%1)[-1878]
(g0%2)[-1886]
(g0%2)[-1899]
(g0%1)[-1892]
(g0%1)[-1902](g0%1)[-1901](g0%1)[-1898]
(g0%1)[-1897]
(g0%1)[-1885]
(g0%2)[-1881]
(g0%1)[-1896]
(g0%1)[-1888]
(g0%1)[-1925]
(g0%1)[-1917]
(g0%1)[-1931]
(g0%1)[-1919]
(g0%1)[-1926]
(g0%2)[-1905]
(g1%2)[-1877]
(g0%2)[-1872]
(g0%1)[-1853](g0%1)[-1856](g0%1)[-1855](g0%1)[-1854]
(g0%1)[-1851]
(g0%2)[-1857]
(g0%1)[-1904]
(g1%2)[-1903]
(g0%2)[-1905]
(g0%2)[-1913]
(g0%1)[-1914]
(g0%1)[-1914](g0%1)[-1911]
(g0%1)[-1906]
(g0%1)[-1889]
(g0%1)[-1897]
(g0%2)[-1889]
(g1%2)[-1875]
(g1%2)[-1878]
(g0%1)[-1878](g0%1)[-1881](g0%1)[-1880](g0%1)[-1879]
(g0%1)[-1876]
(g0%2)[-1872]
(g0%1)[-1885](g0%1)[-1884](g0%1)[-1883](g0%1)[-1882](g0%1)[-1881]
(g0%2)[-1877]
(g1%2)[-1883]
(g0%1)[-1883]
(g1%2)[-1883]
(g0%1)[-1888]
(g0%1)[-1863]
(g0%2)[-1867]
(g0%2)[-1864]
(g0%1)[-1864](g0%1)[-1861](g0%1)[-1860]
(g0%1)[-1879]
(g0%1)[-1879]
(g0%1)[-1869](g0%1)[-1873](g0%1)[-1870]
(g0%2)[-1876]
(g0%1)[-1878]
(g1%2)[-1885]
(g0%2)[-1872]
(g0%2)[-1873]
(g0%2)[-1881]
(g0%1)[-1892]
(g0%1)[-1922]
(g0%1)[-1919]
(g1%2)[-1915]
(g0%2)[-1913](g0%2)[-1912](g1%2)[-1909](g1%2)[-1908]
(g1%2)[-1914]
(g0%1)[-1904](g0%1)[-1903]
(g0%1)[-1905]
(g0%1)[-1918](g0%1)[-1911](g0%1)[-1908]
(g0%2)[-1916]
(g0%1)[-1920]
(g0%1)[-1920]
(g0%2)[-1924]
(g0%2)[-1916]
(g0%2)[-1929]
(g0%2)[-1893]
(g0%1)[-1921]
(g0%1)[-1913]
(g0%2)[-1930]
(g0%2)[-1914]
(g0%1)[-1896]
(g0%2)[-1896]
(g1%2)[-1897]
(g0%1)[-1886]
(g1%2)[-1891]
(g1%2)[-1900]
(g1%2)[-1899]
(g0%1)[-1907]
(g0%2)[-1893]
(g0%1)[-1907]
(g1%2)[-1903]
(g1%2)[-1905]
(g1%2)[-1899]
(g0%2)[-1908]
(g1%2)[-1892]
(g1%2)[-1895]
(g0%1)[-1888]
(g1%2)[-1889]
(g0%2)[-1875]
(g1%2)[-1879]
(g1%2)[-1889]
(g1%2)[-1889]
(g1%2)[-1894]
(g1%2)[-1902]
(g0%1)[-1910]
(g0%1)[-1900](g0%1)[-1904](g0%1)[-1901]
(g0%1)[-1899](g0%1)[-1906]
(g0%1)[-1909]
(g1%2)[-1919]
(g0%1)[-1932]
(g1%2)[-1917]
(g1%2)[-1916]
(g1%2)[-1911]
(g0%1)[-1912]
(g0%1)[-1902](g0%1)[-1906](g0%1)[-1903]
(g0%1)[-1907]
(g1%2)[-1912]
(g0%1)[-1939]
(g0%1)[-1929]
(g1%2)[-1895]
(g1%2)[-1893]
(g0%1)[-1885]
(g0%1)[-1866]
(g0%1)[-1875]
(g0%1)[-1887]
(g0%2)[-1890]
(g0%2)[-1888]
(g0%2)[-1885]
(g0%1)[-1909]
(g1%2)[-1909]
(g1%2)[-1908]
(g1%2)[-1894]
(g1%2)[-1896]
(g0%1)[-1893](g0%1)[-1898]
(g0%1)[-1904]
(g0%1)[-1915](g0%1)[-1914](g0%1)[-1913](g0%1)[-1912](g0%1)[-1911]
(g0%1)[-1916]
(g1%2)[-1916]
(g0%1)[-1906](g0%1)[-1913]
(g0%2)[-1928]
(g0%1)[-1918]
(g0%1)[-1927]
(g0%1)[-1930](g0%1)[-1925]
(g0%1)[-1918]
(g0%2)[-1925]
(g0%2)[-1927]
(g0%2)[-1913]
(g1%2)[-1903]
(g0%2)[-1915]
(g1%2)[-1896]
(g0%1)[-1872]
(g0%1)[-1863](g0%1)[-1867](g0%1)[-1864]
(g0%1)[-1863]
(g0%1)[-1863](g0%1)[-1862]
(g0%1)[-1877]
(g1%2)[-1869]
(g0%1)[-1878]
(g1%2)[-1874]
(g0%1)[-1880]
(g0%1)[-1870]
(g0%1)[-1879]
(g0%1)[-1871]
(g1%2)[-1878]
(g0%2)[-1892]
(g1%2)[-1892]
(g0%2)[-1883]
(g0%1)[-1874](g0%1)[-1873](g0%1)[-1872](g0%1)[-1871](g0%1)[-1870](g0%1)[-1869]
(g0%2)[-1863]
(g0%1)[-1902]
(g0%1)[-1912]
(g0%1)[-1900]
(g0%2)[-1897]
(g0%2)[-1899]
(g0%2)[-1902]
(g0%1)[-1888]
(g0%1)[-1888]
(g0%1)[-1895]
(g0%2)[-1887]
(g1%2)[-1879]
(g0%2)[-1869]
(g0%2)[-1878]
(g0%1)[-1872]
(g0%1)[-1863]
(g1%2)[-1867]
(g1%2)[-1859]
(g0%1)[-1852]
(g0%2)[-1859]
(g0%1)[-1865]
(g0%1)[-1865]
(g1%2)[-1868]
(g1%2)[-1860]
(g0%1)[-1866]
(g0%2)[-1869]
(g1%2)[-1871]
(g0%1)[-1878]
(g0%1)[-1878]
(g1%2)[-1882]
(g0%1)[-1928]
(g0%2)[-1932]
(g0%1)[-1947]
(g1%2)[-1911]
(g0%1)[-1903](g0%1)[-1910]
(g0%2)[-1911]
(g0%1)[-1926](g0%1)[-1925](g0%1)[-1924](g0%1)[-1923]
(g1%2)[-1938]
(g0%1)[-1916]
(g0%1)[-1925]
(g0%1)[-1917]
(g1%2)[-1934]
(g1%2)[-1922]
(g0%1)[-1926]
(g1%2)[-1890]
(g0%2)[-1884]
(g0%1)[-1899]
(g1%2)[-1879]
(g0%1)[-1872]
(g0%1)[-1894]
(g0%1)[-1894]
(g0%1)[-1891](g0%1)[-1896]
(g1%2)[-1891]
(g1%2)[-1906]
(g0%2)[-1904]
(g0%2)[-1900]
(g0%1)[-1890]
(g0%1)[-1874]
(g0%1)[-1883]
(g0%1)[-1875]
(g0%2)[-1887]
(g1%2)[-1895]
(g1%2)[-1899]
(g0%2)[-1888](g1%2)[-1892](g1%2)[-1891](g0%2)[-1887]
(g0%2)[-1887]
(g0%2)[-1907]
(g0%1)[-1906]
(g0%1)[-1899]
(g1%2)[-1907]
(g0%2)[-1932]
(g1%2)[-1923]
(g0%1)[-1923]
(g0%1)[-1923]
(g0%1)[-1933](g0%1)[-1932](g0%1)[-1929]
(g0%1)[-1933]
(g0%1)[-1933](g0%1)[-1934]
(g0%1)[-1919]
(g1%2)[-1927]
(g0%1)[-1918]
(g1%2)[-1922]
(g0%1)[-1927]
(g0%1)[-1927]
(g0%1)[-1917](g0%1)[-1921](g0%1)[-1918]
(g0%2)[-1924]
(g1%2)[-1924]
(g1%2)[-1929]
(g0%2)[-1934](g1%2)[-1938](g1%2)[-1937](g0%2)[-1933]
(g1%2)[-1937]
(g0%2)[-1946]
(g0%1)[-1932]
(g0%1)[-1932]
(g0%2)[-1936]
(g0%2)[-1940]
(g0%1)[-1940]
(g0%2)[-1942]
(g1%2)[-1952]
(g1%2)[-1939]
(g0%2)[-1927]
(g1%2)[-1933]
(g0%1)[-1945]
(g0%2)[-1948]
(g0%2)[-1951]
(g1%2)[-1943]
(g1%2)[-1932](g0%2)[-1937](g0%2)[-1936](g1%2)[-1933]
(g0%2)[-1937]
(g0%2)[-1949]
(g0%1)[-1943]
(g0%1)[-1943]
(g0%2)[-1942]
(g0%2)[-1957]
(g1%2)[-1946]
(g0%1)[-1958]
(g0%1)[-1966]
(g0%1)[-1941]
(g0%1)[-1956]
(g0%1)[-1964]
(g1%2)[-1956]
(g1%2)[-1933]
(g1%2)[-1933]
(g0%1)[-1939]
(g0%1)[-1938]
(g0%1)[-1861]
(g1%2)[-1865]
(g0%1)[-1849]
(g0%2)[-1869]
(g1%2)[-1875]
(g0%2)[-1852]
(g0%2)[-1858]
(g0%2)[-1864]
(g0%1)[-1857]
(g0%2)[-1853]
(g0%1)[-1866](g0%1)[-1865](g0%1)[-1864](g0%1)[-1863](g0%1)[-1862]
(g0%2)[-1859]
(g1%2)[-1858]
(g0%1)[-1859]
(g0%1)[-1853]
(g0%2)[-1853]
(g0%2)[-1860](g0%2)[-1861]
(g0%1)[-1866]
(g0%1)[-1850](g0%1)[-1843]
(g0%1)[-1855]
(g0%1)[-1857]
(g0%1)[-1865]
(g0%1)[-1851]
(g0%2)[-1855]
(g0%1)[-1867]
(g0%2)[-1870]
(g1%2)[-1863]
(g1%2)[-1864]
(g0%1)[-1864]
(g0%2)[-1864]
(g1%2)[-1866]
(g1%2)[-1863]
(g0%1)[-1872](g0%1)[-1876](g0%1)[-1875]
(g0%2)[-1867]
(g1%2)[-1854]
(g1%2)[-1859]
(g0%1)[-1877]
(g0%1)[-1877]
(g1%2)[-1880]
(g0%2)[-1882](g1%2)[-1887](g1%2)[-1886](g0%2)[-1883]
(g0%2)[-1884]
(g1%2)[-1873]
(g0%2)[-1873]
(g1%2)[-1869]
(g1%2)[-1863]
(g1%2)[-1880]
(g0%1)[-1888]
(g1%2)[-1888]
(g1%2)[-1890]
(g0%1)[-1896](g0%1)[-1900](g0%1)[-1899]
(g1%2)[-1890]
(g0%2)[-1889]
(g1%2)[-1874]
(g0%2)[-1883]
(g0%1)[-1877]
(g0%1)[-1886]
(g0%2)[-1885]
(g0%2)[-1899]
(g0%1)[-1897]
(g1%2)[-1892]
(g0%1)[-1884]
(g0%1)[-1875]
(g0%2)[-1879]
(g1%2)[-1872]
(g0%2)[-1868]
(g0%1)[-1865]
(g0%1)[-1875]
(g0%1)[-1873]
(g0%1)[-1882](g0%1)[-1881](g0%1)[-1878]
(g0%1)[-1873]
(g1%2)[-1863]
(g0%2)[-1847]
(g0%1)[-1884]
(g0%1)[-1873]
(g1%2)[-1877]
(g1%2)[-1869]
(g0%1)[-1862]
(g0%2)[-1869]
(g0%1)[-1875]
(g0%1)[-1866]
(g1%2)[-1867]
(g1%2)[-1853]
(g1%2)[-1857]
(g0%2)[-1867]
(g1%2)[-1866]
(g0%1)[-1855]
(g0%1)[-1846](g0%1)[-1850](g0%1)[-1847]
(g0%1)[-1846]
(g0%1)[-1860]
(g0%1)[-1843]
(g0%1)[-1862]
(g0%1)[-1849]
(g1%2)[-1846]
(g0%2)[-1844](g0%2)[-1843](g1%2)[-1840](g1%2)[-1839]
(g0%2)[-1842]
(g1%2)[-1837]
(g0%2)[-1844]
(g0%2)[-1838]
(g1%2)[-1832]
(g0%2)[-1841]
(g0%1)[-1833]
(g1%2)[-1837]
(g1%2)[-1846]
(g0%2)[-1832]
(g0%2)[-1826](g0%2)[-1827]
(g0%1)[-1833]
(g0%1)[-1845]
(g0%1)[-1822]
(g0%2)[-1826]
(g1%2)[-1822]
(g0%1)[-1818]
(g0%2)[-1822]
(g1%2)[-1818]
(g0%1)[-1814]
(g0%2)[-1815]
(g0%1)[-1820]
(g0%2)[-1807](g0%2)[-1808]
(g0%1)[-1803]
(g0%1)[-1762]
(g0%1)[-1765](g0%1)[-1760]
(g0%1)[-1758]
(g1%2)[-1763]
(g1%2)[-1765]
(g1%2)[-1758]
(g0%1)[-1747]
(g0%1)[-1737]
(g0%2)[-1738]
(g0%1)[-1743]
(g0%2)[-1730](g0%2)[-1731]
(g0%1)[-1726]
(g0%2)[-1730]
(g0%2)[-1728]
(g0%1)[-1726]
(g0%2)[-1743]
(g0%2)[-1742]
(g0%1)[-1770]
(g0%1)[-1777]
(g0%2)[-1760]
(g0%1)[-1759]
(g0%2)[-1765]
(g1%2)[-1775]
(g0%2)[-1771]
(g0%2)[-1771]
(g0%2)[-1787]
(g0%1)[-1796]
(g0%2)[-1811]
(g1%2)[-1791]
(g0%1)[-1792]
(g0%2)[-1792]
(g1%2)[-1778]
(g0%2)[-1776]
(g0%2)[-1791]
(g0%2)[-1792]
(g1%2)[-1794]
(g0%2)[-1788]
(g0%1)[-1799]
(g0%2)[-1795]
(g0%2)[-1794](g0%2)[-1793]
(g0%2)[-1801]
(g1%2)[-1803]
(g1%2)[-1789]
(g1%2)[-1811]
(g0%1)[-1803]
(g0%1)[-1809]
(g0%2)[-1805]
(g0%1)[-1818](g0%1)[-1817](g0%1)[-1816](g0%1)[-1815](g0%1)[-1814]
(g1%2)[-1812]
(g0%2)[-1804]
(g0%2)[-1812]
(g1%2)[-1801]
(g0%2)[-1812]
(g0%1)[-1819]
(g1%2)[-1815]
(g0%2)[-1813](g0%2)[-1812](g1%2)[-1809](g1%2)[-1808]
(g0%1)[-1824](g0%1)[-1828](g0%1)[-1827](g0%1)[-1826](g0%1)[-1825]
(g0%2)[-1829]
(g0%2)[-1817]
(g0%1)[-1820]
(g0%1)[-1827]
(g0%1)[-1804]
(g1%2)[-1800]
(g1%2)[-1808]
(g1%2)[-1807]
(g0%1)[-1818](g0%1)[-1817](g0%1)[-1816](g0%1)[-1815](g0%1)[-1814](g0%1)[-1813]
(g1%2)[-1803]
(g0%1)[-1795]
(g0%1)[-1794]
(g0%1)[-1803]
(g1%2)[-1799]
(g1%2)[-1799]
(g0%2)[-1793]
(g0%2)[-1800]
(g1%2)[-1799]
(g1%2)[-1799]
(g0%1)[-1791]
(g0%1)[-1791]
(g0%1)[-1801](g0%1)[-1800](g0%1)[-1797]
(g0%1)[-1796]
(g1%2)[-1791]
(g0%2)[-1804]
(g0%1)[-1796]
(g0%1)[-1796]
(g0%1)[-1799](g0%1)[-1794]
(g0%2)[-1799]
(g0%2)[-1792](g0%2)[-1791](g1%2)[-1788](g1%2)[-1787]
(g0%2)[-1792]
(g1%2)[-1803]
(g1%2)[-1787]
(g0%1)[-1806]
(g0%1)[-1796](g0%1)[-1800](g0%1)[-1797]
(g0%1)[-1801]
(g1%2)[-1806]
(g1%2)[-1791]
(g0%1)[-1794]
(g0%1)[-1794]
(g0%1)[-1785]
(g0%2)[-1782]
(g0%2)[-1784]
(g0%2)[-1776]
(g0%1)[-1787]
(g0%1)[-1779]
(g0%1)[-1770]
(g0%1)[-1763]
(g0%2)[-1770]
(g0%2)[-1778]
(g0%1)[-1793]
(g1%2)[-1796]
(g1%2)[-1799]
(g1%2)[-1794]
(g0%2)[-1806]
(g0%2)[-1791]
(g0%1)[-1812]
(g0%1)[-1812]
(g0%2)[-1815]
(g0%2)[-1807]
(g1%2)[-1820]
(g0%1)[-1805]
(g1%2)[-1823]
(g1%2)[-1819]
(g0%1)[-1817]
(g0%1)[-1820](g0%1)[-1815]
(g0%2)[-1815]
(g0%2)[-1808]
(g1%2)[-1820]
(g1%2)[-1822]
(g0%2)[-1814]
(g1%2)[-1807]
(g0%1)[-1788]
(g0%1)[-1787]
(g0%1)[-1796]
(g0%1)[-1806]
(g1%2)[-1756]
(g0%1)[-1751]
(g0%1)[-1762]
(g0%1)[-1762]
(g1%2)[-1758]
(g1%2)[-1760]
(g0%2)[-1743]
(g1%2)[-1745](g1%2)[-1746]
(g0%1)[-1751]
(g0%1)[-1781]
(g1%2)[-1777]
(g1%2)[-1785]
(g1%2)[-1784]
(g0%2)[-1782]
(g0%1)[-1778]
(g0%1)[-1793]
(g0%1)[-1802]
(g1%2)[-1798]
(g1%2)[-1795]
(g0%2)[-1795]
(g0%1)[-1813]
(g1%2)[-1823]
(g0%1)[-1812]
(g1%2)[-1808]
(g0%2)[-1801]
(g0%1)[-1770](g0%1)[-1774](g0%1)[-1771]
(g1%2)[-1776]
(g0%2)[-1787](g0%2)[-1786](g0%2)[-1785](g1%2)[-1784](g1%2)[-1783](g1%2)[-1782]
(g0%1)[-1798]
(g0%2)[-1809]
(g1%2)[-1809]
(g0%1)[-1742]
(g0%1)[-1735]
(g1%2)[-1742]
(g1%2)[-1750]
(g0%1)[-1765]
(g0%2)[-1765]
(g0%2)[-1756]
(g0%2)[-1757]
(g0%1)[-1755](g0%1)[-1754](g0%1)[-1753](g0%1)[-1752](g0%1)[-1751](g0%1)[-1750]
(g0%2)[-1759]
(g0%2)[-1764]
(g0%1)[-1763]
(g0%2)[-1767]
(g1%2)[-1771]
(g1%2)[-1781]
(g0%1)[-1783]
(g0%1)[-1778](g0%1)[-1777]
(g0%1)[-1775]
(g0%1)[-1777](g0%1)[-1775]
(g0%1)[-1737](g0%1)[-1738](g0%1)[-1736](g0%1)[-1735](g0%1)[-1734](g0%1)[-1733]
(g0%1)[-1733]
(g1%2)[-1729]
(g0%1)[-1721]
(g0%1)[-1730]
(g0%2)[-1733]
(g0%2)[-1729](g1%2)[-1734](g1%2)[-1733](g0%2)[-1730]
(g0%2)[-1741]
(g1%2)[-1738]
(g0%1)[-1737]
(g0%1)[-1733](g0%1)[-1729]
(g0%1)[-1717]
(g0%1)[-1717]
(g0%1)[-1720](g0%1)[-1715]
(g1%2)[-1715]
(g0%2)[-1710]
(g0%2)[-1715]
(g0%2)[-1730]
(g0%2)[-1706]
(g0%2)[-1711]
(g1%2)[-1719]
(g0%2)[-1706]
(g0%1)[-1707]
(g0%2)[-1706]
(g0%1)[-1701]
(g0%2)[-1707]
(g0%2)[-1717]
(g0%1)[-1731]
(g1%2)[-1728]
(g1%2)[-1728]
(g1%2)[-1735]
(g0%2)[-1729]
(g1%2)[-1720]
(g1%2)[-1726]
(g0%1)[-1728]
(g0%1)[-1746]
(g0%1)[-1746]
(g0%1)[-1743](g0%1)[-1748]
(g0%1)[-1736]
(g0%1)[-1746](g0%1)[-1756](g0%1)[-1749]
(g0%2)[-1746]
(g1%2)[-1739]
(g0%2)[-1729]
(g0%1)[-1748]
(g1%2)[-1744]
(g0%2)[-1750]
(g0%1)[-1747]
(g1%2)[-1748]
(g0%2)[-1736]
(g0%1)[-1744]
(g1%2)[-1753]
(g1%2)[-1761]
(g0%1)[-1737]
(g0%1)[-1729]
(g0%2)[-1741]
(g1%2)[-1734]
(g0%2)[-1738]
(g1%2)[-1744]
(g0%1)[-1762]
(g0%1)[-1759](g0%1)[-1764]
(g1%2)[-1759]
(g0%2)[-1756]
(g0%2)[-1773]
(g1%2)[-1771]
(g1%2)[-1767]
(g0%1)[-1760]
(g1%2)[-1757]
(g1%2)[-1759]
(g1%2)[-1744]
(g1%2)[-1747]
(g0%2)[-1742]
(g0%2)[-1740]
(g0%1)[-1741]
(g1%2)[-1737]
(g1%2)[-1696](g0%2)[-1701](g0%2)[-1700](g1%2)[-1697]
(g0%1)[-1697]
(g0%1)[-1706]
(g0%1)[-1699]
(g0%1)[-1702]
(g0%1)[-1697]
(g0%1)[-1702](g0%1)[-1701](g0%1)[-1698]
(g0%1)[-1693]
(g0%1)[-1690]
(g0%1)[-1685]
(g0%1)[-1689]
(g0%2)[-1689]
(g1%2)[-1683](g0%2)[-1687](g0%2)[-1686](g1%2)[-1682]
(g0%2)[-1678]
(g1%2)[-1677]
(g1%2)[-1699]
(g0%1)[-1686]
(g0%1)[-1686]
(g1%2)[-1689]
(g0%1)[-1673]
(g1%2)[-1694]
(g0%1)[-1705]
(g0%1)[-1699]
(g0%1)[-1712]
(g0%1)[-1723]
(g0%2)[-1727]
(g1%2)[-1738]
(g0%1)[-1732]
(g0%1)[-1752]
(g0%2)[-1755]
(g0%1)[-1740]
(g0%2)[-1737]
(g0%1)[-1746](g0%1)[-1750](g0%1)[-1749](g0%1)[-1748](g0%1)[-1747]
(g0%2)[-1751]
(g1%2)[-1738]
(g0%2)[-1726]
(g0%1)[-1718]
(g1%2)[-1722]
(g0%2)[-1732]
(g1%2)[-1717]
(g0%2)[-1732]
(g0%1)[-1729](g0%1)[-1738](g0%1)[-1737](g0%1)[-1730]
(g0%2)[-1736]
(g0%1)[-1738]
(g0%1)[-1747](g0%1)[-1746](g0%1)[-1743]
(g0%2)[-1740]
(g1%2)[-1726]
(g0%2)[-1729]
(g0%1)[-1745]
(g0%2)[-1740]
(g1%2)[-1736]
(g0%2)[-1748]
(g0%1)[-1743]
(g1%2)[-1739]
(g1%2)[-1730]
(g0%2)[-1740]
(g0%1)[-1816]
(g0%2)[-1813]
(g1%2)[-1813](g0%2)[-1817](g0%2)[-1816](g1%2)[-1812]
(g1%2)[-1803]
(g1%2)[-1814]
(g0%1)[-1814](g0%1)[-1815]
(g0%1)[-1855]
(g0%1)[-1847]
(g0%1)[-1861]
(g0%1)[-1849]
(g0%1)[-1856]
(g0%2)[-1920]
(g0%2)[-1922]
(g0%1)[-1930]
(g0%2)[-1933]
(g0%2)[-1931]
(g0%2)[-1939]
(g0%1)[-1939]
(g0%1)[-1946]
(g0%2)[-1944]
(g0%2)[-1952]
(g0%1)[-1951]
(g0%1)[-1961](g0%1)[-1960](g0%1)[-1957]
(g0%1)[-1956]
(g0%2)[-1959]
(g0%2)[-1965]
(g0%1)[-1943]
(g0%1)[-1951]
(g0%1)[-1958]
(g0%1)[-1968](g0%1)[-1967](g0%1)[-1964]
(g0%2)[-1961]
(g0%2)[-1966]
(g1%2)[-1971](g1%2)[-1978]
(g0%1)[-1940]
(g1%2)[-1939]
(g1%2)[-1936]
(g1%2)[-1935]
(g0%1)[-1945]
(g0%1)[-1936]
(g0%1)[-1944]
(g1%2)[-1936]
(g0%2)[-1923]
(g0%1)[-1921]
(g0%1)[-1913]
(g1%2)[-1938]
(g0%1)[-1940]
(g0%1)[-1941]
(g0%1)[-1941]
(g0%2)[-1944]
(g1%2)[-1940]
(g0%1)[-1927]
(g0%1)[-1915]
(g0%1)[-1922]
(g0%1)[-1936]
(g1%2)[-1940]
(g0%2)[-1942](g1%2)[-1947](g1%2)[-1946](g0%2)[-1943]
(g1%2)[-1932]
(g1%2)[-1926]
(g0%2)[-1921]
(g0%2)[-1907]
(g0%1)[-1950]
(g0%1)[-1941]
(g0%1)[-1949]
(g0%2)[-1941]
(g0%2)[-1933]
(g0%2)[-1917]
(g1%2)[-1914]
(g1%2)[-1925]
(g0%1)[-1939]
(g0%1)[-1939]
(g0%2)[-1936]
(g1%2)[-1936](g0%2)[-1940](g0%2)[-1939](g1%2)[-1935]
(g1%2)[-1936]
(g0%2)[-1931]
(g0%1)[-1926](g0%1)[-1925](g0%1)[-1924](g0%1)[-1923](g0%1)[-1922](g0%1)[-1921]
(g0%1)[-1914]
(g0%1)[-1919]
(g0%2)[-1920]
(g1%2)[-1908]
(g0%1)[-1899]
(g0%2)[-1920]
(g0%2)[-1917]
(g0%1)[-1909]
(g0%1)[-1909]
(g0%2)[-1912]
(g0%2)[-1912]
(g1%2)[-1919]
(g1%2)[-1919]
(g0%1)[-1899](g0%1)[-1904](g0%1)[-1903](g0%1)[-1902](g0%1)[-1901](g0%1)[-1900]
(g1%2)[-1907]
(g0%1)[-1918]
(g1%2)[-1914]
(g1%2)[-1906]
(g1%2)[-1902]
(g1%2)[-1898]
(g0%2)[-1888]
(g0%2)[-1903]
(g0%1)[-1894]
(g0%1)[-1929]
(g1%2)[-1925]
(g1%2)[-1925]
(g0%2)[-1919]
(g0%2)[-1926]
(g1%2)[-1925]
(g1%2)[-1918]
(g0%2)[-1921](g0%2)[-1920]
(g0%1)[-1916]
(g0%1)[-1926](g0%1)[-1925](g0%1)[-1922]
(g0%1)[-1926]
(g1%2)[-1922]
(g1%2)[-1912]
(g1%2)[-1899]
(g1%2)[-1914]
(g0%1)[-1905]
(g0%1)[-1925]
(g0%2)[-1921]
(g0%2)[-1929]
(g0%2)[-1928]
(g1%2)[-1927]
(g0%1)[-1927]
(g0%1)[-1928]
(g0%1)[-1928]
(g0%1)[-1938]
(g0%1)[-1903]
(g0%1)[-1902]
(g0%1)[-1911]
(g0%1)[-1918]
(g1%2)[-1901]
(g1%2)[-1917]
(g0%1)[-1936]
(g0%1)[-1936]
(g0%2)[-1939]
(g0%2)[-1947]
(g0%2)[-1943]
(g0%1)[-1935]
(g0%1)[-1935]
(g0%1)[-1938](g0%1)[-1933]
(g0%1)[-1924]
(g0%1)[-1931]
(g0%1)[-1928]
(g0%1)[-1914]
(g0%1)[-1936]
(g0%1)[-1932]
(g0%1)[-1923]
(g0%1)[-1916]
(g0%1)[-1914]
(g1%2)[-1931]
(g0%1)[-1918]
(g0%2)[-1897]
(g0%2)[-1912]
(g0%1)[-1903]
(g0%1)[-1917]
(g0%1)[-1917]
(g1%2)[-1914]
(g0%2)[-1912](g0%2)[-1911](g1%2)[-1908](g1%2)[-1907]
(g1%2)[-1922]
(g1%2)[-1926]
(g0%1)[-1929](g0%1)[-1932](g0%1)[-1931](g0%1)[-1930]
(g0%1)[-1908](g0%1)[-1907](g0%1)[-1906](g0%1)[-1905]
(g0%1)[-1897]
(g1%2)[-1893]
(g0%2)[-1885]
(g1%2)[-1912]
(g0%2)[-1900]
(g0%1)[-1905]
(g0%1)[-1901](g0%1)[-1898](g0%1)[-1897]
(g0%1)[-1885]
(g0%2)[-1882]
(g1%2)[-1880](g1%2)[-1879](g0%2)[-1876](g0%2)[-1875]
(g0%2)[-1890]
(g0%2)[-1886]
(g1%2)[-1872]
(g1%2)[-1877]
(g1%2)[-1884](g0%2)[-1887](g0%2)[-1886](g0%2)[-1885](g1%2)[-1883](g1%2)[-1882]
(g0%2)[-1922]
(g3%8)[-1720]
I am going to run even slower version with just a small hope for discovering other variants. And as expected, nothing new was found.

The parity correction leads to different constraints for stack bottom positions with only two intervals where 4 mod 8 botom is insufficient.
Actually starting with bottom 2 mod 8 would require just one subinterval of bottom 4 mod 8. Hmm, but with all switches in the maximal depth.
Seems

Code: Select all

(g6%8)[-1847 1]  246
(g1%8)[-1868 4] 024
(g7%8)[-1924 4] 0 4
(g0%8)[-1991 1] 02 6
(g5%8)[-2007 1] 024
(g2%8)[-2102 2] 0246
(g2%8)[-2093 3] 0246
(g0%8)[-2052 4] 024
Would be better to solve by temporary push of either of <0>/<2>/<6> bottom to do the (0 -1991) emission, popping it early after.

So the only decision to make is the optimisation of the start portion, but it seems obvious the critical botoms are so far away that making common bottom and popping it all would be more costly than temporarily push the new bottom to solve particullar emission/emissions and we could do the whole construction with bottom 4 mod 8 ... with mentioned exceptions.

Code: Select all

<4>
(g1%8)[-2518 2] 246
(g0%8)[-2511 1](g1%8)[-2511](g2%8)[-2511](g3%8)[-2511](g4%8)[-2511](g6%8)[-2511](g7%8)[-2511] 0246
(g0%8)[-2532 4](g2%8)[-2532](g6%8)[-2532] 0246
<4>(<0>/<2>/<6>) (~-2551)
(g0%8)[-2551 1] 02 6
<4>
(g4%8)[-1922 6]  246
(g0%8)[-1925 3](g2%8)[-1925] 0246
(g4%8)[-2162 6]  246
<4>(<0>/<2>/<6>) (~-2192)
(g1%8)[-2192 6] 02 6
<4>
(g4%8)[-2185 7] 0246
(g0%8)[-2105 7] 024
(g3%8)[-2100 4](g4%8)[-2100] 0246
(g5%8)[-2071 1] 024
(g4%8)[-2013 3] 0246
<4>(<0>/<2>/<6>) (~-1882)
(g1%8)[-1802 6] 02 6
(g0%8)[-1882 6] 02 6
<4>
(g1%8)[-1884 4] 024
(g0%8)[-1795 5](g1%8)[-1795](g2%8)[-1795](g3%8)[-1795](g4%8)[-1795](g6%8)[-1795](g7%8)[-1795] 0246
(g7%8)[-1843 5] 0246
(g3%8)[-1964 4] 0246
(g7%8)[-1981 3] 0246
<4> (~2611)
Whole rough plan:

Code: Select all

(block_right_r)[-2508]
<4>
(g1%8)[-2518 2] 246
(g0%8)[-2511 1](g1%8)[-2511](g2%8)[-2511](g3%8)[-2511](g4%8)[-2511](g6%8)[-2511](g7%8)[-2511] 0246
(g0%8)[-2532 4](g2%8)[-2532](g6%8)[-2532] 0246
<4>(<0>/<2>/<6>) (~-2551)
(g0%8)[-2551 1] 02 6
<4>
(g4%8)[-1922 6]  246
(g0%8)[-1925 3](g2%8)[-1925] 0246
(g4%8)[-2162 6]  246
<4>(<0>/<2>/<6>) (~-2192)
(g1%8)[-2192 6] 02 6
<4>
(g4%8)[-2185 7] 0246
(g0%8)[-2105 7] 024
(g3%8)[-2100 4](g4%8)[-2100] 0246
(g5%8)[-2071 1] 024
(g4%8)[-2013 3] 0246
<4>(<0>/<2>/<6>) (~-1882)
(g1%8)[-1802 6] 02 6
(g0%8)[-1882 6] 02 6
<4>
(g1%8)[-1884 4] 024
(g0%8)[-1795 5](g1%8)[-1795](g2%8)[-1795](g3%8)[-1795](g4%8)[-1795](g6%8)[-1795](g7%8)[-1795] 0246
(g7%8)[-1843 5] 0246
(g3%8)[-1964 4] 0246
(g7%8)[-1981 3] 0246
(g7%8)[-1844 4] 0 4
(g6%8)[-1769 7] 0 46
(g7%8)[-1859 5] 0246
(g1%8)[-2019 5] 024
(g5%8)[-1988 2] 024
(g0%8)[-1931 5]  246
(g0%8)[-2003 5](g2%8)[-2003](g6%8)[-2003] 0246
(g7%8)[-2439 1] 0246
(g4%8)[-2601 7] 0246
(g3%8)[-2577 7] 0 46
(g7%8)[-2472 0] 0 4
(g6%8)[-2436 4] 0 46
(g3%8)[-2420 4] 0246
(g3%8)[-2380 4] 0246
(g1%8)[-2370 6](g3%8)[-2370] 0246
(g7%8)[-2461 3] 0246
(g3%8)[-2488 0] 0246
(g7%8)[-2509 3] 0246
(g0%8)[-2404 4] 024
(g2%8)[-2294 2] 0246
(g3%8)[-2453 3] 024
(g4%8)[-2504 0] 024
(g0%8)[-2393 7] 024
(g2%8)[-2475 5] 0246
(g0%8)[-2476 4](g4%8)[-2476](g6%8)[-2476] 0246
(g0%8)[-2492 4] 024
(g1%8)[-2501 3]  246
(g6%8)[-1847 1]  246
(g1%8)[-1868 4] 024
(g7%8)[-1924 4] 0 4
<4>(<0>/<2>/<6>) (~-1991)
(g0%8)[-1991 1] 02 6
<4>
(g5%8)[-2007 1] 024
(g2%8)[-2102 2] 0246
(g2%8)[-2093 3] 0246
(g0%8)[-2052 4] 024
T*<(3 jumps)>
<3 jumps>
(g3%8)[-1720 0] 0246
exact stack position changes with respect to p1,p2 emissions should be chosen considering Fixed bottom optimization.
Last edited by Hippo.69 on May 2nd, 2023, 9:32 am, edited 3 times in total.
User avatar
Hippo.69
Posts: 683
Joined: July 14th, 2020, 7:35 pm
Contact:

Re: Binary slow salvos

Post by Hippo.69 »

I have updated the PlayBitSequence code so now I use intermediate saves ... it really saves a lot of time :) in debugging.

Code: Select all

local g = golly()
g.setbase(2)
local debug, debugallowed, logging, showing, skipping
local log = io.open("c:\\Golly\\Test12Seqlog.txt", "w")
local showPrefix, showSufix = '', ''
debug, logging, showing, skipping  = false, true, false, false
local prevSkipSpaces, prevBitCount = 1275, 36031
local skipSpaces = 1283
local startDebugging = 1800
local preSaveFileName = "c:\\Golly\\Play12Sequence"..prevSkipSpaces..".mc"
local saveFileName = "c:\\Golly\\Play12Sequence"..skipSpaces..".mc"
g.autoupdate(debug)
g.new("play12Sequence")

-- goal is to map what the sequence does with the elbowsStack, what it removes/adds on the stack,
-- what are prerequisities (required distance of other stack items)
-- some of the _rr moves in original classification could be described (at least) two ways, as they do not require [2,-8],
-- but could clearly delete it
-- sequences should be split into prime ones nonprefix, (maybe even nonsufix) representation, to make their use more effective
-- the input is in [2,0] start, so [3,0][5,0] starting sequences should be prefixed by a "to_honey" on input
-- '1' "semidel" sequence is special as it ignores [2,0] top ... it is definitely primitive and not tested here
--
-- first stable distances:
-- [2,-6][2,0]
-- [3,*][2,0] -- unrelated
-- [4,*][2,0] -- unrelated
-- [5,x][2,0] -- [5,] is always first
-- [2,*][3,0] -- unrelated
-- [3,-8][3,0]
-- [4,-6][3,0]
-- [5,x][3,0] -- [5,] is always first
-- [2,*][4,0] -- unrelated
-- [3,-6][4,0]
-- [4,-6][4,0]
-- [5,x][4,0] -- [5,] is always first
-- [2,x][5,0] -- there is always [3,0] under [5,0]
-- [3,0][5,0]
-- [4,x][5,0] -- there is always [3,0] under [5,0
-- [5,x][5,0] -- [5,] is always first
-- when multiple [A,0] at the same time, order in name should be according the type ... [2,0][3,0][4,0][5,0]
-- let me try to avoid [4,x]

local minxpyLimit, maxxpyLimit, maxPopLimit, maxNonStackPopLimit = -4000, 160, 3200, 1200 --twice twice as usual
local minxpy, maxxpy, maxPop, maxNonStackPop
local pop, nonStackPop
local bits, bitsWithGliders = '', ''
local allBits = { '[PDBSSSDB]22112211111212121211[H2T14S]' }

local hadrons, hadronIds = {}, {}
local function newHadron(id, pattern, x, y, detectxpy, detectymx, detectCheck)
    --detectCheck ... pattern which should be empty to be sure with detection (depends on all hadrons tried in the decomposition)
    local node = {}
    node["id"], node["pattern"], node["x"], node["y"], node["detectxpy"], node["detectymx"], node["detectCheck"] = id, pattern, x, y, detectxpy, detectymx, detectCheck
    hadrons[id] = node
    hadronIds[#hadronIds + 1] = id
end

newHadron('0', g.parse("b2o$obo$2bo!"), 42, -42)
newHadron('1', g.parse("3o$2bo$bo!"), -5, 0)
newHadron('T', g.parse("bo$obo$obo$bo2$5b2o$4bo2bo$5b2o!"), 272, -282, -8, -552, { -1, 0, 0, 1, 1, 0 })
newHadron('t', g.parse("bo$obo$obo$bo2$5b2o$4bo2bo$5b2o!"), 272, -283, -8, -556, { -1, 0, 0, -1, 1, 0 })
newHadron('I', g.parse("o$o$o!"), 274, -279, -5, -553, { -1, 1 })
--newHadron('i',g.parse("o$o$o!"),274,-279,-5,-553,{-1,1})
newHadron('H', g.parse("b2o$o2bo$b2o2$6bo$5bobo$5bobo$6bo!"), 270, -280, -8, -552, { 0, -1, 0, 1, 1, 0 })
newHadron('h', g.parse("b2o$o2bo$b2o2$6bo$5bobo$5bobo$6bo!"), 269, -280, -8, -548, { -1, 0, 0, -1, 0, 1 })
newHadron('B', g.parse("2o$2o4$4b3o!"), 275, -277, -2, -552, { 2, 2, 3, 6, 5, 4 })
newHadron('P', g.parse("b2o$o2bo$o2bo$b2o2$5b3o!"), 274, -277, -2, -552, { 0, 1, 3, 6, 5, 4 })
newHadron('d', g.parse("3o2$4bo$4bo$4bo!"), 276, -275, 1, -551, { -1, -1, 1, 1, 0, 1, -1, 1, 1, -1 })
newHadron('D', g.parse("o$o$o2$2b3o!"), 277, -276, 1, -553, { -1, -1, 1, 1, 1, 0, 1, 5, 3, 3 })
newHadron('S', g.parse("3o"), 279, -272, 7, -551, { -3, -2, -1, 1, 1, -1 })
newHadron('L', g.parse("2o$2o!"), 282, -244, 38, -526)  -- to be ymx shifted?
newHadron('R', g.parse("2o$2o!"), 246, -282, -36, -528) -- to be ymx shifted?

local function putHadron(id, ymxShift, mode)
    --g.note("putHadron id="..id.." shift="..ymxShift)
    local pop = g.getpop() + 0
    g.putcells(hadrons[id].pattern, hadrons[id].x - ymxShift, hadrons[id].y + ymxShift, 1, 0, 0, 1, mode or "or")
    if not mode then
        return pop == g.getpop() - #hadrons[id].pattern // 2 -- no overwrite
    end
end

local function inDelimiters(name, leftDelimiter, rightDelimiter)
    return string.sub(name, string.find(name, '%' .. leftDelimiter) + 1, string.find(name, '%' .. rightDelimiter) - 1)
end

local function inttostring(num)
    return string.sub(num, 1, string.find(num .. ".", "%.") - 1)
end

local function split(str, delim)
    local ret, l, p = {}, 1, nil
    while l <= 1 + string.len(str) do
        p = string.find(str .. delim, '%' .. delim, l)
        ret[1 + #ret], l = string.sub(str, l, p - 1), p + 1
    end
    return ret
end

local function writeLog(msg)
    if log and logging then
        log:write(msg .. "\n")
    end
end

local function conditionsToString(conditions)
    local postConitions, ret
    if #conditions == 0 then
        g.note("no conditions?")
        return "{:}"
    end
    if #conditions < 2 then
        ret = "{:"
    else
        ret = "{" .. conditions[1] .. ":"
    end
    --  g.note("type conditions[1] ="..type(conditions[1]))
    --  g.note("type conditions["..#conditions.."] ="..type(conditions[#conditions]))
    ret = ret .. conditions[#conditions][1]
    for j = 2, #conditions[#conditions] do
        ret = ret .. "," .. conditions[#conditions][j]
    end
    ret = ret .. "}"
    return ret
end

local function isSmallAtMost1g(patternArray, orig)
    --g.show("iAM1g     "..bits)
    --g.note("iAM1g     "..bits)
    g.new("play12Sequence");
    g.select({ 279, -272, 1, 1 })
    g.putcells(patternArray)
    pop = g.getpop() + 0
    if pop > maxPopLimit then
        --
        if debug then
            g.note("pop>maxPop " .. pop)
        end
        if orig then
            writeLog("pop>maxPopLimit " .. pop)
        end
        return false
    end
    g.setbase(2)
    g.setstep(9)  -- to be sure glider if detected does not colide with the rest of the pattern
    g.step()
    g.putcells(patternArray, 0, 0, 1, 0, 0, 1, "xor") --and we have non p8 patternPart
    local tpop = g.getpop() + 0
    if tpop == 0 then
        return true
    elseif tpop ~= 10 then
        --g.note ("tpop~=10 "..tpop)
        if orig then
            writeLog("tpop~=10 " .. tpop)
        end
        return false
    end
    local i, gliderArray, movingpart
    gliderArray, movingpart = {}, g.getcells(g.getrect())
    g.new("play12Sequence");
    g.select({ 279, -272, 1, 1 })
    g.putcells(patternArray)
    for i = 1, #movingpart, 2 do
        if g.getcell(movingpart[i], movingpart[i + 1]) == 1 then
            gliderArray[1 + #gliderArray] = movingpart[i]
            gliderArray[1 + #gliderArray] = movingpart[i + 1]
        end
    end
    g.new("play12Sequence");
    g.select({ 279, -272, 1, 1 })
    g.putcells(gliderArray)
    tpop = g.getpop() + 0
    if tpop ~= 5 then
        if debug then
            g.note("tpop~=5 glider " .. tpop)
        end
        if orig then
            writeLog("tpop~=5 glider " .. tpop)
        end
        return false
    end
    g.putcells(gliderArray, -128, -128, 1, 0, 0, 1)
    g.putcells(movingpart, 0, 0, 1, 0, 0, 1, "xor")
    tpop = g.getpop() + 0
    if tpop ~= 0 then
        if debug then
            g.fit();
            g.note("tpop~=0 movingpart xor gliderpair " .. tpop)
        end
        if orig then
            writeLog("tpop~=0 movingpart xor gliderpair " .. tpop)
        end
        return false
    end
    if debug then
        g.note("ok, glider")
    end
    return true, gliderArray  -- 5 cells moving NW at c/4 is an allowed glider
end

local function extendDecomposition(decomposition, item)
    local i
    for i = #decomposition, 0, -1 do
        if i == 0 then
            decomposition[1] = item
        elseif string.find(item[1], '[01]') then
            decomposition[i + 1] = decomposition[i]
        elseif string.find(decomposition[i][1], '[01]') then
            decomposition[i + 1] = item
            break
        elseif string.find(item[1], '[RL]') then
            decomposition[i + 1] = decomposition[i]
        elseif string.find(decomposition[i][1], '[RL]') then
            decomposition[i + 1] = item
            break
        elseif decomposition[i][2] < item[2] then
            decomposition[i + 1] = decomposition[i]
        elseif decomposition[i][2] > item[2] then
            decomposition[i + 1] = item
            break
        elseif decomposition[i][1] > item[1] then
            decomposition[i + 1] = decomposition[i]
        else
            decomposition[i + 1] = item
            break
        end
    end
    return decomposition
end

local function decompositionToString(decomposition, shiftedStart, deltaymx)
    --lepší řazení, komprese?
    --g.show("dTS       "..bits)
    --  g.note("dTS       "..bits)
    local i, ret, prevPos
    ret = "]"
    --if debug then g.note("decmpostionToString #("..#decomposition..")") end
    for i = #decomposition, (not shiftedStart and 1 or shiftedStart), -1 do
        --if debug then g.note("decmpostionToString["..i.."]=('"..decomposition[i][1].."',"..decomposition[i][2]..")") end
        if not string.find('01', decomposition[i][1]) then
            if prevPos then
                if prevPos + 8 ~= decomposition[i][2] + (not deltaymx and 0 or deltaymx) then
                    ret = inttostring(decomposition[i][2] + (not deltaymx and 0 or deltaymx) - prevPos) .. ret
                end
            else
                if decomposition[i][2] + (not deltaymx and 0 or deltaymx) ~= 0 then
                    ret = inttostring(decomposition[i][2] + (not deltaymx and 0 or deltaymx)) .. ret
                end
            end
            prevPos = decomposition[i][2] + (not deltaymx and 0 or deltaymx)
        end
        ret = decomposition[i][1] .. ret
    end
    if shiftedStart and shiftedStart > 1 then
        --g.note(decompositionToString(decomposition)..","..shiftedStart..","..deltaymx.."->["..ret)
    end
    --if debug then g.note("decomposition..["..ret) end
    return "[" .. ret
end

local function hadronToDecomposition(decomposition, id, ymx)
    local stdymx = ymx - hadrons[id].detectymx
    local pop = 0 + g.getpop()
    putHadron(id, stdymx // 2, 'xor')
    if g.getpop() + (#hadrons[id].pattern) // 2 > pop then
        if debug then
            g.note("hadron does not match " .. id)
        end
        return
    end
    return true, extendDecomposition(decomposition, { id, stdymx })
end

local function isStackDecomposable(patternWithoutGliderArray)
    local i, j, xpy, ymx, stdymx
    -- I need to estimate the nonStackPop :(
    nonStackPop = 0
    for i = 1, #patternWithoutGliderArray, 2 do
        --fast checks first
        xpy = patternWithoutGliderArray[i] + patternWithoutGliderArray[i + 1]
        if minxpy > xpy then
            minxpy = xpy
        end
        if maxxpy < xpy then
            maxxpy = xpy
        end
        if xpy < -9 or xpy > 9 then
            nonStackPop = 1 + nonStackPop
        end
    end
    for i = 1, #patternWithoutGliderArray, 2 do
        --fast checks first
        xpy = patternWithoutGliderArray[i] + patternWithoutGliderArray[i + 1]
        if xpy < -36 or xpy > 40 then
            if (xpy == -59) or (xpy == -61) or (xpy == -62) then
                --part of R198 pattern ... boat
            elseif (xpy == -70) or (xpy == -71) or (xpy == -72) or (xpy == -73) or (xpy == -74) or (xpy == -75) or (xpy == -81) or (xpy == -82) or (xpy == -83) then
                -- part of R2398 pattern
            elseif (xpy >= -3500) and (xpy <= -2000) then
                -- part of DBCA construction
            else
                if debug then
                    g.note("iSD xpy out of bounds " .. xpy)
                end
                return false, "A" .. xpy
            end
        elseif xpy > 9 and xpy < 38 then
            if debug then
                g.note("iSD xpy in a big SE gap " .. xpy)
            end
            return false, "B" .. xpy
        elseif xpy > 3 and xpy < 7 then
            if debug then
                g.note("iSD xpy in a gap " .. xpy)
            end
            return false, "C" .. xpy
        elseif xpy > -34 and xpy < -10 then
            if debug then
                g.note("iSD xpy in a big NW gap " .. xpy)
            end
            return false, "D" .. xpy
        end
    end

    local decomposition = {}
    g.new("play12Sequence");
    g.select({ 279, -272, 1, 1 })
    g.putcells(patternWithoutGliderArray)
    local changed = true
    while changed do
        --g.show("iSD3_"..#decomposition.." "..bits)
        local tpop = g.getpop() + 0
        if tpop == 0 then
            return true, decomposition
        end
        g.fit()
        changed = false
        for i = 1, #patternWithoutGliderArray, 2 do
            xpy, ymx = patternWithoutGliderArray[i] + patternWithoutGliderArray[i + 1], patternWithoutGliderArray[i + 1] - patternWithoutGliderArray[i]
            local hIdDetected
            if xpy < -56 then
                g.setcell(patternWithoutGliderArray[i], patternWithoutGliderArray[i + 1], 0)
                patternWithoutGliderArray = g.getcells(g.getrect())
                changed = true
                break
            else
                for hId, hadron in pairs(hadrons) do
                    if hadron.detectxpy and hadron.detectxpy == xpy then
                        hIdDetected = hId
                        for j = 1, (hadron.detectCheck and #hadron.detectCheck) or 0, 2 do
                            if g.getcell(patternWithoutGliderArray[i] + hadron.detectCheck[j], patternWithoutGliderArray[i + 1] + hadron.detectCheck[j + 1]) == 1 then
                                if false and debug then
                                    g.note(hIdDetected .. "detectCheck failed " ..
                                            inttostring(patternWithoutGliderArray[i] + hadron.detectCheck[j]) .. "," ..
                                            inttostring(patternWithoutGliderArray[i + 1] + hadron.detectCheck[j + 1]) .. " " ..
                                            decompositionToString(decomposition))
                                end
                                hIdDetected = nil
                                break
                            end
                        end
                        if hIdDetected then
                            break
                        end
                    end
                end
                if hIdDetected then
                    changed, decomposition = hadronToDecomposition(decomposition, hIdDetected, ymx)
                    patternWithoutGliderArray = g.getcells(g.getrect())
                    break
                end
            end
        end
    end
    return false, '>' .. (patternWithoutGliderArray[1] + patternWithoutGliderArray[2]) -- some bits remained, but no more hadrons detected
    -- ... the detection is on small xpy so the pattern eventually expands to higher xpy so this prevents infinite cycles
end

local function getNWgliderMod8name(gliderArray)
    -- numbers could require linear shifts
    --g.show("gNWgm8n   "..bits)
    --g.note("gNWgm8n   "..bits)
    if not gliderArray then
        return "" --otherwise 5 cells!
    end
    g.new("play12Sequence");
    g.select({ 279, -272, 1, 1 })
    g.putcells(gliderArray)
    local i, xpy, maxxpy, maxxpyi, x, y, ymx, mod8
    maxxpy, maxxpyi = gliderArray[1] + gliderArray[2], 1
    for i = 3, 10, 2 do
        xpy = gliderArray[i] + gliderArray[i + 1]
        if maxxpy < xpy then
            maxxpy, maxxpyi = xpy, i
        end
    end
    x, y = gliderArray[maxxpyi] - 1, gliderArray[maxxpyi + 1] - 1 -- "central cell"
    if g.getcell(x + 1, y - 1) == 0 then
        if g.getcell(x, y - 1) == 0 then
            mod8 = 3 + 4 * (x % 2)
            ymx = y - x + 2
        else
            mod8 = 2 + 4 * (x % 2)
            ymx = y - x + 1
        end
    else
        if g.getcell(x - 1, y) == 0 then
            mod8 = 1 + 4 * ((x + 1) % 2)
            ymx = y - x - 1
        else
            mod8 = 4 * (x % 2)
            ymx = y - x
        end
    end
    mod8 = (mod8 + 5) % 8 --standardise
    ymx = ymx + 551 -- standardise
    --g.note("glider name: ("..inttostring(ymx).." "..inttostring(mod8)..")")
    return "(" .. inttostring(ymx) .. " " .. inttostring(mod8) .. ")"
end

local function namecost(name)
    local ret = nil
    local tmp
    if string.find(name, '%[I') then
        ret = string.len(name) - string.len(string.gsub(name, '%[I', '['))
    end
    if not string.find(name, '%[H') and string.find(name, "%[T") then
        tmp = string.len(name) - string.len(string.gsub(name, '%[T', '['))
        ret = (ret or 0) + 2 * ((tmp + 2) // 3)
    end
    return ret
end

local function shiftedGliderBits(bitsWithGliders, ymxDelta)
    local posOpen, posClose, ret
    ret = ""
    posOpen = string.find(bitsWithGliders, '%(')
    posClose = string.find(bitsWithGliders, '% ')
    while posOpen and posClose do
        ret = ret .. string.sub(bitsWithGliders, 1, posOpen) .. inttostring(ymxDelta + string.sub(bitsWithGliders, posOpen + 1, posClose - 1)) .. ' '
        bitsWithGliders = string.sub(bitsWithGliders, posClose + 1)
        posOpen = string.find(bitsWithGliders, '%(')
        posClose = string.find(bitsWithGliders, '% ')
    end
    return ret .. bitsWithGliders
end

local moves, oriMoves = {}, {}
local expectedMoveToWrite, expectedMoveWritten, translatedMoveToWrite

local function writeMove(oriDecomposition, bitsWithGliders, decomposition)
    local i, minLen, commonSufixLen, preDec, postDec, ymx, oriDebug
    local oriDebug = debug
    local oriDecStart = (string.find('01', oriDecomposition[1][1]) and 2) or 1
    --debug = string.find(decompositionToString(oriDecomposition),'[LR]')
    -- if debug then g.note("wM oriDecomposition:"..decompositionToString(oriDecomposition)
    --   .."\nbitsWithGliders:"..bitsWithGliders
    --   .."\n decomposition:"..decompositionToString(decomposition)) end
    minLen = #oriDecomposition - oriDecStart
    minLen = (minLen < 0) and 0 or minLen
    if minLen > #decomposition then
        minLen = #decomposition
    end
    commonSufixLen = minLen
    for i = 1, minLen do
        if oriDecomposition[#oriDecomposition + 1 - i][1] ~= decomposition[#decomposition + 1 - i][1]
                or oriDecomposition[#oriDecomposition + 1 - i][2] ~= decomposition[#decomposition + 1 - i][2] then
            commonSufixLen = i - 1
            break
        end
    end
    preDec, postDec = {}, {}
    ymx = oriDecomposition[#oriDecomposition - commonSufixLen][2]
    for i = oriDecStart, #oriDecomposition - commonSufixLen do
        preDec[#preDec + 1] = { oriDecomposition[i][1], oriDecomposition[i][2] - ymx }
    end
    for i = 1, #decomposition - commonSufixLen do
        postDec[i] = { decomposition[i][1], decomposition[i][2] - ymx }
    end
    if debug then
        g.note("wM oriDecomposition:" .. decompositionToString(oriDecomposition)
                .. "\nbitsWithGliders:" .. bitsWithGliders
                .. "\ndecomposition:" .. decompositionToString(decomposition)
                .. "\ncommonSufixLen:" .. commonSufixLen
                .. "\noriDecStart:" .. oriDecStart
                .. "\npreDec:" .. decompositionToString(preDec)
                .. "\npostDec:" .. decompositionToString(postDec))
    end
    local bottom = ''
    if oriDecomposition[#oriDecomposition - commonSufixLen + 1] then
        if oriDecomposition[#oriDecomposition - commonSufixLen + 1][2] + 8 ~= ymx then
            bottom = inttostring(ymx - oriDecomposition[#oriDecomposition - commonSufixLen + 1][2])
        end
        bottom = bottom .. oriDecomposition[#oriDecomposition - commonSufixLen + 1][1]
    else
        bottom = '_'
    end
    i = 1
    while i < #preDec and i <= #postDec and preDec[i][1] == postDec[i][1] and string.find('RL', preDec[i][1]) and (preDec[i][2] == postDec[i][2]) do
        i = i + 1
    end
    local no1bits, no0bits = string.gsub(bitsWithGliders, "1", ""), string.gsub(bitsWithGliders, "0", "")
    if string.sub(no1bits, 1, 1) == "(" and string.sub(no1bits, -1, -1) == ")" then
        no1bits = ""
    end
    if string.sub(no0bits, 1, 1) == "(" and string.sub(no0bits, -1, -1) == ")" then
        no1bits = ""
    end
    if no1bits == "" then
        while i < #preDec and i <= #postDec and preDec[i][1] == postDec[i][1] and preDec[i][1] == 'S' and (preDec[i][2] == postDec[i][2]) do
            i = i + 1
        end
    end
    if no0bits == "" then
        while i < #preDec and i <= #postDec and preDec[i][1] == postDec[i][1] and preDec[i][1] == 'I' and (preDec[i][2] == postDec[i][2]) do
            i = i + 1
        end
    end

    local move = decompositionToString(preDec, i) .. shiftedGliderBits(bitsWithGliders, -ymx) .. decompositionToString(postDec, i)
    if debug then
        g.note('ori' .. decompositionToString(oriDecomposition) ..
                '\nnew' .. decompositionToString(decomposition) ..
                '\npre' .. decompositionToString(preDec) ..
                '\npost' .. decompositionToString(postDec) ..
                '\nbottom' .. bottom ..
                '\nmove' .. move)
    end
    if expectedMoveToWrite then
        if debug then
            g.note("Expected " .. expectedMoveToWrite .. " got " .. move)
        end
        if translatedMoveToWrite ~= nil then
            if debug then
                g.note("transatedMoveToWrite:" .. translatedMoveToWrite .. " move:" .. move)
            end
            if move == expectedMoveToWrite then
                move = translatedMoveToWrite
            end
        elseif expectedMoveWritten == nil or expectedMoveWritten then
            expectedMoveWritten = move == expectedMoveToWrite
            debug = oriDebug
            return
        end
    end
    if debug then
        g.note("moves[" .. move .. "].push('" .. bottom .. "')")
    end
    if not moves[move] then
        writeLog(move)
        moves[move] = { '', { bottom } }
    else
        for i = 1, #moves[move] do
            if moves[move][2][i] == bottom then
                debug = oriDebug
                return
            end
        end
        moves[move][2][1 + #moves[move][1]] = bottom
    end
    debug = oriDebug
end

local function testSeparated(pattern, postNoGliderPattern, gliderPattern, firstBit)
    local secondBit = 1 - firstBit
    g.new("play12Sequence");
    g.select({ 279, -272, 1, 1 })
    g.putcells(pattern)
    putHadron(inttostring(firstBit), 0)
    putHadron(inttostring(secondBit), 4096)
    g.setbase(2)
    g.setstep(15)
    if debug then
        g.fit();
        g.note("test separated pre step")
    end
    g.step()
    if debug then
        g.fit()
        g.note("test separated post step")
    end
    g.putcells(postNoGliderPattern, 0, 0, 1, 0, 0, 1, "xor")
    local popXor = 0 + g.getpop()
    if gliderPattern then
        return popXor == 5
    else
        return popXor == 0
    end
end

local evt
local function bitStep(pattern, bit, extrabit, orig)
    local isOK, gliderPattern, postPattern, postNoGliderPattern
    --writeLog("bitStep(pattern,"..bit..","..(extrabit or '')..")")
    evt = g.getevent()
    if evt:find("key d none") == 1 then
        debug = not debug
        g.note('debug set to ' .. (debug and "true" or "false"))
    else
        g.doevent(evt)
    end
    if extrabit then
        g.autoupdate(debug)
        g.setlayer(0)
    end
    g.new("play12Sequence");
    g.select({ 279, -272, 1, 1 })
    g.putcells(pattern)
    if 0 + bit ~= 0 then
        putHadron('1', 0)
    end
    if 0 + bit ~= 1 then
        putHadron('0', 0)
    end
    g.setbase(2)
    g.setstep(14)
    if debug then
        g.fit();
        g.note("bitStep(" .. bit .. "," .. type(extrabit) .. " " .. (extrabit or '') .. ") pre step")
    end
    g.step()
    if debug then
        g.fit();
        g.note("bitStep(" .. bit .. "," .. type(extrabit) .. " " .. (extrabit or '') .. ") post step")
    end
    postPattern = g.getcells(g.getrect())
    if extrabit then
        if debug then
            g.note("extrabit setaration test")
        end
        g.setlayer(1)
        g.new("play12Sequence");
        g.select({ 279, -272, 1, 1 })
        g.putcells(pattern)
        if extrabit == "0" then
            putHadron('1', 0)
        end
        if extrabit == "1" then
            putHadron('0', 0)
        end
        g.setbase(2)
        g.setstep(14)
        if debug then
            g.fit();
            g.note("bitStep separated, first glider) pre step")
        end
        g.step()
        if debug then
            g.fit();
            g.note("bitStep separated, first glider) post step")
        end
        local midPattern = g.getcells(g.getrect())
        g.fit()
        if debug then
            g.note("midPattern")
        end
        isOK, gliderPattern = isSmallAtMost1g(midPattern)
        if not isOK then
            g.fit()
            if debug then
                g.note("bad midPattern")
            end
            return false
        end
        g.putcells(midPattern)
        if gliderPattern then
            --g.note("glider "..bitsWithGliders)
            g.putcells(gliderPattern, 0, 0, 1, 0, 0, 1, "xor")
            g.fit()
            if debug then
                g.note("glider removed")
            end
        end
        local midNoGliderPattern = g.getcells(g.getrect())
        if extrabit == "0" then
            putHadron('0', 0)
        end
        if extrabit == "1" then
            putHadron('1', 0)
        end
        g.setbase(2)
        g.setstep(14)
        if debug then
            g.fit();
            g.note("bitStep separated, second glider) pre step")
        end
        g.step()
        if debug then
            g.fit();
            g.note("bitStep separated, second glider) post step")
        end
        local endPattern = g.getcells(g.getrect())
        g.fit()
        if debug then
            g.note("pattern with the extrabit")
        end
        g.putcells(postPattern, 0, 0, 1, 0, 0, 1, "xor")
        g.fit()
        if debug then
            g.note("xored with pattern obtained by nonseparated bit gliders")
        end
        if gliderPattern then
            --g.note("glider "..bitsWithGliders)
            g.putcells(gliderPattern, 0, 0, 1, 0, 0, 1, "xor")
            g.fit()
            if debug then
                g.note("xored with emitted glider should be empty if separation works")
            end
        end
        if g.getpop() + 0 ~= 0 then
            return false
        end
        return isOK, midNoGliderPattern, gliderPattern
    end
    isOK, gliderPattern = isSmallAtMost1g(postPattern, orig)
    if isOK then
        g.new("play12Sequence");
        g.select({ 279, -272, 1, 1 })
        if postPattern then
            g.putcells(postPattern)
        end
        if gliderPattern then
            --g.note("glider "..bitsWithGliders)
            g.putcells(gliderPattern, 0, 0, 1, 0, 0, 1, "xor")
        end
        postNoGliderPattern = g.getcells(g.getrect())
    end
    return isOK, postNoGliderPattern, gliderPattern
end

--local b = io.open("c:\\Golly\\Bits.txt","r")
--bits=''

local function DoBits(shortstackdescription)
    local oriBits, pattern, postNoGliderPattern, gliderPattern, name, isOK, maxPop, maxNonStackPop
    local oriDecompositions, decomposition, oriGliderName, ymxOffs
    local ssd = shortstackdescription
    local countSpaceBits, countBits = 0, 0
    bitsWithGliders = ''
    minxpy, maxxpy, maxPop, maxNonStackPop = 0, 0, 0, 0
    g.new("play12Sequence");
    g.select({ 279, -272, 1, 1 })
    ymxOffs = 0
    --writeLog("DoBits("..shortstackdescription..","..(extrabit or '')..")")
    while shortstackdescription ~= "" do
        local hId, pos
        hId = string.sub(shortstackdescription, 1, 1)
        if not putHadron(hId, ymxOffs // 2) then
            return
        end
        shortstackdescription = string.sub(shortstackdescription, 2)
        pos = string.find(shortstackdescription .. "H", "[SPDdBtThHIRL]")
        if pos == 1 then
            ymxOffs = ymxOffs - 8
        else
            ymxOffs = ymxOffs - string.sub(shortstackdescription, 1, pos - 1)
        end
        shortstackdescription = string.sub(shortstackdescription, pos)
    end
    pattern = g.getcells(g.getrect())
    if debug then
        g.fit();
        g.note("DoBits(" .. ssd .. "," .. bits)
        g.setbase(2)
        g.setstep(2)
        g.step()
        g.new("play12Sequence");
        g.select({ 279, -272, 1, 1 })
        g.putcells(pattern)
    end
    local prevBit = ""
    local isCheckPoint = false
    if skipSpaces > 0 then
        local saveExists = false
        local test = io.open(preSaveFileName, "r")
        if test then
            saveExists = true
            test:close()
        end
        if saveExists then
            g.open(preSaveFileName)
            pattern=g.getcells(g.getrect())
            countBits = prevBitCount
            skipping = true
        end
    end
    while bits ~= "" do
        showSufix = bits
        g.show(showPrefix .. " " .. showSufix)
        local bit = string.sub(bits, 1, 1)
        bits = string.sub(bits, 2)
        while bit ~= "1" and bit ~= "2" do
            if skipSpaces <= countSpaceBits and bit ~= prevBit then
                if bit == ' ' then
                    showing = true
                    debug = startDebugging <= countSpaceBits
                end
            end
            if bit == "E" then
                bits = "1111" .. bits
            elseif bit == "S" then
                bits = "111" .. bits
            elseif bit == "B" then
                bits = "11" .. bits
                --elseif bit == "P" then
                --:only before special sequences"
                --    bits = "1" .. bits
            elseif bit == " " and bit ~= prevBit then
                countSpaceBits = countSpaceBits + 1
                if skipSpaces == countSpaceBits and not skipping then
                    g.save(saveFileName,"mc")
                    writeLog("saving "..saveFileName.." countBits="..inttostring(countBits))
                end
                if prevSkipSpaces == countSpaceBits then
                    if skipping then
                        skipping=false
                    end
                end
                isCheckPoint = true
                showPrefix = inttostring(countSpaceBits) .. " " .. inttostring(countBits)
                g.show(showPrefix .. " " .. showSufix)
                if isOK then
                    writeLog(countSpaceBits .. ":" .. decompositionToString(decomposition))
                end
            end
            prevBit = bit
            if bits == "" then
                return
            end
            bit = string.sub(bits, 1, 1)
            bits = string.sub(bits, 2)
        end
        prevBit = bit
        if not skipping then
            g.setlayer(0)
            isOK, postNoGliderPattern, gliderPattern = bitStep(pattern, bit, nil, true)
            if isCheckPoint then
                if showing then
                    g.new("play12Sequence");
                    g.select({ 279, -272, 1, 1 })
                    g.putcells(postNoGliderPattern);
                    g.fit()
                    g.update()
                    showing=false;
                end
                local isOK, decomposition = isStackDecomposable(postNoGliderPattern)
                if isOK then
                    writeLog(countSpaceBits .. ":" .. decompositionToString(decomposition))
                else
                    writeLog(countSpaceBits .. ":not decomposable " .. (not decomposition and "" or decomposition))
                end
                isCheckPoint = false
            end
            debug = false
            countBits = 1 + countBits
            if not isOK then
                if debug then
                    g.note('ko isSmallAtMost1g')
                end
                writeLog('ko isSmallAtMost1g')
                return
            end
            g.new("play12Sequence");
            g.select({ 279, -272, 1, 1 })
            g.putcells(postNoGliderPattern);
            g.fit()
            isOK, decomposition = isStackDecomposable(postNoGliderPattern)
            g.new("play12Sequence");
            g.select({ 279, -272, 1, 1 })
            g.putcells(postNoGliderPattern)
            g.setpos(349, -272)
            g.setmag(2)
            if maxPop < pop then
                maxPop = pop
                if maxPop > maxPopLimit then
                    if debug then
                        g.note('maxPopLimit exceeded ' .. maxPop)
                    end
                    writeLog('maxPopLimit exceeded ' .. maxPop)
                    return
                end
            end
            if maxNonStackPop < nonStackPop then
                maxNonStackPop = nonStackPop
                if maxNonStackPop > maxNonStackPopLimit then
                    if debug then
                        g.note('NonStackPopLimit exceeded ' .. maxNonStackPop)
                    end
                    writeLog('NonStackPopLimit exceeded ' .. maxNonStackPop)
                    return
                end
            end
            if minxpy < minxpyLimit then
                if debug then
                    g.note('minxpyLimit exceeded ' .. minxpy)
                end
                writeLog('minxpyLimit exceeded ' .. minxpy)
                return
            end
            if maxxpy > maxxpyLimit then
                if debug then
                    g.note('maxxpyLimit exceeded ' .. maxxpy)
                end
                writeLog('maxxpyLimit exceeded ' .. maxxpy)
                return
            end
            pattern = postNoGliderPattern
        end
    end
end

local function allseq(start)
    local seqNo, pos, iniStack, saveBits
    for i = (not start and 1) or start, #allBits do
        --chosenI,chosenI do
        seqNo = i
        showPrefix = (inttostring(seqNo) .. "/" .. inttostring(#allBits))
        g.show(showPrefix .. " " .. showSufix)
        bits = allBits[seqNo]
        if string.sub(bits, 1, 1) == '[' then
            pos = string.find(bits, '%]')
            iniStack = string.sub(bits, 2, pos - 1)
            bits = string.sub(bits, pos + 1)
            pos = string.find(bits, '%[')
            bits = string.sub(bits, 1, pos - 1)
            pos = string.find(bits, '%(')
            while pos do
                bits = string.sub(bits, 1, pos - 1) .. string.sub(bits, string.find(bits, '%)') + 1)
                pos = string.find(bits, '%(')
            end
            --g.note("iniStack="..iniStack.." bits="..bits)
            saveBits = bits
            DoBits(iniStack);
            bits = saveBits
            -- DoBits(iniStack.."S");bits=saveBits
            -- DoBits(iniStack.."P");bits=saveBits
            -- DoBits(iniStack.."D");bits=saveBits
            -- DoBits(iniStack.."B");bits=saveBits
            -- DoBits(iniStack.."6d");bits=saveBits
            ---- DoBits(iniStack.."H");bits=saveBits -- spacing?
            ---- DoBits(iniStack.."T");bits=saveBits -- spacing?
        else
            DoBits('S');
            DoBits('SB');
            DoBits('SD');
            DoBits('SP');
            DoBits('SS');
            DoBits('HT');
            DoBits('I');
        end
        --  for j=3,6 do
        --    bits=allBits[seqNo]
        --    DoBits(3,j)
        --  end
    end
end

local function parseMove(moveConds)
    local preStack, postStack, conds, pos, move, extrabit, glider
    pos, conds = string.find(moveConds .. '{', '%{'), ""
    conds = string.sub(moveConds, pos + 1, string.find(moveConds .. '}', '%}') - 1)
    move = string.sub(moveConds, 1, pos - 1)
    pos = string.find(move, '%]')
    preStack = string.sub(move, 2, pos - 1)
    bits = string.sub(move, pos + 1)
    pos = string.find(bits, '%[')
    postStack = string.sub(bits, pos + 1, -2)
    bits = string.sub(bits, 1, pos - 1)
    glider, pos = '', string.find(bits, '%(')
    if pos then
        glider = inDelimiters(bits, '(', ')')
        bits = string.sub(bits, 1, pos - 1) .. string.sub(bits, string.find(bits, '%)') + 1)
    end
    extrabit = string.sub(postStack, 1, 1)
    if extrabit ~= "1" and extrabit ~= "0" then
        extrabit = nil
    end
    --g.note("pM type(extrabit):"..type(extrabit))
    return bits, move, conds, preStack, extrabit, postStack, glider
end

local function checkOddMovePrestack(iniStack)
    local ret, i = "", 1
    while i <= string.len(iniStack) do
        ret = ret .. string.sub(iniStack, i, i)
        local nextI = string.find(iniStack .. 'H', '[BDdPSHhTtI]', i + 1)
        local dist = string.sub(iniStack, i + 1, nextI - 1)
        if dist ~= "" and (0 + dist) % 2 == 1 then
            dist = inttostring(dist + 1)
        end
        ret = ret .. dist
        i = nextI
    end
    return ret
end

local function fileseq(filename, ignoreLineStartLen)
    local i = io.open(filename, "r")
    ignoreLineStartLen = ignoreLineStartLen or 4
    if not i then
        return
    end
    local inputLine, iniStack, saveBits, conds, cond, extrabit, postCondTable, move
    local moveLines, pos, pos2
    moveLines = ""
    while not pos2 do
        showPrefix = (filename .. ">" .. moveLines)
        g.show(showPrefix .. " " .. showSufix)
        inputLine = i:read()
        if not inputLine then
            break
        end
        pos2 = string.find(inputLine, '%-%-')
        if pos2 then
            inputLine = string.sub(inputLine, 1, pos2 - 1)
        end
        moveLines = moveLines .. " " .. inputLine
        pos = string.find(moveLines, '%]')
        pos2 = string.find(moveLines, '%]', pos + 1)
    end
    i:close()
    moveLines = string.sub(moveLines, 2)
    showPrefix = (filename .. ">" .. moveLines)
    g.show(showPrefix .. " " .. showSufix)
    saveBits, move, conds, iniStack, extrabit = parseMove(moveLines)
    --  g.note("saveBits:\n"..saveBits)
    --  g.note("move:\n"..move)
    --  g.note("conds:\n"..conds)
    --  g.note("iniStack:\n"..iniStack)
    --  g.note("iniStack:\n"..iniStack)
    showPrefix = ""--filename..">"..move.."\n"
    g.show(showPrefix .. " " .. showSufix)
    bits = saveBits;
    DoBits(iniStack) -- to check '_' condition
end

--debug=true;
g.autoupdate(false)
fileseq("c:\\Golly\\PlayBitSequence.txt") -- extension
--fileseq("c:\\Golly\\BlinkerBitSequences.txt",0) -- extension
--debugallowed=false;g.autoupdate(true)
--fileseq("c:\\Golly\\results.txt",0) -- extension
I surely have some incompatibility in decomposition of salvo to phase lines with composition of gliders by binary salvos.
Again the 2nd reflector is phased off by 4 :(. ... Oh I have to take as the "phase" base the method used to define phases in Emission recipes ... .
I think it is OK mod 2, the problem is on next "bit". Let us hope the bottom schema would not be affected much as it was almost all at the same mod 8 y-x line what sugested easy planning.

OK...I have good phase for "even lines" and 4 shifted for "odd lines". Let us look what it does with the bottom positioning ...

Code: Select all

(block_right_r)[-2508]
<4>
(g1%8)[-2518 2] 246
(g0%8)[-2511 1](g2%8)[-2511](g3%8)[-2511](g4%8)[-2511](g5%8)[-2511](g6%8)[-2511](g7%8)[-2511] 0246
(g0%8)[-2532 4](g2%8)[-2532](g6%8)[-2532] 0246
(g4%8)[-2551 1] 0246
(g4%8)[-1922 6]  246
(g4%8)[-1925 3](g6%8)[-1925] 0246
(g4%8)[-2162 6]  246
<4><0> (~-2300-2250)
(g1%8)[-2192 6] 02 6
(g0%8)[-2185 7] 024
(g4%8)[-2105 7] 0246
(g3%8)[-2100 4](g4%8)[-2100] 0246
(g1%8)[-2071 1] 0 46
(g0%8)[-2013 3] 0 46
(g1%8)[-1802 6] 02 6
(g0%8)[-1882 6] 02 6
(g1%8)[-1884 4] 024
(g0%8)[-1795 5](g2%8)[-1795](g3%8)[-1795](g4%8)[-1795](g5%8)[-1795](g6%8)[-1795](g7%8)[-1795] 0246
(g3%8)[-1843 5] 02 6
(g3%8)[-1964 4] 0246
(g3%8)[-1981 3] 024
(g7%8)[-1844 4] 0 4
(g2%8)[-1769 7] 0246
(g3%8)[-1859 5] 02 6
(g5%8)[-2019 5] 0 46
(g5%8)[-1988 2] 024
(g4%8)[-1931 5] 0246
(g2%8)[-2003 5](g4%8)[-2003](g6%8)[-2003] 0246
<4>
(g3%8)[-2439 1]  246
(g0%8)[-2601 7] 024
(g7%8)[-2577 7] 0246
(g7%8)[-2472 0] 0 4
(g6%8)[-2436 4] 0 46
(g3%8)[-2420 4] 0246
(g3%8)[-2380 4] 0246
(g1%8)[-2370 6](g3%8)[-2370] 0246
(g3%8)[-2461 3] 024
(g3%8)[-2488 0] 0246
(g3%8)[-2509 3] 024
(g0%8)[-2404 4] 024
(g2%8)[-2294 2] 0246
(g7%8)[-2453 3] 0246
<4>(<0>) (~-2501)
(g4%8)[-2504 0] 024
(g4%8)[-2393 7] 0246
(g6%8)[-2475 5] 02 6
(g0%8)[-2476 4](g4%8)[-2476](g6%8)[-2476] 0246
(g0%8)[-2492 4] 024
(g5%8)[-2501 3] 02 6
(g2%8)[-1847 1] 0246
(g1%8)[-1868 4] 024
(g7%8)[-1924 4] 0 4
(g4%8)[-1991 1] 0246
(g1%8)[-2007 1] 0 46
(g2%8)[-2102 2] 0246
(g6%8)[-2093 3] 024
(g0%8)[-2052 4] 024
T*<(3 jumps)>
<3 jumps>
(g3%8)[-1720 0] 0246
BTW, I have corrected another bug dealing with SP. ... and corrected the correction. And this is still not the correct version ...

Code: Select all

-- This module is loaded if a script calls require "StackChangeCost".

local g = golly()
local moveCondsFileName = "c:\\Golly\\Lua\\StackChangeCost\\CondBitSequences.txt"
local m = {}
m.log = io.open("c:\\Golly\\Lua\\StackChangeCost\\log.txt", "w")
m.logLevel = 1
m.searchStartTime = g.millisecs()

function m.inttostring(num)
    return string.sub(num, 1, string.find(num .. ".", "%.") - 1)
end

function m.writeLog(msg, level)
    local time = g.millisecs()
    if m.log and ((not level and m.logLevel <= 0) or (level and level >= m.logLevel)) then
        m.log:write(string.sub("        " .. m.inttostring(time - m.searchStartTime), -8) .. "ms " .. msg .. "\n")
    end
end

local function packSixplicates(hashedString)
    --g.show("packing "..hashedString)
    local ret=''
    while (string.len(hashedString)>0) do
        local chr=string.sub(hashedString,1,1)
        local cnt=1
        if string.find(chr,'[SBD#]') then
            while (string.sub(hashedString,cnt+1, cnt+1)==chr) do
                cnt=cnt+1
            end
        end
        if (cnt>5) then
            ret=ret.."("..chr.."^"..m.inttostring(cnt)..")"
        else
            for i=1,cnt do
                ret=ret..chr
            end
        end
        hashedString=string.sub(hashedString,cnt+1)
    end
    return ret
end

m.tries = {};--addressed by hadron.id (by top hadron on the stack)
m.trieNodeCount = 11
local hadrons = { 'B', 'D', 'd', 'S', 'P', 'T', 't', 'I', 'H', 'h', '0' } -- L,R,1,2 not here
for i = 1, #hadrons do
    m.tries[hadrons[i]] = {}
end

function m.inDelimiters(name, leftDelimiter, rightDelimiter)
    return string.match(name, '%' .. leftDelimiter .. '(.-)%' .. rightDelimiter)
end

function m.parseMove(moveConds)
    m.writeLog("parseMove(" .. moveConds .. ")", -2)
    local function split(str, delim)
        local ret, l, p = {}, 1, nil
        str = str or ''
        while l <= 1 + string.len(str) do
            p = string.find(str .. delim, '%' .. delim, l)
            ret[1 + #ret], l = string.sub(str, l, p - 1), p + 1
        end
        return ret
    end

    local preStack, postStack, conds, pos, bits, move, glider
    pos, conds = string.find(moveConds .. '{', '%{'), ""
    conds = string.sub(moveConds, pos + 1, string.find(moveConds .. '}', '%}') - 1)
    conds = split(conds, ':')
    conds[2] = split(conds[2], ',')
    move = string.sub(moveConds, 1, pos - 1)
    pos = string.find(move, '%]')
    preStack = string.sub(move, 2, pos - 1)
    bits = string.sub(move, pos + 1)
    pos = string.find(bits, '%[')
    postStack = string.sub(bits, pos + 1, -2)
    bits = string.sub(bits, 1, pos - 1)
    glider, pos = '', string.find(bits, '%(')
    if pos then
        glider = m.inDelimiters(bits, '(', ')')
        bits = string.sub(bits, 1, pos - 1) .. string.sub(bits, string.find(bits, '%)') + 1)
    end
    return bits, move, conds, preStack, postStack, glider
end

function m.conditionsToString(conditions)
    local postConitions, ret
    if #conditions == 0 then
        g.note("no conditions?")
        return "{:}"
    end
    if #conditions < 2 then
        ret = "{:"
    else
        ret = "{" .. conditions[1] .. ":"
    end
    ret = ret .. conditions[#conditions][1]
    for j = 2, #conditions[#conditions] do
        ret = ret .. "," .. conditions[#conditions][j]
    end
    ret = ret .. "}"
    return ret
end

local function noEmissionTrieInsert(moveConds)
    local bits, move, conds, preStack, postStack, glider = m.parseMove(moveConds)
    m.writeLog('noEmissionTrieInsert(' .. moveConds .. ') ', -1)
    if glider ~= "" then
        --emission
        return
    end
    if string.find(postStack, '[LR]') then
        --emission
        return
    end
    -- actually we do not need stack bottom repositioning sequences, but it is hard to eliminate them
    -- it was eliminated by preprocessing of stack sequences -:)

    local preStackLen, bitLen = string.len(preStack), string.len(bits)
    local node, nextNode, info, nextInfo = m.tries[string.sub(conds[1], 1, 1)], m.tries[string.sub(preStack, 1, 1)], string.sub(conds[1], 1, 1), string.sub(preStack, 1, 1)
    if conds[1] == "" then
        node, nextNode, info, nextInfo = nextNode, nil, nextInfo, nil
    end
    while node do
        m.writeLog("  inserting into trie " .. info, -2)
        for i = 1, string.len(bits) do
            local j = string.sub(bits, i, i)
            if not string.find('012', j) or ((i > 1) and j == "0") then
                m.writeLog("noEmissionTrieInsert wrong character bits " .. bits .. " at position " .. i .. " " .. string.sub(bits, i, i), 10)
            end
            if not node.minPreStackLen or node.minPreStackLen > preStackLen then
                node.minPreStackLen = preStackLen --prevents following the branch in nextOutGoingEdge
            end
            if not node.minBitLen or node.minBitLen > bitLen then
                node.minBitLen = bitLen --planned to prevent following the branch in nextOutGoingEdge but cost lowerbound is more effective
            end
            j = j + 0
            if j == 0 then
                node, nextNode, info, nextInfo = m.tries['0'], nil, '0', nil -- exception simplifying 0# processing
            else
                if node[j] == nil then
                    node[j], m.trieNodeCount = {}, m.trieNodeCount + 1
                end
                node = node[j]
            end
        end
        if not node.minPreStackLen or node.minPreStackLen > preStackLen then
            node.minPreStackLen = preStackLen
        end
        if not node.minBitLen or node.minBitLen > bitLen then
            node.minBitLen = bitLen
        end
        if not node.moveConds then
            node.moveConds = {}
        end
        node.moveConds[#node.moveConds + 1] = moveConds
        node, nextNode, info, nextInfo = nextNode, nil, nextInfo, nil
        conds[1] = "";
        moveConds = move .. m.conditionsToString(conds) -- to speedup matching the above need not be checked
    end
    return true
end

local function iniTrie()
    m.writeLog('InitTrie()')
    local h = io.open(moveCondsFileName, "r")
    --local o=io.open(moveCondsFileName2,"w") -- used to prefilter general conditioned sequence file
    local moveCondsLine = h:read()
    while moveCondsLine do
        if noEmissionTrieInsert(string.sub(moveCondsLine, 5)) then
            --o:write(moveCondsLine.."\n")
        end
        moveCondsLine = h:read()
    end
    h:close()
    --o:close()
end

iniTrie()

function m.easyChangeStackCost(preStack, postStack)
    -- let us try to slowly extend this to all required cases (postStacks corresponding to all emission tabulated preStacks, condition for preStacks not known yet)
    m.writeLog("easyChangeStackCost(" .. packSixplicates(preStack) .. "," .. packSixplicates(postStack) .. ")")
    local cost, tmp = 0
    m.easyChangeStackCostErr = preStack .. ">" .. postStack
    if preStack == postStack then
        return cost
    end
    if postStack == '' then
        if string.sub(preStack, -4) == "BDBD" then
            m.writeLog("easyChangeStackCost [..BDBD]>[]")
            local fail = string.sub(preStack, 1, 1) ~= "B"
            for i = 2, string.len(preStack) - 4 do
                if string.sub(preStack, i, i) ~= 'D' then
                    m.writeLog("easyChangeStackCost [BD*BDBD]>[] failed at " .. i)
                    fail = true
                    break
                end
            end
            if fail then
                m.easyChangeStackCostErr = "Reducig stack implemented only for exceptions " .. m.easyChangeStackCostErr
                return
            end
            m.writeLog("easyChangeStackCost [BD*BDBD]>[] exception detected", 2)
            cost = 2 * (string.len(preStack) - 5)
            cost = (cost < 0) and 0 or cost
            return cost + 5 -- ->(+1) [SDBD] ->(+1) [P6d6DBD]->(+1) [B6D6DBD] -> (+2) []
        end
    elseif string.len(postStack) == 1 and string.len(preStack) > 1 then
        m.writeLog("easyChangeStackCost [BD*]>[#+1]")
        tmp = string.find('PBS', postStack) or string.find('PB1', postStack)
        if tmp then
            local fail = string.sub(preStack, 1, 1) ~= "B"
            for i = 2, string.len(preStack) do
                if string.sub(preStack, i, i) ~= 'D' then
                    m.writeLog("easyChangeStackCost [BD*]>[#+1] failed at " .. i)
                    fail = true
                    break
                end
            end
            if not fail then
                m.writeLog("easyChangeStackCost [BD*]>[#+1] exception detected", 2)
                return 2 * (string.len(preStack) - 1) + tmp - 2
            end
        end
    end
    tmp = string.find("DPBS", string.sub(preStack, -1)) or string.find("#", string.sub(preStack, -1))
    if not tmp then
        m.easyChangeStackCostErr = "Stack should have #DPBS on bottom! " .. m.easyChangeStackCostErr
        return 1000000000
    end
    if preStack == '' then
        m.easyChangeStackCostErr = "preStack cannot be empty " .. m.easyChangeStackCostErr
        return
    end
    if string.len(preStack) > 2 then
        m.easyChangeStackCostErr = "Reducing stack implemented only for exceptions " .. m.easyChangeStackCostErr
        return
    end
    if string.len(postStack) < string.len(preStack) then
        m.easyChangeStackCostErr = "Shortening implemented only for exceptions " .. m.easyChangeStackCostErr
        return
    end
    if string.len(preStack) == 2 then
        cost = string.find("SBPD", string.sub(preStack, -1)) or string.find("SBP#", string.sub(preStack, -1))
        if not cost then
            m.easyChangeStackCostErr = "Only D,P,B,S,# on starting positions implemented " .. m.easyChangeStackCostErr
            return
        end
        tmp = string.find("SBPD", string.sub(postStack, -1)) or string.find("SBP#", string.sub(postStack, -1))
        if not tmp then
            m.easyChangeStackCostErr = "Only D,P,B,S,# at end of postStack when preStack.len==2 on starting positions implemented " .. m.easyChangeStackCostErr
            return
        end
        cost = cost - tmp
        if cost < 0 then
            m.easyChangeStackCostErr = "when preStack.len==2, end of postStack must be on D->P->B->S from end of preStack " .. m.easyChangeStackCostErr
            return
        end
        if tmp == 3 then
            if string.sub(postStack, -2, -2) ~= 'S' or cost == 0 then
                m.easyChangeStackCostErr = "implemented P only as a part of SP at end of postStack when preStack.len==2 and prestack does not end on P" .. m.easyChangeStackCostErr
                return
            end -- SP->XSP ???
        end
        preStack = string.sub(preStack, 1, -2)
        postStack = string.sub(postStack, 1, -2)
    end
    tmp = string.find("SBPD", preStack) or string.find("SBP#", preStack)
    if not tmp then
        m.easyChangeStackCostErr = "Only D,P,B,S,# starting positions implemented " .. m.easyChangeStackCostErr
        return
    end
    if string.len(postStack) == 1 then
        if cost > 0 then
            if postStack ~= "S" then
                m.easyChangeStackCostErr = "when preStack.len==2, postStack.len==2 last item differ, implemented only for postStack starting S ("..preStack..">"..postStack..") ".. m.easyChangeStackCostErr
                return
            end
        else
            cost = tmp
            tmp = string.find("SBPD", postStack) or string.find("SBP#", postStack)
            if not tmp then
                m.easyChangeStackCostErr = "when preStack.len==postStack.len<=2 where only first item differs implemented only for postStack starting B,S,P,D " .. m.easyChangeStackCostErr
                return
            end
            cost = cost - tmp
            if cost < 0 then
                m.easyChangeStackCostErr = "not implemented for short stacks where shift not consistent with D->P->B->S " .. m.easyChangeStackCostErr
                return
            end
            return cost
        end
    end
    cost = cost + tmp - 1
    tmp = string.find("PBS", string.sub(postStack, 1, 1))
    if string.sub(postStack, 2, 4) == "6d6" then
        if not tmp then
            m.easyChangeStackCostErr = "Only P,B,S predecessors of 6d6 implemented " .. m.easyChangeStackCostErr
            return
        end
        cost = cost + tmp
        postStack = string.sub(postStack, 5)
    elseif tmp then
        cost = cost + tmp - 3
        if string.sub(postStack, 1, 2) == "SP" then
            --P allowed here
            cost = cost + 7
            postStack = string.sub(postStack, 3)
            tmp = 2
        elseif string.sub(postStack, 2, 2) == 'D' or tmp == 3 then
            postStack = string.sub(postStack, 2)
        else
            m.easyChangeStackCostErr = "After P or B start must be either 6d or D, other costs not implemented " .. m.easyChangeStackCostErr .. "\n" .. postStack
            -- additional cost 22 (a) ->S, changing 2nd -> (+6) SD (+3-a) back to desired (+13) removal of leading S
            -- additional cost +22 does not work for P as SP->P6d6P is not possible
            return
        end
    elseif string.sub(postStack, 1, 2) == "T6" then
        cost = cost + 21 -- is (3)S6d6->(+2)H6T6->(+8)H6T18T6->(+7)I16T6->(+1)T6 optimal (at least in our current moveset)
        postStack = string.sub(postStack, 3)
    else
        m.easyChangeStackCostErr = "Only P,B,S and T6 starts implemented " .. m.easyChangeStackCostErr
        return
    end
    if tmp then
        tmp = 1 + tmp --compatibility
    end
    for i = 1, string.len(postStack) do
        if tmp == 4 then
            --P allowed after S (maintained as D and incremented after next S created)
            tmp = string.find("DPBS", string.sub(postStack, i, i)) or string.find("#", string.sub(postStack, i, i))
        else
            tmp = string.find("DDBS", string.sub(postStack, i, i)) or string.find("#", string.sub(postStack, i, i))
        end
        if tmp then
            cost = cost + 5 + tmp
        else
            m.easyChangeStackCostErr = "Only D,B,S,SP,# inner items implemented yet (" .. i .. ")=" .. string.sub(postStack, i, i) .. " " .. m.easyChangeStackCostErr
            return
        end
    end
    return cost
end

function m.easyChangeStackCostLowerBound(preStack, postStack)
    -- let us try to slowly extend this to all required cases (postStacks corresponding to all emission tabulated preStacks, condition for preStacks not known yet)
    m.writeLog("easyChangeStackCostLowerBound(" .. packSixplicates(preStack) .. "," .. packSixplicates(postStack) .. ")")
    -- called only for preStack=='D'
    local cost, tmp = 0
    m.easyChangeStackCostLowerBoundErr = packSixplicates(preStack) .. ">" .. packSixplicates(postStack)
    if preStack == postStack then
        return cost
    end
    if string.len(preStack) > 2 then
        m.easyChangeStackCostLowerBoundErr = "Reducing stack implemented only for exceptions " .. m.easyChangeStackCostLowerBoundErr
        return
    end
    if string.len(postStack) < string.len(preStack) then
        m.easyChangeStackCostLowerBoundErr = "Shortening implemented only for exceptions " .. m.easyChangeStackCostLowerBoundErr
        return
    end
    if string.len(preStack) == 2 then
        cost = string.find("SBPD", string.sub(preStack, -1)) or string.find("SBP#", string.sub(preStack, -1))
        if not cost then
            m.easyChangeStackCostLowerBoundErr = "Only D,P,B,S,# on starting positions implemented " .. m.easyChangeStackCostLowerBoundErr
            return
        end
        tmp = string.find("SBPD", string.sub(postStack, -1)) or string.find("SBP#", string.sub(postStack, -1))
        if not tmp then
            m.easyChangeStackCostLowerBoundErr = "Only D,B,S,# at end of postStack when preStack.len==2 on starting positions implemented " .. m.easyChangeStackCostLowerBoundErr
            return
        end
        cost = cost - tmp
        if cost < 0 then
            m.easyChangeStackCostLowerBoundErr = "when preStack.len==2, end of postStack must be on D->P->B->S from end of preStack " .. m.easyChangeStackCostLowerBoundErr
            return
        end
        preStack = string.sub(preStack, 1, -2)
        postStack = string.sub(postStack, 1, -2)
    end
    tmp = string.find("SBPD", preStack) or string.find("SBP#", preStack)
    if not tmp then
        m.easyChangeStackCostLowerBoundErr = "Only D,P,B,S,# starting positions implemented " .. m.easyChangeStackCostLowerBoundErr
        return
    end
    if string.len(postStack) == 1 then
        if cost > 0 then
            if postStack ~= "S" then
                m.easyChangeStackCostLowerBoundErr = "when preStack.len==2, postStack.len==2 last item differ, implemented only for postStack starting S ("..preStack..">"..postStack..") " .. m.easyChangeStackCostLowerBoundErr
                return
            end
        else
            cost = tmp
            tmp = string.find("SBPD", postStack) or string.find("SBP#", postStack)
            if not tmp then
                m.easyChangeStackCostLowerBoundErr = "when preStack.len==postStack.len<=2 where only first item differs implemented only for postStack starting B,S,P,D " .. m.easyChangeStackCostLowerBoundErr
                return
            end
            cost = cost - tmp
            if cost < 0 then
                m.easyChangeStackCostLowerBoundErr = "not implemented for short stacks where shift not consistent with D->P->B->S " .. m.easyChangeStackCostLowerBoundErr
                return
            end
            return cost
        end
    end
    cost = cost + tmp - 1
    tmp = string.find("PBS", string.sub(postStack, 1, 1))
    if string.sub(postStack, 2, 4) == "6d6" then
        if not tmp then
            m.easyChangeStackCostLowerBoundErr = "Only P,B,S predecessors of 6d6 implemented " .. m.easyChangeStackCostLowerBoundErr
            return
        end
        cost = cost + tmp
        postStack = string.sub(postStack, 5)
    elseif tmp then
        cost = cost + tmp - 3
        if string.sub(postStack, 1, 2) == "SP" then
            --P allowed here
            cost = cost + 7
            postStack = string.sub(postStack, 3)
        elseif string.sub(postStack, 2, 2) == 'D' or tmp == 3 then
            postStack = string.sub(postStack, 2)
        else
            m.easyChangeStackCostLowerBoundErr = "After P or B start must be either 6d or D, other costs not implemented " .. m.easyChangeStackCostLowerBoundErr .. "\n" .. postStack
            -- additional cost 22 (a) ->S, changing 2nd -> (+6) SD (+3-a) back to desired (+13) removal of leading S
            -- additional cost +22 does not work for P as SP->P6d6P is not possible
            return
        end
    elseif string.sub(postStack, 1, 2) == "T6" then
        cost = cost + 21 -- is (3)S6d6->(+2)H6T6->(+8)H6T18T6->(+7)I16T6->(+1)T6 optimal (at least in our current moveset)
        postStack = string.sub(postStack, 3)
    else
        m.easyChangeStackCostLowerBoundErr = "Only P,B,S and T6 starts implemented " .. m.easyChangeStackCostLowerBoundErr
        return
    end
    for i = 1, string.len(postStack) do
        tmp = string.find("DPBS", string.sub(postStack, i, i)) or string.find("#", string.sub(postStack, i, i))
        if tmp then
            cost = cost + 5 + tmp
        else
            m.easyChangeStackCostLowerBoundErr = "Only D,B,P,S,# inner items implemented yet (" .. i .. ")=" .. string.sub(postStack, i, i) .. " " .. m.easyChangeStackCostLowerBoundErr
            return
        end
    end
    return cost
end

function m.triviCostLowerBound(postStack)
    if postStack == '' then
        return 0
    end
    local ret = m.easyChangeStackCostLowerBound('D', postStack)
    if ret then
        ret = (ret < 3) and 0 or ret - 3
    end
    return ret
end

function m.easyPreStackReductionLowerBound(preStack, postStack)
    --does not mind sending bit 1 at the end
    m.writeLog("easyPreStackReductionLowerBound(" .. packSixplicates(preStack) .. "," .. packSixplicates(postStack) .. ")")
    --postStack.len<2
    local baseStackLen = string.len(preStack)
    for i = 1, string.len(preStack) do
        if not string.find('#DPBS', string.sub(preStack, -i, -i)) then
            baseStackLen = i - 1
            break
        end
    end
    if baseStackLen > 0 then
        if string.sub(preStack, -baseStackLen - 1, -baseStackLen - 1) == "6" then
            local postCost
            if string.sub(preStack, -baseStackLen - 3, -baseStackLen - 1) == "6d6" then
                if baseStackLen >= 4 + string.len(postStack) and string.sub(preStack, -baseStackLen, -baseStackLen + 3) == "DBDS" then
                    postCost = 1 + ((baseStackLen == 4) and 0 or m.easyPreStackReductionLowerBound(string.sub(preStack, -baseStackLen + 4), postStack))
                end
                if baseStackLen >= 3 + string.len(postStack) and string.sub(preStack, -baseStackLen, -baseStackLen + 3) == "SPS" then
                    postCost = 1 + ((baseStackLen == 3) and 0 or m.easyPreStackReductionLowerBound(string.sub(preStack, -baseStackLen + 3), postStack))
                end
                if baseStackLen >= 3 + string.len(postStack) and string.sub(preStack, -baseStackLen, -baseStackLen + 3) == "DBD" then
                    postCost = 2 + ((baseStackLen == 3) and 0 or m.easyPreStackReductionLowerBound(string.sub(preStack, -baseStackLen + 3), postStack))
                end
                if postCost then
                    return m.easyPreStackReductionLowerBound(string.sub(preStack, 1, -baseStackLen - 4), 'B') + postCost
                end
                local preCost = m.easyPreStackReductionLowerBound(string.sub(preStack, 1, -baseStackLen - 4), 'S')
                return 1 + preCost + m.easyPreStackReductionLowerBound("PD" .. string.sub(preStack, -baseStackLen), postStack)
            end
            if baseStackLen >= 1 + string.len(postStack) and string.find('SD', string.sub(preStack, -baseStackLen, -baseStackLen)) then
                postCost = (baseStackLen == 1) and 0 or m.easyPreStackReductionLowerBound(string.sub(preStack, -baseStackLen + 1), postStack) -- '2' with extrabit program
            end
            if postCost then
                return m.easyPreStackReductionLowerBound(string.sub(preStack, 1, -baseStackLen - 2), 'B') + postCost
            end
        end
        local preCost = m.easyPreStackReductionLowerBound(string.sub(preStack, 1, -baseStackLen - 1), '')
        baseStackLen = baseStackLen - string.len(postStack)
        preCost = preCost + 3 * (baseStackLen // 5)
        baseStackLen = baseStackLen % 5
        return preCost + baseStackLen - ((baseStackLen == 4) and 1 or 0)
    end
    local nonBaseStackLen, nonDigits = string.len(preStack), 0
    for i = 1, string.len(preStack) do
        if string.find('#DPBS', string.sub(preStack, -i, -i)) then
            nonBaseStackLen = i - 1
            break
        end
        if string.find('HhTtId', string.sub(preStack, -i, -i)) then
            nonDigits = nonDigits + 1
        end
    end
    local preCost = 0
    if string.find('01', string.sub(preStack, 1, 1)) then
        nonDigits = nonDigits - 1
    end
    if nonBaseStackLen < string.len(preStack) then
        preCost = m.easyPreStackReductionLowerBound(string.sub(preStack, 1, -nonBaseStackLen - 1), '')
    end
    return preCost + nonDigits // 2
end

function m.easyChangeStackLowerBound(preStack, postStack)
    while string.len(preStack) > 2 and string.len(postStack) > 0 and string.sub(preStack, -1) == string.sub(postStack, -1)
            and string.find('#DPBS', string.sub(preStack, -2, -2)) do
        preStack, postStack = string.sub(preStack, 1, -2), string.sub(postStack, 1, -2)
    end
    local cost, tmp = 0
    tmp = string.find("DPBS", string.sub(preStack, -1)) or string.find("#", string.sub(preStack, -1))
    if not tmp then
        return 1000000003
    end
    while cost == 0 do
        m.writeLog("easyChangeStackLowerBound(" .. packSixplicates(preStack) .. "," .. packSixplicates(postStack) .. ") loop cost 0")
        if preStack == postStack then
            return 0
        end
        if postStack == "" then
            return m.easyPreStackReductionLowerBound(preStack, '')
        end
        if preStack == "" then
            return m.triviCostLowerBound(postStack)
        end
        cost = string.find("DPBS", string.sub(preStack, -1)) or string.find("#", string.sub(preStack, -1))
        if not cost then
            return m.triviCostLowerBound(postStack)
        end
        tmp = string.find("DPBS", string.sub(postStack, -1, -1))
        if string.sub(postStack, -1, -1) ~= '#' then
            if not tmp then
                return m.triviCostLowerBound(postStack)
            end
            cost = tmp - cost
        end
        if cost < 0 then
            return m.triviCostLowerBound(postStack)
        end
        postStack, preStack = string.sub(postStack, 1, -2), string.sub(preStack, 1, -2)
    end
    while string.sub(postStack, -1) == 'S' do
        m.writeLog("easyChangeStackLowerBound(" .. packSixplicates(preStack) .. "," .. packSixplicates(postStack) .. ") loop cost " .. cost)
        if preStack == "" then
            tmp = m.triviCostLowerBound(postStack)
            if tmp then
                tmp = tmp + cost
            end
            return tmp
        end
        tmp = string.find("SBPD", string.sub(preStack, -1, -1)) or string.find("#", string.sub(preStack, -1, -1))
        if not tmp then
            tmp = m.triviCostLowerBound(postStack)
            if tmp then
                tmp = tmp + cost
            end
            return tmp
        end
        cost = cost + tmp - 1
        postStack, preStack = string.sub(postStack, 1, -2), string.sub(preStack, 1, -2)
    end
    if postStack == "" then
        return cost + m.easyPreStackReductionLowerBound(preStack, '') - 1 --the extrabit could be usefull
    end
    tmp = m.easyChangeStackCost('S', postStack)
    if tmp then
        return m.easyPreStackReductionLowerBound(preStack, 'S') - 1 + tmp + cost
    else
        return
    end
end

function m.ignoreSuffixChangeStackCost(preStack, postStack)
    --calls Easy changeStackCost when reduced to easy case
    while string.len(preStack) > 2 and string.len(postStack) > 0 and string.sub(preStack, -1) == string.sub(postStack, -1)
            and string.find('#DPBS', string.sub(preStack, -2, -2)) do
        preStack, postStack = string.sub(preStack, 1, -2), string.sub(postStack, 1, -2)
    end
    local ret, est = m.easyChangeStackCost(preStack, postStack), m.easyChangeStackLowerBound(preStack, postStack)
    if est then
        -- safety correction for D->S payment when D is actually destroyed
        est = est - 3
        if est < 1 then
            est = 1
            if preStack == postStack then
                est = 0
            end
        end
    else
        est=1
    end
    if ret then
        m.writeLog("ignoreSuffixChangeStackCost(" .. packSixplicates(preStack) .. "," .. packSixplicates(postStack) .. ")=" .. ret .. "," .. est, 1)
    elseif est then
        m.writeLog("ignoreSuffixChangeStackCost(" .. packSixplicates(preStack) .. "," .. packSixplicates(postStack) .. ")=nil," .. est, 1)
    end
    return ret, est
end

function m.getEasyTBits(preStack, postStack)
    --was earlier evaluated as ignoreSuffixChangeStackCost"easy"
    m.writeLog("getEasyTBits(" .. packSixplicates(preStack) .. "," .. packSixplicates(postStack) .. ")",1)
    while string.len(preStack) > 2 and string.len(postStack) > 0 and string.sub(preStack, -1) == string.sub(postStack, -1)
            and string.find('#DPBS', string.sub(preStack, -2, -2)) do
        preStack, postStack = string.sub(preStack, 1, -2), string.sub(postStack, 1, -2)
        m.writeLog("getEasyTBits shortening stacks (" .. packSixplicates(preStack) .. "," .. packSixplicates(postStack) .. ")", -1)
    end
    m.writeLog("getEasyTBits easy(" .. packSixplicates(preStack) .. "," .. packSixplicates(postStack) .. ")")
    if preStack == postStack then
        return ''
    end
    local errExt = '[' .. packSixplicates(preStack) .. ']>[' .. packSixplicates(postStack) .. ']'
    if postStack == '' then
        if string.sub(preStack, -4) == "BDBD" then
            m.writeLog("getEasyTBits easy [..BDBD]>[]")
            local fail = string.sub(preStack, 1, 1) ~= "B"
            for i = 2, string.len(preStack) - 4 do
                if string.sub(preStack, i, i) ~= 'D' then
                    m.writeLog("getEasyTBits easy [BD*BDBD]>[] failed at " .. i)
                    fail = true
                    break
                end
            end
            if fail then
                m.writeLog('(fail .. Reducig stack implemented only for exceptions ' .. errExt .. ')', 2)
                return '(fail .. Reducig stack implemented only for exceptions ' .. errExt .. ')'
            end
            m.writeLog("getEasyTBits easy  [BD*BDBD]>[] exception detected", 2)
            local ret = ''
            for i = 2, string.len(preStack) - 4 do
                ret = ret .. '21'
            end --[BBDBD] or [BDBD]
            if string.len(preStack) == 4 then
                ret = '1' -- = ret..'1' [BDBD]->[SDBD]
            else
                ret = ret .. '2' -- [BBDBD]->[SDBD]
            end
            return ret + '2121' -- [SDBD] ->(+1) [P6d6DBD]->(+1) [B6D6DBD] -> (+2) []
        end
    elseif string.len(postStack) == 1 and string.len(preStack) > 1 then
        m.writeLog("getEasyTBits easy [BD*]>[#+1]")
        local tmp = string.find('PBS', postStack) or string.find('PB1', postStack)
        if tmp then
            local fail = string.sub(preStack, 1, 1) ~= "B"
            for i = 2, string.len(preStack) do
                if string.sub(preStack, i, i) ~= 'D' then
                    m.writeLog("getEasyTBits easy [BD*]>[#+1] failed at " .. i)
                    fail = true
                    break
                end
            end
            if not fail then
                m.writeLog("getEasyTBits easy [BD*]>[#+1] exception detected", 2)
                local ret = ''
                for i = 3, string.len(preStack) do
                    ret = ret .. '21'
                end --[BD]
                if postStack=='1' then
                    return ret..'212'
                else
                    return ret..string.sub('211',1,tmp)
                end
                return ret
            end
        end
    end
    local tmp = string.find("DPBS", string.sub(preStack, -1)) or string.find("#", string.sub(preStack, -1))
    if not tmp then
        m.writeLog('(fail preStack should have #DPBS on bottom! ' .. errExt .. ')', 2)
        return '(fail preStack should have #DPBS on bottom! ' .. errExt .. ')'
    end
    if preStack == '' then
        m.writeLog('(fail preStack cannot be empty ' .. errExt .. ')', 2)
        return '(fail preStack cannot be empty ' .. errExt .. ')'
    end
    if string.len(preStack) > 2 then
        m.writeLog('(fail Reducing stack implemented only for exceptions ' .. errExt .. ')', 2)
        return '(fail Reducing stack implemented only for exceptions ' .. errExt .. ')'
    end
    if string.len(postStack) < string.len(preStack) then
        m.writeLog('(fail Shortening implemented only for exceptions ' .. errExt .. ')', 2)
        return '(fail Shortening implemented only for exceptions ' .. errExt .. ')'
    end
    local ret = ''
    if string.len(preStack) == 2 then
        local cost = string.find("SBPD", string.sub(preStack, -1)) or string.find("SBP#", string.sub(preStack, -1))
        if not cost then
            m.writeLog('(fail Only D,P,B,S,# on starting positions implemented ' .. errExt .. ')', 2)
            return '(fail Only D,P,B,S,# on starting positions implemented ' .. errExt .. ')'
        end
        tmp = string.find("SBPD", string.sub(postStack, -1)) or string.find("SBP#", string.sub(postStack, -1))
        if not tmp then
            m.writeLog('(fail Only D,P,B,S,# at end of postStack when preStack.len==2 on starting positions implemented ' .. errExt .. ')', 2)
            return '(fail Only D,P,B,S,# at end of postStack when preStack.len==2 on starting positions implemented ' .. errExt .. ')'
        end
        if cost < tmp then
            m.writeLog('(fail when preStack.len==2, end of postStack must be on D->P->B->S from end of preStack ' .. errExt .. ')', 2)
            return '(fail when preStack.len==2, end of postStack must be on D->P->B->S from end of preStack ' .. errExt .. ')'
        end
        if tmp == 3 then
            if string.sub(postStack, -2, -2) ~= 'S' or cost == 0 then
                m.writeLog('(fail implemented P only as a part of SP at end of postStack when preStack.len==2 and prestack does not end on P ' .. errExt .. ')', 2)
                return '(fail implemented P only as a part of SP at end of postStack when preStack.len==2 and prestack does not end on P ' .. errExt .. ')'
            end -- SP->XSP ???
            postStack = string.sub(postStack, 1, -3) .. 'ED'
            m.writeLog('SP>ED', -2)
        end
        if cost == 4 and tmp ~= 4 then
            ret = ret .. string.sub(postStack, -1)
        else
            ret = ret .. string.sub('1111', tmp+1, cost)
            if string.sub(postStack, -1) == '#' then
                ret = ret .. '#'
            end
        end
        preStack = string.sub(preStack, 1, -2)
        postStack = string.sub(postStack, 1, -2)
        m.writeLog('ret so far '..ret, -2)
    end
    tmp = string.find("SBPD", preStack) or string.find("SBP#", preStack)
    if not tmp then
        m.writeLog('(fail Only D,P,B,S,# starting positions implemented ' .. errExt .. ')', 2)
        return '(fail Only D,P,B,S,# starting positions implemented ' .. errExt .. ')'
    end
    if string.len(postStack) == 1 then
        if ret ~= '' then
            local e=string.find("SE",postStack)
            if not e then
                m.writeLog('(fail when preStack.len==2, postStack.len==2 last item differ, implemented only for postStack starting S ('..preStack..">"..postStack..") " .. errExt .. ')', 2)
                return '(fail when preStack.len==2, postStack.len==2 last item differ, implemented only for postStack starting S ' .. errExt .. ')'
            else
                tmp = tmp+e-1
                ret=ret..string.sub('11111', 2, tmp)
                m.writeLog('e tmp ret '..e.." "..tmp.." "..ret, -2)
                return ret
            end
        else
            local cost = tmp + 1
            m.writeLog('A cost tmp ret '..cost.." "..tmp.." "..ret, -2)
            tmp = string.find("ESBPD", postStack) or string.find("ESBP#", postStack)
            if not tmp then
                m.writeLog('(fail when preStack.len==postStack.len<=2 where only first item differs implemented only for postStack starting B,S,P,D ' .. errExt .. ')', 2)
                return '(fail when preStack.len==postStack.len<=2 where only first item differs implemented only for postStack starting B,S,P,D ' .. errExt .. ')'
            end
            cost = cost - tmp
            if cost < 0 then
                m.writeLog('(fail not implemented for short stacks where shift not consistent with D->P->B->S ' .. errExt .. ')', 2)
                return '(fail not implemented for short stacks where shift not consistent with D->P->B->S ' .. errExt .. ')'
            end
            ret = ret .. string.sub('11111', tmp + 1, cost)
            m.writeLog('B cost tmp ret '..cost.." "..tmp.." "..ret, -2)
            if postStack == '#' then
                ret = ret .. '#'
            end --'#' will be templated by 1 so order among 1* does not mater
            return ret
        end
    end
    ret = string.sub('1111', 2, tmp) .. ret -->[S]..[S]->postStack portion remains
    m.writeLog("getEasyTBits " .. ret .. "..easy (S," .. packSixplicates(postStack) .. ")")
    tmp = string.find("PBS", string.sub(postStack, 1, 1))
    local endRet = ''
    if string.sub(postStack, 2, 4) == "6d6" then
        if not tmp then
            m.writeLog('(fail Only P,B,S predecessors of 6d6 implemented ' .. errExt .. ')', 2)
            return '(fail Only P,B,S predecessors of 6d6 implemented ' .. errExt .. ')'
        end
        if string.sub(postStack, 5, 5) == "P" then
            m.writeLog('(fail #6d6P* not implemented ' .. errExt .. ')', 2)
            return '(fail #6d6P* not implemented ' .. errExt .. ')'
        end
        endRet = string.sub('211', 1, tmp)
        postStack = 'S' .. string.sub(postStack, 5)
    elseif tmp then
        if not (string.sub(postStack, 2, 2) == 'D' or tmp == 3) then
            m.writeLog('(fail After P or B start must be either 6d or D, other cases not implemented ' .. errExt .. ')', 2)
            return '(fail After P or B start must be either 6d or D, other cases not implemented ' .. errExt .. ')'
        end
    elseif string.sub(postStack, 1, 2) == "T6" then
        local cost = string.find('PBSE', string.sub(postStack, 3, 3))
        if cost == 0 then
            m.writeLog('(fail T6P* not implemented ' .. errExt .. ')', 2)
            return '(fail T6P* not implemented ' .. errExt .. ')'
        end
        endRet = '211' .. '12' .. '11111112' .. '1112112' .. '' .. '1' --[S]{_,7D,7B,7S}->[S6d6]{_,3D,3B,3S}->[H6T6]->[H6T18T6]->[1T18T6]->[I16T6]->[T6]
        postStack = 'S' .. string.sub(postStack, 3)
    else
        m.writeLog('(fail Only P,B,S and T6 starts implemented ' .. errExt .. ')', 2)
        return '(fail Only P,B,S and T6 starts implemented ' .. errExt .. ')'
    end
    m.writeLog("getEasyTBits " .. ret .. "..easy (S," .. packSixplicates(postStack) .. ").." .. endRet)
    local template
    while string.len(postStack) > 1 do
        template = string.sub(postStack, -1)
        postStack = string.sub(postStack, 1, -2)
        local cost = string.find("DPBSE", template) or string.find("#", template)
        if cost then
            if cost == 2 then
                cost = 1
                if string.sub(postStack, -1) ~= 'S' then
                    m.writeLog('(fail P allowed only at start or after S ' .. errExt .. ')', 2)
                    return '(fail P allowed only at start or after S ' .. errExt .. ')'
                end
                template = 'D'
                postStack = string.sub(postStack, 1, -2) .. 'E'
            end
            --[[ret=ret..string.sub('2112111111',1,cost+5)
        if template=='#' then
          ret=ret.."#"
        end--]]
            ret = ret .. '211211' .. template
        else
            m.writeLog('(fail Only D,B,S,SP,# inner items implemented ' .. errExt .. ')', 2)
            return '(fail Only D,B,S,SP,# inner items implemented ' .. errExt .. ')'
        end
    end
    m.writeLog("getEasyTBits " .. ret .. "..easy (S," .. packSixplicates(postStack) .. ").." .. endRet)
    if postStack ~= 'S' then
        -- no bits to create S and convert template .. we know template =="D" -- tested
        -- (SP case become ED what is compatible)
        ret = string.sub(ret, 1, -4) --(-3-"template")
        local tmp = string.find('PBSE', postStack) --if template == 'D', it would work even for 'S' or 'E'
        ret = ret .. string.sub('1111', 2, tmp)
    end
    m.writeLog("getEasyTBits " .. ret .. endRet)
    return ret .. endRet
end

function m.templatingCost(startSubstedStack, numStartPreSubstStackTemplates)
    m.writeLog("templatingCost(startSubstedStack " .. packSixplicates(startSubstedStack or "nil") .. ",numStartPreSubstStackTemplates " .. packSixplicates(numStartPreSubstStackTemplates or "nil"))
    local ret, rem = 0, 0
    for i = 1, numStartPreSubstStackTemplates do
        local char, cost = string.sub(startSubstedStack, -i, -i)
        if char == '#' then
            rem = rem + 1
        else
            ret = ret + string.find('DPBS', char) - 1--there cannot be other options
        end
    end
    return ret, rem
end

m.results = {} --cache to gradually speed up
function m.changeStackCosts(startPreSubstStack, targetStack)

    local function searchChangeStackCosts(preEasyStack, targetStack)
        --returns table. when there are templates in postStack, the table contains prestacks compatible with the pattern and their costs
        --the prestacks are given as most general as possible,
        m.searchStartTime = g.millisecs()
        m.writeLog('searchChangeStackCosts(' .. packSixplicates(preEasyStack) .. "," .. packSixplicates(targetStack) .. ')', 3)
        local numStartPreSubstStackTemplates, bestCost = 0

        --local function bestCostUpdate(oriPreStack,cost,move) obsolete
        local function bestCostUpdate(cost, startSubstedStack, preEasyStack, preEasyBits)
            local tCost, tRem = m.templatingCost(startSubstedStack, numStartPreSubstStackTemplates)
            local sCost = cost + tCost
            if not bestCost then
                bestCost = { sCost, startSubstedStack, preEasyStack, tCost, preEasyBits }
                m.writeLog("Setting bestCost " .. packSixplicates(startSubstedStack) .. "(" .. cost .. ")->" .. sCost, 4)
            elseif bestCost[1] > sCost then
                m.writeLog("Decreasing bestCost " .. packSixplicates(startSubstedStack) .. "(" .. cost .. ")->" .. sCost, 4)
                bestCost = { sCost, startSubstedStack, preEasyStack, tCost, preEasyBits }
            elseif bestCost[1] == sCost then
                local oTCost, oTRem = m.templatingCost(bestCost[2], numStartPreSubstStackTemplates)
                if oTRem < tRem then
                    --just personal preferences
                    bestCost = { sCost, startSubstedStack, preEasyStack, tCost, preEasyBits }
                    m.writeLog("Updating bestCost " .. packSixplicates(startSubstedStack) .. "(" .. cost .. ")->" .. sCost, 4)
                end
            end
        end

        local function getBestCost(startSubstedStack)
            if not bestCost then
                return nil
            end
            local tCost = m.templatingCost(startSubstedStack, numStartPreSubstStackTemplates)
            return bestCost[1] - tCost
        end
        --
        bestCostUpdate(1000000000, preEasyStack, preEasyStack, '') --emergency returned value

        local cost = m.ignoreSuffixChangeStackCost(preEasyStack, targetStack)
        if cost then
            m.writeLog(' no search needed')
            bestCostUpdate(cost, preEasyStack, preEasyStack, '')
            return bestCost
        else
            m.writeLog(' search needed')
        end

        --conjecture ... D is cheaper # to both build and destroy so let us convert trailing # to D at the start.
        -- if we could access bottom under S*, we could with no additional cost convert D* to such S*
        --^ could be wrong in several cases. T6 requires S o be destroyable, wen we need to get rid of stack entirely
        -- BDBD at the end helps, but often we are happy eliminating the stack and emitting an extraBIt so DDDD is fine
        -- d6 requires DD
        -- exception ... precede P with S !!!
        local posRight -- will be the leftest template position matching postStack (indexed from bottom)
        local startSubstedStack = preEasyStack
        numStartPreSubstStackTemplates = string.len(startSubstedStack)
        for j = 1, string.len(startSubstedStack) do
            if string.sub(startSubstedStack, -j, -j) ~= '#' then
                numStartPreSubstStackTemplates = (j - 1)
                break
            elseif posRight then
                startSubstedStack = string.sub(startSubstedStack, 1, -j - 1) .. 'D' .. string.sub(startSubstedStack, -j + 1, j == 1 and 0 or -1)
            elseif j > string.len(targetStack) or not string.find('DBPS#', string.sub(targetStack, -j, -j)) then
                -- all P's in expected targets are either first or preceded by S
                posRight = j - 1
                startSubstedStack = string.sub(startSubstedStack, 1, -j - 1) .. 'D' .. string.sub(startSubstedStack, -j + 1, j == 1 and 0 or -1)
            elseif string.sub(targetStack, -j, -j) ~= '#' then
                startSubstedStack = string.sub(startSubstedStack, 1, -j - 1) .. string.sub(targetStack, -j, -j) .. string.sub(startSubstedStack, -j + 1, j == 1 and 0 or -1)
            end
        end
        posRight = not posRight and numStartPreSubstStackTemplates or posRight
        m.writeLog("numPreStackTemplates=" .. (numStartPreSubstStackTemplates or "nil") .. ", posRight=" .. (posRight or "nil"), 1)
        -- if posRight < TargetStack.len we should reduce the prefix to 'S' and we can set the next # from D afterwards
        -- if posRight == TargetStack.len, we should destroy prefix entirely, but extraBit could be used if TargetStack "suffix" does not start with D
        -- (but expected targets does not start with D (or #) so D* is fine here as well, but we have to create alternative extraBit expecting "target"
        -- exception is on the end of recepie where TargetStack.len==0 could happen and in that case extraBit could be forbidden ... hmm,
        -- but there would probably be T or t under bottom to be destroyed so extraBit would probably be welcomed (and targetSTack would be "1")
        local posLeft = numStartPreSubstStackTemplates --leftmost available to change
        if posLeft > 0 then
            if (string.sub(startSubstedStack, -posLeft - 2, -posLeft - 1) == "T6"
                    or string.sub(startSubstedStack, -posLeft - 2, -posLeft - 1) == "I4") then
                startSubstedStack = string.sub(startSubstedStack, 1, -posLeft - 1) .. 'S' .. string.sub(startSubstedStack, -posLeft + 1, posLeft == 1 and 0 or -1)
                m.writeLog("T6S/I4S forcing case", 1)
                posLeft = posLeft - 1
            end
        end
        if posRight > posLeft then
            posRight = posLeft
        end
        if (string.sub(startSubstedStack, -posRight,-posRight+1)~="SP") then --SP cannot be converted to DP
            if posRight > 0 then
                startSubstedStack = string.sub(startSubstedStack, 1, -posRight - 1) .. 'D' .. string.sub(startSubstedStack, -posRight + 1, posRight == 1 and 0 or -1)
            end
        end

        local trieQueue, trieQueueLastInd, trieQueueFirstInd -- increasing IndicesFirst mod trieNodeCount empty when trieQueueLastInd==trieQueueFirstInd,
        trieQueue, trieQueueLastInd, trieQueueFirstInd = {}, 0, 0

        local function trieQueuePush(trieNode)
            if trieNode then
                --allowing push(nil) doing nothing
                trieQueueLastInd = trieQueueLastInd + 1
                if trieQueueLastInd > m.trieNodeCount then
                    trieQueueLastInd = 1
                end
                trieQueue[trieQueueLastInd] = trieNode
            else
                m.writeLog("trieQueuePush(nil)", -2)
            end
        end

        local function trieQueuePull()
            if trieQueueFirstInd == trieQueueLastInd then
                return
            end
            trieQueueFirstInd = trieQueueFirstInd + 1
            if trieQueueFirstInd > m.trieNodeCount then
                trieQueueFirstInd = 1
            end
            local trieNode = trieQueue[trieQueueFirstInd]
            trieQueue[trieQueueFirstInd] = nil
            return trieNode
        end

        local extraBit, preStackLen, edgeBitLimit
        local function nextOutGoingEdge()
            m.writeLog("  NextOutGoingEdge", -1)
            local trieNode = trieQueuePull()
            while trieNode do
                if edgeBitLimit and trieNode.minBitLen >= edgeBitLimit then
                    -- extraBit should be included in edgeBitLimit
                    m.writeLog("trieBranch discarded ... minBitLen " .. trieNode.minBitLen .. ">=" .. edgeBitLimit)
                elseif trieNode.minPreStackLen > preStackLen then
                    m.writeLog("trieBranch discarded ... minPreStackLen " .. trieNode.minPreStackLen .. ">" .. preStackLen)
                else
                    -- trieQueuePush(trieNode[0]) used only at root with extraBit
                    m.writeLog("  NextOutGoingEdge push[1]", -2);
                    trieQueuePush(trieNode[1])
                    m.writeLog("  NextOutGoingEdge push[2]", -2);
                    trieQueuePush(trieNode[2])
                    if trieNode.moveConds then
                        m.writeLog("  NextOutGoingEdge #moves=" .. #trieNode.moveConds)
                        return trieNode.moveConds
                    end
                end
                trieNode = trieQueuePull()
            end
            return
        end

        local function firstOutGoingEdge(preStack)
            m.writeLog("  FirstOutgoingEdge " .. packSixplicates(preStack), -1)
            extraBit = nil
            if preStack == "" then
                return
            end
            local first = string.sub(preStack, 1, 1)
            if string.find('01', first) then
                preStack = string.sub(preStack, 2)
                if preStack == "" then
                    return
                end
                extraBit = first + 0
                first = (first == "1") and string.sub(preStack, 1, 1) or first
            end
            if first == '#' then
                -- can reach other substitutes by 1* in the minimal cost, but not in 0 extraBitCase so '0' trie created
                first = 'D'
            end
            preStackLen = string.len(preStack)
            local trieNode = m.tries[first]
            if extraBit == 1 then
                -- we have not added extra level to trie['0']
                trieNode = trieNode[extraBit]
            end
            trieQueuePush(trieNode)
            return nextOutGoingEdge()
        end

        local queue, queueCurrentEstCost, queueMaxEstCost, queueCurrentEstCostInd = {}, -1, 0, 0
        local queueFilter = {}

        local function queueEmpty()
            m.writeLog("queueEmpty? " .. queueCurrentEstCost .. " " .. queueCurrentEstCostInd .. " " .. queueMaxEstCost, -1)
            if queueCurrentEstCost < 0 then
                return true
            end
            if queueCurrentEstCost < queueMaxEstCost then
                return false
            end
            if queueCurrentEstCostInd == #queue[queueMaxEstCost] then
                queue[queueMaxEstCost], queueCurrentEstCost, queueMaxEstCost, queueCurrentEstCostInd = nil, -1, 0, 0
                return true
            end
            return false
        end

        local function queuePush(startSubstedPreStack, preEasyStack, preEasyBits, est)
            local processed = queueFilter[startSubstedPreStack .. ">" .. preEasyStack]
            if processed and processed <= string.len(preEasyBits) then
                return
            end
            queueFilter[startSubstedPreStack .. ">" .. preEasyStack] = string.len(preEasyBits)
            est = not est and 0 or est
            local costEst = string.len(preEasyBits) + est
            if not queue[costEst] then
                queue[costEst] = {}
            end
            queue[costEst][1 + #queue[costEst]] = { startSubstedPreStack, preEasyStack, preEasyBits }
            if queueCurrentEstCost > costEst then
                queueCurrentEstCost, queueCurrentEstCostInd = costEst, 0
            elseif queueCurrentEstCost < 0 then
                queueCurrentEstCost = 0 --nonempty mark
            end
            if queueMaxEstCost < costEst then
                queueMaxEstCost = costEst
            end
        end

        local function queuePop()
            --nonEmpty was ensured
            if not queue[queueCurrentEstCost] then
                queueCurrentEstCostInd = 0
            end
            while not queue[queueCurrentEstCost] do
                queueCurrentEstCost = 1 + queueCurrentEstCost
            end
            queueCurrentEstCostInd = 1 + queueCurrentEstCostInd
            if queueCurrentEstCostInd > #queue[queueCurrentEstCost] then
                queue[queueCurrentEstCost] = nil
                queueCurrentEstCostInd = 1
                while not queue[queueCurrentEstCost] do
                    queueCurrentEstCost = 1 + queueCurrentEstCost
                end
            end
            local node = queue[queueCurrentEstCost][queueCurrentEstCostInd]
            return node[1], node[2], node[3]
        end

        local function extStack(pre, stack, post)
            m.writeLog("   extStack(" .. packSixplicates(pre) .. "," .. packSixplicates(stack) .. "," .. packSixplicates(post) .. ")")
            if string.find('01', string.sub(stack, 1, 1)) then
                -- extrabit
                pre, stack = string.sub(stack, 1, 1) .. pre, string.sub(stack, 2)
            end
            stack = pre .. stack
            if stack ~= "" and string.find('TtIHhBPdDS#', string.sub(stack, -1)) then
                return stack .. post
            else
                local postPos = string.find(post, '[TtIHhBPdDS#]')
                if postPos then
                    local postDist = string.sub(post, 1, postPos - 1)
                    postDist = ((postDist == "") and "8" or postDist)
                    local start, dist = string.match('H' .. stack, '(.*[TtIHhBPdDS#])(.*)')
                    start = string.sub(start, 2)
                    m.writeLog("   extStack start, dist, postDist " .. start .. "," .. dist .. "," .. postDist .. "(" .. postPos .. ")")
                    if start == "" then
                        return dist .. string.sub(post, postPos) --dist is actually extrabit (or empty)
                    else
                        dist = (dist == "") and 0 or dist
                        if dist + postDist == 8 then
                            return start .. string.sub(post, postPos)
                        end
                        return start .. m.inttostring(dist + postDist) .. string.sub(post, postPos)
                    end
                else
                    return stack
                end
            end
        end

        local function getCompatible(mPreStack, preEasyStack, mPostStack, startSubstedStack, conds)
            --{{extPreStack, extPostStack, oriPreStack}}
            m.writeLog("getCompatible(" .. packSixplicates(mPreStack) .. "," .. packSixplicates(preEasyStack) .. "," .. packSixplicates(mPostStack) .. "," .. packSixplicates(startSubstedStack)
                    .. "," .. m.conditionsToString(conds) .. ")")
            local numConcretized = 0
            if extraBit then
                preEasyStack = string.sub(preEasyStack, 2)
            end
            local ret = {}
            if string.len(mPreStack) > string.len(preEasyStack) then
                m.writeLog(" string.len(mPreStack)>string.len(preStack)")
                return ret
            end
            local hIdSkip, offs, fail = string.sub(conds[1], 1, 1), 0
            local cdist = string.sub(conds[1], 2)
            cdist = (cdist == "") and "0" or cdist -- if conds[1] not empty than odd
            cdist = 0 + cdist
            fail = false
            if hIdSkip ~= "" then
                local pos = string.find(preEasyStack, '[' .. string.gsub('TtIHhBPdDS', hIdSkip, '') .. ']', offs + 1)
                if not pos then
                    m.writeLog(" everything skipped " .. hIdSkip)
                    return ret
                end
                offs = pos - 1
                if offs > 0 then
                    local pre, dist = string.match(hIdSkip .. string.sub(preEasyStack, 1, offs), '(.*' .. hIdSkip .. ')(.*)')
                    dist = (dist == "") and "8" or dist
                    dist = 0 + dist
                    fail = dist < cdist
                    if fail then
                        m.writeLog("  fail:small distance from hIdskip " .. dist .. "<" .. cdist)
                    end
                end
            end
            if string.len(mPreStack) + offs > string.len(preEasyStack) then
                m.writeLog(" string.len(mPreStack)+offs>string.len(preStack)")
                return ret
            end
            if not fail then
                for i = 1, string.len(mPreStack) do
                    if string.sub(mPreStack, i, i) ~= string.sub(preEasyStack, i + offs, i + offs) then
                        if not string.find('DPBS', string.sub(mPreStack, i, i)) or string.sub(preEasyStack, i + offs, i + offs) ~= "#" then
                            m.writeLog(" fail:not match at positions " .. i .. "," .. i + offs .. ":" .. string.sub(mPreStack, i, i) .. "?" .. string.sub(preEasyStack, i + offs, i + offs))
                            fail = true
                            break
                        else
                            preEasyStack = string.sub(preEasyStack, 1, i + offs - 1) .. string.sub(mPreStack, i, i) .. string.sub(preEasyStack, i + offs + 1)
                        end
                    end
                end
            end
            if not fail then
                local condsToTest, pos, endPos, pos2, endPos2, dist2, hId2 = {}, 1 + offs + string.len(mPreStack) --mPreStack ends by an hId !!!
                condsToTest["_"] = ""
                if pos <= string.len(preEasyStack) then
                    endPos = string.find(string.sub(preEasyStack, pos), '[TtIHhBPdDS#]')
                    if endPos then
                        endPos=endPos+pos-1
                        local hId = string.sub(preEasyStack,endPos, endPos)
                        condsToTest["_"] = nil
                        local dist = string.sub(preEasyStack,pos, endPos - 1)
                        dist = (dist == "" and "8") or dist
                        condsToTest[hId] = dist
                        m.writeLog(" condToTest " .. hId .. "," .. dist .. "(" .. endPos .. ")")
                        pos2 = 1 + endPos
                        if pos2 < string.len(preEasyStack) then
                            endPos2 = string.find(string.sub(preEasyStack, pos2), '[TtIHhBPdDS#]')
                            if endPos2 then
                                endPos2=endPos2+pos2-1
                                hId2 = string.sub(preEasyStack, endPos2, endPos2)
                                dist2 = string.sub(preEasyStack, pos2, endPos2 - 1)
                                dist2 = (dist2 == "" and "8") or dist2
                                dist2 = dist2 + dist
                                m.writeLog(" condToTest " .. hId .. "," .. dist .. "(" .. endPos .. ")"..hId2..","..dist2.."("..endPos2..")")
                            end
                        end
                        --actually we have very rarely to check 2nd item dist as well (I4S2I...{I7} condition)
                        --I bet the use of the StackChangeCost caused by prevPostStack->requiredPreStack
                        --will never generate this case ... so I leave it this simplified way till it is really required
                        --proving it is not necessary is another option :)
                    end
                    if condsToTest['#'] then
                        condsToTest['D'] = condsToTest['#']
                        condsToTest['B'] = condsToTest['#']
                        condsToTest['S'] = condsToTest['#']
                        condsToTest['#'] = nil
                    end
                end
                local OK, KO, hId2OK, dist2OK, dist2HashOK = {}, {}, true, true, true
                for i = 1, #conds[2] do
                    local hId = string.sub(conds[2][i], -1)
                    m.writeLog("  condition " .. conds[2][i] .. "," .. hId)
                    local dist = condsToTest[hId]
                    if hId~='_' then
                        cdist  = string.sub(conds[2][i], 1, -2)
                        cdist = (cdist == "" and "8") or cdist
                        cdist = cdist + 0
                        if cdist % 2 == 1 then
                            if dist2 and cdist > dist2 then
                                dist2OK=false
                                if string.find('DBS',hId) then
                                    dist2HashOK=false
                                end
                                if hId==hId2 then
                                    hId2OK=false
                                end
                            end
                        end
                    end
                    if dist then
                        if dist == "" then
                            OK[#OK + 1] = hId
                            m.writeLog(" condition " .. hId .. "," .. dist .. " OK")
                        else
                            dist = dist + 0
                            if cdist % 2 == 1 then
                                if cdist < dist then
                                    OK[#OK + 1] = hId
                                    m.writeLog(" condition " .. hId .. "," .. dist .. "(" .. cdist .. ")" .. " OK")
                                else
                                    KO[#KO + 1] = hId
                                    m.writeLog(" condition " .. hId .. "," .. dist .. "(" .. cdist .. ")" .. " KO")
                                end
                            else
                                if cdist == dist then
                                    OK[#OK + 1] = hId
                                    m.writeLog(" condition " .. hId .. "," .. dist .. "(" .. cdist .. ")" .. " OK")
                                else
                                    KO[#KO + 1] = hId
                                    m.writeLog(" condition " .. hId .. "," .. dist .. "(" .. cdist .. ")" .. " KO")
                                end
                            end
                        end
                        condsToTest[hId] = nil
                    end
                end
                for hId, dist in pairs(condsToTest) do
                    KO[#KO + 1] = hId
                    m.writeLog(" condition " .. hId .. "," .. dist .. " KO (missed)")
                end
                if #OK == 0 then
                    m.writeLog(' all suffix tests failed')
                else
                    for i = 1, #OK do
                        if #KO > 0 then
                            -- template needs further specification
                            preEasyStack = string.sub(preEasyStack, 1, endPos - 1) .. OK[i] .. string.sub(preEasyStack, 1 + endPos)
                        elseif i > 1 then
                            m.writeLog("  all template suffixes work well so template remains unchanged")
                            break
                        end
                        local extpre, extpost, mStartSubstedStack = string.sub(preEasyStack, 1, offs), string.sub(preEasyStack, pos), startSubstedStack
                        local extPostStack = extStack(extpre, mPostStack, extpost)
                        m.writeLog('  extPostStack=' .. packSixplicates(extPostStack))
                        for j = 1, string.len(preEasyStack) do
                            if j > string.len(startSubstedStack) then
                                break
                            end
                            if string.sub(startSubstedStack, -j, -j) == '#' and string.sub(preEasyStack, -j, -j) ~= '#' then
                                mStartSubstedStack = string.sub(mStartSubstedStack, 1, -j - 1) .. string.sub(preEasyStack, -j, -j) .. string.sub(mStartSubstedStack, -j + 1, j == 1 and 0 or -1)
                                numConcretized = numConcretized + 1
                            end
                        end
                        if dist2OK then
                            ret[#ret + 1] = { preEasyStack, extPostStack, mStartSubstedStack }
                            m.writeLog(" getCompatible new result:" .. packSixplicates(extPostStack) .. "," .. packSixplicates(preEasyStack) .. "," .. packSixplicates(mStartSubstedStack), 3)
                        elseif not hId2OK then
                            m.writeLog(" getCompatible 2nd stack Item "..hId2.." blocks", 3)
                        elseif hId2=='#' and dist2HashOK then
                            ret[#ret + 1] = { preEasyStack, extPostStack, mStartSubstedStack }
                            m.writeLog(" getCompatible new result (2 stack items case):" .. packSixplicates(extPostStack) .. "," .. packSixplicates(preEasyStack) .. "," .. packSixplicates(mStartSubstedStack), 3)
                        elseif hId2=='#' then
                            --we have to try possible cases, but in our current moveset only {:_,21T,19t,19I,23H,25h,21B,23P,21d,21D,5S} matches with result 'S'
                            --oops it does not occur in stack->stack portion but only in emissions so it is just never needed part of code
                            preEasyStack = string.sub(preEasyStack, 1, endPos2 - 1) .. 'S' .. string.sub(preEasyStack, endPos2 + 1)
                            ret[#ret + 1] = { preEasyStack, extPostStack, mStartSubstedStack }
                            m.writeLog(" getCompatible new result (SS case):" .. packSixplicates(extPostStack) .. "," .. packSixplicates(preEasyStack) .. "," .. packSixplicates(mStartSubstedStack), 3)
                        end
                        -- I hope we never have to test 3 top stack items
                    end
                end
            end
            return ret
        end

        local preEasyBits, preEasyStack = '', startSubstedStack
        queueCurrentEstCost, queueMaxEstCost, queueCurrentEstCostInd, queueFilter = -1, 0, 0, {}
        do
            local cost, est = m.ignoreSuffixChangeStackCost(preEasyStack, targetStack)
            if cost then
                m.writeLog(" StartBestCost  [" .. packSixplicates(preEasyStack) .. "]+" .. cost .. "[" .. packSixplicates(targetStack) .. "]", 4)
                bestCostUpdate(cost, startSubstedStack, preEasyStack, preEasyBits)
            else
                queuePush(startSubstedStack, preEasyStack, preEasyBits, est)
            end
        end
        while not queueEmpty() do
            startSubstedStack, preEasyStack, preEasyBits = queuePop()
            m.writeLog("Search [" .. packSixplicates(preEasyStack) .. "]" .. preEasyBits .. "[" .. packSixplicates(startSubstedStack) .. "][" .. packSixplicates(targetStack) .. "]", 3)
            local best, fail = getBestCost(startSubstedStack)
            edgeBitLimit = nil
            if best then
                edgeBitLimit = best - string.len(preEasyBits) + ((not extraBit) and 0 or 1)
                fail = edgeBitLimit <= 0
                if not fail then
                    local cost, est = m.ignoreSuffixChangeStackCost(preEasyStack, targetStack)
                    -- non null cost would prevent push as well as best test in that time, but best could have improved
                    fail = edgeBitLimit <= est
                end
            end
            if not fail then
                local moveConds = firstOutGoingEdge(preEasyStack)
                while moveConds do
                    for i = 1, #moveConds do
                        m.writeLog(" " .. packSixplicates(preEasyStack) .. ">" .. moveConds[i])
                        local mBits, move, conds, mPreStack, mPostStack = m.parseMove(moveConds[i])
                        if extraBit then
                            if 0 + string.sub(mBits, 1, 1) ~= extraBit then
                                m.writeLog("something wrong not matched extraBit " .. extraBit .. "?" .. mBits, 10)
                            else
                                mBits = string.sub(mBits, 2)
                            end
                        end
                        if string.find(mBits, '0') then
                            m.writeLog(" bit 0 can be used only as extraBit ... this cannot happen", 10)
                            break -- all moves in moveConds has same bits
                        end
                        local stacks = getCompatible(mPreStack, preEasyStack, mPostStack, startSubstedStack, conds) --{{extPreStack, extPostStack, oriPreStack}}
                        for j = 1, #stacks do
                            best = getBestCost(stacks[j][3])
                            if not best or best > string.len(preEasyBits) + string.len(mBits) then
                                local cost, est = m.ignoreSuffixChangeStackCost(stacks[j][2], targetStack)
                                if cost then
                                    m.writeLog(" cost  [" .. packSixplicates(stacks[j][3]) .. "]" .. preEasyBits .. mBits .. "[" .. packSixplicates(stacks[j][2]) .. "]+" .. cost ..
                                            "[" .. packSixplicates(targetStack) .. "]", 1)
                                    if not best or best > string.len(preEasyBits) + string.len(mBits) + cost then
                                        bestCostUpdate(string.len(preEasyBits) + string.len(mBits) + cost, stacks[j][3], stacks[j][2], preEasyBits .. mBits)
                                    end
                                else
                                    if est then
                                        if not best or best > string.len(preEasyBits) + string.len(mBits) + est then
                                            m.writeLog("       [" .. packSixplicates(stacks[j][3]) .. "]" .. preEasyBits .. mBits .. "+>" .. est .. "[" .. packSixplicates(stacks[j][2]) ..
                                                    "]>?>[" .. packSixplicates(targetStack) .. "]", 1)
                                            queuePush(stacks[j][3], stacks[j][2], preEasyBits .. mBits, est)
                                        end
                                    else
                                        m.writeLog("       [" .. packSixplicates(stacks[j][3]) .. "]" .. preEasyBits .. mBits .. "[" .. packSixplicates(stacks[j][2]) ..
                                                "]>?>[" .. packSixplicates(targetStack) .. "]", 1)
                                        queuePush(stacks[j][3], stacks[j][2], preEasyBits .. mBits, est)
                                    end
                                end
                            end
                        end
                    end
                    moveConds = nextOutGoingEdge()
                end
            end
        end
        return bestCost
    end

    if not m.results[startPreSubstStack .. ">" .. targetStack] then
        m.results[startPreSubstStack .. ">" .. targetStack] = searchChangeStackCosts(startPreSubstStack, targetStack)
    end
    return m.results[startPreSubstStack .. ">" .. targetStack]
end

return m
Hmmm .... seems I have wrong logic in "correctness" of bottom positioning ... failed on g1%8[-1802] for bottom 0 mod 8.
... so I shoud rethink the plan :( ... Fortunately not ... -2192%8 = 0 rather to 6 (done by hand) so base 4 could have continued longer, and I have not switched to base 0 so it failed by correct logic in first opportunity.

And another bug corrected ... negative distances parsed as positive ... so no d7%8p4%8 emission found ... and now (-1 4) could be found :).

And I have to add EasyBits generation for SD->PD^7P and simillar cases. ... or to prevent such requirements. ... 2 of 3 different cases solved, 1 remain ... . Seems all 3 cases fixed now ... and botom y-x ... and Play* changed to show prefixes for long strings ... so bits for <4>, <4><0> protions (no opimalized cut yet) would be probably tested today (31% of the recipe).

Another bug at bit nr. 253+around 105100 (in current partial recipe version) ... 936th glider of the 8144 gliders recipe .

OK the problem is with (-1 4) emission (g4%8)[-2105]... is it problem with the sign? Yep, solving the other appearence of parsing sign problem was sufficient ...
------------------
Currently the "fixed bottom algorithm" uses only primitive emissions, a lot of them will be never chosen as they are dominated in cost by others.
But especially for specific %8 requirements the emissions are rare so even expensive emissions would be used.
Composite emissions could be cheaper (using S12 move as prefix) and it could be good reason to add them to the repertoire as well.
This adds complexity to optimization task ... would we prefere to destroy the new bottom immediately after the emission is finished?
May be beter solution would be to not use expensive primitive emissions at all (if there is cheaper composite variant).

I am going to finish a solution wihout optimalized bottomy-x position. Then I will probably add S12 composite moves to considered emissions set and I will carefully look at the use of composite moves. They could help in choosing the switching positions ... .

There is also better alternative ... to extend FixedBottom mod 8 search to FixedBottom mod 4 search ... allowing [S12] move in stack maintainance. That would be good enough for this DBCA recipe, and the only problem would be (phase 7 glider in line y-x = 2 % 4) to be working well enough in general (not required in our DBCA case). The [S12] move adds complexity issues as there will be for a long time seemingly equal choices at which position the 20 gap should be placed, what will be resolved much later. This will add other parameters to be decided later to our "templated" code.
Unfortunately if some items on the stack are already determined, the transition cost could depend on the 20 gap placement. Currently the width of the search is determined by the number of different templated stack contents at the end of each level. This will be multiplied by the number of possible 20 gap positions (making it unfeasible due to the time complexity) ... if the position will not be templated as well.
May be it will be good idea to use the [S12] move without trying full optimization ... just selecting one among cheapest transitions and ignore the optimization of the 20 gap position connected with the future destruction of the gap. Such strategy would not force so many different stacks, but it will not prevent them.

I would probably postpone the idea of looking for FixedBottom mod 4 indefinitely. I bet its potential is to save a few thousand bits at most. Reducing the number of gliders in a salvo by a few tens (optimizing slsparse) would have a larger effect on the number of bits needed ... and the slsparse optimization would have a much more general use. (I have saved about 700 gliders (~7,5%) from the originally generated salvo, but the time complexity of the code how it works now does allow only greedy processing without actual search. Reducing the complexity could open potential to do actual search, whose potential for reduction is hard to estimate.)

... 253+128182 bits checked so far ... 253 + 169000 checked. Creating pattern with "iserted bits" and running it in golly in high speed would be much faster ... (if there is no bug). I hope the second portion is correct ... check is still running ... and now I am generating third portion ... the <4> bottom again.

.... and another case of problems during filling templates ... [DD]->[S6d6BDDDDP] ...what I have prevented now, but case [BDD]->[B6d6DSSDSDSP] appeared instead ... what is easily solvable, but must be codded.
OK code extended and the <4> portion (after <4>;<4><0>) generated. And now I should return to first <4> portion to fill the templates ... . Before the bits for all 3 portions will be finished.

And as filling templates changed the original "code" I have to recheck the whole sequence (I am not that sure in the manual work ...). The portion I am checking now corresponds to 4250 of 8144 emissions. And there will be one more <4><0> push as next portion and than big stack desruction/movement.

OK bits are created except destroying stack and preparing for the glider emission to launch the cordership.
The bits testing process continues. (So far only 209000 bits checked ... )

:( still a problem at bit about 254000/about 717200. New version of Fixed bottom binary salvo 2 slow salvo generated inconsistent code ... working on finding the cause. Hmmm, just wrong paramerizaion on input... to be generated shifted 8 lines ... corrected ...

Here are the bits I am testing (after the initial 253 bits converting trash to [S0])
PlainBits.zip
(76.27 KiB) Downloaded 33 times
I have allowed to skip "decomposition part of playbitsequence" to speedup the checking ... and now the bug at bits around 424055 was detected ...
the bit code expected T6SPDS^2DB* stack and the stack generated is acually T6SD^2S^2DB* ... so still problems with P requirements in templates ...
so another recheck why the generated stack does not correspond to expectation ...

... the FixedBottomSearch makes 3 outputs first is with tepmplates, second is with templates fixed and third with part of bits corresponding to teplate fixes filled. The most time consuming part (search upto "heuristic solvable templates") is to compute the data from which the first output is generated. Second output uses as the source the same data (updating them a bit) and the third output as well uses the same data with small update. The needed portion of data for second and third part could be extracted form the first output. There was no bug find so far in the generated first output. All bugs were connected to figuring how to compatibly fill the templates in stage 2. Code converting first output to outputs two and three would save a lot of time during debugging (the first output generation takes few tens of minutes while the outputs two and three are generaed in the same minute).
But I always hope I am correcting the last bug ... so it is not that big deal to recompute it from scratch ...

Oh seems the program bits were generated well this time and here was exactly one symbolic bit P in the code and it was correctly put there.
Just the bits interpreter didnot transformed this bit to "1" (you can see it in the appendix ... till I replace it).

:) the bits generated the patern prepared to be fired by the last glider.
meantime I have prepared code to destroy the stack and convert it to HT* stack putting S to appropriate place (and be destroyed by 1*)
Ufortunately this means I should set templates for the last 5 stack positions. ... :) fortunatelly this could be easily done by "hand".
User avatar
Hippo.69
Posts: 683
Joined: July 14th, 2020, 7:35 pm
Contact:

Re: Binary slow salvos

Post by Hippo.69 »

So first Risk_DBCA_m3_p4_fc_#cpo bit sequence recipe is finished. The DBCA is lounched by bit number 718736. (253 bits building [S0] + 718481 bits of recipe + 2 bits to start)
Original recipe started the DBCA by bit number 1274729. So reduction of recipe length to 56.4% (555993 bits).
The risk DBCA is a bit less efficient, but the difference would be of smaller order of magnitude.
Risk_DBCA_m3_p4_fc_#cpo_bits.zip
(76.24 KiB) Downloaded 47 times
Can anybody try creating this portion of RCT15 (using insertion of these bits ... with arbitrary bits followup) ... to recheck the 256 sync? Thanks

I would probably do the experiments with composite emission recipes and I woud try to find better positions for stack bottom switching to reduce some tens of bits, but this could be used for the start.

Uff, ... other jobs are waiting ...

Here are tools I have used (some parameters are to be edited :( ... (they were tested in loops and not fixed in input files ... what would be better).
The commented bit sequence ... the biggest file ... was done by hand (mostly from generated parts), but trivial portions (for example the end) just by writing the code. There is an unused tail in the file ... I am not sure ... will I use part of the tail for botom switching optimization?

The FixBottom search could be probably speeded up slightly by preprocessing QuarkCondBitSequences not to include emissions which were never used (only those which are clarly outperformed by others of the same dist mod 8 phase mod 8 ). ... but I would instead insert some composite variants.
Life_exp.zip
(3.01 MiB) Downloaded 41 times
User avatar
apg
Moderator
Posts: 3007
Joined: June 1st, 2009, 4:32 pm

Re: Binary slow salvos

Post by apg »

Hippo.69 wrote: May 2nd, 2023, 7:26 am So first Risk_DBCA_m3_p4_fc_#cpo bit sequence recipe is finished. The DBCA is lounched by bit number 718736. (253 bits building [S0] + 718481 bits of recipe + 2 bits to start)
Original recipe started the DBCA by bit number 1274729. So reduction of recipe length to 56.4% (555993 bits).
Oh wow! If it doesn't involve much manual work, can you run your slow-salvo-to-binary compiler on the DBCA slow salvo recipe that's currently in the repository? It would be interesting to see how much of the reduction is from your more efficient compiler and how much is from switching to a RISC DBCA.

In any case, this is really impressive!
The risk DBCA is a bit less efficient, but the difference would be of smaller order of magnitude.
Yes -- the DBCA only really does one major task, namely building the ECCA, and we can afford for this to be less efficient (even by a factor of 2) if it saves hundreds of kilobits in the construction of the DBCA itself. I think that we had a few competing RISC DBCA designs, so we probably want to choose whatever is cheapest to construct whilst still being at least somewhat efficient.
Can anybody try creating this portion of RCT15 (using insertion of these bits ... with arbitrary bits followup) ... to recheck the 256 sync? Thanks
I'll do this later when I'm back at my computer.
What do you do with ill crystallographers? Take them to the mono-clinic!
User avatar
Hippo.69
Posts: 683
Joined: July 14th, 2020, 7:35 pm
Contact:

Re: Binary slow salvos

Post by Hippo.69 »

calcyman wrote: May 2nd, 2023, 9:44 am Oh wow! If it doesn't involve much manual work, can you run your slow-salvo-to-binary compiler on the DBCA slow salvo recipe that's currently in the repository? It would be interesting to see how much of the reduction is from your more efficient compiler and how much is from switching to a RISC DBCA.
After I add composite emissions, I could run whole construction (salvo->salvo variants->to bits portion) with one fixed bottom ... without trying any "manual" optimization.
Let us hope there is no need for the only forbidden emission (or I will add long replacing emission for the case) ... just to have simpler life (no Stack bottom switching).

But let me pause for few days.
calcyman wrote: May 2nd, 2023, 9:44 am In any case, this is really impressive!
Thanks :)
calcyman wrote: May 2nd, 2023, 9:44 am Yes -- the DBCA only really does one major task, namely building the ECCA, and we can afford for this to be less efficient (even by a factor of 2) if it saves hundreds of kilobits in the construction of the DBCA itself. I think that we had a few competing RISC DBCA designs, so we probably want to choose whatever is cheapest to construct whilst still being at least somewhat efficient.
You can see lua\hroch\DBCASalvo\results file in the 2nd attachment, where the comparison of strategies for current DBCA recipe portion was run.
Current DBCA portion required about 166681+21080 bits, while m3_p4_fc_#cps about 203254+26325. And we expect the ECCA would be more compact in next version so ... the file is somewhere on the forum but I could show it here again ... :)

Code: Select all

Codon:........................FSEEven:		JumpFSEEven:	FSEOdd:		JumpFSEOdd:
e0_o1_e1_o0_p16_m8_p4_m2_p1...21080		166681		20890		167195
e0_o1_e1_o0_p16_m8_m4_m2_m1...20747		162748		20575		162938
e0_o1_e1_o0_p8_m4_m2_m1.......21732		174510		21433		174841
e0_o1_e1_o0_p4_m2_m1..........30030		238963		29360		239313
m1_m2_p4_fc_cps_#p............23471		190016		22901		190056
m1_m2_p4_fc_cp_#p.............24111		198111		23801		197781
m1_m2_p4_fc_cp_p..............25861		207919		25369		207943
m1_m2_p4_fc_#cps..............26325		213789		26213		214597
m3_p4_fc_#cps.................25762		203254		26086		203818
m3_p4_fc_cps_#p...............26041		205101		26057		206069
m3_p4_fc_cp_#p................27565		217917		27389		219105
m3_p4_fc_cp_p.................31631		246916		31491		248191
I bet the compactness of m3_p4_fc_#cp* saves enough bits in its construction/desruction that no other variant could match it.
calcyman wrote: May 2nd, 2023, 9:44 am

I'll do this later when I'm back at my computer.
Thanks
User avatar
apg
Moderator
Posts: 3007
Joined: June 1st, 2009, 4:32 pm

Re: Binary slow salvos

Post by apg »

Hippo.69 wrote: May 2nd, 2023, 10:01 am I bet the compactness of m3_p4_fc_#cp* saves enough bits in its construction/desruction that no other variant could match it
The e0_o1_e1_o0_p4_m2_m1 DBCA is very small -- 2753 live cells:

viewtopic.php?f=2&t=5648&p=153993#p153993

Last time I checked this was smaller than the m3_p4_fc_#cp* DBCA variants, largely because it avoids having all of that switching circuitry involving semisnarks.
What do you do with ill crystallographers? Take them to the mono-clinic!
User avatar
Hippo.69
Posts: 683
Joined: July 14th, 2020, 7:35 pm
Contact:

Re: Binary slow salvos

Post by Hippo.69 »

calcyman wrote: May 2nd, 2023, 11:26 am The e0_o1_e1_o0_p4_m2_m1 DBCA is very small -- 2753 live cells:

viewtopic.php?f=2&t=5648&p=153993#p153993

Last time I checked this was smaller than the m3_p4_fc_#cp* DBCA variants, largely because it avoids having all of that switching circuitry involving semisnarks.
OK try to make it by a slow salvo of about 8000 gliders and it becomes competitive. See it is by about 15% less efficient ... by about 40000 bits in current DBCA task.
(m3_p4_fc_#cp*) requires 8144 gliders ... but it has 4218 live cells (including codership start) 3071 live cells in starting "seed" cordership part excluded. (Oh my 8144 gliders were counted from the opimal block placement position, the initial placement of the block was not counted here, but it is part of the DBCA_recipe.txt)

I expect the ECCA portion of the recipe would be smaller so the difference decreases (for the same effectivity ratio), but I expect more variants in the recipe what probably improves m3_p4_fc_#cp* effectivity (optimization for variants was not implemented yet, but it will be "dynamic programming" ... for each level for each reached final "automata state" the number of required bits(cycles) ... the automata state includes semi states and arm (block) position
Just we need to reach the end of salvo to deduce all the bits "backward" from computed data and it consumes memory)
it almost does not improve the other DBCA effectivity (we could select the line with required color often saving 3 bits and we can prevent problems with exact positioning what could save other cycles).

So there is big chance competitive salvo exists (there seems are not included the bits entering corridor and p256 starting circuitry in 2753, so it could be close). (It took me about a month to press the salvo size from about 8800 to 8144, but big part of the optimization was thanks to changes in slsparse, what you could use immediatelly.)

... seems FixedBottom ... uses in average about 79 bits per glider ... bottom positioning excluded.
calcyman wrote: May 2nd, 2023, 9:44 am If it doesn't involve much manual work, can you run your slow-salvo-to-binary compiler on the DBCA slow salvo recipe that's currently in the repository? It would be interesting to see how much of the reduction is from your more efficient compiler and how much is from switching to a RISC DBCA.
I am running modyfied rct15playLevels.lua (my agnosticise) on the portion of recipe corresponding to DBCA_recipe.txt (I had to add boatSW as an initial target)
It would be running during night ... But I am still not ready with composite emissions....
User avatar
apg
Moderator
Posts: 3007
Joined: June 1st, 2009, 4:32 pm

Re: Binary slow salvos

Post by apg »

Hippo.69 wrote: May 2nd, 2023, 11:42 am So there is big chance competitive salvo exists (there seems are not included the bits entering corridor and p256 starting circuitry in 2753, so it could be close). (It took me about a month to press the salvo size from about 8800 to 8144, but big part of the optimization was thanks to changes in slsparse, what you could use immediatelly.)
Oh wow -- I see from running a diff that you've made lots of changes to slmake!

Looking again at your RISC DBCA, it's almost exactly the same size as my RISC DBCA, but more efficient -- so probably what you have already is close to optimal. (And, as evidenced by the test patterns in this post, your binary tape works perfectly including the p256 sync, so there's no need to change anything.)

To summarise, it looks like the (multiplicative) factors from each of your three optimisations are:
  • Replacing Pavgran's DBCA with your RISC DBCA: 1.38x
  • Improving the original arm recipe compiler: 1.19x
  • Reducing the salvo size by improving slmake: 1.08x
for a total multiplicative improvement of 1.77x in the number of bits required to launch the DBCA.
Hippo.69 wrote: May 2nd, 2023, 10:01 am
calcyman wrote: May 2nd, 2023, 9:44 am
Hippo.69 wrote: May 2nd, 2023, 7:26 am Can anybody try creating this portion of RCT15 (using insertion of these bits ... with arbitrary bits followup) ... to recheck the 256 sync? Thanks
I'll do this later when I'm back at my computer.
Thanks
So... p256 synchronisation works fine! Here's the full pattern (.mc):
rct15.mc
RCT15 pattern for DBCA construction and activation
(907.16 KiB) Downloaded 49 times
and here's an RLE from the Cordership activation onwards. Nothing seems to break at all (except for the fact that my 'arbitrary bits followup' tells the DBCA to fire a couple of gliders, and one of those happens to crash into a reflector, but that's just because I gave the DBCA an arbitrary de Bruijn sequence instead of actual instructions in order to get full test coverage):

Code: Select all

x = 1933530, y = 1935397, rule = B3/S23
1932252b2o$1932252b2o$1932238bo$1932238b3o12bo$1932241bo10bobo$
1932240b2o9bo2bo$1932250bo2bo$1932245bo$1932244bobo3bo2bo$1932244bo2bo
4b2o$1932245b2o10$1932217b2o83b2o$1932216b3o$1932215bobo2bo2b2o76bo3bo
$1932215b2o2b2o2b2o75bo4bo$1932219b2o69bo8bobobo$1932290b3o5bobobo$
1932293bo2bo4bo$1932292b2o2bo3bo$1932224bo$1932223bobo69bo2b2o$
1932222bo2bo68bobo$1932223b2o65b2o2b2o$1932290b2o2$1932219b2o$1932218b
obo$1932218bo$1932217b2o5$1932267b2o$1932260b2o5b2o$1932260b2o3$
1932262b2o27b2o$1932262b2o27b2o$1932256b2o$1932256b2o$1932297b2o$
1932297b2o$1932277bo15b2o$1932270bo5bobo14b2o$1932270bo5b2o$1932248b2o
20bo$1932249bo$1932249bobo46b2o$1932250b2o46b2o$1932327b2o5b2o$
1932327b2o5bo$1932332bobo$1932332b2o$1932328b2o$1932262b2o64bobo$
1932262b2o65bo$1932333bo$1932332b3o$1932257b2o72b3obo$1932257b2o73bo3b
o$1932333bo3bo$1932334bob3o$1932251b2o82b3o$1932251b2o42b2o39bo$
1932295b2o3$1932256b2o$1932256b2o$1932252b2o$1932252b2o$1932293b2o$
1932293b2o$1932258b2o27b2o$1932258b2o27b2o3$1932289b2o$1932282b2o5b2o$
1932282b2o4$1932321b2o$1932321b2o2$1932305b2o3b2o$1932304bo2bobo2bo$
1932299bo5b2o3b2o5bo$1932298bobo15bobo$1932299bo17bo3$1932233b2o$
1932234bo$1932234bobo$1932235b2o3$1932239b2o$1932238bo2bo$1932239bobo$
1932240bo4$1932236bo$1932231b3ob2o2b2o$1932231b4o4b2o$1932235b2o47$
1932348b2o$1932348bo$1932346bobo$1932346b2o171$1931971b2o$1931972bo$
1931969b3o$1931969bo4$1932310bo$1932144b2o164b3o$1932302bo10bo$
1932142bo3bo154bobo8b2o$1932142bo4bo153bobo26bo$1932144bobobo150b3ob2o
23b3o243b2o$1932145bobobo148bo28bo246b2o$1932146bo4bo147b3ob2o22b2o$
1932147bo3bo149bob2o2$1932148b2o2bo173b2o$1932151bobo172b2o$1932152b2o
$1932148b2o$1932147bobo$1932147bo5b2o404b2o$1932146b2o5b2o404b2o5$
1932521bo$1932313b2o201b3ob2o2b2o$1932314bo201b4o4b2o$1932311b3o206b2o
$1932311bo$1932579b2o$1932579bo$1932516bo63b3o$1932128bo386bobo64bo$
1932515bo2bo$1932126b3obo173b2o210b2o$1931992b2o122bo8bob2o176bo245b2o
5b2o$1931993bo122b3o6b2obo176bobo15b2o227bo5b2o$1931993bobo123bo3bob3o
178b2o15b2o195b2o30bobo$1931994b2o122b2o400bobo30b2o$1932125bo396bo34b
2o$1932121bo400b2o32bobo10b2o$1931998b2o120bobo434bo11b2o$1931997bo2bo
115b2o2b2o431bo$1931998bobo115b2o434b3o$1931999bo551bob3o$1932550bo3bo
$1932549bo3bo$1932548b3obo27b2o$1931995b4o550b3o7b2o19bo$1931990b2o7bo
324b2o198b2o24bo9bo17bobo$1931990b2o2b2o3bo324bobo196bo2bo4b2o27bobo
15b2o$1931994b2o2bo249bo77bo196bobo5b2o28b2o4bo$1932247bobo76b2o196bo
41bobo$1932246bo3bo315bobo$1932247bo3bo8bo258b2o9b2o35bo10b2o$1932248b
o3bo5b3o259bo9b2obo44bobo$1932249bo3bo3bo38b2o5b2o212b3o13bo46bo$
1932054bo195bobo4b2o38bo5b2o212bo15bo46b2o$1932052b3o196bo45bobo230bo
2bo31b2o$1932051bo203bo42b2o231b2o33bo$1932051b2o201bobo45b2o259b3o$
1932255b2o2b2o40bobo10b2o247bo$1932259b2o41bo11b2o$1932297b3o$1932300b
o$1932296bo3bo$1932295bobo2bo$1932293bo2bobo$1932293bo3bo27b2o$
1932293bo10b2o19bo$1932294b3o8bo17bobo278bo$1932305bobo15b2o274b3ob2o
2b2o$1932306b2o4bo286b4o4b2o$1932311bobo289b2o29b2o$1932311bobo173b3o
144b2o$1932312bo10b2o162b3o$1932323bobo161b3o10bo$1932325bo164b3o5b3o
98bo$1932325b2o163b3o4bo100bobo$1932310b2o178b3o4b2o99bo2bo$1932311bo
287b2o$1932308b3o184bo$1932308bo185bobo$1932495b2o2b2o102b2o14b2o$
1932499b2o102bobo13b2o$1932170bo434bo$1932170b3o432b2o$1932173bo48bo
34bo49bo$1932172bobo45b3o32b3o47b3o$1932172bobo44bo34bo49bo$1932173bo
45b2o33b2o48b2o$1932209b2o$1932210bo$1932210bobo$1932211b2o4b2o45bo48b
2o324b2o$1932188b2o26bo2bo44b3o47bo324bo$1932188b2o27b2o48bo46bobo323b
3o$1932229b2o35b2o11b2o34b2o325bo$1932229b2o48b2o138bobo$1932418bo$
1932168b2o243b2o2bo4bo$1932167bobo166b2o75b2obo2bob2o$1932167bo168b2o
79b2o$1932166b2o7b2o444b2o25b2o$1932175b2o443bobo25bo$1932143bo476bo8b
2o15bobo$1932142bobo38b2obo28b2o3b2o32b2o48b2o107bo205b2o8b2o15b2o$
1932141bo3bo37b2ob3o27bo3bo20b2o11b2o35b2o11b2o106bobo82bo$1932131bo8b
o3bo44bo23b3o5b3o18bo49bo119bo2bo79b3o$1932131b3o5bo3bo39b2ob3o24bo9bo
15b3o47b3o121b2o79bo$1932134bo3bo3bo41bobo52bo49bo204b2o$1932133b2o4bo
bo42bobo$1932140bo44bo61b2o168b2o$1932136bo110b2o168bobo$1932031bo103b
obo48bo92b2o138bo$1932030bobo98b2o2b2o47b3o92bo139b2o$1932029bo3bo97b
2o50bo55bo40b3o43b2o146b2o$1932030bo3bo148b2o53bobo41bo43b2o146b2o$
1932031bo3bo139b2o62bo388b2o$1932032bo3bo138b2o113b2o335bobo$1932033bo
bo254b2o335bo$1932034bo441b2o148b2o$1932038bo203b2o231bobo$1932037bobo
202b2o38bo192bo$1932038b2o197b2o42bobo190b2o$1932034b2o128b2o70bobo43b
o$1932033bobo129bo70bo$1932033bo5b2o124bobo67b2o13b2o393b2o38b2o$
1932032b2o5b2o125b2o82bo36b2o356bobo37b2o$1932243b2o6b3o33b2o358bo$
1932243b2o8bo231b2o160b2o$1932161b2o117b2o203b2o$1932162bo116bobo211b
2o$1931959b2o201bobo114bo213bo$1931958b3o202b2o113b2o13b2o199b3o$
1931957bobo2bo2b2o326bo202bo$1931957b2o2b2o2b2o319b2o6b3o339b2o$
1931961b2o323b2o8bo198bo140b2o32b2o$1932078b2o414bobo173b2o$1932078b2o
8b2o94b2o308bobo71b2o57b2obo$1932088bo95bo308b2ob3o67bob2o57bob2o$
1931966bo119bobo96b3o311bo65bo80b2o$1931965bobo118b2o99bo305b2ob3o69bo
77b2o$1931964bo2bo525b2obo67b2obo88b2o$1931965b2o187b2o408b2o90bo$
1932154b2o329b2o167bobo$1932140bo335b2o7b2o74bo92b2o$1931961b2o177b3o
334bo82bobo$1931960bobo180bo10b3o320bobo80b2o128b2o$1931960bo181b2o11b
2o321b2o84b2o124bo$1931959b2o191b2o410bobo124b3o$1932147bo4b3o7b2o395b
2o5bo126bo$1932146bobo4bobo6b2o2b2o391b2o5b2o$1932146bo2bo4b2o10bobo
329b2o$1932147b2o18bo3bo326b2o162b2o5b2o$1932170b2o478b2o11bo5b2o$
1932164b2o3bob2o477bobo10bobo$1932062b2o101bo2b3o2bo478bo11b2o$
1932062b2o98b3o5bobobo477b2o14b2o$1932162bo8bobobo307bo183bobo10b2o$
1932172bo2b3o304bobo183bo11b2o$1932173b2obo243b2o60bobo179bo$1932174b
2o245bo61bo179b3o$1932174bo243b3o59b3o179bob3o$1932418bo61bo154b2o24bo
3bo$1932635b2o23bo3bo$1932643b2o14b3obo27b2o$1932475b2o166bo16b3o7b2o
19bo$1932475bo168b3o14bo9bo17bobo$1932473bobo170bo24bobo15b2o$1932095b
2o376b2o197b2o4bo$1932095b2o548bo31bobo$1932458b2o184bobo30bobo$
1932458b2o184bobo31bo10b2o$1932643b2ob3o40bobo$1932467b2o180bo41bo$
1932467b2o6b2o166b2ob3o42b2o$1932066b2o407b2o166b2obo29b2o$1932066b2o
3bo605bo$1932070bobo562b2o37b3o$1932071bobo389bo162b2o7b2o37bo$
1932073bo388bobo162bo109b2o$1932073b2o388bo6b2o155bobo107b2o$1932470bo
157b2o$1932471b3o239b2o$1932473bo237bob2o$1932572bo137bo$1932193b2o
377b3o73b2o63bo$1932193bo381bo72b2o59b2obo$1932191bobo380bobo132b2o$
1932191b2o381bobo$1932575bo130bo15b2o$1932705bobo14b2o$1932608bo24bo
71b2o$1932608b3o21bobo74b2o$1932611bo20bobo74bobo$1932590b2o18b2o21bo
70b2o5bo$1932126bo463b2o38b3o71b2o5b2o$1932126b3o484b2o15bo$1932129bo
482bobo$1932128b2o10b2o463b2o5b2o$1932140b2o8b2o418b2o22b2o9b2o$
1932150bo418bobo23bo146b2o$1932079b3o66bobo418bo25bobo144bo$1932079b3o
66b2o418b2o7b2o17b2o145b3o$1932079b3o495b2o166bo$1932082b3o$1932082b3o
500b2obo28b2o$1932082b3o500b2ob3o26b2o$1932591bo$1932087bo497b2ob3o$
1932086bobo497bobo135b2o25b2o$1932087b2o497bobo134bobo25bo$1932083b2o
502bo43b4o88bo8b2o15bobo$1932082bobo541b2o7bo86b2o8b2o15b2o$1932082bo
5b2o498bo37b2o2b2o3bo$1932081b2o5b2o496b3o41b2o2bo$1932585bo$1932585b
2o$1932124b2o451b2o$1932124b2o451b2o47bo$1932625bobo$1932625bo2bo$
1932626b2o3$1932566b2o62b2o99b2o$1932567bo62bobo97bobo$1932567bobo62bo
97bo$1932568b2o62b2o95b2o$1932785b2o$1932785b2o$1932157b2o404b2o$
1932157b2o405bo$1932564bobo$1932565b2o$1932749b2o$1932749bobo$1932751b
o$1932128b2o621b2o$1932128b2o3bo452b2o182b2o$1932132bobo150b2o299bo
183b2o$1932133bobo149bo301b3o$1932135bo36bo110bobo303bo$1932135b2o35b
3o108b2o454b2o$1932175bo138bo424b2o$1932174b2o10b2o80b2o42b3o346bo$
1932186b2o8b2o70b2o41bo347b3o68b2obo$1932196bo114b2o345bo71bob2o$
1932194bobo461b2o89b2o$1932194b2o89b2o462b2o$1932278b2o5b2o472b2o29b2o
$1932278b2o479bo30bo$1932290b2o465bobo31b3o$1932273bo15bobo345b2o118b
2o34bo$1932272bobo14bo346bobo$1932273bo6b2o6b2o346bo$1932280bo354b2o
125b2o5b2o$1932281b3o479bo5b2o$1932283bo9b2o468bobo$1932292bobo345b2o
122b2o$1932292bo346bobo126b2o$1932291b2o346bo127bobo10b2o$1932638b2o
113b2o13bo11b2o$1932753bobo7b3o$1932170b2o583bo10bo$1932170b2o583b2o5b
o3bo$1932761bobo2bo$1932302b2o455bo2bobo$1932302b2o345b2o108bo3bo27b2o
$1932310b2o337b2o108bo10b2o19bo$1932310bo346b2o101b3o8bo17bobo$
1932311b3o343bo80b2o31bobo15b2o$1932313bo344b3o77b2o32b2o4bo$1932660bo
85b2o29bobo$1932312bo433bo30bobo$1932311bobo345bo87b3o28bo10b2o$
1932243b2o5b2o59bobo344bobo88bo39bobo$1932203b2o38b2o5bo59b2ob3o342bob
o130bo$1932203b2o43bobo65bo340b2ob3o85bo42b2o$1932248b2o60b2ob3o347bo
83bobo26b2o$1932244b2o64b2obo343b2ob3o84bobo27bo$1932244bobo410b2obo
85b2ob3o22b3o$1932245bo56b2o448bo21bo$1932293b2o7b2o345b2o95b2ob3o$
1932174b2o72b2o44bo345b2o7b2o95b2obo$1932174b2o3bo68b2obo42bobo344bo$
1932178bobo71bo42b2o344bobo94b2o$1932179bobo67bo392b2o85b2o7b2o$
1932181bo68bob2o476bo$1932181b2o69b2o476bobo$1932315b2o414b2o$1932315b
2o345b2o$1932662b2o2$1932751b2o$1932751b2o$1932300bo$1932299bobo345bo
227b2o$1932299bobo344bobo226b2o$1932300bo345bobo$1932297b3o347bo88bo$
1932297bo346b3o88bobo$1932644bo90bobo$1932224b2o510bo95bo$1932220b2o2b
2o507b3o96b2o$1932219bobo494b2o15bo97b2obo$1932216bo3bo495b2o112bo2b3o
$1932216b2o611bobobo$1932215b2obo3b2o604bobobo$1932214bo2b3o2bo502b2o
99b3o2bo$1932213bobobo5b3o498bobo100bob2o$1932212bobobo8bo135b2o361b2o
102b2o$1932210b3o2bo145b2o2b2o289bo71b2o95bo3bo$1932211bob2o65b2o66b2o
15bobo288b3o69bobo93bobo$1932212b2o66b2o66b2o16bo292bo70bo93b2o$
1932213bo120bo13b2o20bo287bobo69b2o96b2o$1932334b3o12bo13b2o4b3o286bob
o167bobo$1932337bo10bobo13bo3b3obo286bo63b2o98b2o5bo$1932336b2o9b2obo
10b3o5bo3bo349b2o98b2o5b2o$1932361bo8bo3bo$1932341bo29bob3o$1932340bob
o5b2o22b3o88bo$1932340bo2bo4b2o23bo89b3o208b2o$1932341b2o123bo207b2o$
1932275b2o188bobo$1932275bo189bobo$1932276b3o187bo253b2o$1932278bo375b
2o64bo$1932653bobo65b3o$1932653bo69bo$1932239b2o411b2o7b2o$1932232b2o
5b2o240b2o178b2o$1932232b2o247b2o$1932669b2obo$1932669b2ob3o$1932234b
2o27b2o410bo$1932234b2o27b2o196b2o206b2ob3o$1932228b2o230bobo207bobo$
1932228b2o230bo209bobo$1932269b2o188b2o7b2o201bo$1932269b2o197b2o$
1932265b2o405bo$1932265b2o209b2obo190b3o$1932476b2ob3o187bo$1932482bo
186b2o$1932476b2ob3o179b2o$1932270b2o205bobo181b2o$1932270b2o205bobo$
1932478bo$1932527bo$1932479bo47b3o$1932235bo241b3o50bo$1932234bobo239b
o52bobo118b2o$1932235b2o239b2o51bobo119bo$1932468b2o60bo120bobo$
1932468b2o182b2o3$1932236bo410b2o$1932236bo308b2o101bo$1932236bo308b2o
101bobo$1932223b2o232b2o190b2o$1932223b2o233bo$1932395b2o61bobo$
1932244b2o149bo63b2o64b2o$1932244b2o147bobo128bobo$1932228b2o163b2o
129bo145b2o$1932228b2o224b2o67b2o7b2o136bo$1932224b2o229bo76b2o137b3o$
1932224b2o22b2o139b2o64bobo215bo$1932248b2o15b2o121bo2bo64b2o82b2obo$
1932265b2o121bobo149b2ob3o$1932230b2o27b2o51bo76bo156bo$1932230b2o27b
2o50bobo226b2ob3o$1932311b2o228bobo$1932477b2o62bobo$1932261b2o130b2o
2bo79bo64bo$1932254b2o5b2o126b2o2b2o3bo79b3o$1932254b2o133b2o7bo81bo
62bo126b2o$1932394b4o143b3o126bobo$1932540bo131bo$1932540b2o130b2o$
1932230b2o300b2o$1932230b2o300b2o4$1932226b2o30bobo$1932226b2o33bo$
1932257bo4bo2b2o101b2o151b2o$1932257b2obo2bob2o94b2o4bo2bo151bo$
1932261b2o98b2o5bobo151bobo$1932369bo153b2o2$1932361b3o9b2o$1932219b2o
45bo95b2o9bo$1932212b2o4bo2bo43bobo91b2o13b3o144b2o$1932212b2o5bobo42b
o2bo91b3o14bo144b2o$1932220bo44b2o93bobo$1932361b2o$1932213b2o9b2o$
1932211bob2o9bo36b2o37b2o64b2o$1932211bo13b3o32bobo37b2o2b2o60b2o$
1932211bo15bo32bo43bobo234b2o$1932211bo2bo44b2o44bo235bo$1932212b2o95b
o57bo174b3o$1932302b2o4b3o55bobo175bo$1932303bo3b3obo54bobo$1932300b3o
5bo3bo54bo$1932300bo8bo3bo$1932310bob3o$1932311b3o$1932312bo3$1932370b
2o$1932370b2o3$1932375b2o$1932375b2o9$1932269b2o$1932269bobo$1932271bo
6b2o$1932271b2o5b2o$1932384b2o$1932384b2o3$1932389b2o$1932389b2o8$
1932269b2o$1932269b2o$1932401b2o$1932353b2o46b2o$1932352bo2bo$1932353b
2o4b2o45bo$1932358bo2bo43bobo$1932358bobo45b2o$1932359bo$1932233b2o$
1932233b2o2$1932424bo$1932423bobo$1932424b2o4$1932218b2o$1932218b2o7$
1932361b2o$1932361b2o3$1932366b2o$1932366b2o2$1932434b2o$1932434b2o2$
1932631b2o$1932439b2o189bo2bo$1932439b2o176bo15bo$1932617b3o13bo$
1932620bo9b2obo$1932619b2o9b2o2$1932624bo$1932375b2o246bobo5b2o$
1932375b2o246bo2bo4b2o$1932624b2o2$1932380b2o$1932380b2o68b2o$1932450b
2o2$1932455bo$1932454bobo$1932455b2o4$1932628b2o$1932392b2o234b2o2b2o$
1932392b2o238bobo$1932470b2o161bo$1932397bo72b2o$1932396bobo231b2o4b2o
$1932397b2o76bo155bo4b2obo$1932474bobo151b3o9bo$1932475b2o151bo8bo$
1932638bob2o$1932640b2o$1932415bo$1932414bobo182b2o$1932415b2o182b2o2b
2o$1932603bobo$1932604bo2b2o2$1932601b2o2bo3bo$1932602bo2bo4bo$
1932599b3o5bobobo$1932599bo8bobobo$1932484b2o123bo4bo$1932484b2o124bo
3bo2$1932611b2o$1932489b2o$1932489b2o6$1932425b2o$1932425b2o3$1932430b
2o$1932430b2o69bo$1932500bobo$1932501b2o9$1932441b2o$1932441b2o$
1932519b2o$1932446bo72b2o$1932445bobo$1932446b2o$1932524b2o$1932524b2o
5$1932461b2o$1932461b2o2$1932466bo$1932465bobo$1932466b2o3$1932533b2o$
1932533b2o2$1932538bo$1932537bobo$1932538b2o5$1932475b2o$1932475b2o3$
1932480b2o70bo$1932480b2o69bobo$1932552b2o10$1932492bo$1932491bobo$
1932492b2o$1932569bo$1932568bobo$1932569b2o8$1932510b2o$1932510b2o3$
1932515b2o$1932515b2o11$1932575bo$1932574bobo$1932524b2o49b2o$1932524b
2o2$1932529bo$1932528bobo$1932529b2o8$1932599b2o$1932543bo55b2o$
1932542bobo$1932543b2o3$1932593b2o$1932592bo2bo$1932593bobo$1932594bo
7$1932560bo46b2o$1932559bobo45b2o$1932560b2o2$1932612b2o$1932612b2o9$
1932626bo$1932625bobo$1932626b2o10$1932566bo$1932565bobo$1932566b2o$
1932643bo$1932642bobo$1932643b2o10$1932590b2o$1932590b2o5$1932584b2o$
1932583bo2bo$1932584bobo$1932585bo68bo$1932653bobo$1932654b2o5$
1932598b2o$1932598b2o3$1932603b2o$1932603b2o4$1932670bo$1932669bobo$
1932670b2o3$1932617bo$1932616bobo$1932617b2o13$1932634bo46b2o$1932633b
obo45b2o$1932634b2o2$1932686b2o$1932686b2o4$1932705bo$1932704bobo$
1932705b2o6$1932729bo$1932728bobo$1932729b2o2$1932645bo$1932644bobo$
1932645b2o9$1932745b2o$1932745b2o3$1932750b2o$1932661bo88b2o$1932660bo
bo$1932661b2o8$1932762b2o$1932762b2o3$1932767b2o$1932767b2o5$1932672b
2o$1932672b2o3$1932677b2o109b2o$1932677b2o109b2o4$1932696bo$1932695bob
o84b2o$1932696b2o83bo2bo$1932782bobo$1932783bo4$1932720bo$1932719bobo$
1932720b2o2$1932796bo$1932795bobo$1932796b2o9$1932736b2o$1932736b2o2$
1932813b2o$1932741b2o70b2o$1932741b2o2$1932818b2o$1932818b2o7$1932753b
2o$1932753b2o3$1932758b2o$1932758b2o68b2o$1932828b2o2$1932833bo$
1932832bobo$1932833b2o4$1932779b2o$1932779b2o5$1932773b2o70b2o$
1932772bo2bo69b2o$1932773bobo$1932774bo$1932850b2o$1932850b2o6$
1932787bo$1932786bobo$1932787b2o$1932864bo$1932863bobo$1932864b2o9$
1932804b2o$1932804b2o3$1932809b2o$1932809b2o12$1932819b2o47bo$1932819b
2o46bobo$1932868b2o$1932824bo$1932823bobo$1932824b2o10$1932836b2o$
1932836b2o3$1932841b2o$1932841b2o37bo$1932879bobo$1932880b2o7$1932855b
o$1932854bobo$1932855b2o2$1932898b2o$1932898b2o2$1932903bo$1932902bobo
$1932903b2o9$1932917bo$1932916bobo$1932917b2o8$1932859bo$1932858bobo$
1932859b2o10$1932926b2o$1932926b2o3$1932931b2o$1932931b2o3$1932871bo$
1932870bobo$1932871b2o$1932947b2o$1932947b2o3$1932952b2o$1932952b2o5$
1932889b2o79bo$1932889b2o78bobo$1932970b2o$1932894bo$1932893bobo$
1932894b2o9$1932908bo$1932907bobo$1932908b2o$1932984b2o$1932984b2o3$
1932989b2o$1932989b2o14$1932917b2o86b2o$1932917b2o86b2o3$1932922b2o$
1932922b2o$1932999b2o$1932998bo2bo$1932999bobo$1933000bo2$1932938b2o$
1932938b2o3$1932943b2o$1932943b2o3$1933010b2o$1933010b2o$1932961bo$
1932960bobo$1932961b2o52b2o$1933015b2o21bo$1933037bobo$1933038b2o12$
1932975b2o$1932975b2o3$1932980b2o$1932980b2o5$1933053b2o$1933053b2o5$
1933047b2o$1933046bo2bo$1933047bobo$1932996b2o50bo$1932996b2o4$
1933063b2o$1932990b2o71b2o$1932989bo2bo$1932990bobo$1932991bo76b2o$
1933068b2o9$1933001b2o$1933001b2o$1933080bo$1933079bobo$1933006b2o72b
2o$1933006b2o21bo$1933028bobo$1933029b2o10$1933097bo$1933096bobo$
1933097b2o10$1933044b2o$1933044b2o4$1933112bo$1933038b2o71bobo$
1933037bo2bo71b2o$1933038bobo$1933039bo5$1933054b2o$1933054b2o3$
1933059b2o$1933059b2o3$1933126b2o$1933126b2o2$1933131bo$1933130bobo$
1933131b2o3$1933071bo$1933070bobo$1933071b2o8$1933148b2o$1933148b2o4$
1933088bo$1933087bobo52b2o$1933088b2o51bo2bo$1933142bobo$1933143bo8$
1933155b2o$1933155b2o3$1933160b2o$1933103bo56b2o$1933102bobo$1933103b
2o4$1933177bo$1933176bobo$1933177b2o9$1933117b2o$1933117b2o2$1933122bo
$1933121bobo$1933122b2o69bo$1933192bobo$1933193b2o11$1933139b2o$
1933139b2o5$1933133b2o$1933132bo2bo68b2o$1933133bobo68b2o$1933134bo2$
1933209b2o$1933209b2o5$1933146b2o$1933146b2o2$1933224bo$1933151b2o70bo
bo$1933151b2o71b2o6$1933168bo$1933167bobo$1933168b2o10$1933236bo$
1933235bobo$1933236b2o2$1933184bo$1933183bobo$1933184b2o7$1933255bo$
1933254bobo$1933255b2o9$1933195b2o79bo$1933195b2o78bobo$1933276b2o2$
1933200b2o$1933200b2o8$1933215bo$1933214bobo$1933215b2o3$1933289b2o$
1933289b2o3$1933294b2o$1933294b2o10$1933227bo$1933226bobo$1933227b2o
75b2o$1933304b2o3$1933309b2o$1933309b2o6$1933246bo$1933245bobo$
1933246b2o5$1933318b2o$1933318b2o2$1933323bo$1933267bo54bobo$1933266bo
bo54b2o$1933267b2o11$1933333b2o$1933333b2o3$1933338b2o$1933280b2o56b2o
$1933280b2o3$1933285b2o$1933285b2o12$1933295b2o$1933295b2o53b2o$
1933350b2o2$1933300b2o$1933300b2o2$1933344b2o$1933343bo2bo$1933344bobo
$1933345bo2$1933371b2o$1933371b2o5$1933309b2o54b2o$1933309b2o53bo2bo$
1933365bobo$1933314bo51bo$1933313bobo$1933314b2o69bo$1933384bobo$
1933385b2o10$1933324b2o$1933324b2o3$1933329b2o21b2o47bo$1933329b2o21b
2o46bobo$1933401b2o$1933357bo$1933356bobo$1933357b2o5$1933375bo$
1933374bobo$1933375b2o6$1933414b2o$1933414b2o3$1933419b2o$1933419b2o2$
1933392bo$1933391bobo$1933392b2o9$1933428b2o$1933428b2o2$1933433bo$
1933432bobo$1933433b2o2$1933406bo$1933405bobo$1933406b2o15$1933420b2o$
1933420b2o2$1933425bo$1933424bobo$1933425b2o15$1933370bo$1933369bobo$
1933369b2o4$1933366bo$1933365bobo13b2o$1933366b2o13b2o3$1933366bo$
1933365bobo$1933366b2o3$1933348bo4bo$1933347bobo2bobo38b2o$1933348b2o
3b2o38bobo$1933374b2o18bo$1933342b2o30b2o$1933341bobo$1933342bo19b2o$
1933362b2o2$1933527b3o4$1933380bo$1933379bobo$1933380bo$1933348b2o46b
2o$1933348b2o46bo$1933394bobo$1933394b2o$1933375bo$1933374bobo$
1933375b2o2$1933356b2o$1933356b2o153b3o4$1933359b2o$1933359bobo$
1933360bo$1933387b2o$1933387bobo$1933389bo$1933389b2o3$1933361bo$
1933360bobo$1933360b2o$1933418b2o75b3o$1933417bobo$1933416bobo$
1933357bo59bo$1933356bobo13b2o$1933357b2o13b2o3$1933357bo$1933356bobo$
1933357b2o2$1933380b2o$1933380b2o2$1933385b2o$1933385bobo$1933386bo$
1933362b2o$1933362b2o2$1933347bo4bo$1933346bobo2bobo$1933347b2o3b2o2$
1933341b2o$1933340bobo$1933341bo45b2o$1933386bobo$1933385bobo$1933359b
2o16bo8bo$1933359b2o15bobo$1933377b2o2$1933386b2o$1933370bo15bobo$
1933369bobo15bo$1933347b2o21bo$1933347b2o6$1933367b2o$1933366bobo$
1933367bo3$1933357b2o$1933357bobo$1933358bo8$1933419bo$1933418bobo$
1933418bobo$1933419bo2$1933423b2o$1933422bo2bo$1933423b2o15$1933408bo
5b3o$1933408bo$1933408bo2$1933410b3o4$1933406b3o4$1933396bo5b3o$
1933396bo$1933396bo2$1933392b3o3b3o$1933388b2o$1933388b2o6bo$1933396bo
$1933396bo2$1933392b3o443$1932943b3o$1932945bo$1932944bo39$1932896b2o$
1932895bobo$1932897bo358$1932415bo$1932415bo88b2o$1932415bo88b2o$
1932431b2o$1932431b2o$1932427b2o$1932427b2o9$1932392b3o41b3o2$1932396b
o37bo$1932396bo37bo$1932396bo37bo8$1932399b2o$1932398bo2bo8b2o$
1932398bo2bo8b2o$1932399b2o13$1932536b2o$1932536b2o4$2bo32767bo32767bo
32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo
32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo
32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo
32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo
32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo
32767bo32767bo32767bo32767bo32767bo32767bo$o3bo32763bo3bo32763bo3bo
32763bo3bo32763bo3bo32763bo3bo32763bo3bo32763bo3bo32763bo3bo32763bo3bo
32763bo3bo32763bo3bo32763bo3bo32763bo3bo32763bo3bo32763bo3bo32763bo3bo
32763bo3bo32763bo3bo32763bo3bo32763bo3bo32763bo3bo32763bo3bo32763bo3bo
32763bo3bo32763bo3bo32763bo3bo32763bo3bo32763bo3bo32763bo3bo32763bo3bo
32763bo3bo32763bo3bo32763bo3bo32763bo3bo32763bo3bo32763bo3bo32763bo3bo
32763bo3bo32763bo3bo32763bo3bo32763bo3bo32763bo3bo32763bo3bo32763bo3bo
32763bo3bo32763bo3bo32763bo3bo32763bo3bo32763bo3bo32763bo3bo32763bo3bo
32763bo3bo32763bo3bo32763bo3bo32763bo3bo32763bo3bo32763bo3bo32763bo3bo
$5bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo
32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo
32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo
32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo
32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo
32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo$o4bo
32762bo4bo32762bo4bo32762bo4bo32762bo4bo32762bo4bo32762bo4bo32762bo4bo
32762bo4bo32762bo4bo32762bo4bo32762bo4bo32762bo4bo32762bo4bo32762bo4bo
32762bo4bo32762bo4bo32762bo4bo32762bo4bo32762bo4bo32762bo4bo32762bo4bo
32762bo4bo32762bo4bo32762bo4bo32762bo4bo32762bo4bo32762bo4bo32762bo4bo
32762bo4bo32762bo4bo32762bo4bo32762bo4bo32762bo4bo32762bo4bo32762bo4bo
32762bo4bo32762bo4bo32762bo4bo32762bo4bo32762bo4bo32762bo4bo32762bo4bo
32762bo4bo32762bo4bo32762bo4bo32762bo4bo32762bo4bo32762bo4bo32762bo4bo
32762bo4bo32762bo4bo32762bo4bo32762bo4bo32762bo4bo32762bo4bo32762bo4bo
32762bo4bo32762bo4bo$b5o32763b5o32763b5o32763b5o32763b5o32763b5o32763b
5o32763b5o32763b5o32763b5o32763b5o32763b5o32763b5o32763b5o32763b5o
32763b5o32763b5o32763b5o32763b5o32763b5o32763b5o32763b5o32763b5o32763b
5o32763b5o32763b5o32763b5o32763b5o32763b5o32763b5o32763b5o32763b5o
32763b5o32763b5o32763b5o32763b5o32763b5o32763b5o32763b5o32763b5o32763b
5o32763b5o32763b5o32763b5o32763b5o32763b5o32763b5o32763b5o32763b5o
32763b5o32763b5o32763b5o32763b5o32763b5o32763b5o32763b5o32763b5o32763b
5o32763b5o$360541b5o98299b5o65531b5o131067b5o32763b5o65531b5o65531b5o
32763b5o98299b5o32763b5o32763b5o65531b5o32763b5o32763b5o32763b5o32763b
5o32763b5o32763b5o32763b5o32763b5o32763b5o32763b5o32763b5o32763b5o
32763b5o32763b5o32763b5o32763b5o32763b5o32763b5o32763b5o32763b5o32763b
5o32763b5o32763b5o65531b5o$360540bo4bo98298bo4bo65530bo4bo131066bo4bo
32762bo4bo65530bo4bo65530bo4bo32762bo4bo98298bo4bo32762bo4bo32762bo4bo
65530bo4bo32762bo4bo32762bo4bo32762bo4bo32762bo4bo32762bo4bo32762bo4bo
32762bo4bo32762bo4bo32762bo4bo32762bo4bo32762bo4bo32762bo4bo32762bo4bo
32762bo4bo32762bo4bo32762bo4bo32762bo4bo32762bo4bo32762bo4bo32762bo4bo
32762bo4bo32762bo4bo32762bo4bo65530bo4bo$360545bo98303bo65535bo131071b
o32767bo65535bo65535bo32767bo98303bo32767bo32767bo65535bo32767bo32767b
o32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767b
o32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767b
o32767bo65535bo$360540bo3bo98299bo3bo65531bo3bo131067bo3bo32763bo3bo
65531bo3bo65531bo3bo32763bo3bo98299bo3bo32763bo3bo32763bo3bo65531bo3bo
32763bo3bo32763bo3bo32763bo3bo32763bo3bo32763bo3bo32763bo3bo32763bo3bo
32763bo3bo32763bo3bo32763bo3bo32763bo3bo32763bo3bo32763bo3bo32763bo3bo
32763bo3bo32763bo3bo32763bo3bo32763bo3bo32763bo3bo32763bo3bo32763bo3bo
32763bo3bo32763bo3bo65531bo3bo$360542bo98303bo65535bo131071bo32767bo
65535bo65535bo32767bo98303bo32767bo32767bo65535bo32767bo32767bo32767bo
32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo
32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo32767bo
65535bo31841$1932481bo$1932480b3o$1932479b2obo$1932479b3o$1932479b3o$
1932480b2o81$1932478bo$1932477b3o$1932477bob2o$1932478b3o$1932478b3o$
1932478b2o32763$1932478bo$1932477b3o$1932477bob2o$1932478b3o$1932478b
3o$1932478b2o32677$1932481bo$1932480b3o$1932479b2obo$1932479b3o$
1932479b3o$1932480b2o81$1932478bo$1932477b3o$1932477bob2o$1932478b3o$
1932478b3o$1932478b2o32677$1932481bo$1932480b3o$1932479b2obo$1932479b
3o$1932479b3o$1932480b2o81$1932478bo$1932477b3o$1932477bob2o$1932478b
3o$1932478b3o$1932478b2o32677$1932481bo$1932480b3o$1932479b2obo$
1932479b3o$1932479b3o$1932480b2o81$1932478bo$1932477b3o$1932477bob2o$
1932478b3o$1932478b3o$1932478b2o32677$1932481bo$1932480b3o$1932479b2ob
o$1932479b3o$1932479b3o$1932480b2o81$1932478bo$1932477b3o$1932477bob2o
$1932478b3o$1932478b3o$1932478b2o32677$1932481bo$1932480b3o$1932479b2o
bo$1932479b3o$1932479b3o$1932480b2o81$1932478bo$1932477b3o$1932477bob
2o$1932478b3o$1932478b3o$1932478b2o32677$1932481bo$1932480b3o$1932479b
2obo$1932479b3o$1932479b3o$1932480b2o81$1932478bo$1932477b3o$1932477bo
b2o$1932478b3o$1932478b3o$1932478b2o32677$1932481bo$1932480b3o$
1932479b2obo$1932479b3o$1932479b3o$1932480b2o81$1932478bo$1932477b3o$
1932477bob2o$1932478b3o$1932478b3o$1932478b2o32677$1932481bo$1932480b
3o$1932479b2obo$1932479b3o$1932479b3o$1932480b2o81$1932478bo$1932477b
3o$1932477bob2o$1932478b3o$1932478b3o$1932478b2o32677$1932481bo$
1932480b3o$1932479b2obo$1932479b3o$1932479b3o$1932480b2o81$1932478bo$
1932477b3o$1932477bob2o$1932478b3o$1932478b3o$1932478b2o32677$1932481b
o$1932480b3o$1932479b2obo$1932479b3o$1932479b3o$1932480b2o81$1932478bo
$1932477b3o$1932477bob2o$1932478b3o$1932478b3o$1932478b2o32677$
1932481bo$1932480b3o$1932479b2obo$1932479b3o$1932479b3o$1932480b2o81$
1932478bo$1932477b3o$1932477bob2o$1932478b3o$1932478b3o$1932478b2o
32677$1932481bo$1932480b3o$1932479b2obo$1932479b3o$1932479b3o$1932480b
2o81$1932478bo$1932477b3o$1932477bob2o$1932478b3o$1932478b3o$1932478b
2o32677$1932481bo$1932480b3o$1932479b2obo$1932479b3o$1932479b3o$
1932480b2o81$1932478bo$1932477b3o$1932477bob2o$1932478b3o$1932478b3o$
1932478b2o32677$1932481bo$1932480b3o$1932479b2obo$1932479b3o$1932479b
3o$1932480b2o81$1932478bo$1932477b3o$1932477bob2o$1932478b3o$1932478b
3o$1932478b2o32677$1932481bo$1932480b3o$1932479b2obo$1932479b3o$
1932479b3o$1932480b2o81$1932478bo$1932477b3o$1932477bob2o$1932478b3o$
1932478b3o$1932478b2o32677$1932481bo$1932480b3o$1932479b2obo$1932479b
3o$1932479b3o$1932480b2o81$1932478bo$1932477b3o$1932477bob2o$1932478b
3o$1932478b3o$1932478b2o32677$1932481bo$1932480b3o$1932479b2obo$
1932479b3o$1932479b3o$1932480b2o81$1932478bo$1932477b3o$1932477bob2o$
1932478b3o$1932478b3o$1932478b2o32677$1932481bo$1932480b3o$1932479b2ob
o$1932479b3o$1932479b3o$1932480b2o81$1932478bo$1932477b3o$1932477bob2o
$1932478b3o$1932478b3o$1932478b2o32677$1932481bo$1932480b3o$1932479b2o
bo$1932479b3o$1932479b3o$1932480b2o81$1932478bo$1932477b3o$1932477bob
2o$1932478b3o$1932478b3o$1932478b2o32677$1932481bo$1932480b3o$1932479b
2obo$1932479b3o$1932479b3o$1932480b2o81$1932478bo$1932477b3o$1932477bo
b2o$1932478b3o$1932478b3o$1932478b2o32677$1932481bo$1932480b3o$
1932479b2obo$1932479b3o$1932479b3o$1932480b2o81$1932478bo$1932477b3o$
1932477bob2o$1932478b3o$1932478b3o$1932478b2o32677$1932481bo$1932480b
3o$1932479b2obo$1932479b3o$1932479b3o$1932480b2o81$1932478bo$1932477b
3o$1932477bob2o$1932478b3o$1932478b3o$1932478b2o32677$1932481bo$
1932480b3o$1932479b2obo$1932479b3o$1932479b3o$1932480b2o81$1932478bo$
1932477b3o$1932477bob2o$1932478b3o$1932478b3o$1932478b2o32677$1932481b
o$1932480b3o$1932479b2obo$1932479b3o$1932479b3o$1932480b2o81$1932478bo
$1932477b3o$1932477bob2o$1932478b3o$1932478b3o$1932478b2o32763$
1932478bo$1932477b3o$1932477bob2o$1932478b3o$1932478b3o$1932478b2o
32677$1932481bo$1932480b3o$1932479b2obo$1932479b3o$1932479b3o$1932480b
2o81$1932478bo$1932477b3o$1932477bob2o$1932478b3o$1932478b3o$1932478b
2o32677$1932481bo$1932480b3o$1932479b2obo$1932479b3o$1932479b3o$
1932480b2o81$1932478bo$1932477b3o$1932477bob2o$1932478b3o$1932478b3o$
1932478b2o32677$1932481bo$1932480b3o$1932479b2obo$1932479b3o$1932479b
3o$1932480b2o81$1932478bo$1932477b3o$1932477bob2o$1932478b3o$1932478b
3o$1932478b2o32763$1932478bo$1932477b3o$1932477bob2o$1932478b3o$
1932478b3o$1932478b2o32763$1932478bo$1932477b3o$1932477bob2o$1932478b
3o$1932478b3o$1932478b2o32677$1932481bo$1932480b3o$1932479b2obo$
1932479b3o$1932479b3o$1932480b2o81$1932478bo$1932477b3o$1932477bob2o$
1932478b3o$1932478b3o$1932478b2o32677$1932481bo$1932480b3o$1932479b2ob
o$1932479b3o$1932479b3o$1932480b2o81$1932478bo$1932477b3o$1932477bob2o
$1932478b3o$1932478b3o$1932478b2o32763$1932478bo$1932477b3o$1932477bob
2o$1932478b3o$1932478b3o$1932478b2o32677$1932481bo$1932480b3o$1932479b
2obo$1932479b3o$1932479b3o$1932480b2o81$1932478bo$1932477b3o$1932477bo
b2o$1932478b3o$1932478b3o$1932478b2o32763$1932478bo$1932477b3o$
1932477bob2o$1932478b3o$1932478b3o$1932478b2o32677$1932481bo$1932480b
3o$1932479b2obo$1932479b3o$1932479b3o$1932480b2o81$1932478bo$1932477b
3o$1932477bob2o$1932478b3o$1932478b3o$1932478b2o32677$1932481bo$
1932480b3o$1932479b2obo$1932479b3o$1932479b3o$1932480b2o81$1932478bo$
1932477b3o$1932477bob2o$1932478b3o$1932478b3o$1932478b2o32763$1932478b
o$1932477b3o$1932477bob2o$1932478b3o$1932478b3o$1932478b2o32763$
1932478bo$1932477b3o$1932477bob2o$1932478b3o$1932478b3o$1932478b2o
32763$1932478bo$1932477b3o$1932477bob2o$1932478b3o$1932478b3o$1932478b
2o32677$1932481bo$1932480b3o$1932479b2obo$1932479b3o$1932479b3o$
1932480b2o81$1932478bo$1932477b3o$1932477bob2o$1932478b3o$1932478b3o$
1932478b2o32763$1932478bo$1932477b3o$1932477bob2o$1932478b3o$1932478b
3o$1932478b2o32677$1932481bo$1932480b3o$1932479b2obo$1932479b3o$
1932479b3o$1932480b2o81$1932478bo$1932477b3o$1932477bob2o$1932478b3o$
1932478b3o$1932478b2o32763$1932478bo$1932477b3o$1932477bob2o$1932478b
3o$1932478b3o$1932478b2o32763$1932478bo$1932477b3o$1932477bob2o$
1932478b3o$1932478b3o$1932478b2o32677$1932481bo$1932480b3o$1932479b2ob
o$1932479b3o$1932479b3o$1932480b2o81$1932478bo$1932477b3o$1932477bob2o
$1932478b3o$1932478b3o$1932478b2o32763$1932478bo$1932477b3o$1932477bob
2o$1932478b3o$1932478b3o$1932478b2o32763$1932478bo$1932477b3o$1932477b
ob2o$1932478b3o$1932478b3o$1932478b2o32763$1932478bo$1932477b3o$
1932477bob2o$1932478b3o$1932478b3o$1932478b2o32763$1932478bo$1932477b
3o$1932477bob2o$1932478b3o$1932478b3o$1932478b2o32763$1932478bo$
1932477b3o$1932477bob2o$1932478b3o$1932478b3o$1932478b2o32763$1932478b
o$1932477b3o$1932477bob2o$1932478b3o$1932478b3o$1932478b2o32763$
1932478bo$1932477b3o$1932477bob2o$1932478b3o$1932478b3o$1932478b2o
32763$1932478bo$1932477b3o$1932477bob2o$1932478b3o$1932478b3o$1932478b
2o32763$1932478bo$1932477b3o$1932477bob2o$1932478b3o$1932478b3o$
1932478b2o32763$1932478bo$1932477b3o$1932477bob2o$1932478b3o$1932478b
3o$1932478b2o32763$1932478bo$1932477b3o$1932477bob2o$1932478b3o$
1932478b3o$1932478b2o!
What do you do with ill crystallographers? Take them to the mono-clinic!
User avatar
apg
Moderator
Posts: 3007
Joined: June 1st, 2009, 4:32 pm

Re: Binary slow salvos

Post by apg »

calcyman wrote: May 3rd, 2023, 7:32 am
Hippo.69 wrote: May 2nd, 2023, 11:42 am So there is big chance competitive salvo exists (there seems are not included the bits entering corridor and p256 starting circuitry in 2753, so it could be close). (It took me about a month to press the salvo size from about 8800 to 8144, but big part of the optimization was thanks to changes in slsparse, what you could use immediatelly.)
Oh wow -- I see from running a diff that you've made lots of changes to slmake!

Looking again at your RISC DBCA, it's almost exactly the same size as my RISC DBCA, but more efficient -- so probably what you have already is close to optimal.
I've had time to look at your switching circuitry, and it's more elegant than I originally realised. There are several brilliant ideas in here:
  • The glider phase is determined by using a H-to-G0 (producing two opposite-phase gliders) followed by a semisnark marked B (to select one of those).
  • The semisnark marked A suppresses one of those gliders, causing A to switch with a period of 2 cycles and B to switch with a period of 4 cycles.
  • There's a CMOS pair of semisnarks which control the colour of the output glider.
  • The colour-dependent circuitry is phase-independent and dispatches the boat-making salvo. The phase-dependent circuitry tries to launch the final gliders for boats of both colours, but one of these is suppressed by a beehive stopper launched by the colour-dependent circuitry for the complementary colour.
  • My favourite part (which I think might be a genuinely new idea; I haven't seen it elsewhere): the Herschel track is activated twice, once by the clock and once by the 'fire glider' instruction -- and those two activations are congruent mod 8 but discongruent mod 256. That latter discongruence means that when it's activated by the clock, any 'output gliders' are eaten by the always-on yellow glider stream, whereas when it's activated by the 'fire glider' instruction, the output gliders pass through the gaps in the yellow glider stream.
diagram.png
diagram.png (16.6 KiB) Viewed 6604 times
It seems that this engineering results in the following semantics:
  • The glider phase changes every 2 cycles, unconditionally.
  • The glider colour changes only on the non-firing cycles (because on the firing cycles, it switches twice).
What do you do with ill crystallographers? Take them to the mono-clinic!
User avatar
Hippo.69
Posts: 683
Joined: July 14th, 2020, 7:35 pm
Contact:

Re: Binary slow salvos

Post by Hippo.69 »

calcyman wrote: May 3rd, 2023, 11:15 am I've had time to look at your switching circuitry, and it's more elegant than I originally realised. There are several brilliant ideas in here:
Thanks, yep You got all the ideas :).

May be one is missing in the description:
calcyman wrote: May 3rd, 2023, 11:15 am
  • The semisnark marked A suppresses one of those gliders, causing A to switch with a period of 2 cycles and B to switch with a period of 4 cycles.
One clock glider of the g0 pair is always destroyed by the yellow line before the semi and the other after the semi so the clock does switching, while fire g0 leaves the phase snark B intact filtering one of the phases.

A's goal is to destroy the other of the clock g0 pair, but it happened the cheapest collision destryed both. P256 timing for collision without need of the reflector does not exist (without breaking more important circuit parts).

And one is a bit incorrect:
calcyman wrote: May 3rd, 2023, 11:15 am
  • The colour-dependent circuitry is phase-independent and dispatches the boat-making salvo.
The color dependent "boat lying" path is p8 restriced ... On "nonwhite" color I had to use one eater2 splitter in reflector mode to sync the phase of the glider with small glider insertor.

And a small addendum:
calcyman wrote: May 3rd, 2023, 11:15 am
  • My favourite part (which I think might be a genuinely new idea; I haven't seen it elsewhere): the Herschel track is activated twice, once by the clock and once by the 'fire glider' instruction -- and those two activations are congruent mod 8 but discongruent mod 256. That latter discongruence means that when it's activated by the clock, any 'output gliders' are eaten by the always-on yellow glider stream, whereas when it's activated by the 'fire glider' instruction, the output gliders pass through the gaps in the yellow glider stream.
The dec salvo part allowing glider is not filtered by the yellow line. It just misses the p256 target (and a hook is used to stop it after the target position).

Actually most of the logic is minimalistic in the sense trying to find the best collision synchronisation available.
Dec3 looks rather simple, but optimizing mod 8 syncing was rather challenging (to make Inc4 simple as well ...).
The reflector near "prevent dec3 salvo line" was the minimal cost... Unfortunately I have not found a way to synchronize the southeastmost path without using 3 reflectors rather than one. The 256 filtering removes a lot of options ... . I had for example to prevent problems of yellow line gliders to be well distributed ... no one to try to "colide" with 2 gliders ... as it filters both color lines and both g0 gliders of the clock.
calcyman wrote: May 3rd, 2023, 11:15 am It seems that this engineering results in the following semantics:
  • The glider phase changes every 2 cycles, unconditionally.
  • The glider colour changes only on the non-firing cycles (because on the firing cycles, it switches twice).
Exactly, but I do not expect "manual" encodding, but rather a "dynamic programming" I have mentioned few posts before.

To the logic of simple (no line variants in recipe) there is a lua code for these semistate automatas in the 2nd zip. (It was still as a pipe with a template to be filled later ... but the variants in the recipe would not allow this and the dynamic programming is actually conceptually much simpler). (Oh maybe the template part was only in 4 codon variants when it could be usefull switch color twice during a longer positioning as it changes phase once.)
calcyman wrote: May 3rd, 2023, 7:32 am Oh wow -- I see from running a diff that you've made lots of changes to slmake!
Yep, and I have written mainly in the corresponding thread, I am almost sure dynamization of maintaining the scene rather than forgetting and recomputing it always from the scratch would probably speed it in such a way one could start maintaining information why the recipes fail to apply rather than trying again and again ... what would gain a lot of speed ... and I bet we could make the search less gready ... adding some local optimizations ... what could probably save more gliders then I saved by optimization of "priorities" concerning tree moves (not leaving blocks that far behind and atracting them well at chunk boundaries).

I was newer concentrated on computer geometry and seems there is not too many known about Delaunay triangulation with pointer location maintainance (for nonrandom order of events), but this is definitely way I want to go ... if I find a time for it.
calcyman wrote: May 3rd, 2023, 7:32 am
  • Replacing Pavgran's DBCA with your RISC DBCA: 1.38x
  • Improving the original arm recipe compiler: 1.19x
  • Reducing the salvo size by improving slmake: 1.08x
Yep this is part of the DBCA part. I have actually replanned the order of laying blocks, half manually optimalized the initial block placement optimal for the recipe ... (The collision boat is converted to block 36x in manhatan distance from the optimal place (I cannot decrease x coordinate to go closer), 36 are the most optimal long moves in direction of salvo (27x9/31x5). For 36x36 move there are two options upto commuativity, all the moves commute ... so I have chosen he cheapest timing considering the FixedBottom "Arm" ... as the moves have different costs depending on the line%8.) ... there are the move laying salvos with their costs depending on stackbottom % 8 (hd or rather %4 fd as the hd parity is fixed) in the 2nd zip.

I thing line variants in agnosticize and futher work with them could have saved some bis as well.
(Slow salvo for me is the sequence of p8 configuraions defined by the glider stream, If shifting a glider does not change the sequence of configuration, this is anoher variant of the same salvo. ... Optimizing order of gliders seems to be too hard and minimizing L0 norm as done by slsmake is good enough heuristics to try to beat ... We cannot expect possible order swap in near lines and thet is the only thing which could be helpfull in DBCA or Binary arm genrated salvos. ... I have definitely tought about using only 5 gliders for moving block by 36 manhatan distance to DBCA recipe starting place leaving one block behind. That block will be usefull later in the construcion. But the slsparse interface does not allow me to start consruction from several blocks (or a least I do not know how to do it) ... it could make salvo smaller as well)

Concerning ECCA I have so far influenced to define statistically optimal interface and made demo ECCA (without the last feature).
Making efficient and cheap ECCA circuit is another task I have in plan. (Fortunatelly I understand slsparse restrictions better now).

So what is in plan ...
  • cheap efficient ECCA
  • seed of destruction of the ECCA (I have no clue how to do it)
  • replan the DBCA switch off/glider reflecting stream (at least another line of hook to be destroyed in before the FSW switch and another number of gliders to be observed by "trash counter". ... seed for correctly stoping p256? Or letting it to the DBCA destroying ECCA nw restricted salvo?
  • compute the DBCA destroying salvo
  • Fortunatelly FSW moving block collision and FSW "line" corderabsorbers program could remain unchanged, but posiiton of bit reflectors will change (I hope they will move with seeds of destruction as block)
  • fortunatelly the ECCA "line" program neednot be changed in the sense of launching corderships and making NW and SW corderabsorbers.
    There will be small changes in moving FNW as the position of the arm would probably differ.
And improving fixedbottom and slmake is pending as well. ... Meanwhile I have computed composite emissions and run FixedBottom on the full RISKDBCA* recipe. After few hours it is finalizing recipe... It will be no surprise to get smaller recipe then with manual bottom positioning ... as some phase mod 8 emissions are cheaper even with incorporated S12 move and new stack bottom destrucion. And choosing propper planning of these destrucions will save further bits ... .

Yesterday I have "agnosticized" the original recipe so I will probably run the FixedBottom with Composite emissions on it during the night.
(But as finalization tooks a lot of time ... there could be some debugging required before I do that. Yep ... there is some case of stack reduction from a stack with about 70 items to B6d6 where the heuristic is blind ... no chance it will finish in reasonable time ... that would require another "influence" :()
Last edited by Hippo.69 on May 5th, 2023, 1:16 am, edited 4 times in total.
User avatar
apg
Moderator
Posts: 3007
Joined: June 1st, 2009, 4:32 pm

Re: Binary slow salvos

Post by apg »

Hippo.69 wrote: May 3rd, 2023, 2:57 pm Concerning ECCA I have so far influenced to define statistically optimal interface and made demo ECCA (without the last feature).
Making efficient and cheap ECCA circuit is another task I have in plan. (Fortunatelly I understand slsparse restrictions better now).
Could you please explain this in more detail? At the moment there's a 6/1 ECCA with a population of 4242 including the circuit to reflect gliders of a particular colour; this should be the baseline to beat:

Code: Select all

x = 811, y = 1384, rule = LifeHistory
214.2C2B$214.2C3B$214.6B$214.7B$214.8B$214.9B$214.10B$214.6B.4B$214.
6B2.4B$214.2B.4B2.4B$214.2B2.4B2.4B$214.B4.4B2.4B$220.4B2.4B$213.2B6.
4B2.4B$213.3B6.4B2.4B$207.4B.5B6.4B2.4B$206.4B3.5B6.4B2.4B$205.4B5.5B
6.4B2.4B$204.4B7.5B6.4B2.4B$203.4B9.5B6.4B2.4B$202.4B11.5B6.4B2.4B$
201.4B13.5B6.4B2.4B$200.4B15.5B6.4B2.4B$199.4B17.5B6.4B2.4B$198.4B19.
5B6.4B2.4B$197.4B21.5B6.4B2.4B$196.4B23.5B6.4B2.4B$195.4B25.5B4.B.4B
2.4B$194.4B27.5B3.2B.4B2.4B$193.4B29.5B2.3B.4B2.4B$192.4B31.5B.4B.4B
2.4B$191.4B33.10B.4B2.4B$190.4B35.10B.4B2.4B$189.4B37.10B.4B2.4B$188.
4B39.10B.4B2.4B$187.4B39.12B.4B2.4B$186.4B38.15B.4B2.4B$185.3DB38.17B
.4B2.4B$184.4D40.17B.4B2.4B$183.4D41.18B.4B2.4B$182.4D41.20B.4B2.4B$
181.4D41.22B.4B2.4B$180.4D42.23B.4B2.4B$179.4D42.25B.4B2.4B$178.4D23.
A19.26B.4B2.4B$177.4D22.3A20.26B.4B2.4B$176.4D5.2B15.A21.29B.4B2.4B$
175.4D5.4B14.2A20.30B.4B2.4B$174.4D6.4B15.B20.19B2.10B.4B2.4B$173.4D
3.B2.6B14.3B19.17B4.10B.4B2.4B$172.4D3.2AB.2B2A2B13.6B16.18B5.10B.4B
2.4B$171.4D4.2A3BA2BA3B.B8.10B11.20B6.10B.4B2.4B$170.4D6.2B.2B2A7B3.
2B2.11B3.2B2.22B8.10B.4B2.4B$169.4D10.22B2A34B9.10B.4B2.4B$168.4D12.
21B2A32B12.10B.4B2.4B$167.4D13.54B14.10B.4B2.4B$166.4D14.54B15.10B.4B
2.4B$165.4D14.55B16.10B.4B2.4B$164.4D13.B.13B2.B4.13B.4B4.13B17.10B.
4B2.4B$163.4D13.2AB.12B7.7B.B5.3B5.3B4.6B18.10B.4B2.4B$162.4D14.2A14B
19.4B4.4B5.7B18.10B.4B2.4B$161.4D16.2B.11B20.2A6.2A7.6B20.10B.4B2.4B$
160.4D20.11B21.A7.A6.6B22.10B.4B2.4B$159.4D21.10B19.3A5.3A7.6B23.10B.
4B2.4B$158.4D14.2A5.7B23.A7.A8.8B23.10B.4B2.4B$157.4D16.A6.6B41.6B25.
10B.4B2.4B$156.4D17.A.AB2.8B40.7B25.10B.4B2.4B$155.4D19.2AB2.9B37.11B
24.10B.4B2.4B$154.4D22.12B35.B.2B2A9B23.10B.4B2.4B$153.4D23.12B34.2A
3B2A9B24.10B.4B2.4B$152.4D24.10B.B2A32.2A14B25.10B.4B2.4B$151.4D26.8B
2.BA.A32.14B27.10B.4B2.4B$150.4D26.8B6.A30.5B2.B2.2B.3B28.10B.4B2.4B$
149.4D28.8B5.2A29.2A4.3B5.2A29.10B.4B2.4B$148.4D30.7B37.A4.B2AB4.A31.
10B.4B2.4B$147.4D28.11B33.3A6.2A6.3A29.10B.4B2.4B$146.4D28.12B33.A18.
A30.10B.4B2.4B$145.4D29.12B84.10B.4B2.4B$144.4D30.11B86.10B.4B2.4B$
143.4D31.8B.4B85.10B.4B2.4B$142.4D32.7B4.2A86.10B.4B2.4B$141.4D33.7B
4.A87.11B.4B2.4B$140.4D34.6B6.3A84.12B.4B2.4B$139.4D34.7B8.A83.14B.4B
2.4B$138.4D34.8B92.20B2.4B$137.4D34.8B93.21B2.4B$136.4D35.8B92.10B.7B
.4B2.4B$135.4D34.2AB2.6B90.12B.7B.4B.5B$41.4B89.4D34.A.AB.7B80.2A8.
13B.7B.10B$42.4B87.4D35.A4.6B15.2A65.A9.11B3.7B.10B$43.4B85.4D35.2A4.
8B4.B8.A66.A.AB4.12B5.7B.10B6.B$44.4B83.4D43.B2A6B.4B3.BA.A52.2A13.2A
B.15B6.18B4.2B$45.4B81.4D43.2B2A13B.B2A52.B2AB14.17B7.18B2.3B$46.4B
79.4D45.18B55.2B15.17B8.22B$47.4B77.4D47.17B50.B3.2B17.17B.B6.20B$48.
4B75.4D51.13B50.2AB.4B15.19B2A6.18B$49.4B73.4D51.12B52.2A8B11.19B.B2A
7.18B$50.4B71.4D52.10B55.B.B2A6B2.2B2.20B4.B9.18B$51.4B69.4D52.11B58.
2A32B15.18B$52.4B67.4D53.7B.2B59.24B.9B16.18B$53.4B65.4D53.11B55.28B
2.7B18.12B2.4B$54.4B63.4D55.11B54.28B2.7B19.7B.4B2.4B$55.4B61.4D56.
11B53.2A26B4.6B20.7B.4B2.6B$56.4B59.4D57.11B53.2A14B.4B10.7B20.8B.4B
2.4B$57.4B57.4D56.2AB2.8B54.B.11B2.4B12.6B20.9B.4B2.4B$58.4B55.4D56.A
.AB3.7B56.10B2.4B13.7B19.2B.7B.4B2.4B$59.4B53.4D57.A6.7B57.14B14.6B
20.B3.7B.4B2.4B$60.4B51.4D57.2A7.6B56.14B15.5B26.7B.4B.5B$61.4B49.4D
67.7B56.13B14.6B27.7B.10B$62.4B47.4D68.8B55.13B14.4B30.7B.10B$63.4B
45.4D70.8B56.2B.8B14.2B2AB30.7B.10B$64.4B43.4D71.9B58.8B16.2A32.7B.
10B$65.4B41.4D71.6B.4B56.9B51.7B.10B$66.4B39.4D72.7B.4B54.10B52.18B$
67.4B37.4D74.6B2.4B52.4B.7B52.18B$68.4B35.4D75.6B3.4B50.4B2.8B52.18B$
69.4B33.4D76.6B4.4B48.4B4.8B52.18B$70.4B31.4D76.8B4.4B46.4B5.8B53.18B
$71.4B29.4D76.8B6.4B44.4B5.6B2.B2A52.18B$72.4B27.4D77.9B6.4B42.4B6.7B
.BA.A52.18B$73.4B25.4D78.9B7.4B40.4B8.6B4.A53.18B$74.4B23.4D78.10B8.
4B38.4B9.6B4.2A52.14B.4B$75.4B21.4D79.3B2A5B9.4B36.4B10.6B58.9B.4B2.
4B$76.4B19.4D74.2A3.4B2A5B10.4B34.4B10.8B57.10B.4B2.4B$77.4B17.4D76.A
3.11B11.4B32.4B10.8B59.10B.4B2.4B$78.4B15.4D77.A.A12B12.4B30.4B11.9B
59.10B.4B2.4B$79.4B13.4D79.2A2.8B15.4B28.4B12.9B60.10B.4B2.4B$80.4B
11.4D85.7B16.4B26.4B12.10B61.10B.4B2.4B$81.4B9.4D87.6B17.4B24.4B13.3B
2A5B62.10B.4B2.4B$82.4B7.4D88.6B2.2A14.4B22.4B8.2A3.4B2A5B63.10B.4B2.
4B$83.4B5.4D88.9BA.A14.4B20.4B10.A3.11B64.10B.4B2.4B$84.4B3.4D88.9B3.
A15.4B18.4B11.A.A12B65.10B.4B2.4B$85.4B.4D89.9B3.2A15.4B16.4B13.2A2.
8B71.7B.4B2.4B$86.3B4D90.9B21.3B15.4B19.7B5.2A65.7B.4B2.4B$87.B4D91.
9B22.4B12.4B22.7B2.B2A2B64.7B.4B2.4B$87.4DB90.11B23.2A11.4B22.9B2.4B
6.2A57.7B.4B2.4B$86.4D3B89.11B23.A11.4B18.2B.11B.6B5.A56.9B2.4B2.4B$
85.4D.4B87.12B24.3A7.4B19.22B.BA.A55.11B2.4B2.4B$84.4D3.4B85.14B4.B
21.A5.4B19.23B.B2A57.17B2.4B$83.4D5.4B83.4B.10B3.3B19.2A4.4B20.25B59.
18B2.4B$82.4D7.4B82.15B2.6B17.9B6.2A10.28B58.20B2.4B$81.4D9.4B79.2AB.
13B.7B2.4B13.6B7.A11.28B57.17B.4B2.4B$80.4D11.4B77.A.AB.29B2.2B2.B3.
6B5.2A.A9.29B58.18B.4B2.4B$79.4D13.4B76.A4.45B4.A2.A10.28B58.19B2.4B
2.4B$78.4D15.4B74.2A4.46B3.B2A10.28B39.A19.20B2.4B2.4B$77.4D17.4B78.
21B2A13B2A14B11.26B39.3A20.20B2.4B2.4B$76.4D19.4B77.21B2A13B2A13B12.
27B20.2B15.A21.21B4.4B2.4B$75.4D21.4B75.51B15.23B.B2A17.4B14.2A20.22B
4.4B2.4B$74.4D23.4B75.26B5.B.17B18.20B.BA.A16.4B15.B20.23B4.4B2.4B$
73.4D25.4B75.20B2.B10.15B23.16B4.A12.B2.6B14.3B19.17B2.4B4.4B2.4B$72.
4D27.4B71.B.B.20B12.15B22.18B3.2A8.B.2AB.2B2A2B13.6B16.18B3.4B4.4B2.
4B$71.4D29.4B69.2A24B12.13B22.20B14.2A3BA2BA3B.B8.10B11.20B4.4B4.4B2.
4B$70.4D31.4B68.2A24B10.13B23.20B16.2B.2B2A7B3.2B2.11B3.2B2.22B6.4B4.
4B2.4B$69.4D33.4B68.2B.12B2.5B2.B2A6.A.2A4.8B21.18B22.22B2A34B7.4B4.
4B2.4B$68.4D35.4B69.13B3.4B2.BA.A3.3AB2A6.6B22.16B24.21B2A32B10.4B4.
4B2.4B$67.4D37.4B66.B.11B14.A2.A4.B8.5B23.13B26.54B12.4B4.4B2.4B$66.
4D39.4B64.2A12B14.2A2.3A.2A9.B.B23.5B2A2B.3B26.54B13.4B4.4B2.4B$65.4D
41.4B63.2AB.10B20.A.A9.3B26.3B2A2B2.4B23.55B14.4B4.4B2.4B$64.4D43.4B
63.B4.6B.B2A18.A.A9.B2AB25.8B3.2A21.B.13B2.B4.13B.4B4.13B15.4B4.4B2.
4B$63.4D45.4B69.4B.BA.A18.A11.2A25.8B4.A21.2AB.12B7.7B.B5.3B5.3B4.6B
16.4B4.4B2.4B$62.4D47.4B66.5B5.A57.8B5.3A18.2A14B19.4B4.4B5.7B16.4B4.
4B2.4B$61.4D49.4B65.2A8.2A56.7B8.A19.2B.11B20.2A6.2A7.6B18.4B4.4B2.4B
$60.4D51.4B65.A66.7B31.11B21.A7.A6.6B20.4B4.4B2.4B$59.4D53.4B61.3A68.
6B7.A23.10B19.3A5.3A7.6B21.4B4.4B2.4B$58.4D55.4B60.A70.6B6.A.A14.2A5.
7B23.A7.A8.8B21.4B4.4B2.4B$57.4D57.4B131.5B6.ABAB14.A6.6B41.6B23.4B4.
4B2.4B$56.4D59.4B130.6B4.2AB3A13.A.AB2.8B40.7B23.4B4.4B2.4B$55.4D61.
4B128.6B4.4B3.A13.2AB2.9B37.11B22.4B4.4B2.4B$54.4D63.4B127.7B2.2B2AB
3A16.12B35.B.2B2A9B21.4B4.4B2.4B$53.4D65.4B127.10B2A.A18.12B34.2A3B2A
9B22.4B4.4B2.4B$52.4D67.4B126.10B22.10B.B2A32.2A14B23.4B4.4B2.4B$51.
4D69.4B124.3B2A6B23.8B2.BA.A32.14B25.4B4.4B2.4B$50.4D71.4B117.2A5.2B
2A6B22.8B6.A30.5B2.B2.2B.3B26.4B4.4B2.4B$49.4D73.4B117.A5.10B23.8B5.
2A29.2A4.3B5.2A27.4B4.4B2.4B$48.4D75.4B116.A.AB2.11B23.7B37.A4.B2AB4.
A29.4B4.4B2.4B$47.4D77.4B116.2AB.12B20.11B33.3A6.2A6.3A27.4B4.4B2.4B$
46.4D79.4B117.15B18.12B33.A18.A28.4B4.4B2.4B$45.4D81.4B116.16B17.12B
82.4B4.4B2.4B$44.4D83.4B115.16B.2B14.11B84.4B4.4B2.4B$43.4D85.4B114.
18B2A13.8B.4B83.4B4.4B2.4B$42.4D87.4B112.17B.B2A13.7B4.2A84.4B4.4B2.
4B$41.4D89.4B110.4B2.8B.4B.B14.7B4.A86.4B4.4B2.4B$40.4D91.4B108.4B4.
7B21.6B6.3A83.4B5.4B2.4B$39.4D93.4B106.4B5.6B21.7B8.A83.5B5.4B2.4B$
38.4D95.4B104.4B6.4B22.8B91.9B3.4B2.4B$37.4D97.4B102.4B5.A3B23.8B92.
9B4.4B2.4B$36.4D99.4B100.4B5.A.AB23.9B92.9B5.4B2.4B$35.4D101.4B98.4B
6.A.A23.4B.6B90.10B6.4B2.4B$34.4D103.4B96.4B8.A23.4B.7B89.12B6.4B2.4B
$33.4D105.4B94.4B6.3A23.4B2.6B15.2A63.2A8.13B6.4B2.4B$32.4D107.4B92.
4B7.A24.4B3.8B4.B8.A65.A9.11B8.4B2.4B$31.4D109.4B90.4B32.4B5.B2A6B.4B
3.BA.A65.A.AB4.12B10.4B2.4B$30.4D111.4B88.4B32.4B5.2B2A13B.B2A52.2A
13.2AB.15B11.4B2.4B$29.4D113.4B86.4B32.4B7.18B53.B2AB14.17B12.4B2.4B$
28.4D115.4B84.4B32.4B9.17B54.2B15.17B13.4B2.4B$27.4D117.4B82.4B32.4B
13.13B50.B3.2B17.17B.B11.4B2.4B$26.4D119.4B80.4B32.4B13.12B51.2AB.4B
15.19B2A11.4B2.4B$25.4D121.4B78.4B32.4B14.10B53.2A8B11.19B.B2A12.4B2.
4B$24.4D123.4B76.4B32.4B14.11B54.B.B2A6B2.2B2.20B4.B14.4B2.4B$23.4D
125.4B62.2A10.4B32.4B15.7B.2B58.2A32B20.4B2.4B$22.4D127.4B60.B2A2B7.
4B32.4B15.11B58.24B.9B21.4B2.4B$21.4D129.4B60.4B6.4B32.4B17.11B53.28B
2.7B23.4B2.4B$20.4D131.4B60.3B5.4B32.4B18.11B53.28B2.7B24.4B2.4B$19.
4D133.4B44.2A5.3B4.3B5.4B32.4B19.11B52.2A26B4.6B25.4B2.4B$18.4D135.4B
44.A4.4B2.7B2.4B32.4B18.2AB2.8B52.2A14B.4B10.7B26.4B2.4B$17.4D137.4B
43.A.AB.18B32.4B18.A.AB3.7B53.B.11B2.4B12.6B27.4B2.4B$16.4D139.4B43.
2AB.17B32.4B19.A6.7B55.10B2.4B13.7B27.4B2.4B$15.4D141.4B44.18B32.4B
19.2A7.6B56.14B14.6B29.4B2.4B$14.4D143.4B43.18B31.4B29.7B54.14B15.5B
31.4B2.4B$13.4D145.4B41.18B31.4B30.8B54.13B14.6B32.4B2.4B$12.4D147.4B
40.18B30.4B32.8B53.13B14.4B35.4B2.4B$11.4D149.4B39.18B29.4B33.9B54.2B
.8B14.2B2AB35.4B2.4B$10.4D151.4B38.18B28.4B33.6B.4B56.8B16.2A37.4B2.
4B$9.4D153.4B38.16B28.4B34.7B.4B54.9B56.4B2.4B$8.4D155.4B35.18B27.4B
36.6B2.4B52.10B57.4B2.4B$3.3D.4D157.4B32.A.2A4.12B26.4B37.6B3.4B50.4B
.7B57.4B2.4B$2.8D159.4B29.3AB2A4.13B24.4B38.6B4.4B48.4B2.8B57.4B2.4B$
2.8D160.4B27.A4.B4.15B22.4B38.8B4.4B46.4B4.8B57.4B2.4B$12D159.4B27.3A
.2A3.16B20.4B38.8B6.4B44.4B5.8B58.4B2.4B$D2C9D160.4B28.A.A4.17B18.4B
39.9B6.4B42.4B5.6B2.B2A57.4B2.4B$.2C8D162.4B27.A.A4.16B18.4B40.9B7.4B
40.4B6.7B.BA.A57.4B2.4B$2.7D165.4B27.A7.13B18.4B40.10B8.4B38.4B8.6B4.
A58.4B2.4B$3.6D166.4B38.2B2A5B17.4B41.3B2A5B9.4B36.4B9.6B4.2A58.4B2.
4B$4.5D167.4B37.2B2A3B18.4B36.2A3.4B2A5B10.4B34.4B10.6B65.4B2.4B$4.D
2C3D167.4B35.8B17.4B38.A3.11B11.4B32.4B10.8B65.4B2.4B$5.2C4D167.4B35.
8B15.4B39.A.A12B12.4B30.4B10.8B67.4B2.4B$8.4D167.4B34.8B14.4B41.2A2.
8B15.4B28.4B11.9B67.4B2.4B$9.4D167.4B34.7B13.4B47.7B16.4B26.4B12.9B
68.4B2.4B$10.4D167.4B33.7B12.4B49.6B17.4B24.4B12.10B69.4B2.4B$11.4D
167.4B24.A7.6B12.4B50.6B2.2A14.4B22.4B13.3B2A5B70.4B2.4B$12.4D167.4B
22.A.A6.6B11.4B50.9BA.A14.4B20.4B8.2A3.4B2A5B71.4B2.4B$13.4D167.4B21.
A.A6.5B11.4B50.9B3.A15.4B18.4B10.A3.11B72.4B2.4B$14.4D167.4B18.3A.2A
4.6B10.4B51.9B3.2A15.4B16.4B11.A.A12B73.4B2.4B$15.4D167.4B16.A4.B6.6B
8.4B52.9B21.3B15.4B13.2A2.8B76.4B2.4B$16.4D167.4B16.3AB2AB3.7B8.3B53.
9B22.4B12.4B19.7B5.2A70.4B2.4B$17.4D167.4B17.A.2AB.8B7.4B53.11B23.2A
11.4B22.7B2.B2A2B69.4B2.4B$18.4D167.4B20.10B7.2A55.11B23.A11.4B22.9B
2.4B6.2A62.4B2.4B$19.4D167.4B19.6B2A3B7.A54.12B24.3A7.4B18.2B.11B.6B
5.A64.4B2.4B$20.4D167.4B18.6B2A2B5.3A54.14B4.B21.A5.4B19.22B.BA.A65.
4B2.4B$21.4D167.4B17.10B5.A55.4B.10B3.3B19.2A4.4B19.23B.B2A67.4B2.4B$
22.4D167.4B15.11B2.BA.A55.15B2.6B17.9B6.2A12.25B70.4B2.4B$23.4D167.4B
14.12B.B2A54.2AB.13B.7B2.4B13.6B7.A10.28B71.4B2.4B$24.4D167.4B12.15B
55.A.AB.29B2.2B2.B3.6B5.2A.A10.28B72.4B2.4B$25.4D167.4B10.16B55.A4.
45B4.A2.A9.29B74.4B2.4B$26.4D167.4B6.2B.16B54.2A4.46B3.B2A10.28B76.4B
2.4B$27.4D167.4B4.2A18B59.21B2A13B2A14B10.28B78.4B2.4B$28.4D167.4B3.
2AB.17B58.21B2A13B2A13B11.26B81.4B2.4B$29.4D167.4B3.B.4B.8B2.4B56.51B
12.27B81.4B2.4B$30.4D167.4B9.7B4.4B56.26B5.B.17B14.23B.B2A80.4B2.4B$
31.4D167.4B9.6B5.4B56.20B2.B10.15B18.20B.BA.A80.4B2.4B$32.4D167.4B10.
4B6.4B52.B.B.20B12.15B22.16B4.A80.5B2.4B$33.4D167.4B11.3BA5.4B50.2A
24B12.13B22.18B3.2A79.6B2.4B$34.4D167.4B11.BA.A5.4B49.2A24B10.13B23.
20B82.9B.4B$35.4D167.4B11.A.A6.4B49.2B.12B2.5B2.B2A6.A.2A4.8B21.20B
83.9B2.4B$36.4D167.4B11.A8.4B50.13B3.4B2.BA.A3.3AB2A6.6B20.18B86.10B
2.4B$37.4D167.4B11.3A6.4B47.B.11B14.A2.A4.B8.5B21.16B86.12B2.4B$38.4D
167.4B12.A7.4B45.2A12B14.2A2.3A.2A9.B.B22.13B87.14B2.4B$39.4D167.4B
20.4B44.2AB.10B20.A.A9.3B23.5B2A2B.3B77.2A8.15B2.4B$40.4D167.4B20.4B
44.B4.6B.B2A18.A.A9.B2AB24.3B2A2B2.4B76.A9.15B2.4B$41.4D167.4B20.4B
50.4B.BA.A18.A11.2A25.8B3.2A76.A.AB4.12B2.4B2.4B$42.4D167.4B20.4B47.
5B5.A56.8B4.A63.2A13.2AB.15B3.4B2.4B$43.4D167.4B20.4B46.2A8.2A55.8B5.
3A2.B56.B2AB14.17B4.4B2.4B$44.4D167.4B20.4B46.A65.7B8.A.2B57.2B15.17B
5.4B2.4B$45.4D167.4B20.4B42.3A66.7B9.3B52.B3.2B17.17B.B3.4B2.4B$46.4D
167.4B20.4B41.A69.6B7.A4B51.2AB.4B15.19B2A3.4B2.4B$47.4D167.4B20.4B
110.6B6.ABA2B52.2A8B11.19B.B2A4.4B2.4B$48.4D167.4B20.4B110.5B6.ABAB
54.B.B2A6B2.2B2.20B4.B6.4B2.4B$49.4D167.4B20.4B109.6B4.2AB3A56.2A32B
12.4B2.4B$50.4D167.4B20.4B107.6B4.4B3.A55.24B.9B13.4B2.4B$51.4D167.4B
20.4B106.7B2.2B2AB3A52.28B2.7B15.4B2.4B$52.4D167.4B20.4B106.10B2A.A
54.28B2.7B16.4B2.4B$53.4D167.4B20.4B105.10B57.2A26B4.6B17.4B2.4B$54.
4D167.4B20.4B103.3B2A6B57.2A14B.4B10.7B18.4B2.4B$55.4D167.4B20.4B96.
2A5.2B2A6B58.B.11B2.4B12.6B19.4B2.4B$56.4D167.4B20.4B96.A5.10B60.10B
2.4B13.7B19.4B2.4B$57.4D167.4B20.4B95.A.AB2.11B46.A13.14B14.6B21.4B2.
4B$58.4D167.4B20.4B95.2AB.12B44.3A12.14B15.5B23.4B2.4B$59.4D167.4B20.
4B96.15B42.A16.13B14.6B24.4B2.4B$60.4D167.4B20.4B95.16B34.A6.2A15.13B
14.4B27.4B2.4B$61.4D167.4B20.4B94.16B.2B30.A.A3.4B17.2B.8B14.2B2AB27.
4B2.4B$62.4D167.4B20.4B93.18B2A30.A.5B22.8B16.2A29.4B2.4B$63.4D167.4B
20.4B91.17B.B2A31.7B20.9B48.4B2.4B$64.4D167.4B20.4B89.4B2.8B.4B.B32.
10B.B15.9B49.4B2.4B$65.4D167.4B20.4B87.4B4.7B39.9B.B2A12.2A2B.7B49.4B
2.4B$66.4D167.4B20.4B85.4B5.6B40.3B2A6B2A11.A.AB2.8B49.4B2.4B$67.4D
167.4B20.4B83.4B6.4B42.3B2A4B.2B12.A6.8B49.4B2.4B$68.4D167.4B20.4B81.
4B5.A3B39.2B2.10B14.2A6.8B50.4B2.4B$69.4D167.4B20.4B79.4B5.A.AB39.2A
13B21.6B2.B2A49.4B2.4B$70.4D167.4B20.4B77.4B6.A.A40.2A13B21.7B.BA.A
49.4B2.4B$71.4D167.4B20.4B75.4B8.A42.2B.11B22.6B4.A50.4B2.4B$72.4D
167.4B20.4B73.4B6.3A46.9B.B2A20.6B4.2A50.4B2.4B$73.4D167.4B20.4B71.4B
7.A50.7B.BA.A19.6B57.4B2.4B$74.4D113.A53.4B20.4B69.4B58.7B5.A18.8B57.
4B2.4B$75.4D112.3A7.2A43.4B20.4B67.4B58.8B5.2A16.8B59.4B2.4B$76.4D
114.A6.A5.A39.4B20.4B65.4B58.4B2.4B22.9B59.4B2.4B$77.4D112.2A3.BA.A3.
3A40.4B20.4B63.4B58.4B4.4B21.9B60.4B2.4B$78.4D111.4B.B2A3.A44.4B20.4B
61.4B58.4B6.4B19.10B61.4B2.4B$79.4D112.4B5.2A44.4B20.4B59.4B58.4B8.4B
18.3B2A5B62.4B2.4B$80.4D110.5B3.4B45.4B20.4B57.4B58.4B10.4B11.2A3.4B
2A5B63.4B2.4B$81.4D95.A12.11B48.4B20.4B55.4B58.4B12.4B11.A3.11B64.4B
2.4B$82.4D94.3A10.13B47.4B20.4B53.4B58.4B14.4B10.A.A12B65.4B2.4B$83.
4D96.A8.16B46.4B20.4B51.4B58.4B16.4B10.2A2.8B68.4B2.4B$84.4D94.2A6.
19B46.4B20.4B49.4B58.4B18.4B14.7B5.2A62.4B2.4B$85.4D93.5B2.20B47.4B
20.4B47.4B58.4B20.4B15.7B2.B2A2B61.4B2.4B$86.4D94.25B48.4B20.4B45.4B
58.4B22.4B13.9B2.4B6.2A54.4B2.4B$87.4D92.2A24B49.4B20.4B43.4B58.4B24.
4B7.2B.11B.6B5.A56.4B2.4B$88.4D91.2A22B52.4B20.4B41.4B58.4B26.4B6.22B
.BA.A57.4B2.4B$89.4D91.B.21B53.4B20.4B39.4B58.4B28.4B4.23B.B2A59.4B2.
4B$90.4D92.22B53.4B20.4B37.4B58.4B30.4B3.25B62.4B2.4B$91.4D92.9B.4B3.
5B53.4B20.4B35.4B58.4B32.31B63.4B2.4B$92.4D92.8B2.5B3.4B53.4B20.4B33.
4B58.4B34.30B64.4B2.4B$93.4D92.7B5.2A4.4B53.4B20.4B31.4B58.4B35.29B
66.4B2.4B$94.4D88.11B4.A6.4B53.4B20.4B29.4B58.4B36.28B68.4B2.4B$95.4D
86.12B5.3A4.4B53.4B20.4B27.4B58.4B36.28B70.4B2.4B$96.4D85.12B7.A5.4B
53.4B20.4B25.4B58.4B37.26B73.4B2.4B$97.4D84.11B15.4B53.4B20.4B23.4B
58.4B38.27B73.4B2.4B$98.4D83.B3D4B.4B14.4B53.4B20.4B21.4B58.4B41.23B.
B2A72.4B2.4B$99.4D82.2BD4B4.2A15.4B53.4B20.4B19.4B58.4B45.20B.BA.A72.
4B2.4B$100.4D81.2B3D2B4.A17.4B53.4B20.4B17.4B58.4B50.16B4.A73.4B2.4B$
101.4D80.6B6.3A15.4B53.4B20.4B15.4B58.4B50.18B3.2A73.4B2.4B$102.4D78.
7B8.A16.4B53.4B20.4B13.4B58.4B50.20B78.4B2.4B$103.4D76.8B26.4B53.4B
20.4B11.4B58.4B50.20B80.4B2.4B$104.4D74.8B28.4B53.4B20.4B9.4B58.4B50.
18B84.4B2.4B$105.4D73.8B29.4B53.4B20.4B7.4B58.4B52.16B86.4B2.4B$106.
4D70.2AB2.6B29.4B53.4B20.4B5.4B58.4B54.13B89.4B2.4B$107.4D68.A.AB.7B
30.4B53.4B20.4B3.4B58.4B55.5B2A2B.3B90.4B2.4B$108.4D67.A4.6B32.4B53.
4B20.4B.4B58.4B57.4B2A2B2.4B89.4B2.4B$109.4D65.2A4.6B33.4B53.4B20.7B
58.4B58.9B3.2A90.4B2.4B$110.4D70.6B34.4B53.4B20.5B58.4B59.3B3D2B4.A
92.4B2.4B$111.4D68.8B34.4B53.4B19.5B57.4B60.4BD3B5.3A90.4B2.4B$112.4D
68.8B34.4B53.4B17.7B55.4B61.2B3D2B8.A91.4B2.4B$113.4D66.9B35.4B53.4B
15.4B.4B53.4B62.8B100.4B2.4B$114.4D65.9B36.4B53.4B10.2B.4B3.4B51.4B
64.8B100.4B2.4B$115.4D64.10B36.4B53.4B10.5B5.4B49.4B65.9B100.4B2.4B$
116.4D63.5B2A3B37.4B7.A45.4B9.4B7.4B47.4B66.10B100.4B2.4B$117.4D62.5B
2A4B3.2A32.4B6.3A44.4B7.4B9.4B45.4B67.11B100.4B2.4B$118.4D61.11B3.A
34.4B8.A44.4B5.4B11.4B43.4B68.6B2.4B100.4B2.4B$119.4D60.12BA.A35.4B6.
A.A44.4B3.4B13.4B41.4B69.7B2.4B100.4B2.4B$120.4D61.8B2.2A37.4B5.A.AB
44.4B.4B15.4B39.4B71.6B3.4B100.4B2.4B$121.4D53.2A5.7B43.4B5.A3B44.7B
17.4B37.4B72.6B4.4B100.4B2.4B$122.4D50.2B2AB2.7B46.4B6.4B43.5B19.4B
35.4B73.6B5.4B100.4B2.4B$123.4D41.2A6.4B2.9B46.4B5.6B41.5B20.4B33.4B
73.8B5.4B100.4B2.4B$124.4D41.A5.6B.11B.2B42.4B4.7B39.7B20.4B31.4B73.
8B7.4B100.4B2.4B$125.4D40.A.AB.22B43.4B2.8B.4B.B31.4B.4B20.4B29.4B74.
9B7.4B100.4B2.4B$126.4D40.2AB.23B43.17B.B2A29.4B3.4B20.4B27.4B75.9B8.
4B100.4B2.4B$127.4D41.25B44.18B2A28.4B5.4B20.4B25.4B75.10B9.4B100.4B
2.4B$128.4D40.28B41.16B.2B28.4B7.4B20.4B23.4B76.3B2A5B10.4B100.4B2.4B
$129.4D39.28B41.16B30.4B9.4B20.4B21.4B71.2A3.4B2A5B11.4B99.4B3.4B$
130.4D39.29B39.15B30.4B11.4B20.4B19.4B73.A3.11B12.4B98.5B3.4B$131.4D
39.28B37.2AB.12B30.4B13.4B20.4B17.4B74.A.A7BD4B13.4B96.9B.4B$132.4D
39.28B35.A.AB2.11B29.4B15.4B20.4B15.4B76.2A2.4B3DB16.4B95.9B2.4B$133.
4D40.26B35.A5.10B29.4B17.4B20.4B13.4B82.2B2D2BD17.4B94.9B3.4B$134.4D
38.27B34.2A5.2B2A6B28.4B19.4B20.4B11.4B85.5B18.4B92.10B4.4B$135.4D35.
2AB.23B42.3B2A6B27.4B21.4B20.4B9.4B86.6B5.2A11.4B90.12B4.4B$136.4D33.
A.AB.20B46.10B26.4B23.4B20.4B7.4B86.6B6.A13.4B79.2A8.13B4.4B$137.4D
32.A4.16B50.8B.B2A.A21.4B25.4B20.4B5.4B86.9B.BA.A14.4B79.A9.11B6.4B$
138.4D30.2A3.18B48.7B3.B2AB3A18.4B27.4B20.4B3.4B86.12B2A16.4B78.A.AB
4.12B8.4B$139.4D33.20B47.6B6.B4.A16.4B29.4B20.4B.4B87.12B19.4B63.2A
13.2AB.15B9.4B$140.4D33.20B47.6B4.2A.3A16.4B31.4B20.7B88.12B20.4B61.B
2AB14.17B10.4B$141.4D35.18B46.5B6.A.A17.4B33.4B20.5B87.2AB.10B21.4B
61.2B15.17B11.4B$142.4D35.16B46.6B6.A.A16.4B35.4B19.5B86.A.AB2.9B22.
4B55.B3.2B17.17B.B9.4B$143.4D36.13B47.6B7.A16.4B37.4B17.7B85.A6.8B23.
4B53.2AB.4B15.19B2A9.4B$144.4D35.3B.2B2A5B46.7B23.4B39.4B15.4B.4B83.
2A5.8B25.4B52.2A8B11.19B.B2A10.4B$145.4D32.4B2.2B2A3B48.7B8.A13.4B41.
4B13.4B3.4B89.7B27.4B52.B.B2A6B2.2B2.20B4.B12.4B$146.4D31.2A3.8B48.8B
5.3A12.4B43.4B11.4B5.4B87.11B25.4B54.2A32B18.4B$147.4D31.A4.8B47.8B4.
A14.4B45.4B9.5B6.4B86.12B25.4B53.24B.9B19.4B$148.4D27.3A5.8B48.8B3.2A
12.4B47.4B7.4B9.4B85.12B26.4B48.28B2.7B21.4B$149.4D26.A8.7B48.3B2A2B
2.4B11.4B49.4B5.4B11.4B85.11B27.4B47.28B2.7B22.4B$150.4D34.7B46.5B2A
2B.3B12.4B51.4B3.4B13.4B82.4B.4B3DB28.4B45.2A26B4.6B23.4B$151.4D25.A
7.6B47.13B11.4B53.4B.4B15.4B81.2A4.4BD2B29.4B44.2A14B.4B10.7B24.4B$
152.4D23.A.A6.6B46.16B8.4B55.7B17.4B81.A4.2B3D2B30.4B44.B.11B2.4B12.
6B25.4B$153.4D22.A.A6.5B46.17B7.4B57.5B19.4B77.3A6.6B31.4B45.10B2.4B
13.7B25.4B$154.4D19.3A.2A4.6B47.16B6.4B58.5B20.4B76.A8.7B31.4B45.14B
14.6B27.4B$155.4D17.A4.B6.6B47.15B5.4B58.7B20.4B84.8B31.4B43.14B15.5B
29.4B$156.4D17.3AB2AB3.7B41.2A5.13B5.4B58.4B.4B20.4B84.8B31.4B43.13B
14.6B30.4B$157.4D18.A.2AB.8B43.A6.10B6.4B58.4B3.4B20.4B83.8B32.4B42.
13B14.4B33.4B$158.4D21.10B43.A.AB3.10B5.4B58.4B5.4B20.4B81.6B2.B2A31.
4B43.2B.4B3DB14.2B2AB33.4B12.A$159.4D20.6B2A3B43.2AB.15B.4B58.4B7.4B
20.4B80.7B.BA.A31.4B45.5BD2B16.2A35.4B9.3A$160.4D19.6B2A2B5.2A39.21B
58.4B9.4B20.4B80.6B4.A32.4B43.4B3D2B54.4B7.A$161.4D18.10B5.A41.19B58.
4B11.4B20.4B79.6B4.2A32.4B42.9B55.4B6.2A7.A27.A$162.4D16.11B2.BA.A33.
2A5.20B57.4B13.4B20.4B78.6B39.4B39.2A2B.7B55.4B3.4B5.3A27.3A$163.4D
15.12B.B2A35.A4.22B55.4B15.4B20.4B76.8B39.4B37.A.AB2.8B55.8B6.A33.A
11.A$164.4D13.15B37.A.AB.23B53.4B17.4B20.4B74.8B41.4B36.A6.8B55.10B3.
2A31.2A9.3A$165.4D11.16B38.2AB.22B53.4B19.4B20.4B73.9B41.4B34.2A6.9B
55.10B.3B4.B26.B9.A48.A$166.4D7.2B.16B40.23B53.4B21.4B20.4B72.9B42.4B
40.6B.4B52.14B5.3B23.3B9.2A10.2A33.3A$167.4D5.2A18B40.22B53.4B23.4B
20.4B70.10B43.4B6.A8.2A22.7B.4B50.16B3.6B19.6B5.5B10.A15.A17.A9.2A3.
2A$168.4D4.2AB.17B40.18B55.4B25.4B20.4B69.3B2A5B44.4B5.3A5.B2AB22.6B
2.4B49.16B2.7B2.4B10.10B3.4B9.BA.A15.3A15.2A7.B2AB.B2AB$169.4D4.B.4B.
8B2.4B39.14B.5B52.4B27.4B20.4B62.2A3.4B2A5B45.4B7.A4.3B23.6B3.4B48.
33B2.2B3.11B2.6B4.3B.B2A19.A12.4B4.B3.3B2.2B$170.4D10.7B4.4B39.12B5.
2A51.4B29.4B20.4B62.A3.11B46.4B5.2A5.B.B5.2A15.6B4.4B48.28BD15B2A3BD
9B.7B20.2A11.3B4.4B.3B.3B$171.4D10.6B5.4B40.10B5.A51.4B31.4B20.4B61.A
.A12B47.4B4.10B5.A15.8B4.4B46.27BDBD15B2A2B2D17B20.B11.13B.7B5.2A$
172.4D11.4B6.4B39.9B7.3A47.4B33.4B20.4B61.2A2.8B50.4B5.8B2.BA.A14.8B
6.4B44.25B2AB3D18B2D17B19.3B9.23B5.A$173.4D12.3BA5.4B38.8B10.A46.4B
35.4B20.4B65.7B5.2A44.4B2.11B.B2A15.9B6.4B42.4B.21B2ABD21BD18B16.6B4.
8B.19B.BA.A$174.4D12.BA.A5.4B38.8B55.4B37.4B20.4B66.7B2.B2A2B43.13B2A
3B17.9B7.4B40.4B.48BD20B10.10B2.29B.B2A$175.4D12.A.A6.4B38.3B.4B53.4B
39.4B20.4B64.9B2.4B6.2A36.12B2A3B16.10B8.4B38.4B3.26B5.B.13B3.B.19B2.
2B3.44B$176.4D12.A8.4B37.2B3.4B51.4B41.4B20.4B58.2B.11B.6B5.A38.15B
17.3B2A5B9.4B36.4B6.19B2.B13.B.7B7.13BD15B2A37B$177.4D12.3A6.4B42.4B
49.4B43.4B20.4B57.22B.BA.A39.14B11.2A3.4B2A5B10.4B34.4B8.19B31.6B.4BD
BD15B2A37B$178.4D13.A7.4B42.4B47.4B45.4B20.4B55.23B.B2A40.14B12.A3.
11B11.4B32.4B8.21B28.5B.B2.4B3D53B$179.4D21.4B42.4B45.4B47.4B20.4B54.
25B41.14B.A11.A.A12B12.4B30.4B9.11B.9B28.2A7.4BD53B$180.4D21.4B42.4B
43.4B49.4B20.4B50.28B40.4B.5B5.A.A11.2A2.8B15.4B28.4B10.11B2.5B2.B2A
27.A8.59B$181.4D21.4B42.4B41.4B51.4B20.4B49.28B39.4B2.4B7.A17.7B16.4B
26.4B9.2AB.9B3.4B2.BA.A23.3A16.4B.13B4.25B3.2A$182.4D21.4B42.4B39.4B
53.4B20.4B46.29B39.4B5.2B26.6B17.4B24.4B9.A.AB.8B5.4B4.A23.A19.4B4.B.
7B4.B4.20B3.A$183.4D21.4B42.4B37.4B55.4B20.4B45.28B39.4B5.4B25.6B2.2A
14.4B22.4B10.A4.9B5.4B3.2A43.4B15.2A7.15B6.3A$184.4D21.4B42.4B35.4B
57.4B20.4B43.28B39.4B6.B2AB24.9BA.A14.4B20.4B10.2A5.9B5.4B48.4B14.A
12.11B8.A$185.4D21.4B42.4B33.4B59.4B20.4B42.26B40.4B8.2A24.9B3.A15.4B
18.4B19.3B2.4B5.4B48.4B14.3A8.13B$186.4D21.4B42.4B31.4B61.4B20.4B41.
27B38.4B35.9B3.2A15.4B16.4B21.B4.4B5.4B48.4B15.A7.15B$187.4D21.4B42.
4B29.4B63.4B20.4B42.23B.B2A35.4B36.9B21.3B15.4B28.4B5.4B48.4B21.16B$
188.4D21.4B42.4B27.4B65.4B20.4B44.20B.BA.A33.4B37.9B22.4B12.4B30.4B5.
4B48.4B19.17B$189.4D21.4B42.4B25.4B67.4B20.4B47.16B4.A32.4B37.11B23.
2A11.4B32.4B5.4B48.4B19.16B$190.4D21.4B42.4B23.4B69.4B20.4B45.18B3.2A
30.4B38.11B23.A11.4B34.4B5.4B48.4B19.13B$191.4D21.4B42.4B21.4B71.4B
20.4B43.20B33.4B38.12B24.3A7.4B36.4B5.4B48.4B18.5B2A2B.3B$192.4D21.4B
42.4B19.4B73.4B20.4B41.20B33.4B38.14B4.B21.A5.4B38.4B5.4B48.4B19.3B2A
2B2.4B$193.4D21.4B42.4B17.4B75.4B20.4B39.18B35.4B38.4B.10B3.3B19.2A4.
4B40.4B5.4B48.4B18.8B3.2A$194.4D21.4B42.4B15.4B77.4B20.4B39.16B35.4B
39.15B2.6B17.9B6.2A34.4B5.4B48.4B16.8B4.A$195.4D21.4B42.4B13.4B79.4B
20.4B39.13B36.4B38.2AB.13B.7B2.4B13.6B7.A36.4B5.4B48.4B15.8B5.3A$196.
4D21.4B42.4B11.4B81.4B20.4B38.5B2A2B.3B35.4B38.A.AB.29B2.2B2.B3.6B5.
2A.A37.4B5.4B48.4B14.7B8.A$197.4D21.4B42.4B9.4B83.4B20.4B39.3B2A2B2.
4B32.4B39.A4.45B4.A2.A39.4B5.4B48.4B13.7B$198.4D21.4B42.4B7.4B85.4B
20.4B38.8B3.2A31.4B39.2A4.46B3.B2A41.4B5.4B48.4B13.6B7.AB$199.4D21.4B
42.4B5.4B87.4B20.4B36.8B4.A31.4B45.21B2A13B2A14B43.4B5.4B48.4B12.6B6.
ABA2B$200.4D21.4B42.4B3.4B89.4B20.4B35.8B5.3A27.4B46.21B2A13B2A13B45.
4B5.4B48.4B12.5B6.ABAB$201.4D21.4B42.4B.4B91.4B20.4B34.7B8.A26.4B46.
51B47.4B5.4B48.4B11.6B4.2AB3A$202.4D21.4B42.7B93.4B20.4B33.7B34.4B48.
26B5.B.17B48.4B5.4B48.4B9.6B4.4B3.A$203.4D21.4B42.5B95.4B20.4B33.6B7.
A25.4B50.20B2.B10.15B50.4B5.4B11.A36.4B8.7B2.2B2AB3A$204.4D21.4B41.5B
96.4B20.4B32.6B6.A.A23.4B48.B.B.20B12.15B51.4B5.4B8.3A37.4B8.10B2A.A$
205.4D21.4B39.7B96.4B20.4B32.5B6.A.A22.4B48.2A24B12.13B53.4B5.4B6.A
41.3B8.10B$206.4D21.4B37.4B.4B96.4B20.4B31.6B4.2A.3A19.4B49.2A24B10.
13B56.4B5.4B5.2A42.B2A5.3B2A6B$207.4D21.4B35.4B3.4B96.4B20.4B29.6B6.B
4.A17.4B51.2B.12B2.5B2.B2A6.A.2A4.8B56.4B5.4B2.4B42.BA.A5.2B2A6B$208.
4D21.4B33.4B5.4B96.4B20.4B28.7B3.B2AB3A17.4B54.13B3.4B2.BA.A3.3AB2A6.
6B57.4B5.4B.2B47.A5.10B$209.4D21.4B31.4B7.4B96.4B20.4B28.8B.B2A.A18.
4B53.B.11B14.A2.A4.B8.5B58.4B5.7B46.A.AB2.11B$210.4D21.4B29.4B9.4B96.
4B20.4B27.10B21.4B53.2A12B14.2A2.3A.2A9.B.B59.4B5.6B47.2AB.12B$211.4D
21.4B27.4B11.4B96.4B20.4B25.3B2A6B20.4B54.2AB.10B20.A.A9.3B61.4B5.5B
49.15B$212.4D21.4B25.4B13.4B96.4B20.4B18.2A5.2B2A6B19.4B56.B4.6B.B2A
18.A.A9.B2AB61.4B3.8B7.A39.16B$213.4D21.4B23.4B15.4B96.4B20.4B18.A5.
10B18.4B64.4B.BA.A18.A11.2A63.4B.9B5.3A39.16B.2B$214.4D21.4B21.4B17.
4B96.4B20.4B17.A.AB2.11B16.4B63.5B5.A95.15B3.A42.18B2A$215.4D21.4B19.
4B19.4B96.4B20.4B17.2AB.12B15.4B64.2A8.2A91.2B.17B.2A40.17B.B2A$216.
4D21.4B17.4B21.4B96.4B20.4B18.15B13.4B66.A100.2A22B39.4B2.8B.4B.B$
217.4D21.4B15.4B23.4B96.4B20.4B17.16B11.4B64.3A101.2AB.18B40.4B4.7B$
218.4D21.4B13.4B25.4B96.4B20.4B16.16B.2B7.4B65.A104.B.20B38.4B5.6B$
219.4D21.4B11.4B27.4B96.4B20.4B15.18B2A5.4B174.18B.B36.4B6.4B$220.4D
21.4B9.4B29.4B96.4B20.4B13.17B.B2A4.4B176.20B34.4B5.A3B$221.4D21.4B7.
4B31.4B96.4B20.4B11.4B2.8B.4B.B4.4B177.20B33.4B5.A.AB$222.4D21.4B5.4B
33.4B96.4B20.4B9.4B4.7B10.4B179.18B33.4B6.A.A$223.4D21.4B3.4B35.4B96.
4B20.4B7.4B5.6B10.4B181.5B2A11B31.4B8.A$224.4D21.4B.4B37.4B96.4B20.4B
5.4B6.4B11.4B182.5B2A12B29.4B6.3A$225.4D21.7B39.4B96.4B20.4B3.4B5.A3B
12.4B184.19B27.4B7.A$226.4D21.5B41.4B96.4B20.4B.4B5.A.AB12.4B186.18B
26.4B$227.4D20.5B42.4B96.4B20.7B6.A.A12.4B188.17B25.4B$228.4D18.7B42.
4B96.4B20.5B8.A12.4B189.18B23.4B$229.4D16.4B.4B42.4B96.4B19.5B5.3A12.
4B191.16B23.4B$230.4D14.4B3.4B42.4B96.4B17.7B4.A13.4B193.16B21.4B$
231.4D12.4B5.4B42.4B96.4B15.4B.4B16.4B195.15B.BA17.4B$232.4D10.4B7.4B
42.4B96.4B13.4B3.4B14.4B196.16BA.A15.4B$233.4D8.4B9.4B42.4B96.4B11.4B
5.4B12.4B198.13B.2BA15.4B$234.4D6.4B11.4B42.4B96.4B9.4B7.4B10.4B200.
11B3.B15.4B$235.4D4.4B13.4B42.4B96.4B7.4B9.4B8.4B201.7B22.4B$236.4D2.
4B15.4B42.4B96.4B5.4B11.4B6.4B202.8B.2B17.4B$237.4D4B17.4B42.4B96.4B
3.4B13.4B4.4B203.5B2A3B2A15.4B$238.4D2B19.4B42.4B96.4B.4B15.4B2.4B
204.5B2A3B2A14.4B$239.4D21.4B42.4B96.7B17.8B205.9B.B14.4B$238.2B4D21.
4B42.4B96.5B19.6B205.9B16.4B$237.4B4D21.4B42.4B95.5B20.4B204.A.2AB.3B
17.4B$236.4B2.4D21.4B42.4B93.7B18.6B201.3AB2AB.5B14.4B$235.4B4.4D21.
4B42.4B91.4B.4B16.8B199.A4.B6.2A13.4B$234.4B6.4D21.4B42.4B89.4B3.4B
14.4B2.4B199.3A.2A5.A13.4B$233.4B8.4D21.4B42.4B87.4B5.4B12.4B4.4B200.
A.A7.3A9.4B$232.4B10.4D21.4B42.4B85.4B7.4B10.4B6.4B199.A.A9.A8.4B$
231.4B12.4D21.4B42.4B83.4B9.4B8.4B8.4B199.A18.4B$230.4B14.4D21.4B42.
4B81.4B11.4B6.4B10.4B216.4B$229.4B16.4D21.4B42.4B79.4B13.4B4.4B12.4B
214.4B$228.4B18.4D21.4B42.4B77.4B15.4B2.4B14.4B212.4B$227.4B20.4D21.
4B42.4B75.4B17.8B16.4B210.4B$226.4B22.4D21.4B42.4B73.4B19.6B18.4B208.
4B$225.4B24.4D21.4B42.4B71.4B21.4B20.4B206.4B$224.4B26.4D21.4B42.4B
69.4B21.6B20.4B204.4B$223.4B28.4D21.4B42.4B67.4B21.8B20.4B202.4B$222.
4B30.4D21.4B42.4B65.4B21.4B2.4B20.4B200.4B$221.4B32.4D21.4B42.4B63.4B
21.4B4.4B20.4B198.4B$220.4B34.4D21.4B42.4B61.4B21.4B6.4B20.4B196.4B$
219.4B36.4D21.4B42.4B59.4B21.4B8.4B20.4B194.4B$218.4B38.4D21.4B42.4B
57.4B21.4B10.4B20.4B192.4B$217.4B40.4D21.4B42.4B55.4B21.4B12.4B20.4B
190.4B$216.4B42.4D21.4B42.4B53.4B21.4B14.4B20.4B188.4B$215.4B44.4D21.
4B42.4B51.4B21.4B16.4B20.4B186.4B$214.4B46.4D21.4B42.4B49.4B21.4B18.
4B20.4B184.4B$213.4B48.4D21.4B42.4B47.4B21.4B20.4B20.4B182.4B$212.4B
50.4D21.4B42.4B45.4B21.4B22.4B20.4B180.4B$211.4B52.4D21.4B42.4B43.4B
21.4B24.4B20.4B178.4B$210.4B54.4D21.4B42.4B41.4B21.4B26.4B20.4B176.4B
$209.4B56.4D21.4B42.4B39.4B21.4B28.4B20.4B174.4B$208.4B58.4D21.4B42.
4B37.4B21.4B30.4B20.4B172.4B$207.4B60.4D21.4B42.4B35.4B21.4B32.4B20.
4B170.4B$206.4B62.4D21.4B42.4B33.4B21.4B34.4B20.4B168.4B$205.4B64.4D
21.4B42.4B31.4B21.4B36.4B20.4B166.4B$204.4B66.4D21.4B42.4B29.4B21.4B
38.4B20.4B164.4B$203.4B68.4D21.4B42.4B27.4B21.4B40.4B.3B16.4B162.4B$
202.4B70.4D21.4B42.4B25.4B21.4B31.A10.8B16.4B160.4B$201.4B72.4D21.4B
42.4B23.4B21.4B32.3A7.B.7B17.4B158.4B$200.4B74.4D21.4B42.4B21.4B21.4B
36.A5.10B18.4B156.4B$199.4B76.4D21.4B42.4B19.4B21.4B36.2A5.12B17.4B
154.4B$198.4B78.4D21.4B42.4B17.4B21.4B37.5B.14B17.4B152.4B$197.4B80.
4D21.4B42.4B15.4B21.4B40.18B18.4B150.4B$196.4B82.4D21.4B42.4B13.4B21.
4B38.22B18.4B148.4B$195.4B84.4D21.4B42.4B11.4B21.4B38.23B19.4B146.4B$
194.4B86.4D21.4B42.4B9.4B21.4B38.22B.B2A18.4B144.4B$193.4B88.4D21.4B
42.4B7.4B21.4B38.23B.BA.A18.4B142.4B$192.4B90.4D21.4B42.4B5.4B21.4B
40.22B4.A19.4B140.4B$191.4B92.4D21.4B42.4B3.4B21.4B42.20B5.2A19.4B
138.4B$190.4B94.4D21.4B42.4B.4B21.4B43.19B28.4B136.4B$189.4B96.4D21.
4B42.7B21.4B43.21B28.4B134.4B$188.4B98.4D21.4B42.5B21.4B43.4B.15B.B2A
27.4B132.4B$187.4B100.4D21.4B41.5B20.4B43.4B5.10B3.BA.A27.4B130.4B$
186.4B102.4D21.4B39.7B18.4B43.4B6.10B6.A28.4B128.4B$185.4B104.4D21.4B
37.4B.4B16.4B43.4B5.13B5.2A28.4B126.4B$184.4B106.4D21.4B35.4B3.4B14.
4B43.4B5.15B35.4B124.4B$183.4B108.4D21.4B33.4B5.4B12.4B43.4B6.16B35.
4B122.4B$182.4B110.4D21.4B31.4B7.4B10.4B44.3B7.17B35.4B120.4B$181.4B
112.4D21.4B29.4B9.4B8.4B43.2AB9.16B37.4B118.4B$180.4B114.4D21.4B27.4B
11.4B6.4B43.A.AB11.13B39.4B116.4B$179.4B116.4D21.4B25.4B13.4B4.4B44.A
13.4B.2B2A5B40.4B114.4B$178.4B118.4D21.4B23.4B15.4B2.4B44.2A12.4B2.2B
2A3B43.4B112.4B$177.4B120.4D21.4B21.4B17.8B58.4B2.8B44.4B110.4B$176.
4B122.4D21.4B19.4B19.6B58.4B4.8B44.4B108.4B$175.4B124.4D21.4B17.4B21.
4B58.4B5.8B45.4B106.4B$174.4B126.4D21.4B15.4B21.6B56.4B7.7B46.4B104.
4B$173.4B128.4D21.4B13.4B21.8B54.4B8.7B47.4B102.4B$172.4B130.4D21.4B
11.4B21.4B2.4B52.4B9.6B49.4B100.4B$171.4B132.4D21.4B9.4B21.4B4.4B50.
4B10.6B50.4B98.4B$170.4B134.4D21.4B7.4B21.4B6.4B48.4B11.5B52.4B96.4B$
169.4B136.4D21.4B5.4B21.4B8.4B46.4B11.6B53.4B94.4B$168.4B138.4D21.4B
3.4B21.4B10.4B44.4B13.6B53.4B92.4B$167.4B140.4D21.4B.4B21.4B12.4B43.
3B13.7B54.4B90.4B$166.4B142.4D21.7B21.4B14.4B40.2AB15.6B56.4B88.4B$
165.4B144.4D21.5B21.4B16.4B38.A.AB15.6B57.4B86.4B$164.4B146.4D20.5B
20.4B18.4B37.A18.6B58.4B84.4B$163.4B148.4D18.7B18.4B20.4B35.2A17.8B
58.4B82.4B$162.4B150.4D16.4B.4B16.4B22.4B54.8B58.4B80.4B$161.4B152.4D
14.4B3.4B14.4B24.4B52.9B59.4B78.4B$160.4B154.4D12.4B5.4B12.4B26.4B51.
9B60.4B76.4B$159.4B156.4D10.4B7.4B10.4B28.4B50.10B60.4B10.2A62.4B$
158.4B158.4D8.4B9.4B8.4B30.4B49.5B2A3B61.4B7.2B2AB60.4B$157.4B160.4D
6.4B11.4B6.4B32.4B48.5B2A4B61.4B6.4B60.4B$156.4B162.4D4.4B13.4B4.4B
34.4B47.11B62.4B5.3B60.4B$155.4B164.4D2.4B15.4B2.4B36.4B46.12BA61.4B
5.3B4.3B5.2A44.4B$154.4B166.4D4B17.8B38.4B47.8B2.3A60.4B2.7B2.4B4.A
44.4B$153.4B168.4D2B19.6B40.4B46.7B6.A60.18B.BA.A43.4B$152.4B170.4D
21.4B42.4B45.6B6.2A61.17B.B2A43.4B$151.4B170.2B4D19.6B42.4B40.2A2.6B
70.18B44.4B$150.4B170.4B4D17.8B42.4B38.A.A9B69.18B43.4B$149.4B170.4B
2.4D15.4B2.4B42.4B37.A3.9B69.18B41.4B$148.4B170.4B4.4D13.4B4.4B42.4B
35.2A3.9B69.18B40.4B$147.4B170.4B6.4D11.4B6.4B42.4B39.9B69.18B39.4B$
146.4B170.4B8.4D9.4B8.4B42.4B38.9B69.18B38.4B$145.4B170.4B10.4D7.4B
10.4B42.4B36.11B69.16B38.4B$144.4B170.4B12.4D5.4B12.4B42.4B10.A24.11B
69.18B35.4B$143.4B170.4B14.4D3.4B14.4B42.4B7.3A24.12B68.12B4.2A.A32.
4B$142.4B170.4B16.4D.4B16.4B42.4B5.A21.B4.14B66.13B4.2AB3A29.4B$141.
4B170.4B18.4D3B18.4B42.4B4.2A19.3B3.10B.4B64.15B4.B4.A27.4B$140.4B
170.4B20.4DB20.4B34.2A6.9B17.6B2.15B63.16B3.2A.3A27.4B$139.4B170.4B
21.B4D21.4B34.A7.6B13.4B2.7B.13B.B2A60.17B4.A.A28.4B$138.4B170.4B21.
3B4D21.4B33.A.2A5.6B3.B2.2B2.29B.BA.A60.16B4.A.A27.4B$137.4B170.4B21.
4B.4D21.4B33.A2.A4.45B4.A61.13B7.A27.4B$136.4B170.4B21.4B3.4D21.4B33.
2AB3.46B4.2A60.5B2A2B38.4B$135.4B170.4B21.4B5.4D21.4B33.13BD2C13B2A
21B67.3B2A2B37.4B$134.4B170.4B21.4B7.4D21.4B33.10BDBD2C13B2A21B67.8B
35.4B$133.4B170.4B21.4B9.4D21.4B33.8B4D39B65.8B35.4B$132.4B170.4B21.
4B11.4D21.4B32.7B5D5B.B5.26B66.8B34.4B$131.4B170.4B21.4B13.4D21.4B32.
5B4D6B10.B2.20B67.7B34.4B$130.4B170.4B21.4B15.4D21.4B31.4B4D7B12.20B.
B.B64.7B33.4B$129.4B170.4B21.4B17.4D21.4B31.2B4D7B12.24B2A64.6B7.A24.
4B$128.4B170.4B21.4B19.4D21.4B31.4D10B10.24B2A64.6B6.A.A22.4B$127.4B
170.4B21.4B21.4D21.4B29.4D5B4.2A.A6.2AB2.5B2.12B.2B66.5B6.A.A21.4B$
126.4B170.4B21.4B23.4D21.4B27.4D4B6.2AB3A3.A.AB2.4B3.13B68.6B4.2A.3A
18.4B$125.4B170.4B21.4B25.4D21.4B25.4D4B8.B4.A2.A14.11B.B65.6B6.B4.A
16.4B$124.4B170.4B21.4B27.4D21.4B23.4DB.B9.2A.3A2.2A14.12B2A64.7B3.B
2AB3A16.4B$123.4B170.4B21.4B29.4D21.4B21.4D2.3B9.A.A20.10B.B2A65.8B.B
2A.A17.4B$122.4B170.4B21.4B31.4D21.4B19.4D2.B2AB9.A.A18.2AB.6B4.B66.
10B20.4B$121.4B170.4B21.4B33.4D21.4B17.4D4.2A11.A18.A.AB.4B72.3B2A6B
19.4B$120.4B170.4B21.4B35.4D21.4B15.4D37.A5.5B64.2A5.2B2A6B18.4B$119.
4B170.4B21.4B37.4D21.4B13.4D37.2A8.2A65.A5.10B17.4B$113.B4.4B16.A11.
2A140.4B21.4B39.4D21.4B11.4D48.A66.A.AB2.11B15.4B$112.3B2.4B16.A.A9.B
2AB138.4B21.4B41.4D21.4B9.4D50.3A64.2AB.12B14.4B$104.2A5.9B17.A.A9.3B
138.4B21.4B43.4D21.4B7.4D53.A66.15B12.4B$105.A4.9B12.2A2.3A.2A9.B.B
136.4B21.4B45.4D21.4B5.4D121.16B10.4B$105.A.AB.8B13.A2.A4.B8.5B135.4B
21.4B47.4D21.4B3.4D122.16B.2B6.4B$106.2AB.9B3.4B2.BA.A3.3AB2A6.6B134.
4B21.4B49.4D21.4B.4D123.18B2A4.4B$108.11B2.5B2.B2A6.A.2A4.8B133.4B21.
4B51.4D21.3B4D123.17B.B2A3.4B$108.11B2.8B10.13B133.4B21.4B53.4D21.B4D
123.4B2.8B.4B.B3.4B$108.21B12.13B130.4B21.4B55.4D20.4DB122.4B4.7B9.4B
$109.19B12.15B128.4B21.4B57.4D18.4D3B120.4B5.6B9.4B$108.19B2.B10.15B
127.4B21.4B59.4D16.4D.4B118.4B6.4B10.4B$106.26B5.B.17B125.4B21.4B61.
4D14.4D3.4B116.4B5.A3B11.4B$105.51B124.4B21.4B63.4D12.4D5.4B114.4B5.A
.AB11.4B$106.21B2A13B2A13B122.4B21.4B65.4D10.4D7.4B112.4B6.A.A11.4B$
104.23B2A13B2A14B120.4B21.4B67.4D8.4D9.4B110.4B8.A11.4B$104.49B3.B2A
118.4B21.4B69.4D6.4D11.4B108.4B6.3A11.4B$105.47B4.A2.A116.4B21.4B71.
4D4.4D13.4B106.4B7.A12.4B$105.31B2.2B2.B3.6B5.2A.A114.4B21.4B73.4D2.
4D15.4B104.4B20.4B$107.12B2.7B2.4B13.6B7.A113.4B21.4B75.8D17.4B102.4B
20.4B$108.11B3.6B17.9B6.2A111.4B21.4B77.6D19.4B100.4B20.4B$111.7B5.3B
19.2A4.4B117.4B21.4B79.4D21.4B98.4B20.4B$112.4B.3B4.B21.A5.4B115.4B
21.4B79.6D21.4B96.4B20.4B$113.2B3.2A23.3A7.4B113.4B21.4B79.8D21.4B94.
4B20.4B$112.4B2.A24.A10.4B111.4B21.4B80.10D20.4B92.4B20.4B$112.B2AB3.
3A33.4B109.4B21.4B81.7D2C2D20.4B90.4B20.4B$113.2A6.A34.4B107.4B21.4B
82.6DCDC2D21.4B88.4B20.4B$157.4B105.4B21.4B84.6DC3D22.4B86.4B20.4B$
158.4B103.4B21.4B90.3D25.4B84.4B20.4B$159.4B101.4B21.4B120.4B82.4B20.
4B$160.4B99.4B21.4B122.4B80.4B20.4B$161.4B97.4B21.4B124.4B78.4B20.4B$
162.4B95.4B21.4B126.4B76.4B20.4B$163.4B93.4B21.4B128.4B74.4B20.4B$
164.4B91.4B21.4B130.4B72.4B20.4B$165.4B89.4B21.4B132.4B70.4B20.4B80.
2A$166.4B87.4B21.4B134.4B68.4B20.4B81.A.A$167.4B85.4B21.4B136.4B66.4B
20.4B84.A4.2A$168.4B83.4B21.4B57.A60.2A13.2A3.4B64.4B20.4B81.4A.2A2.A
2.A$169.4B81.4B21.4B58.3A33.2A24.A14.A4.4B62.4B20.4B82.A2.A.A.A.A.2A$
170.4B79.4B21.4B46.2A3.2A9.A17.A15.A13.2A6.3A15.A.AB2.4B60.4B20.4B85.
BABABA.A$171.4B77.4B21.4B46.B2AB.B2AB7.2A15.3A15.A.AB9.B2A2B4.A18.2A
2B2.4B58.4B20.4B87.B2ABA.A$172.4B75.4B21.4B48.2B2.3B3.B4.4B12.A19.2AB
.3B6.4B.3B21.3B2.4B56.4B20.4B89.2B.BA$173.4B73.4B21.4B50.3B.3B.4B4.3B
11.2A20.7B2.11B7.7B.B4.4B2.4B54.4B20.4B89.3B$174.4B71.4B21.4B43.2A5.
7B.13B11.B20.22B.B3.13B.4B2.4B12.2A38.4B20.4B81.2A6.4B$175.4B69.4B21.
4B45.A5.23B9.3B19.24BD26B11.A38.4B20.4B83.A6.B2A3B$176.4B67.4B21.4B
46.A.AB.19B.8B4.6B16.26BD21BD4B7.BA.A37.4B20.4B84.A.AB3.B2A3B$177.4B
65.4B21.4B48.2AB.29B2.10B10.29B2D18B3D5B.B.2B.B2A4.2A31.4B20.4B86.2AB
.10B$178.4B63.4B21.4B51.44B3.2B2.30B2D2B2A15BDBD12B6.A31.4B20.4B89.
13B$179.4B61.4B21.4B52.37B2A15BD26BD3B2A15BD13B4.BA.A30.4B20.4B90.5B
3D6B$180.4B59.4B21.4B53.37B2A15BDBD4B.30B3.2B2.20B.B2A30.4B20.4B91.7B
D7B$181.4B57.4B21.4B55.53B3D4B2.16B2.10B11.19B31.4B20.4B94.4BD3B2.4B$
182.4B55.4B21.4B58.53BD4B2.7B.4B7.6B16.17B30.4B20.4B95.6B5.4B$183.4B
53.4B21.4B57.59B4.6B2.2B9.3B19.11BD6B27.4B20.4B95.9B4.4B$184.4B51.4B
21.4B58.2A3.25B4.13B.4B11.6B13.B20.11BDBD6B25.4B20.4B95.4B4.2A5.4B$
185.4B49.4B21.4B60.A3.20B4.B4.7B.B4.4B13.3B14.2A20.11B2D7B24.4B20.4B
95.4B5.A7.4B$186.4B47.4B21.4B58.3A6.15B7.2A15.4B12.7B12.A19.2AB.3B2.
13B23.4B20.4B95.4B7.3A5.4B$187.4B45.4B21.4B59.A8.11B12.A14.4B13.2A.B.
2A13.3A15.A.AB6.13B5.B16.4B20.4B95.4B10.A6.4B$188.4B43.4B21.4B68.13B
8.3A14.4B15.A3.A16.A15.A12.9B22.4B20.4B95.4B19.4B$189.4B41.4B21.4B65.
B2.15B7.A15.4B13.3A5.3A28.2A12.3B.4B22.4B20.4B95.4B21.4B$190.4B39.4B
21.4B69.16B21.4B14.A9.A43.8B20.4B20.4B95.4B23.4B$191.4B37.4B21.4B70.
17B19.4B70.8B18.4B20.4B95.4B25.4B$192.4B35.4B21.4B71.16B19.4B70.4B2.
4B16.4B20.4B95.4B27.4B$193.4B33.4B21.4B74.13B19.4B70.4B4.4B14.4B20.4B
95.4B29.4B$194.4B31.4B21.4B75.3B.2B2A5B18.4B70.4B6.4B12.4B20.4B95.4B
31.4B$195.4B29.4B21.4B74.4B2.2B2A3B19.4B70.4B8.4B10.4B20.4B95.4B33.4B
$196.4B27.4B21.4B75.2A3.8B18.4B70.4B10.4B8.4B20.4B95.4B35.4B$197.4B
25.4B21.4B77.A4.8B16.4B70.4B12.4B6.4B20.4B95.4B37.4B$198.4B23.4B21.4B
75.3A5.8B15.4B70.4B14.4B4.4B20.4B95.4B39.4B$183.A15.4B21.4B21.4B76.A
8.7B14.4B70.4B16.4B2.4B15.B4.4B16.A11.2A65.4B41.4B$182.A.A15.4B19.4B
21.4B86.7B13.4B70.4B18.8B15.3B2.4B16.A.A9.B2AB63.4B43.4B$182.A.A16.4B
17.4B21.4B79.A7.6B13.4B70.4B20.6B8.2A5.9B17.A.A9.3B63.4B45.4B$152.B
27.3A.2A11.A4.4B15.4B21.4B79.A.A6.6B12.4B70.4B22.4B10.A4.9B12.2A2.3A.
2A9.B.B61.4B47.4B$179.A4.B10.3A5.4B13.4B21.4B80.A.A6.5B12.4B70.4B22.
6B9.A.AB.8B13.A2.A4.B8.5B60.4B49.4B$154.2A11.A12.3AB2AB7.A9.4B11.4B
21.4B79.3A.2A4.6B11.4B70.4B22.8B9.2AB.9B3.4B2.BA.A3.3AB2A6.6B59.4B51.
4B$153.B2AB9.A.A13.A.2AB.4B2.2A9.4B9.4B21.4B79.A4.B6.6B9.4B70.4B22.4B
2.4B10.11B2.5B2.B2A6.A.2A4.8B58.4B53.4B$154.3B9.A.A17.10B10.4B7.4B21.
4B81.3AB2AB3.7B8.4B70.4B22.4B4.4B9.11B2.8B10.13B58.4B55.4B$153.B.B9.
2A.3A15.8B13.4B5.4B21.4B84.A.2A10B8.4B70.4B22.4B6.4B8.21B12.13B55.4B
57.4B$153.5B8.B4.A14.11B11.4B3.4B21.4B89.10B8.3B70.4B22.4B8.4B8.19B
12.15B53.4B59.4B$153.6B6.2AB3A9.4B2.12B11.4B.4B16.B4.4B16.A11.2A60.6B
2A3B5.2AB71.4B22.4B10.4B6.19B2.B10.15B52.4B61.4B$153.8B4.2A.A11.18B
12.7B16.3B2.4B16.A.A9.B2AB59.6B2A2B5.A.AB70.4B22.4B12.4B3.26B5.B.17B
50.4B63.4B$154.13B12.19B13.5B9.2A5.9B17.A.A9.3B60.10B5.A72.4B22.4B14.
4B.51B49.4B65.4B$152.13B14.17B15.5B10.A4.9B12.2A2.3A.2A9.B.B58.11B2.B
A.A71.4B22.4B16.26B2A13B2A13B47.4B67.4B$151.15B13.17B14.7B9.A.AB.8B
13.A2.A4.B8.5B58.12B.B2A71.4B22.4B18.25B2A13B2A14B45.4B69.4B$151.15B
10.B2.18B12.4B.4B9.2AB.9B3.4B2.BA.A3.3AB2A6.6B57.15B72.4B22.4B20.50B
3.B2A43.4B71.4B$150.17B.B5.23B3.B7.4B3.4B10.11B2.5B2.B2A6.A.2A4.8B56.
16B71.4B22.4B20.50B4.A2.A41.4B73.4B$150.48B.B2A5.4B5.4B9.11B2.8B10.
13B54.2B.16B70.4B22.4B20.35B2.2B2.B3.6B5.2A.A39.4B75.4B$149.13B2A13B
2A21B2A4.4B7.4B8.21B12.13B51.2A18B69.4B22.4B20.19B2.7B2.4B13.6B7.A38.
4B77.4B$148.14B2A13B2A22B4.4B9.4B8.19B12.15B50.2AB.17B41.A25.4B22.4B
20.20B3.6B17.9B6.2A36.4B79.4B$147.2AB3.44B.3B3.4B11.4B6.19B2.B10.15B
51.B.4B.8B2.4B39.A.A23.4B22.4B20.4B2.14B5.3B19.2A4.4B42.4B81.4B$146.A
2.A4.43B6.4B13.4B3.26B5.B.17B57.7B4.4B38.A.A22.4B22.4B20.4B6.9B.3B4.B
21.A5.4B40.4B83.4B$145.A.2A5.6B3.B2.2B2.26B6.4B15.4B.51B58.6B5.4B35.
3A.2A20.4B22.4B20.4B7.8B3.2A23.3A7.4B38.4B85.4B$145.A7.6B13.4B2.7B3.
8B5.4B17.4B.21B2A13B2A13B59.4B6.4B33.A4.B11.2A7.4B22.4B20.4B9.4B6.A
24.A10.4B36.4B87.4B$144.2A6.9B17.6B8.5B3.4B19.25B2A13B2A14B60.3BA5.4B
33.3AB2AB2.2B4.B2AB4.5B22.4B20.4B12.4B5.3A33.4B34.4B89.4B$151.4B4.2A
19.3B11.4B.4B21.50B3.B2A60.BA.A5.4B34.A.2A6B.7B3.4B22.4B20.4B15.2A7.A
34.4B32.4B91.4B$150.4B5.A21.B13.7B23.48B4.A2.A60.A.A6.4B35.22B22.4B
20.4B16.A44.4B30.4B93.4B$149.4B7.3A33.5B23.33B2.2B2.B3.6B5.2A.A60.A8.
4B36.19B22.4B20.4B18.3A42.4B28.4B95.4B$136.2A10.4B10.A33.5B23.16B2.7B
2.4B13.6B7.A61.3A6.4B34.19B22.4B20.4B21.A43.4B21.B4.4B16.A11.2A67.4B$
135.B2A2B7.4B44.7B22.16B3.6B17.9B6.2A62.A7.4B33.18B22.4B20.4B67.4B19.
3B2.4B16.A.A9.B2AB67.4B$129.A6.4B6.4B44.4B.4B22.14B5.3B19.2A4.4B78.4B
32.19B20.4B20.4B69.4B10.2A5.9B17.A.A9.3B69.4B$128.A.A6.3B5.4B44.4B3.
4B24.9B.3B4.B21.A5.4B78.4B28.2B.20B18.4B20.4B71.4B10.A4.9B12.2A2.3A.
2A9.B.B69.4B$120.2A6.BA2B4.3B5.4B44.4B5.4B23.8B3.2A23.3A7.4B78.4B26.
2A22B17.4B20.4B73.4B9.A.AB.8B13.A2.A4.B8.5B70.4B$121.A7.2B3.7B2.4B44.
4B7.4B23.4B6.A24.A10.4B78.4B25.2AB.6BA13B16.4B20.4B75.4B9.2AB.9B3.4B
2.BA.A3.3AB2A6.6B71.4B$121.A.AB5.2B.13B44.4B9.4B24.4B5.3A33.4B78.4B
25.B2.5BABA14B13.4B20.4B77.4B10.11B2.5B2.B2A6.A.2A4.8B72.4B$122.2AB.
19B44.4B11.4B25.2A7.A34.4B78.4B26.5BA2BA14B12.4B20.4B79.4B9.11B2.8B
10.13B74.4B$124.20B44.4B13.4B24.A44.4B78.4B26.5B2A16B10.4B20.4B81.4B
8.21B12.13B73.4B$124.20B43.4B15.4B24.3A42.4B78.4B25.19B2.B2A8.4B20.4B
83.4B8.19B12.15B73.4B$125.18B43.4B17.4B25.A43.4B78.4B23.20B2.BA.A6.4B
20.4B85.4B6.19B2.B10.15B74.4B$127.16B42.4B19.4B69.4B78.4B21.2A16B.3B
4.A5.4B20.4B87.4B3.26B5.B.17B74.4B$125.18B41.4B21.4B69.4B78.4B20.2A
21B3.2A3.4B20.4B89.4B.51B75.4B$123.A.2A3.13B40.4B23.4B69.4B78.4B20.2B
.7B2.10B7.4B20.4B91.26B2A13B2A13B75.4B$121.3AB2A4.11B40.4B25.4B69.4B
78.4B23.6B2.10B6.4B20.4B93.25B2A13B2A14B75.4B$120.A4.B6.10B39.4B27.4B
69.4B78.4B23.4B3.8B7.4B20.4B95.50B3.B2A75.4B$121.3A.2A5.10B38.4B29.4B
69.4B78.4B25.2B3.7B6.4B20.4B95.50B4.A2.A75.4B$123.A.A4.13B36.4B31.4B
69.4B78.4B23.B2AB5.4B5.4B20.4B95.35B2.2B2.B3.6B5.2A.A75.4B$123.A.A3.
15B34.4B33.4B69.4B78.4B22.B2AB4.4B5.4B20.4B95.19B2.7B2.4B13.6B7.A76.
4B$124.A4.16B32.4B35.4B69.4B78.4B22.3B3.4B5.4B20.4B95.20B3.6B17.9B6.
2A76.4B$128.18B30.4B37.4B69.4B78.4B20.B.B3.4B5.4B20.4B95.4B2.14B5.3B
19.2A4.4B84.4B$127.18B30.4B39.4B69.4B78.4B18.10B5.4B20.4B95.4B6.9B.3B
4.B21.A5.4B84.4B$126.4B.13B30.4B41.4B69.4B78.4B15.11B5.4B20.4B95.4B7.
8B3.2A23.3A7.4B84.4B$125.4B6.2B2A5B29.4B43.4B69.4B78.4B13.11B5.4B20.
4B95.4B9.4B6.A24.A10.4B28.2A54.4B$124.4B7.2B2A3B30.4B45.4B69.4B78.4B
10.12B5.4B20.4B95.4B12.4B5.3A33.4B26.B2AB23.2A29.4B$123.4B7.8B29.4B
47.4B69.4B78.4B8.12B5.4B20.4B95.4B15.2A7.A34.4B25.4B24.A30.4B$122.4B
9.8B27.4B49.4B69.4B71.A6.4B6.14B3.4B20.4B95.4B16.A44.4B25.2B25.A.AB
28.4B$121.4B10.8B26.4B51.4B69.4B69.A.A6.4B3.17B.4B20.4B95.4B18.3A42.
4B22.2A3B25.2AB29.4B$120.4B12.7B25.4B53.4B69.4B68.A.A7.4B.22B20.4B95.
4B21.A43.4B21.2A5B25.3B28.4B$119.4B13.7B24.4B55.4B69.4B65.3A.2A7.9B2A
14B20.4B95.4B67.4B7.2A11.8B24.4B28.4B$118.4B6.A7.6B24.4B57.4B69.4B63.
A4.B9.8B2A16B17.4B95.4B69.4B7.A6.2B5.6B25.4B22.2A4.4B$117.4B6.A.A6.6B
23.4B59.4B69.4B63.3AB2AB6.27B16.4B95.4B71.4B6.A.AB2.6B.9B24.4B20.B2AB
4.4B$116.4B7.A.A6.5B18.B4.4B16.A11.2A31.4B69.4B64.A.2A32B.B2A13.4B95.
4B73.4B6.2AB.B.17B23.4B20.3B5.4B$115.4B6.3A.2A4.6B17.3B2.4B16.A.A9.B
2AB31.4B69.4B65.31B4.BA.A11.4B95.4B75.4B7.24B21.4B20.3B5.4B$114.4B6.A
4.B6.6B8.2A5.9B17.A.A9.3B33.4B69.4B66.29B7.A10.4B95.4B77.4B5.27B20.4B
17.5B6.4B$113.4B8.3AB2A2B2.7B9.A4.9B12.2A2.3A.2A9.B.B33.4B69.4B63.29B
9.2A8.4B95.4B79.4B4.28B20.4B15.7B6.4B6.2A$112.4B11.A.2A10B10.A.AB.8B
13.A2.A4.B8.5B34.4B69.4B62.28B19.4B95.4B76.2A3.4B2.31B19.4B14.8B6.4B
4.B2A2B3.2A$111.4B16.10B11.2AB.9B3.4B2.BA.A3.3AB2A6.6B35.4B69.4B61.4B
2A22B18.4B95.4B78.A4.38B5.7B.B4.4B12.10B6.4B4.4B2.B2AB$110.4B17.6B2A
3B12.11B2.5B2.B2A6.A.2A4.8B36.4B69.4B58.2AB.2B2A21B18.4B95.4B79.A.AB
2.32B.4B5.13B.4B11.6B.4B6.4B.6B3.2B$109.4B18.6B2A2B5.2A6.11B2.8B10.
13B38.4B69.4B56.A.AB.5B.15B.B.B2A15.4B95.4B81.2AB.68B2.8B2.4B6.10B2.
2B$108.4B19.10B5.A7.21B12.13B37.4B69.4B55.A5.3B2.16B2.BA.A13.4B95.4B
84.28B2.51B2.4B5.11B2A2B$107.4B19.11B2.BA.A8.19B12.15B37.4B69.4B53.2A
6.3B.12B.4B4.A12.4B95.4B85.16B2A8B4.50B4.4B3.12B2A3B.B$106.4B20.12B.B
2A8.19B2.B10.15B38.4B69.4B59.B2AB.11B3.4B3.2A10.4B95.4B88.14B2A6B6.
17B2A22B.7B6.4B2.18B2A$105.4B20.15B8.26B5.B.17B37.5B69.4B59.2A3.9B5.
4B13.4B95.4B88.22B8.16B2A31B6.4B2.15B.B2A$104.4B20.16B7.51B37.B.4B69.
4B64.3B.B9.4B11.4B95.4B88.4B.17B10.B2.19B3.2B2.19B7.19B3.B$103.4B18.
2B.16B8.21B2A13B2A13B39.4B69.4B62.2B14.4B9.4B95.4B88.4B3.14B15.2B3.B
2.10B11.17B7.18B$102.4B18.2A18B6.23B2A13B2A14B39.4B69.4B60.2BAB14.4B
7.4B95.4B88.4B5.12B17.AB6.6B16.15B.2B2.19B11.2A$101.4B19.2AB.17B5.49B
3.B2A39.4B69.4B60.A.A15.4B5.4B95.4B88.4B5.12B17.A.A7.3B19.38B11.A$
100.4B21.B.4B.8B2.4B5.47B4.A2.A39.4B69.4B60.A17.4B3.4B95.4B88.4B5.12B
18.2A8.B21.8B.20B.8B8.BA.A$99.4B29.7B4.4B4.31B2.2B2.B3.6B5.2A.A39.4B
69.4B78.4B.4B95.4B88.4B5.14B26.2A19.8B3.2B2A16B2.8B7.B2A$98.4B31.6B5.
4B5.12B2.7B2.4B13.6B7.A40.4B69.4B78.7B95.4B88.4B5.10B2.4B25.A20.2A3.B
5.2B2A17B.9B4.3B$97.4B34.4B6.4B5.11B3.6B17.9B6.2A40.4B69.4B78.5B95.4B
88.4B5.4B3.B.B4.4B25.3A18.A10.21B.9B2.4B$90.2A4.4B37.3BA5.4B7.7B5.3B
19.2A4.4B48.4B69.4B77.5B94.4B88.4B5.4B3.3B6.4B26.A15.3A12.B.3B.4B7.9B
.8B$81.2A5.2B2AB2.4B39.BA.A5.4B7.4B.3B4.B21.A5.4B48.4B69.4B75.7B92.4B
89.3B5.4B4.B2AB6.4B41.A19.4B9.8B2.6B$82.A5.5B.4B41.A.A6.4B7.2B3.2A23.
3A7.4B48.4B69.4B73.4B.4B90.4B88.2AB6.4B6.2A8.4B59.4B11.8B2.4B$82.A.AB
2.9B43.A8.4B5.4B2.A24.A10.4B48.4B69.4B71.4B3.4B88.4B88.A.AB5.4B18.4B
58.3B13.7B.6B$76.A6.2AB.9B45.3A6.4B4.B2AB3.3A33.4B48.4B69.4B69.4B5.4B
86.4B89.A7.4B20.4B55.2AB16.14B$76.3A6.10B48.A7.4B4.2A6.A34.4B48.4B69.
4B67.4B7.4B84.4B89.2A6.4B22.4B32.2A19.A.AB16.9B2.4B$79.A5.9B58.4B47.
4B48.4B69.4B65.4B9.4B82.4B97.4B24.4B32.A19.A19.8B4.4B$78.2A6.9B58.4B
47.4B48.4B69.4B63.4B11.4B80.4B97.4B26.4B31.A.AB15.2A19.8B.2B2.4B$78.
5B2.11B58.4B47.4B48.4B69.4B61.4B13.4B78.4B97.4B28.4B31.2AB36.13B.4B$
80.16B59.4B47.4B48.4B69.4B59.4B15.4B76.4B97.4B30.4B32.3B34.13B2.4B$
79.2A15B60.4B47.4B48.4B69.4B57.4B17.4B74.4B97.4B32.4B31.4B33.14B2.4B$
79.2A15B61.4B47.4B48.4B69.4B55.4B19.4B72.4B97.4B34.4B31.4B31.14B4.4B$
80.B.12B.B2A60.4B47.4B48.4B69.4B53.4B21.4B70.4B97.4B36.4B31.4B29.4B2.
10B4.4B$82.12B.BA.A60.4B47.4B48.4B69.4B51.4B23.4B68.4B97.4B38.4B31.4B
7.A19.4B2.11B.B3.4B$82.10B6.A61.4B47.4B48.4B69.4B49.4B25.4B66.4B97.4B
40.4B31.4B6.3A16.4B.14B2A3.4B$81.11B6.2A61.4B47.4B48.4B69.4B47.4B27.
4B64.4B97.4B42.4B31.4B8.A8.26B2A4.4B$80.4B.7B70.4B47.4B48.4B69.4B45.
4B29.4B62.4B97.4B44.4B31.4B6.2A7.28B6.4B$79.14B70.4B47.4B48.4B69.4B
43.4B31.4B60.4B97.4B46.4B31.4B5.5B.B2.28B7.4B$78.15B71.4B47.4B48.4B
69.4B41.4B33.4B58.4B97.4B48.4B31.4B6.6B.24B12.4B$77.16B72.4B47.4B48.
4B69.4B39.4B35.4B56.4B97.4B50.4B31.4B4.30B2A13.4B$76.4B.11B74.4B47.4B
48.4B69.4B37.4B37.4B54.4B97.4B52.4B31.25B2.2B2.6B2AB.B11.4B$75.4B2.B
3D4B.4B73.4B47.4B48.4B69.4B35.4B39.4B52.4B97.4B54.4B31.21B11.8B2A11.
4B$74.4B3.2BD4B4.2A74.4B47.4B48.4B69.4B33.4B41.4B50.4B98.3B35.3D18.4B
30.19B15.4B.B2A12.4B$73.4B4.2B3D2B4.A76.4B47.4B48.4B69.4B31.4B43.4B
48.4B99.2B36.D2.D18.4B27.20B17.2B3.B14.4B$72.4B5.6B6.3A74.4B47.4B48.
4B69.4B29.4B45.4B46.4B100.B37.D2.D19.4B25.21B16.2B20.4B$71.4B5.7B8.A
75.4B47.4B48.4B69.4B27.4B47.4B44.4B139.3D21.4B24.13B2.8B13.B2AB20.4B$
70.4B5.8B85.4B47.4B48.4B69.4B25.4B49.4B42.4B140.D24.4B20.AB.12B5.B3.
2A14.2A22.4B$69.4B5.8B87.4B47.4B48.4B69.4B23.4B51.4B40.4B141.D25.4B
18.A.A15B7.A40.4B$68.4B5.9B88.4B47.4B48.4B69.4B21.4B53.4B38.4B142.D
26.4B18.A2B.B.6B3.2A8.3A38.4B$67.4B5.4B.6B88.4B47.4B48.4B69.4B19.4B
55.4B36.4B171.4B18.B4.7B2.A11.A39.4B$66.4B5.4B.7B89.4B47.4B48.4B69.4B
17.4B57.4B34.4B173.4B21.7B4.3A49.4B$65.4B5.4B2.6B91.4B47.4B48.4B69.4B
15.4B95.4B175.4B20.7B6.A50.4B$64.4B5.4B3.6B92.4B47.4B48.4B69.4B13.4B
95.4B177.4B18.8B58.4B$63.4B5.4B4.6B93.4B47.4B48.4B69.4B11.4B95.4B179.
4B15.2AB.7B58.4B$62.4B5.4B4.8B93.4B47.4B48.4B69.4B9.4B95.4B181.4B13.A
.AB.6B60.4B$61.4B5.4B6.8B93.4B47.4B48.4B69.4B7.4B95.4B183.4B12.A4.6B
61.4B$60.4B5.4B6.9B94.4B47.4B48.4B69.4B5.4B95.4B185.4B10.2A4.7B61.4B$
59.4B5.4B7.9B95.4B47.4B48.4B69.4B3.4B95.4B187.4B15.8B2.2A57.4B$58.4B
5.4B8.10B95.4B47.4B48.4B69.4B.4B95.4B189.4B12.12BA.A57.4B$57.4B5.4B9.
5B2A3B96.4B47.4B48.4B69.7B95.4B191.4B11.11B3.A58.4B$56.4B5.4B10.5B2A
4B3.2A91.4B47.4B48.4B69.5B95.4B193.4B10.5B2A4B3.2A58.4B$55.4B5.4B11.
11B3.A93.4B47.4B48.4B35.B32.5B94.4B195.4B9.5B2A3B65.4B$54.4B5.4B12.4B
D7BA.A94.4B47.4B48.4B7.A58.7B92.4B197.4B8.10B66.4B$53.4B5.4B15.B3D4B
2.2A96.4B47.4B48.4B6.3A55.4B.4B90.4B199.4B7.9B68.4B$52.4B5.4B16.D2B2D
2B102.4B47.4B48.4B8.A53.4B3.4B88.4B201.4B6.9B69.4B$51.4B5.4B17.5B105.
4B47.4B48.4B6.A.A51.4B5.4B86.4B203.4B6.8B70.4B$50.4B5.4B10.A7.6B105.
4B47.4B48.4B5.A.AB49.4B7.4B84.4B205.4B4.8B72.4B$49.4B5.4B11.3A4.7B
106.4B47.4B48.4B5.A3B47.4B9.4B82.4B207.4B4.6B74.4B$48.4B5.4B15.A4.7B
106.4B47.4B48.4B6.4B44.4B11.4B80.4B209.4B3.6B75.4B$47.4B5.4B15.2A4.7B
107.4B47.4B48.4B5.6B41.4B13.4B78.4B211.4B2.6B76.4B$46.4B5.4B16.13B
108.4B47.4B48.4B4.7B39.4B15.4B76.4B213.4B.7B76.4B$45.4B5.4B19.3B.8B
108.4B47.4B48.4B2.8B.4B.B31.4B17.4B74.4B215.4B.6B77.4B$44.4B5.4B14.2B
3.12B110.4B47.4B48.17B.B2A29.4B19.4B72.4B217.9B79.4B$43.4B5.4B14.18B
111.4B47.4B48.18B2A28.4B21.4B70.4B219.8B80.4B$42.4B5.4B15.20B110.4B
47.4B47.16B.2B28.4B23.4B68.4B221.8B80.4B$41.4B5.4B15.21B.2B108.4B47.
4B46.16B30.4B25.4B66.4B223.7B81.4B$40.4B5.4B16.23B2A108.4B47.4B45.15B
30.4B27.4B64.4B225.6B82.4B$39.4B5.4B16.24B2A109.4B47.4B42.2AB.12B30.
4B29.4B62.4B15.B210.7B82.4B$38.4B5.4B17.22B.2B111.4B47.4B40.A.AB2.11B
29.4B31.4B60.4B16.2B209.7B83.4B$37.4B5.4B19.22B114.4B47.4B39.A5.10B
29.4B33.4B58.4B17.3B208.8B.3B79.4B7.E$36.4B5.4B22.21B114.4B47.4B37.2A
5.2B2A6B28.4B35.4B56.4B18.4B207.13B79.4B6.3E$35.4B5.4B24.22B15.B4.A
11.2A79.4B47.4B42.3B2A6B27.4B37.4B54.4B20.4B206.14B79.4B8.E$34.4B5.4B
25.23B13.2B3.A.A9.B2AB79.4B47.4B42.10B26.4B39.4B52.4B22.4B205.15B79.
4B6.E.C$33.4B5.4B26.24B11.3B3.A.A9.3B81.4B47.4B41.10B2A.A21.4B41.4B
50.4B24.4B205.14B80.4B5.E.CB$20.A11.4B5.4B27.25B9.B2AB.3A.2A9.B.B81.
4B47.4B39.7B2.2B2AB3A18.4B43.4B48.4B26.4B204.13B82.4B5.E3B$20.3A8.4B
5.4B28.25B8.2BAB.A4.B8.5B82.4B47.4B38.6B4.B.B4.A16.4B95.4B28.4B65.B
136.14B83.4B6.4B$23.A6.4B5.4B29.25B.4B2.BABA3.3AB2A6.6B83.4B47.4B38.
6B4.2A.3A16.4B95.4B30.4B63.2B137.13B84.4B5.6B$22.2A5.4B5.4B31.29B.2B
2A6.A.2A4.8B84.4B47.4B37.5B6.A.A17.4B95.4B32.4B61.3B139.3B2A7B84.4B4.
7B$22.4B2.4B5.4B32.33B9.13B86.4B47.4B35.6B6.A.A16.4B95.4B34.4B59.4B
139.2BA2BAB2.4B84.4B2.8B.4B.B$24.2B.4B5.4B35.30B12.13B85.4B47.4B34.6B
7.A16.4B95.4B36.4B57.4B142.B2A5.4B84.17B.BCE$23.7B5.4B34.31B12.15B85.
4B47.4B32.7B23.4B95.4B38.4B55.4B152.4B84.18BCE$23.6B5.4B35.2A4.24B2.B
10.15B86.4B47.4B31.7B8.A13.4B95.4B40.4B53.4B154.4B66.2A15.16B.2B$23.
5B5.4B37.A4.29B5.B.17B86.4B47.4B30.8B5.3A12.4B95.4B42.4B51.4B156.4B
65.A16.16B$13.A7.8B3.4B35.3A6.52B87.4B47.4B29.8B4.A14.4B95.4B44.4B49.
4B158.4B52.A8.BA.A16.15B$13.3A5.9B.4B36.A9.22B2ABD11B2A13B87.4B47.4B
29.8B3.2A12.4B95.4B46.4B47.4B160.4B49.3A8.B2A15.ECB.12B$16.A3.15B47.
21B2AB3D9B2A14B87.4B47.4B28.3B2A2B2.4B11.4B95.4B48.4B45.4B162.4B39.4B
4.A9.3B16.E.EB2.11B19.A$15.2A.17B.2B45.23BDBD20B3.B2A87.4B47.4B25.5B
2A2B.3B12.4B95.4B50.4B43.4B164.4B34.2A6B4.2A7.4B16.E5.10B18.3A$15.22B
2A45.24BD19B4.A2.A87.4B47.4B24.13B11.4B95.4B52.4B41.4B166.4B23.2A5.3B
2A12B6.4B16.2E5.2B2C6B17.A$17.18B.B2A45.28B2.2B2.B3.6B5.2A.A87.4B47.
4B22.16B8.4B95.4B54.4B39.4B168.4B23.A4.16B7.4B23.3B2C6B17.2A$16.10BD
9B.B46.12B.7B2.4B13.6B7.A88.4B47.4B20.17B7.4B95.4B56.4B37.4B170.4B22.
A.A18B6.4B25.10B15.4B$15.B.8BD9B47.2AB.10B2.6B17.9B6.2A88.4B47.4B20.
16B6.4B95.4B58.4B35.4B172.4B22.2A17B6.4B26.8B.B2C.E10.3B$14.11B3D6B
47.A.AB.10B3.3B19.2A4.4B96.4B47.4B20.15B5.4B95.4B60.4B33.4B174.4B23.
18B4.4B26.7B3.B2CB3E7.4B$14.20B47.A5.9B4.B21.A5.4B96.4B47.4B13.2A5.
13B5.4B95.4B62.4B31.4B176.4B22.19B2.4B27.6B6.B4.E5.4B$15.18B47.2A5.8B
24.3A7.4B96.4B47.4B13.A6.10B6.4B95.4B64.4B29.4B178.4B21.24B29.6B4.2E.
3E5.4B$14.11B2A5B54.9B24.A10.4B96.4B47.4B12.A.AB3.10B5.4B95.4B66.4B
27.4B180.4B20.23B30.5B6.E.E6.4B$13.12B2A5B53.9B37.4B96.4B47.4B12.2AB.
15B.4B95.4B68.4B25.4B182.4B19.22B30.6B6.E.E5.4B$12.19B54.9B38.4B96.4B
47.4B13.21B95.4B70.4B23.4B184.4B17.22B31.6B7.E5.4B$12.18B54.4B3.3B39.
4B96.4B47.4B13.19B95.4B72.4B21.4B186.4B15.22B31.7B12.4B$12.17B56.4B
45.4B96.4B47.4B4.2A5.20B94.4B74.4B19.4B188.4B13.4B.17B32.7B11.4B$11.
18B56.2B2AB45.4B96.4B47.4B4.A4.22B92.4B76.4B17.4B190.4B11.4B3.15B33.
8B9.4B$12.16B59.2A47.4B96.4B47.4B3.A.AB.23B56.B33.4B78.4B15.4B192.4B
9.4B4.14B34.8B8.4B$11.16B110.4B96.4B47.4B3.2AB.22B90.4B80.4B13.4B194.
4B7.4B4.15B35.8B6.4B$8.AB.15B112.4B96.4B47.4B4.23B90.4B82.4B11.4B196.
4B5.4B5.16B34.3B2C2B6.4B$7.A.A16B113.4B96.4B47.4B3.22B90.4B84.4B9.4B
198.4B3.4B7.19B28.5B2C2B5.4B$8.A2B.13B115.4B96.4B47.4B3.18B92.4B86.4B
7.4B200.4B.4B9.19B27.17B3.E$9.B3.11B117.4B96.4B47.4B2.14B.5B89.4B88.
4B5.4B202.7B11.17B2A25.17B3.E.E$17.7B118.4B96.4B47.4B2.12B5.2A88.4B
90.4B3.4B204.5B13.16B2A24.17B4.E.E$13.2B.8B119.4B96.4B47.4B3.10B5.A
88.4B92.4B.4B205.5B13.18B25.16B3.2E.3E$12.2A3B2A5B120.4B96.4B47.4B2.
7B.B7.3A84.4B94.7B205.7B11.20B25.15B4.B4.E$12.2A3B2A5B121.4B96.4B47.
4B.8B10.A83.4B96.6B204.4B.4B9.21B26.13B4.2CB3E$13.B.9B122.4B96.4B47.
4B.3B.4B92.4B97.6B203.4B3.4B7.21B28.12B4.2C.E$16.9B122.4B96.4B47.4B5.
4B90.4B21.B75.7B202.4B5.4B5.21B29.18B$18.3B.B2A.A121.4B96.4B47.4B5.4B
88.4B22.2B73.9B200.4B7.5B2.21B30.16B$16.5B.B2AB3A120.4B96.4B47.4B5.4B
86.4B23.3B71.4B.6B198.4B9.22B.5B28.18B$16.2A6.B4.A120.4B96.4B47.4B5.
4B84.4B24.4B69.4B2.7B196.4B10.22B3.4B27.18B$17.A5.2A.3A122.4B96.4B47.
4B5.4B82.4B26.4B67.4B4.B2.4B194.4B12.21B4.4B26.18B$14.3A7.A.A125.4B
96.4B47.4B5.4B80.4B28.4B65.4B9.4B192.4B12.22B5.4B25.18B$14.A9.A.A126.
4B96.4B47.4B5.4B78.4B30.4B63.4B11.4B190.4B8.B3.23B6.3B24.18B$25.A128.
4B96.4B47.4B5.4B76.4B32.4B61.4B13.4B188.4B8.2AB.23B8.2B23.19B$155.4B
96.4B47.4B5.4B74.4B34.4B59.4B15.4B186.4B9.2A25B9.B22.18B.BCE$156.4B
96.4B47.4B5.4B72.4B36.4B57.4B17.4B184.4B11.25B32.19B.BE.E$157.4B96.4B
47.4B5.4B70.4B38.4B55.4B19.4B182.4B12.26B30.5B2.7B2.4B4.E$158.4B96.4B
47.4B5.4B68.4B40.4B53.4B21.4B180.4B14.4B.20B29.5B5.3B4.3B5.2E$159.4B
96.4B47.4B5.4B66.4B42.4B51.4B23.4B178.4B14.4B2.20B28.5B5.3B$160.4B96.
4B47.4B5.4B64.4B44.4B49.4B25.4B176.4B14.4B2.20B3.B24.5B6.4B$161.4B96.
4B47.4B5.4B62.4B46.4B47.4B27.4B174.4B14.4B3.15B3.3B.B2A22.5B7.2B2CB$
162.4B96.4B47.4B5.4B60.4B48.4B45.4B29.4B172.4B14.4B5.12B6.A3B2A21.5B
10.2E$163.4B96.4B47.4B5.4B58.4B50.4B43.4B31.4B170.4B14.4B7.10B6.A.AB.
B21.5B$164.4B96.4B47.4B5.4B56.4B52.4B41.4B33.4B168.4B14.4B8.10B5.A.AB
23.5B$165.4B96.4B47.4B5.4B54.4B54.4B39.4B35.4B166.4B14.4B11.7B6.A25.
5B$166.4B96.4B47.4B5.4B52.4B56.4B37.4B37.4B164.4B14.4B13.4B7.2A24.5B$
167.4B96.4B47.4B5.4B50.4B58.4B35.4B39.4B162.4B14.4B15.3B32.5B$168.4B
96.4B47.4B5.4B48.4B60.4B33.4B41.4B160.4B14.4B17.B32.5B.B$169.4B96.4B
47.4B5.4B46.4B62.4B31.4B36.2D5.4B158.4B14.4B50.5B2.2B$170.4B96.4B47.
4B5.4B44.4B64.4B29.4B36.D2.D5.4B156.4B14.4B50.5B3.3B$171.4B96.4B47.4B
5.4B42.4B66.4B27.4B37.D9.4B154.4B14.4B50.5B4.4B$172.4B96.4B47.4B5.4B
40.4B68.4B25.4B38.D10.4B152.4B14.4B50.5B6.4B$173.4B96.4B47.4B5.4B38.
4B70.4B23.4B39.D11.4B150.4B14.4B50.5B8.3B$174.4B96.4B47.4B5.4B36.4B
72.4B21.4B40.D2.D9.4B148.4B14.4B50.5B10.4B$175.4B96.4B47.4B5.4B34.4B
74.4B19.4B42.2D11.4B146.4B14.4B50.5B13.2A$176.4B96.4B47.4B5.4B32.4B
76.4B17.4B57.4B144.4B14.4B50.5B14.A$177.4B96.4B47.4B5.4B30.4B78.4B15.
4B59.4B142.4B14.4B50.5B16.3A$178.4B96.4B47.4B5.4B28.4B80.4B13.4B61.4B
141.3B14.4B50.5B19.A$179.4B96.4B47.4B5.4B26.4B82.4B11.4B63.4B140.2B
14.4B50.5B$180.4B96.4B47.4B5.4B24.4B84.4B9.4B65.4B139.B14.4B50.5B$
181.4B96.4B47.4B5.4B22.4B86.4B7.4B67.4B152.4B50.5B$182.4B96.4B47.4B5.
4B20.4B88.4B5.4B69.4B150.4B50.5B$183.4B96.4B47.4B5.4B18.4B90.4B3.4B
71.4B148.4B50.5B$184.4B96.4B47.4B5.4B16.4B92.4B.4B73.4B146.4B50.5B$
185.4B96.4B47.4B5.4B14.4B94.7B75.4B144.4B50.5B$186.4B96.4B47.4B5.4B
12.4B96.6B76.4B142.4B50.5B$187.4B96.4B47.4B5.4B10.4B97.6B77.4B140.4B
50.5B$188.4B96.4B47.4B5.4B8.4B97.7B78.4B138.4B50.5B$189.4B96.4B47.4B
5.4B6.4B97.9B78.4B136.4B50.5B$190.4B96.4B47.4B5.4B4.4B97.4B.6B78.4B
134.4B50.5B$191.4B96.4B47.4B5.4B2.4B97.4B2.7B78.4B132.4B50.5B$192.4B
96.4B47.4B5.8B97.4B4.B2.4B78.4B130.4B50.5B$193.4B63.B32.4B47.4B5.6B
97.4B9.4B78.4B128.4B50.5B$194.4B96.4B47.4B5.4B97.4B11.4B78.4B126.4B
50.5B$195.4B96.4B47.4B3.6B95.4B13.4B78.4B124.4B50.5B$196.4B96.4B47.4B
.8B93.4B15.4B78.4B122.4B50.5B$197.4B96.4B47.7B2.4B91.4B17.4B78.4B120.
4B50.5B$198.4B96.4B47.5B4.4B89.4B19.4B78.4B118.4B50.5B$199.4B96.4B46.
5B5.4B87.4B21.4B78.4B116.4B50.5B$200.4B96.4B44.7B5.4B6.2A77.4B23.4B
78.4B114.4B50.5B$201.4B96.4B42.4B.4B5.4B4.B2AB6.4B57.B7.4B25.4B78.4B
112.4B50.5B$202.4B96.4B40.4B3.4B5.4B3.3B6.4B65.4B27.4B78.4B110.4B50.
5B$203.4B96.4B38.4B5.4B5.4B3.B.B4.4B65.4B29.4B78.4B108.4B50.5B$204.4B
96.4B36.4B7.4B5.10B2.4B65.4B31.4B78.4B106.4B50.5B$205.4B96.4B34.4B9.
4B5.14B65.4B33.4B78.4B104.4B50.5B$206.4B96.4B32.4B11.4B5.12B65.4B35.
4B78.4B102.4B50.5B$207.4B96.4B30.4B13.4B5.12B63.4B37.4B78.4B100.4B50.
5B$208.4B96.4B28.4B15.4B5.12B61.4B39.4B78.4B98.4B50.5B$209.4B96.4B26.
4B17.4B3.14B16.A42.4B41.4B78.4B96.4B50.5B$210.4B96.4B24.4B19.4B.17B
13.A.A40.4B35.3D5.4B78.4B94.4B50.5B$211.4B96.4B22.4B21.22B12.A.A39.4B
36.D2.D5.4B78.4B92.4B50.5B$212.4B96.4B20.4B23.14B2A6B10.2A.3A36.4B37.
D2.D6.4B78.4B90.4B50.5B$213.4B96.4B18.4B22.16B2A8B9.B4.A34.4B38.3D8.
4B78.4B88.4B50.5B$214.4B96.4B16.4B23.27B6.B2AB3A34.4B39.D2.D8.4B78.4B
86.4B50.5B$215.4B96.4B14.4B22.2AB.32B2A.A35.4B40.D2.D9.4B78.4B84.4B
50.5B$216.4B96.4B12.4B22.A.AB2.33B36.4B41.D2.D10.4B78.4B82.4B50.5B$
217.4B96.4B10.4B23.A4.32B37.4B57.4B78.4B80.4B50.5B$218.4B96.4B8.4B23.
2A3.4B2.29B34.4B59.4B78.4B78.4B50.5B$219.4B96.4B6.4B28.4B4.28B33.4B
61.4B78.4B76.4B50.5B$220.4B96.4B4.4B28.4B5.22B2A4B32.4B63.4B78.4B74.
4B50.5B$221.4B96.4B2.4B28.4B7.21B2A2B.B2A29.4B65.4B78.4B54.B17.4B50.
5B$222.4B96.8B38.2AB.B.15B.5B.BA.A27.4B67.4B78.4B52.2B16.4B50.5B$223.
4B96.6B38.A.AB2.16B2.3B5.A26.4B69.4B78.4B50.3B15.4B50.5B$224.4B96.4B
39.A6.2B.12B.3B6.2A24.4B71.4B78.4B48.4B14.4B50.5B$225.4B94.6B37.2A10.
11B.B2AB30.4B73.4B78.4B46.4B14.4B50.5B$226.4B92.8B49.9B3.2A30.4B75.4B
78.4B44.4B14.4B50.5B$227.4B90.4B2.4B51.B.3B35.4B77.4B78.4B42.4B14.4B
50.5B$228.4B88.4B4.4B54.2B33.4B79.4B78.4B40.4B14.4B50.5B$229.4B86.4B
6.4B52.BA2B31.4B81.4B78.4B38.4B14.4B50.5B$230.4B84.4B8.4B51.A.A31.4B
83.4B78.4B36.4B14.4B50.5B$231.4B82.4B10.4B51.A31.4B85.4B78.4B34.4B14.
4B50.5B$232.4B80.4B12.4B81.4B87.4B78.4B32.4B14.4B50.5B$233.4B78.4B14.
4B79.4B89.4B78.4B30.4B14.4B50.5B$234.4B76.4B16.4B77.4B91.4B78.4B28.4B
14.4B50.5B$235.4B74.4B18.4B75.4B93.4B78.4B26.4B14.4B50.5B$236.4B72.4B
20.4B73.4B95.4B78.4B24.4B14.4B50.5B$237.4B70.4B22.4B71.4B97.4B78.4B5.
2B15.4B14.4B50.5B$238.4B68.4B24.4B69.4B99.4B78.4B3.4B2A11.4B14.4B50.
5B$239.4B66.4B26.4B67.4B101.4B78.4B.5B2AB9.4B14.4B50.5B$239.5B64.4B
28.4B65.4B103.4B78.13B7.4B7.2A5.4B50.5B$239.6B62.4B30.4B63.4B105.4B
78.12B6.4B8.A5.4B50.5B$238.9B59.4B32.4B61.4B107.4B65.2A11.11B5.5B5.BA
.A4.4B50.5B$238.9B58.4B34.4B59.4B109.4B63.B2AB10.11B4.7B4.B2A4.4B50.
5B$238.10B56.4B36.4B57.4B111.4B63.2B12.11B2.9B.3B5.4B50.5B$237.12B54.
4B38.4B55.4B113.4B61.2B8.31B4.4B50.5B$190.E45.14B52.4B40.4B53.4B115.
4B59.BA2B.3B.33B3.4B50.5B$190.3E33.2E8.15B50.4B42.4B51.4B117.4B58.A.A
39B2.4B50.5B$177.2E3.2E9.E17.E15.E9.15B48.4B44.4B49.4B119.4B58.A.44B
50.5B$176.B2CB.B2CB7.EC15.3E15.E.EB4.18B46.4B46.4B47.4B121.4B54.3A3.
42B50.5B$177.2B2.3B3.B4.4B12.E19.ECB.17B.4B44.4B48.4B45.4B123.4B53.A
5.24B2A15B50.5B$178.3B.3B.4B4.3B11.2E20.18B3.4B42.4B50.4B43.4B125.4B
58.23BABA14B50.5B$170.2E5.7B.13B11.B20.18B4.4B40.4B52.4B41.4B127.4B
56.25BA14B50.5B$171.E5.23B9.3B19.17B.B3.4B38.4B54.4B39.4B129.4B55.40B
49.5B$171.E.EB.19B.8B4.6B16.19BCE3.4B36.4B56.4B37.4B131.4B53.41B48.5B
$172.ECB.29B2.10B11.19B.BCE4.4B34.4B58.4B35.4B133.4B50.43B47.5B$174.
44B3.2B2.22B2.B6.4B32.4B60.4B33.4B135.4B48.22B2.19B47.5B$174.37B2C15B
D19B9.4B30.4B62.4B31.4B137.4B47.21B4.18B46.5B$174.37B2C15BDBD4B.12B
10.4B28.4B64.4B29.4B139.4B44.22B6.17B45.5B$175.53B3D4B2.11B11.4B4.B
21.4B66.4B27.4B141.4B42.22B8.2B2.11B45.5B$177.53BD4B.12B12.4B2.3B19.
4B68.4B25.4B143.4B42.20B14.9B45.5B$175.59B3.7B.3B2C11.9B5.2A10.4B70.
4B23.4B145.4B42.18B14.10B44.5B$175.EC3.25B4.13B.4B10.7B3.C2BC11.9B4.A
10.4B72.4B21.4B147.4B42.17B13.4B5.2A43.5B$176.E3.20B4.B4.7B.B4.4B12.
6B3.CBCB12.8B.BA.A9.4B74.4B19.4B149.4B42.17B11.4B6.A43.5B$173.3E6.15B
7.2E15.4B13.7B3.C4B2.4B3.9B.B2A9.4B76.4B17.4B151.4B41.17B10.4B8.3A39.
5B$173.E8.11B12.E14.4B14.6B6.4B.5B2.11B10.4B78.4B15.4B153.4B42.16B8.
4B11.A38.5B$181.13B8.3E14.4B14.6B7.10B2.11B9.4B80.4B13.4B155.4B42.2B
2.6B.5B6.4B50.5B$180.15B7.E15.4B15.6B9.21B8.4B82.4B11.4B157.4B44.6B4.
4B4.4B50.5B$180.16B21.4B15.8B9.19B8.4B84.4B9.4B159.4B42.6B6.4B2.4B50.
5B$180.17B19.4B17.6B8.B2.19B6.4B86.4B7.4B161.4B40.6B8.8B50.5B$180.16B
19.4B18.7B5.26B3.4B88.4B5.4B163.4B38.8B8.6B50.5B$182.13B19.4B17.41B.
4B90.4B3.4B165.4B36.4B.2B2AB8.4B50.5B$182.3B.2B2C5B18.4B16.B.2B2C13B
2A26B92.4B.4B167.4B34.4B4.2A8.6B48.5B$180.4B2.2B2C3B19.4B16.EC3B2C13B
2A25B94.7B169.4B32.4B14.8B46.5B$180.EC3.8B18.4B17.EC44B96.6B170.4B30.
4B14.4B2.4B44.5B$181.E4.8B16.4B19.46B95.6B171.4B28.4B14.4B4.4B42.5B$
178.3E5.8B15.4B18.5B2.B2.2B2.35B93.7B172.4B26.4B14.4B6.4B40.5B$178.E
8.7B14.4B19.EC4.3B7.4B2.7B2.19B91.9B172.4B24.4B14.4B8.4B38.5B$187.7B
13.4B21.E3.B2CB13.6B3.20B89.4B.6B172.4B5.2B15.4B14.4B10.4B36.5B$179.E
7.6B13.4B19.3E5.2E16.3B5.14B2.4B87.4B2.7B172.4B3.4B2A11.4B14.4B12.4B
34.5B$178.E.E6.6B12.4B20.E26.B4.3B.9B6.4B85.4B4.B2.4B172.4B.5B2AB9.4B
14.4B14.4B32.5B$178.E.E6.5B12.4B53.2A3.8B7.4B83.4B9.4B172.13B7.4B7.2A
5.4B16.4B30.5B$176.3E.2E4.6B11.4B55.A2.8B9.4B81.4B11.4B172.12B6.4B8.A
5.4B18.4B28.5B$175.E4.B6.6B9.4B53.3A5.4B12.4B79.4B13.4B159.2A11.11B5.
5B5.BA.A4.4B20.4B26.5B$176.3EB2CB3.7B8.4B54.A7.2A15.4B77.4B15.4B157.B
2AB10.11B4.7B4.B2A4.4B22.4B24.5B$178.E.2CB.8B8.4B64.A16.4B75.4B17.4B
157.2B12.11B2.9B.3B5.4B24.4B22.5B$182.10B8.3B62.3A18.4B73.4B19.4B155.
2B8.31B4.4B26.4B20.5B$182.6B2C3B5.ECB64.A21.4B71.4B21.4B153.BA2B.3B.
33B3.4B28.4B18.5B$182.6B2C2B5.E.EB87.4B69.4B23.4B152.A.A39B2.4B30.4B
16.5B$182.10B5.E91.4B67.4B25.4B152.A.44B32.4B14.5B$181.11B2.BE.E92.4B
65.4B27.4B148.3A3.42B34.4B12.5B$181.12B.BCE94.4B63.4B29.4B147.A5.24B
2A15B36.4B10.5B$180.15B97.4B61.4B31.4B152.23BABA14B38.4B8.5B$179.16B
98.4B59.4B33.4B150.25BA14B40.4B6.5B$176.2B.16B99.4B57.4B35.4B149.40B
41.4B4.5B$175.EC18B100.4B55.4B37.4B147.41B42.4B2.5B$175.ECB.17B100.4B
53.4B39.4B144.43B43.9B$176.B.4B.8B2.4B100.4B51.4B41.4B142.22B2.19B45.
7B$183.7B4.4B100.4B49.4B36.2D5.4B141.21B4.18B46.5B$184.6B5.4B100.4B
47.4B36.3D6.4B138.22B6.17B45.6B$186.4B6.4B100.4B45.4B38.2D7.4B136.22B
8.2B2.11B45.8B$188.3BE5.4B100.4B43.4B39.2D8.4B136.20B14.9B45.10B$189.
BC.E5.4B100.4B41.4B40.2D9.4B136.18B14.10B44.5B2.3B$190.C.E6.4B100.4B
39.4B41.2D10.4B136.17B13.4B5.2A43.5B$191.E8.4B100.4B37.4B41.4D10.4B
136.17B11.4B6.A43.5B$192.3E6.4B100.4B35.4B57.4B135.17B10.4B8.3A39.5B$
194.E7.4B100.4B33.4B59.4B136.16B8.4B11.A38.5B$203.4B100.4B31.4B61.4B
136.2B2.6B.5B6.4B50.5B$204.4B100.4B29.4B63.4B138.6B4.4B4.4B50.5B$205.
4B100.4B27.4B65.4B136.6B6.4B2.4B50.5B$206.4B100.4B25.4B67.4B134.6B8.
8B50.5B$207.4B100.4B23.4B69.4B132.8B8.6B50.5B$208.4B100.4B21.4B71.4B
130.4B.2B2AB8.4B50.5B$209.4B100.4B19.4B73.4B128.4B4.2A8.6B48.5B$210.
4B100.4B17.4B75.4B144.8B46.5B$211.4B100.4B15.4B77.4B142.4B2.4B44.5B$
212.4B100.4B13.4B79.4B140.4B4.4B42.5B$213.4B100.4B11.4B81.4B138.4B6.
4B40.5B$214.4B100.4B9.4B83.4B136.4B8.4B38.5B$215.4B100.4B7.4B85.4B
134.4B10.4B36.5B$216.4B100.4B5.4B87.4B132.4B12.4B34.5B$217.4B100.4B3.
4B89.4B130.4B14.4B32.5B$218.4B100.4B.4B91.4B128.4B16.4B30.5B$219.4B
100.7B93.4B126.4B18.4B28.5B$220.4B100.6B94.4B124.4B20.4B26.5B$221.4B
99.6B95.4B122.4B22.4B24.5B$222.4B97.7B96.4B120.4B24.4B22.5B$223.4B95.
9B96.4B118.4B26.4B20.5B$224.4B93.4B.6B96.4B116.4B28.4B18.5B$225.4B91.
4B2.7B96.4B114.4B30.4B16.5B$226.4B89.4B4.B2.4B96.4B112.4B32.4B14.5B$
227.4B87.4B9.4B96.4B110.4B34.4B12.5B$228.4B85.4B11.4B96.4B108.4B36.4B
10.5B$229.4B83.4B13.4B96.4B106.4B38.4B8.5B$230.4B81.4B15.4B96.4B104.
4B40.4B6.5B$231.4B79.4B17.4B96.4B102.4B42.4B4.5B$232.4B77.4B19.4B96.
4B100.4B44.4B2.5B$233.4B75.4B21.4B96.4B98.4B46.9B$234.4B73.4B23.4B96.
4B96.4B48.7B$235.4B71.4B25.4B96.4B94.4B50.5B$236.4B69.4B27.4B96.4B92.
4B50.6B$237.4B67.4B29.4B96.4B72.B17.4B50.8B$238.4B65.4B31.4B96.4B70.
2B16.4B50.10B$239.4B63.4B33.4B96.4B68.3B15.4B50.5B2.3B$240.4B61.4B35.
4B96.4B66.4B14.4B50.5B$241.4B59.4B37.4B96.4B64.4B14.4B50.5B$242.4B57.
4B39.4B96.4B62.4B14.4B50.5B$243.4B55.4B34.2D5.4B96.4B60.4B14.4B50.5B$
244.4B53.4B34.D2.D5.4B96.4B58.4B14.4B50.5B$245.4B51.4B38.D6.4B96.4B
56.4B14.4B50.5B$246.4B49.4B38.D8.4B96.4B54.4B14.4B50.5B$247.4B47.4B
38.D10.4B96.4B52.4B14.4B50.5B$248.4B45.4B38.D12.4B96.4B50.4B14.4B50.
5B$249.4B43.4B39.4D10.4B96.4B48.4B14.4B50.5B$250.4B41.4B55.4B96.4B46.
4B14.4B50.5B$251.4B39.4B57.4B96.4B44.4B14.4B50.5B$252.4B37.4B59.4B96.
4B42.4B14.4B50.5B$253.4B35.4B61.4B96.4B40.4B14.4B50.5B$254.4B33.4B63.
4B96.4B38.4B14.4B50.5B$255.4B31.4B65.4B96.4B36.4B14.4B50.5B$256.4B29.
4B67.4B96.4B34.4B14.4B50.5B$257.4B27.4B69.4B96.4B32.4B14.4B50.5B$258.
4B25.4B71.4B96.4B30.4B14.4B50.5B$259.4B23.4B73.4B96.4B28.4B14.4B50.5B
$260.4B21.4B75.4B96.4B26.4B14.4B50.5B$261.4B19.4B77.4B96.4B24.4B14.4B
50.5B$262.4B17.4B79.4B96.4B5.2B15.4B14.4B50.5B$263.4B15.4B81.4B96.4B
3.4B2A11.4B14.4B50.5B$264.4B13.4B83.4B96.4B.5B2AB9.4B14.4B50.5B$265.
4B11.4B85.4B96.13B7.4B7.2A5.4B50.5B$266.4B9.4B87.4B96.12B6.4B8.A5.4B
50.5B$267.4B7.4B89.4B83.2A11.11B5.5B5.BA.A4.4B50.5B$268.4B5.4B91.4B
81.B2AB10.11B4.7B4.B2A4.4B50.5B$269.4B3.4B93.4B81.2B12.11B2.9B.3B5.4B
50.5B$270.4B.4B95.4B79.2B8.31B4.4B50.5B$271.7B97.4B77.BA2B.3B.33B3.4B
50.5B$272.6B98.4B76.A.A39B2.4B50.5B$272.6B99.4B76.A.44B50.5B$271.7B
100.4B72.3A3.42B50.5B$270.9B100.4B71.A5.24B2A15B50.5B$269.4B.6B100.4B
76.23BABA14B50.5B$268.4B2.7B100.4B74.25BA14B50.5B$267.4B4.B2.4B100.4B
73.40B49.5B$266.4B9.4B100.4B71.41B48.5B$265.4B11.4B100.4B68.43B47.5B$
264.4B13.4B100.4B66.22B2.19B47.5B$263.4B15.4B100.4B65.21B4.18B46.5B$
262.4B17.4B100.4B62.22B6.17B45.5B$261.4B19.4B100.4B60.22B8.2B2.11B45.
5B$260.4B21.4B100.4B60.20B14.9B45.5B$259.4B23.4B100.4B60.18B14.10B44.
5B$258.4B25.4B100.4B60.17B13.4B5.2A43.5B$257.4B27.4B100.4B60.17B11.4B
6.A43.5B$256.4B29.4B100.4B59.17B10.4B8.3A39.5B$255.4B31.4B100.4B60.
16B8.4B11.A38.5B$254.4B33.4B100.4B60.2B2.6B.5B6.4B50.5B$253.4B35.4B
100.4B62.6B4.4B4.4B50.5B$252.4B37.4B100.4B60.6B6.4B2.4B50.5B$251.4B
39.4B100.4B58.6B8.8B50.5B$250.4B41.4B100.4B56.8B8.6B50.5B$249.4B43.4B
100.4B54.4B.2B2AB8.4B50.5B$248.4B36.D2.D5.4B100.4B52.4B4.2A8.6B48.5B$
247.4B37.D2.D6.4B100.4B50.4B14.8B46.5B$246.4B38.D2.D7.4B100.4B48.4B
14.4B2.4B44.5B$245.4B39.4D8.4B100.4B64.4B4.4B42.5B$244.4B43.D9.4B100.
4B62.4B6.4B40.5B$243.4B44.D10.4B100.4B60.4B8.4B38.5B$242.4B45.D11.4B
100.4B58.4B10.4B36.5B$241.4B59.4B100.4B56.4B12.4B34.5B$240.4B61.4B
100.4B54.4B14.4B32.5B$239.4B63.4B100.4B52.4B16.4B30.5B$233.B4.4B16.A
11.2A35.4B100.4B50.4B18.4B28.5B$232.3B2.4B16.A.A9.B2AB35.4B100.4B48.
4B20.4B26.5B$224.2A5.9B17.A.A9.3B37.4B100.4B46.4B22.4B24.5B$225.A4.9B
12.2A2.3A.2A9.B.B37.4B100.4B26.4B14.4B24.4B22.5B$225.A.AB.8B13.A2.A4.
B8.5B38.4B100.4B24.4B14.4B26.4B20.5B$226.2AB.9B3.4B2.BA.A3.3AB2A6.6B
39.4B100.4B5.2B15.4B14.4B28.4B18.5B$228.11B2.5B2.B2A6.AB2A4.8B40.4B
100.4B3.4B2A11.4B14.4B30.4B16.5B$228.11B2.8B9.14B42.4B100.4B.5B2AB9.
4B14.4B32.4B14.5B$228.21B10.15B41.4B100.13B7.4B7.2A5.4B34.4B12.5B$
229.19B12.15B41.4B100.12B6.4B8.A5.4B36.4B10.5B$228.19B2.B10.15B42.4B
87.2A11.11B5.5B5.BA.A4.4B38.4B8.5B$226.26B5.B.17B42.4B85.B2AB10.11B4.
7B4.B2A4.4B40.4B6.5B$225.51B43.4B85.2B12.11B2.9B.3B5.4B42.4B4.5B$226.
21B2A13B2A13B43.4B83.2B8.31B4.4B44.4B2.5B$224.23B2A13B2A14B43.4B81.BA
2B.3B.33B3.4B46.9B$224.49B3.B2A43.4B80.A.A39B2.4B48.7B$225.47B4.A2.A
43.4B80.A.44B50.5B$225.31B2.2B2.B3.6B5.2A.A43.4B76.3A3.42B50.6B$227.
12B2.7B2.4B13.6B7.A44.4B75.A5.24B2A15B50.8B$228.11B3.6B17.9B6.2A44.4B
80.23BABA14B50.10B$231.7B5.3B19.2A4.4B52.4B78.25BA14B50.5B2.3B$232.4B
.3B4.B21.A5.4B52.4B77.40B49.5B$233.2B3.2A23.3A7.4B52.4B75.41B48.5B$
232.4B2.A24.A10.4B52.4B72.43B47.5B$232.B2AB3.3A33.4B9.2D41.4B70.22B2.
19B47.5B$233.2A6.A34.4B7.D2.D41.4B69.21B4.18B46.5B$277.4B6.D2.D42.4B
66.22B6.17B45.5B$278.4B5.D2.D43.4B64.22B8.2B2.11B45.5B$279.4B4.D2.D
44.4B64.20B14.9B45.5B$280.4B3.D2.D45.4B64.18B14.10B44.5B$281.4B3.2D
47.4B64.17B13.4B5.2A43.5B$282.4B52.4B64.17B11.4B6.A43.5B$283.4B52.4B
63.17B10.4B8.3A39.5B$284.4B52.4B64.16B8.4B11.A38.5B$285.4B52.4B64.2B
2.6B.5B6.4B50.5B$286.4B52.4B66.6B4.4B4.4B50.5B$287.4B52.4B64.6B6.4B2.
4B50.5B$288.4B15.A36.4B62.6B8.8B50.5B$289.4B12.3A37.4B60.8B8.6B50.5B$
290.4B10.A41.4B58.4B.2B2AB8.4B50.5B$291.4B9.2A41.4B56.4B4.2A8.6B48.5B
$292.4B6.4B42.4B54.4B14.8B46.5B$293.4B4.2AB45.4B52.4B14.4B2.4B44.5B$
294.4B3.A.AB.2B42.4B50.4B14.4B4.4B42.5B$295.4B3.2A.4B2A40.4B48.4B14.
4B6.4B40.5B$296.4B2.7B2A2B.B5.2A30.4B46.4B14.4B8.4B38.5B$297.4B2.13B
4.A32.4B44.4B14.4B10.4B36.5B$298.4B.15BA.A33.4B42.4B14.4B12.4B34.5B$
299.19B2A35.4B58.4B14.4B32.5B$300.4BD13B38.4B56.4B16.4B30.5B$298.B.3B
DBD12B39.4B54.4B18.4B28.5B$297.2AB.2BDBD12B40.4B52.4B20.4B26.5B$297.
2A5BD13B41.4B50.4B22.4B24.5B$298.2B.17B42.4B48.4B24.4B22.5B$301.16B
44.4B46.4B26.4B20.5B$301.4B.7B.2B46.4B44.4B28.4B18.5B$300.4B3.5B51.4B
42.4B30.4B16.5B$299.4B5.4B52.4B5.2B33.4B32.4B14.5B$298.4B6.5B52.4B3.
4B2A29.4B34.4B12.5B$297.4B8.5B52.4B.5B2AB27.4B36.4B10.5B$296.4B11.4B
52.13B7.4B7.2A5.4B38.4B8.5B$295.4B13.4B52.12B6.4B8.A5.4B40.4B6.5B$
294.4B15.4B39.2A11.11B5.5B5.BA.A4.4B42.4B4.5B$293.4B17.4B37.B2AB10.
11B4.7B4.B2A4.4B44.4B2.5B$292.4B19.4B37.2B12.11B2.9B.3B5.4B46.9B$291.
4B21.4B35.2B8.31B4.4B48.7B$290.4B23.4B33.BA2B.3B.33B3.4B50.5B$289.4B
25.4B32.A.A39B2.4B50.6B$288.4B27.4B32.A.44B50.8B$287.4B29.4B28.3A3.
42B50.10B$286.4B31.4B27.A5.24B2A15B50.5B2.3B$285.4B33.4B32.23BABA14B
50.5B$284.4B35.4B30.25BA14B50.5B$283.4B37.4B29.40B49.5B$282.4B39.4B
27.41B48.5B$281.4B41.4B24.43B47.5B$280.4B43.4B22.22B2.19B47.5B$279.4B
45.4B21.21B4.18B46.5B$278.4B47.4B18.22B6.17B45.5B$277.4B49.4B16.22B8.
2B2.11B45.5B$276.4B51.4B16.20B14.9B45.5B$275.4B53.4B16.18B14.10B44.5B
$259.3D12.4B55.4B16.17B13.4B5.2A43.5B$259.D2.D10.4B27.2A11.A16.4B4.B
11.17B11.4B6.A43.5B$259.D2.D9.4B27.B2AB9.A.A16.4B2.3B10.17B10.4B8.3A
39.5B$259.D2.D8.4B29.3B9.A.A17.9B5.2A4.16B8.4B11.A38.5B$259.D2.D7.4B
29.B.B9.2A.3A2.2A12.9B4.A6.2B2.6B.5B6.4B50.5B$259.D2.D6.4B30.5B8.B4.A
2.A13.8B.BA.A9.6B4.4B4.4B50.5B$259.3D6.4B31.6B6.2AB3A3.A.AB2.4B3.9B.B
2A9.6B6.4B2.4B50.5B$267.4B32.8B4.2A.A6.2AB2.5B2.11B10.6B8.8B50.5B$
266.4B34.13B10.8B2.11B9.8B8.6B50.5B$265.4B33.15B10.21B8.4B.2B2AB8.4B
50.5B$264.4B33.15B12.19B8.4B4.2A8.6B48.5B$263.4B34.15B10.B2.19B6.4B
14.8B46.5B$262.4B34.17B.B5.26B3.4B14.4B2.4B44.5B$261.4B35.51B.4B14.4B
4.4B42.5B$260.4B35.13B2A13B2A21B.4B14.4B6.4B40.5B$259.4B35.14B2A13B2A
25B14.4B8.4B38.5B$258.4B35.2AB3.50B14.4B10.4B36.5B$257.4B35.A2.A4.48B
14.4B12.4B34.5B$256.4B35.A.2A5.6B3.B2.2B2.33B12.4B14.4B32.5B$255.4B
36.A7.6B13.4B2.7B2.16B11.4B16.4B30.5B$254.4B36.2A6.9B17.6B3.16B10.4B
18.4B28.5B$253.4B44.4B4.2A19.3B5.14B10.4B20.4B26.5B$252.4B44.4B5.A21.
B4.3B.9B12.4B22.4B24.5B$251.4B32.2D10.4B7.3A23.2A3.8B11.4B24.4B22.5B$
250.4B32.D2.D8.4B10.A24.A6.4B11.4B26.4B20.5B$249.4B33.D10.4B33.3A5.4B
12.4B28.4B18.5B$248.4B34.D9.4B34.A7.2A13.4B30.4B16.5B$247.4B35.D8.4B
44.A12.4B32.4B14.5B$246.4B36.D2.D4.4B42.3A12.4B34.4B12.5B$245.4B38.2D
4.4B43.A13.4B36.4B10.5B$244.4B44.4B57.4B38.4B8.5B$243.4B44.4B57.4B40.
4B6.5B$242.4B44.4B57.4B42.4B4.5B$241.4B44.4B57.4B44.4B2.5B$240.4B44.
4B57.4B46.9B$239.4B44.4B57.4B48.7B$238.4B44.4B57.4B35.A9.A4.5B$237.4B
44.4B57.4B36.3A5.3A3.6B$236.4B44.4B57.4B40.A3.A5.8B$235.4B44.4B57.4B
40.2A.B.2A3.10B$234.4B44.4B57.4B36.A4.7B2.5B2.3B$233.4B44.4B57.4B37.
3A4.3B3.5B$232.4B44.4B57.4B41.A2.11B$231.4B44.4B57.4B41.2A2.10B$230.
4B44.4B57.4B42.3B.9B$229.4B44.4B57.4B45.11B$228.4B44.4B57.4B45.12B$
227.4B44.4B57.4B46.10B.B2A$226.4B44.4B57.4B48.8B2.BA.A$225.4B44.4B57.
4B48.8B6.A$224.4B44.4B57.4B50.8B5.2A$223.4B44.4B57.4B50.9B$222.4B44.
4B57.4B50.11B$221.4B44.4B57.4B50.12B$220.4B44.4B57.4B51.12B$219.4B44.
4B57.4B51.12B$218.4B44.4B57.4B51.10B.4B$217.4B44.4B57.4B51.10B4.2A$
216.4B44.4B57.4B51.11B4.A$215.4B44.4B57.4B51.4B.6B6.3A$214.4B44.4B57.
4B51.4B.7B8.A$213.4B44.4B57.4B51.4B.8B$212.4B44.4B57.4B51.4B.8B$211.
4B44.4B57.4B51.4B.9B$210.4B44.4B57.4B51.4B.4B.6B$209.4B44.4B57.4B51.
4B.4B.7B$208.4B44.4B57.4B51.4B.4B2.6B$207.4B44.4B57.4B51.4B.4B3.6B$
206.4B44.4B57.4B51.4B.4B4.6B$205.4B44.4B57.4B51.4B.4B4.8B$204.4B44.4B
57.4B51.4B.4B6.8B$203.4B44.4B57.4B51.4B.4B6.9B$202.4B44.4B57.4B51.4B.
4B7.9B$201.4B44.4B57.4B51.4B.4B8.10B$200.4B44.4B57.4B51.4B.4B9.5B2A3B
$199.4B44.4B57.4B51.4B.4B10.5B2A4B3.2A$198.4B44.4B57.4B51.4B.4B11.11B
3.A$197.4B44.4B57.4B51.4B.4B12.12BA.A$196.4B44.4B57.4B51.4B.4B15.8B2.
2A4.2A$195.4B44.4B57.4B51.4B.4B10.2A4.7B9.A$194.4B44.4B57.4B51.4B.4B
12.A4.6B7.BA.A$193.4B44.4B57.4B51.4B.4B13.A.AB.6B3.3B.B2A13.2A$192.4B
44.4B57.4B51.4B.4B15.2AB.14B14.B2AB$191.4B44.4B57.4B51.4B.4B18.16B15.
2B$190.4B44.4B57.4B51.4B.4B20.14B17.2B3.B$189.4B44.4B57.4B51.4B.4B20.
16B15.4B.B2A$188.4B44.4B57.4B51.4B.4B21.18B11.8B2A$187.4B44.4B57.4B
51.4B.4B23.20B2.2B2.6B2AB.B$186.4B44.4B57.4B51.4B.4B25.31B2A$185.4B
44.4B57.4B51.4B3.2B3.B23.7B.24B$184.4B44.4B57.4B51.4B4.3B.B2A22.6B2.
28B$183.4B44.4B57.4B51.4B6.A3B2A21.6B3.28B$182.4B44.4B57.4B51.4B6.A.A
B.B22.4B6.26B2A$181.4B44.4B57.4B51.4B6.A.AB25.2B2AB12.4B.14B2A$180.4B
44.4B57.4B51.4B7.A26.2AB.2A14.4B2.11B.B$179.4B44.4B57.4B51.4B7.2A25.A
.AB18.4B2.10B$178.4B44.4B57.4B51.4B35.A22.14B$177.4B44.4B57.4B51.4B
35.2A23.14B$176.4B44.4B57.4B51.4B61.13B$175.4B44.4B57.4B51.4B62.13B$
174.4B44.4B57.4B51.4B63.8B.2B$173.4B44.4B57.4B51.4B64.8B$172.4B44.4B
32.2A23.4B51.4B65.9B$171.4B44.4B34.A22.4B51.4B66.10B$170.4B44.4B35.A.
AB18.4B51.4B66.7B.4B$169.4B44.4B37.2AB.2A14.4B19.A31.4B66.8B2.4B$168.
4B44.4B40.2B2AB12.4B.3B.B12.3A15.A9.A4.4B66.8B4.4B$167.4B44.4B41.4B6.
18B10.A18.3A5.3A3.4B67.8B5.4B$166.4B44.4B42.6B3.16B2A2B5.B3.2A20.A3.A
5.4B66.2AB2.6B5.4B$165.4B44.4B44.6B2.16B2A2B3.8B19.2A.B.2A3.4B66.A.AB
.7B6.4B$164.4B44.4B45.7B.20B.8B21.7B2.4B67.A4.6B8.4B$163.4B44.4B45.
38B23.3B3.4B67.2A4.8B4.B2.5B$162.4B44.4B45.20B2.2B.15B21.5B.4B75.B2A
6B.11B$161.4B44.4B45.18B8.17B19.9B75.2B2A17B2A$160.4B44.4B46.16B11.
19B2.2B3.2B6.9B77.18B.B2A$159.4B44.4B48.14B12.42B79.17B2.B$158.4B44.
4B48.16B12.7B.32B83.13B$157.4B44.4B47.2AB.14B11.25B2A14B82.12B$156.4B
44.4B47.A.AB.6B3.3B.B2A8.26B2A16B80.10B$155.4B44.4B48.A4.6B7.BA.A8.8B
2.27B2A4B79.11B$154.4B44.4B48.2A4.7B9.A8.6B11.4B.3B.2B.7BA2BA4B78.7B.
2B$153.4B44.4B55.8B2.2A4.2A8.5B12.4B6.4B.B.2B2AB2.B2A76.11B$152.4B44.
4B54.12BA.A13.4B14.4B4.4B4.5B2.BA.A76.11B$151.4B44.4B55.11B3.A14.3B
15.4B2.4B7.2B6.A76.11B$150.4B44.4B56.5B2A4B3.2A11.4B17.8B6.4B6.2A75.
11B$149.4B44.4B57.5B2A3B17.2A20.6B7.2A83.2AB2.8B$148.4B44.4B58.10B18.
A21.4B9.A82.A.AB3.7B$195.4B59.9B16.3A21.6B5.3A83.A6.7B$194.4B60.9B16.
A22.8B4.A84.2A7.6B$193.4B62.8B38.4B2.4B97.7B$192.4B62.8B38.4B4.4B96.
8B$191.4B64.6B38.4B6.4B96.8B$190.4B59.2A4.6B37.4B8.4B95.8B$189.4B61.A
4.6B36.4B10.4B93.6B2.B2A$188.4B62.A.AB.7B34.4B12.4B77.A14.7B.BA.A$
187.4B64.2AB2.6B33.4B14.4B76.3A13.6B4.A$186.4B67.8B33.4B16.4B78.A5.B
4.8B4.2A$185.4B68.8B32.4B18.4B76.2A3.4B.6B2AB$184.4B70.8B30.4B20.4B
75.16B2A2B$259.7B8.A20.4B22.4B76.17B$260.6B6.3A19.4B24.4B74.17B$260.
7B4.A21.4B26.4B74.13B$260.7B4.2A19.4B28.4B75.12B$260.8B.4B18.4B30.4B
76.10B$260.11B19.4B32.4B75.11B$260.12B17.4B34.4B75.2B.7B$260.12B16.4B
36.4B74.11B$261.11B15.4B38.4B72.11B$264.9B13.4B40.4B71.11B$263.10B.2B
9.4B42.4B70.11B$252.3B4.B.16B7.4B44.4B69.8B2.B2A$252.28B3.4B46.4B68.
7B3.BA.A$251.2A33B48.4B67.7B6.A$251.2A32B50.4B66.6B7.2A$252.B.30B52.
4B64.7B$254.29B54.4B62.8B$256.25B57.4B60.8B$257.B5.17B59.4B58.9B$266.
14B60.4B56.4B.6B$266.14B61.4B54.4B.7B$267.2B4.3B66.4B52.4B2.6B$266.2B
6.B68.4B50.4B3.6B$265.B2AB75.4B48.4B4.6B$266.2A77.4B46.4B4.8B$346.4B
44.4B6.8B$347.4B42.4B6.9B$348.4B40.4B7.9B$349.4B38.4B8.10B$350.4B36.
4B9.5B2A3B$351.4B34.4B10.5B2A4B3.2A$352.4B32.4B11.11B3.A$353.4B30.4B
12.12BA.A$354.4B28.4B15.8B2.2A$355.4B26.4B16.7B$356.4B24.4B17.6B$357.
4B22.4B14.2A2.6B$358.4B20.4B14.A.A9B$359.4B18.4B15.A3.9B$360.4B16.4B
15.2A3.9B$361.4B15.3B21.9B$362.4B12.4B22.9B$363.4B11.2A23.11B$364.4B
11.A23.11B$365.4B7.3A24.12B$366.4B5.A21.B4.14B$367.4B4.2A19.3B3.10B.
4B$360.2A6.9B17.6B2.15B$361.A7.6B13.4B2.7B.13B.B2A$361.A.2A5.6B3.B2.
2B2.29B.BA.A$362.A2.A4.45B4.A$363.2AB3.46B4.2A$364.14B2A13B2A21B$365.
13B2A13B2A21B$366.51B$366.17B.B5.26B$367.15B10.B2.20B$367.15B12.20B.B
.B$368.13B12.24B2A$370.13B10.24B2A$369.8B4.2A.A6.2AB2.5B2.12B.2B$369.
6B6.2AB3A3.A.AB2.4B3.13B$369.5B8.B4.A2.A14.11B.B$369.B.B9.2A.3A2.2A
14.12B2A$370.3B9.A.A20.10B.B2A$369.B2AB9.A.A18.2AB.6B4.B$370.2A11.A
18.A.AB.4B$402.A5.5B$401.2A8.2A$411.A$412.3A$414.A!
I'm most of the way through building seeds of destruction for this 6/1 ECCA so that it can replace the 6/3 ECCA that's currently in the repository.

I'm curious how you propose to improve upon the encoding efficiency, because 6/1 is already so close to Shannon-optimality. Unless you're thinking of somehow taking advantage of the fact that there can be multiple equivalent glider salvos (as you do in the DBCA, for example by making it easier to fire p1 gliders than p2 gliders).

There is of course the orthogonal question of whether the ECCA's circuitry itself could be cheaper whilst supporting the same (or equivalent) encoding. The only part that I find unsatisfying is the reset circuit in the far south (involving a Silver reflector and another Herschel track reflector, just to produce two synchronised NE-directed gliders); hopefully this can be replaced with something much simpler.
What do you do with ill crystallographers? Take them to the mono-clinic!
User avatar
Hippo.69
Posts: 683
Joined: July 14th, 2020, 7:35 pm
Contact:

Re: Binary slow salvos

Post by Hippo.69 »

calcyman wrote: May 3rd, 2023, 6:41 pm Could you please explain this in more detail? At the moment there's a 6/1 ECCA with a population of 4242 including the circuit to reflect gliders of a particular colour; this should be the baseline to beat:

Code: Select all

x = 811, y = 1384, rule = LifeHistory
214.2C2B$214.2C3B$214.6B$214.7B$214.8B$214.9B$214.10B$214.6B.4B$214.
6B2.4B$214.2B.4B2.4B$214.2B2.4B2.4B$214.B4.4B2.4B$220.4B2.4B$213.2B6.
4B2.4B$213.3B6.4B2.4B$207.4B.5B6.4B2.4B$206.4B3.5B6.4B2.4B$205.4B5.5B
6.4B2.4B$204.4B7.5B6.4B2.4B$203.4B9.5B6.4B2.4B$202.4B11.5B6.4B2.4B$
201.4B13.5B6.4B2.4B$200.4B15.5B6.4B2.4B$199.4B17.5B6.4B2.4B$198.4B19.
5B6.4B2.4B$197.4B21.5B6.4B2.4B$196.4B23.5B6.4B2.4B$195.4B25.5B4.B.4B
2.4B$194.4B27.5B3.2B.4B2.4B$193.4B29.5B2.3B.4B2.4B$192.4B31.5B.4B.4B
2.4B$191.4B33.10B.4B2.4B$190.4B35.10B.4B2.4B$189.4B37.10B.4B2.4B$188.
4B39.10B.4B2.4B$187.4B39.12B.4B2.4B$186.4B38.15B.4B2.4B$185.3DB38.17B
.4B2.4B$184.4D40.17B.4B2.4B$183.4D41.18B.4B2.4B$182.4D41.20B.4B2.4B$
181.4D41.22B.4B2.4B$180.4D42.23B.4B2.4B$179.4D42.25B.4B2.4B$178.4D23.
A19.26B.4B2.4B$177.4D22.3A20.26B.4B2.4B$176.4D5.2B15.A21.29B.4B2.4B$
175.4D5.4B14.2A20.30B.4B2.4B$174.4D6.4B15.B20.19B2.10B.4B2.4B$173.4D
3.B2.6B14.3B19.17B4.10B.4B2.4B$172.4D3.2AB.2B2A2B13.6B16.18B5.10B.4B
2.4B$171.4D4.2A3BA2BA3B.B8.10B11.20B6.10B.4B2.4B$170.4D6.2B.2B2A7B3.
2B2.11B3.2B2.22B8.10B.4B2.4B$169.4D10.22B2A34B9.10B.4B2.4B$168.4D12.
21B2A32B12.10B.4B2.4B$167.4D13.54B14.10B.4B2.4B$166.4D14.54B15.10B.4B
2.4B$165.4D14.55B16.10B.4B2.4B$164.4D13.B.13B2.B4.13B.4B4.13B17.10B.
4B2.4B$163.4D13.2AB.12B7.7B.B5.3B5.3B4.6B18.10B.4B2.4B$162.4D14.2A14B
19.4B4.4B5.7B18.10B.4B2.4B$161.4D16.2B.11B20.2A6.2A7.6B20.10B.4B2.4B$
160.4D20.11B21.A7.A6.6B22.10B.4B2.4B$159.4D21.10B19.3A5.3A7.6B23.10B.
4B2.4B$158.4D14.2A5.7B23.A7.A8.8B23.10B.4B2.4B$157.4D16.A6.6B41.6B25.
10B.4B2.4B$156.4D17.A.AB2.8B40.7B25.10B.4B2.4B$155.4D19.2AB2.9B37.11B
24.10B.4B2.4B$154.4D22.12B35.B.2B2A9B23.10B.4B2.4B$153.4D23.12B34.2A
3B2A9B24.10B.4B2.4B$152.4D24.10B.B2A32.2A14B25.10B.4B2.4B$151.4D26.8B
2.BA.A32.14B27.10B.4B2.4B$150.4D26.8B6.A30.5B2.B2.2B.3B28.10B.4B2.4B$
149.4D28.8B5.2A29.2A4.3B5.2A29.10B.4B2.4B$148.4D30.7B37.A4.B2AB4.A31.
10B.4B2.4B$147.4D28.11B33.3A6.2A6.3A29.10B.4B2.4B$146.4D28.12B33.A18.
A30.10B.4B2.4B$145.4D29.12B84.10B.4B2.4B$144.4D30.11B86.10B.4B2.4B$
143.4D31.8B.4B85.10B.4B2.4B$142.4D32.7B4.2A86.10B.4B2.4B$141.4D33.7B
4.A87.11B.4B2.4B$140.4D34.6B6.3A84.12B.4B2.4B$139.4D34.7B8.A83.14B.4B
2.4B$138.4D34.8B92.20B2.4B$137.4D34.8B93.21B2.4B$136.4D35.8B92.10B.7B
.4B2.4B$135.4D34.2AB2.6B90.12B.7B.4B.5B$41.4B89.4D34.A.AB.7B80.2A8.
13B.7B.10B$42.4B87.4D35.A4.6B15.2A65.A9.11B3.7B.10B$43.4B85.4D35.2A4.
8B4.B8.A66.A.AB4.12B5.7B.10B6.B$44.4B83.4D43.B2A6B.4B3.BA.A52.2A13.2A
B.15B6.18B4.2B$45.4B81.4D43.2B2A13B.B2A52.B2AB14.17B7.18B2.3B$46.4B
79.4D45.18B55.2B15.17B8.22B$47.4B77.4D47.17B50.B3.2B17.17B.B6.20B$48.
4B75.4D51.13B50.2AB.4B15.19B2A6.18B$49.4B73.4D51.12B52.2A8B11.19B.B2A
7.18B$50.4B71.4D52.10B55.B.B2A6B2.2B2.20B4.B9.18B$51.4B69.4D52.11B58.
2A32B15.18B$52.4B67.4D53.7B.2B59.24B.9B16.18B$53.4B65.4D53.11B55.28B
2.7B18.12B2.4B$54.4B63.4D55.11B54.28B2.7B19.7B.4B2.4B$55.4B61.4D56.
11B53.2A26B4.6B20.7B.4B2.6B$56.4B59.4D57.11B53.2A14B.4B10.7B20.8B.4B
2.4B$57.4B57.4D56.2AB2.8B54.B.11B2.4B12.6B20.9B.4B2.4B$58.4B55.4D56.A
.AB3.7B56.10B2.4B13.7B19.2B.7B.4B2.4B$59.4B53.4D57.A6.7B57.14B14.6B
20.B3.7B.4B2.4B$60.4B51.4D57.2A7.6B56.14B15.5B26.7B.4B.5B$61.4B49.4D
67.7B56.13B14.6B27.7B.10B$62.4B47.4D68.8B55.13B14.4B30.7B.10B$63.4B
45.4D70.8B56.2B.8B14.2B2AB30.7B.10B$64.4B43.4D71.9B58.8B16.2A32.7B.
10B$65.4B41.4D71.6B.4B56.9B51.7B.10B$66.4B39.4D72.7B.4B54.10B52.18B$
67.4B37.4D74.6B2.4B52.4B.7B52.18B$68.4B35.4D75.6B3.4B50.4B2.8B52.18B$
69.4B33.4D76.6B4.4B48.4B4.8B52.18B$70.4B31.4D76.8B4.4B46.4B5.8B53.18B
$71.4B29.4D76.8B6.4B44.4B5.6B2.B2A52.18B$72.4B27.4D77.9B6.4B42.4B6.7B
.BA.A52.18B$73.4B25.4D78.9B7.4B40.4B8.6B4.A53.18B$74.4B23.4D78.10B8.
4B38.4B9.6B4.2A52.14B.4B$75.4B21.4D79.3B2A5B9.4B36.4B10.6B58.9B.4B2.
4B$76.4B19.4D74.2A3.4B2A5B10.4B34.4B10.8B57.10B.4B2.4B$77.4B17.4D76.A
3.11B11.4B32.4B10.8B59.10B.4B2.4B$78.4B15.4D77.A.A12B12.4B30.4B11.9B
59.10B.4B2.4B$79.4B13.4D79.2A2.8B15.4B28.4B12.9B60.10B.4B2.4B$80.4B
11.4D85.7B16.4B26.4B12.10B61.10B.4B2.4B$81.4B9.4D87.6B17.4B24.4B13.3B
2A5B62.10B.4B2.4B$82.4B7.4D88.6B2.2A14.4B22.4B8.2A3.4B2A5B63.10B.4B2.
4B$83.4B5.4D88.9BA.A14.4B20.4B10.A3.11B64.10B.4B2.4B$84.4B3.4D88.9B3.
A15.4B18.4B11.A.A12B65.10B.4B2.4B$85.4B.4D89.9B3.2A15.4B16.4B13.2A2.
8B71.7B.4B2.4B$86.3B4D90.9B21.3B15.4B19.7B5.2A65.7B.4B2.4B$87.B4D91.
9B22.4B12.4B22.7B2.B2A2B64.7B.4B2.4B$87.4DB90.11B23.2A11.4B22.9B2.4B
6.2A57.7B.4B2.4B$86.4D3B89.11B23.A11.4B18.2B.11B.6B5.A56.9B2.4B2.4B$
85.4D.4B87.12B24.3A7.4B19.22B.BA.A55.11B2.4B2.4B$84.4D3.4B85.14B4.B
21.A5.4B19.23B.B2A57.17B2.4B$83.4D5.4B83.4B.10B3.3B19.2A4.4B20.25B59.
18B2.4B$82.4D7.4B82.15B2.6B17.9B6.2A10.28B58.20B2.4B$81.4D9.4B79.2AB.
13B.7B2.4B13.6B7.A11.28B57.17B.4B2.4B$80.4D11.4B77.A.AB.29B2.2B2.B3.
6B5.2A.A9.29B58.18B.4B2.4B$79.4D13.4B76.A4.45B4.A2.A10.28B58.19B2.4B
2.4B$78.4D15.4B74.2A4.46B3.B2A10.28B39.A19.20B2.4B2.4B$77.4D17.4B78.
21B2A13B2A14B11.26B39.3A20.20B2.4B2.4B$76.4D19.4B77.21B2A13B2A13B12.
27B20.2B15.A21.21B4.4B2.4B$75.4D21.4B75.51B15.23B.B2A17.4B14.2A20.22B
4.4B2.4B$74.4D23.4B75.26B5.B.17B18.20B.BA.A16.4B15.B20.23B4.4B2.4B$
73.4D25.4B75.20B2.B10.15B23.16B4.A12.B2.6B14.3B19.17B2.4B4.4B2.4B$72.
4D27.4B71.B.B.20B12.15B22.18B3.2A8.B.2AB.2B2A2B13.6B16.18B3.4B4.4B2.
4B$71.4D29.4B69.2A24B12.13B22.20B14.2A3BA2BA3B.B8.10B11.20B4.4B4.4B2.
4B$70.4D31.4B68.2A24B10.13B23.20B16.2B.2B2A7B3.2B2.11B3.2B2.22B6.4B4.
4B2.4B$69.4D33.4B68.2B.12B2.5B2.B2A6.A.2A4.8B21.18B22.22B2A34B7.4B4.
4B2.4B$68.4D35.4B69.13B3.4B2.BA.A3.3AB2A6.6B22.16B24.21B2A32B10.4B4.
4B2.4B$67.4D37.4B66.B.11B14.A2.A4.B8.5B23.13B26.54B12.4B4.4B2.4B$66.
4D39.4B64.2A12B14.2A2.3A.2A9.B.B23.5B2A2B.3B26.54B13.4B4.4B2.4B$65.4D
41.4B63.2AB.10B20.A.A9.3B26.3B2A2B2.4B23.55B14.4B4.4B2.4B$64.4D43.4B
63.B4.6B.B2A18.A.A9.B2AB25.8B3.2A21.B.13B2.B4.13B.4B4.13B15.4B4.4B2.
4B$63.4D45.4B69.4B.BA.A18.A11.2A25.8B4.A21.2AB.12B7.7B.B5.3B5.3B4.6B
16.4B4.4B2.4B$62.4D47.4B66.5B5.A57.8B5.3A18.2A14B19.4B4.4B5.7B16.4B4.
4B2.4B$61.4D49.4B65.2A8.2A56.7B8.A19.2B.11B20.2A6.2A7.6B18.4B4.4B2.4B
$60.4D51.4B65.A66.7B31.11B21.A7.A6.6B20.4B4.4B2.4B$59.4D53.4B61.3A68.
6B7.A23.10B19.3A5.3A7.6B21.4B4.4B2.4B$58.4D55.4B60.A70.6B6.A.A14.2A5.
7B23.A7.A8.8B21.4B4.4B2.4B$57.4D57.4B131.5B6.ABAB14.A6.6B41.6B23.4B4.
4B2.4B$56.4D59.4B130.6B4.2AB3A13.A.AB2.8B40.7B23.4B4.4B2.4B$55.4D61.
4B128.6B4.4B3.A13.2AB2.9B37.11B22.4B4.4B2.4B$54.4D63.4B127.7B2.2B2AB
3A16.12B35.B.2B2A9B21.4B4.4B2.4B$53.4D65.4B127.10B2A.A18.12B34.2A3B2A
9B22.4B4.4B2.4B$52.4D67.4B126.10B22.10B.B2A32.2A14B23.4B4.4B2.4B$51.
4D69.4B124.3B2A6B23.8B2.BA.A32.14B25.4B4.4B2.4B$50.4D71.4B117.2A5.2B
2A6B22.8B6.A30.5B2.B2.2B.3B26.4B4.4B2.4B$49.4D73.4B117.A5.10B23.8B5.
2A29.2A4.3B5.2A27.4B4.4B2.4B$48.4D75.4B116.A.AB2.11B23.7B37.A4.B2AB4.
A29.4B4.4B2.4B$47.4D77.4B116.2AB.12B20.11B33.3A6.2A6.3A27.4B4.4B2.4B$
46.4D79.4B117.15B18.12B33.A18.A28.4B4.4B2.4B$45.4D81.4B116.16B17.12B
82.4B4.4B2.4B$44.4D83.4B115.16B.2B14.11B84.4B4.4B2.4B$43.4D85.4B114.
18B2A13.8B.4B83.4B4.4B2.4B$42.4D87.4B112.17B.B2A13.7B4.2A84.4B4.4B2.
4B$41.4D89.4B110.4B2.8B.4B.B14.7B4.A86.4B4.4B2.4B$40.4D91.4B108.4B4.
7B21.6B6.3A83.4B5.4B2.4B$39.4D93.4B106.4B5.6B21.7B8.A83.5B5.4B2.4B$
38.4D95.4B104.4B6.4B22.8B91.9B3.4B2.4B$37.4D97.4B102.4B5.A3B23.8B92.
9B4.4B2.4B$36.4D99.4B100.4B5.A.AB23.9B92.9B5.4B2.4B$35.4D101.4B98.4B
6.A.A23.4B.6B90.10B6.4B2.4B$34.4D103.4B96.4B8.A23.4B.7B89.12B6.4B2.4B
$33.4D105.4B94.4B6.3A23.4B2.6B15.2A63.2A8.13B6.4B2.4B$32.4D107.4B92.
4B7.A24.4B3.8B4.B8.A65.A9.11B8.4B2.4B$31.4D109.4B90.4B32.4B5.B2A6B.4B
3.BA.A65.A.AB4.12B10.4B2.4B$30.4D111.4B88.4B32.4B5.2B2A13B.B2A52.2A
13.2AB.15B11.4B2.4B$29.4D113.4B86.4B32.4B7.18B53.B2AB14.17B12.4B2.4B$
28.4D115.4B84.4B32.4B9.17B54.2B15.17B13.4B2.4B$27.4D117.4B82.4B32.4B
13.13B50.B3.2B17.17B.B11.4B2.4B$26.4D119.4B80.4B32.4B13.12B51.2AB.4B
15.19B2A11.4B2.4B$25.4D121.4B78.4B32.4B14.10B53.2A8B11.19B.B2A12.4B2.
4B$24.4D123.4B76.4B32.4B14.11B54.B.B2A6B2.2B2.20B4.B14.4B2.4B$23.4D
125.4B62.2A10.4B32.4B15.7B.2B58.2A32B20.4B2.4B$22.4D127.4B60.B2A2B7.
4B32.4B15.11B58.24B.9B21.4B2.4B$21.4D129.4B60.4B6.4B32.4B17.11B53.28B
2.7B23.4B2.4B$20.4D131.4B60.3B5.4B32.4B18.11B53.28B2.7B24.4B2.4B$19.
4D133.4B44.2A5.3B4.3B5.4B32.4B19.11B52.2A26B4.6B25.4B2.4B$18.4D135.4B
44.A4.4B2.7B2.4B32.4B18.2AB2.8B52.2A14B.4B10.7B26.4B2.4B$17.4D137.4B
43.A.AB.18B32.4B18.A.AB3.7B53.B.11B2.4B12.6B27.4B2.4B$16.4D139.4B43.
2AB.17B32.4B19.A6.7B55.10B2.4B13.7B27.4B2.4B$15.4D141.4B44.18B32.4B
19.2A7.6B56.14B14.6B29.4B2.4B$14.4D143.4B43.18B31.4B29.7B54.14B15.5B
31.4B2.4B$13.4D145.4B41.18B31.4B30.8B54.13B14.6B32.4B2.4B$12.4D147.4B
40.18B30.4B32.8B53.13B14.4B35.4B2.4B$11.4D149.4B39.18B29.4B33.9B54.2B
.8B14.2B2AB35.4B2.4B$10.4D151.4B38.18B28.4B33.6B.4B56.8B16.2A37.4B2.
4B$9.4D153.4B38.16B28.4B34.7B.4B54.9B56.4B2.4B$8.4D155.4B35.18B27.4B
36.6B2.4B52.10B57.4B2.4B$3.3D.4D157.4B32.A.2A4.12B26.4B37.6B3.4B50.4B
.7B57.4B2.4B$2.8D159.4B29.3AB2A4.13B24.4B38.6B4.4B48.4B2.8B57.4B2.4B$
2.8D160.4B27.A4.B4.15B22.4B38.8B4.4B46.4B4.8B57.4B2.4B$12D159.4B27.3A
.2A3.16B20.4B38.8B6.4B44.4B5.8B58.4B2.4B$D2C9D160.4B28.A.A4.17B18.4B
39.9B6.4B42.4B5.6B2.B2A57.4B2.4B$.2C8D162.4B27.A.A4.16B18.4B40.9B7.4B
40.4B6.7B.BA.A57.4B2.4B$2.7D165.4B27.A7.13B18.4B40.10B8.4B38.4B8.6B4.
A58.4B2.4B$3.6D166.4B38.2B2A5B17.4B41.3B2A5B9.4B36.4B9.6B4.2A58.4B2.
4B$4.5D167.4B37.2B2A3B18.4B36.2A3.4B2A5B10.4B34.4B10.6B65.4B2.4B$4.D
2C3D167.4B35.8B17.4B38.A3.11B11.4B32.4B10.8B65.4B2.4B$5.2C4D167.4B35.
8B15.4B39.A.A12B12.4B30.4B10.8B67.4B2.4B$8.4D167.4B34.8B14.4B41.2A2.
8B15.4B28.4B11.9B67.4B2.4B$9.4D167.4B34.7B13.4B47.7B16.4B26.4B12.9B
68.4B2.4B$10.4D167.4B33.7B12.4B49.6B17.4B24.4B12.10B69.4B2.4B$11.4D
167.4B24.A7.6B12.4B50.6B2.2A14.4B22.4B13.3B2A5B70.4B2.4B$12.4D167.4B
22.A.A6.6B11.4B50.9BA.A14.4B20.4B8.2A3.4B2A5B71.4B2.4B$13.4D167.4B21.
A.A6.5B11.4B50.9B3.A15.4B18.4B10.A3.11B72.4B2.4B$14.4D167.4B18.3A.2A
4.6B10.4B51.9B3.2A15.4B16.4B11.A.A12B73.4B2.4B$15.4D167.4B16.A4.B6.6B
8.4B52.9B21.3B15.4B13.2A2.8B76.4B2.4B$16.4D167.4B16.3AB2AB3.7B8.3B53.
9B22.4B12.4B19.7B5.2A70.4B2.4B$17.4D167.4B17.A.2AB.8B7.4B53.11B23.2A
11.4B22.7B2.B2A2B69.4B2.4B$18.4D167.4B20.10B7.2A55.11B23.A11.4B22.9B
2.4B6.2A62.4B2.4B$19.4D167.4B19.6B2A3B7.A54.12B24.3A7.4B18.2B.11B.6B
5.A64.4B2.4B$20.4D167.4B18.6B2A2B5.3A54.14B4.B21.A5.4B19.22B.BA.A65.
4B2.4B$21.4D167.4B17.10B5.A55.4B.10B3.3B19.2A4.4B19.23B.B2A67.4B2.4B$
22.4D167.4B15.11B2.BA.A55.15B2.6B17.9B6.2A12.25B70.4B2.4B$23.4D167.4B
14.12B.B2A54.2AB.13B.7B2.4B13.6B7.A10.28B71.4B2.4B$24.4D167.4B12.15B
55.A.AB.29B2.2B2.B3.6B5.2A.A10.28B72.4B2.4B$25.4D167.4B10.16B55.A4.
45B4.A2.A9.29B74.4B2.4B$26.4D167.4B6.2B.16B54.2A4.46B3.B2A10.28B76.4B
2.4B$27.4D167.4B4.2A18B59.21B2A13B2A14B10.28B78.4B2.4B$28.4D167.4B3.
2AB.17B58.21B2A13B2A13B11.26B81.4B2.4B$29.4D167.4B3.B.4B.8B2.4B56.51B
12.27B81.4B2.4B$30.4D167.4B9.7B4.4B56.26B5.B.17B14.23B.B2A80.4B2.4B$
31.4D167.4B9.6B5.4B56.20B2.B10.15B18.20B.BA.A80.4B2.4B$32.4D167.4B10.
4B6.4B52.B.B.20B12.15B22.16B4.A80.5B2.4B$33.4D167.4B11.3BA5.4B50.2A
24B12.13B22.18B3.2A79.6B2.4B$34.4D167.4B11.BA.A5.4B49.2A24B10.13B23.
20B82.9B.4B$35.4D167.4B11.A.A6.4B49.2B.12B2.5B2.B2A6.A.2A4.8B21.20B
83.9B2.4B$36.4D167.4B11.A8.4B50.13B3.4B2.BA.A3.3AB2A6.6B20.18B86.10B
2.4B$37.4D167.4B11.3A6.4B47.B.11B14.A2.A4.B8.5B21.16B86.12B2.4B$38.4D
167.4B12.A7.4B45.2A12B14.2A2.3A.2A9.B.B22.13B87.14B2.4B$39.4D167.4B
20.4B44.2AB.10B20.A.A9.3B23.5B2A2B.3B77.2A8.15B2.4B$40.4D167.4B20.4B
44.B4.6B.B2A18.A.A9.B2AB24.3B2A2B2.4B76.A9.15B2.4B$41.4D167.4B20.4B
50.4B.BA.A18.A11.2A25.8B3.2A76.A.AB4.12B2.4B2.4B$42.4D167.4B20.4B47.
5B5.A56.8B4.A63.2A13.2AB.15B3.4B2.4B$43.4D167.4B20.4B46.2A8.2A55.8B5.
3A2.B56.B2AB14.17B4.4B2.4B$44.4D167.4B20.4B46.A65.7B8.A.2B57.2B15.17B
5.4B2.4B$45.4D167.4B20.4B42.3A66.7B9.3B52.B3.2B17.17B.B3.4B2.4B$46.4D
167.4B20.4B41.A69.6B7.A4B51.2AB.4B15.19B2A3.4B2.4B$47.4D167.4B20.4B
110.6B6.ABA2B52.2A8B11.19B.B2A4.4B2.4B$48.4D167.4B20.4B110.5B6.ABAB
54.B.B2A6B2.2B2.20B4.B6.4B2.4B$49.4D167.4B20.4B109.6B4.2AB3A56.2A32B
12.4B2.4B$50.4D167.4B20.4B107.6B4.4B3.A55.24B.9B13.4B2.4B$51.4D167.4B
20.4B106.7B2.2B2AB3A52.28B2.7B15.4B2.4B$52.4D167.4B20.4B106.10B2A.A
54.28B2.7B16.4B2.4B$53.4D167.4B20.4B105.10B57.2A26B4.6B17.4B2.4B$54.
4D167.4B20.4B103.3B2A6B57.2A14B.4B10.7B18.4B2.4B$55.4D167.4B20.4B96.
2A5.2B2A6B58.B.11B2.4B12.6B19.4B2.4B$56.4D167.4B20.4B96.A5.10B60.10B
2.4B13.7B19.4B2.4B$57.4D167.4B20.4B95.A.AB2.11B46.A13.14B14.6B21.4B2.
4B$58.4D167.4B20.4B95.2AB.12B44.3A12.14B15.5B23.4B2.4B$59.4D167.4B20.
4B96.15B42.A16.13B14.6B24.4B2.4B$60.4D167.4B20.4B95.16B34.A6.2A15.13B
14.4B27.4B2.4B$61.4D167.4B20.4B94.16B.2B30.A.A3.4B17.2B.8B14.2B2AB27.
4B2.4B$62.4D167.4B20.4B93.18B2A30.A.5B22.8B16.2A29.4B2.4B$63.4D167.4B
20.4B91.17B.B2A31.7B20.9B48.4B2.4B$64.4D167.4B20.4B89.4B2.8B.4B.B32.
10B.B15.9B49.4B2.4B$65.4D167.4B20.4B87.4B4.7B39.9B.B2A12.2A2B.7B49.4B
2.4B$66.4D167.4B20.4B85.4B5.6B40.3B2A6B2A11.A.AB2.8B49.4B2.4B$67.4D
167.4B20.4B83.4B6.4B42.3B2A4B.2B12.A6.8B49.4B2.4B$68.4D167.4B20.4B81.
4B5.A3B39.2B2.10B14.2A6.8B50.4B2.4B$69.4D167.4B20.4B79.4B5.A.AB39.2A
13B21.6B2.B2A49.4B2.4B$70.4D167.4B20.4B77.4B6.A.A40.2A13B21.7B.BA.A
49.4B2.4B$71.4D167.4B20.4B75.4B8.A42.2B.11B22.6B4.A50.4B2.4B$72.4D
167.4B20.4B73.4B6.3A46.9B.B2A20.6B4.2A50.4B2.4B$73.4D167.4B20.4B71.4B
7.A50.7B.BA.A19.6B57.4B2.4B$74.4D113.A53.4B20.4B69.4B58.7B5.A18.8B57.
4B2.4B$75.4D112.3A7.2A43.4B20.4B67.4B58.8B5.2A16.8B59.4B2.4B$76.4D
114.A6.A5.A39.4B20.4B65.4B58.4B2.4B22.9B59.4B2.4B$77.4D112.2A3.BA.A3.
3A40.4B20.4B63.4B58.4B4.4B21.9B60.4B2.4B$78.4D111.4B.B2A3.A44.4B20.4B
61.4B58.4B6.4B19.10B61.4B2.4B$79.4D112.4B5.2A44.4B20.4B59.4B58.4B8.4B
18.3B2A5B62.4B2.4B$80.4D110.5B3.4B45.4B20.4B57.4B58.4B10.4B11.2A3.4B
2A5B63.4B2.4B$81.4D95.A12.11B48.4B20.4B55.4B58.4B12.4B11.A3.11B64.4B
2.4B$82.4D94.3A10.13B47.4B20.4B53.4B58.4B14.4B10.A.A12B65.4B2.4B$83.
4D96.A8.16B46.4B20.4B51.4B58.4B16.4B10.2A2.8B68.4B2.4B$84.4D94.2A6.
19B46.4B20.4B49.4B58.4B18.4B14.7B5.2A62.4B2.4B$85.4D93.5B2.20B47.4B
20.4B47.4B58.4B20.4B15.7B2.B2A2B61.4B2.4B$86.4D94.25B48.4B20.4B45.4B
58.4B22.4B13.9B2.4B6.2A54.4B2.4B$87.4D92.2A24B49.4B20.4B43.4B58.4B24.
4B7.2B.11B.6B5.A56.4B2.4B$88.4D91.2A22B52.4B20.4B41.4B58.4B26.4B6.22B
.BA.A57.4B2.4B$89.4D91.B.21B53.4B20.4B39.4B58.4B28.4B4.23B.B2A59.4B2.
4B$90.4D92.22B53.4B20.4B37.4B58.4B30.4B3.25B62.4B2.4B$91.4D92.9B.4B3.
5B53.4B20.4B35.4B58.4B32.31B63.4B2.4B$92.4D92.8B2.5B3.4B53.4B20.4B33.
4B58.4B34.30B64.4B2.4B$93.4D92.7B5.2A4.4B53.4B20.4B31.4B58.4B35.29B
66.4B2.4B$94.4D88.11B4.A6.4B53.4B20.4B29.4B58.4B36.28B68.4B2.4B$95.4D
86.12B5.3A4.4B53.4B20.4B27.4B58.4B36.28B70.4B2.4B$96.4D85.12B7.A5.4B
53.4B20.4B25.4B58.4B37.26B73.4B2.4B$97.4D84.11B15.4B53.4B20.4B23.4B
58.4B38.27B73.4B2.4B$98.4D83.B3D4B.4B14.4B53.4B20.4B21.4B58.4B41.23B.
B2A72.4B2.4B$99.4D82.2BD4B4.2A15.4B53.4B20.4B19.4B58.4B45.20B.BA.A72.
4B2.4B$100.4D81.2B3D2B4.A17.4B53.4B20.4B17.4B58.4B50.16B4.A73.4B2.4B$
101.4D80.6B6.3A15.4B53.4B20.4B15.4B58.4B50.18B3.2A73.4B2.4B$102.4D78.
7B8.A16.4B53.4B20.4B13.4B58.4B50.20B78.4B2.4B$103.4D76.8B26.4B53.4B
20.4B11.4B58.4B50.20B80.4B2.4B$104.4D74.8B28.4B53.4B20.4B9.4B58.4B50.
18B84.4B2.4B$105.4D73.8B29.4B53.4B20.4B7.4B58.4B52.16B86.4B2.4B$106.
4D70.2AB2.6B29.4B53.4B20.4B5.4B58.4B54.13B89.4B2.4B$107.4D68.A.AB.7B
30.4B53.4B20.4B3.4B58.4B55.5B2A2B.3B90.4B2.4B$108.4D67.A4.6B32.4B53.
4B20.4B.4B58.4B57.4B2A2B2.4B89.4B2.4B$109.4D65.2A4.6B33.4B53.4B20.7B
58.4B58.9B3.2A90.4B2.4B$110.4D70.6B34.4B53.4B20.5B58.4B59.3B3D2B4.A
92.4B2.4B$111.4D68.8B34.4B53.4B19.5B57.4B60.4BD3B5.3A90.4B2.4B$112.4D
68.8B34.4B53.4B17.7B55.4B61.2B3D2B8.A91.4B2.4B$113.4D66.9B35.4B53.4B
15.4B.4B53.4B62.8B100.4B2.4B$114.4D65.9B36.4B53.4B10.2B.4B3.4B51.4B
64.8B100.4B2.4B$115.4D64.10B36.4B53.4B10.5B5.4B49.4B65.9B100.4B2.4B$
116.4D63.5B2A3B37.4B7.A45.4B9.4B7.4B47.4B66.10B100.4B2.4B$117.4D62.5B
2A4B3.2A32.4B6.3A44.4B7.4B9.4B45.4B67.11B100.4B2.4B$118.4D61.11B3.A
34.4B8.A44.4B5.4B11.4B43.4B68.6B2.4B100.4B2.4B$119.4D60.12BA.A35.4B6.
A.A44.4B3.4B13.4B41.4B69.7B2.4B100.4B2.4B$120.4D61.8B2.2A37.4B5.A.AB
44.4B.4B15.4B39.4B71.6B3.4B100.4B2.4B$121.4D53.2A5.7B43.4B5.A3B44.7B
17.4B37.4B72.6B4.4B100.4B2.4B$122.4D50.2B2AB2.7B46.4B6.4B43.5B19.4B
35.4B73.6B5.4B100.4B2.4B$123.4D41.2A6.4B2.9B46.4B5.6B41.5B20.4B33.4B
73.8B5.4B100.4B2.4B$124.4D41.A5.6B.11B.2B42.4B4.7B39.7B20.4B31.4B73.
8B7.4B100.4B2.4B$125.4D40.A.AB.22B43.4B2.8B.4B.B31.4B.4B20.4B29.4B74.
9B7.4B100.4B2.4B$126.4D40.2AB.23B43.17B.B2A29.4B3.4B20.4B27.4B75.9B8.
4B100.4B2.4B$127.4D41.25B44.18B2A28.4B5.4B20.4B25.4B75.10B9.4B100.4B
2.4B$128.4D40.28B41.16B.2B28.4B7.4B20.4B23.4B76.3B2A5B10.4B100.4B2.4B
$129.4D39.28B41.16B30.4B9.4B20.4B21.4B71.2A3.4B2A5B11.4B99.4B3.4B$
130.4D39.29B39.15B30.4B11.4B20.4B19.4B73.A3.11B12.4B98.5B3.4B$131.4D
39.28B37.2AB.12B30.4B13.4B20.4B17.4B74.A.A7BD4B13.4B96.9B.4B$132.4D
39.28B35.A.AB2.11B29.4B15.4B20.4B15.4B76.2A2.4B3DB16.4B95.9B2.4B$133.
4D40.26B35.A5.10B29.4B17.4B20.4B13.4B82.2B2D2BD17.4B94.9B3.4B$134.4D
38.27B34.2A5.2B2A6B28.4B19.4B20.4B11.4B85.5B18.4B92.10B4.4B$135.4D35.
2AB.23B42.3B2A6B27.4B21.4B20.4B9.4B86.6B5.2A11.4B90.12B4.4B$136.4D33.
A.AB.20B46.10B26.4B23.4B20.4B7.4B86.6B6.A13.4B79.2A8.13B4.4B$137.4D
32.A4.16B50.8B.B2A.A21.4B25.4B20.4B5.4B86.9B.BA.A14.4B79.A9.11B6.4B$
138.4D30.2A3.18B48.7B3.B2AB3A18.4B27.4B20.4B3.4B86.12B2A16.4B78.A.AB
4.12B8.4B$139.4D33.20B47.6B6.B4.A16.4B29.4B20.4B.4B87.12B19.4B63.2A
13.2AB.15B9.4B$140.4D33.20B47.6B4.2A.3A16.4B31.4B20.7B88.12B20.4B61.B
2AB14.17B10.4B$141.4D35.18B46.5B6.A.A17.4B33.4B20.5B87.2AB.10B21.4B
61.2B15.17B11.4B$142.4D35.16B46.6B6.A.A16.4B35.4B19.5B86.A.AB2.9B22.
4B55.B3.2B17.17B.B9.4B$143.4D36.13B47.6B7.A16.4B37.4B17.7B85.A6.8B23.
4B53.2AB.4B15.19B2A9.4B$144.4D35.3B.2B2A5B46.7B23.4B39.4B15.4B.4B83.
2A5.8B25.4B52.2A8B11.19B.B2A10.4B$145.4D32.4B2.2B2A3B48.7B8.A13.4B41.
4B13.4B3.4B89.7B27.4B52.B.B2A6B2.2B2.20B4.B12.4B$146.4D31.2A3.8B48.8B
5.3A12.4B43.4B11.4B5.4B87.11B25.4B54.2A32B18.4B$147.4D31.A4.8B47.8B4.
A14.4B45.4B9.5B6.4B86.12B25.4B53.24B.9B19.4B$148.4D27.3A5.8B48.8B3.2A
12.4B47.4B7.4B9.4B85.12B26.4B48.28B2.7B21.4B$149.4D26.A8.7B48.3B2A2B
2.4B11.4B49.4B5.4B11.4B85.11B27.4B47.28B2.7B22.4B$150.4D34.7B46.5B2A
2B.3B12.4B51.4B3.4B13.4B82.4B.4B3DB28.4B45.2A26B4.6B23.4B$151.4D25.A
7.6B47.13B11.4B53.4B.4B15.4B81.2A4.4BD2B29.4B44.2A14B.4B10.7B24.4B$
152.4D23.A.A6.6B46.16B8.4B55.7B17.4B81.A4.2B3D2B30.4B44.B.11B2.4B12.
6B25.4B$153.4D22.A.A6.5B46.17B7.4B57.5B19.4B77.3A6.6B31.4B45.10B2.4B
13.7B25.4B$154.4D19.3A.2A4.6B47.16B6.4B58.5B20.4B76.A8.7B31.4B45.14B
14.6B27.4B$155.4D17.A4.B6.6B47.15B5.4B58.7B20.4B84.8B31.4B43.14B15.5B
29.4B$156.4D17.3AB2AB3.7B41.2A5.13B5.4B58.4B.4B20.4B84.8B31.4B43.13B
14.6B30.4B$157.4D18.A.2AB.8B43.A6.10B6.4B58.4B3.4B20.4B83.8B32.4B42.
13B14.4B33.4B$158.4D21.10B43.A.AB3.10B5.4B58.4B5.4B20.4B81.6B2.B2A31.
4B43.2B.4B3DB14.2B2AB33.4B12.A$159.4D20.6B2A3B43.2AB.15B.4B58.4B7.4B
20.4B80.7B.BA.A31.4B45.5BD2B16.2A35.4B9.3A$160.4D19.6B2A2B5.2A39.21B
58.4B9.4B20.4B80.6B4.A32.4B43.4B3D2B54.4B7.A$161.4D18.10B5.A41.19B58.
4B11.4B20.4B79.6B4.2A32.4B42.9B55.4B6.2A7.A27.A$162.4D16.11B2.BA.A33.
2A5.20B57.4B13.4B20.4B78.6B39.4B39.2A2B.7B55.4B3.4B5.3A27.3A$163.4D
15.12B.B2A35.A4.22B55.4B15.4B20.4B76.8B39.4B37.A.AB2.8B55.8B6.A33.A
11.A$164.4D13.15B37.A.AB.23B53.4B17.4B20.4B74.8B41.4B36.A6.8B55.10B3.
2A31.2A9.3A$165.4D11.16B38.2AB.22B53.4B19.4B20.4B73.9B41.4B34.2A6.9B
55.10B.3B4.B26.B9.A48.A$166.4D7.2B.16B40.23B53.4B21.4B20.4B72.9B42.4B
40.6B.4B52.14B5.3B23.3B9.2A10.2A33.3A$167.4D5.2A18B40.22B53.4B23.4B
20.4B70.10B43.4B6.A8.2A22.7B.4B50.16B3.6B19.6B5.5B10.A15.A17.A9.2A3.
2A$168.4D4.2AB.17B40.18B55.4B25.4B20.4B69.3B2A5B44.4B5.3A5.B2AB22.6B
2.4B49.16B2.7B2.4B10.10B3.4B9.BA.A15.3A15.2A7.B2AB.B2AB$169.4D4.B.4B.
8B2.4B39.14B.5B52.4B27.4B20.4B62.2A3.4B2A5B45.4B7.A4.3B23.6B3.4B48.
33B2.2B3.11B2.6B4.3B.B2A19.A12.4B4.B3.3B2.2B$170.4D10.7B4.4B39.12B5.
2A51.4B29.4B20.4B62.A3.11B46.4B5.2A5.B.B5.2A15.6B4.4B48.28BD15B2A3BD
9B.7B20.2A11.3B4.4B.3B.3B$171.4D10.6B5.4B40.10B5.A51.4B31.4B20.4B61.A
.A12B47.4B4.10B5.A15.8B4.4B46.27BDBD15B2A2B2D17B20.B11.13B.7B5.2A$
172.4D11.4B6.4B39.9B7.3A47.4B33.4B20.4B61.2A2.8B50.4B5.8B2.BA.A14.8B
6.4B44.25B2AB3D18B2D17B19.3B9.23B5.A$173.4D12.3BA5.4B38.8B10.A46.4B
35.4B20.4B65.7B5.2A44.4B2.11B.B2A15.9B6.4B42.4B.21B2ABD21BD18B16.6B4.
8B.19B.BA.A$174.4D12.BA.A5.4B38.8B55.4B37.4B20.4B66.7B2.B2A2B43.13B2A
3B17.9B7.4B40.4B.48BD20B10.10B2.29B.B2A$175.4D12.A.A6.4B38.3B.4B53.4B
39.4B20.4B64.9B2.4B6.2A36.12B2A3B16.10B8.4B38.4B3.26B5.B.13B3.B.19B2.
2B3.44B$176.4D12.A8.4B37.2B3.4B51.4B41.4B20.4B58.2B.11B.6B5.A38.15B
17.3B2A5B9.4B36.4B6.19B2.B13.B.7B7.13BD15B2A37B$177.4D12.3A6.4B42.4B
49.4B43.4B20.4B57.22B.BA.A39.14B11.2A3.4B2A5B10.4B34.4B8.19B31.6B.4BD
BD15B2A37B$178.4D13.A7.4B42.4B47.4B45.4B20.4B55.23B.B2A40.14B12.A3.
11B11.4B32.4B8.21B28.5B.B2.4B3D53B$179.4D21.4B42.4B45.4B47.4B20.4B54.
25B41.14B.A11.A.A12B12.4B30.4B9.11B.9B28.2A7.4BD53B$180.4D21.4B42.4B
43.4B49.4B20.4B50.28B40.4B.5B5.A.A11.2A2.8B15.4B28.4B10.11B2.5B2.B2A
27.A8.59B$181.4D21.4B42.4B41.4B51.4B20.4B49.28B39.4B2.4B7.A17.7B16.4B
26.4B9.2AB.9B3.4B2.BA.A23.3A16.4B.13B4.25B3.2A$182.4D21.4B42.4B39.4B
53.4B20.4B46.29B39.4B5.2B26.6B17.4B24.4B9.A.AB.8B5.4B4.A23.A19.4B4.B.
7B4.B4.20B3.A$183.4D21.4B42.4B37.4B55.4B20.4B45.28B39.4B5.4B25.6B2.2A
14.4B22.4B10.A4.9B5.4B3.2A43.4B15.2A7.15B6.3A$184.4D21.4B42.4B35.4B
57.4B20.4B43.28B39.4B6.B2AB24.9BA.A14.4B20.4B10.2A5.9B5.4B48.4B14.A
12.11B8.A$185.4D21.4B42.4B33.4B59.4B20.4B42.26B40.4B8.2A24.9B3.A15.4B
18.4B19.3B2.4B5.4B48.4B14.3A8.13B$186.4D21.4B42.4B31.4B61.4B20.4B41.
27B38.4B35.9B3.2A15.4B16.4B21.B4.4B5.4B48.4B15.A7.15B$187.4D21.4B42.
4B29.4B63.4B20.4B42.23B.B2A35.4B36.9B21.3B15.4B28.4B5.4B48.4B21.16B$
188.4D21.4B42.4B27.4B65.4B20.4B44.20B.BA.A33.4B37.9B22.4B12.4B30.4B5.
4B48.4B19.17B$189.4D21.4B42.4B25.4B67.4B20.4B47.16B4.A32.4B37.11B23.
2A11.4B32.4B5.4B48.4B19.16B$190.4D21.4B42.4B23.4B69.4B20.4B45.18B3.2A
30.4B38.11B23.A11.4B34.4B5.4B48.4B19.13B$191.4D21.4B42.4B21.4B71.4B
20.4B43.20B33.4B38.12B24.3A7.4B36.4B5.4B48.4B18.5B2A2B.3B$192.4D21.4B
42.4B19.4B73.4B20.4B41.20B33.4B38.14B4.B21.A5.4B38.4B5.4B48.4B19.3B2A
2B2.4B$193.4D21.4B42.4B17.4B75.4B20.4B39.18B35.4B38.4B.10B3.3B19.2A4.
4B40.4B5.4B48.4B18.8B3.2A$194.4D21.4B42.4B15.4B77.4B20.4B39.16B35.4B
39.15B2.6B17.9B6.2A34.4B5.4B48.4B16.8B4.A$195.4D21.4B42.4B13.4B79.4B
20.4B39.13B36.4B38.2AB.13B.7B2.4B13.6B7.A36.4B5.4B48.4B15.8B5.3A$196.
4D21.4B42.4B11.4B81.4B20.4B38.5B2A2B.3B35.4B38.A.AB.29B2.2B2.B3.6B5.
2A.A37.4B5.4B48.4B14.7B8.A$197.4D21.4B42.4B9.4B83.4B20.4B39.3B2A2B2.
4B32.4B39.A4.45B4.A2.A39.4B5.4B48.4B13.7B$198.4D21.4B42.4B7.4B85.4B
20.4B38.8B3.2A31.4B39.2A4.46B3.B2A41.4B5.4B48.4B13.6B7.AB$199.4D21.4B
42.4B5.4B87.4B20.4B36.8B4.A31.4B45.21B2A13B2A14B43.4B5.4B48.4B12.6B6.
ABA2B$200.4D21.4B42.4B3.4B89.4B20.4B35.8B5.3A27.4B46.21B2A13B2A13B45.
4B5.4B48.4B12.5B6.ABAB$201.4D21.4B42.4B.4B91.4B20.4B34.7B8.A26.4B46.
51B47.4B5.4B48.4B11.6B4.2AB3A$202.4D21.4B42.7B93.4B20.4B33.7B34.4B48.
26B5.B.17B48.4B5.4B48.4B9.6B4.4B3.A$203.4D21.4B42.5B95.4B20.4B33.6B7.
A25.4B50.20B2.B10.15B50.4B5.4B11.A36.4B8.7B2.2B2AB3A$204.4D21.4B41.5B
96.4B20.4B32.6B6.A.A23.4B48.B.B.20B12.15B51.4B5.4B8.3A37.4B8.10B2A.A$
205.4D21.4B39.7B96.4B20.4B32.5B6.A.A22.4B48.2A24B12.13B53.4B5.4B6.A
41.3B8.10B$206.4D21.4B37.4B.4B96.4B20.4B31.6B4.2A.3A19.4B49.2A24B10.
13B56.4B5.4B5.2A42.B2A5.3B2A6B$207.4D21.4B35.4B3.4B96.4B20.4B29.6B6.B
4.A17.4B51.2B.12B2.5B2.B2A6.A.2A4.8B56.4B5.4B2.4B42.BA.A5.2B2A6B$208.
4D21.4B33.4B5.4B96.4B20.4B28.7B3.B2AB3A17.4B54.13B3.4B2.BA.A3.3AB2A6.
6B57.4B5.4B.2B47.A5.10B$209.4D21.4B31.4B7.4B96.4B20.4B28.8B.B2A.A18.
4B53.B.11B14.A2.A4.B8.5B58.4B5.7B46.A.AB2.11B$210.4D21.4B29.4B9.4B96.
4B20.4B27.10B21.4B53.2A12B14.2A2.3A.2A9.B.B59.4B5.6B47.2AB.12B$211.4D
21.4B27.4B11.4B96.4B20.4B25.3B2A6B20.4B54.2AB.10B20.A.A9.3B61.4B5.5B
49.15B$212.4D21.4B25.4B13.4B96.4B20.4B18.2A5.2B2A6B19.4B56.B4.6B.B2A
18.A.A9.B2AB61.4B3.8B7.A39.16B$213.4D21.4B23.4B15.4B96.4B20.4B18.A5.
10B18.4B64.4B.BA.A18.A11.2A63.4B.9B5.3A39.16B.2B$214.4D21.4B21.4B17.
4B96.4B20.4B17.A.AB2.11B16.4B63.5B5.A95.15B3.A42.18B2A$215.4D21.4B19.
4B19.4B96.4B20.4B17.2AB.12B15.4B64.2A8.2A91.2B.17B.2A40.17B.B2A$216.
4D21.4B17.4B21.4B96.4B20.4B18.15B13.4B66.A100.2A22B39.4B2.8B.4B.B$
217.4D21.4B15.4B23.4B96.4B20.4B17.16B11.4B64.3A101.2AB.18B40.4B4.7B$
218.4D21.4B13.4B25.4B96.4B20.4B16.16B.2B7.4B65.A104.B.20B38.4B5.6B$
219.4D21.4B11.4B27.4B96.4B20.4B15.18B2A5.4B174.18B.B36.4B6.4B$220.4D
21.4B9.4B29.4B96.4B20.4B13.17B.B2A4.4B176.20B34.4B5.A3B$221.4D21.4B7.
4B31.4B96.4B20.4B11.4B2.8B.4B.B4.4B177.20B33.4B5.A.AB$222.4D21.4B5.4B
33.4B96.4B20.4B9.4B4.7B10.4B179.18B33.4B6.A.A$223.4D21.4B3.4B35.4B96.
4B20.4B7.4B5.6B10.4B181.5B2A11B31.4B8.A$224.4D21.4B.4B37.4B96.4B20.4B
5.4B6.4B11.4B182.5B2A12B29.4B6.3A$225.4D21.7B39.4B96.4B20.4B3.4B5.A3B
12.4B184.19B27.4B7.A$226.4D21.5B41.4B96.4B20.4B.4B5.A.AB12.4B186.18B
26.4B$227.4D20.5B42.4B96.4B20.7B6.A.A12.4B188.17B25.4B$228.4D18.7B42.
4B96.4B20.5B8.A12.4B189.18B23.4B$229.4D16.4B.4B42.4B96.4B19.5B5.3A12.
4B191.16B23.4B$230.4D14.4B3.4B42.4B96.4B17.7B4.A13.4B193.16B21.4B$
231.4D12.4B5.4B42.4B96.4B15.4B.4B16.4B195.15B.BA17.4B$232.4D10.4B7.4B
42.4B96.4B13.4B3.4B14.4B196.16BA.A15.4B$233.4D8.4B9.4B42.4B96.4B11.4B
5.4B12.4B198.13B.2BA15.4B$234.4D6.4B11.4B42.4B96.4B9.4B7.4B10.4B200.
11B3.B15.4B$235.4D4.4B13.4B42.4B96.4B7.4B9.4B8.4B201.7B22.4B$236.4D2.
4B15.4B42.4B96.4B5.4B11.4B6.4B202.8B.2B17.4B$237.4D4B17.4B42.4B96.4B
3.4B13.4B4.4B203.5B2A3B2A15.4B$238.4D2B19.4B42.4B96.4B.4B15.4B2.4B
204.5B2A3B2A14.4B$239.4D21.4B42.4B96.7B17.8B205.9B.B14.4B$238.2B4D21.
4B42.4B96.5B19.6B205.9B16.4B$237.4B4D21.4B42.4B95.5B20.4B204.A.2AB.3B
17.4B$236.4B2.4D21.4B42.4B93.7B18.6B201.3AB2AB.5B14.4B$235.4B4.4D21.
4B42.4B91.4B.4B16.8B199.A4.B6.2A13.4B$234.4B6.4D21.4B42.4B89.4B3.4B
14.4B2.4B199.3A.2A5.A13.4B$233.4B8.4D21.4B42.4B87.4B5.4B12.4B4.4B200.
A.A7.3A9.4B$232.4B10.4D21.4B42.4B85.4B7.4B10.4B6.4B199.A.A9.A8.4B$
231.4B12.4D21.4B42.4B83.4B9.4B8.4B8.4B199.A18.4B$230.4B14.4D21.4B42.
4B81.4B11.4B6.4B10.4B216.4B$229.4B16.4D21.4B42.4B79.4B13.4B4.4B12.4B
214.4B$228.4B18.4D21.4B42.4B77.4B15.4B2.4B14.4B212.4B$227.4B20.4D21.
4B42.4B75.4B17.8B16.4B210.4B$226.4B22.4D21.4B42.4B73.4B19.6B18.4B208.
4B$225.4B24.4D21.4B42.4B71.4B21.4B20.4B206.4B$224.4B26.4D21.4B42.4B
69.4B21.6B20.4B204.4B$223.4B28.4D21.4B42.4B67.4B21.8B20.4B202.4B$222.
4B30.4D21.4B42.4B65.4B21.4B2.4B20.4B200.4B$221.4B32.4D21.4B42.4B63.4B
21.4B4.4B20.4B198.4B$220.4B34.4D21.4B42.4B61.4B21.4B6.4B20.4B196.4B$
219.4B36.4D21.4B42.4B59.4B21.4B8.4B20.4B194.4B$218.4B38.4D21.4B42.4B
57.4B21.4B10.4B20.4B192.4B$217.4B40.4D21.4B42.4B55.4B21.4B12.4B20.4B
190.4B$216.4B42.4D21.4B42.4B53.4B21.4B14.4B20.4B188.4B$215.4B44.4D21.
4B42.4B51.4B21.4B16.4B20.4B186.4B$214.4B46.4D21.4B42.4B49.4B21.4B18.
4B20.4B184.4B$213.4B48.4D21.4B42.4B47.4B21.4B20.4B20.4B182.4B$212.4B
50.4D21.4B42.4B45.4B21.4B22.4B20.4B180.4B$211.4B52.4D21.4B42.4B43.4B
21.4B24.4B20.4B178.4B$210.4B54.4D21.4B42.4B41.4B21.4B26.4B20.4B176.4B
$209.4B56.4D21.4B42.4B39.4B21.4B28.4B20.4B174.4B$208.4B58.4D21.4B42.
4B37.4B21.4B30.4B20.4B172.4B$207.4B60.4D21.4B42.4B35.4B21.4B32.4B20.
4B170.4B$206.4B62.4D21.4B42.4B33.4B21.4B34.4B20.4B168.4B$205.4B64.4D
21.4B42.4B31.4B21.4B36.4B20.4B166.4B$204.4B66.4D21.4B42.4B29.4B21.4B
38.4B20.4B164.4B$203.4B68.4D21.4B42.4B27.4B21.4B40.4B.3B16.4B162.4B$
202.4B70.4D21.4B42.4B25.4B21.4B31.A10.8B16.4B160.4B$201.4B72.4D21.4B
42.4B23.4B21.4B32.3A7.B.7B17.4B158.4B$200.4B74.4D21.4B42.4B21.4B21.4B
36.A5.10B18.4B156.4B$199.4B76.4D21.4B42.4B19.4B21.4B36.2A5.12B17.4B
154.4B$198.4B78.4D21.4B42.4B17.4B21.4B37.5B.14B17.4B152.4B$197.4B80.
4D21.4B42.4B15.4B21.4B40.18B18.4B150.4B$196.4B82.4D21.4B42.4B13.4B21.
4B38.22B18.4B148.4B$195.4B84.4D21.4B42.4B11.4B21.4B38.23B19.4B146.4B$
194.4B86.4D21.4B42.4B9.4B21.4B38.22B.B2A18.4B144.4B$193.4B88.4D21.4B
42.4B7.4B21.4B38.23B.BA.A18.4B142.4B$192.4B90.4D21.4B42.4B5.4B21.4B
40.22B4.A19.4B140.4B$191.4B92.4D21.4B42.4B3.4B21.4B42.20B5.2A19.4B
138.4B$190.4B94.4D21.4B42.4B.4B21.4B43.19B28.4B136.4B$189.4B96.4D21.
4B42.7B21.4B43.21B28.4B134.4B$188.4B98.4D21.4B42.5B21.4B43.4B.15B.B2A
27.4B132.4B$187.4B100.4D21.4B41.5B20.4B43.4B5.10B3.BA.A27.4B130.4B$
186.4B102.4D21.4B39.7B18.4B43.4B6.10B6.A28.4B128.4B$185.4B104.4D21.4B
37.4B.4B16.4B43.4B5.13B5.2A28.4B126.4B$184.4B106.4D21.4B35.4B3.4B14.
4B43.4B5.15B35.4B124.4B$183.4B108.4D21.4B33.4B5.4B12.4B43.4B6.16B35.
4B122.4B$182.4B110.4D21.4B31.4B7.4B10.4B44.3B7.17B35.4B120.4B$181.4B
112.4D21.4B29.4B9.4B8.4B43.2AB9.16B37.4B118.4B$180.4B114.4D21.4B27.4B
11.4B6.4B43.A.AB11.13B39.4B116.4B$179.4B116.4D21.4B25.4B13.4B4.4B44.A
13.4B.2B2A5B40.4B114.4B$178.4B118.4D21.4B23.4B15.4B2.4B44.2A12.4B2.2B
2A3B43.4B112.4B$177.4B120.4D21.4B21.4B17.8B58.4B2.8B44.4B110.4B$176.
4B122.4D21.4B19.4B19.6B58.4B4.8B44.4B108.4B$175.4B124.4D21.4B17.4B21.
4B58.4B5.8B45.4B106.4B$174.4B126.4D21.4B15.4B21.6B56.4B7.7B46.4B104.
4B$173.4B128.4D21.4B13.4B21.8B54.4B8.7B47.4B102.4B$172.4B130.4D21.4B
11.4B21.4B2.4B52.4B9.6B49.4B100.4B$171.4B132.4D21.4B9.4B21.4B4.4B50.
4B10.6B50.4B98.4B$170.4B134.4D21.4B7.4B21.4B6.4B48.4B11.5B52.4B96.4B$
169.4B136.4D21.4B5.4B21.4B8.4B46.4B11.6B53.4B94.4B$168.4B138.4D21.4B
3.4B21.4B10.4B44.4B13.6B53.4B92.4B$167.4B140.4D21.4B.4B21.4B12.4B43.
3B13.7B54.4B90.4B$166.4B142.4D21.7B21.4B14.4B40.2AB15.6B56.4B88.4B$
165.4B144.4D21.5B21.4B16.4B38.A.AB15.6B57.4B86.4B$164.4B146.4D20.5B
20.4B18.4B37.A18.6B58.4B84.4B$163.4B148.4D18.7B18.4B20.4B35.2A17.8B
58.4B82.4B$162.4B150.4D16.4B.4B16.4B22.4B54.8B58.4B80.4B$161.4B152.4D
14.4B3.4B14.4B24.4B52.9B59.4B78.4B$160.4B154.4D12.4B5.4B12.4B26.4B51.
9B60.4B76.4B$159.4B156.4D10.4B7.4B10.4B28.4B50.10B60.4B10.2A62.4B$
158.4B158.4D8.4B9.4B8.4B30.4B49.5B2A3B61.4B7.2B2AB60.4B$157.4B160.4D
6.4B11.4B6.4B32.4B48.5B2A4B61.4B6.4B60.4B$156.4B162.4D4.4B13.4B4.4B
34.4B47.11B62.4B5.3B60.4B$155.4B164.4D2.4B15.4B2.4B36.4B46.12BA61.4B
5.3B4.3B5.2A44.4B$154.4B166.4D4B17.8B38.4B47.8B2.3A60.4B2.7B2.4B4.A
44.4B$153.4B168.4D2B19.6B40.4B46.7B6.A60.18B.BA.A43.4B$152.4B170.4D
21.4B42.4B45.6B6.2A61.17B.B2A43.4B$151.4B170.2B4D19.6B42.4B40.2A2.6B
70.18B44.4B$150.4B170.4B4D17.8B42.4B38.A.A9B69.18B43.4B$149.4B170.4B
2.4D15.4B2.4B42.4B37.A3.9B69.18B41.4B$148.4B170.4B4.4D13.4B4.4B42.4B
35.2A3.9B69.18B40.4B$147.4B170.4B6.4D11.4B6.4B42.4B39.9B69.18B39.4B$
146.4B170.4B8.4D9.4B8.4B42.4B38.9B69.18B38.4B$145.4B170.4B10.4D7.4B
10.4B42.4B36.11B69.16B38.4B$144.4B170.4B12.4D5.4B12.4B42.4B10.A24.11B
69.18B35.4B$143.4B170.4B14.4D3.4B14.4B42.4B7.3A24.12B68.12B4.2A.A32.
4B$142.4B170.4B16.4D.4B16.4B42.4B5.A21.B4.14B66.13B4.2AB3A29.4B$141.
4B170.4B18.4D3B18.4B42.4B4.2A19.3B3.10B.4B64.15B4.B4.A27.4B$140.4B
170.4B20.4DB20.4B34.2A6.9B17.6B2.15B63.16B3.2A.3A27.4B$139.4B170.4B
21.B4D21.4B34.A7.6B13.4B2.7B.13B.B2A60.17B4.A.A28.4B$138.4B170.4B21.
3B4D21.4B33.A.2A5.6B3.B2.2B2.29B.BA.A60.16B4.A.A27.4B$137.4B170.4B21.
4B.4D21.4B33.A2.A4.45B4.A61.13B7.A27.4B$136.4B170.4B21.4B3.4D21.4B33.
2AB3.46B4.2A60.5B2A2B38.4B$135.4B170.4B21.4B5.4D21.4B33.13BD2C13B2A
21B67.3B2A2B37.4B$134.4B170.4B21.4B7.4D21.4B33.10BDBD2C13B2A21B67.8B
35.4B$133.4B170.4B21.4B9.4D21.4B33.8B4D39B65.8B35.4B$132.4B170.4B21.
4B11.4D21.4B32.7B5D5B.B5.26B66.8B34.4B$131.4B170.4B21.4B13.4D21.4B32.
5B4D6B10.B2.20B67.7B34.4B$130.4B170.4B21.4B15.4D21.4B31.4B4D7B12.20B.
B.B64.7B33.4B$129.4B170.4B21.4B17.4D21.4B31.2B4D7B12.24B2A64.6B7.A24.
4B$128.4B170.4B21.4B19.4D21.4B31.4D10B10.24B2A64.6B6.A.A22.4B$127.4B
170.4B21.4B21.4D21.4B29.4D5B4.2A.A6.2AB2.5B2.12B.2B66.5B6.A.A21.4B$
126.4B170.4B21.4B23.4D21.4B27.4D4B6.2AB3A3.A.AB2.4B3.13B68.6B4.2A.3A
18.4B$125.4B170.4B21.4B25.4D21.4B25.4D4B8.B4.A2.A14.11B.B65.6B6.B4.A
16.4B$124.4B170.4B21.4B27.4D21.4B23.4DB.B9.2A.3A2.2A14.12B2A64.7B3.B
2AB3A16.4B$123.4B170.4B21.4B29.4D21.4B21.4D2.3B9.A.A20.10B.B2A65.8B.B
2A.A17.4B$122.4B170.4B21.4B31.4D21.4B19.4D2.B2AB9.A.A18.2AB.6B4.B66.
10B20.4B$121.4B170.4B21.4B33.4D21.4B17.4D4.2A11.A18.A.AB.4B72.3B2A6B
19.4B$120.4B170.4B21.4B35.4D21.4B15.4D37.A5.5B64.2A5.2B2A6B18.4B$119.
4B170.4B21.4B37.4D21.4B13.4D37.2A8.2A65.A5.10B17.4B$113.B4.4B16.A11.
2A140.4B21.4B39.4D21.4B11.4D48.A66.A.AB2.11B15.4B$112.3B2.4B16.A.A9.B
2AB138.4B21.4B41.4D21.4B9.4D50.3A64.2AB.12B14.4B$104.2A5.9B17.A.A9.3B
138.4B21.4B43.4D21.4B7.4D53.A66.15B12.4B$105.A4.9B12.2A2.3A.2A9.B.B
136.4B21.4B45.4D21.4B5.4D121.16B10.4B$105.A.AB.8B13.A2.A4.B8.5B135.4B
21.4B47.4D21.4B3.4D122.16B.2B6.4B$106.2AB.9B3.4B2.BA.A3.3AB2A6.6B134.
4B21.4B49.4D21.4B.4D123.18B2A4.4B$108.11B2.5B2.B2A6.A.2A4.8B133.4B21.
4B51.4D21.3B4D123.17B.B2A3.4B$108.11B2.8B10.13B133.4B21.4B53.4D21.B4D
123.4B2.8B.4B.B3.4B$108.21B12.13B130.4B21.4B55.4D20.4DB122.4B4.7B9.4B
$109.19B12.15B128.4B21.4B57.4D18.4D3B120.4B5.6B9.4B$108.19B2.B10.15B
127.4B21.4B59.4D16.4D.4B118.4B6.4B10.4B$106.26B5.B.17B125.4B21.4B61.
4D14.4D3.4B116.4B5.A3B11.4B$105.51B124.4B21.4B63.4D12.4D5.4B114.4B5.A
.AB11.4B$106.21B2A13B2A13B122.4B21.4B65.4D10.4D7.4B112.4B6.A.A11.4B$
104.23B2A13B2A14B120.4B21.4B67.4D8.4D9.4B110.4B8.A11.4B$104.49B3.B2A
118.4B21.4B69.4D6.4D11.4B108.4B6.3A11.4B$105.47B4.A2.A116.4B21.4B71.
4D4.4D13.4B106.4B7.A12.4B$105.31B2.2B2.B3.6B5.2A.A114.4B21.4B73.4D2.
4D15.4B104.4B20.4B$107.12B2.7B2.4B13.6B7.A113.4B21.4B75.8D17.4B102.4B
20.4B$108.11B3.6B17.9B6.2A111.4B21.4B77.6D19.4B100.4B20.4B$111.7B5.3B
19.2A4.4B117.4B21.4B79.4D21.4B98.4B20.4B$112.4B.3B4.B21.A5.4B115.4B
21.4B79.6D21.4B96.4B20.4B$113.2B3.2A23.3A7.4B113.4B21.4B79.8D21.4B94.
4B20.4B$112.4B2.A24.A10.4B111.4B21.4B80.10D20.4B92.4B20.4B$112.B2AB3.
3A33.4B109.4B21.4B81.7D2C2D20.4B90.4B20.4B$113.2A6.A34.4B107.4B21.4B
82.6DCDC2D21.4B88.4B20.4B$157.4B105.4B21.4B84.6DC3D22.4B86.4B20.4B$
158.4B103.4B21.4B90.3D25.4B84.4B20.4B$159.4B101.4B21.4B120.4B82.4B20.
4B$160.4B99.4B21.4B122.4B80.4B20.4B$161.4B97.4B21.4B124.4B78.4B20.4B$
162.4B95.4B21.4B126.4B76.4B20.4B$163.4B93.4B21.4B128.4B74.4B20.4B$
164.4B91.4B21.4B130.4B72.4B20.4B$165.4B89.4B21.4B132.4B70.4B20.4B80.
2A$166.4B87.4B21.4B134.4B68.4B20.4B81.A.A$167.4B85.4B21.4B136.4B66.4B
20.4B84.A4.2A$168.4B83.4B21.4B57.A60.2A13.2A3.4B64.4B20.4B81.4A.2A2.A
2.A$169.4B81.4B21.4B58.3A33.2A24.A14.A4.4B62.4B20.4B82.A2.A.A.A.A.2A$
170.4B79.4B21.4B46.2A3.2A9.A17.A15.A13.2A6.3A15.A.AB2.4B60.4B20.4B85.
BABABA.A$171.4B77.4B21.4B46.B2AB.B2AB7.2A15.3A15.A.AB9.B2A2B4.A18.2A
2B2.4B58.4B20.4B87.B2ABA.A$172.4B75.4B21.4B48.2B2.3B3.B4.4B12.A19.2AB
.3B6.4B.3B21.3B2.4B56.4B20.4B89.2B.BA$173.4B73.4B21.4B50.3B.3B.4B4.3B
11.2A20.7B2.11B7.7B.B4.4B2.4B54.4B20.4B89.3B$174.4B71.4B21.4B43.2A5.
7B.13B11.B20.22B.B3.13B.4B2.4B12.2A38.4B20.4B81.2A6.4B$175.4B69.4B21.
4B45.A5.23B9.3B19.24BD26B11.A38.4B20.4B83.A6.B2A3B$176.4B67.4B21.4B
46.A.AB.19B.8B4.6B16.26BD21BD4B7.BA.A37.4B20.4B84.A.AB3.B2A3B$177.4B
65.4B21.4B48.2AB.29B2.10B10.29B2D18B3D5B.B.2B.B2A4.2A31.4B20.4B86.2AB
.10B$178.4B63.4B21.4B51.44B3.2B2.30B2D2B2A15BDBD12B6.A31.4B20.4B89.
13B$179.4B61.4B21.4B52.37B2A15BD26BD3B2A15BD13B4.BA.A30.4B20.4B90.5B
3D6B$180.4B59.4B21.4B53.37B2A15BDBD4B.30B3.2B2.20B.B2A30.4B20.4B91.7B
D7B$181.4B57.4B21.4B55.53B3D4B2.16B2.10B11.19B31.4B20.4B94.4BD3B2.4B$
182.4B55.4B21.4B58.53BD4B2.7B.4B7.6B16.17B30.4B20.4B95.6B5.4B$183.4B
53.4B21.4B57.59B4.6B2.2B9.3B19.11BD6B27.4B20.4B95.9B4.4B$184.4B51.4B
21.4B58.2A3.25B4.13B.4B11.6B13.B20.11BDBD6B25.4B20.4B95.4B4.2A5.4B$
185.4B49.4B21.4B60.A3.20B4.B4.7B.B4.4B13.3B14.2A20.11B2D7B24.4B20.4B
95.4B5.A7.4B$186.4B47.4B21.4B58.3A6.15B7.2A15.4B12.7B12.A19.2AB.3B2.
13B23.4B20.4B95.4B7.3A5.4B$187.4B45.4B21.4B59.A8.11B12.A14.4B13.2A.B.
2A13.3A15.A.AB6.13B5.B16.4B20.4B95.4B10.A6.4B$188.4B43.4B21.4B68.13B
8.3A14.4B15.A3.A16.A15.A12.9B22.4B20.4B95.4B19.4B$189.4B41.4B21.4B65.
B2.15B7.A15.4B13.3A5.3A28.2A12.3B.4B22.4B20.4B95.4B21.4B$190.4B39.4B
21.4B69.16B21.4B14.A9.A43.8B20.4B20.4B95.4B23.4B$191.4B37.4B21.4B70.
17B19.4B70.8B18.4B20.4B95.4B25.4B$192.4B35.4B21.4B71.16B19.4B70.4B2.
4B16.4B20.4B95.4B27.4B$193.4B33.4B21.4B74.13B19.4B70.4B4.4B14.4B20.4B
95.4B29.4B$194.4B31.4B21.4B75.3B.2B2A5B18.4B70.4B6.4B12.4B20.4B95.4B
31.4B$195.4B29.4B21.4B74.4B2.2B2A3B19.4B70.4B8.4B10.4B20.4B95.4B33.4B
$196.4B27.4B21.4B75.2A3.8B18.4B70.4B10.4B8.4B20.4B95.4B35.4B$197.4B
25.4B21.4B77.A4.8B16.4B70.4B12.4B6.4B20.4B95.4B37.4B$198.4B23.4B21.4B
75.3A5.8B15.4B70.4B14.4B4.4B20.4B95.4B39.4B$183.A15.4B21.4B21.4B76.A
8.7B14.4B70.4B16.4B2.4B15.B4.4B16.A11.2A65.4B41.4B$182.A.A15.4B19.4B
21.4B86.7B13.4B70.4B18.8B15.3B2.4B16.A.A9.B2AB63.4B43.4B$182.A.A16.4B
17.4B21.4B79.A7.6B13.4B70.4B20.6B8.2A5.9B17.A.A9.3B63.4B45.4B$152.B
27.3A.2A11.A4.4B15.4B21.4B79.A.A6.6B12.4B70.4B22.4B10.A4.9B12.2A2.3A.
2A9.B.B61.4B47.4B$179.A4.B10.3A5.4B13.4B21.4B80.A.A6.5B12.4B70.4B22.
6B9.A.AB.8B13.A2.A4.B8.5B60.4B49.4B$154.2A11.A12.3AB2AB7.A9.4B11.4B
21.4B79.3A.2A4.6B11.4B70.4B22.8B9.2AB.9B3.4B2.BA.A3.3AB2A6.6B59.4B51.
4B$153.B2AB9.A.A13.A.2AB.4B2.2A9.4B9.4B21.4B79.A4.B6.6B9.4B70.4B22.4B
2.4B10.11B2.5B2.B2A6.A.2A4.8B58.4B53.4B$154.3B9.A.A17.10B10.4B7.4B21.
4B81.3AB2AB3.7B8.4B70.4B22.4B4.4B9.11B2.8B10.13B58.4B55.4B$153.B.B9.
2A.3A15.8B13.4B5.4B21.4B84.A.2A10B8.4B70.4B22.4B6.4B8.21B12.13B55.4B
57.4B$153.5B8.B4.A14.11B11.4B3.4B21.4B89.10B8.3B70.4B22.4B8.4B8.19B
12.15B53.4B59.4B$153.6B6.2AB3A9.4B2.12B11.4B.4B16.B4.4B16.A11.2A60.6B
2A3B5.2AB71.4B22.4B10.4B6.19B2.B10.15B52.4B61.4B$153.8B4.2A.A11.18B
12.7B16.3B2.4B16.A.A9.B2AB59.6B2A2B5.A.AB70.4B22.4B12.4B3.26B5.B.17B
50.4B63.4B$154.13B12.19B13.5B9.2A5.9B17.A.A9.3B60.10B5.A72.4B22.4B14.
4B.51B49.4B65.4B$152.13B14.17B15.5B10.A4.9B12.2A2.3A.2A9.B.B58.11B2.B
A.A71.4B22.4B16.26B2A13B2A13B47.4B67.4B$151.15B13.17B14.7B9.A.AB.8B
13.A2.A4.B8.5B58.12B.B2A71.4B22.4B18.25B2A13B2A14B45.4B69.4B$151.15B
10.B2.18B12.4B.4B9.2AB.9B3.4B2.BA.A3.3AB2A6.6B57.15B72.4B22.4B20.50B
3.B2A43.4B71.4B$150.17B.B5.23B3.B7.4B3.4B10.11B2.5B2.B2A6.A.2A4.8B56.
16B71.4B22.4B20.50B4.A2.A41.4B73.4B$150.48B.B2A5.4B5.4B9.11B2.8B10.
13B54.2B.16B70.4B22.4B20.35B2.2B2.B3.6B5.2A.A39.4B75.4B$149.13B2A13B
2A21B2A4.4B7.4B8.21B12.13B51.2A18B69.4B22.4B20.19B2.7B2.4B13.6B7.A38.
4B77.4B$148.14B2A13B2A22B4.4B9.4B8.19B12.15B50.2AB.17B41.A25.4B22.4B
20.20B3.6B17.9B6.2A36.4B79.4B$147.2AB3.44B.3B3.4B11.4B6.19B2.B10.15B
51.B.4B.8B2.4B39.A.A23.4B22.4B20.4B2.14B5.3B19.2A4.4B42.4B81.4B$146.A
2.A4.43B6.4B13.4B3.26B5.B.17B57.7B4.4B38.A.A22.4B22.4B20.4B6.9B.3B4.B
21.A5.4B40.4B83.4B$145.A.2A5.6B3.B2.2B2.26B6.4B15.4B.51B58.6B5.4B35.
3A.2A20.4B22.4B20.4B7.8B3.2A23.3A7.4B38.4B85.4B$145.A7.6B13.4B2.7B3.
8B5.4B17.4B.21B2A13B2A13B59.4B6.4B33.A4.B11.2A7.4B22.4B20.4B9.4B6.A
24.A10.4B36.4B87.4B$144.2A6.9B17.6B8.5B3.4B19.25B2A13B2A14B60.3BA5.4B
33.3AB2AB2.2B4.B2AB4.5B22.4B20.4B12.4B5.3A33.4B34.4B89.4B$151.4B4.2A
19.3B11.4B.4B21.50B3.B2A60.BA.A5.4B34.A.2A6B.7B3.4B22.4B20.4B15.2A7.A
34.4B32.4B91.4B$150.4B5.A21.B13.7B23.48B4.A2.A60.A.A6.4B35.22B22.4B
20.4B16.A44.4B30.4B93.4B$149.4B7.3A33.5B23.33B2.2B2.B3.6B5.2A.A60.A8.
4B36.19B22.4B20.4B18.3A42.4B28.4B95.4B$136.2A10.4B10.A33.5B23.16B2.7B
2.4B13.6B7.A61.3A6.4B34.19B22.4B20.4B21.A43.4B21.B4.4B16.A11.2A67.4B$
135.B2A2B7.4B44.7B22.16B3.6B17.9B6.2A62.A7.4B33.18B22.4B20.4B67.4B19.
3B2.4B16.A.A9.B2AB67.4B$129.A6.4B6.4B44.4B.4B22.14B5.3B19.2A4.4B78.4B
32.19B20.4B20.4B69.4B10.2A5.9B17.A.A9.3B69.4B$128.A.A6.3B5.4B44.4B3.
4B24.9B.3B4.B21.A5.4B78.4B28.2B.20B18.4B20.4B71.4B10.A4.9B12.2A2.3A.
2A9.B.B69.4B$120.2A6.BA2B4.3B5.4B44.4B5.4B23.8B3.2A23.3A7.4B78.4B26.
2A22B17.4B20.4B73.4B9.A.AB.8B13.A2.A4.B8.5B70.4B$121.A7.2B3.7B2.4B44.
4B7.4B23.4B6.A24.A10.4B78.4B25.2AB.6BA13B16.4B20.4B75.4B9.2AB.9B3.4B
2.BA.A3.3AB2A6.6B71.4B$121.A.AB5.2B.13B44.4B9.4B24.4B5.3A33.4B78.4B
25.B2.5BABA14B13.4B20.4B77.4B10.11B2.5B2.B2A6.A.2A4.8B72.4B$122.2AB.
19B44.4B11.4B25.2A7.A34.4B78.4B26.5BA2BA14B12.4B20.4B79.4B9.11B2.8B
10.13B74.4B$124.20B44.4B13.4B24.A44.4B78.4B26.5B2A16B10.4B20.4B81.4B
8.21B12.13B73.4B$124.20B43.4B15.4B24.3A42.4B78.4B25.19B2.B2A8.4B20.4B
83.4B8.19B12.15B73.4B$125.18B43.4B17.4B25.A43.4B78.4B23.20B2.BA.A6.4B
20.4B85.4B6.19B2.B10.15B74.4B$127.16B42.4B19.4B69.4B78.4B21.2A16B.3B
4.A5.4B20.4B87.4B3.26B5.B.17B74.4B$125.18B41.4B21.4B69.4B78.4B20.2A
21B3.2A3.4B20.4B89.4B.51B75.4B$123.A.2A3.13B40.4B23.4B69.4B78.4B20.2B
.7B2.10B7.4B20.4B91.26B2A13B2A13B75.4B$121.3AB2A4.11B40.4B25.4B69.4B
78.4B23.6B2.10B6.4B20.4B93.25B2A13B2A14B75.4B$120.A4.B6.10B39.4B27.4B
69.4B78.4B23.4B3.8B7.4B20.4B95.50B3.B2A75.4B$121.3A.2A5.10B38.4B29.4B
69.4B78.4B25.2B3.7B6.4B20.4B95.50B4.A2.A75.4B$123.A.A4.13B36.4B31.4B
69.4B78.4B23.B2AB5.4B5.4B20.4B95.35B2.2B2.B3.6B5.2A.A75.4B$123.A.A3.
15B34.4B33.4B69.4B78.4B22.B2AB4.4B5.4B20.4B95.19B2.7B2.4B13.6B7.A76.
4B$124.A4.16B32.4B35.4B69.4B78.4B22.3B3.4B5.4B20.4B95.20B3.6B17.9B6.
2A76.4B$128.18B30.4B37.4B69.4B78.4B20.B.B3.4B5.4B20.4B95.4B2.14B5.3B
19.2A4.4B84.4B$127.18B30.4B39.4B69.4B78.4B18.10B5.4B20.4B95.4B6.9B.3B
4.B21.A5.4B84.4B$126.4B.13B30.4B41.4B69.4B78.4B15.11B5.4B20.4B95.4B7.
8B3.2A23.3A7.4B84.4B$125.4B6.2B2A5B29.4B43.4B69.4B78.4B13.11B5.4B20.
4B95.4B9.4B6.A24.A10.4B28.2A54.4B$124.4B7.2B2A3B30.4B45.4B69.4B78.4B
10.12B5.4B20.4B95.4B12.4B5.3A33.4B26.B2AB23.2A29.4B$123.4B7.8B29.4B
47.4B69.4B78.4B8.12B5.4B20.4B95.4B15.2A7.A34.4B25.4B24.A30.4B$122.4B
9.8B27.4B49.4B69.4B71.A6.4B6.14B3.4B20.4B95.4B16.A44.4B25.2B25.A.AB
28.4B$121.4B10.8B26.4B51.4B69.4B69.A.A6.4B3.17B.4B20.4B95.4B18.3A42.
4B22.2A3B25.2AB29.4B$120.4B12.7B25.4B53.4B69.4B68.A.A7.4B.22B20.4B95.
4B21.A43.4B21.2A5B25.3B28.4B$119.4B13.7B24.4B55.4B69.4B65.3A.2A7.9B2A
14B20.4B95.4B67.4B7.2A11.8B24.4B28.4B$118.4B6.A7.6B24.4B57.4B69.4B63.
A4.B9.8B2A16B17.4B95.4B69.4B7.A6.2B5.6B25.4B22.2A4.4B$117.4B6.A.A6.6B
23.4B59.4B69.4B63.3AB2AB6.27B16.4B95.4B71.4B6.A.AB2.6B.9B24.4B20.B2AB
4.4B$116.4B7.A.A6.5B18.B4.4B16.A11.2A31.4B69.4B64.A.2A32B.B2A13.4B95.
4B73.4B6.2AB.B.17B23.4B20.3B5.4B$115.4B6.3A.2A4.6B17.3B2.4B16.A.A9.B
2AB31.4B69.4B65.31B4.BA.A11.4B95.4B75.4B7.24B21.4B20.3B5.4B$114.4B6.A
4.B6.6B8.2A5.9B17.A.A9.3B33.4B69.4B66.29B7.A10.4B95.4B77.4B5.27B20.4B
17.5B6.4B$113.4B8.3AB2A2B2.7B9.A4.9B12.2A2.3A.2A9.B.B33.4B69.4B63.29B
9.2A8.4B95.4B79.4B4.28B20.4B15.7B6.4B6.2A$112.4B11.A.2A10B10.A.AB.8B
13.A2.A4.B8.5B34.4B69.4B62.28B19.4B95.4B76.2A3.4B2.31B19.4B14.8B6.4B
4.B2A2B3.2A$111.4B16.10B11.2AB.9B3.4B2.BA.A3.3AB2A6.6B35.4B69.4B61.4B
2A22B18.4B95.4B78.A4.38B5.7B.B4.4B12.10B6.4B4.4B2.B2AB$110.4B17.6B2A
3B12.11B2.5B2.B2A6.A.2A4.8B36.4B69.4B58.2AB.2B2A21B18.4B95.4B79.A.AB
2.32B.4B5.13B.4B11.6B.4B6.4B.6B3.2B$109.4B18.6B2A2B5.2A6.11B2.8B10.
13B38.4B69.4B56.A.AB.5B.15B.B.B2A15.4B95.4B81.2AB.68B2.8B2.4B6.10B2.
2B$108.4B19.10B5.A7.21B12.13B37.4B69.4B55.A5.3B2.16B2.BA.A13.4B95.4B
84.28B2.51B2.4B5.11B2A2B$107.4B19.11B2.BA.A8.19B12.15B37.4B69.4B53.2A
6.3B.12B.4B4.A12.4B95.4B85.16B2A8B4.50B4.4B3.12B2A3B.B$106.4B20.12B.B
2A8.19B2.B10.15B38.4B69.4B59.B2AB.11B3.4B3.2A10.4B95.4B88.14B2A6B6.
17B2A22B.7B6.4B2.18B2A$105.4B20.15B8.26B5.B.17B37.5B69.4B59.2A3.9B5.
4B13.4B95.4B88.22B8.16B2A31B6.4B2.15B.B2A$104.4B20.16B7.51B37.B.4B69.
4B64.3B.B9.4B11.4B95.4B88.4B.17B10.B2.19B3.2B2.19B7.19B3.B$103.4B18.
2B.16B8.21B2A13B2A13B39.4B69.4B62.2B14.4B9.4B95.4B88.4B3.14B15.2B3.B
2.10B11.17B7.18B$102.4B18.2A18B6.23B2A13B2A14B39.4B69.4B60.2BAB14.4B
7.4B95.4B88.4B5.12B17.AB6.6B16.15B.2B2.19B11.2A$101.4B19.2AB.17B5.49B
3.B2A39.4B69.4B60.A.A15.4B5.4B95.4B88.4B5.12B17.A.A7.3B19.38B11.A$
100.4B21.B.4B.8B2.4B5.47B4.A2.A39.4B69.4B60.A17.4B3.4B95.4B88.4B5.12B
18.2A8.B21.8B.20B.8B8.BA.A$99.4B29.7B4.4B4.31B2.2B2.B3.6B5.2A.A39.4B
69.4B78.4B.4B95.4B88.4B5.14B26.2A19.8B3.2B2A16B2.8B7.B2A$98.4B31.6B5.
4B5.12B2.7B2.4B13.6B7.A40.4B69.4B78.7B95.4B88.4B5.10B2.4B25.A20.2A3.B
5.2B2A17B.9B4.3B$97.4B34.4B6.4B5.11B3.6B17.9B6.2A40.4B69.4B78.5B95.4B
88.4B5.4B3.B.B4.4B25.3A18.A10.21B.9B2.4B$90.2A4.4B37.3BA5.4B7.7B5.3B
19.2A4.4B48.4B69.4B77.5B94.4B88.4B5.4B3.3B6.4B26.A15.3A12.B.3B.4B7.9B
.8B$81.2A5.2B2AB2.4B39.BA.A5.4B7.4B.3B4.B21.A5.4B48.4B69.4B75.7B92.4B
89.3B5.4B4.B2AB6.4B41.A19.4B9.8B2.6B$82.A5.5B.4B41.A.A6.4B7.2B3.2A23.
3A7.4B48.4B69.4B73.4B.4B90.4B88.2AB6.4B6.2A8.4B59.4B11.8B2.4B$82.A.AB
2.9B43.A8.4B5.4B2.A24.A10.4B48.4B69.4B71.4B3.4B88.4B88.A.AB5.4B18.4B
58.3B13.7B.6B$76.A6.2AB.9B45.3A6.4B4.B2AB3.3A33.4B48.4B69.4B69.4B5.4B
86.4B89.A7.4B20.4B55.2AB16.14B$76.3A6.10B48.A7.4B4.2A6.A34.4B48.4B69.
4B67.4B7.4B84.4B89.2A6.4B22.4B32.2A19.A.AB16.9B2.4B$79.A5.9B58.4B47.
4B48.4B69.4B65.4B9.4B82.4B97.4B24.4B32.A19.A19.8B4.4B$78.2A6.9B58.4B
47.4B48.4B69.4B63.4B11.4B80.4B97.4B26.4B31.A.AB15.2A19.8B.2B2.4B$78.
5B2.11B58.4B47.4B48.4B69.4B61.4B13.4B78.4B97.4B28.4B31.2AB36.13B.4B$
80.16B59.4B47.4B48.4B69.4B59.4B15.4B76.4B97.4B30.4B32.3B34.13B2.4B$
79.2A15B60.4B47.4B48.4B69.4B57.4B17.4B74.4B97.4B32.4B31.4B33.14B2.4B$
79.2A15B61.4B47.4B48.4B69.4B55.4B19.4B72.4B97.4B34.4B31.4B31.14B4.4B$
80.B.12B.B2A60.4B47.4B48.4B69.4B53.4B21.4B70.4B97.4B36.4B31.4B29.4B2.
10B4.4B$82.12B.BA.A60.4B47.4B48.4B69.4B51.4B23.4B68.4B97.4B38.4B31.4B
7.A19.4B2.11B.B3.4B$82.10B6.A61.4B47.4B48.4B69.4B49.4B25.4B66.4B97.4B
40.4B31.4B6.3A16.4B.14B2A3.4B$81.11B6.2A61.4B47.4B48.4B69.4B47.4B27.
4B64.4B97.4B42.4B31.4B8.A8.26B2A4.4B$80.4B.7B70.4B47.4B48.4B69.4B45.
4B29.4B62.4B97.4B44.4B31.4B6.2A7.28B6.4B$79.14B70.4B47.4B48.4B69.4B
43.4B31.4B60.4B97.4B46.4B31.4B5.5B.B2.28B7.4B$78.15B71.4B47.4B48.4B
69.4B41.4B33.4B58.4B97.4B48.4B31.4B6.6B.24B12.4B$77.16B72.4B47.4B48.
4B69.4B39.4B35.4B56.4B97.4B50.4B31.4B4.30B2A13.4B$76.4B.11B74.4B47.4B
48.4B69.4B37.4B37.4B54.4B97.4B52.4B31.25B2.2B2.6B2AB.B11.4B$75.4B2.B
3D4B.4B73.4B47.4B48.4B69.4B35.4B39.4B52.4B97.4B54.4B31.21B11.8B2A11.
4B$74.4B3.2BD4B4.2A74.4B47.4B48.4B69.4B33.4B41.4B50.4B98.3B35.3D18.4B
30.19B15.4B.B2A12.4B$73.4B4.2B3D2B4.A76.4B47.4B48.4B69.4B31.4B43.4B
48.4B99.2B36.D2.D18.4B27.20B17.2B3.B14.4B$72.4B5.6B6.3A74.4B47.4B48.
4B69.4B29.4B45.4B46.4B100.B37.D2.D19.4B25.21B16.2B20.4B$71.4B5.7B8.A
75.4B47.4B48.4B69.4B27.4B47.4B44.4B139.3D21.4B24.13B2.8B13.B2AB20.4B$
70.4B5.8B85.4B47.4B48.4B69.4B25.4B49.4B42.4B140.D24.4B20.AB.12B5.B3.
2A14.2A22.4B$69.4B5.8B87.4B47.4B48.4B69.4B23.4B51.4B40.4B141.D25.4B
18.A.A15B7.A40.4B$68.4B5.9B88.4B47.4B48.4B69.4B21.4B53.4B38.4B142.D
26.4B18.A2B.B.6B3.2A8.3A38.4B$67.4B5.4B.6B88.4B47.4B48.4B69.4B19.4B
55.4B36.4B171.4B18.B4.7B2.A11.A39.4B$66.4B5.4B.7B89.4B47.4B48.4B69.4B
17.4B57.4B34.4B173.4B21.7B4.3A49.4B$65.4B5.4B2.6B91.4B47.4B48.4B69.4B
15.4B95.4B175.4B20.7B6.A50.4B$64.4B5.4B3.6B92.4B47.4B48.4B69.4B13.4B
95.4B177.4B18.8B58.4B$63.4B5.4B4.6B93.4B47.4B48.4B69.4B11.4B95.4B179.
4B15.2AB.7B58.4B$62.4B5.4B4.8B93.4B47.4B48.4B69.4B9.4B95.4B181.4B13.A
.AB.6B60.4B$61.4B5.4B6.8B93.4B47.4B48.4B69.4B7.4B95.4B183.4B12.A4.6B
61.4B$60.4B5.4B6.9B94.4B47.4B48.4B69.4B5.4B95.4B185.4B10.2A4.7B61.4B$
59.4B5.4B7.9B95.4B47.4B48.4B69.4B3.4B95.4B187.4B15.8B2.2A57.4B$58.4B
5.4B8.10B95.4B47.4B48.4B69.4B.4B95.4B189.4B12.12BA.A57.4B$57.4B5.4B9.
5B2A3B96.4B47.4B48.4B69.7B95.4B191.4B11.11B3.A58.4B$56.4B5.4B10.5B2A
4B3.2A91.4B47.4B48.4B69.5B95.4B193.4B10.5B2A4B3.2A58.4B$55.4B5.4B11.
11B3.A93.4B47.4B48.4B35.B32.5B94.4B195.4B9.5B2A3B65.4B$54.4B5.4B12.4B
D7BA.A94.4B47.4B48.4B7.A58.7B92.4B197.4B8.10B66.4B$53.4B5.4B15.B3D4B
2.2A96.4B47.4B48.4B6.3A55.4B.4B90.4B199.4B7.9B68.4B$52.4B5.4B16.D2B2D
2B102.4B47.4B48.4B8.A53.4B3.4B88.4B201.4B6.9B69.4B$51.4B5.4B17.5B105.
4B47.4B48.4B6.A.A51.4B5.4B86.4B203.4B6.8B70.4B$50.4B5.4B10.A7.6B105.
4B47.4B48.4B5.A.AB49.4B7.4B84.4B205.4B4.8B72.4B$49.4B5.4B11.3A4.7B
106.4B47.4B48.4B5.A3B47.4B9.4B82.4B207.4B4.6B74.4B$48.4B5.4B15.A4.7B
106.4B47.4B48.4B6.4B44.4B11.4B80.4B209.4B3.6B75.4B$47.4B5.4B15.2A4.7B
107.4B47.4B48.4B5.6B41.4B13.4B78.4B211.4B2.6B76.4B$46.4B5.4B16.13B
108.4B47.4B48.4B4.7B39.4B15.4B76.4B213.4B.7B76.4B$45.4B5.4B19.3B.8B
108.4B47.4B48.4B2.8B.4B.B31.4B17.4B74.4B215.4B.6B77.4B$44.4B5.4B14.2B
3.12B110.4B47.4B48.17B.B2A29.4B19.4B72.4B217.9B79.4B$43.4B5.4B14.18B
111.4B47.4B48.18B2A28.4B21.4B70.4B219.8B80.4B$42.4B5.4B15.20B110.4B
47.4B47.16B.2B28.4B23.4B68.4B221.8B80.4B$41.4B5.4B15.21B.2B108.4B47.
4B46.16B30.4B25.4B66.4B223.7B81.4B$40.4B5.4B16.23B2A108.4B47.4B45.15B
30.4B27.4B64.4B225.6B82.4B$39.4B5.4B16.24B2A109.4B47.4B42.2AB.12B30.
4B29.4B62.4B15.B210.7B82.4B$38.4B5.4B17.22B.2B111.4B47.4B40.A.AB2.11B
29.4B31.4B60.4B16.2B209.7B83.4B$37.4B5.4B19.22B114.4B47.4B39.A5.10B
29.4B33.4B58.4B17.3B208.8B.3B79.4B7.E$36.4B5.4B22.21B114.4B47.4B37.2A
5.2B2A6B28.4B35.4B56.4B18.4B207.13B79.4B6.3E$35.4B5.4B24.22B15.B4.A
11.2A79.4B47.4B42.3B2A6B27.4B37.4B54.4B20.4B206.14B79.4B8.E$34.4B5.4B
25.23B13.2B3.A.A9.B2AB79.4B47.4B42.10B26.4B39.4B52.4B22.4B205.15B79.
4B6.E.C$33.4B5.4B26.24B11.3B3.A.A9.3B81.4B47.4B41.10B2A.A21.4B41.4B
50.4B24.4B205.14B80.4B5.E.CB$20.A11.4B5.4B27.25B9.B2AB.3A.2A9.B.B81.
4B47.4B39.7B2.2B2AB3A18.4B43.4B48.4B26.4B204.13B82.4B5.E3B$20.3A8.4B
5.4B28.25B8.2BAB.A4.B8.5B82.4B47.4B38.6B4.B.B4.A16.4B95.4B28.4B65.B
136.14B83.4B6.4B$23.A6.4B5.4B29.25B.4B2.BABA3.3AB2A6.6B83.4B47.4B38.
6B4.2A.3A16.4B95.4B30.4B63.2B137.13B84.4B5.6B$22.2A5.4B5.4B31.29B.2B
2A6.A.2A4.8B84.4B47.4B37.5B6.A.A17.4B95.4B32.4B61.3B139.3B2A7B84.4B4.
7B$22.4B2.4B5.4B32.33B9.13B86.4B47.4B35.6B6.A.A16.4B95.4B34.4B59.4B
139.2BA2BAB2.4B84.4B2.8B.4B.B$24.2B.4B5.4B35.30B12.13B85.4B47.4B34.6B
7.A16.4B95.4B36.4B57.4B142.B2A5.4B84.17B.BCE$23.7B5.4B34.31B12.15B85.
4B47.4B32.7B23.4B95.4B38.4B55.4B152.4B84.18BCE$23.6B5.4B35.2A4.24B2.B
10.15B86.4B47.4B31.7B8.A13.4B95.4B40.4B53.4B154.4B66.2A15.16B.2B$23.
5B5.4B37.A4.29B5.B.17B86.4B47.4B30.8B5.3A12.4B95.4B42.4B51.4B156.4B
65.A16.16B$13.A7.8B3.4B35.3A6.52B87.4B47.4B29.8B4.A14.4B95.4B44.4B49.
4B158.4B52.A8.BA.A16.15B$13.3A5.9B.4B36.A9.22B2ABD11B2A13B87.4B47.4B
29.8B3.2A12.4B95.4B46.4B47.4B160.4B49.3A8.B2A15.ECB.12B$16.A3.15B47.
21B2AB3D9B2A14B87.4B47.4B28.3B2A2B2.4B11.4B95.4B48.4B45.4B162.4B39.4B
4.A9.3B16.E.EB2.11B19.A$15.2A.17B.2B45.23BDBD20B3.B2A87.4B47.4B25.5B
2A2B.3B12.4B95.4B50.4B43.4B164.4B34.2A6B4.2A7.4B16.E5.10B18.3A$15.22B
2A45.24BD19B4.A2.A87.4B47.4B24.13B11.4B95.4B52.4B41.4B166.4B23.2A5.3B
2A12B6.4B16.2E5.2B2C6B17.A$17.18B.B2A45.28B2.2B2.B3.6B5.2A.A87.4B47.
4B22.16B8.4B95.4B54.4B39.4B168.4B23.A4.16B7.4B23.3B2C6B17.2A$16.10BD
9B.B46.12B.7B2.4B13.6B7.A88.4B47.4B20.17B7.4B95.4B56.4B37.4B170.4B22.
A.A18B6.4B25.10B15.4B$15.B.8BD9B47.2AB.10B2.6B17.9B6.2A88.4B47.4B20.
16B6.4B95.4B58.4B35.4B172.4B22.2A17B6.4B26.8B.B2C.E10.3B$14.11B3D6B
47.A.AB.10B3.3B19.2A4.4B96.4B47.4B20.15B5.4B95.4B60.4B33.4B174.4B23.
18B4.4B26.7B3.B2CB3E7.4B$14.20B47.A5.9B4.B21.A5.4B96.4B47.4B13.2A5.
13B5.4B95.4B62.4B31.4B176.4B22.19B2.4B27.6B6.B4.E5.4B$15.18B47.2A5.8B
24.3A7.4B96.4B47.4B13.A6.10B6.4B95.4B64.4B29.4B178.4B21.24B29.6B4.2E.
3E5.4B$14.11B2A5B54.9B24.A10.4B96.4B47.4B12.A.AB3.10B5.4B95.4B66.4B
27.4B180.4B20.23B30.5B6.E.E6.4B$13.12B2A5B53.9B37.4B96.4B47.4B12.2AB.
15B.4B95.4B68.4B25.4B182.4B19.22B30.6B6.E.E5.4B$12.19B54.9B38.4B96.4B
47.4B13.21B95.4B70.4B23.4B184.4B17.22B31.6B7.E5.4B$12.18B54.4B3.3B39.
4B96.4B47.4B13.19B95.4B72.4B21.4B186.4B15.22B31.7B12.4B$12.17B56.4B
45.4B96.4B47.4B4.2A5.20B94.4B74.4B19.4B188.4B13.4B.17B32.7B11.4B$11.
18B56.2B2AB45.4B96.4B47.4B4.A4.22B92.4B76.4B17.4B190.4B11.4B3.15B33.
8B9.4B$12.16B59.2A47.4B96.4B47.4B3.A.AB.23B56.B33.4B78.4B15.4B192.4B
9.4B4.14B34.8B8.4B$11.16B110.4B96.4B47.4B3.2AB.22B90.4B80.4B13.4B194.
4B7.4B4.15B35.8B6.4B$8.AB.15B112.4B96.4B47.4B4.23B90.4B82.4B11.4B196.
4B5.4B5.16B34.3B2C2B6.4B$7.A.A16B113.4B96.4B47.4B3.22B90.4B84.4B9.4B
198.4B3.4B7.19B28.5B2C2B5.4B$8.A2B.13B115.4B96.4B47.4B3.18B92.4B86.4B
7.4B200.4B.4B9.19B27.17B3.E$9.B3.11B117.4B96.4B47.4B2.14B.5B89.4B88.
4B5.4B202.7B11.17B2A25.17B3.E.E$17.7B118.4B96.4B47.4B2.12B5.2A88.4B
90.4B3.4B204.5B13.16B2A24.17B4.E.E$13.2B.8B119.4B96.4B47.4B3.10B5.A
88.4B92.4B.4B205.5B13.18B25.16B3.2E.3E$12.2A3B2A5B120.4B96.4B47.4B2.
7B.B7.3A84.4B94.7B205.7B11.20B25.15B4.B4.E$12.2A3B2A5B121.4B96.4B47.
4B.8B10.A83.4B96.6B204.4B.4B9.21B26.13B4.2CB3E$13.B.9B122.4B96.4B47.
4B.3B.4B92.4B97.6B203.4B3.4B7.21B28.12B4.2C.E$16.9B122.4B96.4B47.4B5.
4B90.4B21.B75.7B202.4B5.4B5.21B29.18B$18.3B.B2A.A121.4B96.4B47.4B5.4B
88.4B22.2B73.9B200.4B7.5B2.21B30.16B$16.5B.B2AB3A120.4B96.4B47.4B5.4B
86.4B23.3B71.4B.6B198.4B9.22B.5B28.18B$16.2A6.B4.A120.4B96.4B47.4B5.
4B84.4B24.4B69.4B2.7B196.4B10.22B3.4B27.18B$17.A5.2A.3A122.4B96.4B47.
4B5.4B82.4B26.4B67.4B4.B2.4B194.4B12.21B4.4B26.18B$14.3A7.A.A125.4B
96.4B47.4B5.4B80.4B28.4B65.4B9.4B192.4B12.22B5.4B25.18B$14.A9.A.A126.
4B96.4B47.4B5.4B78.4B30.4B63.4B11.4B190.4B8.B3.23B6.3B24.18B$25.A128.
4B96.4B47.4B5.4B76.4B32.4B61.4B13.4B188.4B8.2AB.23B8.2B23.19B$155.4B
96.4B47.4B5.4B74.4B34.4B59.4B15.4B186.4B9.2A25B9.B22.18B.BCE$156.4B
96.4B47.4B5.4B72.4B36.4B57.4B17.4B184.4B11.25B32.19B.BE.E$157.4B96.4B
47.4B5.4B70.4B38.4B55.4B19.4B182.4B12.26B30.5B2.7B2.4B4.E$158.4B96.4B
47.4B5.4B68.4B40.4B53.4B21.4B180.4B14.4B.20B29.5B5.3B4.3B5.2E$159.4B
96.4B47.4B5.4B66.4B42.4B51.4B23.4B178.4B14.4B2.20B28.5B5.3B$160.4B96.
4B47.4B5.4B64.4B44.4B49.4B25.4B176.4B14.4B2.20B3.B24.5B6.4B$161.4B96.
4B47.4B5.4B62.4B46.4B47.4B27.4B174.4B14.4B3.15B3.3B.B2A22.5B7.2B2CB$
162.4B96.4B47.4B5.4B60.4B48.4B45.4B29.4B172.4B14.4B5.12B6.A3B2A21.5B
10.2E$163.4B96.4B47.4B5.4B58.4B50.4B43.4B31.4B170.4B14.4B7.10B6.A.AB.
B21.5B$164.4B96.4B47.4B5.4B56.4B52.4B41.4B33.4B168.4B14.4B8.10B5.A.AB
23.5B$165.4B96.4B47.4B5.4B54.4B54.4B39.4B35.4B166.4B14.4B11.7B6.A25.
5B$166.4B96.4B47.4B5.4B52.4B56.4B37.4B37.4B164.4B14.4B13.4B7.2A24.5B$
167.4B96.4B47.4B5.4B50.4B58.4B35.4B39.4B162.4B14.4B15.3B32.5B$168.4B
96.4B47.4B5.4B48.4B60.4B33.4B41.4B160.4B14.4B17.B32.5B.B$169.4B96.4B
47.4B5.4B46.4B62.4B31.4B36.2D5.4B158.4B14.4B50.5B2.2B$170.4B96.4B47.
4B5.4B44.4B64.4B29.4B36.D2.D5.4B156.4B14.4B50.5B3.3B$171.4B96.4B47.4B
5.4B42.4B66.4B27.4B37.D9.4B154.4B14.4B50.5B4.4B$172.4B96.4B47.4B5.4B
40.4B68.4B25.4B38.D10.4B152.4B14.4B50.5B6.4B$173.4B96.4B47.4B5.4B38.
4B70.4B23.4B39.D11.4B150.4B14.4B50.5B8.3B$174.4B96.4B47.4B5.4B36.4B
72.4B21.4B40.D2.D9.4B148.4B14.4B50.5B10.4B$175.4B96.4B47.4B5.4B34.4B
74.4B19.4B42.2D11.4B146.4B14.4B50.5B13.2A$176.4B96.4B47.4B5.4B32.4B
76.4B17.4B57.4B144.4B14.4B50.5B14.A$177.4B96.4B47.4B5.4B30.4B78.4B15.
4B59.4B142.4B14.4B50.5B16.3A$178.4B96.4B47.4B5.4B28.4B80.4B13.4B61.4B
141.3B14.4B50.5B19.A$179.4B96.4B47.4B5.4B26.4B82.4B11.4B63.4B140.2B
14.4B50.5B$180.4B96.4B47.4B5.4B24.4B84.4B9.4B65.4B139.B14.4B50.5B$
181.4B96.4B47.4B5.4B22.4B86.4B7.4B67.4B152.4B50.5B$182.4B96.4B47.4B5.
4B20.4B88.4B5.4B69.4B150.4B50.5B$183.4B96.4B47.4B5.4B18.4B90.4B3.4B
71.4B148.4B50.5B$184.4B96.4B47.4B5.4B16.4B92.4B.4B73.4B146.4B50.5B$
185.4B96.4B47.4B5.4B14.4B94.7B75.4B144.4B50.5B$186.4B96.4B47.4B5.4B
12.4B96.6B76.4B142.4B50.5B$187.4B96.4B47.4B5.4B10.4B97.6B77.4B140.4B
50.5B$188.4B96.4B47.4B5.4B8.4B97.7B78.4B138.4B50.5B$189.4B96.4B47.4B
5.4B6.4B97.9B78.4B136.4B50.5B$190.4B96.4B47.4B5.4B4.4B97.4B.6B78.4B
134.4B50.5B$191.4B96.4B47.4B5.4B2.4B97.4B2.7B78.4B132.4B50.5B$192.4B
96.4B47.4B5.8B97.4B4.B2.4B78.4B130.4B50.5B$193.4B63.B32.4B47.4B5.6B
97.4B9.4B78.4B128.4B50.5B$194.4B96.4B47.4B5.4B97.4B11.4B78.4B126.4B
50.5B$195.4B96.4B47.4B3.6B95.4B13.4B78.4B124.4B50.5B$196.4B96.4B47.4B
.8B93.4B15.4B78.4B122.4B50.5B$197.4B96.4B47.7B2.4B91.4B17.4B78.4B120.
4B50.5B$198.4B96.4B47.5B4.4B89.4B19.4B78.4B118.4B50.5B$199.4B96.4B46.
5B5.4B87.4B21.4B78.4B116.4B50.5B$200.4B96.4B44.7B5.4B6.2A77.4B23.4B
78.4B114.4B50.5B$201.4B96.4B42.4B.4B5.4B4.B2AB6.4B57.B7.4B25.4B78.4B
112.4B50.5B$202.4B96.4B40.4B3.4B5.4B3.3B6.4B65.4B27.4B78.4B110.4B50.
5B$203.4B96.4B38.4B5.4B5.4B3.B.B4.4B65.4B29.4B78.4B108.4B50.5B$204.4B
96.4B36.4B7.4B5.10B2.4B65.4B31.4B78.4B106.4B50.5B$205.4B96.4B34.4B9.
4B5.14B65.4B33.4B78.4B104.4B50.5B$206.4B96.4B32.4B11.4B5.12B65.4B35.
4B78.4B102.4B50.5B$207.4B96.4B30.4B13.4B5.12B63.4B37.4B78.4B100.4B50.
5B$208.4B96.4B28.4B15.4B5.12B61.4B39.4B78.4B98.4B50.5B$209.4B96.4B26.
4B17.4B3.14B16.A42.4B41.4B78.4B96.4B50.5B$210.4B96.4B24.4B19.4B.17B
13.A.A40.4B35.3D5.4B78.4B94.4B50.5B$211.4B96.4B22.4B21.22B12.A.A39.4B
36.D2.D5.4B78.4B92.4B50.5B$212.4B96.4B20.4B23.14B2A6B10.2A.3A36.4B37.
D2.D6.4B78.4B90.4B50.5B$213.4B96.4B18.4B22.16B2A8B9.B4.A34.4B38.3D8.
4B78.4B88.4B50.5B$214.4B96.4B16.4B23.27B6.B2AB3A34.4B39.D2.D8.4B78.4B
86.4B50.5B$215.4B96.4B14.4B22.2AB.32B2A.A35.4B40.D2.D9.4B78.4B84.4B
50.5B$216.4B96.4B12.4B22.A.AB2.33B36.4B41.D2.D10.4B78.4B82.4B50.5B$
217.4B96.4B10.4B23.A4.32B37.4B57.4B78.4B80.4B50.5B$218.4B96.4B8.4B23.
2A3.4B2.29B34.4B59.4B78.4B78.4B50.5B$219.4B96.4B6.4B28.4B4.28B33.4B
61.4B78.4B76.4B50.5B$220.4B96.4B4.4B28.4B5.22B2A4B32.4B63.4B78.4B74.
4B50.5B$221.4B96.4B2.4B28.4B7.21B2A2B.B2A29.4B65.4B78.4B54.B17.4B50.
5B$222.4B96.8B38.2AB.B.15B.5B.BA.A27.4B67.4B78.4B52.2B16.4B50.5B$223.
4B96.6B38.A.AB2.16B2.3B5.A26.4B69.4B78.4B50.3B15.4B50.5B$224.4B96.4B
39.A6.2B.12B.3B6.2A24.4B71.4B78.4B48.4B14.4B50.5B$225.4B94.6B37.2A10.
11B.B2AB30.4B73.4B78.4B46.4B14.4B50.5B$226.4B92.8B49.9B3.2A30.4B75.4B
78.4B44.4B14.4B50.5B$227.4B90.4B2.4B51.B.3B35.4B77.4B78.4B42.4B14.4B
50.5B$228.4B88.4B4.4B54.2B33.4B79.4B78.4B40.4B14.4B50.5B$229.4B86.4B
6.4B52.BA2B31.4B81.4B78.4B38.4B14.4B50.5B$230.4B84.4B8.4B51.A.A31.4B
83.4B78.4B36.4B14.4B50.5B$231.4B82.4B10.4B51.A31.4B85.4B78.4B34.4B14.
4B50.5B$232.4B80.4B12.4B81.4B87.4B78.4B32.4B14.4B50.5B$233.4B78.4B14.
4B79.4B89.4B78.4B30.4B14.4B50.5B$234.4B76.4B16.4B77.4B91.4B78.4B28.4B
14.4B50.5B$235.4B74.4B18.4B75.4B93.4B78.4B26.4B14.4B50.5B$236.4B72.4B
20.4B73.4B95.4B78.4B24.4B14.4B50.5B$237.4B70.4B22.4B71.4B97.4B78.4B5.
2B15.4B14.4B50.5B$238.4B68.4B24.4B69.4B99.4B78.4B3.4B2A11.4B14.4B50.
5B$239.4B66.4B26.4B67.4B101.4B78.4B.5B2AB9.4B14.4B50.5B$239.5B64.4B
28.4B65.4B103.4B78.13B7.4B7.2A5.4B50.5B$239.6B62.4B30.4B63.4B105.4B
78.12B6.4B8.A5.4B50.5B$238.9B59.4B32.4B61.4B107.4B65.2A11.11B5.5B5.BA
.A4.4B50.5B$238.9B58.4B34.4B59.4B109.4B63.B2AB10.11B4.7B4.B2A4.4B50.
5B$238.10B56.4B36.4B57.4B111.4B63.2B12.11B2.9B.3B5.4B50.5B$237.12B54.
4B38.4B55.4B113.4B61.2B8.31B4.4B50.5B$190.E45.14B52.4B40.4B53.4B115.
4B59.BA2B.3B.33B3.4B50.5B$190.3E33.2E8.15B50.4B42.4B51.4B117.4B58.A.A
39B2.4B50.5B$177.2E3.2E9.E17.E15.E9.15B48.4B44.4B49.4B119.4B58.A.44B
50.5B$176.B2CB.B2CB7.EC15.3E15.E.EB4.18B46.4B46.4B47.4B121.4B54.3A3.
42B50.5B$177.2B2.3B3.B4.4B12.E19.ECB.17B.4B44.4B48.4B45.4B123.4B53.A
5.24B2A15B50.5B$178.3B.3B.4B4.3B11.2E20.18B3.4B42.4B50.4B43.4B125.4B
58.23BABA14B50.5B$170.2E5.7B.13B11.B20.18B4.4B40.4B52.4B41.4B127.4B
56.25BA14B50.5B$171.E5.23B9.3B19.17B.B3.4B38.4B54.4B39.4B129.4B55.40B
49.5B$171.E.EB.19B.8B4.6B16.19BCE3.4B36.4B56.4B37.4B131.4B53.41B48.5B
$172.ECB.29B2.10B11.19B.BCE4.4B34.4B58.4B35.4B133.4B50.43B47.5B$174.
44B3.2B2.22B2.B6.4B32.4B60.4B33.4B135.4B48.22B2.19B47.5B$174.37B2C15B
D19B9.4B30.4B62.4B31.4B137.4B47.21B4.18B46.5B$174.37B2C15BDBD4B.12B
10.4B28.4B64.4B29.4B139.4B44.22B6.17B45.5B$175.53B3D4B2.11B11.4B4.B
21.4B66.4B27.4B141.4B42.22B8.2B2.11B45.5B$177.53BD4B.12B12.4B2.3B19.
4B68.4B25.4B143.4B42.20B14.9B45.5B$175.59B3.7B.3B2C11.9B5.2A10.4B70.
4B23.4B145.4B42.18B14.10B44.5B$175.EC3.25B4.13B.4B10.7B3.C2BC11.9B4.A
10.4B72.4B21.4B147.4B42.17B13.4B5.2A43.5B$176.E3.20B4.B4.7B.B4.4B12.
6B3.CBCB12.8B.BA.A9.4B74.4B19.4B149.4B42.17B11.4B6.A43.5B$173.3E6.15B
7.2E15.4B13.7B3.C4B2.4B3.9B.B2A9.4B76.4B17.4B151.4B41.17B10.4B8.3A39.
5B$173.E8.11B12.E14.4B14.6B6.4B.5B2.11B10.4B78.4B15.4B153.4B42.16B8.
4B11.A38.5B$181.13B8.3E14.4B14.6B7.10B2.11B9.4B80.4B13.4B155.4B42.2B
2.6B.5B6.4B50.5B$180.15B7.E15.4B15.6B9.21B8.4B82.4B11.4B157.4B44.6B4.
4B4.4B50.5B$180.16B21.4B15.8B9.19B8.4B84.4B9.4B159.4B42.6B6.4B2.4B50.
5B$180.17B19.4B17.6B8.B2.19B6.4B86.4B7.4B161.4B40.6B8.8B50.5B$180.16B
19.4B18.7B5.26B3.4B88.4B5.4B163.4B38.8B8.6B50.5B$182.13B19.4B17.41B.
4B90.4B3.4B165.4B36.4B.2B2AB8.4B50.5B$182.3B.2B2C5B18.4B16.B.2B2C13B
2A26B92.4B.4B167.4B34.4B4.2A8.6B48.5B$180.4B2.2B2C3B19.4B16.EC3B2C13B
2A25B94.7B169.4B32.4B14.8B46.5B$180.EC3.8B18.4B17.EC44B96.6B170.4B30.
4B14.4B2.4B44.5B$181.E4.8B16.4B19.46B95.6B171.4B28.4B14.4B4.4B42.5B$
178.3E5.8B15.4B18.5B2.B2.2B2.35B93.7B172.4B26.4B14.4B6.4B40.5B$178.E
8.7B14.4B19.EC4.3B7.4B2.7B2.19B91.9B172.4B24.4B14.4B8.4B38.5B$187.7B
13.4B21.E3.B2CB13.6B3.20B89.4B.6B172.4B5.2B15.4B14.4B10.4B36.5B$179.E
7.6B13.4B19.3E5.2E16.3B5.14B2.4B87.4B2.7B172.4B3.4B2A11.4B14.4B12.4B
34.5B$178.E.E6.6B12.4B20.E26.B4.3B.9B6.4B85.4B4.B2.4B172.4B.5B2AB9.4B
14.4B14.4B32.5B$178.E.E6.5B12.4B53.2A3.8B7.4B83.4B9.4B172.13B7.4B7.2A
5.4B16.4B30.5B$176.3E.2E4.6B11.4B55.A2.8B9.4B81.4B11.4B172.12B6.4B8.A
5.4B18.4B28.5B$175.E4.B6.6B9.4B53.3A5.4B12.4B79.4B13.4B159.2A11.11B5.
5B5.BA.A4.4B20.4B26.5B$176.3EB2CB3.7B8.4B54.A7.2A15.4B77.4B15.4B157.B
2AB10.11B4.7B4.B2A4.4B22.4B24.5B$178.E.2CB.8B8.4B64.A16.4B75.4B17.4B
157.2B12.11B2.9B.3B5.4B24.4B22.5B$182.10B8.3B62.3A18.4B73.4B19.4B155.
2B8.31B4.4B26.4B20.5B$182.6B2C3B5.ECB64.A21.4B71.4B21.4B153.BA2B.3B.
33B3.4B28.4B18.5B$182.6B2C2B5.E.EB87.4B69.4B23.4B152.A.A39B2.4B30.4B
16.5B$182.10B5.E91.4B67.4B25.4B152.A.44B32.4B14.5B$181.11B2.BE.E92.4B
65.4B27.4B148.3A3.42B34.4B12.5B$181.12B.BCE94.4B63.4B29.4B147.A5.24B
2A15B36.4B10.5B$180.15B97.4B61.4B31.4B152.23BABA14B38.4B8.5B$179.16B
98.4B59.4B33.4B150.25BA14B40.4B6.5B$176.2B.16B99.4B57.4B35.4B149.40B
41.4B4.5B$175.EC18B100.4B55.4B37.4B147.41B42.4B2.5B$175.ECB.17B100.4B
53.4B39.4B144.43B43.9B$176.B.4B.8B2.4B100.4B51.4B41.4B142.22B2.19B45.
7B$183.7B4.4B100.4B49.4B36.2D5.4B141.21B4.18B46.5B$184.6B5.4B100.4B
47.4B36.3D6.4B138.22B6.17B45.6B$186.4B6.4B100.4B45.4B38.2D7.4B136.22B
8.2B2.11B45.8B$188.3BE5.4B100.4B43.4B39.2D8.4B136.20B14.9B45.10B$189.
BC.E5.4B100.4B41.4B40.2D9.4B136.18B14.10B44.5B2.3B$190.C.E6.4B100.4B
39.4B41.2D10.4B136.17B13.4B5.2A43.5B$191.E8.4B100.4B37.4B41.4D10.4B
136.17B11.4B6.A43.5B$192.3E6.4B100.4B35.4B57.4B135.17B10.4B8.3A39.5B$
194.E7.4B100.4B33.4B59.4B136.16B8.4B11.A38.5B$203.4B100.4B31.4B61.4B
136.2B2.6B.5B6.4B50.5B$204.4B100.4B29.4B63.4B138.6B4.4B4.4B50.5B$205.
4B100.4B27.4B65.4B136.6B6.4B2.4B50.5B$206.4B100.4B25.4B67.4B134.6B8.
8B50.5B$207.4B100.4B23.4B69.4B132.8B8.6B50.5B$208.4B100.4B21.4B71.4B
130.4B.2B2AB8.4B50.5B$209.4B100.4B19.4B73.4B128.4B4.2A8.6B48.5B$210.
4B100.4B17.4B75.4B144.8B46.5B$211.4B100.4B15.4B77.4B142.4B2.4B44.5B$
212.4B100.4B13.4B79.4B140.4B4.4B42.5B$213.4B100.4B11.4B81.4B138.4B6.
4B40.5B$214.4B100.4B9.4B83.4B136.4B8.4B38.5B$215.4B100.4B7.4B85.4B
134.4B10.4B36.5B$216.4B100.4B5.4B87.4B132.4B12.4B34.5B$217.4B100.4B3.
4B89.4B130.4B14.4B32.5B$218.4B100.4B.4B91.4B128.4B16.4B30.5B$219.4B
100.7B93.4B126.4B18.4B28.5B$220.4B100.6B94.4B124.4B20.4B26.5B$221.4B
99.6B95.4B122.4B22.4B24.5B$222.4B97.7B96.4B120.4B24.4B22.5B$223.4B95.
9B96.4B118.4B26.4B20.5B$224.4B93.4B.6B96.4B116.4B28.4B18.5B$225.4B91.
4B2.7B96.4B114.4B30.4B16.5B$226.4B89.4B4.B2.4B96.4B112.4B32.4B14.5B$
227.4B87.4B9.4B96.4B110.4B34.4B12.5B$228.4B85.4B11.4B96.4B108.4B36.4B
10.5B$229.4B83.4B13.4B96.4B106.4B38.4B8.5B$230.4B81.4B15.4B96.4B104.
4B40.4B6.5B$231.4B79.4B17.4B96.4B102.4B42.4B4.5B$232.4B77.4B19.4B96.
4B100.4B44.4B2.5B$233.4B75.4B21.4B96.4B98.4B46.9B$234.4B73.4B23.4B96.
4B96.4B48.7B$235.4B71.4B25.4B96.4B94.4B50.5B$236.4B69.4B27.4B96.4B92.
4B50.6B$237.4B67.4B29.4B96.4B72.B17.4B50.8B$238.4B65.4B31.4B96.4B70.
2B16.4B50.10B$239.4B63.4B33.4B96.4B68.3B15.4B50.5B2.3B$240.4B61.4B35.
4B96.4B66.4B14.4B50.5B$241.4B59.4B37.4B96.4B64.4B14.4B50.5B$242.4B57.
4B39.4B96.4B62.4B14.4B50.5B$243.4B55.4B34.2D5.4B96.4B60.4B14.4B50.5B$
244.4B53.4B34.D2.D5.4B96.4B58.4B14.4B50.5B$245.4B51.4B38.D6.4B96.4B
56.4B14.4B50.5B$246.4B49.4B38.D8.4B96.4B54.4B14.4B50.5B$247.4B47.4B
38.D10.4B96.4B52.4B14.4B50.5B$248.4B45.4B38.D12.4B96.4B50.4B14.4B50.
5B$249.4B43.4B39.4D10.4B96.4B48.4B14.4B50.5B$250.4B41.4B55.4B96.4B46.
4B14.4B50.5B$251.4B39.4B57.4B96.4B44.4B14.4B50.5B$252.4B37.4B59.4B96.
4B42.4B14.4B50.5B$253.4B35.4B61.4B96.4B40.4B14.4B50.5B$254.4B33.4B63.
4B96.4B38.4B14.4B50.5B$255.4B31.4B65.4B96.4B36.4B14.4B50.5B$256.4B29.
4B67.4B96.4B34.4B14.4B50.5B$257.4B27.4B69.4B96.4B32.4B14.4B50.5B$258.
4B25.4B71.4B96.4B30.4B14.4B50.5B$259.4B23.4B73.4B96.4B28.4B14.4B50.5B
$260.4B21.4B75.4B96.4B26.4B14.4B50.5B$261.4B19.4B77.4B96.4B24.4B14.4B
50.5B$262.4B17.4B79.4B96.4B5.2B15.4B14.4B50.5B$263.4B15.4B81.4B96.4B
3.4B2A11.4B14.4B50.5B$264.4B13.4B83.4B96.4B.5B2AB9.4B14.4B50.5B$265.
4B11.4B85.4B96.13B7.4B7.2A5.4B50.5B$266.4B9.4B87.4B96.12B6.4B8.A5.4B
50.5B$267.4B7.4B89.4B83.2A11.11B5.5B5.BA.A4.4B50.5B$268.4B5.4B91.4B
81.B2AB10.11B4.7B4.B2A4.4B50.5B$269.4B3.4B93.4B81.2B12.11B2.9B.3B5.4B
50.5B$270.4B.4B95.4B79.2B8.31B4.4B50.5B$271.7B97.4B77.BA2B.3B.33B3.4B
50.5B$272.6B98.4B76.A.A39B2.4B50.5B$272.6B99.4B76.A.44B50.5B$271.7B
100.4B72.3A3.42B50.5B$270.9B100.4B71.A5.24B2A15B50.5B$269.4B.6B100.4B
76.23BABA14B50.5B$268.4B2.7B100.4B74.25BA14B50.5B$267.4B4.B2.4B100.4B
73.40B49.5B$266.4B9.4B100.4B71.41B48.5B$265.4B11.4B100.4B68.43B47.5B$
264.4B13.4B100.4B66.22B2.19B47.5B$263.4B15.4B100.4B65.21B4.18B46.5B$
262.4B17.4B100.4B62.22B6.17B45.5B$261.4B19.4B100.4B60.22B8.2B2.11B45.
5B$260.4B21.4B100.4B60.20B14.9B45.5B$259.4B23.4B100.4B60.18B14.10B44.
5B$258.4B25.4B100.4B60.17B13.4B5.2A43.5B$257.4B27.4B100.4B60.17B11.4B
6.A43.5B$256.4B29.4B100.4B59.17B10.4B8.3A39.5B$255.4B31.4B100.4B60.
16B8.4B11.A38.5B$254.4B33.4B100.4B60.2B2.6B.5B6.4B50.5B$253.4B35.4B
100.4B62.6B4.4B4.4B50.5B$252.4B37.4B100.4B60.6B6.4B2.4B50.5B$251.4B
39.4B100.4B58.6B8.8B50.5B$250.4B41.4B100.4B56.8B8.6B50.5B$249.4B43.4B
100.4B54.4B.2B2AB8.4B50.5B$248.4B36.D2.D5.4B100.4B52.4B4.2A8.6B48.5B$
247.4B37.D2.D6.4B100.4B50.4B14.8B46.5B$246.4B38.D2.D7.4B100.4B48.4B
14.4B2.4B44.5B$245.4B39.4D8.4B100.4B64.4B4.4B42.5B$244.4B43.D9.4B100.
4B62.4B6.4B40.5B$243.4B44.D10.4B100.4B60.4B8.4B38.5B$242.4B45.D11.4B
100.4B58.4B10.4B36.5B$241.4B59.4B100.4B56.4B12.4B34.5B$240.4B61.4B
100.4B54.4B14.4B32.5B$239.4B63.4B100.4B52.4B16.4B30.5B$233.B4.4B16.A
11.2A35.4B100.4B50.4B18.4B28.5B$232.3B2.4B16.A.A9.B2AB35.4B100.4B48.
4B20.4B26.5B$224.2A5.9B17.A.A9.3B37.4B100.4B46.4B22.4B24.5B$225.A4.9B
12.2A2.3A.2A9.B.B37.4B100.4B26.4B14.4B24.4B22.5B$225.A.AB.8B13.A2.A4.
B8.5B38.4B100.4B24.4B14.4B26.4B20.5B$226.2AB.9B3.4B2.BA.A3.3AB2A6.6B
39.4B100.4B5.2B15.4B14.4B28.4B18.5B$228.11B2.5B2.B2A6.AB2A4.8B40.4B
100.4B3.4B2A11.4B14.4B30.4B16.5B$228.11B2.8B9.14B42.4B100.4B.5B2AB9.
4B14.4B32.4B14.5B$228.21B10.15B41.4B100.13B7.4B7.2A5.4B34.4B12.5B$
229.19B12.15B41.4B100.12B6.4B8.A5.4B36.4B10.5B$228.19B2.B10.15B42.4B
87.2A11.11B5.5B5.BA.A4.4B38.4B8.5B$226.26B5.B.17B42.4B85.B2AB10.11B4.
7B4.B2A4.4B40.4B6.5B$225.51B43.4B85.2B12.11B2.9B.3B5.4B42.4B4.5B$226.
21B2A13B2A13B43.4B83.2B8.31B4.4B44.4B2.5B$224.23B2A13B2A14B43.4B81.BA
2B.3B.33B3.4B46.9B$224.49B3.B2A43.4B80.A.A39B2.4B48.7B$225.47B4.A2.A
43.4B80.A.44B50.5B$225.31B2.2B2.B3.6B5.2A.A43.4B76.3A3.42B50.6B$227.
12B2.7B2.4B13.6B7.A44.4B75.A5.24B2A15B50.8B$228.11B3.6B17.9B6.2A44.4B
80.23BABA14B50.10B$231.7B5.3B19.2A4.4B52.4B78.25BA14B50.5B2.3B$232.4B
.3B4.B21.A5.4B52.4B77.40B49.5B$233.2B3.2A23.3A7.4B52.4B75.41B48.5B$
232.4B2.A24.A10.4B52.4B72.43B47.5B$232.B2AB3.3A33.4B9.2D41.4B70.22B2.
19B47.5B$233.2A6.A34.4B7.D2.D41.4B69.21B4.18B46.5B$277.4B6.D2.D42.4B
66.22B6.17B45.5B$278.4B5.D2.D43.4B64.22B8.2B2.11B45.5B$279.4B4.D2.D
44.4B64.20B14.9B45.5B$280.4B3.D2.D45.4B64.18B14.10B44.5B$281.4B3.2D
47.4B64.17B13.4B5.2A43.5B$282.4B52.4B64.17B11.4B6.A43.5B$283.4B52.4B
63.17B10.4B8.3A39.5B$284.4B52.4B64.16B8.4B11.A38.5B$285.4B52.4B64.2B
2.6B.5B6.4B50.5B$286.4B52.4B66.6B4.4B4.4B50.5B$287.4B52.4B64.6B6.4B2.
4B50.5B$288.4B15.A36.4B62.6B8.8B50.5B$289.4B12.3A37.4B60.8B8.6B50.5B$
290.4B10.A41.4B58.4B.2B2AB8.4B50.5B$291.4B9.2A41.4B56.4B4.2A8.6B48.5B
$292.4B6.4B42.4B54.4B14.8B46.5B$293.4B4.2AB45.4B52.4B14.4B2.4B44.5B$
294.4B3.A.AB.2B42.4B50.4B14.4B4.4B42.5B$295.4B3.2A.4B2A40.4B48.4B14.
4B6.4B40.5B$296.4B2.7B2A2B.B5.2A30.4B46.4B14.4B8.4B38.5B$297.4B2.13B
4.A32.4B44.4B14.4B10.4B36.5B$298.4B.15BA.A33.4B42.4B14.4B12.4B34.5B$
299.19B2A35.4B58.4B14.4B32.5B$300.4BD13B38.4B56.4B16.4B30.5B$298.B.3B
DBD12B39.4B54.4B18.4B28.5B$297.2AB.2BDBD12B40.4B52.4B20.4B26.5B$297.
2A5BD13B41.4B50.4B22.4B24.5B$298.2B.17B42.4B48.4B24.4B22.5B$301.16B
44.4B46.4B26.4B20.5B$301.4B.7B.2B46.4B44.4B28.4B18.5B$300.4B3.5B51.4B
42.4B30.4B16.5B$299.4B5.4B52.4B5.2B33.4B32.4B14.5B$298.4B6.5B52.4B3.
4B2A29.4B34.4B12.5B$297.4B8.5B52.4B.5B2AB27.4B36.4B10.5B$296.4B11.4B
52.13B7.4B7.2A5.4B38.4B8.5B$295.4B13.4B52.12B6.4B8.A5.4B40.4B6.5B$
294.4B15.4B39.2A11.11B5.5B5.BA.A4.4B42.4B4.5B$293.4B17.4B37.B2AB10.
11B4.7B4.B2A4.4B44.4B2.5B$292.4B19.4B37.2B12.11B2.9B.3B5.4B46.9B$291.
4B21.4B35.2B8.31B4.4B48.7B$290.4B23.4B33.BA2B.3B.33B3.4B50.5B$289.4B
25.4B32.A.A39B2.4B50.6B$288.4B27.4B32.A.44B50.8B$287.4B29.4B28.3A3.
42B50.10B$286.4B31.4B27.A5.24B2A15B50.5B2.3B$285.4B33.4B32.23BABA14B
50.5B$284.4B35.4B30.25BA14B50.5B$283.4B37.4B29.40B49.5B$282.4B39.4B
27.41B48.5B$281.4B41.4B24.43B47.5B$280.4B43.4B22.22B2.19B47.5B$279.4B
45.4B21.21B4.18B46.5B$278.4B47.4B18.22B6.17B45.5B$277.4B49.4B16.22B8.
2B2.11B45.5B$276.4B51.4B16.20B14.9B45.5B$275.4B53.4B16.18B14.10B44.5B
$259.3D12.4B55.4B16.17B13.4B5.2A43.5B$259.D2.D10.4B27.2A11.A16.4B4.B
11.17B11.4B6.A43.5B$259.D2.D9.4B27.B2AB9.A.A16.4B2.3B10.17B10.4B8.3A
39.5B$259.D2.D8.4B29.3B9.A.A17.9B5.2A4.16B8.4B11.A38.5B$259.D2.D7.4B
29.B.B9.2A.3A2.2A12.9B4.A6.2B2.6B.5B6.4B50.5B$259.D2.D6.4B30.5B8.B4.A
2.A13.8B.BA.A9.6B4.4B4.4B50.5B$259.3D6.4B31.6B6.2AB3A3.A.AB2.4B3.9B.B
2A9.6B6.4B2.4B50.5B$267.4B32.8B4.2A.A6.2AB2.5B2.11B10.6B8.8B50.5B$
266.4B34.13B10.8B2.11B9.8B8.6B50.5B$265.4B33.15B10.21B8.4B.2B2AB8.4B
50.5B$264.4B33.15B12.19B8.4B4.2A8.6B48.5B$263.4B34.15B10.B2.19B6.4B
14.8B46.5B$262.4B34.17B.B5.26B3.4B14.4B2.4B44.5B$261.4B35.51B.4B14.4B
4.4B42.5B$260.4B35.13B2A13B2A21B.4B14.4B6.4B40.5B$259.4B35.14B2A13B2A
25B14.4B8.4B38.5B$258.4B35.2AB3.50B14.4B10.4B36.5B$257.4B35.A2.A4.48B
14.4B12.4B34.5B$256.4B35.A.2A5.6B3.B2.2B2.33B12.4B14.4B32.5B$255.4B
36.A7.6B13.4B2.7B2.16B11.4B16.4B30.5B$254.4B36.2A6.9B17.6B3.16B10.4B
18.4B28.5B$253.4B44.4B4.2A19.3B5.14B10.4B20.4B26.5B$252.4B44.4B5.A21.
B4.3B.9B12.4B22.4B24.5B$251.4B32.2D10.4B7.3A23.2A3.8B11.4B24.4B22.5B$
250.4B32.D2.D8.4B10.A24.A6.4B11.4B26.4B20.5B$249.4B33.D10.4B33.3A5.4B
12.4B28.4B18.5B$248.4B34.D9.4B34.A7.2A13.4B30.4B16.5B$247.4B35.D8.4B
44.A12.4B32.4B14.5B$246.4B36.D2.D4.4B42.3A12.4B34.4B12.5B$245.4B38.2D
4.4B43.A13.4B36.4B10.5B$244.4B44.4B57.4B38.4B8.5B$243.4B44.4B57.4B40.
4B6.5B$242.4B44.4B57.4B42.4B4.5B$241.4B44.4B57.4B44.4B2.5B$240.4B44.
4B57.4B46.9B$239.4B44.4B57.4B48.7B$238.4B44.4B57.4B35.A9.A4.5B$237.4B
44.4B57.4B36.3A5.3A3.6B$236.4B44.4B57.4B40.A3.A5.8B$235.4B44.4B57.4B
40.2A.B.2A3.10B$234.4B44.4B57.4B36.A4.7B2.5B2.3B$233.4B44.4B57.4B37.
3A4.3B3.5B$232.4B44.4B57.4B41.A2.11B$231.4B44.4B57.4B41.2A2.10B$230.
4B44.4B57.4B42.3B.9B$229.4B44.4B57.4B45.11B$228.4B44.4B57.4B45.12B$
227.4B44.4B57.4B46.10B.B2A$226.4B44.4B57.4B48.8B2.BA.A$225.4B44.4B57.
4B48.8B6.A$224.4B44.4B57.4B50.8B5.2A$223.4B44.4B57.4B50.9B$222.4B44.
4B57.4B50.11B$221.4B44.4B57.4B50.12B$220.4B44.4B57.4B51.12B$219.4B44.
4B57.4B51.12B$218.4B44.4B57.4B51.10B.4B$217.4B44.4B57.4B51.10B4.2A$
216.4B44.4B57.4B51.11B4.A$215.4B44.4B57.4B51.4B.6B6.3A$214.4B44.4B57.
4B51.4B.7B8.A$213.4B44.4B57.4B51.4B.8B$212.4B44.4B57.4B51.4B.8B$211.
4B44.4B57.4B51.4B.9B$210.4B44.4B57.4B51.4B.4B.6B$209.4B44.4B57.4B51.
4B.4B.7B$208.4B44.4B57.4B51.4B.4B2.6B$207.4B44.4B57.4B51.4B.4B3.6B$
206.4B44.4B57.4B51.4B.4B4.6B$205.4B44.4B57.4B51.4B.4B4.8B$204.4B44.4B
57.4B51.4B.4B6.8B$203.4B44.4B57.4B51.4B.4B6.9B$202.4B44.4B57.4B51.4B.
4B7.9B$201.4B44.4B57.4B51.4B.4B8.10B$200.4B44.4B57.4B51.4B.4B9.5B2A3B
$199.4B44.4B57.4B51.4B.4B10.5B2A4B3.2A$198.4B44.4B57.4B51.4B.4B11.11B
3.A$197.4B44.4B57.4B51.4B.4B12.12BA.A$196.4B44.4B57.4B51.4B.4B15.8B2.
2A4.2A$195.4B44.4B57.4B51.4B.4B10.2A4.7B9.A$194.4B44.4B57.4B51.4B.4B
12.A4.6B7.BA.A$193.4B44.4B57.4B51.4B.4B13.A.AB.6B3.3B.B2A13.2A$192.4B
44.4B57.4B51.4B.4B15.2AB.14B14.B2AB$191.4B44.4B57.4B51.4B.4B18.16B15.
2B$190.4B44.4B57.4B51.4B.4B20.14B17.2B3.B$189.4B44.4B57.4B51.4B.4B20.
16B15.4B.B2A$188.4B44.4B57.4B51.4B.4B21.18B11.8B2A$187.4B44.4B57.4B
51.4B.4B23.20B2.2B2.6B2AB.B$186.4B44.4B57.4B51.4B.4B25.31B2A$185.4B
44.4B57.4B51.4B3.2B3.B23.7B.24B$184.4B44.4B57.4B51.4B4.3B.B2A22.6B2.
28B$183.4B44.4B57.4B51.4B6.A3B2A21.6B3.28B$182.4B44.4B57.4B51.4B6.A.A
B.B22.4B6.26B2A$181.4B44.4B57.4B51.4B6.A.AB25.2B2AB12.4B.14B2A$180.4B
44.4B57.4B51.4B7.A26.2AB.2A14.4B2.11B.B$179.4B44.4B57.4B51.4B7.2A25.A
.AB18.4B2.10B$178.4B44.4B57.4B51.4B35.A22.14B$177.4B44.4B57.4B51.4B
35.2A23.14B$176.4B44.4B57.4B51.4B61.13B$175.4B44.4B57.4B51.4B62.13B$
174.4B44.4B57.4B51.4B63.8B.2B$173.4B44.4B57.4B51.4B64.8B$172.4B44.4B
32.2A23.4B51.4B65.9B$171.4B44.4B34.A22.4B51.4B66.10B$170.4B44.4B35.A.
AB18.4B51.4B66.7B.4B$169.4B44.4B37.2AB.2A14.4B19.A31.4B66.8B2.4B$168.
4B44.4B40.2B2AB12.4B.3B.B12.3A15.A9.A4.4B66.8B4.4B$167.4B44.4B41.4B6.
18B10.A18.3A5.3A3.4B67.8B5.4B$166.4B44.4B42.6B3.16B2A2B5.B3.2A20.A3.A
5.4B66.2AB2.6B5.4B$165.4B44.4B44.6B2.16B2A2B3.8B19.2A.B.2A3.4B66.A.AB
.7B6.4B$164.4B44.4B45.7B.20B.8B21.7B2.4B67.A4.6B8.4B$163.4B44.4B45.
38B23.3B3.4B67.2A4.8B4.B2.5B$162.4B44.4B45.20B2.2B.15B21.5B.4B75.B2A
6B.11B$161.4B44.4B45.18B8.17B19.9B75.2B2A17B2A$160.4B44.4B46.16B11.
19B2.2B3.2B6.9B77.18B.B2A$159.4B44.4B48.14B12.42B79.17B2.B$158.4B44.
4B48.16B12.7B.32B83.13B$157.4B44.4B47.2AB.14B11.25B2A14B82.12B$156.4B
44.4B47.A.AB.6B3.3B.B2A8.26B2A16B80.10B$155.4B44.4B48.A4.6B7.BA.A8.8B
2.27B2A4B79.11B$154.4B44.4B48.2A4.7B9.A8.6B11.4B.3B.2B.7BA2BA4B78.7B.
2B$153.4B44.4B55.8B2.2A4.2A8.5B12.4B6.4B.B.2B2AB2.B2A76.11B$152.4B44.
4B54.12BA.A13.4B14.4B4.4B4.5B2.BA.A76.11B$151.4B44.4B55.11B3.A14.3B
15.4B2.4B7.2B6.A76.11B$150.4B44.4B56.5B2A4B3.2A11.4B17.8B6.4B6.2A75.
11B$149.4B44.4B57.5B2A3B17.2A20.6B7.2A83.2AB2.8B$148.4B44.4B58.10B18.
A21.4B9.A82.A.AB3.7B$195.4B59.9B16.3A21.6B5.3A83.A6.7B$194.4B60.9B16.
A22.8B4.A84.2A7.6B$193.4B62.8B38.4B2.4B97.7B$192.4B62.8B38.4B4.4B96.
8B$191.4B64.6B38.4B6.4B96.8B$190.4B59.2A4.6B37.4B8.4B95.8B$189.4B61.A
4.6B36.4B10.4B93.6B2.B2A$188.4B62.A.AB.7B34.4B12.4B77.A14.7B.BA.A$
187.4B64.2AB2.6B33.4B14.4B76.3A13.6B4.A$186.4B67.8B33.4B16.4B78.A5.B
4.8B4.2A$185.4B68.8B32.4B18.4B76.2A3.4B.6B2AB$184.4B70.8B30.4B20.4B
75.16B2A2B$259.7B8.A20.4B22.4B76.17B$260.6B6.3A19.4B24.4B74.17B$260.
7B4.A21.4B26.4B74.13B$260.7B4.2A19.4B28.4B75.12B$260.8B.4B18.4B30.4B
76.10B$260.11B19.4B32.4B75.11B$260.12B17.4B34.4B75.2B.7B$260.12B16.4B
36.4B74.11B$261.11B15.4B38.4B72.11B$264.9B13.4B40.4B71.11B$263.10B.2B
9.4B42.4B70.11B$252.3B4.B.16B7.4B44.4B69.8B2.B2A$252.28B3.4B46.4B68.
7B3.BA.A$251.2A33B48.4B67.7B6.A$251.2A32B50.4B66.6B7.2A$252.B.30B52.
4B64.7B$254.29B54.4B62.8B$256.25B57.4B60.8B$257.B5.17B59.4B58.9B$266.
14B60.4B56.4B.6B$266.14B61.4B54.4B.7B$267.2B4.3B66.4B52.4B2.6B$266.2B
6.B68.4B50.4B3.6B$265.B2AB75.4B48.4B4.6B$266.2A77.4B46.4B4.8B$346.4B
44.4B6.8B$347.4B42.4B6.9B$348.4B40.4B7.9B$349.4B38.4B8.10B$350.4B36.
4B9.5B2A3B$351.4B34.4B10.5B2A4B3.2A$352.4B32.4B11.11B3.A$353.4B30.4B
12.12BA.A$354.4B28.4B15.8B2.2A$355.4B26.4B16.7B$356.4B24.4B17.6B$357.
4B22.4B14.2A2.6B$358.4B20.4B14.A.A9B$359.4B18.4B15.A3.9B$360.4B16.4B
15.2A3.9B$361.4B15.3B21.9B$362.4B12.4B22.9B$363.4B11.2A23.11B$364.4B
11.A23.11B$365.4B7.3A24.12B$366.4B5.A21.B4.14B$367.4B4.2A19.3B3.10B.
4B$360.2A6.9B17.6B2.15B$361.A7.6B13.4B2.7B.13B.B2A$361.A.2A5.6B3.B2.
2B2.29B.BA.A$362.A2.A4.45B4.A$363.2AB3.46B4.2A$364.14B2A13B2A21B$365.
13B2A13B2A21B$366.51B$366.17B.B5.26B$367.15B10.B2.20B$367.15B12.20B.B
.B$368.13B12.24B2A$370.13B10.24B2A$369.8B4.2A.A6.2AB2.5B2.12B.2B$369.
6B6.2AB3A3.A.AB2.4B3.13B$369.5B8.B4.A2.A14.11B.B$369.B.B9.2A.3A2.2A
14.12B2A$370.3B9.A.A20.10B.B2A$369.B2AB9.A.A18.2AB.6B4.B$370.2A11.A
18.A.AB.4B$402.A5.5B$401.2A8.2A$411.A$412.3A$414.A!
I'm most of the way through building seeds of destruction for this 6/1 ECCA so that it can replace the 6/3 ECCA that's currently in the repository.

I'm curious how you propose to improve upon the encoding efficiency, because 6/1 is already so close to Shannon-optimality. Unless you're thinking of somehow taking advantage of the fact that there can be multiple equivalent glider salvos (as you do in the DBCA, for example by making it easier to fire p1 gliders than p2 gliders).

There is of course the orthogonal question of whether the ECCA's circuitry itself could be cheaper whilst supporting the same (or equivalent) encoding. The only part that I find unsatisfying is the reset circuit in the far south (involving a Silver reflector and another Herschel track reflector, just to produce two synchronised NE-directed gliders); hopefully this can be replaced with something much simpler.
There was a post later with move1 in new direction in each long (fire) cycle, but it used Silver reflectors technology as it was required for other tasks. That has better packing so this improves pattern dependent portion of the RCT15 so improves assymptotic behaviour rather to reducing the biggest ever multiplication constant. I would prefer to use this interfece, but I did not have time to work on it yet.
calcyman wrote: January 27th, 2023, 8:57 am
AlbertArmStain wrote: January 26th, 2023, 3:57 pm The ECCA could have data even more compressed by using something like a 3-to-8 line decoder, but it only uses two (maybe even one) lines Instead.
No, it really couldn't. 'Compression' in the context of the ECCA refers to minimising the average number of bits to encode the gliders in a typical slow salvo (the salvo produced by the ECCA in the RCT15 project being a reasonable benchmark). The 6/1 ECCA with move-after-reverse has a ratio of 6.82 bits/glider, which is only 2% worse than the Shannon entropy of 6.69 bits/glider. To clarify, the only way to beat the Shannon entropy is to have a much more complicated construction arm with an internal state that persists between glider emissions (for example, if you attached an LZMA decompressor to the input of the ECCA so that repeated sequences of bits can be compressed).

To be completely specific, the 27794-glider salvo encodes as:

ECCA: 189683 bits
ECCA+LZMA: 115584 bits
ECCA+PAQ8: 111392 bits

but an LZMA decompressor would be very large and complicated.
I think the ECCA you are considerig does not have the move-after-reverse.
User avatar
apg
Moderator
Posts: 3007
Joined: June 1st, 2009, 4:32 pm

Re: Binary slow salvos

Post by apg »

Hippo.69 wrote: May 3rd, 2023, 7:01 pm
calcyman wrote: May 3rd, 2023, 6:41 pm Could you please explain this in more detail? At the moment there's a 6/1 ECCA with a population of 4242 including the circuit to reflect gliders of a particular colour; this should be the baseline to beat:
There was a post later with move1 in new direction in each long (fire) cycle, but it used Silver reflectors technology as it was required for other tasks. That has better packing so this improves pattern dependent portion of the RCT15 so improves assymptotic behaviour rather to reducing the biggest ever multiplication constant. I would prefer to use this interfece, but I did not have time to work on it yet.
Oh, right, you mean the move-after-reverse optimisation from this post? viewtopic.php?f=2&t=5711&start=75#p154297

Yes, it's definitely a more elegant encoding (zero redundancy); the awkwardness is trying to make a cheap FSM for this. We can't easily add move-after-reverse to the 4242-cell design, because that design has the reverse instruction earlier in the cycle than the fire instruction, whereas we need it to be later in the cycle. The current ECCA with move-after-reverse (which is about 1000 cells larger because of the huge FSM) solves this by having the fire instruction happen in the middle of the cycle; porting this over to the bistable-switch-based technology is nontrivial (but possible, thanks to the single-block logic gates).

If I remember correctly, for a 6/1 ECCA the move-after-reverse optimisation improves compression by roughly 2%.
What do you do with ill crystallographers? Take them to the mono-clinic!
User avatar
Hippo.69
Posts: 683
Joined: July 14th, 2020, 7:35 pm
Contact:

Re: Binary slow salvos

Post by Hippo.69 »

calcyman wrote: May 3rd, 2023, 7:25 pm Oh, right, you mean the move-after-reverse optimisation from this post? viewtopic.php?f=2&t=5711&start=75#p154297

Yes, it's definitely a more elegant encoding (zero redundancy); the awkwardness is trying to make a cheap FSM for this. We can't easily add move-after-reverse to the 4242-cell design, because that design has the reverse instruction earlier in the cycle than the fire instruction, whereas we need it to be later in the cycle. The current ECCA with move-after-reverse (which is about 1000 cells larger because of the huge FSM) solves this by having the fire instruction happen in the middle of the cycle; porting this over to the bistable-switch-based technology is nontrivial (but possible, thanks to the single-block logic gates).

If I remember correctly, for a 6/1 ECCA the move-after-reverse optimisation improves compression by roughly 2%.
Oh exactly ... I have not remembered it was your post :). Yep, would not constrained myself on the 4242 base ... but I would at least think about it.

How the p256 ECCA design looks like? Is seed of destruction for a p256 circuit much more complicted? It can redirect its gliders to achieve correct timing ... 256 could be destroyed independently to reduce it to p8.

I can imagine to use my RISK DBCA as a base ... just adding plus 8 move, spliting dec3 to 2 and 1 .... firing to move line as add4 does, and some switchable blocking of + sign line should be introduced (with refresh at most 256 ticks). Cheap blocking for LWSS is double block, but cheap blocking for gliders? Is the interrupt of hershel track used in 4242 the best known option? Could the splitter to decpreventing line and to inc line be easily extended to interrupable hershel track? Rather to spliter two semi and hershell filtering ... is not g0 semi and yellow filtering cheaper? ... switching just by firing the semi?

But I really should take a break :).
Last edited by Hippo.69 on May 3rd, 2023, 9:06 pm, edited 1 time in total.
User avatar
apg
Moderator
Posts: 3007
Joined: June 1st, 2009, 4:32 pm

Re: Binary slow salvos

Post by apg »

Hippo.69 wrote: May 3rd, 2023, 8:22 pm
calcyman wrote: May 3rd, 2023, 7:25 pm Oh, right, you mean the move-after-reverse optimisation from this post? viewtopic.php?f=2&t=5711&start=75#p154297
Oh exactly ... I have not remembered it was your post :). Yep, would not constrained myself on the 4242 base ... but I would at least think about it.

How the p256 ECCA design looks like? Is seed of destruction for a p256 circuit much more complicted? It can redirect its gliders to achieve correct timing ... 256 could be destroyed independently to reduce it to p8.
The main problem that I envisage with a periodic design is that the ECCA will be built by the DBCA, which can only produce slow gliders with a specified phase modulo 2 instead of modulo 8.
What do you do with ill crystallographers? Take them to the mono-clinic!
User avatar
Hippo.69
Posts: 683
Joined: July 14th, 2020, 7:35 pm
Contact:

Re: Binary slow salvos

Post by Hippo.69 »

calcyman wrote: May 3rd, 2023, 8:36 pm The main problem that I envisage with a periodic design is that the ECCA will be built by the DBCA, which can only produce slow gliders with a specified phase modulo 2 instead of modulo 8.
So the half of the problem we have in the white construction part (another thread). Finding a general method to construct the white part would definitely be good enough to build p256 ECCA using DBCA.

But I bet there will be rather cheap one time 0 degree reflectors delaying required number of ticks mod 8 ...

Code: Select all

x = 126, y = 66, rule = LifeHistory
56.2D$55.DBD$56.BD2$74.A$74.2A$73.4A$74.2A4$81.A$79.A.A$80.2A6$11.B$
10.4B$8.B.7B$6.12B$6.3B2D7B92.2B$5.3BD2BD6B27.2B30.2D31.B2D$5.4B2D4B
2D2B26.B2DB26.2B2D2B27.3B2DB$4.10BD2BDB24.3B2D2B25.7B25.8B$4.10BDBD3B
22.10B23.8B24.10B$5.10BD3B23.9BD24.2BD.4B23.9B2D$4.4B.4B.3B25.8BDBD
22.2BDBD.4B23.8B2D$3.4B3.4B29.6B.B2DB22.BD.D2.4B21.11B$2.4B5.4B27.6B
3.4B19.4BD4.4B19.13B$.2D2B7.4B25.2D5B4.4B17.2D4B5.4B17.2D6B3.4B$DBDB
9.4B23.DBDB2.B6.4B15.DBD5B5.4B15.DBDB2.3B4.4B$.BD11.4B23.BD11.4B15.BD
4B7.4B15.BD3.2B6.4B$15.4B36.4B16.2B10.4B28.4B$16.3BA36.4B28.4B28.4B$
17.3BA36.4B28.4B28.2BAB$18.3A37.4B28.4B28.2B2A$59.4B28.4B28.2A$60.4B
28.4B$61.4B28.4B$62.4B28.4B$63.3BA28.3BA$64.ABA29.ABA$65.2A30.2A7$.2D
38.2D30.2D30.2D$DBD37.DBD29.DBD29.DBD$.BD38.BD30.BD30.BD2$19.A$20.A
102.A$18.3A103.2A$123.2A4$66.A31.A$64.A.A29.A.A$65.2A30.2A!
This must be enough to build from ... Oh state 10 is not shown ... so using smaller number of colors ... hmm seems the 2nd and 3rd reflectors behave equally ... why were both used in the cordership launch corridor? Bounding box restrictions? I doubt it.

There must be much bigger collection of such reflectors around. For slsparse data ... using bespoke for each launching phase mod8 and line color would probably simplify such restricted constructions.
Hippo.69 wrote: May 3rd, 2023, 8:22 pm I can imagine to use my RISK DBCA as a base ... just adding plus 8 move, spliting dec3 to 2 and 1 .... firing to move line as add4 does, and some switchable blocking of + sign line should be introduced (with refresh at most 256 ticks). Cheap blocking for LWSS is double block, but cheap blocking for gliders? Is the interrupt of hershel track used in 4242 the best known option? Could the splitter to decpreventing line and to inc line be easily extended to interrupable hershel track? Rather to spliter two semi and hershell filtering ... is not g0 semi and yellow filtering cheaper? ... switching just by firing the semi?
Yes seems g0 semi yellow filtering switched by glider in filtered mod256 line to semi will be really cheap direction controll. So all problems with building ECCA from this RiskDBCA technology are solved ... just to sit down and draw it ... any volunteer?

For g0 a cheaper versions could be used (no relative phase mod8 requirements), just the distance must be smaller than 256 ticks ... for move by more than 1 unit the gliders must reach the semi not interleaving the g0's. What are good candidates? Filtering out the more distant glider from the neigbouring pair (from p256 pattern) would give us more space for vanishing collision with yellow line.

Hmm, as the ECCA version does not require dec3 collision, big phase mod 8 color restriction vanishes, +/-2 and +/-1 instructions would not be that restricted. So optimization would have many branches to choose from... .

I will make show the concept version first. There is still no decission if i will be creaed from scratch / multiplexer will be replaced and part of cuircuit changed and part replaced / multiplexer extended and part of the cuircuit changed and part replaced (during the RCT15 run). So it is not known if the phases mod p8 could be changed. And the cost of a reflector is probably much smaller in ECCA version so there is not that big presure for optimization (at least in the rebuild scenario).

The order of codons have only 2 restricions ... +/-8 is first codon (resetting when activated), fire codon is before direction change (+move1) instruction. Color change, phase change commutes with all others. +/-4, +/-2, +/-1 codons would naturally fit together at start under the p256 line preventing +/-, probably any order would work equally well so 4,2,1 is the most convenient. +/-8 Would hit the p256 line preventing +/- from outside.
User avatar
Hippo.69
Posts: 683
Joined: July 14th, 2020, 7:35 pm
Contact:

Re: Binary slow salvos

Post by Hippo.69 »

Hippo.69 wrote: May 3rd, 2023, 2:57 pm So what is in plan ...
  • cheap efficient ECCA
  • seed of destruction of the ECCA (I have no clue how to do it)
  • replan the DBCA switch off/glider reflecting stream (at least another line of hook to be destroyed in before the FSW switch and another number of gliders to be observed by "trash counter". ... seed for correctly stoping p256? Or letting it to the DBCA destroying ECCA nw restricted salvo?
  • compute the DBCA destroying salvo
  • Fortunatelly FSW moving block collision and FSW "line" corderabsorbers program could remain unchanged, but posiiton of bit reflectors will change (I hope they will move with seeds of destruction as block)
  • fortunatelly the ECCA "line" program neednot be changed in the sense of launching corderships and making NW and SW corderabsorbers.
    There will be small changes in moving FNW as the position of the arm would probably differ.
So work on ECCA was done, I expect there would be multiple improvements. Now I would probably return to FixedBottom (binary arm).
I have noticed meanwhile that my concept of templates is not that great as it could be. I am planning to use D,# in sense D+,P,p in sense of P+,B,b in sense of B+ and S as basic stack objects, with original d,H,h,T,t,I as used so far. Whenever S^+ is on top, anything under it turns to + variant maening it could be templated to any follower in DPBS sequence.

Before I turn to this, I should check what was the problem with current version not being able to finish the whole salvo using composite emissions.
It definitely went through all levels, but failed to create output from the computed data ... I expect typical use would ignore the long term switching of stack bottom....

There is also need to create variant salvo to DBCA bits translator and probably even variants to ECCA bits translator. (Both depending on the initial configuration). (Both dynamic programming ... may be it will be just one program).

The biggest and most important task would be work on slsparse. If we need p8 pattern, but our salvo will be restricted to only 2 phases mod 8 per each color, we should build alternative database of moves. May be we should extend the formats in which the "micro salvas" are stored.
Would the alternatives format for the microsalvos be usefull?
(In current state it could happen we reject the microsalvo just because the stored version collides with the neighbourhood. But chosing alternative lines could mean the salvo "the set of p8 stable states" is still achievable without a collision.)
Slsparse parametrized by allowed "phasecolors" should filer them during processing the "micro salvos files". (Storing them for use in separate colors/phases). It would be hard to encode variants to bespoke data, would that mean translating them to another form or rather computing variants while preprocessing the files?
It would be helpfull to add bespoke variants for p8 patterns for all color/phases invoking gliders (translations to required color/phases by one time turrners). (And improving not only the data interface, but mainly the used algorithm ... (and data maintainence during the execution)).
I hope not to do it alone ...

So a lot of work for the future.
User avatar
Hippo.69
Posts: 683
Joined: July 14th, 2020, 7:35 pm
Contact:

Re: Binary slow salvos

Post by Hippo.69 »

Hippo.69 wrote: May 2nd, 2023, 7:26 am So first Risk_DBCA_m3_p4_fc_#cpo bit sequence recipe is finished. The DBCA is lounched by bit number 718736. (253 bits building [S0] + 718481 bits of recipe + 2 bits to start)
Original recipe started the DBCA by bit number 1274729. So reduction of recipe length to 56.4% (555993 bits).
After adding composite emissions to the FixedBottomSearch the recipe was possible to generate in one part, the computation take several hours, and giving condition for the final stack is huge mistake ... failing in the final conversion. But running it with [?] option ... works well.
Returned 6 results ... comparing with the original:
698270 [T6S#^86] ... original prime emission with <4>-><4><0>-><4>-><4><0>-><4> nonoptimaized hand planning

695593 [S#^113] ... all composite plans with just <4>
695602 [#^115]
695610 [#^105]
695644 [#^107]
695651 [#^110]
695673 [#^114]

As the continuation is to replacing the stack with [T]'s the shortest stack the better, but it is essentially 2 bits per # so the composite emissions improved the overall cost a lot (even without planning to make stack bottom changes lasting longer).

Now it would be nice to have a postprocess checking the positions where the composite move was used to check if longer term switching in its neighbourhood would not shorten the bit sequence. ... there is no reason to do it on this sequence, but for making a general tool this sequence could be used as testing data.
calcyman wrote: May 2nd, 2023, 9:44 am Oh wow! If it doesn't involve much manual work, can you run your slow-salvo-to-binary compiler on the DBCA slow salvo recipe that's currently in the repository? It would be interesting to see how much of the reduction is from your more efficient compiler and how much is from switching to a RISC DBCA.
I could run it yet ... let one core has some work for 6-8 hours ... but 78-79 gliders per level is the expected result. Hmmm if I find the "Levels" file i have made. (Trying it for both 0 % 4, 2 % 4 bottoms would be probably better, but I am trying only 0 now).

Oh lol, the previous search results were overwritten ... so no experimental data to think about longer bottom switching...

And I am afraid if extremally long stack movements which appear in the original recipe would feasible for the search (T's are more efficient for distances bigger than about 200, and the search is bad in destroying the stack so moves backward by tens of items is on the edge...)
Probably adding a destroy heuristics ... ignoring optimality and going to BDDDDDDDDDDDDD (21)* mode as fast as possible is the way to go.
Yep step from [190] to [146] took a while, but now it continues, but [1024] [880] in future and even [1233] [488] ... I will not be surprised this would be unfeasible for this version of code. ... There are usually only few such stack changes, so another option is to run the search for each portion separately and manually connect the results...

... yep after about 7 hours, we are (an unknown time) on [1024][880] step ... I will definitely notice the [1233][488] step (but I would probably interrupt it after a day or so ... but out of resources outcome is possible as well). ... codding the nonoptimal stack destroy is beter way than waiting for a miracle ... oh I have checked the status about 4 hours later and we are at the other milestone ... . Yes next day I got out of resources ... .

I would probably experiment with replacing only # templating by symbols represening other possible subsets of DPBS.
Generally it seems optimal to keep D on stacks unless we already know which item we need and there is no immediate inbetween state where only S^+ is above. This is most flexible even for the stack destroyal ..., but we could be forced by emission conditioning to use another top than D, and stack destroyal could be more efficient if it sends an 1 "quark" (from 2 B reacion) to increment top non S item on the stack...
So it is natural to represent smallest possible value (D<P<B<S) for each item on the stack, but keep track of which values could be there as well if we add some 1 bit to the appropriate position in the prefix.

This could probably be incorporated to the emission sets as well at few places.

--------
I am slowly making progress in the original # only version. I have improved a lot the stack destruction estimates. Now the slowest computation of costs appears in the cases I know [SSPS]212[] would be much better so fixing #### to DDDD is not the best in these cases and DSDD... could be much cheaper. ... and having better solution would cut a lot of branches much earlier ...

Hmmm for [1233][488] step (S#^481->B6d6DSD^5#^388) the transforming recipe 185 bits (not optimal, but optimal for what this version could find) is find in 8ms, but then it takes hours/days/all resources? to disprove others as the lowerbound is too big so the search space is too big. Small problem is still in transformation to SD^93->SDSD^5 rather to SD^2SD^87->SDSD^5 what would use [SSPS]212[] reduction to shorten the recipe by a tiny bit. I have to increase lower bounds as well or to create a time limit for search after a solution is known.
User avatar
Hippo.69
Posts: 683
Joined: July 14th, 2020, 7:35 pm
Contact:

Re: Binary slow salvos

Post by Hippo.69 »

Progress in FixedBottom development is rather slow ... I have extended set of "easycases", but the main change is I am not targeting template with equal suffix, but rather template from which the target suffix can be obtained by 1^k bit sequence (maintaining the k). During the search I allow leaking 1's while k>0 (decrementing k). But mainly this trick is used in the easycases. I have not rewritten all the lower bound estimates to use the same trick. The easycases are extended such that mostly no search is invoked at all or the search reduces the stack to an easy case during few ms.
In the latter case the searchis interrupted after a minute from the first find solution.

([#^{478}]->[PD^6#^{389}] worked in previous version (easy case no search), now I made [S#^{485}]->[PD^6#^{389}] working (shallow search to easy and timeout).

I have not implemened improved templating strategey yet, so S#^k->PD#^k->... is used to destroy long stack (with 1 excess based on B[2]->[1]) rather to using S##S#^{k-3}->SSPS#^{k-3}->"2121"->P#^{k-4} (followed by B[2]->[1]). What would saved 4+10-7-4=3 bits per mentioned reduction.

I have not improved transposition table usage of found reductions ... . (Somehow I spent a lot of time testing the subimprovements ... introducing and removing new bugs)
User avatar
Hippo.69
Posts: 683
Joined: July 14th, 2020, 7:35 pm
Contact:

Re: Binary slow salvos

Post by Hippo.69 »

calcyman wrote: May 2nd, 2023, 9:44 am Oh wow! If it doesn't involve much manual work, can you run your slow-salvo-to-binary compiler on the DBCA slow salvo recipe that's currently in the repository? It would be interesting to see how much of the reduction is from your more efficient compiler and how much is from switching to a RISC DBCA.
Seems recent changes in the search lead to version able to find the recipe size 1006769 in a reasonable time.
(I still should work in final templating ... and filling "easy transitions", but definitely a progress ... so the recipe is not complete and checked) ...
The SSPS reduction is not still used, the templates are still # only.
FixedBottomGliderLevelsToBitsResult.zip
(280.45 KiB) Downloaded 52 times
(The recipe size does not include block building in the correct place and initial arm positioning, the final stack D^498 should be destroyed and launching configuration achieved ... not part of the recipe.)
Last edited by Hippo.69 on August 7th, 2023, 11:33 am, edited 2 times in total.
Post Reply