// Token: 0x0600111F RID: 4383 RVA: 0x00046EBC File Offset: 0x000450BC
 public static TimeZoneOffset[] GetTheTimeZoneOffsets(ExDateTime startTime, ExDateTime endTime, string timeZoneId = null, ExPerformanceCounter performanceCounter = null)
 {
     if (endTime < startTime)
     {
         throw new ArgumentException("End time must be greater than start time");
     }
     if (startTime.AddYears(100) < endTime)
     {
         throw new ArgumentException("Time range is too large: " + (endTime - startTime));
     }
     TimeZoneOffsets.TimeZoneOffsetTable timeZoneOffsetTable = TimeZoneOffsets.GetTableFromCache(startTime.Year, endTime.Year);
     if (timeZoneOffsetTable == null)
     {
         timeZoneOffsetTable = TimeZoneOffsets.BuildCache(startTime.Year, endTime.Year, performanceCounter);
         TimeZoneOffsets.AddTableToCache(timeZoneOffsetTable);
     }
     new List <TimeZoneOffset>();
     if (timeZoneId != null)
     {
         foreach (TimeZoneOffset timeZoneOffset in timeZoneOffsetTable.TimeZoneOffsets)
         {
             if (timeZoneOffset.TimeZoneId == timeZoneId)
             {
                 return(new TimeZoneOffset[]
                 {
                     timeZoneOffset
                 });
             }
         }
         return(null);
     }
     return(timeZoneOffsetTable.TimeZoneOffsets);
 }
 // Token: 0x060010E9 RID: 4329 RVA: 0x00045D0C File Offset: 0x00043F0C
 public SyncCalendar(CalendarSyncState syncState, StoreSession session, StoreObjectId folderId, SyncCalendar.GetPropertiesToFetchDelegate getPropertiesToFetchDelegate, ExDateTime windowStart, ExDateTime windowEnd, bool includeAdditionalDataInResponse, int maxChangesReturned)
 {
     if (syncState == null)
     {
         throw new ArgumentNullException("syncState");
     }
     if (session == null)
     {
         throw new ArgumentNullException("session");
     }
     if (folderId == null)
     {
         throw new ArgumentNullException("folderId");
     }
     if (getPropertiesToFetchDelegate == null)
     {
         throw new ArgumentNullException("getPropertiesToFetchDelegate");
     }
     if (windowEnd < windowStart)
     {
         throw new ArgumentException("Window end time must be greater than start time");
     }
     if (windowStart.AddYears(100) < windowEnd)
     {
         throw new ArgumentException("Window time range is too large: " + (windowEnd - windowStart));
     }
     if (maxChangesReturned < 0)
     {
         throw new ArgumentException("maxChangesReturned < 0: " + maxChangesReturned);
     }
     this.syncState = syncState;
     this.session   = session;
     this.folderId  = folderId;
     this.getPropertiesToFetchDelegate = getPropertiesToFetchDelegate;
     this.windowStart = windowStart;
     this.windowEnd   = windowEnd;
     this.includeAdditionalDataInResponse = includeAdditionalDataInResponse;
     if (maxChangesReturned == 0 || maxChangesReturned > 200)
     {
         this.maxChangesReturned = 200;
         return;
     }
     this.maxChangesReturned = maxChangesReturned;
 }