code: def L(g,i):
      
      g1 = g&(2**i)
      if i:
          n = Lwidth(i)
          Ln = L(g,i-1)
          if g1:
              return Ln<<(2*n)           | Ln<<n | Ln
          else:
              return int('1'*n,2)<<(2*n) | Ln<<n | Ln
      else:
          if g1:
              return int('000',2)
          else:
              return int('100',2)
docs: recursively constructs L line for g; i = len(g)-1