code: def _outter_split(inpt, delim, openers, closers=None, opener_lookup=None):
      
      if closers is None:
          closers = openers
      if opener_lookup is None:
          opener_lookup = {}
          for i in range(len(openers)):
              opener_lookup[openers[i]] = i
      stack = []
      res = []
      splt = 0
      for i in range(len(inpt)):
          if inpt[i] == delim and len(stack) == 0:
              res.append(inpt[splt:i].strip())
              splt = i+1
          elif inpt[i] in opener_lookup:
              stack.append(opener_lookup[inpt[i]])
          elif len(stack) > 0 and inpt[i] == closers[stack[-1]]:
              stack.pop()
      res.append(inpt[splt:].strip())
      return res
docs: Splits only at delims that are at outter-most level regarding
      openers/closers pairs.
      Unchecked requirements:
      Only supports length-1 delim, openers and closers.
      delim must not be member of openers or closers.
      len(openers) == len(closers) or closers == None