- #include <stdio.h> 
- #include <assert.h> 
- // http://stackoverflow.com/a/37044707/1116364 
-   
- unsigned long calculate_max_ulong(void) { 
-   unsigned long follow = 0; 
-   unsigned long lead = 1; 
-   while (lead != 0) { 
-     ++lead; 
-     ++follow; 
-   } 
-   return follow; 
- } 
-   
- int main(void) { 
-   assert(sizeof(long) == sizeof(unsigned long)); 
-   unsigned long umax_h = calculate_max_ulong() / 2u; 
-   long max = umax_h; 
-   long min = - max - 1; 
-   printf("Range of long (%zu): %ld to %ld\n", sizeof(long),-  min ,-  max );
 
-   return 0; 
- } 
-   
				I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxhc3NlcnQuaD4KLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMzcwNDQ3MDcvMTExNjM2NAoKdW5zaWduZWQgbG9uZyBjYWxjdWxhdGVfbWF4X3Vsb25nKHZvaWQpIHsKICB1bnNpZ25lZCBsb25nIGZvbGxvdyA9IDA7CiAgdW5zaWduZWQgbG9uZyBsZWFkID0gMTsKICB3aGlsZSAobGVhZCAhPSAwKSB7CiAgICArK2xlYWQ7CiAgICArK2ZvbGxvdzsKICB9CiAgcmV0dXJuIGZvbGxvdzsKfQoKaW50IG1haW4odm9pZCkgewogIGFzc2VydChzaXplb2YobG9uZykgPT0gc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKTsKICB1bnNpZ25lZCBsb25nIHVtYXhfaCA9IGNhbGN1bGF0ZV9tYXhfdWxvbmcoKSAvIDJ1OwogIGxvbmcgbWF4ID0gdW1heF9oOwogIGxvbmcgbWluID0gLSBtYXggLSAxOwogIHByaW50ZigiUmFuZ2Ugb2YgbG9uZyAoJXp1KTogJWxkIHRvICVsZFxuIiwgc2l6ZW9mKGxvbmcpLCBtaW4sIG1heCk7CiAgcmV0dXJuIDA7Cn0K