25#define PNG_CHUNK(cHNK, index) != (index) || ((index)+1)
27#if 0 PNG_KNOWN_CHUNKS < 0
28# error PNG_KNOWN_CHUNKS chunk definitions are not in order
37#define PNG_CHUNK(cHNK, index) !PNG_CHUNK_NAME_VALID(png_ ## cHNK) ||
40# error png_cHNK not defined for some known cHNK
51#ifdef PNG_READ_SUPPORTED
55 unsigned int nb = (
unsigned int)num_bytes;
66 png_error(
png_ptr,
"Too many bytes for PNG signature");
68 png_ptr->sig_bytes = (png_byte)nb;
82 static const png_byte png_signature[8] = {137, 80, 78, 71, 13, 10, 26, 10};
87 else if (num_to_check < 1)
93 if (
start + num_to_check > 8)
94 num_to_check = 8 -
start;
101#if defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED)
121 "Potential overflow in png_zalloc()");
174 if (need_crc != 0 &&
length > 0)
182 if (safe_length == 0)
183 safe_length = (
uInt)-1;
213 if (user_png_ver !=
NULL)
223 if (user_png_ver[
i] ==
'.')
225 }
while (found_dots < 2 && user_png_ver[
i] != 0 &&
234#ifdef PNG_WARNINGS_SUPPORTED
238 pos = png_safecat(
m, (
sizeof m),
pos,
239 "Application built with libpng-");
240 pos = png_safecat(
m, (
sizeof m),
pos, user_png_ver);
241 pos = png_safecat(
m, (
sizeof m),
pos,
" but running with ");
260 png_error_ptr error_fn, png_error_ptr warn_fn,
png_voidp mem_ptr,
261 png_malloc_ptr malloc_fn, png_free_ptr free_fn),
265# ifdef PNG_SETJMP_SUPPORTED
273 memset(&create_struct, 0, (
sizeof create_struct));
275# ifdef PNG_USER_LIMITS_SUPPORTED
279# ifdef PNG_USER_CHUNK_CACHE_MAX
283# if PNG_USER_CHUNK_MALLOC_MAX > 0
287# elif defined PNG_MAX_MALLOC_64K
288 create_struct.user_chunk_malloc_max = 65536U;
298# ifdef PNG_USER_MEM_SUPPORTED
299 png_set_mem_fn(&create_struct, mem_ptr, malloc_fn, free_fn);
311 png_set_error_fn(&create_struct, error_ptr, error_fn, warn_fn);
313# ifdef PNG_SETJMP_SUPPORTED
314 if (!
setjmp(create_jmp_buf))
317# ifdef PNG_SETJMP_SUPPORTED
323 create_struct.jmp_buf_ptr = &create_jmp_buf;
324 create_struct.jmp_buf_size = 0;
325 create_struct.longjmp_fn =
longjmp;
329 if (png_user_version_check(&create_struct, user_png_ver) != 0)
332 png_malloc_warn(&create_struct, (
sizeof *
png_ptr)));
343# ifdef PNG_SETJMP_SUPPORTED
345 create_struct.jmp_buf_ptr =
NULL;
346 create_struct.jmp_buf_size = 0;
347 create_struct.longjmp_fn = 0;
371 png_debug(1,
"in png_create_info_struct");
403 png_debug(1,
"in png_destroy_info_struct");
408 if (info_ptr_ptr !=
NULL)
419 *info_ptr_ptr =
NULL;
437png_info_init_3,(
png_infopp ptr_ptr,
size_t png_info_struct_size),
447 if ((
sizeof (
png_info)) > png_info_struct_size)
479 png_error(
png_ptr,
"Unknown freer parameter in png_data_freer");
491#ifdef PNG_TEXT_SUPPORTED
517#ifdef PNG_tRNS_SUPPORTED
528#ifdef PNG_sCAL_SUPPORTED
540#ifdef PNG_pCAL_SUPPORTED
563#ifdef PNG_iCCP_SUPPORTED
575#ifdef PNG_sPLT_SUPPORTED
606#ifdef PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED
630#ifdef PNG_eXIf_SUPPORTED
643#ifdef PNG_hIST_SUPPORTED
662#ifdef PNG_INFO_IMAGE_SUPPORTED
680 mask &= ~PNG_FREE_MUL;
699#if defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED)
700# ifdef PNG_STDIO_SUPPORTED
719# ifdef PNG_SAVE_INT_32_SUPPORTED
737# ifdef PNG_TIME_RFC1123_SUPPORTED
744 static const char short_months[12][4] =
745 {
"Jan",
"Feb",
"Mar",
"Apr",
"May",
"Jun",
746 "Jul",
"Aug",
"Sep",
"Oct",
"Nov",
"Dec"};
751 if (ptime->
year > 9999 ||
753 ptime->
day == 0 || ptime->
day > 31 ||
760 char number_buf[5] = {0, 0, 0, 0, 0};
762# define APPEND_STRING(string) pos = png_safecat(out, 29, pos, (string))
763# define APPEND_NUMBER(format, value)\
764 APPEND_STRING(PNG_FORMAT_NUMBER(number_buf, format, (value)))
765# define APPEND(ch) if (pos < 28) out[pos++] = (ch)
767 APPEND_NUMBER(PNG_NUMBER_FORMAT_u, (
unsigned)ptime->
day);
769 APPEND_STRING(short_months[(ptime->
month - 1)]);
771 APPEND_NUMBER(PNG_NUMBER_FORMAT_u, ptime->
year);
773 APPEND_NUMBER(PNG_NUMBER_FORMAT_02u, (
unsigned)ptime->
hour);
775 APPEND_NUMBER(PNG_NUMBER_FORMAT_02u, (
unsigned)ptime->
minute);
777 APPEND_NUMBER(PNG_NUMBER_FORMAT_02u, (
unsigned)ptime->
second);
778 APPEND_STRING(
" +0000");
789# if PNG_LIBPNG_VER < 10700
801 if (png_convert_to_rfc1123_buffer(
png_ptr->time_buffer, ptime) == 0)
802 png_warning(
png_ptr,
"Ignoring invalid time value");
819#ifdef PNG_STRING_COPYRIGHT
820 return PNG_STRING_COPYRIGHT
825 "Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson" \
828 "Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \
863# ifndef PNG_READ_SUPPORTED
872#ifdef PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED
887 png_debug(1,
"in png_do_build_grayscale_palette");
920 for (
i = 0,
v = 0;
i < num_palette;
i++,
v += color_inc)
929#ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED
940 p = p_end +
png_ptr->num_chunk_list*5;
950 if (
memcmp(chunk_name,
p, 4) == 0)
963#if defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED) ||\
964 defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED)
968 png_byte chunk_string[5];
971 return png_handle_as_unknown(
png_ptr, chunk_string);
976#ifdef PNG_READ_SUPPORTED
997#if defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED)
1068#ifdef PNG_COLORSPACE_SUPPORTED
1070png_fp_add(png_int_32 addend0, png_int_32 addend1,
int *
error)
1080 if (0x7fffffff - addend0 >= addend1)
1081 return addend0+addend1;
1083 else if (addend0 < 0)
1085 if (-0x7fffffff - addend0 <= addend1)
1086 return addend0+addend1;
1096png_fp_sub(png_int_32 addend0, png_int_32 addend1,
int *
error)
1101 if (-0x7fffffff + addend1 <= addend0)
1102 return addend0-addend1;
1104 else if (addend1 < 0)
1106 if (0x7fffffff + addend1 >= addend0)
1107 return addend0-addend1;
1117png_safe_add(png_int_32 *addend0_and_result, png_int_32 addend1,
1124 int result = png_fp_add(*addend0_and_result,
1125 png_fp_add(addend1, addend2, &
error),
1140 png_int_32
d, dred, dgreen, dblue, dwhite, whiteX, whiteY;
1177 if (png_safe_add(&
d, dred, dgreen))
1223 if (xy->
redx < 0 || xy->
redx > fpLimit)
return 1;
1224 if (xy->
redy < 0 || xy->
redy > fpLimit-xy->
redx)
return 1;
1227 if (xy->
bluex < 0 || xy->
bluex > fpLimit)
return 1;
1428 if (
error)
return 1;
1442 if (png_muldiv(&red_inverse, xy->
whitey, denominator,
1444 red_inverse <= xy->whitey )
1452 if (png_muldiv(&green_inverse, xy->
whitey, denominator,
1454 green_inverse <= xy->whitey)
1460 blue_scale = png_fp_sub(png_fp_sub(png_reciprocal(xy->
whitey),
1461 png_reciprocal(red_inverse), &
error),
1462 png_reciprocal(green_inverse), &
error);
1463 if (
error || blue_scale <= 0)
1484 green_inverse) == 0)
1499#ifdef PNG_READ_iCCP_SUPPORTED
1505 if (
byte >= 32 &&
byte <= 126)
1515 name[1] = png_icc_tag_char(
tag >> 24);
1516 name[2] = png_icc_tag_char(
tag >> 16);
1517 name[3] = png_icc_tag_char(
tag >> 8);
1518 name[4] = png_icc_tag_char(
tag );
1525 return it == 32 || (it >= 48 && it <= 57) || (it >= 65 && it <= 90) ||
1526 (it >= 97 && it <= 122);
1532 return is_ICC_signature_char(it >> 24) &&
1533 is_ICC_signature_char((it >> 16) & 0xff) &&
1534 is_ICC_signature_char((it >> 8) & 0xff) &&
1535 is_ICC_signature_char(it & 0xff);
1548 if (is_ICC_signature(
value) != 0)
1556# ifdef PNG_WARNINGS_SUPPORTED
1559 char number[PNG_NUMBER_BUFFER_SIZE];
1563 PNG_NUMBER_FORMAT_x,
value));
1581static const png_byte D50_nCIEXYZ[12] =
1582 { 0x00, 0x00, 0xf6, 0xd6, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xd3, 0x2d };
1588 if (profile_length < 132)
1589 return png_icc_profile_error(
png_ptr,
name, profile_length,
"too short");
1597 if (!icc_check_length(
png_ptr,
name, profile_length))
1606 if (profile_length > png_chunk_max(
png_ptr))
1607 return png_icc_profile_error(
png_ptr,
name, profile_length,
1608 "profile too long");
1626 if (
temp != profile_length)
1628 "length does not match profile");
1631 if (
temp > 3 && (profile_length & 3))
1632 return png_icc_profile_error(
png_ptr,
name, profile_length,
1636 if (
temp > 357913930 ||
1637 profile_length < 132+12*
temp)
1639 "tag count too large");
1647 "invalid rendering intent");
1654 "intent outside defined range");
1669 if (
temp != 0x61637370)
1671 "invalid signature");
1682 "PCS illuminant is not D50");
1710 "RGB color space not permitted on grayscale PNG");
1716 "Gray color space not permitted on RGB PNG");
1721 "invalid ICC profile color space");
1746 "invalid embedded Abstract ICC profile");
1756 "unexpected DeviceLink ICC profile class");
1764 "unexpected NamedColor ICC profile class");
1774 "unrecognized ICC profile class");
1790 "unexpected ICC PCS encoding");
1808 for (itag=0; itag < tag_count; ++itag,
tag += 12)
1824 if (tag_start > profile_length || tag_length > profile_length - tag_start)
1825 return png_icc_profile_error(
png_ptr,
name, tag_id,
1826 "ICC profile tag outside profile");
1828 if ((tag_start & 3) != 0)
1835 "ICC profile tag start not a multiple of 4");
1843#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED
1844#if (defined PNG_READ_mDCV_SUPPORTED) || (defined PNG_READ_cHRM_SUPPORTED)
1864# ifdef PNG_READ_mDCV_SUPPORTED
1867# define check_chromaticities 1
1870# ifdef PNG_READ_sRGB_SUPPORTED
1875# ifdef PNG_READ_cHRM_SUPPORTED
1878# define check_chromaticities 1
1892 if (
png_ptr->rgb_to_gray_coefficients_set == 0)
1894# if check_chromaticities
1897 if (have_chromaticities(
png_ptr) &&
1898 png_XYZ_from_xy(&xyz, &
png_ptr->chromaticities) == 0)
1909 r >= 0 && png_muldiv(&
r,
r, 32768,
total) &&
r >= 0 &&
r <= 32768 &&
1910 g >= 0 && png_muldiv(&
g,
g, 32768,
total) &&
g >= 0 &&
g <= 32768 &&
1911 b >= 0 && png_muldiv(&
b,
b, 32768,
total) &&
b >= 0 &&
b <= 32768 &&
1923 else if (
r+
g+
b < 32768)
1928 if (
g >=
r &&
g >=
b)
1930 else if (
r >=
g &&
r >=
b)
1939 "internal error handling cHRM coefficients");
1943 png_ptr->rgb_to_gray_red_coeff = (png_uint_16)
r;
1944 png_ptr->rgb_to_gray_green_coeff = (png_uint_16)
g;
1952 png_ptr->rgb_to_gray_red_coeff = 6968;
1953 png_ptr->rgb_to_gray_green_coeff = 23434;
1963 int color_type,
int interlace_type,
int compression_type,
1971 png_warning(
png_ptr,
"Image width is zero in IHDR");
1977 png_warning(
png_ptr,
"Invalid image width in IHDR");
2007 png_warning(
png_ptr,
"Image width is too large for this architecture");
2011#ifdef PNG_SET_USER_LIMITS_SUPPORTED
2017 png_warning(
png_ptr,
"Image width exceeds user limit in IHDR");
2023 png_warning(
png_ptr,
"Image height is zero in IHDR");
2029 png_warning(
png_ptr,
"Invalid image height in IHDR");
2033#ifdef PNG_SET_USER_LIMITS_SUPPORTED
2039 png_warning(
png_ptr,
"Image height exceeds user limit in IHDR");
2044 if (bit_depth != 1 && bit_depth != 2 && bit_depth != 4 &&
2045 bit_depth != 8 && bit_depth != 16)
2047 png_warning(
png_ptr,
"Invalid bit depth in IHDR");
2051 if (color_type < 0 || color_type == 1 ||
2052 color_type == 5 || color_type > 6)
2054 png_warning(
png_ptr,
"Invalid color type in IHDR");
2063 png_warning(
png_ptr,
"Invalid color type/bit depth combination in IHDR");
2069 png_warning(
png_ptr,
"Unknown interlace method in IHDR");
2075 png_warning(
png_ptr,
"Unknown compression method in IHDR");
2079#ifdef PNG_MNG_FEATURES_SUPPORTED
2090 png_ptr->mng_features_permitted != 0)
2091 png_warning(
png_ptr,
"MNG features are not allowed in a PNG datastream");
2101 png_warning(
png_ptr,
"Unknown filter method in IHDR");
2107 png_warning(
png_ptr,
"Invalid filter method in IHDR");
2115 png_warning(
png_ptr,
"Unknown filter method in IHDR");
2121 png_error(
png_ptr,
"Invalid IHDR data");
2124#if defined(PNG_sCAL_SUPPORTED) || defined(PNG_pCAL_SUPPORTED)
2130#define png_fp_add(state, flags) ((state) |= (flags))
2131#define png_fp_set(state, value) ((state) = (value) | ((state) & PNG_FP_STICKY))
2137 int state = *statep;
2138 size_t i = *whereami;
2146 case 43:
type = PNG_FP_SAW_SIGN;
break;
2147 case 45:
type = PNG_FP_SAW_SIGN + PNG_FP_NEGATIVE;
break;
2148 case 46:
type = PNG_FP_SAW_DOT;
break;
2149 case 48:
type = PNG_FP_SAW_DIGIT;
break;
2150 case 49:
case 50:
case 51:
case 52:
2151 case 53:
case 54:
case 55:
case 56:
2152 case 57:
type = PNG_FP_SAW_DIGIT + PNG_FP_NONZERO;
break;
2154 case 101:
type = PNG_FP_SAW_E;
break;
2155 default:
goto PNG_FP_End;
2162 switch ((
state & PNG_FP_STATE) + (
type & PNG_FP_SAW_ANY))
2164 case PNG_FP_INTEGER + PNG_FP_SAW_SIGN:
2165 if ((
state & PNG_FP_SAW_ANY) != 0)
2171 case PNG_FP_INTEGER + PNG_FP_SAW_DOT:
2173 if ((
state & PNG_FP_SAW_DOT) != 0)
2176 else if ((
state & PNG_FP_SAW_DIGIT) != 0)
2180 png_fp_set(
state, PNG_FP_FRACTION |
type);
2184 case PNG_FP_INTEGER + PNG_FP_SAW_DIGIT:
2185 if ((
state & PNG_FP_SAW_DOT) != 0)
2186 png_fp_set(
state, PNG_FP_FRACTION | PNG_FP_SAW_DOT);
2188 png_fp_add(
state,
type | PNG_FP_WAS_VALID);
2192 case PNG_FP_INTEGER + PNG_FP_SAW_E:
2193 if ((
state & PNG_FP_SAW_DIGIT) == 0)
2196 png_fp_set(
state, PNG_FP_EXPONENT);
2206 case PNG_FP_FRACTION + PNG_FP_SAW_DIGIT:
2207 png_fp_add(
state,
type | PNG_FP_WAS_VALID);
2210 case PNG_FP_FRACTION + PNG_FP_SAW_E:
2215 if ((
state & PNG_FP_SAW_DIGIT) == 0)
2218 png_fp_set(
state, PNG_FP_EXPONENT);
2222 case PNG_FP_EXPONENT + PNG_FP_SAW_SIGN:
2223 if ((
state & PNG_FP_SAW_ANY) != 0)
2226 png_fp_add(
state, PNG_FP_SAW_SIGN);
2233 case PNG_FP_EXPONENT + PNG_FP_SAW_DIGIT:
2234 png_fp_add(
state, PNG_FP_SAW_DIGIT | PNG_FP_WAS_VALID);
2241 default:
goto PNG_FP_End;
2255 return (
state & PNG_FP_SAW_DIGIT) != 0;
2264 size_t char_index = 0;
2266 if (png_check_fp_number(
string,
size, &
state, &char_index) != 0 &&
2267 (char_index ==
size ||
string[char_index] == 0))
2274#ifdef PNG_sCAL_SUPPORTED
2275# ifdef PNG_FLOATING_POINT_SUPPORTED
2300 if (
power & 1)
d *= mult;
2306 if (recip != 0)
d = 1/
d;
2358 exp_b10 = (exp_b10 * 77) >> 8;
2361 base = png_pow10(exp_b10);
2366 double test = png_pow10(exp_b10+1);
2387 fp /= 10; ++exp_b10;
2397 unsigned int czero, clead, cdigits;
2403 if (exp_b10 < 0 && exp_b10 > -3)
2440 if (cdigits == 0) --clead;
2444 while (cdigits > 0 &&
d > 9)
2448 if (exp_b10 != (-1))
2471 if (exp_b10 == (-1))
2481 ++
size; exp_b10 = 1;
2502 if (cdigits == 0) ++clead;
2507 cdigits += czero - clead;
2516 if (exp_b10 != (-1))
2520 *ascii++ = 46; --
size;
2525 *ascii++ = 48; --czero;
2528 if (exp_b10 != (-1))
2532 *ascii++ = 46; --
size;
2537 *ascii++ = (
char)(48 + (
int)
d); ++cdigits;
2540 while (cdigits+czero < precision+clead && fp >
DBL_MIN);
2551 if (exp_b10 >= (-1) && exp_b10 <= 2)
2560 while (exp_b10-- > 0) *ascii++ = 48;
2578 *ascii++ = 69; --
size;
2585 unsigned int uexp_b10;
2589 *ascii++ = 45; --
size;
2590 uexp_b10 = 0
U-exp_b10;
2594 uexp_b10 = 0
U+exp_b10;
2598 while (uexp_b10 > 0)
2610 while (cdigits > 0) *ascii++ =
exponent[--cdigits];
2635 png_error(
png_ptr,
"ASCII conversion buffer too small");
2639# ifdef PNG_FIXED_POINT_SUPPORTED
2661 if (
num <= 0x80000000)
2669 unsigned int tmp =
num/10;
2713 png_error(
png_ptr,
"ASCII conversion buffer too small");
2718#if defined(PNG_FLOATING_POINT_SUPPORTED) && \
2719 !defined(PNG_FIXED_POINT_MACRO_SUPPORTED) && \
2720 (defined(PNG_gAMA_SUPPORTED) || defined(PNG_cHRM_SUPPORTED) || \
2721 defined(PNG_sCAL_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) || \
2722 defined(PNG_READ_RGB_TO_GRAY_SUPPORTED)) || \
2723 (defined(PNG_sCAL_SUPPORTED) && \
2724 defined(PNG_FLOATING_ARITHMETIC_SUPPORTED))
2728 double r =
floor(100000 * fp + .5);
2730 if (
r > 2147483647. ||
r < -2147483648.)
2733# ifndef PNG_ERROR_TEXT_SUPPORTED
2741#if defined(PNG_FLOATING_POINT_SUPPORTED) && \
2742 !defined(PNG_FIXED_POINT_MACRO_SUPPORTED) && \
2743 (defined(PNG_cLLI_SUPPORTED) || defined(PNG_mDCV_SUPPORTED))
2747 double r =
floor(10000 * fp + .5);
2749 if (
r > 2147483647. ||
r < 0)
2752# ifndef PNG_ERROR_TEXT_SUPPORTED
2761#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_COLORSPACE_SUPPORTED) ||\
2762 defined(PNG_INCH_CONVERSIONS_SUPPORTED) || defined(PNG_READ_pHYs_SUPPORTED)
2776 if (
a == 0 ||
times == 0)
2783#ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED
2790 if (r <= 2147483647. && r >= -2147483648.)
2801 negative = 1,
A = -
a;
2806 negative = !negative,
T = -
times;
2811 negative = !negative,
D = -
divisor;
2818 s16 = (
A >> 16) * (
T & 0xffff) +
2819 (
A & 0xffff) * (
T >> 16);
2823 s32 = (
A >> 16) * (
T >> 16) + (
s16 >> 16);
2824 s00 = (
A & 0xffff) * (
T & 0xffff);
2826 s16 = (
s16 & 0xffff) << 16;
2841 while (--bitshift >= 0)
2846 d32 =
D >> (32-bitshift), d00 =
D << bitshift;
2853 if (s00 < d00) --
s32;
2854 s32 -= d32, s00 -= d00,
result += 1<<bitshift;
2858 if (
s32 == d32 && s00 >= d00)
2859 s32 = 0, s00 -= d00,
result += 1<<bitshift;
2863 if (s00 >= (
D >> 1))
2870 if ((negative != 0 &&
result <= 0) ||
2871 (negative == 0 &&
result >= 0))
2888#ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED
2891 if (r <= 2147483647. && r >= -2147483648.)
2896 if (png_muldiv(&
res, 100000, 100000,
a) != 0)
2904#ifdef PNG_READ_GAMMA_SUPPORTED
2927#ifndef PNG_FLOATING_ARITHMETIC_SUPPORTED
2933#ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED
2934 double r =
a * 1
E-5;
2938 if (r <= 2147483647. && r >= -2147483648.)
2943 if (png_muldiv(&
res,
a,
b, 100000) != 0)
2955#ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED
2956 if (
a != 0 &&
b != 0)
2962 if (r <= 2147483647. && r >= -2147483648.)
2974 return png_reciprocal(
res);
2981#ifdef PNG_READ_GAMMA_SUPPORTED
2982#ifndef PNG_FLOATING_ARITHMETIC_SUPPORTED
3003 4270715492U, 4222494797U, 4174646467U, 4127164793U, 4080044201U, 4033279239U,
3004 3986864580U, 3940795015U, 3895065449U, 3849670902U, 3804606499U, 3759867474U,
3005 3715449162U, 3671346997U, 3627556511U, 3584073329U, 3540893168U, 3498011834U,
3006 3455425220U, 3413129301U, 3371120137U, 3329393864U, 3287946700U, 3246774933U,
3007 3205874930U, 3165243125U, 3124876025U, 3084770202U, 3044922296U, 3005329011U,
3008 2965987113U, 2926893432U, 2888044853U, 2849438323U, 2811070844U, 2772939474U,
3009 2735041326U, 2697373562U, 2659933400U, 2622718104U, 2585724991U, 2548951424U,
3010 2512394810U, 2476052606U, 2439922311U, 2404001468U, 2368287663U, 2332778523U,
3011 2297471715U, 2262364947U, 2227455964U, 2192742551U, 2158222529U, 2123893754U,
3012 2089754119U, 2055801552U, 2022034013U, 1988449497U, 1955046031U, 1921821672U,
3013 1888774511U, 1855902668U, 1823204291U, 1790677560U, 1758320682U, 1726131893U,
3014 1694109454U, 1662251657U, 1630556815U, 1599023271U, 1567649391U, 1536433567U,
3015 1505374214U, 1474469770U, 1443718700U, 1413119487U, 1382670639U, 1352370686U,
3016 1322218179U, 1292211689U, 1262349810U, 1232631153U, 1203054352U, 1173618059U,
3017 1144320946U, 1115161701U, 1086139034U, 1057251672U, 1028498358U, 999877854U,
3018 971388940U, 943030410U, 914801076U, 886699767U, 858725327U, 830876614U,
3019 803152505U, 775551890U, 748073672U, 720716771U, 693480120U, 666362667U,
3020 639363374U, 612481215U, 585715177U, 559064263U, 532527486U, 506103872U,
3021 479792461U, 453592303U, 427502463U, 401522014U, 375650043U, 349885648U,
3022 324227938U, 298676034U, 273229066U, 247886176U, 222646516U, 197509248U,
3023 172473545U, 147538590U, 122703574U, 97967701U, 73330182U, 48790236U,
3032 65166, 64430, 63700, 62976, 62257, 61543, 60835, 60132, 59434, 58741, 58054,
3033 57371, 56693, 56020, 55352, 54689, 54030, 53375, 52726, 52080, 51439, 50803,
3034 50170, 49542, 48918, 48298, 47682, 47070, 46462, 45858, 45257, 44661, 44068,
3035 43479, 42894, 42312, 41733, 41159, 40587, 40020, 39455, 38894, 38336, 37782,
3036 37230, 36682, 36137, 35595, 35057, 34521, 33988, 33459, 32932, 32408, 31887,
3037 31369, 30854, 30341, 29832, 29325, 28820, 28319, 27820, 27324, 26830, 26339,
3038 25850, 25364, 24880, 24399, 23920, 23444, 22970, 22499, 22029, 21562, 21098,
3039 20636, 20175, 19718, 19262, 18808, 18357, 17908, 17461, 17016, 16573, 16132,
3040 15694, 15257, 14822, 14390, 13959, 13530, 13103, 12678, 12255, 11834, 11415,
3041 10997, 10582, 10168, 9756, 9346, 8937, 8531, 8126, 7723, 7321, 6921, 6523,
3042 6127, 5732, 5339, 4947, 4557, 4169, 3782, 3397, 3014, 2632, 2251, 1872, 1495,
3048png_log8bit(
unsigned int x)
3050 unsigned int lg2 = 0;
3057 if ((
x &= 0xff) == 0)
3060 if ((
x & 0xf0) == 0)
3063 if ((
x & 0xc0) == 0)
3066 if ((
x & 0x80) == 0)
3070 return (png_int_32)((lg2 << 16) + ((png_8bit_l2[
x-128]+32768)>>16));
3103#ifdef PNG_16BIT_SUPPORTED
3107 unsigned int lg2 = 0;
3110 if ((
x &= 0xffff) == 0)
3113 if ((
x & 0xff00) == 0)
3116 if ((
x & 0xf000) == 0)
3119 if ((
x & 0xc000) == 0)
3122 if ((
x & 0x8000) == 0)
3129 lg2 += (png_8bit_l2[(
x>>8)-128]+8) >> 4;
3134 x = ((
x << 16) + (
x >> 9)) / (
x >> 8);
3146 lg2 += ((23591U * (65536U-
x)) + (1U << (16+6-12-1))) >> (16+6-12);
3149 lg2 -= ((23499U * (
x-65536U)) + (1U << (16+6-12-1))) >> (16+6-12);
3152 return (png_int_32)((lg2 + 2048) >> 12);
3174 4294967295U, 4112874773U, 3938502376U, 3771522796U, 3611622603U, 3458501653U,
3175 3311872529U, 3171459999U, 3037000500U, 2908241642U, 2784941738U, 2666869345U,
3176 2553802834U, 2445529972U, 2341847524U, 2242560872U
3181for (
i=11;
i>=0;--
i){
print i,
" ", (1 -
e(-(2^
i)/65536*
l(2))) * 2^(32-
i),
"\n"}
3182 11 44937.64284865548751208448
3183 10 45180.98734845585101160448
3184 9 45303.31936980687359311872
3185 8 45364.65110595323018870784
3186 7 45395.35850361789624614912
3187 6 45410.72259715102037508096
3188 5 45418.40724413220722311168
3189 4 45422.25021786898173001728
3190 3 45424.17186732298419044352
3191 2 45425.13273269940811464704
3192 1 45425.61317555035558641664
3193 0 45425.85339951654943850496
3199 if (
x > 0 &&
x <= 0xfffff)
3211 e -= (((
e >> 16) * 44938U) + 16U) >> 5;
3214 e -= (((
e >> 16) * 45181U) + 32U) >> 6;
3217 e -= (((
e >> 16) * 45303U) + 64U) >> 7;
3220 e -= (((
e >> 16) * 45365U) + 128U) >> 8;
3223 e -= (((
e >> 16) * 45395U) + 256U) >> 9;
3226 e -= (((
e >> 16) * 45410U) + 512U) >> 10;
3229 e -= (((
e >> 16) * 355U * (
x & 0x3fU)) + 256U) >> 9;
3238 return png_32bit_exp[0];
3255 return (png_byte)(((
x + 0x7fffffU) >> 24) & 0xff);
3258#ifdef PNG_16BIT_SUPPORTED
3267 return (png_uint_16)((
x + 32767U) >> 16);
3277# ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED
3305 png_int_32 lg2 = png_log8bit(
value);
3308 if (png_muldiv(&
res, gamma_val, lg2,
PNG_FP_1) != 0)
3309 return png_exp8bit(
res);
3316 return (png_byte)(
value & 0xff);
3319#ifdef PNG_16BIT_SUPPORTED
3325# ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED
3332 gamma_val*.00001)+.5);
3333 return (png_uint_16)
r;
3335 png_int_32 lg2 = png_log16bit(
value);
3338 if (png_muldiv(&
res, gamma_val, lg2,
PNG_FP_1) != 0)
3339 return png_exp16bit(
res);
3346 return (png_uint_16)
value;
3360 return png_gamma_8bit_correct(
value, gamma_val);
3362#ifdef PNG_16BIT_SUPPORTED
3364 return png_gamma_16bit_correct(
value, gamma_val);
3371#ifdef PNG_16BIT_SUPPORTED
3385 unsigned int num = 1U << (8U -
shift);
3386#ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED
3390 double fmax = 1.0 / (((png_int_32)1 << (16U -
shift)) - 1);
3392 unsigned int max = (1U << (16U -
shift)) - 1U;
3393 unsigned int max_by_2 = 1U << (15U -
shift);
3399 for (
i = 0;
i <
num;
i++)
3407 if (png_gamma_significant(gamma_val) != 0)
3418 for (
j = 0;
j < 256;
j++)
3421# ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED
3427 sub_table[
j] = (png_uint_16)
d;
3430 ig = (ig * 65535U + max_by_2)/
max;
3432 sub_table[
j] = png_gamma_16bit_correct(ig, gamma_val);
3441 for (
j = 0;
j < 256;
j++)
3446 ig = (ig * 65535U + max_by_2)/
max;
3448 sub_table[
j] = (png_uint_16)ig;
3461 unsigned int num = 1U << (8U -
shift);
3462 unsigned int max = (1U << (16U -
shift))-1U;
3473 for (
i = 0;
i <
num;
i++)
3475 256 * (
sizeof (png_uint_16)));
3494 for (
i = 0;
i < 255; ++
i)
3497 png_uint_16
out = (png_uint_16)(
i * 257U);
3500 png_uint_32 bound = png_gamma_16bit_correct(
out+128U, gamma_val);
3503 bound = (bound *
max + 32768U)/65535U + 1U;
3505 while (
last < bound)
3532 if (png_gamma_significant(gamma_val) != 0)
3533 for (
i=0;
i<256;
i++)
3534 table[
i] = png_gamma_8bit_correct(
i, gamma_val);
3537 for (
i=0;
i<256; ++
i)
3538 table[
i] = (png_byte)(
i & 0xff);
3550#ifdef PNG_16BIT_SUPPORTED
3554 int istop = (1 << (8 -
png_ptr->gamma_shift));
3555 for (
i = 0;
i < istop;
i++)
3564#if defined(PNG_READ_BACKGROUND_SUPPORTED) || \
3565 defined(PNG_READ_ALPHA_MODE_SUPPORTED) || \
3566 defined(PNG_READ_RGB_TO_GRAY_SUPPORTED)
3572#ifdef PNG_16BIT_SUPPORTED
3576 int istop = (1 << (8 -
png_ptr->gamma_shift));
3577 for (
i = 0;
i < istop;
i++)
3587 int istop = (1 << (8 -
png_ptr->gamma_shift));
3588 for (
i = 0;
i < istop;
i++)
3607#if defined(PNG_READ_BACKGROUND_SUPPORTED) || \
3608 defined(PNG_READ_ALPHA_MODE_SUPPORTED) || \
3609 defined(PNG_READ_RGB_TO_GRAY_SUPPORTED)
3610# define GAMMA_TRANSFORMS 1
3612# define GAMMA_TRANSFORMS 0
3620# if GAMMA_TRANSFORMS
3624 png_debug(1,
"in png_build_gamma_table");
3634 png_warning(
png_ptr,
"gamma table being rebuilt");
3635 png_destroy_gamma_table(
png_ptr);
3642 file_gamma =
png_ptr->file_gamma;
3644# if GAMMA_TRANSFORMS
3645 file_to_linear = png_reciprocal(file_gamma);
3650# if GAMMA_TRANSFORMS
3653 correction = png_reciprocal2(
screen_gamma, file_gamma);
3657# if GAMMA_TRANSFORMS
3658 linear_to_screen = file_gamma;
3665 png_build_8bit_table(
png_ptr, &
png_ptr->gamma_table, correction);
3670 png_build_8bit_table(
png_ptr, &
png_ptr->gamma_to_1, file_to_linear);
3677#ifdef PNG_16BIT_SUPPORTED
3680 png_byte
shift, sig_bit;
3684 sig_bit =
png_ptr->sig_bit.red;
3686 if (
png_ptr->sig_bit.green > sig_bit)
3687 sig_bit =
png_ptr->sig_bit.green;
3689 if (
png_ptr->sig_bit.blue > sig_bit)
3690 sig_bit =
png_ptr->sig_bit.blue;
3693 sig_bit =
png_ptr->sig_bit.gray;
3713 if (sig_bit > 0 && sig_bit < 16U)
3715 shift = (png_byte)((16U - sig_bit) & 0xff);
3742 png_reciprocal(correction));
3747# if GAMMA_TRANSFORMS
3767#ifdef PNG_SET_OPTION_SUPPORTED
3788#if defined(PNG_SIMPLIFIED_READ_SUPPORTED) ||\
3789 defined(PNG_SIMPLIFIED_WRITE_SUPPORTED)
3808#ifdef PNG_SIMPLIFIED_READ_SUPPORTED
3810const png_uint_16 png_sRGB_table[256] =
3812 0,20,40,60,80,99,119,139,
3813 159,179,199,219,241,264,288,313,
3814 340,367,396,427,458,491,526,562,
3815 599,637,677,718,761,805,851,898,
3816 947,997,1048,1101,1156,1212,1270,1330,
3817 1391,1453,1517,1583,1651,1720,1790,1863,
3818 1937,2013,2090,2170,2250,2333,2418,2504,
3819 2592,2681,2773,2866,2961,3058,3157,3258,
3820 3360,3464,3570,3678,3788,3900,4014,4129,
3821 4247,4366,4488,4611,4736,4864,4993,5124,
3822 5257,5392,5530,5669,5810,5953,6099,6246,
3823 6395,6547,6700,6856,7014,7174,7335,7500,
3824 7666,7834,8004,8177,8352,8528,8708,8889,
3825 9072,9258,9445,9635,9828,10022,10219,10417,
3826 10619,10822,11028,11235,11446,11658,11873,12090,
3827 12309,12530,12754,12980,13209,13440,13673,13909,
3828 14146,14387,14629,14874,15122,15371,15623,15878,
3829 16135,16394,16656,16920,17187,17456,17727,18001,
3830 18277,18556,18837,19121,19407,19696,19987,20281,
3831 20577,20876,21177,21481,21787,22096,22407,22721,
3832 23038,23357,23678,24002,24329,24658,24990,25325,
3833 25662,26001,26344,26688,27036,27386,27739,28094,
3834 28452,28813,29176,29542,29911,30282,30656,31033,
3835 31412,31794,32179,32567,32957,33350,33745,34143,
3836 34544,34948,35355,35764,36176,36591,37008,37429,
3837 37852,38278,38706,39138,39572,40009,40449,40891,
3838 41337,41785,42236,42690,43147,43606,44069,44534,
3839 45002,45473,45947,46423,46903,47385,47871,48359,
3840 48850,49344,49841,50341,50844,51349,51858,52369,
3841 52884,53401,53921,54445,54971,55500,56032,56567,
3842 57105,57646,58190,58737,59287,59840,60396,60955,
3843 61517,62082,62650,63221,63795,64372,64952,65535
3850const png_uint_16 png_sRGB_base[512] =
3852 128,1782,3383,4644,5675,6564,7357,8074,
3853 8732,9346,9921,10463,10977,11466,11935,12384,
3854 12816,13233,13634,14024,14402,14769,15125,15473,
3855 15812,16142,16466,16781,17090,17393,17690,17981,
3856 18266,18546,18822,19093,19359,19621,19879,20133,
3857 20383,20630,20873,21113,21349,21583,21813,22041,
3858 22265,22487,22707,22923,23138,23350,23559,23767,
3859 23972,24175,24376,24575,24772,24967,25160,25352,
3860 25542,25730,25916,26101,26284,26465,26645,26823,
3861 27000,27176,27350,27523,27695,27865,28034,28201,
3862 28368,28533,28697,28860,29021,29182,29341,29500,
3863 29657,29813,29969,30123,30276,30429,30580,30730,
3864 30880,31028,31176,31323,31469,31614,31758,31902,
3865 32045,32186,32327,32468,32607,32746,32884,33021,
3866 33158,33294,33429,33564,33697,33831,33963,34095,
3867 34226,34357,34486,34616,34744,34873,35000,35127,
3868 35253,35379,35504,35629,35753,35876,35999,36122,
3869 36244,36365,36486,36606,36726,36845,36964,37083,
3870 37201,37318,37435,37551,37668,37783,37898,38013,
3871 38127,38241,38354,38467,38580,38692,38803,38915,
3872 39026,39136,39246,39356,39465,39574,39682,39790,
3873 39898,40005,40112,40219,40325,40431,40537,40642,
3874 40747,40851,40955,41059,41163,41266,41369,41471,
3875 41573,41675,41777,41878,41979,42079,42179,42279,
3876 42379,42478,42577,42676,42775,42873,42971,43068,
3877 43165,43262,43359,43456,43552,43648,43743,43839,
3878 43934,44028,44123,44217,44311,44405,44499,44592,
3879 44685,44778,44870,44962,45054,45146,45238,45329,
3880 45420,45511,45601,45692,45782,45872,45961,46051,
3881 46140,46229,46318,46406,46494,46583,46670,46758,
3882 46846,46933,47020,47107,47193,47280,47366,47452,
3883 47538,47623,47709,47794,47879,47964,48048,48133,
3884 48217,48301,48385,48468,48552,48635,48718,48801,
3885 48884,48966,49048,49131,49213,49294,49376,49458,
3886 49539,49620,49701,49782,49862,49943,50023,50103,
3887 50183,50263,50342,50422,50501,50580,50659,50738,
3888 50816,50895,50973,51051,51129,51207,51285,51362,
3889 51439,51517,51594,51671,51747,51824,51900,51977,
3890 52053,52129,52205,52280,52356,52432,52507,52582,
3891 52657,52732,52807,52881,52956,53030,53104,53178,
3892 53252,53326,53400,53473,53546,53620,53693,53766,
3893 53839,53911,53984,54056,54129,54201,54273,54345,
3894 54417,54489,54560,54632,54703,54774,54845,54916,
3895 54987,55058,55129,55199,55269,55340,55410,55480,
3896 55550,55620,55689,55759,55828,55898,55967,56036,
3897 56105,56174,56243,56311,56380,56448,56517,56585,
3898 56653,56721,56789,56857,56924,56992,57059,57127,
3899 57194,57261,57328,57395,57462,57529,57595,57662,
3900 57728,57795,57861,57927,57993,58059,58125,58191,
3901 58256,58322,58387,58453,58518,58583,58648,58713,
3902 58778,58843,58908,58972,59037,59101,59165,59230,
3903 59294,59358,59422,59486,59549,59613,59677,59740,
3904 59804,59867,59930,59993,60056,60119,60182,60245,
3905 60308,60370,60433,60495,60558,60620,60682,60744,
3906 60806,60868,60930,60992,61054,61115,61177,61238,
3907 61300,61361,61422,61483,61544,61605,61666,61727,
3908 61788,61848,61909,61969,62030,62090,62150,62211,
3909 62271,62331,62391,62450,62510,62570,62630,62689,
3910 62749,62808,62867,62927,62986,63045,63104,63163,
3911 63222,63281,63340,63398,63457,63515,63574,63632,
3912 63691,63749,63807,63865,63923,63981,64039,64097,
3913 64155,64212,64270,64328,64385,64443,64500,64557,
3914 64614,64672,64729,64786,64843,64900,64956,65013,
3915 65070,65126,65183,65239,65296,65352,65409,65465
3918const png_byte png_sRGB_delta[512] =
3920 207,201,158,129,113,100,90,82,77,72,68,64,61,59,56,54,
3921 52,50,49,47,46,45,43,42,41,40,39,39,38,37,36,36,
3922 35,34,34,33,33,32,32,31,31,30,30,30,29,29,28,28,
3923 28,27,27,27,27,26,26,26,25,25,25,25,24,24,24,24,
3924 23,23,23,23,23,22,22,22,22,22,22,21,21,21,21,21,
3925 21,20,20,20,20,20,20,20,20,19,19,19,19,19,19,19,
3926 19,18,18,18,18,18,18,18,18,18,18,17,17,17,17,17,
3927 17,17,17,17,17,17,16,16,16,16,16,16,16,16,16,16,
3928 16,16,16,16,15,15,15,15,15,15,15,15,15,15,15,15,
3929 15,15,15,15,14,14,14,14,14,14,14,14,14,14,14,14,
3930 14,14,14,14,14,14,14,13,13,13,13,13,13,13,13,13,
3931 13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,
3932 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
3933 12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,11,
3934 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,
3935 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,
3936 11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,
3937 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,
3938 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,
3939 10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,
3940 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,
3941 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,
3942 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,
3943 9,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
3944 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
3945 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
3946 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
3947 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
3948 8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7,
3949 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
3950 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
3951 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
3956#if defined(PNG_SIMPLIFIED_READ_SUPPORTED) ||\
3957 defined(PNG_SIMPLIFIED_WRITE_SUPPORTED)
3959png_image_free_function(
png_voidp argument)
3972# ifdef PNG_STDIO_SUPPORTED
3973 if (
cp->owned_file != 0)
3981 cp->png_ptr->io_ptr =
NULL;
3994 png_free(
c.png_ptr,
cp);
3997 if (
c.for_write != 0)
3999# ifdef PNG_SIMPLIFIED_WRITE_SUPPORTED
4000 png_destroy_write_struct(&
c.png_ptr, &
c.info_ptr);
4002 png_error(
c.png_ptr,
"simplified write not supported");
4007# ifdef PNG_SIMPLIFIED_READ_SUPPORTED
4008 png_destroy_read_struct(&
c.png_ptr, &
c.info_ptr,
NULL);
4010 png_error(
c.png_ptr,
"simplified read not supported");
4028 png_image_free_function(
image);
4039 png_image_free(
image);
static const char * onoff(int bool)
static void print(LPPRINTDLGW pd, LPWSTR wszFileName)
#define APPEND(From, Length)
void error_message(HWND hwnd, const char *msg)
static WCHAR reason[MAX_STRING_RESOURCE_LEN]
#define crc32(crc, buf, len)
static int inflateReset(z_streamp strm)
int CDECL fclose(FILE *file)
_ACRTIMP int __cdecl memcmp(const void *, const void *, size_t)
_ACRTIMP double __cdecl modf(double, double *)
_ACRTIMP double __cdecl floor(double)
_ACRTIMP double __cdecl frexp(double, int *)
_ACRTIMP void __cdecl longjmp(jmp_buf, int)
struct png_info_def *typedef unsigned char **typedef struct png_info_def *typedef struct png_info_def *typedef struct png_info_def *typedef unsigned char ** row
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
double pow(double x, double y)
GLint GLint GLint GLint GLint x
GLuint GLuint GLsizei GLenum type
GLint GLint GLsizei GLsizei height
GLdouble GLdouble GLdouble r
GLint GLint GLsizei width
GLboolean GLboolean GLboolean b
GLenum GLuint GLenum GLsizei const GLchar * buf
GLuint GLsizei GLsizei * length
GLenum GLint GLint * precision
GLboolean GLboolean GLboolean GLboolean a
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
static const int digits[]
struct task_struct * current
static const struct encodedFiletime times[]
static unsigned int number
#define PNG_COLOR_TYPE_RGB
#define PNG_COLOR_TYPE_RGB_ALPHA
#define PNG_COLOR_TYPE_GRAY_ALPHA
#define PNG_COLOR_TYPE_PALETTE
static size_t double int ndigits
__forceinline bool __cdecl add(big_integer &x, uint32_t const value)
png_voidp PNGAPI png_get_io_ptr(png_const_structrp png_ptr)
png_const_charp PNGAPI png_get_copyright(png_const_structrp png_ptr)
png_libpng_version_1_6_54 Your_png_h_is_not_version_1_6_54
png_const_charp PNGAPI png_get_header_ver(png_const_structrp png_ptr)
png_const_charp PNGAPI png_get_libpng_ver(png_const_structrp png_ptr)
png_const_charp PNGAPI png_get_header_version(png_const_structrp png_ptr)
png_uint_32 PNGAPI png_access_version_number(void)
#define PNG_OPTION_INVALID
png_structrp png_fixed_point screen_gamma
#define PNG_INTRAPIXEL_DIFFERENCING
struct png_control * png_controlp
#define PNG_FLAG_MNG_FILTER_64
#define PNG_sRGB_INTENT_LAST
#define PNG_COLOR_MASK_COLOR
#define PNG_HEADER_VERSION_STRING
#define PNG_DESTROY_WILL_FREE_DATA
#define PNG_FILTER_TYPE_BASE
#define png_get_uint_32(buf)
#define PNG_USER_WILL_FREE_DATA
#define PNG_INTERLACE_LAST
const png_struct *PNG_RESTRICT png_const_structrp
char * png_libpng_version_1_6_54
#define PNG_LIBPNG_VER_STRING
png_info *PNG_RESTRICT png_inforp
#define PNG_COMPRESSION_TYPE_BASE
#define PNG_HANDLE_CHUNK_AS_DEFAULT
png_struct *PNG_RESTRICT png_structrp
png_const_structrp png_const_inforp info_ptr
#define PNG_FUNCTION(type, name, args, attributes)
png_int_32 png_fixed_point
const png_byte * png_const_bytep
png_uint_16 * png_uint_16p
png_fixed_point * png_fixed_point_p
const char * png_const_charp
png_uint_16 ** png_uint_16pp
#define PNG_STRING_NEWLINE
#define PNG_USER_HEIGHT_MAX
#define PNG_USER_CHUNK_MALLOC_MAX
#define PNG_USER_CHUNK_CACHE_MAX
#define PNG_USER_WIDTH_MAX
#define PNG_GAMMA_THRESHOLD_FIXED
#define PNG_SCALE_16_TO_8
#define PNG_UNEXPECTED_ZLIB_RETURN
#define PNG_UNUSED(param)
#define PNG_HAVE_PNG_SIGNATURE
#define png_fixed_error(s1, s2)
#define PNG_FLAG_CRC_ANCILLARY_USE
#define PNG_FLAG_CRC_ANCILLARY_NOWARN
#define PNG_FLAG_LIBRARY_MISMATCH
#define PNG_FLAG_CRC_ANCILLARY_MASK
#define PNG_CSTRING_FROM_CHUNK(s, c)
#define PNG_FLAG_CRC_CRITICAL_IGNORE
#define PNG_CHUNK_ANCILLARY(c)
#define png_voidcast(type, value)
#define png_has_chunk(png_ptr, cHNK)
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out