﻿£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
from typing import Union, Optional


class CronJob(object):
    __slots__ = "minute", "hour", "cmd"

    def __init__(
        self,
        *,
        minute: Union[int, str, None],
        hour: Union[int, str, None],
        cmd: Optional[str],
    ):
        self.minute = minute
        self.hour = hour
        self.cmd = cmd

    def __str__(self):
        return (
            "# DO NOT EDIT. AUTOMATICALLY GENERATED BY IMUNIFY360."
            f"\n{self.minute} {self.hour} * * * root {self.cmd}\n"
        )

    @classmethod
    def from_str(cls, data):
        minute = hour = cmd = None
        lines = [x for x in data.splitlines() if x[0] != "#"]
        if lines:
            line_members = lines[0].split(" ")
            minute = line_members[0]
            hour = line_members[1]
            cmd = " ".join(line_members[6:])
        return CronJob(minute=minute, hour=hour, cmd=cmd)
