úÎ;–7¥.      !"#$%&'()*+,-None..Possible entries for the TAI leap-seconds fileParse a leap second list/VBuild a leap second list from a list of TAIEntry. should add in checking of the hash.0123/456789:;<=>?@A.0123/456789:;<=>?@ANoneT ÿ LeapSources is a list of strings, specifying URIs the program can potentially access up-to-date leap-second.lists from. Each source begins with a protocol: For local sources "file://" followed by a path to the local file. For remote source sources " https://" prefixed URIs.EA leap second list location tagged with a protocol for retrieving it.KA support type for deperating out the protocol over which to retrieve data.(Convert a string source to a LeapSource MA few places we should be able to download up-to-date leap-seconds.list data.=Given a LeapSource, perform the actual aquasition and parsing8Parse a leap second list file, failing if it is expired.ÅAquire leap-seconds files and parse them, Trying the provided list of sources in order from local, to secure remote (HTTPS), until an up-to-date source is aquired or all options are exausted.4Currently only local and HTTPS has been implimented.     None7T $ÆA function that enacts the periodic update of the LeapSecondList leap second data. Usually periodicBackgroundDownload will satisfy a user's needs, but some enviroments may want another policy.%6Our data about TAI in relation to UTC and this system.B¿The TAI of CLOCK_BOOTTIME's 0 time. This allows us to keep giving TAI time as accurately as the system's clock even in the face of failure to update our leap second table in the future.CjOur TAI/UTC offset information, maintained in the background to the best of our UpdatePolicy's ability.&pGiven an UpdatePolicy, generate a TAISync to be used to interact with TAI though the other library functions.'ÿ£Update the leap second table by redownloading the tables periodicly in the background. This policy uses the TimeoutManager to check for a new table every dbetween days, trying again dretry if there is a failure. Recomended values are 30 and 1 for these. Given the validity period for leap second data, this should generally suffice. There can be problems with local files being near their expiration though.(This policy requires a threaded runtime.(Get the current TAI time.)ÿ¦Given our information about leap seconds, generate a UTC time from a TAI time as a total function. As the relation between TAI is only known for a specific time range, we give a best-guess outside said time range. Specificly we only know the offset after some point in the past, and up to about 6 months into the future. Outside this range we assume the last known mapping between UTC and TAI doesn't drift.*ÿ¥Given our information about leap seconds, generate a TAI time rom a UTC time as a total function. As the relation between TAI is only known for a specific time range, we give a best-guess outside said time range. Specificly we only know the offset after some point in the past, and up to about 6 months into the future. Outside this range we assume the last known mapping between UTC and TAI doesn't drift.+'Gets the current leap second data in a time compatable form.DE$%FBC&'G(HI)*+JKL$%&'()*+%$&()*+'DE$%FBC&'G(HI)*+JKLM      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG'HIJKLMNtai-0-ClH8Z5RwQuU2xg1wYi6yHWData.Time.Clock.TAI.ParserData.Time.Clock.TAI.LeapDataData.Time.Clock.TAI.SupportLeapSecondListexpirationDate lastUpdate expectedHash leapSecondsparseLeapSecondList $fEqTAIEntry $fOrdTAIEntry$fShowTAIEntry$fEqLeapSecondList$fOrdLeapSecondList$fShowLeapSecondList LeapSources LeapSource sourceTypesource SourceTypeFileHTTPSparseLeapSource leapSourcesmayRetrieveListparseFileMaybesourceLeapData$fShowSourceType$fReadSourceType$fEqSourceType$fBoundedSourceType$fEnumSourceType$fOrdSourceType$fShowLeapSource$fReadLeapSource$fEqLeapSource$fOrdLeapSource UpdatePolicyTAISyncinitSyncperiodicBackgroundDownloadgetTAI absGuessUtc utcGuessAbscurrentLeapMap$fShowTimeSyncException$fExceptionTimeSyncExceptionTAIEntrybuildLeapSecondList TAILastUpdate TAIExpiration TAILeapSecondTAIHash getExpiration getLastUpdate getLeapSecondgetHasheolparseTAIEntries consumeLine parseCommentparseLastUpdateparseExpirationparseLeapSecond parseTAIHashntpToDay ntpEpochDay_tsSystemBootEpoch_lslRefTimeSyncExceptionTimeSyncTooLongExceptiontimeSpec2DiffTimelookupDayInListhandlingOutOfRange leapListToMap absGuessUtc' utcGuessAbs'