Value Filldown OLT_VERSION (\S+)
Value Filldown PATCH (\S+)
Value Filldown PRODUCT (\S+)
Value MAINBOARD_TYPE (\S+)
Value Required CURRENT_PROGRAM_AREA (\S+\s*\S+)
Value Required CURRENT_DATA_AREA (\S+\s*\S+)
Value PROGRAM_AREA_A_VERSION (\S+)
Value PROGRAM_AREA_B_VERSION (\S+)
Value DATA_AREA_A_VERSION (\S+)
Value DATA_AREA_B_VERSION (\S+)

Start
  ^\s*VERSION\s+:\s+${OLT_VERSION}
  ^\s*PATCH\s+:\s+${PATCH}
  ^\s*PRODUCT\s+:\s+${PRODUCT} -> BoardInfo

BoardInfo
  ^\s*${MAINBOARD_TYPE}\s+Mainboard\s+Running\s+Area\s+Information:
  ^\s*Current\s+Program\s+Area\s+:\s+${CURRENT_PROGRAM_AREA}
  ^\s*Current\s+Data\s+Area\s+:\s+${CURRENT_DATA_AREA}
  ^\s*Program\s+Area\s+A\s+Version\s+:\s+${PROGRAM_AREA_A_VERSION}
  ^\s*Program\s+Area\s+B\s+Version\s+:\s+${PROGRAM_AREA_B_VERSION}
  ^\s*Data\s+Area\s+A\s+Version\s+:\s+${DATA_AREA_A_VERSION}
  ^\s*Data\s+Area\s+B\s+Version\s+:\s+${DATA_AREA_B_VERSION} -> Record
  ^\s+-
  ^\s*Uptime\s+is\s+\d+\s+day\(s\),\s+\d+\s+hour\(s\),\s+\d+\s+minute\(s\),\s+\d+\s+second\(s\)
  ^\s*$$
  ^. -> Error