code: def _parseSessions(self, s: str) -> List[TradingSession]:
      tz = util.ZoneInfo(self.timeZoneId)
      sessions = []
      for sess in s.split(";"):
          if not sess or "CLOSED" in sess:
              continue
          sessions.append(
              TradingSession(
                  *[
                      dt.datetime.strptime(t, "%Y%m%d:%H%M").replace(
                          tzinfo=tz
                      )
                      for t in sess.split("-")
                  ]
              )
          )
      return sessions
  
imports: import datetime
  from dataclasses import dataclass, field
  from typing import List, NamedTuple, Optional
  import ib_insync.util
label_desc: Use image node_id 3 for calling the ContractDetails obj's underlying member method code with example usage: obj._parseSessions(s) and returns: sessions