|  | @@ -14302,7 +14302,7 @@ static void start_timestamp_zone(upb_json_parser *p, const char *ptr) {
 | 
	
		
			
				|  |  |  static bool end_timestamp_zone(upb_json_parser *p, const char *ptr) {
 | 
	
		
			
				|  |  |    size_t len;
 | 
	
		
			
				|  |  |    const char *buf;
 | 
	
		
			
				|  |  | -  int hours;
 | 
	
		
			
				|  |  | +  int hours = 0;
 | 
	
		
			
				|  |  |    int64_t seconds;
 | 
	
		
			
				|  |  |    const char *seconds_membername = "seconds";
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -14322,12 +14322,11 @@ static bool end_timestamp_zone(upb_json_parser *p, const char *ptr) {
 | 
	
		
			
				|  |  |      if (buf[0] == '+') {
 | 
	
		
			
				|  |  |        hours = -hours;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    p->tm.tm_hour += hours;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    /* Normalize tm */
 | 
	
		
			
				|  |  | -  seconds = mktime(&p->tm);
 | 
	
		
			
				|  |  | +  seconds = timegm(&p->tm);
 | 
	
		
			
				|  |  | +  seconds += 3600 * hours;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    /* Check timestamp boundary */
 | 
	
		
			
				|  |  |    if (seconds < -62135596800) {
 |