From 263ae8df6b79de031731552a396cdc7667a025b1 Mon Sep 17 00:00:00 2001 From: halogen Date: Thu, 5 Mar 2026 10:15:24 -0500 Subject: [PATCH] iob shim --- ...@MSVC@14.44.35207@include@concurrencysal.h | 394 --- ...@14.44.35207@include@concurrencysal.h.blob | Bin 11121 -> 0 bytes ...VC@Tools@MSVC@14.44.35207@include@limits.h | 76 - ...ols@MSVC@14.44.35207@include@limits.h.blob | Bin 5115 -> 0 bytes ...vc@VC@Tools@MSVC@14.44.35207@include@sal.h | 2974 ----------------- ...@Tools@MSVC@14.44.35207@include@sal.h.blob | Bin 195296 -> 0 bytes ...VC@Tools@MSVC@14.44.35207@include@vadefs.h | 208 -- ...ols@MSVC@14.44.35207@include@vadefs.h.blob | Bin 5268 -> 0 bytes ...Tools@MSVC@14.44.35207@include@vcruntime.h | 416 --- ...@MSVC@14.44.35207@include@vcruntime.h.blob | Bin 8664 -> 0 bytes ...SVC@14.44.35207@include@vcruntime_string.h | 113 - ...4.44.35207@include@vcruntime_string.h.blob | Bin 5354 -> 0 bytes ...its@10@Include@10.0.26100.0@ucrt@corecrt.h | 2114 ------------ ...0@Include@10.0.26100.0@ucrt@corecrt.h.blob | Bin 42236 -> 0 bytes ...@10@Include@10.0.26100.0@ucrt@corecrt_io.h | 572 ---- ...nclude@10.0.26100.0@ucrt@corecrt_io.h.blob | Bin 17165 -> 0 bytes ...Include@10.0.26100.0@ucrt@corecrt_malloc.h | 234 -- ...de@10.0.26100.0@ucrt@corecrt_malloc.h.blob | Bin 6998 -> 0 bytes ...clude@10.0.26100.0@ucrt@corecrt_memcpy_s.h | 95 - ...@10.0.26100.0@ucrt@corecrt_memcpy_s.h.blob | Bin 5783 -> 0 bytes ...Include@10.0.26100.0@ucrt@corecrt_memory.h | 122 - ...de@10.0.26100.0@ucrt@corecrt_memory.h.blob | Bin 4567 -> 0 bytes ...Include@10.0.26100.0@ucrt@corecrt_search.h | 218 -- ...de@10.0.26100.0@ucrt@corecrt_search.h.blob | Bin 6274 -> 0 bytes ...@Include@10.0.26100.0@ucrt@corecrt_share.h | 33 - ...ude@10.0.26100.0@ucrt@corecrt_share.h.blob | Bin 4764 -> 0 bytes ...e@10.0.26100.0@ucrt@corecrt_stdio_config.h | 131 - ...0.26100.0@ucrt@corecrt_stdio_config.h.blob | Bin 6606 -> 0 bytes ...10@Include@10.0.26100.0@ucrt@corecrt_wio.h | 270 -- ...clude@10.0.26100.0@ucrt@corecrt_wio.h.blob | Bin 10735 -> 0 bytes ...Include@10.0.26100.0@ucrt@corecrt_wstdio.h | 2171 ------------ ...de@10.0.26100.0@ucrt@corecrt_wstdio.h.blob | Bin 41032 -> 0 bytes ...nclude@10.0.26100.0@ucrt@corecrt_wstdlib.h | 481 --- ...e@10.0.26100.0@ucrt@corecrt_wstdlib.h.blob | Bin 14697 -> 0 bytes ...nclude@10.0.26100.0@ucrt@corecrt_wstring.h | 642 ---- ...e@10.0.26100.0@ucrt@corecrt_wstring.h.blob | Bin 14587 -> 0 bytes ... Kits@10@Include@10.0.26100.0@ucrt@errno.h | 137 - ...@10@Include@10.0.26100.0@ucrt@errno.h.blob | Bin 9798 -> 0 bytes ... Kits@10@Include@10.0.26100.0@ucrt@fcntl.h | 68 - ...@10@Include@10.0.26100.0@ucrt@fcntl.h.blob | Bin 6523 -> 0 bytes ...ows Kits@10@Include@10.0.26100.0@ucrt@io.h | 13 - ...its@10@Include@10.0.26100.0@ucrt@io.h.blob | Bin 4122 -> 0 bytes ... Kits@10@Include@10.0.26100.0@ucrt@stdio.h | 2448 -------------- ...@10@Include@10.0.26100.0@ucrt@stdio.h.blob | Bin 47524 -> 0 bytes ...Kits@10@Include@10.0.26100.0@ucrt@stdlib.h | 1362 -------- ...10@Include@10.0.26100.0@ucrt@stdlib.h.blob | Bin 33647 -> 0 bytes ...Kits@10@Include@10.0.26100.0@ucrt@string.h | 592 ---- ...10@Include@10.0.26100.0@ucrt@string.h.blob | Bin 13895 -> 0 bytes ...s@10@Include@10.0.26100.0@ucrt@sys@types.h | 51 - ...Include@10.0.26100.0@ucrt@sys@types.h.blob | Bin 3737 -> 0 bytes ...clang@21@include@__stdarg___gnuc_va_list.h | 13 - ...@21@include@__stdarg___gnuc_va_list.h.blob | Bin 3466 -> 0 bytes ...@lib@clang@21@include@__stdarg___va_copy.h | 12 - ...clang@21@include@__stdarg___va_copy.h.blob | Bin 3499 -> 0 bytes ...b@clang@21@include@__stdarg_header_macro.h | 12 - ...ng@21@include@__stdarg_header_macro.h.blob | Bin 3460 -> 0 bytes ...usr@lib@clang@21@include@__stdarg_va_arg.h | 22 - ...ib@clang@21@include@__stdarg_va_arg.h.blob | Bin 3701 -> 0 bytes ...sr@lib@clang@21@include@__stdarg_va_copy.h | 12 - ...b@clang@21@include@__stdarg_va_copy.h.blob | Bin 3507 -> 0 bytes ...sr@lib@clang@21@include@__stdarg_va_list.h | 13 - ...b@clang@21@include@__stdarg_va_list.h.blob | Bin 3461 -> 0 bytes ...b@clang@21@include@__stddef_header_macro.h | 12 - ...ng@21@include@__stddef_header_macro.h.blob | Bin 3468 -> 0 bytes ...ib@clang@21@include@__stddef_max_align_t.h | 27 - ...ang@21@include@__stddef_max_align_t.h.blob | Bin 3499 -> 0 bytes .../@usr@lib@clang@21@include@__stddef_null.h | 29 - ...@lib@clang@21@include@__stddef_null.h.blob | Bin 3505 -> 0 bytes ...r@lib@clang@21@include@__stddef_offsetof.h | 17 - ...@clang@21@include@__stddef_offsetof.h.blob | Bin 3547 -> 0 bytes ...@lib@clang@21@include@__stddef_ptrdiff_t.h | 20 - ...clang@21@include@__stddef_ptrdiff_t.h.blob | Bin 3547 -> 0 bytes ...usr@lib@clang@21@include@__stddef_size_t.h | 20 - ...ib@clang@21@include@__stddef_size_t.h.blob | Bin 3544 -> 0 bytes ...sr@lib@clang@21@include@__stddef_wchar_t.h | 28 - ...b@clang@21@include@__stddef_wchar_t.h.blob | Bin 3617 -> 0 bytes .../@usr@lib@clang@21@include@limits.h | 133 - .../@usr@lib@clang@21@include@limits.h.blob | Bin 4563 -> 0 bytes .../@usr@lib@clang@21@include@stdarg.h | 75 - .../@usr@lib@clang@21@include@stdarg.h.blob | Bin 4140 -> 0 bytes .../@usr@lib@clang@21@include@stddef.h | 139 - .../@usr@lib@clang@21@include@stddef.h.blob | Bin 4333 -> 0 bytes .../@usr@lib@clang@21@include@vadefs.h | 51 - .../@usr@lib@clang@21@include@vadefs.h.blob | Bin 3900 -> 0 bytes .../Minecraft.Client@Common@zlib@adler32.c | 178 - ...inecraft.Client@Common@zlib@adler32.c.blob | Bin 5275 -> 0 bytes .../Minecraft.Client@Common@zlib@compress.c | 81 - ...necraft.Client@Common@zlib@compress.c.blob | Bin 5493 -> 0 bytes .../Minecraft.Client@Common@zlib@crc32.c | 425 --- .../Minecraft.Client@Common@zlib@crc32.c.blob | Bin 7740 -> 0 bytes .../Minecraft.Client@Common@zlib@crc32.h | 441 --- .../Minecraft.Client@Common@zlib@crc32.h.blob | Bin 3685 -> 0 bytes .../Minecraft.Client@Common@zlib@deflate.c | 1967 ----------- ...inecraft.Client@Common@zlib@deflate.c.blob | Bin 39954 -> 0 bytes .../Minecraft.Client@Common@zlib@deflate.h | 346 -- ...inecraft.Client@Common@zlib@deflate.h.blob | Bin 16533 -> 0 bytes .../Minecraft.Client@Common@zlib@gzclose.c | 25 - ...inecraft.Client@Common@zlib@gzclose.c.blob | Bin 4666 -> 0 bytes .../Minecraft.Client@Common@zlib@gzguts.h | 209 -- ...Minecraft.Client@Common@zlib@gzguts.h.blob | Bin 8831 -> 0 bytes .../Minecraft.Client@Common@zlib@gzlib.c | 634 ---- .../Minecraft.Client@Common@zlib@gzlib.c.blob | Bin 12958 -> 0 bytes .../Minecraft.Client@Common@zlib@gzread.c | 594 ---- ...Minecraft.Client@Common@zlib@gzread.c.blob | Bin 14772 -> 0 bytes .../Minecraft.Client@Common@zlib@gzwrite.c | 577 ---- ...inecraft.Client@Common@zlib@gzwrite.c.blob | Bin 12553 -> 0 bytes .../Minecraft.Client@Common@zlib@infback.c | 640 ---- ...inecraft.Client@Common@zlib@infback.c.blob | Bin 18758 -> 0 bytes .../Minecraft.Client@Common@zlib@inffast.c | 340 -- ...inecraft.Client@Common@zlib@inffast.c.blob | Bin 7599 -> 0 bytes .../Minecraft.Client@Common@zlib@inffast.h | 11 - ...inecraft.Client@Common@zlib@inffast.h.blob | Bin 3964 -> 0 bytes .../Minecraft.Client@Common@zlib@inffixed.h | 94 - ...necraft.Client@Common@zlib@inffixed.h.blob | Bin 3738 -> 0 bytes .../Minecraft.Client@Common@zlib@inflate.c | 1512 --------- ...inecraft.Client@Common@zlib@inflate.c.blob | Bin 44634 -> 0 bytes .../Minecraft.Client@Common@zlib@inflate.h | 122 - ...inecraft.Client@Common@zlib@inflate.h.blob | Bin 8383 -> 0 bytes .../Minecraft.Client@Common@zlib@inftrees.c | 306 -- ...necraft.Client@Common@zlib@inftrees.c.blob | Bin 5370 -> 0 bytes .../Minecraft.Client@Common@zlib@inftrees.h | 62 - ...necraft.Client@Common@zlib@inftrees.h.blob | Bin 6616 -> 0 bytes .../Minecraft.Client@Common@zlib@trees.c | 1226 ------- .../Minecraft.Client@Common@zlib@trees.c.blob | Bin 25050 -> 0 bytes .../Minecraft.Client@Common@zlib@trees.h | 128 - .../Minecraft.Client@Common@zlib@trees.h.blob | Bin 4797 -> 0 bytes .../Minecraft.Client@Common@zlib@uncompr.c | 59 - ...inecraft.Client@Common@zlib@uncompr.c.blob | Bin 4638 -> 0 bytes .../Minecraft.Client@Common@zlib@zconf.h | 511 --- .../Minecraft.Client@Common@zlib@zconf.h.blob | Bin 4181 -> 0 bytes .../Minecraft.Client@Common@zlib@zlib.h | 1768 ---------- .../Minecraft.Client@Common@zlib@zlib.h.blob | Bin 73645 -> 0 bytes .../Minecraft.Client@Common@zlib@zutil.c | 324 -- .../Minecraft.Client@Common@zlib@zutil.c.blob | Bin 5832 -> 0 bytes .../Minecraft.Client@Common@zlib@zutil.h | 253 -- .../Minecraft.Client@Common@zlib@zutil.h.blob | Bin 6381 -> 0 bytes 136 files changed, 29403 deletions(-) delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@concurrencysal.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@concurrencysal.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@limits.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@limits.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@sal.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@sal.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@vadefs.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@vadefs.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@vcruntime.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@vcruntime.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@vcruntime_string.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@vcruntime_string.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_io.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_io.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_malloc.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_malloc.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_memcpy_s.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_memcpy_s.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_memory.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_memory.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_search.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_search.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_share.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_share.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_stdio_config.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_stdio_config.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_wio.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_wio.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_wstdio.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_wstdio.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_wstdlib.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_wstdlib.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_wstring.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_wstring.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@errno.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@errno.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@fcntl.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@fcntl.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@io.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@io.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@stdio.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@stdio.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@stdlib.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@stdlib.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@string.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@string.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@sys@types.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@sys@types.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg___gnuc_va_list.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg___gnuc_va_list.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg___va_copy.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg___va_copy.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg_header_macro.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg_header_macro.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg_va_arg.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg_va_arg.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg_va_copy.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg_va_copy.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg_va_list.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg_va_list.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_header_macro.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_header_macro.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_max_align_t.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_max_align_t.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_null.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_null.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_offsetof.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_offsetof.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_ptrdiff_t.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_ptrdiff_t.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_size_t.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_size_t.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_wchar_t.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_wchar_t.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@limits.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@limits.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@stdarg.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@stdarg.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@stddef.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@stddef.h.blob delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@vadefs.h delete mode 100644 .ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@vadefs.h.blob delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@adler32.c delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@adler32.c.blob delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@compress.c delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@compress.c.blob delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@crc32.c delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@crc32.c.blob delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@crc32.h delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@crc32.h.blob delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@deflate.c delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@deflate.c.blob delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@deflate.h delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@deflate.h.blob delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@gzclose.c delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@gzclose.c.blob delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@gzguts.h delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@gzguts.h.blob delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@gzlib.c delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@gzlib.c.blob delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@gzread.c delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@gzread.c.blob delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@gzwrite.c delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@gzwrite.c.blob delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@infback.c delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@infback.c.blob delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inffast.c delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inffast.c.blob delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inffast.h delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inffast.h.blob delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inffixed.h delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inffixed.h.blob delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inflate.c delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inflate.c.blob delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inflate.h delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inflate.h.blob delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inftrees.c delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inftrees.c.blob delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inftrees.h delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inftrees.h.blob delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@trees.c delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@trees.c.blob delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@trees.h delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@trees.h.blob delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@uncompr.c delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@uncompr.c.blob delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@zconf.h delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@zconf.h.blob delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@zlib.h delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@zlib.h.blob delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@zutil.c delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@zutil.c.blob delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@zutil.h delete mode 100644 .ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@zutil.h.blob diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@concurrencysal.h b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@concurrencysal.h deleted file mode 100644 index f1393af84..000000000 --- a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@concurrencysal.h +++ /dev/null @@ -1,394 +0,0 @@ -/*** -*concurrencysal.h - markers for documenting the concurrent semantics of APIs -* -* Copyright (c) Microsoft Corporation. All rights reserved. -* -*Purpose: -* This file contains macros for Concurrency SAL annotations. Definitions -* starting with _Internal are low level macros that are subject to change. -* Users should not use those low level macros directly. -* [ANSI] -* -* [Public] -* -****/ - -#ifndef CONCURRENCYSAL_H -#define CONCURRENCYSAL_H - -#pragma once - -#ifdef __cplusplus // [ -extern "C" { -#endif // ] - -#if !defined(__midl) && defined(_PREFAST_) && !defined(_SDV_) - -__ANNOTATION(SAL_guarded_by(__deferTypecheck void *)); -__ANNOTATION(SAL_write_guarded_by(__deferTypecheck void *)); -__ANNOTATION(SAL_requires_lock_held(__deferTypecheck void *)); -__ANNOTATION(SAL_requires_exclusive_lock_held(__deferTypecheck void *)); -__ANNOTATION(SAL_requires_shared_lock_held(__deferTypecheck void *)); -__ANNOTATION(SAL_requires_lock_not_held(__deferTypecheck void *)); -__ANNOTATION(SAL_requires_no_locks_held(void)); -__ANNOTATION(SAL_set_lock_count_to_zero(__deferTypecheck void *)); -__ANNOTATION(SAL_set_lock_count_to_one(__deferTypecheck void *)); -__ANNOTATION(SAL_acquires_lock(__deferTypecheck void *)); -__ANNOTATION(SAL_acquires_exclusive_lock(__deferTypecheck void *)); -__ANNOTATION(SAL_acquires_shared_lock(__deferTypecheck void *)); -__ANNOTATION(SAL_releases_lock(__deferTypecheck void *)); -__ANNOTATION(SAL_releases_exclusive_lock(__deferTypecheck void *)); -__ANNOTATION(SAL_releases_shared_lock(__deferTypecheck void *)); -__ANNOTATION(SAL_ignore_lock_match(__deferTypecheck void *)); -__ANNOTATION(SAL_has_lock_property(__AuToQuOtE __In_impl_ char *)); -__ANNOTATION(SAL_has_lock_level(__AuToQuOtE __In_impl_ char *)); -__ANNOTATION(SAL_lock_level_order(__deferTypecheck void *, __deferTypecheck void *)); -__ANNOTATION(SAL_no_competing_thread(void)); -__ANNOTATION(SAL_set_same_lock(__deferTypecheck void *, __deferTypecheck void *)); - -/* - * pre-defined global system locks - */ -extern int _Global_interlock_; -extern int _Global_cancel_spin_lock_; -extern int _Global_critical_region_; - -/* - * Annotation identifiers - */ -#define _Internal_create_CSAL_identifier_(id) const char id[] = ""; - -_Internal_create_CSAL_identifier_(_Lock_kind_mutex_) -_Internal_create_CSAL_identifier_(_Lock_kind_event_) -_Internal_create_CSAL_identifier_(_Lock_kind_semaphore_) -_Internal_create_CSAL_identifier_(_Lock_kind_spin_lock_) -_Internal_create_CSAL_identifier_(_Lock_kind_critical_section_) - -/* - * data protection - */ -#define _Guarded_by_(lock) _SAL2_Source_(_Guarded_by_, (lock), _SA_annotes1(SAL_guarded_by,lock)) -#define _Write_guarded_by_(lock) _SAL2_Source_(_Write_guarded_by_, (lock), _SA_annotes1(SAL_write_guarded_by,lock)) -#define _Interlocked_ _Guarded_by_(_Global_interlock_) - -/* - * interlocked operand used in interlocked instructions - */ -#ifndef _Interlocked_operand_ -#define _Interlocked_operand_ _SAL2_Source_(_Interlocked_operand_, (), _Pre_ _SA_annotes0(SAL_interlocked)) -#endif - -/* - * caller/callee locking contracts - */ -#define _Requires_lock_held_(lock) _SAL2_Source_(_Requires_lock_held_, (lock), _Pre_ _SA_annotes1(SAL_requires_lock_held,lock)) -#define _Requires_exclusive_lock_held_(lock) _SAL2_Source_(_Requires_exclusive_lock_held_, (lock), _Pre_ _SA_annotes1(SAL_requires_exclusive_lock_held,lock)) -#define _Requires_shared_lock_held_(lock) _SAL2_Source_(_Requires_shared_lock_held_, (lock), _Pre_ _SA_annotes1(SAL_requires_shared_lock_held,lock)) - -#define _Requires_lock_not_held_(lock) _SAL2_Source_(_Requires_lock_not_held_, (lock), _Pre_ _SA_annotes1(SAL_requires_lock_not_held,lock)) -#define _Requires_no_locks_held_ _SAL2_Source_(_Requires_no_locks_held_, (), _Pre_ _SA_annotes0(SAL_requires_no_locks_held)) - -/* - * acquire/release locking side effects - */ -#define _Acquires_lock_(lock) _SAL2_Source_(_Acquires_lock_, (lock), _Post_ _SA_annotes1(SAL_acquires_lock,lock)) -#define _Acquires_exclusive_lock_(lock) _SAL2_Source_(_Acquires_exclusive_lock_, (lock), _Post_ _SA_annotes1(SAL_acquires_exclusive_lock,lock)) -#define _Acquires_shared_lock_(lock) _SAL2_Source_(_Acquires_shared_lock_, (lock), _Post_ _SA_annotes1(SAL_acquires_shared_lock,lock)) - -#define _Releases_lock_(lock) _SAL2_Source_(_Releases_lock_, (lock), _Post_ _SA_annotes1(SAL_releases_lock,lock)) -#define _Releases_exclusive_lock_(lock) _SAL2_Source_(_Releases_exclusive_lock_, (lock), _Post_ _SA_annotes1(SAL_releases_exclusive_lock,lock)) -#define _Releases_shared_lock_(lock) _SAL2_Source_(_Releases_shared_lock_, (lock), _Post_ _SA_annotes1(SAL_releases_shared_lock,lock)) - -/* - * acquire/release locking side effects for non-reentrant locks - */ -#define _Acquires_nonreentrant_lock_(lock) \ - _SAL2_Source_(_Acquires_nonreentrant_lock_, (lock), \ - _Requires_lock_not_held_(lock) \ - _Acquires_lock_(lock)) - -#define _Releases_nonreentrant_lock_(lock) \ - _SAL2_Source_(_Releases_nonreentrant_lock_, (lock), \ - _Requires_lock_held_(lock) \ - _Releases_lock_(lock)) - -#define _Post_same_lock_(a,b) _SAL2_Source_(_Post_same_lock_, (a,b), _Post_ _SA_annotes2(SAL_set_same_lock,a,b)) - -/* - * lock level - */ -#define _Create_lock_level_(level) _Internal_create_CSAL_identifier_(level) - -#define _Has_lock_level_(level) _SAL2_Source_(_Has_lock_level_, (level), _SA_annotes1(SAL_has_lock_level,#level)) - -#define _Internal_lock_level_order_(a,b) _SAL2_Source_(_Internal_lock_level_order_, (a,b), _SA_annotes2(SAL_lock_level_order,a,b)) -#define _Csalcat1_(x,y) x##y -#define _Csalcat2_(x,y) _Csalcat1_(x,y) - -#define _Lock_level_order_(a,b) \ - extern _Internal_lock_level_order_(a,b) void _Sal_order_##a##_##b(_In_z_ const char*a, _In_z_ const char*b); \ - static __inline void CSALCAT2(CSAL_LockOrder,__COUNTER__)(void){_Sal_order_##a##_##b(#a,#b);} - -/* - * threading context - */ -#define _No_competing_thread_ _SAL2_Source_(_No_competing_thread_, (), _Pre_ _SA_annotes0(SAL_no_competing_thread)) - -/* - * refinement and suppression - */ -extern _Acquires_lock_(*plock) void _Internal_acquires_lock_(void* plock); -extern _Releases_lock_(*plock) void _Internal_releases_lock_(void* plock); - -#define _Internal_set_lock_count_to_zero_(lock) _SAL2_Source_(Internal_set_lock_count_to_zero_, (lock), _Post_ _SA_annotes1(SAL_set_lock_count_to_zero,lock)) -#define _Internal_set_lock_count_to_one_(lock) _SAL2_Source_(_Internal_set_lock_count_to_one_, (lock), _Post_ _SA_annotes1(SAL_set_lock_count_to_one,lock)) - -extern _Internal_set_lock_count_to_one_(*plock) void _Internal_lock_held_(void* plock); -extern _Internal_set_lock_count_to_zero_(*plock) void _Internal_lock_not_held_(void* plock); -extern _Post_same_lock_(*plock1, *plock2) void _Internal_same_lock_(void* plock1, void* plock2); - -#define _Analysis_assume_lock_acquired_(lock) _Internal_acquires_lock_((void*)(&(lock))) -#define _Analysis_assume_lock_released_(lock) _Internal_releases_lock_((void*)(&(lock))) - -#define _Analysis_assume_lock_held_(lock) _Internal_lock_held_((void*)(&(lock))) -#define _Analysis_assume_lock_not_held_(lock) _Internal_lock_not_held_((void*)(&(lock))) -#define _Analysis_assume_same_lock_(lock1, lock2) _Internal_same_lock_((void*)(&(lock1)), (void*)(&(lock2))) - -/* - * _Function_ignore_lock_checking_ may be deprecated in future versions of SAL - */ -#define _Function_ignore_lock_checking_(lock) _SAL2_Source_(_Function_ignore_lock_checking_, (lock), _Pre_ _SA_annotes1(SAL_ignore_lock_match,lock)) -extern _Function_ignore_lock_checking_(*plock) void _Internal_suppress_lock_checking_(void* plock); - -/* - * _Analysis_suppress_lock_checking_ may be deprecated in future versions of SAL - */ -#define _Analysis_suppress_lock_checking_(lock) _Internal_suppress_lock_checking_((void*)(&(lock))); - -#define _Benign_race_begin_ __pragma(warning(push)) __pragma(warning(disable:26100 26101 26150 26130 26180 26131 26181 28112)) -#define _Benign_race_end_ __pragma(warning(pop)) - -#define _No_competing_thread_begin_ __pragma(warning(push)) __pragma(warning(disable:26100 26101 26150 26101 26151 26110 26160 26130 26180 26131 26181 28112)) -#define _No_competing_thread_end_ __pragma(warning(pop)) - -/* - * lock kinds - */ -#define _Has_lock_kind_(kind) _SAL2_Source_(_Has_lock_kind_, (kind), _SA_annotes1(SAL_has_lock_property,#kind)) - -/* - * smart locks (RAII lock wrappers) - */ -#ifdef __cplusplus -} // extern "C" - -extern "C++" -{ - template _Acquires_lock_(_smartLock) void _Internal_acquires_smart_lock_(const _SmartLockType& _smartLock); - template _Releases_lock_(_smartLock) void _Internal_releases_smart_lock_(const _SmartLockType& _smartLock); -} // extern "C++" - -#define _Analysis_assume_smart_lock_acquired_(lock) _Internal_acquires_smart_lock_((lock)) -#define _Analysis_assume_smart_lock_released_(lock) _Internal_releases_smart_lock_((lock)) - -extern "C" { -#endif - -/* - * move semantics - */ -#define _Internal_swap_lock_ 0 - -#define _Detaches_lock_(detached, lock) _Post_same_lock_(_Internal_swap_lock_, (lock)) _Post_same_lock_((detached), _Internal_swap_lock_) -#define _Moves_lock_(target, source) _Post_same_lock_(_Internal_swap_lock_, (source)) _Post_same_lock_((target), _Internal_swap_lock_) -#define _Replaces_lock_(target, source) _Post_same_lock_(_Internal_swap_lock_, (target)) _Post_same_lock_((target), (source)) _Releases_lock_(_Internal_swap_lock_) -#define _Swaps_locks_(left, right) _Post_same_lock_(_Internal_swap_lock_, (left)) _Post_same_lock_((left), (right)) _Post_same_lock_((right), _Internal_swap_lock_) - -/* - * Old spelling - * Note: the old version may be deprecated in the future!!! - */ -extern int __system_interlock; -extern int __system_cancel_spinlock; -extern int __system_critical_region; - -#define __guarded_by(lock) _SAL1_1_Source_(__guarded_by, (lock), _SA_annotes1(SAL_guarded_by,lock)) -#define __write_guarded_by(lock) _SAL1_1_Source_(__write_guarded_by, (lock), _SA_annotes1(SAL_write_guarded_by,lock)) -#define __interlocked __guarded_by(_Global_interlock_) - -/* - * caller/callee locking contracts - */ -#define __requires_lock_held(lock) _SAL1_1_Source_(__requires_lock_held, (lock), __pre _SA_annotes1(SAL_requires_lock_held,lock)) -#define __requires_exclusive_lock_held(lock) _SAL1_1_Source_(__requires_exclusive_lock_held, (lock), __pre _SA_annotes1(SAL_requires_exclusive_lock_held,lock)) -#define __requires_shared_lock_held(lock) _SAL1_1_Source_(__requires_shared_lock_held, (lock), __pre _SA_annotes1(SAL_requires_shared_lock_held,lock)) - -#define __requires_lock_not_held(lock) _SAL1_1_Source_(__requires_lock_not_held, (lock), __pre _SA_annotes1(SAL_requires_lock_not_held,lock)) -#define __requires_no_locks_held _SAL1_1_Source_(__requires_no_locks_held, (), __pre _SA_annotes0(SAL_requires_no_locks_held)) - -/* - * acquire/release locking side effects - */ -#define __acquires_lock(lock) _SAL1_1_Source_(__acquires_lock, (lock), __post _SA_annotes1(SAL_acquires_lock,lock)) -#define __acquires_exclusive_lock(lock) _SAL1_1_Source_(__acquires_exclusive_lock, (lock), __post _SA_annotes1(SAL_acquires_exclusive_lock,lock)) -#define __acquires_shared_lock(lock) _SAL1_1_Source_(__acquires_shared_lock, (lock), __post _SA_annotes1(SAL_acquires_shared_lock,lock)) - -#define __releases_lock(lock) _SAL1_1_Source_(__releases_lock, (lock), __post _SA_annotes1(SAL_releases_lock,lock)) -#define __releases_exclusive_lock(lock) _SAL1_1_Source_(__releases_exclusive_lock, (lock),__post _SA_annotes1(SAL_releases_exclusive_lock,lock)) -#define __releases_shared_lock(lock) _SAL1_1_Source_(__releases_shared_lock, (lock), __post _SA_annotes1(SAL_releases_shared_lock,lock)) - -/* - * lock properties - * The following kind options are supported: - * __has_lock_property(MUTEX) - * __has_lock_property(EVENT) - * __has_lock_property(SEMAPHORE) - * __has_lock_property(OTHER_HANDLE) - * __has_lock_property(REENTRANT) - * __has_lock_property(NON_REENTRANT) - */ -#define __has_lock_property(kind) _SAL1_1_Source_(__has_lock_property, (kind), _SA_annotes1(SAL_has_lock_property,#kind)) - -/* - * lock level - */ -#define __declare_lock_level(level) _Internal_create_CSAL_identifier_(level) -#define __has_lock_level(level) _SAL1_1_Source_(__has_lock_level, (level), _SA_annotes1(SAL_has_lock_level,#level)) - -#define __internal_lock_level_order(a,b) _SAL1_1_Source_(__internal_lock_level_order, (a,b), _SA_annotes2(SAL_lock_level_order,#a,#b)) -#define CSALCAT1(x,y) x##y -#define CSALCAT2(x,y) CSALCAT1(x,y) - -#define __lock_level_order(a,b) \ - extern __internal_lock_level_order(a,b) void __sal_order_##a##_##b(__in_z char*a, __in_z char*b); \ - static __inline void CSALCAT2(CSAL_LockOrder,__COUNTER__)(void){__sal_order_##a##_##b(#a,#b);} - -/* - * threading context - */ -#define __no_competing_thread _SAL1_1_Source_(__no_competing_thread, (), __pre _SA_annotes0(SAL_no_competing_thread)) - -/* - * refinement and suppression - */ -extern __acquires_lock(*plock) void __internal_acquires_lock(void* plock); -extern __releases_lock(*plock) void __internal_releases_lock(void* plock); - -#define __analysis_assume_lock_acquired(lock) __internal_acquires_lock((void*)(&(lock))) -#define __analysis_assume_lock_released(lock) __internal_releases_lock((void*)(&(lock))) - -#define __function_ignore_lock_checking(lock) _SAL1_1_Source_(__function_ignore_lock_cleanup, (lock), __pre _SA_annotes1(SAL_ignore_lock_match,lock)) -extern __function_ignore_lock_checking(*plock) void __internal_suppress_lock_checking(void* plock); - -#define __analysis_suppress_lock_checking(lock) __internal_suppress_lock_checking((void*)(&(lock))); - -#define BENIGN_RACE_BEGIN __pragma(warning(push)) __pragma(warning(disable:26100 26150 26130 26180 26131 26181)) -#define BENIGN_RACE_END __pragma(warning(pop)) - -#define NO_COMPETING_THREAD_BEGIN __pragma(warning(push)) __pragma(warning(disable:26100 26150 26101 26151 26110 26160 26130 26180 26131 26181)) -#define NO_COMPETING_THREAD_END __pragma(warning(pop)) - -#else - -#ifndef _Interlocked_operand_ -#define _Interlocked_operand_ -#endif - -#define _Guarded_by_(lock) -#define _Write_guarded_by_(lock) -#define _Interlocked_ -#define _Requires_lock_held_(lock) -#define _Requires_exclusive_lock_held_(lock) -#define _Requires_shared_lock_held_(lock) -#define _Requires_lock_not_held_(lock) -#define _Requires_no_locks_held_ -#define _Acquires_lock_(lock) -#define _Acquires_exclusive_lock_(lock) -#define _Acquires_shared_lock_(lock) -#define _Releases_lock_(lock) -#define _Releases_exclusive_lock_(lock) -#define _Releases_shared_lock_(lock) -#define _Acquires_nonreentrant_lock_(lock) -#define _Releases_nonreentrant_lock_(lock) - -#define _Post_same_lock_(lock1,lock2) - -#define _Internal_set_lock_count_(lock, count) - -#define _Create_lock_level_(level) -#define _Has_lock_level_(level) -#define _Internal_lock_level_order_(a,b) -#define _Csalcat1_(x,y) -#define _Csalcat2_(x,y) -#define _Lock_level_order_(a,b) -#define _No_competing_thread_ -#define _Analysis_assume_lock_acquired_(lock) -#define _Analysis_assume_lock_released_(lock) -#define _Analysis_assume_lock_held_(lock) -#define _Analysis_assume_lock_not_held_(lock) -#define _Analysis_assume_same_lock_(lock1, lock2) -#define _Function_ignore_lock_checking_(lock) -#define _Analysis_suppress_lock_checking_(lock) - -#define _Benign_race_begin_ __pragma(warning(push)) -#define _Benign_race_end_ __pragma(warning(pop)) - -#define _No_competing_thread_begin_ __pragma(warning(push)) -#define _No_competing_thread_end_ __pragma(warning(pop)) - -#define _Has_lock_kind_(kind) - -#ifdef __cplusplus -#define _Analysis_assume_smart_lock_acquired_(lock) -#define _Analysis_assume_smart_lock_released_(lock) -#endif - -#define _Detaches_lock_(detached, lock) -#define _Moves_lock_(target, source) -#define _Replaces_lock_(target, source) -#define _Swaps_locks_(left, right) - -/* - * Old spelling: will be deprecated - */ -#define __guarded_by(lock) -#define __write_guarded_by(lock) -#define __interlocked -#define __requires_lock_held(lock) -#define __requires_exclusive_lock_held(lock) -#define __requires_shared_lock_held(lock) -#define __requires_lock_not_held(lock) -#define __requires_no_locks_held -#define __acquires_lock(lock) -#define __acquires_exclusive_lock(lock) -#define __acquires_shared_lock(lock) -#define __releases_lock(lock) -#define __releases_exclusive_lock(lock) -#define __releases_shared_lock(lock) - -#define __has_lock_property(kind) -#define __declare_lock_level(level) -#define __has_lock_level(level) -#define __internal_lock_level_order(a,b) -#define CSALCAT1(x,y) -#define CSALCAT2(x,y) -#define __lock_level_order(a,b) -#define __no_competing_thread -#define __analysis_assume_lock_acquired(lock) -#define __analysis_assume_lock_released(lock) -#define __function_ignore_lock_checking(lock) -#define __analysis_suppress_lock_checking(lock) - -#define BENIGN_RACE_BEGIN __pragma(warning(push)) -#define BENIGN_RACE_END __pragma(warning(pop)) - -#define NO_COMPETING_THREAD_BEGIN __pragma(warning(push)) -#define NO_COMPETING_THREAD_END __pragma(warning(pop)) - -#endif - -#ifdef __cplusplus -} -#endif - -#endif // CONCURRENCYSAL_H diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@concurrencysal.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@concurrencysal.h.blob deleted file mode 100644 index a5a02d6650d243c1eb323023b9c503528981136d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11121 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 header. -// -#pragma once -#define _INC_LIMITS - -#include - -#pragma warning(push) -#pragma warning(disable: _VCRUNTIME_DISABLED_WARNINGS) - -_CRT_BEGIN_C_HEADER - -#define CHAR_BIT 8 -#define SCHAR_MIN (-128) -#define SCHAR_MAX 127 -#define UCHAR_MAX 0xff - -#ifndef _CHAR_UNSIGNED - #define CHAR_MIN SCHAR_MIN - #define CHAR_MAX SCHAR_MAX -#else - #define CHAR_MIN 0 - #define CHAR_MAX UCHAR_MAX -#endif - -#define MB_LEN_MAX 5 -#define SHRT_MIN (-32768) -#define SHRT_MAX 32767 -#define USHRT_MAX 0xffff -#define INT_MIN (-2147483647 - 1) -#define INT_MAX 2147483647 -#define UINT_MAX 0xffffffff -#define LONG_MIN (-2147483647L - 1) -#define LONG_MAX 2147483647L -#define ULONG_MAX 0xffffffffUL -#define LLONG_MAX 9223372036854775807i64 -#define LLONG_MIN (-9223372036854775807i64 - 1) -#define ULLONG_MAX 0xffffffffffffffffui64 - -#define _I8_MIN (-127i8 - 1) -#define _I8_MAX 127i8 -#define _UI8_MAX 0xffui8 - -#define _I16_MIN (-32767i16 - 1) -#define _I16_MAX 32767i16 -#define _UI16_MAX 0xffffui16 - -#define _I32_MIN (-2147483647i32 - 1) -#define _I32_MAX 2147483647i32 -#define _UI32_MAX 0xffffffffui32 - -#define _I64_MIN (-9223372036854775807i64 - 1) -#define _I64_MAX 9223372036854775807i64 -#define _UI64_MAX 0xffffffffffffffffui64 - -#ifndef SIZE_MAX - // SIZE_MAX definition must match exactly with stdint.h for modules support. - #ifdef _WIN64 - #define SIZE_MAX 0xffffffffffffffffui64 - #else - #define SIZE_MAX 0xffffffffui32 - #endif -#endif - -#ifndef RSIZE_MAX - #define RSIZE_MAX (SIZE_MAX >> 1) -#endif - -_CRT_END_C_HEADER - -#pragma warning(pop) // _VCRUNTIME_DISABLED_WARNINGS diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@limits.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@limits.h.blob deleted file mode 100644 index 58e4c151a971af563e36b1035c9d87da06908640..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5115 zcmb_fZ)_W989y7)s)@GOEbY=2rPrj*(vb7{Uu-v!wu%2FxB5@8V_b^F^?W`%*PQRn z-8qRPO`4!mCp1QpD%gj818rlgwtZks+DcKiA)p|(b!cK5AD|y#Y^4LFiT?}F``*20 zJ7lY?;17@O$M5^Q-}5}b=Xqa`Q6F4NoOqq0C~i@&%bcj`8kf+eW?j}SlZ)#WnX4Gg&oo2E~qhPkF`aAif~BvsUEtfW#b zTQQVn*ztt4WL+qsgWRrD1z66W|?t;H#tq&6$^R#8uu^;NC_b;7mcw+LF& z4Yk6pM#77-Sdk5rVyhKJtZBMwDU!)bP)=h?R9D27NpUL_cS@nST-gt%LUH+pcmOnD ziAGJfrdDGSArfXA61!pt&eqLk2>|N|r``}PrL3rm)v{gkswHct0xCq$lvS}MS6EA~ zH&oG**@kGCidKVXDw^3c4PCc7MU9cUQi$R}TpS39OX=~9xFn~PE=k*p_Ei+4SDE|t z@)jeaxbjh*zM*O>Y`-mw+`Pfzq_s-%+@4~&I<(kAfN3;3Ae}D6|I0| z+a;kke_RY_>M|#wU|hh@ITI2-`ux6NB;bd4t|=K72Xlq9S`8W3wFmv8(r8T;R}y#3 zhlJ| zuDCxsQz)@|wQ9Q~c0z&$_}K?K}7M5C2l&PbG!S^hsDi z4+9an+cCt)_*bhNUQGpVNtEXpbIk8W_Dj^d2ez(X*)y1U`r%)!2}M2q9{&>B%9l2kc1)^!n_zoyw_iJ}9&?U5>y~`a_Y}L^v9qi20*7(IfN` z#_It~FmHbO@Y-wpm|egr6x@WU?c6}Lsf2z`gKm>9MA&*g9 zKCTmBM%h3xhKk%r_W=*EVTVUH^vIR3F*kk-e~z4hc97YS-U}_$=xG&F6YUc>dtKVIEye{Lo*;hun`BIU;4rY`itA8JehCs5I4`RlNlvHGe?iwJ(U_rjd?v_?{kn={@{7$ zAAft`l*2=K>!v__HidRx z(j+m5=tF=8Htmpk==3`~p4>NAEZR+mk1w~Bt`pNinE^umbU(BVSkf|kUnotUnE3e* z(wj{I*NGuEpSS=zN{<34SaQ02`yJygmM?&<|ey9Oha<*&t+#`8^`ogQlj^X91!gXRoc7(v^ u0DS<`4VLs@$cX>yzRN=w?7PNBKIpDtPnOQX0(T8UDolrg6xeyYh5ieR#}Fj| diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@sal.h b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@sal.h deleted file mode 100644 index e43bc4dd5..000000000 --- a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@sal.h +++ /dev/null @@ -1,2974 +0,0 @@ -/*** -*sal.h - markers for documenting the semantics of APIs -* -* Copyright (c) Microsoft Corporation. All rights reserved. -* -*Purpose: -* sal.h provides a set of annotations to describe how a function uses its -* parameters - the assumptions it makes about them, and the guarantees it makes -* upon finishing. -* -* [Public] -* -****/ -#pragma once - -/*========================================================================== - - The comments in this file are intended to give basic understanding of - the usage of SAL, the Microsoft Source Code Annotation Language. - For more details, please see https://go.microsoft.com/fwlink/?LinkID=242134 - - The macros are defined in 3 layers, plus the structural set: - - _In_/_Out_/_Ret_ Layer: - ---------------------- - This layer provides the highest abstraction and its macros should be used - in most cases. These macros typically start with: - _In_ : input parameter to a function, unmodified by called function - _Out_ : output parameter, written to by called function, pointed-to - location not expected to be initialized prior to call - _Outptr_ : like _Out_ when returned variable is a pointer type - (so param is pointer-to-pointer type). Called function - provides/allocated space. - _Outref_ : like _Outptr_, except param is reference-to-pointer type. - _Inout_ : inout parameter, read from and potentially modified by - called function. - _Ret_ : for return values - _Field_ : class/struct field invariants - For common usage, this class of SAL provides the most concise annotations. - Note that _In_/_Out_/_Inout_/_Outptr_ annotations are designed to be used - with a parameter target. Using them with _At_ to specify non-parameter - targets may yield unexpected results. - - This layer also includes a number of other properties that can be specified - to extend the ability of code analysis, most notably: - -- Designating parameters as format strings for printf/scanf/scanf_s - -- Requesting stricter type checking for C enum parameters - - _Pre_/_Post_ Layer: - ------------------ - The macros of this layer only should be used when there is no suitable macro - in the _In_/_Out_ layer. Its macros start with _Pre_ or _Post_. - This layer provides the most flexibility for annotations. - - Implementation Abstraction Layer: - -------------------------------- - Macros from this layer should never be used directly. The layer only exists - to hide the implementation of the annotation macros. - - Structural Layer: - ---------------- - These annotations, like _At_ and _When_, are used with annotations from - any of the other layers as modifiers, indicating exactly when and where - the annotations apply. - - - Common syntactic conventions: - ---------------------------- - - Usage: - ----- - _In_, _Out_, _Inout_, _Pre_, _Post_, are for formal parameters. - _Ret_, _Deref_ret_ must be used for return values. - - Nullness: - -------- - If the parameter can be NULL as a precondition to the function, the - annotation contains _opt. If the macro does not contain '_opt' the - parameter cannot be NULL. - - If an out/inout parameter returns a null pointer as a postcondition, this is - indicated by _Ret_maybenull_ or _result_maybenull_. If the macro is not - of this form, then the result will not be NULL as a postcondition. - _Outptr_ - output value is not NULL - _Outptr_result_maybenull_ - output value might be NULL - - String Type: - ----------- - _z: NullTerminated string - for _In_ parameters the buffer must have the specified stringtype before the call - for _Out_ parameters the buffer must have the specified stringtype after the call - for _Inout_ parameters both conditions apply - - Extent Syntax: - ------------- - Buffer sizes are expressed as element counts, unless the macro explicitly - contains _byte_ or _bytes_. Some annotations specify two buffer sizes, in - which case the second is used to indicate how much of the buffer is valid - as a postcondition. This table outlines the precondition buffer allocation - size, precondition number of valid elements, postcondition allocation size, - and postcondition number of valid elements for representative buffer size - annotations: - Pre | Pre | Post | Post - alloc | valid | alloc | valid - Annotation elems | elems | elems | elems - ---------- ------------------------------------ - _In_reads_(s) s | s | s | s - _Inout_updates_(s) s | s | s | s - _Inout_updates_to_(s,c) s | s | s | c - _Out_writes_(s) s | 0 | s | s - _Out_writes_to_(s,c) s | 0 | s | c - _Outptr_result_buffer_(s) ? | ? | s | s - _Outptr_result_buffer_to_(s,c) ? | ? | s | c - - For the _Outptr_ annotations, the buffer in question is at one level of - dereference. The called function is responsible for supplying the buffer. - - Success and failure: - ------------------- - The SAL concept of success allows functions to define expressions that can - be tested by the caller, which if it evaluates to non-zero, indicates the - function succeeded, which means that its postconditions are guaranteed to - hold. Otherwise, if the expression evaluates to zero, the function is - considered to have failed, and the postconditions are not guaranteed. - - The success criteria can be specified with the _Success_(expr) annotation: - _Success_(return != FALSE) BOOL - PathCanonicalizeA(_Out_writes_(MAX_PATH) LPSTR pszBuf, LPCSTR pszPath) : - pszBuf is only guaranteed to be NULL-terminated when TRUE is returned, - and FALSE indicates failure. In common practice, callers check for zero - vs. non-zero returns, so it is preferable to express the success - criteria in terms of zero/non-zero, not checked for exactly TRUE. - - Functions can specify that some postconditions will still hold, even when - the function fails, using _On_failure_(anno-list), or postconditions that - hold regardless of success or failure using _Always_(anno-list). - - The annotation _Return_type_success_(expr) may be used with a typedef to - give a default _Success_ criteria to all functions returning that type. - This is the case for common Windows API status types, including - HRESULT and NTSTATUS. This may be overridden on a per-function basis by - specifying a _Success_ annotation locally. - -============================================================================*/ - -#define __ATTR_SAL - -#ifndef _SAL_VERSION -#define _SAL_VERSION 20 -#endif - -#ifndef __SAL_H_VERSION -#define __SAL_H_VERSION 180000000 -#endif - -#ifdef _PREFAST_ // [ - -// choose attribute or __declspec implementation -#ifndef _USE_DECLSPECS_FOR_SAL // [ -#define _USE_DECLSPECS_FOR_SAL 1 -#endif // ] - -#if _USE_DECLSPECS_FOR_SAL // [ -#undef _USE_ATTRIBUTES_FOR_SAL -#define _USE_ATTRIBUTES_FOR_SAL 0 -#elif !defined(_USE_ATTRIBUTES_FOR_SAL) // ][ -#define _USE_ATTRIBUTES_FOR_SAL 1 -#endif // ] - - -#if !_USE_DECLSPECS_FOR_SAL // [ -#if !_USE_ATTRIBUTES_FOR_SAL // [ -#undef _USE_ATTRIBUTES_FOR_SAL -#define _USE_ATTRIBUTES_FOR_SAL 1 -#endif // ] -#endif // ] - -#else - -// Disable expansion of SAL macros in non-Prefast mode to -// improve compiler throughput. -#ifndef _USE_DECLSPECS_FOR_SAL // [ -#define _USE_DECLSPECS_FOR_SAL 0 -#endif // ] -#ifndef _USE_ATTRIBUTES_FOR_SAL // [ -#define _USE_ATTRIBUTES_FOR_SAL 0 -#endif // ] - -#endif // ] - -// safeguard for MIDL and RC builds -#if _USE_DECLSPECS_FOR_SAL && ( defined( MIDL_PASS ) || defined(__midl) || defined(RC_INVOKED) || !defined(_PREFAST_) ) // [ -#undef _USE_DECLSPECS_FOR_SAL -#define _USE_DECLSPECS_FOR_SAL 0 -#endif // ] -#if _USE_ATTRIBUTES_FOR_SAL && ( !defined(_MSC_EXTENSIONS) || defined( MIDL_PASS ) || defined(__midl) || defined(RC_INVOKED) ) // [ -#undef _USE_ATTRIBUTES_FOR_SAL -#define _USE_ATTRIBUTES_FOR_SAL 0 -#endif // ] - -#if _USE_DECLSPECS_FOR_SAL || _USE_ATTRIBUTES_FOR_SAL - -// Special enum type for Y/N/M -enum __SAL_YesNo {_SAL_notpresent, _SAL_no, _SAL_maybe, _SAL_yes, _SAL_default}; - -#endif - -#if defined(UNDOCKED_WINDOWS_UCRT) && !_USE_ATTRIBUTES_FOR_SAL -#define _SAL1_Source_(Name, args, annotes) _SA_annotes3(SAL_name, #Name, "", "1") _GrouP_(annotes _SAL_nop_impl_) -#define _SAL1_1_Source_(Name, args, annotes) _SA_annotes3(SAL_name, #Name, "", "1.1") _GrouP_(annotes _SAL_nop_impl_) -#define _SAL1_2_Source_(Name, args, annotes) _SA_annotes3(SAL_name, #Name, "", "1.2") _GrouP_(annotes _SAL_nop_impl_) -#define _SAL2_Source_(Name, args, annotes) _SA_annotes3(SAL_name, #Name, "", "2") _GrouP_(annotes _SAL_nop_impl_) - -#ifndef _SAL_L_Source_ -// Some annotations aren't officially SAL2 yet. -#define _SAL_L_Source_(Name, args, annotes) _SA_annotes3(SAL_name, #Name, "", "2") _GrouP_(annotes _SAL_nop_impl_) -#endif -#else -#define _SAL1_Source_(Name, args, annotes) _SA_annotes3(SAL_name, #Name, "", "1") _Group_(annotes _SAL_nop_impl_) -#define _SAL1_1_Source_(Name, args, annotes) _SA_annotes3(SAL_name, #Name, "", "1.1") _Group_(annotes _SAL_nop_impl_) -#define _SAL1_2_Source_(Name, args, annotes) _SA_annotes3(SAL_name, #Name, "", "1.2") _Group_(annotes _SAL_nop_impl_) -#define _SAL2_Source_(Name, args, annotes) _SA_annotes3(SAL_name, #Name, "", "2") _Group_(annotes _SAL_nop_impl_) - -#ifndef _SAL_L_Source_ -// Some annotations aren't officially SAL2 yet. -#define _SAL_L_Source_(Name, args, annotes) _SA_annotes3(SAL_name, #Name, "", "2") _Group_(annotes _SAL_nop_impl_) -#endif -#endif - - -//============================================================================ -// Structural SAL: -// These annotations modify the use of other annotations. They may -// express the annotation target (i.e. what parameter/field the annotation -// applies to) or the condition under which the annotation is applicable. -//============================================================================ - -// _At_(target, annos) specifies that the annotations listed in 'annos' is to -// be applied to 'target' rather than to the identifier which is the current -// lexical target. -#define _At_(target, annos) _At_impl_(target, annos _SAL_nop_impl_) - -// _At_buffer_(target, iter, bound, annos) is similar to _At_, except that -// target names a buffer, and each annotation in annos is applied to each -// element of target up to bound, with the variable named in iter usable -// by the annotations to refer to relevant offsets within target. -#define _At_buffer_(target, iter, bound, annos) _At_buffer_impl_(target, iter, bound, annos _SAL_nop_impl_) - -// _When_(expr, annos) specifies that the annotations listed in 'annos' only -// apply when 'expr' evaluates to non-zero. -#define _When_(expr, annos) _When_impl_(expr, annos _SAL_nop_impl_) -#define _Group_(annos) _Group_impl_(annos _SAL_nop_impl_) -#define _GrouP_(annos) _GrouP_impl_(annos _SAL_nop_impl_) - -// indicates whether normal post conditions apply to a function -#define _Success_(expr) _SAL2_Source_(_Success_, (expr), _Success_impl_(expr)) - -// indicates whether post conditions apply to a function returning -// the type that this annotation is applied to -#define _Return_type_success_(expr) _SAL2_Source_(_Return_type_success_, (expr), _Success_impl_(expr)) - -// Establish postconditions that apply only if the function does not succeed -#define _On_failure_(annos) _On_failure_impl_(annos _SAL_nop_impl_) - -// Establish postconditions that apply in both success and failure cases. -// Only applicable with functions that have _Success_ or _Return_type_succss_. -#define _Always_(annos) _Always_impl_(annos _SAL_nop_impl_) - -// Usable on a function defintion. Asserts that a function declaration is -// in scope, and its annotations are to be used. There are no other annotations -// allowed on the function definition. -#define _Use_decl_annotations_ _Use_decl_anno_impl_ - -// _Notref_ may precede a _Deref_ or "real" annotation, and removes one -// level of dereference if the parameter is a C++ reference (&). If the -// net deref on a "real" annotation is negative, it is simply discarded. -#define _Notref_ _Notref_impl_ - -// Annotations for defensive programming styles. -#define _Pre_defensive_ _SA_annotes0(SAL_pre_defensive) -#define _Post_defensive_ _SA_annotes0(SAL_post_defensive) - -#define _In_defensive_(annotes) _Pre_defensive_ _Group_(annotes) -#define _Out_defensive_(annotes) _Post_defensive_ _Group_(annotes) -#define _Inout_defensive_(annotes) _Pre_defensive_ _Post_defensive_ _Group_(annotes) - -//============================================================================ -// _In_/_Out_ Layer: -//============================================================================ - -// Reserved pointer parameters, must always be NULL. -#define _Reserved_ _SAL2_Source_(_Reserved_, (), _Pre1_impl_(__null_impl)) - -// _Const_ allows specification that any namable memory location is considered -// readonly for a given call. -#define _Const_ _SAL2_Source_(_Const_, (), _Pre1_impl_(__readaccess_impl_notref)) - - -// Input parameters -------------------------- - -// _In_ - Annotations for parameters where data is passed into the function, but not modified. -// _In_ by itself can be used with non-pointer types (although it is redundant). - -// e.g. void SetPoint( _In_ const POINT* pPT ); -#define _In_ _SAL2_Source_(_In_, (), _Pre1_impl_(__notnull_impl_notref) _Pre_valid_impl_ _Deref_pre1_impl_(__readaccess_impl_notref)) -#define _In_opt_ _SAL2_Source_(_In_opt_, (), _Pre1_impl_(__maybenull_impl_notref) _Pre_valid_impl_ _Deref_pre_readonly_) - -// nullterminated 'in' parameters. -// e.g. void CopyStr( _In_z_ const char* szFrom, _Out_z_cap_(cchTo) char* szTo, size_t cchTo ); -#define _In_z_ _SAL2_Source_(_In_z_, (), _In_ _Pre1_impl_(__zterm_impl)) -#define _In_opt_z_ _SAL2_Source_(_In_opt_z_, (), _In_opt_ _Pre1_impl_(__zterm_impl)) - - -// 'input' buffers with given size - -#define _In_reads_(size) _SAL2_Source_(_In_reads_, (size), _Pre_count_(size) _Deref_pre_readonly_) -#define _In_reads_opt_(size) _SAL2_Source_(_In_reads_opt_, (size), _Pre_opt_count_(size) _Deref_pre_readonly_) -#define _In_reads_bytes_(size) _SAL2_Source_(_In_reads_bytes_, (size), _Pre_bytecount_(size) _Deref_pre_readonly_) -#define _In_reads_bytes_opt_(size) _SAL2_Source_(_In_reads_bytes_opt_, (size), _Pre_opt_bytecount_(size) _Deref_pre_readonly_) -#define _In_reads_z_(size) _SAL2_Source_(_In_reads_z_, (size), _In_reads_(size) _Pre_z_) -#define _In_reads_opt_z_(size) _SAL2_Source_(_In_reads_opt_z_, (size), _Pre_opt_count_(size) _Deref_pre_readonly_ _Pre_opt_z_) -#define _In_reads_or_z_(size) _SAL2_Source_(_In_reads_or_z_, (size), _In_ _When_(_String_length_(_Curr_) < (size), _Pre_z_) _When_(_String_length_(_Curr_) >= (size), _Pre1_impl_(__count_impl(size)))) -#define _In_reads_or_z_opt_(size) _SAL2_Source_(_In_reads_or_z_opt_, (size), _In_opt_ _When_(_String_length_(_Curr_) < (size), _Pre_z_) _When_(_String_length_(_Curr_) >= (size), _Pre1_impl_(__count_impl(size)))) - - -// 'input' buffers valid to the given end pointer - -#define _In_reads_to_ptr_(ptr) _SAL2_Source_(_In_reads_to_ptr_, (ptr), _Pre_ptrdiff_count_(ptr) _Deref_pre_readonly_) -#define _In_reads_to_ptr_opt_(ptr) _SAL2_Source_(_In_reads_to_ptr_opt_, (ptr), _Pre_opt_ptrdiff_count_(ptr) _Deref_pre_readonly_) -#define _In_reads_to_ptr_z_(ptr) _SAL2_Source_(_In_reads_to_ptr_z_, (ptr), _In_reads_to_ptr_(ptr) _Pre_z_) -#define _In_reads_to_ptr_opt_z_(ptr) _SAL2_Source_(_In_reads_to_ptr_opt_z_, (ptr), _Pre_opt_ptrdiff_count_(ptr) _Deref_pre_readonly_ _Pre_opt_z_) - - - -// Output parameters -------------------------- - -// _Out_ - Annotations for pointer or reference parameters where data passed back to the caller. -// These are mostly used where the pointer/reference is to a non-pointer type. -// _Outptr_/_Outref) (see below) are typically used to return pointers via parameters. - -// e.g. void GetPoint( _Out_ POINT* pPT ); -#define _Out_ _SAL2_Source_(_Out_, (), _Out_impl_) -#define _Out_opt_ _SAL2_Source_(_Out_opt_, (), _Out_opt_impl_) - -#define _Out_writes_(size) _SAL2_Source_(_Out_writes_, (size), _Pre_cap_(size) _Post_valid_impl_) -#define _Out_writes_opt_(size) _SAL2_Source_(_Out_writes_opt_, (size), _Pre_opt_cap_(size) _Post_valid_impl_) -#define _Out_writes_bytes_(size) _SAL2_Source_(_Out_writes_bytes_, (size), _Pre_bytecap_(size) _Post_valid_impl_) -#define _Out_writes_bytes_opt_(size) _SAL2_Source_(_Out_writes_bytes_opt_, (size), _Pre_opt_bytecap_(size) _Post_valid_impl_) -#define _Out_writes_z_(size) _SAL2_Source_(_Out_writes_z_, (size), _Pre_cap_(size) _Post_valid_impl_ _Post_z_) -#define _Out_writes_opt_z_(size) _SAL2_Source_(_Out_writes_opt_z_, (size), _Pre_opt_cap_(size) _Post_valid_impl_ _Post_z_) - -#define _Out_writes_to_(size,count) _SAL2_Source_(_Out_writes_to_, (size,count), _Pre_cap_(size) _Post_valid_impl_ _Post_count_(count)) -#define _Out_writes_to_opt_(size,count) _SAL2_Source_(_Out_writes_to_opt_, (size,count), _Pre_opt_cap_(size) _Post_valid_impl_ _Post_count_(count)) -#define _Out_writes_all_(size) _SAL2_Source_(_Out_writes_all_, (size), _Out_writes_to_(_Old_(size), _Old_(size))) -#define _Out_writes_all_opt_(size) _SAL2_Source_(_Out_writes_all_opt_, (size), _Out_writes_to_opt_(_Old_(size), _Old_(size))) - -#define _Out_writes_bytes_to_(size,count) _SAL2_Source_(_Out_writes_bytes_to_, (size,count), _Pre_bytecap_(size) _Post_valid_impl_ _Post_bytecount_(count)) -#define _Out_writes_bytes_to_opt_(size,count) _SAL2_Source_(_Out_writes_bytes_to_opt_, (size,count), _Pre_opt_bytecap_(size) _Post_valid_impl_ _Post_bytecount_(count)) -#define _Out_writes_bytes_all_(size) _SAL2_Source_(_Out_writes_bytes_all_, (size), _Out_writes_bytes_to_(_Old_(size), _Old_(size))) -#define _Out_writes_bytes_all_opt_(size) _SAL2_Source_(_Out_writes_bytes_all_opt_, (size), _Out_writes_bytes_to_opt_(_Old_(size), _Old_(size))) - -#define _Out_writes_to_ptr_(ptr) _SAL2_Source_(_Out_writes_to_ptr_, (ptr), _Pre_ptrdiff_cap_(ptr) _Post_valid_impl_) -#define _Out_writes_to_ptr_opt_(ptr) _SAL2_Source_(_Out_writes_to_ptr_opt_, (ptr), _Pre_opt_ptrdiff_cap_(ptr) _Post_valid_impl_) -#define _Out_writes_to_ptr_z_(ptr) _SAL2_Source_(_Out_writes_to_ptr_z_, (ptr), _Pre_ptrdiff_cap_(ptr) _Post_valid_impl_ Post_z_) -#define _Out_writes_to_ptr_opt_z_(ptr) _SAL2_Source_(_Out_writes_to_ptr_opt_z_, (ptr), _Pre_opt_ptrdiff_cap_(ptr) _Post_valid_impl_ Post_z_) - - -// Inout parameters ---------------------------- - -// _Inout_ - Annotations for pointer or reference parameters where data is passed in and -// potentially modified. -// void ModifyPoint( _Inout_ POINT* pPT ); -// void ModifyPointByRef( _Inout_ POINT& pPT ); - -#define _Inout_ _SAL2_Source_(_Inout_, (), _Prepost_valid_) -#define _Inout_opt_ _SAL2_Source_(_Inout_opt_, (), _Prepost_opt_valid_) - -// For modifying string buffers -// void toupper( _Inout_z_ char* sz ); -#define _Inout_z_ _SAL2_Source_(_Inout_z_, (), _Prepost_z_) -#define _Inout_opt_z_ _SAL2_Source_(_Inout_opt_z_, (), _Prepost_opt_z_) - -// For modifying buffers with explicit element size -#define _Inout_updates_(size) _SAL2_Source_(_Inout_updates_, (size), _Pre_cap_(size) _Pre_valid_impl_ _Post_valid_impl_) -#define _Inout_updates_opt_(size) _SAL2_Source_(_Inout_updates_opt_, (size), _Pre_opt_cap_(size) _Pre_valid_impl_ _Post_valid_impl_) -#define _Inout_updates_z_(size) _SAL2_Source_(_Inout_updates_z_, (size), _Pre_cap_(size) _Pre_valid_impl_ _Post_valid_impl_ _Pre1_impl_(__zterm_impl) _Post1_impl_(__zterm_impl)) -#define _Inout_updates_opt_z_(size) _SAL2_Source_(_Inout_updates_opt_z_, (size), _Pre_opt_cap_(size) _Pre_valid_impl_ _Post_valid_impl_ _Pre1_impl_(__zterm_impl) _Post1_impl_(__zterm_impl)) - -#define _Inout_updates_to_(size,count) _SAL2_Source_(_Inout_updates_to_, (size,count), _Out_writes_to_(size,count) _Pre_valid_impl_ _Pre1_impl_(__count_impl(size))) -#define _Inout_updates_to_opt_(size,count) _SAL2_Source_(_Inout_updates_to_opt_, (size,count), _Out_writes_to_opt_(size,count) _Pre_valid_impl_ _Pre1_impl_(__count_impl(size))) - -#define _Inout_updates_all_(size) _SAL2_Source_(_Inout_updates_all_, (size), _Inout_updates_to_(_Old_(size), _Old_(size))) -#define _Inout_updates_all_opt_(size) _SAL2_Source_(_Inout_updates_all_opt_, (size), _Inout_updates_to_opt_(_Old_(size), _Old_(size))) - -// For modifying buffers with explicit byte size -#define _Inout_updates_bytes_(size) _SAL2_Source_(_Inout_updates_bytes_, (size), _Pre_bytecap_(size) _Pre_valid_impl_ _Post_valid_impl_) -#define _Inout_updates_bytes_opt_(size) _SAL2_Source_(_Inout_updates_bytes_opt_, (size), _Pre_opt_bytecap_(size) _Pre_valid_impl_ _Post_valid_impl_) - -#define _Inout_updates_bytes_to_(size,count) _SAL2_Source_(_Inout_updates_bytes_to_, (size,count), _Out_writes_bytes_to_(size,count) _Pre_valid_impl_ _Pre1_impl_(__bytecount_impl(size))) -#define _Inout_updates_bytes_to_opt_(size,count) _SAL2_Source_(_Inout_updates_bytes_to_opt_, (size,count), _Out_writes_bytes_to_opt_(size,count) _Pre_valid_impl_ _Pre1_impl_(__bytecount_impl(size))) - -#define _Inout_updates_bytes_all_(size) _SAL2_Source_(_Inout_updates_bytes_all_, (size), _Inout_updates_bytes_to_(_Old_(size), _Old_(size))) -#define _Inout_updates_bytes_all_opt_(size) _SAL2_Source_(_Inout_updates_bytes_all_opt_, (size), _Inout_updates_bytes_to_opt_(_Old_(size), _Old_(size))) - - -// Pointer to pointer parameters ------------------------- - -// _Outptr_ - Annotations for output params returning pointers -// These describe parameters where the called function provides the buffer: -// HRESULT SHStrDupW(_In_ LPCWSTR psz, _Outptr_ LPWSTR *ppwsz); -// The caller passes the address of an LPWSTR variable as ppwsz, and SHStrDupW allocates -// and initializes memory and returns the pointer to the new LPWSTR in *ppwsz. -// -// _Outptr_opt_ - describes parameters that are allowed to be NULL. -// _Outptr_*_result_maybenull_ - describes parameters where the called function might return NULL to the caller. -// -// Example: -// void MyFunc(_Outptr_opt_ int **ppData1, _Outptr_result_maybenull_ int **ppData2); -// Callers: -// MyFunc(NULL, NULL); // error: parameter 2, ppData2, should not be NULL -// MyFunc(&pData1, &pData2); // ok: both non-NULL -// if (*pData1 == *pData2) ... // error: pData2 might be NULL after call - -#define _Outptr_ _SAL2_Source_(_Outptr_, (), _Out_impl_ _Deref_post2_impl_(__notnull_impl_notref, __count_impl(1))) -#define _Outptr_result_maybenull_ _SAL2_Source_(_Outptr_result_maybenull_, (), _Out_impl_ _Deref_post2_impl_(__maybenull_impl_notref, __count_impl(1))) -#define _Outptr_opt_ _SAL2_Source_(_Outptr_opt_, (), _Out_opt_impl_ _Deref_post2_impl_(__notnull_impl_notref, __count_impl(1))) -#define _Outptr_opt_result_maybenull_ _SAL2_Source_(_Outptr_opt_result_maybenull_, (), _Out_opt_impl_ _Deref_post2_impl_(__maybenull_impl_notref, __count_impl(1))) - -// Annotations for _Outptr_ parameters returning pointers to null terminated strings. - -#define _Outptr_result_z_ _SAL2_Source_(_Outptr_result_z_, (), _Out_impl_ _Deref_post_z_) -#define _Outptr_opt_result_z_ _SAL2_Source_(_Outptr_opt_result_z_, (), _Out_opt_impl_ _Deref_post_z_) -#define _Outptr_result_maybenull_z_ _SAL2_Source_(_Outptr_result_maybenull_z_, (), _Out_impl_ _Deref_post_opt_z_) -#define _Outptr_opt_result_maybenull_z_ _SAL2_Source_(_Outptr_opt_result_maybenull_z_, (), _Out_opt_impl_ _Deref_post_opt_z_) - -// Annotations for _Outptr_ parameters where the output pointer is set to NULL if the function fails. - -#define _Outptr_result_nullonfailure_ _SAL2_Source_(_Outptr_result_nullonfailure_, (), _Outptr_ _On_failure_(_Deref_post_null_)) -#define _Outptr_opt_result_nullonfailure_ _SAL2_Source_(_Outptr_opt_result_nullonfailure_, (), _Outptr_opt_ _On_failure_(_Deref_post_null_)) - -// Annotations for _Outptr_ parameters which return a pointer to a ref-counted COM object, -// following the COM convention of setting the output to NULL on failure. -// The current implementation is identical to _Outptr_result_nullonfailure_. -// For pointers to types that are not COM objects, _Outptr_result_nullonfailure_ is preferred. - -#define _COM_Outptr_ _SAL2_Source_(_COM_Outptr_, (), _Outptr_ _On_failure_(_Deref_post_null_)) -#define _COM_Outptr_result_maybenull_ _SAL2_Source_(_COM_Outptr_result_maybenull_, (), _Outptr_result_maybenull_ _On_failure_(_Deref_post_null_)) -#define _COM_Outptr_opt_ _SAL2_Source_(_COM_Outptr_opt_, (), _Outptr_opt_ _On_failure_(_Deref_post_null_)) -#define _COM_Outptr_opt_result_maybenull_ _SAL2_Source_(_COM_Outptr_opt_result_maybenull_, (), _Outptr_opt_result_maybenull_ _On_failure_(_Deref_post_null_)) - -// Annotations for _Outptr_ parameters returning a pointer to buffer with a specified number of elements/bytes - -#define _Outptr_result_buffer_(size) _SAL2_Source_(_Outptr_result_buffer_, (size), _Out_impl_ _Deref_post2_impl_(__notnull_impl_notref, __cap_impl(size))) -#define _Outptr_opt_result_buffer_(size) _SAL2_Source_(_Outptr_opt_result_buffer_, (size), _Out_opt_impl_ _Deref_post2_impl_(__notnull_impl_notref, __cap_impl(size))) -#define _Outptr_result_buffer_to_(size, count) _SAL2_Source_(_Outptr_result_buffer_to_, (size, count), _Out_impl_ _Deref_post3_impl_(__notnull_impl_notref, __cap_impl(size), __count_impl(count))) -#define _Outptr_opt_result_buffer_to_(size, count) _SAL2_Source_(_Outptr_opt_result_buffer_to_, (size, count), _Out_opt_impl_ _Deref_post3_impl_(__notnull_impl_notref, __cap_impl(size), __count_impl(count))) - -#define _Outptr_result_buffer_all_(size) _SAL2_Source_(_Outptr_result_buffer_all_, (size), _Out_impl_ _Deref_post2_impl_(__notnull_impl_notref, __count_impl(size))) -#define _Outptr_opt_result_buffer_all_(size) _SAL2_Source_(_Outptr_opt_result_buffer_all_, (size), _Out_opt_impl_ _Deref_post2_impl_(__notnull_impl_notref, __count_impl(size))) - -#define _Outptr_result_buffer_maybenull_(size) _SAL2_Source_(_Outptr_result_buffer_maybenull_, (size), _Out_impl_ _Deref_post2_impl_(__maybenull_impl_notref, __cap_impl(size))) -#define _Outptr_opt_result_buffer_maybenull_(size) _SAL2_Source_(_Outptr_opt_result_buffer_maybenull_, (size), _Out_opt_impl_ _Deref_post2_impl_(__maybenull_impl_notref, __cap_impl(size))) -#define _Outptr_result_buffer_to_maybenull_(size, count) _SAL2_Source_(_Outptr_result_buffer_to_maybenull_, (size, count), _Out_impl_ _Deref_post3_impl_(__maybenull_impl_notref, __cap_impl(size), __count_impl(count))) -#define _Outptr_opt_result_buffer_to_maybenull_(size, count) _SAL2_Source_(_Outptr_opt_result_buffer_to_maybenull_, (size, count), _Out_opt_impl_ _Deref_post3_impl_(__maybenull_impl_notref, __cap_impl(size), __count_impl(count))) - -#define _Outptr_result_buffer_all_maybenull_(size) _SAL2_Source_(_Outptr_result_buffer_all_maybenull_, (size), _Out_impl_ _Deref_post2_impl_(__maybenull_impl_notref, __count_impl(size))) -#define _Outptr_opt_result_buffer_all_maybenull_(size) _SAL2_Source_(_Outptr_opt_result_buffer_all_maybenull_, (size), _Out_opt_impl_ _Deref_post2_impl_(__maybenull_impl_notref, __count_impl(size))) - -#define _Outptr_result_bytebuffer_(size) _SAL2_Source_(_Outptr_result_bytebuffer_, (size), _Out_impl_ _Deref_post2_impl_(__notnull_impl_notref, __bytecap_impl(size))) -#define _Outptr_opt_result_bytebuffer_(size) _SAL2_Source_(_Outptr_opt_result_bytebuffer_, (size), _Out_opt_impl_ _Deref_post2_impl_(__notnull_impl_notref, __bytecap_impl(size))) -#define _Outptr_result_bytebuffer_to_(size, count) _SAL2_Source_(_Outptr_result_bytebuffer_to_, (size, count), _Out_impl_ _Deref_post3_impl_(__notnull_impl_notref, __bytecap_impl(size), __bytecount_impl(count))) -#define _Outptr_opt_result_bytebuffer_to_(size, count) _SAL2_Source_(_Outptr_opt_result_bytebuffer_to_, (size, count), _Out_opt_impl_ _Deref_post3_impl_(__notnull_impl_notref, __bytecap_impl(size), __bytecount_impl(count))) - -#define _Outptr_result_bytebuffer_all_(size) _SAL2_Source_(_Outptr_result_bytebuffer_all_, (size), _Out_impl_ _Deref_post2_impl_(__notnull_impl_notref, __bytecount_impl(size))) -#define _Outptr_opt_result_bytebuffer_all_(size) _SAL2_Source_(_Outptr_opt_result_bytebuffer_all_, (size), _Out_opt_impl_ _Deref_post2_impl_(__notnull_impl_notref, __bytecount_impl(size))) - -#define _Outptr_result_bytebuffer_maybenull_(size) _SAL2_Source_(_Outptr_result_bytebuffer_maybenull_, (size), _Out_impl_ _Deref_post2_impl_(__maybenull_impl_notref, __bytecap_impl(size))) -#define _Outptr_opt_result_bytebuffer_maybenull_(size) _SAL2_Source_(_Outptr_opt_result_bytebuffer_maybenull_, (size), _Out_opt_impl_ _Deref_post2_impl_(__maybenull_impl_notref, __bytecap_impl(size))) -#define _Outptr_result_bytebuffer_to_maybenull_(size, count) _SAL2_Source_(_Outptr_result_bytebuffer_to_maybenull_, (size, count), _Out_impl_ _Deref_post3_impl_(__maybenull_impl_notref, __bytecap_impl(size), __bytecount_impl(count))) -#define _Outptr_opt_result_bytebuffer_to_maybenull_(size, count) _SAL2_Source_(_Outptr_opt_result_bytebuffer_to_maybenull_, (size, count), _Out_opt_impl_ _Deref_post3_impl_(__maybenull_impl_notref, __bytecap_impl(size), __bytecount_impl(count))) - -#define _Outptr_result_bytebuffer_all_maybenull_(size) _SAL2_Source_(_Outptr_result_bytebuffer_all_maybenull_, (size), _Out_impl_ _Deref_post2_impl_(__maybenull_impl_notref, __bytecount_impl(size))) -#define _Outptr_opt_result_bytebuffer_all_maybenull_(size) _SAL2_Source_(_Outptr_opt_result_bytebuffer_all_maybenull_, (size), _Out_opt_impl_ _Deref_post2_impl_(__maybenull_impl_notref, __bytecount_impl(size))) - -// Annotations for output reference to pointer parameters. - -#define _Outref_ _SAL2_Source_(_Outref_, (), _Out_impl_ _Post_notnull_) -#define _Outref_result_maybenull_ _SAL2_Source_(_Outref_result_maybenull_, (), _Pre2_impl_(__notnull_impl_notref, __cap_c_one_notref_impl) _Post_maybenull_ _Post_valid_impl_) - -#define _Outref_result_buffer_(size) _SAL2_Source_(_Outref_result_buffer_, (size), _Outref_ _Post1_impl_(__cap_impl(size))) -#define _Outref_result_bytebuffer_(size) _SAL2_Source_(_Outref_result_bytebuffer_, (size), _Outref_ _Post1_impl_(__bytecap_impl(size))) -#define _Outref_result_buffer_to_(size, count) _SAL2_Source_(_Outref_result_buffer_to_, (size, count), _Outref_result_buffer_(size) _Post1_impl_(__count_impl(count))) -#define _Outref_result_bytebuffer_to_(size, count) _SAL2_Source_(_Outref_result_bytebuffer_to_, (size, count), _Outref_result_bytebuffer_(size) _Post1_impl_(__bytecount_impl(count))) -#define _Outref_result_buffer_all_(size) _SAL2_Source_(_Outref_result_buffer_all_, (size), _Outref_result_buffer_to_(size, _Old_(size))) -#define _Outref_result_bytebuffer_all_(size) _SAL2_Source_(_Outref_result_bytebuffer_all_, (size), _Outref_result_bytebuffer_to_(size, _Old_(size))) - -#define _Outref_result_buffer_maybenull_(size) _SAL2_Source_(_Outref_result_buffer_maybenull_, (size), _Outref_result_maybenull_ _Post1_impl_(__cap_impl(size))) -#define _Outref_result_bytebuffer_maybenull_(size) _SAL2_Source_(_Outref_result_bytebuffer_maybenull_, (size), _Outref_result_maybenull_ _Post1_impl_(__bytecap_impl(size))) -#define _Outref_result_buffer_to_maybenull_(size, count) _SAL2_Source_(_Outref_result_buffer_to_maybenull_, (size, count), _Outref_result_buffer_maybenull_(size) _Post1_impl_(__count_impl(count))) -#define _Outref_result_bytebuffer_to_maybenull_(size, count) _SAL2_Source_(_Outref_result_bytebuffer_to_maybenull_, (size, count), _Outref_result_bytebuffer_maybenull_(size) _Post1_impl_(__bytecount_impl(count))) -#define _Outref_result_buffer_all_maybenull_(size) _SAL2_Source_(_Outref_result_buffer_all_maybenull_, (size), _Outref_result_buffer_to_maybenull_(size, _Old_(size))) -#define _Outref_result_bytebuffer_all_maybenull_(size) _SAL2_Source_(_Outref_result_bytebuffer_all_maybenull_, (size), _Outref_result_bytebuffer_to_maybenull_(size, _Old_(size))) - -// Annotations for output reference to pointer parameters that guarantee -// that the pointer is set to NULL on failure. -#define _Outref_result_nullonfailure_ _SAL2_Source_(_Outref_result_nullonfailure_, (), _Outref_ _On_failure_(_Post_null_)) - -// Generic annotations to set output value of a by-pointer or by-reference parameter to null/zero on failure. -#define _Result_nullonfailure_ _SAL2_Source_(_Result_nullonfailure_, (), _On_failure_(_Notref_impl_ _Deref_impl_ _Post_null_)) -#define _Result_zeroonfailure_ _SAL2_Source_(_Result_zeroonfailure_, (), _On_failure_(_Notref_impl_ _Deref_impl_ _Out_range_(==, 0))) - - -// return values ------------------------------- - -// -// _Ret_ annotations -// -// describing conditions that hold for return values after the call - -// e.g. _Ret_z_ CString::operator const wchar_t*() const noexcept; -#define _Ret_z_ _SAL2_Source_(_Ret_z_, (), _Ret2_impl_(__notnull_impl, __zterm_impl) _Ret_valid_impl_) -#define _Ret_maybenull_z_ _SAL2_Source_(_Ret_maybenull_z_, (), _Ret2_impl_(__maybenull_impl,__zterm_impl) _Ret_valid_impl_) - -// used with allocated but not yet initialized objects -#define _Ret_notnull_ _SAL2_Source_(_Ret_notnull_, (), _Ret1_impl_(__notnull_impl)) -#define _Ret_maybenull_ _SAL2_Source_(_Ret_maybenull_, (), _Ret1_impl_(__maybenull_impl)) -#define _Ret_null_ _SAL2_Source_(_Ret_null_, (), _Ret1_impl_(__null_impl)) - -// used with allocated and initialized objects -// returns single valid object -#define _Ret_valid_ _SAL2_Source_(_Ret_valid_, (), _Ret1_impl_(__notnull_impl_notref) _Ret_valid_impl_) - -// returns pointer to initialized buffer of specified size -#define _Ret_writes_(size) _SAL2_Source_(_Ret_writes_, (size), _Ret2_impl_(__notnull_impl, __count_impl(size)) _Ret_valid_impl_) -#define _Ret_writes_z_(size) _SAL2_Source_(_Ret_writes_z_, (size), _Ret3_impl_(__notnull_impl, __count_impl(size), __zterm_impl) _Ret_valid_impl_) -#define _Ret_writes_bytes_(size) _SAL2_Source_(_Ret_writes_bytes_, (size), _Ret2_impl_(__notnull_impl, __bytecount_impl(size)) _Ret_valid_impl_) -#define _Ret_writes_maybenull_(size) _SAL2_Source_(_Ret_writes_maybenull_, (size), _Ret2_impl_(__maybenull_impl,__count_impl(size)) _Ret_valid_impl_) -#define _Ret_writes_maybenull_z_(size) _SAL2_Source_(_Ret_writes_maybenull_z_, (size), _Ret3_impl_(__maybenull_impl,__count_impl(size),__zterm_impl) _Ret_valid_impl_) -#define _Ret_writes_bytes_maybenull_(size) _SAL2_Source_(_Ret_writes_bytes_maybenull_, (size), _Ret2_impl_(__maybenull_impl,__bytecount_impl(size)) _Ret_valid_impl_) - -// returns pointer to partially initialized buffer, with total size 'size' and initialized size 'count' -#define _Ret_writes_to_(size,count) _SAL2_Source_(_Ret_writes_to_, (size,count), _Ret3_impl_(__notnull_impl, __cap_impl(size), __count_impl(count)) _Ret_valid_impl_) -#define _Ret_writes_bytes_to_(size,count) _SAL2_Source_(_Ret_writes_bytes_to_, (size,count), _Ret3_impl_(__notnull_impl, __bytecap_impl(size), __bytecount_impl(count)) _Ret_valid_impl_) -#define _Ret_writes_to_maybenull_(size,count) _SAL2_Source_(_Ret_writes_to_maybenull_, (size,count), _Ret3_impl_(__maybenull_impl, __cap_impl(size), __count_impl(count)) _Ret_valid_impl_) -#define _Ret_writes_bytes_to_maybenull_(size,count) _SAL2_Source_(_Ret_writes_bytes_to_maybenull_, (size,count), _Ret3_impl_(__maybenull_impl, __bytecap_impl(size), __bytecount_impl(count)) _Ret_valid_impl_) - - -// Annotations for strict type checking -#define _Points_to_data_ _SAL2_Source_(_Points_to_data_, (), _Pre_ _Points_to_data_impl_) -#define _Literal_ _SAL2_Source_(_Literal_, (), _Pre_ _Literal_impl_) -#define _Notliteral_ _SAL2_Source_(_Notliteral_, (), _Pre_ _Notliteral_impl_) - -// Check the return value of a function e.g. _Check_return_ ErrorCode Foo(); -#define _Check_return_ _SAL2_Source_(_Check_return_, (), _Check_return_impl_) -#define _Must_inspect_result_ _SAL2_Source_(_Must_inspect_result_, (), _Must_inspect_impl_ _Check_return_impl_) - -// e.g. MyPrintF( _Printf_format_string_ const wchar_t* wzFormat, ... ); -#define _Printf_format_string_ _SAL2_Source_(_Printf_format_string_, (), _Printf_format_string_impl_) -#define _Scanf_format_string_ _SAL2_Source_(_Scanf_format_string_, (), _Scanf_format_string_impl_) -#define _Scanf_s_format_string_ _SAL2_Source_(_Scanf_s_format_string_, (), _Scanf_s_format_string_impl_) - -#define _Format_string_impl_(kind,where) _SA_annotes2(SAL_IsFormatString2, kind, where) -#define _Printf_format_string_params_(x) _SAL2_Source_(_Printf_format_string_params_, (x), _Format_string_impl_("printf", x)) -#define _Scanf_format_string_params_(x) _SAL2_Source_(_Scanf_format_string_params_, (x), _Format_string_impl_("scanf", x)) -#define _Scanf_s_format_string_params_(x) _SAL2_Source_(_Scanf_s_format_string_params_, (x), _Format_string_impl_("scanf_s", x)) - -// annotations to express value of integral or pointer parameter -#define _In_range_(lb,ub) _SAL2_Source_(_In_range_, (lb,ub), _In_range_impl_(lb,ub)) -#define _Out_range_(lb,ub) _SAL2_Source_(_Out_range_, (lb,ub), _Out_range_impl_(lb,ub)) -#define _Ret_range_(lb,ub) _SAL2_Source_(_Ret_range_, (lb,ub), _Ret_range_impl_(lb,ub)) -#define _Deref_in_range_(lb,ub) _SAL2_Source_(_Deref_in_range_, (lb,ub), _Deref_in_range_impl_(lb,ub)) -#define _Deref_out_range_(lb,ub) _SAL2_Source_(_Deref_out_range_, (lb,ub), _Deref_out_range_impl_(lb,ub)) -#define _Deref_ret_range_(lb,ub) _SAL2_Source_(_Deref_ret_range_, (lb,ub), _Deref_ret_range_impl_(lb,ub)) -#define _Pre_equal_to_(expr) _SAL2_Source_(_Pre_equal_to_, (expr), _In_range_(==, expr)) -#define _Post_equal_to_(expr) _SAL2_Source_(_Post_equal_to_, (expr), _Out_range_(==, expr)) - -// annotation to express that a value (usually a field of a mutable class) -// is not changed by a function call -#define _Unchanged_(e) _SAL2_Source_(_Unchanged_, (e), _At_(e, _Post_equal_to_(_Old_(e)) _Const_)) - -// Annotations to allow expressing generalized pre and post conditions. -// 'cond' may be any valid SAL expression that is considered to be true as a precondition -// or postcondition (respectively). -#define _Pre_satisfies_(cond) _SAL2_Source_(_Pre_satisfies_, (cond), _Pre_satisfies_impl_(cond)) -#define _Post_satisfies_(cond) _SAL2_Source_(_Post_satisfies_, (cond), _Post_satisfies_impl_(cond)) - -// Annotations to express struct, class and field invariants -#define _Struct_size_bytes_(size) _SAL2_Source_(_Struct_size_bytes_, (size), _Writable_bytes_(size)) - -#define _Field_size_(size) _SAL2_Source_(_Field_size_, (size), _Notnull_ _Writable_elements_(size)) -#define _Field_size_opt_(size) _SAL2_Source_(_Field_size_opt_, (size), _Maybenull_ _Writable_elements_(size)) -#define _Field_size_part_(size, count) _SAL2_Source_(_Field_size_part_, (size, count), _Notnull_ _Writable_elements_(size) _Readable_elements_(count)) -#define _Field_size_part_opt_(size, count) _SAL2_Source_(_Field_size_part_opt_, (size, count), _Maybenull_ _Writable_elements_(size) _Readable_elements_(count)) -#define _Field_size_full_(size) _SAL2_Source_(_Field_size_full_, (size), _Field_size_part_(size, size)) -#define _Field_size_full_opt_(size) _SAL2_Source_(_Field_size_full_opt_, (size), _Field_size_part_opt_(size, size)) - -#define _Field_size_bytes_(size) _SAL2_Source_(_Field_size_bytes_, (size), _Notnull_ _Writable_bytes_(size)) -#define _Field_size_bytes_opt_(size) _SAL2_Source_(_Field_size_bytes_opt_, (size), _Maybenull_ _Writable_bytes_(size)) -#define _Field_size_bytes_part_(size, count) _SAL2_Source_(_Field_size_bytes_part_, (size, count), _Notnull_ _Writable_bytes_(size) _Readable_bytes_(count)) -#define _Field_size_bytes_part_opt_(size, count) _SAL2_Source_(_Field_size_bytes_part_opt_, (size, count), _Maybenull_ _Writable_bytes_(size) _Readable_bytes_(count)) -#define _Field_size_bytes_full_(size) _SAL2_Source_(_Field_size_bytes_full_, (size), _Field_size_bytes_part_(size, size)) -#define _Field_size_bytes_full_opt_(size) _SAL2_Source_(_Field_size_bytes_full_opt_, (size), _Field_size_bytes_part_opt_(size, size)) - -#define _Field_z_ _SAL2_Source_(_Field_z_, (), _Null_terminated_) - -#define _Field_range_(min,max) _SAL2_Source_(_Field_range_, (min,max), _Field_range_impl_(min,max)) - -//============================================================================ -// _Pre_/_Post_ Layer: -//============================================================================ - -// -// Raw Pre/Post for declaring custom pre/post conditions -// - -#define _Pre_ _Pre_impl_ -#define _Post_ _Post_impl_ - -// -// Validity property -// - -#define _Valid_ _Valid_impl_ -#define _Notvalid_ _Notvalid_impl_ -#define _Maybevalid_ _Maybevalid_impl_ - -// -// Buffer size properties -// - -// Expressing buffer sizes without specifying pre or post condition -#define _Readable_bytes_(size) _SAL2_Source_(_Readable_bytes_, (size), _Readable_bytes_impl_(size)) -#define _Readable_elements_(size) _SAL2_Source_(_Readable_elements_, (size), _Readable_elements_impl_(size)) -#define _Writable_bytes_(size) _SAL2_Source_(_Writable_bytes_, (size), _Writable_bytes_impl_(size)) -#define _Writable_elements_(size) _SAL2_Source_(_Writable_elements_, (size), _Writable_elements_impl_(size)) - -#define _Null_terminated_ _SAL2_Source_(_Null_terminated_, (), _Null_terminated_impl_) -#define _NullNull_terminated_ _SAL2_Source_(_NullNull_terminated_, (), _NullNull_terminated_impl_) - -// Expressing buffer size as pre or post condition -#define _Pre_readable_size_(size) _SAL2_Source_(_Pre_readable_size_, (size), _Pre1_impl_(__count_impl(size)) _Pre_valid_impl_) -#define _Pre_writable_size_(size) _SAL2_Source_(_Pre_writable_size_, (size), _Pre1_impl_(__cap_impl(size))) -#define _Pre_readable_byte_size_(size) _SAL2_Source_(_Pre_readable_byte_size_, (size), _Pre1_impl_(__bytecount_impl(size)) _Pre_valid_impl_) -#define _Pre_writable_byte_size_(size) _SAL2_Source_(_Pre_writable_byte_size_, (size), _Pre1_impl_(__bytecap_impl(size))) - -#define _Post_readable_size_(size) _SAL2_Source_(_Post_readable_size_, (size), _Post1_impl_(__count_impl(size)) _Post_valid_impl_) -#define _Post_writable_size_(size) _SAL2_Source_(_Post_writable_size_, (size), _Post1_impl_(__cap_impl(size))) -#define _Post_readable_byte_size_(size) _SAL2_Source_(_Post_readable_byte_size_, (size), _Post1_impl_(__bytecount_impl(size)) _Post_valid_impl_) -#define _Post_writable_byte_size_(size) _SAL2_Source_(_Post_writable_byte_size_, (size), _Post1_impl_(__bytecap_impl(size))) - -// -// Pointer null-ness properties -// -#define _Null_ _SAL2_Source_(_Null_, (), _Null_impl_) -#define _Notnull_ _SAL2_Source_(_Notnull_, (), _Notnull_impl_) -#define _Maybenull_ _SAL2_Source_(_Maybenull_, (), _Maybenull_impl_) - -// -// _Pre_ annotations --- -// -// describing conditions that must be met before the call of the function - -// e.g. int strlen( _Pre_z_ const char* sz ); -// buffer is a zero terminated string -#define _Pre_z_ _SAL2_Source_(_Pre_z_, (), _Pre1_impl_(__zterm_impl) _Pre_valid_impl_) - -// valid size unknown or indicated by type (e.g.:LPSTR) -#define _Pre_valid_ _SAL2_Source_(_Pre_valid_, (), _Pre1_impl_(__notnull_impl_notref) _Pre_valid_impl_) -#define _Pre_opt_valid_ _SAL2_Source_(_Pre_opt_valid_, (), _Pre1_impl_(__maybenull_impl_notref) _Pre_valid_impl_) - -#define _Pre_invalid_ _SAL2_Source_(_Pre_invalid_, (), _Deref_pre1_impl_(__notvalid_impl)) - -// Overrides recursive valid when some field is not yet initialized when using _Inout_ -#define _Pre_unknown_ _SAL2_Source_(_Pre_unknown_, (), _Pre1_impl_(__maybevalid_impl)) - -// used with allocated but not yet initialized objects -#define _Pre_notnull_ _SAL2_Source_(_Pre_notnull_, (), _Pre1_impl_(__notnull_impl_notref)) -#define _Pre_maybenull_ _SAL2_Source_(_Pre_maybenull_, (), _Pre1_impl_(__maybenull_impl_notref)) -#define _Pre_null_ _SAL2_Source_(_Pre_null_, (), _Pre1_impl_(__null_impl_notref)) - -// -// _Post_ annotations --- -// -// describing conditions that hold after the function call - -// void CopyStr( _In_z_ const char* szFrom, _Pre_cap_(cch) _Post_z_ char* szFrom, size_t cchFrom ); -// buffer will be a zero-terminated string after the call -#define _Post_z_ _SAL2_Source_(_Post_z_, (), _Post1_impl_(__zterm_impl) _Post_valid_impl_) - -// e.g. HRESULT InitStruct( _Post_valid_ Struct* pobj ); -#define _Post_valid_ _SAL2_Source_(_Post_valid_, (), _Post_valid_impl_) -#define _Post_invalid_ _SAL2_Source_(_Post_invalid_, (), _Deref_post1_impl_(__notvalid_impl)) - -// e.g. void free( _Post_ptr_invalid_ void* pv ); -#define _Post_ptr_invalid_ _SAL2_Source_(_Post_ptr_invalid_, (), _Post1_impl_(__notvalid_impl)) - -// e.g. void ThrowExceptionIfNull( _Post_notnull_ const void* pv ); -#define _Post_notnull_ _SAL2_Source_(_Post_notnull_, (), _Post1_impl_(__notnull_impl)) - -// e.g. HRESULT GetObject(_Outptr_ _On_failure_(_At_(*p, _Post_null_)) T **p); -#define _Post_null_ _SAL2_Source_(_Post_null_, (), _Post1_impl_(__null_impl)) - -#define _Post_maybenull_ _SAL2_Source_(_Post_maybenull_, (), _Post1_impl_(__maybenull_impl)) - -#define _Prepost_z_ _SAL2_Source_(_Prepost_z_, (), _Pre_z_ _Post_z_) - - -#pragma region Input Buffer SAL 1 compatibility macros - -/*========================================================================== - - This section contains definitions for macros defined for VS2010 and earlier. - Usage of these macros is still supported, but the SAL 2 macros defined above - are recommended instead. This comment block is retained to assist in - understanding SAL that still uses the older syntax. - - The macros are defined in 3 layers: - - _In_/_Out_ Layer: - ---------------- - This layer provides the highest abstraction and its macros should be used - in most cases. Its macros start with _In_, _Out_ or _Inout_. For the - typical case they provide the most concise annotations. - - _Pre_/_Post_ Layer: - ------------------ - The macros of this layer only should be used when there is no suitable macro - in the _In_/_Out_ layer. Its macros start with _Pre_, _Post_, _Ret_, - _Deref_pre_ _Deref_post_ and _Deref_ret_. This layer provides the most - flexibility for annotations. - - Implementation Abstraction Layer: - -------------------------------- - Macros from this layer should never be used directly. The layer only exists - to hide the implementation of the annotation macros. - - - Annotation Syntax: - |--------------|----------|----------------|-----------------------------| - | Usage | Nullness | ZeroTerminated | Extent | - |--------------|----------|----------------|-----------------------------| - | _In_ | <> | <> | <> | - | _Out_ | opt_ | z_ | [byte]cap_[c_|x_]( size ) | - | _Inout_ | | | [byte]count_[c_|x_]( size ) | - | _Deref_out_ | | | ptrdiff_cap_( ptr ) | - |--------------| | | ptrdiff_count_( ptr ) | - | _Ret_ | | | | - | _Deref_ret_ | | | | - |--------------| | | | - | _Pre_ | | | | - | _Post_ | | | | - | _Deref_pre_ | | | | - | _Deref_post_ | | | | - |--------------|----------|----------------|-----------------------------| - - Usage: - ----- - _In_, _Out_, _Inout_, _Pre_, _Post_, _Deref_pre_, _Deref_post_ are for - formal parameters. - _Ret_, _Deref_ret_ must be used for return values. - - Nullness: - -------- - If the pointer can be NULL the annotation contains _opt. If the macro - does not contain '_opt' the pointer may not be NULL. - - String Type: - ----------- - _z: NullTerminated string - for _In_ parameters the buffer must have the specified stringtype before the call - for _Out_ parameters the buffer must have the specified stringtype after the call - for _Inout_ parameters both conditions apply - - Extent Syntax: - |------|---------------|---------------| - | Unit | Writ/Readable | Argument Type | - |------|---------------|---------------| - | <> | cap_ | <> | - | byte | count_ | c_ | - | | | x_ | - |------|---------------|---------------| - - 'cap' (capacity) describes the writable size of the buffer and is typically used - with _Out_. The default unit is elements. Use 'bytecap' if the size is given in bytes - 'count' describes the readable size of the buffer and is typically used with _In_. - The default unit is elements. Use 'bytecount' if the size is given in bytes. - - Argument syntax for cap_, bytecap_, count_, bytecount_: - (|return)[+n] e.g. cch, return, cb+2 - - If the buffer size is a constant expression use the c_ postfix. - E.g. cap_c_(20), count_c_(MAX_PATH), bytecount_c_(16) - - If the buffer size is given by a limiting pointer use the ptrdiff_ versions - of the macros. - - If the buffer size is neither a parameter nor a constant expression use the x_ - postfix. e.g. bytecount_x_(num*size) x_ annotations accept any arbitrary string. - No analysis can be done for x_ annotations but they at least tell the tool that - the buffer has some sort of extent description. x_ annotations might be supported - by future compiler versions. - -============================================================================*/ - -// e.g. void SetCharRange( _In_count_(cch) const char* rgch, size_t cch ) -// valid buffer extent described by another parameter -#define _In_count_(size) _SAL1_1_Source_(_In_count_, (size), _Pre_count_(size) _Deref_pre_readonly_) -#define _In_opt_count_(size) _SAL1_1_Source_(_In_opt_count_, (size), _Pre_opt_count_(size) _Deref_pre_readonly_) -#define _In_bytecount_(size) _SAL1_1_Source_(_In_bytecount_, (size), _Pre_bytecount_(size) _Deref_pre_readonly_) -#define _In_opt_bytecount_(size) _SAL1_1_Source_(_In_opt_bytecount_, (size), _Pre_opt_bytecount_(size) _Deref_pre_readonly_) - -// valid buffer extent described by a constant extression -#define _In_count_c_(size) _SAL1_1_Source_(_In_count_c_, (size), _Pre_count_c_(size) _Deref_pre_readonly_) -#define _In_opt_count_c_(size) _SAL1_1_Source_(_In_opt_count_c_, (size), _Pre_opt_count_c_(size) _Deref_pre_readonly_) -#define _In_bytecount_c_(size) _SAL1_1_Source_(_In_bytecount_c_, (size), _Pre_bytecount_c_(size) _Deref_pre_readonly_) -#define _In_opt_bytecount_c_(size) _SAL1_1_Source_(_In_opt_bytecount_c_, (size), _Pre_opt_bytecount_c_(size) _Deref_pre_readonly_) - -// nullterminated 'input' buffers with given size - -// e.g. void SetCharRange( _In_count_(cch) const char* rgch, size_t cch ) -// nullterminated valid buffer extent described by another parameter -#define _In_z_count_(size) _SAL1_1_Source_(_In_z_count_, (size), _Pre_z_ _Pre_count_(size) _Deref_pre_readonly_) -#define _In_opt_z_count_(size) _SAL1_1_Source_(_In_opt_z_count_, (size), _Pre_opt_z_ _Pre_opt_count_(size) _Deref_pre_readonly_) -#define _In_z_bytecount_(size) _SAL1_1_Source_(_In_z_bytecount_, (size), _Pre_z_ _Pre_bytecount_(size) _Deref_pre_readonly_) -#define _In_opt_z_bytecount_(size) _SAL1_1_Source_(_In_opt_z_bytecount_, (size), _Pre_opt_z_ _Pre_opt_bytecount_(size) _Deref_pre_readonly_) - -// nullterminated valid buffer extent described by a constant extression -#define _In_z_count_c_(size) _SAL1_1_Source_(_In_z_count_c_, (size), _Pre_z_ _Pre_count_c_(size) _Deref_pre_readonly_) -#define _In_opt_z_count_c_(size) _SAL1_1_Source_(_In_opt_z_count_c_, (size), _Pre_opt_z_ _Pre_opt_count_c_(size) _Deref_pre_readonly_) -#define _In_z_bytecount_c_(size) _SAL1_1_Source_(_In_z_bytecount_c_, (size), _Pre_z_ _Pre_bytecount_c_(size) _Deref_pre_readonly_) -#define _In_opt_z_bytecount_c_(size) _SAL1_1_Source_(_In_opt_z_bytecount_c_, (size), _Pre_opt_z_ _Pre_opt_bytecount_c_(size) _Deref_pre_readonly_) - -// buffer capacity is described by another pointer -// e.g. void Foo( _In_ptrdiff_count_(pchMax) const char* pch, const char* pchMax ) { while pch < pchMax ) pch++; } -#define _In_ptrdiff_count_(size) _SAL1_1_Source_(_In_ptrdiff_count_, (size), _Pre_ptrdiff_count_(size) _Deref_pre_readonly_) -#define _In_opt_ptrdiff_count_(size) _SAL1_1_Source_(_In_opt_ptrdiff_count_, (size), _Pre_opt_ptrdiff_count_(size) _Deref_pre_readonly_) - -// 'x' version for complex expressions that are not supported by the current compiler version -// e.g. void Set3ColMatrix( _In_count_x_(3*cRows) const Elem* matrix, int cRows ); -#define _In_count_x_(size) _SAL1_1_Source_(_In_count_x_, (size), _Pre_count_x_(size) _Deref_pre_readonly_) -#define _In_opt_count_x_(size) _SAL1_1_Source_(_In_opt_count_x_, (size), _Pre_opt_count_x_(size) _Deref_pre_readonly_) -#define _In_bytecount_x_(size) _SAL1_1_Source_(_In_bytecount_x_, (size), _Pre_bytecount_x_(size) _Deref_pre_readonly_) -#define _In_opt_bytecount_x_(size) _SAL1_1_Source_(_In_opt_bytecount_x_, (size), _Pre_opt_bytecount_x_(size) _Deref_pre_readonly_) - - -// 'out' with buffer size -// e.g. void GetIndices( _Out_cap_(cIndices) int* rgIndices, size_t cIndices ); -// buffer capacity is described by another parameter -#define _Out_cap_(size) _SAL1_1_Source_(_Out_cap_, (size), _Pre_cap_(size) _Post_valid_impl_) -#define _Out_opt_cap_(size) _SAL1_1_Source_(_Out_opt_cap_, (size), _Pre_opt_cap_(size) _Post_valid_impl_) -#define _Out_bytecap_(size) _SAL1_1_Source_(_Out_bytecap_, (size), _Pre_bytecap_(size) _Post_valid_impl_) -#define _Out_opt_bytecap_(size) _SAL1_1_Source_(_Out_opt_bytecap_, (size), _Pre_opt_bytecap_(size) _Post_valid_impl_) - -// buffer capacity is described by a constant expression -#define _Out_cap_c_(size) _SAL1_1_Source_(_Out_cap_c_, (size), _Pre_cap_c_(size) _Post_valid_impl_) -#define _Out_opt_cap_c_(size) _SAL1_1_Source_(_Out_opt_cap_c_, (size), _Pre_opt_cap_c_(size) _Post_valid_impl_) -#define _Out_bytecap_c_(size) _SAL1_1_Source_(_Out_bytecap_c_, (size), _Pre_bytecap_c_(size) _Post_valid_impl_) -#define _Out_opt_bytecap_c_(size) _SAL1_1_Source_(_Out_opt_bytecap_c_, (size), _Pre_opt_bytecap_c_(size) _Post_valid_impl_) - -// buffer capacity is described by another parameter multiplied by a constant expression -#define _Out_cap_m_(mult,size) _SAL1_1_Source_(_Out_cap_m_, (mult,size), _Pre_cap_m_(mult,size) _Post_valid_impl_) -#define _Out_opt_cap_m_(mult,size) _SAL1_1_Source_(_Out_opt_cap_m_, (mult,size), _Pre_opt_cap_m_(mult,size) _Post_valid_impl_) -#define _Out_z_cap_m_(mult,size) _SAL1_1_Source_(_Out_z_cap_m_, (mult,size), _Pre_cap_m_(mult,size) _Post_valid_impl_ _Post_z_) -#define _Out_opt_z_cap_m_(mult,size) _SAL1_1_Source_(_Out_opt_z_cap_m_, (mult,size), _Pre_opt_cap_m_(mult,size) _Post_valid_impl_ _Post_z_) - -// buffer capacity is described by another pointer -// e.g. void Foo( _Out_ptrdiff_cap_(pchMax) char* pch, const char* pchMax ) { while pch < pchMax ) pch++; } -#define _Out_ptrdiff_cap_(size) _SAL1_1_Source_(_Out_ptrdiff_cap_, (size), _Pre_ptrdiff_cap_(size) _Post_valid_impl_) -#define _Out_opt_ptrdiff_cap_(size) _SAL1_1_Source_(_Out_opt_ptrdiff_cap_, (size), _Pre_opt_ptrdiff_cap_(size) _Post_valid_impl_) - -// buffer capacity is described by a complex expression -#define _Out_cap_x_(size) _SAL1_1_Source_(_Out_cap_x_, (size), _Pre_cap_x_(size) _Post_valid_impl_) -#define _Out_opt_cap_x_(size) _SAL1_1_Source_(_Out_opt_cap_x_, (size), _Pre_opt_cap_x_(size) _Post_valid_impl_) -#define _Out_bytecap_x_(size) _SAL1_1_Source_(_Out_bytecap_x_, (size), _Pre_bytecap_x_(size) _Post_valid_impl_) -#define _Out_opt_bytecap_x_(size) _SAL1_1_Source_(_Out_opt_bytecap_x_, (size), _Pre_opt_bytecap_x_(size) _Post_valid_impl_) - -// a zero terminated string is filled into a buffer of given capacity -// e.g. void CopyStr( _In_z_ const char* szFrom, _Out_z_cap_(cchTo) char* szTo, size_t cchTo ); -// buffer capacity is described by another parameter -#define _Out_z_cap_(size) _SAL1_1_Source_(_Out_z_cap_, (size), _Pre_cap_(size) _Post_valid_impl_ _Post_z_) -#define _Out_opt_z_cap_(size) _SAL1_1_Source_(_Out_opt_z_cap_, (size), _Pre_opt_cap_(size) _Post_valid_impl_ _Post_z_) -#define _Out_z_bytecap_(size) _SAL1_1_Source_(_Out_z_bytecap_, (size), _Pre_bytecap_(size) _Post_valid_impl_ _Post_z_) -#define _Out_opt_z_bytecap_(size) _SAL1_1_Source_(_Out_opt_z_bytecap_, (size), _Pre_opt_bytecap_(size) _Post_valid_impl_ _Post_z_) - -// buffer capacity is described by a constant expression -#define _Out_z_cap_c_(size) _SAL1_1_Source_(_Out_z_cap_c_, (size), _Pre_cap_c_(size) _Post_valid_impl_ _Post_z_) -#define _Out_opt_z_cap_c_(size) _SAL1_1_Source_(_Out_opt_z_cap_c_, (size), _Pre_opt_cap_c_(size) _Post_valid_impl_ _Post_z_) -#define _Out_z_bytecap_c_(size) _SAL1_1_Source_(_Out_z_bytecap_c_, (size), _Pre_bytecap_c_(size) _Post_valid_impl_ _Post_z_) -#define _Out_opt_z_bytecap_c_(size) _SAL1_1_Source_(_Out_opt_z_bytecap_c_, (size), _Pre_opt_bytecap_c_(size) _Post_valid_impl_ _Post_z_) - -// buffer capacity is described by a complex expression -#define _Out_z_cap_x_(size) _SAL1_1_Source_(_Out_z_cap_x_, (size), _Pre_cap_x_(size) _Post_valid_impl_ _Post_z_) -#define _Out_opt_z_cap_x_(size) _SAL1_1_Source_(_Out_opt_z_cap_x_, (size), _Pre_opt_cap_x_(size) _Post_valid_impl_ _Post_z_) -#define _Out_z_bytecap_x_(size) _SAL1_1_Source_(_Out_z_bytecap_x_, (size), _Pre_bytecap_x_(size) _Post_valid_impl_ _Post_z_) -#define _Out_opt_z_bytecap_x_(size) _SAL1_1_Source_(_Out_opt_z_bytecap_x_, (size), _Pre_opt_bytecap_x_(size) _Post_valid_impl_ _Post_z_) - -// a zero terminated string is filled into a buffer of given capacity -// e.g. size_t CopyCharRange( _In_count_(cchFrom) const char* rgchFrom, size_t cchFrom, _Out_cap_post_count_(cchTo,return)) char* rgchTo, size_t cchTo ); -#define _Out_cap_post_count_(cap,count) _SAL1_1_Source_(_Out_cap_post_count_, (cap,count), _Pre_cap_(cap) _Post_valid_impl_ _Post_count_(count)) -#define _Out_opt_cap_post_count_(cap,count) _SAL1_1_Source_(_Out_opt_cap_post_count_, (cap,count), _Pre_opt_cap_(cap) _Post_valid_impl_ _Post_count_(count)) -#define _Out_bytecap_post_bytecount_(cap,count) _SAL1_1_Source_(_Out_bytecap_post_bytecount_, (cap,count), _Pre_bytecap_(cap) _Post_valid_impl_ _Post_bytecount_(count)) -#define _Out_opt_bytecap_post_bytecount_(cap,count) _SAL1_1_Source_(_Out_opt_bytecap_post_bytecount_, (cap,count), _Pre_opt_bytecap_(cap) _Post_valid_impl_ _Post_bytecount_(count)) - -// a zero terminated string is filled into a buffer of given capacity -// e.g. size_t CopyStr( _In_z_ const char* szFrom, _Out_z_cap_post_count_(cchTo,return+1) char* szTo, size_t cchTo ); -#define _Out_z_cap_post_count_(cap,count) _SAL1_1_Source_(_Out_z_cap_post_count_, (cap,count), _Pre_cap_(cap) _Post_valid_impl_ _Post_z_count_(count)) -#define _Out_opt_z_cap_post_count_(cap,count) _SAL1_1_Source_(_Out_opt_z_cap_post_count_, (cap,count), _Pre_opt_cap_(cap) _Post_valid_impl_ _Post_z_count_(count)) -#define _Out_z_bytecap_post_bytecount_(cap,count) _SAL1_1_Source_(_Out_z_bytecap_post_bytecount_, (cap,count), _Pre_bytecap_(cap) _Post_valid_impl_ _Post_z_bytecount_(count)) -#define _Out_opt_z_bytecap_post_bytecount_(cap,count) _SAL1_1_Source_(_Out_opt_z_bytecap_post_bytecount_, (cap,count), _Pre_opt_bytecap_(cap) _Post_valid_impl_ _Post_z_bytecount_(count)) - -// only use with dereferenced arguments e.g. '*pcch' -#define _Out_capcount_(capcount) _SAL1_1_Source_(_Out_capcount_, (capcount), _Pre_cap_(capcount) _Post_valid_impl_ _Post_count_(capcount)) -#define _Out_opt_capcount_(capcount) _SAL1_1_Source_(_Out_opt_capcount_, (capcount), _Pre_opt_cap_(capcount) _Post_valid_impl_ _Post_count_(capcount)) -#define _Out_bytecapcount_(capcount) _SAL1_1_Source_(_Out_bytecapcount_, (capcount), _Pre_bytecap_(capcount) _Post_valid_impl_ _Post_bytecount_(capcount)) -#define _Out_opt_bytecapcount_(capcount) _SAL1_1_Source_(_Out_opt_bytecapcount_, (capcount), _Pre_opt_bytecap_(capcount) _Post_valid_impl_ _Post_bytecount_(capcount)) - -#define _Out_capcount_x_(capcount) _SAL1_1_Source_(_Out_capcount_x_, (capcount), _Pre_cap_x_(capcount) _Post_valid_impl_ _Post_count_x_(capcount)) -#define _Out_opt_capcount_x_(capcount) _SAL1_1_Source_(_Out_opt_capcount_x_, (capcount), _Pre_opt_cap_x_(capcount) _Post_valid_impl_ _Post_count_x_(capcount)) -#define _Out_bytecapcount_x_(capcount) _SAL1_1_Source_(_Out_bytecapcount_x_, (capcount), _Pre_bytecap_x_(capcount) _Post_valid_impl_ _Post_bytecount_x_(capcount)) -#define _Out_opt_bytecapcount_x_(capcount) _SAL1_1_Source_(_Out_opt_bytecapcount_x_, (capcount), _Pre_opt_bytecap_x_(capcount) _Post_valid_impl_ _Post_bytecount_x_(capcount)) - -// e.g. GetString( _Out_z_capcount_(*pLen+1) char* sz, size_t* pLen ); -#define _Out_z_capcount_(capcount) _SAL1_1_Source_(_Out_z_capcount_, (capcount), _Pre_cap_(capcount) _Post_valid_impl_ _Post_z_count_(capcount)) -#define _Out_opt_z_capcount_(capcount) _SAL1_1_Source_(_Out_opt_z_capcount_, (capcount), _Pre_opt_cap_(capcount) _Post_valid_impl_ _Post_z_count_(capcount)) -#define _Out_z_bytecapcount_(capcount) _SAL1_1_Source_(_Out_z_bytecapcount_, (capcount), _Pre_bytecap_(capcount) _Post_valid_impl_ _Post_z_bytecount_(capcount)) -#define _Out_opt_z_bytecapcount_(capcount) _SAL1_1_Source_(_Out_opt_z_bytecapcount_, (capcount), _Pre_opt_bytecap_(capcount) _Post_valid_impl_ _Post_z_bytecount_(capcount)) - - -// 'inout' buffers with initialized elements before and after the call -// e.g. void ModifyIndices( _Inout_count_(cIndices) int* rgIndices, size_t cIndices ); -#define _Inout_count_(size) _SAL1_1_Source_(_Inout_count_, (size), _Prepost_count_(size)) -#define _Inout_opt_count_(size) _SAL1_1_Source_(_Inout_opt_count_, (size), _Prepost_opt_count_(size)) -#define _Inout_bytecount_(size) _SAL1_1_Source_(_Inout_bytecount_, (size), _Prepost_bytecount_(size)) -#define _Inout_opt_bytecount_(size) _SAL1_1_Source_(_Inout_opt_bytecount_, (size), _Prepost_opt_bytecount_(size)) - -#define _Inout_count_c_(size) _SAL1_1_Source_(_Inout_count_c_, (size), _Prepost_count_c_(size)) -#define _Inout_opt_count_c_(size) _SAL1_1_Source_(_Inout_opt_count_c_, (size), _Prepost_opt_count_c_(size)) -#define _Inout_bytecount_c_(size) _SAL1_1_Source_(_Inout_bytecount_c_, (size), _Prepost_bytecount_c_(size)) -#define _Inout_opt_bytecount_c_(size) _SAL1_1_Source_(_Inout_opt_bytecount_c_, (size), _Prepost_opt_bytecount_c_(size)) - -// nullterminated 'inout' buffers with initialized elements before and after the call -// e.g. void ModifyIndices( _Inout_count_(cIndices) int* rgIndices, size_t cIndices ); -#define _Inout_z_count_(size) _SAL1_1_Source_(_Inout_z_count_, (size), _Prepost_z_ _Prepost_count_(size)) -#define _Inout_opt_z_count_(size) _SAL1_1_Source_(_Inout_opt_z_count_, (size), _Prepost_z_ _Prepost_opt_count_(size)) -#define _Inout_z_bytecount_(size) _SAL1_1_Source_(_Inout_z_bytecount_, (size), _Prepost_z_ _Prepost_bytecount_(size)) -#define _Inout_opt_z_bytecount_(size) _SAL1_1_Source_(_Inout_opt_z_bytecount_, (size), _Prepost_z_ _Prepost_opt_bytecount_(size)) - -#define _Inout_z_count_c_(size) _SAL1_1_Source_(_Inout_z_count_c_, (size), _Prepost_z_ _Prepost_count_c_(size)) -#define _Inout_opt_z_count_c_(size) _SAL1_1_Source_(_Inout_opt_z_count_c_, (size), _Prepost_z_ _Prepost_opt_count_c_(size)) -#define _Inout_z_bytecount_c_(size) _SAL1_1_Source_(_Inout_z_bytecount_c_, (size), _Prepost_z_ _Prepost_bytecount_c_(size)) -#define _Inout_opt_z_bytecount_c_(size) _SAL1_1_Source_(_Inout_opt_z_bytecount_c_, (size), _Prepost_z_ _Prepost_opt_bytecount_c_(size)) - -#define _Inout_ptrdiff_count_(size) _SAL1_1_Source_(_Inout_ptrdiff_count_, (size), _Pre_ptrdiff_count_(size)) -#define _Inout_opt_ptrdiff_count_(size) _SAL1_1_Source_(_Inout_opt_ptrdiff_count_, (size), _Pre_opt_ptrdiff_count_(size)) - -#define _Inout_count_x_(size) _SAL1_1_Source_(_Inout_count_x_, (size), _Prepost_count_x_(size)) -#define _Inout_opt_count_x_(size) _SAL1_1_Source_(_Inout_opt_count_x_, (size), _Prepost_opt_count_x_(size)) -#define _Inout_bytecount_x_(size) _SAL1_1_Source_(_Inout_bytecount_x_, (size), _Prepost_bytecount_x_(size)) -#define _Inout_opt_bytecount_x_(size) _SAL1_1_Source_(_Inout_opt_bytecount_x_, (size), _Prepost_opt_bytecount_x_(size)) - -// e.g. void AppendToLPSTR( _In_ LPCSTR szFrom, _Inout_cap_(cchTo) LPSTR* szTo, size_t cchTo ); -#define _Inout_cap_(size) _SAL1_1_Source_(_Inout_cap_, (size), _Pre_valid_cap_(size) _Post_valid_) -#define _Inout_opt_cap_(size) _SAL1_1_Source_(_Inout_opt_cap_, (size), _Pre_opt_valid_cap_(size) _Post_valid_) -#define _Inout_bytecap_(size) _SAL1_1_Source_(_Inout_bytecap_, (size), _Pre_valid_bytecap_(size) _Post_valid_) -#define _Inout_opt_bytecap_(size) _SAL1_1_Source_(_Inout_opt_bytecap_, (size), _Pre_opt_valid_bytecap_(size) _Post_valid_) - -#define _Inout_cap_c_(size) _SAL1_1_Source_(_Inout_cap_c_, (size), _Pre_valid_cap_c_(size) _Post_valid_) -#define _Inout_opt_cap_c_(size) _SAL1_1_Source_(_Inout_opt_cap_c_, (size), _Pre_opt_valid_cap_c_(size) _Post_valid_) -#define _Inout_bytecap_c_(size) _SAL1_1_Source_(_Inout_bytecap_c_, (size), _Pre_valid_bytecap_c_(size) _Post_valid_) -#define _Inout_opt_bytecap_c_(size) _SAL1_1_Source_(_Inout_opt_bytecap_c_, (size), _Pre_opt_valid_bytecap_c_(size) _Post_valid_) - -#define _Inout_cap_x_(size) _SAL1_1_Source_(_Inout_cap_x_, (size), _Pre_valid_cap_x_(size) _Post_valid_) -#define _Inout_opt_cap_x_(size) _SAL1_1_Source_(_Inout_opt_cap_x_, (size), _Pre_opt_valid_cap_x_(size) _Post_valid_) -#define _Inout_bytecap_x_(size) _SAL1_1_Source_(_Inout_bytecap_x_, (size), _Pre_valid_bytecap_x_(size) _Post_valid_) -#define _Inout_opt_bytecap_x_(size) _SAL1_1_Source_(_Inout_opt_bytecap_x_, (size), _Pre_opt_valid_bytecap_x_(size) _Post_valid_) - -// inout string buffers with writable size -// e.g. void AppendStr( _In_z_ const char* szFrom, _Inout_z_cap_(cchTo) char* szTo, size_t cchTo ); -#define _Inout_z_cap_(size) _SAL1_1_Source_(_Inout_z_cap_, (size), _Pre_z_cap_(size) _Post_z_) -#define _Inout_opt_z_cap_(size) _SAL1_1_Source_(_Inout_opt_z_cap_, (size), _Pre_opt_z_cap_(size) _Post_z_) -#define _Inout_z_bytecap_(size) _SAL1_1_Source_(_Inout_z_bytecap_, (size), _Pre_z_bytecap_(size) _Post_z_) -#define _Inout_opt_z_bytecap_(size) _SAL1_1_Source_(_Inout_opt_z_bytecap_, (size), _Pre_opt_z_bytecap_(size) _Post_z_) - -#define _Inout_z_cap_c_(size) _SAL1_1_Source_(_Inout_z_cap_c_, (size), _Pre_z_cap_c_(size) _Post_z_) -#define _Inout_opt_z_cap_c_(size) _SAL1_1_Source_(_Inout_opt_z_cap_c_, (size), _Pre_opt_z_cap_c_(size) _Post_z_) -#define _Inout_z_bytecap_c_(size) _SAL1_1_Source_(_Inout_z_bytecap_c_, (size), _Pre_z_bytecap_c_(size) _Post_z_) -#define _Inout_opt_z_bytecap_c_(size) _SAL1_1_Source_(_Inout_opt_z_bytecap_c_, (size), _Pre_opt_z_bytecap_c_(size) _Post_z_) - -#define _Inout_z_cap_x_(size) _SAL1_1_Source_(_Inout_z_cap_x_, (size), _Pre_z_cap_x_(size) _Post_z_) -#define _Inout_opt_z_cap_x_(size) _SAL1_1_Source_(_Inout_opt_z_cap_x_, (size), _Pre_opt_z_cap_x_(size) _Post_z_) -#define _Inout_z_bytecap_x_(size) _SAL1_1_Source_(_Inout_z_bytecap_x_, (size), _Pre_z_bytecap_x_(size) _Post_z_) -#define _Inout_opt_z_bytecap_x_(size) _SAL1_1_Source_(_Inout_opt_z_bytecap_x_, (size), _Pre_opt_z_bytecap_x_(size) _Post_z_) - - -// returning pointers to valid objects -#define _Ret_ _SAL1_1_Source_(_Ret_, (), _Ret_valid_) -#define _Ret_opt_ _SAL1_1_Source_(_Ret_opt_, (), _Ret_opt_valid_) - -// annotations to express 'boundedness' of integral value parameter -#define _In_bound_ _SAL1_1_Source_(_In_bound_, (), _In_bound_impl_) -#define _Out_bound_ _SAL1_1_Source_(_Out_bound_, (), _Out_bound_impl_) -#define _Ret_bound_ _SAL1_1_Source_(_Ret_bound_, (), _Ret_bound_impl_) -#define _Deref_in_bound_ _SAL1_1_Source_(_Deref_in_bound_, (), _Deref_in_bound_impl_) -#define _Deref_out_bound_ _SAL1_1_Source_(_Deref_out_bound_, (), _Deref_out_bound_impl_) -#define _Deref_inout_bound_ _SAL1_1_Source_(_Deref_inout_bound_, (), _Deref_in_bound_ _Deref_out_bound_) -#define _Deref_ret_bound_ _SAL1_1_Source_(_Deref_ret_bound_, (), _Deref_ret_bound_impl_) - -// e.g. HRESULT HrCreatePoint( _Deref_out_opt_ POINT** ppPT ); -#define _Deref_out_ _SAL1_1_Source_(_Deref_out_, (), _Out_ _Deref_post_valid_) -#define _Deref_out_opt_ _SAL1_1_Source_(_Deref_out_opt_, (), _Out_ _Deref_post_opt_valid_) -#define _Deref_opt_out_ _SAL1_1_Source_(_Deref_opt_out_, (), _Out_opt_ _Deref_post_valid_) -#define _Deref_opt_out_opt_ _SAL1_1_Source_(_Deref_opt_out_opt_, (), _Out_opt_ _Deref_post_opt_valid_) - -// e.g. void CloneString( _In_z_ const wchar_t* wzFrom, _Deref_out_z_ wchar_t** pWzTo ); -#define _Deref_out_z_ _SAL1_1_Source_(_Deref_out_z_, (), _Out_ _Deref_post_z_) -#define _Deref_out_opt_z_ _SAL1_1_Source_(_Deref_out_opt_z_, (), _Out_ _Deref_post_opt_z_) -#define _Deref_opt_out_z_ _SAL1_1_Source_(_Deref_opt_out_z_, (), _Out_opt_ _Deref_post_z_) -#define _Deref_opt_out_opt_z_ _SAL1_1_Source_(_Deref_opt_out_opt_z_, (), _Out_opt_ _Deref_post_opt_z_) - -// -// _Deref_pre_ --- -// -// describing conditions for array elements of dereferenced pointer parameters that must be met before the call - -// e.g. void SaveStringArray( _In_count_(cStrings) _Deref_pre_z_ const wchar_t* const rgpwch[] ); -#define _Deref_pre_z_ _SAL1_1_Source_(_Deref_pre_z_, (), _Deref_pre1_impl_(__notnull_impl_notref) _Deref_pre1_impl_(__zterm_impl) _Pre_valid_impl_) -#define _Deref_pre_opt_z_ _SAL1_1_Source_(_Deref_pre_opt_z_, (), _Deref_pre1_impl_(__maybenull_impl_notref) _Deref_pre1_impl_(__zterm_impl) _Pre_valid_impl_) - -// e.g. void FillInArrayOfStr32( _In_count_(cStrings) _Deref_pre_cap_c_(32) _Deref_post_z_ wchar_t* const rgpwch[] ); -// buffer capacity is described by another parameter -#define _Deref_pre_cap_(size) _SAL1_1_Source_(_Deref_pre_cap_, (size), _Deref_pre1_impl_(__notnull_impl_notref) _Deref_pre1_impl_(__cap_impl(size))) -#define _Deref_pre_opt_cap_(size) _SAL1_1_Source_(_Deref_pre_opt_cap_, (size), _Deref_pre1_impl_(__maybenull_impl_notref) _Deref_pre1_impl_(__cap_impl(size))) -#define _Deref_pre_bytecap_(size) _SAL1_1_Source_(_Deref_pre_bytecap_, (size), _Deref_pre1_impl_(__notnull_impl_notref) _Deref_pre1_impl_(__bytecap_impl(size))) -#define _Deref_pre_opt_bytecap_(size) _SAL1_1_Source_(_Deref_pre_opt_bytecap_, (size), _Deref_pre1_impl_(__maybenull_impl_notref) _Deref_pre1_impl_(__bytecap_impl(size))) - -// buffer capacity is described by a constant expression -#define _Deref_pre_cap_c_(size) _SAL1_1_Source_(_Deref_pre_cap_c_, (size), _Deref_pre1_impl_(__notnull_impl_notref) _Deref_pre1_impl_(__cap_c_impl(size))) -#define _Deref_pre_opt_cap_c_(size) _SAL1_1_Source_(_Deref_pre_opt_cap_c_, (size), _Deref_pre1_impl_(__maybenull_impl_notref) _Deref_pre1_impl_(__cap_c_impl(size))) -#define _Deref_pre_bytecap_c_(size) _SAL1_1_Source_(_Deref_pre_bytecap_c_, (size), _Deref_pre1_impl_(__notnull_impl_notref) _Deref_pre1_impl_(__bytecap_c_impl(size))) -#define _Deref_pre_opt_bytecap_c_(size) _SAL1_1_Source_(_Deref_pre_opt_bytecap_c_, (size), _Deref_pre1_impl_(__maybenull_impl_notref) _Deref_pre1_impl_(__bytecap_c_impl(size))) - -// buffer capacity is described by a complex condition -#define _Deref_pre_cap_x_(size) _SAL1_1_Source_(_Deref_pre_cap_x_, (size), _Deref_pre1_impl_(__notnull_impl_notref) _Deref_pre1_impl_(__cap_x_impl(size))) -#define _Deref_pre_opt_cap_x_(size) _SAL1_1_Source_(_Deref_pre_opt_cap_x_, (size), _Deref_pre1_impl_(__maybenull_impl_notref) _Deref_pre1_impl_(__cap_x_impl(size))) -#define _Deref_pre_bytecap_x_(size) _SAL1_1_Source_(_Deref_pre_bytecap_x_, (size), _Deref_pre1_impl_(__notnull_impl_notref) _Deref_pre1_impl_(__bytecap_x_impl(size))) -#define _Deref_pre_opt_bytecap_x_(size) _SAL1_1_Source_(_Deref_pre_opt_bytecap_x_, (size), _Deref_pre1_impl_(__maybenull_impl_notref) _Deref_pre1_impl_(__bytecap_x_impl(size))) - -// convenience macros for nullterminated buffers with given capacity -#define _Deref_pre_z_cap_(size) _SAL1_1_Source_(_Deref_pre_z_cap_, (size), _Deref_pre1_impl_(__notnull_impl_notref) _Deref_pre2_impl_(__zterm_impl,__cap_impl(size)) _Pre_valid_impl_) -#define _Deref_pre_opt_z_cap_(size) _SAL1_1_Source_(_Deref_pre_opt_z_cap_, (size), _Deref_pre1_impl_(__maybenull_impl_notref) _Deref_pre2_impl_(__zterm_impl,__cap_impl(size)) _Pre_valid_impl_) -#define _Deref_pre_z_bytecap_(size) _SAL1_1_Source_(_Deref_pre_z_bytecap_, (size), _Deref_pre1_impl_(__notnull_impl_notref) _Deref_pre2_impl_(__zterm_impl,__bytecap_impl(size)) _Pre_valid_impl_) -#define _Deref_pre_opt_z_bytecap_(size) _SAL1_1_Source_(_Deref_pre_opt_z_bytecap_, (size), _Deref_pre1_impl_(__maybenull_impl_notref) _Deref_pre2_impl_(__zterm_impl,__bytecap_impl(size)) _Pre_valid_impl_) - -#define _Deref_pre_z_cap_c_(size) _SAL1_1_Source_(_Deref_pre_z_cap_c_, (size), _Deref_pre1_impl_(__notnull_impl_notref) _Deref_pre2_impl_(__zterm_impl,__cap_c_impl(size)) _Pre_valid_impl_) -#define _Deref_pre_opt_z_cap_c_(size) _SAL1_1_Source_(_Deref_pre_opt_z_cap_c_, (size), _Deref_pre1_impl_(__maybenull_impl_notref) _Deref_pre2_impl_(__zterm_impl,__cap_c_impl(size)) _Pre_valid_impl_) -#define _Deref_pre_z_bytecap_c_(size) _SAL1_1_Source_(_Deref_pre_z_bytecap_c_, (size), _Deref_pre1_impl_(__notnull_impl_notref) _Deref_pre2_impl_(__zterm_impl,__bytecap_c_impl(size)) _Pre_valid_impl_) -#define _Deref_pre_opt_z_bytecap_c_(size) _SAL1_1_Source_(_Deref_pre_opt_z_bytecap_c_, (size), _Deref_pre1_impl_(__maybenull_impl_notref) _Deref_pre2_impl_(__zterm_impl,__bytecap_c_impl(size)) _Pre_valid_impl_) - -#define _Deref_pre_z_cap_x_(size) _SAL1_1_Source_(_Deref_pre_z_cap_x_, (size), _Deref_pre1_impl_(__notnull_impl_notref) _Deref_pre2_impl_(__zterm_impl,__cap_x_impl(size)) _Pre_valid_impl_) -#define _Deref_pre_opt_z_cap_x_(size) _SAL1_1_Source_(_Deref_pre_opt_z_cap_x_, (size), _Deref_pre1_impl_(__maybenull_impl_notref) _Deref_pre2_impl_(__zterm_impl,__cap_x_impl(size)) _Pre_valid_impl_) -#define _Deref_pre_z_bytecap_x_(size) _SAL1_1_Source_(_Deref_pre_z_bytecap_x_, (size), _Deref_pre1_impl_(__notnull_impl_notref) _Deref_pre2_impl_(__zterm_impl,__bytecap_x_impl(size)) _Pre_valid_impl_) -#define _Deref_pre_opt_z_bytecap_x_(size) _SAL1_1_Source_(_Deref_pre_opt_z_bytecap_x_, (size), _Deref_pre1_impl_(__maybenull_impl_notref) _Deref_pre2_impl_(__zterm_impl,__bytecap_x_impl(size)) _Pre_valid_impl_) - -// known capacity and valid but unknown readable extent -#define _Deref_pre_valid_cap_(size) _SAL1_1_Source_(_Deref_pre_valid_cap_, (size), _Deref_pre1_impl_(__notnull_impl_notref) _Deref_pre1_impl_(__cap_impl(size)) _Pre_valid_impl_) -#define _Deref_pre_opt_valid_cap_(size) _SAL1_1_Source_(_Deref_pre_opt_valid_cap_, (size), _Deref_pre1_impl_(__maybenull_impl_notref) _Deref_pre1_impl_(__cap_impl(size)) _Pre_valid_impl_) -#define _Deref_pre_valid_bytecap_(size) _SAL1_1_Source_(_Deref_pre_valid_bytecap_, (size), _Deref_pre1_impl_(__notnull_impl_notref) _Deref_pre1_impl_(__bytecap_impl(size)) _Pre_valid_impl_) -#define _Deref_pre_opt_valid_bytecap_(size) _SAL1_1_Source_(_Deref_pre_opt_valid_bytecap_, (size), _Deref_pre1_impl_(__maybenull_impl_notref) _Deref_pre1_impl_(__bytecap_impl(size)) _Pre_valid_impl_) - -#define _Deref_pre_valid_cap_c_(size) _SAL1_1_Source_(_Deref_pre_valid_cap_c_, (size), _Deref_pre1_impl_(__notnull_impl_notref) _Deref_pre1_impl_(__cap_c_impl(size)) _Pre_valid_impl_) -#define _Deref_pre_opt_valid_cap_c_(size) _SAL1_1_Source_(_Deref_pre_opt_valid_cap_c_, (size), _Deref_pre1_impl_(__maybenull_impl_notref) _Deref_pre1_impl_(__cap_c_impl(size)) _Pre_valid_impl_) -#define _Deref_pre_valid_bytecap_c_(size) _SAL1_1_Source_(_Deref_pre_valid_bytecap_c_, (size), _Deref_pre1_impl_(__notnull_impl_notref) _Deref_pre1_impl_(__bytecap_c_impl(size)) _Pre_valid_impl_) -#define _Deref_pre_opt_valid_bytecap_c_(size) _SAL1_1_Source_(_Deref_pre_opt_valid_bytecap_c_, (size), _Deref_pre1_impl_(__maybenull_impl_notref) _Deref_pre1_impl_(__bytecap_c_impl(size)) _Pre_valid_impl_) - -#define _Deref_pre_valid_cap_x_(size) _SAL1_1_Source_(_Deref_pre_valid_cap_x_, (size), _Deref_pre1_impl_(__notnull_impl_notref) _Deref_pre1_impl_(__cap_x_impl(size)) _Pre_valid_impl_) -#define _Deref_pre_opt_valid_cap_x_(size) _SAL1_1_Source_(_Deref_pre_opt_valid_cap_x_, (size), _Deref_pre1_impl_(__maybenull_impl_notref) _Deref_pre1_impl_(__cap_x_impl(size)) _Pre_valid_impl_) -#define _Deref_pre_valid_bytecap_x_(size) _SAL1_1_Source_(_Deref_pre_valid_bytecap_x_, (size), _Deref_pre1_impl_(__notnull_impl_notref) _Deref_pre1_impl_(__bytecap_x_impl(size)) _Pre_valid_impl_) -#define _Deref_pre_opt_valid_bytecap_x_(size) _SAL1_1_Source_(_Deref_pre_opt_valid_bytecap_x_, (size), _Deref_pre1_impl_(__maybenull_impl_notref) _Deref_pre1_impl_(__bytecap_x_impl(size)) _Pre_valid_impl_) - -// e.g. void SaveMatrix( _In_count_(n) _Deref_pre_count_(n) const Elem** matrix, size_t n ); -// valid buffer extent is described by another parameter -#define _Deref_pre_count_(size) _SAL1_1_Source_(_Deref_pre_count_, (size), _Deref_pre1_impl_(__notnull_impl_notref) _Deref_pre1_impl_(__count_impl(size)) _Pre_valid_impl_) -#define _Deref_pre_opt_count_(size) _SAL1_1_Source_(_Deref_pre_opt_count_, (size), _Deref_pre1_impl_(__maybenull_impl_notref) _Deref_pre1_impl_(__count_impl(size)) _Pre_valid_impl_) -#define _Deref_pre_bytecount_(size) _SAL1_1_Source_(_Deref_pre_bytecount_, (size), _Deref_pre1_impl_(__notnull_impl_notref) _Deref_pre1_impl_(__bytecount_impl(size)) _Pre_valid_impl_) -#define _Deref_pre_opt_bytecount_(size) _SAL1_1_Source_(_Deref_pre_opt_bytecount_, (size), _Deref_pre1_impl_(__maybenull_impl_notref) _Deref_pre1_impl_(__bytecount_impl(size)) _Pre_valid_impl_) - -// valid buffer extent is described by a constant expression -#define _Deref_pre_count_c_(size) _SAL1_1_Source_(_Deref_pre_count_c_, (size), _Deref_pre1_impl_(__notnull_impl_notref) _Deref_pre1_impl_(__count_c_impl(size)) _Pre_valid_impl_) -#define _Deref_pre_opt_count_c_(size) _SAL1_1_Source_(_Deref_pre_opt_count_c_, (size), _Deref_pre1_impl_(__maybenull_impl_notref) _Deref_pre1_impl_(__count_c_impl(size)) _Pre_valid_impl_) -#define _Deref_pre_bytecount_c_(size) _SAL1_1_Source_(_Deref_pre_bytecount_c_, (size), _Deref_pre1_impl_(__notnull_impl_notref) _Deref_pre1_impl_(__bytecount_c_impl(size)) _Pre_valid_impl_) -#define _Deref_pre_opt_bytecount_c_(size) _SAL1_1_Source_(_Deref_pre_opt_bytecount_c_, (size), _Deref_pre1_impl_(__maybenull_impl_notref) _Deref_pre1_impl_(__bytecount_c_impl(size)) _Pre_valid_impl_) - -// valid buffer extent is described by a complex expression -#define _Deref_pre_count_x_(size) _SAL1_1_Source_(_Deref_pre_count_x_, (size), _Deref_pre1_impl_(__notnull_impl_notref) _Deref_pre1_impl_(__count_x_impl(size)) _Pre_valid_impl_) -#define _Deref_pre_opt_count_x_(size) _SAL1_1_Source_(_Deref_pre_opt_count_x_, (size), _Deref_pre1_impl_(__maybenull_impl_notref) _Deref_pre1_impl_(__count_x_impl(size)) _Pre_valid_impl_) -#define _Deref_pre_bytecount_x_(size) _SAL1_1_Source_(_Deref_pre_bytecount_x_, (size), _Deref_pre1_impl_(__notnull_impl_notref) _Deref_pre1_impl_(__bytecount_x_impl(size)) _Pre_valid_impl_) -#define _Deref_pre_opt_bytecount_x_(size) _SAL1_1_Source_(_Deref_pre_opt_bytecount_x_, (size), _Deref_pre1_impl_(__maybenull_impl_notref) _Deref_pre1_impl_(__bytecount_x_impl(size)) _Pre_valid_impl_) - -// e.g. void PrintStringArray( _In_count_(cElems) _Deref_pre_valid_ LPCSTR rgStr[], size_t cElems ); -#define _Deref_pre_valid_ _SAL1_1_Source_(_Deref_pre_valid_, (), _Deref_pre1_impl_(__notnull_impl_notref) _Pre_valid_impl_) -#define _Deref_pre_opt_valid_ _SAL1_1_Source_(_Deref_pre_opt_valid_, (), _Deref_pre1_impl_(__maybenull_impl_notref) _Pre_valid_impl_) -#define _Deref_pre_invalid_ _SAL1_1_Source_(_Deref_pre_invalid_, (), _Deref_pre1_impl_(__notvalid_impl)) - -#define _Deref_pre_notnull_ _SAL1_1_Source_(_Deref_pre_notnull_, (), _Deref_pre1_impl_(__notnull_impl_notref)) -#define _Deref_pre_maybenull_ _SAL1_1_Source_(_Deref_pre_maybenull_, (), _Deref_pre1_impl_(__maybenull_impl_notref)) -#define _Deref_pre_null_ _SAL1_1_Source_(_Deref_pre_null_, (), _Deref_pre1_impl_(__null_impl_notref)) - -// restrict access rights -#define _Deref_pre_readonly_ _SAL1_1_Source_(_Deref_pre_readonly_, (), _Deref_pre1_impl_(__readaccess_impl_notref)) -#define _Deref_pre_writeonly_ _SAL1_1_Source_(_Deref_pre_writeonly_, (), _Deref_pre1_impl_(__writeaccess_impl_notref)) - -// -// _Deref_post_ --- -// -// describing conditions for array elements or dereferenced pointer parameters that hold after the call - -// e.g. void CloneString( _In_z_ const Wchar_t* wzIn _Out_ _Deref_post_z_ wchar_t** pWzOut ); -#define _Deref_post_z_ _SAL1_1_Source_(_Deref_post_z_, (), _Deref_post1_impl_(__notnull_impl_notref) _Deref_post1_impl_(__zterm_impl) _Post_valid_impl_) -#define _Deref_post_opt_z_ _SAL1_1_Source_(_Deref_post_opt_z_, (), _Deref_post1_impl_(__maybenull_impl_notref) _Deref_post1_impl_(__zterm_impl) _Post_valid_impl_) - -// e.g. HRESULT HrAllocateMemory( size_t cb, _Out_ _Deref_post_bytecap_(cb) void** ppv ); -// buffer capacity is described by another parameter -#define _Deref_post_cap_(size) _SAL1_1_Source_(_Deref_post_cap_, (size), _Deref_post1_impl_(__notnull_impl_notref) _Deref_post1_impl_(__cap_impl(size))) -#define _Deref_post_opt_cap_(size) _SAL1_1_Source_(_Deref_post_opt_cap_, (size), _Deref_post1_impl_(__maybenull_impl_notref) _Deref_post1_impl_(__cap_impl(size))) -#define _Deref_post_bytecap_(size) _SAL1_1_Source_(_Deref_post_bytecap_, (size), _Deref_post1_impl_(__notnull_impl_notref) _Deref_post1_impl_(__bytecap_impl(size))) -#define _Deref_post_opt_bytecap_(size) _SAL1_1_Source_(_Deref_post_opt_bytecap_, (size), _Deref_post1_impl_(__maybenull_impl_notref) _Deref_post1_impl_(__bytecap_impl(size))) - -// buffer capacity is described by a constant expression -#define _Deref_post_cap_c_(size) _SAL1_1_Source_(_Deref_post_cap_c_, (size), _Deref_post1_impl_(__notnull_impl_notref) _Deref_post1_impl_(__cap_c_impl(size))) -#define _Deref_post_opt_cap_c_(size) _SAL1_1_Source_(_Deref_post_opt_cap_c_, (size), _Deref_post1_impl_(__maybenull_impl_notref) _Deref_post1_impl_(__cap_c_impl(size))) -#define _Deref_post_bytecap_c_(size) _SAL1_1_Source_(_Deref_post_bytecap_c_, (size), _Deref_post1_impl_(__notnull_impl_notref) _Deref_post1_impl_(__bytecap_c_impl(size))) -#define _Deref_post_opt_bytecap_c_(size) _SAL1_1_Source_(_Deref_post_opt_bytecap_c_, (size), _Deref_post1_impl_(__maybenull_impl_notref) _Deref_post1_impl_(__bytecap_c_impl(size))) - -// buffer capacity is described by a complex expression -#define _Deref_post_cap_x_(size) _SAL1_1_Source_(_Deref_post_cap_x_, (size), _Deref_post1_impl_(__notnull_impl_notref) _Deref_post1_impl_(__cap_x_impl(size))) -#define _Deref_post_opt_cap_x_(size) _SAL1_1_Source_(_Deref_post_opt_cap_x_, (size), _Deref_post1_impl_(__maybenull_impl_notref) _Deref_post1_impl_(__cap_x_impl(size))) -#define _Deref_post_bytecap_x_(size) _SAL1_1_Source_(_Deref_post_bytecap_x_, (size), _Deref_post1_impl_(__notnull_impl_notref) _Deref_post1_impl_(__bytecap_x_impl(size))) -#define _Deref_post_opt_bytecap_x_(size) _SAL1_1_Source_(_Deref_post_opt_bytecap_x_, (size), _Deref_post1_impl_(__maybenull_impl_notref) _Deref_post1_impl_(__bytecap_x_impl(size))) - -// convenience macros for nullterminated buffers with given capacity -#define _Deref_post_z_cap_(size) _SAL1_1_Source_(_Deref_post_z_cap_, (size), _Deref_post1_impl_(__notnull_impl_notref) _Deref_post2_impl_(__zterm_impl,__cap_impl(size)) _Post_valid_impl_) -#define _Deref_post_opt_z_cap_(size) _SAL1_1_Source_(_Deref_post_opt_z_cap_, (size), _Deref_post1_impl_(__maybenull_impl_notref) _Deref_post2_impl_(__zterm_impl,__cap_impl(size)) _Post_valid_impl_) -#define _Deref_post_z_bytecap_(size) _SAL1_1_Source_(_Deref_post_z_bytecap_, (size), _Deref_post1_impl_(__notnull_impl_notref) _Deref_post2_impl_(__zterm_impl,__bytecap_impl(size)) _Post_valid_impl_) -#define _Deref_post_opt_z_bytecap_(size) _SAL1_1_Source_(_Deref_post_opt_z_bytecap_, (size), _Deref_post1_impl_(__maybenull_impl_notref) _Deref_post2_impl_(__zterm_impl,__bytecap_impl(size)) _Post_valid_impl_) - -#define _Deref_post_z_cap_c_(size) _SAL1_1_Source_(_Deref_post_z_cap_c_, (size), _Deref_post1_impl_(__notnull_impl_notref) _Deref_post2_impl_(__zterm_impl,__cap_c_impl(size)) _Post_valid_impl_) -#define _Deref_post_opt_z_cap_c_(size) _SAL1_1_Source_(_Deref_post_opt_z_cap_c_, (size), _Deref_post1_impl_(__maybenull_impl_notref) _Deref_post2_impl_(__zterm_impl,__cap_c_impl(size)) _Post_valid_impl_) -#define _Deref_post_z_bytecap_c_(size) _SAL1_1_Source_(_Deref_post_z_bytecap_c_, (size), _Deref_post1_impl_(__notnull_impl_notref) _Deref_post2_impl_(__zterm_impl,__bytecap_c_impl(size)) _Post_valid_impl_) -#define _Deref_post_opt_z_bytecap_c_(size) _SAL1_1_Source_(_Deref_post_opt_z_bytecap_c_, (size), _Deref_post1_impl_(__maybenull_impl_notref) _Deref_post2_impl_(__zterm_impl,__bytecap_c_impl(size)) _Post_valid_impl_) - -#define _Deref_post_z_cap_x_(size) _SAL1_1_Source_(_Deref_post_z_cap_x_, (size), _Deref_post1_impl_(__notnull_impl_notref) _Deref_post2_impl_(__zterm_impl,__cap_x_impl(size)) _Post_valid_impl_) -#define _Deref_post_opt_z_cap_x_(size) _SAL1_1_Source_(_Deref_post_opt_z_cap_x_, (size), _Deref_post1_impl_(__maybenull_impl_notref) _Deref_post2_impl_(__zterm_impl,__cap_x_impl(size)) _Post_valid_impl_) -#define _Deref_post_z_bytecap_x_(size) _SAL1_1_Source_(_Deref_post_z_bytecap_x_, (size), _Deref_post1_impl_(__notnull_impl_notref) _Deref_post2_impl_(__zterm_impl,__bytecap_x_impl(size)) _Post_valid_impl_) -#define _Deref_post_opt_z_bytecap_x_(size) _SAL1_1_Source_(_Deref_post_opt_z_bytecap_x_, (size), _Deref_post1_impl_(__maybenull_impl_notref) _Deref_post2_impl_(__zterm_impl,__bytecap_x_impl(size)) _Post_valid_impl_) - -// known capacity and valid but unknown readable extent -#define _Deref_post_valid_cap_(size) _SAL1_1_Source_(_Deref_post_valid_cap_, (size), _Deref_post1_impl_(__notnull_impl_notref) _Deref_post1_impl_(__cap_impl(size)) _Post_valid_impl_) -#define _Deref_post_opt_valid_cap_(size) _SAL1_1_Source_(_Deref_post_opt_valid_cap_, (size), _Deref_post1_impl_(__maybenull_impl_notref) _Deref_post1_impl_(__cap_impl(size)) _Post_valid_impl_) -#define _Deref_post_valid_bytecap_(size) _SAL1_1_Source_(_Deref_post_valid_bytecap_, (size), _Deref_post1_impl_(__notnull_impl_notref) _Deref_post1_impl_(__bytecap_impl(size)) _Post_valid_impl_) -#define _Deref_post_opt_valid_bytecap_(size) _SAL1_1_Source_(_Deref_post_opt_valid_bytecap_, (size), _Deref_post1_impl_(__maybenull_impl_notref) _Deref_post1_impl_(__bytecap_impl(size)) _Post_valid_impl_) - -#define _Deref_post_valid_cap_c_(size) _SAL1_1_Source_(_Deref_post_valid_cap_c_, (size), _Deref_post1_impl_(__notnull_impl_notref) _Deref_post1_impl_(__cap_c_impl(size)) _Post_valid_impl_) -#define _Deref_post_opt_valid_cap_c_(size) _SAL1_1_Source_(_Deref_post_opt_valid_cap_c_, (size), _Deref_post1_impl_(__maybenull_impl_notref) _Deref_post1_impl_(__cap_c_impl(size)) _Post_valid_impl_) -#define _Deref_post_valid_bytecap_c_(size) _SAL1_1_Source_(_Deref_post_valid_bytecap_c_, (size), _Deref_post1_impl_(__notnull_impl_notref) _Deref_post1_impl_(__bytecap_c_impl(size)) _Post_valid_impl_) -#define _Deref_post_opt_valid_bytecap_c_(size) _SAL1_1_Source_(_Deref_post_opt_valid_bytecap_c_, (size), _Deref_post1_impl_(__maybenull_impl_notref) _Deref_post1_impl_(__bytecap_c_impl(size)) _Post_valid_impl_) - -#define _Deref_post_valid_cap_x_(size) _SAL1_1_Source_(_Deref_post_valid_cap_x_, (size), _Deref_post1_impl_(__notnull_impl_notref) _Deref_post1_impl_(__cap_x_impl(size)) _Post_valid_impl_) -#define _Deref_post_opt_valid_cap_x_(size) _SAL1_1_Source_(_Deref_post_opt_valid_cap_x_, (size), _Deref_post1_impl_(__maybenull_impl_notref) _Deref_post1_impl_(__cap_x_impl(size)) _Post_valid_impl_) -#define _Deref_post_valid_bytecap_x_(size) _SAL1_1_Source_(_Deref_post_valid_bytecap_x_, (size), _Deref_post1_impl_(__notnull_impl_notref) _Deref_post1_impl_(__bytecap_x_impl(size)) _Post_valid_impl_) -#define _Deref_post_opt_valid_bytecap_x_(size) _SAL1_1_Source_(_Deref_post_opt_valid_bytecap_x_, (size), _Deref_post1_impl_(__maybenull_impl_notref) _Deref_post1_impl_(__bytecap_x_impl(size)) _Post_valid_impl_) - -// e.g. HRESULT HrAllocateZeroInitializedMemory( size_t cb, _Out_ _Deref_post_bytecount_(cb) void** ppv ); -// valid buffer extent is described by another parameter -#define _Deref_post_count_(size) _SAL1_1_Source_(_Deref_post_count_, (size), _Deref_post1_impl_(__notnull_impl_notref) _Deref_post1_impl_(__count_impl(size)) _Post_valid_impl_) -#define _Deref_post_opt_count_(size) _SAL1_1_Source_(_Deref_post_opt_count_, (size), _Deref_post1_impl_(__maybenull_impl_notref) _Deref_post1_impl_(__count_impl(size)) _Post_valid_impl_) -#define _Deref_post_bytecount_(size) _SAL1_1_Source_(_Deref_post_bytecount_, (size), _Deref_post1_impl_(__notnull_impl_notref) _Deref_post1_impl_(__bytecount_impl(size)) _Post_valid_impl_) -#define _Deref_post_opt_bytecount_(size) _SAL1_1_Source_(_Deref_post_opt_bytecount_, (size), _Deref_post1_impl_(__maybenull_impl_notref) _Deref_post1_impl_(__bytecount_impl(size)) _Post_valid_impl_) - -// buffer capacity is described by a constant expression -#define _Deref_post_count_c_(size) _SAL1_1_Source_(_Deref_post_count_c_, (size), _Deref_post1_impl_(__notnull_impl_notref) _Deref_post1_impl_(__count_c_impl(size)) _Post_valid_impl_) -#define _Deref_post_opt_count_c_(size) _SAL1_1_Source_(_Deref_post_opt_count_c_, (size), _Deref_post1_impl_(__maybenull_impl_notref) _Deref_post1_impl_(__count_c_impl(size)) _Post_valid_impl_) -#define _Deref_post_bytecount_c_(size) _SAL1_1_Source_(_Deref_post_bytecount_c_, (size), _Deref_post1_impl_(__notnull_impl_notref) _Deref_post1_impl_(__bytecount_c_impl(size)) _Post_valid_impl_) -#define _Deref_post_opt_bytecount_c_(size) _SAL1_1_Source_(_Deref_post_opt_bytecount_c_, (size), _Deref_post1_impl_(__maybenull_impl_notref) _Deref_post1_impl_(__bytecount_c_impl(size)) _Post_valid_impl_) - -// buffer capacity is described by a complex expression -#define _Deref_post_count_x_(size) _SAL1_1_Source_(_Deref_post_count_x_, (size), _Deref_post1_impl_(__notnull_impl_notref) _Deref_post1_impl_(__count_x_impl(size)) _Post_valid_impl_) -#define _Deref_post_opt_count_x_(size) _SAL1_1_Source_(_Deref_post_opt_count_x_, (size), _Deref_post1_impl_(__maybenull_impl_notref) _Deref_post1_impl_(__count_x_impl(size)) _Post_valid_impl_) -#define _Deref_post_bytecount_x_(size) _SAL1_1_Source_(_Deref_post_bytecount_x_, (size), _Deref_post1_impl_(__notnull_impl_notref) _Deref_post1_impl_(__bytecount_x_impl(size)) _Post_valid_impl_) -#define _Deref_post_opt_bytecount_x_(size) _SAL1_1_Source_(_Deref_post_opt_bytecount_x_, (size), _Deref_post1_impl_(__maybenull_impl_notref) _Deref_post1_impl_(__bytecount_x_impl(size)) _Post_valid_impl_) - -// e.g. void GetStrings( _Out_count_(cElems) _Deref_post_valid_ LPSTR const rgStr[], size_t cElems ); -#define _Deref_post_valid_ _SAL1_1_Source_(_Deref_post_valid_, (), _Deref_post1_impl_(__notnull_impl_notref) _Post_valid_impl_) -#define _Deref_post_opt_valid_ _SAL1_1_Source_(_Deref_post_opt_valid_, (), _Deref_post1_impl_(__maybenull_impl_notref) _Post_valid_impl_) - -#define _Deref_post_notnull_ _SAL1_1_Source_(_Deref_post_notnull_, (), _Deref_post1_impl_(__notnull_impl_notref)) -#define _Deref_post_maybenull_ _SAL1_1_Source_(_Deref_post_maybenull_, (), _Deref_post1_impl_(__maybenull_impl_notref)) -#define _Deref_post_null_ _SAL1_1_Source_(_Deref_post_null_, (), _Deref_post1_impl_(__null_impl_notref)) - -// -// _Deref_ret_ --- -// - -#define _Deref_ret_z_ _SAL1_1_Source_(_Deref_ret_z_, (), _Deref_ret1_impl_(__notnull_impl_notref) _Deref_ret1_impl_(__zterm_impl)) -#define _Deref_ret_opt_z_ _SAL1_1_Source_(_Deref_ret_opt_z_, (), _Deref_ret1_impl_(__maybenull_impl_notref) _Ret1_impl_(__zterm_impl)) - -// -// special _Deref_ --- -// -#define _Deref2_pre_readonly_ _SAL1_1_Source_(_Deref2_pre_readonly_, (), _Deref2_pre1_impl_(__readaccess_impl_notref)) - -// -// _Ret_ --- -// - -// e.g. _Ret_opt_valid_ LPSTR void* CloneSTR( _Pre_valid_ LPSTR src ); -#define _Ret_opt_valid_ _SAL1_1_Source_(_Ret_opt_valid_, (), _Ret1_impl_(__maybenull_impl_notref) _Ret_valid_impl_) -#define _Ret_opt_z_ _SAL1_1_Source_(_Ret_opt_z_, (), _Ret2_impl_(__maybenull_impl,__zterm_impl) _Ret_valid_impl_) - -// e.g. _Ret_opt_bytecap_(cb) void* AllocateMemory( size_t cb ); -// Buffer capacity is described by another parameter -#define _Ret_cap_(size) _SAL1_1_Source_(_Ret_cap_, (size), _Ret1_impl_(__notnull_impl_notref) _Ret1_impl_(__cap_impl(size))) -#define _Ret_opt_cap_(size) _SAL1_1_Source_(_Ret_opt_cap_, (size), _Ret1_impl_(__maybenull_impl_notref) _Ret1_impl_(__cap_impl(size))) -#define _Ret_bytecap_(size) _SAL1_1_Source_(_Ret_bytecap_, (size), _Ret1_impl_(__notnull_impl_notref) _Ret1_impl_(__bytecap_impl(size))) -#define _Ret_opt_bytecap_(size) _SAL1_1_Source_(_Ret_opt_bytecap_, (size), _Ret1_impl_(__maybenull_impl_notref) _Ret1_impl_(__bytecap_impl(size))) - -// Buffer capacity is described by a constant expression -#define _Ret_cap_c_(size) _SAL1_1_Source_(_Ret_cap_c_, (size), _Ret1_impl_(__notnull_impl_notref) _Ret1_impl_(__cap_c_impl(size))) -#define _Ret_opt_cap_c_(size) _SAL1_1_Source_(_Ret_opt_cap_c_, (size), _Ret1_impl_(__maybenull_impl_notref) _Ret1_impl_(__cap_c_impl(size))) -#define _Ret_bytecap_c_(size) _SAL1_1_Source_(_Ret_bytecap_c_, (size), _Ret1_impl_(__notnull_impl_notref) _Ret1_impl_(__bytecap_c_impl(size))) -#define _Ret_opt_bytecap_c_(size) _SAL1_1_Source_(_Ret_opt_bytecap_c_, (size), _Ret1_impl_(__maybenull_impl_notref) _Ret1_impl_(__bytecap_c_impl(size))) - -// Buffer capacity is described by a complex condition -#define _Ret_cap_x_(size) _SAL1_1_Source_(_Ret_cap_x_, (size), _Ret1_impl_(__notnull_impl_notref) _Ret1_impl_(__cap_x_impl(size))) -#define _Ret_opt_cap_x_(size) _SAL1_1_Source_(_Ret_opt_cap_x_, (size), _Ret1_impl_(__maybenull_impl_notref) _Ret1_impl_(__cap_x_impl(size))) -#define _Ret_bytecap_x_(size) _SAL1_1_Source_(_Ret_bytecap_x_, (size), _Ret1_impl_(__notnull_impl_notref) _Ret1_impl_(__bytecap_x_impl(size))) -#define _Ret_opt_bytecap_x_(size) _SAL1_1_Source_(_Ret_opt_bytecap_x_, (size), _Ret1_impl_(__maybenull_impl_notref) _Ret1_impl_(__bytecap_x_impl(size))) - -// return value is nullterminated and capacity is given by another parameter -#define _Ret_z_cap_(size) _SAL1_1_Source_(_Ret_z_cap_, (size), _Ret1_impl_(__notnull_impl_notref) _Ret2_impl_(__zterm_impl,__cap_impl(size)) _Ret_valid_impl_) -#define _Ret_opt_z_cap_(size) _SAL1_1_Source_(_Ret_opt_z_cap_, (size), _Ret1_impl_(__maybenull_impl_notref) _Ret2_impl_(__zterm_impl,__cap_impl(size)) _Ret_valid_impl_) -#define _Ret_z_bytecap_(size) _SAL1_1_Source_(_Ret_z_bytecap_, (size), _Ret1_impl_(__notnull_impl_notref) _Ret2_impl_(__zterm_impl,__bytecap_impl(size)) _Ret_valid_impl_) -#define _Ret_opt_z_bytecap_(size) _SAL1_1_Source_(_Ret_opt_z_bytecap_, (size), _Ret1_impl_(__maybenull_impl_notref) _Ret2_impl_(__zterm_impl,__bytecap_impl(size)) _Ret_valid_impl_) - -// e.g. _Ret_opt_bytecount_(cb) void* AllocateZeroInitializedMemory( size_t cb ); -// Valid Buffer extent is described by another parameter -#define _Ret_count_(size) _SAL1_1_Source_(_Ret_count_, (size), _Ret1_impl_(__notnull_impl_notref) _Ret1_impl_(__count_impl(size)) _Ret_valid_impl_) -#define _Ret_opt_count_(size) _SAL1_1_Source_(_Ret_opt_count_, (size), _Ret1_impl_(__maybenull_impl_notref) _Ret1_impl_(__count_impl(size)) _Ret_valid_impl_) -#define _Ret_bytecount_(size) _SAL1_1_Source_(_Ret_bytecount_, (size), _Ret1_impl_(__notnull_impl_notref) _Ret1_impl_(__bytecount_impl(size)) _Ret_valid_impl_) -#define _Ret_opt_bytecount_(size) _SAL1_1_Source_(_Ret_opt_bytecount_, (size), _Ret1_impl_(__maybenull_impl_notref) _Ret1_impl_(__bytecount_impl(size)) _Ret_valid_impl_) - -// Valid Buffer extent is described by a constant expression -#define _Ret_count_c_(size) _SAL1_1_Source_(_Ret_count_c_, (size), _Ret1_impl_(__notnull_impl_notref) _Ret1_impl_(__count_c_impl(size)) _Ret_valid_impl_) -#define _Ret_opt_count_c_(size) _SAL1_1_Source_(_Ret_opt_count_c_, (size), _Ret1_impl_(__maybenull_impl_notref) _Ret1_impl_(__count_c_impl(size)) _Ret_valid_impl_) -#define _Ret_bytecount_c_(size) _SAL1_1_Source_(_Ret_bytecount_c_, (size), _Ret1_impl_(__notnull_impl_notref) _Ret1_impl_(__bytecount_c_impl(size)) _Ret_valid_impl_) -#define _Ret_opt_bytecount_c_(size) _SAL1_1_Source_(_Ret_opt_bytecount_c_, (size), _Ret1_impl_(__maybenull_impl_notref) _Ret1_impl_(__bytecount_c_impl(size)) _Ret_valid_impl_) - -// Valid Buffer extent is described by a complex expression -#define _Ret_count_x_(size) _SAL1_1_Source_(_Ret_count_x_, (size), _Ret1_impl_(__notnull_impl_notref) _Ret1_impl_(__count_x_impl(size)) _Ret_valid_impl_) -#define _Ret_opt_count_x_(size) _SAL1_1_Source_(_Ret_opt_count_x_, (size), _Ret1_impl_(__maybenull_impl_notref) _Ret1_impl_(__count_x_impl(size)) _Ret_valid_impl_) -#define _Ret_bytecount_x_(size) _SAL1_1_Source_(_Ret_bytecount_x_, (size), _Ret1_impl_(__notnull_impl_notref) _Ret1_impl_(__bytecount_x_impl(size)) _Ret_valid_impl_) -#define _Ret_opt_bytecount_x_(size) _SAL1_1_Source_(_Ret_opt_bytecount_x_, (size), _Ret1_impl_(__maybenull_impl_notref) _Ret1_impl_(__bytecount_x_impl(size)) _Ret_valid_impl_) - -// return value is nullterminated and length is given by another parameter -#define _Ret_z_count_(size) _SAL1_1_Source_(_Ret_z_count_, (size), _Ret1_impl_(__notnull_impl_notref) _Ret2_impl_(__zterm_impl,__count_impl(size)) _Ret_valid_impl_) -#define _Ret_opt_z_count_(size) _SAL1_1_Source_(_Ret_opt_z_count_, (size), _Ret1_impl_(__maybenull_impl_notref) _Ret2_impl_(__zterm_impl,__count_impl(size)) _Ret_valid_impl_) -#define _Ret_z_bytecount_(size) _SAL1_1_Source_(_Ret_z_bytecount_, (size), _Ret1_impl_(__notnull_impl_notref) _Ret2_impl_(__zterm_impl,__bytecount_impl(size)) _Ret_valid_impl_) -#define _Ret_opt_z_bytecount_(size) _SAL1_1_Source_(_Ret_opt_z_bytecount_, (size), _Ret1_impl_(__maybenull_impl_notref) _Ret2_impl_(__zterm_impl,__bytecount_impl(size)) _Ret_valid_impl_) - - -// _Pre_ annotations --- -#define _Pre_opt_z_ _SAL1_1_Source_(_Pre_opt_z_, (), _Pre1_impl_(__maybenull_impl_notref) _Pre1_impl_(__zterm_impl) _Pre_valid_impl_) - -// restrict access rights -#define _Pre_readonly_ _SAL1_1_Source_(_Pre_readonly_, (), _Pre1_impl_(__readaccess_impl_notref)) -#define _Pre_writeonly_ _SAL1_1_Source_(_Pre_writeonly_, (), _Pre1_impl_(__writeaccess_impl_notref)) - -// e.g. void FreeMemory( _Pre_bytecap_(cb) _Post_ptr_invalid_ void* pv, size_t cb ); -// buffer capacity described by another parameter -#define _Pre_cap_(size) _SAL1_1_Source_(_Pre_cap_, (size), _Pre1_impl_(__notnull_impl_notref) _Pre1_impl_(__cap_impl(size))) -#define _Pre_opt_cap_(size) _SAL1_1_Source_(_Pre_opt_cap_, (size), _Pre1_impl_(__maybenull_impl_notref) _Pre1_impl_(__cap_impl(size))) -#define _Pre_bytecap_(size) _SAL1_1_Source_(_Pre_bytecap_, (size), _Pre1_impl_(__notnull_impl_notref) _Pre1_impl_(__bytecap_impl(size))) -#define _Pre_opt_bytecap_(size) _SAL1_1_Source_(_Pre_opt_bytecap_, (size), _Pre1_impl_(__maybenull_impl_notref) _Pre1_impl_(__bytecap_impl(size))) - -// buffer capacity described by a constant expression -#define _Pre_cap_c_(size) _SAL1_1_Source_(_Pre_cap_c_, (size), _Pre1_impl_(__notnull_impl_notref) _Pre1_impl_(__cap_c_impl(size))) -#define _Pre_opt_cap_c_(size) _SAL1_1_Source_(_Pre_opt_cap_c_, (size), _Pre1_impl_(__maybenull_impl_notref) _Pre1_impl_(__cap_c_impl(size))) -#define _Pre_bytecap_c_(size) _SAL1_1_Source_(_Pre_bytecap_c_, (size), _Pre1_impl_(__notnull_impl_notref) _Pre1_impl_(__bytecap_c_impl(size))) -#define _Pre_opt_bytecap_c_(size) _SAL1_1_Source_(_Pre_opt_bytecap_c_, (size), _Pre1_impl_(__maybenull_impl_notref) _Pre1_impl_(__bytecap_c_impl(size))) -#define _Pre_cap_c_one_ _SAL1_1_Source_(_Pre_cap_c_one_, (), _Pre1_impl_(__notnull_impl_notref) _Pre1_impl_(__cap_c_one_notref_impl)) -#define _Pre_opt_cap_c_one_ _SAL1_1_Source_(_Pre_opt_cap_c_one_, (), _Pre1_impl_(__maybenull_impl_notref) _Pre1_impl_(__cap_c_one_notref_impl)) - -// buffer capacity is described by another parameter multiplied by a constant expression -#define _Pre_cap_m_(mult,size) _SAL1_1_Source_(_Pre_cap_m_, (mult,size), _Pre1_impl_(__notnull_impl_notref) _Pre1_impl_(__mult_impl(mult,size))) -#define _Pre_opt_cap_m_(mult,size) _SAL1_1_Source_(_Pre_opt_cap_m_, (mult,size), _Pre1_impl_(__maybenull_impl_notref) _Pre1_impl_(__mult_impl(mult,size))) - -// buffer capacity described by size of other buffer, only used by dangerous legacy APIs -// e.g. int strcpy(_Pre_cap_for_(src) char* dst, const char* src); -#define _Pre_cap_for_(param) _SAL1_1_Source_(_Pre_cap_for_, (param), _Pre1_impl_(__notnull_impl_notref) _Pre1_impl_(__cap_for_impl(param))) -#define _Pre_opt_cap_for_(param) _SAL1_1_Source_(_Pre_opt_cap_for_, (param), _Pre1_impl_(__maybenull_impl_notref) _Pre1_impl_(__cap_for_impl(param))) - -// buffer capacity described by a complex condition -#define _Pre_cap_x_(size) _SAL1_1_Source_(_Pre_cap_x_, (size), _Pre1_impl_(__notnull_impl_notref) _Pre1_impl_(__cap_x_impl(size))) -#define _Pre_opt_cap_x_(size) _SAL1_1_Source_(_Pre_opt_cap_x_, (size), _Pre1_impl_(__maybenull_impl_notref) _Pre1_impl_(__cap_x_impl(size))) -#define _Pre_bytecap_x_(size) _SAL1_1_Source_(_Pre_bytecap_x_, (size), _Pre1_impl_(__notnull_impl_notref) _Pre1_impl_(__bytecap_x_impl(size))) -#define _Pre_opt_bytecap_x_(size) _SAL1_1_Source_(_Pre_opt_bytecap_x_, (size), _Pre1_impl_(__maybenull_impl_notref) _Pre1_impl_(__bytecap_x_impl(size))) - -// buffer capacity described by the difference to another pointer parameter -#define _Pre_ptrdiff_cap_(ptr) _SAL1_1_Source_(_Pre_ptrdiff_cap_, (ptr), _Pre1_impl_(__notnull_impl_notref) _Pre1_impl_(__cap_x_impl(__ptrdiff(ptr)))) -#define _Pre_opt_ptrdiff_cap_(ptr) _SAL1_1_Source_(_Pre_opt_ptrdiff_cap_, (ptr), _Pre1_impl_(__maybenull_impl_notref) _Pre1_impl_(__cap_x_impl(__ptrdiff(ptr)))) - -// e.g. void AppendStr( _Pre_z_ const char* szFrom, _Pre_z_cap_(cchTo) _Post_z_ char* szTo, size_t cchTo ); -#define _Pre_z_cap_(size) _SAL1_1_Source_(_Pre_z_cap_, (size), _Pre1_impl_(__notnull_impl_notref) _Pre2_impl_(__zterm_impl,__cap_impl(size)) _Pre_valid_impl_) -#define _Pre_opt_z_cap_(size) _SAL1_1_Source_(_Pre_opt_z_cap_, (size), _Pre1_impl_(__maybenull_impl_notref) _Pre2_impl_(__zterm_impl,__cap_impl(size)) _Pre_valid_impl_) -#define _Pre_z_bytecap_(size) _SAL1_1_Source_(_Pre_z_bytecap_, (size), _Pre1_impl_(__notnull_impl_notref) _Pre2_impl_(__zterm_impl,__bytecap_impl(size)) _Pre_valid_impl_) -#define _Pre_opt_z_bytecap_(size) _SAL1_1_Source_(_Pre_opt_z_bytecap_, (size), _Pre1_impl_(__maybenull_impl_notref) _Pre2_impl_(__zterm_impl,__bytecap_impl(size)) _Pre_valid_impl_) - -#define _Pre_z_cap_c_(size) _SAL1_1_Source_(_Pre_z_cap_c_, (size), _Pre1_impl_(__notnull_impl_notref) _Pre2_impl_(__zterm_impl,__cap_c_impl(size)) _Pre_valid_impl_) -#define _Pre_opt_z_cap_c_(size) _SAL1_1_Source_(_Pre_opt_z_cap_c_, (size), _Pre1_impl_(__maybenull_impl_notref) _Pre2_impl_(__zterm_impl,__cap_c_impl(size)) _Pre_valid_impl_) -#define _Pre_z_bytecap_c_(size) _SAL1_1_Source_(_Pre_z_bytecap_c_, (size), _Pre1_impl_(__notnull_impl_notref) _Pre2_impl_(__zterm_impl,__bytecap_c_impl(size)) _Pre_valid_impl_) -#define _Pre_opt_z_bytecap_c_(size) _SAL1_1_Source_(_Pre_opt_z_bytecap_c_, (size), _Pre1_impl_(__maybenull_impl_notref) _Pre2_impl_(__zterm_impl,__bytecap_c_impl(size)) _Pre_valid_impl_) - -#define _Pre_z_cap_x_(size) _SAL1_1_Source_(_Pre_z_cap_x_, (size), _Pre1_impl_(__notnull_impl_notref) _Pre2_impl_(__zterm_impl,__cap_x_impl(size)) _Pre_valid_impl_) -#define _Pre_opt_z_cap_x_(size) _SAL1_1_Source_(_Pre_opt_z_cap_x_, (size), _Pre1_impl_(__maybenull_impl_notref) _Pre2_impl_(__zterm_impl,__cap_x_impl(size)) _Pre_valid_impl_) -#define _Pre_z_bytecap_x_(size) _SAL1_1_Source_(_Pre_z_bytecap_x_, (size), _Pre1_impl_(__notnull_impl_notref) _Pre2_impl_(__zterm_impl,__bytecap_x_impl(size)) _Pre_valid_impl_) -#define _Pre_opt_z_bytecap_x_(size) _SAL1_1_Source_(_Pre_opt_z_bytecap_x_, (size), _Pre1_impl_(__maybenull_impl_notref) _Pre2_impl_(__zterm_impl,__bytecap_x_impl(size)) _Pre_valid_impl_) - -// known capacity and valid but unknown readable extent -#define _Pre_valid_cap_(size) _SAL1_1_Source_(_Pre_valid_cap_, (size), _Pre1_impl_(__notnull_impl_notref) _Pre1_impl_(__cap_impl(size)) _Pre_valid_impl_) -#define _Pre_opt_valid_cap_(size) _SAL1_1_Source_(_Pre_opt_valid_cap_, (size), _Pre1_impl_(__maybenull_impl_notref) _Pre1_impl_(__cap_impl(size)) _Pre_valid_impl_) -#define _Pre_valid_bytecap_(size) _SAL1_1_Source_(_Pre_valid_bytecap_, (size), _Pre1_impl_(__notnull_impl_notref) _Pre1_impl_(__bytecap_impl(size)) _Pre_valid_impl_) -#define _Pre_opt_valid_bytecap_(size) _SAL1_1_Source_(_Pre_opt_valid_bytecap_, (size), _Pre1_impl_(__maybenull_impl_notref) _Pre1_impl_(__bytecap_impl(size)) _Pre_valid_impl_) - -#define _Pre_valid_cap_c_(size) _SAL1_1_Source_(_Pre_valid_cap_c_, (size), _Pre1_impl_(__notnull_impl_notref) _Pre1_impl_(__cap_c_impl(size)) _Pre_valid_impl_) -#define _Pre_opt_valid_cap_c_(size) _SAL1_1_Source_(_Pre_opt_valid_cap_c_, (size), _Pre1_impl_(__maybenull_impl_notref) _Pre1_impl_(__cap_c_impl(size)) _Pre_valid_impl_) -#define _Pre_valid_bytecap_c_(size) _SAL1_1_Source_(_Pre_valid_bytecap_c_, (size), _Pre1_impl_(__notnull_impl_notref) _Pre1_impl_(__bytecap_c_impl(size)) _Pre_valid_impl_) -#define _Pre_opt_valid_bytecap_c_(size) _SAL1_1_Source_(_Pre_opt_valid_bytecap_c_, (size), _Pre1_impl_(__maybenull_impl_notref) _Pre1_impl_(__bytecap_c_impl(size)) _Pre_valid_impl_) - -#define _Pre_valid_cap_x_(size) _SAL1_1_Source_(_Pre_valid_cap_x_, (size), _Pre1_impl_(__notnull_impl_notref) _Pre1_impl_(__cap_x_impl(size)) _Pre_valid_impl_) -#define _Pre_opt_valid_cap_x_(size) _SAL1_1_Source_(_Pre_opt_valid_cap_x_, (size), _Pre1_impl_(__maybenull_impl_notref) _Pre1_impl_(__cap_x_impl(size)) _Pre_valid_impl_) -#define _Pre_valid_bytecap_x_(size) _SAL1_1_Source_(_Pre_valid_bytecap_x_, (size), _Pre1_impl_(__notnull_impl_notref) _Pre1_impl_(__bytecap_x_impl(size)) _Pre_valid_impl_) -#define _Pre_opt_valid_bytecap_x_(size) _SAL1_1_Source_(_Pre_opt_valid_bytecap_x_, (size), _Pre1_impl_(__maybenull_impl_notref) _Pre1_impl_(__bytecap_x_impl(size)) _Pre_valid_impl_) - -// e.g. void AppendCharRange( _Pre_count_(cchFrom) const char* rgFrom, size_t cchFrom, _Out_z_cap_(cchTo) char* szTo, size_t cchTo ); -// Valid buffer extent described by another parameter -#define _Pre_count_(size) _SAL1_1_Source_(_Pre_count_, (size), _Pre1_impl_(__notnull_impl_notref) _Pre1_impl_(__count_impl(size)) _Pre_valid_impl_) -#define _Pre_opt_count_(size) _SAL1_1_Source_(_Pre_opt_count_, (size), _Pre1_impl_(__maybenull_impl_notref) _Pre1_impl_(__count_impl(size)) _Pre_valid_impl_) -#define _Pre_bytecount_(size) _SAL1_1_Source_(_Pre_bytecount_, (size), _Pre1_impl_(__notnull_impl_notref) _Pre1_impl_(__bytecount_impl(size)) _Pre_valid_impl_) -#define _Pre_opt_bytecount_(size) _SAL1_1_Source_(_Pre_opt_bytecount_, (size), _Pre1_impl_(__maybenull_impl_notref) _Pre1_impl_(__bytecount_impl(size)) _Pre_valid_impl_) - -// Valid buffer extent described by a constant expression -#define _Pre_count_c_(size) _SAL1_1_Source_(_Pre_count_c_, (size), _Pre1_impl_(__notnull_impl_notref) _Pre1_impl_(__count_c_impl(size)) _Pre_valid_impl_) -#define _Pre_opt_count_c_(size) _SAL1_1_Source_(_Pre_opt_count_c_, (size), _Pre1_impl_(__maybenull_impl_notref) _Pre1_impl_(__count_c_impl(size)) _Pre_valid_impl_) -#define _Pre_bytecount_c_(size) _SAL1_1_Source_(_Pre_bytecount_c_, (size), _Pre1_impl_(__notnull_impl_notref) _Pre1_impl_(__bytecount_c_impl(size)) _Pre_valid_impl_) -#define _Pre_opt_bytecount_c_(size) _SAL1_1_Source_(_Pre_opt_bytecount_c_, (size), _Pre1_impl_(__maybenull_impl_notref) _Pre1_impl_(__bytecount_c_impl(size)) _Pre_valid_impl_) - -// Valid buffer extent described by a complex expression -#define _Pre_count_x_(size) _SAL1_1_Source_(_Pre_count_x_, (size), _Pre1_impl_(__notnull_impl_notref) _Pre1_impl_(__count_x_impl(size)) _Pre_valid_impl_) -#define _Pre_opt_count_x_(size) _SAL1_1_Source_(_Pre_opt_count_x_, (size), _Pre1_impl_(__maybenull_impl_notref) _Pre1_impl_(__count_x_impl(size)) _Pre_valid_impl_) -#define _Pre_bytecount_x_(size) _SAL1_1_Source_(_Pre_bytecount_x_, (size), _Pre1_impl_(__notnull_impl_notref) _Pre1_impl_(__bytecount_x_impl(size)) _Pre_valid_impl_) -#define _Pre_opt_bytecount_x_(size) _SAL1_1_Source_(_Pre_opt_bytecount_x_, (size), _Pre1_impl_(__maybenull_impl_notref) _Pre1_impl_(__bytecount_x_impl(size)) _Pre_valid_impl_) - -// Valid buffer extent described by the difference to another pointer parameter -#define _Pre_ptrdiff_count_(ptr) _SAL1_1_Source_(_Pre_ptrdiff_count_, (ptr), _Pre1_impl_(__notnull_impl_notref) _Pre1_impl_(__count_x_impl(__ptrdiff(ptr))) _Pre_valid_impl_) -#define _Pre_opt_ptrdiff_count_(ptr) _SAL1_1_Source_(_Pre_opt_ptrdiff_count_, (ptr), _Pre1_impl_(__maybenull_impl_notref) _Pre1_impl_(__count_x_impl(__ptrdiff(ptr))) _Pre_valid_impl_) - - -// char * strncpy(_Out_cap_(_Count) _Post_maybez_ char * _Dest, _In_z_ const char * _Source, _In_ size_t _Count) -// buffer maybe zero-terminated after the call -#define _Post_maybez_ _SAL_L_Source_(_Post_maybez_, (), _Post1_impl_(__maybezterm_impl)) - -// e.g. SIZE_T HeapSize( _In_ HANDLE hHeap, DWORD dwFlags, _Pre_notnull_ _Post_bytecap_(return) LPCVOID lpMem ); -#define _Post_cap_(size) _SAL1_1_Source_(_Post_cap_, (size), _Post1_impl_(__cap_impl(size))) -#define _Post_bytecap_(size) _SAL1_1_Source_(_Post_bytecap_, (size), _Post1_impl_(__bytecap_impl(size))) - -// e.g. int strlen( _In_z_ _Post_count_(return+1) const char* sz ); -#define _Post_count_(size) _SAL1_1_Source_(_Post_count_, (size), _Post1_impl_(__count_impl(size)) _Post_valid_impl_) -#define _Post_bytecount_(size) _SAL1_1_Source_(_Post_bytecount_, (size), _Post1_impl_(__bytecount_impl(size)) _Post_valid_impl_) -#define _Post_count_c_(size) _SAL1_1_Source_(_Post_count_c_, (size), _Post1_impl_(__count_c_impl(size)) _Post_valid_impl_) -#define _Post_bytecount_c_(size) _SAL1_1_Source_(_Post_bytecount_c_, (size), _Post1_impl_(__bytecount_c_impl(size)) _Post_valid_impl_) -#define _Post_count_x_(size) _SAL1_1_Source_(_Post_count_x_, (size), _Post1_impl_(__count_x_impl(size)) _Post_valid_impl_) -#define _Post_bytecount_x_(size) _SAL1_1_Source_(_Post_bytecount_x_, (size), _Post1_impl_(__bytecount_x_impl(size)) _Post_valid_impl_) - -// e.g. size_t CopyStr( _In_z_ const char* szFrom, _Pre_cap_(cch) _Post_z_count_(return+1) char* szFrom, size_t cchFrom ); -#define _Post_z_count_(size) _SAL1_1_Source_(_Post_z_count_, (size), _Post2_impl_(__zterm_impl,__count_impl(size)) _Post_valid_impl_) -#define _Post_z_bytecount_(size) _SAL1_1_Source_(_Post_z_bytecount_, (size), _Post2_impl_(__zterm_impl,__bytecount_impl(size)) _Post_valid_impl_) -#define _Post_z_count_c_(size) _SAL1_1_Source_(_Post_z_count_c_, (size), _Post2_impl_(__zterm_impl,__count_c_impl(size)) _Post_valid_impl_) -#define _Post_z_bytecount_c_(size) _SAL1_1_Source_(_Post_z_bytecount_c_, (size), _Post2_impl_(__zterm_impl,__bytecount_c_impl(size)) _Post_valid_impl_) -#define _Post_z_count_x_(size) _SAL1_1_Source_(_Post_z_count_x_, (size), _Post2_impl_(__zterm_impl,__count_x_impl(size)) _Post_valid_impl_) -#define _Post_z_bytecount_x_(size) _SAL1_1_Source_(_Post_z_bytecount_x_, (size), _Post2_impl_(__zterm_impl,__bytecount_x_impl(size)) _Post_valid_impl_) - -// -// _Prepost_ --- -// -// describing conditions that hold before and after the function call - -#define _Prepost_opt_z_ _SAL1_1_Source_(_Prepost_opt_z_, (), _Pre_opt_z_ _Post_z_) - -#define _Prepost_count_(size) _SAL1_1_Source_(_Prepost_count_, (size), _Pre_count_(size) _Post_count_(size)) -#define _Prepost_opt_count_(size) _SAL1_1_Source_(_Prepost_opt_count_, (size), _Pre_opt_count_(size) _Post_count_(size)) -#define _Prepost_bytecount_(size) _SAL1_1_Source_(_Prepost_bytecount_, (size), _Pre_bytecount_(size) _Post_bytecount_(size)) -#define _Prepost_opt_bytecount_(size) _SAL1_1_Source_(_Prepost_opt_bytecount_, (size), _Pre_opt_bytecount_(size) _Post_bytecount_(size)) -#define _Prepost_count_c_(size) _SAL1_1_Source_(_Prepost_count_c_, (size), _Pre_count_c_(size) _Post_count_c_(size)) -#define _Prepost_opt_count_c_(size) _SAL1_1_Source_(_Prepost_opt_count_c_, (size), _Pre_opt_count_c_(size) _Post_count_c_(size)) -#define _Prepost_bytecount_c_(size) _SAL1_1_Source_(_Prepost_bytecount_c_, (size), _Pre_bytecount_c_(size) _Post_bytecount_c_(size)) -#define _Prepost_opt_bytecount_c_(size) _SAL1_1_Source_(_Prepost_opt_bytecount_c_, (size), _Pre_opt_bytecount_c_(size) _Post_bytecount_c_(size)) -#define _Prepost_count_x_(size) _SAL1_1_Source_(_Prepost_count_x_, (size), _Pre_count_x_(size) _Post_count_x_(size)) -#define _Prepost_opt_count_x_(size) _SAL1_1_Source_(_Prepost_opt_count_x_, (size), _Pre_opt_count_x_(size) _Post_count_x_(size)) -#define _Prepost_bytecount_x_(size) _SAL1_1_Source_(_Prepost_bytecount_x_, (size), _Pre_bytecount_x_(size) _Post_bytecount_x_(size)) -#define _Prepost_opt_bytecount_x_(size) _SAL1_1_Source_(_Prepost_opt_bytecount_x_, (size), _Pre_opt_bytecount_x_(size) _Post_bytecount_x_(size)) - -#define _Prepost_valid_ _SAL1_1_Source_(_Prepost_valid_, (), _Pre_valid_ _Post_valid_) -#define _Prepost_opt_valid_ _SAL1_1_Source_(_Prepost_opt_valid_, (), _Pre_opt_valid_ _Post_valid_) - -// -// _Deref_ --- -// -// short version for _Deref_pre_ _Deref_post_ -// describing conditions for array elements or dereferenced pointer parameters that hold before and after the call - -#define _Deref_prepost_z_ _SAL1_1_Source_(_Deref_prepost_z_, (), _Deref_pre_z_ _Deref_post_z_) -#define _Deref_prepost_opt_z_ _SAL1_1_Source_(_Deref_prepost_opt_z_, (), _Deref_pre_opt_z_ _Deref_post_opt_z_) - -#define _Deref_prepost_cap_(size) _SAL1_1_Source_(_Deref_prepost_cap_, (size), _Deref_pre_cap_(size) _Deref_post_cap_(size)) -#define _Deref_prepost_opt_cap_(size) _SAL1_1_Source_(_Deref_prepost_opt_cap_, (size), _Deref_pre_opt_cap_(size) _Deref_post_opt_cap_(size)) -#define _Deref_prepost_bytecap_(size) _SAL1_1_Source_(_Deref_prepost_bytecap_, (size), _Deref_pre_bytecap_(size) _Deref_post_bytecap_(size)) -#define _Deref_prepost_opt_bytecap_(size) _SAL1_1_Source_(_Deref_prepost_opt_bytecap_, (size), _Deref_pre_opt_bytecap_(size) _Deref_post_opt_bytecap_(size)) - -#define _Deref_prepost_cap_x_(size) _SAL1_1_Source_(_Deref_prepost_cap_x_, (size), _Deref_pre_cap_x_(size) _Deref_post_cap_x_(size)) -#define _Deref_prepost_opt_cap_x_(size) _SAL1_1_Source_(_Deref_prepost_opt_cap_x_, (size), _Deref_pre_opt_cap_x_(size) _Deref_post_opt_cap_x_(size)) -#define _Deref_prepost_bytecap_x_(size) _SAL1_1_Source_(_Deref_prepost_bytecap_x_, (size), _Deref_pre_bytecap_x_(size) _Deref_post_bytecap_x_(size)) -#define _Deref_prepost_opt_bytecap_x_(size) _SAL1_1_Source_(_Deref_prepost_opt_bytecap_x_, (size), _Deref_pre_opt_bytecap_x_(size) _Deref_post_opt_bytecap_x_(size)) - -#define _Deref_prepost_z_cap_(size) _SAL1_1_Source_(_Deref_prepost_z_cap_, (size), _Deref_pre_z_cap_(size) _Deref_post_z_cap_(size)) -#define _Deref_prepost_opt_z_cap_(size) _SAL1_1_Source_(_Deref_prepost_opt_z_cap_, (size), _Deref_pre_opt_z_cap_(size) _Deref_post_opt_z_cap_(size)) -#define _Deref_prepost_z_bytecap_(size) _SAL1_1_Source_(_Deref_prepost_z_bytecap_, (size), _Deref_pre_z_bytecap_(size) _Deref_post_z_bytecap_(size)) -#define _Deref_prepost_opt_z_bytecap_(size) _SAL1_1_Source_(_Deref_prepost_opt_z_bytecap_, (size), _Deref_pre_opt_z_bytecap_(size) _Deref_post_opt_z_bytecap_(size)) - -#define _Deref_prepost_valid_cap_(size) _SAL1_1_Source_(_Deref_prepost_valid_cap_, (size), _Deref_pre_valid_cap_(size) _Deref_post_valid_cap_(size)) -#define _Deref_prepost_opt_valid_cap_(size) _SAL1_1_Source_(_Deref_prepost_opt_valid_cap_, (size), _Deref_pre_opt_valid_cap_(size) _Deref_post_opt_valid_cap_(size)) -#define _Deref_prepost_valid_bytecap_(size) _SAL1_1_Source_(_Deref_prepost_valid_bytecap_, (size), _Deref_pre_valid_bytecap_(size) _Deref_post_valid_bytecap_(size)) -#define _Deref_prepost_opt_valid_bytecap_(size) _SAL1_1_Source_(_Deref_prepost_opt_valid_bytecap_, (size), _Deref_pre_opt_valid_bytecap_(size) _Deref_post_opt_valid_bytecap_(size)) - -#define _Deref_prepost_valid_cap_x_(size) _SAL1_1_Source_(_Deref_prepost_valid_cap_x_, (size), _Deref_pre_valid_cap_x_(size) _Deref_post_valid_cap_x_(size)) -#define _Deref_prepost_opt_valid_cap_x_(size) _SAL1_1_Source_(_Deref_prepost_opt_valid_cap_x_, (size), _Deref_pre_opt_valid_cap_x_(size) _Deref_post_opt_valid_cap_x_(size)) -#define _Deref_prepost_valid_bytecap_x_(size) _SAL1_1_Source_(_Deref_prepost_valid_bytecap_x_, (size), _Deref_pre_valid_bytecap_x_(size) _Deref_post_valid_bytecap_x_(size)) -#define _Deref_prepost_opt_valid_bytecap_x_(size) _SAL1_1_Source_(_Deref_prepost_opt_valid_bytecap_x_, (size), _Deref_pre_opt_valid_bytecap_x_(size) _Deref_post_opt_valid_bytecap_x_(size)) - -#define _Deref_prepost_count_(size) _SAL1_1_Source_(_Deref_prepost_count_, (size), _Deref_pre_count_(size) _Deref_post_count_(size)) -#define _Deref_prepost_opt_count_(size) _SAL1_1_Source_(_Deref_prepost_opt_count_, (size), _Deref_pre_opt_count_(size) _Deref_post_opt_count_(size)) -#define _Deref_prepost_bytecount_(size) _SAL1_1_Source_(_Deref_prepost_bytecount_, (size), _Deref_pre_bytecount_(size) _Deref_post_bytecount_(size)) -#define _Deref_prepost_opt_bytecount_(size) _SAL1_1_Source_(_Deref_prepost_opt_bytecount_, (size), _Deref_pre_opt_bytecount_(size) _Deref_post_opt_bytecount_(size)) - -#define _Deref_prepost_count_x_(size) _SAL1_1_Source_(_Deref_prepost_count_x_, (size), _Deref_pre_count_x_(size) _Deref_post_count_x_(size)) -#define _Deref_prepost_opt_count_x_(size) _SAL1_1_Source_(_Deref_prepost_opt_count_x_, (size), _Deref_pre_opt_count_x_(size) _Deref_post_opt_count_x_(size)) -#define _Deref_prepost_bytecount_x_(size) _SAL1_1_Source_(_Deref_prepost_bytecount_x_, (size), _Deref_pre_bytecount_x_(size) _Deref_post_bytecount_x_(size)) -#define _Deref_prepost_opt_bytecount_x_(size) _SAL1_1_Source_(_Deref_prepost_opt_bytecount_x_, (size), _Deref_pre_opt_bytecount_x_(size) _Deref_post_opt_bytecount_x_(size)) - -#define _Deref_prepost_valid_ _SAL1_1_Source_(_Deref_prepost_valid_, (), _Deref_pre_valid_ _Deref_post_valid_) -#define _Deref_prepost_opt_valid_ _SAL1_1_Source_(_Deref_prepost_opt_valid_, (), _Deref_pre_opt_valid_ _Deref_post_opt_valid_) - -// -// _Deref_ -// -// used with references to arrays - -#define _Deref_out_z_cap_c_(size) _SAL1_1_Source_(_Deref_out_z_cap_c_, (size), _Deref_pre_cap_c_(size) _Deref_post_z_) -#define _Deref_inout_z_cap_c_(size) _SAL1_1_Source_(_Deref_inout_z_cap_c_, (size), _Deref_pre_z_cap_c_(size) _Deref_post_z_) -#define _Deref_out_z_bytecap_c_(size) _SAL1_1_Source_(_Deref_out_z_bytecap_c_, (size), _Deref_pre_bytecap_c_(size) _Deref_post_z_) -#define _Deref_inout_z_bytecap_c_(size) _SAL1_1_Source_(_Deref_inout_z_bytecap_c_, (size), _Deref_pre_z_bytecap_c_(size) _Deref_post_z_) -#define _Deref_inout_z_ _SAL1_1_Source_(_Deref_inout_z_, (), _Deref_prepost_z_) - -#pragma endregion Input Buffer SAL 1 compatibility macros - - -//============================================================================ -// Implementation Layer: -//============================================================================ - - -// Naming conventions: -// A symbol the begins with _SA_ is for the machinery of creating any -// annotations; many of those come from sourceannotations.h in the case -// of attributes. - -// A symbol that ends with _impl is the very lowest level macro. It is -// not required to be a legal standalone annotation, and in the case -// of attribute annotations, usually is not. (In the case of some declspec -// annotations, it might be, but it should not be assumed so.) Those -// symbols will be used in the _PreN..., _PostN... and _RetN... annotations -// to build up more complete annotations. - -// A symbol ending in _impl_ is reserved to the implementation as well, -// but it does form a complete annotation; usually they are used to build -// up even higher level annotations. - - -#if _USE_ATTRIBUTES_FOR_SAL || _USE_DECLSPECS_FOR_SAL // [ -// Sharable "_impl" macros: these can be shared between the various annotation -// forms but are part of the implementation of the macros. These are collected -// here to assure that only necessary differences in the annotations -// exist. - -#define _Always_impl_(annos) _Group_(annos _SAL_nop_impl_) _On_failure_impl_(annos _SAL_nop_impl_) -#define _Bound_impl_ _SA_annotes0(SAL_bound) -#define _Field_range_impl_(min,max) _Range_impl_(min,max) -#define _Literal_impl_ _SA_annotes1(SAL_constant, __yes) -#define _Maybenull_impl_ _SA_annotes1(SAL_null, __maybe) -#define _Maybevalid_impl_ _SA_annotes1(SAL_valid, __maybe) -#define _Must_inspect_impl_ _Post_impl_ _SA_annotes0(SAL_mustInspect) -#define _Notliteral_impl_ _SA_annotes1(SAL_constant, __no) -#define _Notnull_impl_ _SA_annotes1(SAL_null, __no) -#define _Notvalid_impl_ _SA_annotes1(SAL_valid, __no) -#define _NullNull_terminated_impl_ _Group_(_SA_annotes1(SAL_nullTerminated, __yes) _SA_annotes1(SAL_readableTo,inexpressibleCount("NullNull terminated string"))) -#define _Null_impl_ _SA_annotes1(SAL_null, __yes) -#define _Null_terminated_impl_ _SA_annotes1(SAL_nullTerminated, __yes) -#define _Out_impl_ _Pre1_impl_(__notnull_impl_notref) _Pre1_impl_(__cap_c_one_notref_impl) _Post_valid_impl_ -#define _Out_opt_impl_ _Pre1_impl_(__maybenull_impl_notref) _Pre1_impl_(__cap_c_one_notref_impl) _Post_valid_impl_ -#define _Points_to_data_impl_ _At_(*_Curr_, _SA_annotes1(SAL_mayBePointer, __no)) -#define _Post_satisfies_impl_(cond) _Post_impl_ _Satisfies_impl_(cond) -#define _Post_valid_impl_ _Post1_impl_(__valid_impl) -#define _Pre_satisfies_impl_(cond) _Pre_impl_ _Satisfies_impl_(cond) -#define _Pre_valid_impl_ _Pre1_impl_(__valid_impl) -#define _Range_impl_(min,max) _SA_annotes2(SAL_range, min, max) -#define _Readable_bytes_impl_(size) _SA_annotes1(SAL_readableTo, byteCount(size)) -#define _Readable_elements_impl_(size) _SA_annotes1(SAL_readableTo, elementCount(size)) -#define _Ret_valid_impl_ _Ret1_impl_(__valid_impl) -#define _Satisfies_impl_(cond) _SA_annotes1(SAL_satisfies, cond) -#define _Valid_impl_ _SA_annotes1(SAL_valid, __yes) -#define _Writable_bytes_impl_(size) _SA_annotes1(SAL_writableTo, byteCount(size)) -#define _Writable_elements_impl_(size) _SA_annotes1(SAL_writableTo, elementCount(size)) - -#define _In_range_impl_(min,max) _Pre_impl_ _Range_impl_(min,max) -#define _Out_range_impl_(min,max) _Post_impl_ _Range_impl_(min,max) -#define _Ret_range_impl_(min,max) _Post_impl_ _Range_impl_(min,max) -#define _Deref_in_range_impl_(min,max) _Deref_pre_impl_ _Range_impl_(min,max) -#define _Deref_out_range_impl_(min,max) _Deref_post_impl_ _Range_impl_(min,max) -#define _Deref_ret_range_impl_(min,max) _Deref_post_impl_ _Range_impl_(min,max) - -#define _Deref_pre_impl_ _Pre_impl_ _Notref_impl_ _Deref_impl_ -#define _Deref_post_impl_ _Post_impl_ _Notref_impl_ _Deref_impl_ - -// The following are for the implementation machinery, and are not -// suitable for annotating general code. -// We're tying to phase this out, someday. The parser quotes the param. -#define __AuToQuOtE _SA_annotes0(SAL_AuToQuOtE) - -// Normally the parser does some simple type checking of annotation params, -// defer that check to the plugin. -#define __deferTypecheck _SA_annotes0(SAL_deferTypecheck) - -#define _SA_SPECSTRIZE( x ) #x -#define _SAL_nop_impl_ /* nothing */ -#define __nop_impl(x) x -#endif - - -#if _USE_ATTRIBUTES_FOR_SAL // [ - -// Using attributes for sal - -#include "codeanalysis/sourceannotations.h" - - -#define _SA_annotes0(n) [SAL_annotes(Name=#n)] -#define _SA_annotes1(n,pp1) [SAL_annotes(Name=#n, p1=_SA_SPECSTRIZE(pp1))] -#define _SA_annotes2(n,pp1,pp2) [SAL_annotes(Name=#n, p1=_SA_SPECSTRIZE(pp1), p2=_SA_SPECSTRIZE(pp2))] -#define _SA_annotes3(n,pp1,pp2,pp3) [SAL_annotes(Name=#n, p1=_SA_SPECSTRIZE(pp1), p2=_SA_SPECSTRIZE(pp2), p3=_SA_SPECSTRIZE(pp3))] - -#define _Pre_impl_ [SAL_pre] -#define _Post_impl_ [SAL_post] -#define _Deref_impl_ [SAL_deref] -#define _Notref_impl_ [SAL_notref] - - -// Declare a function to be an annotation or primop (respectively). -// Done this way so that they don't appear in the regular compiler's -// namespace. -#define __ANNOTATION(fun) _SA_annotes0(SAL_annotation) void __SA_##fun; -#define __PRIMOP(type, fun) _SA_annotes0(SAL_primop) type __SA_##fun; -#define __QUALIFIER(fun) _SA_annotes0(SAL_qualifier) void __SA_##fun; - -// Benign declspec needed here for WindowsPREfast -#define __In_impl_ [SA_Pre(Valid=SA_Yes)] [SA_Pre(Deref=1, Notref=1, Access=SA_Read)] __declspec("SAL_pre SAL_valid") - -#elif _USE_DECLSPECS_FOR_SAL // ][ - -// Using declspecs for sal - -#define _SA_annotes0(n) __declspec(#n) -#define _SA_annotes1(n,pp1) __declspec(#n "(" _SA_SPECSTRIZE(pp1) ")" ) -#define _SA_annotes2(n,pp1,pp2) __declspec(#n "(" _SA_SPECSTRIZE(pp1) "," _SA_SPECSTRIZE(pp2) ")") -#define _SA_annotes3(n,pp1,pp2,pp3) __declspec(#n "(" _SA_SPECSTRIZE(pp1) "," _SA_SPECSTRIZE(pp2) "," _SA_SPECSTRIZE(pp3) ")") - -#define _Pre_impl_ _SA_annotes0(SAL_pre) -#define _Post_impl_ _SA_annotes0(SAL_post) -#define _Deref_impl_ _SA_annotes0(SAL_deref) -#define _Notref_impl_ _SA_annotes0(SAL_notref) - -// Declare a function to be an annotation or primop (respectively). -// Done this way so that they don't appear in the regular compiler's -// namespace. -#define __ANNOTATION(fun) _SA_annotes0(SAL_annotation) void __SA_##fun - -#define __PRIMOP(type, fun) _SA_annotes0(SAL_primop) type __SA_##fun - -#define __QUALIFIER(fun) _SA_annotes0(SAL_qualifier) void __SA_##fun; - -#define __In_impl_ _Pre_impl_ _SA_annotes0(SAL_valid) _Pre_impl_ _Deref_impl_ _Notref_impl_ _SA_annotes0(SAL_readonly) - -#else // ][ - -// Using "nothing" for sal - -#define _SA_annotes0(n) -#define _SA_annotes1(n,pp1) -#define _SA_annotes2(n,pp1,pp2) -#define _SA_annotes3(n,pp1,pp2,pp3) - -#define __ANNOTATION(fun) -#define __PRIMOP(type, fun) -#define __QUALIFIER(type, fun) - -#endif // ] - -#if _USE_ATTRIBUTES_FOR_SAL || _USE_DECLSPECS_FOR_SAL // [ - -// Declare annotations that need to be declared. -__ANNOTATION(SAL_useHeader(void)); -__ANNOTATION(SAL_bound(void)); -__ANNOTATION(SAL_allocator(void)); //??? resolve with PFD -__ANNOTATION(SAL_file_parser(__AuToQuOtE __In_impl_ char *, __In_impl_ char *)); -__ANNOTATION(SAL_source_code_content(__In_impl_ char *)); -__ANNOTATION(SAL_analysisHint(__AuToQuOtE __In_impl_ char *)); -__ANNOTATION(SAL_untrusted_data_source(__AuToQuOtE __In_impl_ char *)); -__ANNOTATION(SAL_untrusted_data_source_this(__AuToQuOtE __In_impl_ char *)); -__ANNOTATION(SAL_validated(__AuToQuOtE __In_impl_ char *)); -__ANNOTATION(SAL_validated_this(__AuToQuOtE __In_impl_ char *)); -__ANNOTATION(SAL_encoded(void)); -__ANNOTATION(SAL_adt(__AuToQuOtE __In_impl_ char *, __AuToQuOtE __In_impl_ char *)); -__ANNOTATION(SAL_add_adt_property(__AuToQuOtE __In_impl_ char *, __AuToQuOtE __In_impl_ char *)); -__ANNOTATION(SAL_remove_adt_property(__AuToQuOtE __In_impl_ char *, __AuToQuOtE __In_impl_ char *)); -__ANNOTATION(SAL_transfer_adt_property_from(__AuToQuOtE __In_impl_ char *)); -__ANNOTATION(SAL_post_type(__AuToQuOtE __In_impl_ char *)); -__ANNOTATION(SAL_volatile(void)); -__ANNOTATION(SAL_nonvolatile(void)); -__ANNOTATION(SAL_entrypoint(__AuToQuOtE __In_impl_ char *, __AuToQuOtE __In_impl_ char *)); -__ANNOTATION(SAL_blocksOn(__In_impl_ void*)); -__ANNOTATION(SAL_mustInspect(void)); - -// Only appears in model files, but needs to be declared. -__ANNOTATION(SAL_TypeName(__AuToQuOtE __In_impl_ char *)); - -// To be declared well-known soon. -__ANNOTATION(SAL_interlocked(void);) - -__QUALIFIER(SAL_name(__In_impl_ char *, __In_impl_ char *, __In_impl_ char *);) - -__PRIMOP(char *, _Macro_value_(__In_impl_ char *)); -__PRIMOP(int, _Macro_defined_(__In_impl_ char *)); -__PRIMOP(char *, _Strstr_(__In_impl_ char *, __In_impl_ char *)); - -#endif // ] - -#if _USE_ATTRIBUTES_FOR_SAL // [ - -#define _Check_return_impl_ [SA_Post(MustCheck=SA_Yes)] - -#define _Success_impl_(expr) [SA_Success(Condition=#expr)] -#define _On_failure_impl_(annos) [SAL_context(p1="SAL_failed")] _Group_(_Post_impl_ _Group_(annos _SAL_nop_impl_)) - -#define _Printf_format_string_impl_ [SA_FormatString(Style="printf")] -#define _Scanf_format_string_impl_ [SA_FormatString(Style="scanf")] -#define _Scanf_s_format_string_impl_ [SA_FormatString(Style="scanf_s")] - -#define _In_bound_impl_ [SA_PreBound(Deref=0)] -#define _Out_bound_impl_ [SA_PostBound(Deref=0)] -#define _Ret_bound_impl_ [SA_PostBound(Deref=0)] -#define _Deref_in_bound_impl_ [SA_PreBound(Deref=1)] -#define _Deref_out_bound_impl_ [SA_PostBound(Deref=1)] -#define _Deref_ret_bound_impl_ [SA_PostBound(Deref=1)] - -#define __valid_impl Valid=SA_Yes -#define __maybevalid_impl Valid=SA_Maybe -#define __notvalid_impl Valid=SA_No - -#define __null_impl Null=SA_Yes -#define __maybenull_impl Null=SA_Maybe -#define __notnull_impl Null=SA_No - -#define __null_impl_notref Null=SA_Yes,Notref=1 -#define __maybenull_impl_notref Null=SA_Maybe,Notref=1 -#define __notnull_impl_notref Null=SA_No,Notref=1 - -#define __zterm_impl NullTerminated=SA_Yes -#define __maybezterm_impl NullTerminated=SA_Maybe -#define __maybzterm_impl NullTerminated=SA_Maybe -#define __notzterm_impl NullTerminated=SA_No - -#define __readaccess_impl Access=SA_Read -#define __writeaccess_impl Access=SA_Write -#define __allaccess_impl Access=SA_ReadWrite - -#define __readaccess_impl_notref Access=SA_Read,Notref=1 -#define __writeaccess_impl_notref Access=SA_Write,Notref=1 -#define __allaccess_impl_notref Access=SA_ReadWrite,Notref=1 - -// For SAL2, we need to expect general expressions. - -#define __cap_impl(size) WritableElements="\n"#size -#define __bytecap_impl(size) WritableBytes="\n"#size -#define __bytecount_impl(size) ValidBytes="\n"#size -#define __count_impl(size) ValidElements="\n"#size - -#define __cap_c_impl(size) WritableElementsConst=size -#define __cap_c_one_notref_impl WritableElementsConst=1,Notref=1 -#define __cap_for_impl(param) WritableElementsLength=#param -#define __cap_x_impl(size) WritableElements="\n@"#size - -#define __bytecap_c_impl(size) WritableBytesConst=size -#define __bytecap_x_impl(size) WritableBytes="\n@"#size - -#define __mult_impl(mult,size) __cap_impl((mult)*(size)) - -#define __count_c_impl(size) ValidElementsConst=size -#define __count_x_impl(size) ValidElements="\n@"#size - -#define __bytecount_c_impl(size) ValidBytesConst=size -#define __bytecount_x_impl(size) ValidBytes="\n@"#size - - -#define _At_impl_(target, annos) [SAL_at(p1=#target)] _Group_(annos) -#define _At_buffer_impl_(target, iter, bound, annos) [SAL_at_buffer(p1=#target, p2=#iter, p3=#bound)] _Group_(annos) -#define _When_impl_(expr, annos) [SAL_when(p1=#expr)] _Group_(annos) - -#define _Group_impl_(annos) [SAL_begin] annos [SAL_end] -#define _GrouP_impl_(annos) [SAL_BEGIN] annos [SAL_END] - -#define _Use_decl_anno_impl_ _SA_annotes0(SAL_useHeader) // this is a special case! - -#define _Pre1_impl_(p1) [SA_Pre(p1)] -#define _Pre2_impl_(p1,p2) [SA_Pre(p1,p2)] -#define _Pre3_impl_(p1,p2,p3) [SA_Pre(p1,p2,p3)] - -#define _Post1_impl_(p1) [SA_Post(p1)] -#define _Post2_impl_(p1,p2) [SA_Post(p1,p2)] -#define _Post3_impl_(p1,p2,p3) [SA_Post(p1,p2,p3)] - -#define _Ret1_impl_(p1) [SA_Post(p1)] -#define _Ret2_impl_(p1,p2) [SA_Post(p1,p2)] -#define _Ret3_impl_(p1,p2,p3) [SA_Post(p1,p2,p3)] - -#define _Deref_pre1_impl_(p1) [SA_Pre(Deref=1,p1)] -#define _Deref_pre2_impl_(p1,p2) [SA_Pre(Deref=1,p1,p2)] -#define _Deref_pre3_impl_(p1,p2,p3) [SA_Pre(Deref=1,p1,p2,p3)] - - -#define _Deref_post1_impl_(p1) [SA_Post(Deref=1,p1)] -#define _Deref_post2_impl_(p1,p2) [SA_Post(Deref=1,p1,p2)] -#define _Deref_post3_impl_(p1,p2,p3) [SA_Post(Deref=1,p1,p2,p3)] - -#define _Deref_ret1_impl_(p1) [SA_Post(Deref=1,p1)] -#define _Deref_ret2_impl_(p1,p2) [SA_Post(Deref=1,p1,p2)] -#define _Deref_ret3_impl_(p1,p2,p3) [SA_Post(Deref=1,p1,p2,p3)] - -#define _Deref2_pre1_impl_(p1) [SA_Pre(Deref=2,Notref=1,p1)] -#define _Deref2_post1_impl_(p1) [SA_Post(Deref=2,Notref=1,p1)] -#define _Deref2_ret1_impl_(p1) [SA_Post(Deref=2,Notref=1,p1)] - -// Obsolete -- may be needed for transition to attributes. -#define __inner_typefix(ctype) [SAL_typefix(p1=_SA_SPECSTRIZE(ctype))] -#define __inner_exceptthat [SAL_except] - - -#elif _USE_DECLSPECS_FOR_SAL // ][ - -#define _Check_return_impl_ __post _SA_annotes0(SAL_checkReturn) - -#define _Success_impl_(expr) _SA_annotes1(SAL_success, expr) -#define _On_failure_impl_(annos) _SA_annotes1(SAL_context, SAL_failed) _Group_(_Post_impl_ _Group_(_SAL_nop_impl_ annos)) - -#define _Printf_format_string_impl_ _SA_annotes1(SAL_IsFormatString, "printf") -#define _Scanf_format_string_impl_ _SA_annotes1(SAL_IsFormatString, "scanf") -#define _Scanf_s_format_string_impl_ _SA_annotes1(SAL_IsFormatString, "scanf_s") - -#define _In_bound_impl_ _Pre_impl_ _Bound_impl_ -#define _Out_bound_impl_ _Post_impl_ _Bound_impl_ -#define _Ret_bound_impl_ _Post_impl_ _Bound_impl_ -#define _Deref_in_bound_impl_ _Deref_pre_impl_ _Bound_impl_ -#define _Deref_out_bound_impl_ _Deref_post_impl_ _Bound_impl_ -#define _Deref_ret_bound_impl_ _Deref_post_impl_ _Bound_impl_ - - -#define __null_impl _SA_annotes0(SAL_null) // _SA_annotes1(SAL_null, __yes) -#define __notnull_impl _SA_annotes0(SAL_notnull) // _SA_annotes1(SAL_null, __no) -#define __maybenull_impl _SA_annotes0(SAL_maybenull) // _SA_annotes1(SAL_null, __maybe) - -#define __valid_impl _SA_annotes0(SAL_valid) // _SA_annotes1(SAL_valid, __yes) -#define __notvalid_impl _SA_annotes0(SAL_notvalid) // _SA_annotes1(SAL_valid, __no) -#define __maybevalid_impl _SA_annotes0(SAL_maybevalid) // _SA_annotes1(SAL_valid, __maybe) - -#define __null_impl_notref _Notref_ _Null_impl_ -#define __maybenull_impl_notref _Notref_ _Maybenull_impl_ -#define __notnull_impl_notref _Notref_ _Notnull_impl_ - -#define __zterm_impl _SA_annotes1(SAL_nullTerminated, __yes) -#define __maybezterm_impl _SA_annotes1(SAL_nullTerminated, __maybe) -#define __maybzterm_impl _SA_annotes1(SAL_nullTerminated, __maybe) -#define __notzterm_impl _SA_annotes1(SAL_nullTerminated, __no) - -#define __readaccess_impl _SA_annotes1(SAL_access, 0x1) -#define __writeaccess_impl _SA_annotes1(SAL_access, 0x2) -#define __allaccess_impl _SA_annotes1(SAL_access, 0x3) - -#define __readaccess_impl_notref _Notref_ _SA_annotes1(SAL_access, 0x1) -#define __writeaccess_impl_notref _Notref_ _SA_annotes1(SAL_access, 0x2) -#define __allaccess_impl_notref _Notref_ _SA_annotes1(SAL_access, 0x3) - -#define __cap_impl(size) _SA_annotes1(SAL_writableTo,elementCount(size)) -#define __cap_c_impl(size) _SA_annotes1(SAL_writableTo,elementCount(size)) -#define __cap_c_one_notref_impl _Notref_ _SA_annotes1(SAL_writableTo,elementCount(1)) -#define __cap_for_impl(param) _SA_annotes1(SAL_writableTo,inexpressibleCount(sizeof(param))) -#define __cap_x_impl(size) _SA_annotes1(SAL_writableTo,inexpressibleCount(#size)) - -#define __bytecap_impl(size) _SA_annotes1(SAL_writableTo,byteCount(size)) -#define __bytecap_c_impl(size) _SA_annotes1(SAL_writableTo,byteCount(size)) -#define __bytecap_x_impl(size) _SA_annotes1(SAL_writableTo,inexpressibleCount(#size)) - -#define __mult_impl(mult,size) _SA_annotes1(SAL_writableTo,(mult)*(size)) - -#define __count_impl(size) _SA_annotes1(SAL_readableTo,elementCount(size)) -#define __count_c_impl(size) _SA_annotes1(SAL_readableTo,elementCount(size)) -#define __count_x_impl(size) _SA_annotes1(SAL_readableTo,inexpressibleCount(#size)) - -#define __bytecount_impl(size) _SA_annotes1(SAL_readableTo,byteCount(size)) -#define __bytecount_c_impl(size) _SA_annotes1(SAL_readableTo,byteCount(size)) -#define __bytecount_x_impl(size) _SA_annotes1(SAL_readableTo,inexpressibleCount(#size)) - -#define _At_impl_(target, annos) _SA_annotes0(SAL_at(target)) _Group_(annos) -#define _At_buffer_impl_(target, iter, bound, annos) _SA_annotes3(SAL_at_buffer, target, iter, bound) _Group_(annos) -#define _Group_impl_(annos) _SA_annotes0(SAL_begin) annos _SA_annotes0(SAL_end) -#define _GrouP_impl_(annos) _SA_annotes0(SAL_BEGIN) annos _SA_annotes0(SAL_END) -#define _When_impl_(expr, annos) _SA_annotes0(SAL_when(expr)) _Group_(annos) - -#define _Use_decl_anno_impl_ __declspec("SAL_useHeader()") // this is a special case! - -#define _Pre1_impl_(p1) _Pre_impl_ p1 -#define _Pre2_impl_(p1,p2) _Pre_impl_ p1 _Pre_impl_ p2 -#define _Pre3_impl_(p1,p2,p3) _Pre_impl_ p1 _Pre_impl_ p2 _Pre_impl_ p3 - -#define _Post1_impl_(p1) _Post_impl_ p1 -#define _Post2_impl_(p1,p2) _Post_impl_ p1 _Post_impl_ p2 -#define _Post3_impl_(p1,p2,p3) _Post_impl_ p1 _Post_impl_ p2 _Post_impl_ p3 - -#define _Ret1_impl_(p1) _Post_impl_ p1 -#define _Ret2_impl_(p1,p2) _Post_impl_ p1 _Post_impl_ p2 -#define _Ret3_impl_(p1,p2,p3) _Post_impl_ p1 _Post_impl_ p2 _Post_impl_ p3 - -#define _Deref_pre1_impl_(p1) _Deref_pre_impl_ p1 -#define _Deref_pre2_impl_(p1,p2) _Deref_pre_impl_ p1 _Deref_pre_impl_ p2 -#define _Deref_pre3_impl_(p1,p2,p3) _Deref_pre_impl_ p1 _Deref_pre_impl_ p2 _Deref_pre_impl_ p3 - -#define _Deref_post1_impl_(p1) _Deref_post_impl_ p1 -#define _Deref_post2_impl_(p1,p2) _Deref_post_impl_ p1 _Deref_post_impl_ p2 -#define _Deref_post3_impl_(p1,p2,p3) _Deref_post_impl_ p1 _Deref_post_impl_ p2 _Deref_post_impl_ p3 - -#define _Deref_ret1_impl_(p1) _Deref_post_impl_ p1 -#define _Deref_ret2_impl_(p1,p2) _Deref_post_impl_ p1 _Deref_post_impl_ p2 -#define _Deref_ret3_impl_(p1,p2,p3) _Deref_post_impl_ p1 _Deref_post_impl_ p2 _Deref_post_impl_ p3 - -#define _Deref2_pre1_impl_(p1) _Deref_pre_impl_ _Notref_impl_ _Deref_impl_ p1 -#define _Deref2_post1_impl_(p1) _Deref_post_impl_ _Notref_impl_ _Deref_impl_ p1 -#define _Deref2_ret1_impl_(p1) _Deref_post_impl_ _Notref_impl_ _Deref_impl_ p1 - -#define __inner_typefix(ctype) _SA_annotes1(SAL_typefix, ctype) -#define __inner_exceptthat _SA_annotes0(SAL_except) - -#elif defined(_MSC_EXTENSIONS) && !defined( MIDL_PASS ) && !defined(__midl) && !defined(RC_INVOKED) && defined(_PFT_VER) // ][ - -// minimum attribute expansion for foreground build - -#pragma push_macro( "SA" ) -#pragma push_macro( "REPEATABLE" ) - -#ifdef __cplusplus // [ -#define SA( id ) id -#define REPEATABLE [repeatable] -#else // !__cplusplus // ][ -#define SA( id ) SA_##id -#define REPEATABLE -#endif // !__cplusplus // ] - -REPEATABLE -[source_annotation_attribute( SA( Parameter ) )] -struct __P_impl -{ -#ifdef __cplusplus // [ - __P_impl(); -#endif // ] - int __d_; -}; -typedef struct __P_impl __P_impl; - -REPEATABLE -[source_annotation_attribute( SA( ReturnValue ) )] -struct __R_impl -{ -#ifdef __cplusplus // [ - __R_impl(); -#endif // ] - int __d_; -}; -typedef struct __R_impl __R_impl; - -[source_annotation_attribute( SA( Method ) )] -struct __M_ -{ -#ifdef __cplusplus // [ - __M_(); -#endif // ] - int __d_; -}; -typedef struct __M_ __M_; - -[source_annotation_attribute( SA( All ) )] -struct __A_ -{ -#ifdef __cplusplus // [ - __A_(); -#endif // ] - int __d_; -}; -typedef struct __A_ __A_; - -[source_annotation_attribute( SA( Field ) )] -struct __F_ -{ -#ifdef __cplusplus // [ - __F_(); -#endif // ] - int __d_; -}; -typedef struct __F_ __F_; - -#pragma pop_macro( "REPEATABLE" ) -#pragma pop_macro( "SA" ) - - -#define _SAL_nop_impl_ - -#define _At_impl_(target, annos) [__A_(__d_=0)] -#define _At_buffer_impl_(target, iter, bound, annos) [__A_(__d_=0)] -#define _When_impl_(expr, annos) annos -#define _Group_impl_(annos) annos -#define _GrouP_impl_(annos) annos -#define _Use_decl_anno_impl_ [__M_(__d_=0)] - -#define _Points_to_data_impl_ [__P_impl(__d_=0)] -#define _Literal_impl_ [__P_impl(__d_=0)] -#define _Notliteral_impl_ [__P_impl(__d_=0)] - -#define _Pre_valid_impl_ [__P_impl(__d_=0)] -#define _Post_valid_impl_ [__P_impl(__d_=0)] -#define _Ret_valid_impl_ [__R_impl(__d_=0)] - -#define _Check_return_impl_ [__R_impl(__d_=0)] -#define _Must_inspect_impl_ [__R_impl(__d_=0)] - -#define _Success_impl_(expr) [__M_(__d_=0)] -#define _On_failure_impl_(expr) [__M_(__d_=0)] -#define _Always_impl_(expr) [__M_(__d_=0)] - -#define _Printf_format_string_impl_ [__P_impl(__d_=0)] -#define _Scanf_format_string_impl_ [__P_impl(__d_=0)] -#define _Scanf_s_format_string_impl_ [__P_impl(__d_=0)] - -#define _Raises_SEH_exception_impl_ [__M_(__d_=0)] -#define _Maybe_raises_SEH_exception_impl_ [__M_(__d_=0)] - -#define _In_bound_impl_ [__P_impl(__d_=0)] -#define _Out_bound_impl_ [__P_impl(__d_=0)] -#define _Ret_bound_impl_ [__R_impl(__d_=0)] -#define _Deref_in_bound_impl_ [__P_impl(__d_=0)] -#define _Deref_out_bound_impl_ [__P_impl(__d_=0)] -#define _Deref_ret_bound_impl_ [__R_impl(__d_=0)] - -#define _Range_impl_(min,max) [__P_impl(__d_=0)] -#define _In_range_impl_(min,max) [__P_impl(__d_=0)] -#define _Out_range_impl_(min,max) [__P_impl(__d_=0)] -#define _Ret_range_impl_(min,max) [__R_impl(__d_=0)] -#define _Deref_in_range_impl_(min,max) [__P_impl(__d_=0)] -#define _Deref_out_range_impl_(min,max) [__P_impl(__d_=0)] -#define _Deref_ret_range_impl_(min,max) [__R_impl(__d_=0)] - -#define _Field_range_impl_(min,max) [__F_(__d_=0)] - -#define _Pre_satisfies_impl_(cond) [__A_(__d_=0)] -#define _Post_satisfies_impl_(cond) [__A_(__d_=0)] -#define _Satisfies_impl_(cond) [__A_(__d_=0)] - -#define _Null_impl_ [__A_(__d_=0)] -#define _Notnull_impl_ [__A_(__d_=0)] -#define _Maybenull_impl_ [__A_(__d_=0)] - -#define _Valid_impl_ [__A_(__d_=0)] -#define _Notvalid_impl_ [__A_(__d_=0)] -#define _Maybevalid_impl_ [__A_(__d_=0)] - -#define _Readable_bytes_impl_(size) [__A_(__d_=0)] -#define _Readable_elements_impl_(size) [__A_(__d_=0)] -#define _Writable_bytes_impl_(size) [__A_(__d_=0)] -#define _Writable_elements_impl_(size) [__A_(__d_=0)] - -#define _Null_terminated_impl_ [__A_(__d_=0)] -#define _NullNull_terminated_impl_ [__A_(__d_=0)] - -#define _Pre_impl_ [__P_impl(__d_=0)] -#define _Pre1_impl_(p1) [__P_impl(__d_=0)] -#define _Pre2_impl_(p1,p2) [__P_impl(__d_=0)] -#define _Pre3_impl_(p1,p2,p3) [__P_impl(__d_=0)] - -#define _Post_impl_ [__P_impl(__d_=0)] -#define _Post1_impl_(p1) [__P_impl(__d_=0)] -#define _Post2_impl_(p1,p2) [__P_impl(__d_=0)] -#define _Post3_impl_(p1,p2,p3) [__P_impl(__d_=0)] - -#define _Ret1_impl_(p1) [__R_impl(__d_=0)] -#define _Ret2_impl_(p1,p2) [__R_impl(__d_=0)] -#define _Ret3_impl_(p1,p2,p3) [__R_impl(__d_=0)] - -#define _Deref_pre1_impl_(p1) [__P_impl(__d_=0)] -#define _Deref_pre2_impl_(p1,p2) [__P_impl(__d_=0)] -#define _Deref_pre3_impl_(p1,p2,p3) [__P_impl(__d_=0)] - -#define _Deref_post1_impl_(p1) [__P_impl(__d_=0)] -#define _Deref_post2_impl_(p1,p2) [__P_impl(__d_=0)] -#define _Deref_post3_impl_(p1,p2,p3) [__P_impl(__d_=0)] - -#define _Deref_ret1_impl_(p1) [__R_impl(__d_=0)] -#define _Deref_ret2_impl_(p1,p2) [__R_impl(__d_=0)] -#define _Deref_ret3_impl_(p1,p2,p3) [__R_impl(__d_=0)] - -#define _Deref2_pre1_impl_(p1) //[__P_impl(__d_=0)] -#define _Deref2_post1_impl_(p1) //[__P_impl(__d_=0)] -#define _Deref2_ret1_impl_(p1) //[__P_impl(__d_=0)] - -#else // ][ - - -#define _SAL_nop_impl_ X - -#define _At_impl_(target, annos) -#define _When_impl_(expr, annos) -#define _Group_impl_(annos) -#define _GrouP_impl_(annos) -#define _At_buffer_impl_(target, iter, bound, annos) -#define _Use_decl_anno_impl_ -#define _Points_to_data_impl_ -#define _Literal_impl_ -#define _Notliteral_impl_ -#define _Notref_impl_ - -#define _Pre_valid_impl_ -#define _Post_valid_impl_ -#define _Ret_valid_impl_ - -#define _Check_return_impl_ -#define _Must_inspect_impl_ - -#define _Success_impl_(expr) -#define _On_failure_impl_(annos) -#define _Always_impl_(annos) - -#define _Printf_format_string_impl_ -#define _Scanf_format_string_impl_ -#define _Scanf_s_format_string_impl_ - -#define _In_bound_impl_ -#define _Out_bound_impl_ -#define _Ret_bound_impl_ -#define _Deref_in_bound_impl_ -#define _Deref_out_bound_impl_ -#define _Deref_ret_bound_impl_ - -#define _Range_impl_(min,max) -#define _In_range_impl_(min,max) -#define _Out_range_impl_(min,max) -#define _Ret_range_impl_(min,max) -#define _Deref_in_range_impl_(min,max) -#define _Deref_out_range_impl_(min,max) -#define _Deref_ret_range_impl_(min,max) - -#define _Satisfies_impl_(expr) -#define _Pre_satisfies_impl_(expr) -#define _Post_satisfies_impl_(expr) - -#define _Null_impl_ -#define _Notnull_impl_ -#define _Maybenull_impl_ - -#define _Valid_impl_ -#define _Notvalid_impl_ -#define _Maybevalid_impl_ - -#define _Field_range_impl_(min,max) - -#define _Pre_impl_ -#define _Pre1_impl_(p1) -#define _Pre2_impl_(p1,p2) -#define _Pre3_impl_(p1,p2,p3) - -#define _Post_impl_ -#define _Post1_impl_(p1) -#define _Post2_impl_(p1,p2) -#define _Post3_impl_(p1,p2,p3) - -#define _Ret1_impl_(p1) -#define _Ret2_impl_(p1,p2) -#define _Ret3_impl_(p1,p2,p3) - -#define _Deref_pre1_impl_(p1) -#define _Deref_pre2_impl_(p1,p2) -#define _Deref_pre3_impl_(p1,p2,p3) - -#define _Deref_post1_impl_(p1) -#define _Deref_post2_impl_(p1,p2) -#define _Deref_post3_impl_(p1,p2,p3) - -#define _Deref_ret1_impl_(p1) -#define _Deref_ret2_impl_(p1,p2) -#define _Deref_ret3_impl_(p1,p2,p3) - -#define _Deref2_pre1_impl_(p1) -#define _Deref2_post1_impl_(p1) -#define _Deref2_ret1_impl_(p1) - -#define _Readable_bytes_impl_(size) -#define _Readable_elements_impl_(size) -#define _Writable_bytes_impl_(size) -#define _Writable_elements_impl_(size) - -#define _Null_terminated_impl_ -#define _NullNull_terminated_impl_ - -// Obsolete -- may be needed for transition to attributes. -#define __inner_typefix(ctype) -#define __inner_exceptthat - -#endif // ] - -// This section contains the deprecated annotations - -/* - ------------------------------------------------------------------------------- - Introduction - - sal.h provides a set of annotations to describe how a function uses its - parameters - the assumptions it makes about them, and the guarantees it makes - upon finishing. - - Annotations may be placed before either a function parameter's type or its return - type, and describe the function's behavior regarding the parameter or return value. - There are two classes of annotations: buffer annotations and advanced annotations. - Buffer annotations describe how functions use their pointer parameters, and - advanced annotations either describe complex/unusual buffer behavior, or provide - additional information about a parameter that is not otherwise expressible. - - ------------------------------------------------------------------------------- - Buffer Annotations - - The most important annotations in sal.h provide a consistent way to annotate - buffer parameters or return values for a function. Each of these annotations describes - a single buffer (which could be a string, a fixed-length or variable-length array, - or just a pointer) that the function interacts with: where it is, how large it is, - how much is initialized, and what the function does with it. - - The appropriate macro for a given buffer can be constructed using the table below. - Just pick the appropriate values from each category, and combine them together - with a leading underscore. Some combinations of values do not make sense as buffer - annotations. Only meaningful annotations can be added to your code; for a list of - these, see the buffer annotation definitions section. - - Only a single buffer annotation should be used for each parameter. - - |------------|------------|---------|--------|----------|----------|---------------| - | Level | Usage | Size | Output | NullTerm | Optional | Parameters | - |------------|------------|---------|--------|----------|----------|---------------| - | <> | <> | <> | <> | _z | <> | <> | - | _deref | _in | _ecount | _full | _nz | _opt | (size) | - | _deref_opt | _out | _bcount | _part | | | (size,length) | - | | _inout | | | | | | - | | | | | | | | - |------------|------------|---------|--------|----------|----------|---------------| - - Level: Describes the buffer pointer's level of indirection from the parameter or - return value 'p'. - - <> : p is the buffer pointer. - _deref : *p is the buffer pointer. p must not be NULL. - _deref_opt : *p may be the buffer pointer. p may be NULL, in which case the rest of - the annotation is ignored. - - Usage: Describes how the function uses the buffer. - - <> : The buffer is not accessed. If used on the return value or with _deref, the - function will provide the buffer, and it will be uninitialized at exit. - Otherwise, the caller must provide the buffer. This should only be used - for alloc and free functions. - _in : The function will only read from the buffer. The caller must provide the - buffer and initialize it. Cannot be used with _deref. - _out : The function will only write to the buffer. If used on the return value or - with _deref, the function will provide the buffer and initialize it. - Otherwise, the caller must provide the buffer, and the function will - initialize it. - _inout : The function may freely read from and write to the buffer. The caller must - provide the buffer and initialize it. If used with _deref, the buffer may - be reallocated by the function. - - Size: Describes the total size of the buffer. This may be less than the space actually - allocated for the buffer, in which case it describes the accessible amount. - - <> : No buffer size is given. If the type specifies the buffer size (such as - with LPSTR and LPWSTR), that amount is used. Otherwise, the buffer is one - element long. Must be used with _in, _out, or _inout. - _ecount : The buffer size is an explicit element count. - _bcount : The buffer size is an explicit byte count. - - Output: Describes how much of the buffer will be initialized by the function. For - _inout buffers, this also describes how much is initialized at entry. Omit this - category for _in buffers; they must be fully initialized by the caller. - - <> : The type specifies how much is initialized. For instance, a function initializing - an LPWSTR must NULL-terminate the string. - _full : The function initializes the entire buffer. - _part : The function initializes part of the buffer, and explicitly indicates how much. - - NullTerm: States if the present of a '\0' marks the end of valid elements in the buffer. - _z : A '\0' indicated the end of the buffer - _nz : The buffer may not be null terminated and a '\0' does not indicate the end of the - buffer. - Optional: Describes if the buffer itself is optional. - - <> : The pointer to the buffer must not be NULL. - _opt : The pointer to the buffer might be NULL. It will be checked before being dereferenced. - - Parameters: Gives explicit counts for the size and length of the buffer. - - <> : There is no explicit count. Use when neither _ecount nor _bcount is used. - (size) : Only the buffer's total size is given. Use with _ecount or _bcount but not _part. - (size,length) : The buffer's total size and initialized length are given. Use with _ecount_part - and _bcount_part. - - ------------------------------------------------------------------------------- - Buffer Annotation Examples - - LWSTDAPI_(BOOL) StrToIntExA( - __in LPCSTR pszString, - DWORD dwFlags, - __out int *piRet -- A pointer whose dereference will be filled in. - ); - - void MyPaintingFunction( - __in HWND hwndControl, -- An initialized read-only parameter. - __in_opt HDC hdcOptional, -- An initialized read-only parameter that might be NULL. - __inout IPropertyStore *ppsStore -- An initialized parameter that may be freely used - -- and modified. - ); - - LWSTDAPI_(BOOL) PathCompactPathExA( - __out_ecount(cchMax) LPSTR pszOut, -- A string buffer with cch elements that will - -- be NULL terminated on exit. - __in LPCSTR pszSrc, - UINT cchMax, - DWORD dwFlags - ); - - HRESULT SHLocalAllocBytes( - size_t cb, - __deref_bcount(cb) T **ppv -- A pointer whose dereference will be set to an - -- uninitialized buffer with cb bytes. - ); - - __inout_bcount_full(cb) : A buffer with cb elements that is fully initialized at - entry and exit, and may be written to by this function. - - __out_ecount_part(count, *countOut) : A buffer with count elements that will be - partially initialized by this function. The function indicates how much it - initialized by setting *countOut. - - ------------------------------------------------------------------------------- - Advanced Annotations - - Advanced annotations describe behavior that is not expressible with the regular - buffer macros. These may be used either to annotate buffer parameters that involve - complex or conditional behavior, or to enrich existing annotations with additional - information. - - __success(expr) f : - indicates whether function f succeeded or not. If is true at exit, - all the function's guarantees (as given by other annotations) must hold. If - is false at exit, the caller should not expect any of the function's guarantees - to hold. If not used, the function must always satisfy its guarantees. Added - automatically to functions that indicate success in standard ways, such as by - returning an HRESULT. - - __nullterminated p : - Pointer p is a buffer that may be read or written up to and including the first - NULL character or pointer. May be used on typedefs, which marks valid (properly - initialized) instances of that type as being NULL-terminated. - - __nullnullterminated p : - Pointer p is a buffer that may be read or written up to and including the first - sequence of two NULL characters or pointers. May be used on typedefs, which marks - valid instances of that type as being double-NULL terminated. - - __reserved v : - Value v must be 0/NULL, reserved for future use. - - __checkReturn v : - Return value v must not be ignored by callers of this function. - - __typefix(ctype) v : - Value v should be treated as an instance of ctype, rather than its declared type. - - __override f : - Specify C#-style 'override' behaviour for overriding virtual methods. - - __callback f : - Function f can be used as a function pointer. - - __format_string p : - Pointer p is a string that contains % markers in the style of printf. - - __blocksOn(resource) f : - Function f blocks on the resource 'resource'. - - __fallthrough : - Annotates switch statement labels where fall-through is desired, to distinguish - from forgotten break statements. - - ------------------------------------------------------------------------------- - Advanced Annotation Examples - - __success(return != FALSE) LWSTDAPI_(BOOL) - PathCanonicalizeA(__out_ecount(MAX_PATH) LPSTR pszBuf, LPCSTR pszPath) : - pszBuf is only guaranteed to be NULL-terminated when TRUE is returned. - - typedef __nullterminated WCHAR* LPWSTR : Initialized LPWSTRs are NULL-terminated strings. - - __out_ecount(cch) __typefix(LPWSTR) void *psz : psz is a buffer parameter which will be - a NULL-terminated WCHAR string at exit, and which initially contains cch WCHARs. - - ------------------------------------------------------------------------------- -*/ - -#define __specstrings - -#ifdef __cplusplus // [ -#ifndef __nothrow // [ -# define __nothrow __declspec(nothrow) -#endif // ] -extern "C" { -#else // ][ -#ifndef __nothrow // [ -# define __nothrow -#endif // ] -#endif /* __cplusplus */ // ] - - -/* - ------------------------------------------------------------------------------- - Helper Macro Definitions - - These express behavior common to many of the high-level annotations. - DO NOT USE THESE IN YOUR CODE. - ------------------------------------------------------------------------------- -*/ - -/* - The helper annotations are only understood by the compiler version used by - various defect detection tools. When the regular compiler is running, they - are defined into nothing, and do not affect the compiled code. -*/ - -#if !defined(__midl) && defined(_PREFAST_) // [ - - /* - In the primitive "SAL_*" annotations "SAL" stands for Standard - Annotation Language. These "SAL_*" annotations are the - primitives the compiler understands and high-level MACROs - will decompose into these primitives. - */ - - #define _SA_SPECSTRIZE( x ) #x - - /* - __null p - __notnull p - __maybenull p - - Annotates a pointer p. States that pointer p is null. Commonly used - in the negated form __notnull or the possibly null form __maybenull. - */ - - #define __null _Null_impl_ - #define __notnull _Notnull_impl_ - #define __maybenull _Maybenull_impl_ - - /* - __readonly l - __notreadonly l - __maybereadonly l - - Annotates a location l. States that location l is not modified after - this point. If the annotation is placed on the precondition state of - a function, the restriction only applies until the postcondition state - of the function. __maybereadonly states that the annotated location - may be modified, whereas __notreadonly states that a location must be - modified. - */ - - #define __readonly _Pre1_impl_(__readaccess_impl) - #define __notreadonly _Pre1_impl_(__allaccess_impl) - #define __maybereadonly _Pre1_impl_(__readaccess_impl) - - /* - __valid v - __notvalid v - __maybevalid v - - Annotates any value v. States that the value satisfies all properties of - valid values of its type. For example, for a string buffer, valid means - that the buffer pointer is either NULL or points to a NULL-terminated string. - */ - - #define __valid _Valid_impl_ - #define __notvalid _Notvalid_impl_ - #define __maybevalid _Maybevalid_impl_ - - /* - __readableTo(extent) p - - Annotates a buffer pointer p. If the buffer can be read, extent describes - how much of the buffer is readable. For a reader of the buffer, this is - an explicit permission to read up to that amount, rather than a restriction to - read only up to it. - */ - - #define __readableTo(extent) _SA_annotes1(SAL_readableTo, extent) - - /* - - __elem_readableTo(size) - - Annotates a buffer pointer p as being readable to size elements. - */ - - #define __elem_readableTo(size) _SA_annotes1(SAL_readableTo, elementCount( size )) - - /* - __byte_readableTo(size) - - Annotates a buffer pointer p as being readable to size bytes. - */ - #define __byte_readableTo(size) _SA_annotes1(SAL_readableTo, byteCount(size)) - - /* - __writableTo(extent) p - - Annotates a buffer pointer p. If the buffer can be modified, extent - describes how much of the buffer is writable (usually the allocation - size). For a writer of the buffer, this is an explicit permission to - write up to that amount, rather than a restriction to write only up to it. - */ - #define __writableTo(size) _SA_annotes1(SAL_writableTo, size) - - /* - __elem_writableTo(size) - - Annotates a buffer pointer p as being writable to size elements. - */ - #define __elem_writableTo(size) _SA_annotes1(SAL_writableTo, elementCount( size )) - - /* - __byte_writableTo(size) - - Annotates a buffer pointer p as being writable to size bytes. - */ - #define __byte_writableTo(size) _SA_annotes1(SAL_writableTo, byteCount( size)) - - /* - __deref p - - Annotates a pointer p. The next annotation applies one dereference down - in the type. If readableTo(p, size) then the next annotation applies to - all elements *(p+i) for which i satisfies the size. If p is a pointer - to a struct, the next annotation applies to all fields of the struct. - */ - #define __deref _Deref_impl_ - - /* - __pre __next_annotation - - The next annotation applies in the precondition state - */ - #define __pre _Pre_impl_ - - /* - __post __next_annotation - - The next annotation applies in the postcondition state - */ - #define __post _Post_impl_ - - /* - __precond() - - When is true, the next annotation applies in the precondition state - (currently not enabled) - */ - #define __precond(expr) __pre - - /* - __postcond() - - When is true, the next annotation applies in the postcondition state - (currently not enabled) - */ - #define __postcond(expr) __post - - /* - __exceptthat - - Given a set of annotations Q containing __exceptthat maybeP, the effect of - the except clause is to erase any P or notP annotations (explicit or - implied) within Q at the same level of dereferencing that the except - clause appears, and to replace it with maybeP. - - Example 1: __valid __pre_except_maybenull on a pointer p means that the - pointer may be null, and is otherwise valid, thus overriding - the implicit notnull annotation implied by __valid on - pointers. - - Example 2: __valid __deref __pre_except_maybenull on an int **p means - that p is not null (implied by valid), but the elements - pointed to by p could be null, and are otherwise valid. - */ - #define __exceptthat __inner_exceptthat - - /* - _refparam - - Added to all out parameter macros to indicate that they are all reference - parameters. - */ - #define __refparam _Notref_ __deref __notreadonly - - /* - __inner_* - - Helper macros that directly correspond to certain high-level annotations. - - */ - - /* - Macros to classify the entrypoints and indicate their category. - - Pre-defined control point categories include: RPC, LPC, DeviceDriver, UserToKernel, ISAPI, COM. - - */ - #define __inner_control_entrypoint(category) _SA_annotes2(SAL_entrypoint, controlEntry, category) - - - /* - Pre-defined data entry point categories include: Registry, File, Network. - */ - #define __inner_data_entrypoint(category) _SA_annotes2(SAL_entrypoint, dataEntry, category) - - #define __inner_override _SA_annotes0(__override) - #define __inner_callback _SA_annotes0(__callback) - #define __inner_blocksOn(resource) _SA_annotes1(SAL_blocksOn, resource) - #define __inner_fallthrough_dec __inline __nothrow void __FallThrough() {} - #define __inner_fallthrough __FallThrough(); - - #define __post_except_maybenull __post __inner_exceptthat _Maybenull_impl_ - #define __pre_except_maybenull __pre __inner_exceptthat _Maybenull_impl_ - - #define __post_deref_except_maybenull __post __deref __inner_exceptthat _Maybenull_impl_ - #define __pre_deref_except_maybenull __pre __deref __inner_exceptthat _Maybenull_impl_ - - #define __inexpressible_readableTo(size) _Readable_elements_impl_(_Inexpressible_(size)) - #define __inexpressible_writableTo(size) _Writable_elements_impl_(_Inexpressible_(size)) - - -#else // ][ - #define __null - #define __notnull - #define __maybenull - #define __readonly - #define __notreadonly - #define __maybereadonly - #define __valid - #define __notvalid - #define __maybevalid - #define __readableTo(extent) - #define __elem_readableTo(size) - #define __byte_readableTo(size) - #define __writableTo(size) - #define __elem_writableTo(size) - #define __byte_writableTo(size) - #define __deref - #define __pre - #define __post - #define __precond(expr) - #define __postcond(expr) - #define __exceptthat - #define __inner_override - #define __inner_callback - #define __inner_blocksOn(resource) - #define __inner_fallthrough_dec - #define __inner_fallthrough - #define __refparam - #define __inner_control_entrypoint(category) - #define __inner_data_entrypoint(category) - - #define __post_except_maybenull - #define __pre_except_maybenull - #define __post_deref_except_maybenull - #define __pre_deref_except_maybenull - - #define __inexpressible_readableTo(size) - #define __inexpressible_writableTo(size) - -#endif /* !defined(__midl) && defined(_PREFAST_) */ // ] - -/* -------------------------------------------------------------------------------- -Buffer Annotation Definitions - -Any of these may be used to directly annotate functions, but only one should -be used for each parameter. To determine which annotation to use for a given -buffer, use the table in the buffer annotations section. -------------------------------------------------------------------------------- -*/ - -#define __ecount(size) _SAL1_Source_(__ecount, (size), __notnull __elem_writableTo(size)) -#define __bcount(size) _SAL1_Source_(__bcount, (size), __notnull __byte_writableTo(size)) -#define __in _SAL1_Source_(__in, (), _In_) -#define __in_ecount(size) _SAL1_Source_(__in_ecount, (size), _In_reads_(size)) -#define __in_bcount(size) _SAL1_Source_(__in_bcount, (size), _In_reads_bytes_(size)) -#define __in_z _SAL1_Source_(__in_z, (), _In_z_) -#define __in_ecount_z(size) _SAL1_Source_(__in_ecount_z, (size), _In_reads_z_(size)) -#define __in_bcount_z(size) _SAL1_Source_(__in_bcount_z, (size), __in_bcount(size) __pre __nullterminated) -#define __in_nz _SAL1_Source_(__in_nz, (), __in) -#define __in_ecount_nz(size) _SAL1_Source_(__in_ecount_nz, (size), __in_ecount(size)) -#define __in_bcount_nz(size) _SAL1_Source_(__in_bcount_nz, (size), __in_bcount(size)) -#define __out _SAL1_Source_(__out, (), _Out_) -#define __out_ecount(size) _SAL1_Source_(__out_ecount, (size), _Out_writes_(size)) -#define __out_bcount(size) _SAL1_Source_(__out_bcount, (size), _Out_writes_bytes_(size)) -#define __out_ecount_part(size,length) _SAL1_Source_(__out_ecount_part, (size,length), _Out_writes_to_(size,length)) -#define __out_bcount_part(size,length) _SAL1_Source_(__out_bcount_part, (size,length), _Out_writes_bytes_to_(size,length)) -#define __out_ecount_full(size) _SAL1_Source_(__out_ecount_full, (size), _Out_writes_all_(size)) -#define __out_bcount_full(size) _SAL1_Source_(__out_bcount_full, (size), _Out_writes_bytes_all_(size)) -#define __out_z _SAL1_Source_(__out_z, (), __post __valid __refparam __post __nullterminated) -#define __out_z_opt _SAL1_Source_(__out_z_opt, (), __post __valid __refparam __post __nullterminated __pre_except_maybenull) -#define __out_ecount_z(size) _SAL1_Source_(__out_ecount_z, (size), __ecount(size) __post __valid __refparam __post __nullterminated) -#define __out_bcount_z(size) _SAL1_Source_(__out_bcount_z, (size), __bcount(size) __post __valid __refparam __post __nullterminated) -#define __out_ecount_part_z(size,length) _SAL1_Source_(__out_ecount_part_z, (size,length), __out_ecount_part(size,length) __post __nullterminated) -#define __out_bcount_part_z(size,length) _SAL1_Source_(__out_bcount_part_z, (size,length), __out_bcount_part(size,length) __post __nullterminated) -#define __out_ecount_full_z(size) _SAL1_Source_(__out_ecount_full_z, (size), __out_ecount_full(size) __post __nullterminated) -#define __out_bcount_full_z(size) _SAL1_Source_(__out_bcount_full_z, (size), __out_bcount_full(size) __post __nullterminated) -#define __out_nz _SAL1_Source_(__out_nz, (), __post __valid __refparam) -#define __out_nz_opt _SAL1_Source_(__out_nz_opt, (), __post __valid __refparam __post_except_maybenull_) -#define __out_ecount_nz(size) _SAL1_Source_(__out_ecount_nz, (size), __ecount(size) __post __valid __refparam) -#define __out_bcount_nz(size) _SAL1_Source_(__out_bcount_nz, (size), __bcount(size) __post __valid __refparam) -#define __inout _SAL1_Source_(__inout, (), _Inout_) -#define __inout_ecount(size) _SAL1_Source_(__inout_ecount, (size), _Inout_updates_(size)) -#define __inout_bcount(size) _SAL1_Source_(__inout_bcount, (size), _Inout_updates_bytes_(size)) -#define __inout_ecount_part(size,length) _SAL1_Source_(__inout_ecount_part, (size,length), _Inout_updates_to_(size,length)) -#define __inout_bcount_part(size,length) _SAL1_Source_(__inout_bcount_part, (size,length), _Inout_updates_bytes_to_(size,length)) -#define __inout_ecount_full(size) _SAL1_Source_(__inout_ecount_full, (size), _Inout_updates_all_(size)) -#define __inout_bcount_full(size) _SAL1_Source_(__inout_bcount_full, (size), _Inout_updates_bytes_all_(size)) -#define __inout_z _SAL1_Source_(__inout_z, (), _Inout_z_) -#define __inout_ecount_z(size) _SAL1_Source_(__inout_ecount_z, (size), _Inout_updates_z_(size)) -#define __inout_bcount_z(size) _SAL1_Source_(__inout_bcount_z, (size), __inout_bcount(size) __pre __nullterminated __post __nullterminated) -#define __inout_nz _SAL1_Source_(__inout_nz, (), __inout) -#define __inout_ecount_nz(size) _SAL1_Source_(__inout_ecount_nz, (size), __inout_ecount(size)) -#define __inout_bcount_nz(size) _SAL1_Source_(__inout_bcount_nz, (size), __inout_bcount(size)) -#define __ecount_opt(size) _SAL1_Source_(__ecount_opt, (size), __ecount(size) __pre_except_maybenull) -#define __bcount_opt(size) _SAL1_Source_(__bcount_opt, (size), __bcount(size) __pre_except_maybenull) -#define __in_opt _SAL1_Source_(__in_opt, (), _In_opt_) -#define __in_ecount_opt(size) _SAL1_Source_(__in_ecount_opt, (size), _In_reads_opt_(size)) -#define __in_bcount_opt(size) _SAL1_Source_(__in_bcount_opt, (size), _In_reads_bytes_opt_(size)) -#define __in_z_opt _SAL1_Source_(__in_z_opt, (), _In_opt_z_) -#define __in_ecount_z_opt(size) _SAL1_Source_(__in_ecount_z_opt, (size), __in_ecount_opt(size) __pre __nullterminated) -#define __in_bcount_z_opt(size) _SAL1_Source_(__in_bcount_z_opt, (size), __in_bcount_opt(size) __pre __nullterminated) -#define __in_nz_opt _SAL1_Source_(__in_nz_opt, (), __in_opt) -#define __in_ecount_nz_opt(size) _SAL1_Source_(__in_ecount_nz_opt, (size), __in_ecount_opt(size)) -#define __in_bcount_nz_opt(size) _SAL1_Source_(__in_bcount_nz_opt, (size), __in_bcount_opt(size)) -#define __out_opt _SAL1_Source_(__out_opt, (), _Out_opt_) -#define __out_ecount_opt(size) _SAL1_Source_(__out_ecount_opt, (size), _Out_writes_opt_(size)) -#define __out_bcount_opt(size) _SAL1_Source_(__out_bcount_opt, (size), _Out_writes_bytes_opt_(size)) -#define __out_ecount_part_opt(size,length) _SAL1_Source_(__out_ecount_part_opt, (size,length), __out_ecount_part(size,length) __pre_except_maybenull) -#define __out_bcount_part_opt(size,length) _SAL1_Source_(__out_bcount_part_opt, (size,length), __out_bcount_part(size,length) __pre_except_maybenull) -#define __out_ecount_full_opt(size) _SAL1_Source_(__out_ecount_full_opt, (size), __out_ecount_full(size) __pre_except_maybenull) -#define __out_bcount_full_opt(size) _SAL1_Source_(__out_bcount_full_opt, (size), __out_bcount_full(size) __pre_except_maybenull) -#define __out_ecount_z_opt(size) _SAL1_Source_(__out_ecount_z_opt, (size), __out_ecount_opt(size) __post __nullterminated) -#define __out_bcount_z_opt(size) _SAL1_Source_(__out_bcount_z_opt, (size), __out_bcount_opt(size) __post __nullterminated) -#define __out_ecount_part_z_opt(size,length) _SAL1_Source_(__out_ecount_part_z_opt, (size,length), __out_ecount_part_opt(size,length) __post __nullterminated) -#define __out_bcount_part_z_opt(size,length) _SAL1_Source_(__out_bcount_part_z_opt, (size,length), __out_bcount_part_opt(size,length) __post __nullterminated) -#define __out_ecount_full_z_opt(size) _SAL1_Source_(__out_ecount_full_z_opt, (size), __out_ecount_full_opt(size) __post __nullterminated) -#define __out_bcount_full_z_opt(size) _SAL1_Source_(__out_bcount_full_z_opt, (size), __out_bcount_full_opt(size) __post __nullterminated) -#define __out_ecount_nz_opt(size) _SAL1_Source_(__out_ecount_nz_opt, (size), __out_ecount_opt(size) __post __nullterminated) -#define __out_bcount_nz_opt(size) _SAL1_Source_(__out_bcount_nz_opt, (size), __out_bcount_opt(size) __post __nullterminated) -#define __inout_opt _SAL1_Source_(__inout_opt, (), _Inout_opt_) -#define __inout_ecount_opt(size) _SAL1_Source_(__inout_ecount_opt, (size), __inout_ecount(size) __pre_except_maybenull) -#define __inout_bcount_opt(size) _SAL1_Source_(__inout_bcount_opt, (size), __inout_bcount(size) __pre_except_maybenull) -#define __inout_ecount_part_opt(size,length) _SAL1_Source_(__inout_ecount_part_opt, (size,length), __inout_ecount_part(size,length) __pre_except_maybenull) -#define __inout_bcount_part_opt(size,length) _SAL1_Source_(__inout_bcount_part_opt, (size,length), __inout_bcount_part(size,length) __pre_except_maybenull) -#define __inout_ecount_full_opt(size) _SAL1_Source_(__inout_ecount_full_opt, (size), __inout_ecount_full(size) __pre_except_maybenull) -#define __inout_bcount_full_opt(size) _SAL1_Source_(__inout_bcount_full_opt, (size), __inout_bcount_full(size) __pre_except_maybenull) -#define __inout_z_opt _SAL1_Source_(__inout_z_opt, (), __inout_opt __pre __nullterminated __post __nullterminated) -#define __inout_ecount_z_opt(size) _SAL1_Source_(__inout_ecount_z_opt, (size), __inout_ecount_opt(size) __pre __nullterminated __post __nullterminated) -#define __inout_ecount_z_opt(size) _SAL1_Source_(__inout_ecount_z_opt, (size), __inout_ecount_opt(size) __pre __nullterminated __post __nullterminated) -#define __inout_bcount_z_opt(size) _SAL1_Source_(__inout_bcount_z_opt, (size), __inout_bcount_opt(size)) -#define __inout_nz_opt _SAL1_Source_(__inout_nz_opt, (), __inout_opt) -#define __inout_ecount_nz_opt(size) _SAL1_Source_(__inout_ecount_nz_opt, (size), __inout_ecount_opt(size)) -#define __inout_bcount_nz_opt(size) _SAL1_Source_(__inout_bcount_nz_opt, (size), __inout_bcount_opt(size)) -#define __deref_ecount(size) _SAL1_Source_(__deref_ecount, (size), _Notref_ __ecount(1) __post _Notref_ __elem_readableTo(1) __post _Notref_ __deref _Notref_ __notnull __post __deref __elem_writableTo(size)) -#define __deref_bcount(size) _SAL1_Source_(__deref_bcount, (size), _Notref_ __ecount(1) __post _Notref_ __elem_readableTo(1) __post _Notref_ __deref _Notref_ __notnull __post __deref __byte_writableTo(size)) -#define __deref_out _SAL1_Source_(__deref_out, (), _Outptr_) -#define __deref_out_ecount(size) _SAL1_Source_(__deref_out_ecount, (size), _Outptr_result_buffer_(size)) -#define __deref_out_bcount(size) _SAL1_Source_(__deref_out_bcount, (size), _Outptr_result_bytebuffer_(size)) -#define __deref_out_ecount_part(size,length) _SAL1_Source_(__deref_out_ecount_part, (size,length), _Outptr_result_buffer_to_(size,length)) -#define __deref_out_bcount_part(size,length) _SAL1_Source_(__deref_out_bcount_part, (size,length), _Outptr_result_bytebuffer_to_(size,length)) -#define __deref_out_ecount_full(size) _SAL1_Source_(__deref_out_ecount_full, (size), __deref_out_ecount_part(size,size)) -#define __deref_out_bcount_full(size) _SAL1_Source_(__deref_out_bcount_full, (size), __deref_out_bcount_part(size,size)) -#define __deref_out_z _SAL1_Source_(__deref_out_z, (), _Outptr_result_z_) -#define __deref_out_ecount_z(size) _SAL1_Source_(__deref_out_ecount_z, (size), __deref_out_ecount(size) __post __deref __nullterminated) -#define __deref_out_bcount_z(size) _SAL1_Source_(__deref_out_bcount_z, (size), __deref_out_bcount(size) __post __deref __nullterminated) -#define __deref_out_nz _SAL1_Source_(__deref_out_nz, (), __deref_out) -#define __deref_out_ecount_nz(size) _SAL1_Source_(__deref_out_ecount_nz, (size), __deref_out_ecount(size)) -#define __deref_out_bcount_nz(size) _SAL1_Source_(__deref_out_bcount_nz, (size), __deref_out_ecount(size)) -#define __deref_inout _SAL1_Source_(__deref_inout, (), _Notref_ __notnull _Notref_ __elem_readableTo(1) __pre __deref __valid __post _Notref_ __deref __valid __refparam) -#define __deref_inout_z _SAL1_Source_(__deref_inout_z, (), __deref_inout __pre __deref __nullterminated __post _Notref_ __deref __nullterminated) -#define __deref_inout_ecount(size) _SAL1_Source_(__deref_inout_ecount, (size), __deref_inout __pre __deref __elem_writableTo(size) __post _Notref_ __deref __elem_writableTo(size)) -#define __deref_inout_bcount(size) _SAL1_Source_(__deref_inout_bcount, (size), __deref_inout __pre __deref __byte_writableTo(size) __post _Notref_ __deref __byte_writableTo(size)) -#define __deref_inout_ecount_part(size,length) _SAL1_Source_(__deref_inout_ecount_part, (size,length), __deref_inout_ecount(size) __pre __deref __elem_readableTo(length) __post __deref __elem_readableTo(length)) -#define __deref_inout_bcount_part(size,length) _SAL1_Source_(__deref_inout_bcount_part, (size,length), __deref_inout_bcount(size) __pre __deref __byte_readableTo(length) __post __deref __byte_readableTo(length)) -#define __deref_inout_ecount_full(size) _SAL1_Source_(__deref_inout_ecount_full, (size), __deref_inout_ecount_part(size,size)) -#define __deref_inout_bcount_full(size) _SAL1_Source_(__deref_inout_bcount_full, (size), __deref_inout_bcount_part(size,size)) -#define __deref_inout_ecount_z(size) _SAL1_Source_(__deref_inout_ecount_z, (size), __deref_inout_ecount(size) __pre __deref __nullterminated __post __deref __nullterminated) -#define __deref_inout_bcount_z(size) _SAL1_Source_(__deref_inout_bcount_z, (size), __deref_inout_bcount(size) __pre __deref __nullterminated __post __deref __nullterminated) -#define __deref_inout_nz _SAL1_Source_(__deref_inout_nz, (), __deref_inout) -#define __deref_inout_ecount_nz(size) _SAL1_Source_(__deref_inout_ecount_nz, (size), __deref_inout_ecount(size)) -#define __deref_inout_bcount_nz(size) _SAL1_Source_(__deref_inout_bcount_nz, (size), __deref_inout_ecount(size)) -#define __deref_ecount_opt(size) _SAL1_Source_(__deref_ecount_opt, (size), __deref_ecount(size) __post_deref_except_maybenull) -#define __deref_bcount_opt(size) _SAL1_Source_(__deref_bcount_opt, (size), __deref_bcount(size) __post_deref_except_maybenull) -#define __deref_out_opt _SAL1_Source_(__deref_out_opt, (), __deref_out __post_deref_except_maybenull) -#define __deref_out_ecount_opt(size) _SAL1_Source_(__deref_out_ecount_opt, (size), __deref_out_ecount(size) __post_deref_except_maybenull) -#define __deref_out_bcount_opt(size) _SAL1_Source_(__deref_out_bcount_opt, (size), __deref_out_bcount(size) __post_deref_except_maybenull) -#define __deref_out_ecount_part_opt(size,length) _SAL1_Source_(__deref_out_ecount_part_opt, (size,length), __deref_out_ecount_part(size,length) __post_deref_except_maybenull) -#define __deref_out_bcount_part_opt(size,length) _SAL1_Source_(__deref_out_bcount_part_opt, (size,length), __deref_out_bcount_part(size,length) __post_deref_except_maybenull) -#define __deref_out_ecount_full_opt(size) _SAL1_Source_(__deref_out_ecount_full_opt, (size), __deref_out_ecount_full(size) __post_deref_except_maybenull) -#define __deref_out_bcount_full_opt(size) _SAL1_Source_(__deref_out_bcount_full_opt, (size), __deref_out_bcount_full(size) __post_deref_except_maybenull) -#define __deref_out_z_opt _SAL1_Source_(__deref_out_z_opt, (), _Outptr_result_maybenull_z_) -#define __deref_out_ecount_z_opt(size) _SAL1_Source_(__deref_out_ecount_z_opt, (size), __deref_out_ecount_opt(size) __post __deref __nullterminated) -#define __deref_out_bcount_z_opt(size) _SAL1_Source_(__deref_out_bcount_z_opt, (size), __deref_out_bcount_opt(size) __post __deref __nullterminated) -#define __deref_out_nz_opt _SAL1_Source_(__deref_out_nz_opt, (), __deref_out_opt) -#define __deref_out_ecount_nz_opt(size) _SAL1_Source_(__deref_out_ecount_nz_opt, (size), __deref_out_ecount_opt(size)) -#define __deref_out_bcount_nz_opt(size) _SAL1_Source_(__deref_out_bcount_nz_opt, (size), __deref_out_bcount_opt(size)) -#define __deref_inout_opt _SAL1_Source_(__deref_inout_opt, (), __deref_inout __pre_deref_except_maybenull __post_deref_except_maybenull) -#define __deref_inout_ecount_opt(size) _SAL1_Source_(__deref_inout_ecount_opt, (size), __deref_inout_ecount(size) __pre_deref_except_maybenull __post_deref_except_maybenull) -#define __deref_inout_bcount_opt(size) _SAL1_Source_(__deref_inout_bcount_opt, (size), __deref_inout_bcount(size) __pre_deref_except_maybenull __post_deref_except_maybenull) -#define __deref_inout_ecount_part_opt(size,length) _SAL1_Source_(__deref_inout_ecount_part_opt, (size,length), __deref_inout_ecount_part(size,length) __pre_deref_except_maybenull __post_deref_except_maybenull) -#define __deref_inout_bcount_part_opt(size,length) _SAL1_Source_(__deref_inout_bcount_part_opt, (size,length), __deref_inout_bcount_part(size,length) __pre_deref_except_maybenull __post_deref_except_maybenull) -#define __deref_inout_ecount_full_opt(size) _SAL1_Source_(__deref_inout_ecount_full_opt, (size), __deref_inout_ecount_full(size) __pre_deref_except_maybenull __post_deref_except_maybenull) -#define __deref_inout_bcount_full_opt(size) _SAL1_Source_(__deref_inout_bcount_full_opt, (size), __deref_inout_bcount_full(size) __pre_deref_except_maybenull __post_deref_except_maybenull) -#define __deref_inout_z_opt _SAL1_Source_(__deref_inout_z_opt, (), __deref_inout_opt __pre __deref __nullterminated __post __deref __nullterminated) -#define __deref_inout_ecount_z_opt(size) _SAL1_Source_(__deref_inout_ecount_z_opt, (size), __deref_inout_ecount_opt(size) __pre __deref __nullterminated __post __deref __nullterminated) -#define __deref_inout_bcount_z_opt(size) _SAL1_Source_(__deref_inout_bcount_z_opt, (size), __deref_inout_bcount_opt(size) __pre __deref __nullterminated __post __deref __nullterminated) -#define __deref_inout_nz_opt _SAL1_Source_(__deref_inout_nz_opt, (), __deref_inout_opt) -#define __deref_inout_ecount_nz_opt(size) _SAL1_Source_(__deref_inout_ecount_nz_opt, (size), __deref_inout_ecount_opt(size)) -#define __deref_inout_bcount_nz_opt(size) _SAL1_Source_(__deref_inout_bcount_nz_opt, (size), __deref_inout_bcount_opt(size)) -#define __deref_opt_ecount(size) _SAL1_Source_(__deref_opt_ecount, (size), __deref_ecount(size) __pre_except_maybenull) -#define __deref_opt_bcount(size) _SAL1_Source_(__deref_opt_bcount, (size), __deref_bcount(size) __pre_except_maybenull) -#define __deref_opt_out _SAL1_Source_(__deref_opt_out, (), _Outptr_opt_) -#define __deref_opt_out_z _SAL1_Source_(__deref_opt_out_z, (), _Outptr_opt_result_z_) -#define __deref_opt_out_ecount(size) _SAL1_Source_(__deref_opt_out_ecount, (size), __deref_out_ecount(size) __pre_except_maybenull) -#define __deref_opt_out_bcount(size) _SAL1_Source_(__deref_opt_out_bcount, (size), __deref_out_bcount(size) __pre_except_maybenull) -#define __deref_opt_out_ecount_part(size,length) _SAL1_Source_(__deref_opt_out_ecount_part, (size,length), __deref_out_ecount_part(size,length) __pre_except_maybenull) -#define __deref_opt_out_bcount_part(size,length) _SAL1_Source_(__deref_opt_out_bcount_part, (size,length), __deref_out_bcount_part(size,length) __pre_except_maybenull) -#define __deref_opt_out_ecount_full(size) _SAL1_Source_(__deref_opt_out_ecount_full, (size), __deref_out_ecount_full(size) __pre_except_maybenull) -#define __deref_opt_out_bcount_full(size) _SAL1_Source_(__deref_opt_out_bcount_full, (size), __deref_out_bcount_full(size) __pre_except_maybenull) -#define __deref_opt_inout _SAL1_Source_(__deref_opt_inout, (), _Inout_opt_) -#define __deref_opt_inout_ecount(size) _SAL1_Source_(__deref_opt_inout_ecount, (size), __deref_inout_ecount(size) __pre_except_maybenull) -#define __deref_opt_inout_bcount(size) _SAL1_Source_(__deref_opt_inout_bcount, (size), __deref_inout_bcount(size) __pre_except_maybenull) -#define __deref_opt_inout_ecount_part(size,length) _SAL1_Source_(__deref_opt_inout_ecount_part, (size,length), __deref_inout_ecount_part(size,length) __pre_except_maybenull) -#define __deref_opt_inout_bcount_part(size,length) _SAL1_Source_(__deref_opt_inout_bcount_part, (size,length), __deref_inout_bcount_part(size,length) __pre_except_maybenull) -#define __deref_opt_inout_ecount_full(size) _SAL1_Source_(__deref_opt_inout_ecount_full, (size), __deref_inout_ecount_full(size) __pre_except_maybenull) -#define __deref_opt_inout_bcount_full(size) _SAL1_Source_(__deref_opt_inout_bcount_full, (size), __deref_inout_bcount_full(size) __pre_except_maybenull) -#define __deref_opt_inout_z _SAL1_Source_(__deref_opt_inout_z, (), __deref_opt_inout __pre __deref __nullterminated __post __deref __nullterminated) -#define __deref_opt_inout_ecount_z(size) _SAL1_Source_(__deref_opt_inout_ecount_z, (size), __deref_opt_inout_ecount(size) __pre __deref __nullterminated __post __deref __nullterminated) -#define __deref_opt_inout_bcount_z(size) _SAL1_Source_(__deref_opt_inout_bcount_z, (size), __deref_opt_inout_bcount(size) __pre __deref __nullterminated __post __deref __nullterminated) -#define __deref_opt_inout_nz _SAL1_Source_(__deref_opt_inout_nz, (), __deref_opt_inout) -#define __deref_opt_inout_ecount_nz(size) _SAL1_Source_(__deref_opt_inout_ecount_nz, (size), __deref_opt_inout_ecount(size)) -#define __deref_opt_inout_bcount_nz(size) _SAL1_Source_(__deref_opt_inout_bcount_nz, (size), __deref_opt_inout_bcount(size)) -#define __deref_opt_ecount_opt(size) _SAL1_Source_(__deref_opt_ecount_opt, (size), __deref_ecount_opt(size) __pre_except_maybenull) -#define __deref_opt_bcount_opt(size) _SAL1_Source_(__deref_opt_bcount_opt, (size), __deref_bcount_opt(size) __pre_except_maybenull) -#define __deref_opt_out_opt _SAL1_Source_(__deref_opt_out_opt, (), _Outptr_opt_result_maybenull_) -#define __deref_opt_out_ecount_opt(size) _SAL1_Source_(__deref_opt_out_ecount_opt, (size), __deref_out_ecount_opt(size) __pre_except_maybenull) -#define __deref_opt_out_bcount_opt(size) _SAL1_Source_(__deref_opt_out_bcount_opt, (size), __deref_out_bcount_opt(size) __pre_except_maybenull) -#define __deref_opt_out_ecount_part_opt(size,length) _SAL1_Source_(__deref_opt_out_ecount_part_opt, (size,length), __deref_out_ecount_part_opt(size,length) __pre_except_maybenull) -#define __deref_opt_out_bcount_part_opt(size,length) _SAL1_Source_(__deref_opt_out_bcount_part_opt, (size,length), __deref_out_bcount_part_opt(size,length) __pre_except_maybenull) -#define __deref_opt_out_ecount_full_opt(size) _SAL1_Source_(__deref_opt_out_ecount_full_opt, (size), __deref_out_ecount_full_opt(size) __pre_except_maybenull) -#define __deref_opt_out_bcount_full_opt(size) _SAL1_Source_(__deref_opt_out_bcount_full_opt, (size), __deref_out_bcount_full_opt(size) __pre_except_maybenull) -#define __deref_opt_out_z_opt _SAL1_Source_(__deref_opt_out_z_opt, (), __post __deref __valid __refparam __pre_except_maybenull __pre_deref_except_maybenull __post_deref_except_maybenull __post __deref __nullterminated) -#define __deref_opt_out_ecount_z_opt(size) _SAL1_Source_(__deref_opt_out_ecount_z_opt, (size), __deref_opt_out_ecount_opt(size) __post __deref __nullterminated) -#define __deref_opt_out_bcount_z_opt(size) _SAL1_Source_(__deref_opt_out_bcount_z_opt, (size), __deref_opt_out_bcount_opt(size) __post __deref __nullterminated) -#define __deref_opt_out_nz_opt _SAL1_Source_(__deref_opt_out_nz_opt, (), __deref_opt_out_opt) -#define __deref_opt_out_ecount_nz_opt(size) _SAL1_Source_(__deref_opt_out_ecount_nz_opt, (size), __deref_opt_out_ecount_opt(size)) -#define __deref_opt_out_bcount_nz_opt(size) _SAL1_Source_(__deref_opt_out_bcount_nz_opt, (size), __deref_opt_out_bcount_opt(size)) -#define __deref_opt_inout_opt _SAL1_Source_(__deref_opt_inout_opt, (), __deref_inout_opt __pre_except_maybenull) -#define __deref_opt_inout_ecount_opt(size) _SAL1_Source_(__deref_opt_inout_ecount_opt, (size), __deref_inout_ecount_opt(size) __pre_except_maybenull) -#define __deref_opt_inout_bcount_opt(size) _SAL1_Source_(__deref_opt_inout_bcount_opt, (size), __deref_inout_bcount_opt(size) __pre_except_maybenull) -#define __deref_opt_inout_ecount_part_opt(size,length) _SAL1_Source_(__deref_opt_inout_ecount_part_opt, (size,length), __deref_inout_ecount_part_opt(size,length) __pre_except_maybenull) -#define __deref_opt_inout_bcount_part_opt(size,length) _SAL1_Source_(__deref_opt_inout_bcount_part_opt, (size,length), __deref_inout_bcount_part_opt(size,length) __pre_except_maybenull) -#define __deref_opt_inout_ecount_full_opt(size) _SAL1_Source_(__deref_opt_inout_ecount_full_opt, (size), __deref_inout_ecount_full_opt(size) __pre_except_maybenull) -#define __deref_opt_inout_bcount_full_opt(size) _SAL1_Source_(__deref_opt_inout_bcount_full_opt, (size), __deref_inout_bcount_full_opt(size) __pre_except_maybenull) -#define __deref_opt_inout_z_opt _SAL1_Source_(__deref_opt_inout_z_opt, (), __deref_opt_inout_opt __pre __deref __nullterminated __post __deref __nullterminated) -#define __deref_opt_inout_ecount_z_opt(size) _SAL1_Source_(__deref_opt_inout_ecount_z_opt, (size), __deref_opt_inout_ecount_opt(size) __pre __deref __nullterminated __post __deref __nullterminated) -#define __deref_opt_inout_bcount_z_opt(size) _SAL1_Source_(__deref_opt_inout_bcount_z_opt, (size), __deref_opt_inout_bcount_opt(size) __pre __deref __nullterminated __post __deref __nullterminated) -#define __deref_opt_inout_nz_opt _SAL1_Source_(__deref_opt_inout_nz_opt, (), __deref_opt_inout_opt) -#define __deref_opt_inout_ecount_nz_opt(size) _SAL1_Source_(__deref_opt_inout_ecount_nz_opt, (size), __deref_opt_inout_ecount_opt(size)) -#define __deref_opt_inout_bcount_nz_opt(size) _SAL1_Source_(__deref_opt_inout_bcount_nz_opt, (size), __deref_opt_inout_bcount_opt(size)) - -/* -------------------------------------------------------------------------------- -Advanced Annotation Definitions - -Any of these may be used to directly annotate functions, and may be used in -combination with each other or with regular buffer macros. For an explanation -of each annotation, see the advanced annotations section. -------------------------------------------------------------------------------- -*/ - -#define __success(expr) _SAL1_1_Source_(__success, (expr), _Success_(expr)) -#define __nullterminated _SAL1_Source_(__nullterminated, (), _Null_terminated_) -#define __nullnullterminated _SAL1_Source_(__nullnulltermiated, (), _SAL_nop_impl_) -#define __reserved _SAL1_Source_(__reserved, (), _Reserved_) -#define __checkReturn _SAL1_Source_(__checkReturn, (), _Check_return_) -#define __typefix(ctype) _SAL1_Source_(__typefix, (ctype), __inner_typefix(ctype)) -#define __override __inner_override -#define __callback __inner_callback -#define __format_string _SAL1_1_Source_(__format_string, (), _Printf_format_string_) -#define __blocksOn(resource) _SAL_L_Source_(__blocksOn, (resource), __inner_blocksOn(resource)) -#define __control_entrypoint(category) _SAL_L_Source_(__control_entrypoint, (category), __inner_control_entrypoint(category)) -#define __data_entrypoint(category) _SAL_L_Source_(__data_entrypoint, (category), __inner_data_entrypoint(category)) - -#ifdef _USING_V110_SDK71_ // [ -#ifndef _PREFAST_ // [ -#define __useHeader -#else // ][ -#error Code analysis is not supported when using Visual C++ 11.0/12.0 with the Windows 7.1 SDK. -#endif // ] -#else // ][ -#define __useHeader _Use_decl_anno_impl_ -#endif // ] - -#ifdef _USING_V110_SDK71_ // [ -#ifndef _PREFAST_ // [ -#define __on_failure(annotes) -#else // ][ -#error Code analysis is not supported when using Visual C++ 11.0/12.0 with the Windows 7.1 SDK. -#endif // ] -#else // ][ -#define __on_failure(annotes) _SAL1_1_Source_(__on_failure, (annotes), _On_failure_impl_(annotes _SAL_nop_impl_)) -#endif // ] - -#ifndef __fallthrough // [ -#if (!defined(_MSVC_LANG) || _MSVC_LANG < 201703l) // [ - __inner_fallthrough_dec - #define __fallthrough __inner_fallthrough -#else // ][ - #define __fallthrough [[fallthrough]] -#endif // ] -#endif // ] - -#ifndef __analysis_assume // [ -#ifdef _PREFAST_ // [ -#define __analysis_assume(expr) __assume(expr) -#else // ][ -#define __analysis_assume(expr) -#endif // ] -#endif // ] - -#ifndef _Analysis_assume_ // [ -#ifdef _PREFAST_ // [ -#define _Analysis_assume_(expr) __assume(expr) -#else // ][ -#define _Analysis_assume_(expr) -#endif // ] -#endif // ] - -#define _Analysis_noreturn_ _SAL2_Source_(_Analysis_noreturn_, (), _SA_annotes0(SAL_terminates)) - -#ifdef _PREFAST_ // [ -__inline __nothrow -void __AnalysisAssumeNullterminated(_Post_ _Null_terminated_ const void *p); - -#define _Analysis_assume_nullterminated_(x) __AnalysisAssumeNullterminated(x) - -#else // ][ -#define _Analysis_assume_nullterminated_(x) -#endif // ] - -// -// Set the analysis mode (global flags to analysis). -// They take effect at the point of declaration; use at global scope -// as a declaration. -// - -// Synthesize a unique symbol. -#define ___MKID(x, y) x ## y -#define __MKID(x, y) ___MKID(x, y) -#define __GENSYM(x) __MKID(x, __COUNTER__) - -__ANNOTATION(SAL_analysisMode(__AuToQuOtE __In_impl_ char *mode);) - -#define _Analysis_mode_impl_(mode) _SAL2_Source_(_Analysis_mode_impl_, (mode), _SA_annotes1(SAL_analysisMode, #mode)) - -// -// Floating point warnings are only meaningful in kernel-mode on x86 -// so avoid reporting them on other platforms. -// -#ifndef _M_IX86 // [ - -#define _Analysis_mode_(mode) \ - __pragma(warning(disable: 28110 28111 28161 28162)) \ - typedef _Analysis_mode_impl_(mode) int \ - __GENSYM(__prefast_analysis_mode_flag); - -#else // ][ - -#define _Analysis_mode_(mode) \ - typedef _Analysis_mode_impl_(mode) int \ - __GENSYM(__prefast_analysis_mode_flag); - -#endif // ] - -// The following are predefined: -// _Analysis_operator_new_throw_ (operator new throws) -// _Analysis_operator_new_null_ (operator new returns null) -// _Analysis_operator_new_never_fails_ (operator new never fails) -// - -// Function class annotations. -__ANNOTATION(SAL_functionClassNew(__In_impl_ char*);) -__PRIMOP(int, _In_function_class_(__In_impl_ char*);) -#define _In_function_class_(x) _In_function_class_(#x) -#define _Called_from_function_class_(x) _In_function_class_(x) - -#define _Function_class_(x) _SAL2_Source_(_Function_class_, (x), _SA_annotes1(SAL_functionClassNew, _SA_SPECSTRIZE(x))) - -#define _Enum_is_bitflag_ _SAL2_Source_(_Enum_is_bitflag_, (), _SA_annotes0(SAL_enumIsBitflag)) -#define _Strict_type_match_ _SAL2_Source_(_Strict_type_match, (), _SA_annotes0(SAL_strictType2)) - -#define _Maybe_raises_SEH_exception_ _SAL2_Source_(_Maybe_raises_SEH_exception_, (x), _Pre_ _SA_annotes1(SAL_inTry,__yes)) -#define _Raises_SEH_exception_ _SAL2_Source_(_Raises_SEH_exception_, (x), _Maybe_raises_SEH_exception_ _Analysis_noreturn_) - -#ifdef __cplusplus // [ -} -#endif // ] - -#include diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@sal.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@sal.h.blob deleted file mode 100644 index eaa7f0f067a61eada5b75bbce629af7a3fa14145..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 195296 zcmb?E2Y6M*(kYaX&_o49#R#ZD1EC2Bi1Z>QNRg_SkOUG5H!+1~!3Lrtih?M16tSX$ zf(RluRO}rEZ1C(Tc2N%evopJAcK7VL_oDy%zGsHJduFHa?ChRBCnp`)*k{mtNl8gL zMWxdUbMm64(VRY|`Bl>jqm>moy-N!UbEXwX3-inKCRgT{Mk`873M+Dks9#$5E-8kN z&~Mr_cyM+}@uZym(rIPog%uU8^OKtAR8^GcOe&7%MjqId3)VeoJG$H>Ug+@X=)xkLNq4j(dbX#dEF z(Zhxh96GY!2-QBKZ|_mV`$D(K=$^xeLKkf5)3?{C{-O&4ks*DDjv5i^JG5u7!F~IP zp9l9G-oI~TbnfuMeX#%NfkXS`jvmpmLsF}O|3wi0@$sC|#nFP&85JEnXhpqzfCy@%vYE$mlpm^4{* z>w@C)M9sW)>7?@jTR|LbNv(jhRys-lZ+_NlMrrv};Jp=4U6@~4T0ZOaL$TsXRmCL* zNk^fxq6Z6S&1u(G*y-SSHinRH&e^?lMwXVAKztYh zVA~F@J9KE>{?vADI{ApE=a*N38BQw{C`8~%Y|Q-9vRVG1BBVH}oDSwVxgvf)o%?1b!^)P{^nHW zmsjRMXvnFYRaS_qNx%e!p+u`nN_@$M+MiD?&{|Sl!B%C_nt+@5mW%{i&nM1nekp{5 zawH@{PN(I~jO3LRPl+aMi6SgSB2%JO`9enq-?1en1Y0_Jaz$Zf>11EH7OU|^1vyE6 zRe5<~G=Ek_9xBNa*?$YNvjIO+7u&wUxqzL2&jkkyL4C5vemWHn+y;1wEq>t0RZPk;!!)ny_j;N934Xn}78v}nYg1>X%uUE67*P&LDcUrB6 zUM~DSKE0uLaz>KZCIfzlzg^&OFZkOB{tke@XTslM@OL=;9SeUW@b@D4dpZ2Q1^(We z(J(2=`!Mz31^bJe{k;B@yCcK%iYp2$A|v_^h!oDuFD$Es**pT-XLfUtA7qu8?jD)y ze~}SA2e*riD6J~bFN|clJ7;HR&1{*S85xo{Yf@pP+%;lmq-Qj*WL8CSMI;J7Qdw0V zjkHWkO7@m!)QA6fOHq(lBRT0{G7xz1gp^i0I&FUA)yRm-^5Xo;h=?H&dn@yc1pO!a z^aq#u@KMB4AyU z^NLHV$_s(4#=erY-?OC1K@R5s1d(kcZQ0nghk!oy80an6A0$!?$!J8iA)jDiW%M)A z+!bi zucTyBUj9@d`v{F}`Ku{s<6k}%K7wSg1q|3CqXi5|&}^yYKO1dW^mo0_)`6B`L0Mi5 z3ngPX^{X*}`42Um>MBA&a~Q5U4o8q0uEmV#x8I*wczXn0e{%6m7_9*_C*lG8n3XR8 zr3Gs=v?xD#DLg_C_z)|>M22E-24pqMXa-Us=yfTDt*JX-EG+Go0zxk;%%3_OgBg(4 zgh|sHOoI4dWb90u_K5Vw-U53>kCn#*MaO5H3=|Rcw4`XoyC2+g#}i9NMMJRb^ySekr8?k=f!WAh8>h7^`QN$cz({Xe>0q2O<(u4(SJEslg%aO ze)uVXAIf088`_QVmUN~jJO6l*XqD)^^7i{dV;)hir3X8J#V>c_^HKe zAQ&Q|1<|OAqFr1(2ReqCz7Rz?&jB<+)3?Zif6`EB*wui$Y8ht&cLaH@6?ZlM*?iA0 z<4!xl=1v+-eC~{n|DHPoO*nV5o5@`&aF>eQ5yaemGc>aM!BbjpvbnP+z|L`0hboT6 zTVkq1G~v8SqI}*Gn%t6s_vDNLpjm>v5~bO@*M0E&uT_t1v3ZvwRAw8>yWa0V@UEi? z=iSz8LcAvd?@7ozLCpIvxz%eg|0`pt&AVdS8J~ocVTTxD$#077t4h-tpR5dJI@EPU z;sPldOd5I91gqtRfeA_eOnCyW(RsF#;*p^*q!l{h)9}~KnlL0BOt0@9Ocw!AJ`98`TxfM@>(@2n7&ZjMj+Kd=w&%{aSbo9nvjj6vciJ z#s2i6APR!KE0icw=l3Zs`{LF;wkV{zs=*+K4i$yf_1}uZLK9OIR^PyoF+}kXh~gg< z1wkx|?GK&xR>j33AMB;X}mW_z&Rtk91L8B*-gJ4qv}t*Zw6d z=iaJwY-G{V*}!&3mzi7L!U+@nhnu;DCdfP3n_R||6lfp}WWNDlzoqvBz6kP8RD3=2 z!4Jp&(QHDkP`(6PPVY77nH`&}MA@31C|5KIhE8OnIqvfRXAsKIXx;>Q%au^RsTjO_ z#}%pH28AM|!KGx)wn-YZ4HFLiM?579F=#6oU$OrmT<-<0_oj;yH9=mv;`+$TPCnw} zYvw-`ptez16q9gLJG7`%Y669Z?k^Cz}oZ1*-2pKSj81{e|_MjLD@-9(ku(xo?(VrYP zYFJPV6jne2ZQ_NwSjtCP#FGFG6{dVWzFDG$f5zbYJK*}e^d6vmg1jQd^%p6>*1Yt} zd)nz-YuTeTeP?{Py2a)_oN)_Hkaw$tbDS8we*?UKgL42uUR3e^=IBA=w}18W1eYbZAF8X7n6S_kJiF?jzPc>fxCCy05ko_uSA$Lnr*z~)_sAnEd< zyldT%CgrC-&kBgmyM`vz;WhP#xO+^~{|ZF#6^ei$??R>iE$422`K8p+uy4Y(XE7Mb z8{FNQ%yAE=G8EtRH#YY)P%Nc~4-rG@yMW_en9LEx$z00;<43-oTKtmDv6$VPxni4O zHo>_)Rtkq`fKM^E=T=q1@h04Rfy0VKAQja zHHv7O0Hjm+<+y;QI=Y2RQ)tVrD+ijO!i-M-S_`?_30&<&^CO5e(7Fd_&3O5g2~AAC ze1^1LRWeT+gxXCj3;9B$eZ%j3>{yd* z>By>_6iA#2x85tZGGb~&M-!$D*~eGL|3?bB9YnGn6K8@rab8#}KXYT9ja8;lq>aWA zir(u#2t`K|CKTD{|5YfTfKWa`p%BDExpYs>O_vVO$uor_6{Gf|TzREoEUIHH(ZsTJ zYrHVgXx$tmQMCOxrAPFoZ6KpUf%O^Lk)&F6M9M?b zl>}s@&`236ME3eb8`Lr2e-zaRAgT{gR0MgiD0A9;addO}?wbcYMFnmTmK0dS7*gWU z;2TZ=NI*(}Cbkhd><7pBkCJ&0B=a7wa|rStQ<762M`K|O0Kr%r;%FN;72AS#Oo_MgAPOwygnj! z-e99iOaTd1)7}Jb-$aum$eW-Pbl>75r*)YbeNX3CF&fOaL4eq(Oex;qa8pAxz@e6H z%S_up+@W&r*Ma!gG3O@8tEPyrH?TwRvWER8>BLKAfu13b1Q$o_EWQcHWFnjc9w?Tg z!fgSf2vk93T5E3xqK&=`jK7R)B!aja)@0%Pn-7k9!LU*p&0{dmJ;JH-g%Qp;qj57% z?cqbjXM77Vz6BX4h#5ce&PjJ|JMq*bbd3|oODE5)UAA8G0ZmRVwhWFQ{*%4W|+|g8IEVf0(E?bUjT+*K!yoohNo}p zcxj#2Qo1UJjpYPxSGBec+UgRYbvM@*njq_Xu0?}jGOkSjPWAWm5`ER`VXcFe-IpF0v0=aismPpq)K6kYFS|R(={83w=0MiZk@T- zi#%$eM1=nTQP|i7V%UU}0zuvl%KqM&-{SVCl5W4pDF|6052Ve8EJUYxHW{ObZ~2Ktv&BN`qn+hYN}?q7c0YEFT%1QC?grB|*pYl^lka zR*FOawm|IuD30|Yj`djlB#4Vz-Cj8PhQgi2wM}u5k%o(d+T*zaN+*^$2u-5mC@d+Q z7O~kALcfJB0NtP+9@eeR&HjpGXG zj{;ARVuC>s@2C`fI3f4xS!>}|0Gdo$Bse#KQ95}dscF-PilB){D{G`+IM1bBFS!n% zR5f`rywO%!8ZqV%RN2G8-owZqL0&hdveRm{dh_t+qo<2^!?XcaNkNOm!S;U@dV*+l zvol&@87GHO)062_zVo?G-Yy50mt%M#NT%}1-rdk}H#QK24UMyEPFc~k)nQ5uihu3B zG9vAe$|*wEcIeg60ONQtiGC7m-+#g9UBJ#=>EgXKg1jzDwQC+Z|BsPZd@xb*r1^&| zZfllHG+15YE7;AQg(j$AtwZP-D2u>>Z8YaQf#*BXoC)$KE1p;Vw0`|9Q}$+AJgWk` z>8%FOsteMiaweCvhGq|gMt)qE?EgODRI#9;k)VEuMvogkh<$_qX|tNHH_?^dkK z2n1#YTx&H5;+k7S6<{*&)-uEh!BYD>$i?L(K9oX}cvN-Q?y zeJ0IAb~PBWgOZ`}-B-Hb;X3GzBB-)el|*ZI2&H(zb= zC1zWyF`K@njmur)^B03RMiasxc1VoLn}Eri(2EH21}G*w?J0h1=Eb*{6O+=s(W%vx zpao6AWS|Q&c}M}oiAFN15Q){B-B0nV`ox?MZv>WaM3xES13VqRJG%R;D_@r^%Q&XE z)dGj6Qf!T{O|;k;Dn&FQ+EmQ7jLFpvz|{>HBna|4C`C5G840kQCeJ!$0kXNSIPRV)mlEcsJUumcr7y^#9s-~u4#cWHHIp@Dz97`1f8cn&m z5Z=U6AFi+wRgelXgVExGF85df^e@0dCqZ6qMSs1ifBo4nZQI*?VT!l_QC!c$D|r7N z6l}^8|4oE?lcfpi;@?8Xc~hq4WzEPdkHXDxSp~%vqFmD@vt8%5ZQI~~+lv2or2oPN zGbS4UUxZIwNC7wWX!qtIjda}!5em1I_z%SZ2%qQ>iS+L~bi~*pkeWiNZE_xLCFZGH zc@X>LlDsJ`yNWwGX2KhnGc&|KlYlPBI9DbXPharTS^alj4G9ZiLYpIcv<+ z*};cgx4Y0dJljz+4;e6qXa4|V_yG^o5X3J8oOkfLAC}#m)B|-W=e*V=@1=qjWxftM|M7VUl($8cGH8g$ifxC1x{H5S#J=H# zM>08j8#sC!3(*Aed6%;Hqy1Vwy(U9fhe{H(;}oooL&*_b9wjA#XyPaX!_ktPq+|MNnd=siG1{uT0MdFCd7$ zbMovdvl^aQCs~nBq0B`(wftw&2~8;J8qpO%bOjPk(BIMl*1k9Dq_RlX#gb&8wXP** z%@h&@oni(eDVzw+p;wjzN#*HHL5>8yB1y_1=vHLDu<(TR7W0g?8Lknn7kdRI za^9on#4N+bkby?C481lY#*iaGiWXYvDgnky&_@aKIxEJ$u6_Kc^FIG+nX&p3u^{4L zOs<@$8HZJ&B2;@W#tbx)F@;FgezZR3K(W}I3T#eAHVN`ZDmIUMExY!no_E8QOB`;H zLoF2PEs1FjxsJi1@m4xUJTKsW7)7Q4cT=#&OprHRaraG~`E`EYUJfTKkqtAn;ZIKD zWB%ymOole)Nr$AI$w2;O41xrC$0+ib71vo(@89;Y7fQmQ-1drrC${;$lSe zo}ho_f+-lK4(GI<5A5V)rbQ6P!dG@bH1@^8`F)WcU?H8S8DJrt(C`)q3sMt;Ry2+X zkP}I70->3p&2oyFep~D7Hr)0h9O8#GT1HGfMW8vh-tr$DTSp_MiZ0;)PPmcWbAa4) z&{GNeMUs1VkKHZ1|FZ8HBp2y4CTW<&!le|}VoML`;RAccQKV-A&@%yzlOT1!@W@5? ze7Jbb#Et$c7ZwP@4*j`0a86GwA-G2vP1^4^d0e7kG|KPHHW&(tPl3u%3SQkz5GVb& zYs>OgsLLZ^Hb@iv*hKSuQVcc5CQ&(;@X6|-Zq*9%7Kl`gKC zm5>~%Ud7^eT}F@oS&n3{dSDD~hZn~Pc1iYn0QMgE3ciFS_MhiJ_}-nboqwBVl>YX( zme=^ENsWmr-qyE;MpryH!IUBKV>}JypE#e)0~?r!A&MX_D5k7hdi$Pp7k;7)R~F{9 z1*=Rkc$_#6CYx<$7>&+H;+_#>wwMFl&A~-1LA*#f``FUwufKAgC-fyQgopA}o_Q0! zW)03Rd||w>@9tn1-O(-x8Yk`IsNOF;xoG}@Klw&VFtj5$fU0{c1&(fjqZ=kl5|TJp zX5Ulut<#%D6s?n?idI=vURpJ!2plHgv|OS!&;`D>0oc1Bg%U#SV9^8MP`>;YNS*_{yR@!L)Aa z_!STOJ=yCBcsk<#r-US)Uq?lfTdgbm91Rk_L{I=o8nCJ%jEWz#L_kIUIsl#yIN=i1 zQR2D0Y{4^KOY$L>h%f|5vqv+dKx=K>@opMCS{VaN7a-E5zbjmRmbbBRPt zIYq$dsvJk|F|IYujWJ%63?|iCwmMcDys%X3B zM1*P!rNB06H?s;&kV|Tb8F0hmG0((d%$L-kQ>ZPi=~^ z8i^7SUUI->a`4yzLH(r3Y+tu>akMmPaNwm56ED6Hp}iV{ReXWB72s`!cnMN?bH`jh z^{HtOJ|#k*dZ7eRYHr29gHym)?`Vm03g9~hB|uOQN#{G|$4u|Fcr)CQimx7HLBhnR z|DNof40ujPJQ9+49vLxg!)KRudKWg>N-Gr>EhO`=$zDsq(Go+lgd~pQq8U5?UQ}=t zl`(=&W}U~eIwWFzw%s{ARX0AXImQSvTn1K+)x2N@}Ja295 z=L;t2?qs?)+qZLYJ8G+chkKF6WG-+gi-3e2shtSaPQ=`ipuJLE9S-Ico^#o^FRJXr z$Qg{&I3lmqTa&%KwEFOWahrvNB+fk#dGGCfwtQ`5w0z+VLp%h;3i_xL$bxUP22LnPiz`MRb7ZdXD3FBGtd7+~ z?VT0QE>*iSh?swEYYCzOtHC;_)q-UI3I_8lrk4b%3c&C-4Q~Fj>XTh05SR=r+xz0+ zc^k!{HG(j*%i3j^wMX1%fk@6u6ZhE>q~_Rub$dTC;mU41ByN#bwDXa(F%ojEm9Qh~ z!GL-&+9W}}q_p4v=k!Y!SI&4sNt+}Ii#;$#CR_Tu-xyQATBBRkJ{nWb__Ow~3#4g{ z^kOgEWx^FJHoXhVdl#n&g1lvF$70>gI(I%_tLt#^8clIrZsMO!mGuR=_DvJ72@upp z%C-FX>(BrGgYgwswn~C!l}XE%5kB!Xwk=o^DWlQio-su1uo@$2xD_OKD;^soh~L-f z{KW5XKf2?$NkVdLm4@Wx&zd>*0kQQ#u@TfkiY>j<*xR4(UVl$ym|^3bO=`bu=z0LU z9%*75n;^BuTKP*_?u1iXKZxi!Jela^?|=?H`~Ou5MO*Ch+idns=*y!4qjQKGBT{Z&}9+)v!=qXAh50|FoKjtym^*N$~AYiek1ZEHqO1+K~V)TXAkyP6B_NgprIO-g{k8Q0t=9 z?@|T{fhl{`YEjy+$=+!os?*X$vMM2IrFGZtUoksv*BbinC}#dXDi+2N@!>C{G1)s6 zFrJE2n1m$8`>WbN^yT0|_o;j;_z6dtaEw}Wybm~v9O!gN*H6cKGeHyOXg^$9y~Wfq z2M$Ee7V8+FboP7Wcc`ua)$P&eB_#2@y!?wu@?Y!vMut+M-N(dxtyW92*9LI4NfSq` zBqVXYvV8FAb?)piDKb=4Y4Ef;u*`<6{|w7`z>I+th9M%zEgY*?#C#+=W>Kx`W46WRPh}Q1pC%fOKg}CqY<)ZJ8le0dEI$y$pFnN&-2=^+Z0(oM z2_byHH#&uVk~f6Q!RKMK;TzT%Y+Hgkv`iCU+aPGDG>0ZTcixiM`tgV5 zAcBF|gIGO`L9$?wEF6R&HOLzadOmRemoG1qgTUT{IR=+Oh!L}cF~mtQ#7Sx5i%A5j z<-~;uLdDU{c%1Ch8JN;Fas)UpJG82KW<8Fo>@51{Nr>&{ik^ zgf&o6y^)ueSk|`W|Lt{Ex?vqq={F52vRlA563TApYis^BehU53BE4N6PGJg7(L*-wSfD0 zbY2O`2yxhqw$B~Cx6XPkLKshK_fqwtPuzl|7(J4`Ou(IqxFsZUXDzH=ZS_eh8_;Ww zXS9;M@LHoS*=q{;nxaohNa7nbYw;Poj`{f#x0!;;u^gP=dlM-^Pe=)R;^op3lDOY{ z>F$qi>X37Iq-V*DyjfgvVJp@f@UzzyXbla4*oJB13I>8YON2*!v?+4k?zG1vL#jmL zAFU`Wgioofd7UdDuI6N~0bp%_)ei|ttj7*|aPEMq4;~jWzEK>+>S|8*4g;)*Ayx@V ztasPH_Q$!cmv=)&q0Re*n&H)GOZMskzIv!A2}yjNR;~LqwO;K$v=%ZR(y9iyA~G7` z^TB|zF6M_4k{H{L*?CIkdu?7+97G58b^j_g(&VBUq%j)+x*cO7eZ)Sh_!oy z_@&Z$&3C+V$^{>75CSZLw>r!7ILYLcJ=mD+rGp^TQ6&JMZaZ@2RXcU#H177J@e5*a7B30Hd+dA9kmC zt1Pq*g8_!s5cML0i2anEXYY*mNZvkfdpQj8&&7|=eLCmhmD&*PLWXF^L!g)D0{UD; zPmn5YuUK(ca zfR|l?W_GiK5pv`|D6+MUj3})t&o7K*IWf!B%*QDQL=@@)rUN;6yn21_@#-S&C&)`z z8P$;GHGX*I@qPYzR=bc1Yy{S`cAwZeuL!8tyU&>Y8Ff(+`hzL8K2X>o6s!s3zo-xo+&u+vrfM4PWk|fZ1!+QM*Wcgdx8IZtBdL|LHrr96Z^0EwB`-Z zj8%vogiHKBG$`pY@bA{W}C}FH_OpC3G&WWacJCaS6{xd zeb@dH35d{GxdvubyF;>f9ArVqVPYjADb0*`y3gBse)MWZp3~|f#_h1z0kvN1+H&Jt_fnUtC#E;*?9MyGZh+xYhjJRF<+z+)bs3! z=%f>bzLS8S>B$(}x)3WenOp9KoZbSQ-cntBP=+9$%bHEU^yOoEpLwN1Avq;7fXlE9 zG=xLJW*jbKa2SqMktaCRdm(o>19vxLZc32XT}6W})lQl4{JmfNqaN4vC?tgWS1dhJ zr+=eIdNNdxZp4aArANINa=I8eU5t7pi1pav>c?MPU9Z#o3Wem9FvQTKJ_On*|0j+f z=}9Mt;YbyEfN-wO7h`Ma9ZF94t5l|MY;p;y_8f3N!kvcmj_g?`mbyS6sRB zi@D!^-arXb>RDxQAO$`*ZpJ0mC1A~QJyt#G)U|31qE#dcUd>*}#K|JUl8Q= zQ#^h&zgtn$4Tn7{_P@1s8F=Fwz1b8{q=P5(3E)NSPQZ`G;&+%Jma-Ql@-iUuvg)GV zPmsDp^q9ZyJ8k&>Tdwg*L`{{|@F;8w{2RRW;WkCYp!S-+Mq93JTC}@RkxRpV`D#KTR2=baK zt=u?%^Tk7EPMPnpt`M!TMJQqEbZfN$r4{`FODlSlreWQ>)F5bGvq2-XQ6mJgb* zc*ET@o@(OrLAHrJaCKghq#Cs`k%>@mR}Wb9tDh}Aq4duJ`e#)a=T8aZGF@e>vg-Yc zix2nd7ouUKH6{+lh1rE^2<5_jz~aSh^s(6mnZV6VoFWKf|L8ycvpJu?`sk6? z1(vFa&PR;RTP(3%US%nmXvcL@M@OI^FO!6Mf{W2@v*0=ZYRDmQD`s|PbL@sBm%*93 zvW(840D{z7eBW!+=3LYM=>HkwpDn@?JG3tL*^%I!7E|oAML<$hnh>?XK(dwZX;*+W zD{w9&NZok!!i)&wuLitYch;w8e^67M7b?@1G&lq; zPB|4elR)1GgUizZtKm;-9Q&QHjH)OwWM~w0f&`!{7XiPEu%JVbceYaHjl~1!w5fmG zy-JlTB7*0HSf>i;$~56`fH%XO&AB|Db>^e7#<$L5V5u0blOVRvfm0Xfe-T|?O|itL z0Zj41qkwIiQVnH_(P?@T$U>Zs`|Eb8f`@IHMZi{3b@6HpL40Vq4jjF|^Q@;K{}QgR zA_cI-yUj+6#g0&yTTcp=#g01leW+n0A2`UbE{=B++wtpL^?8{IVN~Bi z5;hL}boO^_)S}PP&%qrVB=H$oXFAYmJj=msf?NZ|IDb$RCa9Vj1Au#i`20c3!)lG* zyX23Rq(8O_44IZ$>a7+5ZXN0mXgmpnU_I)cbXz2fY)hO3dYpuoNDv>O9?~W0jcE@Z zJ65+u-s}OC*Rb@uCK=*3aJi*mzqP!KlYF zv-A+g13!>}9!x&mdYA}YOvFG(kk?rG)0Vs;cV{ndU8pJnda(i%31BCz{KjNjdw zpMuIn+~Mam_WUkdvx!!bXriD#I72-ETt0xMH-flaF|X&17v1*1YH&J&;~p@^CmFQg z%|T^A2ymo5pfMqSwJpumPq?K;fci*vaa@8RufEdJfRC0OY`Uf87$pELpCEHZfvRF@ zKR@*OA}teKi)r2N?(-VpFaEO{+kWSmgDCQ26N8#u0kT+8{cMm0LEgnm7PGF|FyOs( z?=H>jD4nw6h7yU-p&i-vMXI1kJ)p5=YEyO4^og`i09q$tgdpe}xfwMp`H8G9bAGE3 z%L$ZAS!H=a@#M*J+6D9DGN8Ll7Ca$u*$?Q){R9v%o}sE48zR0BE)Mq6VIw%n14nV; z94{c@PHGBA{$O?@Y7rmY^^aWG!EpqzJ^~ki1bH)+ntr`*MbCTE7Pj`8N9lzW-%vVw z2SaJ0tm{wcTGN?Ih;tp0rd>DBxxjNSmLCY>?;9UA?$NS89_`WwdDd})s*Uo47U5`rQ*=~T}EP|pB#I)XUBY#I6H>H)2n{DzN_nWHJXoX){vD3=P=f8bD|(7D6$ zg!kA6*bg}DhfYTjJKgpX)!Wo+`Y2pX20x!dz0)o_4@Dm^3^6Zs^FW6JZN zUaXLqwBv5Tc{g1B62ylgr%t?Q z#Jv8;w~h3xisn}qmqsJ`C3zJUVrPTvvsPQyOjvmc9<}`!s|zqTQ!F*?jTd;q07vO9 z1{qp7gSw0u*0=YFk;4a$>kCiO$Ili)ooi8s*c>28T?@45zCSy>_1O;}$pvG%e&q$v zbF}E>M(vt|VQ@Zh7`|*nka|nvpCnA_Y^Q&T7j&kA z0Zz>j*CG?tM=sreeqrg1f>p2e((FXgi77~!+#G309Jz&O!U@<1(UXweI)L0dpxg*z zxqb5CvoB1TIQ|iJe~vt2puNY(B??((x4NKDs3TUI$uLMl;G~#p;}#leKnf8=jNovg zL&d11-v*h?ZFtcoLHw!bKaN@4^V;rv7lh0PU_;EhdoIwzfm6|9_A>)Qn42Ut3#ve6 zs$8>B(Lf(HXa@>!hh-Upc-gZjbx*X#7pHd69#eRMV>5#@Y1g<#2X!so%_qXRO~AMn zO$qSY7I<{!o#^>Mu6L{%K=uGd!W*h?9)?Gj+3@tPu z3NcXzwxVD-Ot|Yo9IBTgZkZ#9mwbbttbOqV^=|2GnW^ypfWp||L~|kvGoJ`kSVHD0 zhBVcMX2Np|n`awPSsPRtK|Ehw{`hV6n{QY~aaRz>XTtHUgE>Fj9Sn{`T~bH+FF201 zK?@?7X$V1cGiE;<*w4o4njrqL<-^bQ+%x00-)YrL+zGKF>*lnhHyUh*`lkNG{~y~# zo~?H$+b09tC*v$c5Z8*A)r(fG%%8oJO8V+N3YfQ5(pN13hQqee)B`%dQ0fm+VfZpb zY!6UuV=YbrcBWv}pCG>My~Q(=zVF(n^DLACkf1bZ)-F_ogBce)kfNz4bZ+$WS!i4h z<2PWgp&r{3m~Dw=41&B8Rp+ldv(>Uyd(Y|O$0v5LklLZ%!C*cCj}6b5V#KHr_SGDd zKpF8QVE-iaSc2GNFQ|2EQRgN}4_aqHWhIB_Q}Z0CXf{|6nOu}1aPnlF0~KgAW6;Oo z0sJ$eVrxL0<0_8A*CPvX+F1(O(Neq>m>@nUGIIM(GcNsn!WgVh`O~HO`W*cnO1iVb zo-Uy>MQDHzoFU-{pdG2Z5~#ZpUzsE5U74KUf65O>|53Z&^U}Xqj}S4;C>d&MXy~pC zMt?#REzDxPPj;w&#sund(itO91VcL!ViN63eV`Up90gGd5ssBe42DH~ z3iqo+WtOn%jN;I)G@u1A+X90MK^#;@?Vojht)%*0@H#0l2P&`uorZ>U;Y_sN81Se- zK(U`NHS9*_K2I?s6*fLo#Tj0L`1{Tm-SyY>?G4s75tkRC=6TPPYb{orMR|a3tGh+E zK8l7(?Y6_rA>Kw6H*(YJU?9*wFjZ7t2=c0_VE#wX6My^oozvj9E#m-_xH;QMHiOOD zxK6*PAA{a6;+eeEMU0|xHqiLit>7{6#oL(>AZB9tB1k*ba^?TluNnB=bV2Q&DG#N$ZCB+(*${UDVYpE z>apoB|9V5zUnTM@AJPH2AfXnLW*18u4o9>du)u#GPS#^ACk&3mFU;|mr&oa=uEHV< zLHwoWJ35@w;;%t>ALX)M&@i9zc9^2UO_(3*wyWt>d7;~KC1z!OfdJVV?6z~NIM_{) z*Fx#&tsg$_zj9}Tk8xs>W7D+6n|5N7;UEM41r92_L%v0D zJ}_{8s(2%gAU;W!*|gomhadmk8diwE*<;L3BE~^7fnmlN+39A!_UHkN1H#22B!D$k z5gmb#jyO{h#HUB^x$~BJPhRySeD!Z~Y5BCg%1A|Jd2w_K*c2}wgnk$P{|j9E^n05>mMyE_YnnN)*cqO3W2X-|Ezy3$6jJ;E56^QaHLMobabc1S ziEA=u=>+jtuT!r&Zo|HnbADA)S2Gr6#UMbQt$8ZJ{DXQ}Cg5bz`Jl!pw=*Y)GM@!9 zc;vYl=B?stB10j_D^fA>sc#mp&i?AbmrYX#Ub%W>SZ;vF*oLlgCX~x&uHjMQ4n*=S zF!HQa@fra^`{fcc^?!N2P8i*73eYSvP>M+Cog6;QCT%noNgQs9T>R zbWG6OQi2oD&i$@=pVNNPj6=*sY(Q96b-aYd>p;15Gjt!&y7V`&JsZ7d0e+`2NsE(V zbSBr)Ri{}CM(*>e1He-UR1^1q5yW5LxUWt5PbY3{{0F~~3H$R^(+aJ-!o@1Phku6L zf9KNO7xwbSM(RYE2Pb9>gFy*8TPk7Kj^_?^|KCaQ#a7`OT9OIb1&9kq(vn(d7en}L zI2uG6an{I0I!hyIx(JX0gve2170Z@Dmb(PAT!Op-DgxG=d+SYeSEs#>S)u&+5nPxF zOF%RUe1nt^mgIsUT%EMT-oTvY7-0_qTQCgeDApl!ku!=mnHp;K>r6dYEJ>~pg%@${ z3_<)o_BCS{yihsz%ys^P1iVM6i1en_HVgbcFWIaqCkANiEr3P_0N`DT5fO`zYDx zu}@xpK70e%IEjyJi~`3URZU#qNDyc3FZ{5o`_Zi%;!PIn2&wQ=b4NjiMhDpedlFNr z>MzMPQXkcZiJuHjNaVc`ZSPGHr-%vKAszj&G zp99j>O$ZKYyO;psFo~=fL8Ts9g$(Wd7x~WuC1s(K2=eABTYKXD!GAXV;=DibG4%Pm zeh?MncD*g`tIBeB>hDqvzlt65O2*Bgpqo>gf`SP8Tq@|~I|g3*&DgR3_%&6*GERY< z@`xxSCNXMCL@DMInmPmrPE>)VD~h!U(x4(tg9!2tBuTox&+oiz_Jg+;+o>n_@BdEIXV#&-kW1e5F&$Af+8qob zI>cx9*Q9ATv2ZT};a-#?0vkapW~9HIl3%CAtPXt5viQ~jeyI;+%oEJ$z=!-S)3gW; z_SXzE*ocG@Mzn?5K|or!A|`SO_~8;Lod6t_Z>Ed}6*9+bErhhhC8KjKFp{)`H@ z#x6ARh=Vhj0UI&e{}q#T(LIYurd7d5kk)*ZEWTV%koTdA(-#)Byz|sW{co0EEdtqa zoIV>rWaR5B2$-KbO7@~)D^ZNL1eHkDjJof`YxZ6hwXbB9lOdb7KWowY5ID3786dJ?lTDtZjmucjDf8&YzC2}UNs*o_LB(on?0r4a0-5Yu0R_^b94 z3zP2{x_)PGT~4&W3Ow?w_EOYBiqv|D3gica`hzx3QJmR~MqJ1-2ccT@4yxBndkP2% z15G6)HW=K`veVFyosbTDC9^?x=|wm$7=kl-UKX-b*+(XPU4lLaB#BjVSFk!7SRI`riVp;_JGFYf=NlKj zSZ#)$NkwRV4#MS#s3lagnN{kNwfc<=$(2w^G@9|)W5^L=t^TJ$x-|{gm;`an_sC)M z2KD^0!zYp9#&^d!Mbv&bzEjj3>gCPx8x#bokDAWEy=UdeJqzg7X$(~&s`A+z5%=il z5Xl65il5Mg06)eHE=Cs`(iKX89$J#2#iL*K0Ke){U3{>WAaA&eBnzrn)$8=hsO5e# zz&00M@e#(!d2l=nzIk3XrO5OLM>Bl&9KOHQ6^l_4 zk|AaJ_QtD98of|Y1wR=d)wv+R%=I=uLQBDlnZn=HS8heI#1N(XInA>C4s2gsbw(SJ z6$L*9^uJ&V86dB4#bskilWla)m3dQ`yqZ?)4x%QAzbE$KxaUv2@XTvR<9C_JjIFa% z@L?Q(6Tsb=Ym^%-@wsd<6EF)#?gn(yaS`ce3%{Pr-)i3L2Auf z?ePAMG6sC`GFvT%0`_%-eBZpRPCog{b^}Tads1V>@1jK-8?hpjQa8mc^+GmbCFvzl@!8rbE^i@=w zHcX~yoA8xj!dF%s3>H9;cdwckj%-@EsLoB-92ZQ6KpLEG2T~bL0!r`n*D~V3gPH_} z%8N7LL3hrBS{(`2J2FLN#{}_5NULApdEK*pX13C4$J9nB49Mp)vqpvA!OcN9`Tm0% z2O3`W@)j-VvNQRd&TwF0IM!hZ;w}HauUn-%cjqPJB{OMhZi*Xy$sW`b60Xz&j#Mh@GHr67RRW=H5SL zQj}^PW(sJS2rIACrlJn3jTS3z)oIc~X$q)8q)O zIwQ&A*a$&t)MemXQy;^Fo-axLsxf@5^Tcp z|NQJ0iTCpy5sT#+tw+HG9!(ZSQG$MxWKW5%{PX6*3%+%bEem>(D2kxMGenRet*6Tj zf(CC1NPC|3Puzub#svsR;scH&Gc0YIK%3bLg4miYrUZg`M`gkAsoS6EzkLm+d&1@5 zte4>2-1brpSrGX0rm2dhR0Wy2whq9hkVFNn(KF=LoWD5er`;CrqDDn-2n!V+4}-b? zFg(>x5FCAynk_rysb|*|Y&g|-ZCKKvH}gRm*@6F+*Vz8;XZf z2;!6Xt*2ajR!QwQYb(!@o5j+WIimp!;^Pg{cf$HQS#!Hj7z$?6R3kbPg$L1~WrXZV zOf+@`yM!|$=t_?4`gL%m*OSE=41)M*@t^bi{W4<7hUrqN82)(Yf|L?-doq?b{Y$Ow z%mD3dJg94YirBj#=tXH~KdqkoVT`&Cx%0iz5$(Lo!D@!O)&o{B z(#oLRLiHzPE*ESoH$}W5L=Ybrn)uK)Peu-=7Dq-!^NU2yut1nS*Z276tU_h)ZU^L^ zz(b)p1thX5xa^)X(Zchq;Pb>H@r~p{eHnVdEY`a;3P}jfRlR`5UMZqVN06EXB7d%% z`oZn1>S~jQadr!WK2RJ?LSeqqk9a{hhhMN>!jjM+8qHa>DN-BDIS$ox; z11;}L(CU>~Wg&=PUl=j_thUt`R$r=SNHKYv(-tkDco!!$we*)$=0>r-^APL#px;4n ztZ~q+sLhBfd_??1OEKp|Z~#5olwOI#c^M|jmy^X;^a%1ERvPbh%hwP7x%BMkML`y< zn^!3CZ_Q>C2WbM}C0211I2KL{$Dxsyv%&h#PKQ+s{8vC5W&E34Hg-|r=#$3!skRLG zw2s6xJA844l9|;<6tjtMAUH4;g**iG`HzVpBCE%0zJa?+{bm_rwEB+xg)LR@j{Gi# zV))Wjamxik-b5w)$hz0Iw<=n{UaGttil61Un_@(KnohVet7KAk)g%m&mVenjfida} zT-j}u6i_pg*$w=s8%Az|)N$vAKmRkM?%NY5NDQzJNwCr{TRfTj7D-fB^BqCp6Nb zkt3Khm9K?@=+-@fwh`=B!M8Whq9evwQf$IaK+qBK67M~Vu6P2v048c<5Pj-Q&E`&@wJ54oN`pvHP7wpDJ`HBqGqVKaAQ1g z;hsTn;kJOcbOmqeirzwy@|FYpYkafkn``m8>&d%3>65!q%)4P1@8v6<$bOo-&2-+>D!lj#D{Nb6gXADxoPX9UqI5^IQys_oSO57Pz!6cC@ zw!@y3Mq>uzaKwsC5tHp+$mbGp>Ls`{L=f)`y;iy8f6rd9?=Q;f{M|M@6asqTS7kAG zG~10JW~X3|{u)L7a|-sSIqz@2efCV6JQhX1boAYAn!3X7az61ta0C4 zPPqz0omgFf5^>dH*n|jJdZQr-5oiL!u%FOu0-EA851m5TCh~NakpMBE&Guekdv7(d zq9=%L;+hw;j){!xbgFO#3_XH76eu!pMX9h(N(=$+!yeG2pxjI!RN|w65^O-{z69+2 z5{yR#dHy#cPoBTLqSM~mXGccl=SA&zpJATNn}*f8&i+PDjDC2RtR0tP^asZ9V%dKB zyWMghs9A-er&)F;Tp}wN+RelIdhzU{xRbQ&76Oae8p3@H!w!ddFeGz zy;gla-{rGSPng!D$bb`#P2*@{c!KU-v0T)Z@``$ zFP^jTd7U1sBT8TJU`*EGh+|5>3@Kvqw*&FFOA+g7g7!=C-}`;W?)=+-x?7r0h4u10 zsDKY5ktNt&0ttq@8&E4Ep}P?iA{2HG(3z7WP6rXBUes@qKlQt9E5^)&iv)}VSiHxi zH$cwlJdV{fqp{aBLxcu`#z`r>UcX?`;LPO_Rd4~e`6~mtv@fZwEb!M-ne0yd20Du$ z64_C3l$XW6rBN?wE3ao>3AK`y$(g_vLEc~$=PS1^yylXd>fP;EDE!qH=Z`=yMtN!q zIF%#Hn@^Z7<=%0l($+PL=rG0|D8iDX`fK)UwV+H19a`WFkn9ZHttDuOr1H%(8)aSf+aq5@dKVSuPlY0MWmS1pY=iJ# zxY42s(jv|1CIx8x#%gW}#I(el0ti|qiP>|1@A9Q@o%OxHlA);@t4FM6m13#JfY1W! zwV%+$22Js^R-=;|R&*cV2^tS&()vT15efg%n{<4nczKrUQv*vYcj@){&zLhMNLXd2Vw+uzv4@~e*rnWb1b<+oTm`?bE8bg6jsx}!s zt2q`dYAn7;Ll9qmRcmO=jR!U^g?r*kd7~5&i3EoA5o|^lRQ=QP1pX&EI43ZHQ6xhO zktn2EeawOUOvTJ#(8JGz4COq0t%e|Pq{>jf|Ka<(PtQ;iX8-2uz!A_mmLl@y;wEKfT*5R7y1PzFJKY=7YuPcAt5!xX)cFD;UJ zB!?9O7EQjI0-TxsfHM&aa^W$53rPewfrBK5;{O>O=V#262~wwXvX(WPfAN)b@4#6? z9-t+E0Qqxx6`|i~4XVJ3T!AMv6+jyoX>=990!6+79M}Ozc_5V>l4*0b5japI49Ns} zy_97Qf3x4^cMM#)SZ5B8L~-t+kvZFCSJJe!sl#}}WXipHjZD#`&UPexiA$C=Ne1dr z4S})G3H z_;LNV+a{^yfUG@p2*i|?XEUDc+3zXSGT04hJN!9~X}=R^M!fxlx&a>!z0!)vV9O_= zIOAt)$O2nqxtSpECS~s*>`u?vwqo`Q6eACA%n?Gz+~n(32OK))CxBxSNdZk5pOgaD z0j<@+9V~)W3Yd4=>EG4qRHH7^sG=HB$OR@rp=!{{(qIRL>IoNps!fQOsH+Xs)y8Xk z2vX&*>re8!9C1$DRjME&>_o3s0HJ);MD3SaeGFUDi1tCUFU}|moNqR0rWIZk@o_2u zt0WQU;jZr?xA;C?95*3|uPoeJ^PO+EoVl)nf7u4G$>(9s8#vTJ{MS;3>JIeVcX*%| zXcu`LOsel4OcIA-3ECtBRkeOw|9aqut%FpVP@T!LFY(}dFHG!W8R6`R`cS7CnQTmk zv>7WF3aJZ)B=BYfGKQ#CD1zj|Jgs!G$)s z@)M^AN0z!fp+DfMQxKHEDE-&RN36gcnM_9r4et!_!cl za&?N<3&v-PQ*R8!NU}2R#S|e<{R!!Ufw@Q82JMEyKWK)9r&;POWRSS!Uh3qi7|u?a ze};+nXWZZ5VJJSLbcxmX5uhmt-EF;B4t+CEi5WTLl3j& zlMRV^cB)7;2~vA^*R?ulZT@jLounQV3rDWQAoZLSNawNpSTs2J2zgNBiFM;%$2G6jf=U)JBa6vVZHxT5lQXwdF+pvpQU$SmVB+_%}(A<$dM-I## z3O2~9)PB!`ub?8j;Wgl`+Zsa31hqq3PVu4{N$~&1J>Y5xfEEbo;NZVM+xgFp?LX5P z(w6KZXU3HrZ@M$%fqsSt0^ugcgK;!q#&nksSX)G~i2X#3%JPM^*wN=Y5c_r2#6~_r z{QA8EFBwvic)2N{i*EOwd*^3GJYby&66_FOZh;38+K z7^gYjFn85|p-v&{zrdWujk`0j^DoQAFn|a)Vx=IW0;^Vaw=Ky^_j127~6TJ$hn0Q zVLlR9%W7}FvY`XH1N_M@f&PZ;5kHnv5N^n!q zo_(f+P^RPe4G8icR6?m*v@osd5vPlyDw=`HvWysJwON7)DBtR?v9Cg_8b!mTv=YeU zT0tJy3P0sR5Z~)jw`1B*d$U%jVZ^rHg9ZAvL&bp9YNxt|sIO+jdz#s4;sh{3>MPlk zcPDu-Z+yGA^N1jz=iN;@on?HgMHG0gpy=uaq7h3VR})4AwCL85e7DAnO$d5L#`xp^ z-1+1OYrAc+!=_PJ;Sd8P4-E_RA&;PXRGB2mkrn1ckVy3_G$MGLa}qzt#7e_JYvve; zKJPB3{0bAmugT|v775}v-`@EuZOQ4aPRT|qp<~w|3O*AcY?6M~tWk^g!C=o%n5NBy zx?LKc3rXNbCTaSyAi!BKJ`Psy$Kl;`1aaN(_nE(sI67x~2l7Y176#062?6g#@td-S z=1qh5Y2kj73c8*IwvJ)FF`{Qg+*JbqXrBcSM55TMIdyIZrz4xSZQZUJbnFioy1~w* z?2Lkfj9I(3WJmoS@cudcR~@T=v1sNgLwjGeFWd%P_kZXa3|oun8KSa)^M#t6K*Czo z)s7kneU9G{4dfy}f+_xpSAG!0Uw(Z5iJ$7dyZDHy9P4CN5p=}W6*>8o7pjt@@ml#n z2v-Bs#9>T=`pIap@unX-UtBG{2TcI}%h87Rac=ONC{PAau zQr#g+b;lh7f}WRj-Ba(ou@Bbl@DB4V-Nena@}aV}h_yd(+aI|ls0(5hUtRhJ{tw4E zV1YTZ+7s~q4`G2hD)*&V`{bX|PFR;-K-RB{=J#pBI@wXrHwsHeVb2Ewp0Xsll)`^< zhM~0V7e@8smnb2d!2y49$G|OMcw6wcUxGLW)<5^;rkjVQW>J zO9_!P)F@X9V0#-8wcLNFfTUt&1!@MQ`8};sbp-Hs~4=yK?a-f^{dV|fRJxnnC ztw@XJ;6qAf^caZPPgEcYa*y)VzM{^PZ00X-}}%F6(7$0Vza96 zmjaXGcnj~Esm&Gd0L|%zoZT_8GaDiHRb|#(&R+n^%ys!p@o*MYUH-gl@ zdz~|CoYSYGZxYs}~0XpFP!)!7=3*#c%uV%sK0~-6nL#5AQ9YAvqB3y4o z%BvuAs=_@Fg7|KwH47Jf|5M688!_6bg{9$-B4ntBAk{E7Ii5zi{)9!g6Omim!(s6= zJXJU*K`K7ZExe#)aq~sz=}!T{9MH98pe7jxEq~Oy1F<4bXut4MWHp5A)flb`S}Vi# zng$Ivd|Ts~8}x8(9Xis2ZrGtCDMn6DO>~wN#k3eyMSyO}i41fTAb?Cr78ipN?~|Uf@B=9hv0J>KYn8zR|Y$CbR|nSi~oWO=lbCc z@ZU44iCKvtev`Xl`-4TlZ)rOj>i;804i^l7MQPh${A==}`io%uO8i$Ez*FyUpSkM5 z!{-Z)xwCb^#h*M5?G;ogi4*^8*=#5h7OeKL4=NJLFj(NqE46hPhK=vQWWGxl-!vwO zPn&1A`Ss7bZ!|dv_v?T^KH??z-uwX>2pEOvC;d%;RJOrUcY)*YN)@NR2wErw{l5ps zM^e9?voTOeM|Wd0wd>+sKo{g#k_>hRqGSQxZj&diMfjCIH4p?e5c3>@K9{7nnQ?Rf zpC5Y`uCAb23?x+FFF?rOST+`9Q7F4hS&4tK;*8x(>}Z$29)+;=Xo`5%iy-y>ea@y9 z)v7(-?=(DSV<=F(og|Wgc5p>lyL54;MM9FdrhU)qe(v*WFDQ2u9MYZvpy4B=(pkCH z;!^!HU>Jc1CFlG*^UqZi4Ae2J$nj-$F2sj(@hcewas9Nx+N%ow{_(EIgaa8VB(Th@ zSG!TMsQy}twYw9asx$q?X#jb{f9o=rCb$Yra8L$)RlHO>HbAC z=Ux8Y3&@bz?+)JE#npR3r=t(EXz3!Pe;9)pFnJ{^&tAA^oy))jFG~@-&IEaxilgR3 zR~C(lJo%EcDj`_4TV>XI*v`S=#`uv$T2La-G3Ry!JOm^x4z^OXP(cA%sb-;E@MH2d zHx;XSryS7^z67)WGPww(Mv%8zN$ugwd!Dd#!zBMsc@bgM1cnI@IvVChp193ULrUbei)#h(PDzW(7f9KYO<3X-)rp_^}Pz&@$>OY+xCj zW$>_8FN^zFoC~G$$}JA}P8A=@0!$MHs3nlgqEXBM@yw_u@)3f(waO@dKknhLKFyp_ zq?Z-6w|{v*M5`{Sc1tA6D9pbksK8NIu{NR{R1_IhFboVLhfv1|{bPUT<~j1X8tM_N z)5V?)LHus^o70cJrRFvJ_N&tp;^Ek*CCnZsLymu0F;O15Fp&V4SV~Fov;^iP0)xDm zazD8Bemo{Ykk?IVFnjO=?=Kp+>PGvXelTmUV~o~6fZ>0)NMprf!RoK6$ZEm3L|Q^E z%z~gj3tw*~NWI>=t>>!WX094XcakArKp!s@#597xY9tw;MW5eaiWUCNVFD3p0h2<+ zeL&fLDdGejLF%j63+kSb-R!0tPv-0x?$pL_F`H#WKdJSbb^EvI3wG8-2#q2{z?T(@ z3Zrlp>4-|WLSjm!q%b z&**G&gTm3vs^q51&p~?T3EXZFlDc8BjUZLL9C7hEOJ<%sYAZijrdG%-0pNgN2$3$X zy@|&i4Ti!3hVw~{JAZ%}2B63d(n=(tqHY33-GrZ9B*;5g1&hm$YMFF$`zB}LT0uku zcuiYyQ4x__-kh?-YD8^%aSww}A$cokI3Lnj477_aY;E%zmLm44y2+rx$(X1R#IGw{ zIBWewXVm-kalwpM?-R4Nk&UqmV|64ua{V{RW9VqWs@&faT~I*AaaKDE+Xu|;!`E*J z^0Jkt_D|W@Jagr~Mfz?j=>cD>2g~Hcs@ndi)+L~;pt{@-YWfOvz_;KLv;NtmF%a#? z;MGqAd9@WAtDoBXab{`yB;y5kvCYVlL4UPbONcfJmhuT*W%U^&7H>%nG= z(?HM&KA|xM5gWsmP&WlbwV#LdJ_Ci@XYhSsg4FE$OZ1FmD{gudSG2`ju?X^-k~t;Ad%6qY|F^+0i&;CizCL=* zFPHiADb-t1ATU#7{eh2J0DZ`?-N{!%K>T4(m`aGBR2Y(B>a@AlU99Q^F}xFA8%U5B zRW9{g(#>CA-r<-D^5hff&`hP}VW_ZFTAqx;15*`_RQjL#|3E4Y|D{wqW#_#+SNBNX z{_ysvLF(s!^zO#?YwBDp&D~E_(By#<-is&mH9Ppy7A6*uxa$d1+U5+6V-iX<`W0aG zD^j~aicHXtaw+h9@}zNJf19@4Opt{t{0}#pos1|%ZL-UR+~(TZ}_h>3k8}9uH(3f*t|IcPH-HNCKhf4b(U7y zVENRKj%+aCEX>3T3MUsvD~hM%l8tu-KpRk?QcdcJBQBAtEXR%ZIY_jsqk)^F@f&yq zT`kA{dfvfb>wLN8I8~!7rn!qIk|>rcz_j?116f6Lbc=0Yg{sLa3vp21oIePyaGCFa|6u9BdA&N8H=;9$HIPpUo#Ucc7gNaRTJEA(? zhXD0{s@NbRNWBcWrAe<__q_exFvYtFnwU(GLew=%z(jX{!$B1`-Ca#0bgy-*BxFR5 zNi`mqSru7+ECG12~A|LVd*80^*G6!*z-bQC8J=8KtwZl%=pkUgt|v70 zCR!ii$f*yl&1UYh$X8Gn`Kp?jnhEmGQ+mJbuYnD&9#O4Q5N zUAs99KE&MlIkQSf7@vE)XFPB+9_MU=yd#wU?mmBTPSbxDyd!Sy)nXQYbdf`@-N@r9 z;ky6Y(aIV_sOFtj;?$e#t{M{~H)pA1CCPutBYeR`IV`4w23DEDzE*`dyb97aP zWS;**J0n^#AfiUvKrCoeP0RrVd3PvVDq7fRS%cqSZLD%N4l%fx=B-1}i|_)yU9+e_ z>~nP27#Gub2sTYYW>N7>n90vf6X5s!6mH?`MTe$-#Im`Vff_VT9`U!ozM zeeMFh#d}g?)bHw839A7V*{Zx~(yaN_U9dd8tNL(|071Mw{XKPX=dQzFx>k@H861(> zpW#3=ww8sq-wiJ9GjJ-f3pPC9pW+fscQVAx_nZ=B| zn)rpCDK{~3xnu4)h#upT#YedbVjJ6VX48i!q}JLa-f+;o3&`iCgWZ(ub%2FPhcxje zP6^3qwC9pnbGzL!y+o-V$TYQ%&c}-ZHY2;6!Bx1W2GDCl@{w~Ca_*wRobKqV#A_cR z_gUg7)B&PU2fXo&AinYJuuock|3sS)UJ&-7oiG!)<$74;8yp)!?8AIVPVgB+Qm*_Y zk%3ukhDqXLT%G|E4N6ep(!9IH8mjqPGh{mham4} zHGM4`-sOgh+pcVY={qgmz&7|DPmzMt&xx|mPiRaVsk+lS1OY4&8d6Wu(JBOPEqLJ6 zyc2laiI+hW#Gg*OsP=^0D<6gTZXk-`9EG(R=8b<=dNlu9agw_OV|dUXZHAsP*36q> zeYP1tuSJkrpS4I||M~F3K`TYBAQ#`fP~s>aXthKiu(rShn&d?Uhw2lW1?L{d7yQ^H zt&;ZXkTIN|Dxx_-eA)1A*<%Z@%Dio5WK=~VB%=8x^xi9cuNgigYpw;HJ$yl%2q*%G z3RFFC+S0mMU%p8xa}w#8JY~EQ60eQ8FF=sjK*gUE_GGNT`R+e|R}+^=YC(DYI*y#2 z#P6DF7_^*J>rP(EJtc%Glt71*hiDVi54`wcfhTS#69zA2Mza}O7@z(K zHY?j=;RmcN_>g8_f^dB}9iI_tw?Ty3hI@tt@eS`^Uf<@udwWb-j_L*}^D8D`B5qS+ zYJ<`i53xZZQqIdpfeDOCZUO=%NPR$})}{+z`ts51w(A}t*rF*+%-$$THUQ~Y=0b-0 z=^{W=FwPOhcu*57_u`q>nN%4kZ@Di~5}1{T33}~m`D&P!ul~QXxGiWZ5IXq7Kol}ejR>zn^s?tRX= z_qosej=t~T?-$2=m*?!~+;i`9AG)@SA-T4zU;gQz9NnkX0`0=tJ=wFcATFt%S#OFK ztE)AccHLRy{5n1vzB7&DPr{=N>&aJx4;YGJ0RDEj++{01+)kFZ3w-*n96W){Q0hMG z2j3ns^0g`r7ye{FBsB!`^}%^VMgS}1{37yX`UBLTpveGDMrhC3Rd?jn z8d8YIFz{m}>Z2SWbtfHkTOGa!9IH2(aF~+7#JQ}O0^jQvj@pBhZBJ<+L$au^efBB! zPwUXK$V3R8(*g;8gwV|n4Ji2l9Yx@C^%$2BlhIRVOR!|OJULn1=#+bBYN%IWuwQDt=6jocX~5i)tS{nJBKFf7Ri_K#o}KW6m= z&%;n^lC_IFR+X7P{>m=Btmna-3WgO-0J5bpV;qlZsy_q)V(udKN=+ChOj^ZI`#d zeaGKw{Vtg`kSY6Um>juPtSI#sb#t20ud?cB6unCc!lX_0nH)tZ%!X8 zXGmTFe&p~M#$3JOvxlR7!>IZqYKO~xNdp4{jX4c>grd=@E{N%nZUV^=aUkb`PJ2^n z!H4+-e*gmhfCS8tyaamtgj0UFdcY5r(A$GN%SS#1{%uV>^f%I|s{OF4YjpHx+T7>|ztW?F_cV}sM&YI%*Vbxw`&a4)7?@P5WODgSvT*Ze=PQYF=;h(D8Z#PSh82a<7H8 zff@2#66kggOLxQY3@FAr#Wta*|acIHtlJy#IkAdpvbsz1;^c*s@}Kl=vf+ zARcl5tl}Kh(@DfhRP-Pb1EoYsGdbm;x4|Ocrb~YqvbPzW`dp>UnpdrVAI4tV1dxMK z^ot1EhdiaB-fVu@6X&B5Zh|D6G+bb72I6j(1?Q&VPlW6N&8dBhW=*Vk|0c?TIFoSP zgd`X~TG78f{A2_pi8D)N3}`4NuQH0%n}debPqAH{p#~8|nYXuUZ3C=slZD3}7?Lk9TzJdk8OQYd zY6;tzDLRpIL*+}IU%Rn5hqD0?B zoN!NN8JZ;?C(=$K>ZNBun8Fu_F8Zh8UP;22SR9ULESb3}%JTUe{;#lLz%blp&lS*IN-`T6aGGG;KPR_QkcRsD=9Yu z%%t`nZ+2N4)0X&v5J#OPjEt6fst*eh{ue_D@M3xapCS2z`0Zz8t(b64=`xOIcND>K zCja)z^^zUA+*)}nl!oBX&&Y9N{%-+L|8i~MfBfw``0YFVZO`!29%%mho-Zrqc7VOT{GqwS#uSZ$ z@0k}4!BaW8Lq_I7i4WK-+s$eE!2tqV-FU;{XAGM+!ij+!>BIm-lZ>++S#?9D^>u3> zqaC_QcO-Vv0<4Xn6=ARmbd8yh$$%2NgQl8S*~6=K`qdmtSqd>@X;ycL84Uexh*&*v zP4{k>pH>a-7h`3HX93&fNQ(O1HKlm$a(-b;lX{>`uMEsx7&znof227)GzFFnQ*!W7 z3PZBbuzB--!#_QE%ZXU)w1m*wM|_#nvKJKk^yvp^3Zvh7ZqlehfbbxCS)HL>Mi|F- ztkk9RGhOGA>qVh+ijNMRj`&I%hJMxW;2Z%Pnb}Gqo^;13y77xW#DvTtaNBZ zkrC>$GT|>7wgj)(k~T&dg4-et#WhZy)BT=%R=?pTo>6%~D2~!TMTM^;_UcMuBWf%@H(F^kOI4sGz=pk)f1@6k)0t! zg;BS&5*svRx*_WS|4ylP;9J_!ORNmZ>6a6>H2(bN=WZB5OEPnr2_D4&PDrAS>5OXg zSz&~Xf>j*x1}T=Pmdsa|BS8STv zb7}`0zf3^Fg+}t_ELf`!c1#pg;s~}v9A`1$IZCnwdJ5$B6y3_gkiCDR)ShXN_O5qt z-sb~yI~I-`m0JMyx`MI8M&=Dios+E;zmc$THO%kA=z<#B1BQ+0fMGs7rb}^qeh9D6 zZiR&5){6K>8$)(aV&nAh?`qkJC54c_$O zUY9)nkhycbmuF&aq6M@c!E3_0tY$U}iy?WZV&s3yPW*jBQFM);S)b92Xmf!GP765h z5D;N<1XtsfB%>&v`09qu0dU=@A4_6>5XAf-YAB$KTrS!A+a%pQ49j&c&NE zl#t1-BnAt+G_`$V^d(W}4~!G&D6A{w(D!H4ob7O5z9OGNHsuR_G9);Y=^GvlrIuON zT=8D^alh_4xQlh%$d=f8287?TL<=A5wUp{Zg!Fbrg<@b$+GUSWE@M<4OWTyRpeKuO zY(7f+5JZ%RD55YVadO>3>!-|aKVhe;veI-wpCmEe@H9Ks=u8`|pWzHbWBM|Tfs9_w ze|pqqxAv=YZGd?g#pULhSTS9(S@n$R7{`Km!sKyOO(ELGW93gok}_^0E82hpWfV3C zYH7%1N=X8a^*!M9dsIqiD7Db4)w$0Mnsay7ArtAL#%ltXWig7#nBNnq4(pN~By>`a z6%Hb?6pQ>sf55swz4^e99KQeduVyn|E`P>T_Dtd6kwrsB6!$1}^aGZec$(R^)dy=S z8aHMLA1pi>&NZJ*=b9PnYBXimk)57Bx#p<3)&qrVUy?9Hj*$E$>WX%Dkw}v~P;7F= ztY~Udh0wGXMeE0OAL8F4@Ux5Ptr&(DE=KX3O=tvzFIp9y@H8@LB zj3PBa5rJ8?eK{;Ro23Ez;nJ+AaO5Ster*OhbTj%!JVSCO__WrqemvvXc2B6G5do5I z3j2c3O{Bvgr-+G~B#8-_Ax3mTO}a7~FO&n3N=KM_h@X;rsx=f-35_IvgEbnpBXP%K8w0^4er; zUdaiwQNM#jK@9)U2!%g1i$(@RHJ?(IP8v6@yup-pCn)YtD$g(^H`*M#qVMBIBL4>JLh82=mU;`R-pSB56W?mBsnomP zslP5W<}+^e&^)~87FJUr3aPQM?Wk4~MgwwUvI0i5R0bIvWCUS`fxl461Qv?W5!yL@ zPe`s&i9*sxcArG$m5?D^N!LLz1nGjIbKjTW+H>rVG)fWOr+}3B5k$rPAglXx=#EB$Qu|pd&fC)U%QM@q96-#Gi*-O$Qq{x=B25ZG zaKwJ)1pKn}rDq=s96Xc?i409Q{A*P0$$ySrx$;P37X^0nFkrAzo4G=aQ1DcP?J(*I zjESxx^O`8>)t8aAgmrLBI?l<^y9UD=waOpX;f+HV<+d9+KJOCRd6JWi<~P32QxrDh zjvd5LOS(WGwh}AD|9Cu+p*zg8e|xa~IqRByI208+{4$w1SKwG@y(Y`lKcIUaGfVJL z(Y%OcvOe{2!I0~jVrxmOh@XHPKV|g?ZZIT4`I{X#4{N!k!&A}H1)?W-cM8aolcDuv zIJ1p0O4+1TCCwipWRXSSWc(a8RctL`%C%-!?qZ0`7t^6?hUC_+{sR_Y^u*mmwwO~z z(S>_*Zh+4OnO*cz1%(Yp<-s;)=s!cOFMj?+a1r$Npj_uT>ZuvrXHGpe?S$pJpX6HlhB(4=uOJTvMWRDjeTsJ^~MpU z|G99XjjG^wSnyW0z$gN%D6f+eDq0xS z$U8=c)1nGMbcHgQurrjpz{apEyVSq-w#yF4X1kO~o46oLGv&V3DK$L7JG2C|9TZY?l|0Tl{bP%0gsFWDc!a5+3 zIwTN=L<^@c9klD*vxY_GV`M#fQcAHvEOMa4D52XU#*$<$bO*+H0_~z&84T0u8(vKV zBBV&ZMa~9Z%%<;_F(jq*?JcL4>G=F7rHq0UL4>l=2^b-VoR|^1*>WMlE9tIrx*ckT!HKjmtiU0a+q@`5vq0h%zQ`^hIqnH0Mb!WqPx$LXKnrkVE$EFghF&y_jZI~* z{kg_*Ro+N6K5)gd*nkJbwLU6FxsECw?!ifdhNfl-K76kX?OV{yZ?kZ5!BA?3)y%V7 zp0;7b`t{M?Ip!ErRQ6Mu(W=?gMaDNtBh|RLD(VOoEVF{98?Dt{EuKmZ2??@aKbh+Y zy4jJwCdW|f8q0x~%RRE@)qQ50(i2l{A%c^D^*P@;k!Nx>1X{FKl~ zbyoOER>9ypgLVJIfY!t4LoEzR8Ft6I&ab@u!z*|rWf6D=TTn*NLlrym{-F+SF40o!?j>)*HRE*NDiC!=<-dEuRq`XBBrZ+q7;-&PD@3s(^CN1Q|KEl4B7L|Mg0m!G=JSJF8ahGbo{?Y;Zos<6E12c!O=CBl7Hc!PQ3 zUmi(3NQ5vN^AC1CR0z2kP`Q}c&Cru3MqXRvwug^edWU>P!@68RNeZ;+JQ5a0j38p; zob&TXC?$p_Q4#TQZd&4WvN*-U06sDMvZ!aZN1WX;FckKpT)u%KV7rv#?>DizZDf*-R%Xo9cfe_10kiB7Q-X`1AgBc z7G${f2Dtz!!V#d*M`Yn{0z(fOHCTP)afMU=Xz^KYr=l^V^2X*C^OwBIlK>CpLWn?n z{SgI)LmQ0001mNW_9C_9CUlg%OEHh(kApX9P>Z_P;{Nz1T4P9U8fW7z4-7qSaLSwa z`MBB-^~_SN)t(d3N~$cggzT3ot$^Y0n2e)L*>TEB;8BOnjyBNMA`)}AsQbRV?F8<& z6P1%0O5I|OwAq!bzW?IsH}1s`FO0;SoAT&o6Ddfl-xalf9;A8!g?8}{n@=(;37j;g z9!RBLHoktwkd;dIp5p#jAGN$KpE)XY&K)_LLT8fPc8wdsEDv#W*gYBorzVCPJRv5! zcTJ^g!kML-6;WvzvNu<(dbQ>$r*!?jJoz)KGqVf;H7RqVV^VGMZizxLrYhbbzzpik zG`Zy@)|=(WXs%>;#;C~o+iGNO@Af`JqLZR;@ zW`#v#QSqJo`)DO7eup2aTnVYmM(`RN>DvhmrRrLB8UNaC)gG)`{Td?>4(>P!h(r=n z7Kt>5NQ%+p4^mXwsLp#l?rdxcrU3X3==nQzN`N8z?r!_n`Y-L zeTy8lY0;?~`9T;?8o{ySMs(DNp-v{8Trz3G^sZfA-R^}GNoVLNMe}Is7P)gT>#;`= zjlRWrlRQpwDe5HRP0HV+t_d5KcJ*C?PhiyoU8zMMpJ6EVxYd=<3pS3OQg!PVN-8MI zf}RjV#CWY_QH4AvFfU@Pa7QTep&>KjPA7h-ul!|U2d`{d+;(9I-u5@r{_wji??1R} zpQ|VinEDPc4)9G)q!83eipc2PgS{LDMgo;%N*tspjrD=G2|hi;$LEKGa~e*!%Q2KX z))IDV+tQ8yIlP}=?lBZe4bpYB^hnoDlFU4c;)4_^TAGS2fyI@qm?fW>0u)WjY7U}e zNGM7@`_9j+kC}3-nh0bg?iQcRxl-ifUBDwk`UCPNHjB0e9WBHh86`N+fgETKmBSg5 zo2Lg(o>MsgwMSN9?nHhYFg`GH9ri~TP4zDiW82^0YyT;T+yIE&kX;*?$Iv52%O7p{ z?$y1f7Pt0dE|oZa7jGBo6XPdb2r~~SR~07ORkxGtxC-U7Fdlb_%OVP0_4M|@R1-zH zsh~YmY2Ct5>LzOs%U;--{qo13*6>(>3h!-xxfF2+rN>4*Y1zPo{ueg!?^!VoSTT)i zrVPnRi|0Rj;+<==2JLTa5(QKcHdj>OXLCVGWtYa3CSsl9EK!OJATmguA55A?F)7pq zUks)vH6SG-A-@1siWlhJS%#z*n)`74)YWv#Wjm)+83w{CJ$iN+@7iT4uPBA4aVN)rbv`lOF| zq71ngAR>JcTa|}cw?X?@{*wMGNVu+|OudzjKy4=-f+(^99tZzcyHW)a9eokORC)y z!c)&|+{tb>>+ni}r`krJz-r|noU3#j-u&I$-a)@5ultHsgA~*z zkm?mATZnfv?(h`C0Uqc6Ns9o=rs#L&g=9@t7+-)#XO&!wC$78;;(wPCbcW=0-@{HH zyrRbg=MT^AHV!t93JQxy=MRbABL|Ha%MNuw1U(%Obpv`a6LXrFz}yZO< zjVa`E0wH`X*yyojqYT;4(q6y%(Y9+}yZ9#0LNPD^vZAf7rD1bOY#!?IK_V#cfnb;! z)(scX~ro;RmkUI(T+eNZV8Yz-3CjA+j3C*7)lMb>%kXRwm;zMI%iWg zfwt~Zv>d`6e+KsJHG5Xb_aeVQ86CMSL5jbIz#eJ%{!`p^!>Oo zFWqND6$E>l0i2CPh2#*n*?G1V63a+QDLzgS6E#ZG8;Fj$X)owWSBr?BFqMZqqCDjh z49UgCZ{B))?c(t}&QrN45Ge&9m7-dL+`m2Bl>R^zg~=$#C9@;m-v}<{Myl;FWRG#Y zdeo@1R~-HEE`2Hmu#vqseU&kP^vXjAe?z7i`RJtRs$2IuuLoyK4&b*^<@UmY`e)1$-Yt)ei&QXwZ5`7c>6^{{)Gbk&2s zNCdd8S4%=}Oap@BfmE3RoHQmml;FT0_K*%(y}#BqzW~A%pWrJp;|j-enlKY~d1jV| zi*eykgk<$F@4Kv8BgU0JR!dc`Qw7Nit%mI=cj=Ly{j6tRXcEcFG;!%lTk<2)NcT68 z?r%9rF+&oX9RQ*klZabc-~RNnqE@SF3NU*FsY8C=AkGF zsl-3x?ChU8xMx?2`bt#sR0JtLa}R-5E!BFI3F z@mPye?a9inXl9b_34_pM;`US&J;XdBO6VAB==iRSH zwgwYNF9w1BN#0@&O?PkhNW zec#?|V&Z{aF)1S|&>Jk&?$Ds@#sPgJicg~mGq;-fL5XNs07kNajD#V%!Rz+FpMSa9 ztPM}*=3@DYPxBRn1mviY+mMxNQlT>ZkDpdFknx{$YVCfp!L5I!thU+(bM!ek3Dd5n zIj2w^`lEk@71n)%up$~p0O?qUXckztP%Lv(Qex$5Q0moG&Sgk01l#re=c_j!-MbLV zGse2vBh%>!$v$JPo+`u?IyOKkrMwFb(q8O_uzjkUSFI1+S7}>;a<`)Ekr|RhL2oW8 zQ@6tXjloysjV&l1Rsipa5EDT+q*Ug$@%JsT4s#q_{&*Z+{>V@(qa^*7)O!DmKaXn% zF{}W$4WNVsmmcNeT2*HC+N?M|CGdIyQ|y*AW|_|H68!7JVy-S-V8f7oZ*A(V1}Fcy z{^K0|CJ?SqizOpR99u+Q77uDU=RhPOvV8aOO*29X6nZ5kS@zxwzqG^r3BC+e4alvQ z-5G3^AxQvsZ=czy&jCZb<@PJaYlw!7qS0`Ux>s>zc>YkJKF+X8C&eesMtgfa8(6N;zmNcXsQWs#>m?~}Jeh~+pgz9Xh0?C_2GG64*Him!xH{ry$ zToU*?V8c4vAYv#r-3t7HAAftY{MC1l^y>ZWmrU{9aY}A^-swkrCo6tW~hf?v3y3W1momHvXNof^TA z)BuiqHlX944B6wJN8HeOWB&cCR*2owq7O;(&ILt=tvZNeCVI=ZQwA-OrC(%b_+{QRc5SCVQD2DT2xSS4jq%%S;b!7+xSbQ1eE zqa=LpfOKI;Y5d$UL-UQ-zva3Edc06@eam?G1T_U*B%hB(LFnLUj-VKGOrfzc^@L9H zO0CZ8ptiAh_e_M}udM+gwFYgEG6Y9;3=>vt9@gWF;=|YQsujP143x`u7S$5)SILr^ zfl4-`iy;|mVP?AW>?YHTE9~Cx`#;$)cbt9aC@b+2>rj6VK$^=0dk&!l6B*8%nvqOc z5(g>htI&xVH#vqt*8LH8wYZ)eD4I+w>cofzV;a+TWi+=Yj1TfCv%OI&Udk40IBr1P|9)U6(aV}=$RAdI9( zg}kJD&lF?iCk{iwKMXC4ukJAsNu$>#v0WZxLwK)j3G z)xmO(YfE4d&;^gMNjdscXU&am@d`1CzfTtC~d zU<0pZ)#|l*eDy5G>nt3k#7W$Vo<%$yAtCp(w+6{V|Uz;Ld4Dc zE0lHli0d}}NRnsFgL#vA$lFpxkcdPYPJ+zhBzl>RAu;(`>+hab?bhDWRnDfsg@+S> z3}y0crK*`Iu_p;cH9g2T`PejuK06Uuf0w`o8c`l&z6L}pdoh^w#bnY9rJ7ii{&4@3 z^R}<5JKHh@lRe(YqjHg~zg045+hY{2+A+ ztZpwUgJlDTQV&>$9P{31-`;yh&rZ4U`tLY62Zx4F=>XkLB4Um=2iajbqE>nFfr=ex z+XJoaICx4D;hB){otceZnIZm;Z>c>~9=Nn(`&(zMbwh#DK8&rPpmG-5i5XtUbgJqr z=uq{YDsP&&swO=&@IcXZ-R$|oqpzH7FoB@ntD7Ds#_VLAw z&;R(y`Q4qPJmxh6wQ?)MWeU4~Y)ld>DwqDxXOB0H60*u|Sj(EIoGDJ+L^&^y;M-QOvUU#ySTXb!OA>M~{V+pJ%mXyVh z<}#ETWV!a{RS%ZA;fyJj?L?;L%Ek*kl!VJghC5g^l%^+BOGNOv5RDSOB45Qt?6l=r zzw|_y_%$oyK}!f&E$OfkLvq8}_8R}(^Ty-@>E3y($tV>n8p--l83(rps1GIG?v#pj zyMc){Wp}P5n=l2W^S}tsqYpGNB-^nAYyCA~)2?+lV!0;rM4jGcbP_a*^2g?rsa-%W?GA6q_5i$hn5TGKBA;>s|c4S{- z2-d%=(h9m@K~cKOlxlB+NIn?!{$SF3hUBf4a`PS^{MDsBKjLU^4vmDPxoQlM8kCwZ zG$k&4hN8TOR4TkUJ`}_?l;Su;@>SdCC(dkl^Yhbo%0dx8(Mc~bfyzme8LcCuW)FWv zQ$^r-e}!ngktCz^YXan$6DY@IXosPakby9iYGpH! z!)tV1cgtIaXX_mY&P(MU3bkJl%t#}g5b${Ijy38bn_%g88IW{wsOC_mJ{igUWd;)k z{yMojc!cV7O*lhxpWG=gTzOLev!0-1Hp)`blgpje;LK#*>6*0Lku1f&(ouJ=4>7`+YL$dW$C4cqy zew}Xq0#jJ>2|O{aJYiU?_#uSBm-B_@*>*|j1kPl83=6iqeLj6nQzKlizb0;PAY@j_6(&~Skczs=gkhk*FJx`&m#7C_8Fw9ZT&Senkur>?;Eiy6Px^j z|23&a(u3^OwR?iKbJBah9r%Cw82vin@%WCZ&MmQ#z%VY1~Fk{;KoR5 z7XKjbdV~@e`WtMDO%=o4f~4@;)@XkOwfKREi;^#oAs`Y*A>+wJ;!!GZTwEXZeH9thQFj%5eQi7hwDA!7m>ff?(N=o*UwVDh4qM;4 zH_E@z$Y~-3pCz98aW9xauR7ILvp$0H#P3+ zbllX&*GK-*Dj!&u#)$Dpgfz2+KGN09T+qy1a`g6hBa$ z`iKD#At#Qws^NEWaEXx-9^;Z^Y9oNM^4?+v`~VWbQlMjLX}lwVAt~>UANNL!`+E+( zB7qLiuESV4H(-{Kk|CZtWuV1Af~a{KsCl|HewBuyR26FmcdRXa$g1D&-Aok+X1JqH zSo7eYmD+1ChP{jc-lOWn53-tYov!!wl3>~6MewjM(jB!7i6l-R{?=>t5BmFd&l|-| znDGy4bAma@2v>iI6|spjn8avc{%EpghEkO+^FO@fuhvzM`@6A;jztvB0euPZoJ??o z;(Cnfx}RY?`cx?fj~(H07xgtZO$P3c1Mb4>^}t<*OrT~eB45THd!A!E%0^iw1vC|AXxzg%QcqAG_SuOFgw4`uM3+Hpx1mElH=3cTfBJoxwRWy>M4+4 zTLLu-9P*$j;&+XdDT5mM$1Zzo9~I zSNU|vfl*D?{wUHT2t}xN!fh`g%`Sy%Me_*~N5THqQFKo=Lko@L_|Kue7Cf=*(Ibpb zS-Jw1MTs~urATlZdW7OUuAJpLN|qUP>oU--%P8V7BoSxN%raeO*Lmp%t6R2oDYXDu z{X{{5(@oPwVZrQ<8A^DZA}i`3`m`6(hIem5r+R@Hwi6L%ThOSs^gSAeB;M4$`_pCH z7M%Azi4zSNoTO+J8hb3k*6J0b+Ky0kqWFT7#KcE=T2GK#&(e7N3q$tXe5G49*_Qw0 z?h$kd4C9BvR-Bowumm55SjVu{BV3F#%LK+sCw!zbY$9Y2Fnv!M%-R@A)wh0m&bPN* zpZ&+S%Oj?%9YNr~94)upRP6~D*aXQ732sUYKw8sE z<8g6@_DMK36P`r0 zpsNYL5(vMtG$vLIrG{DQ-u7CBlV+aqz%n9SCpvNBWj_tEPt(_9K#=$}!$S@*S!MQ2(X7614RouTqBmM8>~P>f5+(51A!>1@WVsI z8qD6_1e%x(RBvfABDZ>O^mfajH&R8!`kcQ|O zor&XCK zAP{%_F+dr;M#p==#9;H1mQpag?4scE1YrFHAHKngDK*AO(>M|t7=_RQp`_?$+k;fuq1MOz^ z0_WwpkTsI16%~y7sYvGUPQ?bXR`D?AKPP&|pwxUx{*h6Whm(MA0_tv}dwUp?Z@=w2 zYRE-P?%Dhu)mJ6BkZ?q;piaxtu*3hgztd=-;seZWG@lCarNS{3zpn* zi#pW~N+mlsa>_gukdl96jHO07l&>BgH`ZVZdWWxblWr`A`;)g=%`IZK%{A9#{7mvI2o}&Ql6D%UENtQaH--rDiGcXToJQa)8Il7h z|BSrol9T5QE^S1O$wiS#X@I>_uVy*wWb@N_Of)A^Wh;$ft%Z*istyd$@y{EO+M58x*G7qLc} ziRioq=)8q)WMwGT*QP5C7QNK^n}=rfB@b#|4Z}0|NHoytt}wjzfJUKsR0#p;^ad&Y zQLS*O7oV8nYXF1c-00veTthGBfToBh>S}QRm;wqf*^}XMo)rA9|)fPUjC5DgasiBBx%(Z`}YBBqAbrt#)#=(tw~A#76+>rj{%8Ce;#Qv~)sJ z<8J~HWfkDuQ3d*<0YkDDzVoYFM&DO@&E&|QX_cGcm60^n9`iGa_N)e_v1f0-Bx{z1 zuj7&DfHlt{Yi3BUCcdn2+TEpVcCMh-Q4)p|*HOBQ(&HG7vWU_nlmdg0Xyu38(_MH{ zlFvhc`$M#RV#uxl3)?UHXLs>O7c1$|3~C7#za`rXgAP|?*kd4Ku{skcNXhik5hhtm zLaU%a)XoEH=g~#k49P|NliJmN?YvHB-(gMJRGYo!ROIcbY%D9%Ot$8aQ!tmek?S6^q>L+0*@LVKH(Y*M>dD|3e+4}=>8F-!bKk@FnI822e) z0?Hg8fThs`^ae6Raxm(qfm3p7PrrA$QP2XuX&Mqlx&%-H0qc`)2F>yFxp*hQPgcSO zh4vmn^RyzcRbEz;1b2c2chbs;A-nQCX~vC@SO0PTa3@%KN9}dkiNB!$?2IAnjsQgc zw;jZCN))YdI7eoghzqy-La^GGz8=j`s=ZA|=09-I%u*|69RYS@il3BpR*g!Q>i2-g z#As68m1ZENY%a0APUV;IW-7T9>U5CB>80y~)-z-;l|SV7C#!u|chUwGdLnBVYhv3) zH>}N6sdoT#R0bL0q927DJss)H0>EhQ&qVS8Eq;vEy>G-8NT!aVN zSOzKwC0@M^>*Tky&IevGB-g7AKE7R#A@6-N(5MWhPF(GkPYuXRP>MHu9FHL% z9{~iI)d?9dKgB7a5VBW*55IyI91MM8G-Y9}oBCbe>%hY_k4;hBL6sGp7!$6U$54%r zaCuFPiBCw_E(X>vrbx=rmj>IH^9FRtt}tM`m?9w)&1KZP6ELh9r(Z94bdInP2fvE(M6X@}EhA6bYd& zcprfJQYCmr|Fe}hgFC#L?xA2PRnIE-jn$vM>Df|8?2c&+NWqVwB3_pY5JZ9uWP~EY zYP~cn?k@!HFQf>{kd2_P)ttEen^$kWFVYnmP0JU_Z<#~7wisK&Bw*`~31F=CMn7NS z{}kZ=6rH?eNG`U1@#*2$e|gng*BA;QQ1VA&tj_xsxE&mhC*bdnaPgPxYLy|8zCQ~X zKT8-hWUceiee-Ym?fs>XN4r0eOi+qUrU>dGI{n{Q@G?7xbkvhU80SL%Z+1^{FQ>ZyQRVoEs^e4C<_O8C1eB zLR{Tcfs9aoAdreBOk}uYr$W;=iEAvEl8eLzed@$7(PJ(}I_*^SqF+gCD9a+wAH!>j zkHN2eoHY!hJwvJQtzY@=l6xO~v0&j`qwSc9y6OoEHsk4oZypl8{A49ZSV~HQ``pMQY4$LUVHqExFm*P*gIWYvgE*b! z!G4DR4wP@+p%0@nlxk~LXZWj8ri&snMqqe^BGQJZ z@T8G*)Zp4V(buS_5L?nkY15rf>$xo36k-KR^B?tr>@BDbkl z;}(thKe+1ij>>nyMKADYd*e5*TRpcz!TgiwDpaC!wtwVF#G<=6d_mQX@g_V@F(~RF zC9RCbU?~L1IYj#jDNt3XItz{z`pJnix9)@-r3GQF%{tmx> z|M!W?IT~9PjSv?nX5ye6L)IOkWM!3^7oxH0Vy@<8Q012?U@;`C=rv8MEcp1FtM|{9 z`V(+ie53w3D^(ZnsI8lW#u;BapZX6m?FQT>AYZe5|mM$n&Oew`G1!*s(M3wPF|C^9CzDeIcU`W1s{b1GRr?)t#&ExE!n&4+B#8(14WQ{~l z#Ooj^3lx)cXrQr9X%f$bb?77;eHLu=S-Mt~Avuh5+m-d7IdlA3WmO_Tt5m7jNh%Oq zoig$<#PtXflk#=Q>eys4)m#IrxrR2T7_z1GC#HY??S~utRMX470)6fcZ!E-VM;zATC7C*(&3x5_R11Kgg>1VVHt;oq^*r!r(`VoZkBV}j|J!#zCpCi`ge%NbF zQ-jQy=uQJbNvbpaC~0&MQ~yZ7Q3h%|0J~EsLW1_~C;JkbIfgv}_VEPm&@v>)B66C~ z{$kbdefh1PDA6YU1=!#T%Y;v-%#M0&&z^`pin(56k45iyi%WKDKm zlPa4!AKtG4`9euni6pTS6uxeZ5fvlJAEAhXCLt=Ay&^IaAH_6O*6M!ps6lWYe;%!lBbda|SNq-|HD&g@5DjHN1etd@)C5*5Dtz|SVOz$lspwp z1@wvwNXl-6H-s(AOZ;0^AhBvT9>`-Tb%s^024An-_51VJ*+K?tLgXaGqC`y++(a71 z;t`58G&Xz=BN>}8rc~=esn(N!V@UklV=MYqxnasDZ+p(!a|f=gjU7eE=$vD(^t;yJ zOc+D{O+fxlLY^T({)~MV-q2<47Z(BYl=;$ErJ;i9o)7XH-A~$iO67M3ro)7Go6)O| zVhfuRXBDG$22O@?I%MysXQ5#*Bri5Rv}I!3Ek~5UC*YEZ`I5bh=Gb87@GFt|+9kyV zAleg~G$w!zAb<_zk{A+~bZFkFkq?}A#&0?g#%#~L{b9b;)jX5|d)>&=?T5C+6b;0- z5z2tQX^f57iLfF+)V?sIu?jveO$xjn_CdDibOJdtl$vC%|HU8nbZt{>;?GKs5;(!b zh2$t5TnCp{lrkvb2&7SFWI3AS67PWw-y<0^Bt|r|^zkjoO zfx5(mlKux@WOf=r9<2%N3{}uzcO|g*O8SBlL-xg*tIwZS<>#wkzsoRJsHCVZsV|#| zZWcCJG!y)*9^^4rH|hBt#(oHl{gCorhNOryYG8{lbEbAY-qsJX9Ba2NKr!U?1miq( zyMCM{AZgj;?1v~4WZF#GSE#4O)Q^zbJ4kfA7xK+}>FaI`$#M1HYdybY+Lk|VQ%gk6 zS73x+H%F7!T`VtR0%WxP?r{!)SGGh}@V5E-)D6>#|CrcWNf>kh{)MQHn$!=@O^ zBMjm(#!E!9I4Y*w+{89n@!@0+>RSQztz+Mly7<$x`RPRQvkr5004T@XBfo1!GZBO}cc^G?vhb z2P3kmy{M4GvyXviAJb+ULsBc<`Dx+vi%#!RyW7zFgn3^k9B28pBj3LgJe zX}oQZp}WlEC%-hS@47c0n`rF1Kp`P-y0OEE+6a{x5?&{RiubD^^bH{N4ZWVm&@zM2 z*xAcwR5)SO$I9;|zN3sTEaN-M(#b(deiod*1)RR6jG3XQ4Nk}W_2Y$Gy8Q4t$_Q(< z#U=)Wq=ZRco2%LsgVdtY>kOFDq7YQax&e+OdKT+?b+XK&uw#rvZVSnCTl%^!LvlRw z?~dE@rnTE|tz|A~Hu3@J5Ql7{gK3J?EZcHkN#7{t?||6vgcw5> zvCStn+tTpN#};da!8tIff?fu*J=?CWBa@;!M+yL6Yi}$IY?W-!EqcT*nRNOhp6Ee% zLe`HVkkt*Ltd1eM!lh_S-R8ZjK6wRG+eFpBfmS&wKuGD<`lB0@c>BTe{C;#ipP^Pp zyek`yTyxz6@9Hf}?}{HCfFoYT0MBOhAR}Y&H4!U~XeWWcnUsacu^Fm}qhdTgnNd{r`j{Bw4J?=rA`vdgv4_e4Ew9#-3 zXw0IEqZmpJv^2i+-qc~2-*H(_%F&FIaq~U=G3Z&4%ot^u>fs0_O86-gO->gau0%)b zx*7;rT?TL6V@NJn-S5n^SA26#|JJ&kjTv=uF4dU9t|aSL1!&cUh_k0TjqH#vm7jzM z8XE0Th?m{X2Mv)kXNSHBj=3;wZVw)5KTWQ$x;hKu=vmo#qKYB8qG02HhAiFp>uQfF zO^n=zA4f-n{3DlP$Z`IP$t+SmGcH*pGem;D(#dQPX*TUtG9)+DojbPUj;vmPyo#ly z{0Tr$ad8214D0&Hy1qpqRk_S8u@`GCF4;Q4(Uwj*n4vJ#-+H^#W<9*D;S!slAnWXE z%-hfr9!ZCQRixpqj8nD|O`E|&K%W9#WlG;(_5=>lCQ7cJoCI;a?8DKU-tx( z$qm~&jbks-Bb_cWvXhB+#)Zg^Dp~%dmfUzXi~PYOP-J<8iYyGJ+E|A+>xmANtKPR9 z-!&t3X2O6h`C6sZ;y*a<(wy#!h@QsKVoMW?JG8s6R2~gM_h|YWB}4Wc$Z?%&Zthd@ z_3COMTCj*0(3gYTkyMC2>Euz8EER8@A}N|$)NwCNUQqGXaeq+9{pmt+hU5~vS^du% zTCUamJ9BgM+?TU~Wbtf%qr97aCLAg`litl{sEx7gze~T;XyDTAkEvn|%PCm$MQ+>X zOl*`S(2h_H1f3wAk55Qyy9g9u5!I>~vhRH~Jma-bK7Ve;ElL3}3VPdTk#x+)pogh- z@@WLmlPY|pDMjGHtRw7ycsgI$2ZFEToUl$Wxszt|J0_NU^gXiY+f#WHhIh? zql*d(@qCjKw$}((EsV_{UNq(sx%-EV)cNLuHwH+IMnPPL5P_dw@H$Bs5>9IZ#^fp=xK{Q|Fwh zghA{;HhZo&@;$&UZVs>_u*8Uu`~P7Dr13@!lmF37@9 zKtGNTh(ng|Dgm$8+Vu+K&+0evRf6;NB<1 zJ%&<)ZG0(nYTs9ndHVa;996Q(wzsjU)k(T|RA+FiGEUJRO}rPGVul#ws#Q>>>H<^h z(i=n!$s0sdny&u7M&%!uDyE=|ka8mER??bDI(dwVsY66H`5zgVo-s+P5zQt%M310V zBhk2y0Ztr4ODKlqM#DpDPA_}sr}G=~xuc*}qaw9Wd@ z`v2^JJ9M60v3^<0XJ5G8?oo@?kao+aM^7vVm=q}f-f2Ls0|S)kur-~Inn!5)goEcu zC`XJei&w-lB&Y5to_lE79yP~AUoSUn1J)#KXu!jkQOJyxM5&zZsMNJYs%pn6nxpAO z2lql^*94r~A{pvKq{G!%{r+b%G2v zE5VWn07G(Kv51dQBK?R~pkG!3 zA-Zm6XmquN-_Ijg%hDQg=#-{Ejp9M*6(v9@^q@57Gs{5I+(wE2G z_13RSeM}VwX!dq0b4R1%ajq9a0LV?Ju{==G7Sh<@`c5Gyy3N!1axMfp7nZ?`%@~pk zD-S(j(BXGp&RT-bi#V{2^XpJEm1 z5ivm&*A(=1yW&91Gy~lg;Z_dz z8*!1h35ZTb1=&k_Ny@~EoM_sAB}bW3%QBeRp8|3`h3ZEPrLM72bpK=SI<)@nD`&?8 zjk)-gHg-AMw2#szdq6*mN?vE;jXltBxf3xcIof#B7*^SduwFQn!W_pYuebNmG?AwQ zM4k%tax6os8I~PgDoma*v|iT_?1PGMnanjxWCSRMn73tu+r`5|5pO}(`4|)2Y2u{A ziXA*vR19+NOL87csl}skI{(oe+}>tLJ~^|d!OBM-nbdH+)p`j9KwT)fTIDpyfX;+9 z#+h^sh#`9nsPoUq9CyjBpPN_PY1tzhn&=sI7otM#J0u2f@Kk!-|AR%9;J%G^U{meL zH!>vOQT+3l4nKYU*HN=9hXGxThZ<#IwY*^yxq(c^V4=hCIWGaHd0eR1$o7_jim2e;iPtR;4;4Op+WD>aR)91ZkW} zd#()0Ws_xo+Wy_j-S74zE{LMbOAwfN+mg7W>Fq$%+m*-n92l}*^{>XS^s2pb_2o*_ z867KU;8Upb=61>?YoAYcawYMoi#UfQo&~zv2{UT?vB2A7sq)5(Z7{Z`OFr}($ONv*!P9&U*~6!I_c-ACFCRK|isGjg zDCks(pSC%OR~mlWacTL9S1t3tGIYn{J|W)&xY~ob%8V!SFO+@qrB6?Ex&5*1>HjJ)&TjlQ;kI2RT$N@lHDM$2U zR;muviR;j{(*`n;@WUC0ebRmK4OJ8yh?6jpZ1xBTs4YM|{gj3SG%lHVYL3y}3+V1u z1~-%#vL^A=A%}EtJ?7%CEY4W^unq$7mbIh7Teo|jj7dpCTn_}~(;d6FI;x3?R?jex zcs+|L_T(v9Rfht#L+Ri>Lvrovu$C2%x#!PG)ik|PxgeBrr`w@V&Qy?Ep7wu6Yphg2 z`g{RUdI6QQ7?N_0NYuU5G6R81*n9XJmqB#Gr_?h%k~I@!w987K}LXIQ?Bi7(wE zpt*?Z&aUxC5PzW*L})=DpWwXN!;|JsPMUO;j_K z8fi27!kg<=dH;YP@A4(h`{Q86iIV0X|3cC{Fay<@C7rMbg<@AiH$F0)&W;1Nj3c%% zlzPmvrTym3&wbE#Qf`)u&nu)-giS&X8L#bt! zHOv1~y7%JNmEPrJ34CW1S60YM#Oq`BVzk`0%LkyWT>L$oz#w1;2$fHjnKL?KJkmrn z#)vWG(EwWif}uvUk!{R|HO*|QD>5V}FaH^E(wh}N|Lg><1T0*SQWf89d%!Nzdwe@E zgYYwXgEUs*xP>sch#{AQ=r5-L$WZD5EBZ#$52`h=PcQrGC%H&gToDMk4B0eSjPd(9 z3`*xH{ec-6^sgO&Lz zHje92x7pb_3Fu0E1aJbTi0zz&RRo4h?qltdDD`(v!snEF!&XXf`jQ7j5<EnLa}E1C`jNmSRZTs1h&ePf&R2m0!NfxMahMQfgwiHGQ1L=~h=5CO zD2%IS1EGOcu~?Pu2H?dFlu0louZlL_`DXPsZT4A6nMC9aA%6oVNX-y40^OLIdVho> z+i{}sBsE!Bk%vHbFoa$?XGkiZ-M(ACJa5>#tKyQhZiKRgU@&y8)LT2m)LLZa`4HzG z6Y2GDBq}&-sfKxS6G-$Xihc~G=34DuaP`3K@1_r0Nzo6LguI-yKd_f;ViXupLe3-fVm)o*{cP*H8D4Z+2Yr!04_%_4+0-# zEn?8s?Ur=?cM==)I3vDjM$tq%){}5eeqW%WFD2Cs+1g=Ns&UpY@ISnp4QDzxT=RL& zZ98uL%hE%oAhT^3qDQv}q#6j3BDd(>z5kh1IjeNj1LSU4s&jxNbBH4h$+cx0FW9}j z{|gg#;h7ZYY`eN)#%}@!!p_SPleePX;# zQWO-39+-i*dy{@yd|iu4;_h7F?p%tx42h2(Qs>)VA7<^>lciFeH@2X7SOL8GkMp9F zlLU;yxz|BnB0V1XeSCR5Tg4E6<+IeD%dgrwf8K)m&uM;(3rQ}W=stVJZ#^&rze}Fs z=t(ul!@4{VxIK@!&5$exCLe$1N!{jNy9?i@EP_l1KZmJy2F#Dz2bBb7^^ zYMNSHW^OD1ZY&_vVn|HuoL)!%*sbSXUubT)LQGD;{eBKtGC6n6&i@xJaVvFUm$MM~ zvXHcdA<>eH4*L4f7w5fEL-U1GOR$;XHWjxfIG%Le;DN^Nh~9{m1RZWt%z6+=dXV;` z7)mv?33<&c4tn$5jaS=mT~OiCP7OrG@;nT~wmnEzI-=~ry(Ej)6b}Ij4^dLXP%6ig z@X6+Tm%Xv4LLV&^@gYD&Flm<_0W#7NAp_HpA)P4r1L4tz{lh@W!<2I~B%h4gx$&N( z{@6duan5$DT2}3%47vYmubL!?M+wrPAKtBg1TcSuPW3R9`lpo11b>{hr1iW{epnur zo+7J|n+t6TDbXZiOm{~ZbW2)lid9Qi0rsot;}Hyr0$tbhnvXZUe09GFdz%n~?g-y4 zHn!1mY(aPLj{pkn275`V5PP?e)qb6xicevllB$uhd;zq6L6TxfUf#TH^uY567p^O7 zjRn?UJeXXstt*61Ui#e}`eU*)S{j&MaUtp?WLg)Y%?8L6bfv3cta(CNkk5}3fFCE& zxl4xR^{=P*d8qrRznu1)$R2nAa+iWcBt>X&XtsVMM!O!NsQni*hes;fNVKm4DX-Gq zX$+<6TR(WrZ4K{e-a7kIEc!uNk5)_e#dtXjEuIOe>={+bOE@OL03=`Kt0kOB_+r@z zLWZ$~H3>hGIXEn-8w>hML-5$U)drtmTOkwPnsq*8!VIOJxBU8N`T3uH@XpouMWVM; z1kK(y#yF5Demg=)#V3jW21yCNu^mu@*FX(kBMWCJ)xwfha3@?Z|KkJaMPx^R4tDO z)NGLmyW$1smjmw$6hizzd@~G;|fU~`<8>+Z#m>3 zL-tJgyX|{ToO{cXE6sIlC=s$QiRxU*;f4V30*azXDBj_I1q(JfnOKfP->8+ z^wu)N&&uk&YF%#b=^eZG8PE*~tSk!0ztL^iY2xw##B^y}WYWA9w9@{R=c8(Fay zXbD4ojh1X*v2{zer~2JM2tfcL4#M=}Vvv8fA;!COv52PHYu+VAqmrBL55UGBNMRTf z2YvFPmmYZRofjUUU;5;)VFATb_)_nCa%+%m3W&}htVmLHAL@PFO7X%hFYLO8KVHm_ zA)|f>it-QT;6(xqr7Bxhc=4lsc8_lQ*-}~{qOS(jWxv4gh9_biQ+7K-AqPK6dLK4t zrwd}Cl$!|n2ZZnsT`kR!TrJ)I%{tkYmVa125&{GX-kvb;-xk{MT(uDuH>?bIO(fQ& zNim6pr%@cR8sK+?7^H-B0NB(46}y9w7?LYX{y6v63g?{v!fPZX3|zEzBKaLMoqu)| zNd6HN6ORBi!>0pc)h;@xCz6!xF5&XQ-5|5wl*ln8^sL`nu6p%ne$12l1yxu%V3Lnx zMQj;KEUJkFIy&--QJQX~5>eF6EBxrmExK4Mba7QuycM-apFVjaUrrFad5`>)KbJas1iu0K1Cw$6TC06dk5~`Y8HU@X}CB zLS~K-c9H$@;hZ{9v8j`VA46hjr9o)jA8-Be%&|L~kZ(}7BM}$*U>meLM~DSEXGbU- zfr-TYOW?@u6uvVr1twCeES@uBDAmA5qvKz!vba&hyI2n}4h+dHD$GX~%L)(4k*0_U z0fOYnh#;@cCjk&s`wE`t?qmX>9JVdUFjzF@fu8bZ@gxXCvX3MVq(=a4JjSO>+++q(AyTAwJP#9g zAP{ySeKeY(R4c1^cYX85D=*&k&Voo#w6=*0Dp+ztfdxrI1~?_By_FG9;M>n3K*k{? zABN;0;TyvboxY-YqzFP{mF$ClMnqik9B=%2`BROc)4F91p0{i_*S% zKgcs$qG z{4t}H?e_-^`;#wY=zZgsH|^XuYf;%T58-hayWFAbtVA@YCC2lBN;v}*tI^&j=8^}9 zPMLZ0Sx!UGD2Nh=Pl3YADfG1ihEfMxlep;Bx4Z4RXHX9^3G2$eYAilkn!INwnuUyT zi4a!rMR18%V-E$997^t(A*sfGcK@<3pXl4Ysa-2Xi!~97N!9mip(cd-O9P%pQQ4hi z2c%Qx35_9FqO0iWyEGVAux(`iD3TL@NTq(T(@QRPi(R@sboer}|GaW@4lKz9R zE_^TtvmAy}Us~z6-sigh*H5Z)ZEkni6vzK_QSl23;gVgh zDvc`5&~9UA_x^PE_c^ok{=zR`p@#v|rQBydk|X2jA9e^m1nbTR!!qRHEG+ynbb)zB zrPr%Z>CyMa`6M3MfQhM=GzB;l;|i*ljBq(4s+DLn35sRokE>ik#X1rc>qt^8hUBi% z5to-c;KG0Abf96hlGGP)x-VY3%^u;t7Xy;r{z+tWan&UPRSTKs8^{#!c2lzP!vPGX zs#pU_HSK>-ZvV#T&@eV*%O4P)ONZMWpu@QiSNwvVFo}}A_YHPNm--;-wLyfn=|xh8 K;De8>v;PO%=. This is the topmost header -// in the CRT header lattice, and is always the first CRT header to be included, -// explicitly or implicitly. Therefore, this header also has several definitions -// that are used throughout the CRT. -// -#pragma once -#define _INC_VADEFS - -#define _CRT_PACKING 8 -#pragma pack(push, _CRT_PACKING) - -// C4339: '__type_info_node': use of undefined type detected in CLR meta-data (/Wall) -#ifndef _VCRUNTIME_DISABLED_WARNING_4339 - #ifdef _M_CEE_PURE - #define _VCRUNTIME_DISABLED_WARNING_4339 4339 - #else - #define _VCRUNTIME_DISABLED_WARNING_4339 - #endif -#endif - -// C4412: function signature contains type ''; -// C++ objects are unsafe to pass between pure code and mixed or native. (/Wall) -#ifndef _VCRUNTIME_DISABLED_WARNING_4412 - #ifdef _M_CEE_PURE - #define _VCRUNTIME_DISABLED_WARNING_4412 4412 - #else - #define _VCRUNTIME_DISABLED_WARNING_4412 - #endif -#endif - -// Use _VCRUNTIME_EXTRA_DISABLED_WARNINGS to add additional warning suppressions to VCRuntime headers. -#ifndef _VCRUNTIME_EXTRA_DISABLED_WARNINGS - #define _VCRUNTIME_EXTRA_DISABLED_WARNINGS -#endif - -// C4514: unreferenced inline function has been removed (/Wall) -// C4820: '' : 'N' bytes padding added after data member (/Wall) -#ifndef _VCRUNTIME_DISABLED_WARNINGS - #define _VCRUNTIME_DISABLED_WARNINGS _VCRUNTIME_DISABLED_WARNING_4339 _VCRUNTIME_DISABLED_WARNING_4412 4514 4820 _VCRUNTIME_EXTRA_DISABLED_WARNINGS -#endif - -#pragma warning(push) -#pragma warning(disable: _VCRUNTIME_DISABLED_WARNINGS) - -#ifdef __cplusplus -extern "C" { -#endif - -#if !defined _W64 -#define _W64 -#endif - -#ifndef _UINTPTR_T_DEFINED - #define _UINTPTR_T_DEFINED - #ifdef _WIN64 - typedef unsigned __int64 uintptr_t; - #else - typedef unsigned int uintptr_t; - #endif -#endif - -#ifndef _VA_LIST_DEFINED - #define _VA_LIST_DEFINED - #ifdef _M_CEE_PURE - typedef System::ArgIterator va_list; - #else - typedef char* va_list; - #endif -#endif - -#ifdef __cplusplus - #define _ADDRESSOF(v) (&const_cast(reinterpret_cast(v))) -#else - #define _ADDRESSOF(v) (&(v)) -#endif - -#if (defined _M_ARM || defined _M_HYBRID_X86_ARM64) && !defined _M_CEE_PURE - #define _VA_ALIGN 4 - #define _SLOTSIZEOF(t) ((sizeof(t) + _VA_ALIGN - 1) & ~(_VA_ALIGN - 1)) - #define _APALIGN(t,ap) (((va_list)0 - (ap)) & (__alignof(t) - 1)) -#elif (defined _M_ARM64 || defined _M_ARM64EC) && !defined _M_CEE_PURE - #define _VA_ALIGN 8 - #define _SLOTSIZEOF(t) ((sizeof(t) + _VA_ALIGN - 1) & ~(_VA_ALIGN - 1)) - #define _APALIGN(t,ap) (((va_list)0 - (ap)) & (__alignof(t) - 1)) -#else - #define _SLOTSIZEOF(t) (sizeof(t)) - #define _APALIGN(t,ap) (__alignof(t)) -#endif - -#if defined _M_CEE_PURE || (defined _M_CEE && !defined _M_ARM && !defined _M_ARM64) - - void __cdecl __va_start(va_list*, ...); - void* __cdecl __va_arg(va_list*, ...); - void __cdecl __va_end(va_list*); - - #define __crt_va_start_a(ap, v) ((void)(__va_start(&ap, _ADDRESSOF(v), _SLOTSIZEOF(v), __alignof(v), _ADDRESSOF(v)))) - #define __crt_va_arg(ap, t) (*(t *)__va_arg(&ap, _SLOTSIZEOF(t), _APALIGN(t,ap), (t*)0)) - #define __crt_va_end(ap) ((void)(__va_end(&ap))) - -#elif defined _M_IX86 && !defined _M_HYBRID_X86_ARM64 - - #define _INTSIZEOF(n) ((sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1)) - - #define __crt_va_start_a(ap, v) ((void)(ap = (va_list)_ADDRESSOF(v) + _INTSIZEOF(v))) - #define __crt_va_arg(ap, t) (*(t*)((ap += _INTSIZEOF(t)) - _INTSIZEOF(t))) - #define __crt_va_end(ap) ((void)(ap = (va_list)0)) - -#elif defined _M_ARM - - #ifdef __cplusplus - void __cdecl __va_start(va_list*, ...); - #define __crt_va_start_a(ap, v) ((void)(__va_start(&ap, _ADDRESSOF(v), _SLOTSIZEOF(v), _ADDRESSOF(v)))) - #else - #define __crt_va_start_a(ap, v) ((void)(ap = (va_list)_ADDRESSOF(v) + _SLOTSIZEOF(v))) - #endif - - #define __crt_va_arg(ap, t) (*(t*)((ap += _SLOTSIZEOF(t) + _APALIGN(t,ap)) - _SLOTSIZEOF(t))) - #define __crt_va_end(ap) ((void)(ap = (va_list)0)) - -#elif defined _M_HYBRID_X86_ARM64 - void __cdecl __va_start(va_list*, ...); - #define __crt_va_start_a(ap,v) ((void)(__va_start(&ap, _ADDRESSOF(v), _SLOTSIZEOF(v), __alignof(v), _ADDRESSOF(v)))) - #define __crt_va_arg(ap, t) (*(t*)((ap += _SLOTSIZEOF(t)) - _SLOTSIZEOF(t))) - #define __crt_va_end(ap) ((void)(ap = (va_list)0)) - -#elif defined _M_ARM64 - - void __cdecl __va_start(va_list*, ...); - - #define __crt_va_start_a(ap,v) ((void)(__va_start(&ap, _ADDRESSOF(v), _SLOTSIZEOF(v), __alignof(v), _ADDRESSOF(v)))) - #define __crt_va_arg(ap, t) \ - ((sizeof(t) > (2 * sizeof(__int64))) \ - ? **(t**)((ap += sizeof(__int64)) - sizeof(__int64)) \ - : *(t*)((ap += _SLOTSIZEOF(t) + _APALIGN(t,ap)) - _SLOTSIZEOF(t))) - #define __crt_va_end(ap) ((void)(ap = (va_list)0)) - -#elif defined _M_ARM64EC - void __cdecl __va_start(va_list*, ...); - //take the ARM64 va_start (for now) - #define __crt_va_start_a(ap,v) ((void)(__va_start(&ap, _ADDRESSOF(v), _SLOTSIZEOF(v), __alignof(v), _ADDRESSOF(v)))) - //a hybrid va arg, to account for the shift in calling convention, with the alignment of ARM64 - #define __crt_va_arg(ap, t) \ - ((sizeof(t) > sizeof(__int64) || (sizeof(t) & (sizeof(t) - 1)) != 0) \ - ? **(t**)((ap += sizeof(__int64)) - sizeof(__int64)) \ - : *(t*)((ap += _SLOTSIZEOF(t) + _APALIGN(t,ap)) - _SLOTSIZEOF(t))) - #define __crt_va_end(ap) ((void)(ap = (va_list)0)) - -#elif defined _M_X64 - - void __cdecl __va_start(va_list* , ...); - - #define __crt_va_start_a(ap, x) ((void)(__va_start(&ap, x))) - #define __crt_va_arg(ap, t) \ - ((sizeof(t) > sizeof(__int64) || (sizeof(t) & (sizeof(t) - 1)) != 0) \ - ? **(t**)((ap += sizeof(__int64)) - sizeof(__int64)) \ - : *(t* )((ap += sizeof(__int64)) - sizeof(__int64))) - #define __crt_va_end(ap) ((void)(ap = (va_list)0)) - -#endif - -#ifdef __cplusplus -} // extern "C" -#endif - -#if defined __cplusplus && !defined _CRT_NO_VA_START_VALIDATION - extern "C++" - { - template - struct __vcrt_va_list_is_reference - { - enum : bool { __the_value = false }; - }; - - template - struct __vcrt_va_list_is_reference<_Ty&> - { - enum : bool { __the_value = true }; - }; - - template - struct __vcrt_va_list_is_reference<_Ty&&> - { - enum : bool { __the_value = true }; - }; - - template - struct __vcrt_assert_va_start_is_not_reference - { - static_assert(!__vcrt_va_list_is_reference<_Ty>::__the_value, - "va_start argument must not have reference type and must not be parenthesized"); - }; - } // extern "C++" - - #define __crt_va_start(ap, x) ((void)(__vcrt_assert_va_start_is_not_reference(), __crt_va_start_a(ap, x))) - -#else // ^^^ __cplusplus ^^^ // vvv !__cplusplus vvv // - - #define __crt_va_start(ap, x) __crt_va_start_a(ap, x) - -#endif - -#pragma warning(pop) // _VCRUNTIME_DISABLED_WARNINGS -#pragma pack(pop) diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@vadefs.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@vadefs.h.blob deleted file mode 100644 index 7d6b27822ef4583554cb6e210c053bcf57c8f625..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5268 zcmb_gTWllM89w8uXjxWiv`f9!stnz3Y9|>VJ257#2)o91f=M#YdYpJ0P){c_V`rAR zSTo}!ju7G^S}K(n3P`MWQ4!+Or-EpoS}Gx}suoeH)go2hs+G2VsMMC1zED&_`k&+R z*hx0FgUQ2h`=4{Z|NhN68AG4{GCO}AA%xd$Q^T@lTR3YgbyKrE7iVl$!=`R&iX&G% z#kO4A&|JLO(!?@`4hvzOX~M>BLtn$HRxxBxiz(5vjaX%!{R2sr6jS zWtNLMSVqd}q6kaalWgvREc|Dlncd$EL&gBi`hb1 zN+pqyA0!V0ZpUTaQteGQmBjgKwSjd@G3u%|DC)&EdkafYCRVEafS_gDF;u*jO0H|N zsyQwaDylA5E!*{U#T67Nr!ylPn{vZNcoX4O9pS=S9E6H+v6M+b4|uXu)x4Rl=@dyN zg_}iIK%TowLb75#8JZonbCu-pWx}TIJPMHu;IpQ9w$qq7Ob@TsbwfpG4zs1}_;1%e-H5HD&!5eU*E>*Y0a^{t z&+9-gi8%I~5x&OavB^{-4xhNLI39LA2V$Z)l%E)pP;y~Jf+rKL*}#Ojo(k1;g&|QyiymSxO&qmk*`-2T_8a$-OiVf*^JhBN6fvbV*djMB5xMbS~kf;P-6UkUI z8JoI$GJa1G(uU&HVOUKqfS@#baP&a9WK&s}9nx>ubcd^NYlqrU^Bh&LR66$TiOgrO zK8o8)m8;2)vfevPLpPye1}~B3IF{Yp+y)R^=*^=)LBFxMoe%%>@1MW&50-@N&8 zhqc_rQZcr!plkv`_2d8K}JiZj-Ktf`gNy3x(5~S#4>i3`h?cRS4kuv-X1EHb7efFD6 z4X45(CjB&An3Jad`qI;L!E7`7ATsRbgT1>5B%lhuHQyb)HQHnsHV#+9SEfT8$R~VT z-@kG4SJP8}yeqH;2Q9F(pGQE?=*SDGq(vz`J|8*KS`dlQTMZjc{(j#7PKa)KsbrLY z>@mLM`Do`4floxE{9QAAJj%D>DC{{Pso~Lm9 zVc;lpUJYLb=DZsI@l$?UFMjRZjit9wF9U0mg}l@`6YUc2d&XtL87L2xKF<8v_r8LT zUNK2Jn=R%fsW1!0IUY1Ypp9%q`N$|p>Wvr{Cqh)7_fh`zt&g_8S2*(nA}th3QhqhZ ZVA?$1Rs(DD9hs+StKrpHh)S`E_J6(K%s~JE diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@vcruntime.h b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@vcruntime.h deleted file mode 100644 index 321e5c85d..000000000 --- a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@vcruntime.h +++ /dev/null @@ -1,416 +0,0 @@ -// -// vcruntime.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// Declarations used throughout the VCRuntime library. -// -#pragma once -// -// Note on use of "deprecate": -// -// Various places in this header and other headers use -// __declspec(deprecate) or macros that have the term DEPRECATE in them. -// We use "deprecate" here ONLY to signal the compiler to emit a warning -// about these items. The use of "deprecate" should NOT be taken to imply -// that any standard committee has deprecated these functions from the -// relevant standards. In fact, these functions are NOT deprecated from -// the standard. -// -// Full details can be found in our documentation by searching for -// "Security Enhancements in the CRT". -// -#ifndef _VCRUNTIME_H -#define _VCRUNTIME_H - -#ifndef _VCRT_COMPILER_PREPROCESSOR -// Many VCRuntime headers avoid exposing their contents to non-compilers like -// the Windows resource compiler and Qt's meta-object compiler (moc). -#if defined(RC_INVOKED) || defined(Q_MOC_RUN) -#define _VCRT_COMPILER_PREPROCESSOR 0 -#else -#define _VCRT_COMPILER_PREPROCESSOR 1 -#endif -#endif // _VCRT_COMPILER_PREPROCESSOR - -#ifndef _UCRT - #define _UCRT -#endif - -// The _CRTIMP macro is not used in the VCRuntime or the CoreCRT anymore, but -// there is a lot of existing code that declares CRT functions using this macro, -// and if we remove its definition, we break that existing code. It is thus -// defined here only for compatibility. -#ifndef _CRTIMP - #define _VCRT_DEFINED_CRTIMP - #if defined CRTDLL && defined _CRTBLD - #define _CRTIMP __declspec(dllexport) - #else - #ifdef _DLL - #define _CRTIMP __declspec(dllimport) - #else - #define _CRTIMP - #endif - #endif -#endif - -#include -#include - -#pragma warning(push) -#pragma warning(disable: _VCRUNTIME_DISABLED_WARNINGS) - -// All C headers have a common prologue and epilogue, to enclose the header in -// an extern "C" declaration when the header is #included in a C++ translation -// unit and to push/pop the packing. -#if defined __cplusplus - - #define _CRT_BEGIN_C_HEADER \ - __pragma(pack(push, _CRT_PACKING)) \ - extern "C" { - - #define _CRT_END_C_HEADER \ - } \ - __pragma(pack(pop)) - -#elif defined __midl - - #define _CRT_BEGIN_C_HEADER \ - cpp_quote("__pragma(pack(push, _CRT_PACKING))") \ - cpp_quote("extern \"C\" {") - - #define _CRT_END_C_HEADER \ - cpp_quote("}") \ - cpp_quote("__pragma(pack(pop))") - -#else - - #define _CRT_BEGIN_C_HEADER \ - __pragma(pack(push, _CRT_PACKING)) - - #define _CRT_END_C_HEADER \ - __pragma(pack(pop)) - -#endif - -_CRT_BEGIN_C_HEADER - - - -#ifndef _HAS_EXCEPTIONS // Predefine as 0 to disable exceptions - #ifdef _KERNEL_MODE - #define _HAS_EXCEPTIONS 0 - #else - #define _HAS_EXCEPTIONS 1 - #endif /* _KERNEL_MODE */ -#endif /* _HAS_EXCEPTIONS */ - - - -#define _CRT_STRINGIZE_(x) #x -#define _CRT_STRINGIZE(x) _CRT_STRINGIZE_(x) - -#define _CRT_WIDE_(s) L ## s -#define _CRT_WIDE(s) _CRT_WIDE_(s) - -#define _CRT_CONCATENATE_(a, b) a ## b -#define _CRT_CONCATENATE(a, b) _CRT_CONCATENATE_(a, b) - -#define _CRT_UNPARENTHESIZE_(...) __VA_ARGS__ -#define _CRT_UNPARENTHESIZE(...) _CRT_UNPARENTHESIZE_ __VA_ARGS__ - -#ifndef _VCRTIMP - #if defined _CRTIMP && !defined _VCRT_DEFINED_CRTIMP - #define _VCRTIMP _CRTIMP - #elif defined _VCRT_BUILD && defined CRTDLL && !defined _VCRT_SAT_1 - #define _VCRTIMP __declspec(dllexport) - #else - #define _VCRTIMP - #endif -#endif - -#ifndef _MRTIMP - #if defined MRTDLL && defined _CRTBLD && !defined _M_CEE_PURE - #define _MRTIMP __declspec(dllexport) - #else - #define _MRTIMP - #endif -#endif - -// Definitions of calling conventions used code sometimes compiled as managed -#if defined _M_CEE_PURE || defined MRTDLL - #define __CLRCALL_OR_CDECL __clrcall - #define __CLR_OR_THIS_CALL __clrcall -#else - #define __CLRCALL_OR_CDECL __cdecl - #define __CLR_OR_THIS_CALL -#endif - -#ifdef _M_CEE_PURE - #define __CLRCALL_PURE_OR_CDECL __clrcall -#else - #define __CLRCALL_PURE_OR_CDECL __cdecl -#endif - -#define __CRTDECL __CLRCALL_PURE_OR_CDECL - -// Definitions of common __declspecs -#define _VCRT_NOALIAS __declspec(noalias) -#define _VCRT_RESTRICT __declspec(restrict) -#define _VCRT_ALLOCATOR __declspec(allocator) - -#if defined _M_CEE && defined _M_X64 - #define _VCRT_JIT_INTRINSIC __declspec(jitintrinsic) -#else - #define _VCRT_JIT_INTRINSIC -#endif - -#ifdef __midl - #define _VCRT_ALIGN(x) -#else - #define _VCRT_ALIGN(x) __declspec(align(x)) -#endif - -#ifndef _CONST_RETURN - #ifdef __cplusplus - #define _CRT_CONST_CORRECT_OVERLOADS - #define _CONST_RETURN const - #else - #define _CONST_RETURN - #endif -#endif - -// For backwards compatibility -#define _WConst_return _CONST_RETURN - -// Definitions of common types -#ifdef _WIN64 - typedef unsigned __int64 size_t; - typedef __int64 ptrdiff_t; - typedef __int64 intptr_t; -#else - typedef unsigned int size_t; - typedef int ptrdiff_t; - typedef int intptr_t; -#endif - -#if defined __cplusplus - typedef bool __vcrt_bool; -#elif defined __midl - // MIDL understands neither bool nor _Bool. Use char as a best-fit - // replacement (the differences won't matter in practice). - typedef char __vcrt_bool; -#else - typedef _Bool __vcrt_bool; -#endif - -// Indicate that these common types are defined -#ifndef _SIZE_T_DEFINED - #define _SIZE_T_DEFINED -#endif - -#ifndef _PTRDIFF_T_DEFINED - #define _PTRDIFF_T_DEFINED -#endif - -#ifndef _INTPTR_T_DEFINED - #define _INTPTR_T_DEFINED -#endif - -// Provide a typedef for wchar_t for use under /Zc:wchar_t- -#ifndef _WCHAR_T_DEFINED - #define _WCHAR_T_DEFINED - typedef unsigned short wchar_t; -#endif - -#ifndef NULL - #ifdef __cplusplus - #define NULL 0 - #else - #define NULL ((void *)0) - #endif -#endif - -#if defined _M_X64 || defined _M_ARM || defined _M_ARM64 - #define _UNALIGNED __unaligned -#else - #define _UNALIGNED -#endif - -#if defined _M_ARM64EC - #define __security_check_cookie __security_check_cookie_arm64ec -#endif - -#ifdef __cplusplus - extern "C++" - { - template - char (*__countof_helper(_UNALIGNED _CountofType (&_Array)[_SizeOfArray]))[_SizeOfArray]; - - #define __crt_countof(_Array) (sizeof(*__countof_helper(_Array)) + 0) - } -#else - #define __crt_countof(_Array) (sizeof(_Array) / sizeof(_Array[0])) -#endif - -#if defined(_M_IX86) && defined(_CRT_LEGACY_X86_FLT_EXCEPTIONS) && !defined(_M_CEE_PURE) - #pragma comment(lib, "legacy_x86_flt_exceptions") -#endif - -#ifdef __cplusplus - #if defined(_MSVC_LANG) && _MSVC_LANG > __cplusplus - #define _STL_LANG _MSVC_LANG - #else // ^^^ language mode is _MSVC_LANG / language mode is __cplusplus vvv - #define _STL_LANG __cplusplus - #endif // ^^^ language mode is larger of _MSVC_LANG and __cplusplus ^^^ -#else // ^^^ determine compiler's C++ mode / no C++ support vvv - #define _STL_LANG 0L -#endif // ^^^ no C++ support ^^^ - -#ifndef _HAS_CXX17 - #if _STL_LANG > 201402L - #define _HAS_CXX17 1 - #else - #define _HAS_CXX17 0 - #endif -#endif // _HAS_CXX17 - -#ifndef _HAS_CXX20 - #if _HAS_CXX17 && _STL_LANG > 201703L - #define _HAS_CXX20 1 - #else - #define _HAS_CXX20 0 - #endif -#endif // _HAS_CXX20 - -#ifndef _HAS_CXX23 - #if _HAS_CXX20 && _STL_LANG > 202002L - #define _HAS_CXX23 1 - #else - #define _HAS_CXX23 0 - #endif -#endif // _HAS_CXX23 - -#ifndef _HAS_CXX26 - #if _HAS_CXX23 && _STL_LANG > 202302L - #define _HAS_CXX26 1 - #else - #define _HAS_CXX26 0 - #endif -#endif // _HAS_CXX26 - -#undef _STL_LANG - -#if _HAS_CXX20 && !_HAS_CXX17 - #error _HAS_CXX20 must imply _HAS_CXX17. -#endif - -#if _HAS_CXX23 && !_HAS_CXX20 - #error _HAS_CXX23 must imply _HAS_CXX20. -#endif - -#if _HAS_CXX26 && !_HAS_CXX23 - #error _HAS_CXX26 must imply _HAS_CXX23. -#endif - -// [[nodiscard]] attributes on STL functions -#ifndef _HAS_NODISCARD - #ifndef __has_cpp_attribute - #define _HAS_NODISCARD 0 - #elif __has_cpp_attribute(nodiscard) >= 201603L // TRANSITION, VSO#939899 (need toolset update) - #define _HAS_NODISCARD 1 - #else - #define _HAS_NODISCARD 0 - #endif -#endif // _HAS_NODISCARD - -#if _HAS_NODISCARD - #define _NODISCARD [[nodiscard]] -#else // ^^^ CAN HAZ [[nodiscard]] / NO CAN HAZ [[nodiscard]] vvv - #define _NODISCARD -#endif // _HAS_NODISCARD - -#pragma push_macro("msvc") -#pragma push_macro("constexpr") -#undef msvc -#undef constexpr - -// Determine if we should use [[msvc::constexpr]] to allow for "extended constexpr" -// in Visual C++. -#ifndef _MSVC_CONSTEXPR - #ifdef _MSVC_CONSTEXPR_ATTRIBUTE - #define _MSVC_CONSTEXPR [[msvc::constexpr]] - #else - #define _MSVC_CONSTEXPR - #endif -#endif - -#pragma pop_macro("constexpr") -#pragma pop_macro("msvc") - -#ifdef _BUILD_STD_MODULE - #define _VCRT_EXPORT_STD export -#else // ^^^ defined(_BUILD_STD_MODULE) / !defined(_BUILD_STD_MODULE) vvv - #define _VCRT_EXPORT_STD -#endif // ^^^ !defined(_BUILD_STD_MODULE) ^^^ - -// See note on use of "deprecate" at the top of this file -#define _CRT_DEPRECATE_TEXT(_Text) __declspec(deprecated(_Text)) - -#if defined _CRT_SECURE_NO_DEPRECATE && !defined _CRT_SECURE_NO_WARNINGS - #define _CRT_SECURE_NO_WARNINGS -#endif - -#ifndef _CRT_INSECURE_DEPRECATE - #ifdef _CRT_SECURE_NO_WARNINGS - #define _CRT_INSECURE_DEPRECATE(_Replacement) - #else - #define _CRT_INSECURE_DEPRECATE(_Replacement) _CRT_DEPRECATE_TEXT( \ - "This function or variable may be unsafe. Consider using " \ - #_Replacement \ - " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " \ - "See online help for details.") - #endif -#endif - -#if defined _CRT_SECURE_DEPRECATE_MEMORY && !defined _CRT_SECURE_WARNINGS_MEMORY - #define _CRT_SECURE_WARNINGS_MEMORY -#endif - -#ifndef _CRT_INSECURE_DEPRECATE_MEMORY - #ifndef _CRT_SECURE_WARNINGS_MEMORY - #define _CRT_INSECURE_DEPRECATE_MEMORY(_Replacement) - #else - #define _CRT_INSECURE_DEPRECATE_MEMORY(_Replacement) \ - _CRT_INSECURE_DEPRECATE(_Replacement) - #endif -#endif - -#if !defined _M_CEE && !defined __midl - void __cdecl __security_init_cookie(void); - - #if defined(_M_IX86) - void __fastcall __security_check_cookie(_In_ uintptr_t _StackCookie); - __declspec(noreturn) void __cdecl __report_gsfailure(void); - #elif defined(_M_ARM64EC) - void __cdecl __security_check_cookie_arm64ec(_In_ uintptr_t _StackCookie); - __declspec(noreturn) void __cdecl __report_gsfailure(_In_ uintptr_t _StackCookie); - #else - void __cdecl __security_check_cookie(_In_ uintptr_t _StackCookie); - __declspec(noreturn) void __cdecl __report_gsfailure(_In_ uintptr_t _StackCookie); - #endif -#endif - -extern uintptr_t __security_cookie; - -#ifndef _VCRT_BUILD - #define __vcrt_malloc_normal(_Size) malloc(_Size) - #define __vcrt_calloc_normal(_Count, _Size) calloc(_Count, _Size) - #define __vcrt_free_normal(_Memory) free(_Memory) -#endif - -_CRT_END_C_HEADER - -#pragma warning(pop) // _VCRUNTIME_DISABLED_WARNINGS - -#endif // _VCRUNTIME_H diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@vcruntime.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@vcruntime.h.blob deleted file mode 100644 index e668bb3507277212ab95b49ddf7ea729cb119fdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8664 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 diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@vcruntime_string.h b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@vcruntime_string.h deleted file mode 100644 index 121fc8192..000000000 --- a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@vcruntime_string.h +++ /dev/null @@ -1,113 +0,0 @@ -// -// vcruntime_string.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// functionality that is implemented in the VCRuntime. -// -#pragma once - -#include - -#pragma warning(push) -#pragma warning(disable: _VCRUNTIME_DISABLED_WARNINGS) - -#ifndef __midl - -_CRT_BEGIN_C_HEADER - - - -_NODISCARD _Check_return_ -_VCRTIMP void _CONST_RETURN* __cdecl memchr( - _In_reads_bytes_opt_(_MaxCount) void const* _Buf, - _In_ int _Val, - _In_ size_t _MaxCount - ); - -_NODISCARD _Check_return_ -int __cdecl memcmp( - _In_reads_bytes_(_Size) void const* _Buf1, - _In_reads_bytes_(_Size) void const* _Buf2, - _In_ size_t _Size - ); - -_CRT_INSECURE_DEPRECATE_MEMORY(memcpy_s) -_Post_equal_to_(_Dst) -_At_buffer_( - (unsigned char*)_Dst, - _Iter_, - _Size, - _Post_satisfies_(((unsigned char*)_Dst)[_Iter_] == ((unsigned char*)_Src)[_Iter_]) -) -void* __cdecl memcpy( - _Out_writes_bytes_all_(_Size) void* _Dst, - _In_reads_bytes_(_Size) void const* _Src, - _In_ size_t _Size - ); - -_CRT_INSECURE_DEPRECATE_MEMORY(memmove_s) -_VCRTIMP void* __cdecl memmove( - _Out_writes_bytes_all_opt_(_Size) void* _Dst, - _In_reads_bytes_opt_(_Size) void const* _Src, - _In_ size_t _Size - ); - -_Post_equal_to_(_Dst) -_At_buffer_( - (unsigned char*)_Dst, - _Iter_, - _Size, - _Post_satisfies_(((unsigned char*)_Dst)[_Iter_] == _Val) -) -void* __cdecl memset( - _Out_writes_bytes_all_(_Size) void* _Dst, - _In_ int _Val, - _In_ size_t _Size - ); - -_NODISCARD _Check_return_ -_VCRTIMP char _CONST_RETURN* __cdecl strchr( - _In_z_ char const* _Str, - _In_ int _Val - ); - -_NODISCARD _Check_return_ -_VCRTIMP char _CONST_RETURN* __cdecl strrchr( - _In_z_ char const* _Str, - _In_ int _Ch - ); - -_NODISCARD _Check_return_ _Ret_maybenull_ -_VCRTIMP char _CONST_RETURN* __cdecl strstr( - _In_z_ char const* _Str, - _In_z_ char const* _SubStr - ); - -_NODISCARD _Check_return_ -_When_(return != NULL, _Ret_range_(_Str, _Str + _String_length_(_Str) - 1)) -_VCRTIMP wchar_t _CONST_RETURN* __cdecl wcschr( - _In_z_ wchar_t const* _Str, - _In_ wchar_t _Ch - ); - -_NODISCARD _Check_return_ -_VCRTIMP wchar_t _CONST_RETURN* __cdecl wcsrchr( - _In_z_ wchar_t const* _Str, - _In_ wchar_t _Ch - ); - -_NODISCARD _Check_return_ _Ret_maybenull_ -_When_(return != NULL, _Ret_range_(_Str, _Str + _String_length_(_Str) - 1)) -_VCRTIMP wchar_t _CONST_RETURN* __cdecl wcsstr( - _In_z_ wchar_t const* _Str, - _In_z_ wchar_t const* _SubStr - ); - - - -_CRT_END_C_HEADER - -#endif // __midl - -#pragma warning(pop) // _VCRUNTIME_DISABLED_WARNINGS diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@vcruntime_string.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@VC@Tools@MSVC@14.44.35207@include@vcruntime_string.h.blob deleted file mode 100644 index 3f8ba1e54d2ce1f5fac446c398bb7d1583cdbd6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5354 zcmcInZEPE79e*zDl-ZtJ(_vImQ6B`aDX>PtSn&+dwL*li?g97Uux9{1=>n(fw5F@zlfh$5CKJ!Wg0@-E1+ihBF`6pF z${0=bpr_t#G{a~*4+YAsvkZI~2QH2fW;6Eb4yQnFRGldTFKB!pzbb^wetJn!M3}7! z`0DYxyFW8NK1f-X}C+6YuLlURQY`lWFJ7 zI*g2rwzn~&AVHNh{eV_q$^os`sW zgEktbUSSfJxO|DJ1g@oZK49RWX8%9ESZjoX4GOHPva*k?GDc4~<#or@G^RlHnqwrE zQ!A?4YCXS?d`avE!-_&yHcje% z`@KDx+wj{+kdn!0SXU~~f|g2Y^V)+)1y@j2EOVuHrz$AErBf9iR`oy=7Sn^IO%Kc$ zH#%H?`RXSGv8i$|Q8P-~OJ(LK@clkj2so|Fgj#d=NN> z?Wa}`l}BeJ7!{B3@t7b#G+-X!g%xB!d+LL zAFf&6V1&E7Zg8DakadIUuI(6vL*W!bge?(+>3dJQ`j#Fa|3QsuT@iS@3$8~fMQ8O# zza1z{?uv?>wHwf4;Dl|$Ne~lg+MxaAo9}%8-cwr(jT}MdOvW{qtEsF1Wc)cJUnX1E zVry#zv1VZn(ihI2c;(@L1bSP&-qC4O_=2GzgfD3MghBM!W1o*)el3z{by`x^al`9s zJ=J5-$bXajCQChT&lo{?EN2Y`#BY|qb@`b`XImA(qhnwECI?(L7lhY^+y?(6SDs2g z{qzeztMNmE?8cKu%GX+>ZuQRQ^X zkM2-6WT4w}H;|+5@2&&tF>(yB{PW+x`P$~M{@oNGvI})}`H17_IA8z;07EDQ7(+3@ zWwZ>qidF$R!~vEkf7JQV@KNWpW9X2~pI zdGxu*?SK2&?Nd!G-KhJBkMJN5U=RfX!zc{6h!z1;C} zxwG5WJq+hwu3KB8LFW zPi%br#urv@)cT<+cesb_0qsZ0qkyN#Q-Bmn0eVR~D diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt.h b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt.h deleted file mode 100644 index 4646a85c9..000000000 --- a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt.h +++ /dev/null @@ -1,2114 +0,0 @@ -// -// corecrt.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// Declarations used throughout the CoreCRT library. -// -#pragma once - -#include - -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// -// Windows API Partitioning and ARM Desktop Support -// -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -#ifndef _CRT_USE_WINAPI_FAMILY_DESKTOP_APP - #ifdef WINAPI_FAMILY - #include - #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) - #define _CRT_USE_WINAPI_FAMILY_DESKTOP_APP - #else - #ifdef WINAPI_FAMILY_PHONE_APP - #if WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP - #define _CRT_USE_WINAPI_FAMILY_PHONE_APP - #endif - #endif - - #ifdef WINAPI_FAMILY_GAMES - #if WINAPI_FAMILY == WINAPI_FAMILY_GAMES - #define _CRT_USE_WINAPI_FAMILY_GAMES - #endif - #endif - #endif - #else - #define _CRT_USE_WINAPI_FAMILY_DESKTOP_APP - #endif -#endif - -#ifndef _ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE - #define _ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE 1 -#endif - -#ifndef _CRT_BUILD_DESKTOP_APP - #ifdef _CRT_USE_WINAPI_FAMILY_DESKTOP_APP - #define _CRT_BUILD_DESKTOP_APP 1 - #else - #define _CRT_BUILD_DESKTOP_APP 0 - #endif -#endif - -// Verify that the ARM Desktop SDK is available when building an ARM Desktop app -#ifdef _M_ARM - #if _CRT_BUILD_DESKTOP_APP && !_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE - #error Compiling Desktop applications for the ARM platform is not supported. - #endif -#endif - -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// -// Warning Suppression -// -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - -// C4412: function signature contains type '_locale_t'; -// C++ objects are unsafe to pass between pure code and mixed or native. (/Wall) -#ifndef _UCRT_DISABLED_WARNING_4412 - #ifdef _M_CEE_PURE - #define _UCRT_DISABLED_WARNING_4412 4412 - #else - #define _UCRT_DISABLED_WARNING_4412 - #endif -#endif - -// Use _UCRT_EXTRA_DISABLED_WARNINGS to add additional warning suppressions to UCRT headers. -#ifndef _UCRT_EXTRA_DISABLED_WARNINGS - #define _UCRT_EXTRA_DISABLED_WARNINGS -#endif - -// C4324: structure was padded due to __declspec(align()) (/W4) -// C4514: unreferenced inline function has been removed (/Wall) -// C4574: 'MACRO' is defined to be '0': did you mean to use '#if MACRO'? (/Wall) -// C4668: '__cplusplus' is not defined as a preprocessor macro (/Wall) -// C4710: function not inlined (/Wall) -// C4793: 'function' is compiled as native code (/Wall and /W1 under /clr:pure) -// C4820: padding after data member (/Wall) -// C4995: name was marked #pragma deprecated -// C4996: __declspec(deprecated) -// C28719: Banned API, use a more robust and secure replacement. -// C28726: Banned or deprecated API, use a more robust and secure replacement. -// C28727: Banned API. -#ifndef _UCRT_DISABLED_WARNINGS - #define _UCRT_DISABLED_WARNINGS 4324 _UCRT_DISABLED_WARNING_4412 4514 4574 4710 4793 4820 4995 4996 28719 28726 28727 _UCRT_EXTRA_DISABLED_WARNINGS -#endif - -#ifndef _UCRT_DISABLE_CLANG_WARNINGS - #ifdef __clang__ - // warning: declspec(deprecated) [-Wdeprecated-declarations] - // warning: __declspec attribute 'allocator' is not supported [-Wignored-attributes] - // warning: '#pragma optimize' is not supported [-Wignored-pragma-optimize] - // warning: unknown pragma ignored [-Wunknown-pragmas] - #define _UCRT_DISABLE_CLANG_WARNINGS \ - _Pragma("clang diagnostic push") \ - _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"") \ - _Pragma("clang diagnostic ignored \"-Wignored-attributes\"") \ - _Pragma("clang diagnostic ignored \"-Wignored-pragma-optimize\"") \ - _Pragma("clang diagnostic ignored \"-Wunknown-pragmas\"") - #else // __clang__ - #define _UCRT_DISABLE_CLANG_WARNINGS - #endif // __clang__ -#endif // _UCRT_DISABLE_CLANG_WARNINGS - -#ifndef _UCRT_RESTORE_CLANG_WARNINGS - #ifdef __clang__ - #define _UCRT_RESTORE_CLANG_WARNINGS _Pragma("clang diagnostic pop") - #else // __clang__ - #define _UCRT_RESTORE_CLANG_WARNINGS - #endif // __clang__ -#endif // _UCRT_RESTORE_CLANG_WARNINGS - -#pragma warning(push) -#pragma warning(disable: _UCRT_DISABLED_WARNINGS) -_UCRT_DISABLE_CLANG_WARNINGS - -_CRT_BEGIN_C_HEADER - -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// -// Annotation Macros -// -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -#ifndef _ACRTIMP - #if defined _CRTIMP && !defined _VCRT_DEFINED_CRTIMP - #define _ACRTIMP _CRTIMP - #elif !defined _CORECRT_BUILD && defined _DLL - #define _ACRTIMP __declspec(dllimport) - #else - #define _ACRTIMP - #endif -#endif - -// If you need the ability to remove __declspec(import) from an API, to support static replacement, -// declare the API using _ACRTIMP_ALT instead of _ACRTIMP. -#ifndef _ACRTIMP_ALT - #define _ACRTIMP_ALT _ACRTIMP -#endif - -#ifndef _DCRTIMP - #if defined _CRTIMP && !defined _VCRT_DEFINED_CRTIMP - #define _DCRTIMP _CRTIMP - #elif !defined _CORECRT_BUILD && defined _DLL - #define _DCRTIMP __declspec(dllimport) - #else - #define _DCRTIMP - #endif -#endif - -#if defined _CRT_SUPPRESS_RESTRICT || defined _CORECRT_BUILD - #define _CRTRESTRICT -#else - #define _CRTRESTRICT __declspec(restrict) -#endif - -#if defined _MSC_VER && _MSC_VER >= 1900 && !defined _CORECRT_BUILD - #define _CRTALLOCATOR __declspec(allocator) -#else - #define _CRTALLOCATOR -#endif - -#if defined _M_CEE && defined _M_X64 - // This is only needed when managed code is calling the native APIs, - // targeting the 64-bit runtime. - #define _CRT_JIT_INTRINSIC __declspec(jitintrinsic) -#else - #define _CRT_JIT_INTRINSIC -#endif - -// __declspec(guard(overflow)) enabled by /sdl compiler switch for CRT allocators -#ifdef _GUARDOVERFLOW_CRT_ALLOCATORS - #define _CRT_GUARDOVERFLOW __declspec(guard(overflow)) -#else - #define _CRT_GUARDOVERFLOW -#endif - -#if defined _DLL && (defined _M_HYBRID || defined _M_ARM64EC) && (defined _CORECRT_BUILD || defined _VCRT_BUILD) - #define _CRT_HYBRIDPATCHABLE __declspec(hybrid_patchable) -#else - #define _CRT_HYBRIDPATCHABLE -#endif - -// The CLR requires code calling other SecurityCritical code or using SecurityCritical types -// to be marked as SecurityCritical. -// _CRT_SECURITYCRITICAL_ATTRIBUTE covers this for internal function definitions. -// _CRT_INLINE_PURE_SECURITYCRITICAL_ATTRIBUTE is for inline pure functions defined in the header. -// This is clr:pure-only because for mixed mode we compile inline functions as native. -#ifdef _M_CEE_PURE - #define _CRT_INLINE_PURE_SECURITYCRITICAL_ATTRIBUTE [System::Security::SecurityCritical] -#else - #define _CRT_INLINE_PURE_SECURITYCRITICAL_ATTRIBUTE -#endif - -#ifndef _CONST_RETURN - #ifdef __cplusplus - #define _CONST_RETURN const - #define _CRT_CONST_CORRECT_OVERLOADS - #else - #define _CONST_RETURN - #endif -#endif - -#define _WConst_return _CONST_RETURN // For backwards compatibility - -#ifndef _CRT_ALIGN - #ifdef __midl - #define _CRT_ALIGN(x) - #else - #define _CRT_ALIGN(x) __declspec(align(x)) - #endif -#endif - -#if defined _PREFAST_ && defined _CA_SHOULD_CHECK_RETURN - #define _Check_return_opt_ _Check_return_ -#else - #define _Check_return_opt_ -#endif - -#if defined _PREFAST_ && defined _CA_SHOULD_CHECK_RETURN_WER - #define _Check_return_wat_ _Check_return_ -#else - #define _Check_return_wat_ -#endif - -#if !defined __midl && !defined MIDL_PASS && defined _PREFAST_ - #define __crt_typefix(ctype) __declspec("SAL_typefix(" _CRT_STRINGIZE(ctype) ")") -#else - #define __crt_typefix(ctype) -#endif - -#ifndef _CRT_NOEXCEPT - #ifdef __cplusplus - #define _CRT_NOEXCEPT noexcept - #else - #define _CRT_NOEXCEPT - #endif -#endif - - -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// -// Miscellaneous Stuff -// -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -#ifdef __cplusplus -extern "C++" -{ - template - struct _CrtEnableIf; - - template - struct _CrtEnableIf - { - typedef _Ty _Type; - }; -} -#endif - -#if defined __cplusplus - typedef bool __crt_bool; -#elif defined __midl - // MIDL understands neither bool nor _Bool. Use char as a best-fit - // replacement (the differences won't matter in practice). - typedef char __crt_bool; -#else - typedef _Bool __crt_bool; -#endif - -#define _ARGMAX 100 -#define _TRUNCATE ((size_t)-1) -#define _CRT_INT_MAX 2147483647 -#define _CRT_SIZE_MAX ((size_t)-1) - -#define __FILEW__ _CRT_WIDE(__FILE__) -#define __FUNCTIONW__ _CRT_WIDE(__FUNCTION__) - -#ifdef __cplusplus - #ifndef _STATIC_ASSERT - #define _STATIC_ASSERT(expr) static_assert((expr), #expr) - #endif -#else - #ifndef _STATIC_ASSERT - #ifdef __clang__ - #define _STATIC_ASSERT(expr) _Static_assert((expr), #expr) - #else - #define _STATIC_ASSERT(expr) typedef char __static_assert_t[(expr) != 0] - #endif - #endif -#endif - -#ifndef NULL - #ifdef __cplusplus - #define NULL 0 - #else - #define NULL ((void *)0) - #endif -#endif - -// CRT headers are included into some kinds of source files where only data type -// definitions and macro definitions are required but function declarations and -// inline function definitions are not. These files include assembly files, IDL -// files, and resource files. The tools that process these files often have a -// limited ability to process C and C++ code. The _CRT_FUNCTIONS_REQUIRED macro -// is defined to 1 when we are compiling a file that actually needs functions to -// be declared (and defined, where applicable), and to 0 when we are compiling a -// file that does not. This allows us to suppress declarations and definitions -// that are not compilable with the aforementioned tools. -#if !defined _CRT_FUNCTIONS_REQUIRED - #if defined __assembler || defined __midl || defined RC_INVOKED - #define _CRT_FUNCTIONS_REQUIRED 0 - #else - #define _CRT_FUNCTIONS_REQUIRED 1 - #endif -#endif - -#if !defined _NO_INLINING && !_CRT_FUNCTIONS_REQUIRED - #define _NO_INLINING // Suppress inlines -#endif - -#ifndef _CRT_UNUSED - #define _CRT_UNUSED(x) (void)x -#endif - -#ifndef _CRT_HAS_CXX17 - #ifdef _MSVC_LANG - #if _MSVC_LANG > 201402 - #define _CRT_HAS_CXX17 1 - #else /* _MSVC_LANG > 201402 */ - #define _CRT_HAS_CXX17 0 - #endif /* _MSVC_LANG > 201402 */ - #else /* _MSVC_LANG */ - #if defined __cplusplus && __cplusplus > 201402 - #define _CRT_HAS_CXX17 1 - #else /* __cplusplus > 201402 */ - #define _CRT_HAS_CXX17 0 - #endif /* __cplusplus > 201402 */ - #endif /* _MSVC_LANG */ -#endif /* _CRT_HAS_CXX17 */ - -#ifndef _CRT_HAS_C11 - #if defined __STDC_VERSION__ && __STDC_VERSION__ >= 201112L - #define _CRT_HAS_C11 1 - #else /* defined __STDC_VERSION__ && __STDC_VERSION__ >= 201112L */ - #define _CRT_HAS_C11 0 - #endif /* defined __STDC_VERSION__ && __STDC_VERSION__ >= 201112L */ -#endif /* _CRT_HAS_C11 */ - -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// -// Invalid Parameter Handler -// -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -#ifdef _DEBUG - _ACRTIMP void __cdecl _invalid_parameter( - _In_opt_z_ wchar_t const*, - _In_opt_z_ wchar_t const*, - _In_opt_z_ wchar_t const*, - _In_ unsigned int, - _In_ uintptr_t - ); -#endif - -_ACRTIMP_ALT void __cdecl _invalid_parameter_noinfo(void); -_ACRTIMP __declspec(noreturn) void __cdecl _invalid_parameter_noinfo_noreturn(void); - -__declspec(noreturn) -_ACRTIMP void __cdecl _invoke_watson( - _In_opt_z_ wchar_t const* _Expression, - _In_opt_z_ wchar_t const* _FunctionName, - _In_opt_z_ wchar_t const* _FileName, - _In_ unsigned int _LineNo, - _In_ uintptr_t _Reserved); - -#ifndef _CRT_SECURE_INVALID_PARAMETER - #ifdef _DEBUG - #define _CRT_SECURE_INVALID_PARAMETER(expr) \ - ::_invalid_parameter(_CRT_WIDE(#expr), __FUNCTIONW__, __FILEW__, __LINE__, 0) - #else - // By default, _CRT_SECURE_INVALID_PARAMETER in retail invokes - // _invalid_parameter_noinfo_noreturn(), which is marked - // __declspec(noreturn) and does not return control to the application. - // Even if _set_invalid_parameter_handler() is used to set a new invalid - // parameter handler which does return control to the application, - // _invalid_parameter_noinfo_noreturn() will terminate the application - // and invoke Watson. You can overwrite the definition of - // _CRT_SECURE_INVALID_PARAMETER if you need. - // - // _CRT_SECURE_INVALID_PARAMETER is used in the Standard C++ Libraries - // and the SafeInt library. - #define _CRT_SECURE_INVALID_PARAMETER(expr) \ - ::_invalid_parameter_noinfo_noreturn() - #endif -#endif - - - -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// -// Deprecation and Warnings -// -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -#define _CRT_WARNING_MESSAGE(NUMBER, MESSAGE) \ - __FILE__ "(" _CRT_STRINGIZE(__LINE__) "): warning " NUMBER ": " MESSAGE - -#if ( defined _CRT_DECLARE_NONSTDC_NAMES && _CRT_DECLARE_NONSTDC_NAMES) || \ - (!defined _CRT_DECLARE_NONSTDC_NAMES && !__STDC__ ) - #define _CRT_INTERNAL_NONSTDC_NAMES 1 -#else - #define _CRT_INTERNAL_NONSTDC_NAMES 0 -#endif - -#if defined _CRT_NONSTDC_NO_DEPRECATE && !defined _CRT_NONSTDC_NO_WARNINGS - #define _CRT_NONSTDC_NO_WARNINGS -#endif - -#ifndef _CRT_NONSTDC_DEPRECATE - #ifdef _CRT_NONSTDC_NO_WARNINGS - #define _CRT_NONSTDC_DEPRECATE(_NewName) - #else - #define _CRT_NONSTDC_DEPRECATE(_NewName) _CRT_DEPRECATE_TEXT( \ - "The POSIX name for this item is deprecated. Instead, use the ISO C " \ - "and C++ conformant name: " #_NewName ". See online help for details.") - #endif -#endif - - - -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// -// Managed CRT Support -// -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -#ifndef _PGLOBAL - #ifdef _M_CEE - #ifdef __cplusplus_cli - #define _PGLOBAL __declspec(process) - #else - #define _PGLOBAL - #endif - #else - #define _PGLOBAL - #endif -#endif - -#ifndef _AGLOBAL - #ifdef _M_CEE - #define _AGLOBAL __declspec(appdomain) - #else - #define _AGLOBAL - #endif -#endif - -#if defined _M_CEE && !defined _M_CEE_PURE - #define _M_CEE_MIXED -#endif - - - -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// -// SecureCRT Configuration -// -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -#if defined _CRTBLD || defined _CORECRT_BUILD || defined _VCRT_BUILD - // Disable C++ overloads internally: - #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 0 - #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT 0 - #define _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES 0 -#endif - -#if !_CRT_FUNCTIONS_REQUIRED - // If we don't require function declarations at all, we need not define the - // overloads (MIDL and RC do not need the C++ overloads). - #undef _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES - #undef _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT - #undef _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES - #undef _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY - #undef _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY - - #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 0 - #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT 0 - #define _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES 0 - #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY 0 - #define _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY 0 -#endif - -#define __STDC_SECURE_LIB__ 200411L -#define __GOT_SECURE_LIB__ __STDC_SECURE_LIB__ // For backwards compatibility - -#ifndef __STDC_WANT_SECURE_LIB__ - #define __STDC_WANT_SECURE_LIB__ 1 -#endif - -#if !__STDC_WANT_SECURE_LIB__ && !defined _CRT_SECURE_NO_WARNINGS - #define _CRT_SECURE_NO_WARNINGS -#endif - -#ifndef RC_INVOKED - #if defined _CRT_SECURE_NO_DEPRECATE_GLOBALS && !defined _CRT_SECURE_NO_WARNINGS_GLOBALS - #define _CRT_SECURE_NO_WARNINGS_GLOBALS - #endif -#endif - -#ifndef _CRT_INSECURE_DEPRECATE_GLOBALS - #ifdef RC_INVOKED - #define _CRT_INSECURE_DEPRECATE_GLOBALS(replacement) - #else - #ifdef _CRT_SECURE_NO_WARNINGS_GLOBALS - #define _CRT_INSECURE_DEPRECATE_GLOBALS(replacement) - #else - #define _CRT_INSECURE_DEPRECATE_GLOBALS(replacement) _CRT_INSECURE_DEPRECATE(replacement) - #endif - #endif -#endif - -#if defined _CRT_MANAGED_HEAP_NO_DEPRECATE && !defined _CRT_MANAGED_HEAP_NO_WARNINGS - #define _CRT_MANAGED_HEAP_NO_WARNINGS -#endif - -#define _SECURECRT_FILL_BUFFER_PATTERN 0xFE - -#if defined _CRT_OBSOLETE_NO_DEPRECATE && !defined _CRT_OBSOLETE_NO_WARNINGS - #define _CRT_OBSOLETE_NO_WARNINGS -#endif - -#ifndef _CRT_OBSOLETE - #ifdef _CRT_OBSOLETE_NO_WARNINGS - #define _CRT_OBSOLETE(_NewItem) - #else - #define _CRT_OBSOLETE(_NewItem) _CRT_DEPRECATE_TEXT( \ - "This function or variable has been superceded by newer library " \ - "or operating system functionality. Consider using " #_NewItem " " \ - "instead. See online help for details.") - #endif -#endif - -#ifndef RC_INVOKED - #ifndef _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES - #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 0 - #else - #if !__STDC_WANT_SECURE_LIB__ && _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES - #error Cannot use Secure CRT C++ overloads when __STDC_WANT_SECURE_LIB__ is 0 - #endif - #endif - - #ifndef _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT - // _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT is ignored if - // _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES is set to 0 - #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT 0 - #else - #if !__STDC_WANT_SECURE_LIB__ && _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT - #error Cannot use Secure CRT C++ overloads when __STDC_WANT_SECURE_LIB__ is 0 - #endif - #endif - - #ifndef _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES - #if __STDC_WANT_SECURE_LIB__ - #define _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES 1 - #else - #define _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES 0 - #endif - #else - #if !__STDC_WANT_SECURE_LIB__ && _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES - #error Cannot use Secure CRT C++ overloads when __STDC_WANT_SECURE_LIB__ is 0 - #endif - #endif - - #ifndef _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY - #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY 0 - #else - #if !__STDC_WANT_SECURE_LIB__ && _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY - #error Cannot use Secure CRT C++ overloads when __STDC_WANT_SECURE_LIB__ is 0 - #endif - #endif - - #ifndef _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY - #define _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY 0 - #else - #if !__STDC_WANT_SECURE_LIB__ && _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY - #error Cannot use Secure CRT C++ overloads when __STDC_WANT_SECURE_LIB__ is 0 - #endif - #endif -#endif - -#ifndef _CRT_SECURE_CPP_NOTHROW - #define _CRT_SECURE_CPP_NOTHROW throw() -#endif - - - -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// -// Basic Types -// -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -typedef int errno_t; -typedef unsigned short wint_t; -typedef unsigned short wctype_t; -typedef long __time32_t; -typedef __int64 __time64_t; - -typedef struct __crt_locale_data_public -{ - unsigned short const* _locale_pctype; - _Field_range_(1, 2) int _locale_mb_cur_max; - unsigned int _locale_lc_codepage; -} __crt_locale_data_public; - -typedef struct __crt_locale_pointers -{ - struct __crt_locale_data* locinfo; - struct __crt_multibyte_data* mbcinfo; -} __crt_locale_pointers; - -typedef __crt_locale_pointers* _locale_t; - -typedef struct _Mbstatet -{ // state of a multibyte translation - unsigned long _Wchar; - unsigned short _Byte, _State; -} _Mbstatet; - -typedef _Mbstatet mbstate_t; - -#if defined _USE_32BIT_TIME_T && defined _WIN64 - #error You cannot use 32-bit time_t (_USE_32BIT_TIME_T) with _WIN64 -#endif - -// There are certain functions in the UCRT (e.g. `time`) that used to have a -// non-standard `static` declaration. This is incompatible with C++ modules as they cannot -// export functions with internal linkage. -// To bring these UCRT functions back to conformance, we drop the `static` keyword from -// MSVC toolset version 19.50 and onwards. -// -// NOTE: -// There is **nothing** in the compiler (i.e. _MSC_VER) version 19.50 that enables this change. -// The choice to guard the change behind a specific `_MSC_VER` value is simply to allow us -// to ship this change without waiting for a new major version of the Windows SDK. -// Ultimately, dropping `static` from the UCRT risks introducing novel link-time errors for projects -// that mix headers from multiple CRT versions, use forward declarations of CRT functions, etc. -// -// A user may opt back in to the old behavior by setting the macro `_STATIC_INLINE_UCRT_FUNCTIONS` to `1`. -// The macro `_STATIC_INLINE_UCRT_FUNCTIONS` is always defined to consumers, as either `0` (implies conformance) -// or `1` (implies backwards compatibility). - -// Ensure that `_STATIC_INLINE_UCRT_FUNCTIONS` is always defined. -// The STL needs this to know if it's safe to export UCRT functions through C++ modules. -#ifndef _STATIC_INLINE_UCRT_FUNCTIONS - #if defined _MSC_VER && _MSC_VER >= 1950 - #define _STATIC_INLINE_UCRT_FUNCTIONS 0 - #else - #define _STATIC_INLINE_UCRT_FUNCTIONS 1 - #endif -#endif // !defined _STATIC_INLINE_UCRT_FUNCTIONS - -// Ensure `_STATIC_INLINE_UCRT_FUNCTIONS` is a binary macro -#if _STATIC_INLINE_UCRT_FUNCTIONS != 0 && _STATIC_INLINE_UCRT_FUNCTIONS != 1 - #error _STATIC_INLINE_UCRT_FUNCTIONS was defined to be a value other than 0 (i.e. conformance mode) or 1 (i.e. backwards compatibility mode) -#endif // _STATIC_INLINE_UCRT_FUNCTIONS != 0 && _STATIC_INLINE_UCRT_FUNCTIONS != 1 - -// Define `_CRT_NONSTANDARD_STATIC` based on `_STATIC_INLINE_UCRT_FUNCTIONS` -#if _STATIC_INLINE_UCRT_FUNCTIONS == 0 - #define _CRT_NONSTANDARD_STATIC -#else // ^^^ _STATIC_INLINE_UCRT_FUNCTIONS == 0 // _STATIC_INLINE_UCRT_FUNCTIONS == 1 vvv - #define _CRT_NONSTANDARD_STATIC static -#endif // ^^^ _STATIC_INLINE_UCRT_FUNCTIONS == 1 - -#if defined _VCRT_BUILD || defined _CORECRT_BUILD - #define _CRT_NO_TIME_T -#endif - -#ifndef _CRT_NO_TIME_T - #ifdef _USE_32BIT_TIME_T - typedef __time32_t time_t; - #else - typedef __time64_t time_t; - #endif -#endif - -// Indicate that these common types are defined -#ifndef _TIME_T_DEFINED - #define _TIME_T_DEFINED -#endif - -#if __STDC_WANT_SECURE_LIB__ - typedef size_t rsize_t; -#endif - - - - -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// -// C++ Secure Overload Generation Macros -// -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -#ifndef RC_INVOKED - #if defined __cplusplus && _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES - - #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(_ReturnType, _FuncName, _DstType, _Dst) \ - extern "C++" \ - { \ - template \ - inline \ - _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size]) _CRT_SECURE_CPP_NOTHROW \ - { \ - return _FuncName(_Dst, _Size); \ - } \ - } - - #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1) \ - extern "C++" \ - { \ - template \ - inline \ - _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ - { \ - return _FuncName(_Dst, _Size, _TArg1); \ - } \ - } - - #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ - extern "C++" \ - { \ - template \ - inline \ - _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ - { \ - return _FuncName(_Dst, _Size, _TArg1, _TArg2); \ - } \ - } - - #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ - extern "C++" \ - { \ - template \ - inline \ - _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ - { \ - return _FuncName(_Dst, _Size, _TArg1, _TArg2, _TArg3); \ - } \ - } - - #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_4(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4, _TArg4) \ - extern "C++" \ - { \ - template \ - inline \ - _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4) _CRT_SECURE_CPP_NOTHROW \ - { \ - return _FuncName(_Dst, _Size, _TArg1, _TArg2, _TArg3, _TArg4); \ - } \ - } - - #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1(_ReturnType, _FuncName, _HType1, _HArg1, _DstType, _Dst, _TType1, _TArg1) \ - extern "C++" \ - { \ - template \ - inline \ - _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _DstType (&_Dst)[_Size], _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ - { \ - return _FuncName(_HArg1, _Dst, _Size, _TArg1); \ - } \ - } - - #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_2(_ReturnType, _FuncName, _HType1, _HArg1, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ - extern "C++" \ - { \ - template \ - inline \ - _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _DstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ - { \ - return _FuncName(_HArg1, _Dst, _Size, _TArg1, _TArg2); \ - } \ - } - - #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_3(_ReturnType, _FuncName, _HType1, _HArg1, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ - extern "C++" \ - { \ - template \ - inline \ - _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _DstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ - { \ - return _FuncName(_HArg1, _Dst, _Size, _TArg1, _TArg2, _TArg3); \ - } \ - } - - #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_2_0(_ReturnType, _FuncName, _HType1, _HArg1, _HType2, _HArg2, _DstType, _Dst) \ - extern "C++" \ - { \ - template \ - inline \ - _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _HType2 _HArg2, _DstType (&_Dst)[_Size]) _CRT_SECURE_CPP_NOTHROW \ - { \ - return _FuncName(_HArg1, _HArg2, _Dst, _Size); \ - } \ - } - - #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1_ARGLIST(_ReturnType, _FuncName, _VFuncName, _DstType, _Dst, _TType1, _TArg1) \ - extern "C++" \ - { \ - template \ - inline \ - _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, ...) _CRT_SECURE_CPP_NOTHROW \ - { \ - va_list _ArgList; \ - __crt_va_start(_ArgList, _TArg1); \ - return _VFuncName(_Dst, _Size, _TArg1, _ArgList); \ - } \ - } - - #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2_ARGLIST(_ReturnType, _FuncName, _VFuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ - extern "C++" \ - { \ - template \ - inline \ - _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, ...) _CRT_SECURE_CPP_NOTHROW \ - { \ - va_list _ArgList; \ - __crt_va_start(_ArgList, _TArg2); \ - return _VFuncName(_Dst, _Size, _TArg1, _TArg2, _ArgList); \ - } \ - } - - #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_SPLITPATH(_ReturnType, _FuncName, _DstType, _Src) \ - extern "C++" \ - { \ - template \ - inline \ - _ReturnType __CRTDECL _FuncName( \ - _In_z_ _DstType const* _Src, \ - _Post_z_ _DstType (&_Drive)[_DriveSize], \ - _Post_z_ _DstType (&_Dir)[_DirSize], \ - _Post_z_ _DstType (&_Name)[_NameSize], \ - _Post_z_ _DstType (&_Ext)[_ExtSize] \ - ) _CRT_SECURE_CPP_NOTHROW \ - { \ - return _FuncName(_Src, _Drive, _DriveSize, _Dir, _DirSize, _Name, _NameSize, _Ext, _ExtSize); \ - } \ - } - - #else // ^^^ _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES ^^^ // vvv !_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES vvv // - - #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(_ReturnType, _FuncName, _DstType, _Dst) - #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1) - #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) - #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) - #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_4(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4, _TArg4) - #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1(_ReturnType, _FuncName, _HType1, _HArg1, _DstType, _Dst, _TType1, _TArg1) - #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_2(_ReturnType, _FuncName, _HType1, _HArg1, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) - #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_3(_ReturnType, _FuncName, _HType1, _HArg1, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) - #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_2_0(_ReturnType, _FuncName, _HType1, _HArg1, _HType2, _HArg2, _DstType, _Dst) - #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1_ARGLIST(_ReturnType, _FuncName, _VFuncName, _DstType, _Dst, _TType1, _TArg1) - #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2_ARGLIST(_ReturnType, _FuncName, _VFuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) - #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_SPLITPATH(_ReturnType, _FuncName, _DstType, _Src) - - #endif // !_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES -#endif - - - -#define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst) \ - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _SalAttributeDst, _DstType, _Dst) - -#define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) - -#define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) - -#define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) - -#define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_4(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4, _TArg4) \ - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_4_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4, _TArg4) - -#define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) - -#define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_2_0(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst) \ - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_2_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst) - -#define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_ARGLIST(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _VFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _FuncName##_s, _VFuncName, _VFuncName##_s, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) - -#define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_ARGLIST(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _VFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _VFuncName, _VFuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) - -#define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_SIZE(_DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_SIZE_EX(_DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) - -#define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_SIZE(_DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_SIZE_EX(_DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) - - - -#define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst) \ - __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _SalAttributeDst, _DstType, _Dst) - -#define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ - __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _SalAttributeDst, _DstType, _DstType, _Dst, _TType1, _TArg1) - -#define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ - __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) - -#define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ - __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) - -#define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_4(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4, _TArg4) \ - __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_4_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4, _TArg4) - -#define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_1_1(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ - __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_1_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) - -#define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_2_0(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst) \ - __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_2_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst) - -#define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_ARGLIST(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _VFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ - __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, __cdecl, _FuncName, _FuncName##_s, _VFuncName, _VFuncName##_s, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) - -#define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_SIZE(_DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ - __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_SIZE_EX(_DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) - -#define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_SIZE(_DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ - __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_SIZE_EX(_DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) - - - -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// -// C++ Standard Overload Generation Macros -// -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -#ifndef RC_INVOKED - #if defined __cplusplus && _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES - - #define __RETURN_POLICY_SAME(_FunctionCall, _Dst) return (_FunctionCall) - #define __RETURN_POLICY_DST(_FunctionCall, _Dst) return ((_FunctionCall) == 0 ? _Dst : 0) - #define __RETURN_POLICY_VOID(_FunctionCall, _Dst) (_FunctionCall); return - #define __EMPTY_DECLSPEC - - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst) \ - __inline \ - _ReturnType __CRTDECL __insecure_##_FuncName(_SalAttributeDst _DstType *_Dst) \ - { \ - _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst); \ - return _FuncName(_Dst); \ - } \ - extern "C++" \ - { \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(_T &_Dst) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(static_cast<_DstType *>(_Dst)); \ - } \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(const _T &_Dst) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(static_cast<_DstType *>(_Dst)); \ - } \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(_Dst); \ - } \ - template \ - inline \ - _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size]) _CRT_SECURE_CPP_NOTHROW \ - { \ - _ReturnPolicy(_SecureFuncName(_Dst, _Size), _Dst); \ - } \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1]) _CRT_SECURE_CPP_NOTHROW \ - { \ - _ReturnPolicy(_SecureFuncName(_Dst, 1), _Dst); \ - } \ - } - - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_CGETS(_ReturnType, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst) \ - __inline \ - _ReturnType __CRTDECL __insecure_##_FuncName(_SalAttributeDst _DstType *_Dst) \ - { \ - _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst); \ - return _FuncName(_Dst); \ - } \ - extern "C++" \ - { \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_FuncName##_s) \ - _ReturnType __CRTDECL _FuncName(_T &_Dst) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(static_cast<_DstType *>(_Dst)); \ - } \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_FuncName##_s) \ - _ReturnType __CRTDECL _FuncName(const _T &_Dst) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(static_cast<_DstType *>(_Dst)); \ - } \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_FuncName##_s) \ - _ReturnType __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(_Dst); \ - } \ - template \ - inline \ - _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size]) _CRT_SECURE_CPP_NOTHROW \ - { \ - size_t _SizeRead = 0; \ - errno_t _Err = _FuncName##_s(_Dst + 2, (_Size - 2) < ((size_t)_Dst[0]) ? (_Size - 2) : ((size_t)_Dst[0]), &_SizeRead); \ - _Dst[1] = (_DstType)(_SizeRead); \ - return (_Err == 0 ? _Dst + 2 : 0); \ - } \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_FuncName##_s) \ - _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1]) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName((_DstType *)_Dst); \ - } \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_FuncName##_s) \ - _ReturnType __CRTDECL _FuncName<2>(_DstType (&_Dst)[2]) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName((_DstType *)_Dst); \ - } \ - } - - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ - __inline \ - _ReturnType __CRTDECL __insecure_##_FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1) \ - { \ - _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1); \ - return _FuncName(_Dst, _TArg1); \ - } \ - extern "C++" \ - { \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1); \ - } \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1); \ - } \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst, _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(_Dst, _TArg1); \ - } \ - template \ - inline \ - _ReturnType __CRTDECL _FuncName(_SecureDstType (&_Dst)[_Size], _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ - { \ - _ReturnPolicy(_SecureFuncName(_Dst, _Size, _TArg1), _Dst); \ - } \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ - { \ - _ReturnPolicy(_SecureFuncName(_Dst, 1, _TArg1), _Dst); \ - } \ - } - - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ - __inline \ - _ReturnType __CRTDECL __insecure_##_FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ - { \ - _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2); \ - return _FuncName(_Dst, _TArg1, _TArg2); \ - } \ - extern "C++" \ - { \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2); \ - } \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2); \ - } \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst, _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(_Dst, _TArg1, _TArg2); \ - } \ - template \ - inline \ - _ReturnType __CRTDECL _FuncName(_SecureDstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ - { \ - _ReturnPolicy(_SecureFuncName(_Dst, _Size, _TArg1, _TArg2), _Dst); \ - } \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ - { \ - _ReturnPolicy(_SecureFuncName(_Dst, 1, _TArg1, _TArg2), _Dst); \ - } \ - } - - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ - __inline \ - _ReturnType __CRTDECL __insecure_##_FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) \ - { \ - _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3); \ - return _FuncName(_Dst, _TArg1, _TArg2, _TArg3); \ - } \ - extern "C++" \ - { \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _TArg3); \ - } \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _TArg3); \ - } \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(_Dst, _TArg1, _TArg2, _TArg3); \ - } \ - template \ - inline \ - _ReturnType __CRTDECL _FuncName(_SecureDstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ - { \ - _ReturnPolicy(_SecureFuncName(_Dst, _Size, _TArg1, _TArg2, _TArg3), _Dst); \ - } \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ - { \ - _ReturnPolicy(_SecureFuncName(_Dst, 1, _TArg1, _TArg2, _TArg3), _Dst); \ - } \ - } - - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_4_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4, _TArg4) \ - __inline \ - _ReturnType __CRTDECL __insecure_##_FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4) \ - { \ - _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4); \ - return _FuncName(_Dst, _TArg1, _TArg2, _TArg3, _TArg4); \ - } \ - extern "C++" \ - { \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _TArg3, _TArg4); \ - } \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _TArg3, _TArg4); \ - } \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(_Dst, _TArg1, _TArg2, _TArg3, _TArg4); \ - } \ - template \ - inline \ - _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4) _CRT_SECURE_CPP_NOTHROW \ - { \ - _ReturnPolicy(_SecureFuncName(_Dst, _Size, _TArg1, _TArg2, _TArg3, _TArg4), _Dst); \ - } \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4) _CRT_SECURE_CPP_NOTHROW \ - { \ - _ReturnPolicy(_SecureFuncName(_Dst, 1, _TArg1, _TArg2, _TArg3, _TArg4), _Dst); \ - } \ - } - - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ - __inline \ - _ReturnType __CRTDECL __insecure_##_FuncName(_HType1 _HArg1, _SalAttributeDst _DstType *_Dst, _TType1 _TArg1) \ - { \ - _ReturnType __cdecl _FuncName(_HType1 _HArg1, _SalAttributeDst _DstType *_Dst, _TType1 _TArg1); \ - return _FuncName(_HArg1, _Dst, _TArg1); \ - } \ - extern "C++" \ - { \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _T &_Dst, _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(_HArg1, static_cast<_DstType *>(_Dst), _TArg1); \ - } \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, const _T &_Dst, _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(_HArg1, static_cast<_DstType *>(_Dst), _TArg1); \ - } \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _SalAttributeDst _DstType * &_Dst, _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(_HArg1, _Dst, _TArg1); \ - } \ - template \ - inline \ - _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _DstType (&_Dst)[_Size], _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ - { \ - _ReturnPolicy(_SecureFuncName(_HArg1, _Dst, _Size, _TArg1), _Dst); \ - } \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName<1>(_HType1 _HArg1, _DstType (&_Dst)[1], _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ - { \ - _ReturnPolicy(_SecureFuncName(_HArg1, _Dst, 1, _TArg1), _Dst); \ - } \ - } - - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_2_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst) \ - __inline \ - _ReturnType __CRTDECL __insecure_##_FuncName(_HType1 _HArg1, _HType2 _HArg2, _SalAttributeDst _DstType *_Dst) \ - { \ - _ReturnType __cdecl _FuncName(_HType1 _HArg1, _HType2 _HArg2, _SalAttributeDst _DstType *_Dst); \ - return _FuncName(_HArg1, _HArg2, _Dst); \ - } \ - extern "C++" \ - { \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _HType2 _HArg2, _T &_Dst) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(_HArg1, _HArg2, static_cast<_DstType *>(_Dst)); \ - } \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _HType2 _HArg2, const _T &_Dst) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(_HArg1, _HArg2, static_cast<_DstType *>(_Dst)); \ - } \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _HType2 _HArg2, _SalAttributeDst _DstType * &_Dst) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(_HArg1, _HArg2, _Dst); \ - } \ - template \ - inline \ - _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _HType2 _HArg2, _DstType (&_Dst)[_Size]) _CRT_SECURE_CPP_NOTHROW \ - { \ - _ReturnPolicy(_SecureFuncName(_HArg1, _HArg2, _Dst, _Size), _Dst); \ - } \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName<1>(_HType1 _HArg1, _HType2 _HArg2, _DstType (&_Dst)[1]) _CRT_SECURE_CPP_NOTHROW \ - { \ - _ReturnPolicy(_SecureFuncName(_HArg1, _HArg2, _Dst, 1), _Dst); \ - } \ - } - - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _SecureFuncName, _VFuncName, _SecureVFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ - __inline \ - _ReturnType __CRTDECL __insecure_##_VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, va_list _ArgList) \ - { \ - _ReturnType _CC _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, va_list _ArgList); \ - return _VFuncName(_Dst, _TArg1, _ArgList); \ - } \ - extern "C++" \ - { \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1, ...) _CRT_SECURE_CPP_NOTHROW \ - { \ - va_list _ArgList; \ - __crt_va_start(_ArgList, _TArg1); \ - return __insecure_##_VFuncName(static_cast<_DstType *>(_Dst), _TArg1, _ArgList); \ - } \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1, ...) _CRT_SECURE_CPP_NOTHROW \ - { \ - va_list _ArgList; \ - __crt_va_start(_ArgList, _TArg1); \ - return __insecure_##_VFuncName(static_cast<_DstType *>(_Dst), _TArg1, _ArgList); \ - } \ - \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst, _TType1 _TArg1, ...) _CRT_SECURE_CPP_NOTHROW \ - { \ - va_list _ArgList; \ - __crt_va_start(_ArgList, _TArg1); \ - return __insecure_##_VFuncName(_Dst, _TArg1, _ArgList); \ - } \ - \ - template \ - inline \ - _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, ...) _CRT_SECURE_CPP_NOTHROW \ - { \ - va_list _ArgList; \ - __crt_va_start(_ArgList, _TArg1); \ - _ReturnPolicy(_SecureVFuncName(_Dst, _Size, _TArg1, _ArgList), _Dst); \ - } \ - \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, ...) _CRT_SECURE_CPP_NOTHROW \ - { \ - va_list _ArgList; \ - __crt_va_start(_ArgList, _TArg1); \ - _ReturnPolicy(_SecureVFuncName(_Dst, 1, _TArg1, _ArgList), _Dst); \ - } \ - \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureVFuncName) \ - _ReturnType __CRTDECL _VFuncName(_T &_Dst, _TType1 _TArg1, va_list _ArgList) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_VFuncName(static_cast<_DstType *>(_Dst), _TArg1, _ArgList); \ - } \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureVFuncName) \ - _ReturnType __CRTDECL _VFuncName(const _T &_Dst, _TType1 _TArg1, va_list _ArgList) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_VFuncName(static_cast<_DstType *>(_Dst), _TArg1, _ArgList); \ - } \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureVFuncName) \ - _ReturnType __CRTDECL _VFuncName(_SalAttributeDst _DstType *&_Dst, _TType1 _TArg1, va_list _ArgList) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_VFuncName(_Dst, _TArg1, _ArgList); \ - } \ - template \ - inline \ - _ReturnType __CRTDECL _VFuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, va_list _ArgList) _CRT_SECURE_CPP_NOTHROW \ - { \ - _ReturnPolicy(_SecureVFuncName(_Dst, _Size, _TArg1, _ArgList), _Dst); \ - } \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureVFuncName) \ - _ReturnType __CRTDECL _VFuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, va_list _ArgList) _CRT_SECURE_CPP_NOTHROW \ - { \ - _ReturnPolicy(_SecureVFuncName(_Dst, 1, _TArg1, _ArgList), _Dst); \ - } \ - } - - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _VFuncName, _SecureVFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ - __inline \ - _ReturnType __CRTDECL __insecure_##_VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _ArgList) \ - { \ - _ReturnType _CC _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _ArgList); \ - return _VFuncName(_Dst, _TArg1, _TArg2, _ArgList); \ - } \ - extern "C++" \ - { \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_FuncName##_s) \ - _ReturnType __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1, _TType2 _TArg2, ...) _CRT_SECURE_CPP_NOTHROW \ - { \ - va_list _ArgList; \ - __crt_va_start(_ArgList, _TArg2); \ - return __insecure_##_VFuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _ArgList); \ - } \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_FuncName##_s) \ - _ReturnType __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1, _TType2 _TArg2, ...) _CRT_SECURE_CPP_NOTHROW \ - { \ - va_list _ArgList; \ - __crt_va_start(_ArgList, _TArg2); \ - return __insecure_##_VFuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _ArgList); \ - } \ - \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_FuncName##_s) \ - _ReturnType __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst, _TType1 _TArg1, _TType2 _TArg2, ...) _CRT_SECURE_CPP_NOTHROW \ - { \ - va_list _ArgList; \ - __crt_va_start(_ArgList, _TArg2); \ - return __insecure_##_VFuncName(_Dst, _TArg1, _TArg2, _ArgList); \ - } \ - \ - template \ - inline \ - _ReturnType __CRTDECL _FuncName(_SecureDstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, ...) _CRT_SECURE_CPP_NOTHROW \ - { \ - va_list _ArgList; \ - __crt_va_start(_ArgList, _TArg2); \ - _ReturnPolicy(_SecureVFuncName(_Dst, _Size, _TArg1, _TArg2, _ArgList), _Dst); \ - } \ - \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_FuncName##_s) \ - _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, _TType2 _TArg2, ...) _CRT_SECURE_CPP_NOTHROW \ - { \ - va_list _ArgList; \ - __crt_va_start(_ArgList, _TArg2); \ - _ReturnPolicy(_SecureVFuncName(_Dst, 1, _TArg1, _TArg2, _ArgList), _Dst); \ - } \ - \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureVFuncName) \ - _ReturnType __CRTDECL _VFuncName(_T &_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _ArgList) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_VFuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _ArgList); \ - } \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureVFuncName) \ - _ReturnType __CRTDECL _VFuncName(const _T &_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _ArgList) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_VFuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _ArgList); \ - } \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureVFuncName) \ - _ReturnType __CRTDECL _VFuncName(_SalAttributeDst _DstType *&_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _ArgList) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_VFuncName(_Dst, _TArg1, _TArg2, _ArgList); \ - } \ - template \ - inline \ - _ReturnType __CRTDECL _VFuncName(_SecureDstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, va_list _ArgList) _CRT_SECURE_CPP_NOTHROW \ - { \ - _ReturnPolicy(_SecureVFuncName(_Dst, _Size, _TArg1, _TArg2, _ArgList), _Dst); \ - } \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureVFuncName) \ - _ReturnType __CRTDECL _VFuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, _TType2 _TArg2, va_list _ArgList) _CRT_SECURE_CPP_NOTHROW \ - { \ - _ReturnPolicy(_SecureVFuncName(_Dst, 1, _TArg1, _TArg2, _ArgList), _Dst); \ - } \ - } - - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ - __inline \ - size_t __CRTDECL __insecure_##_FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2) \ - { \ - _DeclSpec size_t __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2); \ - return _FuncName(_Dst, _TArg1, _TArg2); \ - } \ - extern "C++" \ - { \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - size_t __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2); \ - } \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - size_t __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2); \ - } \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - size_t __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst, _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(_Dst, _TArg1, _TArg2); \ - } \ - template \ - inline \ - size_t __CRTDECL _FuncName(_SecureDstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ - { \ - size_t _Ret = 0; \ - _SecureFuncName(&_Ret, _Dst, _Size, _TArg1, _TArg2); \ - return (_Ret > 0 ? (_Ret - 1) : _Ret); \ - } \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - size_t __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ - { \ - size_t _Ret = 0; \ - _SecureFuncName(&_Ret, _Dst, 1, _TArg1, _TArg2); \ - return (_Ret > 0 ? (_Ret - 1) : _Ret); \ - } \ - } - - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ - __inline \ - size_t __CRTDECL __insecure_##_FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) \ - { \ - _DeclSpec size_t __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3); \ - return _FuncName(_Dst, _TArg1, _TArg2, _TArg3); \ - } \ - extern "C++" \ - { \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - size_t __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _TArg3); \ - } \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - size_t __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _TArg3); \ - } \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - size_t __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(_Dst, _TArg1, _TArg2, _TArg3); \ - } \ - template \ - inline \ - size_t __CRTDECL _FuncName(_SecureDstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ - { \ - size_t _Ret = 0; \ - _SecureFuncName(&_Ret, _Dst, _Size, _TArg1, _TArg2, _TArg3); \ - return (_Ret > 0 ? (_Ret - 1) : _Ret); \ - } \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - size_t __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ - { \ - size_t _Ret = 0; \ - _SecureFuncName(&_Ret, _Dst, 1, _TArg1, _TArg2, _TArg3); \ - return (_Ret > 0 ? (_Ret - 1) : _Ret); \ - } \ - } - - #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) \ - __inline \ - _ReturnType __CRTDECL __insecure_##_FuncName(_DstType *_Dst) - - #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) \ - extern "C++" \ - { \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(_T &_Dst) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(static_cast<_DstType *>(_Dst)); \ - } \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(const _T &_Dst) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(static_cast<_DstType *>(_Dst)); \ - } \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(_DstType * &_Dst) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(_Dst); \ - } \ - template \ - inline \ - _ReturnType __CRTDECL _FuncName(_SecureDstType (&_Dst)[_Size]) _CRT_SECURE_CPP_NOTHROW \ - { \ - _ReturnPolicy(_SecureFuncName(_Dst, _Size), _Dst); \ - } \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1]) _CRT_SECURE_CPP_NOTHROW \ - { \ - _ReturnPolicy(_SecureFuncName(_Dst, 1), _Dst); \ - } \ - } - - #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) \ - __inline \ - _ReturnType __CRTDECL __insecure_##_FuncName(_DstType *_Dst, _TType1 _TArg1) - - #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) \ - extern "C++" \ - { \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1); \ - } \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1); \ - } \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(_DstType * &_Dst, _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(_Dst, _TArg1); \ - } \ - template \ - inline \ - _ReturnType __CRTDECL _FuncName(_SecureDstType (&_Dst)[_Size], _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ - { \ - _ReturnPolicy(_SecureFuncName(_Dst, _Size, _TArg1), _Dst); \ - } \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ - { \ - _ReturnPolicy(_SecureFuncName(_Dst, 1, _TArg1), _Dst); \ - } \ - } - - #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ - __inline \ - _ReturnType __CRTDECL __insecure_##_FuncName(_DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2) - - #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ - extern "C++" \ - { \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2); \ - } \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2); \ - } \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst, _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(_Dst, _TArg1, _TArg2); \ - } \ - template \ - inline \ - _ReturnType __CRTDECL _FuncName(_SecureDstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ - { \ - _ReturnPolicy(_SecureFuncName(_Dst, _Size, _TArg1, _TArg2), _Dst); \ - } \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ - { \ - _ReturnPolicy(_SecureFuncName(_Dst, 1, _TArg1, _TArg2), _Dst); \ - } \ - } - - #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ - __inline \ - _ReturnType __CRTDECL __insecure_##_FuncName(_DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) - - #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ - extern "C++" \ - { \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _TArg3); \ - } \ - template \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _TArg3); \ - } \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ - { \ - return __insecure_##_FuncName(_Dst, _TArg1, _TArg2, _TArg3); \ - } \ - template \ - inline \ - _ReturnType __CRTDECL _FuncName(_SecureDstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ - { \ - _ReturnPolicy(_SecureFuncName(_Dst, _Size, _TArg1, _TArg2, _TArg3), _Dst); \ - } \ - template <> \ - inline \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ - { \ - _ReturnPolicy(_SecureFuncName(_Dst, 1, _TArg1, _TArg2, _TArg3), _Dst); \ - } \ - } - - #if _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst) \ - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst) - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_CGETS(_ReturnType, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst) \ - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_CGETS(_ReturnType, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst) - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_4_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4) \ - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_4_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4) - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_1_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_2_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst) \ - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_2_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst) - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _SecureFuncName, _VFuncName, _SecureVFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _SecureFuncName, _VFuncName, _SecureVFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _VFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_ARGLIST(_ReturnType, _ReturnPolicy, _DeclSpec, __cdecl, _FuncName, _VFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _VFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _VFuncName, _VFuncName##_s, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) - - - #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) \ - __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType _DstType, _Dst) - - #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) \ - __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) - - #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) \ - __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType _DstType, _Dst, _TType1, _TArg1) - - #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) \ - __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) - - #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ - __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) - - #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ - __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) - - #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ - __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) - - #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ - __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) - - #else // ^^^ _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT ^^^ // vvv _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT vvv // - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_GETS(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _DstType, _Dst) \ - _CRT_INSECURE_DEPRECATE(_FuncName##_s) _DeclSpec _ReturnType __cdecl _FuncName(_DstType *_Dst); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_4_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4, _TArg4) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_1_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_HType1 _HArg1, _SalAttributeDst _DstType *_Dst, _TType1 _TArg1); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_2_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_HType1 _HArg1, _HType2 _HArg2, _SalAttributeDst _DstType *_Dst); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _SecureFuncName,_VFuncName, _SecureVFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType _CC _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, ...); \ - _CRT_INSECURE_DEPRECATE(_SecureVFuncName) _DeclSpec _ReturnType _CC _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, va_list _Args); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _VFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ - _CRT_INSECURE_DEPRECATE(_FuncName##_s) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, ...); \ - _CRT_INSECURE_DEPRECATE(_VFuncName##_s) _DeclSpec _ReturnType __cdecl _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _Args); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _VFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ - _CRT_INSECURE_DEPRECATE(_FuncName##_s) _DeclSpec _ReturnType _CC _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, ...); \ - _CRT_INSECURE_DEPRECATE(_VFuncName##_s) _DeclSpec _ReturnType _CC _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _Args); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec size_t __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec size_t __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3); - - - #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - __inline \ - _ReturnType __CRTDECL _FuncName(_DstType *_Dst) - - #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) - - #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - __inline \ - _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1) - - #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) - - #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - __inline \ - _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2) - - #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) - - #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - __inline \ - _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) - - #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) - - #endif // !_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT - - #else // ^^^ _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES ^^^ // vvv !_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES vvv // - - #define __RETURN_POLICY_SAME(_FunctionCall) - #define __RETURN_POLICY_DST(_FunctionCall) - #define __RETURN_POLICY_VOID(_FunctionCall) - #define __EMPTY_DECLSPEC - - #if _CRT_FUNCTIONS_REQUIRED - - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_CGETS(_ReturnType, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst) \ - _CRT_INSECURE_DEPRECATE(_FuncName##_s) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_4_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4, _TArg4) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_HType1 _HArg1, _SalAttributeDst _DstType *_Dst, _TType1 _TArg1); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_2_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_HType1 _HArg1, _HType2 _HArg2, _SalAttributeDst _DstType *_Dst); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _SecureFuncName, _VFuncName, _SecureVFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType _CC _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, ...); \ - _CRT_INSECURE_DEPRECATE(_SecureVFuncName) _DeclSpec _ReturnType _CC _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, va_list _Args); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _VFuncName, _SecureVFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ - _CRT_INSECURE_DEPRECATE(_FuncName##_s) _DeclSpec _ReturnType _CC _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, ...); \ - _CRT_INSECURE_DEPRECATE(_SecureVFuncName) _DeclSpec _ReturnType _CC _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _Args); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec size_t __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec size_t __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_GETS(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _DstType, _Dst) \ - _CRT_INSECURE_DEPRECATE(_FuncName##_s) _DeclSpec _ReturnType __cdecl _FuncName(_DstType *_Dst); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_4_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4, _TArg4) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_1_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_HType1 _HArg1, _SalAttributeDst _DstType *_Dst, _TType1 _TArg1); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_2_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_HType1 _HArg1, _HType2 _HArg2, _SalAttributeDst _DstType *_Dst); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _SecureFuncName, _VFuncName, _SecureVFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType _CC _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, ...); \ - _CRT_INSECURE_DEPRECATE(_SecureVFuncName) _DeclSpec _ReturnType _CC _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, va_list _Args); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _VFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ - _CRT_INSECURE_DEPRECATE(_FuncName##_s) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, ...); \ - _CRT_INSECURE_DEPRECATE(_VFuncName##_s) _DeclSpec _ReturnType __cdecl _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _Args); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _VFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ - _CRT_INSECURE_DEPRECATE(_FuncName##_s) _DeclSpec _ReturnType _CC _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, ...); \ - _CRT_INSECURE_DEPRECATE(_VFuncName##_s) _DeclSpec _ReturnType _CC _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _Args); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec size_t __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2); - - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec size_t __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3); - - - #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - __inline \ - _ReturnType __CRTDECL _FuncName(_DstType *_Dst) - - #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) - - #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - __inline \ - _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1) - - #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) - - #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - __inline \ - _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2) - - #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) - - #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - __inline \ - _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) - - #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) - - #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - __inline \ - _ReturnType __CRTDECL _FuncName(_DstType *_Dst) - - #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) - - #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - __inline \ - _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1) - - #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) - - #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - __inline \ - _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2) - - #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) - - #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ - _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ - __inline \ - _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) - - #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) - - #else // ^^^ _CRT_FUNCTIONS_REQUIRED ^^^ // vvv !_CRT_FUNCTIONS_REQUIRED vvv // - - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_EX(...) - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_CGETS(...) - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX(...) - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_EX(...) - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_EX(...) - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_4_EX(...) - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1_EX(...) - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_2_0_EX(...) - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_ARGLIST_EX(...) - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_ARGLIST_EX(...) - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_SIZE_EX(...) - #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_SIZE_EX(...) - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_EX(...) - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_GETS(...) - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_EX(...) - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(...) - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_EX(...) - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_4_EX(...) - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_1_1_EX(...) - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_2_0_EX(...) - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_ARGLIST_EX(...) - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST(...) - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST_EX(...) - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_SIZE_EX(...) - #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_SIZE_EX(...) - #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(...) - #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(...) - #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(...) - #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(...) - #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(...) - #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(...) - #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_3_EX(...) - #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_3_EX(...) - #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_0_EX(...) - #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_0_EX(...) - #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_1_EX(...) - #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_1_EX(...) - #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(...) - #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(...) - #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(...) - #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(...) - - #endif // !_CRT_FUNCTIONS_REQUIRED - #endif // !_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES -#endif - -_CRT_END_C_HEADER - -_UCRT_RESTORE_CLANG_WARNINGS -#pragma warning(pop) // _UCRT_DISABLED_WARNINGS diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt.h.blob deleted file mode 100644 index 54859d1d2bfacc3163c8cb55bd110ce6e670391a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42236 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 Jr!@QB^uGm+k^cYy diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_io.h b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_io.h deleted file mode 100644 index 8e84035f9..000000000 --- a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_io.h +++ /dev/null @@ -1,572 +0,0 @@ -// -// corecrt_io.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// This file declares the low-level I/O and file handling functionality. These -// declarations are split out to support the Windows build. -// -#pragma once - -#include -#include - -#pragma warning(push) -#pragma warning(disable: _UCRT_DISABLED_WARNINGS) -_UCRT_DISABLE_CLANG_WARNINGS - -_CRT_BEGIN_C_HEADER - - - -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// -// Types -// -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -#ifdef _USE_32BIT_TIME_T - #define _finddata_t _finddata32_t - #define _finddatai64_t _finddata32i64_t -#else - #define _finddata_t _finddata64i32_t - #define _finddatai64_t __finddata64_t -#endif - -struct _finddata32_t -{ - unsigned attrib; - __time32_t time_create; // -1 for FAT file systems - __time32_t time_access; // -1 for FAT file systems - __time32_t time_write; - _fsize_t size; - char name[260]; -}; - -struct _finddata32i64_t -{ - unsigned attrib; - __time32_t time_create; // -1 for FAT file systems - __time32_t time_access; // -1 for FAT file systems - __time32_t time_write; - __int64 size; - char name[260]; -}; - -struct _finddata64i32_t -{ - unsigned attrib; - __time64_t time_create; // -1 for FAT file systems - __time64_t time_access; // -1 for FAT file systems - __time64_t time_write; - _fsize_t size; - char name[260]; -}; - -struct __finddata64_t -{ - unsigned attrib; - __time64_t time_create; // -1 for FAT file systems - __time64_t time_access; // -1 for FAT file systems - __time64_t time_write; - __int64 size; - char name[260]; -}; - -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// -// Macros -// -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// File attribute constants for the _findfirst() family of functions -#define _A_NORMAL 0x00 // Normal file - No read/write restrictions -#define _A_RDONLY 0x01 // Read only file -#define _A_HIDDEN 0x02 // Hidden file -#define _A_SYSTEM 0x04 // System file -#define _A_SUBDIR 0x10 // Subdirectory -#define _A_ARCH 0x20 // Archive file - - - -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// -// Functions -// -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -#ifdef _USE_32BIT_TIME_T - #define _findfirst _findfirst32 - #define _findnext _findnext32 - #define _findfirsti64 _findfirst32i64 - #define _findnexti64 _findnext32i64 -#else - #define _findfirst _findfirst64i32 - #define _findnext _findnext64i32 - #define _findfirsti64 _findfirst64 - #define _findnexti64 _findnext64 -#endif - -#if _CRT_FUNCTIONS_REQUIRED - - _Check_return_ - _ACRTIMP int __cdecl _access( - _In_z_ char const* _FileName, - _In_ int _AccessMode - ); - - _Check_return_wat_ - _ACRTIMP errno_t __cdecl _access_s( - _In_z_ char const* _FileName, - _In_ int _AccessMode - ); - - _Check_return_ - _ACRTIMP int __cdecl _chmod( - _In_z_ char const* _FileName, - _In_ int _Mode - ); - - _Check_return_ - _ACRTIMP int __cdecl _chsize( - _In_ int _FileHandle, - _In_ long _Size - ); - - _Check_return_wat_ - _ACRTIMP errno_t __cdecl _chsize_s( - _In_ int _FileHandle, - _In_ __int64 _Size - ); - - _Check_return_opt_ - _ACRTIMP int __cdecl _close( - _In_ int _FileHandle - ); - - _Check_return_opt_ - _ACRTIMP int __cdecl _commit( - _In_ int _FileHandle - ); - - _Check_return_ _CRT_INSECURE_DEPRECATE(_sopen_s) - _ACRTIMP int __cdecl _creat( - _In_z_ char const* _FileName, - _In_ int _PermissionMode - ); - - _Check_return_ - _ACRTIMP int __cdecl _dup( - _In_ int _FileHandle - ); - - _Check_return_ - _ACRTIMP int __cdecl _dup2( - _In_ int _FileHandleSrc, - _In_ int _FileHandleDst - ); - - _Check_return_ - _ACRTIMP int __cdecl _eof( - _In_ int _FileHandle - ); - - _Check_return_ - _ACRTIMP long __cdecl _filelength( - _In_ int _FileHandle - ); - - _Success_(return != -1) - _Check_return_ - _ACRTIMP intptr_t __cdecl _findfirst32( - _In_z_ char const* _FileName, - _Out_ struct _finddata32_t* _FindData - ); - - _Success_(return != -1) - _Check_return_ - _ACRTIMP int __cdecl _findnext32( - _In_ intptr_t _FindHandle, - _Out_ struct _finddata32_t* _FindData - ); - - _Check_return_opt_ - _ACRTIMP int __cdecl _findclose( - _In_ intptr_t _FindHandle - ); - - _ACRTIMP intptr_t __cdecl _get_osfhandle( - _In_ int _FileHandle - ); - - _Check_return_ - _ACRTIMP int __cdecl _isatty( - _In_ int _FileHandle - ); - - _ACRTIMP int __cdecl _locking( - _In_ int _FileHandle, - _In_ int _LockMode, - _In_ long _NumOfBytes - ); - - _Check_return_opt_ - _ACRTIMP long __cdecl _lseek( - _In_ int _FileHandle, - _In_ long _Offset, - _In_ int _Origin - ); - - _Success_(return == 0) - _Check_return_wat_ - _ACRTIMP errno_t __cdecl _mktemp_s( - _Inout_updates_z_(_Size) char* _TemplateName, - _In_ size_t _Size - ); - - __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0( - errno_t, _mktemp_s, - _Prepost_z_ char, _TemplateName - ) - - _Success_(return != 0) - _Check_return_ __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0( - char *, __RETURN_POLICY_DST, _ACRTIMP, _mktemp, - _Inout_z_, char, _TemplateName - ) - - _ACRTIMP int __cdecl _open_osfhandle( - _In_ intptr_t _OSFileHandle, - _In_ int _Flags - ); - - #ifdef _CRT_USE_WINAPI_FAMILY_DESKTOP_APP - _Success_(return != -1) - _Check_return_ - _DCRTIMP int __cdecl _pipe( - _Out_writes_(2) int* _PtHandles, - _In_ unsigned int _PipeSize, - _In_ int _TextMode - ); - #endif - - _Success_(return != -1) - _Check_return_ - _ACRTIMP int __cdecl _read( - _In_ int _FileHandle, - _Out_writes_bytes_(_MaxCharCount) void* _DstBuf, - _In_ unsigned int _MaxCharCount - ); - - _ACRTIMP int __cdecl remove( - _In_z_ char const* _FileName - ); - - _Check_return_ - _ACRTIMP int __cdecl rename( - _In_z_ char const* _OldFilename, - _In_z_ char const* _NewFilename - ); - - _ACRTIMP int __cdecl _unlink( - _In_z_ char const* _FileName - ); - - _Check_return_ - _ACRTIMP int __cdecl _setmode( - _In_ int _FileHandle, - _In_ int _Mode - ); - - _Check_return_ - _ACRTIMP long __cdecl _tell( - _In_ int _FileHandle - ); - - _CRT_INSECURE_DEPRECATE(_umask_s) - _ACRTIMP int __cdecl _umask( - _In_ int _Mode - ); - - _Check_return_wat_ - _ACRTIMP errno_t __cdecl _umask_s( - _In_ int _NewMode, - _Out_ int* _OldMode - ); - - _ACRTIMP int __cdecl _write( - _In_ int _FileHandle, - _In_reads_bytes_(_MaxCharCount) void const* _Buf, - _In_ unsigned int _MaxCharCount - ); - - _Check_return_ - _ACRTIMP __int64 __cdecl _filelengthi64( - _In_ int _FileHandle - ); - - _Success_(return != -1) - _Check_return_ - _ACRTIMP intptr_t __cdecl _findfirst32i64( - _In_z_ char const* _FileName, - _Out_ struct _finddata32i64_t* _FindData - ); - - _Success_(return != -1) - _Check_return_ - _ACRTIMP intptr_t __cdecl _findfirst64i32( - _In_z_ char const* _FileName, - _Out_ struct _finddata64i32_t* _FindData - ); - - _Success_(return != -1) - _Check_return_ - _ACRTIMP intptr_t __cdecl _findfirst64( - _In_z_ char const* _FileName, - _Out_ struct __finddata64_t* _FindData - ); - - _Success_(return != -1) - _Check_return_ - _ACRTIMP int __cdecl _findnext32i64( - _In_ intptr_t _FindHandle, - _Out_ struct _finddata32i64_t* _FindData - ); - - _Success_(return != -1) - _Check_return_ - _ACRTIMP int __cdecl _findnext64i32( - _In_ intptr_t _FindHandle, - _Out_ struct _finddata64i32_t* _FindData - ); - - _Success_(return != -1) - _Check_return_ - _ACRTIMP int __cdecl _findnext64( - _In_ intptr_t _FindHandle, - _Out_ struct __finddata64_t* _FindData - ); - - _Check_return_opt_ - _ACRTIMP __int64 __cdecl _lseeki64( - _In_ int _FileHandle, - _In_ __int64 _Offset, - _In_ int _Origin - ); - - _Check_return_ - _ACRTIMP __int64 __cdecl _telli64( - _In_ int _FileHandle - ); - - _Check_return_wat_ - _ACRTIMP errno_t __cdecl _sopen_s( - _Out_ int* _FileHandle, - _In_z_ char const* _FileName, - _In_ int _OpenFlag, - _In_ int _ShareFlag, - _In_ int _PermissionMode - ); - - _Check_return_ - _ACRTIMP errno_t __cdecl _sopen_s_nolock( - _Out_ int* _FileHandle, - _In_z_ char const* _FileName, - _In_ int _OpenFlag, - _In_ int _ShareFlag, - _In_ int _PermissionMode - ); - - _ACRTIMP errno_t __cdecl _sopen_dispatch( - _In_z_ char const* _FileName, - _In_ int _OFlag, - _In_ int _ShFlag, - _In_ int _PMode, - _Out_ int* _PFileHandle, - _In_ int _BSecure - ); - - - - #ifdef __cplusplus - - // These function do not validate pmode; use _sopen_s instead. - extern "C++" _Check_return_ _CRT_INSECURE_DEPRECATE(_sopen_s) - inline int __CRTDECL _open( - _In_z_ char const* const _FileName, - _In_ int const _OFlag, - _In_ int const _PMode = 0 - ) - { - int _FileHandle; - // Last parameter passed as 0 because we don't want to validate pmode from _open - errno_t const _Result = _sopen_dispatch(_FileName, _OFlag, _SH_DENYNO, _PMode, &_FileHandle, 0); - return _Result ? -1 : _FileHandle; - } - - extern "C++" _Check_return_ _CRT_INSECURE_DEPRECATE(_sopen_s) - inline int __CRTDECL _sopen( - _In_z_ char const* const _FileName, - _In_ int const _OFlag, - _In_ int const _ShFlag, - _In_ int const _PMode = 0 - ) - { - int _FileHandle; - // Last parameter passed as 0 because we don't want to validate pmode from _sopen - errno_t const _Result = _sopen_dispatch(_FileName, _OFlag, _ShFlag, _PMode, &_FileHandle, 0); - return _Result ? -1 : _FileHandle; - } - - #else - - _Check_return_ _CRT_INSECURE_DEPRECATE(_sopen_s) - _ACRTIMP int __cdecl _open( - _In_z_ char const* _FileName, - _In_ int _OpenFlag, - ...); - - _Check_return_ _CRT_INSECURE_DEPRECATE(_sopen_s) - _ACRTIMP int __cdecl _sopen( - _In_z_ char const* _FileName, - _In_ int _OpenFlag, - _In_ int _ShareFlag, - ...); - - #endif - - - - #if defined(_CRT_INTERNAL_NONSTDC_NAMES) && _CRT_INTERNAL_NONSTDC_NAMES - // Suppress warnings about double deprecation - #pragma warning(push) - #pragma warning(disable: 4141) - - _Check_return_ _CRT_NONSTDC_DEPRECATE(_access) - _ACRTIMP int __cdecl access( - _In_z_ char const* _FileName, - _In_ int _AccessMode - ); - - _Check_return_ _CRT_NONSTDC_DEPRECATE(_chmod) - _ACRTIMP int __cdecl chmod( - _In_z_ char const* _FileName, - _In_ int _AccessMode - ); - - _Check_return_ _CRT_NONSTDC_DEPRECATE(_chsize) - _ACRTIMP int __cdecl chsize( - _In_ int _FileHandle, - _In_ long _Size - ); - - _Check_return_opt_ _CRT_NONSTDC_DEPRECATE(_close) - _ACRTIMP int __cdecl close( - _In_ int _FileHandle - ); - - _Check_return_ _CRT_NONSTDC_DEPRECATE(_creat) _CRT_INSECURE_DEPRECATE(_sopen_s) - _ACRTIMP int __cdecl creat( - _In_z_ char const* _FileName, - _In_ int _PermissionMode - ); - - _Check_return_ _CRT_NONSTDC_DEPRECATE(_dup) - _ACRTIMP int __cdecl dup( - _In_ int _FileHandle - ); - - _Check_return_ _CRT_NONSTDC_DEPRECATE(_dup2) - _ACRTIMP int __cdecl dup2( - _In_ int _FileHandleSrc, - _In_ int _FileHandleDst - ); - - _Check_return_ _CRT_NONSTDC_DEPRECATE(_eof) - _ACRTIMP int __cdecl eof( - _In_ int _FileHandle - ); - - _Check_return_ _CRT_NONSTDC_DEPRECATE(_filelength) - _ACRTIMP long __cdecl filelength( - _In_ int _FileHandle - ); - - _Check_return_ _CRT_NONSTDC_DEPRECATE(_isatty) - _ACRTIMP int __cdecl isatty( - _In_ int _FileHandle - ); - - _Check_return_ _CRT_NONSTDC_DEPRECATE(_locking) - _ACRTIMP int __cdecl locking( - _In_ int _FileHandle, - _In_ int _LockMode, - _In_ long _NumOfBytes - ); - - _Check_return_opt_ _CRT_NONSTDC_DEPRECATE(_lseek) - _ACRTIMP long __cdecl lseek( - _In_ int _FileHandle, - _In_ long _Offset, - _In_ int _Origin - ); - - _Success_(return != 0) - _CRT_NONSTDC_DEPRECATE(_mktemp) _CRT_INSECURE_DEPRECATE(_mktemp_s) - _ACRTIMP char * __cdecl mktemp( - _Inout_z_ char* _TemplateName - ); - - _Check_return_ _CRT_NONSTDC_DEPRECATE(_open) _CRT_INSECURE_DEPRECATE(_sopen_s) - _ACRTIMP int __cdecl open( - _In_z_ char const* _FileName, - _In_ int _OpenFlag, - ...); - - _Success_(return != -1) - _CRT_NONSTDC_DEPRECATE(_read) - _ACRTIMP int __cdecl read( - _In_ int _FileHandle, - _Out_writes_bytes_(_MaxCharCount) void* _DstBuf, - _In_ unsigned int _MaxCharCount - ); - - _Check_return_ _CRT_NONSTDC_DEPRECATE(_setmode) - _ACRTIMP int __cdecl setmode( - _In_ int _FileHandle, - _In_ int _Mode - ); - - _CRT_NONSTDC_DEPRECATE(_sopen) _CRT_INSECURE_DEPRECATE(_sopen_s) - _ACRTIMP int __cdecl sopen( - _In_ char const* _FileName, - _In_ int _OpenFlag, - _In_ int _ShareFlag, - ...); - - _Check_return_ _CRT_NONSTDC_DEPRECATE(_tell) - _ACRTIMP long __cdecl tell( - _In_ int _FileHandle - ); - - _CRT_NONSTDC_DEPRECATE(_umask) _CRT_INSECURE_DEPRECATE(_umask_s) - _ACRTIMP int __cdecl umask( - _In_ int _Mode - ); - - _CRT_NONSTDC_DEPRECATE(_unlink) - _ACRTIMP int __cdecl unlink( - _In_z_ char const* _FileName - ); - - _Check_return_ _CRT_NONSTDC_DEPRECATE(_write) - _ACRTIMP int __cdecl write( - _In_ int _FileHandle, - _In_reads_bytes_(_MaxCharCount) void const* _Buf, - _In_ unsigned int _MaxCharCount - ); - - #pragma warning(pop) - #endif // _CRT_INTERNAL_NONSTDC_NAMES -#endif // _CRT_FUNCTIONS_REQUIRED - -_CRT_END_C_HEADER -_UCRT_RESTORE_CLANG_WARNINGS -#pragma warning(pop) // _UCRT_DISABLED_WARNINGS diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_io.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_io.h.blob deleted file mode 100644 index ac0be188b8e495ff648d071ac60597bed377fa36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17165 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 DtjF7O diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_malloc.h b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_malloc.h deleted file mode 100644 index 907f3553b..000000000 --- a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_malloc.h +++ /dev/null @@ -1,234 +0,0 @@ -// -// corecrt_malloc.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// The memory allocation library. These pieces of the allocation library are -// shared by both and . -// -#pragma once - -#include - -#pragma warning(push) -#pragma warning(disable: _UCRT_DISABLED_WARNINGS) -_UCRT_DISABLE_CLANG_WARNINGS - -_CRT_BEGIN_C_HEADER - - - -#if defined _DEBUG && defined _CRTDBG_MAP_ALLOC - #pragma push_macro("_aligned_free") - #pragma push_macro("_aligned_malloc") - #pragma push_macro("_aligned_msize") - #pragma push_macro("_aligned_offset_malloc") - #pragma push_macro("_aligned_offset_realloc") - #pragma push_macro("_aligned_offset_recalloc") - #pragma push_macro("_aligned_realloc") - #pragma push_macro("_aligned_recalloc") - #pragma push_macro("_expand") - #pragma push_macro("_freea") - #pragma push_macro("_msize") - #pragma push_macro("_recalloc") - #pragma push_macro("calloc") - #pragma push_macro("free") - #pragma push_macro("malloc") - #pragma push_macro("realloc") - - #undef _aligned_free - #undef _aligned_malloc - #undef _aligned_msize - #undef _aligned_offset_malloc - #undef _aligned_offset_realloc - #undef _aligned_offset_recalloc - #undef _aligned_realloc - #undef _aligned_recalloc - #undef _expand - #undef _freea - #undef _msize - #undef _recalloc - #undef calloc - #undef free - #undef malloc - #undef realloc -#endif - -_Check_return_ _Ret_maybenull_ _Post_writable_byte_size_(_Count * _Size) -_ACRTIMP _CRTALLOCATOR _CRTRESTRICT -void* __cdecl _calloc_base( - _In_ size_t _Count, - _In_ size_t _Size - ); - -_Check_return_ _Ret_maybenull_ _Post_writable_byte_size_(_Count * _Size) -_ACRTIMP _CRT_JIT_INTRINSIC _CRTALLOCATOR _CRTRESTRICT _CRT_HYBRIDPATCHABLE -void* __cdecl calloc( - _In_ _CRT_GUARDOVERFLOW size_t _Count, - _In_ _CRT_GUARDOVERFLOW size_t _Size - ); - -_Check_return_ -_ACRTIMP int __cdecl _callnewh( - _In_ size_t _Size - ); - -_Check_return_ _Ret_maybenull_ _Post_writable_byte_size_(_Size) -_ACRTIMP _CRTALLOCATOR _CRT_HYBRIDPATCHABLE -void* __cdecl _expand( - _Pre_notnull_ void* _Block, - _In_ _CRT_GUARDOVERFLOW size_t _Size - ); - -_ACRTIMP -void __cdecl _free_base( - _Pre_maybenull_ _Post_invalid_ void* _Block - ); - -_ACRTIMP _CRT_HYBRIDPATCHABLE -void __cdecl free( - _Pre_maybenull_ _Post_invalid_ void* _Block - ); - -_Check_return_ _Ret_maybenull_ _Post_writable_byte_size_(_Size) -_ACRTIMP _CRTALLOCATOR _CRTRESTRICT -void* __cdecl _malloc_base( - _In_ size_t _Size - ); - -_Check_return_ _Ret_maybenull_ _Post_writable_byte_size_(_Size) -_ACRTIMP _CRTALLOCATOR _CRT_JIT_INTRINSIC _CRTRESTRICT _CRT_HYBRIDPATCHABLE -void* __cdecl malloc( - _In_ _CRT_GUARDOVERFLOW size_t _Size - ); - -_Check_return_ -_ACRTIMP -size_t __cdecl _msize_base( - _Pre_notnull_ void* _Block - ) _CRT_NOEXCEPT; - -_Check_return_ -_ACRTIMP _CRT_HYBRIDPATCHABLE -size_t __cdecl _msize( - _Pre_notnull_ void* _Block - ); - -_Success_(return != 0) _Check_return_ _Ret_maybenull_ _Post_writable_byte_size_(_Size) -_ACRTIMP _CRTALLOCATOR _CRTRESTRICT -void* __cdecl _realloc_base( - _Pre_maybenull_ _Post_invalid_ void* _Block, - _In_ size_t _Size - ); - -_Success_(return != 0) _Check_return_ _Ret_maybenull_ _Post_writable_byte_size_(_Size) -_ACRTIMP _CRTALLOCATOR _CRTRESTRICT _CRT_HYBRIDPATCHABLE -void* __cdecl realloc( - _Pre_maybenull_ _Post_invalid_ void* _Block, - _In_ _CRT_GUARDOVERFLOW size_t _Size - ); - -_Success_(return != 0) _Check_return_ _Ret_maybenull_ _Post_writable_byte_size_(_Count * _Size) -_ACRTIMP _CRTALLOCATOR _CRTRESTRICT -void* __cdecl _recalloc_base( - _Pre_maybenull_ _Post_invalid_ void* _Block, - _In_ size_t _Count, - _In_ size_t _Size - ); - -_Success_(return != 0) _Check_return_ _Ret_maybenull_ _Post_writable_byte_size_(_Count * _Size) -_ACRTIMP _CRTALLOCATOR _CRTRESTRICT -void* __cdecl _recalloc( - _Pre_maybenull_ _Post_invalid_ void* _Block, - _In_ _CRT_GUARDOVERFLOW size_t _Count, - _In_ _CRT_GUARDOVERFLOW size_t _Size - ); - -_ACRTIMP -void __cdecl _aligned_free( - _Pre_maybenull_ _Post_invalid_ void* _Block - ); - -_Check_return_ _Ret_maybenull_ _Post_writable_byte_size_(_Size) -_ACRTIMP _CRTALLOCATOR _CRTRESTRICT -void* __cdecl _aligned_malloc( - _In_ _CRT_GUARDOVERFLOW size_t _Size, - _In_ size_t _Alignment - ); - -_Check_return_ _Ret_maybenull_ _Post_writable_byte_size_(_Size) -_ACRTIMP _CRTALLOCATOR _CRTRESTRICT -void* __cdecl _aligned_offset_malloc( - _In_ _CRT_GUARDOVERFLOW size_t _Size, - _In_ size_t _Alignment, - _In_ size_t _Offset - ); - -_Check_return_ -_ACRTIMP -size_t __cdecl _aligned_msize( - _Pre_notnull_ void* _Block, - _In_ size_t _Alignment, - _In_ size_t _Offset - ); - -_Success_(return != 0) _Check_return_ _Ret_maybenull_ _Post_writable_byte_size_(_Size) -_ACRTIMP _CRTALLOCATOR _CRTRESTRICT -void* __cdecl _aligned_offset_realloc( - _Pre_maybenull_ _Post_invalid_ void* _Block, - _In_ _CRT_GUARDOVERFLOW size_t _Size, - _In_ size_t _Alignment, - _In_ size_t _Offset - ); - -_Success_(return != 0) _Check_return_ _Ret_maybenull_ _Post_writable_byte_size_(_Count * _Size) -_ACRTIMP _CRTALLOCATOR _CRTRESTRICT -void* __cdecl _aligned_offset_recalloc( - _Pre_maybenull_ _Post_invalid_ void* _Block, - _In_ _CRT_GUARDOVERFLOW size_t _Count, - _In_ _CRT_GUARDOVERFLOW size_t _Size, - _In_ size_t _Alignment, - _In_ size_t _Offset - ); - -_Success_(return != 0) _Check_return_ _Ret_maybenull_ _Post_writable_byte_size_(_Size) -_ACRTIMP _CRTALLOCATOR _CRTRESTRICT -void* __cdecl _aligned_realloc( - _Pre_maybenull_ _Post_invalid_ void* _Block, - _In_ _CRT_GUARDOVERFLOW size_t _Size, - _In_ size_t _Alignment - ); - -_Success_(return != 0) _Check_return_ _Ret_maybenull_ _Post_writable_byte_size_(_Count * _Size) -_ACRTIMP _CRTALLOCATOR _CRTRESTRICT -void* __cdecl _aligned_recalloc( - _Pre_maybenull_ _Post_invalid_ void* _Block, - _In_ _CRT_GUARDOVERFLOW size_t _Count, - _In_ _CRT_GUARDOVERFLOW size_t _Size, - _In_ size_t _Alignment - ); - -#if defined _DEBUG && defined _CRTDBG_MAP_ALLOC - #pragma pop_macro("realloc") - #pragma pop_macro("malloc") - #pragma pop_macro("free") - #pragma pop_macro("calloc") - #pragma pop_macro("_recalloc") - #pragma pop_macro("_msize") - #pragma pop_macro("_freea") - #pragma pop_macro("_expand") - #pragma pop_macro("_aligned_recalloc") - #pragma pop_macro("_aligned_realloc") - #pragma pop_macro("_aligned_offset_recalloc") - #pragma pop_macro("_aligned_offset_realloc") - #pragma pop_macro("_aligned_offset_malloc") - #pragma pop_macro("_aligned_msize") - #pragma pop_macro("_aligned_malloc") - #pragma pop_macro("_aligned_free") -#endif - - - -_CRT_END_C_HEADER -_UCRT_RESTORE_CLANG_WARNINGS -#pragma warning(pop) // _UCRT_DISABLED_WARNINGS diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_malloc.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_malloc.h.blob deleted file mode 100644 index c70c6afcd87d1437973f51a0af7b80fa7a3d05ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6998 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 diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_memcpy_s.h b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_memcpy_s.h deleted file mode 100644 index 5dd9a1132..000000000 --- a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_memcpy_s.h +++ /dev/null @@ -1,95 +0,0 @@ -// -// corecrt_memcpy_s.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// Inline definitions of memcpy_s and memmove_s -// -#pragma once - -#include -#include -#include - -#pragma warning(push) -#pragma warning(disable: _UCRT_DISABLED_WARNINGS) -_UCRT_DISABLE_CLANG_WARNINGS - -_CRT_BEGIN_C_HEADER - -#ifndef _CRT_MEMCPY_S_INLINE - #define _CRT_MEMCPY_S_INLINE static __inline -#endif - -#define _CRT_MEMCPY_S_VALIDATE_RETURN_ERRCODE(expr, errorcode) \ - { \ - int _Expr_val=!!(expr); \ - if (!(_Expr_val)) \ - { \ - errno = errorcode; \ - _invalid_parameter_noinfo(); \ - return errorcode; \ - } \ - } - -#if !defined RC_INVOKED && !defined __midl && __STDC_WANT_SECURE_LIB__ - - // TRANSITION OS-58345186: this function should have external linkage. - _Success_(return == 0) - _Check_return_opt_ - _CRT_MEMCPY_S_INLINE errno_t __CRTDECL memcpy_s( - _Out_writes_bytes_to_opt_(_DestinationSize, _SourceSize) void* const _Destination, - _In_ rsize_t const _DestinationSize, - _In_reads_bytes_opt_(_SourceSize) void const* const _Source, - _In_ rsize_t const _SourceSize - ) - { - if (_SourceSize == 0) - { - return 0; - } - - _CRT_MEMCPY_S_VALIDATE_RETURN_ERRCODE(_Destination != NULL, EINVAL); - if (_Source == NULL || _DestinationSize < _SourceSize) - { - memset(_Destination, 0, _DestinationSize); - - _CRT_MEMCPY_S_VALIDATE_RETURN_ERRCODE(_Source != NULL, EINVAL); - _CRT_MEMCPY_S_VALIDATE_RETURN_ERRCODE(_DestinationSize >= _SourceSize, ERANGE); - - // Unreachable, but required to suppress /analyze warnings: - return EINVAL; - } - memcpy(_Destination, _Source, _SourceSize); - return 0; - } - - // TRANSITION OS-58345186: this function should have external linkage. - _Check_return_wat_ - _CRT_MEMCPY_S_INLINE errno_t __CRTDECL memmove_s( - _Out_writes_bytes_to_opt_(_DestinationSize, _SourceSize) void* const _Destination, - _In_ rsize_t const _DestinationSize, - _In_reads_bytes_opt_(_SourceSize) void const* const _Source, - _In_ rsize_t const _SourceSize - ) - { - if (_SourceSize == 0) - { - return 0; - } - - _CRT_MEMCPY_S_VALIDATE_RETURN_ERRCODE(_Destination != NULL, EINVAL); - _CRT_MEMCPY_S_VALIDATE_RETURN_ERRCODE(_Source != NULL, EINVAL); - _CRT_MEMCPY_S_VALIDATE_RETURN_ERRCODE(_DestinationSize >= _SourceSize, ERANGE); - - memmove(_Destination, _Source, _SourceSize); - return 0; - } - -#endif - -#undef _CRT_MEMCPY_S_VALIDATE_RETURN_ERRCODE - -_UCRT_RESTORE_CLANG_WARNINGS -#pragma warning(pop) // _UCRT_DISABLED_WARNINGS -_CRT_END_C_HEADER diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_memcpy_s.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_memcpy_s.h.blob deleted file mode 100644 index 6099c454f6b49b0455f03da20f957814b0faac27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5783 zcmcgwU2NOd6(-fR77Q;{e$aS9y0ZC`?V6%(DXP-dfoxHBmDrLjDOPKwy`@P?Vngz3 zBqdu$_mHCK0<0*qA=@ytFi;@Pimk}Qu&o%-Wdn+B#juC8O|j)+z%XDK0u<|j3@fm$ z)y}1ULTa%s+u8hZY2I`0chApv&b`zS_4zyesShd2m$PAPyYU^mSVdxkj90)uX zE1Il>9We|RXo?Q|2?a~Ux`|cUn~s zA~}t+`E(|c%uQum@@zbIIui#ql%L2XLB*Ev@yXNEM8*CG&Bl|bvnZaNn4F38WO`;I zGaX0yRAz>^_4A1&pUP*$A&O0GCkoqK-eN#F#3hQw8mBY}uwB$A7x6Neg(TUDYO-p} zpm}Vl61N-$r5YH zT3Hn=nJo*3spv)6Q_;pp$%l zK9T&;fx5}|W?BaLL~ux}bl_|+Xe$*-C@n3wCfL{ zqFxb68LEoeErUt&5Lx3&-^QCYPBWwlqCxIL+bsF@E4}-~!a>GawX$rNLPs;)VsbS> zRk7G*DUc4LS5%wI9Zhh1y|{5jggAG>1!BY<)3b3_JGs-*NH#9x+YRfkM86&O%^T9{ z{ct+DigW!Skl1O$G7?m!s5?6JruV#oIcs;p+-6RIQZVv)geI*;?%Z)ZVRww3_?_oe*8H_`k_R_0%t1cqw`H zdNNDy)rQVgu_7@;;IxLT@<8Klm?2+$R#P_2RN($y)MbfLv0k)?L2Cd0os|98M@Bm5 z%YEsy!%@2a&`MwRf%7+4O$+YvBBSUkd^0k(7sz6o`yjKqQ)3^*%kUYY!vd_g_J(Uc zxsWhUSr(>R@`k0&^;ujo#I~rtv@uOq4N}9yyJ>!&FL`L*JKsy?G84&cB9}-dnN*fN z772!qjYh(cF;+=2nL~Szg53JcIi+q z{pqjofdJSOLw_oM%3pf-9GRH&&ABz~38zNJmvL*@6HW~h+;-jwXdg|2UZ=0+u3UZn zmFdn@!mk6H%A}n_ifUx?gzv-wJCi?tb!ag6jq#s$qC%cI~Zn{ewe)Xb`0_(r2hM5y*TYRlKs`$$iTui+N+iAp7p0_dfRC{2Mu^ z%yazm@gD+nRx{rRjj!H(;p&?oe9xspKSMop5M+A}5B;uq>a|14MT2)|-EQ zujg;FQ+99geDGqFj$Doa{^Lgn4mx)8g1?fO4Ha;>57r|u_S7}GaC z{@26fX(t}Ni`sP*WPg8u{G&hqK6b?=+c~!LS&)r@;fWP zxcJ#m>|fhv%HIXd;JGr;EQf263LlF zk~leVXD1u-R(T_6TI5KhD0*-I-l&I+&)PnE{9gYE?B(TQtb1?V`lY&%^1G}V@C{5x z>9{WrWBohJU;gB4PkqvCK@GhfgTBH3DE)}<5g4a@Q!qZ^djiJ#!zXUB{@?!lpbKxv zHx!A|)4pjK>kr*0?fCgu#-Da-+#7s8_+pfXUlqa-{gucI5clWPFf(V&twibn0GNiD ANB{r; diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_memory.h b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_memory.h deleted file mode 100644 index ec8077a4b..000000000 --- a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_memory.h +++ /dev/null @@ -1,122 +0,0 @@ -// -// corecrt_memory.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// The buffer (memory) manipulation library. These declarations are split out -// so that they may be included by both and . -// does not include to avoid introducing conflicts with other user -// headers named . -// -#pragma once - -#include -#include -#include - -#pragma warning(push) -#pragma warning(disable: _UCRT_DISABLED_WARNINGS) -_UCRT_DISABLE_CLANG_WARNINGS - -#ifndef __midl - -_CRT_BEGIN_C_HEADER - - - -_Check_return_ -_ACRTIMP int __cdecl _memicmp( - _In_reads_bytes_opt_(_Size) void const* _Buf1, - _In_reads_bytes_opt_(_Size) void const* _Buf2, - _In_ size_t _Size - ); - -_Check_return_ -_ACRTIMP int __cdecl _memicmp_l( - _In_reads_bytes_opt_(_Size) void const* _Buf1, - _In_reads_bytes_opt_(_Size) void const* _Buf2, - _In_ size_t _Size, - _In_opt_ _locale_t _Locale - ); - - - -#if !defined RC_INVOKED && __STDC_WANT_SECURE_LIB__ - - #if defined __cplusplus && _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY - extern "C++" - { - template - inline typename _CrtEnableIf<(_Size > 1), void *>::_Type __cdecl memcpy( - _DstType (&_Dst)[_Size], - _In_reads_bytes_opt_(_SrcSize) void const* _Src, - _In_ size_t _SrcSize - ) _CRT_SECURE_CPP_NOTHROW - { - return memcpy_s(_Dst, _Size * sizeof(_DstType), _Src, _SrcSize) == 0 ? _Dst : 0; - } - } - #endif - - #if defined __cplusplus && _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY - extern "C++" - { - template - inline errno_t __CRTDECL memcpy_s( - _DstType (&_Dst)[_Size], - _In_reads_bytes_opt_(_SrcSize) void const* _Src, - _In_ rsize_t _SrcSize - ) _CRT_SECURE_CPP_NOTHROW - { - return memcpy_s(_Dst, _Size * sizeof(_DstType), _Src, _SrcSize); - } - } - #endif - -#endif // !defined RC_INVOKED && __STDC_WANT_SECURE_LIB__ - - - -#if defined(_CRT_INTERNAL_NONSTDC_NAMES) && _CRT_INTERNAL_NONSTDC_NAMES - - _CRT_NONSTDC_DEPRECATE(_memccpy) - _ACRTIMP void* __cdecl memccpy( - _Out_writes_bytes_opt_(_Size) void* _Dst, - _In_reads_bytes_opt_(_Size) void const* _Src, - _In_ int _Val, - _In_ size_t _Size - ); - - _Check_return_ _CRT_NONSTDC_DEPRECATE(_memicmp) - _ACRTIMP int __cdecl memicmp( - _In_reads_bytes_opt_(_Size) void const* _Buf1, - _In_reads_bytes_opt_(_Size) void const* _Buf2, - _In_ size_t _Size - ); - -#endif // _CRT_INTERNAL_NONSTDC_NAMES - - - -#if defined __cplusplus - - extern "C++" _Check_return_ - inline void* __CRTDECL memchr( - _In_reads_bytes_opt_(_N) void* _Pv, - _In_ int _C, - _In_ size_t _N - ) - { - void const* const _Pvc = _Pv; - return const_cast(memchr(_Pvc, _C, _N)); - } - -#endif - - - -_CRT_END_C_HEADER - -#endif // !__midl -_UCRT_RESTORE_CLANG_WARNINGS -#pragma warning(pop) // _UCRT_DISABLED_WARNINGS diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_memory.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_memory.h.blob deleted file mode 100644 index d9aeedef2129a564754c3ba593924241a911c57b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4567 zcmb_g?Qc_67(dsc+z>*_BuKV_-3w!k-JY$~LUfyjwp$8YyR{o-8*sV1_qIE5U+TTL zTf4->5RDp*8e=pe>Ib9251@a5xcJ2n24j$yL}N%ae$tTO3-JRO>T_^Z#wyWd(GU`rsB5OK$R-|M zdgJmd1PsAWRl#vyA=6ki#Jz5ph+1*lH1IUhu&4-Hk`oogagsr1WrI^8ZXdkBny%s_4u`^nd@Mc^4TZ-BVoUm1&_5mxf*Bt_ z5DkNgtqBAVjt^23`+*-0hR0)kFnr+PP%uDW4;_dO2Kjg-Iux+&z2luTwZ(L^OJ$+bp3I<04L3>L{=s8EeT{@FYPvGTjYALO43+?*R;0f{~Q1zRZ3v@AYsgk(L!w6hwQRX6^8+9HZ;2Hkrl6uw##l@5Oi+|I)UXr-qc zF9H!BUEMCXx2GHa;MKWRr+ZE0jdAyJu-%V4gQE382LDd{Rq`{H(w$ z#I&g6seMc(j^F|Q1&1O5R#~yA!}tx0pM!#+)I#aY0v_?>FAlBr5Tl1y)Fyg^{jU zzCu(0Lcwm?q!yX50dQlmxbO0; z?zXtU%T9x33%d6HE;89e*=U8aS6|4|p#bMy*;ZYB2y}L;kl_V|B()Oit~!5_s#oVa zdqdHzdLm)UmY$$3FN2P~nbw{?{Lm27h9PTWwo;mf#P`Wp8&v0^4m&C(vAS&!ex+GF zrJ%runuG8qXF${PXlswQaK$L1sg7fx-qOp4wn*r?jq7rM-e@{0Za71TW;r1j5!F-& z{pDvlXLTYuJNbj@L{FD<`73vqGk>vg@-etz>_#lR34T_>XCp$)qJiG_ z{pf`^+szB3^h$4Ni(zS7aJF^ila$BrazZg(&NSTrlbS3!6cOo^_N&BEfqmA&&1GLiRvEZ{9@W#B3*1z??!`MD zWxALn)(bjg@W-2XoBKw}bX(EZcF_INclKD|{5SL;4291lqwJ{12Vj_pg2fm9pBB#i zzUjk)8Xnd)qDF_0X+bR@qil4WkC|jALFV4eJag;iiCX}v;^)yF><+No$?gO>?idHV zBaR~=k2{W2pR1cjM!ve!@oUio02w(Nc>{FK{eN@2zWukQRJXo~ZR++h+u7|PTiI5S zZEPFJF~`_`A2a2c0(s1F3}o)RLr-+Pdi%mJrT%pdsG-TnG^1va6YNAA*!`tFyWRZY zQdu6Roo%P}-TuDs`p-Z3KP!#FY<6!x3A*l^k8l3C=e2jrbbGve5}>;leLwg0`N!6m M>3aKn-}N#70ex5Np8x;= diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_search.h b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_search.h deleted file mode 100644 index 24db8b7f8..000000000 --- a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_search.h +++ /dev/null @@ -1,218 +0,0 @@ -// -// corecrt_search.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// Declarations of functions for sorting and searching. These declarations are -// split out so that they may be included by both and . -// does not include to avoid introducing conflicts with -// other user headers named . -// -#pragma once - -#include -#include - -#pragma warning(push) -#pragma warning(disable: _UCRT_DISABLED_WARNINGS) -_UCRT_DISABLE_CLANG_WARNINGS - -_CRT_BEGIN_C_HEADER - - - typedef int (__cdecl* _CoreCrtSecureSearchSortCompareFunction)(void*, void const*, void const*); - typedef int (__cdecl* _CoreCrtNonSecureSearchSortCompareFunction)(void const*, void const*); - - -#if __STDC_WANT_SECURE_LIB__ - - _Check_return_ - _ACRTIMP void* __cdecl bsearch_s( - _In_ void const* _Key, - _In_reads_bytes_(_NumOfElements * _SizeOfElements) void const* _Base, - _In_ rsize_t _NumOfElements, - _In_ rsize_t _SizeOfElements, - _In_ _CoreCrtSecureSearchSortCompareFunction _CompareFunction, - _In_opt_ void* _Context - ); - - _ACRTIMP void __cdecl qsort_s( - _Inout_updates_bytes_(_NumOfElements * _SizeOfElements) void* _Base, - _In_ rsize_t _NumOfElements, - _In_ rsize_t _SizeOfElements, - _In_ _CoreCrtSecureSearchSortCompareFunction _CompareFunction, - _In_opt_ void* _Context - ); - -#endif // __STDC_WANT_SECURE_LIB__ - - - -_Check_return_ -_ACRTIMP void* __cdecl bsearch( - _In_ void const* _Key, - _In_reads_bytes_(_NumOfElements * _SizeOfElements) void const* _Base, - _In_ size_t _NumOfElements, - _In_ size_t _SizeOfElements, - _In_ _CoreCrtNonSecureSearchSortCompareFunction _CompareFunction - ); - -_ACRTIMP void __cdecl qsort( - _Inout_updates_bytes_(_NumOfElements * _SizeOfElements) void* _Base, - _In_ size_t _NumOfElements, - _In_ size_t _SizeOfElements, - _In_ _CoreCrtNonSecureSearchSortCompareFunction _CompareFunction - ); - -_Check_return_ -_ACRTIMP void* __cdecl _lfind_s( - _In_ void const* _Key, - _In_reads_bytes_((*_NumOfElements) * _SizeOfElements) void const* _Base, - _Inout_ unsigned int* _NumOfElements, - _In_ size_t _SizeOfElements, - _In_ _CoreCrtSecureSearchSortCompareFunction _CompareFunction, - _In_ void* _Context - ); - -_Check_return_ -_ACRTIMP void* __cdecl _lfind( - _In_ void const* _Key, - _In_reads_bytes_((*_NumOfElements) * _SizeOfElements) void const* _Base, - _Inout_ unsigned int* _NumOfElements, - _In_ unsigned int _SizeOfElements, - _In_ _CoreCrtNonSecureSearchSortCompareFunction _CompareFunction - ); - -_Check_return_ -_ACRTIMP void* __cdecl _lsearch_s( - _In_reads_bytes_(_SizeOfElements) void const* _Key, - _Inout_updates_bytes_((*_NumOfElements + 1) * _SizeOfElements) void* _Base, - _Inout_ unsigned int* _NumOfElements, - _In_ size_t _SizeOfElements, - _In_ _CoreCrtSecureSearchSortCompareFunction _CompareFunction, - _In_ void* _Context - ); - -_Check_return_ -_ACRTIMP void* __cdecl _lsearch( - _In_reads_bytes_(_SizeOfElements) void const* _Key, - _Inout_updates_bytes_((*_NumOfElements + 1) * _SizeOfElements) void* _Base, - _Inout_ unsigned int* _NumOfElements, - _In_ unsigned int _SizeOfElements, - _In_ _CoreCrtNonSecureSearchSortCompareFunction _CompareFunction - ); - - - -// Managed search routines -#if defined __cplusplus && defined _M_CEE -extern "C++" -{ - typedef int (__clrcall* _CoreCrtMgdSecureSearchSortCompareFunction)(void*, void const*, void const*); - typedef int (__clrcall* _CoreCrtMgdNonSecureSearchSortCompareFunction)(void const*, void const*); - - #if __STDC_WANT_SECURE_LIB__ - - _Check_return_ - void* __clrcall bsearch_s( - _In_ void const* _Key, - _In_reads_bytes_(_NumOfElements * _SizeOfElements) void const* _Base, - _In_ rsize_t _NumOfElements, - _In_ rsize_t _SizeOfElements, - _In_ _CoreCrtMgdSecureSearchSortCompareFunction _CompareFunction, - _In_ void* _Context); - - void __clrcall qsort_s( - _Inout_updates_bytes_(_NumOfElements * _SizeOfElements) void* _Base, - _In_ rsize_t _NumOfElements, - _In_ rsize_t _SizeOfElements, - _In_ _CoreCrtMgdSecureSearchSortCompareFunction _CompareFunction, - _In_ void* _Context); - - #endif // __STDC_WANT_SECURE_LIB__ - - _Check_return_ - void* __clrcall bsearch( - _In_ void const* _Key, - _In_reads_bytes_(_NumOfElements * _SizeOfElements) void const* _Base, - _In_ size_t _NumOfElements, - _In_ size_t _SizeOfElements, - _In_ _CoreCrtMgdNonSecureSearchSortCompareFunction _CompareFunction - ); - - _Check_return_ - void* __clrcall _lfind_s( - _In_ void const* _Key, - _In_reads_bytes_(_NumOfElements * _SizeOfElements) void const* _Base, - _Inout_ unsigned int* _NumOfElements, - _In_ size_t _SizeOfElements, - _In_ _CoreCrtMgdSecureSearchSortCompareFunction _CompareFunction, - _In_ void* _Context - ); - - _Check_return_ - void* __clrcall _lfind( - _In_ void const* _Key, - _In_reads_bytes_((*_NumOfElements) * _SizeOfElements) void const* _Base, - _Inout_ unsigned int* _NumOfElements, - _In_ unsigned int _SizeOfElements, - _In_ _CoreCrtMgdNonSecureSearchSortCompareFunction _CompareFunction - ); - - _Check_return_ - void* __clrcall _lsearch_s( - _In_ void const* _Key, - _In_reads_bytes_((*_NumOfElements) * _SizeOfElements) void* _Base, - _In_ unsigned int* _NumOfElements, - _In_ size_t _SizeOfElements, - _In_ _CoreCrtMgdSecureSearchSortCompareFunction _CompareFunction, - _In_ void* _Context - ); - - _Check_return_ - void* __clrcall _lsearch( - _In_ void const* _Key, - _Inout_updates_bytes_((*_NumOfElements) * _SizeOfElements) void* _Base, - _Inout_ unsigned int* _NumOfElements, - _In_ unsigned int _SizeOfElements, - _In_ _CoreCrtMgdNonSecureSearchSortCompareFunction _CompareFunction - ); - - void __clrcall qsort( - _Inout_updates_bytes_(_NumOfElements * _SizeOfElements) void* _Base, - _In_ size_t _NumOfElements, - _In_ size_t _SizeOfElements, - _In_ _CoreCrtMgdNonSecureSearchSortCompareFunction _CompareFunction - ); -} -#endif // defined __cplusplus && defined _M_CEE - - - -#if defined(_CRT_INTERNAL_NONSTDC_NAMES) && _CRT_INTERNAL_NONSTDC_NAMES - - _Check_return_ _CRT_NONSTDC_DEPRECATE(_lfind) - _ACRTIMP void* __cdecl lfind( - _In_ void const* _Key, - _In_reads_bytes_((*_NumOfElements) * _SizeOfElements) void const* _Base, - _Inout_ unsigned int* _NumOfElements, - _In_ unsigned int _SizeOfElements, - _In_ _CoreCrtNonSecureSearchSortCompareFunction _CompareFunction - ); - - _Check_return_ _CRT_NONSTDC_DEPRECATE(_lsearch) - _ACRTIMP void* __cdecl lsearch( - _In_ void const* _Key, - _Inout_updates_bytes_((*_NumOfElements) * _SizeOfElements) void* _Base, - _Inout_ unsigned int* _NumOfElements, - _In_ unsigned int _SizeOfElements, - _In_ _CoreCrtNonSecureSearchSortCompareFunction _CompareFunction - ); - -#endif // _CRT_INTERNAL_NONSTDC_NAMES - - - -_CRT_END_C_HEADER -_UCRT_RESTORE_CLANG_WARNINGS -#pragma warning(pop) // _UCRT_DISABLED_WARNINGS diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_search.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_search.h.blob deleted file mode 100644 index fd51233dac144c679f5b9aa770d61bc8eabd2489..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6274 zcmdT|eQX?Ml2Yl>hBP3I=VOS9US#I9SGx^;7Q60fnH*-6|lxSa1^JGb6P zxH~6tC4|&J#>XVY9|#ZlIK3lQ(oGBdLra^J>l`$jIXn zb!nRD9tHFUVSrIJS<7k26CP$G9Ggs}QfwkN0>9zMC>Kw}IW`d=NF-y?_#l@`k0hh< z(ScM&o{F$z$p}p2(nphVm|{!9k^ZqkYl{8A#Uk;s6c>pf?H`VWt>NLL$-xMhP9%rJ z_WX1-9!{iF0YCCYHxq?TE@#q`Drz%Ez|TZ;xdJ1pf}9u0X0;yAXtPWTl4K_;x=E#J zO_xPxHsGHmyhwBdd9tF!=TyxwCBg6rkWM|w%QJkzK+FtcPD+SLWV!)F#3V=A9^in< z>p5ZuXAcIrfZsDEcxFnDdlX|@0ELRBN15VHDI>{}Stt#WS(B)S1QfLPBr;zhqQ@l4 zl+2sNGsWwMq~>5xNi_L0~#CS&yWGBhR-EBdqqjFi{oA` z^AM;KH&BH<;FiZ}&(>6!XGYV{fY%UcS?CX0?$1&6|>3 zwa#iycC)ft6VuyMsWyh=3{wPxa??BqU)F+$4p2@r8gxg{AUC?n&46CmaTUL8h2tzU zs%bLx))YMU_`QC=*SEj7`#{yQX+h6J6)U8wVtpq>lI3QENnYp7suvrtFr>4jp#@W> zE=t*KJ!__+Wn_(wjgch* ztvqtpnwm^*yjkfy;}l-dZOUw}=-03H`g06N8Dkcv$QCA7;bmD9>Z}T@hp2hkX7!4Q zY_1!ZE{T=1V*T`3My#5i^_P_^x`sO|TFJ&0z1*_4q_nDGZ`_bd_lNVTra0FRf)zW3 zpXGR2%BhYX-SGa)J$e1^W>>GZtCr0g#MJBy!3yfsdEmiyLdfenQH4UijTJWD(#8r` zs!GbX-Q~E7{AZ07RJGbKMXTOCpl6iKr_P`kzS2~5|4{$nZ$qb+rZq`)b;$CcNLl4Vw()Rl$TSxC^G%4D3bC&D-H65T3yER-XIKUwr45ZtWXA|*;cFL zYlV9A1>Dr+Xs>R+8w%Lny3cA!@7~dS=M%dwi)Bmy_s zAp0QrqtoH1Ubp_wt$w!6x#yB0IE@zoiyyujy#B|V>@!s{JWzBmJpr=r_jm4itml#M z)yP_LtF`NUuMb_EzkTs>r|eVr()ZpUq7LChy&>v2J`R|{8NfH_H(nJ09nKW#!w7!9E}4`pb5ZvJP$J$@giXH2eW;*zj5Mr zx&N2+x^~mMLFS@efP3gYfbDcUU?<%PxR>4w*hO~%`mrB025HTuJ^~oVVZcE=2sng?0HZhx7{_tI2l0b|Nt^^ciBAHa!lwXFr(@&pfBycE;(`19;$bA!-DV0G_}n00k@n zzCypUJ49WfuK*U8wvUWl_-E(4&Xv?l$6xvm$c)1;zVp2F?GC5xj=Sl*yF=7|yuUL< zMQ{W#ffImfoCf4E5BM_uGR!GndEoP%-}> - -#pragma warning(push) -#pragma warning(disable: _UCRT_DISABLED_WARNINGS) -_UCRT_DISABLE_CLANG_WARNINGS - -#define _SH_DENYRW 0x10 // deny read/write mode -#define _SH_DENYWR 0x20 // deny write mode -#define _SH_DENYRD 0x30 // deny read mode -#define _SH_DENYNO 0x40 // deny none mode -#define _SH_SECURE 0x80 // secure mode - - - -#if (defined _CRT_DECLARE_NONSTDC_NAMES && _CRT_DECLARE_NONSTDC_NAMES) || (!defined _CRT_DECLARE_NONSTDC_NAMES && !__STDC__) - #define SH_DENYRW _SH_DENYRW - #define SH_DENYWR _SH_DENYWR - #define SH_DENYRD _SH_DENYRD - #define SH_DENYNO _SH_DENYNO -#endif - -_UCRT_RESTORE_CLANG_WARNINGS -#pragma warning(pop) // _UCRT_DISABLED_WARNINGS diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_share.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_share.h.blob deleted file mode 100644 index ecbcc642e75294d9b6a199fc9bfb93093acb62e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4764 zcmb_fO>7%Q6khj;Xyvw%NPk2kr57r#$4N~Zqy{Cionkdvmvzblmt{RWYfrnoW6iGP zIENm3DmMh;g1B-(6u5vmkaFhGL!eaZrBV-w0|;?JNC=7WX6;!!ZcXB@_b^`1&V28C z?|tv>?0Mziox+v-ilU%8^9Zth=A#0`O^^6tfbz^H$fG{N+;T$9{D8S6KU?>FRx#P|L|wS)XJKfFKer1eZ8bzHY>(ey`*idR^;oOqG^=%wL-MsC~1YVQJK#vYAHz+5^hHZ^=;M) z=5wf2tF;mJvD>ssQq(uAYztK&Nl~Io2|*3UT^nu9=jz0=2@e$2v8h$_SrAejs2I}8 z7cIACwF3pU6!bP#P`R3g!B&vIk)H((gch%naB*v4-ki^=4Xn00j;mg$AP^S< z0ijivU$<_MRk}~l9XV%g$`7US469xTDEj~?MFqFiem>)=Ftx?_4e(k8z66Jiw--mz zZ?#EXTT%PAh%liy@@RuG7plAhx3jrSE|Xf{G_Q^)DEJCtZoTFEjjQxg!2<9Zy@0e=scdSLZ*GL&?rPmzyKQ#3sb^C&)% z4@0+gL>(t@fZOOY^oWNWZF3BTDWeC%-dCYLiU}K7w_0wOv;qPX*z zqW56dXeUn>q`i-EFQg+jpK;zDI5jwtsqxge zXSpuJ2iuKH)Ni^`MUTh4==^=j9O`zgqd^rNYKKdMUXLFT%ptN9hg_WWpZ%pN%Pn#l zYQcAC@7>*Fm8>(=wrkDK(PBKkq1Bh29>)<&t?T&+D)X!@({gFe?|bJBm_J0~WLd%S zXI~pWSTv?t^P5=otYq4OEaN8U#K-N?-h|9?0unOkDeW?uKssNSZ~~0v>D$jO6t_)sq;s~xTNf*VEx|AshtN4pVfaCt2$rd zFgqbpdb88fmEBs%0?I^s;@lB2E_6}u-F`H6$9e9Bt|_hj6e?OdrXrrF&Q6{MDlkea zuQ=21H@-Y)bU_ULDIkU(gNWy;)03wG1V#yR^VTmryALM=>2*Y9pFbj2z@_U?PWW>& zeG>eEQTmhq`^C>+o%v`*qUeRes6-JjNR$f# configuration. -// -#pragma once - -#include - -#pragma warning(push) -#pragma warning(disable: _UCRT_DISABLED_WARNINGS) -_UCRT_DISABLE_CLANG_WARNINGS - -_CRT_BEGIN_C_HEADER - -#if !defined _NO_CRT_STDIO_INLINE && !_CRT_FUNCTIONS_REQUIRED - #define _NO_CRT_STDIO_INLINE -#endif - -#if defined _NO_CRT_STDIO_INLINE - #undef _CRT_STDIO_INLINE - #define _CRT_STDIO_INLINE -#elif !defined _CRT_STDIO_INLINE - #define _CRT_STDIO_INLINE __inline -#endif - -#if !defined RC_INVOKED // RC has no target architecture - #if defined _M_IX86 - #define _CRT_INTERNAL_STDIO_SYMBOL_PREFIX "_" - #elif defined _M_X64 || defined _M_ARM || defined _M_ARM64 - #define _CRT_INTERNAL_STDIO_SYMBOL_PREFIX "" - #else - #error Unsupported architecture - #endif -#endif - - - -// Predefine _CRT_STDIO_ISO_WIDE_SPECIFIERS to use ISO-conforming behavior for -// the wide string printf and scanf functions (%s, %c, and %[] specifiers). -// -// Predefine _CRT_STDIO_LEGACY_WIDE_SPECIFIERS to use VC++ 2013 and earlier behavior for -// the wide string printf and scanf functions (%s, %c, and %[] specifiers). -// -// Predefine _CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS when building code that does -// not use these format specifiers without a length modifier and thus can be -// used with either the legacy (default) or the conforming mode. (This option -// is intended for use by static libraries). -#if !defined RC_INVOKED // _CRT_STDIO_LEGACY_WIDE_SPECIFIERS et al. are too long for rc - #if defined _CRT_STDIO_ISO_WIDE_SPECIFIERS - #if defined _CRT_STDIO_LEGACY_WIDE_SPECIFIERS - #error _CRT_STDIO_ISO_WIDE_SPECIFIERS and _CRT_STDIO_LEGACY_WIDE_SPECIFIERS cannot be defined together. - #endif - - #if !defined _M_CEE_PURE - #pragma comment(lib, "iso_stdio_wide_specifiers") - #pragma comment(linker, "/include:" _CRT_INTERNAL_STDIO_SYMBOL_PREFIX "__PLEASE_LINK_WITH_iso_stdio_wide_specifiers.lib") - #endif - #elif defined _CRT_STDIO_LEGACY_WIDE_SPECIFIERS - #if !defined _M_CEE_PURE - #pragma comment(lib, "legacy_stdio_wide_specifiers") - #pragma comment(linker, "/include:" _CRT_INTERNAL_STDIO_SYMBOL_PREFIX "__PLEASE_LINK_WITH_legacy_stdio_wide_specifiers.lib") - #endif - #endif - - #if defined __cplusplus && !defined _CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS - #ifdef _CRT_STDIO_ISO_WIDE_SPECIFIERS - #pragma detect_mismatch("_CRT_STDIO_ISO_WIDE_SPECIFIERS", "1") - #else - #pragma detect_mismatch("_CRT_STDIO_ISO_WIDE_SPECIFIERS", "0") - #endif - #endif -#endif - -// If we're compiling mixed managed code, make sure these inline functions are -// compiled as native to ensure that there is only one instance of each of the -// function-local static variables. -#if defined _M_CEE && !defined _M_CEE_PURE - #pragma managed(push, off) -#endif - -#if _CRT_FUNCTIONS_REQUIRED - // This function must not be inlined into callers to avoid ODR violations. The - // static local variable has different names in C and in C++ translation units. - _Check_return_ _Ret_notnull_ - _CRT_INLINE_PURE_SECURITYCRITICAL_ATTRIBUTE - __declspec(noinline) __inline unsigned __int64* __CRTDECL __local_stdio_printf_options(void) - { - static unsigned __int64 _OptionsStorage; - return &_OptionsStorage; - } - - // This function must not be inlined into callers to avoid ODR violations. The - // static local variable has different names in C and in C++ translation units. - _Check_return_ _Ret_notnull_ - _CRT_INLINE_PURE_SECURITYCRITICAL_ATTRIBUTE - __declspec(noinline) __inline unsigned __int64* __CRTDECL __local_stdio_scanf_options(void) - { - static unsigned __int64 _OptionsStorage; - return &_OptionsStorage; - } -#endif - -#if defined _M_CEE && !defined _M_CEE_PURE - #pragma managed(pop) -#endif - -#define _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS (*__local_stdio_printf_options()) -#define _CRT_INTERNAL_LOCAL_SCANF_OPTIONS (*__local_stdio_scanf_options ()) - - - -#define _CRT_INTERNAL_PRINTF_LEGACY_VSPRINTF_NULL_TERMINATION (1ULL << 0) -#define _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR (1ULL << 1) -#define _CRT_INTERNAL_PRINTF_LEGACY_WIDE_SPECIFIERS (1ULL << 2) -#define _CRT_INTERNAL_PRINTF_LEGACY_MSVCRT_COMPATIBILITY (1ULL << 3) -#define _CRT_INTERNAL_PRINTF_LEGACY_THREE_DIGIT_EXPONENTS (1ULL << 4) -#define _CRT_INTERNAL_PRINTF_STANDARD_ROUNDING (1ULL << 5) - - -#define _CRT_INTERNAL_SCANF_SECURECRT (1ULL << 0) -#define _CRT_INTERNAL_SCANF_LEGACY_WIDE_SPECIFIERS (1ULL << 1) -#define _CRT_INTERNAL_SCANF_LEGACY_MSVCRT_COMPATIBILITY (1ULL << 2) - - - -_CRT_END_C_HEADER -_UCRT_RESTORE_CLANG_WARNINGS -#pragma warning(pop) // _UCRT_DISABLED_WARNINGS diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_stdio_config.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_stdio_config.h.blob deleted file mode 100644 index cda6c705c175b4102159e9480730e2134e997148..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6606 zcmdT}TZ|i58J@99v8oMqU{M;RqR9rLO^ZFd8`nuoR$cFSb~~weX7PA!2cn)G&y4L! z=3>o^?X|mzrVmw-%0*nHs^Sf*QVDn{kY3b_RD@K7fv3%F8t)5!_&uKa&wsx2|KIt}nd5tio3ADwzDf`TU9t?7mQ2f}6P8>tRMT~6#!^(; z&`edfrGhJ4reo=OHINANQYXxPxTJY8(ay5*=5nK(*U9GlK-CN1ldSq#fM z5e_T1R#ok=0g)Hs25nlpRkVn3BFV6bNeQCJ2y5%`8-An_FYt&F_!S|w#__92%&w<6 zKD{D#pNlNBkz&COW#cIxTv|^O?DEDcc4=LpHJ0BH5zEJylWYRtPR3KKEXoS0WTNGt z<@kh<6=P8%%uSMq37gYd%~Y(K6N}PZu~?@yQ`RerI%(8g-rAx?C{wFc+=M~1maQxF zRxDalB}KIzB3w{3sc2e`tI1AShH~1Al3tVQ4nfxl`imMt3;8)P3PGpR%sgFf!D26E9rAbQ1O)}#ySisoZF-6Mbj1HbK^7_IsF@;5`{>KxcMZ< zU+syC3(zGv^{@uwGCxOm$OxB_xyV9neh$9rifp^IGqkQ5(1+I^3lSElmJrbk^PV3MJ=G3T#{_$dI=fYq6#ulXl1&U zxS@WnOykI9*H*Mbp(pnLoF#3X5jk2z9p35gl&Z>h1w_RbNV;yx9tlU+3k#@O(OWVyS{^(~j7JFE!9YTc#?@Iub^l=Ln7 zlTF8BqgZM01@>n`)_P`S-x$ZPzE}3XKzm45cR7L`j87Fu7Yf(ckhYMdYelnXIUL;z zmlvU;S&^~6_^Ld*A@0s96dcvHTD!tQ+OqptVNWSnY+E(u`kt0h5D)0slfb^*j$I@K zOC#*7yR{-e-oGCmJ0gS%9wa_7^-1C|ad(g+js%ZRp9sdMnIJbU5MP+mhznDJ=GT^T zA4IMkdrC8Pc;luj@b*(QRfW3A2bS;&zk6Y^bl@mtbt)zXyXL@X8~ z^V|6s0%Sf|xPwTSG>0lwOd0!7M#XU{({ic2O0|1Y;M=t*h^fQd9R-&XjzbBF6jjwM zc-O+QBNUY`sR!m7VxL4lC4R3U8PErL*Xr+3KfI!lA$^fm0~E##NjFC-g_z6 zmQ1G|4F-ny>Tn1_Op(|&`S*zFuN=Am{XGx73^TyJb>yeW+;;9~0Wudn_x~|+;!yLo zD?eIqzJ2tMI1$|sd6BqyYKd%q`R|Xv{=>JQOLy<%Z}KtXu^D*w_=CT^Tws%@TIVKk zNW!N0coKVK)&}$>qI1|A338IOM z*8J&{?;F8$Nc4wopVuHU9p@AAR05@h4L$+qG|(bB7|5^|{eV0;_hC4-Q0-g*+i!K? z-2SUK{$pIp|7{?gB)b}C&Z6`~DV9YEZk0n^Jy6+o5eUK!WY^eC|urcReqE%U#R_NRB4pFl_6hn!lN+5~O*CiD80-+gdR^&Y?l zd4M>8HRYM7|M2gN)Td6j#v`T^oPan!$?+`s%=mKH`;bDYEzS_=@Lh)=2w|NYWOj9#FDgUN%9B~lEEF@XE)8y|l3Qt*YB{BV;31KQdtoUoqe1RhU? z#9)|%ys6o~rMqthJC18?gp70m+owB;y-xl7d(WTw=U@D2+I11nt}P1~6uZLZ0L=1W zFaw;anHlH|5|$5OTk3T7n=^-Izk2=0fA%FO6U=;OiQEisf^B~H?%{`||I_IYH3 z*+-U0DJX$${^F^_=-tR|w9g|~%0Ytjr99Z?bGcXEdbXHp_=nU^S(_C*`5iK(0nXGd z`Sop$sM%J2&5)T2kYKy{mF{2s$AOc#f6NCrb1bt2Lq4_%w)x;Y(P#ep^%vjr!|gDk s!^Di(`OU+EiC`gy|1Lnq1s=klA6%6^2H4T2)*5Vw>_&hD+tGmk0 and . -// -#pragma once - -#include -#include - -#pragma warning(push) -#pragma warning(disable: _UCRT_DISABLED_WARNINGS) -_UCRT_DISABLE_CLANG_WARNINGS - -_CRT_BEGIN_C_HEADER - -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// -// Types -// -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -#ifdef _USE_32BIT_TIME_T - #define _wfinddata_t _wfinddata32_t - #define _wfinddatai64_t _wfinddata32i64_t -#else - #define _wfinddata_t _wfinddata64i32_t - #define _wfinddatai64_t _wfinddata64_t -#endif - -typedef unsigned long _fsize_t; - -struct _wfinddata32_t -{ - unsigned attrib; - __time32_t time_create; // -1 for FAT file systems - __time32_t time_access; // -1 for FAT file systems - __time32_t time_write; - _fsize_t size; - wchar_t name[260]; -}; - -struct _wfinddata32i64_t -{ - unsigned attrib; - __time32_t time_create; // -1 for FAT file systems - __time32_t time_access; // -1 for FAT file systems - __time32_t time_write; - __int64 size; - wchar_t name[260]; -}; - -struct _wfinddata64i32_t -{ - unsigned attrib; - __time64_t time_create; // -1 for FAT file systems - __time64_t time_access; // -1 for FAT file systems - __time64_t time_write; - _fsize_t size; - wchar_t name[260]; -}; - -struct _wfinddata64_t -{ - unsigned attrib; - __time64_t time_create; // -1 for FAT file systems - __time64_t time_access; // -1 for FAT file systems - __time64_t time_write; - __int64 size; - wchar_t name[260]; -}; - - - -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// -// Functions -// -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -#ifdef _USE_32BIT_TIME_T - #define _wfindfirst _wfindfirst32 - #define _wfindnext _wfindnext32 - #define _wfindfirsti64 _wfindfirst32i64 - #define _wfindnexti64 _wfindnext32i64 -#else - #define _wfindfirst _wfindfirst64i32 - #define _wfindnext _wfindnext64i32 - #define _wfindfirsti64 _wfindfirst64 - #define _wfindnexti64 _wfindnext64 -#endif - -_Check_return_ -_ACRTIMP int __cdecl _waccess( - _In_z_ wchar_t const* _FileName, - _In_ int _AccessMode - ); - -_Check_return_wat_ -_ACRTIMP errno_t __cdecl _waccess_s( - _In_z_ wchar_t const* _FileName, - _In_ int _AccessMode - ); - -_Check_return_ -_ACRTIMP int __cdecl _wchmod( - _In_z_ wchar_t const* _FileName, - _In_ int _Mode - ); - -_Check_return_ _CRT_INSECURE_DEPRECATE(_wsopen_s) -_ACRTIMP int __cdecl _wcreat( - _In_z_ wchar_t const* _FileName, - _In_ int _PermissionMode - ); - -_Success_(return != -1) -_Check_return_ -_ACRTIMP intptr_t __cdecl _wfindfirst32( - _In_z_ wchar_t const* _FileName, - _Out_ struct _wfinddata32_t* _FindData - ); - -_Success_(return != -1) -_Check_return_ -_ACRTIMP int __cdecl _wfindnext32( - _In_ intptr_t _FindHandle, - _Out_ struct _wfinddata32_t* _FindData - ); - -_ACRTIMP int __cdecl _wunlink( - _In_z_ wchar_t const* _FileName - ); - -_Check_return_ -_ACRTIMP int __cdecl _wrename( - _In_z_ wchar_t const* _OldFileName, - _In_z_ wchar_t const* _NewFileName - ); - -_ACRTIMP errno_t __cdecl _wmktemp_s( - _Inout_updates_z_(_SizeInWords) wchar_t* _TemplateName, - _In_ size_t _SizeInWords - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0( - errno_t, _wmktemp_s, - wchar_t, _TemplateName - ) - -_Success_(return != 0) -__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0( - wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, _wmktemp, - _Inout_z_, wchar_t, _TemplateName - ) - -_Success_(return != -1) -_Check_return_ -_ACRTIMP intptr_t __cdecl _wfindfirst32i64( - _In_z_ wchar_t const* _FileName, - _Out_ struct _wfinddata32i64_t* _FindData - ); - -_Success_(return != -1) -_Check_return_ -_ACRTIMP intptr_t __cdecl _wfindfirst64i32( - _In_z_ wchar_t const* _FileName, - _Out_ struct _wfinddata64i32_t* _FindData - ); - -_Success_(return != -1) -_Check_return_ -_ACRTIMP intptr_t __cdecl _wfindfirst64( - _In_z_ wchar_t const* _FileName, - _Out_ struct _wfinddata64_t* _FindData - ); - -_Success_(return != -1) -_Check_return_ -_ACRTIMP int __cdecl _wfindnext32i64( - _In_ intptr_t _FindHandle, - _Out_ struct _wfinddata32i64_t* _FindData - ); - -_Success_(return != -1) -_Check_return_ -_ACRTIMP int __cdecl _wfindnext64i32( - _In_ intptr_t _FindHandle, - _Out_ struct _wfinddata64i32_t* _FindData - ); - -_Success_(return != -1) -_Check_return_ -_ACRTIMP int __cdecl _wfindnext64( - _In_ intptr_t _FindHandle, - _Out_ struct _wfinddata64_t* _FindData - ); - -_Check_return_wat_ -_ACRTIMP errno_t __cdecl _wsopen_s( - _Out_ int* _FileHandle, - _In_z_ wchar_t const* _FileName, - _In_ int _OpenFlag, - _In_ int _ShareFlag, - _In_ int _PermissionFlag - ); - -_ACRTIMP errno_t __cdecl _wsopen_dispatch( - _In_z_ wchar_t const* _FileName, - _In_ int _OFlag, - _In_ int _ShFlag, - _In_ int _PMode, - _Out_ int* _PFileHandle, - _In_ int _BSecure - ); - - - -#if defined __cplusplus - - // These functions do not validate pmode; use _wsopen_s instead. - extern "C++" _Check_return_ _CRT_INSECURE_DEPRECATE(_wsopen_s) - inline int __CRTDECL _wopen( - _In_z_ wchar_t const* _FileName, - _In_ int _OFlag, - _In_ int _PMode = 0 - ) - { - int _FileHandle; - // Last parameter passed as 0 because we don't want to validate pmode from _open - errno_t const _Result = _wsopen_dispatch(_FileName, _OFlag, _SH_DENYNO, _PMode, &_FileHandle, 0); - return _Result ? -1 : _FileHandle; - } - - extern "C++" _Check_return_ _CRT_INSECURE_DEPRECATE(_wsopen_s) - inline int __CRTDECL _wsopen( - _In_z_ wchar_t const* _FileName, - _In_ int _OFlag, - _In_ int _ShFlag, - _In_ int _PMode = 0 - ) - { - int _FileHandle; - // Last parameter passed as 0 because we don't want to validate pmode from _sopen - errno_t const _Result = _wsopen_dispatch(_FileName, _OFlag, _ShFlag, _PMode, &_FileHandle, 0); - return _Result ? -1 : _FileHandle; - } - - -#else - - _Check_return_ _CRT_INSECURE_DEPRECATE(_wsopen_s) - _ACRTIMP int __cdecl _wopen( - _In_z_ wchar_t const* _FileName, - _In_ int _OpenFlag, - ...); - - _Check_return_ _CRT_INSECURE_DEPRECATE(_wsopen_s) - _ACRTIMP int __cdecl _wsopen( - _In_z_ wchar_t const* _FileName, - _In_ int _OpenFlag, - _In_ int _ShareFlag, - ...); - -#endif - -_CRT_END_C_HEADER -_UCRT_RESTORE_CLANG_WARNINGS -#pragma warning(pop) // _UCRT_DISABLED_WARNINGS diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_wio.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_wio.h.blob deleted file mode 100644 index 8632424dcaf0faf9f8515794d700d2e4f506917f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10735 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 LFp9zOfvf)qD%IJ% diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_wstdio.h b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_wstdio.h deleted file mode 100644 index bb9f5148c..000000000 --- a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_wstdio.h +++ /dev/null @@ -1,2171 +0,0 @@ -// -// corecrt_wstdio.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// This file declares the wide character (wchar_t) I/O functionality, shared by -// and . It also defines several core I/O types, which are -// also shared by those two headers. -// -#pragma once - -#include -#include - -#pragma warning(push) -#pragma warning(disable: _UCRT_DISABLED_WARNINGS) -_UCRT_DISABLE_CLANG_WARNINGS - -_CRT_BEGIN_C_HEADER - -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// -// Stream I/O Declarations Required by this Header -// -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -#ifndef _FILE_DEFINED - #define _FILE_DEFINED - typedef struct _iobuf - { - void* _Placeholder; - } FILE; -#endif - -_ACRTIMP_ALT FILE* __cdecl __acrt_iob_func(unsigned _Ix); - -#define stdin (__acrt_iob_func(0)) -#define stdout (__acrt_iob_func(1)) -#define stderr (__acrt_iob_func(2)) - -#define WEOF ((wint_t)(0xFFFF)) - - - -#if _CRT_FUNCTIONS_REQUIRED - //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - // - // Wide Character Stream I/O Functions - // - //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - _Check_return_opt_ - _ACRTIMP wint_t __cdecl fgetwc( - _Inout_ FILE* _Stream - ); - - _Check_return_opt_ - _ACRTIMP wint_t __cdecl _fgetwchar(void); - - _Check_return_opt_ - _ACRTIMP wint_t __cdecl fputwc( - _In_ wchar_t _Character, - _Inout_ FILE* _Stream); - - _Check_return_opt_ - _ACRTIMP wint_t __cdecl _fputwchar( - _In_ wchar_t _Character - ); - - _Check_return_ - _ACRTIMP wint_t __cdecl getwc( - _Inout_ FILE* _Stream - ); - - _Check_return_ - _ACRTIMP wint_t __cdecl getwchar(void); - - - _Check_return_opt_ - _Success_(return == _Buffer) - _ACRTIMP wchar_t* __cdecl fgetws( - _Out_writes_z_(_BufferCount) wchar_t* _Buffer, - _In_ int _BufferCount, - _Inout_ FILE* _Stream - ); - - _Check_return_opt_ - _ACRTIMP int __cdecl fputws( - _In_z_ wchar_t const* _Buffer, - _Inout_ FILE* _Stream - ); - - _Check_return_opt_ - _Success_(return != 0) - _ACRTIMP wchar_t* __cdecl _getws_s( - _Out_writes_z_(_BufferCount) wchar_t* _Buffer, - _In_ size_t _BufferCount - ); - - __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0( - _Success_(return != 0) - wchar_t*, _getws_s, - _Always_(_Post_z_) wchar_t, _Buffer - ) - - _Check_return_opt_ - _ACRTIMP wint_t __cdecl putwc( - _In_ wchar_t _Character, - _Inout_ FILE* _Stream - ); - - _Check_return_opt_ - _ACRTIMP wint_t __cdecl putwchar( - _In_ wchar_t _Character - ); - - _Check_return_opt_ - _ACRTIMP int __cdecl _putws( - _In_z_ wchar_t const* _Buffer - ); - - _Check_return_opt_ - _ACRTIMP wint_t __cdecl ungetwc( - _In_ wint_t _Character, - _Inout_ FILE* _Stream - ); - - _Check_return_ - _ACRTIMP FILE * __cdecl _wfdopen( - _In_ int _FileHandle, - _In_z_ wchar_t const* _Mode - ); - - _Check_return_ _CRT_INSECURE_DEPRECATE(_wfopen_s) - _ACRTIMP FILE* __cdecl _wfopen( - _In_z_ wchar_t const* _FileName, - _In_z_ wchar_t const* _Mode - ); - - _Check_return_wat_ - _ACRTIMP errno_t __cdecl _wfopen_s( - _Outptr_result_maybenull_ FILE** _Stream, - _In_z_ wchar_t const* _FileName, - _In_z_ wchar_t const* _Mode - ); - - _Check_return_ - _CRT_INSECURE_DEPRECATE(_wfreopen_s) - _ACRTIMP FILE* __cdecl _wfreopen( - _In_z_ wchar_t const* _FileName, - _In_z_ wchar_t const* _Mode, - _Inout_ FILE* _OldStream - ); - - _Check_return_wat_ - _ACRTIMP errno_t __cdecl _wfreopen_s( - _Outptr_result_maybenull_ FILE** _Stream, - _In_z_ wchar_t const* _FileName, - _In_z_ wchar_t const* _Mode, - _Inout_ FILE* _OldStream - ); - - _Check_return_ - _ACRTIMP FILE* __cdecl _wfsopen( - _In_z_ wchar_t const* _FileName, - _In_z_ wchar_t const* _Mode, - _In_ int _ShFlag - ); - - _ACRTIMP void __cdecl _wperror( - _In_opt_z_ wchar_t const* _ErrorMessage - ); - - #ifdef _CRT_USE_WINAPI_FAMILY_DESKTOP_APP - - _Check_return_ - _DCRTIMP FILE* __cdecl _wpopen( - _In_z_ wchar_t const* _Command, - _In_z_ wchar_t const* _Mode - ); - - #endif - - _ACRTIMP int __cdecl _wremove( - _In_z_ wchar_t const* _FileName - ); - - #pragma push_macro("_wtempnam") - #undef _wtempnam - - _Check_return_ - _ACRTIMP _CRTALLOCATOR wchar_t* __cdecl _wtempnam( - _In_opt_z_ wchar_t const* _Directory, - _In_opt_z_ wchar_t const* _FilePrefix - ); - - #pragma pop_macro("_wtempnam") - - _Success_(return == 0) - _Check_return_wat_ - _ACRTIMP errno_t __cdecl _wtmpnam_s( - _Out_writes_z_(_BufferCount) wchar_t* _Buffer, - _In_ size_t _BufferCount - ); - - __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0( - _Success_(return == 0) - errno_t, _wtmpnam_s, - _Always_(_Post_z_) wchar_t, _Buffer - ) - - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0( - _Success_(return != 0) - wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, _wtmpnam, - _Pre_maybenull_ _Always_(_Post_z_), wchar_t, _Buffer - ) - - - - //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - // - // I/O Synchronization and _nolock family of I/O functions - // - //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - _Check_return_opt_ - _ACRTIMP wint_t __cdecl _fgetwc_nolock( - _Inout_ FILE* _Stream - ); - - _Check_return_opt_ - _ACRTIMP wint_t __cdecl _fputwc_nolock( - _In_ wchar_t _Character, - _Inout_ FILE* _Stream - ); - - _Check_return_opt_ - _ACRTIMP wint_t __cdecl _getwc_nolock( - _Inout_ FILE* _Stream - ); - - _Check_return_opt_ - _ACRTIMP wint_t __cdecl _putwc_nolock( - _In_ wchar_t _Character, - _Inout_ FILE* _Stream - ); - - _Check_return_opt_ - _ACRTIMP wint_t __cdecl _ungetwc_nolock( - _In_ wint_t _Character, - _Inout_ FILE* _Stream - ); - - #if defined _CRT_DISABLE_PERFCRIT_LOCKS && !defined _DLL - #define fgetwc(stream) _getwc_nolock(stream) - #define fputwc(c, stream) _putwc_nolock(c, stream) - #define ungetwc(c, stream) _ungetwc_nolock(c, stream) - #endif - - - - // Variadic functions are not supported in managed code under /clr - #ifdef _M_CEE_MIXED - #pragma managed(push, off) - #endif - - - - //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - // - // Wide Character Formatted Output Functions (Stream) - // - //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - _Check_return_opt_ - _ACRTIMP int __cdecl __stdio_common_vfwprintf( - _In_ unsigned __int64 _Options, - _Inout_ FILE* _Stream, - _In_z_ _Printf_format_string_params_(2) wchar_t const* _Format, - _In_opt_ _locale_t _Locale, - va_list _ArgList - ); - - _Check_return_opt_ - _ACRTIMP int __cdecl __stdio_common_vfwprintf_s( - _In_ unsigned __int64 _Options, - _Inout_ FILE* _Stream, - _In_z_ _Printf_format_string_params_(2) wchar_t const* _Format, - _In_opt_ _locale_t _Locale, - va_list _ArgList - ); - - _Check_return_opt_ - _ACRTIMP int __cdecl __stdio_common_vfwprintf_p( - _In_ unsigned __int64 _Options, - _Inout_ FILE* _Stream, - _In_z_ _Printf_format_string_params_(2) wchar_t const* _Format, - _In_opt_ _locale_t _Locale, - va_list _ArgList - ); - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vfwprintf_l( - _Inout_ FILE* const _Stream, - _In_z_ _Printf_format_string_params_(2) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return __stdio_common_vfwprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Stream, _Format, _Locale, _ArgList); - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL vfwprintf( - _Inout_ FILE* const _Stream, - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vfwprintf_l(_Stream, _Format, NULL, _ArgList); - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vfwprintf_s_l( - _Inout_ FILE* const _Stream, - _In_z_ _Printf_format_string_params_(2) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return __stdio_common_vfwprintf_s(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Stream, _Format, _Locale, _ArgList); - } - #endif - - #if __STDC_WANT_SECURE_LIB__ - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL vfwprintf_s( - _Inout_ FILE* const _Stream, - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vfwprintf_s_l(_Stream, _Format, NULL, _ArgList); - } - #endif - - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vfwprintf_p_l( - _Inout_ FILE* const _Stream, - _In_z_ _Printf_format_string_params_(2) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return __stdio_common_vfwprintf_p(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Stream, _Format, _Locale, _ArgList); - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vfwprintf_p( - _Inout_ FILE* const _Stream, - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vfwprintf_p_l(_Stream, _Format, NULL, _ArgList); - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vwprintf_l( - _In_z_ _Printf_format_string_params_(2) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vfwprintf_l(stdout, _Format, _Locale, _ArgList); - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL vwprintf( - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vfwprintf_l(stdout, _Format, NULL, _ArgList); - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vwprintf_s_l( - _In_z_ _Printf_format_string_params_(2) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vfwprintf_s_l(stdout, _Format, _Locale, _ArgList); - } - #endif - - #if __STDC_WANT_SECURE_LIB__ - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL vwprintf_s( - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vfwprintf_s_l(stdout, _Format, NULL, _ArgList); - } - #endif - - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vwprintf_p_l( - _In_z_ _Printf_format_string_params_(2) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vfwprintf_p_l(stdout, _Format, _Locale, _ArgList); - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vwprintf_p( - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vfwprintf_p_l(stdout, _Format, NULL, _ArgList); - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _fwprintf_l( - _Inout_ FILE* const _Stream, - _In_z_ _Printf_format_string_params_(0) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vfwprintf_l(_Stream, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL fwprintf( - _Inout_ FILE* const _Stream, - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vfwprintf_l(_Stream, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _fwprintf_s_l( - _Inout_ FILE* const _Stream, - _In_z_ _Printf_format_string_params_(0) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vfwprintf_s_l(_Stream, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - #if __STDC_WANT_SECURE_LIB__ - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL fwprintf_s( - _Inout_ FILE* const _Stream, - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vfwprintf_s_l(_Stream, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _fwprintf_p_l( - _Inout_ FILE* const _Stream, - _In_z_ _Printf_format_string_params_(0) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vfwprintf_p_l(_Stream, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _fwprintf_p( - _Inout_ FILE* const _Stream, - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vfwprintf_p_l(_Stream, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _wprintf_l( - _In_z_ _Printf_format_string_params_(0) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vfwprintf_l(stdout, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL wprintf( - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vfwprintf_l(stdout, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _wprintf_s_l( - _In_z_ _Printf_format_string_params_(0) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vfwprintf_s_l(stdout, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - #if __STDC_WANT_SECURE_LIB__ - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL wprintf_s( - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vfwprintf_s_l(stdout, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _wprintf_p_l( - _In_z_ _Printf_format_string_params_(0) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vfwprintf_p_l(stdout, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _wprintf_p( - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vfwprintf_p_l(stdout, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - - //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - // - // Wide Character Formatted Input Functions (Stream) - // - //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - _Check_return_opt_ - _ACRTIMP int __cdecl __stdio_common_vfwscanf( - _In_ unsigned __int64 _Options, - _Inout_ FILE* _Stream, - _In_z_ _Scanf_format_string_params_(2) wchar_t const* _Format, - _In_opt_ _locale_t _Locale, - va_list _ArgList - ); - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vfwscanf_l( - _Inout_ FILE* const _Stream, - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return __stdio_common_vfwscanf( - _CRT_INTERNAL_LOCAL_SCANF_OPTIONS, - _Stream, _Format, _Locale, _ArgList); - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL vfwscanf( - _Inout_ FILE* const _Stream, - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vfwscanf_l(_Stream, _Format, NULL, _ArgList); - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vfwscanf_s_l( - _Inout_ FILE* const _Stream, - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return __stdio_common_vfwscanf( - _CRT_INTERNAL_LOCAL_SCANF_OPTIONS | _CRT_INTERNAL_SCANF_SECURECRT, - _Stream, _Format, _Locale, _ArgList); - } - #endif - - #if __STDC_WANT_SECURE_LIB__ - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL vfwscanf_s( - _Inout_ FILE* const _Stream, - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vfwscanf_s_l(_Stream, _Format, NULL, _ArgList); - } - #endif - - #endif - - _CRT_STDIO_INLINE int __CRTDECL _vwscanf_l( - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vfwscanf_l(stdin, _Format, _Locale, _ArgList); - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL vwscanf( - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vfwscanf_l(stdin, _Format, NULL, _ArgList); - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vwscanf_s_l( - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vfwscanf_s_l(stdin, _Format, _Locale, _ArgList); - } - #endif - - #if __STDC_WANT_SECURE_LIB__ - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL vwscanf_s( - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vfwscanf_s_l(stdin, _Format, NULL, _ArgList); - } - #endif - - #endif - - _Check_return_opt_ _CRT_INSECURE_DEPRECATE(_fwscanf_s_l) - _CRT_STDIO_INLINE int __CRTDECL _fwscanf_l( - _Inout_ FILE* const _Stream, - _In_z_ _Scanf_format_string_params_(0) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE // SCANF - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vfwscanf_l(_Stream, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Check_return_ _CRT_INSECURE_DEPRECATE(fwscanf_s) - _CRT_STDIO_INLINE int __CRTDECL fwscanf( - _Inout_ FILE* const _Stream, - _In_z_ _Scanf_format_string_ wchar_t const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE // SCANF - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vfwscanf_l(_Stream, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _fwscanf_s_l( - _Inout_ FILE* const _Stream, - _In_z_ _Scanf_s_format_string_params_(0) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE // SCANF - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vfwscanf_s_l(_Stream, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - #if __STDC_WANT_SECURE_LIB__ - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL fwscanf_s( - _Inout_ FILE* const _Stream, - _In_z_ _Scanf_s_format_string_ wchar_t const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE // SCANF - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vfwscanf_s_l(_Stream, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - #endif - - _Check_return_opt_ _CRT_INSECURE_DEPRECATE(_wscanf_s_l) - _CRT_STDIO_INLINE int __CRTDECL _wscanf_l( - _In_z_ _Scanf_format_string_params_(0) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE // SCANF - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vfwscanf_l(stdin, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Check_return_ _CRT_INSECURE_DEPRECATE(wscanf_s) - _CRT_STDIO_INLINE int __CRTDECL wscanf( - _In_z_ _Scanf_format_string_ wchar_t const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE // SCANF - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vfwscanf_l(stdin, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _wscanf_s_l( - _In_z_ _Scanf_s_format_string_params_(0) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE // SCANF - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vfwscanf_s_l(stdin, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - #if __STDC_WANT_SECURE_LIB__ - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL wscanf_s( - _In_z_ _Scanf_s_format_string_ wchar_t const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE // SCANF - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vfwscanf_s_l(stdin, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - #endif - - - - //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - // - // Wide Character Formatted Output Functions (String) - // - //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - #ifndef _CRT_NON_CONFORMING_SWPRINTFS - #define _SWPRINTFS_DEPRECATED _CRT_DEPRECATE_TEXT( \ - "function has been changed to conform with the ISO C standard, " \ - "adding an extra character count parameter. To use the traditional " \ - "Microsoft version, set _CRT_NON_CONFORMING_SWPRINTFS.") - #else - #define _SWPRINTFS_DEPRECATED - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _ACRTIMP int __cdecl __stdio_common_vswprintf( - _In_ unsigned __int64 _Options, - _Out_writes_opt_z_(_BufferCount) wchar_t* _Buffer, - _In_ size_t _BufferCount, - _In_z_ _Printf_format_string_params_(2) wchar_t const* _Format, - _In_opt_ _locale_t _Locale, - va_list _ArgList - ); - - _Success_(return >= 0) - _Check_return_opt_ - _ACRTIMP int __cdecl __stdio_common_vswprintf_s( - _In_ unsigned __int64 _Options, - _Out_writes_z_(_BufferCount) wchar_t* _Buffer, - _In_ size_t _BufferCount, - _In_z_ _Printf_format_string_params_(2) wchar_t const* _Format, - _In_opt_ _locale_t _Locale, - va_list _ArgList - ); - - _Success_(return >= 0) - _Check_return_opt_ - _ACRTIMP int __cdecl __stdio_common_vsnwprintf_s( - _In_ unsigned __int64 _Options, - _Out_writes_opt_z_(_BufferCount) wchar_t* _Buffer, - _In_ size_t _BufferCount, - _In_ size_t _MaxCount, - _In_z_ _Printf_format_string_params_(2) wchar_t const* _Format, - _In_opt_ _locale_t _Locale, - va_list _ArgList - ); - - _Success_(return >= 0) - _Check_return_opt_ - _ACRTIMP int __cdecl __stdio_common_vswprintf_p( - _In_ unsigned __int64 _Options, - _Out_writes_z_(_BufferCount) wchar_t* _Buffer, - _In_ size_t _BufferCount, - _In_z_ _Printf_format_string_params_(2) wchar_t const* _Format, - _In_opt_ _locale_t _Locale, - va_list _ArgList - ); - - _Success_(return >= 0) - _Check_return_opt_ _CRT_INSECURE_DEPRECATE(_vsnwprintf_s_l) - _CRT_STDIO_INLINE int __CRTDECL _vsnwprintf_l( - _Out_writes_opt_(_BufferCount) _Post_maybez_ wchar_t* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_params_(2) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int const _Result = __stdio_common_vswprintf( - _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_LEGACY_VSPRINTF_NULL_TERMINATION, - _Buffer, _BufferCount, _Format, _Locale, _ArgList); - - return _Result < 0 ? -1 : _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vsnwprintf_s_l( - _Out_writes_opt_(_BufferCount) _Always_(_Post_z_) wchar_t* const _Buffer, - _In_ size_t const _BufferCount, - _In_ size_t const _MaxCount, - _In_z_ _Printf_format_string_params_(2) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int const _Result = __stdio_common_vsnwprintf_s( - _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, - _Buffer, _BufferCount, _MaxCount, _Format, _Locale, _ArgList); - - return _Result < 0 ? -1 : _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vsnwprintf_s( - _Out_writes_opt_(_BufferCount) _Always_(_Post_z_) wchar_t* const _Buffer, - _In_ size_t const _BufferCount, - _In_ size_t const _MaxCount, - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vsnwprintf_s_l(_Buffer, _BufferCount, _MaxCount, _Format, NULL, _ArgList); - } - #endif - - __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST_EX( - _Success_(return >= 0) - int, __RETURN_POLICY_SAME, _CRT_STDIO_INLINE, __CRTDECL, _snwprintf, _vsnwprintf, - _Pre_notnull_ _Post_maybez_ wchar_t, - _Out_writes_opt_(_BufferCount) _Post_maybez_, wchar_t, _Buffer, - _In_ size_t, _BufferCount, - _In_z_ _Printf_format_string_ wchar_t const*, _Format - ) - - _Success_(return >= 0) - _Check_return_opt_ _CRT_INSECURE_DEPRECATE(_vsnwprintf_s) - _CRT_STDIO_INLINE int __CRTDECL _vsnwprintf( - _Out_writes_opt_(_BufferCount) _Post_maybez_ wchar_t* _Buffer, - _In_ size_t _BufferCount, - _In_z_ _Printf_format_string_ wchar_t const* _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vsnwprintf_l(_Buffer, _BufferCount, _Format, NULL, _ArgList); - } - #endif - - __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3( - _Success_(return >= 0) - int, _vsnwprintf_s, - _Always_(_Post_z_) wchar_t, _Buffer, - _In_ size_t, _BufferCount, - _In_z_ _Printf_format_string_ wchar_t const*, _Format, - va_list, _ArgList - ) - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vswprintf_c_l( - _Out_writes_opt_(_BufferCount) _Always_(_Post_z_) wchar_t* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_params_(2) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int const _Result = __stdio_common_vswprintf( - _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, - _Buffer, _BufferCount, _Format, _Locale, _ArgList); - - return _Result < 0 ? -1 : _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vswprintf_c( - _Out_writes_opt_(_BufferCount) _Always_(_Post_z_) wchar_t* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vswprintf_c_l(_Buffer, _BufferCount, _Format, NULL, _ArgList); - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vswprintf_l( - _Out_writes_opt_(_BufferCount) _Always_(_Post_z_) wchar_t* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_params_(2) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vswprintf_c_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList); - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL __vswprintf_l( - _Pre_notnull_ _Always_(_Post_z_) wchar_t* const _Buffer, - _In_z_ _Printf_format_string_params_(2) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vswprintf_l(_Buffer, (size_t)-1, _Format, _Locale, _ArgList); - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vswprintf( - _Pre_notnull_ _Always_(_Post_z_) wchar_t* const _Buffer, - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vswprintf_l(_Buffer, (size_t)-1, _Format, NULL, _ArgList); - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL vswprintf( - _Out_writes_opt_(_BufferCount) _Always_(_Post_z_) wchar_t* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_params_(1) wchar_t const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vswprintf_c_l(_Buffer, _BufferCount, _Format, NULL, _ArgList); - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vswprintf_s_l( - _Out_writes_(_BufferCount) _Always_(_Post_z_) wchar_t* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_params_(2) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int const _Result = __stdio_common_vswprintf_s( - _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, - _Buffer, _BufferCount, _Format, _Locale, _ArgList); - - return _Result < 0 ? -1 : _Result; - } - #endif - - #if __STDC_WANT_SECURE_LIB__ - - _Success_(return >= 0) - _CRT_STDIO_INLINE int __CRTDECL vswprintf_s( - _Out_writes_(_BufferCount) _Always_(_Post_z_) wchar_t* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vswprintf_s_l(_Buffer, _BufferCount, _Format, NULL, _ArgList); - } - #endif - - #endif - - __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2( - _Success_(return >= 0) - int, vswprintf_s, - _Always_(_Post_z_) wchar_t, _Buffer, - _In_z_ _Printf_format_string_ wchar_t const*, _Format, - va_list, _ArgList - ) - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vswprintf_p_l( - _Out_writes_(_BufferCount) _Always_(_Post_z_) wchar_t* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_params_(2) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int const _Result = __stdio_common_vswprintf_p( - _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, - _Buffer, _BufferCount, _Format, _Locale, _ArgList); - - return _Result < 0 ? -1 : _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vswprintf_p( - _Out_writes_(_BufferCount) _Always_(_Post_z_) wchar_t* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vswprintf_p_l(_Buffer, _BufferCount, _Format, NULL, _ArgList); - } - #endif - - _Success_(return >= 0) - _Check_return_ - _CRT_STDIO_INLINE int __CRTDECL _vscwprintf_l( - _In_z_ _Printf_format_string_params_(2) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int const _Result = __stdio_common_vswprintf( - _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR, - NULL, 0, _Format, _Locale, _ArgList); - - return _Result < 0 ? -1 : _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_ - _CRT_STDIO_INLINE int __CRTDECL _vscwprintf( - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vscwprintf_l(_Format, NULL, _ArgList); - } - #endif - - _Success_(return >= 0) - _Check_return_ - _CRT_STDIO_INLINE int __CRTDECL _vscwprintf_p_l( - _In_z_ _Printf_format_string_params_(2) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int const _Result = __stdio_common_vswprintf_p( - _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR, - NULL, 0, _Format, _Locale, _ArgList); - - return _Result < 0 ? -1 : _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_ - _CRT_STDIO_INLINE int __CRTDECL _vscwprintf_p( - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vscwprintf_p_l(_Format, NULL, _ArgList); - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL __swprintf_l( - _Pre_notnull_ _Always_(_Post_z_) wchar_t* const _Buffer, - _In_z_ _Printf_format_string_params_(2) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = __vswprintf_l(_Buffer, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _swprintf_l( - _Out_writes_opt_(_BufferCount) _Always_(_Post_z_) wchar_t* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_params_(0) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vswprintf_c_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _swprintf( - _Pre_notnull_ _Always_(_Post_z_) wchar_t* const _Buffer, - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = __vswprintf_l(_Buffer, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL swprintf( - _Out_writes_opt_(_BufferCount) _Always_(_Post_z_) wchar_t* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vswprintf_c_l(_Buffer, _BufferCount, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_ARGLIST_EX( - _Success_(return >= 0) - int, __RETURN_POLICY_SAME, _CRT_STDIO_INLINE, __CRTDECL, __swprintf_l, __vswprintf_l, _vswprintf_s_l, - _Pre_notnull_ _Always_(_Post_z_) wchar_t, - _Pre_notnull_ _Always_(_Post_z_), wchar_t, _Buffer, - _In_z_ _Printf_format_string_params_(2) wchar_t const*, _Format, - _In_opt_ _locale_t, _Locale - ) - - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_ARGLIST_EX( - _Success_(return >= 0) - int, __RETURN_POLICY_SAME, _CRT_STDIO_INLINE, __CRTDECL, _swprintf, swprintf_s, _vswprintf, vswprintf_s, - _Pre_notnull_ _Always_(_Post_z_), wchar_t, _Buffer, - _In_z_ _Printf_format_string_ wchar_t const*, _Format - ) - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _swprintf_s_l( - _Out_writes_(_BufferCount) _Always_(_Post_z_) wchar_t* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_params_(0) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vswprintf_s_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - #if __STDC_WANT_SECURE_LIB__ - - _Success_(return >= 0) - _CRT_STDIO_INLINE int __CRTDECL swprintf_s( - _Out_writes_(_BufferCount) _Always_(_Post_z_) wchar_t* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vswprintf_s_l(_Buffer, _BufferCount, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - #endif - - __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1_ARGLIST( - _Success_(return >= 0) - int, swprintf_s, vswprintf_s, - _Always_(_Post_z_) wchar_t, _Buffer, - _In_z_ _Printf_format_string_ wchar_t const*, _Format - ) - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _swprintf_p_l( - _Out_writes_(_BufferCount) _Always_(_Post_z_) wchar_t* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_params_(0) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vswprintf_p_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _swprintf_p( - _Out_writes_(_BufferCount) _Always_(_Post_z_) wchar_t* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vswprintf_p_l(_Buffer, _BufferCount, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _swprintf_c_l( - _Out_writes_opt_(_BufferCount) _Always_(_Post_z_) wchar_t* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_params_(0) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vswprintf_c_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _swprintf_c( - _Out_writes_opt_(_BufferCount) _Always_(_Post_z_) wchar_t* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vswprintf_c_l(_Buffer, _BufferCount, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ _CRT_INSECURE_DEPRECATE(_snwprintf_s_l) - _CRT_STDIO_INLINE int __CRTDECL _snwprintf_l( - _Out_writes_opt_(_BufferCount) _Post_maybez_ wchar_t* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_params_(0) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - - _Result = _vsnwprintf_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList); - - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _snwprintf( - _Out_writes_opt_(_BufferCount) _Post_maybez_ wchar_t* _Buffer, - _In_ size_t _BufferCount, - _In_z_ _Printf_format_string_ wchar_t const* _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - - _Result = _vsnwprintf_l(_Buffer, _BufferCount, _Format, NULL, _ArgList); - - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _snwprintf_s_l( - _Out_writes_opt_(_BufferCount) _Always_(_Post_z_) wchar_t* const _Buffer, - _In_ size_t const _BufferCount, - _In_ size_t const _MaxCount, - _In_z_ _Printf_format_string_params_(0) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vsnwprintf_s_l(_Buffer, _BufferCount, _MaxCount, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _snwprintf_s( - _Out_writes_opt_(_BufferCount) _Always_(_Post_z_) wchar_t* const _Buffer, - _In_ size_t const _BufferCount, - _In_ size_t const _MaxCount, - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vsnwprintf_s_l(_Buffer, _BufferCount, _MaxCount, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2_ARGLIST( - _Success_(return >= 0) - int, _snwprintf_s, _vsnwprintf_s, - _Always_(_Post_z_) wchar_t, _Buffer, - _In_ size_t, _BufferCount, - _In_z_ _Printf_format_string_ wchar_t const*, _Format - ) - - _Check_return_ - _CRT_STDIO_INLINE int __CRTDECL _scwprintf_l( - _In_z_ _Printf_format_string_params_(0) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vscwprintf_l(_Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_ - _CRT_STDIO_INLINE int __CRTDECL _scwprintf( - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vscwprintf_l(_Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_ - _CRT_STDIO_INLINE int __CRTDECL _scwprintf_p_l( - _In_z_ _Printf_format_string_params_(0) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vscwprintf_p_l(_Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_ - _CRT_STDIO_INLINE int __CRTDECL _scwprintf_p( - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vscwprintf_p_l(_Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - - #if !defined RC_INVOKED && !defined __midl && !defined _INC_SWPRINTF_INL_ - // C4141: double deprecation - // C6054: string may not be zero-terminated - #pragma warning(push) - #pragma warning(disable: 4141 6054) - - #ifdef __cplusplus - - extern "C++" _SWPRINTFS_DEPRECATED _CRT_INSECURE_DEPRECATE(swprintf_s) - inline int swprintf( - _Pre_notnull_ _Post_z_ wchar_t* const _Buffer, - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - ...) throw() - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = vswprintf(_Buffer, _CRT_INT_MAX, _Format, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - - extern "C++" _SWPRINTFS_DEPRECATED _CRT_INSECURE_DEPRECATE(vswprintf_s) - inline int __CRTDECL vswprintf( - _Pre_notnull_ _Post_z_ wchar_t* const _Buffer, - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - va_list _ArgList - ) throw() - { - return vswprintf(_Buffer, _CRT_INT_MAX, _Format, _ArgList); - } - - extern "C++" _SWPRINTFS_DEPRECATED _CRT_INSECURE_DEPRECATE(_swprintf_s_l) - inline int _swprintf_l( - _Pre_notnull_ _Post_z_ wchar_t* const _Buffer, - _In_z_ _Printf_format_string_params_(0) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) throw() - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vswprintf_l(_Buffer, (size_t)-1, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - - extern "C++" _SWPRINTFS_DEPRECATED _CRT_INSECURE_DEPRECATE(_vswprintf_s_l) - inline int __CRTDECL _vswprintf_l( - _Pre_notnull_ _Post_z_ wchar_t* const _Buffer, - _In_z_ _Printf_format_string_params_(2) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) throw() - { - return _vswprintf_l(_Buffer, (size_t)-1, _Format, _Locale, _ArgList); - } - - #endif // __cplusplus - - #pragma warning(pop) - #endif // !_INC_SWPRINTF_INL_ - - #if defined _CRT_NON_CONFORMING_SWPRINTFS && !defined __cplusplus - #define swprintf _swprintf - #define vswprintf _vswprintf - #define _swprintf_l __swprintf_l - #define _vswprintf_l __vswprintf_l - #endif - - - //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - // - // Wide Character Formatted Input Functions (String) - // - //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - _Success_(return >= 0) - _ACRTIMP int __cdecl __stdio_common_vswscanf( - _In_ unsigned __int64 _Options, - _In_reads_(_BufferCount) _Pre_z_ wchar_t const* _Buffer, - _In_ size_t _BufferCount, - _In_z_ _Scanf_format_string_params_(2) wchar_t const* _Format, - _In_opt_ _locale_t _Locale, - va_list _ArgList - ); - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vswscanf_l( - _In_z_ wchar_t const* const _Buffer, - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return __stdio_common_vswscanf( - _CRT_INTERNAL_LOCAL_SCANF_OPTIONS, - _Buffer, (size_t)-1, _Format, _Locale, _ArgList); - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL vswscanf( - _In_z_ wchar_t const* _Buffer, - _In_z_ _Printf_format_string_ wchar_t const* _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vswscanf_l(_Buffer, _Format, NULL, _ArgList); - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vswscanf_s_l( - _In_z_ wchar_t const* const _Buffer, - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return __stdio_common_vswscanf( - _CRT_INTERNAL_LOCAL_SCANF_OPTIONS | _CRT_INTERNAL_SCANF_SECURECRT, - _Buffer, (size_t)-1, _Format, _Locale, _ArgList); - } - #endif - - #if __STDC_WANT_SECURE_LIB__ - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL vswscanf_s( - _In_z_ wchar_t const* const _Buffer, - _In_z_ _Printf_format_string_ wchar_t const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vswscanf_s_l(_Buffer, _Format, NULL, _ArgList); - } - #endif - - #endif - - __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2( - _Success_(return >= 0) - int, vswscanf_s, - _In_z_ wchar_t, _Buffer, - _In_z_ _Printf_format_string_ wchar_t const*, _Format, - va_list, _ArgList - ) - - _Success_(return >= 0) - _Check_return_opt_ _CRT_INSECURE_DEPRECATE(_vsnwscanf_s_l) - _CRT_STDIO_INLINE int __CRTDECL _vsnwscanf_l( - _In_reads_(_BufferCount) _Pre_z_ wchar_t const* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Scanf_format_string_params_(2) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return __stdio_common_vswscanf( - _CRT_INTERNAL_LOCAL_SCANF_OPTIONS, - _Buffer, _BufferCount, _Format, _Locale, _ArgList); - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vsnwscanf_s_l( - _In_reads_(_BufferCount) _Pre_z_ wchar_t const* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Scanf_s_format_string_params_(2) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return __stdio_common_vswscanf( - _CRT_INTERNAL_LOCAL_SCANF_OPTIONS | _CRT_INTERNAL_SCANF_SECURECRT, - _Buffer, _BufferCount, _Format, _Locale, _ArgList); - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ _CRT_INSECURE_DEPRECATE(_swscanf_s_l) - _CRT_STDIO_INLINE int __CRTDECL _swscanf_l( - _In_z_ wchar_t const* const _Buffer, - _In_z_ _Scanf_format_string_params_(0) wchar_t const* const _Format, - _In_opt_ _locale_t _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE // SCANF - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vswscanf_l(_Buffer, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_ _CRT_INSECURE_DEPRECATE(swscanf_s) - _CRT_STDIO_INLINE int __CRTDECL swscanf( - _In_z_ wchar_t const* const _Buffer, - _In_z_ _Scanf_format_string_ wchar_t const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE // SCANF - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vswscanf_l(_Buffer, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _swscanf_s_l( - _In_z_ wchar_t const* const _Buffer, - _In_z_ _Scanf_s_format_string_params_(0) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE // SCANF - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vswscanf_s_l(_Buffer, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - #if __STDC_WANT_SECURE_LIB__ - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL swscanf_s( - _In_z_ wchar_t const* const _Buffer, - _In_z_ _Scanf_s_format_string_ wchar_t const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE // SCANF - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vswscanf_s_l(_Buffer, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - #endif - - _Success_(return >= 0) - _Check_return_opt_ _CRT_INSECURE_DEPRECATE(_snwscanf_s_l) - _CRT_STDIO_INLINE int __CRTDECL _snwscanf_l( - _In_reads_(_BufferCount) _Pre_z_ wchar_t const* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Scanf_format_string_params_(0) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE // SCANF - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - - _Result = _vsnwscanf_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList); - - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ _CRT_INSECURE_DEPRECATE(_snwscanf_s) - _CRT_STDIO_INLINE int __CRTDECL _snwscanf( - _In_reads_(_BufferCount) _Pre_z_ wchar_t const* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Scanf_format_string_ wchar_t const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE // SCANF - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - - _Result = _vsnwscanf_l(_Buffer, _BufferCount, _Format, NULL, _ArgList); - - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _snwscanf_s_l( - _In_reads_(_BufferCount) _Pre_z_ wchar_t const* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Scanf_s_format_string_params_(0) wchar_t const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE // SCANF - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vsnwscanf_s_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _snwscanf_s( - _In_reads_(_BufferCount) _Pre_z_ wchar_t const* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Scanf_s_format_string_ wchar_t const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE // SCANF - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vsnwscanf_s_l(_Buffer, _BufferCount, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - #ifdef _M_CEE_MIXED - #pragma managed(pop) - #endif -#endif // _CRT_FUNCTIONS_REQUIRED - -_CRT_END_C_HEADER -_UCRT_RESTORE_CLANG_WARNINGS -#pragma warning(pop) // _UCRT_DISABLED_WARNINGS diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_wstdio.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_wstdio.h.blob deleted file mode 100644 index b1801c78b784a840f9fe346ed9f9ebe816f8e1c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41032 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

CL?=Keh{`#+VuFaC z0%}7v2sDUj251J+HqbVrpFuw}vWU%Ab=*1nRD!Z>T4K`F6|N`Z6^ma&j1^c-&PP~2 zh0O=eC)$Lwo9OHzgdL)=8=xCRHPlTo<;m{tjQs7aX3rZ68cH+;XQ$BFwFp~FVTGVV zqSK($L{~sph$P%0(H-ScHsv+!d9^^bh?;b`#yhXLRqeiE~W)xx%q~gF(SWDWDXhWuRq5AA>$7It)5YbY0g3lXvVX^^nu` zoY+%BKp{lgplqV$pyfmdKnI9!fo>5E#7gUddUkI*D4l35Xe`kjEFGCcqYAHU)vCPP z`nCDWGOQr=LoeG;VEXNcpbv?vpzo@pW?`>@ULpD$^f!?=`X6r%J39t6hG;KnFVRit zbT_r^>_v==F6tP~fOMUqXXFH_=_GwVU`t2ita1M60T-^w|PwzQy)Gl}eDh zW5T7o9@bAz;oJiH_M#KlUvYEkq)Z)KriY)35nABQ?3WeV6S3bP>_NnS%ri#t###1} z?ooBR8RCs}FZ(^9T@=QCcK09=`?>B@MC^B1uM=57 z7NY9N%j#f$2=dKDyqRh<)&c ze~gIwQ?JE7R$!zswu^rh(M-@xBDNp9fQWs{e?1Y~?!1%eAm|{`8PFLb_BqDeT9zWV zuf3v<#ei)kZa~C-5ZjxGZR`yqVm~O~hlp)oO(tSLOPoW*wq8yrVoSdZh}h3@ZY0`+ zQP&>o84rRE60uK_AEUEu=g}1%iwoOepm$<%VZSFgm}i)wVeegvu%#5X0knbW3(yxt$8g;- zy6zR!o>$1)^d{&{qBWp3L_0t`h<*Y6Li87`Qh$+E>P6V1UL>njb5L`lE}$+%QJ^Ry z6Uam~9yFe40cZiyTF_deJ)k{AKY)H9x(vEZ^bqur=oD(yDLu=B>!9mI0&0pNvalMM zs;?okJn%%ACxr!pf{0>4u|#H&nUQ7Bkd(XY_6OS8jH_VI4U4?A>^WW_FQQ;jFi{LB zhG-~gC{aErpJ*0n7SU4BQldkkLqxA4FJGk`+yvT0)EcR4?Zn;|3<@TS1;rAL0F5A; z2AW1x04iW)i5Oqkxb?#4zbmV#aLjPb1Ls;ye(w=zz zwMV?#iy+Iyu3sNa4(jEnyjz2oKNRk5TsZ}cAgAaV?FH>+WEr=ipS1M1?shYtIxIPJ zg^R_NTR>ZgcHoUW^epTi=pIo7-W?$#%;Gh$y7QWZ+4q(2R%3xeJlt;FGZ-|Ok>%a1 z<$p~mxUoWcr4~!un!xqNmEVHCC8{7c!SW&&mWcNxioJ06&0j{e~7)wLNOQrhK{+MtG0~)PwB;?IOxW9n7VkWGQGV(O%GAqC=oVj4XXObxP`2eNRv2 f69wr@^h00j(r|u~^N-)VPEWdPf1ZB^#9#P-*g}o; diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_wstdlib.h b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_wstdlib.h deleted file mode 100644 index 2bc7a8653..000000000 --- a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_wstdlib.h +++ /dev/null @@ -1,481 +0,0 @@ -// -// corecrt_wstdlib.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// This file declares the wide character (wchar_t) C Standard Library functions -// that are declared by both and . -// -#pragma once - -#include - -#pragma warning(push) -#pragma warning(disable: _UCRT_DISABLED_WARNINGS) -_UCRT_DISABLE_CLANG_WARNINGS - -_CRT_BEGIN_C_HEADER - - - -// Maximum number of elements, including null terminator (and negative sign -// where appropriate), needed for integer-to-string conversions for several -// bases and integer types. -#define _MAX_ITOSTR_BASE16_COUNT (8 + 1) -#define _MAX_ITOSTR_BASE10_COUNT (1 + 10 + 1) -#define _MAX_ITOSTR_BASE8_COUNT (11 + 1) -#define _MAX_ITOSTR_BASE2_COUNT (32 + 1) - -#define _MAX_LTOSTR_BASE16_COUNT (8 + 1) -#define _MAX_LTOSTR_BASE10_COUNT (1 + 10 + 1) -#define _MAX_LTOSTR_BASE8_COUNT (11 + 1) -#define _MAX_LTOSTR_BASE2_COUNT (32 + 1) - -#define _MAX_ULTOSTR_BASE16_COUNT (8 + 1) -#define _MAX_ULTOSTR_BASE10_COUNT (10 + 1) -#define _MAX_ULTOSTR_BASE8_COUNT (11 + 1) -#define _MAX_ULTOSTR_BASE2_COUNT (32 + 1) - -#define _MAX_I64TOSTR_BASE16_COUNT (16 + 1) -#define _MAX_I64TOSTR_BASE10_COUNT (1 + 19 + 1) -#define _MAX_I64TOSTR_BASE8_COUNT (22 + 1) -#define _MAX_I64TOSTR_BASE2_COUNT (64 + 1) - -#define _MAX_U64TOSTR_BASE16_COUNT (16 + 1) -#define _MAX_U64TOSTR_BASE10_COUNT (20 + 1) -#define _MAX_U64TOSTR_BASE8_COUNT (22 + 1) -#define _MAX_U64TOSTR_BASE2_COUNT (64 + 1) - - -#if _CRT_FUNCTIONS_REQUIRED - - _Success_(return == 0) - _Check_return_wat_ - _ACRTIMP errno_t __cdecl _itow_s( - _In_ int _Value, - _Out_writes_z_(_BufferCount) wchar_t* _Buffer, - _In_ size_t _BufferCount, - _In_ int _Radix - ); - - __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1( - errno_t, _itow_s, - _In_ int, _Value, - wchar_t, _Buffer, - _In_ int, _Radix - ) - - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1( - wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, _itow, - _In_ int, _Value, - _Pre_notnull_ _Post_z_, wchar_t, _Buffer, - _In_ int, _Radix - ) - - _Success_(return == 0) - _Check_return_wat_ - _ACRTIMP errno_t __cdecl _ltow_s( - _In_ long _Value, - _Out_writes_z_(_BufferCount) wchar_t* _Buffer, - _In_ size_t _BufferCount, - _In_ int _Radix - ); - - __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1( - errno_t, _ltow_s, - _In_ long, _Value, - wchar_t, _Buffer, - _In_ int, _Radix - ) - - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1( - wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, _ltow, - _In_ long, _Value, - _Pre_notnull_ _Post_z_, wchar_t, _Buffer, - _In_ int, _Radix - ) - - _Check_return_wat_ - _ACRTIMP errno_t __cdecl _ultow_s( - _In_ unsigned long _Value, - _Out_writes_z_(_BufferCount) wchar_t* _Buffer, - _In_ size_t _BufferCount, - _In_ int _Radix - ); - - __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1( - errno_t, _ultow_s, - _In_ unsigned long, _Value, - wchar_t, _Buffer, - _In_ int, _Radix - ) - - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1( - wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, _ultow, - _In_ unsigned long, _Value, - _Pre_notnull_ _Post_z_, wchar_t, _Buffer, - _In_ int, _Radix - ) - - _Check_return_ - _ACRTIMP double __cdecl wcstod( - _In_z_ wchar_t const* _String, - _Out_opt_ _Deref_post_z_ wchar_t** _EndPtr - ); - - _Check_return_ - _ACRTIMP double __cdecl _wcstod_l( - _In_z_ wchar_t const* _String, - _Out_opt_ _Deref_post_z_ wchar_t** _EndPtr, - _In_opt_ _locale_t _Locale - ); - - _Check_return_ - _ACRTIMP long __cdecl wcstol( - _In_z_ wchar_t const* _String, - _Out_opt_ _Deref_post_z_ wchar_t** _EndPtr, - _In_ int _Radix - ); - - _Check_return_ - _ACRTIMP long __cdecl _wcstol_l( - _In_z_ wchar_t const* _String, - _Out_opt_ _Deref_post_z_ wchar_t** _EndPtr, - _In_ int _Radix, - _In_opt_ _locale_t _Locale - ); - - _Check_return_ - _ACRTIMP long long __cdecl wcstoll( - _In_z_ wchar_t const* _String, - _Out_opt_ _Deref_post_z_ wchar_t** _EndPtr, - _In_ int _Radix - ); - - _Check_return_ - _ACRTIMP long long __cdecl _wcstoll_l( - _In_z_ wchar_t const* _String, - _Out_opt_ _Deref_post_z_ wchar_t** _EndPtr, - _In_ int _Radix, - _In_opt_ _locale_t _Locale - ); - - _Check_return_ - _ACRTIMP unsigned long __cdecl wcstoul( - _In_z_ wchar_t const* _String, - _Out_opt_ _Deref_post_z_ wchar_t** _EndPtr, - _In_ int _Radix - ); - - _Check_return_ - _ACRTIMP unsigned long __cdecl _wcstoul_l( - _In_z_ wchar_t const* _String, - _Out_opt_ _Deref_post_z_ wchar_t** _EndPtr, - _In_ int _Radix, - _In_opt_ _locale_t _Locale - ); - - _Check_return_ - _ACRTIMP unsigned long long __cdecl wcstoull( - _In_z_ wchar_t const* _String, - _Out_opt_ _Deref_post_z_ wchar_t** _EndPtr, - _In_ int _Radix - ); - - _Check_return_ - _ACRTIMP unsigned long long __cdecl _wcstoull_l( - _In_z_ wchar_t const* _String, - _Out_opt_ _Deref_post_z_ wchar_t** _EndPtr, - _In_ int _Radix, - _In_opt_ _locale_t _Locale - ); - - _Check_return_ - _ACRTIMP long double __cdecl wcstold( - _In_z_ wchar_t const* _String, - _Out_opt_ _Deref_post_z_ wchar_t** _EndPtr - ); - - _Check_return_ - _ACRTIMP long double __cdecl _wcstold_l( - _In_z_ wchar_t const* _String, - _Out_opt_ _Deref_post_z_ wchar_t** _EndPtr, - _In_opt_ _locale_t _Locale - ); - - _Check_return_ - _ACRTIMP float __cdecl wcstof( - _In_z_ wchar_t const* _String, - _Out_opt_ _Deref_post_z_ wchar_t** _EndPtr - ); - - _Check_return_ - _ACRTIMP float __cdecl _wcstof_l( - _In_z_ wchar_t const* _String, - _Out_opt_ _Deref_post_z_ wchar_t** _EndPtr, - _In_opt_ _locale_t _Locale - ); - - _Check_return_ - _ACRTIMP double __cdecl _wtof( - _In_z_ wchar_t const* _String - ); - - _Check_return_ - _ACRTIMP double __cdecl _wtof_l( - _In_z_ wchar_t const* _String, - _In_opt_ _locale_t _Locale - ); - - _Check_return_ - _ACRTIMP int __cdecl _wtoi( - _In_z_ wchar_t const* _String - ); - - _Check_return_ - _ACRTIMP int __cdecl _wtoi_l( - _In_z_ wchar_t const* _String, - _In_opt_ _locale_t _Locale - ); - - _Check_return_ - _ACRTIMP long __cdecl _wtol( - _In_z_ wchar_t const* _String - ); - - _Check_return_ - _ACRTIMP long __cdecl _wtol_l( - _In_z_ wchar_t const* _String, - _In_opt_ _locale_t _Locale - ); - - _Check_return_ - _ACRTIMP long long __cdecl _wtoll( - _In_z_ wchar_t const* _String - ); - - _Check_return_ - _ACRTIMP long long __cdecl _wtoll_l( - _In_z_ wchar_t const* _String, - _In_opt_ _locale_t _Locale - ); - - _Check_return_wat_ - _ACRTIMP errno_t __cdecl _i64tow_s( - _In_ __int64 _Value, - _Out_writes_z_(_BufferCount) wchar_t* _Buffer, - _In_ size_t _BufferCount, - _In_ int _Radix - ); - - _CRT_INSECURE_DEPRECATE(_i64tow_s) - _ACRTIMP wchar_t* __cdecl _i64tow( - _In_ __int64 _Value, - _Pre_notnull_ _Post_z_ wchar_t* _Buffer, - _In_ int _Radix - ); - - _Check_return_wat_ - _ACRTIMP errno_t __cdecl _ui64tow_s( - _In_ unsigned __int64 _Value, - _Out_writes_z_(_BufferCount) wchar_t* _Buffer, - _In_ size_t _BufferCount, - _In_ int _Radix - ); - - _CRT_INSECURE_DEPRECATE(_ui64tow_s) - _ACRTIMP wchar_t* __cdecl _ui64tow( - _In_ unsigned __int64 _Value, - _Pre_notnull_ _Post_z_ wchar_t* _Buffer, - _In_ int _Radix - ); - - _Check_return_ - _ACRTIMP __int64 __cdecl _wtoi64( - _In_z_ wchar_t const* _String - ); - - _Check_return_ - _ACRTIMP __int64 __cdecl _wtoi64_l( - _In_z_ wchar_t const* _String, - _In_opt_ _locale_t _Locale - ); - - _Check_return_ - _ACRTIMP __int64 __cdecl _wcstoi64( - _In_z_ wchar_t const* _String, - _Out_opt_ _Deref_post_z_ wchar_t** _EndPtr, - _In_ int _Radix - ); - - _Check_return_ - _ACRTIMP __int64 __cdecl _wcstoi64_l( - _In_z_ wchar_t const* _String, - _Out_opt_ _Deref_post_z_ wchar_t** _EndPtr, - _In_ int _Radix, - _In_opt_ _locale_t _Locale - ); - - _Check_return_ - _ACRTIMP unsigned __int64 __cdecl _wcstoui64( - _In_z_ wchar_t const* _String, - _Out_opt_ _Deref_post_z_ wchar_t** _EndPtr, - _In_ int _Radix - ); - - _Check_return_ - _ACRTIMP unsigned __int64 __cdecl _wcstoui64_l( - _In_z_ wchar_t const* _String, - _Out_opt_ _Deref_post_z_ wchar_t** _EndPtr, - _In_ int _Radix, - _In_opt_ _locale_t _Locale - ); - - #pragma push_macro("_wfullpath") - #undef _wfullpath - - _Success_(return != 0) - _Check_return_ - _ACRTIMP _CRTALLOCATOR wchar_t* __cdecl _wfullpath( - _Out_writes_opt_z_(_BufferCount) wchar_t* _Buffer, - _In_z_ wchar_t const* _Path, - _In_ size_t _BufferCount - ); - - #pragma pop_macro("_wfullpath") - - _Check_return_wat_ - _ACRTIMP errno_t __cdecl _wmakepath_s( - _Out_writes_z_(_BufferCount) wchar_t* _Buffer, - _In_ size_t _BufferCount, - _In_opt_z_ wchar_t const* _Drive, - _In_opt_z_ wchar_t const* _Dir, - _In_opt_z_ wchar_t const* _Filename, - _In_opt_z_ wchar_t const* _Ext - ); - - __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_4( - errno_t, _wmakepath_s, - wchar_t, _Buffer, - _In_opt_z_ wchar_t const*, _Drive, - _In_opt_z_ wchar_t const*, _Dir, - _In_opt_z_ wchar_t const*, _Filename, - _In_opt_z_ wchar_t const*, _Ext - ) - -__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_4( - void, __RETURN_POLICY_VOID, _ACRTIMP, _wmakepath, - _Pre_notnull_ _Post_z_, wchar_t, _Buffer, - _In_opt_z_ wchar_t const*, _Drive, - _In_opt_z_ wchar_t const*, _Dir, - _In_opt_z_ wchar_t const*, _Filename, - _In_opt_z_ wchar_t const*, _Ext - ) - - _ACRTIMP void __cdecl _wperror( - _In_opt_z_ wchar_t const* _ErrorMessage - ); - - _CRT_INSECURE_DEPRECATE(_wsplitpath_s) - _ACRTIMP void __cdecl _wsplitpath( - _In_z_ wchar_t const* _FullPath, - _Pre_maybenull_ _Post_z_ wchar_t* _Drive, - _Pre_maybenull_ _Post_z_ wchar_t* _Dir, - _Pre_maybenull_ _Post_z_ wchar_t* _Filename, - _Pre_maybenull_ _Post_z_ wchar_t* _Ext - ); - - _ACRTIMP errno_t __cdecl _wsplitpath_s( - _In_z_ wchar_t const* _FullPath, - _Out_writes_opt_z_(_DriveCount) wchar_t* _Drive, - _In_ size_t _DriveCount, - _Out_writes_opt_z_(_DirCount) wchar_t* _Dir, - _In_ size_t _DirCount, - _Out_writes_opt_z_(_FilenameCount) wchar_t* _Filename, - _In_ size_t _FilenameCount, - _Out_writes_opt_z_(_ExtCount) wchar_t* _Ext, - _In_ size_t _ExtCount - ); - - __DEFINE_CPP_OVERLOAD_SECURE_FUNC_SPLITPATH( - errno_t, _wsplitpath_s, - wchar_t, _Path - ) - - #pragma push_macro("_wdupenv_s") - #undef _wdupenv_s - - _Check_return_wat_ - _DCRTIMP errno_t __cdecl _wdupenv_s( - _Outptr_result_buffer_maybenull_(*_BufferCount) _Outptr_result_maybenull_z_ wchar_t** _Buffer, - _Out_opt_ size_t* _BufferCount, - _In_z_ wchar_t const* _VarName - ); - - #pragma pop_macro("_wdupenv_s") - - _Check_return_ _CRT_INSECURE_DEPRECATE(_wdupenv_s) - _DCRTIMP wchar_t* __cdecl _wgetenv( - _In_z_ wchar_t const* _VarName - ); - - _Success_(return == 0) - _Check_return_wat_ - _DCRTIMP errno_t __cdecl _wgetenv_s( - _Out_ size_t* _RequiredCount, - _Out_writes_opt_z_(_BufferCount) wchar_t* _Buffer, - _In_ size_t _BufferCount, - _In_z_ wchar_t const* _VarName - ); - - __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1( - _Success_(return == 0) - errno_t, _wgetenv_s, - _Out_ size_t*, _RequiredCount, - wchar_t, _Buffer, - _In_z_ wchar_t const*, _VarName - ) - - _Check_return_ - _DCRTIMP int __cdecl _wputenv( - _In_z_ wchar_t const* _EnvString - ); - - _Check_return_wat_ - _DCRTIMP errno_t __cdecl _wputenv_s( - _In_z_ wchar_t const* _Name, - _In_z_ wchar_t const* _Value - ); - - _DCRTIMP errno_t __cdecl _wsearchenv_s( - _In_z_ wchar_t const* _Filename, - _In_z_ wchar_t const* _VarName, - _Out_writes_z_(_BufferCount) wchar_t* _Buffer, - _In_ size_t _BufferCount - ); - - __DEFINE_CPP_OVERLOAD_SECURE_FUNC_2_0( - errno_t, _wsearchenv_s, - _In_z_ wchar_t const*, _Filename, - _In_z_ wchar_t const*, _VarName, - wchar_t, _ResultPath - ) - - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_2_0( - void, __RETURN_POLICY_VOID, _DCRTIMP, _wsearchenv, - _In_z_ wchar_t const*, _Filename, - _In_z_ wchar_t const*, _VarName, - _Pre_notnull_ _Post_z_, wchar_t, _ResultPath - ) - - _DCRTIMP int __cdecl _wsystem( - _In_opt_z_ wchar_t const* _Command - ); - -#endif // _CRT_FUNCTIONS_REQUIRED - - - -_CRT_END_C_HEADER -_UCRT_RESTORE_CLANG_WARNINGS -#pragma warning(pop) // _UCRT_DISABLED_WARNINGS diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_wstdlib.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_wstdlib.h.blob deleted file mode 100644 index f2f71cd64c807f16177440f7fff2e63601796b5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14697 zcmcIq3s_Xu+MZ=zwuHD+RGbjekN|-JM8q3{+(fwvC>|AtVP?RwVFqW0tBIPLnWp|_ zUNY0X{nCkFUu@XPMmkInLV=y1_brzdFJJH_S);af9u;D z10;X%j~i1fkr0V&ioQrKQ|RI3zeM zA~XcQWhF|3Nv6~r)c7qgGn!OdO@8nc@m_IyWl51*hdpBTxVuQB!&*gwNvYQv^;)%2 zmLhx;9IMq}A=VWYL5WIiB~u!d1HyuplBZ-PMuRM0qmwDM3SD84QY#4xQW-R*YC}*F z_8pEdWIDZ8U#OP^#U;na%VRUrGBab-Qqu8n{3A=AnwBb$O-oHk%ScH|O_XP5r)MOk zW+h|_*E8c|$7RH0nLIltBNa>7mALqk;}ZELjL1{sQ^#e><5OcsCdbF|Unj?8B*x3L z(=w9d*!t|G)VQ?l%!qJFP?E@_t@gr0-Y!HhB3zbKSXd#`Sc3PkyH3d0m&-B{Bo-)Z zMm+GQ*?NOkB`c2zpQ2W%)CQv@s6eGr6zcRwlSXL_QX-s&;RMI;b%MqrpDpPetkM`-l;gqr{HfSVb)T&yK`<*wtWT?R%V~uLmFW%7!0I6A zt5%xyhKk{>$>01EjaDV;*P2_JE&NLKhXQnxzh6j7trhLs%GP8w8DJB?58viQ`#hY} zDoacntxY?=HL+&Jw{dd2AST=|39T;nGhbbuGI#EPTz{C%J~v>h-;Ifu@$Z5RFW4d zlm;fsS?RVsQnuNsVJB*3d~hJiOcllIM;PiNg;uLqw$Ph=YtfZxS&ldG$iwwi%cv)G z{N}^ME8#Re&EICNZ>`2?Z;K5&%>C=z-pQITaa$hA<%PNuC7*!J32u2NSu4~Quhv^2 zoF+J)9BRCI@9|DAQk2UTT1}x&)bm>{-`?X};6YxhzM#OUHtE?s&>-hpcz|M>P?i`B zYMrv8rTrO#A8CKaL?wibxQix{R@T2g`jYVa9lhP#|8V>6bk+{#CU1FJaS0~dQn}HO zf4(w#TZaJe0C}pSNFC_i@Z0eUZHd}nLaDoi{kY;u(7d0F#AiI=Szq(NiBuw~-~NqP zVh1iityHg3L5$^Cg``Gu_#s%=ge-$a3A<7mYGaAkl&&yM@t3%`bQkGxim1$|NF{VQ zNhm(K(98N=w4{FF(w{%Sek|e*yWOgiVvF6j%>(2kO9~3qhCpx2Tmv6izKGRhmU89_ zrd~s5tb{XGGH0xWGhS!T*y>qv_NJ!eRGTb$Spixio-(HR*}oISH}pAgu1zViPX3ZE zUBq$7AQQ|PL<=8e5UF`Q>4G@Sl}+i`^UQBmcFXbjW3k+3W`=rN35Ix;)zHQoSyzf> zx7Z(>;g8MCADiKi9n2pt;Y(}QeD;rPC3vPP)Tve8TD`8&0vJP$CVhz}B3!O*lq;F6 z{RG;xG(aA&Q>B{_GmQ?}oS{%@$^*USIGq$)jHcf5WXAj@zP=u!WJw^&<^-aGqY~h# zG0ah`BG*+O+j+QGvpPMPM!a}&oJK(W2$Bc!BOpGOiGO>>zIUEAy!&TEPdsWzxVww1 zW)K--9z@ci$slMljA^18My?z0Z5CyWt$3ZZiB^@bkl{}9i7zAc4gQDqlp3T>4Veth zYLGTZSlSe>>YP(PxAu1@K6=o=xVxiBY(hieju4Uzp&@WbICIC6+ybw!dT6eJoUVeNPnDk|S&Qg*!Vo@d7nwPy0`1U|W)_IX( zW-lhx3qt!cp_i1iX<_i6@7UUdRVE_cDydE)Dz3?fO|m=e?@m(T=>wb`x3M8CG{Dqams@M0I7NI+1gW`fa(}+rBgFI@$;9IQ|lMcag|t zQOl4*%cLv${u@y9pZ7va4HY&AYYf*= zblLTVx0m_nXNe=lo7-%xTCae+yXfp$9kn`xkk!(4yaL^FCaEv}@3nryj8=>no@^#* zIDsT!Sg}kYHu3T}{$;wj0mW%>4BM~U4+i^p@#Ut5bK7(z!E{!h(~$(TSrUXr%;~&* zYX7CyB(UT_qtt4081R?4x#0}qfB2)MJhB`)RxX{+o4hUOWKKJCL7roCv&YM& zqGH^Tupx_(4bsiLxX(+T_-#g3%y7F4FupeG=<+7}fIYYPW-c;nTK+U0A;nzrcnRTo zw4{FJWB!LH4BTd)aha$_jl5}LEoeHT^35NTk1EQS7V>t6b+5WHbZxS~t!(k|)lAVk ztx%B8Cip|sz&-TZ$i6il|9SP2aL6wz@Gy5IRhMHFR~ym zKMoeeakP2MxmoP8yuVNDMBK$7SrgVg!LKQ5{;qJ0(<8XRteuUT8f5bf3m_q*n)fY*+d&JSXgue!x4}Hz)7g-xjB-d35AaypK34J&6Anme)j3;JXTRtIG5JD=+C9P%Z54!PX@yfV8u_X%5~^9>0hxKB$GveDtKg1E{l z6*Z9LA;}o(lBHvL3r@;H7)@*(W{7t8zY~U;F4I zX$I@iAY`DE{A-v#k1*9-Ttu-p>&Rq$ijitXM1oH$-u+m=i^c>#dy8*=*RK;w#}E6}H>Ll_Z#-7xJoLQHZ}KwB+qFj9j#pS; z7CJtXze(cEZ?dE1O>DY>Z8~q`g6~}iTu!n(v2_k`aS=J-PWT<9*d6Iz-T{{{OuM>! z=*C@aXO_DUd`P*ti1K(|_&j)do^$~(_=|WHY~&8X#cpn*EVvMP0lHq0 ze#39mrl&_jw;N~L+p?g^JvdIZ$JMZ_!w9)5{ej-8GM4P%uBBM$DjO))G z+;VzzmgDtras6A;7uWBp_N340*(c5My7d(|uCF-o_AuAGPskjvuOj8c5Ou+SL{zw@XuHdGN@8|ITn&RUfO^}=vAD(Rn+sxP=usw|J2iwnB z4Ok6hr${+Q{%*gunmL;5_hd5p~mo6pz+umy}Q1Y5}1R!H1RhGEC!pKkw7 z`Q;}+ig$D|=VE0p@xhLAFgas+V0nxwz!Z!XgB3G24Qv`?1~3C-Mld5|Wng8DorC0a zBoLB+)s5(7TywmyShCw}IvY_~N|yrH(zU>ybSLltJplZaehNHC&jByf%fO%LPryIv zpFs0tkn$LdY#>-5V?)7)GBz4)G|%csRJ+cI@bGhpf`0|A@Qfxi=}h4B^m*V*^d;b{ z^i|;N^mX7yx)HdYZU??c-vj=O{tNgK{RnuB9s{1FCxK__S>V_7Yv6bEJK!~X4frGd z5%??p75E4J186o&C_X%E0}a~{p810LGS(lgKVzX_p^Qa>MKTr*7R^{9SR!LtU|Ebk z3-&BybHU~^wi^Cl%_6ZLY&~P!!L~ED7i=$M2fz+6b`b0!V;_Ni#MmLQLyUa^_61|7 z!A|q6K7UQWf&mqp7;$8~R?26>( ztp*;Vhk&2ZPk^WBDPSF~1DeBNR~X^hV6efA#el^yHVSMMW3NHC*GK?#3n^QfcvVRxKzGPhdqTq^y0sudN;Yq+uJWR z#Jj(DsJ}!)`qI85+weGEQcrMu{RVBPsFP#j0xY*jggX@y?kL3BDsR6qn~*>n7}tgX z1tFh3-L8F`KGB_+5Rn~`HZy`9Bs5;)jUT_zP{9l@>J`<700jww8g1sy6`xIOC?Pb$ zCL*LM5yBc?M5MPM!jpPNqfn`*AY#G9m4kk${j#Gty2N}8aXUsPB3k|Yrmi$86qCf) z+nU|b*WE}2V%-a@7h{!Rm5i+;!RB>jGVWeJKj-}C&n=z93`nv^AGn7r2mH2z-Tm1^62G8gM1Oa>-nECMWo zu_&-8#^S-^85;{Wma%n+_d5P;Gk*Z~0XyZ|C4~o+NZY6_v2#`(@Q7m#B{^G#4CkXa zSP0?M^l8))FxOhFc^5}}Rw-ojo<4H|-zMM(27TbcyXAT$J^5X7?Qa)0hI zC$+9&B8qyBV)@fCLx0M7x{;lB5l!1E2yo~aJ!lWu2oyvt zjXikk%$>7p2OHfaZv3SEY=^?df9)F|&BTjJO>iOZaTM=lO=CCrqP?I3P;m2;GtCE5 zroR>?R-x@MZWsp5OfD0s;WR+=P9*bA*2ZpsG5qYMFJpI#?;xGRI^{v>k}cbpck%Fg zgDEXOknHK_sI-$cOleyqe~LZ@g@J<4+I&53ckVAe&N+x@|A8cfpK9y(Eq#69fc}O0 zMk?6bSko%l`mVQOuS^|95W$YcEb?P&I%KAQcV1F95zWlf%X zq}NJI201A--0E134pndUnL{=DQ9o28P|#(Ncjs;%KBI#g%dp$qj0~H>ei7k9CHPZ+ z$N&m5zW@8(c&%JH+~QKP9m2^7LmbP^q4x-@#O2nX_D8t^1tFhy_~QDJ(R-|qs1~QT z9l#BcMw8LpXrMVAJvN>2Y!i}k6T!q+zb3fs-Sz$FJY!jJLECFJT(6G3aPYYsZf}UM z2M**0dPI}B)VSPelFTK8PfDExp3mijPfMK!Ue1++S8-LqdE7kUB5o0I8Mh3$np+Lr zz-<6-!A&S0Gx>kihPF)uJL#`=NvV=MqHfUyv;5XJ_94PtBr*a*fF zz!DhC0Lx%(64)fhbYv7>N=|?VrTDIteK#F!I%9Ld=J2dOG27?;tKE*A7JIl$rB5a1 z;#oekfb)Ik0~h-&1}^tm4qW522Dr&*6L5#m4&ZK|-N0&}YTzNCL%>gbJ^`NcIR&iq zsRLrh_rZr}gTV$f76TT;*eI}3JgaY)+t>By;?uJmr)yIs;gGG)N+OsBqa=Vrwtmp# z2miY0c12>VNhlYJIj-LG%9Nv-ZWXSUlC)21_8!>eq-HC56uo_z?MZuLjsgnO3(^XA zPHdC)s#to*a4sBE#~5x5P{Aqq38X!u)Sk^E-N3prHW6$hV=GWaE7+TWx4_ and . -// -#pragma once - -#include -#include - -#pragma warning(push) -#pragma warning(disable: _UCRT_DISABLED_WARNINGS) -_UCRT_DISABLE_CLANG_WARNINGS - -#ifndef __midl - -_CRT_BEGIN_C_HEADER - - - -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// -// Secure Alternatives -// -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -#if __STDC_WANT_SECURE_LIB__ - - _Check_return_wat_ - _ACRTIMP errno_t __cdecl wcscat_s( - _Inout_updates_z_(_SizeInWords) wchar_t* _Destination, - _In_ rsize_t _SizeInWords, - _In_z_ wchar_t const* _Source - ); - - _Check_return_wat_ - _ACRTIMP errno_t __cdecl wcscpy_s( - _Out_writes_z_(_SizeInWords) wchar_t* _Destination, - _In_ rsize_t _SizeInWords, - _In_z_ wchar_t const* _Source - ); - - _Check_return_wat_ - _ACRTIMP errno_t __cdecl wcsncat_s( - _Inout_updates_z_(_SizeInWords) wchar_t* _Destination, - _In_ rsize_t _SizeInWords, - _In_reads_or_z_(_MaxCount) wchar_t const* _Source, - _In_ rsize_t _MaxCount - ); - - _Check_return_wat_ - _ACRTIMP errno_t __cdecl wcsncpy_s( - _Out_writes_z_(_SizeInWords) wchar_t* _Destination, - _In_ rsize_t _SizeInWords, - _In_reads_or_z_(_MaxCount) wchar_t const* _Source, - _In_ rsize_t _MaxCount - ); - - _Check_return_ - _ACRTIMP wchar_t* __cdecl wcstok_s( - _Inout_opt_z_ wchar_t* _String, - _In_z_ wchar_t const* _Delimiter, - _Inout_ _Deref_prepost_opt_z_ wchar_t** _Context - ); - -#endif // __STDC_WANT_SECURE_LIB__ - - - -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// -// Wide-Character Functions -// -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -#if defined _DEBUG && defined _CRTDBG_MAP_ALLOC - #pragma push_macro("_wcsdup") - #undef _wcsdup -#endif - -_Check_return_ -_ACRTIMP _CRTALLOCATOR wchar_t* __cdecl _wcsdup( - _In_z_ wchar_t const* _String - ); - -#if defined _DEBUG && defined _CRTDBG_MAP_ALLOC - #pragma pop_macro("_wcsdup") -#endif - - - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1( - errno_t, wcscat_s, - wchar_t, _Destination, - _In_z_ wchar_t const*, _Source - ) - -#ifndef RC_INVOKED - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1( - wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, wcscat, - _Inout_updates_z_(_String_length_(_Destination) + _String_length_(_Source) + 1), wchar_t, _Destination, - _In_z_ wchar_t const*, _Source - ) -#endif - -_Check_return_ -_ACRTIMP int __cdecl wcscmp( - _In_z_ wchar_t const* _String1, - _In_z_ wchar_t const* _String2 - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1( - errno_t, wcscpy_s, - wchar_t, _Destination, - _In_z_ wchar_t const*, _Source - ) - -__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1( - wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, wcscpy, - _Out_writes_z_(_String_length_(_Source) + 1), wchar_t, _Destination, - _In_z_ wchar_t const*, _Source - ) - -_Check_return_ -_ACRTIMP size_t __cdecl wcscspn( - _In_z_ wchar_t const* _String, - _In_z_ wchar_t const* _Control - ); - -_Check_return_ -_ACRTIMP size_t __cdecl wcslen( - _In_z_ wchar_t const* _String - ); - -_Check_return_ -_When_( - _MaxCount > _String_length_(_Source), - _Post_satisfies_(return == _String_length_(_Source)) -) -_When_( - _MaxCount <= _String_length_(_Source), - _Post_satisfies_(return == _MaxCount) -) -_ACRTIMP size_t __cdecl wcsnlen( - _In_reads_or_z_(_MaxCount) wchar_t const* _Source, - _In_ size_t _MaxCount - ); - -#if __STDC_WANT_SECURE_LIB__ && !defined(__midl) - - _Check_return_ - _When_( - _MaxCount > _String_length_(_Source), - _Post_satisfies_(return == _String_length_(_Source)) - ) - _When_( - _MaxCount <= _String_length_(_Source), - _Post_satisfies_(return == _MaxCount) - ) - _CRT_NONSTANDARD_STATIC __inline size_t __CRTDECL wcsnlen_s( - _In_reads_or_z_(_MaxCount) wchar_t const* _Source, - _In_ size_t _MaxCount - ) - { - return (_Source == 0) ? 0 : wcsnlen(_Source, _MaxCount); - } - -#endif // __STDC_WANT_SECURE_LIB__ && !defined(__midl) - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2( - errno_t, wcsncat_s, - _Prepost_z_ wchar_t, _Destination, - _In_reads_or_z_(_Count) wchar_t const*, _Source, - _In_ size_t, _Count - ) - -__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX( - wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, wcsncat, wcsncat_s, - _Inout_updates_z_(_Size) wchar_t, - _Inout_updates_z_(_Count), wchar_t, _Destination, - _In_reads_or_z_(_Count) wchar_t const*, _Source, - _In_ size_t, _Count - ) - -_Check_return_ -_ACRTIMP int __cdecl wcsncmp( - _In_reads_or_z_(_MaxCount) wchar_t const* _String1, - _In_reads_or_z_(_MaxCount) wchar_t const* _String2, - _In_ size_t _MaxCount - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2( - errno_t, wcsncpy_s, - wchar_t, _Destination, - _In_reads_or_z_(_Count) wchar_t const*, _Source, - _In_ size_t, _Count - ) - -__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX( - wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, wcsncpy, wcsncpy_s, - _Pre_notnull_ _Post_maybez_ wchar_t, - _Out_writes_(_Count) _Post_maybez_, wchar_t, _Destination, - _In_reads_or_z_(_Count) wchar_t const*, _Source, - _In_ size_t, _Count - ) - -_Check_return_ -_ACRTIMP wchar_t _CONST_RETURN* __cdecl wcspbrk( - _In_z_ wchar_t const* _String, - _In_z_ wchar_t const* _Control - ); - -_Check_return_ -_ACRTIMP size_t __cdecl wcsspn( - _In_z_ wchar_t const* _String, - _In_z_ wchar_t const* _Control - ); - -_Check_return_ _CRT_INSECURE_DEPRECATE(wcstok_s) -_ACRTIMP wchar_t* __cdecl wcstok( - _Inout_opt_z_ wchar_t* _String, - _In_z_ wchar_t const* _Delimiter, - _Inout_opt_ _Deref_prepost_opt_z_ wchar_t** _Context - ); - -#if !defined RC_INVOKED && !defined __midl - - #if defined _CRT_NON_CONFORMING_WCSTOK - #define _WCSTOK_DEPRECATED _CRT_INSECURE_DEPRECATE(wcstok_s) - #else - #define _WCSTOK_DEPRECATED _CRT_DEPRECATE_TEXT( \ - "wcstok has been changed to conform with the ISO C standard, " \ - "adding an extra context parameter. To use the legacy Microsoft " \ - "wcstok, define _CRT_NON_CONFORMING_WCSTOK.") - #endif - - // TRANSITION OS-58345186: this function should have external linkage. - _Check_return_ _CRT_INSECURE_DEPRECATE(wcstok_s) - static __inline wchar_t* __CRTDECL _wcstok( - _Inout_opt_z_ wchar_t* const _String, - _In_z_ wchar_t const* const _Delimiter - ) - { - return wcstok(_String, _Delimiter, 0); - } - - #if defined _CRT_NON_CONFORMING_WCSTOK && !defined __cplusplus - #define wcstok _wcstok - #endif - - #if defined __cplusplus && !defined _CRT_NO_INLINE_DEPRECATED_WCSTOK - extern "C++" _Check_return_ _WCSTOK_DEPRECATED - inline wchar_t* __CRTDECL wcstok( - _Inout_opt_z_ wchar_t* _String, - _In_z_ wchar_t const* _Delimiter - ) throw() - { - return wcstok(_String, _Delimiter, 0); - } - #endif - -#endif // !defined RC_INVOKED && !defined __midl - - - -_Ret_z_ -_Check_return_ _CRT_INSECURE_DEPRECATE(_wcserror_s) -_ACRTIMP wchar_t* __cdecl _wcserror( - _In_ int _ErrorNumber - ); - -_Check_return_wat_ -_ACRTIMP errno_t __cdecl _wcserror_s( - _Out_writes_opt_z_(_SizeInWords) wchar_t* _Buffer, - _In_ size_t _SizeInWords, - _In_ int _ErrorNumber - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1( - errno_t, _wcserror_s, - wchar_t, _Buffer, - _In_ int, _Error - ) - -_Ret_z_ -_Success_(return != 0) -_Check_return_ _CRT_INSECURE_DEPRECATE(__wcserror_s) -_ACRTIMP wchar_t* __cdecl __wcserror( - _In_opt_z_ wchar_t const* _String - ); - -_Check_return_wat_ _ACRTIMP_ALT errno_t __cdecl __wcserror_s( - _Out_writes_opt_z_(_SizeInWords) wchar_t* _Buffer, - _In_ size_t _SizeInWords, - _In_z_ wchar_t const* _ErrorMessage - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1( - errno_t, __wcserror_s, - wchar_t, _Buffer, - _In_z_ wchar_t const*, _ErrorMessage - ) - -_Check_return_ _ACRTIMP int __cdecl _wcsicmp( - _In_z_ wchar_t const* _String1, - _In_z_ wchar_t const* _String2 - ); - -_Check_return_ _ACRTIMP int __cdecl _wcsicmp_l( - _In_z_ wchar_t const* _String1, - _In_z_ wchar_t const* _String2, - _In_opt_ _locale_t _Locale - ); - -_Check_return_ _ACRTIMP int __cdecl _wcsnicmp( - _In_reads_or_z_(_MaxCount) wchar_t const* _String1, - _In_reads_or_z_(_MaxCount) wchar_t const* _String2, - _In_ size_t _MaxCount - ); - -_Check_return_ _ACRTIMP int __cdecl _wcsnicmp_l( - _In_reads_or_z_(_MaxCount) wchar_t const* _String1, - _In_reads_or_z_(_MaxCount) wchar_t const* _String2, - _In_ size_t _MaxCount, - _In_opt_ _locale_t _Locale - ); - -_Check_return_wat_ _ACRTIMP errno_t __cdecl _wcsnset_s( - _Inout_updates_z_(_SizeInWords) wchar_t* _Destination, - _In_ size_t _SizeInWords, - _In_ wchar_t _Value, - _In_ size_t _MaxCount - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2( - errno_t, _wcsnset_s, - _Prepost_z_ wchar_t, _Destination, - _In_ wchar_t, _Value, - _In_ size_t, _MaxCount - ) - -__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX( - wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, _wcsnset, _wcsnset_s, - _Inout_updates_z_(_Size) wchar_t, - _Inout_updates_z_(_MaxCount), wchar_t, _String, - _In_ wchar_t, _Value, - _In_ size_t, _MaxCount - ) - -_ACRTIMP wchar_t* __cdecl _wcsrev( - _Inout_z_ wchar_t* _String - ); - -_Check_return_wat_ _ACRTIMP errno_t __cdecl _wcsset_s( - _Inout_updates_z_(_SizeInWords) wchar_t* _Destination, - _In_ size_t _SizeInWords, - _In_ wchar_t _Value - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1( - errno_t, _wcsset_s, - _Prepost_z_ wchar_t, _String, - _In_ wchar_t, _Value - ) - -__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX( - wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, _wcsset, _wcsset_s, - _Inout_updates_z_(_Size) wchar_t, - _Inout_z_, wchar_t, _String, - _In_ wchar_t, _Value - ) - -_Check_return_wat_ _ACRTIMP errno_t __cdecl _wcslwr_s( - _Inout_updates_z_(_SizeInWords) wchar_t* _String, - _In_ size_t _SizeInWords - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0( - errno_t, _wcslwr_s, - _Prepost_z_ wchar_t, _String - ) - -__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0( - wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, _wcslwr, - _Inout_z_, wchar_t, _String - ) - -_Check_return_wat_ -_ACRTIMP errno_t __cdecl _wcslwr_s_l( - _Inout_updates_z_(_SizeInWords) wchar_t* _String, - _In_ size_t _SizeInWords, - _In_opt_ _locale_t _Locale - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1( - errno_t, _wcslwr_s_l, - _Prepost_z_ wchar_t, _String, - _In_opt_ _locale_t, _Locale - ) - -__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX( - wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, _wcslwr_l, _wcslwr_s_l, - _Inout_updates_z_(_Size) wchar_t, - _Inout_z_, wchar_t, _String, - _In_opt_ _locale_t, _Locale - ) - -_Check_return_wat_ -_ACRTIMP errno_t __cdecl _wcsupr_s( - _Inout_updates_z_(_Size) wchar_t* _String, - _In_ size_t _Size - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0( - errno_t, _wcsupr_s, - _Prepost_z_ wchar_t, _String - ) - -__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0( - wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, _wcsupr, - _Inout_z_, wchar_t, _String - ) - -_Check_return_wat_ -_ACRTIMP errno_t __cdecl _wcsupr_s_l( - _Inout_updates_z_(_Size) wchar_t* _String, - _In_ size_t _Size, - _In_opt_ _locale_t _Locale - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1( - errno_t, _wcsupr_s_l, - _Prepost_z_ wchar_t, _String, - _In_opt_ _locale_t, _Locale - ) - -__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX( - wchar_t*, __RETURN_POLICY_DST, _ACRTIMP, _wcsupr_l, _wcsupr_s_l, - _Inout_updates_z_(_Size) wchar_t, - _Inout_z_, wchar_t, _String, - _In_opt_ _locale_t, _Locale - ) - -_Success_(return < _MaxCount) -_Check_return_opt_ -_ACRTIMP size_t __cdecl wcsxfrm( - _Out_writes_opt_(_MaxCount) _Post_maybez_ wchar_t* _Destination, - _In_z_ wchar_t const* _Source, - _In_ _In_range_(<= ,_CRT_INT_MAX) size_t _MaxCount - ); - -_Success_(return < _MaxCount) -_Check_return_opt_ -_ACRTIMP size_t __cdecl _wcsxfrm_l( - _Out_writes_opt_(_MaxCount) _Post_maybez_ wchar_t* _Destination, - _In_z_ wchar_t const* _Source, - _In_ _In_range_(<= ,_CRT_INT_MAX) size_t _MaxCount, - _In_opt_ _locale_t _Locale - ); - -_Check_return_ -_ACRTIMP int __cdecl wcscoll( - _In_z_ wchar_t const* _String1, - _In_z_ wchar_t const* _String2 - ); - -_Check_return_ -_ACRTIMP int __cdecl _wcscoll_l( - _In_z_ wchar_t const* _String1, - _In_z_ wchar_t const* _String2, - _In_opt_ _locale_t _Locale - ); - -_Check_return_ -_ACRTIMP int __cdecl _wcsicoll( - _In_z_ wchar_t const* _String1, - _In_z_ wchar_t const* _String2 - ); - -_Check_return_ -_ACRTIMP int __cdecl _wcsicoll_l( - _In_z_ wchar_t const* _String1, - _In_z_ wchar_t const* _String2, - _In_opt_ _locale_t _Locale - ); - -_Check_return_ -_ACRTIMP int __cdecl _wcsncoll( - _In_reads_or_z_(_MaxCount) wchar_t const* _String1, - _In_reads_or_z_(_MaxCount) wchar_t const* _String2, - _In_ size_t _MaxCount - ); - -_Check_return_ -_ACRTIMP int __cdecl _wcsncoll_l( - _In_reads_or_z_(_MaxCount) wchar_t const* _String1, - _In_reads_or_z_(_MaxCount) wchar_t const* _String2, - _In_ size_t _MaxCount, - _In_opt_ _locale_t _Locale - ); - -_Check_return_ -_ACRTIMP int __cdecl _wcsnicoll( - _In_reads_or_z_(_MaxCount) wchar_t const* _String1, - _In_reads_or_z_(_MaxCount) wchar_t const* _String2, - _In_ size_t _MaxCount - ); - -_Check_return_ -_ACRTIMP int __cdecl _wcsnicoll_l( - _In_reads_or_z_(_MaxCount) wchar_t const* _String1, - _In_reads_or_z_(_MaxCount) wchar_t const* _String2, - _In_ size_t _MaxCount, - _In_opt_ _locale_t _Locale - ); - - - -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// -// Inline C++ Overloads -// -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -#ifdef __cplusplus -extern "C++" { - - _Check_return_ - _When_(return != NULL, _Ret_range_(_String, _String+_String_length_(_String)-1)) - inline wchar_t* __CRTDECL wcschr(_In_z_ wchar_t* _String, wchar_t _C) - { - return const_cast(wcschr(static_cast(_String), _C)); - } - - _Check_return_ - inline wchar_t* __CRTDECL wcspbrk(_In_z_ wchar_t* _String, _In_z_ wchar_t const* _Control) - { - return const_cast(wcspbrk(static_cast(_String), _Control)); - } - - _Check_return_ - inline wchar_t* __CRTDECL wcsrchr(_In_z_ wchar_t* _String, _In_ wchar_t _C) - { - return const_cast(wcsrchr(static_cast(_String), _C)); - } - - _Check_return_ _Ret_maybenull_ - _When_(return != NULL, _Ret_range_(_String, _String+_String_length_(_String)-1)) - inline wchar_t* __CRTDECL wcsstr(_In_z_ wchar_t* _String, _In_z_ wchar_t const*_SubStr) - { - return const_cast(wcsstr(static_cast(_String), _SubStr)); - } - -} -#endif // __cplusplus - - - -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// -// Non-Standard Names -// -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -#if defined(_CRT_INTERNAL_NONSTDC_NAMES) && _CRT_INTERNAL_NONSTDC_NAMES - #if defined _DEBUG && defined _CRTDBG_MAP_ALLOC - #pragma push_macro("wcsdup") - #undef wcsdup - #endif - - _Check_return_ _CRT_NONSTDC_DEPRECATE(_wcsdup) - _ACRTIMP wchar_t* __cdecl wcsdup( - _In_z_ wchar_t const* _String - ); - - #if defined _DEBUG && defined _CRTDBG_MAP_ALLOC - #pragma pop_macro("wcsdup") - #endif - - // Declarations of functions defined in oldnames.lib: - #define wcswcs wcsstr - - _Check_return_ _CRT_NONSTDC_DEPRECATE(_wcsicmp) - _ACRTIMP int __cdecl wcsicmp( - _In_z_ wchar_t const* _String1, - _In_z_ wchar_t const* _String2 - ); - - _Check_return_ _CRT_NONSTDC_DEPRECATE(_wcsnicmp) - _ACRTIMP int __cdecl wcsnicmp( - _In_reads_or_z_(_MaxCount) wchar_t const* _String1, - _In_reads_or_z_(_MaxCount) wchar_t const* _String2, - _In_ size_t _MaxCount - ); - - _CRT_NONSTDC_DEPRECATE(_wcsnset) - _Ret_z_ - _ACRTIMP wchar_t* __cdecl wcsnset( - _Inout_updates_z_(_MaxCount) wchar_t* _String, - _In_ wchar_t _Value, - _In_ size_t _MaxCount - ); - - _CRT_NONSTDC_DEPRECATE(_wcsrev) - _Ret_z_ - _ACRTIMP wchar_t* __cdecl wcsrev( - _Inout_z_ wchar_t* _String - ); - - _CRT_NONSTDC_DEPRECATE(_wcsset) - _Ret_z_ - _ACRTIMP wchar_t* __cdecl wcsset( - _Inout_z_ wchar_t* _String, - _In_ wchar_t _Value - ); - - _CRT_NONSTDC_DEPRECATE(_wcslwr) - _Ret_z_ - _ACRTIMP wchar_t* __cdecl wcslwr( - _Inout_z_ wchar_t* _String - ); - - _CRT_NONSTDC_DEPRECATE(_wcsupr) - _Ret_z_ - _ACRTIMP wchar_t* __cdecl wcsupr( - _Inout_z_ wchar_t* _String - ); - - _Check_return_ _CRT_NONSTDC_DEPRECATE(_wcsicoll) - _ACRTIMP int __cdecl wcsicoll( - _In_z_ wchar_t const* _String1, - _In_z_ wchar_t const* _String2 - ); - -#endif // _CRT_INTERNAL_NONSTDC_NAMES - - - -_CRT_END_C_HEADER - -#endif // !__midl -_UCRT_RESTORE_CLANG_WARNINGS -#pragma warning(pop) // _UCRT_DISABLED_WARNINGS diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_wstring.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@corecrt_wstring.h.blob deleted file mode 100644 index a9cbaa3edb2a74ada51d0f1e3e85207e89d85214..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14587 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 - -#pragma warning(push) -#pragma warning(disable: _UCRT_DISABLED_WARNINGS) -_UCRT_DISABLE_CLANG_WARNINGS - -_CRT_BEGIN_C_HEADER - - - -#if _CRT_FUNCTIONS_REQUIRED - _ACRTIMP int* __cdecl _errno(void); - #define errno (*_errno()) - - _ACRTIMP errno_t __cdecl _set_errno(_In_ int _Value); - _ACRTIMP errno_t __cdecl _get_errno(_Out_ int* _Value); - - _ACRTIMP unsigned long* __cdecl __doserrno(void); - #define _doserrno (*__doserrno()) - - _ACRTIMP errno_t __cdecl _set_doserrno(_In_ unsigned long _Value); - _ACRTIMP errno_t __cdecl _get_doserrno(_Out_ unsigned long * _Value); -#endif // _CRT_FUNCTIONS_REQUIRED - - - -// Error codes -#define EPERM 1 -#define ENOENT 2 -#define ESRCH 3 -#define EINTR 4 -#define EIO 5 -#define ENXIO 6 -#define E2BIG 7 -#define ENOEXEC 8 -#define EBADF 9 -#define ECHILD 10 -#define EAGAIN 11 -#define ENOMEM 12 -#define EACCES 13 -#define EFAULT 14 -#define EBUSY 16 -#define EEXIST 17 -#define EXDEV 18 -#define ENODEV 19 -#define ENOTDIR 20 -#define EISDIR 21 -#define ENFILE 23 -#define EMFILE 24 -#define ENOTTY 25 -#define EFBIG 27 -#define ENOSPC 28 -#define ESPIPE 29 -#define EROFS 30 -#define EMLINK 31 -#define EPIPE 32 -#define EDOM 33 -#define EDEADLK 36 -#define ENAMETOOLONG 38 -#define ENOLCK 39 -#define ENOSYS 40 -#define ENOTEMPTY 41 - -// Error codes used in the Secure CRT functions -#ifndef RC_INVOKED - #define _SECURECRT_ERRCODE_VALUES_DEFINED - #define EINVAL 22 - #define ERANGE 34 - #define EILSEQ 42 - #define STRUNCATE 80 -#endif - -// Support EDEADLOCK for compatibility with older Microsoft C versions -#define EDEADLOCK EDEADLK - -// POSIX Supplement -#ifndef _CRT_NO_POSIX_ERROR_CODES - #define EADDRINUSE 100 - #define EADDRNOTAVAIL 101 - #define EAFNOSUPPORT 102 - #define EALREADY 103 - #define EBADMSG 104 - #define ECANCELED 105 - #define ECONNABORTED 106 - #define ECONNREFUSED 107 - #define ECONNRESET 108 - #define EDESTADDRREQ 109 - #define EHOSTUNREACH 110 - #define EIDRM 111 - #define EINPROGRESS 112 - #define EISCONN 113 - #define ELOOP 114 - #define EMSGSIZE 115 - #define ENETDOWN 116 - #define ENETRESET 117 - #define ENETUNREACH 118 - #define ENOBUFS 119 - #define ENODATA 120 - #define ENOLINK 121 - #define ENOMSG 122 - #define ENOPROTOOPT 123 - #define ENOSR 124 - #define ENOSTR 125 - #define ENOTCONN 126 - #define ENOTRECOVERABLE 127 - #define ENOTSOCK 128 - #define ENOTSUP 129 - #define EOPNOTSUPP 130 - #define EOTHER 131 - #define EOVERFLOW 132 - #define EOWNERDEAD 133 - #define EPROTO 134 - #define EPROTONOSUPPORT 135 - #define EPROTOTYPE 136 - #define ETIME 137 - #define ETIMEDOUT 138 - #define ETXTBSY 139 - #define EWOULDBLOCK 140 -#endif // _CRT_NO_POSIX_ERROR_CODES - - - -_CRT_END_C_HEADER -_UCRT_RESTORE_CLANG_WARNINGS -#pragma warning(pop) // _UCRT_DISABLED_WARNINGS -#endif // _INC_ERRNO diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@errno.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@errno.h.blob deleted file mode 100644 index 9488ac85f1672fc9272b7b18b68017fb2adcfc2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9798 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 diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@fcntl.h b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@fcntl.h deleted file mode 100644 index 7b8437af6..000000000 --- a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@fcntl.h +++ /dev/null @@ -1,68 +0,0 @@ -// -// fcntl.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// File control options used by _open(). -// -#pragma once -#ifndef _INC_FCNTL // include guard for 3rd party interop -#define _INC_FCNTL - -#include - -#pragma warning(push) -#pragma warning(disable: _UCRT_DISABLED_WARNINGS) -_UCRT_DISABLE_CLANG_WARNINGS - -#define _O_RDONLY 0x0000 // open for reading only -#define _O_WRONLY 0x0001 // open for writing only -#define _O_RDWR 0x0002 // open for reading and writing -#define _O_APPEND 0x0008 // writes done at eof - -#define _O_CREAT 0x0100 // create and open file -#define _O_TRUNC 0x0200 // open and truncate -#define _O_EXCL 0x0400 // open only if file doesn't already exist - -// O_TEXT files have sequences translated to on read()'s and -// sequences translated to on write()'s - -#define _O_TEXT 0x4000 // file mode is text (translated) -#define _O_BINARY 0x8000 // file mode is binary (untranslated) -#define _O_WTEXT 0x10000 // file mode is UTF16 (translated) -#define _O_U16TEXT 0x20000 // file mode is UTF16 no BOM (translated) -#define _O_U8TEXT 0x40000 // file mode is UTF8 no BOM (translated) - -// macro to translate the C 2.0 name used to force binary mode for files -#define _O_RAW _O_BINARY - -#define _O_NOINHERIT 0x0080 // child process doesn't inherit file -#define _O_TEMPORARY 0x0040 // temporary file bit (file is deleted when last handle is closed) -#define _O_SHORT_LIVED 0x1000 // temporary storage file, try not to flush -#define _O_OBTAIN_DIR 0x2000 // get information about a directory -#define _O_SEQUENTIAL 0x0020 // file access is primarily sequential -#define _O_RANDOM 0x0010 // file access is primarily random - - - -#if (defined _CRT_DECLARE_NONSTDC_NAMES && _CRT_DECLARE_NONSTDC_NAMES) || (!defined _CRT_DECLARE_NONSTDC_NAMES && !__STDC__) - #define O_RDONLY _O_RDONLY - #define O_WRONLY _O_WRONLY - #define O_RDWR _O_RDWR - #define O_APPEND _O_APPEND - #define O_CREAT _O_CREAT - #define O_TRUNC _O_TRUNC - #define O_EXCL _O_EXCL - #define O_TEXT _O_TEXT - #define O_BINARY _O_BINARY - #define O_RAW _O_BINARY - #define O_TEMPORARY _O_TEMPORARY - #define O_NOINHERIT _O_NOINHERIT - #define O_SEQUENTIAL _O_SEQUENTIAL - #define O_RANDOM _O_RANDOM -#endif - -_UCRT_RESTORE_CLANG_WARNINGS -#pragma warning(pop) // _UCRT_DISABLED_WARNINGS - -#endif // _INC_FCNTL diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@fcntl.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@fcntl.h.blob deleted file mode 100644 index 3b7954c55113ca926634a1e92e1b9ca18e5f7606..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6523 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 SyAKeY%aI%i4gdmJ7vX;g2PR -#endif // _INC_IO diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@io.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@io.h.blob deleted file mode 100644 index 1b4691dfc64a4799304f5b1e1ffd033731f23fcd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4122 zcmb_f!IIiI5H)+tWou7+OrI`&Bf49y?)P5HzdPUl>%ITtI1ZYslp!LOL_I~blu2ul zry_<@E*aG%wp2-@1T$#3S!sHLgCW?ZDLCEtTkjytGRg_`bY%w?n&rrSY-B*_t%RAdpW8};vrTA~n|R5of*Gw4`p5us(bGi4-V z+Bj|;ags=7ET_h$&`y0$#De6;K??`{!yOb%TJRA$XmsPX0RxukgxT}upIzMTxHIZ5 zRtI-eGp7(RE#jmzV)=v%Zu8X=TUsU!2M88>GC^_{xt66fK`e7;L>n#>*po|>8?BVx zMRXY%jo&y3z=Z%n=u&w@@`+vYdw5>KxfyZ&B#bxJ)n3H{}v8>IxWJcP$~r`hQ=-~4gbdb>d+5gW4^$h8#RLTg|g>y9M7UquL^4HDq7KDdeIMkWwztS-aW~V`C!#4W1JW zUxmZRw~a5)-#DhyifZ4j@RjF(dj3>F*|o(BNDmUPACPG+RTXA`Jt7w41)UO&ZB>xN z9){nsqa0>dM?8*qd}^1=Frw-7@G-YA`%$+K!*ot{2C|p3YO4pS9}Z#27AA*_yV69Q z5~|BCmT5ogw!(DPy9c=)kHVCtbe7{2@Nx&&_XxU8v8H~l$?|#N*C6pGOa4^G6bf=& ziz?y4h4fH0%j>rb+P;(VwxmaDE_h9$E3jGY!XCpqG#!3IR`Q4T+YCqxKED@}Nm zpJnq4m6e$&RbW4z=Wrj2%PQ`-t1tzK65MRX`vDXVi_><;;tK!#X;{^{KqjDE#(X=J zw^`NWd~%m$t2;x<`u$a3&-&94ZgafFDQLG2b_9A-vcyF2L_R)3pU~>fD1)2OJxM-X zM~oAh(L%rKp$%|BGp(7V`EgTG#j#;l#XpeFdXQSZXu@T1KcYY>ftjb@y&y^v^)yoq zrZ?Q*H@Is2TA$7(+~LK(@%`(+pMRU9slWr@!-D|Uetr!lftUDK)l%cdFE3vHRDL?& H8({K3ss^$3 diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@stdio.h b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@stdio.h deleted file mode 100644 index 96b8bbc07..000000000 --- a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@stdio.h +++ /dev/null @@ -1,2448 +0,0 @@ -// -// stdio.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// The C Standard Library header. -// -#pragma once -#ifndef _INC_STDIO // include guard for 3rd party interop -#define _INC_STDIO - -#include -#include - -#pragma warning(push) -#pragma warning(disable: _UCRT_DISABLED_WARNINGS) -_UCRT_DISABLE_CLANG_WARNINGS - -_CRT_BEGIN_C_HEADER - -/* Buffered I/O macros */ - -#define BUFSIZ 512 - - - -/* - * Default number of supported streams. _NFILE is confusing and obsolete, but - * supported anyway for backwards compatibility. - */ -#define _NFILE _NSTREAM_ - -#define _NSTREAM_ 512 - -/* - * Number of entries in _iob[] (declared below). Note that _NSTREAM_ must be - * greater than or equal to _IOB_ENTRIES. - */ -#define _IOB_ENTRIES 3 - -#define EOF (-1) - -#define _IOFBF 0x0000 -#define _IOLBF 0x0040 -#define _IONBF 0x0004 - - - -#define L_tmpnam 260 // _MAX_PATH -#if __STDC_WANT_SECURE_LIB__ - #define L_tmpnam_s L_tmpnam -#endif - - - -/* Seek method constants */ - -#define SEEK_CUR 1 -#define SEEK_END 2 -#define SEEK_SET 0 - - -#define FILENAME_MAX 260 -#define FOPEN_MAX 20 -#define _SYS_OPEN 20 -#define TMP_MAX _CRT_INT_MAX -#if __STDC_WANT_SECURE_LIB__ - #define TMP_MAX_S TMP_MAX - #define _TMP_MAX_S TMP_MAX -#endif - - -typedef __int64 fpos_t; - - - -#if _CRT_FUNCTIONS_REQUIRED - - _Check_return_opt_ - _ACRTIMP errno_t __cdecl _get_stream_buffer_pointers( - _In_ FILE* _Stream, - _Out_opt_ char*** _Base, - _Out_opt_ char*** _Pointer, - _Out_opt_ int** _Count - ); - - - //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - // - // Narrow Character Stream I/O Functions - // - //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - #if __STDC_WANT_SECURE_LIB__ - - _Check_return_wat_ - _ACRTIMP errno_t __cdecl clearerr_s( - _Inout_ FILE* _Stream - ); - - _Check_return_wat_ - _Success_(return == 0) - _ACRTIMP errno_t __cdecl fopen_s( - _Outptr_result_nullonfailure_ FILE** _Stream, - _In_z_ char const* _FileName, - _In_z_ char const* _Mode - ); - - _Check_return_opt_ - _Success_(return != 0) - _ACRTIMP size_t __cdecl fread_s( - _Out_writes_bytes_to_(_BufferSize, _ElementSize * _ElementCount) void* _Buffer, - _In_range_(>=, _ElementSize * _ElementCount) size_t _BufferSize, - _In_ size_t _ElementSize, - _In_ size_t _ElementCount, - _Inout_ FILE* _Stream - ); - - _Check_return_wat_ - _ACRTIMP errno_t __cdecl freopen_s( - _Outptr_result_maybenull_ FILE** _Stream, - _In_z_ char const* _FileName, - _In_z_ char const* _Mode, - _Inout_ FILE* _OldStream - ); - - _Success_(return != 0) - _ACRTIMP char* __cdecl gets_s( - _Out_writes_z_(_Size) char* _Buffer, - _In_ rsize_t _Size - ); - - _Check_return_wat_ - _ACRTIMP errno_t __cdecl tmpfile_s( - _Out_opt_ _Deref_post_valid_ FILE** _Stream - ); - - _Success_(return == 0) - _Check_return_wat_ - _ACRTIMP errno_t __cdecl tmpnam_s( - _Out_writes_z_(_Size) char* _Buffer, - _In_ rsize_t _Size - ); - - #endif - - _ACRTIMP void __cdecl clearerr( - _Inout_ FILE* _Stream - ); - - _Success_(return != -1) - _Check_return_opt_ - _ACRTIMP int __cdecl fclose( - _Inout_ FILE* _Stream - ); - - _Check_return_opt_ - _ACRTIMP int __cdecl _fcloseall(void); - - _Check_return_ - _ACRTIMP FILE* __cdecl _fdopen( - _In_ int _FileHandle, - _In_z_ char const* _Mode - ); - - _Check_return_ - _ACRTIMP int __cdecl feof( - _In_ FILE* _Stream - ); - - _Check_return_ - _ACRTIMP int __cdecl ferror( - _In_ FILE* _Stream - ); - - _Check_return_opt_ - _ACRTIMP int __cdecl fflush( - _Inout_opt_ FILE* _Stream - ); - - _Success_(return != EOF) - _Check_return_opt_ - _ACRTIMP int __cdecl fgetc( - _Inout_ FILE* _Stream - ); - - _Check_return_opt_ - _ACRTIMP int __cdecl _fgetchar(void); - - _Success_(return != EOF) - _Check_return_opt_ - _ACRTIMP int __cdecl fgetpos( - _Inout_ FILE* _Stream, - _Out_ fpos_t* _Position - ); - - _Success_(return == _Buffer) - _Check_return_opt_ - _ACRTIMP char* __cdecl fgets( - _Out_writes_z_(_MaxCount) char* _Buffer, - _In_ int _MaxCount, - _Inout_ FILE* _Stream - ); - - _Check_return_ - _ACRTIMP int __cdecl _fileno( - _In_ FILE* _Stream - ); - - _Check_return_opt_ - _ACRTIMP int __cdecl _flushall(void); - - _Check_return_ _CRT_INSECURE_DEPRECATE(fopen_s) - _ACRTIMP FILE* __cdecl fopen( - _In_z_ char const* _FileName, - _In_z_ char const* _Mode - ); - - - _Success_(return != EOF) - _Check_return_opt_ - _ACRTIMP int __cdecl fputc( - _In_ int _Character, - _Inout_ FILE* _Stream - ); - - _Check_return_opt_ - _ACRTIMP int __cdecl _fputchar( - _In_ int _Character - ); - - _Success_(return != EOF) - _Check_return_opt_ - _ACRTIMP int __cdecl fputs( - _In_z_ char const* _Buffer, - _Inout_ FILE* _Stream - ); - - _Check_return_opt_ - _ACRTIMP size_t __cdecl fread( - _Out_writes_bytes_(_ElementSize * _ElementCount) void* _Buffer, - _In_ size_t _ElementSize, - _In_ size_t _ElementCount, - _Inout_ FILE* _Stream - ); - - _Success_(return != 0) - _Check_return_ _CRT_INSECURE_DEPRECATE(freopen_s) - _ACRTIMP FILE* __cdecl freopen( - _In_z_ char const* _FileName, - _In_z_ char const* _Mode, - _Inout_ FILE* _Stream - ); - - _Check_return_ - _ACRTIMP FILE* __cdecl _fsopen( - _In_z_ char const* _FileName, - _In_z_ char const* _Mode, - _In_ int _ShFlag - ); - - _Success_(return == 0) - _Check_return_opt_ - _ACRTIMP int __cdecl fsetpos( - _Inout_ FILE* _Stream, - _In_ fpos_t const* _Position - ); - - _Success_(return == 0) - _Check_return_opt_ - _ACRTIMP int __cdecl fseek( - _Inout_ FILE* _Stream, - _In_ long _Offset, - _In_ int _Origin - ); - - _Success_(return == 0) - _Check_return_opt_ - _ACRTIMP int __cdecl _fseeki64( - _Inout_ FILE* _Stream, - _In_ __int64 _Offset, - _In_ int _Origin - ); - - _Success_(return != -1) - _Check_return_ - _ACRTIMP long __cdecl ftell( - _Inout_ FILE* _Stream - ); - - _Success_(return != -1) - _Check_return_ - _ACRTIMP __int64 __cdecl _ftelli64( - _Inout_ FILE* _Stream - ); - - _Check_return_opt_ - _ACRTIMP size_t __cdecl fwrite( - _In_reads_bytes_(_ElementSize * _ElementCount) void const* _Buffer, - _In_ size_t _ElementSize, - _In_ size_t _ElementCount, - _Inout_ FILE* _Stream - ); - - _Success_(return != EOF) - _Check_return_ - _ACRTIMP int __cdecl getc( - _Inout_ FILE* _Stream - ); - - _Check_return_ - _ACRTIMP int __cdecl getchar(void); - - _Check_return_ - _ACRTIMP int __cdecl _getmaxstdio(void); - - __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0( - char*, gets_s, - char, _Buffer) - - _Check_return_ - _ACRTIMP int __cdecl _getw( - _Inout_ FILE* _Stream - ); - - _ACRTIMP void __cdecl perror( - _In_opt_z_ char const* _ErrorMessage - ); - - #if defined _CRT_USE_WINAPI_FAMILY_DESKTOP_APP - - _Success_(return != -1) - _Check_return_opt_ - _DCRTIMP int __cdecl _pclose( - _Inout_ FILE* _Stream - ); - - _Check_return_ - _DCRTIMP FILE* __cdecl _popen( - _In_z_ char const* _Command, - _In_z_ char const* _Mode - ); - - #endif - - _Success_(return != EOF) - _Check_return_opt_ - _ACRTIMP int __cdecl putc( - _In_ int _Character, - _Inout_ FILE* _Stream - ); - - _Check_return_opt_ - _ACRTIMP int __cdecl putchar( - _In_ int _Character - ); - - _Check_return_opt_ - _ACRTIMP int __cdecl puts( - _In_z_ char const* _Buffer - ); - - _Success_(return != -1) - _Check_return_opt_ - _ACRTIMP int __cdecl _putw( - _In_ int _Word, - _Inout_ FILE* _Stream - ); - - _ACRTIMP int __cdecl remove( - _In_z_ char const* _FileName - ); - - _Check_return_ - _ACRTIMP int __cdecl rename( - _In_z_ char const* _OldFileName, - _In_z_ char const* _NewFileName - ); - - _ACRTIMP int __cdecl _unlink( - _In_z_ char const* _FileName - ); - - #if defined(_CRT_INTERNAL_NONSTDC_NAMES) && _CRT_INTERNAL_NONSTDC_NAMES - - _CRT_NONSTDC_DEPRECATE(_unlink) - _ACRTIMP int __cdecl unlink( - _In_z_ char const* _FileName - ); - - #endif - - _ACRTIMP void __cdecl rewind( - _Inout_ FILE* _Stream - ); - - _Check_return_opt_ - _ACRTIMP int __cdecl _rmtmp(void); - - _CRT_INSECURE_DEPRECATE(setvbuf) - _ACRTIMP void __cdecl setbuf( - _Inout_ FILE* _Stream, - _Inout_updates_opt_(BUFSIZ) _Post_readable_size_(0) char* _Buffer - ); - - _Check_return_opt_ - _ACRTIMP int __cdecl _setmaxstdio( - _In_ int _Maximum - ); - - _Success_(return == 0) - _Check_return_opt_ - _ACRTIMP int __cdecl setvbuf( - _Inout_ FILE* _Stream, - _Inout_updates_opt_(_Size) char* _Buffer, - _In_ int _Mode, - _In_ size_t _Size - ); - - #if defined _DEBUG && defined _CRTDBG_MAP_ALLOC - #pragma push_macro("_tempnam") - #undef _tempnam - #endif - - _Check_return_ - _ACRTIMP _CRTALLOCATOR char* __cdecl _tempnam( - _In_opt_z_ char const* _DirectoryName, - _In_opt_z_ char const* _FilePrefix - ); - - #if defined _DEBUG && defined _CRTDBG_MAP_ALLOC - #pragma pop_macro("_tempnam") - #endif - - _Check_return_ _CRT_INSECURE_DEPRECATE(tmpfile_s) - _ACRTIMP FILE* __cdecl tmpfile(void); - - __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0( - _Success_(return == 0) - errno_t, tmpnam_s, - _Always_(_Post_z_) char, _Buffer - ) - -__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0( - _Success_(return != 0) - char*, __RETURN_POLICY_DST, _ACRTIMP, tmpnam, - _Pre_maybenull_ _Always_(_Post_z_), char, _Buffer - ) - - _Success_(return != EOF) - _Check_return_opt_ - _ACRTIMP int __cdecl ungetc( - _In_ int _Character, - _Inout_ FILE* _Stream - ); - - - - //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - // - // I/O Synchronization and _nolock family of I/O functions - // - //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - _ACRTIMP void __cdecl _lock_file( - _Inout_ FILE* _Stream - ); - - _ACRTIMP void __cdecl _unlock_file( - _Inout_ FILE* _Stream - ); - - _Success_(return != EOF) - _Check_return_opt_ - _ACRTIMP int __cdecl _fclose_nolock( - _Inout_ FILE* _Stream - ); - - _Success_(return != EOF) - _Check_return_opt_ - _ACRTIMP int __cdecl _fflush_nolock( - _Inout_opt_ FILE* _Stream - ); - - _Success_(return != EOF) - _Check_return_opt_ - _ACRTIMP int __cdecl _fgetc_nolock( - _Inout_ FILE* _Stream - ); - - _Success_(return != EOF) - _Check_return_opt_ - _ACRTIMP int __cdecl _fputc_nolock( - _In_ int _Character, - _Inout_ FILE* _Stream - ); - - _Check_return_opt_ - _ACRTIMP size_t __cdecl _fread_nolock( - _Out_writes_bytes_(_ElementSize * _ElementCount) void* _Buffer, - _In_ size_t _ElementSize, - _In_ size_t _ElementCount, - _Inout_ FILE* _Stream - ); - - _Check_return_opt_ - _Success_(return != 0) - _ACRTIMP size_t __cdecl _fread_nolock_s( - _Out_writes_bytes_to_(_BufferSize, _ElementSize * _ElementCount) void* _Buffer, - _In_range_(>=, _ElementSize * _ElementCount) size_t _BufferSize, - _In_ size_t _ElementSize, - _In_ size_t _ElementCount, - _Inout_ FILE* _Stream - ); - - _Check_return_opt_ - _ACRTIMP int __cdecl _fseek_nolock( - _Inout_ FILE* _Stream, - _In_ long _Offset, - _In_ int _Origin - ); - - _Check_return_opt_ - _ACRTIMP int __cdecl _fseeki64_nolock( - _Inout_ FILE* _Stream, - _In_ __int64 _Offset, - _In_ int _Origin - ); - - _Check_return_ - _ACRTIMP long __cdecl _ftell_nolock( - _Inout_ FILE* _Stream - ); - - _Check_return_ - _ACRTIMP __int64 __cdecl _ftelli64_nolock( - _Inout_ FILE* _Stream - ); - - _Check_return_opt_ - _ACRTIMP size_t __cdecl _fwrite_nolock( - _In_reads_bytes_(_ElementSize * _ElementCount) void const* _Buffer, - _In_ size_t _ElementSize, - _In_ size_t _ElementCount, - _Inout_ FILE* _Stream - ); - - _Check_return_opt_ - _ACRTIMP int __cdecl _getc_nolock( - _Inout_ FILE* _Stream - ); - - _Check_return_opt_ - _ACRTIMP int __cdecl _putc_nolock( - _In_ int _Character, - _Inout_ FILE* _Stream - ); - - _Check_return_opt_ - _ACRTIMP int __cdecl _ungetc_nolock( - _In_ int _Character, - _Inout_ FILE* _Stream - ); - - #define _getchar_nolock() _getc_nolock(stdin) - #define _putchar_nolock(_Ch) _putc_nolock(_Ch, stdout) - #define _getwchar_nolock() _getwc_nolock(stdin) - #define _putwchar_nolock(_Ch) _putwc_nolock(_Ch, stdout) - - - - #if defined _CRT_DISABLE_PERFCRIT_LOCKS && !defined _DLL - #define fclose(_Stream) _fclose_nolock(_Stream) - #define fflush(_Stream) _fflush_nolock(_Stream) - #define fgetc(_Stream) _fgetc_nolock(_Stream) - #define fputc(_Ch, _Stream) _fputc_nolock(_Ch, _Stream) - #define fread(_DstBuf, _ElementSize, _Count, _Stream) _fread_nolock(_DstBuf, _ElementSize, _Count, _Stream) - #define fread_s(_DstBuf, _DstSize, _ElementSize, _Count, _Stream) _fread_nolock_s(_DstBuf, _DstSize, _ElementSize, _Count, _Stream) - #define fseek(_Stream, _Offset, _Origin) _fseek_nolock(_Stream, _Offset, _Origin) - #define _fseeki64(_Stream, _Offset, _Origin) _fseeki64_nolock(_Stream, _Offset, _Origin) - #define ftell(_Stream) _ftell_nolock(_Stream) - #define _ftelli64(_Stream) _ftelli64_nolock(_Stream) - #define fwrite(_SrcBuf, _ElementSize, _Count, _Stream) _fwrite_nolock(_SrcBuf, _ElementSize, _Count, _Stream) - #define getc(_Stream) _getc_nolock(_Stream) - #define putc(_Ch, _Stream) _putc_nolock(_Ch, _Stream) - #define ungetc(_Ch, _Stream) _ungetc_nolock(_Ch, _Stream) - #endif - - - - _ACRTIMP int* __cdecl __p__commode(void); - - #ifdef _CRT_DECLARE_GLOBAL_VARIABLES_DIRECTLY - extern int _commode; - #else - #define _commode (*__p__commode()) - #endif - - - - // Variadic functions are not supported in managed code under /clr - #if defined _M_CEE_MIXED - #pragma managed(push, off) - #endif - - //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - // - // Narrow Character Formatted Output Functions (Stream) - // - //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - _ACRTIMP int __cdecl __stdio_common_vfprintf( - _In_ unsigned __int64 _Options, - _Inout_ FILE* _Stream, - _In_z_ _Printf_format_string_params_(2) char const* _Format, - _In_opt_ _locale_t _Locale, - va_list _ArgList - ); - - _ACRTIMP int __cdecl __stdio_common_vfprintf_s( - _In_ unsigned __int64 _Options, - _Inout_ FILE* _Stream, - _In_z_ _Printf_format_string_params_(2) char const* _Format, - _In_opt_ _locale_t _Locale, - va_list _ArgList - ); - - _Success_(return >= 0) - _ACRTIMP int __cdecl __stdio_common_vfprintf_p( - _In_ unsigned __int64 _Options, - _Inout_ FILE* _Stream, - _In_z_ _Printf_format_string_params_(2) char const* _Format, - _In_opt_ _locale_t _Locale, - va_list _ArgList - ); - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vfprintf_l( - _Inout_ FILE* const _Stream, - _In_z_ char const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return __stdio_common_vfprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Stream, _Format, _Locale, _ArgList); - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL vfprintf( - _Inout_ FILE* const _Stream, - _In_z_ _Printf_format_string_ char const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vfprintf_l(_Stream, _Format, NULL, _ArgList); - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vfprintf_s_l( - _Inout_ FILE* const _Stream, - _In_z_ char const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return __stdio_common_vfprintf_s(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Stream, _Format, _Locale, _ArgList); - } - #endif - - #if __STDC_WANT_SECURE_LIB__ - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL vfprintf_s( - _Inout_ FILE* const _Stream, - _In_z_ _Printf_format_string_ char const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vfprintf_s_l(_Stream, _Format, NULL, _ArgList); - } - #endif - - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vfprintf_p_l( - _Inout_ FILE* const _Stream, - _In_z_ char const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return __stdio_common_vfprintf_p(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Stream, _Format, _Locale, _ArgList); - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vfprintf_p( - _Inout_ FILE* const _Stream, - _In_z_ _Printf_format_string_ char const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vfprintf_p_l(_Stream, _Format, NULL, _ArgList); - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vprintf_l( - _In_z_ _Printf_format_string_params_(2) char const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vfprintf_l(stdout, _Format, _Locale, _ArgList); - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL vprintf( - _In_z_ _Printf_format_string_ char const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vfprintf_l(stdout, _Format, NULL, _ArgList); - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vprintf_s_l( - _In_z_ _Printf_format_string_params_(2) char const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vfprintf_s_l(stdout, _Format, _Locale, _ArgList); - } - #endif - - #if __STDC_WANT_SECURE_LIB__ - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL vprintf_s( - _In_z_ _Printf_format_string_ char const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vfprintf_s_l(stdout, _Format, NULL, _ArgList); - } - #endif - - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vprintf_p_l( - _In_z_ _Printf_format_string_params_(2) char const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vfprintf_p_l(stdout, _Format, _Locale, _ArgList); - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vprintf_p( - _In_z_ _Printf_format_string_ char const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vfprintf_p_l(stdout, _Format, NULL, _ArgList); - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _fprintf_l( - _Inout_ FILE* const _Stream, - _In_z_ _Printf_format_string_params_(0) char const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vfprintf_l(_Stream, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL fprintf( - _Inout_ FILE* const _Stream, - _In_z_ _Printf_format_string_ char const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vfprintf_l(_Stream, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _ACRTIMP int __cdecl _set_printf_count_output( - _In_ int _Value - ); - - _ACRTIMP int __cdecl _get_printf_count_output(void); - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _fprintf_s_l( - _Inout_ FILE* const _Stream, - _In_z_ _Printf_format_string_params_(0) char const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vfprintf_s_l(_Stream, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - #if __STDC_WANT_SECURE_LIB__ - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL fprintf_s( - _Inout_ FILE* const _Stream, - _In_z_ _Printf_format_string_ char const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vfprintf_s_l(_Stream, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _fprintf_p_l( - _Inout_ FILE* const _Stream, - _In_z_ _Printf_format_string_params_(0) char const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vfprintf_p_l(_Stream, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _fprintf_p( - _Inout_ FILE* const _Stream, - _In_z_ _Printf_format_string_ char const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vfprintf_p_l(_Stream, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _printf_l( - _In_z_ _Printf_format_string_params_(0) char const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vfprintf_l(stdout, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL printf( - _In_z_ _Printf_format_string_ char const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vfprintf_l(stdout, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _printf_s_l( - _In_z_ _Printf_format_string_params_(0) char const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vfprintf_s_l(stdout, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - #if __STDC_WANT_SECURE_LIB__ - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL printf_s( - _In_z_ _Printf_format_string_ char const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vfprintf_s_l(stdout, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _printf_p_l( - _In_z_ _Printf_format_string_params_(0) char const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vfprintf_p_l(stdout, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _printf_p( - _In_z_ _Printf_format_string_ char const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vfprintf_p_l(stdout, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - - //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - // - // Narrow Character Formatted Input Functions (Stream) - // - //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - _ACRTIMP int __cdecl __stdio_common_vfscanf( - _In_ unsigned __int64 _Options, - _Inout_ FILE* _Stream, - _In_z_ _Scanf_format_string_params_(2) char const* _Format, - _In_opt_ _locale_t _Locale, - va_list _Arglist - ); - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vfscanf_l( - _Inout_ FILE* const _Stream, - _In_z_ _Printf_format_string_ char const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return __stdio_common_vfscanf( - _CRT_INTERNAL_LOCAL_SCANF_OPTIONS, - _Stream, _Format, _Locale, _ArgList); - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL vfscanf( - _Inout_ FILE* const _Stream, - _In_z_ _Printf_format_string_ char const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vfscanf_l(_Stream, _Format, NULL, _ArgList); - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vfscanf_s_l( - _Inout_ FILE* const _Stream, - _In_z_ _Printf_format_string_ char const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return __stdio_common_vfscanf( - _CRT_INTERNAL_LOCAL_SCANF_OPTIONS | _CRT_INTERNAL_SCANF_SECURECRT, - _Stream, _Format, _Locale, _ArgList); - } - #endif - - - #if __STDC_WANT_SECURE_LIB__ - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL vfscanf_s( - _Inout_ FILE* const _Stream, - _In_z_ _Printf_format_string_ char const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vfscanf_s_l(_Stream, _Format, NULL, _ArgList); - } - #endif - - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vscanf_l( - _In_z_ _Printf_format_string_ char const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vfscanf_l(stdin, _Format, _Locale, _ArgList); - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL vscanf( - _In_z_ _Printf_format_string_ char const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vfscanf_l(stdin, _Format, NULL, _ArgList); - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vscanf_s_l( - _In_z_ _Printf_format_string_ char const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vfscanf_s_l(stdin, _Format, _Locale, _ArgList); - } - #endif - - #if __STDC_WANT_SECURE_LIB__ - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL vscanf_s( - _In_z_ _Printf_format_string_ char const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vfscanf_s_l(stdin, _Format, NULL, _ArgList); - } - #endif - - #endif - - _Check_return_opt_ _CRT_INSECURE_DEPRECATE(_fscanf_s_l) - _CRT_STDIO_INLINE int __CRTDECL _fscanf_l( - _Inout_ FILE* const _Stream, - _In_z_ _Scanf_format_string_params_(0) char const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE // SCANF - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vfscanf_l(_Stream, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Check_return_ _CRT_INSECURE_DEPRECATE(fscanf_s) - _CRT_STDIO_INLINE int __CRTDECL fscanf( - _Inout_ FILE* const _Stream, - _In_z_ _Scanf_format_string_ char const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE // SCANF - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vfscanf_l(_Stream, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _fscanf_s_l( - _Inout_ FILE* const _Stream, - _In_z_ _Scanf_s_format_string_params_(0) char const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE // SCANF - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vfscanf_s_l(_Stream, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - #if __STDC_WANT_SECURE_LIB__ - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL fscanf_s( - _Inout_ FILE* const _Stream, - _In_z_ _Scanf_s_format_string_ char const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE // SCANF - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vfscanf_s_l(_Stream, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - #endif - - _Check_return_opt_ _CRT_INSECURE_DEPRECATE(_scanf_s_l) - _CRT_STDIO_INLINE int __CRTDECL _scanf_l( - _In_z_ _Scanf_format_string_params_(0) char const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE // SCANF - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vfscanf_l(stdin, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Check_return_ _CRT_INSECURE_DEPRECATE(scanf_s) - _CRT_STDIO_INLINE int __CRTDECL scanf( - _In_z_ _Scanf_format_string_ char const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE // SCANF - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vfscanf_l(stdin, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _scanf_s_l( - _In_z_ _Scanf_s_format_string_params_(0) char const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE // SCANF - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vfscanf_s_l(stdin, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - #if __STDC_WANT_SECURE_LIB__ - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL scanf_s( - _In_z_ _Scanf_s_format_string_ char const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE // SCANF - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vfscanf_s_l(stdin, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - #endif - - - - //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - // - // Narrow Character Formatted Output Functions (String) - // - //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - _Success_(return >= 0) - _ACRTIMP int __cdecl __stdio_common_vsprintf( - _In_ unsigned __int64 _Options, - _Out_writes_opt_z_(_BufferCount) char* _Buffer, - _In_ size_t _BufferCount, - _In_z_ _Printf_format_string_params_(2) char const* _Format, - _In_opt_ _locale_t _Locale, - va_list _ArgList - ); - - _Success_(return >= 0) - _ACRTIMP int __cdecl __stdio_common_vsprintf_s( - _In_ unsigned __int64 _Options, - _Out_writes_z_(_BufferCount) char* _Buffer, - _In_ size_t _BufferCount, - _In_z_ _Printf_format_string_params_(2) char const* _Format, - _In_opt_ _locale_t _Locale, - va_list _ArgList - ); - - _Success_(return >= 0) - _ACRTIMP int __cdecl __stdio_common_vsnprintf_s( - _In_ unsigned __int64 _Options, - _Out_writes_opt_z_(_BufferCount) char* _Buffer, - _In_ size_t _BufferCount, - _In_ size_t _MaxCount, - _In_z_ _Printf_format_string_params_(2) char const* _Format, - _In_opt_ _locale_t _Locale, - va_list _ArgList - ); - - _Success_(return >= 0) - _ACRTIMP int __cdecl __stdio_common_vsprintf_p( - _In_ unsigned __int64 _Options, - _Out_writes_z_(_BufferCount) char* _Buffer, - _In_ size_t _BufferCount, - _In_z_ _Printf_format_string_params_(2) char const* _Format, - _In_opt_ _locale_t _Locale, - va_list _ArgList - ); - - _Success_(return >= 0) - _Check_return_opt_ _CRT_INSECURE_DEPRECATE(_vsnprintf_s_l) - _CRT_STDIO_INLINE int __CRTDECL _vsnprintf_l( - _Out_writes_opt_(_BufferCount) _Post_maybez_ char* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_params_(2) char const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int const _Result = __stdio_common_vsprintf( - _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_LEGACY_VSPRINTF_NULL_TERMINATION, - _Buffer, _BufferCount, _Format, _Locale, _ArgList); - - return _Result < 0 ? -1 : _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vsnprintf( - _Out_writes_opt_(_BufferCount) _Post_maybez_ char* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_ char const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vsnprintf_l(_Buffer, _BufferCount, _Format, NULL, _ArgList); - } - #endif - - #if defined vsnprintf - // This definition of vsnprintf will generate "warning C4005: 'vsnprintf': macro - // redefinition" with a subsequent line indicating where the previous definition - // of vsnprintf was. This makes it easier to find where vsnprintf was defined. - #pragma warning(push, 1) - #pragma warning(1: 4005) // macro redefinition - #define vsnprintf Do not define vsnprintf as a macro - #pragma warning(pop) - #error Macro definition of vsnprintf conflicts with Standard Library function declaration - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL vsnprintf( - _Out_writes_opt_(_BufferCount) _Always_(_Post_z_) char* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_ char const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int const _Result = __stdio_common_vsprintf( - _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR, - _Buffer, _BufferCount, _Format, NULL, _ArgList); - - return _Result < 0 ? -1 : _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ _CRT_INSECURE_DEPRECATE(_vsprintf_s_l) - _CRT_STDIO_INLINE int __CRTDECL _vsprintf_l( - _Pre_notnull_ _Always_(_Post_z_) char* const _Buffer, - _In_z_ char const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vsnprintf_l(_Buffer, (size_t)-1, _Format, _Locale, _ArgList); - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ _CRT_INSECURE_DEPRECATE(vsprintf_s) - _CRT_STDIO_INLINE int __CRTDECL vsprintf( - _Pre_notnull_ _Always_(_Post_z_) char* const _Buffer, - _In_z_ _Printf_format_string_ char const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vsnprintf_l(_Buffer, (size_t)-1, _Format, NULL, _ArgList); - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vsprintf_s_l( - _Out_writes_(_BufferCount) _Always_(_Post_z_) char* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_params_(2) char const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int const _Result = __stdio_common_vsprintf_s( - _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, - _Buffer, _BufferCount, _Format, _Locale, _ArgList); - - return _Result < 0 ? -1 : _Result; - } - #endif - - #if __STDC_WANT_SECURE_LIB__ - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL vsprintf_s( - _Out_writes_(_BufferCount) _Always_(_Post_z_) char* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_ char const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vsprintf_s_l(_Buffer, _BufferCount, _Format, NULL, _ArgList); - } - #endif - - __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2( - _Success_(return >= 0) - int, vsprintf_s, - _Always_(_Post_z_) char, _Buffer, - _In_z_ _Printf_format_string_ char const*, _Format, - va_list, _ArgList - ) - - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vsprintf_p_l( - _Out_writes_(_BufferCount) _Always_(_Post_z_) char* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_params_(2) char const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int const _Result = __stdio_common_vsprintf_p( - _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, - _Buffer, _BufferCount, _Format, _Locale, _ArgList); - - return _Result < 0 ? -1 : _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vsprintf_p( - _Out_writes_(_BufferCount) _Always_(_Post_z_) char* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_ char const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vsprintf_p_l(_Buffer, _BufferCount, _Format, NULL, _ArgList); - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vsnprintf_s_l( - _Out_writes_opt_(_BufferCount) _Always_(_Post_z_) char* const _Buffer, - _In_ size_t const _BufferCount, - _In_ size_t const _MaxCount, - _In_z_ _Printf_format_string_params_(2) char const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int const _Result = __stdio_common_vsnprintf_s( - _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, - _Buffer, _BufferCount, _MaxCount, _Format, _Locale, _ArgList); - - return _Result < 0 ? -1 : _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vsnprintf_s( - _Out_writes_opt_(_BufferCount) _Always_(_Post_z_) char* const _Buffer, - _In_ size_t const _BufferCount, - _In_ size_t const _MaxCount, - _In_z_ _Printf_format_string_ char const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vsnprintf_s_l(_Buffer, _BufferCount, _MaxCount, _Format, NULL, _ArgList); - } - #endif - - __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3( - _Success_(return >= 0) - int, _vsnprintf_s, - _Always_(_Post_z_) char, _Buffer, - _In_ size_t, _BufferCount, - _In_z_ _Printf_format_string_ char const*, _Format, - va_list, _ArgList - ) - - #if __STDC_WANT_SECURE_LIB__ - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL vsnprintf_s( - _Out_writes_opt_(_BufferCount) _Always_(_Post_z_) char* const _Buffer, - _In_ size_t const _BufferCount, - _In_ size_t const _MaxCount, - _In_z_ _Printf_format_string_ char const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vsnprintf_s_l(_Buffer, _BufferCount, _MaxCount, _Format, NULL, _ArgList); - } - #endif - - __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3( - _Success_(return >= 0) - int, vsnprintf_s, - _Always_(_Post_z_) char, _Buffer, - _In_ size_t, _BufferCount, - _In_z_ _Printf_format_string_ char const*, _Format, - va_list, _ArgList - ) - - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vscprintf_l( - _In_z_ _Printf_format_string_params_(2) char const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int const _Result = __stdio_common_vsprintf( - _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR, - NULL, 0, _Format, _Locale, _ArgList); - - return _Result < 0 ? -1 : _Result; - } - #endif - - _Check_return_ - _CRT_STDIO_INLINE int __CRTDECL _vscprintf( - _In_z_ _Printf_format_string_ char const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vscprintf_l(_Format, NULL, _ArgList); - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vscprintf_p_l( - _In_z_ _Printf_format_string_params_(2) char const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int const _Result = __stdio_common_vsprintf_p( - _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR, - NULL, 0, _Format, _Locale, _ArgList); - - return _Result < 0 ? -1 : _Result; - } - #endif - - _Check_return_ - _CRT_STDIO_INLINE int __CRTDECL _vscprintf_p( - _In_z_ _Printf_format_string_ char const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vscprintf_p_l(_Format, NULL, _ArgList); - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vsnprintf_c_l( - _Out_writes_opt_(_BufferCount) char* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_params_(2) char const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int const _Result = __stdio_common_vsprintf( - _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, - _Buffer, _BufferCount, _Format, _Locale, _ArgList); - - return _Result < 0 ? -1 : _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vsnprintf_c( - _Out_writes_opt_(_BufferCount) char* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_ char const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vsnprintf_c_l(_Buffer, _BufferCount, _Format, NULL, _ArgList); - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ _CRT_INSECURE_DEPRECATE(_sprintf_s_l) - _CRT_STDIO_INLINE int __CRTDECL _sprintf_l( - _Pre_notnull_ _Always_(_Post_z_) char* const _Buffer, - _In_z_ _Printf_format_string_params_(0) char const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - - _Result = _vsprintf_l(_Buffer, _Format, _Locale, _ArgList); - - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL sprintf( - _Pre_notnull_ _Always_(_Post_z_) char* const _Buffer, - _In_z_ _Printf_format_string_ char const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - - _Result = _vsprintf_l(_Buffer, _Format, NULL, _ArgList); - - __crt_va_end(_ArgList); - return _Result; - } - #endif - - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_ARGLIST( - _Success_(return >= 0) - int, __RETURN_POLICY_SAME, __EMPTY_DECLSPEC, __CRTDECL, sprintf, vsprintf, - _Pre_notnull_ _Always_(_Post_z_), char, _Buffer, - _In_z_ _Printf_format_string_ char const*, _Format - ) - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _sprintf_s_l( - _Out_writes_(_BufferCount) _Always_(_Post_z_) char* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_params_(0) char const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vsprintf_s_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - #if __STDC_WANT_SECURE_LIB__ - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL sprintf_s( - _Out_writes_(_BufferCount) _Always_(_Post_z_) char* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_ char const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vsprintf_s_l(_Buffer, _BufferCount, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - #endif - - __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1_ARGLIST( - _Success_(return >= 0) - int, sprintf_s, vsprintf_s, - _Always_(_Post_z_) char, _Buffer, - _In_z_ _Printf_format_string_ char const*, _Format - ) - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _sprintf_p_l( - _Out_writes_(_BufferCount) _Always_(_Post_z_) char* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_params_(0) char const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vsprintf_p_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _sprintf_p( - _Out_writes_(_BufferCount) _Always_(_Post_z_) char* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_ char const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vsprintf_p_l(_Buffer, _BufferCount, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ _CRT_INSECURE_DEPRECATE(_snprintf_s_l) - _CRT_STDIO_INLINE int __CRTDECL _snprintf_l( - _Out_writes_opt_(_BufferCount) _Post_maybez_ char* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_params_(0) char const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - - _Result = _vsnprintf_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList); - - __crt_va_end(_ArgList); - return _Result; - } - #endif - - #if defined snprintf - // This definition of snprintf will generate "warning C4005: 'snprintf': macro - // redefinition" with a subsequent line indicating where the previous definition - // of snprintf was. This makes it easier to find where snprintf was defined. - #pragma warning(push, 1) - #pragma warning(1: 4005) // macro redefinition - #define snprintf Do not define snprintf as a macro - #pragma warning(pop) - #error Macro definition of snprintf conflicts with Standard Library function declaration - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL snprintf( - _Out_writes_opt_(_BufferCount) _Always_(_Post_z_) char* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_ char const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = vsnprintf(_Buffer, _BufferCount, _Format, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _snprintf( - _Out_writes_opt_(_BufferCount) _Post_maybez_ char* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_ char const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vsnprintf(_Buffer, _BufferCount, _Format, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST_EX( - _Success_(return >= 0) - int, __RETURN_POLICY_SAME, __EMPTY_DECLSPEC, __CRTDECL, _snprintf, _vsnprintf, - _Pre_notnull_ _Post_maybez_ char, - _Out_writes_opt_(_BufferCount) _Post_maybez_, char, _Buffer, - _In_ size_t, _BufferCount, - _In_z_ _Printf_format_string_ char const*, _Format - ) - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _snprintf_c_l( - _Out_writes_opt_(_BufferCount) char* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_params_(0) char const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vsnprintf_c_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _snprintf_c( - _Out_writes_opt_(_BufferCount) char* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Printf_format_string_ char const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vsnprintf_c_l(_Buffer, _BufferCount, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _snprintf_s_l( - _Out_writes_opt_(_BufferCount) _Always_(_Post_z_) char* const _Buffer, - _In_ size_t const _BufferCount, - _In_ size_t const _MaxCount, - _In_z_ _Printf_format_string_params_(0) char const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vsnprintf_s_l(_Buffer, _BufferCount, _MaxCount, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Success_(return >= 0) - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _snprintf_s( - _Out_writes_opt_(_BufferCount) _Always_(_Post_z_) char* const _Buffer, - _In_ size_t const _BufferCount, - _In_ size_t const _MaxCount, - _In_z_ _Printf_format_string_ char const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vsnprintf_s_l(_Buffer, _BufferCount, _MaxCount, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2_ARGLIST( - _Success_(return >= 0) - int, _snprintf_s, _vsnprintf_s, - _Always_(_Post_z_) char, _Buffer, - _In_ size_t, _BufferCount, - _In_z_ _Printf_format_string_ char const*, _Format - ) - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _scprintf_l( - _In_z_ _Printf_format_string_params_(0) char const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vscprintf_l(_Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Check_return_ - _CRT_STDIO_INLINE int __CRTDECL _scprintf( - _In_z_ _Printf_format_string_ char const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vscprintf_l(_Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _scprintf_p_l( - _In_z_ _Printf_format_string_params_(0) char const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vscprintf_p_l(_Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Check_return_ - _CRT_STDIO_INLINE int __CRTDECL _scprintf_p( - _In_z_ _Printf_format_string_ char const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vscprintf_p(_Format, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - // - // Narrow Character Formatted Input Functions (String) - // - //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - _ACRTIMP int __cdecl __stdio_common_vsscanf( - _In_ unsigned __int64 _Options, - _In_reads_(_BufferCount) _Pre_z_ char const* _Buffer, - _In_ size_t _BufferCount, - _In_z_ _Scanf_format_string_params_(2) char const* _Format, - _In_opt_ _locale_t _Locale, - va_list _ArgList - ); - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vsscanf_l( - _In_z_ char const* const _Buffer, - _In_z_ _Printf_format_string_ char const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return __stdio_common_vsscanf( - _CRT_INTERNAL_LOCAL_SCANF_OPTIONS, - _Buffer, (size_t)-1, _Format, _Locale, _ArgList); - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL vsscanf( - _In_z_ char const* const _Buffer, - _In_z_ _Printf_format_string_ char const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vsscanf_l(_Buffer, _Format, NULL, _ArgList); - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _vsscanf_s_l( - _In_z_ char const* const _Buffer, - _In_z_ _Printf_format_string_ char const* const _Format, - _In_opt_ _locale_t const _Locale, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return __stdio_common_vsscanf( - _CRT_INTERNAL_LOCAL_SCANF_OPTIONS | _CRT_INTERNAL_SCANF_SECURECRT, - _Buffer, (size_t)-1, _Format, _Locale, _ArgList); - } - #endif - - #if __STDC_WANT_SECURE_LIB__ - - #pragma warning(push) - #pragma warning(disable: 6530) // Unrecognized SAL format string - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL vsscanf_s( - _In_z_ char const* const _Buffer, - _In_z_ _Printf_format_string_ char const* const _Format, - va_list _ArgList - ) - #if defined _NO_CRT_STDIO_INLINE - ; - #else - { - return _vsscanf_s_l(_Buffer, _Format, NULL, _ArgList); - } - #endif - - __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2( - int, vsscanf_s, - _In_z_ char const, _Buffer, - _In_z_ _Printf_format_string_ char const*, _Format, - va_list, _ArgList - ) - - #pragma warning(pop) - - #endif - - _Check_return_opt_ _CRT_INSECURE_DEPRECATE(_sscanf_s_l) - _CRT_STDIO_INLINE int __CRTDECL _sscanf_l( - _In_z_ char const* const _Buffer, - _In_z_ _Scanf_format_string_params_(0) char const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE // SCANF - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vsscanf_l(_Buffer, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Check_return_ _CRT_INSECURE_DEPRECATE(sscanf_s) - _CRT_STDIO_INLINE int __CRTDECL sscanf( - _In_z_ char const* const _Buffer, - _In_z_ _Scanf_format_string_ char const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE // SCANF - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - _Result = _vsscanf_l(_Buffer, _Format, NULL, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _sscanf_s_l( - _In_z_ char const* const _Buffer, - _In_z_ _Scanf_s_format_string_params_(0) char const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE // SCANF - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - _Result = _vsscanf_s_l(_Buffer, _Format, _Locale, _ArgList); - __crt_va_end(_ArgList); - return _Result; - } - #endif - - #if __STDC_WANT_SECURE_LIB__ - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL sscanf_s( - _In_z_ char const* const _Buffer, - _In_z_ _Scanf_s_format_string_ char const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE // SCANF - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - - _Result = vsscanf_s(_Buffer, _Format, _ArgList); - - __crt_va_end(_ArgList); - return _Result; - } - #endif - - #endif - - #pragma warning(push) - #pragma warning(disable: 6530) // Unrecognized SAL format string - - _Check_return_opt_ _CRT_INSECURE_DEPRECATE(_snscanf_s_l) - _CRT_STDIO_INLINE int __CRTDECL _snscanf_l( - _In_reads_bytes_(_BufferCount) _Pre_z_ char const* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Scanf_format_string_params_(0) char const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE // SCANF - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - - _Result = __stdio_common_vsscanf( - _CRT_INTERNAL_LOCAL_SCANF_OPTIONS, - _Buffer, _BufferCount, _Format, _Locale, _ArgList); - - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Check_return_opt_ _CRT_INSECURE_DEPRECATE(_snscanf_s) - _CRT_STDIO_INLINE int __CRTDECL _snscanf( - _In_reads_bytes_(_BufferCount) _Pre_z_ char const* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Scanf_format_string_ char const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE // SCANF - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - - _Result = __stdio_common_vsscanf( - _CRT_INTERNAL_LOCAL_SCANF_OPTIONS, - _Buffer, _BufferCount, _Format, NULL, _ArgList); - - __crt_va_end(_ArgList); - return _Result; - } - #endif - - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _snscanf_s_l( - _In_reads_bytes_(_BufferCount) _Pre_z_ char const* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Scanf_s_format_string_params_(0) char const* const _Format, - _In_opt_ _locale_t const _Locale, - ...) - #if defined _NO_CRT_STDIO_INLINE // SCANF - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Locale); - - _Result = __stdio_common_vsscanf( - _CRT_INTERNAL_LOCAL_SCANF_OPTIONS | _CRT_INTERNAL_SCANF_SECURECRT, - _Buffer, _BufferCount, _Format, _Locale, _ArgList); - - __crt_va_end(_ArgList); - return _Result; - } - #endif - - _Check_return_opt_ - _CRT_STDIO_INLINE int __CRTDECL _snscanf_s( - _In_reads_bytes_(_BufferCount) _Pre_z_ char const* const _Buffer, - _In_ size_t const _BufferCount, - _In_z_ _Scanf_s_format_string_ char const* const _Format, - ...) - #if defined _NO_CRT_STDIO_INLINE // SCANF - ; - #else - { - int _Result; - va_list _ArgList; - __crt_va_start(_ArgList, _Format); - - _Result = __stdio_common_vsscanf( - _CRT_INTERNAL_LOCAL_SCANF_OPTIONS | _CRT_INTERNAL_SCANF_SECURECRT, - _Buffer, _BufferCount, _Format, NULL, _ArgList); - - __crt_va_end(_ArgList); - return _Result; - } - #endif - - #pragma warning(pop) - - #if defined _M_CEE_MIXED - #pragma managed(pop) - #endif - - - - //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - // - // Non-ANSI Names for Compatibility - // - //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - #if defined(_CRT_INTERNAL_NONSTDC_NAMES) && _CRT_INTERNAL_NONSTDC_NAMES - - #define SYS_OPEN _SYS_OPEN - - #if defined _DEBUG && defined _CRTDBG_MAP_ALLOC - #pragma push_macro("tempnam") - #undef tempnam - #endif - - _CRT_NONSTDC_DEPRECATE(_tempnam) - _ACRTIMP char* __cdecl tempnam( - _In_opt_z_ char const* _Directory, - _In_opt_z_ char const* _FilePrefix - ); - - #if defined _DEBUG && defined _CRTDBG_MAP_ALLOC - #pragma pop_macro("tempnam") - #endif - - _Check_return_opt_ _CRT_NONSTDC_DEPRECATE(_fcloseall) _ACRTIMP int __cdecl fcloseall(void); - _Check_return_ _CRT_NONSTDC_DEPRECATE(_fdopen) _ACRTIMP FILE* __cdecl fdopen(_In_ int _FileHandle, _In_z_ char const* _Format); - _Check_return_opt_ _CRT_NONSTDC_DEPRECATE(_fgetchar) _ACRTIMP int __cdecl fgetchar(void); - _Check_return_ _CRT_NONSTDC_DEPRECATE(_fileno) _ACRTIMP int __cdecl fileno(_In_ FILE* _Stream); - _Check_return_opt_ _CRT_NONSTDC_DEPRECATE(_flushall) _ACRTIMP int __cdecl flushall(void); - _Check_return_opt_ _CRT_NONSTDC_DEPRECATE(_fputchar) _ACRTIMP int __cdecl fputchar(_In_ int _Ch); - _Check_return_ _CRT_NONSTDC_DEPRECATE(_getw) _ACRTIMP int __cdecl getw(_Inout_ FILE* _Stream); - _Check_return_opt_ _CRT_NONSTDC_DEPRECATE(_putw) _ACRTIMP int __cdecl putw(_In_ int _Ch, _Inout_ FILE* _Stream); - _Check_return_ _CRT_NONSTDC_DEPRECATE(_rmtmp) _ACRTIMP int __cdecl rmtmp(void); - - #endif // _CRT_INTERNAL_NONSTDC_NAMES -#endif // _CRT_FUNCTIONS_REQUIRED - - - -_CRT_END_C_HEADER -_UCRT_RESTORE_CLANG_WARNINGS -#pragma warning(pop) // _UCRT_DISABLED_WARNINGS -#endif // _INC_STDIO diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@stdio.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@stdio.h.blob deleted file mode 100644 index e5bcdef7ae79c221939e609a2ed5046630d1c6ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47524 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 diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@stdlib.h b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@stdlib.h deleted file mode 100644 index 5047fe3ff..000000000 --- a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@stdlib.h +++ /dev/null @@ -1,1362 +0,0 @@ -// -// stdlib.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// The C Standard Library header. -// -#pragma once -#ifndef _INC_STDLIB // include guard for 3rd party interop -#define _INC_STDLIB - -#include -#include -#include -#include -#include - -#pragma warning(push) -#pragma warning(disable: _UCRT_DISABLED_WARNINGS) -_UCRT_DISABLE_CLANG_WARNINGS - -_CRT_BEGIN_C_HEADER - - - -#ifndef _countof - #define _countof __crt_countof -#endif - - - -// Minimum and maximum macros -#define __max(a,b) (((a) > (b)) ? (a) : (b)) -#define __min(a,b) (((a) < (b)) ? (a) : (b)) - - - -_ACRTIMP void __cdecl _swab( - _Inout_updates_(_SizeInBytes) _Post_readable_size_(_SizeInBytes) char* _Buf1, - _Inout_updates_(_SizeInBytes) _Post_readable_size_(_SizeInBytes) char* _Buf2, - _In_ int _SizeInBytes - ); - - - -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// -// Exit and Abort -// -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// Argument values for exit() -#define EXIT_SUCCESS 0 -#define EXIT_FAILURE 1 - -#if _CRT_FUNCTIONS_REQUIRED - _ACRTIMP __declspec(noreturn) void __cdecl exit(_In_ int _Code); - _ACRTIMP __declspec(noreturn) void __cdecl _exit(_In_ int _Code); - _ACRTIMP __declspec(noreturn) void __cdecl _Exit(_In_ int _Code); - _ACRTIMP __declspec(noreturn) void __cdecl quick_exit(_In_ int _Code); - _ACRTIMP __declspec(noreturn) void __cdecl abort(void); -#endif // _CRT_FUNCTIONS_REQUIRED - -// Argument values for _set_abort_behavior(). -#define _WRITE_ABORT_MSG 0x1 // debug only, has no effect in release -#define _CALL_REPORTFAULT 0x2 - -_ACRTIMP unsigned int __cdecl _set_abort_behavior( - _In_ unsigned int _Flags, - _In_ unsigned int _Mask - ); - - - -#ifndef _CRT_ONEXIT_T_DEFINED - #define _CRT_ONEXIT_T_DEFINED - - typedef int (__CRTDECL* _onexit_t)(void); - #ifdef _M_CEE - typedef int (__clrcall* _onexit_m_t)(void); - #endif -#endif - -#if defined(_CRT_INTERNAL_NONSTDC_NAMES) && _CRT_INTERNAL_NONSTDC_NAMES - // Non-ANSI name for compatibility - #define onexit_t _onexit_t -#endif - - - -#ifdef _M_CEE - #pragma warning (push) - #pragma warning (disable: 4985) // Attributes not present on previous declaration - - _Check_return_ int __clrcall _atexit_m_appdomain(_In_opt_ void (__clrcall* _Function)(void)); - - _onexit_m_t __clrcall _onexit_m_appdomain(_onexit_m_t _Function); - - #ifdef _M_CEE_MIXED - #ifdef __cplusplus - [System::Security::SecurityCritical] - #endif - _Check_return_ int __clrcall _atexit_m(_In_opt_ void (__clrcall* _Function)(void)); - - _onexit_m_t __clrcall _onexit_m(_onexit_m_t _Function); - #else - #ifdef __cplusplus - [System::Security::SecurityCritical] - #endif - _Check_return_ inline int __clrcall _atexit_m(_In_opt_ void (__clrcall* _Function)(void)) - { - return _atexit_m_appdomain(_Function); - } - - inline _onexit_m_t __clrcall _onexit_m(_onexit_t _Function) - { - return _onexit_m_appdomain(_Function); - } - #endif - #pragma warning (pop) -#endif - - - -#ifdef _M_CEE_PURE - // In pure mode, atexit is the same as atexit_m_appdomain - extern "C++" - { - - #ifdef __cplusplus - [System::Security::SecurityCritical] - #endif - inline int __clrcall atexit(void (__clrcall* _Function)(void)) - { - return _atexit_m_appdomain(_Function); - } - - inline _onexit_t __clrcall _onexit(_onexit_t _Function) - { - return _onexit_m_appdomain(_Function); - } - - } // extern "C++" -#else - int __cdecl atexit(void (__cdecl*)(void)); - _onexit_t __cdecl _onexit(_In_opt_ _onexit_t _Func); -#endif - -int __cdecl at_quick_exit(void (__cdecl*)(void)); - - - -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// -// Global State (errno, global handlers, etc.) -// -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -#ifndef _M_CEE_PURE - // a purecall handler procedure. Never returns normally - typedef void (__cdecl* _purecall_handler)(void); - - // Invalid parameter handler function pointer type - typedef void (__cdecl* _invalid_parameter_handler)( - wchar_t const*, - wchar_t const*, - wchar_t const*, - unsigned int, - uintptr_t - ); - - // Establishes a purecall handler - _VCRTIMP _purecall_handler __cdecl _set_purecall_handler( - _In_opt_ _purecall_handler _Handler - ); - - _VCRTIMP _purecall_handler __cdecl _get_purecall_handler(void); - - // Establishes an invalid parameter handler - _ACRTIMP _invalid_parameter_handler __cdecl _set_invalid_parameter_handler( - _In_opt_ _invalid_parameter_handler _Handler - ); - - _ACRTIMP _invalid_parameter_handler __cdecl _get_invalid_parameter_handler(void); - - _ACRTIMP _invalid_parameter_handler __cdecl _set_thread_local_invalid_parameter_handler( - _In_opt_ _invalid_parameter_handler _Handler - ); - - _ACRTIMP _invalid_parameter_handler __cdecl _get_thread_local_invalid_parameter_handler(void); -#endif - - -#if defined __cplusplus && defined _M_CEE_PURE -extern "C++" -{ - typedef void (__clrcall* _purecall_handler)(void); - typedef _purecall_handler _purecall_handler_m; - - _MRTIMP _purecall_handler __cdecl _set_purecall_handler( - _In_opt_ _purecall_handler _Handler - ); -} // extern "C++" -#endif - - - -// Argument values for _set_error_mode(). -#define _OUT_TO_DEFAULT 0 -#define _OUT_TO_STDERR 1 -#define _OUT_TO_MSGBOX 2 -#define _REPORT_ERRMODE 3 - -_Check_return_opt_ _ACRTIMP int __cdecl _set_error_mode(_In_ int _Mode); - - - -#if _CRT_FUNCTIONS_REQUIRED - _ACRTIMP int* __cdecl _errno(void); - #define errno (*_errno()) - - _ACRTIMP errno_t __cdecl _set_errno(_In_ int _Value); - _ACRTIMP errno_t __cdecl _get_errno(_Out_ int* _Value); - - _ACRTIMP unsigned long* __cdecl __doserrno(void); - #define _doserrno (*__doserrno()) - - _ACRTIMP errno_t __cdecl _set_doserrno(_In_ unsigned long _Value); - _ACRTIMP errno_t __cdecl _get_doserrno(_Out_ unsigned long * _Value); - - // This is non-const for backwards compatibility; do not modify it. - _ACRTIMP _CRT_INSECURE_DEPRECATE(strerror) char** __cdecl __sys_errlist(void); - #define _sys_errlist (__sys_errlist()) - - _ACRTIMP _CRT_INSECURE_DEPRECATE(strerror) int * __cdecl __sys_nerr(void); - #define _sys_nerr (*__sys_nerr()) - - _ACRTIMP void __cdecl perror(_In_opt_z_ char const* _ErrMsg); -#endif // _CRT_FUNCTIONS_REQUIRED - - - -// These point to the executable module name. -_CRT_INSECURE_DEPRECATE_GLOBALS(_get_pgmptr ) _ACRTIMP char** __cdecl __p__pgmptr (void); -_CRT_INSECURE_DEPRECATE_GLOBALS(_get_wpgmptr) _ACRTIMP wchar_t** __cdecl __p__wpgmptr(void); -_CRT_INSECURE_DEPRECATE_GLOBALS(_get_fmode ) _ACRTIMP int* __cdecl __p__fmode (void); - -#ifdef _CRT_DECLARE_GLOBAL_VARIABLES_DIRECTLY - _CRT_INSECURE_DEPRECATE_GLOBALS(_get_pgmptr ) extern char* _pgmptr; - _CRT_INSECURE_DEPRECATE_GLOBALS(_get_wpgmptr) extern wchar_t* _wpgmptr; - #ifndef _CORECRT_BUILD - _CRT_INSECURE_DEPRECATE_GLOBALS(_get_fmode ) extern int _fmode; - #endif -#else - #define _pgmptr (*__p__pgmptr ()) - #define _wpgmptr (*__p__wpgmptr()) - #define _fmode (*__p__fmode ()) -#endif - -_Success_(return == 0) -_ACRTIMP errno_t __cdecl _get_pgmptr (_Outptr_result_z_ char** _Value); - -_Success_(return == 0) -_ACRTIMP errno_t __cdecl _get_wpgmptr(_Outptr_result_z_ wchar_t** _Value); - -_ACRTIMP errno_t __cdecl _set_fmode (_In_ int _Mode ); - -_ACRTIMP errno_t __cdecl _get_fmode (_Out_ int* _PMode); - - - -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// -// Math -// -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -typedef struct _div_t -{ - int quot; - int rem; -} div_t; - -typedef struct _ldiv_t -{ - long quot; - long rem; -} ldiv_t; - -typedef struct _lldiv_t -{ - long long quot; - long long rem; -} lldiv_t; - -_Check_return_ int __cdecl abs (_In_ int _Number); -_Check_return_ long __cdecl labs (_In_ long _Number); -_Check_return_ long long __cdecl llabs (_In_ long long _Number); -_Check_return_ __int64 __cdecl _abs64(_In_ __int64 _Number); - -_Check_return_ unsigned short __cdecl _byteswap_ushort(_In_ unsigned short _Number); -_Check_return_ unsigned long __cdecl _byteswap_ulong (_In_ unsigned long _Number); -_Check_return_ unsigned __int64 __cdecl _byteswap_uint64(_In_ unsigned __int64 _Number); - -_Check_return_ _ACRTIMP div_t __cdecl div (_In_ int _Numerator, _In_ int _Denominator); -_Check_return_ _ACRTIMP ldiv_t __cdecl ldiv (_In_ long _Numerator, _In_ long _Denominator); -_Check_return_ _ACRTIMP lldiv_t __cdecl lldiv(_In_ long long _Numerator, _In_ long long _Denominator); - -// These functions have declspecs in their declarations in the Windows headers, -// which cause PREfast to fire 6540. -#pragma warning(push) -#pragma warning(disable: 6540) - -unsigned int __cdecl _rotl( - _In_ unsigned int _Value, - _In_ int _Shift - ); - -_Check_return_ -unsigned long __cdecl _lrotl( - _In_ unsigned long _Value, - _In_ int _Shift - ); - -unsigned __int64 __cdecl _rotl64( - _In_ unsigned __int64 _Value, - _In_ int _Shift - ); - -unsigned int __cdecl _rotr( - _In_ unsigned int _Value, - _In_ int _Shift - ); - -_Check_return_ -unsigned long __cdecl _lrotr( - _In_ unsigned long _Value, - _In_ int _Shift - ); - -unsigned __int64 __cdecl _rotr64( - _In_ unsigned __int64 _Value, - _In_ int _Shift - ); - -#pragma warning(pop) - - - -// Maximum value that can be returned by the rand function: -#define RAND_MAX 0x7fff - -_ACRTIMP void __cdecl srand(_In_ unsigned int _Seed); - -_Check_return_ _ACRTIMP int __cdecl rand(void); - -#if defined _CRT_RAND_S || defined _CRTBLD - _ACRTIMP errno_t __cdecl rand_s(_Out_ unsigned int* _RandomValue); -#endif - - - -#ifdef __cplusplus -extern "C++" -{ - inline long abs(long const _X) throw() - { - return labs(_X); - } - - inline long long abs(long long const _X) throw() - { - return llabs(_X); - } - - inline ldiv_t div(long const _A1, long const _A2) throw() - { - return ldiv(_A1, _A2); - } - - inline lldiv_t div(long long const _A1, long long const _A2) throw() - { - return lldiv(_A1, _A2); - } -} -#endif // __cplusplus - - - - -// Structs used to fool the compiler into not generating floating point -// instructions when copying and pushing [long] double values -#define _CRT_DOUBLE_DEC - -#ifndef _LDSUPPORT - - #pragma pack(push, 4) - typedef struct - { - unsigned char ld[10]; - } _LDOUBLE; - #pragma pack(pop) - - #define _PTR_LD(x) ((unsigned char*)(&(x)->ld)) - -#else // _LDSUPPORT - - // push and pop long, which is #defined as __int64 by a spec2k test - #pragma push_macro("long") - #undef long - typedef long double _LDOUBLE; - #pragma pop_macro("long") - - #define _PTR_LD(x) ((unsigned char *)(x)) - -#endif // _LDSUPPORT - -typedef struct -{ - double x; -} _CRT_DOUBLE; - -typedef struct -{ - float f; -} _CRT_FLOAT; - -// push and pop long, which is #defined as __int64 by a spec2k test -#pragma push_macro("long") -#undef long - -typedef struct -{ - long double x; -} _LONGDOUBLE; - -#pragma pop_macro("long") - -#pragma pack(push, 4) -typedef struct -{ - unsigned char ld12[12]; -} _LDBL12; -#pragma pack(pop) - - - -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// -// Narrow String to Number Conversions -// -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -_Check_return_ _ACRTIMP double __cdecl atof (_In_z_ char const* _String); -_Check_return_ _CRT_JIT_INTRINSIC _ACRTIMP int __cdecl atoi (_In_z_ char const* _String); -_Check_return_ _ACRTIMP long __cdecl atol (_In_z_ char const* _String); -_Check_return_ _ACRTIMP long long __cdecl atoll (_In_z_ char const* _String); -_Check_return_ _ACRTIMP __int64 __cdecl _atoi64(_In_z_ char const* _String); - -_Check_return_ _ACRTIMP double __cdecl _atof_l (_In_z_ char const* _String, _In_opt_ _locale_t _Locale); -_Check_return_ _ACRTIMP int __cdecl _atoi_l (_In_z_ char const* _String, _In_opt_ _locale_t _Locale); -_Check_return_ _ACRTIMP long __cdecl _atol_l (_In_z_ char const* _String, _In_opt_ _locale_t _Locale); -_Check_return_ _ACRTIMP long long __cdecl _atoll_l (_In_z_ char const* _String, _In_opt_ _locale_t _Locale); -_Check_return_ _ACRTIMP __int64 __cdecl _atoi64_l(_In_z_ char const* _String, _In_opt_ _locale_t _Locale); - -_Check_return_ _ACRTIMP int __cdecl _atoflt (_Out_ _CRT_FLOAT* _Result, _In_z_ char const* _String); -_Check_return_ _ACRTIMP int __cdecl _atodbl (_Out_ _CRT_DOUBLE* _Result, _In_z_ char* _String); -_Check_return_ _ACRTIMP int __cdecl _atoldbl(_Out_ _LDOUBLE* _Result, _In_z_ char* _String); - -_Check_return_ -_ACRTIMP int __cdecl _atoflt_l( - _Out_ _CRT_FLOAT* _Result, - _In_z_ char const* _String, - _In_opt_ _locale_t _Locale - ); - -_Check_return_ -_ACRTIMP int __cdecl _atodbl_l( - _Out_ _CRT_DOUBLE* _Result, - _In_z_ char* _String, - _In_opt_ _locale_t _Locale - ); - - -_Check_return_ -_ACRTIMP int __cdecl _atoldbl_l( - _Out_ _LDOUBLE* _Result, - _In_z_ char* _String, - _In_opt_ _locale_t _Locale - ); - -_Check_return_ -_ACRTIMP float __cdecl strtof( - _In_z_ char const* _String, - _Out_opt_ _Deref_post_z_ char** _EndPtr - ); - -_Check_return_ -_ACRTIMP float __cdecl _strtof_l( - _In_z_ char const* _String, - _Out_opt_ _Deref_post_z_ char** _EndPtr, - _In_opt_ _locale_t _Locale - ); - -_Check_return_ -_ACRTIMP double __cdecl strtod( - _In_z_ char const* _String, - _Out_opt_ _Deref_post_z_ char** _EndPtr - ); - -_Check_return_ -_ACRTIMP double __cdecl _strtod_l( - _In_z_ char const* _String, - _Out_opt_ _Deref_post_z_ char** _EndPtr, - _In_opt_ _locale_t _Locale - ); - -_Check_return_ -_ACRTIMP long double __cdecl strtold( - _In_z_ char const* _String, - _Out_opt_ _Deref_post_z_ char** _EndPtr - ); - -_Check_return_ -_ACRTIMP long double __cdecl _strtold_l( - _In_z_ char const* _String, - _Out_opt_ _Deref_post_z_ char** _EndPtr, - _In_opt_ _locale_t _Locale - ); - -_Check_return_ -_ACRTIMP long __cdecl strtol( - _In_z_ char const* _String, - _Out_opt_ _Deref_post_z_ char** _EndPtr, - _In_ int _Radix - ); - -_Check_return_ -_ACRTIMP long __cdecl _strtol_l( - _In_z_ char const* _String, - _Out_opt_ _Deref_post_z_ char** _EndPtr, - _In_ int _Radix, - _In_opt_ _locale_t _Locale - ); - -_Check_return_ -_ACRTIMP long long __cdecl strtoll( - _In_z_ char const* _String, - _Out_opt_ _Deref_post_z_ char** _EndPtr, - _In_ int _Radix - ); - -_Check_return_ -_ACRTIMP long long __cdecl _strtoll_l( - _In_z_ char const* _String, - _Out_opt_ _Deref_post_z_ char** _EndPtr, - _In_ int _Radix, - _In_opt_ _locale_t _Locale - ); - -_Check_return_ -_ACRTIMP unsigned long __cdecl strtoul( - _In_z_ char const* _String, - _Out_opt_ _Deref_post_z_ char** _EndPtr, - _In_ int _Radix - ); - -_Check_return_ -_ACRTIMP unsigned long __cdecl _strtoul_l( - _In_z_ char const* _String, - _Out_opt_ _Deref_post_z_ char** _EndPtr, - _In_ int _Radix, - _In_opt_ _locale_t _Locale - ); - -_Check_return_ -_ACRTIMP unsigned long long __cdecl strtoull( - _In_z_ char const* _String, - _Out_opt_ _Deref_post_z_ char** _EndPtr, - _In_ int _Radix - ); - -_Check_return_ -_ACRTIMP unsigned long long __cdecl _strtoull_l( - _In_z_ char const* _String, - _Out_opt_ _Deref_post_z_ char** _EndPtr, - _In_ int _Radix, - _In_opt_ _locale_t _Locale - ); - -_Check_return_ -_ACRTIMP __int64 __cdecl _strtoi64( - _In_z_ char const* _String, - _Out_opt_ _Deref_post_z_ char** _EndPtr, - _In_ int _Radix - ); - -_Check_return_ -_ACRTIMP __int64 __cdecl _strtoi64_l( - _In_z_ char const* _String, - _Out_opt_ _Deref_post_z_ char** _EndPtr, - _In_ int _Radix, - _In_opt_ _locale_t _Locale - ); - -_Check_return_ -_ACRTIMP unsigned __int64 __cdecl _strtoui64( - _In_z_ char const* _String, - _Out_opt_ _Deref_post_z_ char** _EndPtr, - _In_ int _Radix - ); - -_Check_return_ -_ACRTIMP unsigned __int64 __cdecl _strtoui64_l( - _In_z_ char const* _String, - _Out_opt_ _Deref_post_z_ char** _EndPtr, - _In_ int _Radix, - _In_opt_ _locale_t _Locale - ); - - - -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// -// Number to Narrow String Conversions -// -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -_Success_(return == 0) -_Check_return_opt_ -_ACRTIMP errno_t __cdecl _itoa_s( - _In_ int _Value, - _Out_writes_z_(_BufferCount) char* _Buffer, - _In_ size_t _BufferCount, - _In_ int _Radix - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1( - _Success_(return == 0) - errno_t, _itoa_s, - _In_ int, _Value, - char, _Buffer, - _In_ int, _Radix - ) - -__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1( - char*, __RETURN_POLICY_DST, _ACRTIMP, _itoa, - _In_ int, _Value, - _Pre_notnull_ _Post_z_, char, _Buffer, - _In_ int, _Radix - ) - -_Success_(return == 0) -_Check_return_opt_ -_ACRTIMP errno_t __cdecl _ltoa_s( - _In_ long _Value, - _Out_writes_z_(_BufferCount) char* _Buffer, - _In_ size_t _BufferCount, - _In_ int _Radix - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1( - errno_t, _ltoa_s, - _In_ long, _Value, - char, _Buffer, - _In_ int, _Radix - ) - -__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1( - char*, __RETURN_POLICY_DST, _ACRTIMP, _ltoa, - _In_ long, _Value, - _Pre_notnull_ _Post_z_, char, _Buffer, - _In_ int, _Radix - ) - -_Success_(return == 0) -_Check_return_opt_ -_ACRTIMP errno_t __cdecl _ultoa_s( - _In_ unsigned long _Value, - _Out_writes_z_(_BufferCount) char* _Buffer, - _In_ size_t _BufferCount, - _In_ int _Radix - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1( - errno_t, _ultoa_s, - _In_ unsigned long, _Value, - char, _Buffer, - _In_ int, _Radix - ) - -__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1( - char*, __RETURN_POLICY_DST, _ACRTIMP, _ultoa, - _In_ unsigned long, _Value, - _Pre_notnull_ _Post_z_, char, _Buffer, - _In_ int, _Radix - ) - -_Success_(return == 0) -_Check_return_opt_ -_ACRTIMP errno_t __cdecl _i64toa_s( - _In_ __int64 _Value, - _Out_writes_z_(_BufferCount) char* _Buffer, - _In_ size_t _BufferCount, - _In_ int _Radix - ); - -_Success_(return == 0) -_CRT_INSECURE_DEPRECATE(_i64toa_s) -_ACRTIMP char* __cdecl _i64toa( - _In_ __int64 _Value, - _Pre_notnull_ _Post_z_ char* _Buffer, - _In_ int _Radix - ); - -_Success_(return == 0) -_Check_return_opt_ -_ACRTIMP errno_t __cdecl _ui64toa_s( - _In_ unsigned __int64 _Value, - _Out_writes_z_(_BufferCount) char* _Buffer, - _In_ size_t _BufferCount, - _In_ int _Radix - ); - -_CRT_INSECURE_DEPRECATE(_ui64toa_s) -_ACRTIMP char* __cdecl _ui64toa( - _In_ unsigned __int64 _Value, - _Pre_notnull_ _Post_z_ char* _Buffer, - _In_ int _Radix - ); - - - -// _CVTBUFSIZE is the maximum size for the per-thread conversion buffer. It -// should be at least as long as the number of digits in the largest double -// precision value (?.?e308 in IEEE arithmetic). We will use the same size -// buffer as is used in the printf support routines. -// -// (This value actually allows 40 additional decimal places; even though there -// are only 16 digits of accuracy in a double precision IEEE number, the user may -// ask for more to effect zero padding.) -#define _CVTBUFSIZE (309 + 40) // # of digits in max. dp value + slop - -_Success_(return == 0) -_Check_return_wat_ -_ACRTIMP errno_t __cdecl _ecvt_s( - _Out_writes_z_(_BufferCount) char* _Buffer, - _In_ size_t _BufferCount, - _In_ double _Value, - _In_ int _DigitCount, - _Out_ int* _PtDec, - _Out_ int* _PtSign - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_4( - errno_t, _ecvt_s, - char, _Buffer, - _In_ double, _Value, - _In_ int, _DigitCount, - _Out_ int*, _PtDec, - _Out_ int*, _PtSign - ) - -_Check_return_ _CRT_INSECURE_DEPRECATE(_ecvt_s) -_ACRTIMP char* __cdecl _ecvt( - _In_ double _Value, - _In_ int _DigitCount, - _Out_ int* _PtDec, - _Out_ int* _PtSign - ); - -_Success_(return == 0) -_Check_return_wat_ -_ACRTIMP errno_t __cdecl _fcvt_s( - _Out_writes_z_(_BufferCount) char* _Buffer, - _In_ size_t _BufferCount, - _In_ double _Value, - _In_ int _FractionalDigitCount, - _Out_ int* _PtDec, - _Out_ int* _PtSign - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_4( - _Success_(return == 0) - errno_t, _fcvt_s, - char, _Buffer, - _In_ double, _Value, - _In_ int, _FractionalDigitCount, - _Out_ int*, _PtDec, - _Out_ int*, _PtSign - ) - -_Success_(return == 0) -_Check_return_ _CRT_INSECURE_DEPRECATE(_fcvt_s) -_ACRTIMP char* __cdecl _fcvt( - _In_ double _Value, - _In_ int _FractionalDigitCount, - _Out_ int* _PtDec, - _Out_ int* _PtSign - ); - -_Success_(return == 0) -_ACRTIMP errno_t __cdecl _gcvt_s( - _Out_writes_z_(_BufferCount) char* _Buffer, - _In_ size_t _BufferCount, - _In_ double _Value, - _In_ int _DigitCount - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2( - _Success_(return == 0) - errno_t, _gcvt_s, - char, _Buffer, - _In_ double, _Value, - _In_ int, _DigitCount - ) - -_CRT_INSECURE_DEPRECATE(_gcvt_s) -_ACRTIMP char* __cdecl _gcvt( - _In_ double _Value, - _In_ int _DigitCount, - _Pre_notnull_ _Post_z_ char* _Buffer - ); - - - -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// -// Multibyte String Operations and Conversions -// -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// Maximum number of bytes in multi-byte character in the current locale -// (also defined in ctype.h). -#ifndef MB_CUR_MAX - #if defined _CRT_DISABLE_PERFCRIT_LOCKS && !defined _DLL - #define MB_CUR_MAX __mb_cur_max - #else - #define MB_CUR_MAX ___mb_cur_max_func() - #endif - - #ifdef _CRT_DECLARE_GLOBAL_VARIABLES_DIRECTLY - extern int __mb_cur_max; - #else - #define __mb_cur_max (___mb_cur_max_func()) - #endif - - _Post_satisfies_(return > 0 && return < MB_LEN_MAX) - _ACRTIMP int __cdecl ___mb_cur_max_func(void); - - _Post_satisfies_(return > 0 && return < MB_LEN_MAX) - _ACRTIMP int __cdecl ___mb_cur_max_l_func(_locale_t _Locale); -#endif - - - -_Check_return_ -_ACRTIMP int __cdecl mblen( - _In_reads_bytes_opt_(_MaxCount) _Pre_opt_z_ char const* _Ch, - _In_ size_t _MaxCount - ); - -_Check_return_ -_ACRTIMP int __cdecl _mblen_l( - _In_reads_bytes_opt_(_MaxCount) _Pre_opt_z_ char const* _Ch, - _In_ size_t _MaxCount, - _In_opt_ _locale_t _Locale - ); - -_Check_return_ -_Post_satisfies_(return <= _String_length_(_String)) -_ACRTIMP size_t __cdecl _mbstrlen( - _In_z_ char const* _String - ); - -_Check_return_ -_Post_satisfies_(return <= _String_length_(_String) || return == (size_t)-1) -_ACRTIMP size_t __cdecl _mbstrlen_l( - _In_z_ char const* _String, - _In_opt_ _locale_t _Locale - ); - -_Check_return_ -_Post_satisfies_((return <= _String_length_(_String) && return <= _MaxCount) || return == (size_t)-1) -_ACRTIMP size_t __cdecl _mbstrnlen( - _In_z_ char const* _String, - _In_ size_t _MaxCount - ); - -_Post_satisfies_((return <= _String_length_(_String) && return <= _MaxCount) || return == (size_t)-1) -_Check_return_ -_ACRTIMP size_t __cdecl _mbstrnlen_l( - _In_z_ char const* _String, - _In_ size_t _MaxCount, - _In_opt_ _locale_t _Locale - ); - -_Success_(return != -1) -_ACRTIMP int __cdecl mbtowc( - _Pre_notnull_ _Post_z_ wchar_t* _DstCh, - _In_reads_or_z_opt_(_SrcSizeInBytes) char const* _SrcCh, - _In_ size_t _SrcSizeInBytes - ); - -_Success_(return != -1) -_ACRTIMP int __cdecl _mbtowc_l( - _Pre_notnull_ _Post_z_ wchar_t* _DstCh, - _In_reads_or_z_opt_(_SrcSizeInBytes) char const* _SrcCh, - _In_ size_t _SrcSizeInBytes, - _In_opt_ _locale_t _Locale - ); - -_Check_return_opt_ -_ACRTIMP errno_t __cdecl mbstowcs_s( - _Out_opt_ size_t* _PtNumOfCharConverted, - _Out_writes_to_opt_(_SizeInWords, *_PtNumOfCharConverted) wchar_t* _DstBuf, - _In_ size_t _SizeInWords, - _In_reads_or_z_(_MaxCount) char const* _SrcBuf, - _In_ size_t _MaxCount - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_2( - errno_t, mbstowcs_s, - _Out_opt_ size_t*, _PtNumOfCharConverted, - _Post_z_ wchar_t, _Dest, - _In_z_ char const*, _Source, - _In_ size_t, _MaxCount - ) - -__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_SIZE( - _ACRTIMP, mbstowcs, - _Out_writes_opt_z_(_MaxCount), wchar_t, _Dest, - _In_z_ char const*, _Source, - _In_ size_t, _MaxCount - ) - -_Check_return_opt_ -_ACRTIMP errno_t __cdecl _mbstowcs_s_l( - _Out_opt_ size_t* _PtNumOfCharConverted, - _Out_writes_to_opt_(_SizeInWords, *_PtNumOfCharConverted) wchar_t* _DstBuf, - _In_ size_t _SizeInWords, - _In_reads_or_z_(_MaxCount) char const* _SrcBuf, - _In_ size_t _MaxCount, - _In_opt_ _locale_t _Locale - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_3( - errno_t, _mbstowcs_s_l, - _Out_opt_ size_t*, _PtNumOfCharConverted, - _Post_z_ wchar_t, _Dest, - _In_z_ char const*, _Source, - _In_ size_t, _MaxCount, - _In_opt_ _locale_t, _Locale - ) - -__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_SIZE_EX( - _ACRTIMP, _mbstowcs_l, _mbstowcs_s_l, - _Out_writes_opt_z_(_Size) wchar_t, - _Out_writes_z_(_MaxCount), wchar_t, _Dest, - _In_z_ char const*, _Source, - _In_ size_t, _MaxCount, - _In_opt_ _locale_t, _Locale - ) - - - - -_CRT_INSECURE_DEPRECATE(wctomb_s) -_ACRTIMP int __cdecl wctomb( - _Out_writes_opt_z_(MB_LEN_MAX) char* _MbCh, - _In_ wchar_t _WCh - ); - -_CRT_INSECURE_DEPRECATE(_wctomb_s_l) -_ACRTIMP int __cdecl _wctomb_l( - _Pre_maybenull_ _Post_z_ char* _MbCh, - _In_ wchar_t _WCh, - _In_opt_ _locale_t _Locale - ); - -#if __STDC_WANT_SECURE_LIB__ - - _Check_return_wat_ - _ACRTIMP errno_t __cdecl wctomb_s( - _Out_opt_ int* _SizeConverted, - _Out_writes_bytes_to_opt_(_SizeInBytes, *_SizeConverted) char* _MbCh, - _In_ rsize_t _SizeInBytes, - _In_ wchar_t _WCh - ); - -#endif // __STDC_WANT_SECURE_LIB__ - -_Check_return_wat_ -_ACRTIMP errno_t __cdecl _wctomb_s_l( - _Out_opt_ int* _SizeConverted, - _Out_writes_opt_z_(_SizeInBytes) char* _MbCh, - _In_ size_t _SizeInBytes, - _In_ wchar_t _WCh, - _In_opt_ _locale_t _Locale); - -_Check_return_wat_ -_ACRTIMP errno_t __cdecl wcstombs_s( - _Out_opt_ size_t* _PtNumOfCharConverted, - _Out_writes_bytes_to_opt_(_DstSizeInBytes, *_PtNumOfCharConverted) char* _Dst, - _In_ size_t _DstSizeInBytes, - _In_z_ wchar_t const* _Src, - _In_ size_t _MaxCountInBytes - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_2( - errno_t, wcstombs_s, - _Out_opt_ size_t*, _PtNumOfCharConverted, - _Out_writes_bytes_opt_(_Size) char, _Dest, - _In_z_ wchar_t const*, _Source, - _In_ size_t, _MaxCount - ) - -__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_SIZE( - _ACRTIMP, wcstombs, - _Out_writes_opt_(_MaxCount), char, _Dest, - _In_z_ wchar_t const*, _Source, - _In_ size_t, _MaxCount - ) - -_Check_return_wat_ -_ACRTIMP errno_t __cdecl _wcstombs_s_l( - _Out_opt_ size_t* _PtNumOfCharConverted, - _Out_writes_bytes_to_opt_(_DstSizeInBytes, *_PtNumOfCharConverted) char* _Dst, - _In_ size_t _DstSizeInBytes, - _In_z_ wchar_t const* _Src, - _In_ size_t _MaxCountInBytes, - _In_opt_ _locale_t _Locale - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_3( - errno_t, _wcstombs_s_l, - _Out_opt_ size_t*, _PtNumOfCharConverted, - _Out_writes_opt_(_Size) char, _Dest, - _In_z_ wchar_t const*, _Source, - _In_ size_t, _MaxCount, - _In_opt_ _locale_t, _Locale - ) - -__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_SIZE_EX( - _ACRTIMP, _wcstombs_l, _wcstombs_s_l, - _Out_writes_opt_z_(_Size) char, - _Out_writes_(_MaxCount), char, _Dest, - _In_z_ wchar_t const*, _Source, - _In_ size_t, _MaxCount, - _In_opt_ _locale_t, _Locale - ) - - - -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// -// Path Manipulation -// -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// Sizes for buffers used by the _makepath() and _splitpath() functions. -// note that the sizes include space for 0-terminator -#define _MAX_PATH 260 // max. length of full pathname -#define _MAX_DRIVE 3 // max. length of drive component -#define _MAX_DIR 256 // max. length of path component -#define _MAX_FNAME 256 // max. length of file name component -#define _MAX_EXT 256 // max. length of extension component - - -#pragma push_macro("_fullpath") -#undef _fullpath - -_Success_(return != 0) -_Check_return_ -_ACRTIMP _CRTALLOCATOR char* __cdecl _fullpath( - _Out_writes_opt_z_(_BufferCount) char* _Buffer, - _In_z_ char const* _Path, - _In_ size_t _BufferCount - ); - -#pragma pop_macro("_fullpath") - -_Check_return_wat_ -_ACRTIMP errno_t __cdecl _makepath_s( - _Out_writes_z_(_BufferCount) char* _Buffer, - _In_ size_t _BufferCount, - _In_opt_z_ char const* _Drive, - _In_opt_z_ char const* _Dir, - _In_opt_z_ char const* _Filename, - _In_opt_z_ char const* _Ext - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_4( - errno_t, _makepath_s, - char, _Buffer, - _In_opt_z_ char const*, _Drive, - _In_opt_z_ char const*, _Dir, - _In_opt_z_ char const*, _Filename, - _In_opt_z_ char const*, _Ext - ) - -__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_4( - void, __RETURN_POLICY_VOID, _ACRTIMP, _makepath, - _Pre_notnull_ _Post_z_, char, _Buffer, - _In_opt_z_ char const*, _Drive, - _In_opt_z_ char const*, _Dir, - _In_opt_z_ char const*, _Filename, - _In_opt_z_ char const*, _Ext - ) - -_CRT_INSECURE_DEPRECATE(_splitpath_s) -_ACRTIMP void __cdecl _splitpath( - _In_z_ char const* _FullPath, - _Pre_maybenull_ _Post_z_ char* _Drive, - _Pre_maybenull_ _Post_z_ char* _Dir, - _Pre_maybenull_ _Post_z_ char* _Filename, - _Pre_maybenull_ _Post_z_ char* _Ext - ); - -_Check_return_wat_ -_ACRTIMP errno_t __cdecl _splitpath_s( - _In_z_ char const* _FullPath, - _Out_writes_opt_z_(_DriveCount) char* _Drive, - _In_ size_t _DriveCount, - _Out_writes_opt_z_(_DirCount) char* _Dir, - _In_ size_t _DirCount, - _Out_writes_opt_z_(_FilenameCount) char* _Filename, - _In_ size_t _FilenameCount, - _Out_writes_opt_z_(_ExtCount) char* _Ext, - _In_ size_t _ExtCount - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_SPLITPATH(errno_t, _splitpath_s, char, _Dest) - -#if __STDC_WANT_SECURE_LIB__ - -_Check_return_opt_ -_Success_(return == 0) -_DCRTIMP errno_t __cdecl getenv_s( - _Out_ size_t* _RequiredCount, - _Out_writes_opt_z_(_BufferCount) char* _Buffer, - _In_ rsize_t _BufferCount, - _In_z_ char const* _VarName - ); - -#endif // __STDC_WANT_SECURE_LIB__ - - - - -_ACRTIMP int* __cdecl __p___argc (void); -_ACRTIMP char*** __cdecl __p___argv (void); -_ACRTIMP wchar_t*** __cdecl __p___wargv(void); - -#ifdef _CRT_DECLARE_GLOBAL_VARIABLES_DIRECTLY - extern int __argc; - extern char** __argv; - extern wchar_t** __wargv; -#else - #define __argc (*__p___argc()) // Pointer to number of command line arguments - #define __argv (*__p___argv()) // Pointer to table of narrow command line arguments - #define __wargv (*__p___wargv()) // Pointer to table of wide command line arguments -#endif - -_DCRTIMP char*** __cdecl __p__environ (void); -_DCRTIMP wchar_t*** __cdecl __p__wenviron(void); - -#ifndef _CRT_BEST_PRACTICES_USAGE - #define _CRT_V12_LEGACY_FUNCTIONALITY -#endif - -#ifndef _CRT_V12_LEGACY_FUNCTIONALITY - // Deprecated symbol: Do not expose environment global pointers unless - // legacy access is specifically requested - #define _environ crt_usage_error__do_not_reference_global_pointer_directly__environ - #define _wenviron crt_usage_error__do_not_reference_global_pointer_directly__wenviron -#else - #define _environ (*__p__environ()) // Pointer to narrow environment table - #define _wenviron (*__p__wenviron()) // Pointer to wide environment table -#endif - - - -// Sizes for buffers used by the getenv/putenv family of functions. -#define _MAX_ENV 32767 - - -#if _CRT_FUNCTIONS_REQUIRED - - _Check_return_ _CRT_INSECURE_DEPRECATE(_dupenv_s) - _DCRTIMP char* __cdecl getenv( - _In_z_ char const* _VarName - ); - - __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1( - errno_t, getenv_s, - _Out_ size_t*, _RequiredCount, - char, _Buffer, - _In_z_ char const*, _VarName - ) - - #if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC) - #pragma push_macro("_dupenv_s") - #undef _dupenv_s - #endif - - _Check_return_opt_ - _DCRTIMP errno_t __cdecl _dupenv_s( - _Outptr_result_buffer_maybenull_(*_BufferCount) _Outptr_result_maybenull_z_ char** _Buffer, - _Out_opt_ size_t* _BufferCount, - _In_z_ char const* _VarName - ); - - #if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC) - #pragma pop_macro("_dupenv_s") - #endif - - _DCRTIMP int __cdecl system( - _In_opt_z_ char const* _Command - ); - - // The functions below have declspecs in their declarations in the Windows - // headers, causing PREfast to fire 6540 here - #pragma warning(push) - #pragma warning(disable: 6540) - - _Check_return_ - _DCRTIMP int __cdecl _putenv( - _In_z_ char const* _EnvString - ); - - _Check_return_wat_ - _DCRTIMP errno_t __cdecl _putenv_s( - _In_z_ char const* _Name, - _In_z_ char const* _Value - ); - - #pragma warning(pop) - - _DCRTIMP errno_t __cdecl _searchenv_s( - _In_z_ char const* _Filename, - _In_z_ char const* _VarName, - _Out_writes_z_(_BufferCount) char* _Buffer, - _In_ size_t _BufferCount - ); - - __DEFINE_CPP_OVERLOAD_SECURE_FUNC_2_0( - errno_t, _searchenv_s, - _In_z_ char const*, _Filename, - _In_z_ char const*, _VarName, - char, _Buffer - ) - - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_2_0( - void, __RETURN_POLICY_VOID, _DCRTIMP, _searchenv, - _In_z_ char const*, _Filename, - _In_z_ char const*, _VarName, - _Pre_notnull_ _Post_z_, char, _Buffer - ) - - // The Win32 API SetErrorMode, Beep and Sleep should be used instead. - _CRT_OBSOLETE(SetErrorMode) - _DCRTIMP void __cdecl _seterrormode( - _In_ int _Mode - ); - - _CRT_OBSOLETE(Beep) - _DCRTIMP void __cdecl _beep( - _In_ unsigned _Frequency, - _In_ unsigned _Duration - ); - - _CRT_OBSOLETE(Sleep) - _DCRTIMP void __cdecl _sleep( - _In_ unsigned long _Duration - ); - -#endif // _CRT_FUNCTIONS_REQUIRED - - -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// -// Non-ANSI Names for Compatibility -// -//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -#if defined(_CRT_INTERNAL_NONSTDC_NAMES) && _CRT_INTERNAL_NONSTDC_NAMES - - #ifndef __cplusplus - #define max(a,b) (((a) > (b)) ? (a) : (b)) - #define min(a,b) (((a) < (b)) ? (a) : (b)) - #endif - - #define sys_errlist _sys_errlist - #define sys_nerr _sys_nerr - - #pragma warning(push) - #pragma warning(disable: 4141) // Using deprecated twice - - _Check_return_ _CRT_NONSTDC_DEPRECATE(_ecvt) _CRT_INSECURE_DEPRECATE(_ecvt_s) - _ACRTIMP char* __cdecl ecvt( - _In_ double _Value, - _In_ int _DigitCount, - _Out_ int* _PtDec, - _Out_ int* _PtSign - ); - - _Check_return_ _CRT_NONSTDC_DEPRECATE(_fcvt) _CRT_INSECURE_DEPRECATE(_fcvt_s) - _ACRTIMP char* __cdecl fcvt( - _In_ double _Value, - _In_ int _FractionalDigitCount, - _Out_ int* _PtDec, - _Out_ int* _PtSign - ); - - _CRT_NONSTDC_DEPRECATE(_gcvt) _CRT_INSECURE_DEPRECATE(_fcvt_s) - _ACRTIMP char* __cdecl gcvt( - _In_ double _Value, - _In_ int _DigitCount, - _Pre_notnull_ _Post_z_ char* _DstBuf - ); - - _CRT_NONSTDC_DEPRECATE(_itoa) _CRT_INSECURE_DEPRECATE(_itoa_s) - _ACRTIMP char* __cdecl itoa( - _In_ int _Value, - _Pre_notnull_ _Post_z_ char* _Buffer, - _In_ int _Radix - ); - - _CRT_NONSTDC_DEPRECATE(_ltoa) _CRT_INSECURE_DEPRECATE(_ltoa_s) - _ACRTIMP char* __cdecl ltoa( - _In_ long _Value, - _Pre_notnull_ _Post_z_ char* _Buffer, - _In_ int _Radix - ); - - - _CRT_NONSTDC_DEPRECATE(_swab) - _ACRTIMP void __cdecl swab( - _Inout_updates_z_(_SizeInBytes) char* _Buf1, - _Inout_updates_z_(_SizeInBytes) char* _Buf2, - _In_ int _SizeInBytes - ); - - _CRT_NONSTDC_DEPRECATE(_ultoa) _CRT_INSECURE_DEPRECATE(_ultoa_s) - _ACRTIMP char* __cdecl ultoa( - _In_ unsigned long _Value, - _Pre_notnull_ _Post_z_ char* _Buffer, - _In_ int _Radix - ); - - #define environ _environ - - _Check_return_ _CRT_NONSTDC_DEPRECATE(_putenv) - _DCRTIMP int __cdecl putenv( - _In_z_ char const* _EnvString - ); - - #pragma warning(pop) - - onexit_t __cdecl onexit(_In_opt_ onexit_t _Func); - -#endif // _CRT_INTERNAL_NONSTDC_NAMES - - - -_CRT_END_C_HEADER -_UCRT_RESTORE_CLANG_WARNINGS -#pragma warning(pop) // _UCRT_DISABLED_WARNINGS -#endif // _INC_STDLIB diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@stdlib.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@stdlib.h.blob deleted file mode 100644 index e1f3923c5cfdd2a48c6fd0704257c0461f643e91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33647 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 S?D%ybc@5db@xT!q&HX>Au$BD) diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@string.h b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@string.h deleted file mode 100644 index f49824527..000000000 --- a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@string.h +++ /dev/null @@ -1,592 +0,0 @@ -// -// string.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// The C Standard Library header. -// -#pragma once -#ifndef _INC_STRING // include guard for 3rd party interop -#define _INC_STRING - -#include -#include -#include -#include - -#ifndef __midl - -#pragma warning(push) -#pragma warning(disable: _UCRT_DISABLED_WARNINGS) -_UCRT_DISABLE_CLANG_WARNINGS - -_CRT_BEGIN_C_HEADER - - - -#define _NLSCMPERROR _CRT_INT_MAX // currently == INT_MAX - -#if __STDC_WANT_SECURE_LIB__ - - _Check_return_wat_ - _ACRTIMP errno_t __cdecl strcpy_s( - _Out_writes_z_(_SizeInBytes) char* _Destination, - _In_ rsize_t _SizeInBytes, - _In_z_ char const* _Source - ); - - _Check_return_wat_ - _ACRTIMP errno_t __cdecl strcat_s( - _Inout_updates_z_(_SizeInBytes) char* _Destination, - _In_ rsize_t _SizeInBytes, - _In_z_ char const* _Source - ); - - _Check_return_wat_ - _ACRTIMP errno_t __cdecl strerror_s( - _Out_writes_z_(_SizeInBytes) char* _Buffer, - _In_ size_t _SizeInBytes, - _In_ int _ErrorNumber); - - _Check_return_wat_ - _ACRTIMP errno_t __cdecl strncat_s( - _Inout_updates_z_(_SizeInBytes) char* _Destination, - _In_ rsize_t _SizeInBytes, - _In_reads_or_z_(_MaxCount) char const* _Source, - _In_ rsize_t _MaxCount - ); - - _Check_return_wat_ - _ACRTIMP errno_t __cdecl strncpy_s( - _Out_writes_z_(_SizeInBytes) char* _Destination, - _In_ rsize_t _SizeInBytes, - _In_reads_or_z_(_MaxCount) char const* _Source, - _In_ rsize_t _MaxCount - ); - - _Check_return_ - _ACRTIMP char* __cdecl strtok_s( - _Inout_opt_z_ char* _String, - _In_z_ char const* _Delimiter, - _Inout_ _Deref_prepost_opt_z_ char** _Context - ); - -#endif // __STDC_WANT_SECURE_LIB__ - -_ACRTIMP void* __cdecl _memccpy( - _Out_writes_bytes_opt_(_MaxCount) void* _Dst, - _In_ void const* _Src, - _In_ int _Val, - _In_ size_t _MaxCount - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1( - errno_t, strcat_s, - char, _Destination, - _In_z_ char const*, _Source - ) - -#ifndef RC_INVOKED - - __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1( - char*, __RETURN_POLICY_DST, __EMPTY_DECLSPEC, strcat, - _Inout_updates_z_(_String_length_(_Destination) + _String_length_(_Source) + 1), char, _Destination, - _In_z_ char const*, _Source - ) - -#endif // RC_INVOKED - -_Check_return_ -int __cdecl strcmp( - _In_z_ char const* _Str1, - _In_z_ char const* _Str2 - ); - -_Check_return_ -_ACRTIMP int __cdecl _strcmpi( - _In_z_ char const* _String1, - _In_z_ char const* _String2 - ); - -_Check_return_ -_ACRTIMP int __cdecl strcoll( - _In_z_ char const* _String1, - _In_z_ char const* _String2 - ); - -_Check_return_ -_ACRTIMP int __cdecl _strcoll_l( - _In_z_ char const* _String1, - _In_z_ char const* _String2, - _In_opt_ _locale_t _Locale - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1( - errno_t, strcpy_s, - _Post_z_ char, _Destination, - _In_z_ char const*, _Source - ) - -__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1( - char*, __RETURN_POLICY_DST, __EMPTY_DECLSPEC, strcpy, - _Out_writes_z_(_String_length_(_Source) + 1), char, _Destination, - _In_z_ char const*, _Source - ) - -_Check_return_ -_ACRTIMP size_t __cdecl strcspn( - _In_z_ char const* _Str, - _In_z_ char const* _Control - ); - -#if defined _DEBUG && defined _CRTDBG_MAP_ALLOC - #pragma push_macro("_strdup") - #undef _strdup -#endif - -_Check_return_ -_ACRTIMP _CRTALLOCATOR char* __cdecl _strdup( - _In_opt_z_ char const* _Source - ); - -#if defined _DEBUG && defined _CRTDBG_MAP_ALLOC - #pragma pop_macro("_strdup") -#endif - -_Ret_z_ -_Success_(return != 0) -_Check_return_ _CRT_INSECURE_DEPRECATE(_strerror_s) -_ACRTIMP char* __cdecl _strerror( - _In_opt_z_ char const* _ErrorMessage - ); - -_Check_return_wat_ -_ACRTIMP errno_t __cdecl _strerror_s( - _Out_writes_z_(_SizeInBytes) char* _Buffer, - _In_ size_t _SizeInBytes, - _In_opt_z_ char const* _ErrorMessage - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1( - errno_t, _strerror_s, - char, _Buffer, - _In_opt_z_ char const*, _ErrorMessage - ) - -_Ret_z_ -_Check_return_ _CRT_INSECURE_DEPRECATE(strerror_s) -_ACRTIMP char* __cdecl strerror( - _In_ int _ErrorMessage - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1( - errno_t, strerror_s, - char, _Buffer, - _In_ int, _ErrorMessage - ) - -_Check_return_ -_ACRTIMP int __cdecl _stricmp( - _In_z_ char const* _String1, - _In_z_ char const* _String2 - ); - -_Check_return_ -_ACRTIMP int __cdecl _stricoll( - _In_z_ char const* _String1, - _In_z_ char const* _String2 - ); - -_Check_return_ -_ACRTIMP int __cdecl _stricoll_l( - _In_z_ char const* _String1, - _In_z_ char const* _String2, - _In_opt_ _locale_t _Locale - ); - -_Check_return_ -_ACRTIMP int __cdecl _stricmp_l( - _In_z_ char const* _String1, - _In_z_ char const* _String2, - _In_opt_ _locale_t _Locale - ); - -_Check_return_ -size_t __cdecl strlen( - _In_z_ char const* _Str - ); - -_Check_return_wat_ -_ACRTIMP errno_t __cdecl _strlwr_s( - _Inout_updates_z_(_Size) char* _String, - _In_ size_t _Size - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0( - errno_t, _strlwr_s, - _Prepost_z_ char, _String - ) - -__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0( - char*, __RETURN_POLICY_DST, _ACRTIMP, _strlwr, - _Inout_z_, char, _String - ) - -_Check_return_wat_ -_ACRTIMP errno_t __cdecl _strlwr_s_l( - _Inout_updates_z_(_Size) char* _String, - _In_ size_t _Size, - _In_opt_ _locale_t _Locale - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1( - errno_t, _strlwr_s_l, - _Prepost_z_ char, _String, - _In_opt_ _locale_t, _Locale - ) - -__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX( - char*, __RETURN_POLICY_DST, _ACRTIMP, _strlwr_l, _strlwr_s_l, - _Inout_updates_z_(_Size) char, - _Inout_z_, char, _String, - _In_opt_ _locale_t, _Locale - ) - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2( - errno_t, strncat_s, - _Prepost_z_ char, _Destination, - _In_reads_or_z_(_Count) char const*, _Source, - _In_ size_t, _Count - ) - -__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX( - char*, __RETURN_POLICY_DST, _ACRTIMP, strncat, strncat_s, - _Inout_updates_z_(_Size) char, - _Inout_updates_z_(_Count), char, _Destination, - _In_reads_or_z_(_Count) char const*, _Source, - _In_ size_t, _Count - ) - -_Check_return_ -_ACRTIMP int __cdecl strncmp( - _In_reads_or_z_(_MaxCount) char const* _Str1, - _In_reads_or_z_(_MaxCount) char const* _Str2, - _In_ size_t _MaxCount - ); - -_Check_return_ -_ACRTIMP int __cdecl _strnicmp( - _In_reads_or_z_(_MaxCount) char const* _String1, - _In_reads_or_z_(_MaxCount) char const* _String2, - _In_ size_t _MaxCount - ); - -_Check_return_ -_ACRTIMP int __cdecl _strnicmp_l( - _In_reads_or_z_(_MaxCount) char const* _String1, - _In_reads_or_z_(_MaxCount) char const* _String2, - _In_ size_t _MaxCount, - _In_opt_ _locale_t _Locale - ); - -_Check_return_ -_ACRTIMP int __cdecl _strnicoll( - _In_reads_or_z_(_MaxCount) char const* _String1, - _In_reads_or_z_(_MaxCount) char const* _String2, - _In_ size_t _MaxCount - ); - -_Check_return_ -_ACRTIMP int __cdecl _strnicoll_l( - _In_reads_or_z_(_MaxCount) char const* _String1, - _In_reads_or_z_(_MaxCount) char const* _String2, - _In_ size_t _MaxCount, - _In_opt_ _locale_t _Locale - ); - -_Check_return_ -_ACRTIMP int __cdecl _strncoll( - _In_reads_or_z_(_MaxCount) char const* _String1, - _In_reads_or_z_(_MaxCount) char const* _String2, - _In_ size_t _MaxCount - ); - -_Check_return_ -_ACRTIMP int __cdecl _strncoll_l( - _In_reads_or_z_(_MaxCount) char const* _String1, - _In_reads_or_z_(_MaxCount) char const* _String2, - _In_ size_t _MaxCount, - _In_opt_ _locale_t _Locale - ); - -_ACRTIMP size_t __cdecl __strncnt( - _In_reads_or_z_(_Count) char const* _String, - _In_ size_t _Count - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2( - errno_t, strncpy_s, - char, _Destination, - _In_reads_or_z_(_Count) char const*, _Source, - _In_ size_t, _Count - ) - -__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX( - char*, __RETURN_POLICY_DST, _ACRTIMP, strncpy, strncpy_s, - _Out_writes_z_(_Size) char, - _Out_writes_(_Count) _Post_maybez_, char, _Destination, - _In_reads_or_z_(_Count) char const*, _Source, - _In_ size_t, _Count - ) - -_Check_return_ -_When_( - _MaxCount > _String_length_(_String), - _Post_satisfies_(return == _String_length_(_String)) -) -_When_( - _MaxCount <= _String_length_(_String), - _Post_satisfies_(return == _MaxCount) -) -_ACRTIMP size_t __cdecl strnlen( - _In_reads_or_z_(_MaxCount) char const* _String, - _In_ size_t _MaxCount - ); - -#if __STDC_WANT_SECURE_LIB__ && !defined __midl - - _Check_return_ - _When_( - _MaxCount > _String_length_(_String), - _Post_satisfies_(return == _String_length_(_String)) - ) - _When_( - _MaxCount <= _String_length_(_String), - _Post_satisfies_(return == _MaxCount) - ) - _CRT_NONSTANDARD_STATIC __inline size_t __CRTDECL strnlen_s( - _In_reads_or_z_(_MaxCount) char const* _String, - _In_ size_t _MaxCount - ) - { - return _String == 0 ? 0 : strnlen(_String, _MaxCount); - } - -#endif - -_Check_return_wat_ -_ACRTIMP errno_t __cdecl _strnset_s( - _Inout_updates_z_(_SizeInBytes) char* _String, - _In_ size_t _SizeInBytes, - _In_ int _Value, - _In_ size_t _MaxCount - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2( - errno_t, _strnset_s, - _Prepost_z_ char, _Destination, - _In_ int, _Value, - _In_ size_t, _Count - ) - -__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX( - char*, __RETURN_POLICY_DST, _ACRTIMP, _strnset, _strnset_s, - _Inout_updates_z_(_Size) char, - _Inout_updates_z_(_Count), char, _Destination, - _In_ int, _Value, - _In_ size_t, _Count - ) - -_Check_return_ -_ACRTIMP char _CONST_RETURN* __cdecl strpbrk( - _In_z_ char const* _Str, - _In_z_ char const* _Control - ); - -_ACRTIMP char* __cdecl _strrev( - _Inout_z_ char* _Str - ); - -_Check_return_wat_ -_ACRTIMP errno_t __cdecl _strset_s( - _Inout_updates_z_(_DestinationSize) char* _Destination, - _In_ size_t _DestinationSize, - _In_ int _Value - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1( - errno_t, _strset_s, - _Prepost_z_ char, _Destination, - _In_ int, _Value - ) - -__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1( - char*, __RETURN_POLICY_DST, __EMPTY_DECLSPEC, _strset, - _Inout_z_, char, _Destination, - _In_ int, _Value - ) - -_Check_return_ -_ACRTIMP size_t __cdecl strspn( - _In_z_ char const* _Str, - _In_z_ char const* _Control - ); - -_Check_return_ _CRT_INSECURE_DEPRECATE(strtok_s) -_ACRTIMP char* __cdecl strtok( - _Inout_opt_z_ char* _String, - _In_z_ char const* _Delimiter - ); - -_Check_return_wat_ -_ACRTIMP errno_t __cdecl _strupr_s( - _Inout_updates_z_(_Size) char* _String, - _In_ size_t _Size - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0( - errno_t, _strupr_s, - _Prepost_z_ char, _String - ) - -__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0( - char*, __RETURN_POLICY_DST, _ACRTIMP, _strupr, - _Inout_z_, char, _String - ) - -_Check_return_wat_ -_ACRTIMP errno_t __cdecl _strupr_s_l( - _Inout_updates_z_(_Size) char* _String, - _In_ size_t _Size, - _In_opt_ _locale_t _Locale - ); - -__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1( - errno_t, _strupr_s_l, - _Prepost_z_ char, _String, - _In_opt_ _locale_t, _Locale - ) - -__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX( - char*, __RETURN_POLICY_DST, _ACRTIMP, _strupr_l, _strupr_s_l, - _Inout_updates_z_(_Size) char, - _Inout_z_, char, _String, - _In_opt_ _locale_t, _Locale - ) - -_Success_(return < _MaxCount) -_Check_return_opt_ -_ACRTIMP size_t __cdecl strxfrm( - _Out_writes_opt_(_MaxCount) _Post_maybez_ char* _Destination, - _In_z_ char const* _Source, - _In_ _In_range_(<=,_CRT_INT_MAX) size_t _MaxCount - ); - -_Success_(return < _MaxCount) -_Check_return_opt_ -_ACRTIMP size_t __cdecl _strxfrm_l( - _Out_writes_opt_(_MaxCount) _Post_maybez_ char* _Destination, - _In_z_ char const* _Source, - _In_ _In_range_(<=,_CRT_INT_MAX) size_t _MaxCount, - _In_opt_ _locale_t _Locale - ); - - - -#ifdef __cplusplus -extern "C++" -{ - _Check_return_ - inline char* __CRTDECL strchr(_In_z_ char* const _String, _In_ int const _Ch) - { - return const_cast(strchr(static_cast(_String), _Ch)); - } - - _Check_return_ - inline char* __CRTDECL strpbrk(_In_z_ char* const _String, _In_z_ char const* const _Control) - { - return const_cast(strpbrk(static_cast(_String), _Control)); - } - - _Check_return_ - inline char* __CRTDECL strrchr(_In_z_ char* const _String, _In_ int const _Ch) - { - return const_cast(strrchr(static_cast(_String), _Ch)); - } - - _Check_return_ _Ret_maybenull_ - inline char* __CRTDECL strstr(_In_z_ char* const _String, _In_z_ char const* const _SubString) - { - return const_cast(strstr(static_cast(_String), _SubString)); - } -} -#endif // __cplusplus - - - -#if defined(_CRT_INTERNAL_NONSTDC_NAMES) && _CRT_INTERNAL_NONSTDC_NAMES - - #pragma push_macro("strdup") - #undef strdup - _Check_return_ _CRT_NONSTDC_DEPRECATE(_strdup) - _ACRTIMP char* __cdecl strdup( - _In_opt_z_ char const* _String - ); - #pragma pop_macro("strdup") - - // Declarations of functions defined in oldnames.lib: - _Check_return_ _CRT_NONSTDC_DEPRECATE(_strcmpi) - _ACRTIMP int __cdecl strcmpi( - _In_z_ char const* _String1, - _In_z_ char const* _String2 - ); - - _Check_return_ _CRT_NONSTDC_DEPRECATE(_stricmp) - _ACRTIMP int __cdecl stricmp( - _In_z_ char const* _String1, - _In_z_ char const* _String2 - ); - - _CRT_NONSTDC_DEPRECATE(_strlwr) - _ACRTIMP char* __cdecl strlwr( - _Inout_z_ char* _String - ); - - _Check_return_ _CRT_NONSTDC_DEPRECATE(_strnicmp) - _ACRTIMP int __cdecl strnicmp( - _In_reads_or_z_(_MaxCount) char const* _String1, - _In_reads_or_z_(_MaxCount) char const* _String2, - _In_ size_t _MaxCount - ); - - _CRT_NONSTDC_DEPRECATE(_strnset) - _ACRTIMP char* __cdecl strnset( - _Inout_updates_z_(_MaxCount) char* _String, - _In_ int _Value, - _In_ size_t _MaxCount - ); - - _CRT_NONSTDC_DEPRECATE(_strrev) - _ACRTIMP char* __cdecl strrev( - _Inout_z_ char* _String - ); - - _CRT_NONSTDC_DEPRECATE(_strset) - char* __cdecl strset( - _Inout_z_ char* _String, - _In_ int _Value); - - _CRT_NONSTDC_DEPRECATE(_strupr) - _ACRTIMP char* __cdecl strupr( - _Inout_z_ char* _String - ); - -#endif // _CRT_INTERNAL_NONSTDC_NAMES - - - -_CRT_END_C_HEADER -_UCRT_RESTORE_CLANG_WARNINGS -#pragma warning(pop) // _UCRT_DISABLED_WARNINGS -#endif // !__midl -#endif // _INC_STRING diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@string.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@string.h.blob deleted file mode 100644 index 4a7d36f71a136c49ff1e1146ef00af5ac902910a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13895 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 G=>GwnEJ2L` diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@sys@types.h b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@sys@types.h deleted file mode 100644 index 752f0d927..000000000 --- a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@sys@types.h +++ /dev/null @@ -1,51 +0,0 @@ -// -// sys/types.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// Types used for returning file status and time information. -// -#pragma once - -#include - -#pragma warning(push) -#pragma warning(disable: _UCRT_DISABLED_WARNINGS) -_UCRT_DISABLE_CLANG_WARNINGS - -#ifndef _INO_T_DEFINED - #define _INO_T_DEFINED - - typedef unsigned short _ino_t; // inode number (unused on Windows) - - #if (defined _CRT_DECLARE_NONSTDC_NAMES && _CRT_DECLARE_NONSTDC_NAMES) || (!defined _CRT_DECLARE_NONSTDC_NAMES && !__STDC__) - typedef _ino_t ino_t; - #endif -#endif - - - -#ifndef _DEV_T_DEFINED - #define _DEV_T_DEFINED - - typedef unsigned int _dev_t; // device code - - #if (defined _CRT_DECLARE_NONSTDC_NAMES && _CRT_DECLARE_NONSTDC_NAMES) || (!defined _CRT_DECLARE_NONSTDC_NAMES && !__STDC__) - typedef _dev_t dev_t; - #endif -#endif - - - -#ifndef _OFF_T_DEFINED - #define _OFF_T_DEFINED - - typedef long _off_t; // file offset value - - #if (defined _CRT_DECLARE_NONSTDC_NAMES && _CRT_DECLARE_NONSTDC_NAMES) || (!defined _CRT_DECLARE_NONSTDC_NAMES && !__STDC__) - typedef _off_t off_t; - #endif -#endif - -_UCRT_RESTORE_CLANG_WARNINGS -#pragma warning(pop) // _UCRT_DISABLED_WARNINGS diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@sys@types.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@home@anon@msvc@Windows Kits@10@Include@10.0.26100.0@ucrt@sys@types.h.blob deleted file mode 100644 index ff9807a7a2ab9fdc6be7eb90c995ca073e34e756..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3737 zcmcIn%WfMt6s5Z8Dk*}jyznA`(ZVP?q9m(|HwNO2BtwlgG9)`Hx?w2}CDGvw1#cA!(YTn*u>MU36O%=qB#v=wVr~Wywls!FiB8m-pUt4>=#AH$UW` zyhI4$whB0=p$c(cv2MV_$Y59b90wxgOw(q>RA`js2A3yalCBgm5XJ=oOgxjKfthAI znIuD7xN9_Sh!8VL!^l)z#{x-To`sn>trYtP{Gth@-vW?z+ zS@K@apxWS1$o=4n09i?=@R*43m`o)zxpWHdxXW~eO{Bpmi({2(24}sXopmE2r>nEl z6pNLWCY(u6stprjA|D7!dX&J;PB?v-m|ez-?l1+p(GlqbE?B(6uNd&Di;tC(psh7{ zOlOnXY;x!0OzPouWj&_5P{jeCLM(Q|=S|XQZK_E$_2T9kMx61LCUhe0i)M3~IX#e! zrnz}BQUt(~>9~uH>6W24oNCryGHm1AGu0Vhw}P8Y zfLmmoN~zeAA+UN7c4bV=IXBi**3p4)qWg3OczfZ7o`;DLd)i4;pU>eke|hM zIZZwxt+2~1YZe(^Ic?K?t?t2O3xG}PQeiHRo(+0H2ZTz|3TK3RW&0PxyhH@8Rn=@7 z9;x_LFvqzicRe^$u&&lTWW!}e6%4;sQH68WBxQ;FGv|@pi7G(B_3rtP&%Zf3|9R_o z`!=}}X_Vf5lsNz5#r?nD`{Vml_=9;$j-f4gC$YV;4H&i^ pV|?ZQ^!%59Uh#>K_MW(l?pi6OCm-_Bx?tK0z@gH;w7Z?Bl diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg___gnuc_va_list.h b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg___gnuc_va_list.h deleted file mode 100644 index 2a0a7e8cc..000000000 --- a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg___gnuc_va_list.h +++ /dev/null @@ -1,13 +0,0 @@ -/*===---- __stdarg___gnuc_va_list.h - Definition of __gnuc_va_list ---------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __GNUC_VA_LIST -#define __GNUC_VA_LIST -typedef __builtin_va_list __gnuc_va_list; -#endif diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg___gnuc_va_list.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg___gnuc_va_list.h.blob deleted file mode 100644 index 1cb1bec34563f5c4fb643d18e288c2a50438d58e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3466 zcmcIn%Z}SN6y$A@YAw1Cu$5d&Bo0_EwSI%Nz zM;s?Yab{@jm{wLxZgIC76<(y^~;W@&82!wm1DqJFj`vboQ7;w~#xw~Ba)*y|#H)Y;@ z8Mv3&83Tn$t|ysNCq_aFmo1n0!f|BF_yg(Shg#keLTKir4kzb2PcwWM}5(#q<#w&XC0aQhMR3Q(-@;3c>o(}Wo+I)nl zJ@A(^r%iTw41PzckP-Un7?GWge+T>!S0?Dor*`mpLu;P=65KD}3ZRu*6|aB@kCkfW zyiu#d9jDAVY@LCaay|bv-)`zTEopbD6LRfcPE7?_<XmxEa`EeV_4V4b88az#al+Rsb_Wsh zn9SLP8sgSb?3b|Ojvpm3btV#Ve2B~pC?mG}osl8|l&tqX45lNIRHoi?YS`q!w5@8- z^fY_QgZ;I#w18Rx;3spw1lm(ZR@2~shAG2Lc*3R`DH6BUI^UQ$!0i9ii>pRBjVQP= zN*_^GlK1qZx;|N&H47}q97!lMg{jlHU^fLEUU8Uk*kx1xjHOPfl$srw&74|PDhrHn zW#lxHUY;Gx5wg2Hxf5S4&u+0*e@kH>XmN{S_V@P#lRZnLtS7EW4a z$>7fko!$S9{6ByA>;7LtZh~8%yuTuyb~u1fKfVIn@VE4G`^(vj?_d1#U2#SCXRz}> DRrt!x diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg___va_copy.h b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg___va_copy.h deleted file mode 100644 index e433e18a7..000000000 --- a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg___va_copy.h +++ /dev/null @@ -1,12 +0,0 @@ -/*===---- __stdarg___va_copy.h - Definition of __va_copy -------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __va_copy -#define __va_copy(d, s) __builtin_va_copy(d, s) -#endif diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg___va_copy.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg___va_copy.h.blob deleted file mode 100644 index 66446fa9e137d96ebc536524a943cd0ccea9b9d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3499 zcmb_fO>)~d6o$LZs?%L|o@O%BW=cVFRHYj)97^_RVo@2%jyhcwg+NF`0shKDN>bt4jXqw{XB(~d4kfAGH7j;_x8 z#sB?Qc-?EkHZnNtMX)9Rr`dXYec`v{H>A^wuKT1FoxQzmHU0ACS?{7n2HoCeGv7aG zN6qe_->9RYU8W8t&GA5}SkG;vj@#pLhJ|7>jd@wGe-8Bm_n}RBtJ)=<4z!UmUNq_x zPGfE?3P!P@W2LPV%mxhFX-=t})660~NBA#+aCcaRON?;uDy#tq95rL^P8WYPNTVK1 zSukG$4-z|L;4txik|}j!D5P-Na)~b-S5^QCeM~NC#^b>8Wa{Y_OsTO#jUlE`HnT=+ zx5??;GakG~7|4ZzK=@pT9r}r%i+hY-61ox#vnR_ddiW8X#XFp#0DuLX89mjM1#@ja z0rCKH=FDl6ogTvBVJc*dULInyb^LEqCuC)UzWm#cZa2L81{4H8ekVX&YE}G=jBs12 zR!$nVD*WP<8HcSifXVy$zxnPq7ZNWnxsc$KS}_}#5bI)~6Cq@*QbuN!NMW5f^uo4> zAy|O@%3v*n2WHGPl;1cqhlC*2Rq78MehBfE))GXt54W{?rCzVR{{5u-W(8@+ObWxA z@RbWMqmQEp!6kDxp@!@W+gn(1!w)i;Iunc0Xv5|KvTy3OM{|o(Sxya`?1m{t0)#2w zB5sV*yTi>u*hY_r+ucA*^8wgS+$C+xV=8Ky@Pth>lBbTx z=K`^t+ROJ0NhmXU@Ae;Srl;Aez}o|P1^I5EHRuE7V7m(JKP&Jq!!DchCv0p&rPOTq z9OT;SwL+ybXY~H1zo)?uYPfrV)&uw?OkN>9Jdr|*;VpA-7Phm=*DRq6LZuk1#|3kD zA=bjTT})P;(xZ{(PLEc!KNvC`@>yyOS1j9C#{lkk;*}E#@R@%_6gsiSQO@rT;LEcu zcRblpT{v(R1cT2gbaeOXzvrKW=Xd`Qe;Dx^1gk&206_57bi7*pCI0Q${tD0j0Oo`$ WHZRw~&$Az&{rrQ!{*CUAz{OYhE!l$r diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg_header_macro.h b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg_header_macro.h deleted file mode 100644 index beb92ee02..000000000 --- a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg_header_macro.h +++ /dev/null @@ -1,12 +0,0 @@ -/*===---- __stdarg_header_macro.h ------------------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __STDARG_H -#define __STDARG_H -#endif diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg_header_macro.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg_header_macro.h.blob deleted file mode 100644 index fa5d5c87c8657ccba7f178a365e53076795f663c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3460 zcmcIn-EP}96lQi+^lBG-fB;=FV1P_J@!Z|yB9)!YXe<|&QxCf#Xo|AgQlvprwv{K? zOYAXrQ|vAJKJAWV%W;Fnmh0?BKh*g@-}y-Wj6T1Ab@B-zgr_>;m@2JsTeCFb%318| zh~q>k&J2wm)5>beE$)>oHD3x41i2&u#XBj+m>G6{R%7S|POZUXp)iwFO*|%%=S4=$ zx$zRPdjShrX{jd~dF>m&L;OKM4E=uZExg0akOcjJ`2FCjKj?LXYZ8v$4!XhcDlET; z9shRF0WmVV90VXzd}()H-(Ke;#RKVeg4>XEg3H%8op!!_b2+%~kWqhd(=Oyk-Jsnc zg{>y?y2n)ENOe3CD$)zvYU1u>l3}5kOe21*)!)Z@i9={o(Wvf`Mn~Gn2rpaBDW?%P z7I|?b=tODj1hXE4cA5(+7c{d7FA)AiAlx6<;SwP{82SysfTL!@-No|P7HKuT8S@sa z#J$AM85m4*JIRbXF&0v|Y_-Ifjw>qwg1JvFX~rYZ@nj~cU3VD#0w;j*ZOqjRO<^yEy zLA;zfZL*6)@Hb3o1)Kuc7sn_R`cSQ;68mLfL0oHyapmX*6Ovh zR-+DgoHFCEbp~?E?flbzvu)?NqTQuV$W3%PH5Fu)QxiUGl+%U@u`U9Dk~t-C%N25h z{PuL1hTa%Q7GM`V{zqO#ect(asI>%c4dJoTtTmgp^Iy*DuQrj*nMq-a6TUIAJBf(L zWWlD?5Vy%K~lgv~Ni6z;+3d}HANv;WU5t_R^bqTt3T zeLz=9KGVDUTD|1EXZZj-nZ+)f@h9wALZ#HKVp(#IP^m1y`hez+W82jsu-pqC9f5*v z^B`8o36fA|ik23^>{eS3sucE~-yTrK{z1K`q}{W+*%kDS>I zl-mMqTwe|A?&{@5Pw0|RDJE)*ybtz&Pu3MGn0wW6Y`N3LN#OzJD(-}E&S0rAT(PVw z(SqYAC0aOZl`VsRCv@`Vua7^SvcKgsLc(DielW;yu>8Xd@C*M+r`xM1&%b~E<9Eds JeK`TCe*q7o$MXOH diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg_va_arg.h b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg_va_arg.h deleted file mode 100644 index ebdb6f9d4..000000000 --- a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg_va_arg.h +++ /dev/null @@ -1,22 +0,0 @@ -/*===---- __stdarg_va_arg.h - Definitions of va_start, va_arg, va_end-------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef va_arg - -#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L -/* C23 uses a special builtin. */ -#define va_start(...) __builtin_c23_va_start(__VA_ARGS__) -#else -/* Versions before C23 do require the second parameter. */ -#define va_start(ap, param) __builtin_va_start(ap, param) -#endif -#define va_end(ap) __builtin_va_end(ap) -#define va_arg(ap, type) __builtin_va_arg(ap, type) - -#endif diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg_va_arg.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg_va_arg.h.blob deleted file mode 100644 index 09c67ceda2493b750c1186d92f181a77c212cf40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3701 zcmcInPj4eN6n7RlKoN?z2QC}}D-a+i?w^q5QbC)fRkZD-N?L;UVjPc?de>t|wx{Xz z6L8|di7O{Q1bhgj6`uyF<$3a_Y1pR8rsOc0@x1qY_Itngv*$~6_2Oyn6+#G~>6l}x zw8B-*l9(%JaYaWQ$3k&tXxA~Vtd`v3qwz?wA_W+NT^xhsr4${^4BOr+GV}x|*5Hm% zm`SR70h1^QA|uYZ31YzAfdQS3iuD$Pc#RcRa@!!tabkgySwN+aBFG>_`x z0co|5oAvNyzcqf}s#Q*#H83OX-DU_T*_&!@@ASZ%WH;of7M`|9E!^EZtX2K+;coMw zM%s<$VKuXF*TZU~-71$*P+uhrE4t&hP>~+katYUay%Y<@WD@aJQGe*@3*3StWreD* z2-?<0M);y!I^#6r#-gAb3EETII>Btfpqyrh$^lI+!UKe#3xpe;4Y))IH%}^?zyU{1 zkGq|VZ_1=x3i>P<3>O~6_M8D=>~Z2gb)qAraOrS}UpTI;01En;T+)T(NXfeTKjfs?TuZ8kY>^*3bvqcLe<5JAeQ2{A&FzfSmktYkO;*?{fbFY5Wj1 diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg_va_copy.h b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg_va_copy.h deleted file mode 100644 index 8645328c2..000000000 --- a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg_va_copy.h +++ /dev/null @@ -1,12 +0,0 @@ -/*===---- __stdarg_va_copy.h - Definition of va_copy------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef va_copy -#define va_copy(dest, src) __builtin_va_copy(dest, src) -#endif diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg_va_copy.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg_va_copy.h.blob deleted file mode 100644 index 4b858e35641ca1bebbeeb934cdff3637797d6077..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3507 zcmb_fO>f&a7-n|Zp@(6=UaB&=hU6rAULMY%7PI z`=ffX_q1D9#KWIi{7>l3Uy~`M3J=|Q8s2h>68=ZH1opy9V`hz#U zc64>#FP`^X;dQSC+sNRo7r~bNNwf9p`oeF?FG!~qUH3^VI(v25YWn5Nv))CE47$C` zX1;&Wj+)&;zfng)yG$KQn&W{`v7XyT9k<8h3=73%8uPMV{}}28?n9gMR<%ny9cUwC zylB)XoW|T(6pUg)$4Xl#m<<@T)0|Q{rWTv-7m^f9@l8IJ?Ulc}d$Fr~%{HHMf% z*~}WP-6p4V&v@_xVIUU<0^xHVcIbP4F77dUN$5%}%$_W-=;1qX7VmI|0st0lX7p53 z7Rb@_Iw30)^yx!8y4~>V8&DAZ__Y9Wsa5eE z8R4>0t(-J!Rrtp#GY(s40F(FgvHAKo7ZNWnxsc$KS}_}#5bI)~6Cq@*QbuN!NMW5f z^uo4>Ay|O@%3v*n2WHGPl;1cqhlC*2Rq78Mz76q}))GXt50|xirCzVR`0b?nas_F| zObWxA@RbWMqmQEp!6kDxp@!@W+gn(1!w)i;Iunc0Xv5|KvOD$Kqq#+?ET@J|cEgk+ z0m77T5jRHZ-Qi{+Y@R=ZWmEoy ztxc$un(dy1TwT3ds8r^h-m~}*Rro;-caP9|1fPVy#9N3Mck@F9hcKL7Kd`~Rs=Ku%3nvU<5eu}wuzaCq| fem*9|pTV3^g<@?y1aHs2fA+&S{#T*TN8suU)S2Gj diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg_va_list.h b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg_va_list.h deleted file mode 100644 index 20c2e2cad..000000000 --- a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg_va_list.h +++ /dev/null @@ -1,13 +0,0 @@ -/*===---- __stdarg_va_list.h - Definition of va_list -----------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef _VA_LIST -#define _VA_LIST -typedef __builtin_va_list va_list; -#endif diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg_va_list.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stdarg_va_list.h.blob deleted file mode 100644 index 2b990f91a18cbc0c89664d8f3806b1b54c46efa1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3461 zcmcIn&63(U5Z3H5r(E_vRjFLI$_Qo%*~=UzhMA%QCWV=h>_sJH0ZL?vl4QWMFR;(B z&$4fk*VsqcO15prz)WSpgvrG}a{s8izy4bO4SoIe`s52j2v2p)F;!aOre;aZm9yB_ z5y!DmoEbWHOe?D;x42uZRD3Bw5ai+*6mO*%VP@F*S%sk&II#wggu+ZxHSw54o);N0 z=f;b{?gcDhrKO%|$ii!Rakrv zTmDVI1!81)*$+S@|I%!|xw+0n@(0pw1vepS1($C+t!B2|x$IxJ$gtP%G;{f3J81TX zVWW<`_AyyFQXLP4iuA%Z>bO0bq*y2>lZYQ{^}|RnaR^1q3)Mc-=ujIO;bo&f!K}xioaTbc1x+o&3xxj=2=_)+xI_r|2YwAO;Ha5!cd`7vK^k>$#=ONU za4)uV1_tBIPCTPdjD!>}T`lpYkPz{+4-mWcH7QzNxMy)kn7!L)RdD|MosvvR&*OC#JUIoO6HWnEmOz{ z^2ftr8fs%4S%6*e_?@`&{Ji(^Kx+xy8p30(Ua8kB=daGHuh%=9Gm}6U$9!#KcMuUD zlLebnL)@`Ds+&O~B7E~7IC${5@In~@?0l&s}8gXusd6{)wJ8a6GNw!7Lh zJxd?k!TwrVnnNuI@S{0j0qrp-chjIm!xUl0JZ7_$ zN*_>FlJ)exx;|Q(H4Ci99EmA2xvS&2U^fMnuQ*IN?9v&3!cxanO3g}UGou!j$Qi12AE#= zI(B~wW4a_%iiz4{@Pqwt7`sFUv%=}|*m9@yCmz;X&J()>+>5LImj5Dgn#k)_*@ueZcq~+;SGLu}z1b|qLNS>{ylU2W6TQYEv?*^@uVT`%HZsENR&&m2 z#EnJXG!k^Cv~_}6k3l=l1(hqBT7*{!|0NI}OzLon5FU>F25`VpGvn@J{YQ(mn%;tW zs||23wo3*H<1A0SpiWGL6fWHi@wMa13Ls&&CYLnjk>_~4$mr%RsIfxLU`?THYK_)z zpVN6}Jbr;NkP8EWa98_%`hj=FJw|T`U5kV{lI1l$c@N2=l4QsOVBUU3-%DlQN}CUW z+=H4qbK0aAr*L?Z2pOSYPYF3F|J%d~S(~HJAA7;wUe>GuTY^7(Bfwl5b^Mi#a9gX_ z&RdN-{NjWehpjV!Da-SB`^{Z$B$>J7MuN{9TWw%Mtc!q7gpip^7+F#xg>_kAW^6|U zLIlJY0XrK!v0|oS`;8+jCPalu8mSCbG+%}rEX0!I<_w)M80@9M11jHKi zB1LASkD~{}B`Y?kh8zn!i?HIBpA@igCKA)>Ud#hzU)}47=5Dvja%$MT9Hta85T<&I zxG_qXFSi6^n?AZ+c>^uY1#p6%a} zX6kXbEZ>No>m7EIqEmW0wcP1xA(WFL!wH`y#&E^bV@(X;eq+6A4gopyPl&Ba>~K`e zdkgsTYO9@13MugzPFq`o!8a5-`|_Iq`0vwyK3x(Lj@s=`m%N7IpPvIF_-1;xKYI4$ PrzgMskYCZ4Gnn-scZbax diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_max_align_t.h b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_max_align_t.h deleted file mode 100644 index 512606a87..000000000 --- a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_max_align_t.h +++ /dev/null @@ -1,27 +0,0 @@ -/*===---- __stddef_max_align_t.h - Definition of max_align_t ---------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __CLANG_MAX_ALIGN_T_DEFINED -#define __CLANG_MAX_ALIGN_T_DEFINED - -#if defined(_MSC_VER) -typedef double max_align_t; -#elif defined(__APPLE__) -typedef long double max_align_t; -#else -// Define 'max_align_t' to match the GCC definition. -typedef struct { - long long __clang_max_align_nonce1 - __attribute__((__aligned__(__alignof__(long long)))); - long double __clang_max_align_nonce2 - __attribute__((__aligned__(__alignof__(long double)))); -} max_align_t; -#endif - -#endif diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_max_align_t.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_max_align_t.h.blob deleted file mode 100644 index a062dba9787763115bcf5b53596d10389ca49fed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3499 zcmcIn-HsYJ6gIt#s;ZZ{j1=`I(qP!7q&Is(23U;(L&UHp>WyVQ2Ap`t$o9Yv4^UNk zro2TSps&yesFI!;7TZ3H{ zavX`6Gfk(Ksn{sV4el3Ts;(5U5Y|Nz2(G1=V5ZsSMU|oFI58SeM2wlF@yuZoIZmj> zl4~ady;tx7$4aW1LQcEqc8EJ11c5u~zkzpn84-Wr6L;Wu2gAPSUz1?`X6X5&ZczLW zI_}M|1Ix&`HS}Rg{-@n}b#t99$sb6+OpuQj~xknv#HYv=37p5Gpf zgJuIc-Z@z~Qyh;)9IBORHn2CFrC7vFCLupp>)VOC#Q_v4FO+wt(y`Jq#JA1HoYRnN zgPdt7=qy&o3T7Mz<3lE(`#|UFG)ad)^ga;duk+YAAFmj91m<9jFSAs6q~e<=pq@aXQRdDg7Rz zcEDfGtkUV#DfpcvLWby+-q88zi(l~EJEs2AOa2{ASVfRZI8aLWWT zg8cq)n1b49OIDy4EPf-dJU_p?c%+mBZVlkE-l#Sj)yrQmYA<)5EtyWBizB{MaX5&O zPsxhSsU~(8#c>HE*8C)ah1H>$PRqzFfikA%xHD2jfRf$1yTNoKl8V$DPBojCOxw2h zOfAxV9vrWgp*hrY0PoHD259??Y^OnqhAF~~c*GVd$rJaWb-pukfZ6}27q^XY9#L?u zV|7ARN!HU})pc)ab}XftxM!0E1H^44Yw-aDm*|>Nt3YAV2Rc|W@%Zb1;dZZw6NJK zl8-7sp{GA0RQdAZ&&z-Qeew625VzNY153a4mb7}_wNFNH80mUG96%6iJ_l#u1oiCT SvdWX6pLBo7ujoq!#Qp=Rsnm!7 diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_null.h b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_null.h deleted file mode 100644 index c10bd2d7d..000000000 --- a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_null.h +++ /dev/null @@ -1,29 +0,0 @@ -/*===---- __stddef_null.h - Definition of NULL -----------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#if !defined(NULL) || !__building_module(_Builtin_stddef) - -/* linux/stddef.h will define NULL to 0. glibc (and other) headers then define - * __need_NULL and rely on stddef.h to redefine NULL to the correct value again. - * Modules don't support redefining macros like that, but support that pattern - * in the non-modules case. - */ -#undef NULL - -#ifdef __cplusplus -#if !defined(__MINGW32__) && !defined(_MSC_VER) -#define NULL __null -#else -#define NULL 0 -#endif -#else -#define NULL ((void*)0) -#endif - -#endif diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_null.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_null.h.blob deleted file mode 100644 index 2c149cace463cccfa5f3102ce9fd8c65683aa5bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3505 zcmcInO>f&a7^aJ1Xm=Qb9ftO_07ZeefJ8g-++7Sbm7Tz-EeCco4+92*rf8cjCAuX2 zq1<-cZ`f}c(0hTMdfREgVLzbREBP}+{8eWA?Pi_1dfzcU4@)d)hiRPQExWAdhHy>Ft{Lo-6vk%Kdm=v75|Jh zTj!06e{tHJeQ%b%%SIWNk=9AWhb8HkQu)>8S+XR3A+@r9*(7EEkVj5spDgStj$0xM)W{U_xYF&$SVT+?0=}=-pW14Sn^2^*P?bHE zwv?6u9vAXGP6MtDayo&a-AEZLm~j}CQx~Zm(byn7LilHaaJ`*{TYzxm!pi{$EY)3Z zi{l>(q>y*|%o$ArcS18{pfF7Ignep7TS#H!$rK-39vJ};Ol)#VV;(q`hkZ#ccluNt z5p}_)h)is>Qg#{9sb<_dMi{__0YLavc{Tc$pNboJp1|1+gx(6{u4=ylRlx>T$bqn& zWq=QZy{<2{N>Cl9T#`OZ+jqQfS&9kvbOQBfFC+;4}JQr;(uJynk0V)?!(st zXeF1$Qy{{tn{|&0xhy>KfN6`3)euvn=a16sWj*^P?P_3!oO_p0Q%Y6|HQ}S&tlKal z#s&aTGNc3^i9kY-pC1lWP#bN@2=s!*TjEOd^P`6^l#;-$O?b`a-F)6X{{ATYV(!_H z=>c?c$mc572NCcN8L=MK#LlDGEMdeI-$|fvbs##OZDfW(86C6P87V?Q$$Z^nW7-i( zv(y_-HS2AewrTB|>c^`**jy_^Q>di?UYYX=&{i3l?gm>l%q+~1hpZoyG;#lFozF}h zVD|s%#c3n#M-*J^NbOKnlJxYAx~?qEoCPM^90@7Ysj2<$eU%Y=;{KdblR^iX;{$sETe@utT`0(k| zp%TIKXW3^6WgZd)AAbGo&woI8eq|oG56)j^{spr~ B(OUoj diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_offsetof.h b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_offsetof.h deleted file mode 100644 index 84172c6cd..000000000 --- a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_offsetof.h +++ /dev/null @@ -1,17 +0,0 @@ -/*===---- __stddef_offsetof.h - Definition of offsetof ---------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -/* - * When -fbuiltin-headers-in-system-modules is set this is a non-modular header - * and needs to behave as if it was textual. - */ -#if !defined(offsetof) || \ - (__has_feature(modules) && !__building_module(_Builtin_stddef)) -#define offsetof(t, d) __builtin_offsetof(t, d) -#endif diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_offsetof.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_offsetof.h.blob deleted file mode 100644 index 7b6442f6dd648df56e32a666bd19bb6a42dc0814..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3547 zcmb_f&u$_&7&qNZ)kAjGCqUX(>Q)^L31xeUlq`@4ZGbH#rRt%U@p!;l&luU}&qUfo z50%**Iyo z>b1rxX?I?=YK`-gc6z^EEnl>%u#I$%TMgKf+^JMwT%5Ws$pxub8y9U-Z5+Qit5)3d z*>UT%N;=KfStZ%usWmFiPP1%!>7Wh1+bIuofBaY`(_Yz$B z_qakHl;z#c=V2zy8!P=9s`emX&aBe$;Wqs34u$m5$J>~!9sH}I6*AXH?|!H?uJ3qt z;HTuyz7!xUg*?6`B3$P3x&2Zh55IWGw8h41sLA>Hwes>h5s^ezoQUB4LOK_i5MzCy z5+S4)4H+3xB89Qe&`H_`hF}5qGlRJRZkaJt0Kc|m3<*K1v(%RyepSZjN=cBOiwZrQl^toiFnLm z*isADOTgwGheHh8c)%a9)ghHqu?^95LJ79OSF#5gv>EK%Cz2itaNaG9>Ut0yb|IY*Dn&24Bi&oapG)-;5WDf<3f?Ay zRSI!`d%&6vwdN6vH&tRl#Kl`;^Op0S9yp-H@Vu3F72coFqnq!4dGqt{ADSOk5EyP% z0E5vn(O*>C1|UEZ#sU^Z3c*?0fF}TXd5F7dL+UzR_rcyrN11;C`&Z)c diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_ptrdiff_t.h b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_ptrdiff_t.h deleted file mode 100644 index fd3c893c6..000000000 --- a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_ptrdiff_t.h +++ /dev/null @@ -1,20 +0,0 @@ -/*===---- __stddef_ptrdiff_t.h - Definition of ptrdiff_t -------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -/* - * When -fbuiltin-headers-in-system-modules is set this is a non-modular header - * and needs to behave as if it was textual. - */ -#if !defined(_PTRDIFF_T) || \ - (__has_feature(modules) && !__building_module(_Builtin_stddef)) -#define _PTRDIFF_T - -typedef __PTRDIFF_TYPE__ ptrdiff_t; - -#endif diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_ptrdiff_t.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_ptrdiff_t.h.blob deleted file mode 100644 index 77bb72c23d250bcaea2f9979a15071ef5ebdcf1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3547 zcmcInPj4DW6kn8fFI=XLbk8%mV9M z)k{BvKTAJBrCgF*PHn$IdvDygix-0xSZrJl?C$J)Z{DBZ`@Pw3tdD0ea_=q6LPO~@ zL;@M0ilm{>0;7>5J%)T9Fsex3P#I_`m`06sCGQ9hf*|Mnpm;8L4^c(;cJtJFibAbW zj|Yef5)5oAEZg=JA2Vh9V0RxDP#}dINXxDqJ5}ton(emJY@EO|Jan+zbg|QPYt2@p z?jGTG_oP*KJGFNDzFl=rTU8Ll-NTj(BFURd_2ubNERx*dM%6uShi#o6J0K$`d|RTG^N+morEtiIjcuZ-_?t7dJ0;vtB+NMxWwNJ!^MA||V3%%wRYW527=UJ%Laf*Ne zL)3to{pt5*TrSxoYENc?+rA!CFzCm2{1Gv{#|1ahY>7<`3p57^#(OeBBIenK`6EFL zvqwZ}9t>bl9_UCbDa|6H6U(T(XCVL=0sx_!bQ!zrBzP&w73vm9>q34*by153P^C*4_6DR^#NS z;C}Lo1FaMb=n9B%n=j;d%f$j*QAm|R+9-%Aw)0!%)uNs4l6D>%F6Q3F)Rd4_OigIF zn06b&SQ`%jipK=QC02+D^6ueK3AIrMPrxqh_=&iZ{QT&kj+6qpwGFq$QodBm?|rvh zcro{EOjQV7?6bLv^+9;7k0*3U6gKlHvNbe6XA26~L*bTHOvBcUC_2n`c?@*Y*V&E= z?gN76a(DKRDHX_Uw-(_*tQo;46_>S8e$2v=u%-(D^>#$F#N+7cxA*|b!fJh2m>EYEtiD}rCb&J8Nb z?&xdEx|i0Pr~UShq>}+=*HUw?PePnKpG+|kd=RYW{Om+rbMkt2OS(7SRrdRu8JQdw zZa`@CiPpo-D5B9zJ^b?6c(Gy3B#pQmJM58Rjv-&UGDH3&dfI-xzC)Br_Xcej^m)A z3>hMkj8H|=amXU0ktYL&LLM=yNZ(KyX(^aSjbtS62@Zx}7lttLOz<9}itg>^sq+Ml zwL(1}Au32TaH()yH&A@Slp6x>J`A8p3OSIDTd8|h?6q6I@3k7Q;29n|xY=rAuhl$i zwHvkOG4{K!+O=lq$WPw;Rqv!-1vA_|Y&XFqep9KwI61Z^@eOWNnh3uR$c2DF=tz1E@|GR(D|}wiIUjJ9iQ{?MI|ZoV z4k*Wku-w)4+)szOQ>orU)Gn--Q6trSe-r-p##{u>*PBdP+xTao5B>bm`S^3KdA@>b zlb?|L@klvI$jV=;Dy25bJ{oSRYU6kSJ`@C~loGfo|^WyY1riSmcpW0q^&-V6Uc>%F+C8 zFM@|alhp2VXWEcTN$xcxiViK_HA-bny(Tep;>owBaKW4VTXe`mI-27+4L2=&xm{%F zs3Z+Q!T+bVmb~7s@0n7OOlx#&no~Am+oIX{l+Ib~S~w(B#jdt%?e!glxo5CrOI8?iwx45s^9t+ zPkDs#AR1Fkz;%wZGho@FX}va&AlV#X`?}KO>$7K*9+DX*f)AnN7aLSAB*PS5h+gf^t5+_*K_FeEG#sr}ioNN&N3zefRm!(}Uc0 diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_wchar_t.h b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_wchar_t.h deleted file mode 100644 index bd69f6322..000000000 --- a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_wchar_t.h +++ /dev/null @@ -1,28 +0,0 @@ -/*===---- __stddef_wchar.h - Definition of wchar_t -------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#if !defined(__cplusplus) || (defined(_MSC_VER) && !_NATIVE_WCHAR_T_DEFINED) - -/* - * When -fbuiltin-headers-in-system-modules is set this is a non-modular header - * and needs to behave as if it was textual. - */ -#if !defined(_WCHAR_T) || \ - (__has_feature(modules) && !__building_module(_Builtin_stddef)) -#define _WCHAR_T - -#ifdef _MSC_EXTENSIONS -#define _WCHAR_T_DEFINED -#endif - -typedef __WCHAR_TYPE__ wchar_t; - -#endif - -#endif diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_wchar_t.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@__stddef_wchar_t.h.blob deleted file mode 100644 index aa5831f570ff0625e9ada22cf7500bc50915f299..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3617 zcmcInO>Y}T7#>%ugg7~BrCuWyE{OFwiE$B9P|~#>tj6nNCm3-Vjc3Qsq_aEL%s93q zf#BBPz;ECmfcOE3o_a$Z;0WS`#4$DRuDzQN5_esPJ?zKq`~5!eGrRAhSI3WXFA+lc zNCh0zP=&an*f8LsHP}@?$AJhr)3j%q3XPK7;6}1iaHRl2kP8A(Je8u0nPyv?1%@8t zq0zW2Ld+x$`wo-HaeOUKxOM`tyA2CCR8sX7aw_|7mAI{DyX`g`PvIFJ4v5$Eh}-mP z%~qrC?U8opX{+uX)Y{4WcGW#>RY8n&c3U2Z#BVCq$A^27NPI&YRqwD(s^0G7{c0sz z-rsHQRY|AW+ONd&ow`?PcG~3;U(sksY3bu}xpc&-&$U5L&lj{GDq{sR4uf{;Z7N4}Vh|o7{DnZc*)77!N4Rz1 zZU6=>)qQTa#~+qSx#SF(Gnyst1m=W+!632|45$@dA%&gHmiXB6&o&`gY0%3eftY#Dd95C(8z01&Pzw?Uurnz)4L8Jr8g(3vn^P~BrN z<-f)hav&||Vm!AqVa`bDXOOi6@p5LBo@_6J-|kRIAHBPb%EG}v1%Buij?k;;b?@Z` zt5NY2aIZfRKr0(XJO?7&7K(+<@7439rg-oN1s3|6^ zh??-`Mlx-f5MzA+C^?}7E|Ee+kZ+z2Q_vf2$q4L%$7}M6>+_k550sL?t!=p7C>2Vj z!qx|y#YbsmCrl4viUXdSxG{+nn9ZI^W4}=@P8LLo5vQEkB@_l$`=Zy&tTV4DQ-jIt zy+{!NN>aJ=jcG|FC8als~HhMIFvEQuT*3;%AI`)CL6-ymPSEb+n&X0b6%0coU_*zzR19=DP1le z@f1gd^ur;G0Jz9;b_C2PH0{^&86|U2v6kE5sL$UVqE zcz-81{q^}*Yajh__9N-IpX|2C0sNiR>K^=&AhiAvB7ngiMC z^xpUXeE0Rwe1wtgo*&-H%$_N|}3`Q^pmNnFu2m*2^EA-3aB) -#include_next -#else - -/* The system's limits.h may, in turn, try to #include_next GCC's limits.h. - Avert this #include_next madness. */ -#if defined __GNUC__ && !defined _GCC_LIMITS_H_ -#define _GCC_LIMITS_H_ -#endif - -/* System headers include a number of constants from POSIX in . - Include it if we're hosted. */ -#if __STDC_HOSTED__ && __has_include_next() -#include_next -#endif - -/* Many system headers try to "help us out" by defining these. No really, we - know how big each datatype is. */ -#undef SCHAR_MIN -#undef SCHAR_MAX -#undef UCHAR_MAX -#undef SHRT_MIN -#undef SHRT_MAX -#undef USHRT_MAX -#undef INT_MIN -#undef INT_MAX -#undef UINT_MAX -#undef LONG_MIN -#undef LONG_MAX -#undef ULONG_MAX - -#undef CHAR_BIT -#undef CHAR_MIN -#undef CHAR_MAX - -/* C90/99 5.2.4.2.1 */ -#define SCHAR_MAX __SCHAR_MAX__ -#define SHRT_MAX __SHRT_MAX__ -#define INT_MAX __INT_MAX__ -#define LONG_MAX __LONG_MAX__ - -#define SCHAR_MIN (-__SCHAR_MAX__-1) -#define SHRT_MIN (-__SHRT_MAX__ -1) -#define INT_MIN (-__INT_MAX__ -1) -#define LONG_MIN (-__LONG_MAX__ -1L) - -#define UCHAR_MAX (__SCHAR_MAX__*2 +1) -#if __SHRT_WIDTH__ < __INT_WIDTH__ -#define USHRT_MAX (__SHRT_MAX__ * 2 + 1) -#else -#define USHRT_MAX (__SHRT_MAX__ * 2U + 1U) -#endif -#define UINT_MAX (__INT_MAX__ *2U +1U) -#define ULONG_MAX (__LONG_MAX__ *2UL+1UL) - -#ifndef MB_LEN_MAX -#define MB_LEN_MAX 1 -#endif - -#define CHAR_BIT __CHAR_BIT__ - -/* C23 5.2.4.2.1 */ -#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L -#define BOOL_WIDTH __BOOL_WIDTH__ -#define CHAR_WIDTH CHAR_BIT -#define SCHAR_WIDTH CHAR_BIT -#define UCHAR_WIDTH CHAR_BIT -#define USHRT_WIDTH __SHRT_WIDTH__ -#define SHRT_WIDTH __SHRT_WIDTH__ -#define UINT_WIDTH __INT_WIDTH__ -#define INT_WIDTH __INT_WIDTH__ -#define ULONG_WIDTH __LONG_WIDTH__ -#define LONG_WIDTH __LONG_WIDTH__ -#define ULLONG_WIDTH __LLONG_WIDTH__ -#define LLONG_WIDTH __LLONG_WIDTH__ - -#define BITINT_MAXWIDTH __BITINT_MAXWIDTH__ -#endif - -#ifdef __CHAR_UNSIGNED__ /* -funsigned-char */ -#define CHAR_MIN 0 -#define CHAR_MAX UCHAR_MAX -#else -#define CHAR_MIN SCHAR_MIN -#define CHAR_MAX __SCHAR_MAX__ -#endif - -/* C99 5.2.4.2.1: Added long long. - C++11 18.3.3.2: same contents as the Standard C Library header . - */ -#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ - (defined(__cplusplus) && __cplusplus >= 201103L) - -#undef LLONG_MIN -#undef LLONG_MAX -#undef ULLONG_MAX - -#define LLONG_MAX __LONG_LONG_MAX__ -#define LLONG_MIN (-__LONG_LONG_MAX__-1LL) -#define ULLONG_MAX (__LONG_LONG_MAX__*2ULL+1ULL) -#endif - -/* LONG_LONG_MIN/LONG_LONG_MAX/ULONG_LONG_MAX are a GNU extension. Android's - bionic also defines them. It's too bad that we don't have something like - #pragma poison that could be used to deprecate a macro - the code should just - use LLONG_MAX and friends. - */ -#if (defined(__GNU_LIBRARY__) ? defined(__USE_GNU) \ - : !defined(__STRICT_ANSI__)) || \ - defined(__BIONIC__) - -#undef LONG_LONG_MIN -#undef LONG_LONG_MAX -#undef ULONG_LONG_MAX - -#define LONG_LONG_MAX __LONG_LONG_MAX__ -#define LONG_LONG_MIN (-__LONG_LONG_MAX__-1LL) -#define ULONG_LONG_MAX (__LONG_LONG_MAX__*2ULL+1ULL) -#endif - -#endif /* __MVS__ */ -#endif /* __CLANG_LIMITS_H */ diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@limits.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@limits.h.blob deleted file mode 100644 index 94cfa054cc21d2d74b0b2006310d031afec8b7eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4563 zcmb_fTWlLu8XlX=7Fw#aWg$=?ohBhINyf)^-4xQ6#_=UF^`)|792My4cxLQOG8b!R zoWzwV7a@TV0v?bSX#-DarGFpVa_ic2z|&f44&6j3GGI7E4L{f?jfe@#vF!7Wk*Ri0hEkiQRh`xd#^QjC;l}nXMs#G`zzv0I$DVB;PRVrpn(#Tk*y# znN+o$fiO}_mWvQ#kEAnG)oB`HKafJESgnvuF*%jbq^UcfEKg@htyIpZ?f6=*m@d^S z;|Ye#ZKe>LoQ`XM$r`UQOKvgUhq27-+!ajizKBUb%Ce zj3>C3z%4t8bE>%{0H8{7)D~~aby<&Fq+lu3JG-+sL@KkHH`=3EZyiF-iV6pZCMeSo9)eN?_j!FaXjYf4-;ZqBD9Pw@dUmi z^UkReSc6s<-Uvw=|3vJ6pfG>El zsJvk4mru)Ss~@+{ZFAD3_W%WbB3JCC!yDu5i;++{c1dHMzg=7RG-Z#a-+VJw51>R$6N-c4O%M*_(_N*<6>}1zdaBJHEVaf)~v1 zJy$`8Gs3Wm^q8s2uMl35n_57|Ke`J8?P+Rlf%d2??@Ldlh1DAkQ?m5N56H5|Edwtq zLfbGTP3Q!7&w9x=DR02H*~9FGY?$LFt@Hf@Q3r$ADsL3Xubq5Shj&zEqEi`ISBOOO^@vwVA;JK zal)L~iu0f^+>k6fdi1KY#rdz}NqTb5ptc zWJpR&B1F8n`gLjS(S3jMhv6YKF*1>cv7HAW`4mkK-`G92WrA`hZwYVjSRDK|HIpn8 zr+>(!?D^P=_XLqG*Rj)8zsGieTv|TNhs+o$J;!dJTzy(`&aQC9U6!*QyR$rBF82ilU62$eL z7v+u-1~jmDJ81o=-$t98I9dO0?b*r<{588kWuDL37tSwQNtUzo-jDV}HNnm}h%91h zH6M?EafbiJyRX2XIu~%eCtKIWI)L^s8_xwCN8|nB5Lg#*5DoSN;D63M{}{7;O7RFl zzJ9Ac9~GVVY>O_6qCgI;+v?qDHzlX-+$n_LdHrnF3l0{~ciOGC3u4n7VdLy5Yv+6r z9fT@^bxy9(02-iG%<|7}fBCodwW^y_kfP^pd&yQtc!X(x}B2E zyt(wpzuuqy%2AM~7{I>OD`@wKuO%;(knYp*Vf64=I0Say?ijQ7;C$$cD_?r`IafB_ z=c4bl?+0I5^lqS}6DR?t0PA+^Hgp>;MRDKrZ$8QX|C9Afbhn@03D7LR5P%dzG3Yzk z2}ejnXo&W`efl2jxu-woAz}X$Ix>9Z5RBdYdTrw9{`dbByf6GM>pT6UXuTk?oPrb} z4%Q_uBbgH4oqW;M{#N}BoP_x#y*G1(+-!x+z}l==?~BJm*Pv^nVcWVj{e6MFant{H lIG67QJIdjaD+X>FXWzqhOKW-n9RMMKy~nA) -#undef __need___va_list -#undef __need_va_list -#undef __need_va_arg -#undef __need___va_copy -#undef __need_va_copy -#include <__stdarg_header_macro.h> -#include_next - -#else -#if !defined(__need___va_list) && !defined(__need_va_list) && \ - !defined(__need_va_arg) && !defined(__need___va_copy) && \ - !defined(__need_va_copy) -#define __need___va_list -#define __need_va_list -#define __need_va_arg -#define __need___va_copy -/* GCC always defines __va_copy, but does not define va_copy unless in c99 mode - * or -ansi is not specified, since it was not part of C90. - */ -#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ - (defined(__cplusplus) && __cplusplus >= 201103L) || \ - !defined(__STRICT_ANSI__) -#define __need_va_copy -#endif -#include <__stdarg_header_macro.h> -#endif - -#ifdef __need___va_list -#include <__stdarg___gnuc_va_list.h> -#undef __need___va_list -#endif /* defined(__need___va_list) */ - -#ifdef __need_va_list -#include <__stdarg_va_list.h> -#undef __need_va_list -#endif /* defined(__need_va_list) */ - -#ifdef __need_va_arg -#include <__stdarg_va_arg.h> -#undef __need_va_arg -#endif /* defined(__need_va_arg) */ - -#ifdef __need___va_copy -#include <__stdarg___va_copy.h> -#undef __need___va_copy -#endif /* defined(__need___va_copy) */ - -#ifdef __need_va_copy -#include <__stdarg_va_copy.h> -#undef __need_va_copy -#endif /* defined(__need_va_copy) */ - -#endif /* __MVS__ */ diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@stdarg.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@stdarg.h.blob deleted file mode 100644 index 07acf76b892e2de78a8dbea430771a0ab0109900..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4140 zcmcInPj4GV6rT+Oq#i;f6e?Aygr<>5l=V1?>*QjoiR}cdi5=MqMitU%Jv(-$-JP*! z*Rh@6;DQiRzW|62!2t;nh!e*i3Ku>BLgJ7wknm>L|6--~x(+^!*E{e1X5M?h_nYww zx_Gi_yhI4$6X`N+2`O+!(uT`~@8Ptx8Fsl~R9RJ@O5sU|dHA6FCYE+M7=oSag5#OP zE0`*}u^yvn5jQ-AD_mgeSfXZ92brd=_$gDS3%DtGfrWHrO(HY1pU#qWu}~_d3kQer z8-5&-d?8QLh5T-zc#zBQky81vn9CpSmb&w$Z2GvE1v66KF6O}`n8{>!j`y@l@IVf- z`QsAF=C^nDvl;z*f4jJsCFMeKKNHxObNNi6TuLU8nVTjHQ@Z0a7q)DA$pp^TYHiE~ zbs9FC7WLDLY~d0VDJWEKO3<=Yj*VN%#0j%(raWX;ZEn?s^n6Y|lR`OF%5s`k+e5gC z@MDf}p%RC|M!0yCUIPyJmZ~v7)!IsuWWuadvl#|%y51=TKv(0qb<5`!?r^^yzG5w( z36BE>^_tAF+RQe6=GGm{XJ*|}9v3xOlMAoyDJlIyMhD2ayn!%~3j=}hu1p_TPuVWN z!sn3AF`KJM9FNJ$6M(YEKp_*tG6(l_GaY6&rFsfco3LL-eW}{1N%&i7aK}bVlemm* z{4>ypYU~7Ee3{F?96;5{?~;4r5eHdWi{lOv;V~AEttZ#w@QoW(`PlOn#H4Y4&O92# znJ#H(4WB!`-DznG#7avOUSI2W8z#i_Z6GK)wFrD^2Q84V9}bmJ8|9NG;KGX6#1-V{ zlQce((gAHP!Q)yYmPo`l9<0YVdpkR&ssUZ>vL3|fAZ%78O?qM};`gE$@8R(?HjzW! zS2nL!qxhVHWK_NJn{l`cEa}sKI+GQ@Sw@Hx4p-y_uJOYLPpVsX3#dNyCloCPuB4k|`ndlb3 zQs&W>(mpp^snLoMz2b1-VZU8xH&|-davVt`wv1L9(QpFF4~gY;njKyxyC=%{@<2fy z?)BwvNIAy$ZC{}xlc**dR5NMR!qH3FY2IGqCy$_eO29dGrCCR3PnXcOTEudAO$=!H z#OwF9J3A^S)vH^ww>}I0_l&+= z4C#m+!G(|^rilnneO|VrS%+7i&m$NQ%IDV+?E7MC%%i)v5PJLaJ^JH|mGezTh+xd_ z$}#*GeSZ-O1phG?hG&e`xz*K~U__S&LdM?g-pWJc^7fm5{`C0b-8aCu_c4|;%QnpY zep|G@U;ps$4pwj9V7M@}&cK|pG`AF=3C3`xo!Oljpt;X}xb^EVU%b=b8KexL?hHXe zxWR;RfA0RuOfZHxsoB&=fOG!h&hx*X|M6QNM+*o5T@!maV=T@sLhO1Bk+x>HbnL}{ zm;d?h(_@IXF}tDT`}Ui|uk7;=>|Pq-!I+QFA3Zew1I${a AWdHyG diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@stddef.h b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@stddef.h deleted file mode 100644 index 99b275aeb..000000000 --- a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@stddef.h +++ /dev/null @@ -1,139 +0,0 @@ -/*===---- stddef.h - Basic type definitions --------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -/* - * This header is designed to be included multiple times. If any of the __need_ - * macros are defined, then only that subset of interfaces are provided. This - * can be useful for POSIX headers that need to not expose all of stddef.h, but - * need to use some of its interfaces. Otherwise this header provides all of - * the expected interfaces. - * - * When clang modules are enabled, this header is a textual header to support - * the multiple include behavior. As such, it doesn't directly declare anything - * so that it doesn't add duplicate declarations to all of its includers' - * modules. - */ -#if defined(__MVS__) && __has_include_next() -#undef __need_ptrdiff_t -#undef __need_size_t -#undef __need_rsize_t -#undef __need_wchar_t -#undef __need_NULL -#undef __need_nullptr_t -#undef __need_unreachable -#undef __need_max_align_t -#undef __need_offsetof -#undef __need_wint_t -#include <__stddef_header_macro.h> -#include_next - -#else - -#if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \ - !defined(__need_rsize_t) && !defined(__need_wchar_t) && \ - !defined(__need_NULL) && !defined(__need_nullptr_t) && \ - !defined(__need_unreachable) && !defined(__need_max_align_t) && \ - !defined(__need_offsetof) && !defined(__need_wint_t) -#define __need_ptrdiff_t -#define __need_size_t -/* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is - * enabled. */ -#if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 -#define __need_rsize_t -#endif -#define __need_wchar_t -#if !defined(__STDDEF_H) || __has_feature(modules) -/* - * __stddef_null.h is special when building without modules: if __need_NULL is - * set, then it will unconditionally redefine NULL. To avoid stepping on client - * definitions of NULL, __need_NULL should only be set the first time this - * header is included, that is when __STDDEF_H is not defined. However, when - * building with modules, this header is a textual header and needs to - * unconditionally include __stdef_null.h to support multiple submodules - * exporting _Builtin_stddef.null. Take module SM with submodules A and B, whose - * headers both include stddef.h When SM.A builds, __STDDEF_H will be defined. - * When SM.B builds, the definition from SM.A will leak when building without - * local submodule visibility. stddef.h wouldn't include __stddef_null.h, and - * SM.B wouldn't import _Builtin_stddef.null, and SM.B's `export *` wouldn't - * export NULL as expected. When building with modules, always include - * __stddef_null.h so that everything works as expected. - */ -#define __need_NULL -#endif -#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ - defined(__cplusplus) -#define __need_nullptr_t -#endif -#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L -#define __need_unreachable -#endif -#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ - (defined(__cplusplus) && __cplusplus >= 201103L) -#define __need_max_align_t -#endif -#define __need_offsetof -/* wint_t is provided by and not . It's here - * for compatibility, but must be explicitly requested. Therefore - * __need_wint_t is intentionally not defined here. */ -#include <__stddef_header_macro.h> -#endif - -#if defined(__need_ptrdiff_t) -#include <__stddef_ptrdiff_t.h> -#undef __need_ptrdiff_t -#endif /* defined(__need_ptrdiff_t) */ - -#if defined(__need_size_t) -#include <__stddef_size_t.h> -#undef __need_size_t -#endif /*defined(__need_size_t) */ - -#if defined(__need_rsize_t) -#include <__stddef_rsize_t.h> -#undef __need_rsize_t -#endif /* defined(__need_rsize_t) */ - -#if defined(__need_wchar_t) -#include <__stddef_wchar_t.h> -#undef __need_wchar_t -#endif /* defined(__need_wchar_t) */ - -#if defined(__need_NULL) -#include <__stddef_null.h> -#undef __need_NULL -#endif /* defined(__need_NULL) */ - -#if defined(__need_nullptr_t) -#include <__stddef_nullptr_t.h> -#undef __need_nullptr_t -#endif /* defined(__need_nullptr_t) */ - -#if defined(__need_unreachable) -#include <__stddef_unreachable.h> -#undef __need_unreachable -#endif /* defined(__need_unreachable) */ - -#if defined(__need_max_align_t) -#include <__stddef_max_align_t.h> -#undef __need_max_align_t -#endif /* defined(__need_max_align_t) */ - -#if defined(__need_offsetof) -#include <__stddef_offsetof.h> -#undef __need_offsetof -#endif /* defined(__need_offsetof) */ - -/* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use -__WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ -#if defined(__need_wint_t) -#include <__stddef_wint_t.h> -#undef __need_wint_t -#endif /* __need_wint_t */ - -#endif /* __MVS__ */ diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@stddef.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@stddef.h.blob deleted file mode 100644 index 1d1c81db3d2a8c4f7124cca001bfd792a21db669..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4333 zcmb_f&2Jk;6rWA`R%KaKZ3RM5spUgy*JC>-se~dWv7N-kAHh!QsHhs&vtwt{-5oQ# zj^p;y3sS|63#ay4apH{B9{2;OI8-3f3-kat4oFGg~_mH2@B^0?U>ARY@8K3!zQ;Fm0HuG!m@?IY+M>VNn{NUhG1u! zu<(Y#8(3#eLvvVyqVu?8OWfcVriNy~gOn>}lC6}NE7ek=yh3XA^=hHKv0NL>*YerTY97o;eX&{w6K^J$U)o%8 zO}q)g^s*PhMb zLaWuo+@eNDXOp6CHN+mSL7BW#6($6&3u)+hZ#J{dG@VHssZE`0Elb!Ar?yI=oN`_> zx?0ahxQp;rj&P-sgh5BRx{*x*2OLedm@~h3d6vv()HYSSe&DKU?@|CXT^zHmIlRFQ z?)3aeY|mkq&4GljPiAO6rmGG!+b-SIwkB;ZC!ayzz1j5TA zThgwxWqyFsKA{sjml0W>5RDxG(?h_J3W2GkJ36i|Q@cW5hsagfGoy}>z4@bXxY6N; zj^6cJ)oov|RdG5sU>_#Lc62BhA*5w>DB0DB!EGn8?MugqFE_^n4xd}&pdYCu?(+>U z6Ujt+HkE{b+@aFJwj*KNF3yA8+M@^?0MD?G$sJPxiINWKLSPVbu!ErjdXZeo;te4T zkh>aOrZS04CNcA2Iyo1lW|ztiw3W#M2v_i)pGA;H(xuy)B*XNDudw+IcBBPuN9w%U z99c6KSzl)&)M$_@n`x46hlgo!6Y4&BiI|j@2zR#&64ZRIyYK?qni1~Ar~l+J4RUER zleT-r+qTF2iK_!dKF~@-z{y0$J9b+>F*$MCu! zV!1-}KfLLNO?xct4R5NATc0DNzEo?;vqDunKRQ4EymxNvWD9PTlHY_~^L zkD&3G2`^s*I=*}_MEcx*`!5tfV|?%zeQ58fVrh+sT?Ir%w)bzeCCj$nGQU!Fcg z5!Q^b{gu<`{A&r6Jefl)Cs)zOCqF}URUlb(PW6D?emaq_+~x#uPLPxuOz0t5$!7oDYs&`E-fhgzs=mga;vs_w!dIx`v7-g4DP_J zQi_){Q{Lz!-i+N$1LD~if4YD5*{Kt-KKPx;<#PIhvbwa|SWwn-YjC|^K6C2sM(g$Y zzUT60u?Y5O#$5W3m8JO7dsE)%`!Zt21;E((#8`at@M$4%1Q$yBa=Hq0?|+nj3G3hg z-pB7(91PwXa}mrasd(zrlsEcbTCvtNApKgJ`|<0UKVIk~`9uStH^+bm6UxQ-#px+; z^l`4mu6+PFU%m0^gNOIN8RR-3I6$2ngBqDrrsLDeDR1=AwqjceK)ZWq{Y(9?cXU`C M{FKwl(;ExQKdCq2_5c6? diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@vadefs.h b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@vadefs.h deleted file mode 100644 index b61756844..000000000 --- a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@vadefs.h +++ /dev/null @@ -1,51 +0,0 @@ -/* ===-------- vadefs.h ---------------------------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -/* Only include this if we are aiming for MSVC compatibility. */ -#ifndef _MSC_VER -#include_next -#else - -#ifndef __clang_vadefs_h -#define __clang_vadefs_h - -#include_next - -/* Override macros from vadefs.h with definitions that work with Clang. */ -#ifdef _crt_va_start -#undef _crt_va_start -#define _crt_va_start(ap, param) __builtin_va_start(ap, param) -#endif -#ifdef _crt_va_end -#undef _crt_va_end -#define _crt_va_end(ap) __builtin_va_end(ap) -#endif -#ifdef _crt_va_arg -#undef _crt_va_arg -#define _crt_va_arg(ap, type) __builtin_va_arg(ap, type) -#endif - -/* VS 2015 switched to double underscore names, which is an improvement, but now - * we have to intercept those names too. - */ -#ifdef __crt_va_start -#undef __crt_va_start -#define __crt_va_start(ap, param) __builtin_va_start(ap, param) -#endif -#ifdef __crt_va_end -#undef __crt_va_end -#define __crt_va_end(ap) __builtin_va_end(ap) -#endif -#ifdef __crt_va_arg -#undef __crt_va_arg -#define __crt_va_arg(ap, type) __builtin_va_arg(ap, type) -#endif - -#endif -#endif diff --git a/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@vadefs.h.blob b/.ccls-cache/@@home@anon@Documents@Code@minecraftconsoles/@usr@lib@clang@21@include@vadefs.h.blob deleted file mode 100644 index 5d577daaea820afdacb3700eae0824582f217089..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3900 zcmb_f&u=3&6n3gTt*UMhAQn-H!m8D_+8HNp$nK>Q-6Sp1w#kyTWW~jDJWk@>nQ>%$ znxqG=aOMtw0|yWX5dTCakXGWa;J|Im^Q8IF(B_BI9Gn^3?|pvneg4MYM(;+QIa9Q5m<+Y_xyHx+9yjX?mNw`RAvHc1rv}j`PLS3dtAu zpC9FOw)<$me3&QIQu!zs Wxl*-~Nh7DQNFEk6$5jz}vaK^|Txc}9ScJ@vJie&c zS2fwe6)00&s=|U!t5W$M?qt$UPCc$Pa_XL-jZkVMn06SHQ|(c|O}iT5Ho{*EgiEy~ zG#{6Jh|bdS)kC)A8A zcV+E0IP<1BLkJ3Ehz?wNTQg!#{;czVyzK1sEF`2mi&m$vzw~5|; zS14YLc(n!S6MX%J0C7nr@f8{2(M`HLnN$+~am19t+9-(0`uRQg;vyCjD=x8+;GI-| zZ(u^S@qkW*kVY6Waz=?Sw6TU(*k&*U3$Py;3}tZ66*CFxSBA7rNiTMI4D`CJAqqdZZs zkJyYwcBNi36t|x$&8cF|>0$aJ0KzO@BCb>@r^5|61=L`&)x8aPdMP!Hx58u!_XvC& z$oyFic)(g+66Y&MUbs#`>1(@j=x{L+v*!gHcPtgtN#6V7kbp83S8>J-POK4a1&O8YU~k>=lOZ8aCY)zr)f7)b}NuaZgy?2qQn{^o+?L*W5y>X zXOU7oWZhYn41jOITTCXvXMCgRE5)#Mi}^i=_~O+rc2wzq%|LhI@YN?+;?wcN&-8o` zxPI?GTE71t`e6AX`e=C#eY}j&y~}Uke)z|;-M>B|#2zzx#}>G_J$wZDfeYFCX#Zo{ zda`b%Vrw0KgxFJ_5#g29a1^10yXrn(vTX-lCg9y!aW+3sT>ky)$DJ?U{}~Ou^3b~x z4f?@fjAOCJ(5^!|lKT(%S#xibvwL!(pEW zTi4?n9|g$G)y*eMw*96Dxv{db4Uj**-T(FbKmYj!Anm;rk^&jjqzRzwBcNkri3h6> Ll1p(Ldqe*LFSJw# diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@adler32.c b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@adler32.c deleted file mode 100644 index 33d70c606..000000000 --- a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@adler32.c +++ /dev/null @@ -1,178 +0,0 @@ -/* adler32.c -- compute the Adler-32 checksum of a data stream - * Copyright (C) 1995-2011 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* @(#) $Id$ */ -#include "zutil.h" - -#define local static - -local uLong adler32_combine_ OF((uLong adler1, uLong adler2, z_off64_t len2)); - -#define BASE 65521 /* largest prime smaller than 65536 */ -#define NMAX 5552 -/* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */ - -#define DO1(buf,i) {adler += (buf)[i]; sum2 += adler;} -#define DO2(buf,i) DO1(buf,i); DO1(buf,i+1); -#define DO4(buf,i) DO2(buf,i); DO2(buf,i+2); -#define DO8(buf,i) DO4(buf,i); DO4(buf,i+4); -#define DO16(buf) DO8(buf,0); DO8(buf,8); - -/* use NO_DIVIDE if your processor does not do division in hardware -- - try it both ways to see which is faster */ -#ifdef NO_DIVIDE -/* note that this assumes BASE is 65521, where 65536 % 65521 == 15 - (thank you to John Reiser for pointing this out) */ -# define CHOP(a) \ - do { \ - unsigned long tmp = a >> 16; \ - a &= 0xffffUL; \ - a += (tmp << 4) - tmp; \ - } while (0) -# define MOD28(a) \ - do { \ - CHOP(a); \ - if (a >= BASE) a -= BASE; \ - } while (0) -# define MOD(a) \ - do { \ - CHOP(a); \ - MOD28(a); \ - } while (0) -# define MOD63(a) \ - do { /* this assumes a is not negative */ \ - z_off64_t tmp = a >> 32; \ - a &= 0xffffffffL; \ - a += (tmp << 8) - (tmp << 5) + tmp; \ - tmp = a >> 16; \ - a &= 0xffffL; \ - a += (tmp << 4) - tmp; \ - tmp = a >> 16; \ - a &= 0xffffL; \ - a += (tmp << 4) - tmp; \ - if (a >= BASE) a -= BASE; \ - } while (0) -#else -# define MOD(a) a %= BASE -# define MOD28(a) a %= BASE -# define MOD63(a) a %= BASE -#endif - -/* ========================================================================= */ -uLong ZEXPORT adler32(adler, buf, len) - uLong adler; - const Bytef *buf; - uInt len; -{ - unsigned long sum2; - unsigned n; - - /* split Adler-32 into component sums */ - sum2 = (adler >> 16) & 0xffff; - adler &= 0xffff; - - /* in case user likes doing a byte at a time, keep it fast */ - if (len == 1) { - adler += buf[0]; - if (adler >= BASE) - adler -= BASE; - sum2 += adler; - if (sum2 >= BASE) - sum2 -= BASE; - return adler | (sum2 << 16); - } - - /* initial Adler-32 value (deferred check for len == 1 speed) */ - if (buf == Z_NULL) - return 1L; - - /* in case short lengths are provided, keep it somewhat fast */ - if (len < 16) { - while (len--) { - adler += *buf++; - sum2 += adler; - } - if (adler >= BASE) - adler -= BASE; - MOD28(sum2); /* only added so many BASE's */ - return adler | (sum2 << 16); - } - - /* do length NMAX blocks -- requires just one modulo operation */ - while (len >= NMAX) { - len -= NMAX; - n = NMAX / 16; /* NMAX is divisible by 16 */ - do { - DO16(buf); /* 16 sums unrolled */ - buf += 16; - } while (--n); - MOD(adler); - MOD(sum2); - } - - /* do remaining bytes (less than NMAX, still just one modulo) */ - if (len) { /* avoid modulos if none remaining */ - while (len >= 16) { - len -= 16; - DO16(buf); - buf += 16; - } - while (len--) { - adler += *buf++; - sum2 += adler; - } - MOD(adler); - MOD(sum2); - } - - /* return recombined sums */ - return adler | (sum2 << 16); -} - -/* ========================================================================= */ -local uLong adler32_combine_(adler1, adler2, len2) - uLong adler1; - uLong adler2; - z_off64_t len2; -{ - unsigned long sum1; - unsigned long sum2; - unsigned rem; - - /* for negative len, return invalid adler32 as a clue for debugging */ - if (len2 < 0) - return 0xffffffffUL; - - /* the derivation of this formula is left as an exercise for the reader */ - MOD63(len2); /* assumes len2 >= 0 */ - rem = (unsigned)len2; - sum1 = adler1 & 0xffff; - sum2 = rem * sum1; - MOD(sum2); - sum1 += (adler2 & 0xffff) + BASE - 1; - sum2 += ((adler1 >> 16) & 0xffff) + ((adler2 >> 16) & 0xffff) + BASE - rem; - if (sum1 >= BASE) sum1 -= BASE; - if (sum1 >= BASE) sum1 -= BASE; - if (sum2 >= (BASE << 1)) sum2 -= (BASE << 1); - if (sum2 >= BASE) sum2 -= BASE; - return sum1 | (sum2 << 16); -} - -/* ========================================================================= */ -uLong ZEXPORT adler32_combine(adler1, adler2, len2) - uLong adler1; - uLong adler2; - z_off_t len2; -{ - return adler32_combine_(adler1, adler2, len2); -} - -uLong ZEXPORT adler32_combine64(adler1, adler2, len2) - uLong adler1; - uLong adler2; - z_off64_t len2; -{ - return adler32_combine_(adler1, adler2, len2); -} diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@adler32.c.blob b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@adler32.c.blob deleted file mode 100644 index bd2dc920f0b3878917e12ffe98ec9cfdf666aa99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5275 zcmcInU2NOd6~0&L3Rh4I*%DmC$TBWXI!O^lNl_H}FQy~OnGs7$C8tUQQxw>^C`$!~FUq2RI2;hrQ%u#+nS!J;g3POBT96S<7jNiLqvJ&V~!wi?sq`7z|J(eycDm^oq zYt849@zdEPEaUPM*)%M%W)jKcr%#Y2)__YT)2DM>GCgs8I+-Bq>51%#B$v-*rxVut z{8T!T$>*XGL{II+4?En>Y0MJz~mrIR;Z?S2%6V) zxyUR;BeNo36mkOL;K zmql}IAr|GL5xOGK^NoYkiZLeuph9qz3U5jUNtVo7LnSVlqH0Kxgv6#O^EI(Zo1#*Y zc~hh-ylzNp8Ei_bQ8RQ+GdpwILT2)Z5d+D^Kmsw7T0F&H5GSQ|8Qnu??~LA&O#&n-^wzoip2~*m{Q{EsERPP%-tQ zR4R3|XAas%$=I5VEGdvB?R9Ifr!VMwL*#W~woA7)V=rix+QS%Z9V>&kQq4->hx)vc zXb&^ed?R#GFs%$zL`A67ILmPll+G7)9OUf(rxu%qu(L)X>bk0JBdQ#!>2+~^XlUA9 zpz*5X6kgCRQ##Krh(364!dp=Ec~KILDRMsz6d@GsE4-s#%?F&u;$&t-cR$rghc0x%Y_E z6@G!^WvQ%obmwi`U+czQc#v4tN+m-yHS1Ggqk7poXz(E+RCQfcg<7|r6b$cbCxwrx zR>-iU<6~xbK0@#SirF8j|L|w8EvKIMo~=%6YME;OK0%98;Lk~nMm&}#0PDa+U%&R<)x>X}M0dys zw60Pc+VNOge`6AC02MD99NdRj_O1-u@CtgvhQ@a5B4qFM-`SAt4{nLKKK#>nPHjZC zL9*cpKSh2=P3m~f6ibw^P%Q!ZDb*zIAtqZe>~K8^B#C!JSRox8r0~+fQp|>z(CfQT8rui#F^uiVehk@&`yoTDoFRAQtk1o3 z^q>B(e*6;2nbw8#`|>^(*T41eZ~sX7@!k(xdUD@0?ie3r@rq*wy8Wc}RyXRm+q zx6!9N*J1mx{TR$GI2`xBcJ}ToopXEai}n{;{6fzQu=}l^w+P0Y_vm-8ocv{fDwBvF zhQ;=$psb-3C`;kty%bL!9HWj;uF4(X0x?Rm8iKz{Q3i^b@c$CXx*r8s`~F}*(J+O2T13b*6+Ln!90CM~ z(=lKp@_>clO8e4b7H51Jkk5FY39>lr$$~uZI}aM($AcUW4#!wLaB8`C#tSbUSZ3HqC(H$h(?I(OG6 zKl$ae>D0s-IBT0Hd8Up4PoVj@^KqaFa=%4$Px(OE&*IsAvrn^F8jvV}N&WQlyH{Si z_faAP=R%LRP79A7QeKjmqMo;!5p`&cA}a4Uq;HN;MpX$DjWsoL5o|e~&VCz_YQw3$ zp56e9d)eMeuySib`QXwYzw#)UXkYkt&+UGgJNeju5_kXnyTL>TD0ealw;8Ol8KK(a zLm}@7*zI-pf?bg38g~0UePFkb?IU(See4(ctN-vWCo+-s*pUwGmK}oK93Ki>*nQ4E zzy{gGc6nTY?P6U7`?dSjdDrUuw-cGzdhA#ScFPXIZjKK{ENqw41=t{)*lv#-u-&Yi zU<*J0-lvt!U;S{{D1f(vOP;MDP!s?*33GvQK3&$R;v|;x!R2s-;r4^h7Qm&u868P8U&~IG;(s_1xd=OyB kJp{D|GGcN0lIm0;=$caldC_?h 64K on 16-bit machine: */ - if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR; -#endif - stream.next_out = dest; - stream.avail_out = (uInt)*destLen; - if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR; - - stream.zalloc = (alloc_func)0; - stream.zfree = (free_func)0; - stream.opaque = (voidpf)0; - - err = deflateInit(&stream, level); - if (err != Z_OK) return err; - - err = deflate(&stream, Z_FINISH); - if (err != Z_STREAM_END) { - deflateEnd(&stream); - return err == Z_OK ? Z_BUF_ERROR : err; - } - *destLen = stream.total_out; - - err = deflateEnd(&stream); - return err; -} - -/* =========================================================================== - */ -int ZEXPORT compress (dest, destLen, source, sourceLen) - Bytef *dest; - uLongf *destLen; - const Bytef *source; - uLong sourceLen; -{ - return compress2(dest, destLen, source, sourceLen, Z_DEFAULT_COMPRESSION); -} - - -/* =========================================================================== - If the default memLevel or windowBits for deflateInit() is changed, then - this function needs to be updated. - */ -uLong ZEXPORT compressBound (sourceLen) - uLong sourceLen; -{ - return sourceLen + (sourceLen >> 12) + (sourceLen >> 14) + - (sourceLen >> 25) + 13; -} diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@compress.c.blob b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@compress.c.blob deleted file mode 100644 index 512a8688fd05c532b7927d5abc0cd0556bd8a9ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5493 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 diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@crc32.c b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@crc32.c deleted file mode 100644 index 979a7190a..000000000 --- a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@crc32.c +++ /dev/null @@ -1,425 +0,0 @@ -/* crc32.c -- compute the CRC-32 of a data stream - * Copyright (C) 1995-2006, 2010, 2011, 2012 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - * - * Thanks to Rodney Brown for his contribution of faster - * CRC methods: exclusive-oring 32 bits of data at a time, and pre-computing - * tables for updating the shift register in one step with three exclusive-ors - * instead of four steps with four exclusive-ors. This results in about a - * factor of two increase in speed on a Power PC G4 (PPC7455) using gcc -O3. - */ - -/* @(#) $Id$ */ - -/* - Note on the use of DYNAMIC_CRC_TABLE: there is no mutex or semaphore - protection on the static variables used to control the first-use generation - of the crc tables. Therefore, if you #define DYNAMIC_CRC_TABLE, you should - first call get_crc_table() to initialize the tables before allowing more than - one thread to use crc32(). - - DYNAMIC_CRC_TABLE and MAKECRCH can be #defined to write out crc32.h. - */ - -#ifdef MAKECRCH -# include -# ifndef DYNAMIC_CRC_TABLE -# define DYNAMIC_CRC_TABLE -# endif /* !DYNAMIC_CRC_TABLE */ -#endif /* MAKECRCH */ - -#include "zutil.h" /* for STDC and FAR definitions */ - -#define local static - -/* Definitions for doing the crc four data bytes at a time. */ -#if !defined(NOBYFOUR) && defined(Z_U4) -# define BYFOUR -#endif -#ifdef BYFOUR - local unsigned long crc32_little OF((unsigned long, - const unsigned char FAR *, unsigned)); - local unsigned long crc32_big OF((unsigned long, - const unsigned char FAR *, unsigned)); -# define TBLS 8 -#else -# define TBLS 1 -#endif /* BYFOUR */ - -/* Local functions for crc concatenation */ -local unsigned long gf2_matrix_times OF((unsigned long *mat, - unsigned long vec)); -local void gf2_matrix_square OF((unsigned long *square, unsigned long *mat)); -local uLong crc32_combine_ OF((uLong crc1, uLong crc2, z_off64_t len2)); - - -#ifdef DYNAMIC_CRC_TABLE - -local volatile int crc_table_empty = 1; -local z_crc_t FAR crc_table[TBLS][256]; -local void make_crc_table OF((void)); -#ifdef MAKECRCH - local void write_table OF((FILE *, const z_crc_t FAR *)); -#endif /* MAKECRCH */ -/* - Generate tables for a byte-wise 32-bit CRC calculation on the polynomial: - x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1. - - Polynomials over GF(2) are represented in binary, one bit per coefficient, - with the lowest powers in the most significant bit. Then adding polynomials - is just exclusive-or, and multiplying a polynomial by x is a right shift by - one. If we call the above polynomial p, and represent a byte as the - polynomial q, also with the lowest power in the most significant bit (so the - byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p, - where a mod b means the remainder after dividing a by b. - - This calculation is done using the shift-register method of multiplying and - taking the remainder. The register is initialized to zero, and for each - incoming bit, x^32 is added mod p to the register if the bit is a one (where - x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by - x (which is shifting right by one and adding x^32 mod p if the bit shifted - out is a one). We start with the highest power (least significant bit) of - q and repeat for all eight bits of q. - - The first table is simply the CRC of all possible eight bit values. This is - all the information needed to generate CRCs on data a byte at a time for all - combinations of CRC register values and incoming bytes. The remaining tables - allow for word-at-a-time CRC calculation for both big-endian and little- - endian machines, where a word is four bytes. -*/ -local void make_crc_table() -{ - z_crc_t c; - int n, k; - z_crc_t poly; /* polynomial exclusive-or pattern */ - /* terms of polynomial defining this crc (except x^32): */ - static volatile int first = 1; /* flag to limit concurrent making */ - static const unsigned char p[] = {0,1,2,4,5,7,8,10,11,12,16,22,23,26}; - - /* See if another task is already doing this (not thread-safe, but better - than nothing -- significantly reduces duration of vulnerability in - case the advice about DYNAMIC_CRC_TABLE is ignored) */ - if (first) { - first = 0; - - /* make exclusive-or pattern from polynomial (0xedb88320UL) */ - poly = 0; - for (n = 0; n < (int)(sizeof(p)/sizeof(unsigned char)); n++) - poly |= (z_crc_t)1 << (31 - p[n]); - - /* generate a crc for every 8-bit value */ - for (n = 0; n < 256; n++) { - c = (z_crc_t)n; - for (k = 0; k < 8; k++) - c = c & 1 ? poly ^ (c >> 1) : c >> 1; - crc_table[0][n] = c; - } - -#ifdef BYFOUR - /* generate crc for each value followed by one, two, and three zeros, - and then the byte reversal of those as well as the first table */ - for (n = 0; n < 256; n++) { - c = crc_table[0][n]; - crc_table[4][n] = ZSWAP32(c); - for (k = 1; k < 4; k++) { - c = crc_table[0][c & 0xff] ^ (c >> 8); - crc_table[k][n] = c; - crc_table[k + 4][n] = ZSWAP32(c); - } - } -#endif /* BYFOUR */ - - crc_table_empty = 0; - } - else { /* not first */ - /* wait for the other guy to finish (not efficient, but rare) */ - while (crc_table_empty) - ; - } - -#ifdef MAKECRCH - /* write out CRC tables to crc32.h */ - { - FILE *out; - - out = fopen("crc32.h", "w"); - if (out == NULL) return; - fprintf(out, "/* crc32.h -- tables for rapid CRC calculation\n"); - fprintf(out, " * Generated automatically by crc32.c\n */\n\n"); - fprintf(out, "local const z_crc_t FAR "); - fprintf(out, "crc_table[TBLS][256] =\n{\n {\n"); - write_table(out, crc_table[0]); -# ifdef BYFOUR - fprintf(out, "#ifdef BYFOUR\n"); - for (k = 1; k < 8; k++) { - fprintf(out, " },\n {\n"); - write_table(out, crc_table[k]); - } - fprintf(out, "#endif\n"); -# endif /* BYFOUR */ - fprintf(out, " }\n};\n"); - fclose(out); - } -#endif /* MAKECRCH */ -} - -#ifdef MAKECRCH -local void write_table(out, table) - FILE *out; - const z_crc_t FAR *table; -{ - int n; - - for (n = 0; n < 256; n++) - fprintf(out, "%s0x%08lxUL%s", n % 5 ? "" : " ", - (unsigned long)(table[n]), - n == 255 ? "\n" : (n % 5 == 4 ? ",\n" : ", ")); -} -#endif /* MAKECRCH */ - -#else /* !DYNAMIC_CRC_TABLE */ -/* ======================================================================== - * Tables of CRC-32s of all single-byte values, made by make_crc_table(). - */ -#include "crc32.h" -#endif /* DYNAMIC_CRC_TABLE */ - -/* ========================================================================= - * This function can be used by asm versions of crc32() - */ -const z_crc_t FAR * ZEXPORT get_crc_table() -{ -#ifdef DYNAMIC_CRC_TABLE - if (crc_table_empty) - make_crc_table(); -#endif /* DYNAMIC_CRC_TABLE */ - return (const z_crc_t FAR *)crc_table; -} - -/* ========================================================================= */ -#define DO1 crc = crc_table[0][((int)crc ^ (*buf++)) & 0xff] ^ (crc >> 8) -#define DO8 DO1; DO1; DO1; DO1; DO1; DO1; DO1; DO1 - -/* ========================================================================= */ -unsigned long ZEXPORT crc32(crc, buf, len) - unsigned long crc; - const unsigned char FAR *buf; - uInt len; -{ - if (buf == Z_NULL) return 0UL; - -#ifdef DYNAMIC_CRC_TABLE - if (crc_table_empty) - make_crc_table(); -#endif /* DYNAMIC_CRC_TABLE */ - -#ifdef BYFOUR - if (sizeof(void *) == sizeof(ptrdiff_t)) { - z_crc_t endian; - - endian = 1; - if (*((unsigned char *)(&endian))) - return crc32_little(crc, buf, len); - else - return crc32_big(crc, buf, len); - } -#endif /* BYFOUR */ - crc = crc ^ 0xffffffffUL; - while (len >= 8) { - DO8; - len -= 8; - } - if (len) do { - DO1; - } while (--len); - return crc ^ 0xffffffffUL; -} - -#ifdef BYFOUR - -/* ========================================================================= */ -#define DOLIT4 c ^= *buf4++; \ - c = crc_table[3][c & 0xff] ^ crc_table[2][(c >> 8) & 0xff] ^ \ - crc_table[1][(c >> 16) & 0xff] ^ crc_table[0][c >> 24] -#define DOLIT32 DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4 - -/* ========================================================================= */ -local unsigned long crc32_little(crc, buf, len) - unsigned long crc; - const unsigned char FAR *buf; - unsigned len; -{ - register z_crc_t c; - register const z_crc_t FAR *buf4; - - c = (z_crc_t)crc; - c = ~c; - while (len && ((ptrdiff_t)buf & 3)) { - c = crc_table[0][(c ^ *buf++) & 0xff] ^ (c >> 8); - len--; - } - - buf4 = (const z_crc_t FAR *)(const void FAR *)buf; - while (len >= 32) { - DOLIT32; - len -= 32; - } - while (len >= 4) { - DOLIT4; - len -= 4; - } - buf = (const unsigned char FAR *)buf4; - - if (len) do { - c = crc_table[0][(c ^ *buf++) & 0xff] ^ (c >> 8); - } while (--len); - c = ~c; - return (unsigned long)c; -} - -/* ========================================================================= */ -#define DOBIG4 c ^= *++buf4; \ - c = crc_table[4][c & 0xff] ^ crc_table[5][(c >> 8) & 0xff] ^ \ - crc_table[6][(c >> 16) & 0xff] ^ crc_table[7][c >> 24] -#define DOBIG32 DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4 - -/* ========================================================================= */ -local unsigned long crc32_big(crc, buf, len) - unsigned long crc; - const unsigned char FAR *buf; - unsigned len; -{ - register z_crc_t c; - register const z_crc_t FAR *buf4; - - c = ZSWAP32((z_crc_t)crc); - c = ~c; - while (len && ((ptrdiff_t)buf & 3)) { - c = crc_table[4][(c >> 24) ^ *buf++] ^ (c << 8); - len--; - } - - buf4 = (const z_crc_t FAR *)(const void FAR *)buf; - buf4--; - while (len >= 32) { - DOBIG32; - len -= 32; - } - while (len >= 4) { - DOBIG4; - len -= 4; - } - buf4++; - buf = (const unsigned char FAR *)buf4; - - if (len) do { - c = crc_table[4][(c >> 24) ^ *buf++] ^ (c << 8); - } while (--len); - c = ~c; - return (unsigned long)(ZSWAP32(c)); -} - -#endif /* BYFOUR */ - -#define GF2_DIM 32 /* dimension of GF(2) vectors (length of CRC) */ - -/* ========================================================================= */ -local unsigned long gf2_matrix_times(mat, vec) - unsigned long *mat; - unsigned long vec; -{ - unsigned long sum; - - sum = 0; - while (vec) { - if (vec & 1) - sum ^= *mat; - vec >>= 1; - mat++; - } - return sum; -} - -/* ========================================================================= */ -local void gf2_matrix_square(square, mat) - unsigned long *square; - unsigned long *mat; -{ - int n; - - for (n = 0; n < GF2_DIM; n++) - square[n] = gf2_matrix_times(mat, mat[n]); -} - -/* ========================================================================= */ -local uLong crc32_combine_(crc1, crc2, len2) - uLong crc1; - uLong crc2; - z_off64_t len2; -{ - int n; - unsigned long row; - unsigned long even[GF2_DIM]; /* even-power-of-two zeros operator */ - unsigned long odd[GF2_DIM]; /* odd-power-of-two zeros operator */ - - /* degenerate case (also disallow negative lengths) */ - if (len2 <= 0) - return crc1; - - /* put operator for one zero bit in odd */ - odd[0] = 0xedb88320UL; /* CRC-32 polynomial */ - row = 1; - for (n = 1; n < GF2_DIM; n++) { - odd[n] = row; - row <<= 1; - } - - /* put operator for two zero bits in even */ - gf2_matrix_square(even, odd); - - /* put operator for four zero bits in odd */ - gf2_matrix_square(odd, even); - - /* apply len2 zeros to crc1 (first square will put the operator for one - zero byte, eight zero bits, in even) */ - do { - /* apply zeros operator for this bit of len2 */ - gf2_matrix_square(even, odd); - if (len2 & 1) - crc1 = gf2_matrix_times(even, crc1); - len2 >>= 1; - - /* if no more bits set, then done */ - if (len2 == 0) - break; - - /* another iteration of the loop with odd and even swapped */ - gf2_matrix_square(odd, even); - if (len2 & 1) - crc1 = gf2_matrix_times(odd, crc1); - len2 >>= 1; - - /* if no more bits set, then done */ - } while (len2 != 0); - - /* return combined crc */ - crc1 ^= crc2; - return crc1; -} - -/* ========================================================================= */ -uLong ZEXPORT crc32_combine(crc1, crc2, len2) - uLong crc1; - uLong crc2; - z_off_t len2; -{ - return crc32_combine_(crc1, crc2, len2); -} - -uLong ZEXPORT crc32_combine64(crc1, crc2, len2) - uLong crc1; - uLong crc2; - z_off64_t len2; -{ - return crc32_combine_(crc1, crc2, len2); -} diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@crc32.c.blob b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@crc32.c.blob deleted file mode 100644 index 5b8c4f21414bbb4f180fbd22dd25677dfc5de0b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7740 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 diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@crc32.h b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@crc32.h deleted file mode 100644 index 9e0c77810..000000000 --- a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@crc32.h +++ /dev/null @@ -1,441 +0,0 @@ -/* crc32.h -- tables for rapid CRC calculation - * Generated automatically by crc32.c - */ - -local const z_crc_t FAR crc_table[TBLS][256] = -{ - { - 0x00000000UL, 0x77073096UL, 0xee0e612cUL, 0x990951baUL, 0x076dc419UL, - 0x706af48fUL, 0xe963a535UL, 0x9e6495a3UL, 0x0edb8832UL, 0x79dcb8a4UL, - 0xe0d5e91eUL, 0x97d2d988UL, 0x09b64c2bUL, 0x7eb17cbdUL, 0xe7b82d07UL, - 0x90bf1d91UL, 0x1db71064UL, 0x6ab020f2UL, 0xf3b97148UL, 0x84be41deUL, - 0x1adad47dUL, 0x6ddde4ebUL, 0xf4d4b551UL, 0x83d385c7UL, 0x136c9856UL, - 0x646ba8c0UL, 0xfd62f97aUL, 0x8a65c9ecUL, 0x14015c4fUL, 0x63066cd9UL, - 0xfa0f3d63UL, 0x8d080df5UL, 0x3b6e20c8UL, 0x4c69105eUL, 0xd56041e4UL, - 0xa2677172UL, 0x3c03e4d1UL, 0x4b04d447UL, 0xd20d85fdUL, 0xa50ab56bUL, - 0x35b5a8faUL, 0x42b2986cUL, 0xdbbbc9d6UL, 0xacbcf940UL, 0x32d86ce3UL, - 0x45df5c75UL, 0xdcd60dcfUL, 0xabd13d59UL, 0x26d930acUL, 0x51de003aUL, - 0xc8d75180UL, 0xbfd06116UL, 0x21b4f4b5UL, 0x56b3c423UL, 0xcfba9599UL, - 0xb8bda50fUL, 0x2802b89eUL, 0x5f058808UL, 0xc60cd9b2UL, 0xb10be924UL, - 0x2f6f7c87UL, 0x58684c11UL, 0xc1611dabUL, 0xb6662d3dUL, 0x76dc4190UL, - 0x01db7106UL, 0x98d220bcUL, 0xefd5102aUL, 0x71b18589UL, 0x06b6b51fUL, - 0x9fbfe4a5UL, 0xe8b8d433UL, 0x7807c9a2UL, 0x0f00f934UL, 0x9609a88eUL, - 0xe10e9818UL, 0x7f6a0dbbUL, 0x086d3d2dUL, 0x91646c97UL, 0xe6635c01UL, - 0x6b6b51f4UL, 0x1c6c6162UL, 0x856530d8UL, 0xf262004eUL, 0x6c0695edUL, - 0x1b01a57bUL, 0x8208f4c1UL, 0xf50fc457UL, 0x65b0d9c6UL, 0x12b7e950UL, - 0x8bbeb8eaUL, 0xfcb9887cUL, 0x62dd1ddfUL, 0x15da2d49UL, 0x8cd37cf3UL, - 0xfbd44c65UL, 0x4db26158UL, 0x3ab551ceUL, 0xa3bc0074UL, 0xd4bb30e2UL, - 0x4adfa541UL, 0x3dd895d7UL, 0xa4d1c46dUL, 0xd3d6f4fbUL, 0x4369e96aUL, - 0x346ed9fcUL, 0xad678846UL, 0xda60b8d0UL, 0x44042d73UL, 0x33031de5UL, - 0xaa0a4c5fUL, 0xdd0d7cc9UL, 0x5005713cUL, 0x270241aaUL, 0xbe0b1010UL, - 0xc90c2086UL, 0x5768b525UL, 0x206f85b3UL, 0xb966d409UL, 0xce61e49fUL, - 0x5edef90eUL, 0x29d9c998UL, 0xb0d09822UL, 0xc7d7a8b4UL, 0x59b33d17UL, - 0x2eb40d81UL, 0xb7bd5c3bUL, 0xc0ba6cadUL, 0xedb88320UL, 0x9abfb3b6UL, - 0x03b6e20cUL, 0x74b1d29aUL, 0xead54739UL, 0x9dd277afUL, 0x04db2615UL, - 0x73dc1683UL, 0xe3630b12UL, 0x94643b84UL, 0x0d6d6a3eUL, 0x7a6a5aa8UL, - 0xe40ecf0bUL, 0x9309ff9dUL, 0x0a00ae27UL, 0x7d079eb1UL, 0xf00f9344UL, - 0x8708a3d2UL, 0x1e01f268UL, 0x6906c2feUL, 0xf762575dUL, 0x806567cbUL, - 0x196c3671UL, 0x6e6b06e7UL, 0xfed41b76UL, 0x89d32be0UL, 0x10da7a5aUL, - 0x67dd4accUL, 0xf9b9df6fUL, 0x8ebeeff9UL, 0x17b7be43UL, 0x60b08ed5UL, - 0xd6d6a3e8UL, 0xa1d1937eUL, 0x38d8c2c4UL, 0x4fdff252UL, 0xd1bb67f1UL, - 0xa6bc5767UL, 0x3fb506ddUL, 0x48b2364bUL, 0xd80d2bdaUL, 0xaf0a1b4cUL, - 0x36034af6UL, 0x41047a60UL, 0xdf60efc3UL, 0xa867df55UL, 0x316e8eefUL, - 0x4669be79UL, 0xcb61b38cUL, 0xbc66831aUL, 0x256fd2a0UL, 0x5268e236UL, - 0xcc0c7795UL, 0xbb0b4703UL, 0x220216b9UL, 0x5505262fUL, 0xc5ba3bbeUL, - 0xb2bd0b28UL, 0x2bb45a92UL, 0x5cb36a04UL, 0xc2d7ffa7UL, 0xb5d0cf31UL, - 0x2cd99e8bUL, 0x5bdeae1dUL, 0x9b64c2b0UL, 0xec63f226UL, 0x756aa39cUL, - 0x026d930aUL, 0x9c0906a9UL, 0xeb0e363fUL, 0x72076785UL, 0x05005713UL, - 0x95bf4a82UL, 0xe2b87a14UL, 0x7bb12baeUL, 0x0cb61b38UL, 0x92d28e9bUL, - 0xe5d5be0dUL, 0x7cdcefb7UL, 0x0bdbdf21UL, 0x86d3d2d4UL, 0xf1d4e242UL, - 0x68ddb3f8UL, 0x1fda836eUL, 0x81be16cdUL, 0xf6b9265bUL, 0x6fb077e1UL, - 0x18b74777UL, 0x88085ae6UL, 0xff0f6a70UL, 0x66063bcaUL, 0x11010b5cUL, - 0x8f659effUL, 0xf862ae69UL, 0x616bffd3UL, 0x166ccf45UL, 0xa00ae278UL, - 0xd70dd2eeUL, 0x4e048354UL, 0x3903b3c2UL, 0xa7672661UL, 0xd06016f7UL, - 0x4969474dUL, 0x3e6e77dbUL, 0xaed16a4aUL, 0xd9d65adcUL, 0x40df0b66UL, - 0x37d83bf0UL, 0xa9bcae53UL, 0xdebb9ec5UL, 0x47b2cf7fUL, 0x30b5ffe9UL, - 0xbdbdf21cUL, 0xcabac28aUL, 0x53b39330UL, 0x24b4a3a6UL, 0xbad03605UL, - 0xcdd70693UL, 0x54de5729UL, 0x23d967bfUL, 0xb3667a2eUL, 0xc4614ab8UL, - 0x5d681b02UL, 0x2a6f2b94UL, 0xb40bbe37UL, 0xc30c8ea1UL, 0x5a05df1bUL, - 0x2d02ef8dUL -#ifdef BYFOUR - }, - { - 0x00000000UL, 0x191b3141UL, 0x32366282UL, 0x2b2d53c3UL, 0x646cc504UL, - 0x7d77f445UL, 0x565aa786UL, 0x4f4196c7UL, 0xc8d98a08UL, 0xd1c2bb49UL, - 0xfaefe88aUL, 0xe3f4d9cbUL, 0xacb54f0cUL, 0xb5ae7e4dUL, 0x9e832d8eUL, - 0x87981ccfUL, 0x4ac21251UL, 0x53d92310UL, 0x78f470d3UL, 0x61ef4192UL, - 0x2eaed755UL, 0x37b5e614UL, 0x1c98b5d7UL, 0x05838496UL, 0x821b9859UL, - 0x9b00a918UL, 0xb02dfadbUL, 0xa936cb9aUL, 0xe6775d5dUL, 0xff6c6c1cUL, - 0xd4413fdfUL, 0xcd5a0e9eUL, 0x958424a2UL, 0x8c9f15e3UL, 0xa7b24620UL, - 0xbea97761UL, 0xf1e8e1a6UL, 0xe8f3d0e7UL, 0xc3de8324UL, 0xdac5b265UL, - 0x5d5daeaaUL, 0x44469febUL, 0x6f6bcc28UL, 0x7670fd69UL, 0x39316baeUL, - 0x202a5aefUL, 0x0b07092cUL, 0x121c386dUL, 0xdf4636f3UL, 0xc65d07b2UL, - 0xed705471UL, 0xf46b6530UL, 0xbb2af3f7UL, 0xa231c2b6UL, 0x891c9175UL, - 0x9007a034UL, 0x179fbcfbUL, 0x0e848dbaUL, 0x25a9de79UL, 0x3cb2ef38UL, - 0x73f379ffUL, 0x6ae848beUL, 0x41c51b7dUL, 0x58de2a3cUL, 0xf0794f05UL, - 0xe9627e44UL, 0xc24f2d87UL, 0xdb541cc6UL, 0x94158a01UL, 0x8d0ebb40UL, - 0xa623e883UL, 0xbf38d9c2UL, 0x38a0c50dUL, 0x21bbf44cUL, 0x0a96a78fUL, - 0x138d96ceUL, 0x5ccc0009UL, 0x45d73148UL, 0x6efa628bUL, 0x77e153caUL, - 0xbabb5d54UL, 0xa3a06c15UL, 0x888d3fd6UL, 0x91960e97UL, 0xded79850UL, - 0xc7cca911UL, 0xece1fad2UL, 0xf5facb93UL, 0x7262d75cUL, 0x6b79e61dUL, - 0x4054b5deUL, 0x594f849fUL, 0x160e1258UL, 0x0f152319UL, 0x243870daUL, - 0x3d23419bUL, 0x65fd6ba7UL, 0x7ce65ae6UL, 0x57cb0925UL, 0x4ed03864UL, - 0x0191aea3UL, 0x188a9fe2UL, 0x33a7cc21UL, 0x2abcfd60UL, 0xad24e1afUL, - 0xb43fd0eeUL, 0x9f12832dUL, 0x8609b26cUL, 0xc94824abUL, 0xd05315eaUL, - 0xfb7e4629UL, 0xe2657768UL, 0x2f3f79f6UL, 0x362448b7UL, 0x1d091b74UL, - 0x04122a35UL, 0x4b53bcf2UL, 0x52488db3UL, 0x7965de70UL, 0x607eef31UL, - 0xe7e6f3feUL, 0xfefdc2bfUL, 0xd5d0917cUL, 0xcccba03dUL, 0x838a36faUL, - 0x9a9107bbUL, 0xb1bc5478UL, 0xa8a76539UL, 0x3b83984bUL, 0x2298a90aUL, - 0x09b5fac9UL, 0x10aecb88UL, 0x5fef5d4fUL, 0x46f46c0eUL, 0x6dd93fcdUL, - 0x74c20e8cUL, 0xf35a1243UL, 0xea412302UL, 0xc16c70c1UL, 0xd8774180UL, - 0x9736d747UL, 0x8e2de606UL, 0xa500b5c5UL, 0xbc1b8484UL, 0x71418a1aUL, - 0x685abb5bUL, 0x4377e898UL, 0x5a6cd9d9UL, 0x152d4f1eUL, 0x0c367e5fUL, - 0x271b2d9cUL, 0x3e001cddUL, 0xb9980012UL, 0xa0833153UL, 0x8bae6290UL, - 0x92b553d1UL, 0xddf4c516UL, 0xc4eff457UL, 0xefc2a794UL, 0xf6d996d5UL, - 0xae07bce9UL, 0xb71c8da8UL, 0x9c31de6bUL, 0x852aef2aUL, 0xca6b79edUL, - 0xd37048acUL, 0xf85d1b6fUL, 0xe1462a2eUL, 0x66de36e1UL, 0x7fc507a0UL, - 0x54e85463UL, 0x4df36522UL, 0x02b2f3e5UL, 0x1ba9c2a4UL, 0x30849167UL, - 0x299fa026UL, 0xe4c5aeb8UL, 0xfdde9ff9UL, 0xd6f3cc3aUL, 0xcfe8fd7bUL, - 0x80a96bbcUL, 0x99b25afdUL, 0xb29f093eUL, 0xab84387fUL, 0x2c1c24b0UL, - 0x350715f1UL, 0x1e2a4632UL, 0x07317773UL, 0x4870e1b4UL, 0x516bd0f5UL, - 0x7a468336UL, 0x635db277UL, 0xcbfad74eUL, 0xd2e1e60fUL, 0xf9ccb5ccUL, - 0xe0d7848dUL, 0xaf96124aUL, 0xb68d230bUL, 0x9da070c8UL, 0x84bb4189UL, - 0x03235d46UL, 0x1a386c07UL, 0x31153fc4UL, 0x280e0e85UL, 0x674f9842UL, - 0x7e54a903UL, 0x5579fac0UL, 0x4c62cb81UL, 0x8138c51fUL, 0x9823f45eUL, - 0xb30ea79dUL, 0xaa1596dcUL, 0xe554001bUL, 0xfc4f315aUL, 0xd7626299UL, - 0xce7953d8UL, 0x49e14f17UL, 0x50fa7e56UL, 0x7bd72d95UL, 0x62cc1cd4UL, - 0x2d8d8a13UL, 0x3496bb52UL, 0x1fbbe891UL, 0x06a0d9d0UL, 0x5e7ef3ecUL, - 0x4765c2adUL, 0x6c48916eUL, 0x7553a02fUL, 0x3a1236e8UL, 0x230907a9UL, - 0x0824546aUL, 0x113f652bUL, 0x96a779e4UL, 0x8fbc48a5UL, 0xa4911b66UL, - 0xbd8a2a27UL, 0xf2cbbce0UL, 0xebd08da1UL, 0xc0fdde62UL, 0xd9e6ef23UL, - 0x14bce1bdUL, 0x0da7d0fcUL, 0x268a833fUL, 0x3f91b27eUL, 0x70d024b9UL, - 0x69cb15f8UL, 0x42e6463bUL, 0x5bfd777aUL, 0xdc656bb5UL, 0xc57e5af4UL, - 0xee530937UL, 0xf7483876UL, 0xb809aeb1UL, 0xa1129ff0UL, 0x8a3fcc33UL, - 0x9324fd72UL - }, - { - 0x00000000UL, 0x01c26a37UL, 0x0384d46eUL, 0x0246be59UL, 0x0709a8dcUL, - 0x06cbc2ebUL, 0x048d7cb2UL, 0x054f1685UL, 0x0e1351b8UL, 0x0fd13b8fUL, - 0x0d9785d6UL, 0x0c55efe1UL, 0x091af964UL, 0x08d89353UL, 0x0a9e2d0aUL, - 0x0b5c473dUL, 0x1c26a370UL, 0x1de4c947UL, 0x1fa2771eUL, 0x1e601d29UL, - 0x1b2f0bacUL, 0x1aed619bUL, 0x18abdfc2UL, 0x1969b5f5UL, 0x1235f2c8UL, - 0x13f798ffUL, 0x11b126a6UL, 0x10734c91UL, 0x153c5a14UL, 0x14fe3023UL, - 0x16b88e7aUL, 0x177ae44dUL, 0x384d46e0UL, 0x398f2cd7UL, 0x3bc9928eUL, - 0x3a0bf8b9UL, 0x3f44ee3cUL, 0x3e86840bUL, 0x3cc03a52UL, 0x3d025065UL, - 0x365e1758UL, 0x379c7d6fUL, 0x35dac336UL, 0x3418a901UL, 0x3157bf84UL, - 0x3095d5b3UL, 0x32d36beaUL, 0x331101ddUL, 0x246be590UL, 0x25a98fa7UL, - 0x27ef31feUL, 0x262d5bc9UL, 0x23624d4cUL, 0x22a0277bUL, 0x20e69922UL, - 0x2124f315UL, 0x2a78b428UL, 0x2bbade1fUL, 0x29fc6046UL, 0x283e0a71UL, - 0x2d711cf4UL, 0x2cb376c3UL, 0x2ef5c89aUL, 0x2f37a2adUL, 0x709a8dc0UL, - 0x7158e7f7UL, 0x731e59aeUL, 0x72dc3399UL, 0x7793251cUL, 0x76514f2bUL, - 0x7417f172UL, 0x75d59b45UL, 0x7e89dc78UL, 0x7f4bb64fUL, 0x7d0d0816UL, - 0x7ccf6221UL, 0x798074a4UL, 0x78421e93UL, 0x7a04a0caUL, 0x7bc6cafdUL, - 0x6cbc2eb0UL, 0x6d7e4487UL, 0x6f38fadeUL, 0x6efa90e9UL, 0x6bb5866cUL, - 0x6a77ec5bUL, 0x68315202UL, 0x69f33835UL, 0x62af7f08UL, 0x636d153fUL, - 0x612bab66UL, 0x60e9c151UL, 0x65a6d7d4UL, 0x6464bde3UL, 0x662203baUL, - 0x67e0698dUL, 0x48d7cb20UL, 0x4915a117UL, 0x4b531f4eUL, 0x4a917579UL, - 0x4fde63fcUL, 0x4e1c09cbUL, 0x4c5ab792UL, 0x4d98dda5UL, 0x46c49a98UL, - 0x4706f0afUL, 0x45404ef6UL, 0x448224c1UL, 0x41cd3244UL, 0x400f5873UL, - 0x4249e62aUL, 0x438b8c1dUL, 0x54f16850UL, 0x55330267UL, 0x5775bc3eUL, - 0x56b7d609UL, 0x53f8c08cUL, 0x523aaabbUL, 0x507c14e2UL, 0x51be7ed5UL, - 0x5ae239e8UL, 0x5b2053dfUL, 0x5966ed86UL, 0x58a487b1UL, 0x5deb9134UL, - 0x5c29fb03UL, 0x5e6f455aUL, 0x5fad2f6dUL, 0xe1351b80UL, 0xe0f771b7UL, - 0xe2b1cfeeUL, 0xe373a5d9UL, 0xe63cb35cUL, 0xe7fed96bUL, 0xe5b86732UL, - 0xe47a0d05UL, 0xef264a38UL, 0xeee4200fUL, 0xeca29e56UL, 0xed60f461UL, - 0xe82fe2e4UL, 0xe9ed88d3UL, 0xebab368aUL, 0xea695cbdUL, 0xfd13b8f0UL, - 0xfcd1d2c7UL, 0xfe976c9eUL, 0xff5506a9UL, 0xfa1a102cUL, 0xfbd87a1bUL, - 0xf99ec442UL, 0xf85cae75UL, 0xf300e948UL, 0xf2c2837fUL, 0xf0843d26UL, - 0xf1465711UL, 0xf4094194UL, 0xf5cb2ba3UL, 0xf78d95faUL, 0xf64fffcdUL, - 0xd9785d60UL, 0xd8ba3757UL, 0xdafc890eUL, 0xdb3ee339UL, 0xde71f5bcUL, - 0xdfb39f8bUL, 0xddf521d2UL, 0xdc374be5UL, 0xd76b0cd8UL, 0xd6a966efUL, - 0xd4efd8b6UL, 0xd52db281UL, 0xd062a404UL, 0xd1a0ce33UL, 0xd3e6706aUL, - 0xd2241a5dUL, 0xc55efe10UL, 0xc49c9427UL, 0xc6da2a7eUL, 0xc7184049UL, - 0xc25756ccUL, 0xc3953cfbUL, 0xc1d382a2UL, 0xc011e895UL, 0xcb4dafa8UL, - 0xca8fc59fUL, 0xc8c97bc6UL, 0xc90b11f1UL, 0xcc440774UL, 0xcd866d43UL, - 0xcfc0d31aUL, 0xce02b92dUL, 0x91af9640UL, 0x906dfc77UL, 0x922b422eUL, - 0x93e92819UL, 0x96a63e9cUL, 0x976454abUL, 0x9522eaf2UL, 0x94e080c5UL, - 0x9fbcc7f8UL, 0x9e7eadcfUL, 0x9c381396UL, 0x9dfa79a1UL, 0x98b56f24UL, - 0x99770513UL, 0x9b31bb4aUL, 0x9af3d17dUL, 0x8d893530UL, 0x8c4b5f07UL, - 0x8e0de15eUL, 0x8fcf8b69UL, 0x8a809decUL, 0x8b42f7dbUL, 0x89044982UL, - 0x88c623b5UL, 0x839a6488UL, 0x82580ebfUL, 0x801eb0e6UL, 0x81dcdad1UL, - 0x8493cc54UL, 0x8551a663UL, 0x8717183aUL, 0x86d5720dUL, 0xa9e2d0a0UL, - 0xa820ba97UL, 0xaa6604ceUL, 0xaba46ef9UL, 0xaeeb787cUL, 0xaf29124bUL, - 0xad6fac12UL, 0xacadc625UL, 0xa7f18118UL, 0xa633eb2fUL, 0xa4755576UL, - 0xa5b73f41UL, 0xa0f829c4UL, 0xa13a43f3UL, 0xa37cfdaaUL, 0xa2be979dUL, - 0xb5c473d0UL, 0xb40619e7UL, 0xb640a7beUL, 0xb782cd89UL, 0xb2cddb0cUL, - 0xb30fb13bUL, 0xb1490f62UL, 0xb08b6555UL, 0xbbd72268UL, 0xba15485fUL, - 0xb853f606UL, 0xb9919c31UL, 0xbcde8ab4UL, 0xbd1ce083UL, 0xbf5a5edaUL, - 0xbe9834edUL - }, - { - 0x00000000UL, 0xb8bc6765UL, 0xaa09c88bUL, 0x12b5afeeUL, 0x8f629757UL, - 0x37def032UL, 0x256b5fdcUL, 0x9dd738b9UL, 0xc5b428efUL, 0x7d084f8aUL, - 0x6fbde064UL, 0xd7018701UL, 0x4ad6bfb8UL, 0xf26ad8ddUL, 0xe0df7733UL, - 0x58631056UL, 0x5019579fUL, 0xe8a530faUL, 0xfa109f14UL, 0x42acf871UL, - 0xdf7bc0c8UL, 0x67c7a7adUL, 0x75720843UL, 0xcdce6f26UL, 0x95ad7f70UL, - 0x2d111815UL, 0x3fa4b7fbUL, 0x8718d09eUL, 0x1acfe827UL, 0xa2738f42UL, - 0xb0c620acUL, 0x087a47c9UL, 0xa032af3eUL, 0x188ec85bUL, 0x0a3b67b5UL, - 0xb28700d0UL, 0x2f503869UL, 0x97ec5f0cUL, 0x8559f0e2UL, 0x3de59787UL, - 0x658687d1UL, 0xdd3ae0b4UL, 0xcf8f4f5aUL, 0x7733283fUL, 0xeae41086UL, - 0x525877e3UL, 0x40edd80dUL, 0xf851bf68UL, 0xf02bf8a1UL, 0x48979fc4UL, - 0x5a22302aUL, 0xe29e574fUL, 0x7f496ff6UL, 0xc7f50893UL, 0xd540a77dUL, - 0x6dfcc018UL, 0x359fd04eUL, 0x8d23b72bUL, 0x9f9618c5UL, 0x272a7fa0UL, - 0xbafd4719UL, 0x0241207cUL, 0x10f48f92UL, 0xa848e8f7UL, 0x9b14583dUL, - 0x23a83f58UL, 0x311d90b6UL, 0x89a1f7d3UL, 0x1476cf6aUL, 0xaccaa80fUL, - 0xbe7f07e1UL, 0x06c36084UL, 0x5ea070d2UL, 0xe61c17b7UL, 0xf4a9b859UL, - 0x4c15df3cUL, 0xd1c2e785UL, 0x697e80e0UL, 0x7bcb2f0eUL, 0xc377486bUL, - 0xcb0d0fa2UL, 0x73b168c7UL, 0x6104c729UL, 0xd9b8a04cUL, 0x446f98f5UL, - 0xfcd3ff90UL, 0xee66507eUL, 0x56da371bUL, 0x0eb9274dUL, 0xb6054028UL, - 0xa4b0efc6UL, 0x1c0c88a3UL, 0x81dbb01aUL, 0x3967d77fUL, 0x2bd27891UL, - 0x936e1ff4UL, 0x3b26f703UL, 0x839a9066UL, 0x912f3f88UL, 0x299358edUL, - 0xb4446054UL, 0x0cf80731UL, 0x1e4da8dfUL, 0xa6f1cfbaUL, 0xfe92dfecUL, - 0x462eb889UL, 0x549b1767UL, 0xec277002UL, 0x71f048bbUL, 0xc94c2fdeUL, - 0xdbf98030UL, 0x6345e755UL, 0x6b3fa09cUL, 0xd383c7f9UL, 0xc1366817UL, - 0x798a0f72UL, 0xe45d37cbUL, 0x5ce150aeUL, 0x4e54ff40UL, 0xf6e89825UL, - 0xae8b8873UL, 0x1637ef16UL, 0x048240f8UL, 0xbc3e279dUL, 0x21e91f24UL, - 0x99557841UL, 0x8be0d7afUL, 0x335cb0caUL, 0xed59b63bUL, 0x55e5d15eUL, - 0x47507eb0UL, 0xffec19d5UL, 0x623b216cUL, 0xda874609UL, 0xc832e9e7UL, - 0x708e8e82UL, 0x28ed9ed4UL, 0x9051f9b1UL, 0x82e4565fUL, 0x3a58313aUL, - 0xa78f0983UL, 0x1f336ee6UL, 0x0d86c108UL, 0xb53aa66dUL, 0xbd40e1a4UL, - 0x05fc86c1UL, 0x1749292fUL, 0xaff54e4aUL, 0x322276f3UL, 0x8a9e1196UL, - 0x982bbe78UL, 0x2097d91dUL, 0x78f4c94bUL, 0xc048ae2eUL, 0xd2fd01c0UL, - 0x6a4166a5UL, 0xf7965e1cUL, 0x4f2a3979UL, 0x5d9f9697UL, 0xe523f1f2UL, - 0x4d6b1905UL, 0xf5d77e60UL, 0xe762d18eUL, 0x5fdeb6ebUL, 0xc2098e52UL, - 0x7ab5e937UL, 0x680046d9UL, 0xd0bc21bcUL, 0x88df31eaUL, 0x3063568fUL, - 0x22d6f961UL, 0x9a6a9e04UL, 0x07bda6bdUL, 0xbf01c1d8UL, 0xadb46e36UL, - 0x15080953UL, 0x1d724e9aUL, 0xa5ce29ffUL, 0xb77b8611UL, 0x0fc7e174UL, - 0x9210d9cdUL, 0x2aacbea8UL, 0x38191146UL, 0x80a57623UL, 0xd8c66675UL, - 0x607a0110UL, 0x72cfaefeUL, 0xca73c99bUL, 0x57a4f122UL, 0xef189647UL, - 0xfdad39a9UL, 0x45115eccUL, 0x764dee06UL, 0xcef18963UL, 0xdc44268dUL, - 0x64f841e8UL, 0xf92f7951UL, 0x41931e34UL, 0x5326b1daUL, 0xeb9ad6bfUL, - 0xb3f9c6e9UL, 0x0b45a18cUL, 0x19f00e62UL, 0xa14c6907UL, 0x3c9b51beUL, - 0x842736dbUL, 0x96929935UL, 0x2e2efe50UL, 0x2654b999UL, 0x9ee8defcUL, - 0x8c5d7112UL, 0x34e11677UL, 0xa9362eceUL, 0x118a49abUL, 0x033fe645UL, - 0xbb838120UL, 0xe3e09176UL, 0x5b5cf613UL, 0x49e959fdUL, 0xf1553e98UL, - 0x6c820621UL, 0xd43e6144UL, 0xc68bceaaUL, 0x7e37a9cfUL, 0xd67f4138UL, - 0x6ec3265dUL, 0x7c7689b3UL, 0xc4caeed6UL, 0x591dd66fUL, 0xe1a1b10aUL, - 0xf3141ee4UL, 0x4ba87981UL, 0x13cb69d7UL, 0xab770eb2UL, 0xb9c2a15cUL, - 0x017ec639UL, 0x9ca9fe80UL, 0x241599e5UL, 0x36a0360bUL, 0x8e1c516eUL, - 0x866616a7UL, 0x3eda71c2UL, 0x2c6fde2cUL, 0x94d3b949UL, 0x090481f0UL, - 0xb1b8e695UL, 0xa30d497bUL, 0x1bb12e1eUL, 0x43d23e48UL, 0xfb6e592dUL, - 0xe9dbf6c3UL, 0x516791a6UL, 0xccb0a91fUL, 0x740cce7aUL, 0x66b96194UL, - 0xde0506f1UL - }, - { - 0x00000000UL, 0x96300777UL, 0x2c610eeeUL, 0xba510999UL, 0x19c46d07UL, - 0x8ff46a70UL, 0x35a563e9UL, 0xa395649eUL, 0x3288db0eUL, 0xa4b8dc79UL, - 0x1ee9d5e0UL, 0x88d9d297UL, 0x2b4cb609UL, 0xbd7cb17eUL, 0x072db8e7UL, - 0x911dbf90UL, 0x6410b71dUL, 0xf220b06aUL, 0x4871b9f3UL, 0xde41be84UL, - 0x7dd4da1aUL, 0xebe4dd6dUL, 0x51b5d4f4UL, 0xc785d383UL, 0x56986c13UL, - 0xc0a86b64UL, 0x7af962fdUL, 0xecc9658aUL, 0x4f5c0114UL, 0xd96c0663UL, - 0x633d0ffaUL, 0xf50d088dUL, 0xc8206e3bUL, 0x5e10694cUL, 0xe44160d5UL, - 0x727167a2UL, 0xd1e4033cUL, 0x47d4044bUL, 0xfd850dd2UL, 0x6bb50aa5UL, - 0xfaa8b535UL, 0x6c98b242UL, 0xd6c9bbdbUL, 0x40f9bcacUL, 0xe36cd832UL, - 0x755cdf45UL, 0xcf0dd6dcUL, 0x593dd1abUL, 0xac30d926UL, 0x3a00de51UL, - 0x8051d7c8UL, 0x1661d0bfUL, 0xb5f4b421UL, 0x23c4b356UL, 0x9995bacfUL, - 0x0fa5bdb8UL, 0x9eb80228UL, 0x0888055fUL, 0xb2d90cc6UL, 0x24e90bb1UL, - 0x877c6f2fUL, 0x114c6858UL, 0xab1d61c1UL, 0x3d2d66b6UL, 0x9041dc76UL, - 0x0671db01UL, 0xbc20d298UL, 0x2a10d5efUL, 0x8985b171UL, 0x1fb5b606UL, - 0xa5e4bf9fUL, 0x33d4b8e8UL, 0xa2c90778UL, 0x34f9000fUL, 0x8ea80996UL, - 0x18980ee1UL, 0xbb0d6a7fUL, 0x2d3d6d08UL, 0x976c6491UL, 0x015c63e6UL, - 0xf4516b6bUL, 0x62616c1cUL, 0xd8306585UL, 0x4e0062f2UL, 0xed95066cUL, - 0x7ba5011bUL, 0xc1f40882UL, 0x57c40ff5UL, 0xc6d9b065UL, 0x50e9b712UL, - 0xeab8be8bUL, 0x7c88b9fcUL, 0xdf1ddd62UL, 0x492dda15UL, 0xf37cd38cUL, - 0x654cd4fbUL, 0x5861b24dUL, 0xce51b53aUL, 0x7400bca3UL, 0xe230bbd4UL, - 0x41a5df4aUL, 0xd795d83dUL, 0x6dc4d1a4UL, 0xfbf4d6d3UL, 0x6ae96943UL, - 0xfcd96e34UL, 0x468867adUL, 0xd0b860daUL, 0x732d0444UL, 0xe51d0333UL, - 0x5f4c0aaaUL, 0xc97c0dddUL, 0x3c710550UL, 0xaa410227UL, 0x10100bbeUL, - 0x86200cc9UL, 0x25b56857UL, 0xb3856f20UL, 0x09d466b9UL, 0x9fe461ceUL, - 0x0ef9de5eUL, 0x98c9d929UL, 0x2298d0b0UL, 0xb4a8d7c7UL, 0x173db359UL, - 0x810db42eUL, 0x3b5cbdb7UL, 0xad6cbac0UL, 0x2083b8edUL, 0xb6b3bf9aUL, - 0x0ce2b603UL, 0x9ad2b174UL, 0x3947d5eaUL, 0xaf77d29dUL, 0x1526db04UL, - 0x8316dc73UL, 0x120b63e3UL, 0x843b6494UL, 0x3e6a6d0dUL, 0xa85a6a7aUL, - 0x0bcf0ee4UL, 0x9dff0993UL, 0x27ae000aUL, 0xb19e077dUL, 0x44930ff0UL, - 0xd2a30887UL, 0x68f2011eUL, 0xfec20669UL, 0x5d5762f7UL, 0xcb676580UL, - 0x71366c19UL, 0xe7066b6eUL, 0x761bd4feUL, 0xe02bd389UL, 0x5a7ada10UL, - 0xcc4add67UL, 0x6fdfb9f9UL, 0xf9efbe8eUL, 0x43beb717UL, 0xd58eb060UL, - 0xe8a3d6d6UL, 0x7e93d1a1UL, 0xc4c2d838UL, 0x52f2df4fUL, 0xf167bbd1UL, - 0x6757bca6UL, 0xdd06b53fUL, 0x4b36b248UL, 0xda2b0dd8UL, 0x4c1b0aafUL, - 0xf64a0336UL, 0x607a0441UL, 0xc3ef60dfUL, 0x55df67a8UL, 0xef8e6e31UL, - 0x79be6946UL, 0x8cb361cbUL, 0x1a8366bcUL, 0xa0d26f25UL, 0x36e26852UL, - 0x95770cccUL, 0x03470bbbUL, 0xb9160222UL, 0x2f260555UL, 0xbe3bbac5UL, - 0x280bbdb2UL, 0x925ab42bUL, 0x046ab35cUL, 0xa7ffd7c2UL, 0x31cfd0b5UL, - 0x8b9ed92cUL, 0x1daede5bUL, 0xb0c2649bUL, 0x26f263ecUL, 0x9ca36a75UL, - 0x0a936d02UL, 0xa906099cUL, 0x3f360eebUL, 0x85670772UL, 0x13570005UL, - 0x824abf95UL, 0x147ab8e2UL, 0xae2bb17bUL, 0x381bb60cUL, 0x9b8ed292UL, - 0x0dbed5e5UL, 0xb7efdc7cUL, 0x21dfdb0bUL, 0xd4d2d386UL, 0x42e2d4f1UL, - 0xf8b3dd68UL, 0x6e83da1fUL, 0xcd16be81UL, 0x5b26b9f6UL, 0xe177b06fUL, - 0x7747b718UL, 0xe65a0888UL, 0x706a0fffUL, 0xca3b0666UL, 0x5c0b0111UL, - 0xff9e658fUL, 0x69ae62f8UL, 0xd3ff6b61UL, 0x45cf6c16UL, 0x78e20aa0UL, - 0xeed20dd7UL, 0x5483044eUL, 0xc2b30339UL, 0x612667a7UL, 0xf71660d0UL, - 0x4d476949UL, 0xdb776e3eUL, 0x4a6ad1aeUL, 0xdc5ad6d9UL, 0x660bdf40UL, - 0xf03bd837UL, 0x53aebca9UL, 0xc59ebbdeUL, 0x7fcfb247UL, 0xe9ffb530UL, - 0x1cf2bdbdUL, 0x8ac2bacaUL, 0x3093b353UL, 0xa6a3b424UL, 0x0536d0baUL, - 0x9306d7cdUL, 0x2957de54UL, 0xbf67d923UL, 0x2e7a66b3UL, 0xb84a61c4UL, - 0x021b685dUL, 0x942b6f2aUL, 0x37be0bb4UL, 0xa18e0cc3UL, 0x1bdf055aUL, - 0x8def022dUL - }, - { - 0x00000000UL, 0x41311b19UL, 0x82623632UL, 0xc3532d2bUL, 0x04c56c64UL, - 0x45f4777dUL, 0x86a75a56UL, 0xc796414fUL, 0x088ad9c8UL, 0x49bbc2d1UL, - 0x8ae8effaUL, 0xcbd9f4e3UL, 0x0c4fb5acUL, 0x4d7eaeb5UL, 0x8e2d839eUL, - 0xcf1c9887UL, 0x5112c24aUL, 0x1023d953UL, 0xd370f478UL, 0x9241ef61UL, - 0x55d7ae2eUL, 0x14e6b537UL, 0xd7b5981cUL, 0x96848305UL, 0x59981b82UL, - 0x18a9009bUL, 0xdbfa2db0UL, 0x9acb36a9UL, 0x5d5d77e6UL, 0x1c6c6cffUL, - 0xdf3f41d4UL, 0x9e0e5acdUL, 0xa2248495UL, 0xe3159f8cUL, 0x2046b2a7UL, - 0x6177a9beUL, 0xa6e1e8f1UL, 0xe7d0f3e8UL, 0x2483dec3UL, 0x65b2c5daUL, - 0xaaae5d5dUL, 0xeb9f4644UL, 0x28cc6b6fUL, 0x69fd7076UL, 0xae6b3139UL, - 0xef5a2a20UL, 0x2c09070bUL, 0x6d381c12UL, 0xf33646dfUL, 0xb2075dc6UL, - 0x715470edUL, 0x30656bf4UL, 0xf7f32abbUL, 0xb6c231a2UL, 0x75911c89UL, - 0x34a00790UL, 0xfbbc9f17UL, 0xba8d840eUL, 0x79dea925UL, 0x38efb23cUL, - 0xff79f373UL, 0xbe48e86aUL, 0x7d1bc541UL, 0x3c2ade58UL, 0x054f79f0UL, - 0x447e62e9UL, 0x872d4fc2UL, 0xc61c54dbUL, 0x018a1594UL, 0x40bb0e8dUL, - 0x83e823a6UL, 0xc2d938bfUL, 0x0dc5a038UL, 0x4cf4bb21UL, 0x8fa7960aUL, - 0xce968d13UL, 0x0900cc5cUL, 0x4831d745UL, 0x8b62fa6eUL, 0xca53e177UL, - 0x545dbbbaUL, 0x156ca0a3UL, 0xd63f8d88UL, 0x970e9691UL, 0x5098d7deUL, - 0x11a9ccc7UL, 0xd2fae1ecUL, 0x93cbfaf5UL, 0x5cd76272UL, 0x1de6796bUL, - 0xdeb55440UL, 0x9f844f59UL, 0x58120e16UL, 0x1923150fUL, 0xda703824UL, - 0x9b41233dUL, 0xa76bfd65UL, 0xe65ae67cUL, 0x2509cb57UL, 0x6438d04eUL, - 0xa3ae9101UL, 0xe29f8a18UL, 0x21cca733UL, 0x60fdbc2aUL, 0xafe124adUL, - 0xeed03fb4UL, 0x2d83129fUL, 0x6cb20986UL, 0xab2448c9UL, 0xea1553d0UL, - 0x29467efbUL, 0x687765e2UL, 0xf6793f2fUL, 0xb7482436UL, 0x741b091dUL, - 0x352a1204UL, 0xf2bc534bUL, 0xb38d4852UL, 0x70de6579UL, 0x31ef7e60UL, - 0xfef3e6e7UL, 0xbfc2fdfeUL, 0x7c91d0d5UL, 0x3da0cbccUL, 0xfa368a83UL, - 0xbb07919aUL, 0x7854bcb1UL, 0x3965a7a8UL, 0x4b98833bUL, 0x0aa99822UL, - 0xc9fab509UL, 0x88cbae10UL, 0x4f5def5fUL, 0x0e6cf446UL, 0xcd3fd96dUL, - 0x8c0ec274UL, 0x43125af3UL, 0x022341eaUL, 0xc1706cc1UL, 0x804177d8UL, - 0x47d73697UL, 0x06e62d8eUL, 0xc5b500a5UL, 0x84841bbcUL, 0x1a8a4171UL, - 0x5bbb5a68UL, 0x98e87743UL, 0xd9d96c5aUL, 0x1e4f2d15UL, 0x5f7e360cUL, - 0x9c2d1b27UL, 0xdd1c003eUL, 0x120098b9UL, 0x533183a0UL, 0x9062ae8bUL, - 0xd153b592UL, 0x16c5f4ddUL, 0x57f4efc4UL, 0x94a7c2efUL, 0xd596d9f6UL, - 0xe9bc07aeUL, 0xa88d1cb7UL, 0x6bde319cUL, 0x2aef2a85UL, 0xed796bcaUL, - 0xac4870d3UL, 0x6f1b5df8UL, 0x2e2a46e1UL, 0xe136de66UL, 0xa007c57fUL, - 0x6354e854UL, 0x2265f34dUL, 0xe5f3b202UL, 0xa4c2a91bUL, 0x67918430UL, - 0x26a09f29UL, 0xb8aec5e4UL, 0xf99fdefdUL, 0x3accf3d6UL, 0x7bfde8cfUL, - 0xbc6ba980UL, 0xfd5ab299UL, 0x3e099fb2UL, 0x7f3884abUL, 0xb0241c2cUL, - 0xf1150735UL, 0x32462a1eUL, 0x73773107UL, 0xb4e17048UL, 0xf5d06b51UL, - 0x3683467aUL, 0x77b25d63UL, 0x4ed7facbUL, 0x0fe6e1d2UL, 0xccb5ccf9UL, - 0x8d84d7e0UL, 0x4a1296afUL, 0x0b238db6UL, 0xc870a09dUL, 0x8941bb84UL, - 0x465d2303UL, 0x076c381aUL, 0xc43f1531UL, 0x850e0e28UL, 0x42984f67UL, - 0x03a9547eUL, 0xc0fa7955UL, 0x81cb624cUL, 0x1fc53881UL, 0x5ef42398UL, - 0x9da70eb3UL, 0xdc9615aaUL, 0x1b0054e5UL, 0x5a314ffcUL, 0x996262d7UL, - 0xd85379ceUL, 0x174fe149UL, 0x567efa50UL, 0x952dd77bUL, 0xd41ccc62UL, - 0x138a8d2dUL, 0x52bb9634UL, 0x91e8bb1fUL, 0xd0d9a006UL, 0xecf37e5eUL, - 0xadc26547UL, 0x6e91486cUL, 0x2fa05375UL, 0xe836123aUL, 0xa9070923UL, - 0x6a542408UL, 0x2b653f11UL, 0xe479a796UL, 0xa548bc8fUL, 0x661b91a4UL, - 0x272a8abdUL, 0xe0bccbf2UL, 0xa18dd0ebUL, 0x62defdc0UL, 0x23efe6d9UL, - 0xbde1bc14UL, 0xfcd0a70dUL, 0x3f838a26UL, 0x7eb2913fUL, 0xb924d070UL, - 0xf815cb69UL, 0x3b46e642UL, 0x7a77fd5bUL, 0xb56b65dcUL, 0xf45a7ec5UL, - 0x370953eeUL, 0x763848f7UL, 0xb1ae09b8UL, 0xf09f12a1UL, 0x33cc3f8aUL, - 0x72fd2493UL - }, - { - 0x00000000UL, 0x376ac201UL, 0x6ed48403UL, 0x59be4602UL, 0xdca80907UL, - 0xebc2cb06UL, 0xb27c8d04UL, 0x85164f05UL, 0xb851130eUL, 0x8f3bd10fUL, - 0xd685970dUL, 0xe1ef550cUL, 0x64f91a09UL, 0x5393d808UL, 0x0a2d9e0aUL, - 0x3d475c0bUL, 0x70a3261cUL, 0x47c9e41dUL, 0x1e77a21fUL, 0x291d601eUL, - 0xac0b2f1bUL, 0x9b61ed1aUL, 0xc2dfab18UL, 0xf5b56919UL, 0xc8f23512UL, - 0xff98f713UL, 0xa626b111UL, 0x914c7310UL, 0x145a3c15UL, 0x2330fe14UL, - 0x7a8eb816UL, 0x4de47a17UL, 0xe0464d38UL, 0xd72c8f39UL, 0x8e92c93bUL, - 0xb9f80b3aUL, 0x3cee443fUL, 0x0b84863eUL, 0x523ac03cUL, 0x6550023dUL, - 0x58175e36UL, 0x6f7d9c37UL, 0x36c3da35UL, 0x01a91834UL, 0x84bf5731UL, - 0xb3d59530UL, 0xea6bd332UL, 0xdd011133UL, 0x90e56b24UL, 0xa78fa925UL, - 0xfe31ef27UL, 0xc95b2d26UL, 0x4c4d6223UL, 0x7b27a022UL, 0x2299e620UL, - 0x15f32421UL, 0x28b4782aUL, 0x1fdeba2bUL, 0x4660fc29UL, 0x710a3e28UL, - 0xf41c712dUL, 0xc376b32cUL, 0x9ac8f52eUL, 0xada2372fUL, 0xc08d9a70UL, - 0xf7e75871UL, 0xae591e73UL, 0x9933dc72UL, 0x1c259377UL, 0x2b4f5176UL, - 0x72f11774UL, 0x459bd575UL, 0x78dc897eUL, 0x4fb64b7fUL, 0x16080d7dUL, - 0x2162cf7cUL, 0xa4748079UL, 0x931e4278UL, 0xcaa0047aUL, 0xfdcac67bUL, - 0xb02ebc6cUL, 0x87447e6dUL, 0xdefa386fUL, 0xe990fa6eUL, 0x6c86b56bUL, - 0x5bec776aUL, 0x02523168UL, 0x3538f369UL, 0x087faf62UL, 0x3f156d63UL, - 0x66ab2b61UL, 0x51c1e960UL, 0xd4d7a665UL, 0xe3bd6464UL, 0xba032266UL, - 0x8d69e067UL, 0x20cbd748UL, 0x17a11549UL, 0x4e1f534bUL, 0x7975914aUL, - 0xfc63de4fUL, 0xcb091c4eUL, 0x92b75a4cUL, 0xa5dd984dUL, 0x989ac446UL, - 0xaff00647UL, 0xf64e4045UL, 0xc1248244UL, 0x4432cd41UL, 0x73580f40UL, - 0x2ae64942UL, 0x1d8c8b43UL, 0x5068f154UL, 0x67023355UL, 0x3ebc7557UL, - 0x09d6b756UL, 0x8cc0f853UL, 0xbbaa3a52UL, 0xe2147c50UL, 0xd57ebe51UL, - 0xe839e25aUL, 0xdf53205bUL, 0x86ed6659UL, 0xb187a458UL, 0x3491eb5dUL, - 0x03fb295cUL, 0x5a456f5eUL, 0x6d2fad5fUL, 0x801b35e1UL, 0xb771f7e0UL, - 0xeecfb1e2UL, 0xd9a573e3UL, 0x5cb33ce6UL, 0x6bd9fee7UL, 0x3267b8e5UL, - 0x050d7ae4UL, 0x384a26efUL, 0x0f20e4eeUL, 0x569ea2ecUL, 0x61f460edUL, - 0xe4e22fe8UL, 0xd388ede9UL, 0x8a36abebUL, 0xbd5c69eaUL, 0xf0b813fdUL, - 0xc7d2d1fcUL, 0x9e6c97feUL, 0xa90655ffUL, 0x2c101afaUL, 0x1b7ad8fbUL, - 0x42c49ef9UL, 0x75ae5cf8UL, 0x48e900f3UL, 0x7f83c2f2UL, 0x263d84f0UL, - 0x115746f1UL, 0x944109f4UL, 0xa32bcbf5UL, 0xfa958df7UL, 0xcdff4ff6UL, - 0x605d78d9UL, 0x5737bad8UL, 0x0e89fcdaUL, 0x39e33edbUL, 0xbcf571deUL, - 0x8b9fb3dfUL, 0xd221f5ddUL, 0xe54b37dcUL, 0xd80c6bd7UL, 0xef66a9d6UL, - 0xb6d8efd4UL, 0x81b22dd5UL, 0x04a462d0UL, 0x33cea0d1UL, 0x6a70e6d3UL, - 0x5d1a24d2UL, 0x10fe5ec5UL, 0x27949cc4UL, 0x7e2adac6UL, 0x494018c7UL, - 0xcc5657c2UL, 0xfb3c95c3UL, 0xa282d3c1UL, 0x95e811c0UL, 0xa8af4dcbUL, - 0x9fc58fcaUL, 0xc67bc9c8UL, 0xf1110bc9UL, 0x740744ccUL, 0x436d86cdUL, - 0x1ad3c0cfUL, 0x2db902ceUL, 0x4096af91UL, 0x77fc6d90UL, 0x2e422b92UL, - 0x1928e993UL, 0x9c3ea696UL, 0xab546497UL, 0xf2ea2295UL, 0xc580e094UL, - 0xf8c7bc9fUL, 0xcfad7e9eUL, 0x9613389cUL, 0xa179fa9dUL, 0x246fb598UL, - 0x13057799UL, 0x4abb319bUL, 0x7dd1f39aUL, 0x3035898dUL, 0x075f4b8cUL, - 0x5ee10d8eUL, 0x698bcf8fUL, 0xec9d808aUL, 0xdbf7428bUL, 0x82490489UL, - 0xb523c688UL, 0x88649a83UL, 0xbf0e5882UL, 0xe6b01e80UL, 0xd1dadc81UL, - 0x54cc9384UL, 0x63a65185UL, 0x3a181787UL, 0x0d72d586UL, 0xa0d0e2a9UL, - 0x97ba20a8UL, 0xce0466aaUL, 0xf96ea4abUL, 0x7c78ebaeUL, 0x4b1229afUL, - 0x12ac6fadUL, 0x25c6adacUL, 0x1881f1a7UL, 0x2feb33a6UL, 0x765575a4UL, - 0x413fb7a5UL, 0xc429f8a0UL, 0xf3433aa1UL, 0xaafd7ca3UL, 0x9d97bea2UL, - 0xd073c4b5UL, 0xe71906b4UL, 0xbea740b6UL, 0x89cd82b7UL, 0x0cdbcdb2UL, - 0x3bb10fb3UL, 0x620f49b1UL, 0x55658bb0UL, 0x6822d7bbUL, 0x5f4815baUL, - 0x06f653b8UL, 0x319c91b9UL, 0xb48adebcUL, 0x83e01cbdUL, 0xda5e5abfUL, - 0xed3498beUL - }, - { - 0x00000000UL, 0x6567bcb8UL, 0x8bc809aaUL, 0xeeafb512UL, 0x5797628fUL, - 0x32f0de37UL, 0xdc5f6b25UL, 0xb938d79dUL, 0xef28b4c5UL, 0x8a4f087dUL, - 0x64e0bd6fUL, 0x018701d7UL, 0xb8bfd64aUL, 0xddd86af2UL, 0x3377dfe0UL, - 0x56106358UL, 0x9f571950UL, 0xfa30a5e8UL, 0x149f10faUL, 0x71f8ac42UL, - 0xc8c07bdfUL, 0xada7c767UL, 0x43087275UL, 0x266fcecdUL, 0x707fad95UL, - 0x1518112dUL, 0xfbb7a43fUL, 0x9ed01887UL, 0x27e8cf1aUL, 0x428f73a2UL, - 0xac20c6b0UL, 0xc9477a08UL, 0x3eaf32a0UL, 0x5bc88e18UL, 0xb5673b0aUL, - 0xd00087b2UL, 0x6938502fUL, 0x0c5fec97UL, 0xe2f05985UL, 0x8797e53dUL, - 0xd1878665UL, 0xb4e03addUL, 0x5a4f8fcfUL, 0x3f283377UL, 0x8610e4eaUL, - 0xe3775852UL, 0x0dd8ed40UL, 0x68bf51f8UL, 0xa1f82bf0UL, 0xc49f9748UL, - 0x2a30225aUL, 0x4f579ee2UL, 0xf66f497fUL, 0x9308f5c7UL, 0x7da740d5UL, - 0x18c0fc6dUL, 0x4ed09f35UL, 0x2bb7238dUL, 0xc518969fUL, 0xa07f2a27UL, - 0x1947fdbaUL, 0x7c204102UL, 0x928ff410UL, 0xf7e848a8UL, 0x3d58149bUL, - 0x583fa823UL, 0xb6901d31UL, 0xd3f7a189UL, 0x6acf7614UL, 0x0fa8caacUL, - 0xe1077fbeUL, 0x8460c306UL, 0xd270a05eUL, 0xb7171ce6UL, 0x59b8a9f4UL, - 0x3cdf154cUL, 0x85e7c2d1UL, 0xe0807e69UL, 0x0e2fcb7bUL, 0x6b4877c3UL, - 0xa20f0dcbUL, 0xc768b173UL, 0x29c70461UL, 0x4ca0b8d9UL, 0xf5986f44UL, - 0x90ffd3fcUL, 0x7e5066eeUL, 0x1b37da56UL, 0x4d27b90eUL, 0x284005b6UL, - 0xc6efb0a4UL, 0xa3880c1cUL, 0x1ab0db81UL, 0x7fd76739UL, 0x9178d22bUL, - 0xf41f6e93UL, 0x03f7263bUL, 0x66909a83UL, 0x883f2f91UL, 0xed589329UL, - 0x546044b4UL, 0x3107f80cUL, 0xdfa84d1eUL, 0xbacff1a6UL, 0xecdf92feUL, - 0x89b82e46UL, 0x67179b54UL, 0x027027ecUL, 0xbb48f071UL, 0xde2f4cc9UL, - 0x3080f9dbUL, 0x55e74563UL, 0x9ca03f6bUL, 0xf9c783d3UL, 0x176836c1UL, - 0x720f8a79UL, 0xcb375de4UL, 0xae50e15cUL, 0x40ff544eUL, 0x2598e8f6UL, - 0x73888baeUL, 0x16ef3716UL, 0xf8408204UL, 0x9d273ebcUL, 0x241fe921UL, - 0x41785599UL, 0xafd7e08bUL, 0xcab05c33UL, 0x3bb659edUL, 0x5ed1e555UL, - 0xb07e5047UL, 0xd519ecffUL, 0x6c213b62UL, 0x094687daUL, 0xe7e932c8UL, - 0x828e8e70UL, 0xd49eed28UL, 0xb1f95190UL, 0x5f56e482UL, 0x3a31583aUL, - 0x83098fa7UL, 0xe66e331fUL, 0x08c1860dUL, 0x6da63ab5UL, 0xa4e140bdUL, - 0xc186fc05UL, 0x2f294917UL, 0x4a4ef5afUL, 0xf3762232UL, 0x96119e8aUL, - 0x78be2b98UL, 0x1dd99720UL, 0x4bc9f478UL, 0x2eae48c0UL, 0xc001fdd2UL, - 0xa566416aUL, 0x1c5e96f7UL, 0x79392a4fUL, 0x97969f5dUL, 0xf2f123e5UL, - 0x05196b4dUL, 0x607ed7f5UL, 0x8ed162e7UL, 0xebb6de5fUL, 0x528e09c2UL, - 0x37e9b57aUL, 0xd9460068UL, 0xbc21bcd0UL, 0xea31df88UL, 0x8f566330UL, - 0x61f9d622UL, 0x049e6a9aUL, 0xbda6bd07UL, 0xd8c101bfUL, 0x366eb4adUL, - 0x53090815UL, 0x9a4e721dUL, 0xff29cea5UL, 0x11867bb7UL, 0x74e1c70fUL, - 0xcdd91092UL, 0xa8beac2aUL, 0x46111938UL, 0x2376a580UL, 0x7566c6d8UL, - 0x10017a60UL, 0xfeaecf72UL, 0x9bc973caUL, 0x22f1a457UL, 0x479618efUL, - 0xa939adfdUL, 0xcc5e1145UL, 0x06ee4d76UL, 0x6389f1ceUL, 0x8d2644dcUL, - 0xe841f864UL, 0x51792ff9UL, 0x341e9341UL, 0xdab12653UL, 0xbfd69aebUL, - 0xe9c6f9b3UL, 0x8ca1450bUL, 0x620ef019UL, 0x07694ca1UL, 0xbe519b3cUL, - 0xdb362784UL, 0x35999296UL, 0x50fe2e2eUL, 0x99b95426UL, 0xfcdee89eUL, - 0x12715d8cUL, 0x7716e134UL, 0xce2e36a9UL, 0xab498a11UL, 0x45e63f03UL, - 0x208183bbUL, 0x7691e0e3UL, 0x13f65c5bUL, 0xfd59e949UL, 0x983e55f1UL, - 0x2106826cUL, 0x44613ed4UL, 0xaace8bc6UL, 0xcfa9377eUL, 0x38417fd6UL, - 0x5d26c36eUL, 0xb389767cUL, 0xd6eecac4UL, 0x6fd61d59UL, 0x0ab1a1e1UL, - 0xe41e14f3UL, 0x8179a84bUL, 0xd769cb13UL, 0xb20e77abUL, 0x5ca1c2b9UL, - 0x39c67e01UL, 0x80fea99cUL, 0xe5991524UL, 0x0b36a036UL, 0x6e511c8eUL, - 0xa7166686UL, 0xc271da3eUL, 0x2cde6f2cUL, 0x49b9d394UL, 0xf0810409UL, - 0x95e6b8b1UL, 0x7b490da3UL, 0x1e2eb11bUL, 0x483ed243UL, 0x2d596efbUL, - 0xc3f6dbe9UL, 0xa6916751UL, 0x1fa9b0ccUL, 0x7ace0c74UL, 0x9461b966UL, - 0xf10605deUL -#endif - } -}; diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@crc32.h.blob b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@crc32.h.blob deleted file mode 100644 index 5096e2ea10526413bc8e599ab831074c69774cb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3685 zcmcInO>ZML7t~;=+wT05=W@aaxIA&;x&fAHW}g^3LR=$*RrArklgWGk*PkKJR0D6aDv1wRVXR z!aWsmOhXmol44Q7Lu;_7e2xPVa;9m=G8GynxxvTdFF8*N5Cpj(fQ1)Qv@z3cXFJEx z`#3Thw?&AVq+!=(61lFg#TnOb0DAY}0}ho`U4`7zkyj>Oquy+K_2b9z4lgI9R<9AS zUaQm_$JN>)X|^6Ws_NQqXr`BOsRZudYFi$19Duhoi<6iwtsL` zE+wCj_8W&~(yBL(N~wISS}WCC&0+z$)pfG4=5pK;p|1v}Sise8H^w4lGV=MlTEA$k zbKHa?rG=`lskEiE^znJI(BstS+90>%3)&5pv4R-_Zga-(JDG;u=^YHKy zZk%{qfB{Q&m)pJb2SrjWxP9ghhJm|*Ib)zONc04KYDHT}VdLQ^er|ba1VAvc$t8`s z?^+)8CAHk`Q*A`p1)Cx?vC&G|X+)=*acc)*02c-T;fnH(>2qEYGk6}tIp+(#6vlI^ z{R~w33sfN&!g8nmxtk7i2TDJOs9o@vGplsGw+epSk&r(6V3j3v8~+0Mp_A(k8D&aq zlKe5aoks#_Wh;+IK!jl~pW7~O<>4PkOj~TMhL{pPf0Q0wPU%@MX%~?da^hV=O(|I= z)P%RU#@&VqG1dowk~2!+FIn*HerDQ@6~kc)YNIU~fL^e8LtLrC&pmvilmu>V!f>mQ zD-?1&yW9Eu6VJ|=j-ZPJK2b402%mSzfc2;*b`r(n6-Hd}l@|1^_C=?&%$hTxjE-6C zj1&Q&WFmLHF}-H$4X2v*mQ35I_DuET+dNoYD??MLr2xJ)=R=^~W@NM*EYUDygatfc z{g|YQd!=<=GjV{~H`9xwMo5kxQw_eNmt5;mtx#2x^z=+!Z!OJ)1%}%k2`JO4sr9&E zJ_RgaaoFLojr;r#OC3-t6=43%=@r2&2;1Z>?KJL=sBTMbi*ljUfKRN8!wT; z#H#9a47Vyh3f$B$i;D&a2^MM1Ll!T~q+s|?nG_CFLu29a%ADlBWSt8FHzH!4^hw*2KY8%<$@XsXDcan8XGzK7ovP=! zu45Aw#_1^SXxbOP<25{oQOP1W2*dIC-XRaUhBLA6(8#JF@dSE1cG_{`LV7jJWb@gB zjZ7B(`&(vX653mt4TP?OUgfi^kN^2`I?7D8ls$TwxeET=fBU1|Up}3k`!Jh>xu0Hs SRsQ7fuYaGNL)m)|Gyel@$O{1g diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@deflate.c b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@deflate.c deleted file mode 100644 index 696957705..000000000 --- a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@deflate.c +++ /dev/null @@ -1,1967 +0,0 @@ -/* deflate.c -- compress data using the deflation algorithm - * Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* - * ALGORITHM - * - * The "deflation" process depends on being able to identify portions - * of the input text which are identical to earlier input (within a - * sliding window trailing behind the input currently being processed). - * - * The most straightforward technique turns out to be the fastest for - * most input files: try all possible matches and select the longest. - * The key feature of this algorithm is that insertions into the string - * dictionary are very simple and thus fast, and deletions are avoided - * completely. Insertions are performed at each input character, whereas - * string matches are performed only when the previous match ends. So it - * is preferable to spend more time in matches to allow very fast string - * insertions and avoid deletions. The matching algorithm for small - * strings is inspired from that of Rabin & Karp. A brute force approach - * is used to find longer strings when a small match has been found. - * A similar algorithm is used in comic (by Jan-Mark Wams) and freeze - * (by Leonid Broukhis). - * A previous version of this file used a more sophisticated algorithm - * (by Fiala and Greene) which is guaranteed to run in linear amortized - * time, but has a larger average cost, uses more memory and is patented. - * However the F&G algorithm may be faster for some highly redundant - * files if the parameter max_chain_length (described below) is too large. - * - * ACKNOWLEDGEMENTS - * - * The idea of lazy evaluation of matches is due to Jan-Mark Wams, and - * I found it in 'freeze' written by Leonid Broukhis. - * Thanks to many people for bug reports and testing. - * - * REFERENCES - * - * Deutsch, L.P.,"DEFLATE Compressed Data Format Specification". - * Available in http://tools.ietf.org/html/rfc1951 - * - * A description of the Rabin and Karp algorithm is given in the book - * "Algorithms" by R. Sedgewick, Addison-Wesley, p252. - * - * Fiala,E.R., and Greene,D.H. - * Data Compression with Finite Windows, Comm.ACM, 32,4 (1989) 490-595 - * - */ - -/* @(#) $Id$ */ - -#include "deflate.h" - -const char deflate_copyright[] = - " deflate 1.2.8 Copyright 1995-2013 Jean-loup Gailly and Mark Adler "; -/* - If you use the zlib library in a product, an acknowledgment is welcome - in the documentation of your product. If for some reason you cannot - include such an acknowledgment, I would appreciate that you keep this - copyright string in the executable of your product. - */ - -/* =========================================================================== - * Function prototypes. - */ -typedef enum { - need_more, /* block not completed, need more input or more output */ - block_done, /* block flush performed */ - finish_started, /* finish started, need only more output at next deflate */ - finish_done /* finish done, accept no more input or output */ -} block_state; - -typedef block_state (*compress_func) OF((deflate_state *s, int flush)); -/* Compression function. Returns the block state after the call. */ - -local void fill_window OF((deflate_state *s)); -local block_state deflate_stored OF((deflate_state *s, int flush)); -local block_state deflate_fast OF((deflate_state *s, int flush)); -#ifndef FASTEST -local block_state deflate_slow OF((deflate_state *s, int flush)); -#endif -local block_state deflate_rle OF((deflate_state *s, int flush)); -local block_state deflate_huff OF((deflate_state *s, int flush)); -local void lm_init OF((deflate_state *s)); -local void putShortMSB OF((deflate_state *s, uInt b)); -local void flush_pending OF((z_streamp strm)); -local int read_buf OF((z_streamp strm, Bytef *buf, unsigned size)); -#ifdef ASMV - void match_init OF((void)); /* asm code initialization */ - uInt longest_match OF((deflate_state *s, IPos cur_match)); -#else -local uInt longest_match OF((deflate_state *s, IPos cur_match)); -#endif - -#ifdef DEBUG -local void check_match OF((deflate_state *s, IPos start, IPos match, - int length)); -#endif - -/* =========================================================================== - * Local data - */ - -#define NIL 0 -/* Tail of hash chains */ - -#ifndef TOO_FAR -# define TOO_FAR 4096 -#endif -/* Matches of length 3 are discarded if their distance exceeds TOO_FAR */ - -/* Values for max_lazy_match, good_match and max_chain_length, depending on - * the desired pack level (0..9). The values given below have been tuned to - * exclude worst case performance for pathological files. Better values may be - * found for specific files. - */ -typedef struct config_s { - ush good_length; /* reduce lazy search above this match length */ - ush max_lazy; /* do not perform lazy search above this match length */ - ush nice_length; /* quit search above this match length */ - ush max_chain; - compress_func func; -} config; - -#ifdef FASTEST -local const config configuration_table[2] = { -/* good lazy nice chain */ -/* 0 */ {0, 0, 0, 0, deflate_stored}, /* store only */ -/* 1 */ {4, 4, 8, 4, deflate_fast}}; /* max speed, no lazy matches */ -#else -local const config configuration_table[10] = { -/* good lazy nice chain */ -/* 0 */ {0, 0, 0, 0, deflate_stored}, /* store only */ -/* 1 */ {4, 4, 8, 4, deflate_fast}, /* max speed, no lazy matches */ -/* 2 */ {4, 5, 16, 8, deflate_fast}, -/* 3 */ {4, 6, 32, 32, deflate_fast}, - -/* 4 */ {4, 4, 16, 16, deflate_slow}, /* lazy matches */ -/* 5 */ {8, 16, 32, 32, deflate_slow}, -/* 6 */ {8, 16, 128, 128, deflate_slow}, -/* 7 */ {8, 32, 128, 256, deflate_slow}, -/* 8 */ {32, 128, 258, 1024, deflate_slow}, -/* 9 */ {32, 258, 258, 4096, deflate_slow}}; /* max compression */ -#endif - -/* Note: the deflate() code requires max_lazy >= MIN_MATCH and max_chain >= 4 - * For deflate_fast() (levels <= 3) good is ignored and lazy has a different - * meaning. - */ - -#define EQUAL 0 -/* result of memcmp for equal strings */ - -#ifndef NO_DUMMY_DECL -struct static_tree_desc_s {int dummy;}; /* for buggy compilers */ -#endif - -/* rank Z_BLOCK between Z_NO_FLUSH and Z_PARTIAL_FLUSH */ -#define RANK(f) (((f) << 1) - ((f) > 4 ? 9 : 0)) - -/* =========================================================================== - * Update a hash value with the given input byte - * IN assertion: all calls to to UPDATE_HASH are made with consecutive - * input characters, so that a running hash key can be computed from the - * previous key instead of complete recalculation each time. - */ -#define UPDATE_HASH(s,h,c) (h = (((h)<hash_shift) ^ (c)) & s->hash_mask) - - -/* =========================================================================== - * Insert string str in the dictionary and set match_head to the previous head - * of the hash chain (the most recent string with same hash key). Return - * the previous length of the hash chain. - * If this file is compiled with -DFASTEST, the compression level is forced - * to 1, and no hash chains are maintained. - * IN assertion: all calls to to INSERT_STRING are made with consecutive - * input characters and the first MIN_MATCH bytes of str are valid - * (except for the last MIN_MATCH-1 bytes of the input file). - */ -#ifdef FASTEST -#define INSERT_STRING(s, str, match_head) \ - (UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]), \ - match_head = s->head[s->ins_h], \ - s->head[s->ins_h] = (Pos)(str)) -#else -#define INSERT_STRING(s, str, match_head) \ - (UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]), \ - match_head = s->prev[(str) & s->w_mask] = s->head[s->ins_h], \ - s->head[s->ins_h] = (Pos)(str)) -#endif - -/* =========================================================================== - * Initialize the hash table (avoiding 64K overflow for 16 bit systems). - * prev[] will be initialized on the fly. - */ -#define CLEAR_HASH(s) \ - s->head[s->hash_size-1] = NIL; \ - zmemzero((Bytef *)s->head, (unsigned)(s->hash_size-1)*sizeof(*s->head)); - -/* ========================================================================= */ -int ZEXPORT deflateInit_(strm, level, version, stream_size) - z_streamp strm; - int level; - const char *version; - int stream_size; -{ - return deflateInit2_(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, - Z_DEFAULT_STRATEGY, version, stream_size); - /* To do: ignore strm->next_in if we use it as window */ -} - -/* ========================================================================= */ -int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy, - version, stream_size) - z_streamp strm; - int level; - int method; - int windowBits; - int memLevel; - int strategy; - const char *version; - int stream_size; -{ - deflate_state *s; - int wrap = 1; - static const char my_version[] = ZLIB_VERSION; - - ushf *overlay; - /* We overlay pending_buf and d_buf+l_buf. This works since the average - * output size for (length,distance) codes is <= 24 bits. - */ - - if (version == Z_NULL || version[0] != my_version[0] || - stream_size != sizeof(z_stream)) { - return Z_VERSION_ERROR; - } - if (strm == Z_NULL) return Z_STREAM_ERROR; - - strm->msg = Z_NULL; - if (strm->zalloc == (alloc_func)0) { -#ifdef Z_SOLO - return Z_STREAM_ERROR; -#else - strm->zalloc = zcalloc; - strm->opaque = (voidpf)0; -#endif - } - if (strm->zfree == (free_func)0) -#ifdef Z_SOLO - return Z_STREAM_ERROR; -#else - strm->zfree = zcfree; -#endif - -#ifdef FASTEST - if (level != 0) level = 1; -#else - if (level == Z_DEFAULT_COMPRESSION) level = 6; -#endif - - if (windowBits < 0) { /* suppress zlib wrapper */ - wrap = 0; - windowBits = -windowBits; - } -#ifdef GZIP - else if (windowBits > 15) { - wrap = 2; /* write gzip wrapper instead */ - windowBits -= 16; - } -#endif - if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method != Z_DEFLATED || - windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || - strategy < 0 || strategy > Z_FIXED) { - return Z_STREAM_ERROR; - } - if (windowBits == 8) windowBits = 9; /* until 256-byte window bug fixed */ - s = (deflate_state *) ZALLOC(strm, 1, sizeof(deflate_state)); - if (s == Z_NULL) return Z_MEM_ERROR; - strm->state = (struct internal_state FAR *)s; - s->strm = strm; - - s->wrap = wrap; - s->gzhead = Z_NULL; - s->w_bits = windowBits; - s->w_size = 1 << s->w_bits; - s->w_mask = s->w_size - 1; - - s->hash_bits = memLevel + 7; - s->hash_size = 1 << s->hash_bits; - s->hash_mask = s->hash_size - 1; - s->hash_shift = ((s->hash_bits+MIN_MATCH-1)/MIN_MATCH); - - s->window = (Bytef *) ZALLOC(strm, s->w_size, 2*sizeof(Byte)); - s->prev = (Posf *) ZALLOC(strm, s->w_size, sizeof(Pos)); - s->head = (Posf *) ZALLOC(strm, s->hash_size, sizeof(Pos)); - - s->high_water = 0; /* nothing written to s->window yet */ - - s->lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */ - - overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2); - s->pending_buf = (uchf *) overlay; - s->pending_buf_size = (ulg)s->lit_bufsize * (sizeof(ush)+2L); - - if (s->window == Z_NULL || s->prev == Z_NULL || s->head == Z_NULL || - s->pending_buf == Z_NULL) { - s->status = FINISH_STATE; - strm->msg = ERR_MSG(Z_MEM_ERROR); - deflateEnd (strm); - return Z_MEM_ERROR; - } - s->d_buf = overlay + s->lit_bufsize/sizeof(ush); - s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize; - - s->level = level; - s->strategy = strategy; - s->method = (Byte)method; - - return deflateReset(strm); -} - -/* ========================================================================= */ -int ZEXPORT deflateSetDictionary (strm, dictionary, dictLength) - z_streamp strm; - const Bytef *dictionary; - uInt dictLength; -{ - deflate_state *s; - uInt str, n; - int wrap; - unsigned avail; - z_const unsigned char *next; - - if (strm == Z_NULL || strm->state == Z_NULL || dictionary == Z_NULL) - return Z_STREAM_ERROR; - s = strm->state; - wrap = s->wrap; - if (wrap == 2 || (wrap == 1 && s->status != INIT_STATE) || s->lookahead) - return Z_STREAM_ERROR; - - /* when using zlib wrappers, compute Adler-32 for provided dictionary */ - if (wrap == 1) - strm->adler = adler32(strm->adler, dictionary, dictLength); - s->wrap = 0; /* avoid computing Adler-32 in read_buf */ - - /* if dictionary would fill window, just replace the history */ - if (dictLength >= s->w_size) { - if (wrap == 0) { /* already empty otherwise */ - CLEAR_HASH(s); - s->strstart = 0; - s->block_start = 0L; - s->insert = 0; - } - dictionary += dictLength - s->w_size; /* use the tail */ - dictLength = s->w_size; - } - - /* insert dictionary into window and hash */ - avail = strm->avail_in; - next = strm->next_in; - strm->avail_in = dictLength; - strm->next_in = (z_const Bytef *)dictionary; - fill_window(s); - while (s->lookahead >= MIN_MATCH) { - str = s->strstart; - n = s->lookahead - (MIN_MATCH-1); - do { - UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); -#ifndef FASTEST - s->prev[str & s->w_mask] = s->head[s->ins_h]; -#endif - s->head[s->ins_h] = (Pos)str; - str++; - } while (--n); - s->strstart = str; - s->lookahead = MIN_MATCH-1; - fill_window(s); - } - s->strstart += s->lookahead; - s->block_start = (long)s->strstart; - s->insert = s->lookahead; - s->lookahead = 0; - s->match_length = s->prev_length = MIN_MATCH-1; - s->match_available = 0; - strm->next_in = next; - strm->avail_in = avail; - s->wrap = wrap; - return Z_OK; -} - -/* ========================================================================= */ -int ZEXPORT deflateResetKeep (strm) - z_streamp strm; -{ - deflate_state *s; - - if (strm == Z_NULL || strm->state == Z_NULL || - strm->zalloc == (alloc_func)0 || strm->zfree == (free_func)0) { - return Z_STREAM_ERROR; - } - - strm->total_in = strm->total_out = 0; - strm->msg = Z_NULL; /* use zfree if we ever allocate msg dynamically */ - strm->data_type = Z_UNKNOWN; - - s = (deflate_state *)strm->state; - s->pending = 0; - s->pending_out = s->pending_buf; - - if (s->wrap < 0) { - s->wrap = -s->wrap; /* was made negative by deflate(..., Z_FINISH); */ - } - s->status = s->wrap ? INIT_STATE : BUSY_STATE; - strm->adler = -#ifdef GZIP - s->wrap == 2 ? crc32(0L, Z_NULL, 0) : -#endif - adler32(0L, Z_NULL, 0); - s->last_flush = Z_NO_FLUSH; - - _tr_init(s); - - return Z_OK; -} - -/* ========================================================================= */ -int ZEXPORT deflateReset (strm) - z_streamp strm; -{ - int ret; - - ret = deflateResetKeep(strm); - if (ret == Z_OK) - lm_init(strm->state); - return ret; -} - -/* ========================================================================= */ -int ZEXPORT deflateSetHeader (strm, head) - z_streamp strm; - gz_headerp head; -{ - if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; - if (strm->state->wrap != 2) return Z_STREAM_ERROR; - strm->state->gzhead = head; - return Z_OK; -} - -/* ========================================================================= */ -int ZEXPORT deflatePending (strm, pending, bits) - unsigned *pending; - int *bits; - z_streamp strm; -{ - if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; - if (pending != Z_NULL) - *pending = strm->state->pending; - if (bits != Z_NULL) - *bits = strm->state->bi_valid; - return Z_OK; -} - -/* ========================================================================= */ -int ZEXPORT deflatePrime (strm, bits, value) - z_streamp strm; - int bits; - int value; -{ - deflate_state *s; - int put; - - if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; - s = strm->state; - if ((Bytef *)(s->d_buf) < s->pending_out + ((Buf_size + 7) >> 3)) - return Z_BUF_ERROR; - do { - put = Buf_size - s->bi_valid; - if (put > bits) - put = bits; - s->bi_buf |= (ush)((value & ((1 << put) - 1)) << s->bi_valid); - s->bi_valid += put; - _tr_flush_bits(s); - value >>= put; - bits -= put; - } while (bits); - return Z_OK; -} - -/* ========================================================================= */ -int ZEXPORT deflateParams(strm, level, strategy) - z_streamp strm; - int level; - int strategy; -{ - deflate_state *s; - compress_func func; - int err = Z_OK; - - if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; - s = strm->state; - -#ifdef FASTEST - if (level != 0) level = 1; -#else - if (level == Z_DEFAULT_COMPRESSION) level = 6; -#endif - if (level < 0 || level > 9 || strategy < 0 || strategy > Z_FIXED) { - return Z_STREAM_ERROR; - } - func = configuration_table[s->level].func; - - if ((strategy != s->strategy || func != configuration_table[level].func) && - strm->total_in != 0) { - /* Flush the last buffer: */ - err = deflate(strm, Z_BLOCK); - if (err == Z_BUF_ERROR && s->pending == 0) - err = Z_OK; - } - if (s->level != level) { - s->level = level; - s->max_lazy_match = configuration_table[level].max_lazy; - s->good_match = configuration_table[level].good_length; - s->nice_match = configuration_table[level].nice_length; - s->max_chain_length = configuration_table[level].max_chain; - } - s->strategy = strategy; - return err; -} - -/* ========================================================================= */ -int ZEXPORT deflateTune(strm, good_length, max_lazy, nice_length, max_chain) - z_streamp strm; - int good_length; - int max_lazy; - int nice_length; - int max_chain; -{ - deflate_state *s; - - if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; - s = strm->state; - s->good_match = good_length; - s->max_lazy_match = max_lazy; - s->nice_match = nice_length; - s->max_chain_length = max_chain; - return Z_OK; -} - -/* ========================================================================= - * For the default windowBits of 15 and memLevel of 8, this function returns - * a close to exact, as well as small, upper bound on the compressed size. - * They are coded as constants here for a reason--if the #define's are - * changed, then this function needs to be changed as well. The return - * value for 15 and 8 only works for those exact settings. - * - * For any setting other than those defaults for windowBits and memLevel, - * the value returned is a conservative worst case for the maximum expansion - * resulting from using fixed blocks instead of stored blocks, which deflate - * can emit on compressed data for some combinations of the parameters. - * - * This function could be more sophisticated to provide closer upper bounds for - * every combination of windowBits and memLevel. But even the conservative - * upper bound of about 14% expansion does not seem onerous for output buffer - * allocation. - */ -uLong ZEXPORT deflateBound(strm, sourceLen) - z_streamp strm; - uLong sourceLen; -{ - deflate_state *s; - uLong complen, wraplen; - Bytef *str; - - /* conservative upper bound for compressed data */ - complen = sourceLen + - ((sourceLen + 7) >> 3) + ((sourceLen + 63) >> 6) + 5; - - /* if can't get parameters, return conservative bound plus zlib wrapper */ - if (strm == Z_NULL || strm->state == Z_NULL) - return complen + 6; - - /* compute wrapper length */ - s = strm->state; - switch (s->wrap) { - case 0: /* raw deflate */ - wraplen = 0; - break; - case 1: /* zlib wrapper */ - wraplen = 6 + (s->strstart ? 4 : 0); - break; - case 2: /* gzip wrapper */ - wraplen = 18; - if (s->gzhead != Z_NULL) { /* user-supplied gzip header */ - if (s->gzhead->extra != Z_NULL) - wraplen += 2 + s->gzhead->extra_len; - str = s->gzhead->name; - if (str != Z_NULL) - do { - wraplen++; - } while (*str++); - str = s->gzhead->comment; - if (str != Z_NULL) - do { - wraplen++; - } while (*str++); - if (s->gzhead->hcrc) - wraplen += 2; - } - break; - default: /* for compiler happiness */ - wraplen = 6; - } - - /* if not default parameters, return conservative bound */ - if (s->w_bits != 15 || s->hash_bits != 8 + 7) - return complen + wraplen; - - /* default settings: return tight bound for that case */ - return sourceLen + (sourceLen >> 12) + (sourceLen >> 14) + - (sourceLen >> 25) + 13 - 6 + wraplen; -} - -/* ========================================================================= - * Put a short in the pending buffer. The 16-bit value is put in MSB order. - * IN assertion: the stream state is correct and there is enough room in - * pending_buf. - */ -local void putShortMSB (s, b) - deflate_state *s; - uInt b; -{ - put_byte(s, (Byte)(b >> 8)); - put_byte(s, (Byte)(b & 0xff)); -} - -/* ========================================================================= - * Flush as much pending output as possible. All deflate() output goes - * through this function so some applications may wish to modify it - * to avoid allocating a large strm->next_out buffer and copying into it. - * (See also read_buf()). - */ -local void flush_pending(strm) - z_streamp strm; -{ - unsigned len; - deflate_state *s = strm->state; - - _tr_flush_bits(s); - len = s->pending; - if (len > strm->avail_out) len = strm->avail_out; - if (len == 0) return; - - zmemcpy(strm->next_out, s->pending_out, len); - strm->next_out += len; - s->pending_out += len; - strm->total_out += len; - strm->avail_out -= len; - s->pending -= len; - if (s->pending == 0) { - s->pending_out = s->pending_buf; - } -} - -/* ========================================================================= */ -int ZEXPORT deflate (strm, flush) - z_streamp strm; - int flush; -{ - int old_flush; /* value of flush param for previous deflate call */ - deflate_state *s; - - if (strm == Z_NULL || strm->state == Z_NULL || - flush > Z_BLOCK || flush < 0) { - return Z_STREAM_ERROR; - } - s = strm->state; - - if (strm->next_out == Z_NULL || - (strm->next_in == Z_NULL && strm->avail_in != 0) || - (s->status == FINISH_STATE && flush != Z_FINISH)) { - ERR_RETURN(strm, Z_STREAM_ERROR); - } - if (strm->avail_out == 0) ERR_RETURN(strm, Z_BUF_ERROR); - - s->strm = strm; /* just in case */ - old_flush = s->last_flush; - s->last_flush = flush; - - /* Write the header */ - if (s->status == INIT_STATE) { -#ifdef GZIP - if (s->wrap == 2) { - strm->adler = crc32(0L, Z_NULL, 0); - put_byte(s, 31); - put_byte(s, 139); - put_byte(s, 8); - if (s->gzhead == Z_NULL) { - put_byte(s, 0); - put_byte(s, 0); - put_byte(s, 0); - put_byte(s, 0); - put_byte(s, 0); - put_byte(s, s->level == 9 ? 2 : - (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ? - 4 : 0)); - put_byte(s, OS_CODE); - s->status = BUSY_STATE; - } - else { - put_byte(s, (s->gzhead->text ? 1 : 0) + - (s->gzhead->hcrc ? 2 : 0) + - (s->gzhead->extra == Z_NULL ? 0 : 4) + - (s->gzhead->name == Z_NULL ? 0 : 8) + - (s->gzhead->comment == Z_NULL ? 0 : 16) - ); - put_byte(s, (Byte)(s->gzhead->time & 0xff)); - put_byte(s, (Byte)((s->gzhead->time >> 8) & 0xff)); - put_byte(s, (Byte)((s->gzhead->time >> 16) & 0xff)); - put_byte(s, (Byte)((s->gzhead->time >> 24) & 0xff)); - put_byte(s, s->level == 9 ? 2 : - (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ? - 4 : 0)); - put_byte(s, s->gzhead->os & 0xff); - if (s->gzhead->extra != Z_NULL) { - put_byte(s, s->gzhead->extra_len & 0xff); - put_byte(s, (s->gzhead->extra_len >> 8) & 0xff); - } - if (s->gzhead->hcrc) - strm->adler = crc32(strm->adler, s->pending_buf, - s->pending); - s->gzindex = 0; - s->status = EXTRA_STATE; - } - } - else -#endif - { - uInt header = (Z_DEFLATED + ((s->w_bits-8)<<4)) << 8; - uInt level_flags; - - if (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2) - level_flags = 0; - else if (s->level < 6) - level_flags = 1; - else if (s->level == 6) - level_flags = 2; - else - level_flags = 3; - header |= (level_flags << 6); - if (s->strstart != 0) header |= PRESET_DICT; - header += 31 - (header % 31); - - s->status = BUSY_STATE; - putShortMSB(s, header); - - /* Save the adler32 of the preset dictionary: */ - if (s->strstart != 0) { - putShortMSB(s, (uInt)(strm->adler >> 16)); - putShortMSB(s, (uInt)(strm->adler & 0xffff)); - } - strm->adler = adler32(0L, Z_NULL, 0); - } - } -#ifdef GZIP - if (s->status == EXTRA_STATE) { - if (s->gzhead->extra != Z_NULL) { - uInt beg = s->pending; /* start of bytes to update crc */ - - while (s->gzindex < (s->gzhead->extra_len & 0xffff)) { - if (s->pending == s->pending_buf_size) { - if (s->gzhead->hcrc && s->pending > beg) - strm->adler = crc32(strm->adler, s->pending_buf + beg, - s->pending - beg); - flush_pending(strm); - beg = s->pending; - if (s->pending == s->pending_buf_size) - break; - } - put_byte(s, s->gzhead->extra[s->gzindex]); - s->gzindex++; - } - if (s->gzhead->hcrc && s->pending > beg) - strm->adler = crc32(strm->adler, s->pending_buf + beg, - s->pending - beg); - if (s->gzindex == s->gzhead->extra_len) { - s->gzindex = 0; - s->status = NAME_STATE; - } - } - else - s->status = NAME_STATE; - } - if (s->status == NAME_STATE) { - if (s->gzhead->name != Z_NULL) { - uInt beg = s->pending; /* start of bytes to update crc */ - int val; - - do { - if (s->pending == s->pending_buf_size) { - if (s->gzhead->hcrc && s->pending > beg) - strm->adler = crc32(strm->adler, s->pending_buf + beg, - s->pending - beg); - flush_pending(strm); - beg = s->pending; - if (s->pending == s->pending_buf_size) { - val = 1; - break; - } - } - val = s->gzhead->name[s->gzindex++]; - put_byte(s, val); - } while (val != 0); - if (s->gzhead->hcrc && s->pending > beg) - strm->adler = crc32(strm->adler, s->pending_buf + beg, - s->pending - beg); - if (val == 0) { - s->gzindex = 0; - s->status = COMMENT_STATE; - } - } - else - s->status = COMMENT_STATE; - } - if (s->status == COMMENT_STATE) { - if (s->gzhead->comment != Z_NULL) { - uInt beg = s->pending; /* start of bytes to update crc */ - int val; - - do { - if (s->pending == s->pending_buf_size) { - if (s->gzhead->hcrc && s->pending > beg) - strm->adler = crc32(strm->adler, s->pending_buf + beg, - s->pending - beg); - flush_pending(strm); - beg = s->pending; - if (s->pending == s->pending_buf_size) { - val = 1; - break; - } - } - val = s->gzhead->comment[s->gzindex++]; - put_byte(s, val); - } while (val != 0); - if (s->gzhead->hcrc && s->pending > beg) - strm->adler = crc32(strm->adler, s->pending_buf + beg, - s->pending - beg); - if (val == 0) - s->status = HCRC_STATE; - } - else - s->status = HCRC_STATE; - } - if (s->status == HCRC_STATE) { - if (s->gzhead->hcrc) { - if (s->pending + 2 > s->pending_buf_size) - flush_pending(strm); - if (s->pending + 2 <= s->pending_buf_size) { - put_byte(s, (Byte)(strm->adler & 0xff)); - put_byte(s, (Byte)((strm->adler >> 8) & 0xff)); - strm->adler = crc32(0L, Z_NULL, 0); - s->status = BUSY_STATE; - } - } - else - s->status = BUSY_STATE; - } -#endif - - /* Flush as much pending output as possible */ - if (s->pending != 0) { - flush_pending(strm); - if (strm->avail_out == 0) { - /* Since avail_out is 0, deflate will be called again with - * more output space, but possibly with both pending and - * avail_in equal to zero. There won't be anything to do, - * but this is not an error situation so make sure we - * return OK instead of BUF_ERROR at next call of deflate: - */ - s->last_flush = -1; - return Z_OK; - } - - /* Make sure there is something to do and avoid duplicate consecutive - * flushes. For repeated and useless calls with Z_FINISH, we keep - * returning Z_STREAM_END instead of Z_BUF_ERROR. - */ - } else if (strm->avail_in == 0 && RANK(flush) <= RANK(old_flush) && - flush != Z_FINISH) { - ERR_RETURN(strm, Z_BUF_ERROR); - } - - /* User must not provide more input after the first FINISH: */ - if (s->status == FINISH_STATE && strm->avail_in != 0) { - ERR_RETURN(strm, Z_BUF_ERROR); - } - - /* Start a new block or continue the current one. - */ - if (strm->avail_in != 0 || s->lookahead != 0 || - (flush != Z_NO_FLUSH && s->status != FINISH_STATE)) { - block_state bstate; - - bstate = s->strategy == Z_HUFFMAN_ONLY ? deflate_huff(s, flush) : - (s->strategy == Z_RLE ? deflate_rle(s, flush) : - (*(configuration_table[s->level].func))(s, flush)); - - if (bstate == finish_started || bstate == finish_done) { - s->status = FINISH_STATE; - } - if (bstate == need_more || bstate == finish_started) { - if (strm->avail_out == 0) { - s->last_flush = -1; /* avoid BUF_ERROR next call, see above */ - } - return Z_OK; - /* If flush != Z_NO_FLUSH && avail_out == 0, the next call - * of deflate should use the same flush parameter to make sure - * that the flush is complete. So we don't have to output an - * empty block here, this will be done at next call. This also - * ensures that for a very small output buffer, we emit at most - * one empty block. - */ - } - if (bstate == block_done) { - if (flush == Z_PARTIAL_FLUSH) { - _tr_align(s); - } else if (flush != Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */ - _tr_stored_block(s, (char*)0, 0L, 0); - /* For a full flush, this empty block will be recognized - * as a special marker by inflate_sync(). - */ - if (flush == Z_FULL_FLUSH) { - CLEAR_HASH(s); /* forget history */ - if (s->lookahead == 0) { - s->strstart = 0; - s->block_start = 0L; - s->insert = 0; - } - } - } - flush_pending(strm); - if (strm->avail_out == 0) { - s->last_flush = -1; /* avoid BUF_ERROR at next call, see above */ - return Z_OK; - } - } - } - Assert(strm->avail_out > 0, "bug2"); - - if (flush != Z_FINISH) return Z_OK; - if (s->wrap <= 0) return Z_STREAM_END; - - /* Write the trailer */ -#ifdef GZIP - if (s->wrap == 2) { - put_byte(s, (Byte)(strm->adler & 0xff)); - put_byte(s, (Byte)((strm->adler >> 8) & 0xff)); - put_byte(s, (Byte)((strm->adler >> 16) & 0xff)); - put_byte(s, (Byte)((strm->adler >> 24) & 0xff)); - put_byte(s, (Byte)(strm->total_in & 0xff)); - put_byte(s, (Byte)((strm->total_in >> 8) & 0xff)); - put_byte(s, (Byte)((strm->total_in >> 16) & 0xff)); - put_byte(s, (Byte)((strm->total_in >> 24) & 0xff)); - } - else -#endif - { - putShortMSB(s, (uInt)(strm->adler >> 16)); - putShortMSB(s, (uInt)(strm->adler & 0xffff)); - } - flush_pending(strm); - /* If avail_out is zero, the application will call deflate again - * to flush the rest. - */ - if (s->wrap > 0) s->wrap = -s->wrap; /* write the trailer only once! */ - return s->pending != 0 ? Z_OK : Z_STREAM_END; -} - -/* ========================================================================= */ -int ZEXPORT deflateEnd (strm) - z_streamp strm; -{ - int status; - - if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; - - status = strm->state->status; - if (status != INIT_STATE && - status != EXTRA_STATE && - status != NAME_STATE && - status != COMMENT_STATE && - status != HCRC_STATE && - status != BUSY_STATE && - status != FINISH_STATE) { - return Z_STREAM_ERROR; - } - - /* Deallocate in reverse order of allocations: */ - TRY_FREE(strm, strm->state->pending_buf); - TRY_FREE(strm, strm->state->head); - TRY_FREE(strm, strm->state->prev); - TRY_FREE(strm, strm->state->window); - - ZFREE(strm, strm->state); - strm->state = Z_NULL; - - return status == BUSY_STATE ? Z_DATA_ERROR : Z_OK; -} - -/* ========================================================================= - * Copy the source state to the destination state. - * To simplify the source, this is not supported for 16-bit MSDOS (which - * doesn't have enough memory anyway to duplicate compression states). - */ -int ZEXPORT deflateCopy (dest, source) - z_streamp dest; - z_streamp source; -{ -#ifdef MAXSEG_64K - return Z_STREAM_ERROR; -#else - deflate_state *ds; - deflate_state *ss; - ushf *overlay; - - - if (source == Z_NULL || dest == Z_NULL || source->state == Z_NULL) { - return Z_STREAM_ERROR; - } - - ss = source->state; - - zmemcpy((voidpf)dest, (voidpf)source, sizeof(z_stream)); - - ds = (deflate_state *) ZALLOC(dest, 1, sizeof(deflate_state)); - if (ds == Z_NULL) return Z_MEM_ERROR; - dest->state = (struct internal_state FAR *) ds; - zmemcpy((voidpf)ds, (voidpf)ss, sizeof(deflate_state)); - ds->strm = dest; - - ds->window = (Bytef *) ZALLOC(dest, ds->w_size, 2*sizeof(Byte)); - ds->prev = (Posf *) ZALLOC(dest, ds->w_size, sizeof(Pos)); - ds->head = (Posf *) ZALLOC(dest, ds->hash_size, sizeof(Pos)); - overlay = (ushf *) ZALLOC(dest, ds->lit_bufsize, sizeof(ush)+2); - ds->pending_buf = (uchf *) overlay; - - if (ds->window == Z_NULL || ds->prev == Z_NULL || ds->head == Z_NULL || - ds->pending_buf == Z_NULL) { - deflateEnd (dest); - return Z_MEM_ERROR; - } - /* following zmemcpy do not work for 16-bit MSDOS */ - zmemcpy(ds->window, ss->window, ds->w_size * 2 * sizeof(Byte)); - zmemcpy((voidpf)ds->prev, (voidpf)ss->prev, ds->w_size * sizeof(Pos)); - zmemcpy((voidpf)ds->head, (voidpf)ss->head, ds->hash_size * sizeof(Pos)); - zmemcpy(ds->pending_buf, ss->pending_buf, (uInt)ds->pending_buf_size); - - ds->pending_out = ds->pending_buf + (ss->pending_out - ss->pending_buf); - ds->d_buf = overlay + ds->lit_bufsize/sizeof(ush); - ds->l_buf = ds->pending_buf + (1+sizeof(ush))*ds->lit_bufsize; - - ds->l_desc.dyn_tree = ds->dyn_ltree; - ds->d_desc.dyn_tree = ds->dyn_dtree; - ds->bl_desc.dyn_tree = ds->bl_tree; - - return Z_OK; -#endif /* MAXSEG_64K */ -} - -/* =========================================================================== - * Read a new buffer from the current input stream, update the adler32 - * and total number of bytes read. All deflate() input goes through - * this function so some applications may wish to modify it to avoid - * allocating a large strm->next_in buffer and copying from it. - * (See also flush_pending()). - */ -local int read_buf(strm, buf, size) - z_streamp strm; - Bytef *buf; - unsigned size; -{ - unsigned len = strm->avail_in; - - if (len > size) len = size; - if (len == 0) return 0; - - strm->avail_in -= len; - - zmemcpy(buf, strm->next_in, len); - if (strm->state->wrap == 1) { - strm->adler = adler32(strm->adler, buf, len); - } -#ifdef GZIP - else if (strm->state->wrap == 2) { - strm->adler = crc32(strm->adler, buf, len); - } -#endif - strm->next_in += len; - strm->total_in += len; - - return (int)len; -} - -/* =========================================================================== - * Initialize the "longest match" routines for a new zlib stream - */ -local void lm_init (s) - deflate_state *s; -{ - s->window_size = (ulg)2L*s->w_size; - - CLEAR_HASH(s); - - /* Set the default configuration parameters: - */ - s->max_lazy_match = configuration_table[s->level].max_lazy; - s->good_match = configuration_table[s->level].good_length; - s->nice_match = configuration_table[s->level].nice_length; - s->max_chain_length = configuration_table[s->level].max_chain; - - s->strstart = 0; - s->block_start = 0L; - s->lookahead = 0; - s->insert = 0; - s->match_length = s->prev_length = MIN_MATCH-1; - s->match_available = 0; - s->ins_h = 0; -#ifndef FASTEST -#ifdef ASMV - match_init(); /* initialize the asm code */ -#endif -#endif -} - -#ifndef FASTEST -/* =========================================================================== - * Set match_start to the longest match starting at the given string and - * return its length. Matches shorter or equal to prev_length are discarded, - * in which case the result is equal to prev_length and match_start is - * garbage. - * IN assertions: cur_match is the head of the hash chain for the current - * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1 - * OUT assertion: the match length is not greater than s->lookahead. - */ -#ifndef ASMV -/* For 80x86 and 680x0, an optimized version will be provided in match.asm or - * match.S. The code will be functionally equivalent. - */ -local uInt longest_match(s, cur_match) - deflate_state *s; - IPos cur_match; /* current match */ -{ - unsigned chain_length = s->max_chain_length;/* max hash chain length */ - register Bytef *scan = s->window + s->strstart; /* current string */ - register Bytef *match; /* matched string */ - register int len; /* length of current match */ - int best_len = s->prev_length; /* best match length so far */ - int nice_match = s->nice_match; /* stop if match long enough */ - IPos limit = s->strstart > (IPos)MAX_DIST(s) ? - s->strstart - (IPos)MAX_DIST(s) : NIL; - /* Stop when cur_match becomes <= limit. To simplify the code, - * we prevent matches with the string of window index 0. - */ - Posf *prev = s->prev; - uInt wmask = s->w_mask; - -#ifdef UNALIGNED_OK - /* Compare two bytes at a time. Note: this is not always beneficial. - * Try with and without -DUNALIGNED_OK to check. - */ - register Bytef *strend = s->window + s->strstart + MAX_MATCH - 1; - register ush scan_start = *(ushf*)scan; - register ush scan_end = *(ushf*)(scan+best_len-1); -#else - register Bytef *strend = s->window + s->strstart + MAX_MATCH; - register Byte scan_end1 = scan[best_len-1]; - register Byte scan_end = scan[best_len]; -#endif - - /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16. - * It is easy to get rid of this optimization if necessary. - */ - Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever"); - - /* Do not waste too much time if we already have a good match: */ - if (s->prev_length >= s->good_match) { - chain_length >>= 2; - } - /* Do not look for matches beyond the end of the input. This is necessary - * to make deflate deterministic. - */ - if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead; - - Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead"); - - do { - Assert(cur_match < s->strstart, "no future"); - match = s->window + cur_match; - - /* Skip to next match if the match length cannot increase - * or if the match length is less than 2. Note that the checks below - * for insufficient lookahead only occur occasionally for performance - * reasons. Therefore uninitialized memory will be accessed, and - * conditional jumps will be made that depend on those values. - * However the length of the match is limited to the lookahead, so - * the output of deflate is not affected by the uninitialized values. - */ -#if (defined(UNALIGNED_OK) && MAX_MATCH == 258) - /* This code assumes sizeof(unsigned short) == 2. Do not use - * UNALIGNED_OK if your compiler uses a different size. - */ - if (*(ushf*)(match+best_len-1) != scan_end || - *(ushf*)match != scan_start) continue; - - /* It is not necessary to compare scan[2] and match[2] since they are - * always equal when the other bytes match, given that the hash keys - * are equal and that HASH_BITS >= 8. Compare 2 bytes at a time at - * strstart+3, +5, ... up to strstart+257. We check for insufficient - * lookahead only every 4th comparison; the 128th check will be made - * at strstart+257. If MAX_MATCH-2 is not a multiple of 8, it is - * necessary to put more guard bytes at the end of the window, or - * to check more often for insufficient lookahead. - */ - Assert(scan[2] == match[2], "scan[2]?"); - scan++, match++; - do { - } while (*(ushf*)(scan+=2) == *(ushf*)(match+=2) && - *(ushf*)(scan+=2) == *(ushf*)(match+=2) && - *(ushf*)(scan+=2) == *(ushf*)(match+=2) && - *(ushf*)(scan+=2) == *(ushf*)(match+=2) && - scan < strend); - /* The funny "do {}" generates better code on most compilers */ - - /* Here, scan <= window+strstart+257 */ - Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan"); - if (*scan == *match) scan++; - - len = (MAX_MATCH - 1) - (int)(strend-scan); - scan = strend - (MAX_MATCH-1); - -#else /* UNALIGNED_OK */ - - if (match[best_len] != scan_end || - match[best_len-1] != scan_end1 || - *match != *scan || - *++match != scan[1]) continue; - - /* The check at best_len-1 can be removed because it will be made - * again later. (This heuristic is not always a win.) - * It is not necessary to compare scan[2] and match[2] since they - * are always equal when the other bytes match, given that - * the hash keys are equal and that HASH_BITS >= 8. - */ - scan += 2, match++; - Assert(*scan == *match, "match[2]?"); - - /* We check for insufficient lookahead only every 8th comparison; - * the 256th check will be made at strstart+258. - */ - do { - } while (*++scan == *++match && *++scan == *++match && - *++scan == *++match && *++scan == *++match && - *++scan == *++match && *++scan == *++match && - *++scan == *++match && *++scan == *++match && - scan < strend); - - Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan"); - - len = MAX_MATCH - (int)(strend - scan); - scan = strend - MAX_MATCH; - -#endif /* UNALIGNED_OK */ - - if (len > best_len) { - s->match_start = cur_match; - best_len = len; - if (len >= nice_match) break; -#ifdef UNALIGNED_OK - scan_end = *(ushf*)(scan+best_len-1); -#else - scan_end1 = scan[best_len-1]; - scan_end = scan[best_len]; -#endif - } - } while ((cur_match = prev[cur_match & wmask]) > limit - && --chain_length != 0); - - if ((uInt)best_len <= s->lookahead) return (uInt)best_len; - return s->lookahead; -} -#endif /* ASMV */ - -#else /* FASTEST */ - -/* --------------------------------------------------------------------------- - * Optimized version for FASTEST only - */ -local uInt longest_match(s, cur_match) - deflate_state *s; - IPos cur_match; /* current match */ -{ - register Bytef *scan = s->window + s->strstart; /* current string */ - register Bytef *match; /* matched string */ - register int len; /* length of current match */ - register Bytef *strend = s->window + s->strstart + MAX_MATCH; - - /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16. - * It is easy to get rid of this optimization if necessary. - */ - Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever"); - - Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead"); - - Assert(cur_match < s->strstart, "no future"); - - match = s->window + cur_match; - - /* Return failure if the match length is less than 2: - */ - if (match[0] != scan[0] || match[1] != scan[1]) return MIN_MATCH-1; - - /* The check at best_len-1 can be removed because it will be made - * again later. (This heuristic is not always a win.) - * It is not necessary to compare scan[2] and match[2] since they - * are always equal when the other bytes match, given that - * the hash keys are equal and that HASH_BITS >= 8. - */ - scan += 2, match += 2; - Assert(*scan == *match, "match[2]?"); - - /* We check for insufficient lookahead only every 8th comparison; - * the 256th check will be made at strstart+258. - */ - do { - } while (*++scan == *++match && *++scan == *++match && - *++scan == *++match && *++scan == *++match && - *++scan == *++match && *++scan == *++match && - *++scan == *++match && *++scan == *++match && - scan < strend); - - Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan"); - - len = MAX_MATCH - (int)(strend - scan); - - if (len < MIN_MATCH) return MIN_MATCH - 1; - - s->match_start = cur_match; - return (uInt)len <= s->lookahead ? (uInt)len : s->lookahead; -} - -#endif /* FASTEST */ - -#ifdef DEBUG -/* =========================================================================== - * Check that the match at match_start is indeed a match. - */ -local void check_match(s, start, match, length) - deflate_state *s; - IPos start, match; - int length; -{ - /* check that the match is indeed a match */ - if (zmemcmp(s->window + match, - s->window + start, length) != EQUAL) { - fprintf(stderr, " start %u, match %u, length %d\n", - start, match, length); - do { - fprintf(stderr, "%c%c", s->window[match++], s->window[start++]); - } while (--length != 0); - z_error("invalid match"); - } - if (z_verbose > 1) { - fprintf(stderr,"\\[%d,%d]", start-match, length); - do { putc(s->window[start++], stderr); } while (--length != 0); - } -} -#else -# define check_match(s, start, match, length) -#endif /* DEBUG */ - -/* =========================================================================== - * Fill the window when the lookahead becomes insufficient. - * Updates strstart and lookahead. - * - * IN assertion: lookahead < MIN_LOOKAHEAD - * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD - * At least one byte has been read, or avail_in == 0; reads are - * performed for at least two bytes (required for the zip translate_eol - * option -- not supported here). - */ -local void fill_window(s) - deflate_state *s; -{ - register unsigned n, m; - register Posf *p; - unsigned more; /* Amount of free space at the end of the window. */ - uInt wsize = s->w_size; - - Assert(s->lookahead < MIN_LOOKAHEAD, "already enough lookahead"); - - do { - more = (unsigned)(s->window_size -(ulg)s->lookahead -(ulg)s->strstart); - - /* Deal with !@#$% 64K limit: */ - if (sizeof(int) <= 2) { - if (more == 0 && s->strstart == 0 && s->lookahead == 0) { - more = wsize; - - } else if (more == (unsigned)(-1)) { - /* Very unlikely, but possible on 16 bit machine if - * strstart == 0 && lookahead == 1 (input done a byte at time) - */ - more--; - } - } - - /* If the window is almost full and there is insufficient lookahead, - * move the upper half to the lower one to make room in the upper half. - */ - if (s->strstart >= wsize+MAX_DIST(s)) { - - zmemcpy(s->window, s->window+wsize, (unsigned)wsize); - s->match_start -= wsize; - s->strstart -= wsize; /* we now have strstart >= MAX_DIST */ - s->block_start -= (long) wsize; - - /* Slide the hash table (could be avoided with 32 bit values - at the expense of memory usage). We slide even when level == 0 - to keep the hash table consistent if we switch back to level > 0 - later. (Using level 0 permanently is not an optimal usage of - zlib, so we don't care about this pathological case.) - */ - n = s->hash_size; - p = &s->head[n]; - do { - m = *--p; - *p = (Pos)(m >= wsize ? m-wsize : NIL); - } while (--n); - - n = wsize; -#ifndef FASTEST - p = &s->prev[n]; - do { - m = *--p; - *p = (Pos)(m >= wsize ? m-wsize : NIL); - /* If n is not on any hash chain, prev[n] is garbage but - * its value will never be used. - */ - } while (--n); -#endif - more += wsize; - } - if (s->strm->avail_in == 0) break; - - /* If there was no sliding: - * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 && - * more == window_size - lookahead - strstart - * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1) - * => more >= window_size - 2*WSIZE + 2 - * In the BIG_MEM or MMAP case (not yet supported), - * window_size == input_size + MIN_LOOKAHEAD && - * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD. - * Otherwise, window_size == 2*WSIZE so more >= 2. - * If there was sliding, more >= WSIZE. So in all cases, more >= 2. - */ - Assert(more >= 2, "more < 2"); - - n = read_buf(s->strm, s->window + s->strstart + s->lookahead, more); - s->lookahead += n; - - /* Initialize the hash value now that we have some input: */ - if (s->lookahead + s->insert >= MIN_MATCH) { - uInt str = s->strstart - s->insert; - s->ins_h = s->window[str]; - UPDATE_HASH(s, s->ins_h, s->window[str + 1]); -#if MIN_MATCH != 3 - Call UPDATE_HASH() MIN_MATCH-3 more times -#endif - while (s->insert) { - UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); -#ifndef FASTEST - s->prev[str & s->w_mask] = s->head[s->ins_h]; -#endif - s->head[s->ins_h] = (Pos)str; - str++; - s->insert--; - if (s->lookahead + s->insert < MIN_MATCH) - break; - } - } - /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage, - * but this is not important since only literal bytes will be emitted. - */ - - } while (s->lookahead < MIN_LOOKAHEAD && s->strm->avail_in != 0); - - /* If the WIN_INIT bytes after the end of the current data have never been - * written, then zero those bytes in order to avoid memory check reports of - * the use of uninitialized (or uninitialised as Julian writes) bytes by - * the longest match routines. Update the high water mark for the next - * time through here. WIN_INIT is set to MAX_MATCH since the longest match - * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead. - */ - if (s->high_water < s->window_size) { - ulg curr = s->strstart + (ulg)(s->lookahead); - ulg init; - - if (s->high_water < curr) { - /* Previous high water mark below current data -- zero WIN_INIT - * bytes or up to end of window, whichever is less. - */ - init = s->window_size - curr; - if (init > WIN_INIT) - init = WIN_INIT; - zmemzero(s->window + curr, (unsigned)init); - s->high_water = curr + init; - } - else if (s->high_water < (ulg)curr + WIN_INIT) { - /* High water mark at or above current data, but below current data - * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up - * to end of window, whichever is less. - */ - init = (ulg)curr + WIN_INIT - s->high_water; - if (init > s->window_size - s->high_water) - init = s->window_size - s->high_water; - zmemzero(s->window + s->high_water, (unsigned)init); - s->high_water += init; - } - } - - Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD, - "not enough room for search"); -} - -/* =========================================================================== - * Flush the current block, with given end-of-file flag. - * IN assertion: strstart is set to the end of the current match. - */ -#define FLUSH_BLOCK_ONLY(s, last) { \ - _tr_flush_block(s, (s->block_start >= 0L ? \ - (charf *)&s->window[(unsigned)s->block_start] : \ - (charf *)Z_NULL), \ - (ulg)((long)s->strstart - s->block_start), \ - (last)); \ - s->block_start = s->strstart; \ - flush_pending(s->strm); \ - Tracev((stderr,"[FLUSH]")); \ -} - -/* Same but force premature exit if necessary. */ -#define FLUSH_BLOCK(s, last) { \ - FLUSH_BLOCK_ONLY(s, last); \ - if (s->strm->avail_out == 0) return (last) ? finish_started : need_more; \ -} - -/* =========================================================================== - * Copy without compression as much as possible from the input stream, return - * the current block state. - * This function does not insert new strings in the dictionary since - * uncompressible data is probably not useful. This function is used - * only for the level=0 compression option. - * NOTE: this function should be optimized to avoid extra copying from - * window to pending_buf. - */ -local block_state deflate_stored(s, flush) - deflate_state *s; - int flush; -{ - /* Stored blocks are limited to 0xffff bytes, pending_buf is limited - * to pending_buf_size, and each stored block has a 5 byte header: - */ - ulg max_block_size = 0xffff; - ulg max_start; - - if (max_block_size > s->pending_buf_size - 5) { - max_block_size = s->pending_buf_size - 5; - } - - /* Copy as much as possible from input to output: */ - for (;;) { - /* Fill the window as much as possible: */ - if (s->lookahead <= 1) { - - Assert(s->strstart < s->w_size+MAX_DIST(s) || - s->block_start >= (long)s->w_size, "slide too late"); - - fill_window(s); - if (s->lookahead == 0 && flush == Z_NO_FLUSH) return need_more; - - if (s->lookahead == 0) break; /* flush the current block */ - } - Assert(s->block_start >= 0L, "block gone"); - - s->strstart += s->lookahead; - s->lookahead = 0; - - /* Emit a stored block if pending_buf will be full: */ - max_start = s->block_start + max_block_size; - if (s->strstart == 0 || (ulg)s->strstart >= max_start) { - /* strstart == 0 is possible when wraparound on 16-bit machine */ - s->lookahead = (uInt)(s->strstart - max_start); - s->strstart = (uInt)max_start; - FLUSH_BLOCK(s, 0); - } - /* Flush if we may have to slide, otherwise block_start may become - * negative and the data will be gone: - */ - if (s->strstart - (uInt)s->block_start >= MAX_DIST(s)) { - FLUSH_BLOCK(s, 0); - } - } - s->insert = 0; - if (flush == Z_FINISH) { - FLUSH_BLOCK(s, 1); - return finish_done; - } - if ((long)s->strstart > s->block_start) - FLUSH_BLOCK(s, 0); - return block_done; -} - -/* =========================================================================== - * Compress as much as possible from the input stream, return the current - * block state. - * This function does not perform lazy evaluation of matches and inserts - * new strings in the dictionary only for unmatched strings or for short - * matches. It is used only for the fast compression options. - */ -local block_state deflate_fast(s, flush) - deflate_state *s; - int flush; -{ - IPos hash_head; /* head of the hash chain */ - int bflush; /* set if current block must be flushed */ - - for (;;) { - /* Make sure that we always have enough lookahead, except - * at the end of the input file. We need MAX_MATCH bytes - * for the next match, plus MIN_MATCH bytes to insert the - * string following the next match. - */ - if (s->lookahead < MIN_LOOKAHEAD) { - fill_window(s); - if (s->lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) { - return need_more; - } - if (s->lookahead == 0) break; /* flush the current block */ - } - - /* Insert the string window[strstart .. strstart+2] in the - * dictionary, and set hash_head to the head of the hash chain: - */ - hash_head = NIL; - if (s->lookahead >= MIN_MATCH) { - INSERT_STRING(s, s->strstart, hash_head); - } - - /* Find the longest match, discarding those <= prev_length. - * At this point we have always match_length < MIN_MATCH - */ - if (hash_head != NIL && s->strstart - hash_head <= MAX_DIST(s)) { - /* To simplify the code, we prevent matches with the string - * of window index 0 (in particular we have to avoid a match - * of the string with itself at the start of the input file). - */ - s->match_length = longest_match (s, hash_head); - /* longest_match() sets match_start */ - } - if (s->match_length >= MIN_MATCH) { - check_match(s, s->strstart, s->match_start, s->match_length); - - _tr_tally_dist(s, s->strstart - s->match_start, - s->match_length - MIN_MATCH, bflush); - - s->lookahead -= s->match_length; - - /* Insert new strings in the hash table only if the match length - * is not too large. This saves time but degrades compression. - */ -#ifndef FASTEST - if (s->match_length <= s->max_insert_length && - s->lookahead >= MIN_MATCH) { - s->match_length--; /* string at strstart already in table */ - do { - s->strstart++; - INSERT_STRING(s, s->strstart, hash_head); - /* strstart never exceeds WSIZE-MAX_MATCH, so there are - * always MIN_MATCH bytes ahead. - */ - } while (--s->match_length != 0); - s->strstart++; - } else -#endif - { - s->strstart += s->match_length; - s->match_length = 0; - s->ins_h = s->window[s->strstart]; - UPDATE_HASH(s, s->ins_h, s->window[s->strstart+1]); -#if MIN_MATCH != 3 - Call UPDATE_HASH() MIN_MATCH-3 more times -#endif - /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not - * matter since it will be recomputed at next deflate call. - */ - } - } else { - /* No match, output a literal byte */ - Tracevv((stderr,"%c", s->window[s->strstart])); - _tr_tally_lit (s, s->window[s->strstart], bflush); - s->lookahead--; - s->strstart++; - } - if (bflush) FLUSH_BLOCK(s, 0); - } - s->insert = s->strstart < MIN_MATCH-1 ? s->strstart : MIN_MATCH-1; - if (flush == Z_FINISH) { - FLUSH_BLOCK(s, 1); - return finish_done; - } - if (s->last_lit) - FLUSH_BLOCK(s, 0); - return block_done; -} - -#ifndef FASTEST -/* =========================================================================== - * Same as above, but achieves better compression. We use a lazy - * evaluation for matches: a match is finally adopted only if there is - * no better match at the next window position. - */ -local block_state deflate_slow(s, flush) - deflate_state *s; - int flush; -{ - IPos hash_head; /* head of hash chain */ - int bflush; /* set if current block must be flushed */ - - /* Process the input block. */ - for (;;) { - /* Make sure that we always have enough lookahead, except - * at the end of the input file. We need MAX_MATCH bytes - * for the next match, plus MIN_MATCH bytes to insert the - * string following the next match. - */ - if (s->lookahead < MIN_LOOKAHEAD) { - fill_window(s); - if (s->lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) { - return need_more; - } - if (s->lookahead == 0) break; /* flush the current block */ - } - - /* Insert the string window[strstart .. strstart+2] in the - * dictionary, and set hash_head to the head of the hash chain: - */ - hash_head = NIL; - if (s->lookahead >= MIN_MATCH) { - INSERT_STRING(s, s->strstart, hash_head); - } - - /* Find the longest match, discarding those <= prev_length. - */ - s->prev_length = s->match_length, s->prev_match = s->match_start; - s->match_length = MIN_MATCH-1; - - if (hash_head != NIL && s->prev_length < s->max_lazy_match && - s->strstart - hash_head <= MAX_DIST(s)) { - /* To simplify the code, we prevent matches with the string - * of window index 0 (in particular we have to avoid a match - * of the string with itself at the start of the input file). - */ - s->match_length = longest_match (s, hash_head); - /* longest_match() sets match_start */ - - if (s->match_length <= 5 && (s->strategy == Z_FILTERED -#if TOO_FAR <= 32767 - || (s->match_length == MIN_MATCH && - s->strstart - s->match_start > TOO_FAR) -#endif - )) { - - /* If prev_match is also MIN_MATCH, match_start is garbage - * but we will ignore the current match anyway. - */ - s->match_length = MIN_MATCH-1; - } - } - /* If there was a match at the previous step and the current - * match is not better, output the previous match: - */ - if (s->prev_length >= MIN_MATCH && s->match_length <= s->prev_length) { - uInt max_insert = s->strstart + s->lookahead - MIN_MATCH; - /* Do not insert strings in hash table beyond this. */ - - check_match(s, s->strstart-1, s->prev_match, s->prev_length); - - _tr_tally_dist(s, s->strstart -1 - s->prev_match, - s->prev_length - MIN_MATCH, bflush); - - /* Insert in hash table all strings up to the end of the match. - * strstart-1 and strstart are already inserted. If there is not - * enough lookahead, the last two strings are not inserted in - * the hash table. - */ - s->lookahead -= s->prev_length-1; - s->prev_length -= 2; - do { - if (++s->strstart <= max_insert) { - INSERT_STRING(s, s->strstart, hash_head); - } - } while (--s->prev_length != 0); - s->match_available = 0; - s->match_length = MIN_MATCH-1; - s->strstart++; - - if (bflush) FLUSH_BLOCK(s, 0); - - } else if (s->match_available) { - /* If there was no match at the previous position, output a - * single literal. If there was a match but the current match - * is longer, truncate the previous match to a single literal. - */ - Tracevv((stderr,"%c", s->window[s->strstart-1])); - _tr_tally_lit(s, s->window[s->strstart-1], bflush); - if (bflush) { - FLUSH_BLOCK_ONLY(s, 0); - } - s->strstart++; - s->lookahead--; - if (s->strm->avail_out == 0) return need_more; - } else { - /* There is no previous match to compare with, wait for - * the next step to decide. - */ - s->match_available = 1; - s->strstart++; - s->lookahead--; - } - } - Assert (flush != Z_NO_FLUSH, "no flush?"); - if (s->match_available) { - Tracevv((stderr,"%c", s->window[s->strstart-1])); - _tr_tally_lit(s, s->window[s->strstart-1], bflush); - s->match_available = 0; - } - s->insert = s->strstart < MIN_MATCH-1 ? s->strstart : MIN_MATCH-1; - if (flush == Z_FINISH) { - FLUSH_BLOCK(s, 1); - return finish_done; - } - if (s->last_lit) - FLUSH_BLOCK(s, 0); - return block_done; -} -#endif /* FASTEST */ - -/* =========================================================================== - * For Z_RLE, simply look for runs of bytes, generate matches only of distance - * one. Do not maintain a hash table. (It will be regenerated if this run of - * deflate switches away from Z_RLE.) - */ -local block_state deflate_rle(s, flush) - deflate_state *s; - int flush; -{ - int bflush; /* set if current block must be flushed */ - uInt prev; /* byte at distance one to match */ - Bytef *scan, *strend; /* scan goes up to strend for length of run */ - - for (;;) { - /* Make sure that we always have enough lookahead, except - * at the end of the input file. We need MAX_MATCH bytes - * for the longest run, plus one for the unrolled loop. - */ - if (s->lookahead <= MAX_MATCH) { - fill_window(s); - if (s->lookahead <= MAX_MATCH && flush == Z_NO_FLUSH) { - return need_more; - } - if (s->lookahead == 0) break; /* flush the current block */ - } - - /* See how many times the previous byte repeats */ - s->match_length = 0; - if (s->lookahead >= MIN_MATCH && s->strstart > 0) { - scan = s->window + s->strstart - 1; - prev = *scan; - if (prev == *++scan && prev == *++scan && prev == *++scan) { - strend = s->window + s->strstart + MAX_MATCH; - do { - } while (prev == *++scan && prev == *++scan && - prev == *++scan && prev == *++scan && - prev == *++scan && prev == *++scan && - prev == *++scan && prev == *++scan && - scan < strend); - s->match_length = MAX_MATCH - (int)(strend - scan); - if (s->match_length > s->lookahead) - s->match_length = s->lookahead; - } - Assert(scan <= s->window+(uInt)(s->window_size-1), "wild scan"); - } - - /* Emit match if have run of MIN_MATCH or longer, else emit literal */ - if (s->match_length >= MIN_MATCH) { - check_match(s, s->strstart, s->strstart - 1, s->match_length); - - _tr_tally_dist(s, 1, s->match_length - MIN_MATCH, bflush); - - s->lookahead -= s->match_length; - s->strstart += s->match_length; - s->match_length = 0; - } else { - /* No match, output a literal byte */ - Tracevv((stderr,"%c", s->window[s->strstart])); - _tr_tally_lit (s, s->window[s->strstart], bflush); - s->lookahead--; - s->strstart++; - } - if (bflush) FLUSH_BLOCK(s, 0); - } - s->insert = 0; - if (flush == Z_FINISH) { - FLUSH_BLOCK(s, 1); - return finish_done; - } - if (s->last_lit) - FLUSH_BLOCK(s, 0); - return block_done; -} - -/* =========================================================================== - * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table. - * (It will be regenerated if this run of deflate switches away from Huffman.) - */ -local block_state deflate_huff(s, flush) - deflate_state *s; - int flush; -{ - int bflush; /* set if current block must be flushed */ - - for (;;) { - /* Make sure that we have a literal to write. */ - if (s->lookahead == 0) { - fill_window(s); - if (s->lookahead == 0) { - if (flush == Z_NO_FLUSH) - return need_more; - break; /* flush the current block */ - } - } - - /* Output a literal byte */ - s->match_length = 0; - Tracevv((stderr,"%c", s->window[s->strstart])); - _tr_tally_lit (s, s->window[s->strstart], bflush); - s->lookahead--; - s->strstart++; - if (bflush) FLUSH_BLOCK(s, 0); - } - s->insert = 0; - if (flush == Z_FINISH) { - FLUSH_BLOCK(s, 1); - return finish_done; - } - if (s->last_lit) - FLUSH_BLOCK(s, 0); - return block_done; -} diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@deflate.c.blob b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@deflate.c.blob deleted file mode 100644 index f8a25d48cb3513a63e38072b97b79dc2dc16f699..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39954 zcmdsgdt6l2`uFU;=RzYQnh`1DmXLtBDk700A|fUt0$vgo2N+-s2Aml{$;!;Mi?{A& z7qyFZ$~wm`R%n);G`pzXJlg%(uZw!RSn4@-YB%rqdG?xN2FdJ~@B7E=$7l29*=w!6 z_S$Pb>sin9tVN>X*X84j-!&K%V`_aX@b)dupS@X|HzK zYCY9WPIps--JLqo$4ME};6Os8YivZu_6A2)YK^_N!RE22)Ene8US_qyaK_4PZ}B)9 zP|Gt`pzp=24d1~waMm=nxid3T$Jf;@NOd@?8(M1Yf40==RZa6#%g{f$kBt)b1fz->rvGo;RN7*Z!y zrQuRzNG&ZNla4;%vAOE(o{{sjGAlDPlAEiO+w>PtZgjU+qrgTgr?J`Qaa1`P9G(R_ z%Rb*@ce))Iee_IwgKdGmCfQ?eY^HIR+-!5X9nLyD)8TY4aJ!nCJb`_hOHQ3O)R2nK zm5L6OTF^9RqU|z!fg@-r>mxa(#^E}>;a#25R5cfc)%;FjhGe{0a$t?ljCet*ZB4Gr z@aD;=v%T8W#BqUW?kfaVt_l=Fz%1XDV2HmN$va-(E zQeD|cPVh{nAGy7rUuL& zWq|1!DH$0lLx&AX8}5Il)@oM^25TeD9jEj55V)0X)%7-4<>|gQ<#0RN?SCjkv&U8A zsI3ji)8);C^g4}?>uV~v-R7#U|NYl&a5SRB{P|C0ce$KRzyG*a2)5eaeBAGUK(~!1 z)Zh7Zdbj=a@8oOCMtfs*^MXpQHV>IU{dLfhgT`QIfqzbPk$Ob$%>sfngx?<6)KT?$ zrn1pi?c#5Dn!~!1L_u{^^8$YppZZZGL%Mxb=WG8#fpBU$aQdSKvstQVL9@N{)BgUO zbba^#^-K7>m#v|psrvW3HOpiAY|fSj9tEfQxw^{jE*1X$LDxBG&q(k0zv&;Zh);ZD zW(pcVr~YcxW{tM_m9_>)o%6Sa?C&>3r?5PYnUkK{R9ow|dzxzf1LY6DGFC*@EiRYc zS-s$NWgi~g&GY`8U_qH;$<(?l;Jt+QNs_`9}WMtYQGu`nnAK^CnSURAN>4DF=#(4R;|ux&>Y54 zZ3TYbYP4#b@pHd1P5T8uf5q=TOa^VNDP9|gpOq%7_A-9HVhYvPn+@6n=FnL0sP>Hq zQVsJ5wl+Cx)Jl)5vbLecU0+!Rsc~7ns2N5CRCP7courb!QmZCbwbUl5Ee&<58;YyF zrn15AOi~?AkJ?~!dlC#*YqWv?h0?W;HrgBs%GP3YB~3P)L9w~AHV)izf?H$`*NV(T zI7JC?iNJp~$7_EzU&8#Sz<)~cp9Owa;0Q~a7GWvnG^$0_R7(-#OiQ?yY0=Bf2F@1v z3QN3pg+(v(YVfZX{A+=)75G7EX$u%rpC9`JF4rgHBEN6^8$}rZ)>%yc4t#dUA+o52ZKkoITv7s zNj0cx!DFhaI<#bT+1<24)a&6+NI|c$Xcl7#D8ehfRsO`b^()6I_^Mhcn4w*n=NiMc zbB(dyr^o-}f{iy6&*PN+k+Of+lu=+tb!83!b3j*SG?>v{n4uE&XK&i$<>y`a#BG`W zF(XF7pB*$Rm2NQbppmru6cv<9UDa%T1A>IO2OP7bK@`8uxXIc#oDM zs+<^kc}*?Ont-8)A=n5>#Yyx*P-J(~OGHZAFgXg8fsr>%HfRmPR7fm$lQTKlQOm`gj~9Ts^a3|!wL+CgDRXaTfBEer@r`=xTrjcER zN9gH%HBC`fJRL>T8(CXz4K4c9L^EWe&J7DxvWK8NZa8{jep?kP4y06_JH=|HHiZE3 zvD7Bif?C-|RiPZBvGqa%T0F3=ldQ<4>UGd7gvP*opqbJ2?XFe`M2Ia^2IHXGhEnw! z*;QzHj>eWo)T`OX_AD!;7QQWNr`Ecf8r2puWT~}|`6!V^0c0jd6YOpDfpr-nZX~HJ zDt*1yT8($GW3fzMFW}47*gQ6Vz8ltUx&fms3vBL1^dc~y*&6Mbf2e`VgFZ-gQ%eIX zf{J5`#thJmyRh{^(zNZU*1L|-#e}%4tcAXH(lnsI z1S@h0hPXJ0x(ahFXawq80mbim^BEL%BS%8b&}VQO?~N_h_4Kp32{U?C1BMR`4eF{6 zCw)m>CrT2+fN$t)5Ra9|j9(QA>dXEP0y&5A*a$tdeF6F#LYI%=Pjx-|5sh|? zJG;x{wmR)?^h6RM;PKOH94udL=-e!JXn40c^~{i!A~BeB!(9(m$0|xrQOA2oRJ6D; zg8X^u)#xku$1UkGP0b|3-PB7%GzauthdITotXcH+3%fVxuy(S@JVIM!p6YE|=zVMX z^)+*uDYRX`QXa%iX)W*ZTxsrG%oMtCa7rIDD5cPpgH!sLfhjSXq=~T;M@Z5{!^8rE za&6YNB}Qp!)>2%TWi7+iJN&0r-?|31!e_u8l138di<(Ld&y$8(-U5%^zf$n&5tM_b zBN|5Gk~Y-X7Zi(bITY)aqBE)cqFa`d(VD%njvs8)8dQTY8vdW zp+l_HnLJG%TZ8IsX{>^rL`SQ_o4NVLA@@dOA{K)&K0%aMN8-#=4HrrI3e*W(XGYX zQC-P$=AV!po)l|*nH^7Sz;pG5U9;U;g9PyjtYj-tuvp3RD~H^>MjMl~(Z+1=l85XM z?cQ@$2{XrnIo6ozjXAO{@!^hnuMv~_%+$V9V-? z?!BiFU#2(`7vTVbJH9 zmcMwCT4%@1L_NeOYFG%MN7P_uwK=QpR!m*!6ZuU%nKfd*@PP2u>TUFOZIFk!9S!WAV!i;NX-#W>8A8JPuCjV+N+APBA%la<(K*HcT!+r&y*;2RXS@99`#%s~oX8 z_T39m?WV@I7q(OHh^dWAVFmnV7egE{V%X?W{hUNM)Io3OR(&VgvX`jyIJ}TDm zL6ZQD;wceR(j;k$VM>T6`p|4g6*J_nSPX8E; zT#xBy2<`C*!cHfve#a~{v+dq5_ z-r;wg_&DvA!v{`&sS;X)x=;01toC_m>a1HpwZ~9C43TwM8iJvG7$U3JnHziN%A>6qj)_?bzbo?KU-}&^v zYd`6|$oJ4H?-{gFXIP9IkEI+N;hi@4e?CiX8QQEEe@^;2%e!dd{=Jr8qq7vFmH~O5 zA$2jL=137*j+Ek^x9$GsgSYQ$@HZp(6PD$^6^xMOJRg(25awlg#-O@%qv4G&X@dQ! z#ib_@(*1JS`Ytz;biW*{fe@2yAk{1@4e>_2sLKRQgZWEeUNvGFQKO16;@78yRfAT5 zx|Wt=bHk$G(${b)WhrclA`_TDi%(8N5?C8Dl;76z#zq5?v&!cdWAkg;Ur zWg82xBfv+@Q@Ig*lc4BRy1`K_BH{yn^Yw(F)zNr#Bs`MLl40n)_{Szzzm~yI6Vol@ zALR_~M_CueLRaTnc;A2XKX-Vxod}#(vFI+NRqVvFyly@Of2}I|0MN7Dm|op-5ZjKK`Dh>FgT@;8JLo^s?yj}7+FdU zrL;C$s#Jm6dHDKdGxZyEj`nKS0=sq{zf*?3vjc&YaLWeqbOTFRSfDJCNcf{y`Q-S? zb04oRx=iA_rlCEGx%yFw1oNYqtDic<^OEda8F+n5A8!0jn2t7Kd2wC#YmckjD-U+g zJeZJpQsOrA-3}Ca4UMphI8L^Ul9&sVw8@xfCbQLPGUl1f&al;qbO;CBbM3kzDMn0% z`fL=VVu1jy9`+$JFY3lA3albc5WZrFeo31Olgw0OOwclt`b}9x84N9DhB7j=i00uo zDC<9Xwd2YjS*H*c?uMqe(-0NgVJF_scH-@@6OTBo1<(o^SVdDpb-e?c zuN$@y54;$GM${B_nw@N|Z1ieh0EdL%+DmOGWJ)$}GbAAoR~66Vwi*~m2ECPJYKoNlW z1ddS%PU&L?r4$hi!6|*rpp+uMAvmRv8JLnf(xli)5I~a*lL`#x>$9$hW%q`x8*sfb z>qcCcXD!EdMfQqPqqH)6C9Yn_*K@BOf8hM5Pu0OV5ajo|Sd^soM;GgFCd*8Jbg|Mi z?utOf0}N*Mv_$rK((pC?3;TeTe5X0MJJ$sJ34M0r({WAcJ_j~8V=(`Q%K_C>er-zwX+_kreO_T;azDV(h-5SjsQWh1+HquB(EI8h zh!kt_r1G((CIuD(uZD09QYu}M_FEn>6kOyC?X)9X^+gUl4Rw{xr#79XrDJ@gcO4&M zRUh0Leayhl=nDY~PATGoyg?~NfKYHsA2TSW2p0<__q@hq0Ta+tFMTR2G#Y?i5 zl%uoz+%$nRN-fN_m3lLr)WwDJ+-Qo>8cn1;HzLOBXRKa)ZZYb9z7Lq9mg;_e{%`@^ zO2rN(_GZH)3mHbz$LNcC2(rugOzeJV49}K_VRt`lY6zM$wBukNH(eRTq?eu$F#(G1 z1jB?Z*pG#Ml9gLwmSilxEMwupVk{&gV_|z{EOafx-p4cNJQ-{K^^KFYj1m_D*A!!GpWgL`}g3MuPBK-3Q6P^4LV^0b( zq1yJ9w0B_UdPku?@D5_RzE#ewX-4;V%f5v=x4MXY;#T*WI!>-|w+$|q2oVubiSEQ| z=T12e6~7ZJzrAO;;{CO!v0!~#&IvXkACU9419EXNQ>?qZzNIYpZm|FhW{Q_6F-$*Q#gPFoA9F(00qTiIqecb0-5q+Fj*c8JC&xk*U4KgHP zMMU~{x1noh_-fc+Lj}K``*smR*TkFg&=P7mVq>V87^zgY__(@{aFcyP_vFOi?MUQ1HIx1t)6&Z^j$XN6-#-bN77T#ULe&-Fh zF2w}@#%juH4G*Zh1ji3Mf4Gc<4R1A1D_KvPb(i2+`1uNX58_EusjgjYEcW zzZ}1H+=P36_72$C^lOcC=qm4#!}%)~ZvJ|&_xj!s*wzl3zt-S=u5rggYuryE;`wkU z*E;Gd-6}sh+%T0w67?myFAz+(OvC3-kz!)8i1-S+&4FP4@UR-Y-&g45H3Q8iOJpO%txQG#yaWbMYS)*;FeksEfb%k@C%Dmw+wAz+OHPOSF%yoWe24pD?Y zQJev5{@7<*Pn)n2($|2MFSf&`sCoM0Ry>2^N~-MET8;~)#e%!pUhSwwD4CwzAbFxa z2x9Yux65c$lfNwu{>D`Ot(og@&N==MyU1`Ze-Z7KlRk{(ZL{w<>p8XG41+h};O%e7 zcNNN_^>xJ>a>Z`1L}OL^zC$dGA8W$a!27Yru%-wV3MfN7$a~n+Ywn5z;m2sFKWw@P z#|$uxB1__#i=IaWQGsvSg_RkifOs>PK^h%CI#R~9fEo=(0$p8Po3*0#x!m<%Q!0dR zoK(4>iuUUl@&BNr1;&DYsHmZ!AJx;}cE3=CLkq(TKXi1E;C;lDrrTM3QEg0Y7>DbGMWrDnbBiN_n5gI z>GHwLXWm$#v5dw6jbpUg9HDJC$03~pQ?Svp5GWcbno&ApU(zie@Gi1MfGFKO+?{8+ z0cZix0t-E33GOc8yX%o-y~PFIW8ghTJn!80%0sW8{mD<%#=d_h?NQY5QFC0bqzynh z11yBnkUPy14KyFT`OI4f-a6uWtFq7iX2Q~kruxdDpOUu9Tm*9B{?R>0vvwvH9t^y% zaEmQ9XP``aL&ZW!e+MA%iQ^0ZcK@*ZzYEM`)V?yMfO3%X5YQn;Uz=uVUz_HF_q{0x zRE*qT{G;XVr=HxpJTSLO+h@uGl_F)mITKU@G}oL1nhvxVyuHkO8@#uP=XLhWnS9RP zi6^@42rOG^B5+Y(h@fXtUodMw8KXfNSXQktMT0UhnJzWY2GJK2C>N8LxgE3`yrbAC zbksZt-(*zGuEeMV?+y*Dxmml`cnN3*YPr;y1u6u(!ITH0w<$2!fIL8#n_EFkfxa*o zgJ$C$8vogM{v)Bc_oGcuUHh_b7+~MLAtXNF70QiaTDdV6uQ1<~4Jtt;KQU#3ih#Z} zC4usQelTT#E&)0Qbc~R<9{LKdSLZ@;~P9Ns!`>&4HH(G_8cDA-B%898Tvl8O8twPCsa$p^HZc0d}>L# z1T+^P)1s7uNLoaL7tOp_@M4)a613lcZ*o=)x)V~Lt zvp~~<;(+1^d7}$w?3-C#p$Ug_*Uk}8X+v0wziVb`$*6C#L|ro--jsAH38iL9v7l_A zJESyF0Z^M90?Gk8N6G{h;bYGSZ@x?&_ZB$|R1EYCEC|oYnLwL?Hp^K+&jLLwX8=79 zuj%vh2%rw24n|vmwlLZXw3X2dKrb-b2K16#h#cF2wlmrR^twC*yf=W}kXwP?1bS0m z0<;@wx4aZ+56~V)dx75OyzcdvZKzKF~g(eVp!q+ze9$bIA z&|K7k`L#ot4YUPli_!qJ6=*A`djaSLM%#e4DK)tJBG8LmtCxUYQb-nV2inf)3nf?k zLYWGlK#-4TV{_cu#yEWG2xBBD1$U#3Du}*Tv@s7veM*Iztr|%Psm3cow*ti&5$9#Z z*Z2N>W%Entq?YdPZe-Lu>gp@o;C**N{Pp#Xi5^-!`dGXagC~Ci*DcK^!rbx7~~xH#*vTS`uxU6sOG+ZMlD^* z0@2JcOi2S>0yG@)Y{Qj&ppTVU5av+t`@Og9pSbnsWQ4RJ-o5LSv9+<)5Sm1fWJ%Fm z8;n*NERne|P09z+R4`A920@$9zQPy$N}+x)5Z*ByUohMli5%w`3qdrEL}8O}l#xbR zl(8H{t#Sjt)(yrqpmk``btXc)uxW0WiN1LYG?ErGWXqQLEomtAR&1@k)lB2yBi#9j z?r6QR?X{N$Jnxb58}A-B#9FAEG<<8{N_TcPN3|G2W7%#&?-h?o*eDQnv8fUS7_>)8 zyBFb}_e#;=JuSzANHiXR8SsFd!)PW@Ez+Hkr-Nu<{u}7ujDAFpA328tLzkiyAcvyV zfT(MPDM_GA@WPaG5Dgy{=~PaqBAv?Vl94W%(57o9h|?7z zT@k0d6e9Ujg&I{LG}sK>oxyhn0!clLLfU7`j`UY?iM8b z?*;H)V4gtW?Zi~DQ=yi873ft)qm5CB%cpi8jgBzdNO#AAH13f+6$p2QXBa%;`30J3Ndl3a zs6>uR&auFf2knPyB@pt8%>m$DjTH&D!~==oexUW1Y*0ZbLJko!1D*(p0TLlE=z{x( z{r9}9R`vG9`Rn2Pv^Pu`PH@IcjlBZOUQ8s3#-0YrU<}YKCrL3-@v?Kf*DUQ1-11c4 z&8_{qT~N?oi%K$lVL9Q~Uya&8bntWg0t2nzL8` zu(GA9+p^nq&CiwkuyMw(*{V?aRqfAQ}--#(EIx1mzfEM&2hvwUsEhZ@FQ&Do?0BqqfVH;k zq*vEY_FF?lroWknYW>hm{kWO7N-^42R+UTSXstvhwP3Ow2co7cmGeO~_{-!(5Gg6s zfu=K>g>;m=DtNClPayDifwzl!0)h7$c&{-} zAn@Lhi$K&k0)h9YTnw54o1Ojglczc*95P0v%IUrKD1Oo3}gd4sqlK^~A zE&!EwBHZ047lO*c69~Nh$g!VuXlO}|Thf5p!k|z(S;+*Enr>BcK=d?$khdp-6?-bw z;^CON!g=;NPl?vfQ|NmPMBag%HvwV$2?}-5B;-iq99c-0#p!a8E{D?MRlVV3k{JdJhVKS?_aA^&HY`#_0$x+dktt8TpXF|k$*?oeuCp#DMT zL%SiRz^{KKz)sv3M7qXADHlX;lV1p3Soh1x|R@cyOr1ySot z#s*L;?wX7-pd_Fk*u&YwNOyCgiR2pT-SRQ1=aVApedp&<)o%=b-Qx>sgrSGx+(?hq zLtzbJaeg7u=XlidcoftZV!5xhC{#LLe0)Z(0WuW3hNQ(PcreglX(3P?P#p7;usJD7 zS_0k|*je(0f zT{J9tNLu<(^%A?yncUFS(yWfNA*O{+WT{an+FX~ZqiM&h8Uw@8u!v#UN;b@px!TZ^ zOvT<=gF;+CR%fi{aMVf)W$_VZ17)ex-TLd>+1>t*f>iUK;N-g?@aXQ!4KYe96o zB?ZszPPaU@&UkA5aO1twI>mgQg?EB<9W%6O)}3z9;rs>#1!mqEASaqjv0ybw3soP= zmA#%@*Bu@|{GmB0?WB(Y0|1<2jvAN%{O$%Lq@h@z*^^118~fR?qas8m8%H$0bhMlZGy_KA8Ad|FwjU}z zIpWFb(8@kH*MlI*ylX)b6XP#a`po0JQ5rBn=>15|A+1`*nZmDDy<70}D35Kup$ohBD(3D9oSY)~_h z2i8W986|hj>2TrqYhc;GhHd=I@IjWD8^BwQwbN=dSxeTNLqJs4CajG%nc+#m)dM1n z`iCg%Ln=%A%$xx#0QwGA_V3J8qyL!mK~sS=#p!pcFK8G>ciF}UW?CgLOK@1^L5e9g0Ti|Hr zb0+ljPW7;5J(N;+2L*RUEIQGDA&+Xt_Q7cKGaYjW&2$`1;)1!PWJ3I@C4XAhufsosIE( zb#4u7jix%cn(@PL}6tW#VTAa#$~M>gBLw0L!^))%6nnuu2*|qRe~9?^PjYL$X@hD z@7fpp-{sktJe)*}f8E1MjN1?rW26i;;7PA929f425ad#?!-u{I# zJe#>G_3%HJ1wO^B4Z%b;gayFEa+3D2Os30)Fk&uLsO)Q$86X&&o|?zucP%q zN9)0!f?4Qjvq<0bezW~^_XD3jW+)w9Jb}KUZ#>fP@wEwRd^}x8j8M}P)MWgIUvkt8 zb(DIMnyscK-~?Pr5sJ!s>}tUdA*H0M)$sO*yDwPABRF* zNznp`$AyBMso{;W7SLM{iP=VPfk6-3&FK=@qyV2s@-&jn8)@C?dy5b?s5 zQcw+A@XE$nFV@_8@UMCLaW5x7*bo-)U#VHJ#?J)hqKH@J5)iGP1;PW~#j5yScGqZF z*=p=WvMR+`wL+=Kl@Ugi@x@IkGgANdgT7BXu$da&budkvshw#+hJ4%iTe4{mg(^9e zJrOsf!ER=0@Q93K9pw@%Hq?wbsHKm>1oWufiq!MrPnoY=0(1q?6@kqBI zAn*%H+BfEA5N1p7wt4%aLuQ`ycHsRO;XRAQ7uJ1dgmh0?Jdo}wBcyxE2RW^2mulfV`zrX=a+4|{=1g4h`UUIMs_b&Qs?b{Kps}4;m$sb)lwz6<^8Oe(X zpG*p1$Gem2ld2(}>apyDjH*uVyO}PWACgR+GHi5WWF% z-nib$^2!7uO@f*x9bH5d(nU1ZHyt4z(fC~#%J|(I`QhMCM<(~^8TbOdzs~uZw9?-2 zV)cg6R?>=riW!vxl`>ihw31PW)C`l$a-`b=t#pe-8r@Ftb~0~2(0)cg0R6z|XXO2v z^Y(|Qw!chy*TdwsUZ$r#A`b!41iD{AUWM)+RQiEXW6T4j=pdc<(RFf)qxfx}#k(#! z$g0$W$-L7;7>S890!04H$*|5&X6x)dnBeYV`SCEk+YigJ5KNn(O>AOq;$;{mUuJ#( zL!b{C9YsBlvgZE_(*45e`oMtGN1=5=1WaTR3athrl?V{&B+j^4&SOJBRNs#NCB__Zp=D6F#XYH{$M%eD{4N1I8qX zWbfUtXV#vWkl5!m7R`R6hF{TwsT)h!SY9*_@z!p9^+4g@%O_2$EErviz7po^#e$_~ zq+OJW-gsHx%VK1@CW+beTdW?wHAmpP9W~d2u*UJ;w!R{x_ll+Mfqf2^aH#-9^Xz}6 zcF=W5*;ZGxHZ^PZRo$vAZCFyWzT&U*Sulr(foO`Dhqd55_66JsH|mW>GKuek`)L=u zpZuE2mclLNn5jdEd^&PW0{U~kuzZmkhBy_2#9jb zwM2q&*B`X2M_|(GhtI8}U|6vfYQZ5Lkf4=(R#ioM+AKqSeB2*NZjctoEiRI!#fFtr z{o%ts5%t_d(=ePgX#@gpywY^gl|UhwbVKASptFF^Vq^ufGU@@;gVA+Lrgoh&6X|9k zOksv`22cf11*4fjGa1bSnnlR_uU>^M*|#nk2JMFe&~;Tof8+K_{6z_93jBU?acmGE z2b5XZbr5Qto|v8uoj~Xac$m-*fP{7cB(wuO?C~2eYTtFStFGIAr;BB52o6-0!{CA< zB8Su<7?cOG7bp%sqBx0kGJ(+5#4d$U>6PeLVC~s4V@E@%L|5Ds`xTJBH~d1qjij3i zgu4Ua4H{r1KaSYT0CWf90q!81l6UgsSInwD=Zf0m@w5~*`vxd}<%MWncwK}n;o6T! zX2>feUdcmeT8e0crACtWcbjTJB)cB~dVrA|HYvB6W{}HqIQQjd(ilDf?*rz24&LX) z^X^J0x#0ZgU;3CgXLJ?C{)pb-h`<5bY|H|)C5i~V9Bp?wM=xza$Jn40fj0+sl{p-2 zw+a@tRU9uk!knUwFz4gFJMCsN><%(45Hftd^`I+(Ot52^%*{X+#I#z>F+c_80uXuC zy0fZHf(>MnncOUXzwrOUzILXqY7_R|^5X_&&aJe1=-RB1>URfC69~M|G24C44!Wh-8?=dTZgocc!P zeFM+02?X}o#^4hRvtFCB+&^ee7>6jpW4(H zl!!eQI-1E{RMD0|4ld!YCPC&&7V3yiKuv_ab%)|or>|Z7ZTEpX?6C|8)aj2Q7zWY< zb({!^AiqcFU<`XD0)uhL4*2Wn3Vg$kn}KmfgUrJ~p2wjRZgg6=MCRPi!TKdUIbU*+ zk3h)L8?wH)2=ehDh=QCP17HOhz(GC(Fzg1fi??$q-wD_4og&C*Cgv$D$F$cmykGAU z?o+j8ZmzsFY%A*fJM-2v(e9A*m+yGBplC{2VP#&?q%pKA_G_R4Z2CNW*1vkWI@7AE zYQQ}{1jL`PKH+F^%6(XK7JgBsRspP zKSVY*RpXBg&^g9b+7-|nw4RvgdYWm+BB5|>BPVlNxESa3;q_5VNRQ!&1JcJTAw3Es z2S|^?Af6tDK}e6nC;-w&DDm`|3PQTwoATTROS%?gYJG@cIP70u{b>3Y}h( zoIVQ+8_Yza^Qi6E;@6H-q2uF)ogsmeBU_Rh?>qY>f%=z!u1!u)NTi~gYU2|{+JuCQ z(Hegb|2qzx{d@Qhef^_|A)SPF)CVZqO3ar~qrAC?&W;;?L;uL`Bq|$0Svo#1GoIZqSeyaxWEvSW;M{( zq^cJD=|m`@jm_A}gg;Lxt;tzaNH)ARnfUn%8`TZoXD2^)_RgbYcJnfyKD`r1iqs^i z)tz>L+G>NE>9@%G*ZoFmLca;oo$G$|>CTw-KOQLFHsC)$PkQRhm4Tm5)+8wgRD=%n zBhZh8yiaxfWx>D&w|*O#(kfisxk#xyw+ZRaZ9=+pn~?6@rbVvqq$U+icTyA5oz#SM zCp976NlnY$*+=Ky)OdT;?!YI9?F!k2#npQu@6i$~PYMAMS_ZU?(W5|*GTIEZnbCHj z?Tq#U?PYWr=rE%`2nX*YQz^sbP*6XhJHfk?dGBD=^NvDyPXL`DIYR(9VwCQyY${c(_CnupPt&$3$3$CrYy!Ee2W%v>fFv=kk{0?sC3+ zGk7;MZ>^Mvy~D*ww;m?{^-=~<2kv(8-45jF;2b-_+sVA0;O%7Is}Sz5N_Z3PHQarT z@9qcMFHk8E)#V59eqi1Y$om8H`onJ6U#2?umrFsEE)Tps=H-Ex$Gj4G2tvJRR-7ys zg35u)VdO1m3(loLmoi$5ylXk{TI5~Jc^{H9w1;FG4jX_rFnSuLJk6y%hoG6~NM6E_ zTm^Ch?ULt!8h~DtYeBHV!?0WenhEqHg1LT_rvqtnE~p6TJcLM{$1&bn2*%A)Xojs& zNVWZ{&Iu^=540@1rk#w$VeeXVfnSdC=cJqIUf zpJSvo(K%SHonx$Fv;=51Pz2&kB8)VIjqs5g&G{H8&0l}i=lg^Icn{NbHv^@i>p%&` z_Kh$Q4U`xRkC-mQV@qyYf;aY0504Sn(9N+AKKyaF3t;_Z9ISr*hLc|D$JHuT={LL5%5tLV$8m1Dgn`YYzH<@?clhGH=*vnNzwoC zR2PA02D-!?1|qqz31}0e3`-b%!^FD^=qg4VfHn~Fwye9!e8I&HZwcKZXs)9P1}+T$ zTxUW^Vm2rbPuhhZwTovxfuLZYr=)-=fGPoDbqN%693}Y1tMhIA6sz8Kh0?lMJ z3uqQ0@2zgjyWijO$HLsSF%grtqYi;tk5;H|xF|IN4Ef0$d{H+@-PcP$20 zVT8O49qDBrw?|RIqwLn4iTxTg6&lNPu=1S4yEHz<82wbC5%&$8p5O3(jaA2M>O*!! zoZofDg6F6{MfK!+7|~c~NMR8$~*Va0|zZXbvqpV z-bxV)jYd%ECFyOAuy;j(Xm^7O)!L-=BgD>Is$WtYuCV%c#RZ|lpBCH zF!~z=%HMe6eF3}|nD++I8;rgH`hw9>xB`z#v}`hBmx+<5nn8GjK{A!s1oL^5LW{3QdnsV`_MsyVxEq*!Hjw{TrnU9gECh@ijl)zeB zwEHnJ-!F|o%4^Uquicw+p>=_l0=*6NHls3213dnVz`GLx_;*s6i}zyt zx{rUnFud#}t-Ky*jRb1tJrF3J38K*5osd*JSyBmv;l3Zuy=DrHPF?%Sr5+X4Ki6YTG9Hg3dy2{%2W^;M;9wmpd_Fy;}8%D zir;?zddJDznfR}JkSzj!<39AksCu$?6XL3F zk_yqOSIK=r6b7~;f7>|Qy#r>5ffV?T;!klPn$;iWY1Znb7!bl>F%bKLX!W-UXc40g z@C$8_=_N)Xu5^@f1W+MfqR>ct(sF)W_w0wyd=n%Ar9Cx!TG0h&w0*m7-)AG@sJ6a; zp@o+eqI*opn1CT)lvf0OXky+(TqosC!gX@qWL!)0N^vdAC_|d^jB;G3WK6+zYQ|Jt zD>5o@^{##Sim@X;U)td-nSP#&!@{g6*HDBj{yYq>I6e?p{DlWxah55rIGGYxoS%y; z&Wy(ue-s2)9G#5oV#8uw`D9_YOz3La03t+x{AH+-5FN-lnGqcUeK{jKPOZ^Icj>^u z{$@h-SBxqc(K(gd8PVSc$+ys5I_7o-A@5Tw9_aUa!{goigP@jF)kuus z&P=5Xgmm2n&Ac(O^6C|_4MA%clW>5OSkqTSgmkxeB9QLvCZ4_q0?%8&b53%}*%M#* zjadyxeRs}ik<@Ld_YOqZVHk*P64hw7YMvh!nWJ%*HqCO^09|7yg=rZ={+6*xT_C*9 z^)RzvZ=Q;~tMJ;Z%p{s_0=mhZgOPqGa@=Vy2f7zcaW5O|@59~u%sD9eAk^rCW-?xX zhGQT;Gt>Ne1W!A{&;17JzTxt|gOlJpGYP`~fcGEHt3fVne9*wzmS}_;QcY)AB0yA1 zEy7}JE%b~!OA3hc)&tdB=<_>~!)c*6nrA5l&FMsVBex|7L~rCl=%U9$E`%23XyIq9 z#WU8@GrT*0dH$-2cVs>(OdD!qK#)0%C)lV@3`3tJzf8s1TyS;AvYs#)XfUHVY{ZK* zqPuvr)8euYeKtn!P7Q5y*_xq+vbdqk+1h#dYUi=_y96_4i4==^P6KZm^A-awW^@;3 z*1LGG#2TPA>`GVzht?XF?e}15d5=T^#A|VPEvMT8&14I2lNtvRIF9!=JO%U=qi5i( zenyE#j^}}%XS5q=w?Jt?S!m_mn2dJwWRz=6#J+p-jkoen_K;kb`0*ODF1SI|{C5FZ$R~*~9<;T)) zReb$~3!Vk(F94yL`LE+rGh4K)(2!S2q&(GNaMTzH^+9*&V;KPyiQRjV7OWw(1n?4= zmx?ZuYN3g92+$A<{9)cl=ZBiNd@%5?&X*-6OE>&QqN2LVkC46-f{?xw0?3>F#*Fud z=Kec2FgI-gq5TnkaR2tJc6`4lu2>H(J4t<{SZ&=m16k@nVW205{16b$pw*b9tBr)N z!3y{qp03wHSz5;%NDg9f9yHT?e-4k^=RAlt3{%Za@2HsmVu?98F+iIv=VeX&~=In z)Q;}Hd9Z0s?cASw{+473JKE6^GG`eO}iA0k9|2N?8|uzeGyDUMZ9KU%m!exP}OjEw9=Gr~v5-xRmbQ)7U?2 zCYjjjo^CPcLb;&Y3xrZG$B?_6=hvm!s=U-p!%HCCy#-IZg=gAZQPW$wrUK#aU6?KJ zGH2qA?ghG+(ORTi%jwpc8=#gz_r{eGay(|93L*_&An+c?dpvHY_Uqgjy$R)QVx3?U z4*c0Y_c?>f03C>}Mv2^NT( zz!S&N0EuI0fW$F0K;jr0AaM*0kT`}0NE|~0B#xm0635U0iDPJh z#4$8L;usnraSRQRIEDsD976*nj-de($It+YV`zZhMgqb4=ERb*(g=CI6xCZ6*L@0Vsg``R^r5Hs0uOGtw`tgq4 zXp|hyB@aZ&1G(fuD0vWQ(=pls*pM`9cVfu zahwivh~spC?9dbK3iShVunu_QU>zWFunv$ObnFBY2kQWdgLQz!!8$%@6usH1D zoy_k~UKIb!yXhAODh)EMV^ts*RDh45Eq_E#5^wKU)06jH^FdJ9q6z&u3xuUQg3Yo( zgoa57^JJHe)tC)uK?!(~(BLDDaN~GizxS2%H(qehiNGfs5dxY8B6DXc)Ra;-cb3Ce zQcgxr?Gsp-J|PQ}_sFdO8MUk*P%hz@u4V%33E+7{SdLiDr!CX8Z`v_z^ebs;}FA zdgkL#-V?T;ARhrVyGH!QD7XpyGR}na3bH|Doqr9+x7TEntpY)|W?_V6@dzn|+Eu7v zR`$jwpQ|pddo-ilx2M0QW8)a5fKx57mqJwjgG1Rxkd~DQ%7?BV1*tDSuZAS7lY{34c4b+6Vx&b&389~w~={!f%bB`w{iDvzWW}~ zdyGEB-4FThuh3F{H8-PvJuu()uuysD1D((4LZAy7O$M55p*JeS++W7WvP=b<%BTW& zEBJ1mr4&|$8l%-Z)`(9Yf=&py8D?fv6_ z(_G00e?9t@)}jiQ$FU$1vnycpT*1cuhp;|)h}H+*K64IycfIGj&D=c$ZJ+*VE*N*aV*HcGo5)7teiDKM*1?rO57LU2TZsN2+GjMcHnY$XmKSjkr9jX)b2bt=KV zuraI`)>~(4mvb!CzE}%QnB6H|r&gCvtq>iau+KSnOYgEkNuyvl0Cv9eE`?ukoXIcj z#r_cQ{-Hv_8Uv2LbMxR~k=5gi%f^C?@aGY~`F!}+0uJ0W3bQ9I zqIFXzIl^^gCh_!x$-wjG_kVTrOB*j^qph!j;ogH6=^I+Kd(XS&)oFbar{C|pM?YyV zP622R?$6EGGyT|_yQs(e{~?$e^VZ$u^!KiL?}=O1EBk`X-$uyTIUw>^-GgwAdw9e3 zCVa+C9MbRsKH~>GO(bkPzVP{fPU_;7dj=ZMGZfwj9ik9K^|@Y0x9h^>`{N-d=JlFfq--LZJ!>TYX=1CuG{g8~~-GrzH|ua=09 zkjMs|Bsj^FBx)srP@fdU5u~v3XgGAv;k@3;l4=ntvJmO|7)wAj;|hcvgD~e0;`8NV zaOO)4ZI%rPvzjdBU^J9tUDkOJ^EmLvG4IcWS=sIwdc6Pchl4~XJOdat%Q!sttArK* Ue*VUH9`O%d0CMi= hash_bits - */ - - long block_start; - /* Window position at the beginning of the current output block. Gets - * negative when the window is moved backwards. - */ - - uInt match_length; /* length of best match */ - IPos prev_match; /* previous match */ - int match_available; /* set if previous match exists */ - uInt strstart; /* start of string to insert */ - uInt match_start; /* start of matching string */ - uInt lookahead; /* number of valid bytes ahead in window */ - - uInt prev_length; - /* Length of the best match at previous step. Matches not greater than this - * are discarded. This is used in the lazy match evaluation. - */ - - uInt max_chain_length; - /* To speed up deflation, hash chains are never searched beyond this - * length. A higher limit improves compression ratio but degrades the - * speed. - */ - - uInt max_lazy_match; - /* Attempt to find a better match only when the current match is strictly - * smaller than this value. This mechanism is used only for compression - * levels >= 4. - */ -# define max_insert_length max_lazy_match - /* Insert new strings in the hash table only if the match length is not - * greater than this length. This saves time but degrades compression. - * max_insert_length is used only for compression levels <= 3. - */ - - int level; /* compression level (1..9) */ - int strategy; /* favor or force Huffman coding*/ - - uInt good_match; - /* Use a faster search when the previous match is longer than this */ - - int nice_match; /* Stop searching when current match exceeds this */ - - /* used by trees.c: */ - /* Didn't use ct_data typedef below to suppress compiler warning */ - struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */ - struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */ - struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */ - - struct tree_desc_s l_desc; /* desc. for literal tree */ - struct tree_desc_s d_desc; /* desc. for distance tree */ - struct tree_desc_s bl_desc; /* desc. for bit length tree */ - - ush bl_count[MAX_BITS+1]; - /* number of codes at each bit length for an optimal tree */ - - int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */ - int heap_len; /* number of elements in the heap */ - int heap_max; /* element of largest frequency */ - /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used. - * The same heap array is used to build all trees. - */ - - uch depth[2*L_CODES+1]; - /* Depth of each subtree used as tie breaker for trees of equal frequency - */ - - uchf *l_buf; /* buffer for literals or lengths */ - - uInt lit_bufsize; - /* Size of match buffer for literals/lengths. There are 4 reasons for - * limiting lit_bufsize to 64K: - * - frequencies can be kept in 16 bit counters - * - if compression is not successful for the first block, all input - * data is still in the window so we can still emit a stored block even - * when input comes from standard input. (This can also be done for - * all blocks if lit_bufsize is not greater than 32K.) - * - if compression is not successful for a file smaller than 64K, we can - * even emit a stored file instead of a stored block (saving 5 bytes). - * This is applicable only for zip (not gzip or zlib). - * - creating new Huffman trees less frequently may not provide fast - * adaptation to changes in the input data statistics. (Take for - * example a binary file with poorly compressible code followed by - * a highly compressible string table.) Smaller buffer sizes give - * fast adaptation but have of course the overhead of transmitting - * trees more frequently. - * - I can't count above 4 - */ - - uInt last_lit; /* running index in l_buf */ - - ushf *d_buf; - /* Buffer for distances. To simplify the code, d_buf and l_buf have - * the same number of elements. To use different lengths, an extra flag - * array would be necessary. - */ - - ulg opt_len; /* bit length of current block with optimal trees */ - ulg static_len; /* bit length of current block with static trees */ - uInt matches; /* number of string matches in current block */ - uInt insert; /* bytes at end of window left to insert */ - -#ifdef DEBUG - ulg compressed_len; /* total bit length of compressed file mod 2^32 */ - ulg bits_sent; /* bit length of compressed data sent mod 2^32 */ -#endif - - ush bi_buf; - /* Output buffer. bits are inserted starting at the bottom (least - * significant bits). - */ - int bi_valid; - /* Number of valid bits in bi_buf. All bits above the last valid bit - * are always zero. - */ - - ulg high_water; - /* High water mark offset in window for initialized bytes -- bytes above - * this are set to zero in order to avoid memory check warnings when - * longest match routines access bytes past the input. This is then - * updated to the new high water mark. - */ - -} FAR deflate_state; - -/* Output a byte on the stream. - * IN assertion: there is enough room in pending_buf. - */ -#define put_byte(s, c) {s->pending_buf[s->pending++] = (c);} - - -#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1) -/* Minimum amount of lookahead, except at the end of the input file. - * See deflate.c for comments about the MIN_MATCH+1. - */ - -#define MAX_DIST(s) ((s)->w_size-MIN_LOOKAHEAD) -/* In order to simplify the code, particularly on 16 bit machines, match - * distances are limited to MAX_DIST instead of WSIZE. - */ - -#define WIN_INIT MAX_MATCH -/* Number of bytes after end of data in window to initialize in order to avoid - memory checker errors from longest match routines */ - - /* in trees.c */ -void ZLIB_INTERNAL _tr_init OF((deflate_state *s)); -int ZLIB_INTERNAL _tr_tally OF((deflate_state *s, unsigned dist, unsigned lc)); -void ZLIB_INTERNAL _tr_flush_block OF((deflate_state *s, charf *buf, - ulg stored_len, int last)); -void ZLIB_INTERNAL _tr_flush_bits OF((deflate_state *s)); -void ZLIB_INTERNAL _tr_align OF((deflate_state *s)); -void ZLIB_INTERNAL _tr_stored_block OF((deflate_state *s, charf *buf, - ulg stored_len, int last)); - -#define d_code(dist) \ - ((dist) < 256 ? _dist_code[dist] : _dist_code[256+((dist)>>7)]) -/* Mapping from a distance to a distance code. dist is the distance - 1 and - * must not have side effects. _dist_code[256] and _dist_code[257] are never - * used. - */ - -#ifndef DEBUG -/* Inline versions of _tr_tally for speed: */ - -#if defined(GEN_TREES_H) || !defined(STDC) - extern uch ZLIB_INTERNAL _length_code[]; - extern uch ZLIB_INTERNAL _dist_code[]; -#else - extern const uch ZLIB_INTERNAL _length_code[]; - extern const uch ZLIB_INTERNAL _dist_code[]; -#endif - -# define _tr_tally_lit(s, c, flush) \ - { uch cc = (c); \ - s->d_buf[s->last_lit] = 0; \ - s->l_buf[s->last_lit++] = cc; \ - s->dyn_ltree[cc].Freq++; \ - flush = (s->last_lit == s->lit_bufsize-1); \ - } -# define _tr_tally_dist(s, distance, length, flush) \ - { uch len = (length); \ - ush dist = (distance); \ - s->d_buf[s->last_lit] = dist; \ - s->l_buf[s->last_lit++] = len; \ - dist--; \ - s->dyn_ltree[_length_code[len]+LITERALS+1].Freq++; \ - s->dyn_dtree[d_code(dist)].Freq++; \ - flush = (s->last_lit == s->lit_bufsize-1); \ - } -#else -# define _tr_tally_lit(s, c, flush) flush = _tr_tally(s, 0, c) -# define _tr_tally_dist(s, distance, length, flush) \ - flush = _tr_tally(s, distance, length) -#endif - -#endif /* DEFLATE_H */ diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@deflate.h.blob b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@deflate.h.blob deleted file mode 100644 index 4f4996d709595e630bb70f87829c0467bfc8a673..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16533 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 MIWv{~Zsu@=mA{FL< zujr6)Z|uKs_v|O;-TPr%Q%}?6$&I&SZWZ%sa*G{{F*#hthInB?((LV$MDA$mdkA`snvu9TreMtFxN2``iQILa_?%~MMhHW^I<76;1NzJ zA;Cd-#H8c-$2sC0myZ|PXHZP22;8~3dfUux%LN>yvqH2fl=cT1#i4*1xR!EU$eLX= z8%n8nBOTu@t-^@Jfr*ToGt3VhaTLa1nN$`Ja}!>I-Gv&LtD+j|s#t!EFKA3gDOBkT z?H}X@cC^3K*3z)T)7!q998cRDu^W}*%2Es3$|?xMoDL^^6I|;|$6{yQPFk~nIrMLL zeP_yR&%%-In=HHIt)!S$m7ufGu@JJ0tB_r>^O|vv&^lUnvZ|OUrF7oNe}jjJZ^$Uc zoWz-zQ^366Yr%YTZZn5@9NTc%hdWH(iOuFSzzCnn7pG&y1W4TL+RH&=ue^66NQiAz zQi=5Q9}~i5dTe$yr!J3?#^C%O+>{txE;DIEpIgE6O6STt!lae*$~t@J&z#uN<*!Aq z+kSp;%awgS4K|w!1b(J9gH6@sM^-zk=VsAWut^+>$jGL^1|D*QMbjCQWIVV~5L?Do zC)aT&*=qz%w9&z&U_p@k^g$V=VBtXRMei;D`gd1RKxcXlB9+Hjkr?QthYAu{Cj@{@ zda~fjnk>3rX}L1u*hVHu;yF!zdJnLa&&-2YaASCrc@o7ulOnRR*7-!mi)|n#t;=7> zGa&0^lmfAyzy7sC`I-xV1~<(^?om1dh_+%n*jS=`IZ<9GVseQ2)#JBiWowirO0l=( z(i^}H{X)cB7fJvNtG3>nn>ccGO7y1fB#z$pz7lwWlq-`OXEt&OZ*-s(5H1d9W#sfQ zY;|HC2OSe{lyaqlN!RCJ&ynVO8Kq!p)|HVisc*{RCbAxBJ}2EPey@vL6()5!I%Z_i z)kI@v{O)k-XHPx(+-;QA>geuX-T+i;1_67E_k;&ZvF+8D*?BM%vtS||_?2SW%o;K? z*hH4}i?Pjlv2-o)OPt#aY_JZ#h%gDF!gdTWDZq^<7cW}|YLq;h$Ce8z%)*VFFo;!mJ7LzkLou#L7 zCTyL-uyUTi)F_!8iQygTMd&g9{)06aGrkL)IdFQAC?!GnjZ+gy|RY>6^7G zYx?30O{Nf+vN)b$iaEKOkLO~oG&^Nvk&Hsx1X@UWAMEj(d6EGhzXEs(Dd=D(W#xlO zzVl)Rh{^^Hf4hN!O~b&Z;ovJKic;ov5q^ooKcuGuwH4!p2g>3KtXGYr2J(-q0CI6kuJP0JRSd@@S0isJBI zMhO>V)tt_|o7!g0E!I+9ICIAQEsy&OB~V7 zxUwb^agrUY7cCMoKIdEUg39GsXiBuINQl7cjOIr<{iuvmEbOC!H{Sg;@^|}M$rPoT z0=g$tz)cjBmOGZi6yR!_f+=u=uf@+_Pv=_d@M}e_RVu}gqE~T38^=g9IP8@3gTF4b z2As6U?z)gOGeuFWRF?9jkQ0uI7w1XL-97TLCZ$<&kPR~b02N16@f7ar@l!H1O}n+a diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@gzclose.c b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@gzclose.c deleted file mode 100644 index caeb99a31..000000000 --- a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@gzclose.c +++ /dev/null @@ -1,25 +0,0 @@ -/* gzclose.c -- zlib gzclose() function - * Copyright (C) 2004, 2010 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -#include "gzguts.h" - -/* gzclose() is in a separate file so that it is linked in only if it is used. - That way the other gzclose functions can be used instead to avoid linking in - unneeded compression or decompression routines. */ -int ZEXPORT gzclose(file) - gzFile file; -{ -#ifndef NO_GZCOMPRESS - gz_statep state; - - if (file == NULL) - return Z_STREAM_ERROR; - state = (gz_statep)file; - - return state->mode == GZ_READ ? gzclose_r(file) : gzclose_w(file); -#else - return gzclose_r(file); -#endif -} diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@gzclose.c.blob b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@gzclose.c.blob deleted file mode 100644 index 38d18c29248e5908c9ee0643e1e01cc7824a30cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4666 zcmb_g?{6D57`|)yQH6pw6vjTVaS~(d5Er*w=%%5HZAm(!waJvU1Wkg|#pk34IUBXGR{zu<2WKrNmSq-K@nvH3)feeGs#0D(Q2Zq00grhlXu?f^HIFM}WKp6^QYW2i&lWD}|C%s8#FrLUr{v z{DvQEPNiCL3f0PTwYFNW+;r-V+qH6KZMoiSua^qzwGwo58rN$T=#sP)OE=bU>MqHP zvs$XG*PT-3`i+%RQCF{AuiY#;jcRSBnDlRyE5&M~zL+=c@;H7N(;PJ@^LSe>=21Ba zI*2kH#vU0L_2VYrLUjmJ5~}i;pbaiU4{a^xH;C&IAr0I2s2eaY6~)rV5Kgh=hHbYa z4b(Q!9crLza~=xMK()2P0&qaNA|PsM>&l|Dn73QlZtpJKj^ri=z)0gnEmzSd4XNtv zR*@}5n4~~LJthg=4)JV7qE_fCVz*o&DGOjs%4A0h&Q(9B6J*r5WFR0H0s^6BURZVS zk!8A%(Yu7sc~l&esVuYGT-<||+c0N>6&IbQQ8?U;Y3LdD zC?-SGe;ZW7&uth_AAqj(q3Qti2yWe?ATA5@s7pq8&CTa7E-uW&6UA64B$a?QX`Jti zx1PcIsDRcu4?&6Q@Vb!C<@32q?_Hd~+{+mh(g?;#?X?hTaY}>;U0g`}IgV5w(9zj+ z9e8MiyO+&p2JB|$F(&R~rowdGJy9KT{g^{Ag>u?3J(&3TfJ6w!Q<&lY@QClU@rElL zl{(~5i%pOLKk;u7Lf?II?i6wjE$(t+ZUoq;0;rS(U&ZVEAYkv z@f=T_^*Km`jwgY=xb%7OP|l<>=4c_qywyp0akS0uPVPi57D+yhCx8=*`J{9Y&H_kv zT4aK>mY|G>ioob3jNCBfI3?lmcxeG;ahS-+aCt~6F&ZKC00$Cc_`JGXXh`MWmNAg; zN6X{hR&vm$Ke}fVDnd3epB{9S7%$0#?I7MgVN52?+kJUH;JJ}ko|0(*=olgBZE|of z+NZU{!>?Hrxm%7K(t!1Cvcs)3X&fhDG1jWJk2}K+^>EzxB~d&%YaXOnN3Ru#fny;E z!<}Po%s?j?I2G0b-;Nw42R2+dt@mPOX8KOc6QZX1n(_MV^v=|ef1Um1;q;&S1|^t9 znX*@x#Ytsj6Oh9i8K zy^|pPdgh-8XI{Mh&9exD_OFPQ3<|icri5VlrgHHOUDu~n|m{b_+9`&)$Goe2Ih4T35&)I*fDrgN+5L8e?_g z>Q((!#h5uiqb+n{X3u5coi%q(KYsi7CHtk9yGY5yJbCuyRe*c*1@E~Z?k|0^ukD0& ZVh-9qeRBWX=+PTL?Q6@-WKLZ({{sk&RS5t9 diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@gzguts.h b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@gzguts.h deleted file mode 100644 index d87659d03..000000000 --- a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@gzguts.h +++ /dev/null @@ -1,209 +0,0 @@ -/* gzguts.h -- zlib internal header definitions for gz* operations - * Copyright (C) 2004, 2005, 2010, 2011, 2012, 2013 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -#ifdef _LARGEFILE64_SOURCE -# ifndef _LARGEFILE_SOURCE -# define _LARGEFILE_SOURCE 1 -# endif -# ifdef _FILE_OFFSET_BITS -# undef _FILE_OFFSET_BITS -# endif -#endif - -#ifdef HAVE_HIDDEN -# define ZLIB_INTERNAL __attribute__((visibility ("hidden"))) -#else -# define ZLIB_INTERNAL -#endif - -#include -#include "zlib.h" -#ifdef STDC -# include -# include -# include -#endif -#include - -#ifdef _WIN32 -# include -#endif - -#if defined(__TURBOC__) || defined(_MSC_VER) || defined(_WIN32) -# include -#endif - -#ifdef WINAPI_FAMILY -# define open _open -# define read _read -# define write _write -# define close _close -#endif - -#ifdef NO_DEFLATE /* for compatibility with old definition */ -# define NO_GZCOMPRESS -#endif - -#if defined(STDC99) || (defined(__TURBOC__) && __TURBOC__ >= 0x550) -# ifndef HAVE_VSNPRINTF -# define HAVE_VSNPRINTF -# endif -#endif - -#if defined(__CYGWIN__) -# ifndef HAVE_VSNPRINTF -# define HAVE_VSNPRINTF -# endif -#endif - -#if defined(MSDOS) && defined(__BORLANDC__) && (BORLANDC > 0x410) -# ifndef HAVE_VSNPRINTF -# define HAVE_VSNPRINTF -# endif -#endif - -#ifndef HAVE_VSNPRINTF -# ifdef MSDOS -/* vsnprintf may exist on some MS-DOS compilers (DJGPP?), - but for now we just assume it doesn't. */ -# define NO_vsnprintf -# endif -# ifdef __TURBOC__ -# define NO_vsnprintf -# endif -# ifdef WIN32 -/* In Win32, vsnprintf is available as the "non-ANSI" _vsnprintf. */ -# if !defined(vsnprintf) && !defined(NO_vsnprintf) -# if !defined(_MSC_VER) || ( defined(_MSC_VER) && _MSC_VER < 1500 ) -# define vsnprintf _vsnprintf -# endif -# endif -# endif -# ifdef __SASC -# define NO_vsnprintf -# endif -# ifdef VMS -# define NO_vsnprintf -# endif -# ifdef __OS400__ -# define NO_vsnprintf -# endif -# ifdef __MVS__ -# define NO_vsnprintf -# endif -#endif - -/* unlike snprintf (which is required in C99, yet still not supported by - Microsoft more than a decade later!), _snprintf does not guarantee null - termination of the result -- however this is only used in gzlib.c where - the result is assured to fit in the space provided */ -#ifdef _MSC_VER -# define snprintf _snprintf -#endif - -#ifndef local -# define local static -#endif -/* compile with -Dlocal if your debugger can't find static symbols */ - -/* gz* functions always use library allocation functions */ -#ifndef STDC - extern voidp malloc OF((uInt size)); - extern void free OF((voidpf ptr)); -#endif - -/* get errno and strerror definition */ -#if defined UNDER_CE -# include -# define zstrerror() gz_strwinerror((DWORD)GetLastError()) -#else -# ifndef NO_STRERROR -# include -# define zstrerror() strerror(errno) -# else -# define zstrerror() "stdio error (consult errno)" -# endif -#endif - -/* provide prototypes for these when building zlib without LFS */ -#if !defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0 - ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); - ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int)); - ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile)); - ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile)); -#endif - -/* default memLevel */ -#if MAX_MEM_LEVEL >= 8 -# define DEF_MEM_LEVEL 8 -#else -# define DEF_MEM_LEVEL MAX_MEM_LEVEL -#endif - -/* default i/o buffer size -- double this for output when reading (this and - twice this must be able to fit in an unsigned type) */ -#define GZBUFSIZE 8192 - -/* gzip modes, also provide a little integrity check on the passed structure */ -#define GZ_NONE 0 -#define GZ_READ 7247 -#define GZ_WRITE 31153 -#define GZ_APPEND 1 /* mode set to GZ_WRITE after the file is opened */ - -/* values for gz_state how */ -#define LOOK 0 /* look for a gzip header */ -#define COPY 1 /* copy input directly */ -#define GZIP 2 /* decompress a gzip stream */ - -/* internal gzip file state data structure */ -typedef struct { - /* exposed contents for gzgetc() macro */ - struct gzFile_s x; /* "x" for exposed */ - /* x.have: number of bytes available at x.next */ - /* x.next: next output data to deliver or write */ - /* x.pos: current position in uncompressed data */ - /* used for both reading and writing */ - int mode; /* see gzip modes above */ - int fd; /* file descriptor */ - char *path; /* path or fd for error messages */ - unsigned size; /* buffer size, zero if not allocated yet */ - unsigned want; /* requested buffer size, default is GZBUFSIZE */ - unsigned char *in; /* input buffer */ - unsigned char *out; /* output buffer (double-sized when reading) */ - int direct; /* 0 if processing gzip, 1 if transparent */ - /* just for reading */ - int how; /* 0: get header, 1: copy, 2: decompress */ - z_off64_t start; /* where the gzip data started, for rewinding */ - int eof; /* true if end of input file reached */ - int past; /* true if read requested past end */ - /* just for writing */ - int level; /* compression level */ - int strategy; /* compression strategy */ - /* seek request */ - z_off64_t skip; /* amount to skip (already rewound if backwards) */ - int seek; /* true if seek request pending */ - /* error information */ - int err; /* error code */ - char *msg; /* error message */ - /* zlib inflate or deflate stream */ - z_stream strm; /* stream structure in-place (not a pointer) */ -} gz_state; -typedef gz_state FAR *gz_statep; - -/* shared functions */ -void ZLIB_INTERNAL gz_error OF((gz_statep, int, const char *)); -#if defined UNDER_CE -char ZLIB_INTERNAL *gz_strwinerror OF((DWORD error)); -#endif - -/* GT_OFF(x), where x is an unsigned value, is true if x > maximum z_off64_t - value -- needed when comparing unsigned to z_off64_t, which is signed - (possible z_off64_t types off_t, off64_t, and long are all signed) */ -#ifdef INT_MAX -# define GT_OFF(x) (sizeof(int) == sizeof(z_off64_t) && (x) > INT_MAX) -#else -unsigned ZLIB_INTERNAL gz_intmax OF((void)); -# define GT_OFF(x) (sizeof(int) == sizeof(z_off64_t) && (x) > gz_intmax()) -#endif diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@gzguts.h.blob b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@gzguts.h.blob deleted file mode 100644 index b8e70760235dbcec0b601f47cfa5d809fc99a68d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8831 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 ZMnsJgRBEgyBVNpUQD5#w5_)sF{{wgk&q)9P diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@gzlib.c b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@gzlib.c deleted file mode 100644 index fae202ef8..000000000 --- a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@gzlib.c +++ /dev/null @@ -1,634 +0,0 @@ -/* gzlib.c -- zlib functions common to reading and writing gzip files - * Copyright (C) 2004, 2010, 2011, 2012, 2013 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -#include "gzguts.h" - -#if defined(_WIN32) && !defined(__BORLANDC__) -# define LSEEK _lseeki64 -#else -#if defined(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-0 -# define LSEEK lseek64 -#else -# define LSEEK lseek -#endif -#endif - -/* Local functions */ -local void gz_reset OF((gz_statep)); -local gzFile gz_open OF((const void *, int, const char *)); - -#if defined UNDER_CE - -/* Map the Windows error number in ERROR to a locale-dependent error message - string and return a pointer to it. Typically, the values for ERROR come - from GetLastError. - - The string pointed to shall not be modified by the application, but may be - overwritten by a subsequent call to gz_strwinerror - - The gz_strwinerror function does not change the current setting of - GetLastError. */ -char ZLIB_INTERNAL *gz_strwinerror (error) - DWORD error; -{ - static char buf[1024]; - - wchar_t *msgbuf; - DWORD lasterr = GetLastError(); - DWORD chars = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM - | FORMAT_MESSAGE_ALLOCATE_BUFFER, - NULL, - error, - 0, /* Default language */ - (LPVOID)&msgbuf, - 0, - NULL); - if (chars != 0) { - /* If there is an \r\n appended, zap it. */ - if (chars >= 2 - && msgbuf[chars - 2] == '\r' && msgbuf[chars - 1] == '\n') { - chars -= 2; - msgbuf[chars] = 0; - } - - if (chars > sizeof (buf) - 1) { - chars = sizeof (buf) - 1; - msgbuf[chars] = 0; - } - - wcstombs(buf, msgbuf, chars + 1); - LocalFree(msgbuf); - } - else { - sprintf(buf, "unknown win32 error (%ld)", error); - } - - SetLastError(lasterr); - return buf; -} - -#endif /* UNDER_CE */ - -/* Reset gzip file state */ -local void gz_reset(state) - gz_statep state; -{ - state->x.have = 0; /* no output data available */ - if (state->mode == GZ_READ) { /* for reading ... */ - state->eof = 0; /* not at end of file */ - state->past = 0; /* have not read past end yet */ - state->how = LOOK; /* look for gzip header */ - } - state->seek = 0; /* no seek request pending */ - gz_error(state, Z_OK, NULL); /* clear error */ - state->x.pos = 0; /* no uncompressed data yet */ - state->strm.avail_in = 0; /* no input data yet */ -} - -/* Open a gzip file either by name or file descriptor. */ -local gzFile gz_open(path, fd, mode) - const void *path; - int fd; - const char *mode; -{ - gz_statep state; - size_t len; - int oflag; -#ifdef O_CLOEXEC - int cloexec = 0; -#endif -#ifdef O_EXCL - int exclusive = 0; -#endif - - /* check input */ - if (path == NULL) - return NULL; - - /* allocate gzFile structure to return */ - state = (gz_statep)malloc(sizeof(gz_state)); - if (state == NULL) - return NULL; - state->size = 0; /* no buffers allocated yet */ - state->want = GZBUFSIZE; /* requested buffer size */ - state->msg = NULL; /* no error message yet */ - - /* interpret mode */ - state->mode = GZ_NONE; - state->level = Z_DEFAULT_COMPRESSION; - state->strategy = Z_DEFAULT_STRATEGY; - state->direct = 0; - while (*mode) { - if (*mode >= '0' && *mode <= '9') - state->level = *mode - '0'; - else - switch (*mode) { - case 'r': - state->mode = GZ_READ; - break; -#ifndef NO_GZCOMPRESS - case 'w': - state->mode = GZ_WRITE; - break; - case 'a': - state->mode = GZ_APPEND; - break; -#endif - case '+': /* can't read and write at the same time */ - free(state); - return NULL; - case 'b': /* ignore -- will request binary anyway */ - break; -#ifdef O_CLOEXEC - case 'e': - cloexec = 1; - break; -#endif -#ifdef O_EXCL - case 'x': - exclusive = 1; - break; -#endif - case 'f': - state->strategy = Z_FILTERED; - break; - case 'h': - state->strategy = Z_HUFFMAN_ONLY; - break; - case 'R': - state->strategy = Z_RLE; - break; - case 'F': - state->strategy = Z_FIXED; - break; - case 'T': - state->direct = 1; - break; - default: /* could consider as an error, but just ignore */ - ; - } - mode++; - } - - /* must provide an "r", "w", or "a" */ - if (state->mode == GZ_NONE) { - free(state); - return NULL; - } - - /* can't force transparent read */ - if (state->mode == GZ_READ) { - if (state->direct) { - free(state); - return NULL; - } - state->direct = 1; /* for empty file */ - } - - /* save the path name for error messages */ -#ifdef _WIN32 - if (fd == -2) { - len = wcstombs(NULL, path, 0); - if (len == (size_t)-1) - len = 0; - } - else -#endif - len = strlen((const char *)path); - state->path = (char *)malloc(len + 1); - if (state->path == NULL) { - free(state); - return NULL; - } -#ifdef _WIN32 - if (fd == -2) - if (len) - wcstombs(state->path, path, len + 1); - else - *(state->path) = 0; - else -#endif -#if !defined(NO_snprintf) && !defined(NO_vsnprintf) - snprintf(state->path, len + 1, "%s", (const char *)path); -#else - strcpy(state->path, path); -#endif - - /* compute the flags for open() */ - oflag = -#ifdef O_LARGEFILE - O_LARGEFILE | -#endif -#ifdef O_BINARY - O_BINARY | -#endif -#ifdef O_CLOEXEC - (cloexec ? O_CLOEXEC : 0) | -#endif - (state->mode == GZ_READ ? - O_RDONLY : - (O_WRONLY | O_CREAT | -#ifdef O_EXCL - (exclusive ? O_EXCL : 0) | -#endif - (state->mode == GZ_WRITE ? - O_TRUNC : - O_APPEND))); - - /* open the file with the appropriate flags (or just use fd) */ - state->fd = fd > -1 ? fd : ( -#ifdef _WIN32 - fd == -2 ? _wopen(path, oflag, 0666) : -#endif - open((const char *)path, oflag, 0666)); - if (state->fd == -1) { - free(state->path); - free(state); - return NULL; - } - if (state->mode == GZ_APPEND) - state->mode = GZ_WRITE; /* simplify later checks */ - - /* save the current position for rewinding (only if reading) */ - if (state->mode == GZ_READ) { - state->start = LSEEK(state->fd, 0, SEEK_CUR); - if (state->start == -1) state->start = 0; - } - - /* initialize stream */ - gz_reset(state); - - /* return stream */ - return (gzFile)state; -} - -/* -- see zlib.h -- */ -gzFile ZEXPORT gzopen(path, mode) - const char *path; - const char *mode; -{ - return gz_open(path, -1, mode); -} - -/* -- see zlib.h -- */ -gzFile ZEXPORT gzopen64(path, mode) - const char *path; - const char *mode; -{ - return gz_open(path, -1, mode); -} - -/* -- see zlib.h -- */ -gzFile ZEXPORT gzdopen(fd, mode) - int fd; - const char *mode; -{ - char *path; /* identifier for error messages */ - gzFile gz; - - if (fd == -1 || (path = (char *)malloc(7 + 3 * sizeof(int))) == NULL) - return NULL; -#if !defined(NO_snprintf) && !defined(NO_vsnprintf) - snprintf(path, 7 + 3 * sizeof(int), "", fd); /* for debugging */ -#else - sprintf(path, "", fd); /* for debugging */ -#endif - gz = gz_open(path, fd, mode); - free(path); - return gz; -} - -/* -- see zlib.h -- */ -#ifdef _WIN32 -gzFile ZEXPORT gzopen_w(path, mode) - const wchar_t *path; - const char *mode; -{ - return gz_open(path, -2, mode); -} -#endif - -/* -- see zlib.h -- */ -int ZEXPORT gzbuffer(file, size) - gzFile file; - unsigned size; -{ - gz_statep state; - - /* get internal structure and check integrity */ - if (file == NULL) - return -1; - state = (gz_statep)file; - if (state->mode != GZ_READ && state->mode != GZ_WRITE) - return -1; - - /* make sure we haven't already allocated memory */ - if (state->size != 0) - return -1; - - /* check and set requested size */ - if (size < 2) - size = 2; /* need two bytes to check magic header */ - state->want = size; - return 0; -} - -/* -- see zlib.h -- */ -int ZEXPORT gzrewind(file) - gzFile file; -{ - gz_statep state; - - /* get internal structure */ - if (file == NULL) - return -1; - state = (gz_statep)file; - - /* check that we're reading and that there's no error */ - if (state->mode != GZ_READ || - (state->err != Z_OK && state->err != Z_BUF_ERROR)) - return -1; - - /* back up and start over */ - if (LSEEK(state->fd, state->start, SEEK_SET) == -1) - return -1; - gz_reset(state); - return 0; -} - -/* -- see zlib.h -- */ -z_off64_t ZEXPORT gzseek64(file, offset, whence) - gzFile file; - z_off64_t offset; - int whence; -{ - unsigned n; - z_off64_t ret; - gz_statep state; - - /* get internal structure and check integrity */ - if (file == NULL) - return -1; - state = (gz_statep)file; - if (state->mode != GZ_READ && state->mode != GZ_WRITE) - return -1; - - /* check that there's no error */ - if (state->err != Z_OK && state->err != Z_BUF_ERROR) - return -1; - - /* can only seek from start or relative to current position */ - if (whence != SEEK_SET && whence != SEEK_CUR) - return -1; - - /* normalize offset to a SEEK_CUR specification */ - if (whence == SEEK_SET) - offset -= state->x.pos; - else if (state->seek) - offset += state->skip; - state->seek = 0; - - /* if within raw area while reading, just go there */ - if (state->mode == GZ_READ && state->how == COPY && - state->x.pos + offset >= 0) { - ret = LSEEK(state->fd, offset - state->x.have, SEEK_CUR); - if (ret == -1) - return -1; - state->x.have = 0; - state->eof = 0; - state->past = 0; - state->seek = 0; - gz_error(state, Z_OK, NULL); - state->strm.avail_in = 0; - state->x.pos += offset; - return state->x.pos; - } - - /* calculate skip amount, rewinding if needed for back seek when reading */ - if (offset < 0) { - if (state->mode != GZ_READ) /* writing -- can't go backwards */ - return -1; - offset += state->x.pos; - if (offset < 0) /* before start of file! */ - return -1; - if (gzrewind(file) == -1) /* rewind, then skip to offset */ - return -1; - } - - /* if reading, skip what's in output buffer (one less gzgetc() check) */ - if (state->mode == GZ_READ) { - n = GT_OFF(state->x.have) || (z_off64_t)state->x.have > offset ? - (unsigned)offset : state->x.have; - state->x.have -= n; - state->x.next += n; - state->x.pos += n; - offset -= n; - } - - /* request skip (if not zero) */ - if (offset) { - state->seek = 1; - state->skip = offset; - } - return state->x.pos + offset; -} - -/* -- see zlib.h -- */ -z_off_t ZEXPORT gzseek(file, offset, whence) - gzFile file; - z_off_t offset; - int whence; -{ - z_off64_t ret; - - ret = gzseek64(file, (z_off64_t)offset, whence); - return ret == (z_off_t)ret ? (z_off_t)ret : -1; -} - -/* -- see zlib.h -- */ -z_off64_t ZEXPORT gztell64(file) - gzFile file; -{ - gz_statep state; - - /* get internal structure and check integrity */ - if (file == NULL) - return -1; - state = (gz_statep)file; - if (state->mode != GZ_READ && state->mode != GZ_WRITE) - return -1; - - /* return position */ - return state->x.pos + (state->seek ? state->skip : 0); -} - -/* -- see zlib.h -- */ -z_off_t ZEXPORT gztell(file) - gzFile file; -{ - z_off64_t ret; - - ret = gztell64(file); - return ret == (z_off_t)ret ? (z_off_t)ret : -1; -} - -/* -- see zlib.h -- */ -z_off64_t ZEXPORT gzoffset64(file) - gzFile file; -{ - z_off64_t offset; - gz_statep state; - - /* get internal structure and check integrity */ - if (file == NULL) - return -1; - state = (gz_statep)file; - if (state->mode != GZ_READ && state->mode != GZ_WRITE) - return -1; - - /* compute and return effective offset in file */ - offset = LSEEK(state->fd, 0, SEEK_CUR); - if (offset == -1) - return -1; - if (state->mode == GZ_READ) /* reading */ - offset -= state->strm.avail_in; /* don't count buffered input */ - return offset; -} - -/* -- see zlib.h -- */ -z_off_t ZEXPORT gzoffset(file) - gzFile file; -{ - z_off64_t ret; - - ret = gzoffset64(file); - return ret == (z_off_t)ret ? (z_off_t)ret : -1; -} - -/* -- see zlib.h -- */ -int ZEXPORT gzeof(file) - gzFile file; -{ - gz_statep state; - - /* get internal structure and check integrity */ - if (file == NULL) - return 0; - state = (gz_statep)file; - if (state->mode != GZ_READ && state->mode != GZ_WRITE) - return 0; - - /* return end-of-file state */ - return state->mode == GZ_READ ? state->past : 0; -} - -/* -- see zlib.h -- */ -const char * ZEXPORT gzerror(file, errnum) - gzFile file; - int *errnum; -{ - gz_statep state; - - /* get internal structure and check integrity */ - if (file == NULL) - return NULL; - state = (gz_statep)file; - if (state->mode != GZ_READ && state->mode != GZ_WRITE) - return NULL; - - /* return error information */ - if (errnum != NULL) - *errnum = state->err; - return state->err == Z_MEM_ERROR ? "out of memory" : - (state->msg == NULL ? "" : state->msg); -} - -/* -- see zlib.h -- */ -void ZEXPORT gzclearerr(file) - gzFile file; -{ - gz_statep state; - - /* get internal structure and check integrity */ - if (file == NULL) - return; - state = (gz_statep)file; - if (state->mode != GZ_READ && state->mode != GZ_WRITE) - return; - - /* clear error and end-of-file */ - if (state->mode == GZ_READ) { - state->eof = 0; - state->past = 0; - } - gz_error(state, Z_OK, NULL); -} - -/* Create an error message in allocated memory and set state->err and - state->msg accordingly. Free any previous error message already there. Do - not try to free or allocate space if the error is Z_MEM_ERROR (out of - memory). Simply save the error message as a static string. If there is an - allocation failure constructing the error message, then convert the error to - out of memory. */ -void ZLIB_INTERNAL gz_error(state, err, msg) - gz_statep state; - int err; - const char *msg; -{ - /* free previously allocated message and clear */ - if (state->msg != NULL) { - if (state->err != Z_MEM_ERROR) - free(state->msg); - state->msg = NULL; - } - - /* if fatal, set state->x.have to 0 so that the gzgetc() macro fails */ - if (err != Z_OK && err != Z_BUF_ERROR) - state->x.have = 0; - - /* set error code, and if no message, then done */ - state->err = err; - if (msg == NULL) - return; - - /* for an out of memory error, return literal string when requested */ - if (err == Z_MEM_ERROR) - return; - - /* construct error message with path */ - if ((state->msg = (char *)malloc(strlen(state->path) + strlen(msg) + 3)) == - NULL) { - state->err = Z_MEM_ERROR; - return; - } -#if !defined(NO_snprintf) && !defined(NO_vsnprintf) - snprintf(state->msg, strlen(state->path) + strlen(msg) + 3, - "%s%s%s", state->path, ": ", msg); -#else - strcpy(state->msg, state->path); - strcat(state->msg, ": "); - strcat(state->msg, msg); -#endif - return; -} - -#ifndef INT_MAX -/* portably return maximum value for an int (when limits.h presumed not - available) -- we need to do this to cover cases where 2's complement not - used, since C standard permits 1's complement and sign-bit representations, - otherwise we could just use ((unsigned)-1) >> 1 */ -unsigned ZLIB_INTERNAL gz_intmax() -{ - unsigned p, q; - - p = 1; - do { - q = p; - p <<= 1; - p++; - } while (p > q); - return q >> 1; -} -#endif diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@gzlib.c.blob b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@gzlib.c.blob deleted file mode 100644 index dcd76c1a844b45de415bb95c498b8b17012ce564..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12958 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 diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@gzread.c b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@gzread.c deleted file mode 100644 index bf4538eb2..000000000 --- a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@gzread.c +++ /dev/null @@ -1,594 +0,0 @@ -/* gzread.c -- zlib functions for reading gzip files - * Copyright (C) 2004, 2005, 2010, 2011, 2012, 2013 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -#include "gzguts.h" - -/* Local functions */ -local int gz_load OF((gz_statep, unsigned char *, unsigned, unsigned *)); -local int gz_avail OF((gz_statep)); -local int gz_look OF((gz_statep)); -local int gz_decomp OF((gz_statep)); -local int gz_fetch OF((gz_statep)); -local int gz_skip OF((gz_statep, z_off64_t)); - -/* Use read() to load a buffer -- return -1 on error, otherwise 0. Read from - state->fd, and update state->eof, state->err, and state->msg as appropriate. - This function needs to loop on read(), since read() is not guaranteed to - read the number of bytes requested, depending on the type of descriptor. */ -local int gz_load(state, buf, len, have) - gz_statep state; - unsigned char *buf; - unsigned len; - unsigned *have; -{ - int ret; - - *have = 0; - do { - ret = read(state->fd, buf + *have, len - *have); - if (ret <= 0) - break; - *have += ret; - } while (*have < len); - if (ret < 0) { - gz_error(state, Z_ERRNO, zstrerror()); - return -1; - } - if (ret == 0) - state->eof = 1; - return 0; -} - -/* Load up input buffer and set eof flag if last data loaded -- return -1 on - error, 0 otherwise. Note that the eof flag is set when the end of the input - file is reached, even though there may be unused data in the buffer. Once - that data has been used, no more attempts will be made to read the file. - If strm->avail_in != 0, then the current data is moved to the beginning of - the input buffer, and then the remainder of the buffer is loaded with the - available data from the input file. */ -local int gz_avail(state) - gz_statep state; -{ - unsigned got; - z_streamp strm = &(state->strm); - - if (state->err != Z_OK && state->err != Z_BUF_ERROR) - return -1; - if (state->eof == 0) { - if (strm->avail_in) { /* copy what's there to the start */ - unsigned char *p = state->in; - unsigned const char *q = strm->next_in; - unsigned n = strm->avail_in; - do { - *p++ = *q++; - } while (--n); - } - if (gz_load(state, state->in + strm->avail_in, - state->size - strm->avail_in, &got) == -1) - return -1; - strm->avail_in += got; - strm->next_in = state->in; - } - return 0; -} - -/* Look for gzip header, set up for inflate or copy. state->x.have must be 0. - If this is the first time in, allocate required memory. state->how will be - left unchanged if there is no more input data available, will be set to COPY - if there is no gzip header and direct copying will be performed, or it will - be set to GZIP for decompression. If direct copying, then leftover input - data from the input buffer will be copied to the output buffer. In that - case, all further file reads will be directly to either the output buffer or - a user buffer. If decompressing, the inflate state will be initialized. - gz_look() will return 0 on success or -1 on failure. */ -local int gz_look(state) - gz_statep state; -{ - z_streamp strm = &(state->strm); - - /* allocate read buffers and inflate memory */ - if (state->size == 0) { - /* allocate buffers */ - state->in = (unsigned char *)malloc(state->want); - state->out = (unsigned char *)malloc(state->want << 1); - if (state->in == NULL || state->out == NULL) { - if (state->out != NULL) - free(state->out); - if (state->in != NULL) - free(state->in); - gz_error(state, Z_MEM_ERROR, "out of memory"); - return -1; - } - state->size = state->want; - - /* allocate inflate memory */ - state->strm.zalloc = Z_NULL; - state->strm.zfree = Z_NULL; - state->strm.opaque = Z_NULL; - state->strm.avail_in = 0; - state->strm.next_in = Z_NULL; - if (inflateInit2(&(state->strm), 15 + 16) != Z_OK) { /* gunzip */ - free(state->out); - free(state->in); - state->size = 0; - gz_error(state, Z_MEM_ERROR, "out of memory"); - return -1; - } - } - - /* get at least the magic bytes in the input buffer */ - if (strm->avail_in < 2) { - if (gz_avail(state) == -1) - return -1; - if (strm->avail_in == 0) - return 0; - } - - /* look for gzip magic bytes -- if there, do gzip decoding (note: there is - a logical dilemma here when considering the case of a partially written - gzip file, to wit, if a single 31 byte is written, then we cannot tell - whether this is a single-byte file, or just a partially written gzip - file -- for here we assume that if a gzip file is being written, then - the header will be written in a single operation, so that reading a - single byte is sufficient indication that it is not a gzip file) */ - if (strm->avail_in > 1 && - strm->next_in[0] == 31 && strm->next_in[1] == 139) { - inflateReset(strm); - state->how = GZIP; - state->direct = 0; - return 0; - } - - /* no gzip header -- if we were decoding gzip before, then this is trailing - garbage. Ignore the trailing garbage and finish. */ - if (state->direct == 0) { - strm->avail_in = 0; - state->eof = 1; - state->x.have = 0; - return 0; - } - - /* doing raw i/o, copy any leftover input to output -- this assumes that - the output buffer is larger than the input buffer, which also assures - space for gzungetc() */ - state->x.next = state->out; - if (strm->avail_in) { - memcpy(state->x.next, strm->next_in, strm->avail_in); - state->x.have = strm->avail_in; - strm->avail_in = 0; - } - state->how = COPY; - state->direct = 1; - return 0; -} - -/* Decompress from input to the provided next_out and avail_out in the state. - On return, state->x.have and state->x.next point to the just decompressed - data. If the gzip stream completes, state->how is reset to LOOK to look for - the next gzip stream or raw data, once state->x.have is depleted. Returns 0 - on success, -1 on failure. */ -local int gz_decomp(state) - gz_statep state; -{ - int ret = Z_OK; - unsigned had; - z_streamp strm = &(state->strm); - - /* fill output buffer up to end of deflate stream */ - had = strm->avail_out; - do { - /* get more input for inflate() */ - if (strm->avail_in == 0 && gz_avail(state) == -1) - return -1; - if (strm->avail_in == 0) { - gz_error(state, Z_BUF_ERROR, "unexpected end of file"); - break; - } - - /* decompress and handle errors */ - ret = inflate(strm, Z_NO_FLUSH); - if (ret == Z_STREAM_ERROR || ret == Z_NEED_DICT) { - gz_error(state, Z_STREAM_ERROR, - "internal error: inflate stream corrupt"); - return -1; - } - if (ret == Z_MEM_ERROR) { - gz_error(state, Z_MEM_ERROR, "out of memory"); - return -1; - } - if (ret == Z_DATA_ERROR) { /* deflate stream invalid */ - gz_error(state, Z_DATA_ERROR, - strm->msg == NULL ? "compressed data error" : strm->msg); - return -1; - } - } while (strm->avail_out && ret != Z_STREAM_END); - - /* update available output */ - state->x.have = had - strm->avail_out; - state->x.next = strm->next_out - state->x.have; - - /* if the gzip stream completed successfully, look for another */ - if (ret == Z_STREAM_END) - state->how = LOOK; - - /* good decompression */ - return 0; -} - -/* Fetch data and put it in the output buffer. Assumes state->x.have is 0. - Data is either copied from the input file or decompressed from the input - file depending on state->how. If state->how is LOOK, then a gzip header is - looked for to determine whether to copy or decompress. Returns -1 on error, - otherwise 0. gz_fetch() will leave state->how as COPY or GZIP unless the - end of the input file has been reached and all data has been processed. */ -local int gz_fetch(state) - gz_statep state; -{ - z_streamp strm = &(state->strm); - - do { - switch(state->how) { - case LOOK: /* -> LOOK, COPY (only if never GZIP), or GZIP */ - if (gz_look(state) == -1) - return -1; - if (state->how == LOOK) - return 0; - break; - case COPY: /* -> COPY */ - if (gz_load(state, state->out, state->size << 1, &(state->x.have)) - == -1) - return -1; - state->x.next = state->out; - return 0; - case GZIP: /* -> GZIP or LOOK (if end of gzip stream) */ - strm->avail_out = state->size << 1; - strm->next_out = state->out; - if (gz_decomp(state) == -1) - return -1; - } - } while (state->x.have == 0 && (!state->eof || strm->avail_in)); - return 0; -} - -/* Skip len uncompressed bytes of output. Return -1 on error, 0 on success. */ -local int gz_skip(state, len) - gz_statep state; - z_off64_t len; -{ - unsigned n; - - /* skip over len bytes or reach end-of-file, whichever comes first */ - while (len) - /* skip over whatever is in output buffer */ - if (state->x.have) { - n = GT_OFF(state->x.have) || (z_off64_t)state->x.have > len ? - (unsigned)len : state->x.have; - state->x.have -= n; - state->x.next += n; - state->x.pos += n; - len -= n; - } - - /* output buffer empty -- return if we're at the end of the input */ - else if (state->eof && state->strm.avail_in == 0) - break; - - /* need more data to skip -- load up output buffer */ - else { - /* get more output, looking for header if required */ - if (gz_fetch(state) == -1) - return -1; - } - return 0; -} - -/* -- see zlib.h -- */ -int ZEXPORT gzread(file, buf, len) - gzFile file; - voidp buf; - unsigned len; -{ - unsigned got, n; - gz_statep state; - z_streamp strm; - - /* get internal structure */ - if (file == NULL) - return -1; - state = (gz_statep)file; - strm = &(state->strm); - - /* check that we're reading and that there's no (serious) error */ - if (state->mode != GZ_READ || - (state->err != Z_OK && state->err != Z_BUF_ERROR)) - return -1; - - /* since an int is returned, make sure len fits in one, otherwise return - with an error (this avoids the flaw in the interface) */ - if ((int)len < 0) { - gz_error(state, Z_DATA_ERROR, "requested length does not fit in int"); - return -1; - } - - /* if len is zero, avoid unnecessary operations */ - if (len == 0) - return 0; - - /* process a skip request */ - if (state->seek) { - state->seek = 0; - if (gz_skip(state, state->skip) == -1) - return -1; - } - - /* get len bytes to buf, or less than len if at the end */ - got = 0; - do { - /* first just try copying data from the output buffer */ - if (state->x.have) { - n = state->x.have > len ? len : state->x.have; - memcpy(buf, state->x.next, n); - state->x.next += n; - state->x.have -= n; - } - - /* output buffer empty -- return if we're at the end of the input */ - else if (state->eof && strm->avail_in == 0) { - state->past = 1; /* tried to read past end */ - break; - } - - /* need output data -- for small len or new stream load up our output - buffer */ - else if (state->how == LOOK || len < (state->size << 1)) { - /* get more output, looking for header if required */ - if (gz_fetch(state) == -1) - return -1; - continue; /* no progress yet -- go back to copy above */ - /* the copy above assures that we will leave with space in the - output buffer, allowing at least one gzungetc() to succeed */ - } - - /* large len -- read directly into user buffer */ - else if (state->how == COPY) { /* read directly */ - if (gz_load(state, (unsigned char *)buf, len, &n) == -1) - return -1; - } - - /* large len -- decompress directly into user buffer */ - else { /* state->how == GZIP */ - strm->avail_out = len; - strm->next_out = (unsigned char *)buf; - if (gz_decomp(state) == -1) - return -1; - n = state->x.have; - state->x.have = 0; - } - - /* update progress */ - len -= n; - buf = (char *)buf + n; - got += n; - state->x.pos += n; - } while (len); - - /* return number of bytes read into user buffer (will fit in int) */ - return (int)got; -} - -/* -- see zlib.h -- */ -#ifdef Z_PREFIX_SET -# undef z_gzgetc -#else -# undef gzgetc -#endif -int ZEXPORT gzgetc(file) - gzFile file; -{ - int ret; - unsigned char buf[1]; - gz_statep state; - - /* get internal structure */ - if (file == NULL) - return -1; - state = (gz_statep)file; - - /* check that we're reading and that there's no (serious) error */ - if (state->mode != GZ_READ || - (state->err != Z_OK && state->err != Z_BUF_ERROR)) - return -1; - - /* try output buffer (no need to check for skip request) */ - if (state->x.have) { - state->x.have--; - state->x.pos++; - return *(state->x.next)++; - } - - /* nothing there -- try gzread() */ - ret = gzread(file, buf, 1); - return ret < 1 ? -1 : buf[0]; -} - -int ZEXPORT gzgetc_(file) -gzFile file; -{ - return gzgetc(file); -} - -/* -- see zlib.h -- */ -int ZEXPORT gzungetc(c, file) - int c; - gzFile file; -{ - gz_statep state; - - /* get internal structure */ - if (file == NULL) - return -1; - state = (gz_statep)file; - - /* check that we're reading and that there's no (serious) error */ - if (state->mode != GZ_READ || - (state->err != Z_OK && state->err != Z_BUF_ERROR)) - return -1; - - /* process a skip request */ - if (state->seek) { - state->seek = 0; - if (gz_skip(state, state->skip) == -1) - return -1; - } - - /* can't push EOF */ - if (c < 0) - return -1; - - /* if output buffer empty, put byte at end (allows more pushing) */ - if (state->x.have == 0) { - state->x.have = 1; - state->x.next = state->out + (state->size << 1) - 1; - state->x.next[0] = c; - state->x.pos--; - state->past = 0; - return c; - } - - /* if no room, give up (must have already done a gzungetc()) */ - if (state->x.have == (state->size << 1)) { - gz_error(state, Z_DATA_ERROR, "out of room to push characters"); - return -1; - } - - /* slide output data if needed and insert byte before existing data */ - if (state->x.next == state->out) { - unsigned char *src = state->out + state->x.have; - unsigned char *dest = state->out + (state->size << 1); - while (src > state->out) - *--dest = *--src; - state->x.next = dest; - } - state->x.have++; - state->x.next--; - state->x.next[0] = c; - state->x.pos--; - state->past = 0; - return c; -} - -/* -- see zlib.h -- */ -char * ZEXPORT gzgets(file, buf, len) - gzFile file; - char *buf; - int len; -{ - unsigned left, n; - char *str; - unsigned char *eol; - gz_statep state; - - /* check parameters and get internal structure */ - if (file == NULL || buf == NULL || len < 1) - return NULL; - state = (gz_statep)file; - - /* check that we're reading and that there's no (serious) error */ - if (state->mode != GZ_READ || - (state->err != Z_OK && state->err != Z_BUF_ERROR)) - return NULL; - - /* process a skip request */ - if (state->seek) { - state->seek = 0; - if (gz_skip(state, state->skip) == -1) - return NULL; - } - - /* copy output bytes up to new line or len - 1, whichever comes first -- - append a terminating zero to the string (we don't check for a zero in - the contents, let the user worry about that) */ - str = buf; - left = (unsigned)len - 1; - if (left) do { - /* assure that something is in the output buffer */ - if (state->x.have == 0 && gz_fetch(state) == -1) - return NULL; /* error */ - if (state->x.have == 0) { /* end of file */ - state->past = 1; /* read past end */ - break; /* return what we have */ - } - - /* look for end-of-line in current output buffer */ - n = state->x.have > left ? left : state->x.have; - eol = (unsigned char *)memchr(state->x.next, '\n', n); - if (eol != NULL) - n = (unsigned)(eol - state->x.next) + 1; - - /* copy through end-of-line, or remainder if not found */ - memcpy(buf, state->x.next, n); - state->x.have -= n; - state->x.next += n; - state->x.pos += n; - left -= n; - buf += n; - } while (left && eol == NULL); - - /* return terminated string, or if nothing, end of file */ - if (buf == str) - return NULL; - buf[0] = 0; - return str; -} - -/* -- see zlib.h -- */ -int ZEXPORT gzdirect(file) - gzFile file; -{ - gz_statep state; - - /* get internal structure */ - if (file == NULL) - return 0; - state = (gz_statep)file; - - /* if the state is not known, but we can find out, then do so (this is - mainly for right after a gzopen() or gzdopen()) */ - if (state->mode == GZ_READ && state->how == LOOK && state->x.have == 0) - (void)gz_look(state); - - /* return 1 if transparent, 0 if processing a gzip stream */ - return state->direct; -} - -/* -- see zlib.h -- */ -int ZEXPORT gzclose_r(file) - gzFile file; -{ - int ret, err; - gz_statep state; - - /* get internal structure */ - if (file == NULL) - return Z_STREAM_ERROR; - state = (gz_statep)file; - - /* check that we're reading */ - if (state->mode != GZ_READ) - return Z_STREAM_ERROR; - - /* free memory and close file */ - if (state->size) { - inflateEnd(&(state->strm)); - free(state->out); - free(state->in); - } - err = state->err == Z_BUF_ERROR ? Z_BUF_ERROR : Z_OK; - gz_error(state, Z_OK, NULL); - free(state->path); - ret = close(state->fd); - free(state); - return ret ? Z_ERRNO : err; -} diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@gzread.c.blob b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@gzread.c.blob deleted file mode 100644 index caba63f1fd87c514f0fbe21e19b37f15c017cc74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14772 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%0Dd-#FA>+TPk`JGzp ztgUWj>Y%DMvU`i~rApbuYS0=u*Di34>I59S&}{xasHKsG>%zcFy|Rc#U)pn@W5wSWWEtdyP)=37FuOKmmD5^k zS`cY}VE+Ls%6@x4s$#87Lm7KGa5#)zFa8L7Pxiu!dbt(thLm@+KJ-1qn$Q*lJr7HG zo?AjIf>$fAP5TrzIM^Y4rDA_|e!B0rAN|z)PMqtROB(Bfopy0e^z_z0SRfxT4-&{TB{V0f{NSw5 zzjaZ^ns?KtHL>bKQ5F#jJQ=x9uc@zTxr+7H_u@HdA1upZL-rv&!}c(q5qktr#jfC~ zwy5n_@n>W1ef9TY{M+?!;|bZcqxB%kI}zlZ%!9s#Vl7(ZRV=mjvC9_Jzx~tyGP7*O zcfpoM`pySW+#=(N%R@YI>4PWk9`Kwc%)+xusKRr(upH03g}d>5Q+N|kekqa?fKsbQ zKKSJeZ`GHXSIEsP&2wOdvZ)nVq0|CA%`puUvX)uVlV6&Tp48yC{%_u&R$peD#5#fj z7)K_biDy-x1sB9GhFoZH$<(1)pLd);^kUN_Q*jq)Hmtl2_6;zmI|}b8wy_uNF95&e zdfeI{fiSRt>}}bL zLrJn6rc}-#oa6?e4IJGAbPq@G1HEsc1|VAR1Jsruuri@R@Tzha*36-7PmT!S;P^kwXxCSQ4~m*mR^dH zR~KImd}HyAP8++e_%`4z!7am9c6l(EXWR+d0RJ!40Iqv8Q3+K7j9@7*Z`S{2 z-e2FF^OB!#6en4bx&@n)TLxcm$T5UMBK6$gFYy2VJA32&hZeysCe^5KZ9+!*JkDg; z5hf;IyJzEP&QBgbIEhp1Up2z7Gm~size to non-zero. Return -1 on failure or 0 on success. */ -local int gz_init(state) - gz_statep state; -{ - int ret; - z_streamp strm = &(state->strm); - - /* allocate input buffer */ - state->in = (unsigned char *)malloc(state->want); - if (state->in == NULL) { - gz_error(state, Z_MEM_ERROR, "out of memory"); - return -1; - } - - /* only need output buffer and deflate state if compressing */ - if (!state->direct) { - /* allocate output buffer */ - state->out = (unsigned char *)malloc(state->want); - if (state->out == NULL) { - free(state->in); - gz_error(state, Z_MEM_ERROR, "out of memory"); - return -1; - } - - /* allocate deflate memory, set up for gzip compression */ - strm->zalloc = Z_NULL; - strm->zfree = Z_NULL; - strm->opaque = Z_NULL; - ret = deflateInit2(strm, state->level, Z_DEFLATED, - MAX_WBITS + 16, DEF_MEM_LEVEL, state->strategy); - if (ret != Z_OK) { - free(state->out); - free(state->in); - gz_error(state, Z_MEM_ERROR, "out of memory"); - return -1; - } - } - - /* mark state as initialized */ - state->size = state->want; - - /* initialize write buffer if compressing */ - if (!state->direct) { - strm->avail_out = state->size; - strm->next_out = state->out; - state->x.next = strm->next_out; - } - return 0; -} - -/* Compress whatever is at avail_in and next_in and write to the output file. - Return -1 if there is an error writing to the output file, otherwise 0. - flush is assumed to be a valid deflate() flush value. If flush is Z_FINISH, - then the deflate() state is reset to start a new gzip stream. If gz->direct - is true, then simply write to the output file without compressing, and - ignore flush. */ -local int gz_comp(state, flush) - gz_statep state; - int flush; -{ - int ret, got; - unsigned have; - z_streamp strm = &(state->strm); - - /* allocate memory if this is the first time through */ - if (state->size == 0 && gz_init(state) == -1) - return -1; - - /* write directly if requested */ - if (state->direct) { - got = write(state->fd, strm->next_in, strm->avail_in); - if (got < 0 || (unsigned)got != strm->avail_in) { - gz_error(state, Z_ERRNO, zstrerror()); - return -1; - } - strm->avail_in = 0; - return 0; - } - - /* run deflate() on provided input until it produces no more output */ - ret = Z_OK; - do { - /* write out current buffer contents if full, or if flushing, but if - doing Z_FINISH then don't write until we get to Z_STREAM_END */ - if (strm->avail_out == 0 || (flush != Z_NO_FLUSH && - (flush != Z_FINISH || ret == Z_STREAM_END))) { - have = (unsigned)(strm->next_out - state->x.next); - if (have && ((got = write(state->fd, state->x.next, have)) < 0 || - (unsigned)got != have)) { - gz_error(state, Z_ERRNO, zstrerror()); - return -1; - } - if (strm->avail_out == 0) { - strm->avail_out = state->size; - strm->next_out = state->out; - } - state->x.next = strm->next_out; - } - - /* compress */ - have = strm->avail_out; - ret = deflate(strm, flush); - if (ret == Z_STREAM_ERROR) { - gz_error(state, Z_STREAM_ERROR, - "internal error: deflate stream corrupt"); - return -1; - } - have -= strm->avail_out; - } while (have); - - /* if that completed a deflate stream, allow another to start */ - if (flush == Z_FINISH) - deflateReset(strm); - - /* all done, no errors */ - return 0; -} - -/* Compress len zeros to output. Return -1 on error, 0 on success. */ -local int gz_zero(state, len) - gz_statep state; - z_off64_t len; -{ - int first; - unsigned n; - z_streamp strm = &(state->strm); - - /* consume whatever's left in the input buffer */ - if (strm->avail_in && gz_comp(state, Z_NO_FLUSH) == -1) - return -1; - - /* compress len zeros (len guaranteed > 0) */ - first = 1; - while (len) { - n = GT_OFF(state->size) || (z_off64_t)state->size > len ? - (unsigned)len : state->size; - if (first) { - memset(state->in, 0, n); - first = 0; - } - strm->avail_in = n; - strm->next_in = state->in; - state->x.pos += n; - if (gz_comp(state, Z_NO_FLUSH) == -1) - return -1; - len -= n; - } - return 0; -} - -/* -- see zlib.h -- */ -int ZEXPORT gzwrite(file, buf, len) - gzFile file; - voidpc buf; - unsigned len; -{ - unsigned put = len; - gz_statep state; - z_streamp strm; - - /* get internal structure */ - if (file == NULL) - return 0; - state = (gz_statep)file; - strm = &(state->strm); - - /* check that we're writing and that there's no error */ - if (state->mode != GZ_WRITE || state->err != Z_OK) - return 0; - - /* since an int is returned, make sure len fits in one, otherwise return - with an error (this avoids the flaw in the interface) */ - if ((int)len < 0) { - gz_error(state, Z_DATA_ERROR, "requested length does not fit in int"); - return 0; - } - - /* if len is zero, avoid unnecessary operations */ - if (len == 0) - return 0; - - /* allocate memory if this is the first time through */ - if (state->size == 0 && gz_init(state) == -1) - return 0; - - /* check for seek request */ - if (state->seek) { - state->seek = 0; - if (gz_zero(state, state->skip) == -1) - return 0; - } - - /* for small len, copy to input buffer, otherwise compress directly */ - if (len < state->size) { - /* copy to input buffer, compress when full */ - do { - unsigned have, copy; - - if (strm->avail_in == 0) - strm->next_in = state->in; - have = (unsigned)((strm->next_in + strm->avail_in) - state->in); - copy = state->size - have; - if (copy > len) - copy = len; - memcpy(state->in + have, buf, copy); - strm->avail_in += copy; - state->x.pos += copy; - buf = (const char *)buf + copy; - len -= copy; - if (len && gz_comp(state, Z_NO_FLUSH) == -1) - return 0; - } while (len); - } - else { - /* consume whatever's left in the input buffer */ - if (strm->avail_in && gz_comp(state, Z_NO_FLUSH) == -1) - return 0; - - /* directly compress user buffer to file */ - strm->avail_in = len; - strm->next_in = (z_const Bytef *)buf; - state->x.pos += len; - if (gz_comp(state, Z_NO_FLUSH) == -1) - return 0; - } - - /* input was all buffered or compressed (put will fit in int) */ - return (int)put; -} - -/* -- see zlib.h -- */ -int ZEXPORT gzputc(file, c) - gzFile file; - int c; -{ - unsigned have; - unsigned char buf[1]; - gz_statep state; - z_streamp strm; - - /* get internal structure */ - if (file == NULL) - return -1; - state = (gz_statep)file; - strm = &(state->strm); - - /* check that we're writing and that there's no error */ - if (state->mode != GZ_WRITE || state->err != Z_OK) - return -1; - - /* check for seek request */ - if (state->seek) { - state->seek = 0; - if (gz_zero(state, state->skip) == -1) - return -1; - } - - /* try writing to input buffer for speed (state->size == 0 if buffer not - initialized) */ - if (state->size) { - if (strm->avail_in == 0) - strm->next_in = state->in; - have = (unsigned)((strm->next_in + strm->avail_in) - state->in); - if (have < state->size) { - state->in[have] = c; - strm->avail_in++; - state->x.pos++; - return c & 0xff; - } - } - - /* no room in buffer or not initialized, use gz_write() */ - buf[0] = c; - if (gzwrite(file, buf, 1) != 1) - return -1; - return c & 0xff; -} - -/* -- see zlib.h -- */ -int ZEXPORT gzputs(file, str) - gzFile file; - const char *str; -{ - int ret; - unsigned len; - - /* write string */ - len = (unsigned)strlen(str); - ret = gzwrite(file, str, len); - return ret == 0 && len != 0 ? -1 : ret; -} - -#if defined(STDC) || defined(Z_HAVE_STDARG_H) -#include - -/* -- see zlib.h -- */ -int ZEXPORTVA gzvprintf(gzFile file, const char *format, va_list va) -{ - int size, len; - gz_statep state; - z_streamp strm; - - /* get internal structure */ - if (file == NULL) - return -1; - state = (gz_statep)file; - strm = &(state->strm); - - /* check that we're writing and that there's no error */ - if (state->mode != GZ_WRITE || state->err != Z_OK) - return 0; - - /* make sure we have some buffer space */ - if (state->size == 0 && gz_init(state) == -1) - return 0; - - /* check for seek request */ - if (state->seek) { - state->seek = 0; - if (gz_zero(state, state->skip) == -1) - return 0; - } - - /* consume whatever's left in the input buffer */ - if (strm->avail_in && gz_comp(state, Z_NO_FLUSH) == -1) - return 0; - - /* do the printf() into the input buffer, put length in len */ - size = (int)(state->size); - state->in[size - 1] = 0; -#ifdef NO_vsnprintf -# ifdef HAS_vsprintf_void - (void)vsprintf((char *)(state->in), format, va); - for (len = 0; len < size; len++) - if (state->in[len] == 0) break; -# else - len = vsprintf((char *)(state->in), format, va); -# endif -#else -# ifdef HAS_vsnprintf_void - (void)vsnprintf((char *)(state->in), size, format, va); - len = strlen((char *)(state->in)); -# else - len = vsnprintf((char *)(state->in), size, format, va); -# endif -#endif - - /* check that printf() results fit in buffer */ - if (len <= 0 || len >= (int)size || state->in[size - 1] != 0) - return 0; - - /* update buffer and position, defer compression until needed */ - strm->avail_in = (unsigned)len; - strm->next_in = state->in; - state->x.pos += len; - return len; -} - -int ZEXPORTVA gzprintf(gzFile file, const char *format, ...) -{ - va_list va; - int ret; - - va_start(va, format); - ret = gzvprintf(file, format, va); - va_end(va); - return ret; -} - -#else /* !STDC && !Z_HAVE_STDARG_H */ - -/* -- see zlib.h -- */ -int ZEXPORTVA gzprintf (file, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, - a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) - gzFile file; - const char *format; - int a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, - a11, a12, a13, a14, a15, a16, a17, a18, a19, a20; -{ - int size, len; - gz_statep state; - z_streamp strm; - - /* get internal structure */ - if (file == NULL) - return -1; - state = (gz_statep)file; - strm = &(state->strm); - - /* check that can really pass pointer in ints */ - if (sizeof(int) != sizeof(void *)) - return 0; - - /* check that we're writing and that there's no error */ - if (state->mode != GZ_WRITE || state->err != Z_OK) - return 0; - - /* make sure we have some buffer space */ - if (state->size == 0 && gz_init(state) == -1) - return 0; - - /* check for seek request */ - if (state->seek) { - state->seek = 0; - if (gz_zero(state, state->skip) == -1) - return 0; - } - - /* consume whatever's left in the input buffer */ - if (strm->avail_in && gz_comp(state, Z_NO_FLUSH) == -1) - return 0; - - /* do the printf() into the input buffer, put length in len */ - size = (int)(state->size); - state->in[size - 1] = 0; -#ifdef NO_snprintf -# ifdef HAS_sprintf_void - sprintf((char *)(state->in), format, a1, a2, a3, a4, a5, a6, a7, a8, - a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); - for (len = 0; len < size; len++) - if (state->in[len] == 0) break; -# else - len = sprintf((char *)(state->in), format, a1, a2, a3, a4, a5, a6, a7, a8, - a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); -# endif -#else -# ifdef HAS_snprintf_void - snprintf((char *)(state->in), size, format, a1, a2, a3, a4, a5, a6, a7, a8, - a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); - len = strlen((char *)(state->in)); -# else - len = snprintf((char *)(state->in), size, format, a1, a2, a3, a4, a5, a6, - a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, - a19, a20); -# endif -#endif - - /* check that printf() results fit in buffer */ - if (len <= 0 || len >= (int)size || state->in[size - 1] != 0) - return 0; - - /* update buffer and position, defer compression until needed */ - strm->avail_in = (unsigned)len; - strm->next_in = state->in; - state->x.pos += len; - return len; -} - -#endif - -/* -- see zlib.h -- */ -int ZEXPORT gzflush(file, flush) - gzFile file; - int flush; -{ - gz_statep state; - - /* get internal structure */ - if (file == NULL) - return -1; - state = (gz_statep)file; - - /* check that we're writing and that there's no error */ - if (state->mode != GZ_WRITE || state->err != Z_OK) - return Z_STREAM_ERROR; - - /* check flush parameter */ - if (flush < 0 || flush > Z_FINISH) - return Z_STREAM_ERROR; - - /* check for seek request */ - if (state->seek) { - state->seek = 0; - if (gz_zero(state, state->skip) == -1) - return -1; - } - - /* compress remaining data with requested flush */ - gz_comp(state, flush); - return state->err; -} - -/* -- see zlib.h -- */ -int ZEXPORT gzsetparams(file, level, strategy) - gzFile file; - int level; - int strategy; -{ - gz_statep state; - z_streamp strm; - - /* get internal structure */ - if (file == NULL) - return Z_STREAM_ERROR; - state = (gz_statep)file; - strm = &(state->strm); - - /* check that we're writing and that there's no error */ - if (state->mode != GZ_WRITE || state->err != Z_OK) - return Z_STREAM_ERROR; - - /* if no change is requested, then do nothing */ - if (level == state->level && strategy == state->strategy) - return Z_OK; - - /* check for seek request */ - if (state->seek) { - state->seek = 0; - if (gz_zero(state, state->skip) == -1) - return -1; - } - - /* change compression parameters for subsequent input */ - if (state->size) { - /* flush previous input with previous parameters before changing */ - if (strm->avail_in && gz_comp(state, Z_PARTIAL_FLUSH) == -1) - return state->err; - deflateParams(strm, level, strategy); - } - state->level = level; - state->strategy = strategy; - return Z_OK; -} - -/* -- see zlib.h -- */ -int ZEXPORT gzclose_w(file) - gzFile file; -{ - int ret = Z_OK; - gz_statep state; - - /* get internal structure */ - if (file == NULL) - return Z_STREAM_ERROR; - state = (gz_statep)file; - - /* check that we're writing */ - if (state->mode != GZ_WRITE) - return Z_STREAM_ERROR; - - /* check for seek request */ - if (state->seek) { - state->seek = 0; - if (gz_zero(state, state->skip) == -1) - ret = state->err; - } - - /* flush, free memory, and close file */ - if (gz_comp(state, Z_FINISH) == -1) - ret = state->err; - if (state->size) { - if (!state->direct) { - (void)deflateEnd(&(state->strm)); - free(state->out); - } - free(state->in); - } - gz_error(state, Z_OK, NULL); - free(state->path); - if (close(state->fd) == -1) - ret = Z_ERRNO; - free(state); - return ret; -} diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@gzwrite.c.blob b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@gzwrite.c.blob deleted file mode 100644 index dbff2575b6285d347dfe308d7e9a14c036f44e10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12553 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 R44+#XUqcV7hdwln_ 15) - return Z_STREAM_ERROR; - strm->msg = Z_NULL; /* in case we return an error */ - if (strm->zalloc == (alloc_func)0) { -#ifdef Z_SOLO - return Z_STREAM_ERROR; -#else - strm->zalloc = zcalloc; - strm->opaque = (voidpf)0; -#endif - } - if (strm->zfree == (free_func)0) -#ifdef Z_SOLO - return Z_STREAM_ERROR; -#else - strm->zfree = zcfree; -#endif - state = (struct inflate_state FAR *)ZALLOC(strm, 1, - sizeof(struct inflate_state)); - if (state == Z_NULL) return Z_MEM_ERROR; - Tracev((stderr, "inflate: allocated\n")); - strm->state = (struct internal_state FAR *)state; - state->dmax = 32768U; - state->wbits = windowBits; - state->wsize = 1U << windowBits; - state->window = window; - state->wnext = 0; - state->whave = 0; - return Z_OK; -} - -/* - Return state with length and distance decoding tables and index sizes set to - fixed code decoding. Normally this returns fixed tables from inffixed.h. - If BUILDFIXED is defined, then instead this routine builds the tables the - first time it's called, and returns those tables the first time and - thereafter. This reduces the size of the code by about 2K bytes, in - exchange for a little execution time. However, BUILDFIXED should not be - used for threaded applications, since the rewriting of the tables and virgin - may not be thread-safe. - */ -local void fixedtables(state) -struct inflate_state FAR *state; -{ -#ifdef BUILDFIXED - static int virgin = 1; - static code *lenfix, *distfix; - static code fixed[544]; - - /* build fixed huffman tables if first call (may not be thread safe) */ - if (virgin) { - unsigned sym, bits; - static code *next; - - /* literal/length table */ - sym = 0; - while (sym < 144) state->lens[sym++] = 8; - while (sym < 256) state->lens[sym++] = 9; - while (sym < 280) state->lens[sym++] = 7; - while (sym < 288) state->lens[sym++] = 8; - next = fixed; - lenfix = next; - bits = 9; - inflate_table(LENS, state->lens, 288, &(next), &(bits), state->work); - - /* distance table */ - sym = 0; - while (sym < 32) state->lens[sym++] = 5; - distfix = next; - bits = 5; - inflate_table(DISTS, state->lens, 32, &(next), &(bits), state->work); - - /* do this just once */ - virgin = 0; - } -#else /* !BUILDFIXED */ -# include "inffixed.h" -#endif /* BUILDFIXED */ - state->lencode = lenfix; - state->lenbits = 9; - state->distcode = distfix; - state->distbits = 5; -} - -/* Macros for inflateBack(): */ - -/* Load returned state from inflate_fast() */ -#define LOAD() \ - do { \ - put = strm->next_out; \ - left = strm->avail_out; \ - next = strm->next_in; \ - have = strm->avail_in; \ - hold = state->hold; \ - bits = state->bits; \ - } while (0) - -/* Set state from registers for inflate_fast() */ -#define RESTORE() \ - do { \ - strm->next_out = put; \ - strm->avail_out = left; \ - strm->next_in = next; \ - strm->avail_in = have; \ - state->hold = hold; \ - state->bits = bits; \ - } while (0) - -/* Clear the input bit accumulator */ -#define INITBITS() \ - do { \ - hold = 0; \ - bits = 0; \ - } while (0) - -/* Assure that some input is available. If input is requested, but denied, - then return a Z_BUF_ERROR from inflateBack(). */ -#define PULL() \ - do { \ - if (have == 0) { \ - have = in(in_desc, &next); \ - if (have == 0) { \ - next = Z_NULL; \ - ret = Z_BUF_ERROR; \ - goto inf_leave; \ - } \ - } \ - } while (0) - -/* Get a byte of input into the bit accumulator, or return from inflateBack() - with an error if there is no input available. */ -#define PULLBYTE() \ - do { \ - PULL(); \ - have--; \ - hold += (unsigned long)(*next++) << bits; \ - bits += 8; \ - } while (0) - -/* Assure that there are at least n bits in the bit accumulator. If there is - not enough available input to do that, then return from inflateBack() with - an error. */ -#define NEEDBITS(n) \ - do { \ - while (bits < (unsigned)(n)) \ - PULLBYTE(); \ - } while (0) - -/* Return the low n bits of the bit accumulator (n < 16) */ -#define BITS(n) \ - ((unsigned)hold & ((1U << (n)) - 1)) - -/* Remove n bits from the bit accumulator */ -#define DROPBITS(n) \ - do { \ - hold >>= (n); \ - bits -= (unsigned)(n); \ - } while (0) - -/* Remove zero to seven bits as needed to go to a byte boundary */ -#define BYTEBITS() \ - do { \ - hold >>= bits & 7; \ - bits -= bits & 7; \ - } while (0) - -/* Assure that some output space is available, by writing out the window - if it's full. If the write fails, return from inflateBack() with a - Z_BUF_ERROR. */ -#define ROOM() \ - do { \ - if (left == 0) { \ - put = state->window; \ - left = state->wsize; \ - state->whave = left; \ - if (out(out_desc, put, left)) { \ - ret = Z_BUF_ERROR; \ - goto inf_leave; \ - } \ - } \ - } while (0) - -/* - strm provides the memory allocation functions and window buffer on input, - and provides information on the unused input on return. For Z_DATA_ERROR - returns, strm will also provide an error message. - - in() and out() are the call-back input and output functions. When - inflateBack() needs more input, it calls in(). When inflateBack() has - filled the window with output, or when it completes with data in the - window, it calls out() to write out the data. The application must not - change the provided input until in() is called again or inflateBack() - returns. The application must not change the window/output buffer until - inflateBack() returns. - - in() and out() are called with a descriptor parameter provided in the - inflateBack() call. This parameter can be a structure that provides the - information required to do the read or write, as well as accumulated - information on the input and output such as totals and check values. - - in() should return zero on failure. out() should return non-zero on - failure. If either in() or out() fails, than inflateBack() returns a - Z_BUF_ERROR. strm->next_in can be checked for Z_NULL to see whether it - was in() or out() that caused in the error. Otherwise, inflateBack() - returns Z_STREAM_END on success, Z_DATA_ERROR for an deflate format - error, or Z_MEM_ERROR if it could not allocate memory for the state. - inflateBack() can also return Z_STREAM_ERROR if the input parameters - are not correct, i.e. strm is Z_NULL or the state was not initialized. - */ -int ZEXPORT inflateBack(strm, in, in_desc, out, out_desc) -z_streamp strm; -in_func in; -void FAR *in_desc; -out_func out; -void FAR *out_desc; -{ - struct inflate_state FAR *state; - z_const unsigned char FAR *next; /* next input */ - unsigned char FAR *put; /* next output */ - unsigned have, left; /* available input and output */ - unsigned long hold; /* bit buffer */ - unsigned bits; /* bits in bit buffer */ - unsigned copy; /* number of stored or match bytes to copy */ - unsigned char FAR *from; /* where to copy match bytes from */ - code here; /* current decoding table entry */ - code last; /* parent table entry */ - unsigned len; /* length to copy for repeats, bits to drop */ - int ret; /* return code */ - static const unsigned short order[19] = /* permutation of code lengths */ - {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15}; - - /* Check that the strm exists and that the state was initialized */ - if (strm == Z_NULL || strm->state == Z_NULL) - return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - - /* Reset the state */ - strm->msg = Z_NULL; - state->mode = TYPE; - state->last = 0; - state->whave = 0; - next = strm->next_in; - have = next != Z_NULL ? strm->avail_in : 0; - hold = 0; - bits = 0; - put = state->window; - left = state->wsize; - - /* Inflate until end of block marked as last */ - for (;;) - switch (state->mode) { - case TYPE: - /* determine and dispatch block type */ - if (state->last) { - BYTEBITS(); - state->mode = DONE; - break; - } - NEEDBITS(3); - state->last = BITS(1); - DROPBITS(1); - switch (BITS(2)) { - case 0: /* stored block */ - Tracev((stderr, "inflate: stored block%s\n", - state->last ? " (last)" : "")); - state->mode = STORED; - break; - case 1: /* fixed block */ - fixedtables(state); - Tracev((stderr, "inflate: fixed codes block%s\n", - state->last ? " (last)" : "")); - state->mode = LEN; /* decode codes */ - break; - case 2: /* dynamic block */ - Tracev((stderr, "inflate: dynamic codes block%s\n", - state->last ? " (last)" : "")); - state->mode = TABLE; - break; - case 3: - strm->msg = (char *)"invalid block type"; - state->mode = BAD; - } - DROPBITS(2); - break; - - case STORED: - /* get and verify stored block length */ - BYTEBITS(); /* go to byte boundary */ - NEEDBITS(32); - if ((hold & 0xffff) != ((hold >> 16) ^ 0xffff)) { - strm->msg = (char *)"invalid stored block lengths"; - state->mode = BAD; - break; - } - state->length = (unsigned)hold & 0xffff; - Tracev((stderr, "inflate: stored length %u\n", - state->length)); - INITBITS(); - - /* copy stored block from input to output */ - while (state->length != 0) { - copy = state->length; - PULL(); - ROOM(); - if (copy > have) copy = have; - if (copy > left) copy = left; - zmemcpy(put, next, copy); - have -= copy; - next += copy; - left -= copy; - put += copy; - state->length -= copy; - } - Tracev((stderr, "inflate: stored end\n")); - state->mode = TYPE; - break; - - case TABLE: - /* get dynamic table entries descriptor */ - NEEDBITS(14); - state->nlen = BITS(5) + 257; - DROPBITS(5); - state->ndist = BITS(5) + 1; - DROPBITS(5); - state->ncode = BITS(4) + 4; - DROPBITS(4); -#ifndef PKZIP_BUG_WORKAROUND - if (state->nlen > 286 || state->ndist > 30) { - strm->msg = (char *)"too many length or distance symbols"; - state->mode = BAD; - break; - } -#endif - Tracev((stderr, "inflate: table sizes ok\n")); - - /* get code length code lengths (not a typo) */ - state->have = 0; - while (state->have < state->ncode) { - NEEDBITS(3); - state->lens[order[state->have++]] = (unsigned short)BITS(3); - DROPBITS(3); - } - while (state->have < 19) - state->lens[order[state->have++]] = 0; - state->next = state->codes; - state->lencode = (code const FAR *)(state->next); - state->lenbits = 7; - ret = inflate_table(CODES, state->lens, 19, &(state->next), - &(state->lenbits), state->work); - if (ret) { - strm->msg = (char *)"invalid code lengths set"; - state->mode = BAD; - break; - } - Tracev((stderr, "inflate: code lengths ok\n")); - - /* get length and distance code code lengths */ - state->have = 0; - while (state->have < state->nlen + state->ndist) { - for (;;) { - here = state->lencode[BITS(state->lenbits)]; - if ((unsigned)(here.bits) <= bits) break; - PULLBYTE(); - } - if (here.val < 16) { - DROPBITS(here.bits); - state->lens[state->have++] = here.val; - } - else { - if (here.val == 16) { - NEEDBITS(here.bits + 2); - DROPBITS(here.bits); - if (state->have == 0) { - strm->msg = (char *)"invalid bit length repeat"; - state->mode = BAD; - break; - } - len = (unsigned)(state->lens[state->have - 1]); - copy = 3 + BITS(2); - DROPBITS(2); - } - else if (here.val == 17) { - NEEDBITS(here.bits + 3); - DROPBITS(here.bits); - len = 0; - copy = 3 + BITS(3); - DROPBITS(3); - } - else { - NEEDBITS(here.bits + 7); - DROPBITS(here.bits); - len = 0; - copy = 11 + BITS(7); - DROPBITS(7); - } - if (state->have + copy > state->nlen + state->ndist) { - strm->msg = (char *)"invalid bit length repeat"; - state->mode = BAD; - break; - } - while (copy--) - state->lens[state->have++] = (unsigned short)len; - } - } - - /* handle error breaks in while */ - if (state->mode == BAD) break; - - /* check for end-of-block code (better have one) */ - if (state->lens[256] == 0) { - strm->msg = (char *)"invalid code -- missing end-of-block"; - state->mode = BAD; - break; - } - - /* build code tables -- note: do not change the lenbits or distbits - values here (9 and 6) without reading the comments in inftrees.h - concerning the ENOUGH constants, which depend on those values */ - state->next = state->codes; - state->lencode = (code const FAR *)(state->next); - state->lenbits = 9; - ret = inflate_table(LENS, state->lens, state->nlen, &(state->next), - &(state->lenbits), state->work); - if (ret) { - strm->msg = (char *)"invalid literal/lengths set"; - state->mode = BAD; - break; - } - state->distcode = (code const FAR *)(state->next); - state->distbits = 6; - ret = inflate_table(DISTS, state->lens + state->nlen, state->ndist, - &(state->next), &(state->distbits), state->work); - if (ret) { - strm->msg = (char *)"invalid distances set"; - state->mode = BAD; - break; - } - Tracev((stderr, "inflate: codes ok\n")); - state->mode = LEN; - - case LEN: - /* use inflate_fast() if we have enough input and output */ - if (have >= 6 && left >= 258) { - RESTORE(); - if (state->whave < state->wsize) - state->whave = state->wsize - left; - inflate_fast(strm, state->wsize); - LOAD(); - break; - } - - /* get a literal, length, or end-of-block code */ - for (;;) { - here = state->lencode[BITS(state->lenbits)]; - if ((unsigned)(here.bits) <= bits) break; - PULLBYTE(); - } - if (here.op && (here.op & 0xf0) == 0) { - last = here; - for (;;) { - here = state->lencode[last.val + - (BITS(last.bits + last.op) >> last.bits)]; - if ((unsigned)(last.bits + here.bits) <= bits) break; - PULLBYTE(); - } - DROPBITS(last.bits); - } - DROPBITS(here.bits); - state->length = (unsigned)here.val; - - /* process literal */ - if (here.op == 0) { - Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? - "inflate: literal '%c'\n" : - "inflate: literal 0x%02x\n", here.val)); - ROOM(); - *put++ = (unsigned char)(state->length); - left--; - state->mode = LEN; - break; - } - - /* process end of block */ - if (here.op & 32) { - Tracevv((stderr, "inflate: end of block\n")); - state->mode = TYPE; - break; - } - - /* invalid code */ - if (here.op & 64) { - strm->msg = (char *)"invalid literal/length code"; - state->mode = BAD; - break; - } - - /* length code -- get extra bits, if any */ - state->extra = (unsigned)(here.op) & 15; - if (state->extra != 0) { - NEEDBITS(state->extra); - state->length += BITS(state->extra); - DROPBITS(state->extra); - } - Tracevv((stderr, "inflate: length %u\n", state->length)); - - /* get distance code */ - for (;;) { - here = state->distcode[BITS(state->distbits)]; - if ((unsigned)(here.bits) <= bits) break; - PULLBYTE(); - } - if ((here.op & 0xf0) == 0) { - last = here; - for (;;) { - here = state->distcode[last.val + - (BITS(last.bits + last.op) >> last.bits)]; - if ((unsigned)(last.bits + here.bits) <= bits) break; - PULLBYTE(); - } - DROPBITS(last.bits); - } - DROPBITS(here.bits); - if (here.op & 64) { - strm->msg = (char *)"invalid distance code"; - state->mode = BAD; - break; - } - state->offset = (unsigned)here.val; - - /* get distance extra bits, if any */ - state->extra = (unsigned)(here.op) & 15; - if (state->extra != 0) { - NEEDBITS(state->extra); - state->offset += BITS(state->extra); - DROPBITS(state->extra); - } - if (state->offset > state->wsize - (state->whave < state->wsize ? - left : 0)) { - strm->msg = (char *)"invalid distance too far back"; - state->mode = BAD; - break; - } - Tracevv((stderr, "inflate: distance %u\n", state->offset)); - - /* copy match from window to output */ - do { - ROOM(); - copy = state->wsize - state->offset; - if (copy < left) { - from = put + copy; - copy = left - copy; - } - else { - from = put - state->offset; - copy = left; - } - if (copy > state->length) copy = state->length; - state->length -= copy; - left -= copy; - do { - *put++ = *from++; - } while (--copy); - } while (state->length != 0); - break; - - case DONE: - /* inflate stream terminated properly -- write leftover output */ - ret = Z_STREAM_END; - if (left < state->wsize) { - if (out(out_desc, state->window, state->wsize - left)) - ret = Z_BUF_ERROR; - } - goto inf_leave; - - case BAD: - ret = Z_DATA_ERROR; - goto inf_leave; - - default: /* can't happen, but makes compilers happy */ - ret = Z_STREAM_ERROR; - goto inf_leave; - } - - /* Return unused input */ - inf_leave: - strm->next_in = next; - strm->avail_in = have; - return ret; -} - -int ZEXPORT inflateBackEnd(strm) -z_streamp strm; -{ - if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0) - return Z_STREAM_ERROR; - ZFREE(strm, strm->state); - strm->state = Z_NULL; - Tracev((stderr, "inflate: end\n")); - return Z_OK; -} diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@infback.c.blob b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@infback.c.blob deleted file mode 100644 index 2ed26f593b05c8f87d5cc42074764e144ad132e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18758 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 diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inffast.c b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inffast.c deleted file mode 100644 index bda59ceb6..000000000 --- a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inffast.c +++ /dev/null @@ -1,340 +0,0 @@ -/* inffast.c -- fast decoding - * Copyright (C) 1995-2008, 2010, 2013 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -#include "zutil.h" -#include "inftrees.h" -#include "inflate.h" -#include "inffast.h" - -#ifndef ASMINF - -/* Allow machine dependent optimization for post-increment or pre-increment. - Based on testing to date, - Pre-increment preferred for: - - PowerPC G3 (Adler) - - MIPS R5000 (Randers-Pehrson) - Post-increment preferred for: - - none - No measurable difference: - - Pentium III (Anderson) - - M68060 (Nikl) - */ -#ifdef POSTINC -# define OFF 0 -# define PUP(a) *(a)++ -#else -# define OFF 1 -# define PUP(a) *++(a) -#endif - -/* - Decode literal, length, and distance codes and write out the resulting - literal and match bytes until either not enough input or output is - available, an end-of-block is encountered, or a data error is encountered. - When large enough input and output buffers are supplied to inflate(), for - example, a 16K input buffer and a 64K output buffer, more than 95% of the - inflate execution time is spent in this routine. - - Entry assumptions: - - state->mode == LEN - strm->avail_in >= 6 - strm->avail_out >= 258 - start >= strm->avail_out - state->bits < 8 - - On return, state->mode is one of: - - LEN -- ran out of enough output space or enough available input - TYPE -- reached end of block code, inflate() to interpret next block - BAD -- error in block data - - Notes: - - - The maximum input bits used by a length/distance pair is 15 bits for the - length code, 5 bits for the length extra, 15 bits for the distance code, - and 13 bits for the distance extra. This totals 48 bits, or six bytes. - Therefore if strm->avail_in >= 6, then there is enough input to avoid - checking for available input while decoding. - - - The maximum bytes that a single length/distance pair can output is 258 - bytes, which is the maximum length that can be coded. inflate_fast() - requires strm->avail_out >= 258 for each loop to avoid checking for - output space. - */ -void ZLIB_INTERNAL inflate_fast(strm, start) -z_streamp strm; -unsigned start; /* inflate()'s starting value for strm->avail_out */ -{ - struct inflate_state FAR *state; - z_const unsigned char FAR *in; /* local strm->next_in */ - z_const unsigned char FAR *last; /* have enough input while in < last */ - unsigned char FAR *out; /* local strm->next_out */ - unsigned char FAR *beg; /* inflate()'s initial strm->next_out */ - unsigned char FAR *end; /* while out < end, enough space available */ -#ifdef INFLATE_STRICT - unsigned dmax; /* maximum distance from zlib header */ -#endif - unsigned wsize; /* window size or zero if not using window */ - unsigned whave; /* valid bytes in the window */ - unsigned wnext; /* window write index */ - unsigned char FAR *window; /* allocated sliding window, if wsize != 0 */ - unsigned long hold; /* local strm->hold */ - unsigned bits; /* local strm->bits */ - code const FAR *lcode; /* local strm->lencode */ - code const FAR *dcode; /* local strm->distcode */ - unsigned lmask; /* mask for first level of length codes */ - unsigned dmask; /* mask for first level of distance codes */ - code here; /* retrieved table entry */ - unsigned op; /* code bits, operation, extra bits, or */ - /* window position, window bytes to copy */ - unsigned len; /* match length, unused bytes */ - unsigned dist; /* match distance */ - unsigned char FAR *from; /* where to copy match from */ - - /* copy state to local variables */ - state = (struct inflate_state FAR *)strm->state; - in = strm->next_in - OFF; - last = in + (strm->avail_in - 5); - out = strm->next_out - OFF; - beg = out - (start - strm->avail_out); - end = out + (strm->avail_out - 257); -#ifdef INFLATE_STRICT - dmax = state->dmax; -#endif - wsize = state->wsize; - whave = state->whave; - wnext = state->wnext; - window = state->window; - hold = state->hold; - bits = state->bits; - lcode = state->lencode; - dcode = state->distcode; - lmask = (1U << state->lenbits) - 1; - dmask = (1U << state->distbits) - 1; - - /* decode literals and length/distances until end-of-block or not enough - input data or output space */ - do { - if (bits < 15) { - hold += (unsigned long)(PUP(in)) << bits; - bits += 8; - hold += (unsigned long)(PUP(in)) << bits; - bits += 8; - } - here = lcode[hold & lmask]; - dolen: - op = (unsigned)(here.bits); - hold >>= op; - bits -= op; - op = (unsigned)(here.op); - if (op == 0) { /* literal */ - Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? - "inflate: literal '%c'\n" : - "inflate: literal 0x%02x\n", here.val)); - PUP(out) = (unsigned char)(here.val); - } - else if (op & 16) { /* length base */ - len = (unsigned)(here.val); - op &= 15; /* number of extra bits */ - if (op) { - if (bits < op) { - hold += (unsigned long)(PUP(in)) << bits; - bits += 8; - } - len += (unsigned)hold & ((1U << op) - 1); - hold >>= op; - bits -= op; - } - Tracevv((stderr, "inflate: length %u\n", len)); - if (bits < 15) { - hold += (unsigned long)(PUP(in)) << bits; - bits += 8; - hold += (unsigned long)(PUP(in)) << bits; - bits += 8; - } - here = dcode[hold & dmask]; - dodist: - op = (unsigned)(here.bits); - hold >>= op; - bits -= op; - op = (unsigned)(here.op); - if (op & 16) { /* distance base */ - dist = (unsigned)(here.val); - op &= 15; /* number of extra bits */ - if (bits < op) { - hold += (unsigned long)(PUP(in)) << bits; - bits += 8; - if (bits < op) { - hold += (unsigned long)(PUP(in)) << bits; - bits += 8; - } - } - dist += (unsigned)hold & ((1U << op) - 1); -#ifdef INFLATE_STRICT - if (dist > dmax) { - strm->msg = (char *)"invalid distance too far back"; - state->mode = BAD; - break; - } -#endif - hold >>= op; - bits -= op; - Tracevv((stderr, "inflate: distance %u\n", dist)); - op = (unsigned)(out - beg); /* max distance in output */ - if (dist > op) { /* see if copy from window */ - op = dist - op; /* distance back in window */ - if (op > whave) { - if (state->sane) { - strm->msg = - (char *)"invalid distance too far back"; - state->mode = BAD; - break; - } -#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR - if (len <= op - whave) { - do { - PUP(out) = 0; - } while (--len); - continue; - } - len -= op - whave; - do { - PUP(out) = 0; - } while (--op > whave); - if (op == 0) { - from = out - dist; - do { - PUP(out) = PUP(from); - } while (--len); - continue; - } -#endif - } - from = window - OFF; - if (wnext == 0) { /* very common case */ - from += wsize - op; - if (op < len) { /* some from window */ - len -= op; - do { - PUP(out) = PUP(from); - } while (--op); - from = out - dist; /* rest from output */ - } - } - else if (wnext < op) { /* wrap around window */ - from += wsize + wnext - op; - op -= wnext; - if (op < len) { /* some from end of window */ - len -= op; - do { - PUP(out) = PUP(from); - } while (--op); - from = window - OFF; - if (wnext < len) { /* some from start of window */ - op = wnext; - len -= op; - do { - PUP(out) = PUP(from); - } while (--op); - from = out - dist; /* rest from output */ - } - } - } - else { /* contiguous in window */ - from += wnext - op; - if (op < len) { /* some from window */ - len -= op; - do { - PUP(out) = PUP(from); - } while (--op); - from = out - dist; /* rest from output */ - } - } - while (len > 2) { - PUP(out) = PUP(from); - PUP(out) = PUP(from); - PUP(out) = PUP(from); - len -= 3; - } - if (len) { - PUP(out) = PUP(from); - if (len > 1) - PUP(out) = PUP(from); - } - } - else { - from = out - dist; /* copy direct from output */ - do { /* minimum length is three */ - PUP(out) = PUP(from); - PUP(out) = PUP(from); - PUP(out) = PUP(from); - len -= 3; - } while (len > 2); - if (len) { - PUP(out) = PUP(from); - if (len > 1) - PUP(out) = PUP(from); - } - } - } - else if ((op & 64) == 0) { /* 2nd level distance code */ - here = dcode[here.val + (hold & ((1U << op) - 1))]; - goto dodist; - } - else { - strm->msg = (char *)"invalid distance code"; - state->mode = BAD; - break; - } - } - else if ((op & 64) == 0) { /* 2nd level length code */ - here = lcode[here.val + (hold & ((1U << op) - 1))]; - goto dolen; - } - else if (op & 32) { /* end-of-block */ - Tracevv((stderr, "inflate: end of block\n")); - state->mode = TYPE; - break; - } - else { - strm->msg = (char *)"invalid literal/length code"; - state->mode = BAD; - break; - } - } while (in < last && out < end); - - /* return unused bytes (on entry, bits < 8, so in won't go too far back) */ - len = bits >> 3; - in -= len; - bits -= len << 3; - hold &= (1U << bits) - 1; - - /* update state and return */ - strm->next_in = in + OFF; - strm->next_out = out + OFF; - strm->avail_in = (unsigned)(in < last ? 5 + (last - in) : 5 - (in - last)); - strm->avail_out = (unsigned)(out < end ? - 257 + (end - out) : 257 - (out - end)); - state->hold = hold; - state->bits = bits; - return; -} - -/* - inflate_fast() speedups that turned out slower (on a PowerPC G3 750CXe): - - Using bit fields for code structure - - Different op definition to avoid & for extra bits (do & for table bits) - - Three separate decoding do-loops for direct, window, and wnext == 0 - - Special case for distance > 1 copies to do overlapped load and store copy - - Explicit branch predictions (based on measured branch probabilities) - - Deferring match copy and interspersed it with decoding subsequent codes - - Swapping literal/length else - - Swapping window/direct else - - Larger unrolled copy loops (three is about right) - - Moving len -= 3 statement into middle of loop - */ - -#endif /* !ASMINF */ diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inffast.c.blob b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inffast.c.blob deleted file mode 100644 index ebe6815bdb69b204e5d6aff7470d9f90017cd269..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7599 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 Y>mNQc&_E^> zVIc*oNs=a17>%kjq9|d45`|+!q|lO6jn0adpvoBtf?Se-;x%VI#6;Y~v_mlr2iB!3Cd>dlKzSZ^M^JgwL4 z^663gq#kx#?bBK=-)%H&t!}4McKpUBdDu`Lb(x6dSXauZ(eG!FNy5{JZff=Go}8c# zlqoM&V?(1|sd$7YmGXe%h$`*)al~+6NNpI=K7n$o1I))b(+(Ot=nZpFtG5gPA_uk4 zt9yU}gH@lJgUM%=uu}Gi#2-&L?k9Rgz+htSBtvXik8x(Q=@Ok7Dl`KSTA!5Tj7Gkp z$&h11{UKJGi9YybLT6e@X%;b^TSndI4gzo?01!Hs)iZoWkJ%kWPXQf7Os$CWK=v-d zShU2L)F|W|_MN8jI)AS%$K#l`|CD z-zyFs3PWuoz-c(bAv~c|*S&I3E(gy)-QRsN-|>j36i6b;W6D$haB?CVhhs9pDm3%#EZ5NNny#fVG%8|o zyo$~U7%A4vgW)Uz^v&fqPQ9jBk-}<0=;z$k4vz}XBUgXeH$DJ}S*O@leFu_F0%?tN1 zBdiVp=%>hJL%M~^Q>8?{v+V#V!JJF7{3zsXZV5}IJg?!lx!fo^P0tG8uyMSz(97`w zh~iA&^6fq9T236d6uAP!TdE4fzDS9M@n*W6-7^gF67V zH`ZLFShZIOMYX*#c+d|NR$xg$AllVw?-FKZ&qxmj7}2MJceLQ62t*2=*&sZ7u?+?R zT$7#0uzmNb`(>%*I&KXX9^Jed|MmTEzkl)6elGq>?x9;dEZsc*6#I#O!LYaeLW^}*vaLEsD%*AD2U((dFYi6)@KAp4{QIsId~_TKja1AKkxHV5 zqDjo8HON;XLot_(Y7$whq)~zy)LxEwzThws=EX4t-UvQGTt)*zuRZGggc76CfJ;OL zkwcdX$8|%^CrrCBWIl!gB$ZG@<+zP=zlr^Br`Pj4?KkiY4;MJ-1laEcr=4!Q6`bK- z|4p|QT%7inzxSH{Ww!~_aQ~zmz?A%#M)TF>SvDoV!R=;n*~87?JvDd>$-)iE92XjM zS1Y=&UFJ@ezJ|_SsF_i#bb7pth6f23q4V=DA*I{@23#WYMsr_T$(j+c6!^hw4(3v= zpoJLW)~k4j^=bvaQ9`vv#%ky(%k!b}`r}HT{b0LEEEh#}nLTBemD>|KtS)yP!r0gl zM2aT_!&esY_UOU=l>r`^iMA-@tM~2*6IH;uws;ElLMM0Nl_$LN(S=e1oVy3N)tXnU zc`sfbR*s5}CsZfk5OH2p4tY5^A&c;oj)=y#KxcD=;WuojfU(sfkD_g2CSXUA*<6g^ zF{rPYw>R{L5lu%0^5q~bG)2`o{Z<8=xiTb|a5+nJ0e@?e#YwZpMqDZ^W-%S7I0tTR zOMbs*|DQd+*a+E+&5CjCSS8b1svTIxnOEH6b+Z!YM<|X7)%j9u9{klwp3tJxf{ysvWRvpVi%zC3JU z9fHpRTig1LgSHT&Ice#JorNAxZGC`T^?Jti|u z1Ru(k<7DUczaAf3AegPHqR23-@^_-|BMsiDXreWfG~L$vVc~nVet4@~QU?DOAAb4a z@5g_Ac>iMx4{M(= 7 to >= 6 - * - Remove unnecessary second byte pull from length extra in inffast.c - * - Unroll direct copy to three copies per loop in inffast.c - * - * 1.2.beta2 4 Dec 2002 - * - Change external routine names to reduce potential conflicts - * - Correct filename to inffixed.h for fixed tables in inflate.c - * - Make hbuf[] unsigned char to match parameter type in inflate.c - * - Change strm->next_out[-state->offset] to *(strm->next_out - state->offset) - * to avoid negation problem on Alphas (64 bit) in inflate.c - * - * 1.2.beta3 22 Dec 2002 - * - Add comments on state->bits assertion in inffast.c - * - Add comments on op field in inftrees.h - * - Fix bug in reuse of allocated window after inflateReset() - * - Remove bit fields--back to byte structure for speed - * - Remove distance extra == 0 check in inflate_fast()--only helps for lengths - * - Change post-increments to pre-increments in inflate_fast(), PPC biased? - * - Add compile time option, POSTINC, to use post-increments instead (Intel?) - * - Make MATCH copy in inflate() much faster for when inflate_fast() not used - * - Use local copies of stream next and avail values, as well as local bit - * buffer and bit count in inflate()--for speed when inflate_fast() not used - * - * 1.2.beta4 1 Jan 2003 - * - Split ptr - 257 statements in inflate_table() to avoid compiler warnings - * - Move a comment on output buffer sizes from inffast.c to inflate.c - * - Add comments in inffast.c to introduce the inflate_fast() routine - * - Rearrange window copies in inflate_fast() for speed and simplification - * - Unroll last copy for window match in inflate_fast() - * - Use local copies of window variables in inflate_fast() for speed - * - Pull out common wnext == 0 case for speed in inflate_fast() - * - Make op and len in inflate_fast() unsigned for consistency - * - Add FAR to lcode and dcode declarations in inflate_fast() - * - Simplified bad distance check in inflate_fast() - * - Added inflateBackInit(), inflateBack(), and inflateBackEnd() in new - * source file infback.c to provide a call-back interface to inflate for - * programs like gzip and unzip -- uses window as output buffer to avoid - * window copying - * - * 1.2.beta5 1 Jan 2003 - * - Improved inflateBack() interface to allow the caller to provide initial - * input in strm. - * - Fixed stored blocks bug in inflateBack() - * - * 1.2.beta6 4 Jan 2003 - * - Added comments in inffast.c on effectiveness of POSTINC - * - Typecasting all around to reduce compiler warnings - * - Changed loops from while (1) or do {} while (1) to for (;;), again to - * make compilers happy - * - Changed type of window in inflateBackInit() to unsigned char * - * - * 1.2.beta7 27 Jan 2003 - * - Changed many types to unsigned or unsigned short to avoid warnings - * - Added inflateCopy() function - * - * 1.2.0 9 Mar 2003 - * - Changed inflateBack() interface to provide separate opaque descriptors - * for the in() and out() functions - * - Changed inflateBack() argument and in_func typedef to swap the length - * and buffer address return values for the input function - * - Check next_in and next_out for Z_NULL on entry to inflate() - * - * The history for versions after 1.2.0 are in ChangeLog in zlib distribution. - */ - -#include "zutil.h" -#include "inftrees.h" -#include "inflate.h" -#include "inffast.h" - -#ifdef MAKEFIXED -# ifndef BUILDFIXED -# define BUILDFIXED -# endif -#endif - -/* function prototypes */ -local void fixedtables OF((struct inflate_state FAR *state)); -local int updatewindow OF((z_streamp strm, const unsigned char FAR *end, - unsigned copy)); -#ifdef BUILDFIXED - void makefixed OF((void)); -#endif -local unsigned syncsearch OF((unsigned FAR *have, const unsigned char FAR *buf, - unsigned len)); - -int ZEXPORT inflateResetKeep(strm) -z_streamp strm; -{ - struct inflate_state FAR *state; - - if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - strm->total_in = strm->total_out = state->total = 0; - strm->msg = Z_NULL; - if (state->wrap) /* to support ill-conceived Java test suite */ - strm->adler = state->wrap & 1; - state->mode = HEAD; - state->last = 0; - state->havedict = 0; - state->dmax = 32768U; - state->head = Z_NULL; - state->hold = 0; - state->bits = 0; - state->lencode = state->distcode = state->next = state->codes; - state->sane = 1; - state->back = -1; - Tracev((stderr, "inflate: reset\n")); - return Z_OK; -} - -int ZEXPORT inflateReset(strm) -z_streamp strm; -{ - struct inflate_state FAR *state; - - if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - state->wsize = 0; - state->whave = 0; - state->wnext = 0; - return inflateResetKeep(strm); -} - -int ZEXPORT inflateReset2(strm, windowBits) -z_streamp strm; -int windowBits; -{ - int wrap; - struct inflate_state FAR *state; - - /* get the state */ - if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - - /* extract wrap request from windowBits parameter */ - if (windowBits < 0) { - wrap = 0; - windowBits = -windowBits; - } - else { - wrap = (windowBits >> 4) + 1; -#ifdef GUNZIP - if (windowBits < 48) - windowBits &= 15; -#endif - } - - /* set number of window bits, free window if different */ - if (windowBits && (windowBits < 8 || windowBits > 15)) - return Z_STREAM_ERROR; - if (state->window != Z_NULL && state->wbits != (unsigned)windowBits) { - ZFREE(strm, state->window); - state->window = Z_NULL; - } - - /* update state and reset the rest of it */ - state->wrap = wrap; - state->wbits = (unsigned)windowBits; - return inflateReset(strm); -} - -int ZEXPORT inflateInit2_(strm, windowBits, version, stream_size) -z_streamp strm; -int windowBits; -const char *version; -int stream_size; -{ - int ret; - struct inflate_state FAR *state; - - if (version == Z_NULL || version[0] != ZLIB_VERSION[0] || - stream_size != (int)(sizeof(z_stream))) - return Z_VERSION_ERROR; - if (strm == Z_NULL) return Z_STREAM_ERROR; - strm->msg = Z_NULL; /* in case we return an error */ - if (strm->zalloc == (alloc_func)0) { -#ifdef Z_SOLO - return Z_STREAM_ERROR; -#else - strm->zalloc = zcalloc; - strm->opaque = (voidpf)0; -#endif - } - if (strm->zfree == (free_func)0) -#ifdef Z_SOLO - return Z_STREAM_ERROR; -#else - strm->zfree = zcfree; -#endif - state = (struct inflate_state FAR *) - ZALLOC(strm, 1, sizeof(struct inflate_state)); - if (state == Z_NULL) return Z_MEM_ERROR; - Tracev((stderr, "inflate: allocated\n")); - strm->state = (struct internal_state FAR *)state; - state->window = Z_NULL; - ret = inflateReset2(strm, windowBits); - if (ret != Z_OK) { - ZFREE(strm, state); - strm->state = Z_NULL; - } - return ret; -} - -int ZEXPORT inflateInit_(strm, version, stream_size) -z_streamp strm; -const char *version; -int stream_size; -{ - return inflateInit2_(strm, DEF_WBITS, version, stream_size); -} - -int ZEXPORT inflatePrime(strm, bits, value) -z_streamp strm; -int bits; -int value; -{ - struct inflate_state FAR *state; - - if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - if (bits < 0) { - state->hold = 0; - state->bits = 0; - return Z_OK; - } - if (bits > 16 || state->bits + bits > 32) return Z_STREAM_ERROR; - value &= (1L << bits) - 1; - state->hold += value << state->bits; - state->bits += bits; - return Z_OK; -} - -/* - Return state with length and distance decoding tables and index sizes set to - fixed code decoding. Normally this returns fixed tables from inffixed.h. - If BUILDFIXED is defined, then instead this routine builds the tables the - first time it's called, and returns those tables the first time and - thereafter. This reduces the size of the code by about 2K bytes, in - exchange for a little execution time. However, BUILDFIXED should not be - used for threaded applications, since the rewriting of the tables and virgin - may not be thread-safe. - */ -local void fixedtables(state) -struct inflate_state FAR *state; -{ -#ifdef BUILDFIXED - static int virgin = 1; - static code *lenfix, *distfix; - static code fixed[544]; - - /* build fixed huffman tables if first call (may not be thread safe) */ - if (virgin) { - unsigned sym, bits; - static code *next; - - /* literal/length table */ - sym = 0; - while (sym < 144) state->lens[sym++] = 8; - while (sym < 256) state->lens[sym++] = 9; - while (sym < 280) state->lens[sym++] = 7; - while (sym < 288) state->lens[sym++] = 8; - next = fixed; - lenfix = next; - bits = 9; - inflate_table(LENS, state->lens, 288, &(next), &(bits), state->work); - - /* distance table */ - sym = 0; - while (sym < 32) state->lens[sym++] = 5; - distfix = next; - bits = 5; - inflate_table(DISTS, state->lens, 32, &(next), &(bits), state->work); - - /* do this just once */ - virgin = 0; - } -#else /* !BUILDFIXED */ -# include "inffixed.h" -#endif /* BUILDFIXED */ - state->lencode = lenfix; - state->lenbits = 9; - state->distcode = distfix; - state->distbits = 5; -} - -#ifdef MAKEFIXED -#include - -/* - Write out the inffixed.h that is #include'd above. Defining MAKEFIXED also - defines BUILDFIXED, so the tables are built on the fly. makefixed() writes - those tables to stdout, which would be piped to inffixed.h. A small program - can simply call makefixed to do this: - - void makefixed(void); - - int main(void) - { - makefixed(); - return 0; - } - - Then that can be linked with zlib built with MAKEFIXED defined and run: - - a.out > inffixed.h - */ -void makefixed() -{ - unsigned low, size; - struct inflate_state state; - - fixedtables(&state); - puts(" /* inffixed.h -- table for decoding fixed codes"); - puts(" * Generated automatically by makefixed()."); - puts(" */"); - puts(""); - puts(" /* WARNING: this file should *not* be used by applications."); - puts(" It is part of the implementation of this library and is"); - puts(" subject to change. Applications should only use zlib.h."); - puts(" */"); - puts(""); - size = 1U << 9; - printf(" static const code lenfix[%u] = {", size); - low = 0; - for (;;) { - if ((low % 7) == 0) printf("\n "); - printf("{%u,%u,%d}", (low & 127) == 99 ? 64 : state.lencode[low].op, - state.lencode[low].bits, state.lencode[low].val); - if (++low == size) break; - putchar(','); - } - puts("\n };"); - size = 1U << 5; - printf("\n static const code distfix[%u] = {", size); - low = 0; - for (;;) { - if ((low % 6) == 0) printf("\n "); - printf("{%u,%u,%d}", state.distcode[low].op, state.distcode[low].bits, - state.distcode[low].val); - if (++low == size) break; - putchar(','); - } - puts("\n };"); -} -#endif /* MAKEFIXED */ - -/* - Update the window with the last wsize (normally 32K) bytes written before - returning. If window does not exist yet, create it. This is only called - when a window is already in use, or when output has been written during this - inflate call, but the end of the deflate stream has not been reached yet. - It is also called to create a window for dictionary data when a dictionary - is loaded. - - Providing output buffers larger than 32K to inflate() should provide a speed - advantage, since only the last 32K of output is copied to the sliding window - upon return from inflate(), and since all distances after the first 32K of - output will fall in the output data, making match copies simpler and faster. - The advantage may be dependent on the size of the processor's data caches. - */ -local int updatewindow(strm, end, copy) -z_streamp strm; -const Bytef *end; -unsigned copy; -{ - struct inflate_state FAR *state; - unsigned dist; - - state = (struct inflate_state FAR *)strm->state; - - /* if it hasn't been done already, allocate space for the window */ - if (state->window == Z_NULL) { - state->window = (unsigned char FAR *) - ZALLOC(strm, 1U << state->wbits, - sizeof(unsigned char)); - if (state->window == Z_NULL) return 1; - } - - /* if window not in use yet, initialize */ - if (state->wsize == 0) { - state->wsize = 1U << state->wbits; - state->wnext = 0; - state->whave = 0; - } - - /* copy state->wsize or less output bytes into the circular window */ - if (copy >= state->wsize) { - zmemcpy(state->window, end - state->wsize, state->wsize); - state->wnext = 0; - state->whave = state->wsize; - } - else { - dist = state->wsize - state->wnext; - if (dist > copy) dist = copy; - zmemcpy(state->window + state->wnext, end - copy, dist); - copy -= dist; - if (copy) { - zmemcpy(state->window, end - copy, copy); - state->wnext = copy; - state->whave = state->wsize; - } - else { - state->wnext += dist; - if (state->wnext == state->wsize) state->wnext = 0; - if (state->whave < state->wsize) state->whave += dist; - } - } - return 0; -} - -/* Macros for inflate(): */ - -/* check function to use adler32() for zlib or crc32() for gzip */ -#ifdef GUNZIP -# define UPDATE(check, buf, len) \ - (state->flags ? crc32(check, buf, len) : adler32(check, buf, len)) -#else -# define UPDATE(check, buf, len) adler32(check, buf, len) -#endif - -/* check macros for header crc */ -#ifdef GUNZIP -# define CRC2(check, word) \ - do { \ - hbuf[0] = (unsigned char)(word); \ - hbuf[1] = (unsigned char)((word) >> 8); \ - check = crc32(check, hbuf, 2); \ - } while (0) - -# define CRC4(check, word) \ - do { \ - hbuf[0] = (unsigned char)(word); \ - hbuf[1] = (unsigned char)((word) >> 8); \ - hbuf[2] = (unsigned char)((word) >> 16); \ - hbuf[3] = (unsigned char)((word) >> 24); \ - check = crc32(check, hbuf, 4); \ - } while (0) -#endif - -/* Load registers with state in inflate() for speed */ -#define LOAD() \ - do { \ - put = strm->next_out; \ - left = strm->avail_out; \ - next = strm->next_in; \ - have = strm->avail_in; \ - hold = state->hold; \ - bits = state->bits; \ - } while (0) - -/* Restore state from registers in inflate() */ -#define RESTORE() \ - do { \ - strm->next_out = put; \ - strm->avail_out = left; \ - strm->next_in = next; \ - strm->avail_in = have; \ - state->hold = hold; \ - state->bits = bits; \ - } while (0) - -/* Clear the input bit accumulator */ -#define INITBITS() \ - do { \ - hold = 0; \ - bits = 0; \ - } while (0) - -/* Get a byte of input into the bit accumulator, or return from inflate() - if there is no input available. */ -#define PULLBYTE() \ - do { \ - if (have == 0) goto inf_leave; \ - have--; \ - hold += (unsigned long)(*next++) << bits; \ - bits += 8; \ - } while (0) - -/* Assure that there are at least n bits in the bit accumulator. If there is - not enough available input to do that, then return from inflate(). */ -#define NEEDBITS(n) \ - do { \ - while (bits < (unsigned)(n)) \ - PULLBYTE(); \ - } while (0) - -/* Return the low n bits of the bit accumulator (n < 16) */ -#define BITS(n) \ - ((unsigned)hold & ((1U << (n)) - 1)) - -/* Remove n bits from the bit accumulator */ -#define DROPBITS(n) \ - do { \ - hold >>= (n); \ - bits -= (unsigned)(n); \ - } while (0) - -/* Remove zero to seven bits as needed to go to a byte boundary */ -#define BYTEBITS() \ - do { \ - hold >>= bits & 7; \ - bits -= bits & 7; \ - } while (0) - -/* - inflate() uses a state machine to process as much input data and generate as - much output data as possible before returning. The state machine is - structured roughly as follows: - - for (;;) switch (state) { - ... - case STATEn: - if (not enough input data or output space to make progress) - return; - ... make progress ... - state = STATEm; - break; - ... - } - - so when inflate() is called again, the same case is attempted again, and - if the appropriate resources are provided, the machine proceeds to the - next state. The NEEDBITS() macro is usually the way the state evaluates - whether it can proceed or should return. NEEDBITS() does the return if - the requested bits are not available. The typical use of the BITS macros - is: - - NEEDBITS(n); - ... do something with BITS(n) ... - DROPBITS(n); - - where NEEDBITS(n) either returns from inflate() if there isn't enough - input left to load n bits into the accumulator, or it continues. BITS(n) - gives the low n bits in the accumulator. When done, DROPBITS(n) drops - the low n bits off the accumulator. INITBITS() clears the accumulator - and sets the number of available bits to zero. BYTEBITS() discards just - enough bits to put the accumulator on a byte boundary. After BYTEBITS() - and a NEEDBITS(8), then BITS(8) would return the next byte in the stream. - - NEEDBITS(n) uses PULLBYTE() to get an available byte of input, or to return - if there is no input available. The decoding of variable length codes uses - PULLBYTE() directly in order to pull just enough bytes to decode the next - code, and no more. - - Some states loop until they get enough input, making sure that enough - state information is maintained to continue the loop where it left off - if NEEDBITS() returns in the loop. For example, want, need, and keep - would all have to actually be part of the saved state in case NEEDBITS() - returns: - - case STATEw: - while (want < need) { - NEEDBITS(n); - keep[want++] = BITS(n); - DROPBITS(n); - } - state = STATEx; - case STATEx: - - As shown above, if the next state is also the next case, then the break - is omitted. - - A state may also return if there is not enough output space available to - complete that state. Those states are copying stored data, writing a - literal byte, and copying a matching string. - - When returning, a "goto inf_leave" is used to update the total counters, - update the check value, and determine whether any progress has been made - during that inflate() call in order to return the proper return code. - Progress is defined as a change in either strm->avail_in or strm->avail_out. - When there is a window, goto inf_leave will update the window with the last - output written. If a goto inf_leave occurs in the middle of decompression - and there is no window currently, goto inf_leave will create one and copy - output to the window for the next call of inflate(). - - In this implementation, the flush parameter of inflate() only affects the - return code (per zlib.h). inflate() always writes as much as possible to - strm->next_out, given the space available and the provided input--the effect - documented in zlib.h of Z_SYNC_FLUSH. Furthermore, inflate() always defers - the allocation of and copying into a sliding window until necessary, which - provides the effect documented in zlib.h for Z_FINISH when the entire input - stream available. So the only thing the flush parameter actually does is: - when flush is set to Z_FINISH, inflate() cannot return Z_OK. Instead it - will return Z_BUF_ERROR if it has not reached the end of the stream. - */ - -int ZEXPORT inflate(strm, flush) -z_streamp strm; -int flush; -{ - struct inflate_state FAR *state; - z_const unsigned char FAR *next; /* next input */ - unsigned char FAR *put; /* next output */ - unsigned have, left; /* available input and output */ - unsigned long hold; /* bit buffer */ - unsigned bits; /* bits in bit buffer */ - unsigned in, out; /* save starting available input and output */ - unsigned copy; /* number of stored or match bytes to copy */ - unsigned char FAR *from; /* where to copy match bytes from */ - code here; /* current decoding table entry */ - code last; /* parent table entry */ - unsigned len; /* length to copy for repeats, bits to drop */ - int ret; /* return code */ -#ifdef GUNZIP - unsigned char hbuf[4]; /* buffer for gzip header crc calculation */ -#endif - static const unsigned short order[19] = /* permutation of code lengths */ - {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15}; - - if (strm == Z_NULL || strm->state == Z_NULL || strm->next_out == Z_NULL || - (strm->next_in == Z_NULL && strm->avail_in != 0)) - return Z_STREAM_ERROR; - - state = (struct inflate_state FAR *)strm->state; - if (state->mode == TYPE) state->mode = TYPEDO; /* skip check */ - LOAD(); - in = have; - out = left; - ret = Z_OK; - for (;;) - switch (state->mode) { - case HEAD: - if (state->wrap == 0) { - state->mode = TYPEDO; - break; - } - NEEDBITS(16); -#ifdef GUNZIP - if ((state->wrap & 2) && hold == 0x8b1f) { /* gzip header */ - state->check = crc32(0L, Z_NULL, 0); - CRC2(state->check, hold); - INITBITS(); - state->mode = FLAGS; - break; - } - state->flags = 0; /* expect zlib header */ - if (state->head != Z_NULL) - state->head->done = -1; - if (!(state->wrap & 1) || /* check if zlib header allowed */ -#else - if ( -#endif - ((BITS(8) << 8) + (hold >> 8)) % 31) { - strm->msg = (char *)"incorrect header check"; - state->mode = BAD; - break; - } - if (BITS(4) != Z_DEFLATED) { - strm->msg = (char *)"unknown compression method"; - state->mode = BAD; - break; - } - DROPBITS(4); - len = BITS(4) + 8; - if (state->wbits == 0) - state->wbits = len; - else if (len > state->wbits) { - strm->msg = (char *)"invalid window size"; - state->mode = BAD; - break; - } - state->dmax = 1U << len; - Tracev((stderr, "inflate: zlib header ok\n")); - strm->adler = state->check = adler32(0L, Z_NULL, 0); - state->mode = hold & 0x200 ? DICTID : TYPE; - INITBITS(); - break; -#ifdef GUNZIP - case FLAGS: - NEEDBITS(16); - state->flags = (int)(hold); - if ((state->flags & 0xff) != Z_DEFLATED) { - strm->msg = (char *)"unknown compression method"; - state->mode = BAD; - break; - } - if (state->flags & 0xe000) { - strm->msg = (char *)"unknown header flags set"; - state->mode = BAD; - break; - } - if (state->head != Z_NULL) - state->head->text = (int)((hold >> 8) & 1); - if (state->flags & 0x0200) CRC2(state->check, hold); - INITBITS(); - state->mode = TIME; - case TIME: - NEEDBITS(32); - if (state->head != Z_NULL) - state->head->time = hold; - if (state->flags & 0x0200) CRC4(state->check, hold); - INITBITS(); - state->mode = OS; - case OS: - NEEDBITS(16); - if (state->head != Z_NULL) { - state->head->xflags = (int)(hold & 0xff); - state->head->os = (int)(hold >> 8); - } - if (state->flags & 0x0200) CRC2(state->check, hold); - INITBITS(); - state->mode = EXLEN; - case EXLEN: - if (state->flags & 0x0400) { - NEEDBITS(16); - state->length = (unsigned)(hold); - if (state->head != Z_NULL) - state->head->extra_len = (unsigned)hold; - if (state->flags & 0x0200) CRC2(state->check, hold); - INITBITS(); - } - else if (state->head != Z_NULL) - state->head->extra = Z_NULL; - state->mode = EXTRA; - case EXTRA: - if (state->flags & 0x0400) { - copy = state->length; - if (copy > have) copy = have; - if (copy) { - if (state->head != Z_NULL && - state->head->extra != Z_NULL) { - len = state->head->extra_len - state->length; - zmemcpy(state->head->extra + len, next, - len + copy > state->head->extra_max ? - state->head->extra_max - len : copy); - } - if (state->flags & 0x0200) - state->check = crc32(state->check, next, copy); - have -= copy; - next += copy; - state->length -= copy; - } - if (state->length) goto inf_leave; - } - state->length = 0; - state->mode = NAME; - case NAME: - if (state->flags & 0x0800) { - if (have == 0) goto inf_leave; - copy = 0; - do { - len = (unsigned)(next[copy++]); - if (state->head != Z_NULL && - state->head->name != Z_NULL && - state->length < state->head->name_max) - state->head->name[state->length++] = len; - } while (len && copy < have); - if (state->flags & 0x0200) - state->check = crc32(state->check, next, copy); - have -= copy; - next += copy; - if (len) goto inf_leave; - } - else if (state->head != Z_NULL) - state->head->name = Z_NULL; - state->length = 0; - state->mode = COMMENT; - case COMMENT: - if (state->flags & 0x1000) { - if (have == 0) goto inf_leave; - copy = 0; - do { - len = (unsigned)(next[copy++]); - if (state->head != Z_NULL && - state->head->comment != Z_NULL && - state->length < state->head->comm_max) - state->head->comment[state->length++] = len; - } while (len && copy < have); - if (state->flags & 0x0200) - state->check = crc32(state->check, next, copy); - have -= copy; - next += copy; - if (len) goto inf_leave; - } - else if (state->head != Z_NULL) - state->head->comment = Z_NULL; - state->mode = HCRC; - case HCRC: - if (state->flags & 0x0200) { - NEEDBITS(16); - if (hold != (state->check & 0xffff)) { - strm->msg = (char *)"header crc mismatch"; - state->mode = BAD; - break; - } - INITBITS(); - } - if (state->head != Z_NULL) { - state->head->hcrc = (int)((state->flags >> 9) & 1); - state->head->done = 1; - } - strm->adler = state->check = crc32(0L, Z_NULL, 0); - state->mode = TYPE; - break; -#endif - case DICTID: - NEEDBITS(32); - strm->adler = state->check = ZSWAP32(hold); - INITBITS(); - state->mode = DICT; - case DICT: - if (state->havedict == 0) { - RESTORE(); - return Z_NEED_DICT; - } - strm->adler = state->check = adler32(0L, Z_NULL, 0); - state->mode = TYPE; - case TYPE: - if (flush == Z_BLOCK || flush == Z_TREES) goto inf_leave; - case TYPEDO: - if (state->last) { - BYTEBITS(); - state->mode = CHECK; - break; - } - NEEDBITS(3); - state->last = BITS(1); - DROPBITS(1); - switch (BITS(2)) { - case 0: /* stored block */ - Tracev((stderr, "inflate: stored block%s\n", - state->last ? " (last)" : "")); - state->mode = STORED; - break; - case 1: /* fixed block */ - fixedtables(state); - Tracev((stderr, "inflate: fixed codes block%s\n", - state->last ? " (last)" : "")); - state->mode = LEN_; /* decode codes */ - if (flush == Z_TREES) { - DROPBITS(2); - goto inf_leave; - } - break; - case 2: /* dynamic block */ - Tracev((stderr, "inflate: dynamic codes block%s\n", - state->last ? " (last)" : "")); - state->mode = TABLE; - break; - case 3: - strm->msg = (char *)"invalid block type"; - state->mode = BAD; - } - DROPBITS(2); - break; - case STORED: - BYTEBITS(); /* go to byte boundary */ - NEEDBITS(32); - if ((hold & 0xffff) != ((hold >> 16) ^ 0xffff)) { - strm->msg = (char *)"invalid stored block lengths"; - state->mode = BAD; - break; - } - state->length = (unsigned)hold & 0xffff; - Tracev((stderr, "inflate: stored length %u\n", - state->length)); - INITBITS(); - state->mode = COPY_; - if (flush == Z_TREES) goto inf_leave; - case COPY_: - state->mode = COPY; - case COPY: - copy = state->length; - if (copy) { - if (copy > have) copy = have; - if (copy > left) copy = left; - if (copy == 0) goto inf_leave; - zmemcpy(put, next, copy); - have -= copy; - next += copy; - left -= copy; - put += copy; - state->length -= copy; - break; - } - Tracev((stderr, "inflate: stored end\n")); - state->mode = TYPE; - break; - case TABLE: - NEEDBITS(14); - state->nlen = BITS(5) + 257; - DROPBITS(5); - state->ndist = BITS(5) + 1; - DROPBITS(5); - state->ncode = BITS(4) + 4; - DROPBITS(4); -#ifndef PKZIP_BUG_WORKAROUND - if (state->nlen > 286 || state->ndist > 30) { - strm->msg = (char *)"too many length or distance symbols"; - state->mode = BAD; - break; - } -#endif - Tracev((stderr, "inflate: table sizes ok\n")); - state->have = 0; - state->mode = LENLENS; - case LENLENS: - while (state->have < state->ncode) { - NEEDBITS(3); - state->lens[order[state->have++]] = (unsigned short)BITS(3); - DROPBITS(3); - } - while (state->have < 19) - state->lens[order[state->have++]] = 0; - state->next = state->codes; - state->lencode = (const code FAR *)(state->next); - state->lenbits = 7; - ret = inflate_table(CODES, state->lens, 19, &(state->next), - &(state->lenbits), state->work); - if (ret) { - strm->msg = (char *)"invalid code lengths set"; - state->mode = BAD; - break; - } - Tracev((stderr, "inflate: code lengths ok\n")); - state->have = 0; - state->mode = CODELENS; - case CODELENS: - while (state->have < state->nlen + state->ndist) { - for (;;) { - here = state->lencode[BITS(state->lenbits)]; - if ((unsigned)(here.bits) <= bits) break; - PULLBYTE(); - } - if (here.val < 16) { - DROPBITS(here.bits); - state->lens[state->have++] = here.val; - } - else { - if (here.val == 16) { - NEEDBITS(here.bits + 2); - DROPBITS(here.bits); - if (state->have == 0) { - strm->msg = (char *)"invalid bit length repeat"; - state->mode = BAD; - break; - } - len = state->lens[state->have - 1]; - copy = 3 + BITS(2); - DROPBITS(2); - } - else if (here.val == 17) { - NEEDBITS(here.bits + 3); - DROPBITS(here.bits); - len = 0; - copy = 3 + BITS(3); - DROPBITS(3); - } - else { - NEEDBITS(here.bits + 7); - DROPBITS(here.bits); - len = 0; - copy = 11 + BITS(7); - DROPBITS(7); - } - if (state->have + copy > state->nlen + state->ndist) { - strm->msg = (char *)"invalid bit length repeat"; - state->mode = BAD; - break; - } - while (copy--) - state->lens[state->have++] = (unsigned short)len; - } - } - - /* handle error breaks in while */ - if (state->mode == BAD) break; - - /* check for end-of-block code (better have one) */ - if (state->lens[256] == 0) { - strm->msg = (char *)"invalid code -- missing end-of-block"; - state->mode = BAD; - break; - } - - /* build code tables -- note: do not change the lenbits or distbits - values here (9 and 6) without reading the comments in inftrees.h - concerning the ENOUGH constants, which depend on those values */ - state->next = state->codes; - state->lencode = (const code FAR *)(state->next); - state->lenbits = 9; - ret = inflate_table(LENS, state->lens, state->nlen, &(state->next), - &(state->lenbits), state->work); - if (ret) { - strm->msg = (char *)"invalid literal/lengths set"; - state->mode = BAD; - break; - } - state->distcode = (const code FAR *)(state->next); - state->distbits = 6; - ret = inflate_table(DISTS, state->lens + state->nlen, state->ndist, - &(state->next), &(state->distbits), state->work); - if (ret) { - strm->msg = (char *)"invalid distances set"; - state->mode = BAD; - break; - } - Tracev((stderr, "inflate: codes ok\n")); - state->mode = LEN_; - if (flush == Z_TREES) goto inf_leave; - case LEN_: - state->mode = LEN; - case LEN: - if (have >= 6 && left >= 258) { - RESTORE(); - inflate_fast(strm, out); - LOAD(); - if (state->mode == TYPE) - state->back = -1; - break; - } - state->back = 0; - for (;;) { - here = state->lencode[BITS(state->lenbits)]; - if ((unsigned)(here.bits) <= bits) break; - PULLBYTE(); - } - if (here.op && (here.op & 0xf0) == 0) { - last = here; - for (;;) { - here = state->lencode[last.val + - (BITS(last.bits + last.op) >> last.bits)]; - if ((unsigned)(last.bits + here.bits) <= bits) break; - PULLBYTE(); - } - DROPBITS(last.bits); - state->back += last.bits; - } - DROPBITS(here.bits); - state->back += here.bits; - state->length = (unsigned)here.val; - if ((int)(here.op) == 0) { - Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? - "inflate: literal '%c'\n" : - "inflate: literal 0x%02x\n", here.val)); - state->mode = LIT; - break; - } - if (here.op & 32) { - Tracevv((stderr, "inflate: end of block\n")); - state->back = -1; - state->mode = TYPE; - break; - } - if (here.op & 64) { - strm->msg = (char *)"invalid literal/length code"; - state->mode = BAD; - break; - } - state->extra = (unsigned)(here.op) & 15; - state->mode = LENEXT; - case LENEXT: - if (state->extra) { - NEEDBITS(state->extra); - state->length += BITS(state->extra); - DROPBITS(state->extra); - state->back += state->extra; - } - Tracevv((stderr, "inflate: length %u\n", state->length)); - state->was = state->length; - state->mode = DIST; - case DIST: - for (;;) { - here = state->distcode[BITS(state->distbits)]; - if ((unsigned)(here.bits) <= bits) break; - PULLBYTE(); - } - if ((here.op & 0xf0) == 0) { - last = here; - for (;;) { - here = state->distcode[last.val + - (BITS(last.bits + last.op) >> last.bits)]; - if ((unsigned)(last.bits + here.bits) <= bits) break; - PULLBYTE(); - } - DROPBITS(last.bits); - state->back += last.bits; - } - DROPBITS(here.bits); - state->back += here.bits; - if (here.op & 64) { - strm->msg = (char *)"invalid distance code"; - state->mode = BAD; - break; - } - state->offset = (unsigned)here.val; - state->extra = (unsigned)(here.op) & 15; - state->mode = DISTEXT; - case DISTEXT: - if (state->extra) { - NEEDBITS(state->extra); - state->offset += BITS(state->extra); - DROPBITS(state->extra); - state->back += state->extra; - } -#ifdef INFLATE_STRICT - if (state->offset > state->dmax) { - strm->msg = (char *)"invalid distance too far back"; - state->mode = BAD; - break; - } -#endif - Tracevv((stderr, "inflate: distance %u\n", state->offset)); - state->mode = MATCH; - case MATCH: - if (left == 0) goto inf_leave; - copy = out - left; - if (state->offset > copy) { /* copy from window */ - copy = state->offset - copy; - if (copy > state->whave) { - if (state->sane) { - strm->msg = (char *)"invalid distance too far back"; - state->mode = BAD; - break; - } -#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR - Trace((stderr, "inflate.c too far\n")); - copy -= state->whave; - if (copy > state->length) copy = state->length; - if (copy > left) copy = left; - left -= copy; - state->length -= copy; - do { - *put++ = 0; - } while (--copy); - if (state->length == 0) state->mode = LEN; - break; -#endif - } - if (copy > state->wnext) { - copy -= state->wnext; - from = state->window + (state->wsize - copy); - } - else - from = state->window + (state->wnext - copy); - if (copy > state->length) copy = state->length; - } - else { /* copy from output */ - from = put - state->offset; - copy = state->length; - } - if (copy > left) copy = left; - left -= copy; - state->length -= copy; - do { - *put++ = *from++; - } while (--copy); - if (state->length == 0) state->mode = LEN; - break; - case LIT: - if (left == 0) goto inf_leave; - *put++ = (unsigned char)(state->length); - left--; - state->mode = LEN; - break; - case CHECK: - if (state->wrap) { - NEEDBITS(32); - out -= left; - strm->total_out += out; - state->total += out; - if (out) - strm->adler = state->check = - UPDATE(state->check, put - out, out); - out = left; - if (( -#ifdef GUNZIP - state->flags ? hold : -#endif - ZSWAP32(hold)) != state->check) { - strm->msg = (char *)"incorrect data check"; - state->mode = BAD; - break; - } - INITBITS(); - Tracev((stderr, "inflate: check matches trailer\n")); - } -#ifdef GUNZIP - state->mode = LENGTH; - case LENGTH: - if (state->wrap && state->flags) { - NEEDBITS(32); - if (hold != (state->total & 0xffffffffUL)) { - strm->msg = (char *)"incorrect length check"; - state->mode = BAD; - break; - } - INITBITS(); - Tracev((stderr, "inflate: length matches trailer\n")); - } -#endif - state->mode = DONE; - case DONE: - ret = Z_STREAM_END; - goto inf_leave; - case BAD: - ret = Z_DATA_ERROR; - goto inf_leave; - case MEM: - return Z_MEM_ERROR; - case SYNC: - default: - return Z_STREAM_ERROR; - } - - /* - Return from inflate(), updating the total counts and the check value. - If there was no progress during the inflate() call, return a buffer - error. Call updatewindow() to create and/or update the window state. - Note: a memory error from inflate() is non-recoverable. - */ - inf_leave: - RESTORE(); - if (state->wsize || (out != strm->avail_out && state->mode < BAD && - (state->mode < CHECK || flush != Z_FINISH))) - if (updatewindow(strm, strm->next_out, out - strm->avail_out)) { - state->mode = MEM; - return Z_MEM_ERROR; - } - in -= strm->avail_in; - out -= strm->avail_out; - strm->total_in += in; - strm->total_out += out; - state->total += out; - if (state->wrap && out) - strm->adler = state->check = - UPDATE(state->check, strm->next_out - out, out); - strm->data_type = state->bits + (state->last ? 64 : 0) + - (state->mode == TYPE ? 128 : 0) + - (state->mode == LEN_ || state->mode == COPY_ ? 256 : 0); - if (((in == 0 && out == 0) || flush == Z_FINISH) && ret == Z_OK) - ret = Z_BUF_ERROR; - return ret; -} - -int ZEXPORT inflateEnd(strm) -z_streamp strm; -{ - struct inflate_state FAR *state; - if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0) - return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - if (state->window != Z_NULL) ZFREE(strm, state->window); - ZFREE(strm, strm->state); - strm->state = Z_NULL; - Tracev((stderr, "inflate: end\n")); - return Z_OK; -} - -int ZEXPORT inflateGetDictionary(strm, dictionary, dictLength) -z_streamp strm; -Bytef *dictionary; -uInt *dictLength; -{ - struct inflate_state FAR *state; - - /* check state */ - if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - - /* copy dictionary */ - if (state->whave && dictionary != Z_NULL) { - zmemcpy(dictionary, state->window + state->wnext, - state->whave - state->wnext); - zmemcpy(dictionary + state->whave - state->wnext, - state->window, state->wnext); - } - if (dictLength != Z_NULL) - *dictLength = state->whave; - return Z_OK; -} - -int ZEXPORT inflateSetDictionary(strm, dictionary, dictLength) -z_streamp strm; -const Bytef *dictionary; -uInt dictLength; -{ - struct inflate_state FAR *state; - unsigned long dictid; - int ret; - - /* check state */ - if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - if (state->wrap != 0 && state->mode != DICT) - return Z_STREAM_ERROR; - - /* check for correct dictionary identifier */ - if (state->mode == DICT) { - dictid = adler32(0L, Z_NULL, 0); - dictid = adler32(dictid, dictionary, dictLength); - if (dictid != state->check) - return Z_DATA_ERROR; - } - - /* copy dictionary to window using updatewindow(), which will amend the - existing dictionary if appropriate */ - ret = updatewindow(strm, dictionary + dictLength, dictLength); - if (ret) { - state->mode = MEM; - return Z_MEM_ERROR; - } - state->havedict = 1; - Tracev((stderr, "inflate: dictionary set\n")); - return Z_OK; -} - -int ZEXPORT inflateGetHeader(strm, head) -z_streamp strm; -gz_headerp head; -{ - struct inflate_state FAR *state; - - /* check state */ - if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - if ((state->wrap & 2) == 0) return Z_STREAM_ERROR; - - /* save header structure */ - state->head = head; - head->done = 0; - return Z_OK; -} - -/* - Search buf[0..len-1] for the pattern: 0, 0, 0xff, 0xff. Return when found - or when out of input. When called, *have is the number of pattern bytes - found in order so far, in 0..3. On return *have is updated to the new - state. If on return *have equals four, then the pattern was found and the - return value is how many bytes were read including the last byte of the - pattern. If *have is less than four, then the pattern has not been found - yet and the return value is len. In the latter case, syncsearch() can be - called again with more data and the *have state. *have is initialized to - zero for the first call. - */ -local unsigned syncsearch(have, buf, len) -unsigned FAR *have; -const unsigned char FAR *buf; -unsigned len; -{ - unsigned got; - unsigned next; - - got = *have; - next = 0; - while (next < len && got < 4) { - if ((int)(buf[next]) == (got < 2 ? 0 : 0xff)) - got++; - else if (buf[next]) - got = 0; - else - got = 4 - got; - next++; - } - *have = got; - return next; -} - -int ZEXPORT inflateSync(strm) -z_streamp strm; -{ - unsigned len; /* number of bytes to look at or looked at */ - unsigned long in, out; /* temporary to save total_in and total_out */ - unsigned char buf[4]; /* to restore bit buffer to byte string */ - struct inflate_state FAR *state; - - /* check parameters */ - if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - if (strm->avail_in == 0 && state->bits < 8) return Z_BUF_ERROR; - - /* if first time, start search in bit buffer */ - if (state->mode != SYNC) { - state->mode = SYNC; - state->hold <<= state->bits & 7; - state->bits -= state->bits & 7; - len = 0; - while (state->bits >= 8) { - buf[len++] = (unsigned char)(state->hold); - state->hold >>= 8; - state->bits -= 8; - } - state->have = 0; - syncsearch(&(state->have), buf, len); - } - - /* search available input */ - len = syncsearch(&(state->have), strm->next_in, strm->avail_in); - strm->avail_in -= len; - strm->next_in += len; - strm->total_in += len; - - /* return no joy or set up to restart inflate() on a new block */ - if (state->have != 4) return Z_DATA_ERROR; - in = strm->total_in; out = strm->total_out; - inflateReset(strm); - strm->total_in = in; strm->total_out = out; - state->mode = TYPE; - return Z_OK; -} - -/* - Returns true if inflate is currently at the end of a block generated by - Z_SYNC_FLUSH or Z_FULL_FLUSH. This function is used by one PPP - implementation to provide an additional safety check. PPP uses - Z_SYNC_FLUSH but removes the length bytes of the resulting empty stored - block. When decompressing, PPP checks that at the end of input packet, - inflate is waiting for these length bytes. - */ -int ZEXPORT inflateSyncPoint(strm) -z_streamp strm; -{ - struct inflate_state FAR *state; - - if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - return state->mode == STORED && state->bits == 0; -} - -int ZEXPORT inflateCopy(dest, source) -z_streamp dest; -z_streamp source; -{ - struct inflate_state FAR *state; - struct inflate_state FAR *copy; - unsigned char FAR *window; - unsigned wsize; - - /* check input */ - if (dest == Z_NULL || source == Z_NULL || source->state == Z_NULL || - source->zalloc == (alloc_func)0 || source->zfree == (free_func)0) - return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)source->state; - - /* allocate space */ - copy = (struct inflate_state FAR *) - ZALLOC(source, 1, sizeof(struct inflate_state)); - if (copy == Z_NULL) return Z_MEM_ERROR; - window = Z_NULL; - if (state->window != Z_NULL) { - window = (unsigned char FAR *) - ZALLOC(source, 1U << state->wbits, sizeof(unsigned char)); - if (window == Z_NULL) { - ZFREE(source, copy); - return Z_MEM_ERROR; - } - } - - /* copy state */ - zmemcpy((voidpf)dest, (voidpf)source, sizeof(z_stream)); - zmemcpy((voidpf)copy, (voidpf)state, sizeof(struct inflate_state)); - if (state->lencode >= state->codes && - state->lencode <= state->codes + ENOUGH - 1) { - copy->lencode = copy->codes + (state->lencode - state->codes); - copy->distcode = copy->codes + (state->distcode - state->codes); - } - copy->next = copy->codes + (state->next - state->codes); - if (window != Z_NULL) { - wsize = 1U << state->wbits; - zmemcpy(window, state->window, wsize); - } - copy->window = window; - dest->state = (struct internal_state FAR *)copy; - return Z_OK; -} - -int ZEXPORT inflateUndermine(strm, subvert) -z_streamp strm; -int subvert; -{ - struct inflate_state FAR *state; - - if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - state->sane = !subvert; -#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR - return Z_OK; -#else - state->sane = 1; - return Z_DATA_ERROR; -#endif -} - -long ZEXPORT inflateMark(strm) -z_streamp strm; -{ - struct inflate_state FAR *state; - - if (strm == Z_NULL || strm->state == Z_NULL) return -1L << 16; - state = (struct inflate_state FAR *)strm->state; - return ((long)(state->back) << 16) + - (state->mode == COPY ? state->length : - (state->mode == MATCH ? state->was - state->length : 0)); -} diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inflate.c.blob b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inflate.c.blob deleted file mode 100644 index 1b7e3df40e1b40b2f4171d8ff9ab9dac2730b87f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44634 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 diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inflate.h b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inflate.h deleted file mode 100644 index 95f4986d4..000000000 --- a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inflate.h +++ /dev/null @@ -1,122 +0,0 @@ -/* inflate.h -- internal inflate state definition - * Copyright (C) 1995-2009 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* WARNING: this file should *not* be used by applications. It is - part of the implementation of the compression library and is - subject to change. Applications should only use zlib.h. - */ - -/* define NO_GZIP when compiling if you want to disable gzip header and - trailer decoding by inflate(). NO_GZIP would be used to avoid linking in - the crc code when it is not needed. For shared libraries, gzip decoding - should be left enabled. */ -#ifndef NO_GZIP -# define GUNZIP -#endif - -/* Possible inflate modes between inflate() calls */ -typedef enum { - HEAD, /* i: waiting for magic header */ - FLAGS, /* i: waiting for method and flags (gzip) */ - TIME, /* i: waiting for modification time (gzip) */ - OS, /* i: waiting for extra flags and operating system (gzip) */ - EXLEN, /* i: waiting for extra length (gzip) */ - EXTRA, /* i: waiting for extra bytes (gzip) */ - NAME, /* i: waiting for end of file name (gzip) */ - COMMENT, /* i: waiting for end of comment (gzip) */ - HCRC, /* i: waiting for header crc (gzip) */ - DICTID, /* i: waiting for dictionary check value */ - DICT, /* waiting for inflateSetDictionary() call */ - TYPE, /* i: waiting for type bits, including last-flag bit */ - TYPEDO, /* i: same, but skip check to exit inflate on new block */ - STORED, /* i: waiting for stored size (length and complement) */ - COPY_, /* i/o: same as COPY below, but only first time in */ - COPY, /* i/o: waiting for input or output to copy stored block */ - TABLE, /* i: waiting for dynamic block table lengths */ - LENLENS, /* i: waiting for code length code lengths */ - CODELENS, /* i: waiting for length/lit and distance code lengths */ - LEN_, /* i: same as LEN below, but only first time in */ - LEN, /* i: waiting for length/lit/eob code */ - LENEXT, /* i: waiting for length extra bits */ - DIST, /* i: waiting for distance code */ - DISTEXT, /* i: waiting for distance extra bits */ - MATCH, /* o: waiting for output space to copy string */ - LIT, /* o: waiting for output space to write literal */ - CHECK, /* i: waiting for 32-bit check value */ - LENGTH, /* i: waiting for 32-bit length (gzip) */ - DONE, /* finished check, done -- remain here until reset */ - BAD, /* got a data error -- remain here until reset */ - MEM, /* got an inflate() memory error -- remain here until reset */ - SYNC /* looking for synchronization bytes to restart inflate() */ -} inflate_mode; - -/* - State transitions between above modes - - - (most modes can go to BAD or MEM on error -- not shown for clarity) - - Process header: - HEAD -> (gzip) or (zlib) or (raw) - (gzip) -> FLAGS -> TIME -> OS -> EXLEN -> EXTRA -> NAME -> COMMENT -> - HCRC -> TYPE - (zlib) -> DICTID or TYPE - DICTID -> DICT -> TYPE - (raw) -> TYPEDO - Read deflate blocks: - TYPE -> TYPEDO -> STORED or TABLE or LEN_ or CHECK - STORED -> COPY_ -> COPY -> TYPE - TABLE -> LENLENS -> CODELENS -> LEN_ - LEN_ -> LEN - Read deflate codes in fixed or dynamic block: - LEN -> LENEXT or LIT or TYPE - LENEXT -> DIST -> DISTEXT -> MATCH -> LEN - LIT -> LEN - Process trailer: - CHECK -> LENGTH -> DONE - */ - -/* state maintained between inflate() calls. Approximately 10K bytes. */ -struct inflate_state { - inflate_mode mode; /* current inflate mode */ - int last; /* true if processing last block */ - int wrap; /* bit 0 true for zlib, bit 1 true for gzip */ - int havedict; /* true if dictionary provided */ - int flags; /* gzip header method and flags (0 if zlib) */ - unsigned dmax; /* zlib header max distance (INFLATE_STRICT) */ - unsigned long check; /* protected copy of check value */ - unsigned long total; /* protected copy of output count */ - gz_headerp head; /* where to save gzip header information */ - /* sliding window */ - unsigned wbits; /* log base 2 of requested window size */ - unsigned wsize; /* window size or zero if not using window */ - unsigned whave; /* valid bytes in the window */ - unsigned wnext; /* window write index */ - unsigned char FAR *window; /* allocated sliding window, if needed */ - /* bit accumulator */ - unsigned long hold; /* input bit accumulator */ - unsigned bits; /* number of bits in "in" */ - /* for string and stored block copying */ - unsigned length; /* literal or length of data to copy */ - unsigned offset; /* distance back to copy string from */ - /* for table and code decoding */ - unsigned extra; /* extra bits needed */ - /* fixed and dynamic code tables */ - code const FAR *lencode; /* starting table for length/literal codes */ - code const FAR *distcode; /* starting table for distance codes */ - unsigned lenbits; /* index bits for lencode */ - unsigned distbits; /* index bits for distcode */ - /* dynamic table building */ - unsigned ncode; /* number of code length code lengths */ - unsigned nlen; /* number of length code lengths */ - unsigned ndist; /* number of distance code lengths */ - unsigned have; /* number of code lengths in lens[] */ - code FAR *next; /* next available space in codes[] */ - unsigned short lens[320]; /* temporary storage for code lengths */ - unsigned short work[288]; /* work area for code table building */ - code codes[ENOUGH]; /* space for code tables */ - int sane; /* if false, allow invalid distance too far */ - int back; /* bits back of last unprocessed length/lit */ - unsigned was; /* initial length of match */ -}; diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inflate.h.blob b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inflate.h.blob deleted file mode 100644 index 38ab1d4a83cbeef28d8573d744dde8f53405a739..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8383 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 OHj<@*%8IZSb^H%~@5oXB diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inftrees.c b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inftrees.c deleted file mode 100644 index 44d89cf24..000000000 --- a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inftrees.c +++ /dev/null @@ -1,306 +0,0 @@ -/* inftrees.c -- generate Huffman trees for efficient decoding - * Copyright (C) 1995-2013 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -#include "zutil.h" -#include "inftrees.h" - -#define MAXBITS 15 - -const char inflate_copyright[] = - " inflate 1.2.8 Copyright 1995-2013 Mark Adler "; -/* - If you use the zlib library in a product, an acknowledgment is welcome - in the documentation of your product. If for some reason you cannot - include such an acknowledgment, I would appreciate that you keep this - copyright string in the executable of your product. - */ - -/* - Build a set of tables to decode the provided canonical Huffman code. - The code lengths are lens[0..codes-1]. The result starts at *table, - whose indices are 0..2^bits-1. work is a writable array of at least - lens shorts, which is used as a work area. type is the type of code - to be generated, CODES, LENS, or DISTS. On return, zero is success, - -1 is an invalid code, and +1 means that ENOUGH isn't enough. table - on return points to the next available entry's address. bits is the - requested root table index bits, and on return it is the actual root - table index bits. It will differ if the request is greater than the - longest code or if it is less than the shortest code. - */ -int ZLIB_INTERNAL inflate_table(type, lens, codes, table, bits, work) -codetype type; -unsigned short FAR *lens; -unsigned codes; -code FAR * FAR *table; -unsigned FAR *bits; -unsigned short FAR *work; -{ - unsigned len; /* a code's length in bits */ - unsigned sym; /* index of code symbols */ - unsigned min, max; /* minimum and maximum code lengths */ - unsigned root; /* number of index bits for root table */ - unsigned curr; /* number of index bits for current table */ - unsigned drop; /* code bits to drop for sub-table */ - int left; /* number of prefix codes available */ - unsigned used; /* code entries in table used */ - unsigned huff; /* Huffman code */ - unsigned incr; /* for incrementing code, index */ - unsigned fill; /* index for replicating entries */ - unsigned low; /* low bits for current root entry */ - unsigned mask; /* mask for low root bits */ - code here; /* table entry for duplication */ - code FAR *next; /* next available space in table */ - const unsigned short FAR *base; /* base value table to use */ - const unsigned short FAR *extra; /* extra bits table to use */ - int end; /* use base and extra for symbol > end */ - unsigned short count[MAXBITS+1]; /* number of codes of each length */ - unsigned short offs[MAXBITS+1]; /* offsets in table for each length */ - static const unsigned short lbase[31] = { /* Length codes 257..285 base */ - 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, - 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0}; - static const unsigned short lext[31] = { /* Length codes 257..285 extra */ - 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, - 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78}; - static const unsigned short dbase[32] = { /* Distance codes 0..29 base */ - 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, - 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, - 8193, 12289, 16385, 24577, 0, 0}; - static const unsigned short dext[32] = { /* Distance codes 0..29 extra */ - 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, - 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, - 28, 28, 29, 29, 64, 64}; - - /* - Process a set of code lengths to create a canonical Huffman code. The - code lengths are lens[0..codes-1]. Each length corresponds to the - symbols 0..codes-1. The Huffman code is generated by first sorting the - symbols by length from short to long, and retaining the symbol order - for codes with equal lengths. Then the code starts with all zero bits - for the first code of the shortest length, and the codes are integer - increments for the same length, and zeros are appended as the length - increases. For the deflate format, these bits are stored backwards - from their more natural integer increment ordering, and so when the - decoding tables are built in the large loop below, the integer codes - are incremented backwards. - - This routine assumes, but does not check, that all of the entries in - lens[] are in the range 0..MAXBITS. The caller must assure this. - 1..MAXBITS is interpreted as that code length. zero means that that - symbol does not occur in this code. - - The codes are sorted by computing a count of codes for each length, - creating from that a table of starting indices for each length in the - sorted table, and then entering the symbols in order in the sorted - table. The sorted table is work[], with that space being provided by - the caller. - - The length counts are used for other purposes as well, i.e. finding - the minimum and maximum length codes, determining if there are any - codes at all, checking for a valid set of lengths, and looking ahead - at length counts to determine sub-table sizes when building the - decoding tables. - */ - - /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */ - for (len = 0; len <= MAXBITS; len++) - count[len] = 0; - for (sym = 0; sym < codes; sym++) - count[lens[sym]]++; - - /* bound code lengths, force root to be within code lengths */ - root = *bits; - for (max = MAXBITS; max >= 1; max--) - if (count[max] != 0) break; - if (root > max) root = max; - if (max == 0) { /* no symbols to code at all */ - here.op = (unsigned char)64; /* invalid code marker */ - here.bits = (unsigned char)1; - here.val = (unsigned short)0; - *(*table)++ = here; /* make a table to force an error */ - *(*table)++ = here; - *bits = 1; - return 0; /* no symbols, but wait for decoding to report error */ - } - for (min = 1; min < max; min++) - if (count[min] != 0) break; - if (root < min) root = min; - - /* check for an over-subscribed or incomplete set of lengths */ - left = 1; - for (len = 1; len <= MAXBITS; len++) { - left <<= 1; - left -= count[len]; - if (left < 0) return -1; /* over-subscribed */ - } - if (left > 0 && (type == CODES || max != 1)) - return -1; /* incomplete set */ - - /* generate offsets into symbol table for each length for sorting */ - offs[1] = 0; - for (len = 1; len < MAXBITS; len++) - offs[len + 1] = offs[len] + count[len]; - - /* sort symbols by length, by symbol order within each length */ - for (sym = 0; sym < codes; sym++) - if (lens[sym] != 0) work[offs[lens[sym]]++] = (unsigned short)sym; - - /* - Create and fill in decoding tables. In this loop, the table being - filled is at next and has curr index bits. The code being used is huff - with length len. That code is converted to an index by dropping drop - bits off of the bottom. For codes where len is less than drop + curr, - those top drop + curr - len bits are incremented through all values to - fill the table with replicated entries. - - root is the number of index bits for the root table. When len exceeds - root, sub-tables are created pointed to by the root entry with an index - of the low root bits of huff. This is saved in low to check for when a - new sub-table should be started. drop is zero when the root table is - being filled, and drop is root when sub-tables are being filled. - - When a new sub-table is needed, it is necessary to look ahead in the - code lengths to determine what size sub-table is needed. The length - counts are used for this, and so count[] is decremented as codes are - entered in the tables. - - used keeps track of how many table entries have been allocated from the - provided *table space. It is checked for LENS and DIST tables against - the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in - the initial root table size constants. See the comments in inftrees.h - for more information. - - sym increments through all symbols, and the loop terminates when - all codes of length max, i.e. all codes, have been processed. This - routine permits incomplete codes, so another loop after this one fills - in the rest of the decoding tables with invalid code markers. - */ - - /* set up for code type */ - switch (type) { - case CODES: - base = extra = work; /* dummy value--not used */ - end = 19; - break; - case LENS: - base = lbase; - base -= 257; - extra = lext; - extra -= 257; - end = 256; - break; - default: /* DISTS */ - base = dbase; - extra = dext; - end = -1; - } - - /* initialize state for loop */ - huff = 0; /* starting code */ - sym = 0; /* starting code symbol */ - len = min; /* starting code length */ - next = *table; /* current table to fill in */ - curr = root; /* current table index bits */ - drop = 0; /* current bits to drop from code for index */ - low = (unsigned)(-1); /* trigger new sub-table when len > root */ - used = 1U << root; /* use root table entries */ - mask = used - 1; /* mask for comparing low */ - - /* check available table space */ - if ((type == LENS && used > ENOUGH_LENS) || - (type == DISTS && used > ENOUGH_DISTS)) - return 1; - - /* process all codes and make table entries */ - for (;;) { - /* create table entry */ - here.bits = (unsigned char)(len - drop); - if ((int)(work[sym]) < end) { - here.op = (unsigned char)0; - here.val = work[sym]; - } - else if ((int)(work[sym]) > end) { - here.op = (unsigned char)(extra[work[sym]]); - here.val = base[work[sym]]; - } - else { - here.op = (unsigned char)(32 + 64); /* end of block */ - here.val = 0; - } - - /* replicate for those indices with low len bits equal to huff */ - incr = 1U << (len - drop); - fill = 1U << curr; - min = fill; /* save offset to next table */ - do { - fill -= incr; - next[(huff >> drop) + fill] = here; - } while (fill != 0); - - /* backwards increment the len-bit code huff */ - incr = 1U << (len - 1); - while (huff & incr) - incr >>= 1; - if (incr != 0) { - huff &= incr - 1; - huff += incr; - } - else - huff = 0; - - /* go to next symbol, update count, len */ - sym++; - if (--(count[len]) == 0) { - if (len == max) break; - len = lens[work[sym]]; - } - - /* create new sub-table if needed */ - if (len > root && (huff & mask) != low) { - /* if first time, transition to sub-tables */ - if (drop == 0) - drop = root; - - /* increment past last table */ - next += min; /* here min is 1 << curr */ - - /* determine length of next table */ - curr = len - drop; - left = (int)(1 << curr); - while (curr + drop < max) { - left -= count[curr + drop]; - if (left <= 0) break; - curr++; - left <<= 1; - } - - /* check for enough space */ - used += 1U << curr; - if ((type == LENS && used > ENOUGH_LENS) || - (type == DISTS && used > ENOUGH_DISTS)) - return 1; - - /* point entry in root table to sub-table */ - low = huff & mask; - (*table)[low].op = (unsigned char)curr; - (*table)[low].bits = (unsigned char)root; - (*table)[low].val = (unsigned short)(next - *table); - } - } - - /* fill in remaining table entry if code is incomplete (guaranteed to have - at most one remaining entry, since if the code is incomplete, the - maximum code length that was allowed to get this far is one bit) */ - if (huff != 0) { - here.op = (unsigned char)64; /* invalid code marker */ - here.bits = (unsigned char)(len - drop); - here.val = (unsigned short)0; - next[huff] = here; - } - - /* set return parameters */ - *table += used; - *bits = root; - return 0; -} diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inftrees.c.blob b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inftrees.c.blob deleted file mode 100644 index 26c8c67af8b68379fa29e0957b8d9f83c9c17572..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5370 zcmcIoO>7&-72Z_@gJIpm2?RF~9BND{v8-r!MVk7tV5O8O%4Q>x1}R5r(qysR9g?H$ z?$EQdq$r?317BJoITUCQJ*0=`kX}-thbAqM1n8mYp+6{WB&d-TN#h`g7CjW`rDzrQ z&GJW-YEzPx64=?<+4ujx_hyz8(&sN{vbQ8j(kj%!n&DDcTc)P(V3&JZidtB6h>J~T zl(E6LSs)4CET@;QT^1z4L|;p1uNCxkc5!Jny)2ej7xS0X`bI9lx*X7N zWU|Y-jlxVqQZmO0#4*{m4dPm~?#(2$Ou5{EP@1-H;p0kurbxH60^}*kRpyvNHz>0$ zZEGe`!G?vICn+V17-g4woS2?sLOR)kVb_g@Cuwy_dzMIAt~dpQC29HfR17e{4OYf{ zVQX$ipGhcHQ>nKcR~)Zqf{| z%p-0YbQ0HVc#Kls3+h0!wsAqy09+aXNL!()HRDCRLiRwqg=p0x?65FbX>k*zSqDgy z6!1*xHR%hhGo?=1i{QHgR%4S>)>t?Sii2=D zAda3Q&|hLxS{sfqRj1VWOl%77nr||$d7ObyLeAUEPxZ<vfO|8t>v)An@swwoa)HO|}5jSVB!C z)C<$`soAb&HIw;J%MR{}=pfG`?E;SS$cWbB`gVZveGxfclkOfOJG;oicHA{X{n^?j zZWC{}Gwy3L2bcJ6GwWaFT`1{#+4W6}tPY%Yvt|lzd&4$;EgzW>)a^Xc-({!I?;=e z7$%VqC-t(6E#y@w<7mQ$qkGS);1?XQCT?hAB9O9=VxkE9f6rQ5mN@R7mqMXod1P$l z$pLvp+KI^n(vmpGA_D<75G|oVpocg`77ldq3Px2%Ys3PxO!28pOv6T3{8Gs=+`tYs zybeSGH5gpx6%QEq$Rti+yI5fXF^d%n$)2cI(>2*Jyi6XAM=dKltk5fis0 z0CW5W;f)dlX5j!L@CMZx33xyaGaABd5MyJ*<6)t+6+H++y+X{2VDUXL-UwKQ5U|bw zfkEKmt#C1zgCJpS7`!iHRK_l5kSc2urE<&Z!X#QvXJMoaEoTbr1(1+)!5!{1cM@%5 zMujTRH^F>wGOWY`V_op52GtJ11JRSna4qyi3^~{ULwN-ZPiJ%2E?)s+_Z&yqrGB|0 zj1%|>(~bgErI7s~F~VFIKI@QCGl(t7fQz%nIq=W2AiN&1i>L|xKpbZHx{p0@1c~pv zmShoUycLkOY}(aC0Hm#;7$)~2*MckD3ivJ;=*VzXC$^2m2^KR%06jr|18qV^8RE?0 z4Y=tBme|xSgC#AjKpcUkr47C&gJ=X~t^9T9RQR7oIw^~Bu=&89&|lvE!I_45+WTwH z{#5RG>NxAvi>%R&QfBR>=Lm}=1 zx0Y@_3sjHDdAK%#>g1h2eDkGW4t&;2C69zgqVUf7_2NTMOuuoZ_g(00GjmCKHa-hu^Su*|;!QGnTl^6Ra1asb^k8wE zWu#o;&pj`lJ{|2(ffi7-!--;QT%ALy4nK-ryg04Ir(ze-ngI=F(Xs*dQAv`+r^9mt za#;FON&2$DaMQsr|LDz!)KB{6gjOLVgTn71>He@E8InJUe(?B^{898H81F>yz_{}$ zWam+N4rb>dJLhDeYQFBw`k#FFhw9qmGfSEE0?7EvDAWV|`-s|0C^ik2g-(Sc17aML onqb+9i}8!eq&z=0|723$jBmpHdgS_KQoa$t0rOX;UV-)h0%5l*ZvX%Q diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inftrees.h b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inftrees.h deleted file mode 100644 index baa53a0b1..000000000 --- a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inftrees.h +++ /dev/null @@ -1,62 +0,0 @@ -/* inftrees.h -- header to use inftrees.c - * Copyright (C) 1995-2005, 2010 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* WARNING: this file should *not* be used by applications. It is - part of the implementation of the compression library and is - subject to change. Applications should only use zlib.h. - */ - -/* Structure for decoding tables. Each entry provides either the - information needed to do the operation requested by the code that - indexed that table entry, or it provides a pointer to another - table that indexes more bits of the code. op indicates whether - the entry is a pointer to another table, a literal, a length or - distance, an end-of-block, or an invalid code. For a table - pointer, the low four bits of op is the number of index bits of - that table. For a length or distance, the low four bits of op - is the number of extra bits to get after the code. bits is - the number of bits in this code or part of the code to drop off - of the bit buffer. val is the actual byte to output in the case - of a literal, the base length or distance, or the offset from - the current table to the next table. Each entry is four bytes. */ -typedef struct { - unsigned char op; /* operation, extra bits, table bits */ - unsigned char bits; /* bits in this part of the code */ - unsigned short val; /* offset in table or code value */ -} code; - -/* op values as set by inflate_table(): - 00000000 - literal - 0000tttt - table link, tttt != 0 is the number of table index bits - 0001eeee - length or distance, eeee is the number of extra bits - 01100000 - end of block - 01000000 - invalid code - */ - -/* Maximum size of the dynamic table. The maximum number of code structures is - 1444, which is the sum of 852 for literal/length codes and 592 for distance - codes. These values were found by exhaustive searches using the program - examples/enough.c found in the zlib distribtution. The arguments to that - program are the number of symbols, the initial root table size, and the - maximum bit length of a code. "enough 286 9 15" for literal/length codes - returns returns 852, and "enough 30 6 15" for distance codes returns 592. - The initial root table size (9 or 6) is found in the fifth argument of the - inflate_table() calls in inflate.c and infback.c. If the root table size is - changed, then these maximum sizes would be need to be recalculated and - updated. */ -#define ENOUGH_LENS 852 -#define ENOUGH_DISTS 592 -#define ENOUGH (ENOUGH_LENS+ENOUGH_DISTS) - -/* Type of code to build for inflate_table() */ -typedef enum { - CODES, - LENS, - DISTS -} codetype; - -int ZLIB_INTERNAL inflate_table OF((codetype type, unsigned short FAR *lens, - unsigned codes, code FAR * FAR *table, - unsigned FAR *bits, unsigned short FAR *work)); diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inftrees.h.blob b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@inftrees.h.blob deleted file mode 100644 index 8e6c9bd3e05fe2e65c5015ad71361cb398e003c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6616 zcmeHMPi!Ms8Gqx3%C+{8N)?;Uu2v7aT4mFWCvlVPW}QG%+u52X_R7vS?Fum(&pg|+ zJ2TI`c@xJgkXnHdLR^sGScIq$T#Cej1=IzJL&bqVLaK`3z@e?w0|+D}E(jL$y*HkT z<7Q*0UT*8dd-nVD{r`U7_mWxk->()+ZzH52tw~*?86NetJT(KCc-+@=)FPT|d&Fc$ zotxD2sY85iJ6cKS92*Y8IoE}YcO1K>*hASQv9z;UjrOaB+>J^Bj_JD_l@c70JNd$MH?D~z@{7J*DBY;)h0?}zTZOz>-rA^K zE9krB%2r;U-z}E%<=yJ?B2tUv*mlh8+OF+cwCyi1YQ;vQ1Ku&6z#`*PeW^zGwJNw? zy1zIk(Ot?MOWR*wY!bsF%tvb7vWu#i^S z$t^$(aDz1nU)#U3tS>LBEmLiWimR@_X97W2&~aM^w`;az^G>)#_Bru<8v4FX8pq`7V5HrccfWl5MMY0G9q zGbfDlG_BnNV%891NCm~zeu>7;++LQcZOU$g<|@ccOio#6?IbZ=3v9G^bKd0`%AEif6^e9k~ELFZong}3|YjAyw! z0FCunI)P9E2_-^lnT06nG+p<(1#znH89Gej!mZ27!xICbSHx{B$N{9E&`c%;w==G{ zL0-`02zyC_FXprzN*yQ&RrtEFm|k2=Kf9EfzZ`44XR-i5!j&>flOJy!i`4bD*)*8W zW9tmR;oEn}i7vD_v+R0(lskKXNOe)nLRURd7{_)Y`r>nAo8Bh|Gn=vHAIP^qrcB!E zJV=7!zVZ!cIJ+=_AH<|rY(_}LD8gLgnyrp54L6XIA3bLOKRMn@1ko@(Jm3hpEv+u8 z4tKIHpyQC6hu;Z{s_q&lqvJd7ctjXI0HB^~ywj3>;vg8G(DQ^bPii(0K;vOLfN98-1HHW8|%xD3GUf{^skTv3XKa1l>`uX^4y;|hhp`HW9XjF`k5po28 z7aVoH;RU9Mj>S1G8^hp^*#>j|T~#=dSicEjtdB`4;8P&-Dj zpx{dDb)Rr5TaJ(BG-z1NfHC5kol$Wg7>^GhaWW7Wy2{99@Br<;zOnh~#+`3|&h|L& zH8MIkY7Ut(;aw-70*he|2hgxLJYr$LNg2np4s`H+tKz=60c&Eyv$K-Qz=_!!RO`OA z9xc)LUP8&_G?JfFAXxT7_EUy!Da8<{qL0%3+fV=S>W@G3n}4DEcR#e7 z=(^F%in3xl04DmF1~5f*MS z^7(-H9Cm9Rxg}$PHw_LHECP=SST%UaHe@%4g`4;RR|B^wM3Z1lG3X*>NJ%-vyCEST zLnIR{;z@X3h#`1^CbR`!w`>zyav!&wB)kv%p?0>9kKz!DGzWX|Oa*lu`IUGL-UI6O$z+%aTxW3$i zu&#mDpp8^9I*~fC7-$y~hU5zc!v}&16C6Q3^&#r;`esH*9V`sbcMN}J3jG|3FU@NE zz?$F#vBFgkgaw+?v!Ers)_K1NWLz-N3eYmu^9)>soUGRg0}a4Vk;aC}1Nc?za6lP~ zX~0{7fT7TxhED{6K92}-YOsut(jR0I`yoiKg8Q8^6@f0T|;QASJ0vlC}eK{}$d&>=w8jtX8_P*-oR)+Q7&uA?Wq?pqsAKC|@3^WtFi z`B?VL*{`iDtJdl*7+b4*>&n{JS_Q^e*1oc?#OWQkI^s_vc&4wOUb=dfw$Qn&6DY2E zbNIl40P&)AlGuursS8sx_Y)J!R1)U9O7b+w5yM5yBW!^Nm;gqi^Q(`e9+(M4l!O7} zB<{j~K#($hae7X0m`=j{W{*SE5X2mg(n3Hv=#fN+Fntiqk#gq38Oh;H66Qz;^R4gQ zOMF3jrcf&1xF#%o>S<`2;J*_%T){KptZx-c)!r#RU##v_FF|LQnalvD!dO9FftcN! z?Z1ELo%dERMs5Ct>e{@BcD2{mPGckC|iu=cWz| z6Een2D;c1=Fu5?35aYb$tz@obt^=iF>Q{gIfwH>OCpHlJ_y8fH4ZgA@=*&;fUrdNG M-J^pu%j?Sj0Kr}Kp#T5? diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@trees.c b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@trees.c deleted file mode 100644 index 1fd7759ef..000000000 --- a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@trees.c +++ /dev/null @@ -1,1226 +0,0 @@ -/* trees.c -- output deflated data using Huffman coding - * Copyright (C) 1995-2012 Jean-loup Gailly - * detect_data_type() function provided freely by Cosmin Truta, 2006 - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* - * ALGORITHM - * - * The "deflation" process uses several Huffman trees. The more - * common source values are represented by shorter bit sequences. - * - * Each code tree is stored in a compressed form which is itself - * a Huffman encoding of the lengths of all the code strings (in - * ascending order by source values). The actual code strings are - * reconstructed from the lengths in the inflate process, as described - * in the deflate specification. - * - * REFERENCES - * - * Deutsch, L.P.,"'Deflate' Compressed Data Format Specification". - * Available in ftp.uu.net:/pub/archiving/zip/doc/deflate-1.1.doc - * - * Storer, James A. - * Data Compression: Methods and Theory, pp. 49-50. - * Computer Science Press, 1988. ISBN 0-7167-8156-5. - * - * Sedgewick, R. - * Algorithms, p290. - * Addison-Wesley, 1983. ISBN 0-201-06672-6. - */ - -/* @(#) $Id$ */ - -/* #define GEN_TREES_H */ - -#include "deflate.h" - -#ifdef DEBUG -# include -#endif - -/* =========================================================================== - * Constants - */ - -#define MAX_BL_BITS 7 -/* Bit length codes must not exceed MAX_BL_BITS bits */ - -#define END_BLOCK 256 -/* end of block literal code */ - -#define REP_3_6 16 -/* repeat previous bit length 3-6 times (2 bits of repeat count) */ - -#define REPZ_3_10 17 -/* repeat a zero length 3-10 times (3 bits of repeat count) */ - -#define REPZ_11_138 18 -/* repeat a zero length 11-138 times (7 bits of repeat count) */ - -local const int extra_lbits[LENGTH_CODES] /* extra bits for each length code */ - = {0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0}; - -local const int extra_dbits[D_CODES] /* extra bits for each distance code */ - = {0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13}; - -local const int extra_blbits[BL_CODES]/* extra bits for each bit length code */ - = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7}; - -local const uch bl_order[BL_CODES] - = {16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15}; -/* The lengths of the bit length codes are sent in order of decreasing - * probability, to avoid transmitting the lengths for unused bit length codes. - */ - -/* =========================================================================== - * Local data. These are initialized only once. - */ - -#define DIST_CODE_LEN 512 /* see definition of array dist_code below */ - -#if defined(GEN_TREES_H) || !defined(STDC) -/* non ANSI compilers may not accept trees.h */ - -local ct_data static_ltree[L_CODES+2]; -/* The static literal tree. Since the bit lengths are imposed, there is no - * need for the L_CODES extra codes used during heap construction. However - * The codes 286 and 287 are needed to build a canonical tree (see _tr_init - * below). - */ - -local ct_data static_dtree[D_CODES]; -/* The static distance tree. (Actually a trivial tree since all codes use - * 5 bits.) - */ - -uch _dist_code[DIST_CODE_LEN]; -/* Distance codes. The first 256 values correspond to the distances - * 3 .. 258, the last 256 values correspond to the top 8 bits of - * the 15 bit distances. - */ - -uch _length_code[MAX_MATCH-MIN_MATCH+1]; -/* length code for each normalized match length (0 == MIN_MATCH) */ - -local int base_length[LENGTH_CODES]; -/* First normalized length for each code (0 = MIN_MATCH) */ - -local int base_dist[D_CODES]; -/* First normalized distance for each code (0 = distance of 1) */ - -#else -# include "trees.h" -#endif /* GEN_TREES_H */ - -struct static_tree_desc_s { - const ct_data *static_tree; /* static tree or NULL */ - const intf *extra_bits; /* extra bits for each code or NULL */ - int extra_base; /* base index for extra_bits */ - int elems; /* max number of elements in the tree */ - int max_length; /* max bit length for the codes */ -}; - -local static_tree_desc static_l_desc = -{static_ltree, extra_lbits, LITERALS+1, L_CODES, MAX_BITS}; - -local static_tree_desc static_d_desc = -{static_dtree, extra_dbits, 0, D_CODES, MAX_BITS}; - -local static_tree_desc static_bl_desc = -{(const ct_data *)0, extra_blbits, 0, BL_CODES, MAX_BL_BITS}; - -/* =========================================================================== - * Local (static) routines in this file. - */ - -local void tr_static_init OF((void)); -local void init_block OF((deflate_state *s)); -local void pqdownheap OF((deflate_state *s, ct_data *tree, int k)); -local void gen_bitlen OF((deflate_state *s, tree_desc *desc)); -local void gen_codes OF((ct_data *tree, int max_code, ushf *bl_count)); -local void build_tree OF((deflate_state *s, tree_desc *desc)); -local void scan_tree OF((deflate_state *s, ct_data *tree, int max_code)); -local void send_tree OF((deflate_state *s, ct_data *tree, int max_code)); -local int build_bl_tree OF((deflate_state *s)); -local void send_all_trees OF((deflate_state *s, int lcodes, int dcodes, - int blcodes)); -local void compress_block OF((deflate_state *s, const ct_data *ltree, - const ct_data *dtree)); -local int detect_data_type OF((deflate_state *s)); -local unsigned bi_reverse OF((unsigned value, int length)); -local void bi_windup OF((deflate_state *s)); -local void bi_flush OF((deflate_state *s)); -local void copy_block OF((deflate_state *s, charf *buf, unsigned len, - int header)); - -#ifdef GEN_TREES_H -local void gen_trees_header OF((void)); -#endif - -#ifndef DEBUG -# define send_code(s, c, tree) send_bits(s, tree[c].Code, tree[c].Len) - /* Send a code of the given tree. c and tree must not have side effects */ - -#else /* DEBUG */ -# define send_code(s, c, tree) \ - { if (z_verbose>2) fprintf(stderr,"\ncd %3d ",(c)); \ - send_bits(s, tree[c].Code, tree[c].Len); } -#endif - -/* =========================================================================== - * Output a short LSB first on the stream. - * IN assertion: there is enough room in pendingBuf. - */ -#define put_short(s, w) { \ - put_byte(s, (uch)((w) & 0xff)); \ - put_byte(s, (uch)((ush)(w) >> 8)); \ -} - -/* =========================================================================== - * Send a value on a given number of bits. - * IN assertion: length <= 16 and value fits in length bits. - */ -#ifdef DEBUG -local void send_bits OF((deflate_state *s, int value, int length)); - -local void send_bits(s, value, length) - deflate_state *s; - int value; /* value to send */ - int length; /* number of bits */ -{ - Tracevv((stderr," l %2d v %4x ", length, value)); - Assert(length > 0 && length <= 15, "invalid length"); - s->bits_sent += (ulg)length; - - /* If not enough room in bi_buf, use (valid) bits from bi_buf and - * (16 - bi_valid) bits from value, leaving (width - (16-bi_valid)) - * unused bits in value. - */ - if (s->bi_valid > (int)Buf_size - length) { - s->bi_buf |= (ush)value << s->bi_valid; - put_short(s, s->bi_buf); - s->bi_buf = (ush)value >> (Buf_size - s->bi_valid); - s->bi_valid += length - Buf_size; - } else { - s->bi_buf |= (ush)value << s->bi_valid; - s->bi_valid += length; - } -} -#else /* !DEBUG */ - -#define send_bits(s, value, length) \ -{ int len = length;\ - if (s->bi_valid > (int)Buf_size - len) {\ - int val = value;\ - s->bi_buf |= (ush)val << s->bi_valid;\ - put_short(s, s->bi_buf);\ - s->bi_buf = (ush)val >> (Buf_size - s->bi_valid);\ - s->bi_valid += len - Buf_size;\ - } else {\ - s->bi_buf |= (ush)(value) << s->bi_valid;\ - s->bi_valid += len;\ - }\ -} -#endif /* DEBUG */ - - -/* the arguments must not have side effects */ - -/* =========================================================================== - * Initialize the various 'constant' tables. - */ -local void tr_static_init() -{ -#if defined(GEN_TREES_H) || !defined(STDC) - static int static_init_done = 0; - int n; /* iterates over tree elements */ - int bits; /* bit counter */ - int length; /* length value */ - int code; /* code value */ - int dist; /* distance index */ - ush bl_count[MAX_BITS+1]; - /* number of codes at each bit length for an optimal tree */ - - if (static_init_done) return; - - /* For some embedded targets, global variables are not initialized: */ -#ifdef NO_INIT_GLOBAL_POINTERS - static_l_desc.static_tree = static_ltree; - static_l_desc.extra_bits = extra_lbits; - static_d_desc.static_tree = static_dtree; - static_d_desc.extra_bits = extra_dbits; - static_bl_desc.extra_bits = extra_blbits; -#endif - - /* Initialize the mapping length (0..255) -> length code (0..28) */ - length = 0; - for (code = 0; code < LENGTH_CODES-1; code++) { - base_length[code] = length; - for (n = 0; n < (1< dist code (0..29) */ - dist = 0; - for (code = 0 ; code < 16; code++) { - base_dist[code] = dist; - for (n = 0; n < (1<>= 7; /* from now on, all distances are divided by 128 */ - for ( ; code < D_CODES; code++) { - base_dist[code] = dist << 7; - for (n = 0; n < (1<<(extra_dbits[code]-7)); n++) { - _dist_code[256 + dist++] = (uch)code; - } - } - Assert (dist == 256, "tr_static_init: 256+dist != 512"); - - /* Construct the codes of the static literal tree */ - for (bits = 0; bits <= MAX_BITS; bits++) bl_count[bits] = 0; - n = 0; - while (n <= 143) static_ltree[n++].Len = 8, bl_count[8]++; - while (n <= 255) static_ltree[n++].Len = 9, bl_count[9]++; - while (n <= 279) static_ltree[n++].Len = 7, bl_count[7]++; - while (n <= 287) static_ltree[n++].Len = 8, bl_count[8]++; - /* Codes 286 and 287 do not exist, but we must include them in the - * tree construction to get a canonical Huffman tree (longest code - * all ones) - */ - gen_codes((ct_data *)static_ltree, L_CODES+1, bl_count); - - /* The static distance tree is trivial: */ - for (n = 0; n < D_CODES; n++) { - static_dtree[n].Len = 5; - static_dtree[n].Code = bi_reverse((unsigned)n, 5); - } - static_init_done = 1; - -# ifdef GEN_TREES_H - gen_trees_header(); -# endif -#endif /* defined(GEN_TREES_H) || !defined(STDC) */ -} - -/* =========================================================================== - * Genererate the file trees.h describing the static trees. - */ -#ifdef GEN_TREES_H -# ifndef DEBUG -# include -# endif - -# define SEPARATOR(i, last, width) \ - ((i) == (last)? "\n};\n\n" : \ - ((i) % (width) == (width)-1 ? ",\n" : ", ")) - -void gen_trees_header() -{ - FILE *header = fopen("trees.h", "w"); - int i; - - Assert (header != NULL, "Can't open trees.h"); - fprintf(header, - "/* header created automatically with -DGEN_TREES_H */\n\n"); - - fprintf(header, "local const ct_data static_ltree[L_CODES+2] = {\n"); - for (i = 0; i < L_CODES+2; i++) { - fprintf(header, "{{%3u},{%3u}}%s", static_ltree[i].Code, - static_ltree[i].Len, SEPARATOR(i, L_CODES+1, 5)); - } - - fprintf(header, "local const ct_data static_dtree[D_CODES] = {\n"); - for (i = 0; i < D_CODES; i++) { - fprintf(header, "{{%2u},{%2u}}%s", static_dtree[i].Code, - static_dtree[i].Len, SEPARATOR(i, D_CODES-1, 5)); - } - - fprintf(header, "const uch ZLIB_INTERNAL _dist_code[DIST_CODE_LEN] = {\n"); - for (i = 0; i < DIST_CODE_LEN; i++) { - fprintf(header, "%2u%s", _dist_code[i], - SEPARATOR(i, DIST_CODE_LEN-1, 20)); - } - - fprintf(header, - "const uch ZLIB_INTERNAL _length_code[MAX_MATCH-MIN_MATCH+1]= {\n"); - for (i = 0; i < MAX_MATCH-MIN_MATCH+1; i++) { - fprintf(header, "%2u%s", _length_code[i], - SEPARATOR(i, MAX_MATCH-MIN_MATCH, 20)); - } - - fprintf(header, "local const int base_length[LENGTH_CODES] = {\n"); - for (i = 0; i < LENGTH_CODES; i++) { - fprintf(header, "%1u%s", base_length[i], - SEPARATOR(i, LENGTH_CODES-1, 20)); - } - - fprintf(header, "local const int base_dist[D_CODES] = {\n"); - for (i = 0; i < D_CODES; i++) { - fprintf(header, "%5u%s", base_dist[i], - SEPARATOR(i, D_CODES-1, 10)); - } - - fclose(header); -} -#endif /* GEN_TREES_H */ - -/* =========================================================================== - * Initialize the tree data structures for a new zlib stream. - */ -void ZLIB_INTERNAL _tr_init(s) - deflate_state *s; -{ - tr_static_init(); - - s->l_desc.dyn_tree = s->dyn_ltree; - s->l_desc.stat_desc = &static_l_desc; - - s->d_desc.dyn_tree = s->dyn_dtree; - s->d_desc.stat_desc = &static_d_desc; - - s->bl_desc.dyn_tree = s->bl_tree; - s->bl_desc.stat_desc = &static_bl_desc; - - s->bi_buf = 0; - s->bi_valid = 0; -#ifdef DEBUG - s->compressed_len = 0L; - s->bits_sent = 0L; -#endif - - /* Initialize the first block of the first file: */ - init_block(s); -} - -/* =========================================================================== - * Initialize a new block. - */ -local void init_block(s) - deflate_state *s; -{ - int n; /* iterates over tree elements */ - - /* Initialize the trees. */ - for (n = 0; n < L_CODES; n++) s->dyn_ltree[n].Freq = 0; - for (n = 0; n < D_CODES; n++) s->dyn_dtree[n].Freq = 0; - for (n = 0; n < BL_CODES; n++) s->bl_tree[n].Freq = 0; - - s->dyn_ltree[END_BLOCK].Freq = 1; - s->opt_len = s->static_len = 0L; - s->last_lit = s->matches = 0; -} - -#define SMALLEST 1 -/* Index within the heap array of least frequent node in the Huffman tree */ - - -/* =========================================================================== - * Remove the smallest element from the heap and recreate the heap with - * one less element. Updates heap and heap_len. - */ -#define pqremove(s, tree, top) \ -{\ - top = s->heap[SMALLEST]; \ - s->heap[SMALLEST] = s->heap[s->heap_len--]; \ - pqdownheap(s, tree, SMALLEST); \ -} - -/* =========================================================================== - * Compares to subtrees, using the tree depth as tie breaker when - * the subtrees have equal frequency. This minimizes the worst case length. - */ -#define smaller(tree, n, m, depth) \ - (tree[n].Freq < tree[m].Freq || \ - (tree[n].Freq == tree[m].Freq && depth[n] <= depth[m])) - -/* =========================================================================== - * Restore the heap property by moving down the tree starting at node k, - * exchanging a node with the smallest of its two sons if necessary, stopping - * when the heap property is re-established (each father smaller than its - * two sons). - */ -local void pqdownheap(s, tree, k) - deflate_state *s; - ct_data *tree; /* the tree to restore */ - int k; /* node to move down */ -{ - int v = s->heap[k]; - int j = k << 1; /* left son of k */ - while (j <= s->heap_len) { - /* Set j to the smallest of the two sons: */ - if (j < s->heap_len && - smaller(tree, s->heap[j+1], s->heap[j], s->depth)) { - j++; - } - /* Exit if v is smaller than both sons */ - if (smaller(tree, v, s->heap[j], s->depth)) break; - - /* Exchange v with the smallest son */ - s->heap[k] = s->heap[j]; k = j; - - /* And continue down the tree, setting j to the left son of k */ - j <<= 1; - } - s->heap[k] = v; -} - -/* =========================================================================== - * Compute the optimal bit lengths for a tree and update the total bit length - * for the current block. - * IN assertion: the fields freq and dad are set, heap[heap_max] and - * above are the tree nodes sorted by increasing frequency. - * OUT assertions: the field len is set to the optimal bit length, the - * array bl_count contains the frequencies for each bit length. - * The length opt_len is updated; static_len is also updated if stree is - * not null. - */ -local void gen_bitlen(s, desc) - deflate_state *s; - tree_desc *desc; /* the tree descriptor */ -{ - ct_data *tree = desc->dyn_tree; - int max_code = desc->max_code; - const ct_data *stree = desc->stat_desc->static_tree; - const intf *extra = desc->stat_desc->extra_bits; - int base = desc->stat_desc->extra_base; - int max_length = desc->stat_desc->max_length; - int h; /* heap index */ - int n, m; /* iterate over the tree elements */ - int bits; /* bit length */ - int xbits; /* extra bits */ - ush f; /* frequency */ - int overflow = 0; /* number of elements with bit length too large */ - - for (bits = 0; bits <= MAX_BITS; bits++) s->bl_count[bits] = 0; - - /* In a first pass, compute the optimal bit lengths (which may - * overflow in the case of the bit length tree). - */ - tree[s->heap[s->heap_max]].Len = 0; /* root of the heap */ - - for (h = s->heap_max+1; h < HEAP_SIZE; h++) { - n = s->heap[h]; - bits = tree[tree[n].Dad].Len + 1; - if (bits > max_length) bits = max_length, overflow++; - tree[n].Len = (ush)bits; - /* We overwrite tree[n].Dad which is no longer needed */ - - if (n > max_code) continue; /* not a leaf node */ - - s->bl_count[bits]++; - xbits = 0; - if (n >= base) xbits = extra[n-base]; - f = tree[n].Freq; - s->opt_len += (ulg)f * (bits + xbits); - if (stree) s->static_len += (ulg)f * (stree[n].Len + xbits); - } - if (overflow == 0) return; - - Trace((stderr,"\nbit length overflow\n")); - /* This happens for example on obj2 and pic of the Calgary corpus */ - - /* Find the first bit length which could increase: */ - do { - bits = max_length-1; - while (s->bl_count[bits] == 0) bits--; - s->bl_count[bits]--; /* move one leaf down the tree */ - s->bl_count[bits+1] += 2; /* move one overflow item as its brother */ - s->bl_count[max_length]--; - /* The brother of the overflow item also moves one step up, - * but this does not affect bl_count[max_length] - */ - overflow -= 2; - } while (overflow > 0); - - /* Now recompute all bit lengths, scanning in increasing frequency. - * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all - * lengths instead of fixing only the wrong ones. This idea is taken - * from 'ar' written by Haruhiko Okumura.) - */ - for (bits = max_length; bits != 0; bits--) { - n = s->bl_count[bits]; - while (n != 0) { - m = s->heap[--h]; - if (m > max_code) continue; - if ((unsigned) tree[m].Len != (unsigned) bits) { - Trace((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits)); - s->opt_len += ((long)bits - (long)tree[m].Len) - *(long)tree[m].Freq; - tree[m].Len = (ush)bits; - } - n--; - } - } -} - -/* =========================================================================== - * Generate the codes for a given tree and bit counts (which need not be - * optimal). - * IN assertion: the array bl_count contains the bit length statistics for - * the given tree and the field len is set for all tree elements. - * OUT assertion: the field code is set for all tree elements of non - * zero code length. - */ -local void gen_codes (tree, max_code, bl_count) - ct_data *tree; /* the tree to decorate */ - int max_code; /* largest code with non zero frequency */ - ushf *bl_count; /* number of codes at each bit length */ -{ - ush next_code[MAX_BITS+1]; /* next code value for each bit length */ - ush code = 0; /* running code value */ - int bits; /* bit index */ - int n; /* code index */ - - /* The distribution counts are first used to generate the code values - * without bit reversal. - */ - for (bits = 1; bits <= MAX_BITS; bits++) { - next_code[bits] = code = (code + bl_count[bits-1]) << 1; - } - /* Check that the bit counts in bl_count are consistent. The last code - * must be all ones. - */ - Assert (code + bl_count[MAX_BITS]-1 == (1<dyn_tree; - const ct_data *stree = desc->stat_desc->static_tree; - int elems = desc->stat_desc->elems; - int n, m; /* iterate over heap elements */ - int max_code = -1; /* largest code with non zero frequency */ - int node; /* new node being created */ - - /* Construct the initial heap, with least frequent element in - * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1]. - * heap[0] is not used. - */ - s->heap_len = 0, s->heap_max = HEAP_SIZE; - - for (n = 0; n < elems; n++) { - if (tree[n].Freq != 0) { - s->heap[++(s->heap_len)] = max_code = n; - s->depth[n] = 0; - } else { - tree[n].Len = 0; - } - } - - /* The pkzip format requires that at least one distance code exists, - * and that at least one bit should be sent even if there is only one - * possible code. So to avoid special checks later on we force at least - * two codes of non zero frequency. - */ - while (s->heap_len < 2) { - node = s->heap[++(s->heap_len)] = (max_code < 2 ? ++max_code : 0); - tree[node].Freq = 1; - s->depth[node] = 0; - s->opt_len--; if (stree) s->static_len -= stree[node].Len; - /* node is 0 or 1 so it does not have extra bits */ - } - desc->max_code = max_code; - - /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree, - * establish sub-heaps of increasing lengths: - */ - for (n = s->heap_len/2; n >= 1; n--) pqdownheap(s, tree, n); - - /* Construct the Huffman tree by repeatedly combining the least two - * frequent nodes. - */ - node = elems; /* next internal node of the tree */ - do { - pqremove(s, tree, n); /* n = node of least frequency */ - m = s->heap[SMALLEST]; /* m = node of next least frequency */ - - s->heap[--(s->heap_max)] = n; /* keep the nodes sorted by frequency */ - s->heap[--(s->heap_max)] = m; - - /* Create a new node father of n and m */ - tree[node].Freq = tree[n].Freq + tree[m].Freq; - s->depth[node] = (uch)((s->depth[n] >= s->depth[m] ? - s->depth[n] : s->depth[m]) + 1); - tree[n].Dad = tree[m].Dad = (ush)node; -#ifdef DUMP_BL_TREE - if (tree == s->bl_tree) { - fprintf(stderr,"\nnode %d(%d), sons %d(%d) %d(%d)", - node, tree[node].Freq, n, tree[n].Freq, m, tree[m].Freq); - } -#endif - /* and insert the new node in the heap */ - s->heap[SMALLEST] = node++; - pqdownheap(s, tree, SMALLEST); - - } while (s->heap_len >= 2); - - s->heap[--(s->heap_max)] = s->heap[SMALLEST]; - - /* At this point, the fields freq and dad are set. We can now - * generate the bit lengths. - */ - gen_bitlen(s, (tree_desc *)desc); - - /* The field len is now set, we can generate the bit codes */ - gen_codes ((ct_data *)tree, max_code, s->bl_count); -} - -/* =========================================================================== - * Scan a literal or distance tree to determine the frequencies of the codes - * in the bit length tree. - */ -local void scan_tree (s, tree, max_code) - deflate_state *s; - ct_data *tree; /* the tree to be scanned */ - int max_code; /* and its largest code of non zero frequency */ -{ - int n; /* iterates over all tree elements */ - int prevlen = -1; /* last emitted length */ - int curlen; /* length of current code */ - int nextlen = tree[0].Len; /* length of next code */ - int count = 0; /* repeat count of the current code */ - int max_count = 7; /* max repeat count */ - int min_count = 4; /* min repeat count */ - - if (nextlen == 0) max_count = 138, min_count = 3; - tree[max_code+1].Len = (ush)0xffff; /* guard */ - - for (n = 0; n <= max_code; n++) { - curlen = nextlen; nextlen = tree[n+1].Len; - if (++count < max_count && curlen == nextlen) { - continue; - } else if (count < min_count) { - s->bl_tree[curlen].Freq += count; - } else if (curlen != 0) { - if (curlen != prevlen) s->bl_tree[curlen].Freq++; - s->bl_tree[REP_3_6].Freq++; - } else if (count <= 10) { - s->bl_tree[REPZ_3_10].Freq++; - } else { - s->bl_tree[REPZ_11_138].Freq++; - } - count = 0; prevlen = curlen; - if (nextlen == 0) { - max_count = 138, min_count = 3; - } else if (curlen == nextlen) { - max_count = 6, min_count = 3; - } else { - max_count = 7, min_count = 4; - } - } -} - -/* =========================================================================== - * Send a literal or distance tree in compressed form, using the codes in - * bl_tree. - */ -local void send_tree (s, tree, max_code) - deflate_state *s; - ct_data *tree; /* the tree to be scanned */ - int max_code; /* and its largest code of non zero frequency */ -{ - int n; /* iterates over all tree elements */ - int prevlen = -1; /* last emitted length */ - int curlen; /* length of current code */ - int nextlen = tree[0].Len; /* length of next code */ - int count = 0; /* repeat count of the current code */ - int max_count = 7; /* max repeat count */ - int min_count = 4; /* min repeat count */ - - /* tree[max_code+1].Len = -1; */ /* guard already set */ - if (nextlen == 0) max_count = 138, min_count = 3; - - for (n = 0; n <= max_code; n++) { - curlen = nextlen; nextlen = tree[n+1].Len; - if (++count < max_count && curlen == nextlen) { - continue; - } else if (count < min_count) { - do { send_code(s, curlen, s->bl_tree); } while (--count != 0); - - } else if (curlen != 0) { - if (curlen != prevlen) { - send_code(s, curlen, s->bl_tree); count--; - } - Assert(count >= 3 && count <= 6, " 3_6?"); - send_code(s, REP_3_6, s->bl_tree); send_bits(s, count-3, 2); - - } else if (count <= 10) { - send_code(s, REPZ_3_10, s->bl_tree); send_bits(s, count-3, 3); - - } else { - send_code(s, REPZ_11_138, s->bl_tree); send_bits(s, count-11, 7); - } - count = 0; prevlen = curlen; - if (nextlen == 0) { - max_count = 138, min_count = 3; - } else if (curlen == nextlen) { - max_count = 6, min_count = 3; - } else { - max_count = 7, min_count = 4; - } - } -} - -/* =========================================================================== - * Construct the Huffman tree for the bit lengths and return the index in - * bl_order of the last bit length code to send. - */ -local int build_bl_tree(s) - deflate_state *s; -{ - int max_blindex; /* index of last bit length code of non zero freq */ - - /* Determine the bit length frequencies for literal and distance trees */ - scan_tree(s, (ct_data *)s->dyn_ltree, s->l_desc.max_code); - scan_tree(s, (ct_data *)s->dyn_dtree, s->d_desc.max_code); - - /* Build the bit length tree: */ - build_tree(s, (tree_desc *)(&(s->bl_desc))); - /* opt_len now includes the length of the tree representations, except - * the lengths of the bit lengths codes and the 5+5+4 bits for the counts. - */ - - /* Determine the number of bit length codes to send. The pkzip format - * requires that at least 4 bit length codes be sent. (appnote.txt says - * 3 but the actual value used is 4.) - */ - for (max_blindex = BL_CODES-1; max_blindex >= 3; max_blindex--) { - if (s->bl_tree[bl_order[max_blindex]].Len != 0) break; - } - /* Update opt_len to include the bit length tree and counts */ - s->opt_len += 3*(max_blindex+1) + 5+5+4; - Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld", - s->opt_len, s->static_len)); - - return max_blindex; -} - -/* =========================================================================== - * Send the header for a block using dynamic Huffman trees: the counts, the - * lengths of the bit length codes, the literal tree and the distance tree. - * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4. - */ -local void send_all_trees(s, lcodes, dcodes, blcodes) - deflate_state *s; - int lcodes, dcodes, blcodes; /* number of codes for each tree */ -{ - int rank; /* index in bl_order */ - - Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, "not enough codes"); - Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES, - "too many codes"); - Tracev((stderr, "\nbl counts: ")); - send_bits(s, lcodes-257, 5); /* not +255 as stated in appnote.txt */ - send_bits(s, dcodes-1, 5); - send_bits(s, blcodes-4, 4); /* not -3 as stated in appnote.txt */ - for (rank = 0; rank < blcodes; rank++) { - Tracev((stderr, "\nbl code %2d ", bl_order[rank])); - send_bits(s, s->bl_tree[bl_order[rank]].Len, 3); - } - Tracev((stderr, "\nbl tree: sent %ld", s->bits_sent)); - - send_tree(s, (ct_data *)s->dyn_ltree, lcodes-1); /* literal tree */ - Tracev((stderr, "\nlit tree: sent %ld", s->bits_sent)); - - send_tree(s, (ct_data *)s->dyn_dtree, dcodes-1); /* distance tree */ - Tracev((stderr, "\ndist tree: sent %ld", s->bits_sent)); -} - -/* =========================================================================== - * Send a stored block - */ -void ZLIB_INTERNAL _tr_stored_block(s, buf, stored_len, last) - deflate_state *s; - charf *buf; /* input block */ - ulg stored_len; /* length of input block */ - int last; /* one if this is the last block for a file */ -{ - send_bits(s, (STORED_BLOCK<<1)+last, 3); /* send block type */ -#ifdef DEBUG - s->compressed_len = (s->compressed_len + 3 + 7) & (ulg)~7L; - s->compressed_len += (stored_len + 4) << 3; -#endif - copy_block(s, buf, (unsigned)stored_len, 1); /* with header */ -} - -/* =========================================================================== - * Flush the bits in the bit buffer to pending output (leaves at most 7 bits) - */ -void ZLIB_INTERNAL _tr_flush_bits(s) - deflate_state *s; -{ - bi_flush(s); -} - -/* =========================================================================== - * Send one empty static block to give enough lookahead for inflate. - * This takes 10 bits, of which 7 may remain in the bit buffer. - */ -void ZLIB_INTERNAL _tr_align(s) - deflate_state *s; -{ - send_bits(s, STATIC_TREES<<1, 3); - send_code(s, END_BLOCK, static_ltree); -#ifdef DEBUG - s->compressed_len += 10L; /* 3 for block type, 7 for EOB */ -#endif - bi_flush(s); -} - -/* =========================================================================== - * Determine the best encoding for the current block: dynamic trees, static - * trees or store, and output the encoded block to the zip file. - */ -void ZLIB_INTERNAL _tr_flush_block(s, buf, stored_len, last) - deflate_state *s; - charf *buf; /* input block, or NULL if too old */ - ulg stored_len; /* length of input block */ - int last; /* one if this is the last block for a file */ -{ - ulg opt_lenb, static_lenb; /* opt_len and static_len in bytes */ - int max_blindex = 0; /* index of last bit length code of non zero freq */ - - /* Build the Huffman trees unless a stored block is forced */ - if (s->level > 0) { - - /* Check if the file is binary or text */ - if (s->strm->data_type == Z_UNKNOWN) - s->strm->data_type = detect_data_type(s); - - /* Construct the literal and distance trees */ - build_tree(s, (tree_desc *)(&(s->l_desc))); - Tracev((stderr, "\nlit data: dyn %ld, stat %ld", s->opt_len, - s->static_len)); - - build_tree(s, (tree_desc *)(&(s->d_desc))); - Tracev((stderr, "\ndist data: dyn %ld, stat %ld", s->opt_len, - s->static_len)); - /* At this point, opt_len and static_len are the total bit lengths of - * the compressed block data, excluding the tree representations. - */ - - /* Build the bit length tree for the above two trees, and get the index - * in bl_order of the last bit length code to send. - */ - max_blindex = build_bl_tree(s); - - /* Determine the best encoding. Compute the block lengths in bytes. */ - opt_lenb = (s->opt_len+3+7)>>3; - static_lenb = (s->static_len+3+7)>>3; - - Tracev((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u ", - opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len, - s->last_lit)); - - if (static_lenb <= opt_lenb) opt_lenb = static_lenb; - - } else { - Assert(buf != (char*)0, "lost buf"); - opt_lenb = static_lenb = stored_len + 5; /* force a stored block */ - } - -#ifdef FORCE_STORED - if (buf != (char*)0) { /* force stored block */ -#else - if (stored_len+4 <= opt_lenb && buf != (char*)0) { - /* 4: two words for the lengths */ -#endif - /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE. - * Otherwise we can't have processed more than WSIZE input bytes since - * the last block flush, because compression would have been - * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to - * transform a block into a stored block. - */ - _tr_stored_block(s, buf, stored_len, last); - -#ifdef FORCE_STATIC - } else if (static_lenb >= 0) { /* force static trees */ -#else - } else if (s->strategy == Z_FIXED || static_lenb == opt_lenb) { -#endif - send_bits(s, (STATIC_TREES<<1)+last, 3); - compress_block(s, (const ct_data *)static_ltree, - (const ct_data *)static_dtree); -#ifdef DEBUG - s->compressed_len += 3 + s->static_len; -#endif - } else { - send_bits(s, (DYN_TREES<<1)+last, 3); - send_all_trees(s, s->l_desc.max_code+1, s->d_desc.max_code+1, - max_blindex+1); - compress_block(s, (const ct_data *)s->dyn_ltree, - (const ct_data *)s->dyn_dtree); -#ifdef DEBUG - s->compressed_len += 3 + s->opt_len; -#endif - } - Assert (s->compressed_len == s->bits_sent, "bad compressed size"); - /* The above check is made mod 2^32, for files larger than 512 MB - * and uLong implemented on 32 bits. - */ - init_block(s); - - if (last) { - bi_windup(s); -#ifdef DEBUG - s->compressed_len += 7; /* align on byte boundary */ -#endif - } - Tracev((stderr,"\ncomprlen %lu(%lu) ", s->compressed_len>>3, - s->compressed_len-7*last)); -} - -/* =========================================================================== - * Save the match info and tally the frequency counts. Return true if - * the current block must be flushed. - */ -int ZLIB_INTERNAL _tr_tally (s, dist, lc) - deflate_state *s; - unsigned dist; /* distance of matched string */ - unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */ -{ - s->d_buf[s->last_lit] = (ush)dist; - s->l_buf[s->last_lit++] = (uch)lc; - if (dist == 0) { - /* lc is the unmatched char */ - s->dyn_ltree[lc].Freq++; - } else { - s->matches++; - /* Here, lc is the match length - MIN_MATCH */ - dist--; /* dist = match distance - 1 */ - Assert((ush)dist < (ush)MAX_DIST(s) && - (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) && - (ush)d_code(dist) < (ush)D_CODES, "_tr_tally: bad match"); - - s->dyn_ltree[_length_code[lc]+LITERALS+1].Freq++; - s->dyn_dtree[d_code(dist)].Freq++; - } - -#ifdef TRUNCATE_BLOCK - /* Try to guess if it is profitable to stop the current block here */ - if ((s->last_lit & 0x1fff) == 0 && s->level > 2) { - /* Compute an upper bound for the compressed length */ - ulg out_length = (ulg)s->last_lit*8L; - ulg in_length = (ulg)((long)s->strstart - s->block_start); - int dcode; - for (dcode = 0; dcode < D_CODES; dcode++) { - out_length += (ulg)s->dyn_dtree[dcode].Freq * - (5L+extra_dbits[dcode]); - } - out_length >>= 3; - Tracev((stderr,"\nlast_lit %u, in %ld, out ~%ld(%ld%%) ", - s->last_lit, in_length, out_length, - 100L - out_length*100L/in_length)); - if (s->matches < s->last_lit/2 && out_length < in_length/2) return 1; - } -#endif - return (s->last_lit == s->lit_bufsize-1); - /* We avoid equality with lit_bufsize because of wraparound at 64K - * on 16 bit machines and because stored blocks are restricted to - * 64K-1 bytes. - */ -} - -/* =========================================================================== - * Send the block data compressed using the given Huffman trees - */ -local void compress_block(s, ltree, dtree) - deflate_state *s; - const ct_data *ltree; /* literal tree */ - const ct_data *dtree; /* distance tree */ -{ - unsigned dist; /* distance of matched string */ - int lc; /* match length or unmatched char (if dist == 0) */ - unsigned lx = 0; /* running index in l_buf */ - unsigned code; /* the code to send */ - int extra; /* number of extra bits to send */ - - if (s->last_lit != 0) do { - dist = s->d_buf[lx]; - lc = s->l_buf[lx++]; - if (dist == 0) { - send_code(s, lc, ltree); /* send a literal byte */ - Tracecv(isgraph(lc), (stderr," '%c' ", lc)); - } else { - /* Here, lc is the match length - MIN_MATCH */ - code = _length_code[lc]; - send_code(s, code+LITERALS+1, ltree); /* send the length code */ - extra = extra_lbits[code]; - if (extra != 0) { - lc -= base_length[code]; - send_bits(s, lc, extra); /* send the extra length bits */ - } - dist--; /* dist is now the match distance - 1 */ - code = d_code(dist); - Assert (code < D_CODES, "bad d_code"); - - send_code(s, code, dtree); /* send the distance code */ - extra = extra_dbits[code]; - if (extra != 0) { - dist -= base_dist[code]; - send_bits(s, dist, extra); /* send the extra distance bits */ - } - } /* literal or match pair ? */ - - /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */ - Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx, - "pendingBuf overflow"); - - } while (lx < s->last_lit); - - send_code(s, END_BLOCK, ltree); -} - -/* =========================================================================== - * Check if the data type is TEXT or BINARY, using the following algorithm: - * - TEXT if the two conditions below are satisfied: - * a) There are no non-portable control characters belonging to the - * "black list" (0..6, 14..25, 28..31). - * b) There is at least one printable character belonging to the - * "white list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255). - * - BINARY otherwise. - * - The following partially-portable control characters form a - * "gray list" that is ignored in this detection algorithm: - * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}). - * IN assertion: the fields Freq of dyn_ltree are set. - */ -local int detect_data_type(s) - deflate_state *s; -{ - /* black_mask is the bit mask of black-listed bytes - * set bits 0..6, 14..25, and 28..31 - * 0xf3ffc07f = binary 11110011111111111100000001111111 - */ - unsigned long black_mask = 0xf3ffc07fUL; - int n; - - /* Check for non-textual ("black-listed") bytes. */ - for (n = 0; n <= 31; n++, black_mask >>= 1) - if ((black_mask & 1) && (s->dyn_ltree[n].Freq != 0)) - return Z_BINARY; - - /* Check for textual ("white-listed") bytes. */ - if (s->dyn_ltree[9].Freq != 0 || s->dyn_ltree[10].Freq != 0 - || s->dyn_ltree[13].Freq != 0) - return Z_TEXT; - for (n = 32; n < LITERALS; n++) - if (s->dyn_ltree[n].Freq != 0) - return Z_TEXT; - - /* There are no "black-listed" or "white-listed" bytes: - * this stream either is empty or has tolerated ("gray-listed") bytes only. - */ - return Z_BINARY; -} - -/* =========================================================================== - * Reverse the first len bits of a code, using straightforward code (a faster - * method would use a table) - * IN assertion: 1 <= len <= 15 - */ -local unsigned bi_reverse(code, len) - unsigned code; /* the value to invert */ - int len; /* its bit length */ -{ - register unsigned res = 0; - do { - res |= code & 1; - code >>= 1, res <<= 1; - } while (--len > 0); - return res >> 1; -} - -/* =========================================================================== - * Flush the bit buffer, keeping at most 7 bits in it. - */ -local void bi_flush(s) - deflate_state *s; -{ - if (s->bi_valid == 16) { - put_short(s, s->bi_buf); - s->bi_buf = 0; - s->bi_valid = 0; - } else if (s->bi_valid >= 8) { - put_byte(s, (Byte)s->bi_buf); - s->bi_buf >>= 8; - s->bi_valid -= 8; - } -} - -/* =========================================================================== - * Flush the bit buffer and align the output on a byte boundary - */ -local void bi_windup(s) - deflate_state *s; -{ - if (s->bi_valid > 8) { - put_short(s, s->bi_buf); - } else if (s->bi_valid > 0) { - put_byte(s, (Byte)s->bi_buf); - } - s->bi_buf = 0; - s->bi_valid = 0; -#ifdef DEBUG - s->bits_sent = (s->bits_sent+7) & ~7; -#endif -} - -/* =========================================================================== - * Copy a stored block, storing first the length and its - * one's complement if requested. - */ -local void copy_block(s, buf, len, header) - deflate_state *s; - charf *buf; /* the input data */ - unsigned len; /* its length */ - int header; /* true if block header must be written */ -{ - bi_windup(s); /* align on byte boundary */ - - if (header) { - put_short(s, (ush)len); - put_short(s, (ush)~len); -#ifdef DEBUG - s->bits_sent += 2*16; -#endif - } -#ifdef DEBUG - s->bits_sent += (ulg)len<<3; -#endif - while (len--) { - put_byte(s, *buf++); - } -} diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@trees.c.blob b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@trees.c.blob deleted file mode 100644 index a3d4f57df39f57028f9820b02438b2eafed64cb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25050 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 TGL6sgLaf9oQbv4=v`GGMplF^% diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@trees.h b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@trees.h deleted file mode 100644 index d35639d82..000000000 --- a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@trees.h +++ /dev/null @@ -1,128 +0,0 @@ -/* header created automatically with -DGEN_TREES_H */ - -local const ct_data static_ltree[L_CODES+2] = { -{{ 12},{ 8}}, {{140},{ 8}}, {{ 76},{ 8}}, {{204},{ 8}}, {{ 44},{ 8}}, -{{172},{ 8}}, {{108},{ 8}}, {{236},{ 8}}, {{ 28},{ 8}}, {{156},{ 8}}, -{{ 92},{ 8}}, {{220},{ 8}}, {{ 60},{ 8}}, {{188},{ 8}}, {{124},{ 8}}, -{{252},{ 8}}, {{ 2},{ 8}}, {{130},{ 8}}, {{ 66},{ 8}}, {{194},{ 8}}, -{{ 34},{ 8}}, {{162},{ 8}}, {{ 98},{ 8}}, {{226},{ 8}}, {{ 18},{ 8}}, -{{146},{ 8}}, {{ 82},{ 8}}, {{210},{ 8}}, {{ 50},{ 8}}, {{178},{ 8}}, -{{114},{ 8}}, {{242},{ 8}}, {{ 10},{ 8}}, {{138},{ 8}}, {{ 74},{ 8}}, -{{202},{ 8}}, {{ 42},{ 8}}, {{170},{ 8}}, {{106},{ 8}}, {{234},{ 8}}, -{{ 26},{ 8}}, {{154},{ 8}}, {{ 90},{ 8}}, {{218},{ 8}}, {{ 58},{ 8}}, -{{186},{ 8}}, {{122},{ 8}}, {{250},{ 8}}, {{ 6},{ 8}}, {{134},{ 8}}, -{{ 70},{ 8}}, {{198},{ 8}}, {{ 38},{ 8}}, {{166},{ 8}}, {{102},{ 8}}, -{{230},{ 8}}, {{ 22},{ 8}}, {{150},{ 8}}, {{ 86},{ 8}}, {{214},{ 8}}, -{{ 54},{ 8}}, {{182},{ 8}}, {{118},{ 8}}, {{246},{ 8}}, {{ 14},{ 8}}, -{{142},{ 8}}, {{ 78},{ 8}}, {{206},{ 8}}, {{ 46},{ 8}}, {{174},{ 8}}, -{{110},{ 8}}, {{238},{ 8}}, {{ 30},{ 8}}, {{158},{ 8}}, {{ 94},{ 8}}, -{{222},{ 8}}, {{ 62},{ 8}}, {{190},{ 8}}, {{126},{ 8}}, {{254},{ 8}}, -{{ 1},{ 8}}, {{129},{ 8}}, {{ 65},{ 8}}, {{193},{ 8}}, {{ 33},{ 8}}, -{{161},{ 8}}, {{ 97},{ 8}}, {{225},{ 8}}, {{ 17},{ 8}}, {{145},{ 8}}, -{{ 81},{ 8}}, {{209},{ 8}}, {{ 49},{ 8}}, {{177},{ 8}}, {{113},{ 8}}, -{{241},{ 8}}, {{ 9},{ 8}}, {{137},{ 8}}, {{ 73},{ 8}}, {{201},{ 8}}, -{{ 41},{ 8}}, {{169},{ 8}}, {{105},{ 8}}, {{233},{ 8}}, {{ 25},{ 8}}, -{{153},{ 8}}, {{ 89},{ 8}}, {{217},{ 8}}, {{ 57},{ 8}}, {{185},{ 8}}, -{{121},{ 8}}, {{249},{ 8}}, {{ 5},{ 8}}, {{133},{ 8}}, {{ 69},{ 8}}, -{{197},{ 8}}, {{ 37},{ 8}}, {{165},{ 8}}, {{101},{ 8}}, {{229},{ 8}}, -{{ 21},{ 8}}, {{149},{ 8}}, {{ 85},{ 8}}, {{213},{ 8}}, {{ 53},{ 8}}, -{{181},{ 8}}, {{117},{ 8}}, {{245},{ 8}}, {{ 13},{ 8}}, {{141},{ 8}}, -{{ 77},{ 8}}, {{205},{ 8}}, {{ 45},{ 8}}, {{173},{ 8}}, {{109},{ 8}}, -{{237},{ 8}}, {{ 29},{ 8}}, {{157},{ 8}}, {{ 93},{ 8}}, {{221},{ 8}}, -{{ 61},{ 8}}, {{189},{ 8}}, {{125},{ 8}}, {{253},{ 8}}, {{ 19},{ 9}}, -{{275},{ 9}}, {{147},{ 9}}, {{403},{ 9}}, {{ 83},{ 9}}, {{339},{ 9}}, -{{211},{ 9}}, {{467},{ 9}}, {{ 51},{ 9}}, {{307},{ 9}}, {{179},{ 9}}, -{{435},{ 9}}, {{115},{ 9}}, {{371},{ 9}}, {{243},{ 9}}, {{499},{ 9}}, -{{ 11},{ 9}}, {{267},{ 9}}, {{139},{ 9}}, {{395},{ 9}}, {{ 75},{ 9}}, -{{331},{ 9}}, {{203},{ 9}}, {{459},{ 9}}, {{ 43},{ 9}}, {{299},{ 9}}, -{{171},{ 9}}, {{427},{ 9}}, {{107},{ 9}}, {{363},{ 9}}, {{235},{ 9}}, -{{491},{ 9}}, {{ 27},{ 9}}, {{283},{ 9}}, {{155},{ 9}}, {{411},{ 9}}, -{{ 91},{ 9}}, {{347},{ 9}}, {{219},{ 9}}, {{475},{ 9}}, {{ 59},{ 9}}, -{{315},{ 9}}, {{187},{ 9}}, {{443},{ 9}}, {{123},{ 9}}, {{379},{ 9}}, -{{251},{ 9}}, {{507},{ 9}}, {{ 7},{ 9}}, {{263},{ 9}}, {{135},{ 9}}, -{{391},{ 9}}, {{ 71},{ 9}}, {{327},{ 9}}, {{199},{ 9}}, {{455},{ 9}}, -{{ 39},{ 9}}, {{295},{ 9}}, {{167},{ 9}}, {{423},{ 9}}, {{103},{ 9}}, -{{359},{ 9}}, {{231},{ 9}}, {{487},{ 9}}, {{ 23},{ 9}}, {{279},{ 9}}, -{{151},{ 9}}, {{407},{ 9}}, {{ 87},{ 9}}, {{343},{ 9}}, {{215},{ 9}}, -{{471},{ 9}}, {{ 55},{ 9}}, {{311},{ 9}}, {{183},{ 9}}, {{439},{ 9}}, -{{119},{ 9}}, {{375},{ 9}}, {{247},{ 9}}, {{503},{ 9}}, {{ 15},{ 9}}, -{{271},{ 9}}, {{143},{ 9}}, {{399},{ 9}}, {{ 79},{ 9}}, {{335},{ 9}}, -{{207},{ 9}}, {{463},{ 9}}, {{ 47},{ 9}}, {{303},{ 9}}, {{175},{ 9}}, -{{431},{ 9}}, {{111},{ 9}}, {{367},{ 9}}, {{239},{ 9}}, {{495},{ 9}}, -{{ 31},{ 9}}, {{287},{ 9}}, {{159},{ 9}}, {{415},{ 9}}, {{ 95},{ 9}}, -{{351},{ 9}}, {{223},{ 9}}, {{479},{ 9}}, {{ 63},{ 9}}, {{319},{ 9}}, -{{191},{ 9}}, {{447},{ 9}}, {{127},{ 9}}, {{383},{ 9}}, {{255},{ 9}}, -{{511},{ 9}}, {{ 0},{ 7}}, {{ 64},{ 7}}, {{ 32},{ 7}}, {{ 96},{ 7}}, -{{ 16},{ 7}}, {{ 80},{ 7}}, {{ 48},{ 7}}, {{112},{ 7}}, {{ 8},{ 7}}, -{{ 72},{ 7}}, {{ 40},{ 7}}, {{104},{ 7}}, {{ 24},{ 7}}, {{ 88},{ 7}}, -{{ 56},{ 7}}, {{120},{ 7}}, {{ 4},{ 7}}, {{ 68},{ 7}}, {{ 36},{ 7}}, -{{100},{ 7}}, {{ 20},{ 7}}, {{ 84},{ 7}}, {{ 52},{ 7}}, {{116},{ 7}}, -{{ 3},{ 8}}, {{131},{ 8}}, {{ 67},{ 8}}, {{195},{ 8}}, {{ 35},{ 8}}, -{{163},{ 8}}, {{ 99},{ 8}}, {{227},{ 8}} -}; - -local const ct_data static_dtree[D_CODES] = { -{{ 0},{ 5}}, {{16},{ 5}}, {{ 8},{ 5}}, {{24},{ 5}}, {{ 4},{ 5}}, -{{20},{ 5}}, {{12},{ 5}}, {{28},{ 5}}, {{ 2},{ 5}}, {{18},{ 5}}, -{{10},{ 5}}, {{26},{ 5}}, {{ 6},{ 5}}, {{22},{ 5}}, {{14},{ 5}}, -{{30},{ 5}}, {{ 1},{ 5}}, {{17},{ 5}}, {{ 9},{ 5}}, {{25},{ 5}}, -{{ 5},{ 5}}, {{21},{ 5}}, {{13},{ 5}}, {{29},{ 5}}, {{ 3},{ 5}}, -{{19},{ 5}}, {{11},{ 5}}, {{27},{ 5}}, {{ 7},{ 5}}, {{23},{ 5}} -}; - -const uch ZLIB_INTERNAL _dist_code[DIST_CODE_LEN] = { - 0, 1, 2, 3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, - 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, -10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, -11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, -12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, -13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, -13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, -14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, -14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, -14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, -15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, -15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, -15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 16, 17, -18, 18, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, -23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, -24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, -26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, -26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, -27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, -27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, -28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, -28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, -28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, -29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, -29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, -29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29 -}; - -const uch ZLIB_INTERNAL _length_code[MAX_MATCH-MIN_MATCH+1]= { - 0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 12, -13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, -17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, -19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, -21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, -22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, -23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, -24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, -25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, -25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, -26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, -26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, -27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28 -}; - -local const int base_length[LENGTH_CODES] = { -0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56, -64, 80, 96, 112, 128, 160, 192, 224, 0 -}; - -local const int base_dist[D_CODES] = { - 0, 1, 2, 3, 4, 6, 8, 12, 16, 24, - 32, 48, 64, 96, 128, 192, 256, 384, 512, 768, - 1024, 1536, 2048, 3072, 4096, 6144, 8192, 12288, 16384, 24576 -}; - diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@trees.h.blob b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@trees.h.blob deleted file mode 100644 index 6491e6429cca3ed233cb9e313563135292974edb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4797 zcmb_fON`r86n!>q7-$hts=}tGAVAePjvY@XEez9{e45aiq)Miw>a-Zgeo5T=6a1M> zf=UHKfW!iU1RD?qBv92AE2IKq!KNF;rb2X4Rv<(rK1D2$SP<^BCtuopNVBl>p6@;H z-goage%_1zc{P*0gb?DYmVr6hv`j8xDV~8%*Wu!piaA3wv0}?*SFudT(y_y>wr4_d zT?0d~GYoKS>RO3&ZH%3ef*#~N$L30!$tk*QR#-(xEUVhu2DVuPa2H^LGcDb!Scpxm z#FJ7ypDPsNxz)okhQXSY&1I!{E}P2bS2NjzQlWS_pUJMJ3hn2GWc)}z31(7pDW3%s z|4AabeB>Z8@&8Dx$?TDWl*}$IuOt&>dSxkpFew#t`IUrkU(93^xndzIA~rM4E==jp z6*W_}>P}STGL=e$(@aJ8R6H%}(UP^v6`)9dp)yl~7A;#>xy`6p#j=WR2eD;UlPjj> zxSHay3Y61ckoCIUa1d8V+%XMtxl$M|D&q2MaUOcWmF)_47dB&2DJrrxg{=pPvxc*w z0H8r|jGF9fB~91dMlgjpU2HlUv>;g%>v99Dtc#7BF1whm$+n}J6q>AY&(uOSQn&T43lk?O# zj^F|Q9fz&}P8hLb!S>s(REK~d)K2IFfKSD_HOtaLJ`3=d7ek^Lip&Y&`A$k3itPbW z4cvhs5_;q8Ra}#R{anmLqj@HBzIn-QR)ym}_pMlJ_lxvLQwztZ`vaM7{r>ScO zG|coR!nSQ%qnFzNQ7hkYxzPo5WS;=T8#id%>2qrDrGX8l){y+L{gtP#4m5Hf2fKjN z2^TpZki5x}V+65DqXzF7$&eM>uicommWUK6R;|(5;^8bJ8gkvGx@k`+2*Y(?e73-w zjB^_`I8KePhJ(5P?<6|yCF{DSj2Qtbo9XF33&t$hpl%NYJeqV}(%zKr?_@f8AZ_`E zH&Y*fhW8)YGeh2#WL>M6Hx}8^8_^ZZ;R58pImxP4x$I!qDtCx7amw&Xpm?^8O{Foe z_QAr}S#LUF0ZeiXB)Gn|bn}=Fw+Z?A(GH+as0SS?VFM0n?FNI7F1mGbR{n72Q$7WQ zz8~FUj=uT*Zu7ll>)W}%?>qDQT@Rtws{XmTx^(58K1&$Ttv_$y{p^|V&c4*z)7<~% zBiGpTXnX73`(KG)c;m!5$AzP`!jP{wm(fg@Daj6&R5&ZGN5Uu2o;`ODw_p~S=VloA zg=fi?;e(qH+#V8REJf;dZ1BEh5>m_!4=eZC1V_>=rT-$a=6CnGW6 zWG(=kkH!Fn4+9tkG8Z8xLf8k3gy)H$81})Uyhu!9J{T_uF@WZyKA0fR%|~ZWBSbZs zra)6o^gNBWQ8YrWvtOM~KK|p&pY?9=tu&%%4p56|5w0Hc;Mzn@xVGN^2t(#fatI)rut?cKX;Ov~U+#V9t0hF2Ncb1j3^7gV~z z)HS!tu!)1othAO-CJRy;QS_tq0UEMfpga8&Bzx!8pZ~abw|=oNeEcLn4&fjB_{Coi z#gpfIpV5oUi;!AVY%YUEyU~V)t@;U)CL57o*AP*Qk1j&Iizqc1?;SsUbNq!1^iO>; zrFW!52PnJ)!?ktG<-hE!>EB=LwV=G1M+(xW6Zwv`%`G-~N|o`M0Oti2uM;xt7;b>5 zbU2-$sWei$r&H-?VD&bK{|l~Tv*K2}>+c$6f+!ruX_~^w z8I0iT+fv&uzkScSz6kKsxCRmIeB#>v$2LCtt*>4kH3*_u7xs}Y*g49^R|HT4Py(PF zC;(7xZk7Qu&d)N0Xyh3@;bESzUw|=TEa5ldzX)T(Sz!1KQGghX32S-ZiCFPb0zrg8 TAdX?5t{&q>X`tZd7G3`ZuNpkq diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@uncompr.c b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@uncompr.c deleted file mode 100644 index 242e9493d..000000000 --- a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@uncompr.c +++ /dev/null @@ -1,59 +0,0 @@ -/* uncompr.c -- decompress a memory buffer - * Copyright (C) 1995-2003, 2010 Jean-loup Gailly. - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* @(#) $Id$ */ - -#define ZLIB_INTERNAL -#include "zlib.h" - -/* =========================================================================== - Decompresses the source buffer into the destination buffer. sourceLen is - the byte length of the source buffer. Upon entry, destLen is the total - size of the destination buffer, which must be large enough to hold the - entire uncompressed data. (The size of the uncompressed data must have - been saved previously by the compressor and transmitted to the decompressor - by some mechanism outside the scope of this compression library.) - Upon exit, destLen is the actual size of the compressed buffer. - - uncompress returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_BUF_ERROR if there was not enough room in the output - buffer, or Z_DATA_ERROR if the input data was corrupted. -*/ -int ZEXPORT uncompress (dest, destLen, source, sourceLen) - Bytef *dest; - uLongf *destLen; - const Bytef *source; - uLong sourceLen; -{ - z_stream stream; - int err; - - stream.next_in = (z_const Bytef *)source; - stream.avail_in = (uInt)sourceLen; - /* Check for source > 64K on 16-bit machine: */ - if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR; - - stream.next_out = dest; - stream.avail_out = (uInt)*destLen; - if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR; - - stream.zalloc = (alloc_func)0; - stream.zfree = (free_func)0; - - err = inflateInit(&stream); - if (err != Z_OK) return err; - - err = inflate(&stream, Z_FINISH); - if (err != Z_STREAM_END) { - inflateEnd(&stream); - if (err == Z_NEED_DICT || (err == Z_BUF_ERROR && stream.avail_in == 0)) - return Z_DATA_ERROR; - return err; - } - *destLen = stream.total_out; - - err = inflateEnd(&stream); - return err; -} diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@uncompr.c.blob b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@uncompr.c.blob deleted file mode 100644 index 1e9fa209c68efb7fa22936723b0b91d5f5c5e4dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4638 zcmb_fU2Ggj9p7~djZRi@qtm$xq)cMRU%I`u&*mCgaTWXS938RmqB|Q`7VWaPJ9jtf z?#^Xq_s$og0OBPT7=l!x3W*nlpf9{osSqjj0jUo~qR{4{edt3`Q2_xeLKWgAG5?wS zw)1hpJ?Zvi=0Csx@BcZoGs@lXX0o>xMOE|)b+K-G)YDVc3S8{@Tu)LP>n`!I#mtg# zQIAsxbA7!%5=%M+1VPSqVc}JW6y+sW`SkDt&!TRX#Vln^4>;3{#M3Ru^vas$D4J$7 zQo~Ghf$0(q=pJ=wnJQXpEtxiw`COrp%&lL7cX-(_vbn60%w<<|`Sncpf>GGIl+R>0 zRtxRa#_W(Gr`6j%I)rcauO#&iN*!o61$dlWh%GF{=D!r5eYyiwvseI0=wbnJ zD|PYqU^*>YZFH21hH_7qHAu!1f4H2q21Jdj&umgE8U7=zsaqA34YI-^F7dl;x~+OZ zS8>xB&`H7+POjoXSaob~magHN7NZY0zZw3HT-TVxWw6+M1n70x&<4naN8{W{T0^95 zUkY{k%V4y6F1iQ-)8}UOR)2)Y*laAGn45*W9$3uRp{wYAql#r*2gqL$8ZU5UBxS|i zH+eg3fvZD!HzoIR9iYZKWgrReTR*t17KL8IB#{9vb>_u%}7;sSI2e=EA3M#M=S z>1oS{p@lZuzp&iJ>ln{ zzxBqoFCRq9c*HjjK#C)=k3<_sGjI$Qr-`PXrV+B03T;pJXd8-#qvwRSJ6AqC0{^M= z%ATRTy86un8#x+aH~45tCJa7zj`-#|+G zQ5}79G&-b?DvLwP(x>+erLa7q15?bAU%@T4s2G$=m{k#i9mI>F%_;!E`I9xGNMM3}uvkj^)Hj`w*udIr4=RnKdWBdO&xq^Udg*vtX3yC8x!>AhwY$MzB%@~^65LWhRIUv(Sub4F)Dq`Tr;mJl- zhHHcd+-ZQBl5pE|lp)gtwaoN5?Dakfcf8h>3Bf83-)YFjkaHg4E~0_YiH)0nf{m$V zIQXNzOt>40kD06yn+`Rdw?iP4_W91V{J?bj%xXgbn`SU$p-|UU#IPSQkE3lPcM*{i z;(=vB7DQoSJ-u$E^Z8s}jDs`5k9CtHkNV(N>1h|caJCe(E1RqLk!?o>PTwx%ku(wv zt_FUn$tQ}yaoa{}d1JW`0)#`g9y?o{&ef}|GYciJ9lKPGIs5}I$4>7YkVVq8RUNYa{U{> z+kO8;ubdj6h@XSG>DNE``ppk={f?Y{YBm9LiNBrsW2OG@t@{Lsco3fv0V<+;{`9XCh~S)c*j1|0Mtb diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@zconf.h b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@zconf.h deleted file mode 100644 index 9987a7755..000000000 --- a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@zconf.h +++ /dev/null @@ -1,511 +0,0 @@ -/* zconf.h -- configuration of the zlib compression library - * Copyright (C) 1995-2013 Jean-loup Gailly. - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* @(#) $Id$ */ - -#ifndef ZCONF_H -#define ZCONF_H - -/* - * If you *really* need a unique prefix for all types and library functions, - * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. - * Even better than compiling with -DZ_PREFIX would be to use configure to set - * this permanently in zconf.h using "./configure --zprefix". - */ -#ifdef Z_PREFIX /* may be set to #if 1 by ./configure */ -# define Z_PREFIX_SET - -/* all linked symbols */ -# define _dist_code z__dist_code -# define _length_code z__length_code -# define _tr_align z__tr_align -# define _tr_flush_bits z__tr_flush_bits -# define _tr_flush_block z__tr_flush_block -# define _tr_init z__tr_init -# define _tr_stored_block z__tr_stored_block -# define _tr_tally z__tr_tally -# define adler32 z_adler32 -# define adler32_combine z_adler32_combine -# define adler32_combine64 z_adler32_combine64 -# ifndef Z_SOLO -# define compress z_compress -# define compress2 z_compress2 -# define compressBound z_compressBound -# endif -# define crc32 z_crc32 -# define crc32_combine z_crc32_combine -# define crc32_combine64 z_crc32_combine64 -# define deflate z_deflate -# define deflateBound z_deflateBound -# define deflateCopy z_deflateCopy -# define deflateEnd z_deflateEnd -# define deflateInit2_ z_deflateInit2_ -# define deflateInit_ z_deflateInit_ -# define deflateParams z_deflateParams -# define deflatePending z_deflatePending -# define deflatePrime z_deflatePrime -# define deflateReset z_deflateReset -# define deflateResetKeep z_deflateResetKeep -# define deflateSetDictionary z_deflateSetDictionary -# define deflateSetHeader z_deflateSetHeader -# define deflateTune z_deflateTune -# define deflate_copyright z_deflate_copyright -# define get_crc_table z_get_crc_table -# ifndef Z_SOLO -# define gz_error z_gz_error -# define gz_intmax z_gz_intmax -# define gz_strwinerror z_gz_strwinerror -# define gzbuffer z_gzbuffer -# define gzclearerr z_gzclearerr -# define gzclose z_gzclose -# define gzclose_r z_gzclose_r -# define gzclose_w z_gzclose_w -# define gzdirect z_gzdirect -# define gzdopen z_gzdopen -# define gzeof z_gzeof -# define gzerror z_gzerror -# define gzflush z_gzflush -# define gzgetc z_gzgetc -# define gzgetc_ z_gzgetc_ -# define gzgets z_gzgets -# define gzoffset z_gzoffset -# define gzoffset64 z_gzoffset64 -# define gzopen z_gzopen -# define gzopen64 z_gzopen64 -# ifdef _WIN32 -# define gzopen_w z_gzopen_w -# endif -# define gzprintf z_gzprintf -# define gzvprintf z_gzvprintf -# define gzputc z_gzputc -# define gzputs z_gzputs -# define gzread z_gzread -# define gzrewind z_gzrewind -# define gzseek z_gzseek -# define gzseek64 z_gzseek64 -# define gzsetparams z_gzsetparams -# define gztell z_gztell -# define gztell64 z_gztell64 -# define gzungetc z_gzungetc -# define gzwrite z_gzwrite -# endif -# define inflate z_inflate -# define inflateBack z_inflateBack -# define inflateBackEnd z_inflateBackEnd -# define inflateBackInit_ z_inflateBackInit_ -# define inflateCopy z_inflateCopy -# define inflateEnd z_inflateEnd -# define inflateGetHeader z_inflateGetHeader -# define inflateInit2_ z_inflateInit2_ -# define inflateInit_ z_inflateInit_ -# define inflateMark z_inflateMark -# define inflatePrime z_inflatePrime -# define inflateReset z_inflateReset -# define inflateReset2 z_inflateReset2 -# define inflateSetDictionary z_inflateSetDictionary -# define inflateGetDictionary z_inflateGetDictionary -# define inflateSync z_inflateSync -# define inflateSyncPoint z_inflateSyncPoint -# define inflateUndermine z_inflateUndermine -# define inflateResetKeep z_inflateResetKeep -# define inflate_copyright z_inflate_copyright -# define inflate_fast z_inflate_fast -# define inflate_table z_inflate_table -# ifndef Z_SOLO -# define uncompress z_uncompress -# endif -# define zError z_zError -# ifndef Z_SOLO -# define zcalloc z_zcalloc -# define zcfree z_zcfree -# endif -# define zlibCompileFlags z_zlibCompileFlags -# define zlibVersion z_zlibVersion - -/* all zlib typedefs in zlib.h and zconf.h */ -# define Byte z_Byte -# define Bytef z_Bytef -# define alloc_func z_alloc_func -# define charf z_charf -# define free_func z_free_func -# ifndef Z_SOLO -# define gzFile z_gzFile -# endif -# define gz_header z_gz_header -# define gz_headerp z_gz_headerp -# define in_func z_in_func -# define intf z_intf -# define out_func z_out_func -# define uInt z_uInt -# define uIntf z_uIntf -# define uLong z_uLong -# define uLongf z_uLongf -# define voidp z_voidp -# define voidpc z_voidpc -# define voidpf z_voidpf - -/* all zlib structs in zlib.h and zconf.h */ -# define gz_header_s z_gz_header_s -# define internal_state z_internal_state - -#endif - -#if defined(__MSDOS__) && !defined(MSDOS) -# define MSDOS -#endif -#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2) -# define OS2 -#endif -#if defined(_WINDOWS) && !defined(WINDOWS) -# define WINDOWS -#endif -#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__) -# ifndef WIN32 -# define WIN32 -# endif -#endif -#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32) -# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__) -# ifndef SYS16BIT -# define SYS16BIT -# endif -# endif -#endif - -/* - * Compile with -DMAXSEG_64K if the alloc function cannot allocate more - * than 64k bytes at a time (needed on systems with 16-bit int). - */ -#ifdef SYS16BIT -# define MAXSEG_64K -#endif -#ifdef MSDOS -# define UNALIGNED_OK -#endif - -#ifdef __STDC_VERSION__ -# ifndef STDC -# define STDC -# endif -# if __STDC_VERSION__ >= 199901L -# ifndef STDC99 -# define STDC99 -# endif -# endif -#endif -#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus)) -# define STDC -#endif -#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__)) -# define STDC -#endif -#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32)) -# define STDC -#endif -#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__)) -# define STDC -#endif - -#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */ -# define STDC -#endif - -#ifndef STDC -# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ -# define const /* note: need a more gentle solution here */ -# endif -#endif - -#if defined(ZLIB_CONST) && !defined(z_const) -# define z_const const -#else -# define z_const -#endif - -/* Some Mac compilers merge all .h files incorrectly: */ -#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__) -# define NO_DUMMY_DECL -#endif - -/* Maximum value for memLevel in deflateInit2 */ -#ifndef MAX_MEM_LEVEL -# ifdef MAXSEG_64K -# define MAX_MEM_LEVEL 8 -# else -# define MAX_MEM_LEVEL 9 -# endif -#endif - -/* Maximum value for windowBits in deflateInit2 and inflateInit2. - * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files - * created by gzip. (Files created by minigzip can still be extracted by - * gzip.) - */ -#ifndef MAX_WBITS -# define MAX_WBITS 15 /* 32K LZ77 window */ -#endif - -/* The memory requirements for deflate are (in bytes): - (1 << (windowBits+2)) + (1 << (memLevel+9)) - that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) - plus a few kilobytes for small objects. For example, if you want to reduce - the default memory requirements from 256K to 128K, compile with - make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" - Of course this will generally degrade compression (there's no free lunch). - - The memory requirements for inflate are (in bytes) 1 << windowBits - that is, 32K for windowBits=15 (default value) plus a few kilobytes - for small objects. -*/ - - /* Type declarations */ - -#ifndef OF /* function prototypes */ -# ifdef STDC -# define OF(args) args -# else -# define OF(args) () -# endif -#endif - -#ifndef Z_ARG /* function prototypes for stdarg */ -# if defined(STDC) || defined(Z_HAVE_STDARG_H) -# define Z_ARG(args) args -# else -# define Z_ARG(args) () -# endif -#endif - -/* The following definitions for FAR are needed only for MSDOS mixed - * model programming (small or medium model with some far allocations). - * This was tested only with MSC; for other MSDOS compilers you may have - * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, - * just define FAR to be empty. - */ -#ifdef SYS16BIT -# if defined(M_I86SM) || defined(M_I86MM) - /* MSC small or medium model */ -# define SMALL_MEDIUM -# ifdef _MSC_VER -# define FAR _far -# else -# define FAR far -# endif -# endif -# if (defined(__SMALL__) || defined(__MEDIUM__)) - /* Turbo C small or medium model */ -# define SMALL_MEDIUM -# ifdef __BORLANDC__ -# define FAR _far -# else -# define FAR far -# endif -# endif -#endif - -#if defined(WINDOWS) || defined(WIN32) - /* If building or using zlib as a DLL, define ZLIB_DLL. - * This is not mandatory, but it offers a little performance increase. - */ -# ifdef ZLIB_DLL -# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) -# ifdef ZLIB_INTERNAL -# define ZEXTERN extern __declspec(dllexport) -# else -# define ZEXTERN extern __declspec(dllimport) -# endif -# endif -# endif /* ZLIB_DLL */ - /* If building or using zlib with the WINAPI/WINAPIV calling convention, - * define ZLIB_WINAPI. - * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. - */ -# ifdef ZLIB_WINAPI -# ifdef FAR -# undef FAR -# endif -# include - /* No need for _export, use ZLIB.DEF instead. */ - /* For complete Windows compatibility, use WINAPI, not __stdcall. */ -# define ZEXPORT WINAPI -# ifdef WIN32 -# define ZEXPORTVA WINAPIV -# else -# define ZEXPORTVA FAR CDECL -# endif -# endif -#endif - -#if defined (__BEOS__) -# ifdef ZLIB_DLL -# ifdef ZLIB_INTERNAL -# define ZEXPORT __declspec(dllexport) -# define ZEXPORTVA __declspec(dllexport) -# else -# define ZEXPORT __declspec(dllimport) -# define ZEXPORTVA __declspec(dllimport) -# endif -# endif -#endif - -#ifndef ZEXTERN -# define ZEXTERN extern -#endif -#ifndef ZEXPORT -# define ZEXPORT -#endif -#ifndef ZEXPORTVA -# define ZEXPORTVA -#endif - -#ifndef FAR -# define FAR -#endif - -#if !defined(__MACTYPES__) -typedef unsigned char Byte; /* 8 bits */ -#endif -typedef unsigned int uInt; /* 16 bits or more */ -typedef unsigned long uLong; /* 32 bits or more */ - -#ifdef SMALL_MEDIUM - /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ -# define Bytef Byte FAR -#else - typedef Byte FAR Bytef; -#endif -typedef char FAR charf; -typedef int FAR intf; -typedef uInt FAR uIntf; -typedef uLong FAR uLongf; - -#ifdef STDC - typedef void const *voidpc; - typedef void FAR *voidpf; - typedef void *voidp; -#else - typedef Byte const *voidpc; - typedef Byte FAR *voidpf; - typedef Byte *voidp; -#endif - -#if !defined(Z_U4) && !defined(Z_SOLO) && defined(STDC) -# include -# if (UINT_MAX == 0xffffffffUL) -# define Z_U4 unsigned -# elif (ULONG_MAX == 0xffffffffUL) -# define Z_U4 unsigned long -# elif (USHRT_MAX == 0xffffffffUL) -# define Z_U4 unsigned short -# endif -#endif - -#ifdef Z_U4 - typedef Z_U4 z_crc_t; -#else - typedef unsigned long z_crc_t; -#endif - -#ifdef HAVE_UNISTD_H /* may be set to #if 1 by ./configure */ -# define Z_HAVE_UNISTD_H -#endif - -#ifdef HAVE_STDARG_H /* may be set to #if 1 by ./configure */ -# define Z_HAVE_STDARG_H -#endif - -#ifdef STDC -# ifndef Z_SOLO -# include /* for off_t */ -# endif -#endif - -#if defined(STDC) || defined(Z_HAVE_STDARG_H) -# ifndef Z_SOLO -# include /* for va_list */ -# endif -#endif - -#ifdef _WIN32 -# ifndef Z_SOLO -# include /* for wchar_t */ -# endif -#endif - -/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and - * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even - * though the former does not conform to the LFS document), but considering - * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as - * equivalently requesting no 64-bit operations - */ -#if defined(_LARGEFILE64_SOURCE) && -_LARGEFILE64_SOURCE - -1 == 1 -# undef _LARGEFILE64_SOURCE -#endif - -#if defined(__WATCOMC__) && !defined(Z_HAVE_UNISTD_H) -# define Z_HAVE_UNISTD_H -#endif -#ifndef Z_SOLO -# if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE) -# include /* for SEEK_*, off_t, and _LFS64_LARGEFILE */ -# ifdef VMS -# include /* for off_t */ -# endif -# ifndef z_off_t -# define z_off_t off_t -# endif -# endif -#endif - -#if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0 -# define Z_LFS64 -#endif - -#if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64) -# define Z_LARGE64 -#endif - -#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64) -# define Z_WANT64 -#endif - -#if !defined(SEEK_SET) && !defined(Z_SOLO) -# define SEEK_SET 0 /* Seek from beginning of file. */ -# define SEEK_CUR 1 /* Seek from current position. */ -# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ -#endif - -#ifndef z_off_t -# define z_off_t long -#endif - -#if !defined(_WIN32) && defined(Z_LARGE64) -# define z_off64_t off64_t -#else -# if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO) -# define z_off64_t __int64 -# else -# define z_off64_t z_off_t -# endif -#endif - -/* MVS linker does not support external names larger than 8 bytes */ -#if defined(__MVS__) - #pragma map(deflateInit_,"DEIN") - #pragma map(deflateInit2_,"DEIN2") - #pragma map(deflateEnd,"DEEND") - #pragma map(deflateBound,"DEBND") - #pragma map(inflateInit_,"ININ") - #pragma map(inflateInit2_,"ININ2") - #pragma map(inflateEnd,"INEND") - #pragma map(inflateSync,"INSY") - #pragma map(inflateSetDictionary,"INSEDI") - #pragma map(compressBound,"CMBND") - #pragma map(inflate_table,"INTABL") - #pragma map(inflate_fast,"INFA") - #pragma map(inflate_copyright,"INCOPY") -#endif - -#endif /* ZCONF_H */ diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@zconf.h.blob b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@zconf.h.blob deleted file mode 100644 index 87436f0deab0ad215dc49350bcc5b1ec1baa15f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4181 zcmb_feT)=m8Gqjckz7ZD$6>Dx;sz8EJ3G6_vS&@P9J_O{a<_}Sd+hc8=r}h!w@jIj z>&)!k?e!yRn#LMS(x$PJrdEQ%s7d`uszmy2N+DHj>lGV;h>=ihtxcQQ))Ieg&C7#hWOvF6Hfa8>|jR=ZmjM=K=#1*n$s5`bWqM3rC%Vv#Nbi(sh zTN_tx-T?Gg7zESOt(rynY=1_SGQ~ovlqn4C#u$ULlrQ9^Od;P_C=TTEJET%&cQKbQ z_m#ruB{4Ht6fsSz^cM4&;y=lX+Xr{BDZU~Ni21>iB<6d!_lsF(?(Z$`5T#0?*q`<1 zS91Amp;Ahx2%lR_Ar|Q_R5Y_{O*rY4kgL@if@Uguy{ax2b!fzz6iVom->cjrK`WN6 zSB1%RYOg9+Rofx_XjPMIrscSr;_wREX>XPF3Ay1AVS)(58W9R33EZkgD3&uxaKM%A zn(A(y{8Cy8(Xi0#Upi1uaay0#pRc&-sa<9N=LfI?Zt$65~p}Dis z%8gZbz{5GFd>-`f*lfSJQ43sClioDU9nvO`-rh{MXb8!%u;eetSzjuXc_ncF7R(XSH;3!V*7!#n5iL8O0uri%$AwR_7q8~ znRSKrXkOlzt`sY*H9G33t~L50v}|#W;XtF*ZCf>!#@yw$pk$XX`RrQ1bfvJ25O^5x zQm=E#N3%Y{^mZ;;xY4%W#JPm^%9nUuw8FiwUwT$EfzPcZ2e^mHBiwh%_qc=P5cfm! z6Yg>HOYR8y6?cpr=T49px!;hJ-0#TC-0#V&+#kqk?kxFJ`+0JK`y2WD3hydPyid@T z-YUq|kZU26l=FHZZ=?w?3;8wJ%aAw2?m|w`cJFS;Z(zJ1@&P=52=V~N4?{iz`6%Q; z$fJ-?LOu=oEaa~tU&Q>AkS}5U3gk58Dah9#&qH1S{u_{QV&2=3|DhZqt7j%T?)A^# z^z4IEjB@Fe3ddVi%|xHh$g+Ly@;h11O8N#ppPCqA>x zck*#o%)^n~m~P<=1BgGVwnN2%2X_toiPX%I1!6ayA2ms3grXeX8pzRDs=t`N!@)zyH&> zdiE4PFQ&t25#<$`=()~wh?3m{uXpVAzkMzD*qwg2#C#TR^E(Jz*g@n?y|d`xS-*o# zE$rY8+V@xe^s1#te4vt8{vRONLZAc#It`%HK2TE&fxhyugGbK%;vdTgdWWRS_FTCH zq=?{=5m3o3fO)_3{S9sGo(K|Jm-yq+1L>nlR;KH(hc6eFKD5y1);zbd&A$ge#R7EgBSPzSlBulCHzGaU1of=o(z>pxp-THeb6P+U>q} z2ednU?JgSg?xGt&!lkc#yl482pWQnw4(%=!%X@msoFwNMsaM0>YZN(#S`hO!4<4^{ zY#KVmDl#ArNd4j-u^%YchSAS^5JM&CTU~E;x3POz>Z?C?>WSfttCqkm`q5{&XRbqp z;@Y3TX}$Z+qr(#Zp5kdlc;B#)#2p}UhrdBIwQ!F)KX~F@<%O@FLrP__madler to the adler32 checksum of all input read - so far (that is, total_in bytes). - - deflate() may update strm->data_type if it can make a good guess about - the input data type (Z_BINARY or Z_TEXT). In doubt, the data is considered - binary. This field is only for information purposes and does not affect the - compression algorithm in any manner. - - deflate() returns Z_OK if some progress has been made (more input - processed or more output produced), Z_STREAM_END if all input has been - consumed and all output has been produced (only when flush is set to - Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example - if next_in or next_out was Z_NULL), Z_BUF_ERROR if no progress is possible - (for example avail_in or avail_out was zero). Note that Z_BUF_ERROR is not - fatal, and deflate() can be called again with more input and more output - space to continue compressing. -*/ - - -ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); -/* - All dynamically allocated data structures for this stream are freed. - This function discards any unprocessed input and does not flush any pending - output. - - deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the - stream state was inconsistent, Z_DATA_ERROR if the stream was freed - prematurely (some input or output was discarded). In the error case, msg - may be set but then points to a static string (which must not be - deallocated). -*/ - - -/* -ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); - - Initializes the internal stream state for decompression. The fields - next_in, avail_in, zalloc, zfree and opaque must be initialized before by - the caller. If next_in is not Z_NULL and avail_in is large enough (the - exact value depends on the compression method), inflateInit determines the - compression method from the zlib header and allocates all data structures - accordingly; otherwise the allocation will be deferred to the first call of - inflate. If zalloc and zfree are set to Z_NULL, inflateInit updates them to - use default allocation functions. - - inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_VERSION_ERROR if the zlib library version is incompatible with the - version assumed by the caller, or Z_STREAM_ERROR if the parameters are - invalid, such as a null pointer to the structure. msg is set to null if - there is no error message. inflateInit does not perform any decompression - apart from possibly reading the zlib header if present: actual decompression - will be done by inflate(). (So next_in and avail_in may be modified, but - next_out and avail_out are unused and unchanged.) The current implementation - of inflateInit() does not process any header information -- that is deferred - until inflate() is called. -*/ - - -ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush)); -/* - inflate decompresses as much data as possible, and stops when the input - buffer becomes empty or the output buffer becomes full. It may introduce - some output latency (reading input without producing any output) except when - forced to flush. - - The detailed semantics are as follows. inflate performs one or both of the - following actions: - - - Decompress more input starting at next_in and update next_in and avail_in - accordingly. If not all input can be processed (because there is not - enough room in the output buffer), next_in is updated and processing will - resume at this point for the next call of inflate(). - - - Provide more output starting at next_out and update next_out and avail_out - accordingly. inflate() provides as much output as possible, until there is - no more input data or no more space in the output buffer (see below about - the flush parameter). - - Before the call of inflate(), the application should ensure that at least - one of the actions is possible, by providing more input and/or consuming more - output, and updating the next_* and avail_* values accordingly. The - application can consume the uncompressed output when it wants, for example - when the output buffer is full (avail_out == 0), or after each call of - inflate(). If inflate returns Z_OK and with zero avail_out, it must be - called again after making room in the output buffer because there might be - more output pending. - - The flush parameter of inflate() can be Z_NO_FLUSH, Z_SYNC_FLUSH, Z_FINISH, - Z_BLOCK, or Z_TREES. Z_SYNC_FLUSH requests that inflate() flush as much - output as possible to the output buffer. Z_BLOCK requests that inflate() - stop if and when it gets to the next deflate block boundary. When decoding - the zlib or gzip format, this will cause inflate() to return immediately - after the header and before the first block. When doing a raw inflate, - inflate() will go ahead and process the first block, and will return when it - gets to the end of that block, or when it runs out of data. - - The Z_BLOCK option assists in appending to or combining deflate streams. - Also to assist in this, on return inflate() will set strm->data_type to the - number of unused bits in the last byte taken from strm->next_in, plus 64 if - inflate() is currently decoding the last block in the deflate stream, plus - 128 if inflate() returned immediately after decoding an end-of-block code or - decoding the complete header up to just before the first byte of the deflate - stream. The end-of-block will not be indicated until all of the uncompressed - data from that block has been written to strm->next_out. The number of - unused bits may in general be greater than seven, except when bit 7 of - data_type is set, in which case the number of unused bits will be less than - eight. data_type is set as noted here every time inflate() returns for all - flush options, and so can be used to determine the amount of currently - consumed input in bits. - - The Z_TREES option behaves as Z_BLOCK does, but it also returns when the - end of each deflate block header is reached, before any actual data in that - block is decoded. This allows the caller to determine the length of the - deflate block header for later use in random access within a deflate block. - 256 is added to the value of strm->data_type when inflate() returns - immediately after reaching the end of the deflate block header. - - inflate() should normally be called until it returns Z_STREAM_END or an - error. However if all decompression is to be performed in a single step (a - single call of inflate), the parameter flush should be set to Z_FINISH. In - this case all pending input is processed and all pending output is flushed; - avail_out must be large enough to hold all of the uncompressed data for the - operation to complete. (The size of the uncompressed data may have been - saved by the compressor for this purpose.) The use of Z_FINISH is not - required to perform an inflation in one step. However it may be used to - inform inflate that a faster approach can be used for the single inflate() - call. Z_FINISH also informs inflate to not maintain a sliding window if the - stream completes, which reduces inflate's memory footprint. If the stream - does not complete, either because not all of the stream is provided or not - enough output space is provided, then a sliding window will be allocated and - inflate() can be called again to continue the operation as if Z_NO_FLUSH had - been used. - - In this implementation, inflate() always flushes as much output as - possible to the output buffer, and always uses the faster approach on the - first call. So the effects of the flush parameter in this implementation are - on the return value of inflate() as noted below, when inflate() returns early - when Z_BLOCK or Z_TREES is used, and when inflate() avoids the allocation of - memory for a sliding window when Z_FINISH is used. - - If a preset dictionary is needed after this call (see inflateSetDictionary - below), inflate sets strm->adler to the Adler-32 checksum of the dictionary - chosen by the compressor and returns Z_NEED_DICT; otherwise it sets - strm->adler to the Adler-32 checksum of all output produced so far (that is, - total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described - below. At the end of the stream, inflate() checks that its computed adler32 - checksum is equal to that saved by the compressor and returns Z_STREAM_END - only if the checksum is correct. - - inflate() can decompress and check either zlib-wrapped or gzip-wrapped - deflate data. The header type is detected automatically, if requested when - initializing with inflateInit2(). Any information contained in the gzip - header is not retained, so applications that need that information should - instead use raw inflate, see inflateInit2() below, or inflateBack() and - perform their own processing of the gzip header and trailer. When processing - gzip-wrapped deflate data, strm->adler32 is set to the CRC-32 of the output - producted so far. The CRC-32 is checked against the gzip trailer. - - inflate() returns Z_OK if some progress has been made (more input processed - or more output produced), Z_STREAM_END if the end of the compressed data has - been reached and all uncompressed output has been produced, Z_NEED_DICT if a - preset dictionary is needed at this point, Z_DATA_ERROR if the input data was - corrupted (input stream not conforming to the zlib format or incorrect check - value), Z_STREAM_ERROR if the stream structure was inconsistent (for example - next_in or next_out was Z_NULL), Z_MEM_ERROR if there was not enough memory, - Z_BUF_ERROR if no progress is possible or if there was not enough room in the - output buffer when Z_FINISH is used. Note that Z_BUF_ERROR is not fatal, and - inflate() can be called again with more input and more output space to - continue decompressing. If Z_DATA_ERROR is returned, the application may - then call inflateSync() to look for a good compression block if a partial - recovery of the data is desired. -*/ - - -ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm)); -/* - All dynamically allocated data structures for this stream are freed. - This function discards any unprocessed input and does not flush any pending - output. - - inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state - was inconsistent. In the error case, msg may be set but then points to a - static string (which must not be deallocated). -*/ - - - /* Advanced functions */ - -/* - The following functions are needed only in some special applications. -*/ - -/* -ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, - int level, - int method, - int windowBits, - int memLevel, - int strategy)); - - This is another version of deflateInit with more compression options. The - fields next_in, zalloc, zfree and opaque must be initialized before by the - caller. - - The method parameter is the compression method. It must be Z_DEFLATED in - this version of the library. - - The windowBits parameter is the base two logarithm of the window size - (the size of the history buffer). It should be in the range 8..15 for this - version of the library. Larger values of this parameter result in better - compression at the expense of memory usage. The default value is 15 if - deflateInit is used instead. - - windowBits can also be -8..-15 for raw deflate. In this case, -windowBits - determines the window size. deflate() will then generate raw deflate data - with no zlib header or trailer, and will not compute an adler32 check value. - - windowBits can also be greater than 15 for optional gzip encoding. Add - 16 to windowBits to write a simple gzip header and trailer around the - compressed data instead of a zlib wrapper. The gzip header will have no - file name, no extra data, no comment, no modification time (set to zero), no - header crc, and the operating system will be set to 255 (unknown). If a - gzip stream is being written, strm->adler is a crc32 instead of an adler32. - - The memLevel parameter specifies how much memory should be allocated - for the internal compression state. memLevel=1 uses minimum memory but is - slow and reduces compression ratio; memLevel=9 uses maximum memory for - optimal speed. The default value is 8. See zconf.h for total memory usage - as a function of windowBits and memLevel. - - The strategy parameter is used to tune the compression algorithm. Use the - value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a - filter (or predictor), Z_HUFFMAN_ONLY to force Huffman encoding only (no - string match), or Z_RLE to limit match distances to one (run-length - encoding). Filtered data consists mostly of small values with a somewhat - random distribution. In this case, the compression algorithm is tuned to - compress them better. The effect of Z_FILTERED is to force more Huffman - coding and less string matching; it is somewhat intermediate between - Z_DEFAULT_STRATEGY and Z_HUFFMAN_ONLY. Z_RLE is designed to be almost as - fast as Z_HUFFMAN_ONLY, but give better compression for PNG image data. The - strategy parameter only affects the compression ratio but not the - correctness of the compressed output even if it is not set appropriately. - Z_FIXED prevents the use of dynamic Huffman codes, allowing for a simpler - decoder for special applications. - - deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_STREAM_ERROR if any parameter is invalid (such as an invalid - method), or Z_VERSION_ERROR if the zlib library version (zlib_version) is - incompatible with the version assumed by the caller (ZLIB_VERSION). msg is - set to null if there is no error message. deflateInit2 does not perform any - compression: this will be done by deflate(). -*/ - -ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm, - const Bytef *dictionary, - uInt dictLength)); -/* - Initializes the compression dictionary from the given byte sequence - without producing any compressed output. When using the zlib format, this - function must be called immediately after deflateInit, deflateInit2 or - deflateReset, and before any call of deflate. When doing raw deflate, this - function must be called either before any call of deflate, or immediately - after the completion of a deflate block, i.e. after all input has been - consumed and all output has been delivered when using any of the flush - options Z_BLOCK, Z_PARTIAL_FLUSH, Z_SYNC_FLUSH, or Z_FULL_FLUSH. The - compressor and decompressor must use exactly the same dictionary (see - inflateSetDictionary). - - The dictionary should consist of strings (byte sequences) that are likely - to be encountered later in the data to be compressed, with the most commonly - used strings preferably put towards the end of the dictionary. Using a - dictionary is most useful when the data to be compressed is short and can be - predicted with good accuracy; the data can then be compressed better than - with the default empty dictionary. - - Depending on the size of the compression data structures selected by - deflateInit or deflateInit2, a part of the dictionary may in effect be - discarded, for example if the dictionary is larger than the window size - provided in deflateInit or deflateInit2. Thus the strings most likely to be - useful should be put at the end of the dictionary, not at the front. In - addition, the current implementation of deflate will use at most the window - size minus 262 bytes of the provided dictionary. - - Upon return of this function, strm->adler is set to the adler32 value - of the dictionary; the decompressor may later use this value to determine - which dictionary has been used by the compressor. (The adler32 value - applies to the whole dictionary even if only a subset of the dictionary is - actually used by the compressor.) If a raw deflate was requested, then the - adler32 value is not computed and strm->adler is not set. - - deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a - parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is - inconsistent (for example if deflate has already been called for this stream - or if not at a block boundary for raw deflate). deflateSetDictionary does - not perform any compression: this will be done by deflate(). -*/ - -ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest, - z_streamp source)); -/* - Sets the destination stream as a complete copy of the source stream. - - This function can be useful when several compression strategies will be - tried, for example when there are several ways of pre-processing the input - data with a filter. The streams that will be discarded should then be freed - by calling deflateEnd. Note that deflateCopy duplicates the internal - compression state which can be quite large, so this strategy is slow and can - consume lots of memory. - - deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_STREAM_ERROR if the source stream state was inconsistent - (such as zalloc being Z_NULL). msg is left unchanged in both source and - destination. -*/ - -ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm)); -/* - This function is equivalent to deflateEnd followed by deflateInit, - but does not free and reallocate all the internal compression state. The - stream will keep the same compression level and any other attributes that - may have been set by deflateInit2. - - deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being Z_NULL). -*/ - -ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, - int level, - int strategy)); -/* - Dynamically update the compression level and compression strategy. The - interpretation of level and strategy is as in deflateInit2. This can be - used to switch between compression and straight copy of the input data, or - to switch to a different kind of input data requiring a different strategy. - If the compression level is changed, the input available so far is - compressed with the old level (and may be flushed); the new level will take - effect only at the next call of deflate(). - - Before the call of deflateParams, the stream state must be set as for - a call of deflate(), since the currently available input may have to be - compressed and flushed. In particular, strm->avail_out must be non-zero. - - deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source - stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR if - strm->avail_out was zero. -*/ - -ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm, - int good_length, - int max_lazy, - int nice_length, - int max_chain)); -/* - Fine tune deflate's internal compression parameters. This should only be - used by someone who understands the algorithm used by zlib's deflate for - searching for the best matching string, and even then only by the most - fanatic optimizer trying to squeeze out the last compressed bit for their - specific input data. Read the deflate.c source code for the meaning of the - max_lazy, good_length, nice_length, and max_chain parameters. - - deflateTune() can be called after deflateInit() or deflateInit2(), and - returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream. - */ - -ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm, - uLong sourceLen)); -/* - deflateBound() returns an upper bound on the compressed size after - deflation of sourceLen bytes. It must be called after deflateInit() or - deflateInit2(), and after deflateSetHeader(), if used. This would be used - to allocate an output buffer for deflation in a single pass, and so would be - called before deflate(). If that first deflate() call is provided the - sourceLen input bytes, an output buffer allocated to the size returned by - deflateBound(), and the flush value Z_FINISH, then deflate() is guaranteed - to return Z_STREAM_END. Note that it is possible for the compressed size to - be larger than the value returned by deflateBound() if flush options other - than Z_FINISH or Z_NO_FLUSH are used. -*/ - -ZEXTERN int ZEXPORT deflatePending OF((z_streamp strm, - unsigned *pending, - int *bits)); -/* - deflatePending() returns the number of bytes and bits of output that have - been generated, but not yet provided in the available output. The bytes not - provided would be due to the available output space having being consumed. - The number of bits of output not provided are between 0 and 7, where they - await more bits to join them in order to fill out a full byte. If pending - or bits are Z_NULL, then those values are not set. - - deflatePending returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. - */ - -ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm, - int bits, - int value)); -/* - deflatePrime() inserts bits in the deflate output stream. The intent - is that this function is used to start off the deflate output with the bits - leftover from a previous deflate stream when appending to it. As such, this - function can only be used for raw deflate, and must be used before the first - deflate() call after a deflateInit2() or deflateReset(). bits must be less - than or equal to 16, and that many of the least significant bits of value - will be inserted in the output. - - deflatePrime returns Z_OK if success, Z_BUF_ERROR if there was not enough - room in the internal buffer to insert the bits, or Z_STREAM_ERROR if the - source stream state was inconsistent. -*/ - -ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm, - gz_headerp head)); -/* - deflateSetHeader() provides gzip header information for when a gzip - stream is requested by deflateInit2(). deflateSetHeader() may be called - after deflateInit2() or deflateReset() and before the first call of - deflate(). The text, time, os, extra field, name, and comment information - in the provided gz_header structure are written to the gzip header (xflag is - ignored -- the extra flags are set according to the compression level). The - caller must assure that, if not Z_NULL, name and comment are terminated with - a zero byte, and that if extra is not Z_NULL, that extra_len bytes are - available there. If hcrc is true, a gzip header crc is included. Note that - the current versions of the command-line version of gzip (up through version - 1.3.x) do not support header crc's, and will report that it is a "multi-part - gzip file" and give up. - - If deflateSetHeader is not used, the default gzip header has text false, - the time set to zero, and os set to 255, with no extra, name, or comment - fields. The gzip header is returned to the default state by deflateReset(). - - deflateSetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -/* -ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, - int windowBits)); - - This is another version of inflateInit with an extra parameter. The - fields next_in, avail_in, zalloc, zfree and opaque must be initialized - before by the caller. - - The windowBits parameter is the base two logarithm of the maximum window - size (the size of the history buffer). It should be in the range 8..15 for - this version of the library. The default value is 15 if inflateInit is used - instead. windowBits must be greater than or equal to the windowBits value - provided to deflateInit2() while compressing, or it must be equal to 15 if - deflateInit2() was not used. If a compressed stream with a larger window - size is given as input, inflate() will return with the error code - Z_DATA_ERROR instead of trying to allocate a larger window. - - windowBits can also be zero to request that inflate use the window size in - the zlib header of the compressed stream. - - windowBits can also be -8..-15 for raw inflate. In this case, -windowBits - determines the window size. inflate() will then process raw deflate data, - not looking for a zlib or gzip header, not generating a check value, and not - looking for any check values for comparison at the end of the stream. This - is for use with other formats that use the deflate compressed data format - such as zip. Those formats provide their own check values. If a custom - format is developed using the raw deflate format for compressed data, it is - recommended that a check value such as an adler32 or a crc32 be applied to - the uncompressed data as is done in the zlib, gzip, and zip formats. For - most applications, the zlib format should be used as is. Note that comments - above on the use in deflateInit2() applies to the magnitude of windowBits. - - windowBits can also be greater than 15 for optional gzip decoding. Add - 32 to windowBits to enable zlib and gzip decoding with automatic header - detection, or add 16 to decode only the gzip format (the zlib format will - return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is a - crc32 instead of an adler32. - - inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_VERSION_ERROR if the zlib library version is incompatible with the - version assumed by the caller, or Z_STREAM_ERROR if the parameters are - invalid, such as a null pointer to the structure. msg is set to null if - there is no error message. inflateInit2 does not perform any decompression - apart from possibly reading the zlib header if present: actual decompression - will be done by inflate(). (So next_in and avail_in may be modified, but - next_out and avail_out are unused and unchanged.) The current implementation - of inflateInit2() does not process any header information -- that is - deferred until inflate() is called. -*/ - -ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm, - const Bytef *dictionary, - uInt dictLength)); -/* - Initializes the decompression dictionary from the given uncompressed byte - sequence. This function must be called immediately after a call of inflate, - if that call returned Z_NEED_DICT. The dictionary chosen by the compressor - can be determined from the adler32 value returned by that call of inflate. - The compressor and decompressor must use exactly the same dictionary (see - deflateSetDictionary). For raw inflate, this function can be called at any - time to set the dictionary. If the provided dictionary is smaller than the - window and there is already data in the window, then the provided dictionary - will amend what's there. The application must insure that the dictionary - that was used for compression is provided. - - inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a - parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is - inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the - expected one (incorrect adler32 value). inflateSetDictionary does not - perform any decompression: this will be done by subsequent calls of - inflate(). -*/ - -ZEXTERN int ZEXPORT inflateGetDictionary OF((z_streamp strm, - Bytef *dictionary, - uInt *dictLength)); -/* - Returns the sliding dictionary being maintained by inflate. dictLength is - set to the number of bytes in the dictionary, and that many bytes are copied - to dictionary. dictionary must have enough space, where 32768 bytes is - always enough. If inflateGetDictionary() is called with dictionary equal to - Z_NULL, then only the dictionary length is returned, and nothing is copied. - Similary, if dictLength is Z_NULL, then it is not set. - - inflateGetDictionary returns Z_OK on success, or Z_STREAM_ERROR if the - stream state is inconsistent. -*/ - -ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); -/* - Skips invalid compressed data until a possible full flush point (see above - for the description of deflate with Z_FULL_FLUSH) can be found, or until all - available input is skipped. No output is provided. - - inflateSync searches for a 00 00 FF FF pattern in the compressed data. - All full flush points have this pattern, but not all occurrences of this - pattern are full flush points. - - inflateSync returns Z_OK if a possible full flush point has been found, - Z_BUF_ERROR if no more input was provided, Z_DATA_ERROR if no flush point - has been found, or Z_STREAM_ERROR if the stream structure was inconsistent. - In the success case, the application may save the current current value of - total_in which indicates where valid compressed data was found. In the - error case, the application may repeatedly call inflateSync, providing more - input each time, until success or end of the input data. -*/ - -ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest, - z_streamp source)); -/* - Sets the destination stream as a complete copy of the source stream. - - This function can be useful when randomly accessing a large stream. The - first pass through the stream can periodically record the inflate state, - allowing restarting inflate at those points when randomly accessing the - stream. - - inflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_STREAM_ERROR if the source stream state was inconsistent - (such as zalloc being Z_NULL). msg is left unchanged in both source and - destination. -*/ - -ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm)); -/* - This function is equivalent to inflateEnd followed by inflateInit, - but does not free and reallocate all the internal decompression state. The - stream will keep attributes that may have been set by inflateInit2. - - inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being Z_NULL). -*/ - -ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm, - int windowBits)); -/* - This function is the same as inflateReset, but it also permits changing - the wrap and window size requests. The windowBits parameter is interpreted - the same as it is for inflateInit2. - - inflateReset2 returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being Z_NULL), or if - the windowBits parameter is invalid. -*/ - -ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm, - int bits, - int value)); -/* - This function inserts bits in the inflate input stream. The intent is - that this function is used to start inflating at a bit position in the - middle of a byte. The provided bits will be used before any bytes are used - from next_in. This function should only be used with raw inflate, and - should be used before the first inflate() call after inflateInit2() or - inflateReset(). bits must be less than or equal to 16, and that many of the - least significant bits of value will be inserted in the input. - - If bits is negative, then the input stream bit buffer is emptied. Then - inflatePrime() can be called again to put bits in the buffer. This is used - to clear out bits leftover after feeding inflate a block description prior - to feeding inflate codes. - - inflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -ZEXTERN long ZEXPORT inflateMark OF((z_streamp strm)); -/* - This function returns two values, one in the lower 16 bits of the return - value, and the other in the remaining upper bits, obtained by shifting the - return value down 16 bits. If the upper value is -1 and the lower value is - zero, then inflate() is currently decoding information outside of a block. - If the upper value is -1 and the lower value is non-zero, then inflate is in - the middle of a stored block, with the lower value equaling the number of - bytes from the input remaining to copy. If the upper value is not -1, then - it is the number of bits back from the current bit position in the input of - the code (literal or length/distance pair) currently being processed. In - that case the lower value is the number of bytes already emitted for that - code. - - A code is being processed if inflate is waiting for more input to complete - decoding of the code, or if it has completed decoding but is waiting for - more output space to write the literal or match data. - - inflateMark() is used to mark locations in the input data for random - access, which may be at bit positions, and to note those cases where the - output of a code may span boundaries of random access blocks. The current - location in the input stream can be determined from avail_in and data_type - as noted in the description for the Z_BLOCK flush parameter for inflate. - - inflateMark returns the value noted above or -1 << 16 if the provided - source stream state was inconsistent. -*/ - -ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, - gz_headerp head)); -/* - inflateGetHeader() requests that gzip header information be stored in the - provided gz_header structure. inflateGetHeader() may be called after - inflateInit2() or inflateReset(), and before the first call of inflate(). - As inflate() processes the gzip stream, head->done is zero until the header - is completed, at which time head->done is set to one. If a zlib stream is - being decoded, then head->done is set to -1 to indicate that there will be - no gzip header information forthcoming. Note that Z_BLOCK or Z_TREES can be - used to force inflate() to return immediately after header processing is - complete and before any actual data is decompressed. - - The text, time, xflags, and os fields are filled in with the gzip header - contents. hcrc is set to true if there is a header CRC. (The header CRC - was valid if done is set to one.) If extra is not Z_NULL, then extra_max - contains the maximum number of bytes to write to extra. Once done is true, - extra_len contains the actual extra field length, and extra contains the - extra field, or that field truncated if extra_max is less than extra_len. - If name is not Z_NULL, then up to name_max characters are written there, - terminated with a zero unless the length is greater than name_max. If - comment is not Z_NULL, then up to comm_max characters are written there, - terminated with a zero unless the length is greater than comm_max. When any - of extra, name, or comment are not Z_NULL and the respective field is not - present in the header, then that field is set to Z_NULL to signal its - absence. This allows the use of deflateSetHeader() with the returned - structure to duplicate the header. However if those fields are set to - allocated memory, then the application will need to save those pointers - elsewhere so that they can be eventually freed. - - If inflateGetHeader is not used, then the header information is simply - discarded. The header is always checked for validity, including the header - CRC if present. inflateReset() will reset the process to discard the header - information. The application would need to call inflateGetHeader() again to - retrieve the header from the next gzip stream. - - inflateGetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent. -*/ - -/* -ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits, - unsigned char FAR *window)); - - Initialize the internal stream state for decompression using inflateBack() - calls. The fields zalloc, zfree and opaque in strm must be initialized - before the call. If zalloc and zfree are Z_NULL, then the default library- - derived memory allocation routines are used. windowBits is the base two - logarithm of the window size, in the range 8..15. window is a caller - supplied buffer of that size. Except for special applications where it is - assured that deflate was used with small window sizes, windowBits must be 15 - and a 32K byte window must be supplied to be able to decompress general - deflate streams. - - See inflateBack() for the usage of these routines. - - inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of - the parameters are invalid, Z_MEM_ERROR if the internal state could not be - allocated, or Z_VERSION_ERROR if the version of the library does not match - the version of the header file. -*/ - -typedef unsigned (*in_func) OF((void FAR *, - z_const unsigned char FAR * FAR *)); -typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned)); - -ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm, - in_func in, void FAR *in_desc, - out_func out, void FAR *out_desc)); -/* - inflateBack() does a raw inflate with a single call using a call-back - interface for input and output. This is potentially more efficient than - inflate() for file i/o applications, in that it avoids copying between the - output and the sliding window by simply making the window itself the output - buffer. inflate() can be faster on modern CPUs when used with large - buffers. inflateBack() trusts the application to not change the output - buffer passed by the output function, at least until inflateBack() returns. - - inflateBackInit() must be called first to allocate the internal state - and to initialize the state with the user-provided window buffer. - inflateBack() may then be used multiple times to inflate a complete, raw - deflate stream with each call. inflateBackEnd() is then called to free the - allocated state. - - A raw deflate stream is one with no zlib or gzip header or trailer. - This routine would normally be used in a utility that reads zip or gzip - files and writes out uncompressed files. The utility would decode the - header and process the trailer on its own, hence this routine expects only - the raw deflate stream to decompress. This is different from the normal - behavior of inflate(), which expects either a zlib or gzip header and - trailer around the deflate stream. - - inflateBack() uses two subroutines supplied by the caller that are then - called by inflateBack() for input and output. inflateBack() calls those - routines until it reads a complete deflate stream and writes out all of the - uncompressed data, or until it encounters an error. The function's - parameters and return types are defined above in the in_func and out_func - typedefs. inflateBack() will call in(in_desc, &buf) which should return the - number of bytes of provided input, and a pointer to that input in buf. If - there is no input available, in() must return zero--buf is ignored in that - case--and inflateBack() will return a buffer error. inflateBack() will call - out(out_desc, buf, len) to write the uncompressed data buf[0..len-1]. out() - should return zero on success, or non-zero on failure. If out() returns - non-zero, inflateBack() will return with an error. Neither in() nor out() - are permitted to change the contents of the window provided to - inflateBackInit(), which is also the buffer that out() uses to write from. - The length written by out() will be at most the window size. Any non-zero - amount of input may be provided by in(). - - For convenience, inflateBack() can be provided input on the first call by - setting strm->next_in and strm->avail_in. If that input is exhausted, then - in() will be called. Therefore strm->next_in must be initialized before - calling inflateBack(). If strm->next_in is Z_NULL, then in() will be called - immediately for input. If strm->next_in is not Z_NULL, then strm->avail_in - must also be initialized, and then if strm->avail_in is not zero, input will - initially be taken from strm->next_in[0 .. strm->avail_in - 1]. - - The in_desc and out_desc parameters of inflateBack() is passed as the - first parameter of in() and out() respectively when they are called. These - descriptors can be optionally used to pass any information that the caller- - supplied in() and out() functions need to do their job. - - On return, inflateBack() will set strm->next_in and strm->avail_in to - pass back any unused input that was provided by the last in() call. The - return values of inflateBack() can be Z_STREAM_END on success, Z_BUF_ERROR - if in() or out() returned an error, Z_DATA_ERROR if there was a format error - in the deflate stream (in which case strm->msg is set to indicate the nature - of the error), or Z_STREAM_ERROR if the stream was not properly initialized. - In the case of Z_BUF_ERROR, an input or output error can be distinguished - using strm->next_in which will be Z_NULL only if in() returned an error. If - strm->next_in is not Z_NULL, then the Z_BUF_ERROR was due to out() returning - non-zero. (in() will always be called before out(), so strm->next_in is - assured to be defined if out() returns non-zero.) Note that inflateBack() - cannot return Z_OK. -*/ - -ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm)); -/* - All memory allocated by inflateBackInit() is freed. - - inflateBackEnd() returns Z_OK on success, or Z_STREAM_ERROR if the stream - state was inconsistent. -*/ - -ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); -/* Return flags indicating compile-time options. - - Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other: - 1.0: size of uInt - 3.2: size of uLong - 5.4: size of voidpf (pointer) - 7.6: size of z_off_t - - Compiler, assembler, and debug options: - 8: DEBUG - 9: ASMV or ASMINF -- use ASM code - 10: ZLIB_WINAPI -- exported functions use the WINAPI calling convention - 11: 0 (reserved) - - One-time table building (smaller code, but not thread-safe if true): - 12: BUILDFIXED -- build static block decoding tables when needed - 13: DYNAMIC_CRC_TABLE -- build CRC calculation tables when needed - 14,15: 0 (reserved) - - Library content (indicates missing functionality): - 16: NO_GZCOMPRESS -- gz* functions cannot compress (to avoid linking - deflate code when not needed) - 17: NO_GZIP -- deflate can't write gzip streams, and inflate can't detect - and decode gzip streams (to avoid linking crc code) - 18-19: 0 (reserved) - - Operation variations (changes in library functionality): - 20: PKZIP_BUG_WORKAROUND -- slightly more permissive inflate - 21: FASTEST -- deflate algorithm with only one, lowest compression level - 22,23: 0 (reserved) - - The sprintf variant used by gzprintf (zero is best): - 24: 0 = vs*, 1 = s* -- 1 means limited to 20 arguments after the format - 25: 0 = *nprintf, 1 = *printf -- 1 means gzprintf() not secure! - 26: 0 = returns value, 1 = void -- 1 means inferred string length returned - - Remainder: - 27-31: 0 (reserved) - */ - -#ifndef Z_SOLO - - /* utility functions */ - -/* - The following utility functions are implemented on top of the basic - stream-oriented functions. To simplify the interface, some default options - are assumed (compression level and memory usage, standard memory allocation - functions). The source code of these utility functions can be modified if - you need special options. -*/ - -ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen)); -/* - Compresses the source buffer into the destination buffer. sourceLen is - the byte length of the source buffer. Upon entry, destLen is the total size - of the destination buffer, which must be at least the value returned by - compressBound(sourceLen). Upon exit, destLen is the actual size of the - compressed buffer. - - compress returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_BUF_ERROR if there was not enough room in the output - buffer. -*/ - -ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen, - int level)); -/* - Compresses the source buffer into the destination buffer. The level - parameter has the same meaning as in deflateInit. sourceLen is the byte - length of the source buffer. Upon entry, destLen is the total size of the - destination buffer, which must be at least the value returned by - compressBound(sourceLen). Upon exit, destLen is the actual size of the - compressed buffer. - - compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_BUF_ERROR if there was not enough room in the output buffer, - Z_STREAM_ERROR if the level parameter is invalid. -*/ - -ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen)); -/* - compressBound() returns an upper bound on the compressed size after - compress() or compress2() on sourceLen bytes. It would be used before a - compress() or compress2() call to allocate the destination buffer. -*/ - -ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen)); -/* - Decompresses the source buffer into the destination buffer. sourceLen is - the byte length of the source buffer. Upon entry, destLen is the total size - of the destination buffer, which must be large enough to hold the entire - uncompressed data. (The size of the uncompressed data must have been saved - previously by the compressor and transmitted to the decompressor by some - mechanism outside the scope of this compression library.) Upon exit, destLen - is the actual size of the uncompressed buffer. - - uncompress returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_BUF_ERROR if there was not enough room in the output - buffer, or Z_DATA_ERROR if the input data was corrupted or incomplete. In - the case where there is not enough room, uncompress() will fill the output - buffer with the uncompressed data up to that point. -*/ - - /* gzip file access functions */ - -/* - This library supports reading and writing files in gzip (.gz) format with - an interface similar to that of stdio, using the functions that start with - "gz". The gzip format is different from the zlib format. gzip is a gzip - wrapper, documented in RFC 1952, wrapped around a deflate stream. -*/ - -typedef struct gzFile_s *gzFile; /* semi-opaque gzip file descriptor */ - -/* -ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); - - Opens a gzip (.gz) file for reading or writing. The mode parameter is as - in fopen ("rb" or "wb") but can also include a compression level ("wb9") or - a strategy: 'f' for filtered data as in "wb6f", 'h' for Huffman-only - compression as in "wb1h", 'R' for run-length encoding as in "wb1R", or 'F' - for fixed code compression as in "wb9F". (See the description of - deflateInit2 for more information about the strategy parameter.) 'T' will - request transparent writing or appending with no compression and not using - the gzip format. - - "a" can be used instead of "w" to request that the gzip stream that will - be written be appended to the file. "+" will result in an error, since - reading and writing to the same gzip file is not supported. The addition of - "x" when writing will create the file exclusively, which fails if the file - already exists. On systems that support it, the addition of "e" when - reading or writing will set the flag to close the file on an execve() call. - - These functions, as well as gzip, will read and decode a sequence of gzip - streams in a file. The append function of gzopen() can be used to create - such a file. (Also see gzflush() for another way to do this.) When - appending, gzopen does not test whether the file begins with a gzip stream, - nor does it look for the end of the gzip streams to begin appending. gzopen - will simply append a gzip stream to the existing file. - - gzopen can be used to read a file which is not in gzip format; in this - case gzread will directly read from the file without decompression. When - reading, this will be detected automatically by looking for the magic two- - byte gzip header. - - gzopen returns NULL if the file could not be opened, if there was - insufficient memory to allocate the gzFile state, or if an invalid mode was - specified (an 'r', 'w', or 'a' was not provided, or '+' was provided). - errno can be checked to determine if the reason gzopen failed was that the - file could not be opened. -*/ - -ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); -/* - gzdopen associates a gzFile with the file descriptor fd. File descriptors - are obtained from calls like open, dup, creat, pipe or fileno (if the file - has been previously opened with fopen). The mode parameter is as in gzopen. - - The next call of gzclose on the returned gzFile will also close the file - descriptor fd, just like fclose(fdopen(fd, mode)) closes the file descriptor - fd. If you want to keep fd open, use fd = dup(fd_keep); gz = gzdopen(fd, - mode);. The duplicated descriptor should be saved to avoid a leak, since - gzdopen does not close fd if it fails. If you are using fileno() to get the - file descriptor from a FILE *, then you will have to use dup() to avoid - double-close()ing the file descriptor. Both gzclose() and fclose() will - close the associated file descriptor, so they need to have different file - descriptors. - - gzdopen returns NULL if there was insufficient memory to allocate the - gzFile state, if an invalid mode was specified (an 'r', 'w', or 'a' was not - provided, or '+' was provided), or if fd is -1. The file descriptor is not - used until the next gz* read, write, seek, or close operation, so gzdopen - will not detect if fd is invalid (unless fd is -1). -*/ - -ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size)); -/* - Set the internal buffer size used by this library's functions. The - default buffer size is 8192 bytes. This function must be called after - gzopen() or gzdopen(), and before any other calls that read or write the - file. The buffer memory allocation is always deferred to the first read or - write. Two buffers are allocated, either both of the specified size when - writing, or one of the specified size and the other twice that size when - reading. A larger buffer size of, for example, 64K or 128K bytes will - noticeably increase the speed of decompression (reading). - - The new buffer size also affects the maximum length for gzprintf(). - - gzbuffer() returns 0 on success, or -1 on failure, such as being called - too late. -*/ - -ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); -/* - Dynamically update the compression level or strategy. See the description - of deflateInit2 for the meaning of these parameters. - - gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not - opened for writing. -*/ - -ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); -/* - Reads the given number of uncompressed bytes from the compressed file. If - the input file is not in gzip format, gzread copies the given number of - bytes into the buffer directly from the file. - - After reaching the end of a gzip stream in the input, gzread will continue - to read, looking for another gzip stream. Any number of gzip streams may be - concatenated in the input file, and will all be decompressed by gzread(). - If something other than a gzip stream is encountered after a gzip stream, - that remaining trailing garbage is ignored (and no error is returned). - - gzread can be used to read a gzip file that is being concurrently written. - Upon reaching the end of the input, gzread will return with the available - data. If the error code returned by gzerror is Z_OK or Z_BUF_ERROR, then - gzclearerr can be used to clear the end of file indicator in order to permit - gzread to be tried again. Z_OK indicates that a gzip stream was completed - on the last gzread. Z_BUF_ERROR indicates that the input file ended in the - middle of a gzip stream. Note that gzread does not return -1 in the event - of an incomplete gzip stream. This error is deferred until gzclose(), which - will return Z_BUF_ERROR if the last gzread ended in the middle of a gzip - stream. Alternatively, gzerror can be used before gzclose to detect this - case. - - gzread returns the number of uncompressed bytes actually read, less than - len for end of file, or -1 for error. -*/ - -ZEXTERN int ZEXPORT gzwrite OF((gzFile file, - voidpc buf, unsigned len)); -/* - Writes the given number of uncompressed bytes into the compressed file. - gzwrite returns the number of uncompressed bytes written or 0 in case of - error. -*/ - -ZEXTERN int ZEXPORTVA gzprintf Z_ARG((gzFile file, const char *format, ...)); -/* - Converts, formats, and writes the arguments to the compressed file under - control of the format string, as in fprintf. gzprintf returns the number of - uncompressed bytes actually written, or 0 in case of error. The number of - uncompressed bytes written is limited to 8191, or one less than the buffer - size given to gzbuffer(). The caller should assure that this limit is not - exceeded. If it is exceeded, then gzprintf() will return an error (0) with - nothing written. In this case, there may also be a buffer overflow with - unpredictable consequences, which is possible only if zlib was compiled with - the insecure functions sprintf() or vsprintf() because the secure snprintf() - or vsnprintf() functions were not available. This can be determined using - zlibCompileFlags(). -*/ - -ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s)); -/* - Writes the given null-terminated string to the compressed file, excluding - the terminating null character. - - gzputs returns the number of characters written, or -1 in case of error. -*/ - -ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len)); -/* - Reads bytes from the compressed file until len-1 characters are read, or a - newline character is read and transferred to buf, or an end-of-file - condition is encountered. If any characters are read or if len == 1, the - string is terminated with a null character. If no characters are read due - to an end-of-file or len < 1, then the buffer is left untouched. - - gzgets returns buf which is a null-terminated string, or it returns NULL - for end-of-file or in case of error. If there was an error, the contents at - buf are indeterminate. -*/ - -ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c)); -/* - Writes c, converted to an unsigned char, into the compressed file. gzputc - returns the value that was written, or -1 in case of error. -*/ - -ZEXTERN int ZEXPORT gzgetc OF((gzFile file)); -/* - Reads one byte from the compressed file. gzgetc returns this byte or -1 - in case of end of file or error. This is implemented as a macro for speed. - As such, it does not do all of the checking the other functions do. I.e. - it does not check to see if file is NULL, nor whether the structure file - points to has been clobbered or not. -*/ - -ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file)); -/* - Push one character back onto the stream to be read as the first character - on the next read. At least one character of push-back is allowed. - gzungetc() returns the character pushed, or -1 on failure. gzungetc() will - fail if c is -1, and may fail if a character has been pushed but not read - yet. If gzungetc is used immediately after gzopen or gzdopen, at least the - output buffer size of pushed characters is allowed. (See gzbuffer above.) - The pushed character will be discarded if the stream is repositioned with - gzseek() or gzrewind(). -*/ - -ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush)); -/* - Flushes all pending output into the compressed file. The parameter flush - is as in the deflate() function. The return value is the zlib error number - (see function gzerror below). gzflush is only permitted when writing. - - If the flush parameter is Z_FINISH, the remaining data is written and the - gzip stream is completed in the output. If gzwrite() is called again, a new - gzip stream will be started in the output. gzread() is able to read such - concatented gzip streams. - - gzflush should be called only when strictly necessary because it will - degrade compression if called too often. -*/ - -/* -ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file, - z_off_t offset, int whence)); - - Sets the starting position for the next gzread or gzwrite on the given - compressed file. The offset represents a number of bytes in the - uncompressed data stream. The whence parameter is defined as in lseek(2); - the value SEEK_END is not supported. - - If the file is opened for reading, this function is emulated but can be - extremely slow. If the file is opened for writing, only forward seeks are - supported; gzseek then compresses a sequence of zeroes up to the new - starting position. - - gzseek returns the resulting offset location as measured in bytes from - the beginning of the uncompressed stream, or -1 in case of error, in - particular if the file is opened for writing and the new starting position - would be before the current position. -*/ - -ZEXTERN int ZEXPORT gzrewind OF((gzFile file)); -/* - Rewinds the given file. This function is supported only for reading. - - gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET) -*/ - -/* -ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file)); - - Returns the starting position for the next gzread or gzwrite on the given - compressed file. This position represents a number of bytes in the - uncompressed data stream, and is zero when starting, even if appending or - reading a gzip stream from the middle of a file using gzdopen(). - - gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR) -*/ - -/* -ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile file)); - - Returns the current offset in the file being read or written. This offset - includes the count of bytes that precede the gzip stream, for example when - appending or when using gzdopen() for reading. When reading, the offset - does not include as yet unused buffered input. This information can be used - for a progress indicator. On error, gzoffset() returns -1. -*/ - -ZEXTERN int ZEXPORT gzeof OF((gzFile file)); -/* - Returns true (1) if the end-of-file indicator has been set while reading, - false (0) otherwise. Note that the end-of-file indicator is set only if the - read tried to go past the end of the input, but came up short. Therefore, - just like feof(), gzeof() may return false even if there is no more data to - read, in the event that the last read request was for the exact number of - bytes remaining in the input file. This will happen if the input file size - is an exact multiple of the buffer size. - - If gzeof() returns true, then the read functions will return no more data, - unless the end-of-file indicator is reset by gzclearerr() and the input file - has grown since the previous end of file was detected. -*/ - -ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); -/* - Returns true (1) if file is being copied directly while reading, or false - (0) if file is a gzip stream being decompressed. - - If the input file is empty, gzdirect() will return true, since the input - does not contain a gzip stream. - - If gzdirect() is used immediately after gzopen() or gzdopen() it will - cause buffers to be allocated to allow reading the file to determine if it - is a gzip file. Therefore if gzbuffer() is used, it should be called before - gzdirect(). - - When writing, gzdirect() returns true (1) if transparent writing was - requested ("wT" for the gzopen() mode), or false (0) otherwise. (Note: - gzdirect() is not needed when writing. Transparent writing must be - explicitly requested, so the application already knows the answer. When - linking statically, using gzdirect() will include all of the zlib code for - gzip file reading and decompression, which may not be desired.) -*/ - -ZEXTERN int ZEXPORT gzclose OF((gzFile file)); -/* - Flushes all pending output if necessary, closes the compressed file and - deallocates the (de)compression state. Note that once file is closed, you - cannot call gzerror with file, since its structures have been deallocated. - gzclose must not be called more than once on the same file, just as free - must not be called more than once on the same allocation. - - gzclose will return Z_STREAM_ERROR if file is not valid, Z_ERRNO on a - file operation error, Z_MEM_ERROR if out of memory, Z_BUF_ERROR if the - last read ended in the middle of a gzip stream, or Z_OK on success. -*/ - -ZEXTERN int ZEXPORT gzclose_r OF((gzFile file)); -ZEXTERN int ZEXPORT gzclose_w OF((gzFile file)); -/* - Same as gzclose(), but gzclose_r() is only for use when reading, and - gzclose_w() is only for use when writing or appending. The advantage to - using these instead of gzclose() is that they avoid linking in zlib - compression or decompression code that is not used when only reading or only - writing respectively. If gzclose() is used, then both compression and - decompression code will be included the application when linking to a static - zlib library. -*/ - -ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); -/* - Returns the error message for the last error which occurred on the given - compressed file. errnum is set to zlib error number. If an error occurred - in the file system and not in the compression library, errnum is set to - Z_ERRNO and the application may consult errno to get the exact error code. - - The application must not modify the returned string. Future calls to - this function may invalidate the previously returned string. If file is - closed, then the string previously returned by gzerror will no longer be - available. - - gzerror() should be used to distinguish errors from end-of-file for those - functions above that do not distinguish those cases in their return values. -*/ - -ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); -/* - Clears the error and end-of-file flags for file. This is analogous to the - clearerr() function in stdio. This is useful for continuing to read a gzip - file that is being written concurrently. -*/ - -#endif /* !Z_SOLO */ - - /* checksum functions */ - -/* - These functions are not related to compression but are exported - anyway because they might be useful in applications using the compression - library. -*/ - -ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); -/* - Update a running Adler-32 checksum with the bytes buf[0..len-1] and - return the updated checksum. If buf is Z_NULL, this function returns the - required initial value for the checksum. - - An Adler-32 checksum is almost as reliable as a CRC32 but can be computed - much faster. - - Usage example: - - uLong adler = adler32(0L, Z_NULL, 0); - - while (read_buffer(buffer, length) != EOF) { - adler = adler32(adler, buffer, length); - } - if (adler != original_adler) error(); -*/ - -/* -ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, - z_off_t len2)); - - Combine two Adler-32 checksums into one. For two sequences of bytes, seq1 - and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for - each, adler1 and adler2. adler32_combine() returns the Adler-32 checksum of - seq1 and seq2 concatenated, requiring only adler1, adler2, and len2. Note - that the z_off_t type (like off_t) is a signed integer. If len2 is - negative, the result has no meaning or utility. -*/ - -ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); -/* - Update a running CRC-32 with the bytes buf[0..len-1] and return the - updated CRC-32. If buf is Z_NULL, this function returns the required - initial value for the crc. Pre- and post-conditioning (one's complement) is - performed within this function so it shouldn't be done by the application. - - Usage example: - - uLong crc = crc32(0L, Z_NULL, 0); - - while (read_buffer(buffer, length) != EOF) { - crc = crc32(crc, buffer, length); - } - if (crc != original_crc) error(); -*/ - -/* -ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2)); - - Combine two CRC-32 check values into one. For two sequences of bytes, - seq1 and seq2 with lengths len1 and len2, CRC-32 check values were - calculated for each, crc1 and crc2. crc32_combine() returns the CRC-32 - check value of seq1 and seq2 concatenated, requiring only crc1, crc2, and - len2. -*/ - - - /* various hacks, don't look :) */ - -/* deflateInit and inflateInit are macros to allow checking the zlib version - * and the compiler's view of z_stream: - */ -ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method, - int windowBits, int memLevel, - int strategy, const char *version, - int stream_size)); -ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits, - unsigned char FAR *window, - const char *version, - int stream_size)); -#define deflateInit(strm, level) \ - deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream)) -#define inflateInit(strm) \ - inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream)) -#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ - deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ - (strategy), ZLIB_VERSION, (int)sizeof(z_stream)) -#define inflateInit2(strm, windowBits) \ - inflateInit2_((strm), (windowBits), ZLIB_VERSION, \ - (int)sizeof(z_stream)) -#define inflateBackInit(strm, windowBits, window) \ - inflateBackInit_((strm), (windowBits), (window), \ - ZLIB_VERSION, (int)sizeof(z_stream)) - -#ifndef Z_SOLO - -/* gzgetc() macro and its supporting function and exposed data structure. Note - * that the real internal state is much larger than the exposed structure. - * This abbreviated structure exposes just enough for the gzgetc() macro. The - * user should not mess with these exposed elements, since their names or - * behavior could change in the future, perhaps even capriciously. They can - * only be used by the gzgetc() macro. You have been warned. - */ -struct gzFile_s { - unsigned have; - unsigned char *next; - z_off64_t pos; -}; -ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ -#ifdef Z_PREFIX_SET -# undef z_gzgetc -# define z_gzgetc(g) \ - ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : gzgetc(g)) -#else -# define gzgetc(g) \ - ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : gzgetc(g)) -#endif - -/* provide 64-bit offset functions if _LARGEFILE64_SOURCE defined, and/or - * change the regular functions to 64 bits if _FILE_OFFSET_BITS is 64 (if - * both are true, the application gets the *64 functions, and the regular - * functions are changed to 64 bits) -- in case these are set on systems - * without large file support, _LFS64_LARGEFILE must also be true - */ -#ifdef Z_LARGE64 - ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); - ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int)); - ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile)); - ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off64_t)); - ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off64_t)); -#endif - -#if !defined(ZLIB_INTERNAL) && defined(Z_WANT64) -# ifdef Z_PREFIX_SET -# define z_gzopen z_gzopen64 -# define z_gzseek z_gzseek64 -# define z_gztell z_gztell64 -# define z_gzoffset z_gzoffset64 -# define z_adler32_combine z_adler32_combine64 -# define z_crc32_combine z_crc32_combine64 -# else -# define gzopen gzopen64 -# define gzseek gzseek64 -# define gztell gztell64 -# define gzoffset gzoffset64 -# define adler32_combine adler32_combine64 -# define crc32_combine crc32_combine64 -# endif -# ifndef Z_LARGE64 - ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); - ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, z_off_t, int)); - ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile)); - ZEXTERN z_off_t ZEXPORT gzoffset64 OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t)); -# endif -#else - ZEXTERN gzFile ZEXPORT gzopen OF((const char *, const char *)); - ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile, z_off_t, int)); - ZEXTERN z_off_t ZEXPORT gztell OF((gzFile)); - ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); -#endif - -#else /* Z_SOLO */ - - ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); - -#endif /* !Z_SOLO */ - -/* hack for buggy compilers */ -#if !defined(ZUTIL_H) && !defined(NO_DUMMY_DECL) - struct internal_state {int dummy;}; -#endif - -/* undocumented functions */ -ZEXTERN const char * ZEXPORT zError OF((int)); -ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp)); -ZEXTERN const z_crc_t FAR * ZEXPORT get_crc_table OF((void)); -ZEXTERN int ZEXPORT inflateUndermine OF((z_streamp, int)); -ZEXTERN int ZEXPORT inflateResetKeep OF((z_streamp)); -ZEXTERN int ZEXPORT deflateResetKeep OF((z_streamp)); -#if defined(_WIN32) && !defined(Z_SOLO) -ZEXTERN gzFile ZEXPORT gzopen_w OF((const wchar_t *path, - const char *mode)); -#endif -#if defined(STDC) || defined(Z_HAVE_STDARG_H) -# ifndef Z_SOLO -ZEXTERN int ZEXPORTVA gzvprintf Z_ARG((gzFile file, - const char *format, - va_list va)); -# endif -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* ZLIB_H */ diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@zlib.h.blob b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@zlib.h.blob deleted file mode 100644 index 90921fdf0d6fc04eab5ea4b17722d4b39922250d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73645 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 bk>YR>#s9Q{THnK0rZ?CldN5c+y2i|3v`D=v diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@zutil.c b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@zutil.c deleted file mode 100644 index 23d2ebef0..000000000 --- a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@zutil.c +++ /dev/null @@ -1,324 +0,0 @@ -/* zutil.c -- target dependent utility functions for the compression library - * Copyright (C) 1995-2005, 2010, 2011, 2012 Jean-loup Gailly. - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* @(#) $Id$ */ - -#include "zutil.h" -#ifndef Z_SOLO -# include "gzguts.h" -#endif - -#ifndef NO_DUMMY_DECL -struct internal_state {int dummy;}; /* for buggy compilers */ -#endif - -z_const char * const z_errmsg[10] = { -"need dictionary", /* Z_NEED_DICT 2 */ -"stream end", /* Z_STREAM_END 1 */ -"", /* Z_OK 0 */ -"file error", /* Z_ERRNO (-1) */ -"stream error", /* Z_STREAM_ERROR (-2) */ -"data error", /* Z_DATA_ERROR (-3) */ -"insufficient memory", /* Z_MEM_ERROR (-4) */ -"buffer error", /* Z_BUF_ERROR (-5) */ -"incompatible version",/* Z_VERSION_ERROR (-6) */ -""}; - - -const char * ZEXPORT zlibVersion() -{ - return ZLIB_VERSION; -} - -uLong ZEXPORT zlibCompileFlags() -{ - uLong flags; - - flags = 0; - switch ((int)(sizeof(uInt))) { - case 2: break; - case 4: flags += 1; break; - case 8: flags += 2; break; - default: flags += 3; - } - switch ((int)(sizeof(uLong))) { - case 2: break; - case 4: flags += 1 << 2; break; - case 8: flags += 2 << 2; break; - default: flags += 3 << 2; - } - switch ((int)(sizeof(voidpf))) { - case 2: break; - case 4: flags += 1 << 4; break; - case 8: flags += 2 << 4; break; - default: flags += 3 << 4; - } - switch ((int)(sizeof(z_off_t))) { - case 2: break; - case 4: flags += 1 << 6; break; - case 8: flags += 2 << 6; break; - default: flags += 3 << 6; - } -#ifdef DEBUG - flags += 1 << 8; -#endif -#if defined(ASMV) || defined(ASMINF) - flags += 1 << 9; -#endif -#ifdef ZLIB_WINAPI - flags += 1 << 10; -#endif -#ifdef BUILDFIXED - flags += 1 << 12; -#endif -#ifdef DYNAMIC_CRC_TABLE - flags += 1 << 13; -#endif -#ifdef NO_GZCOMPRESS - flags += 1L << 16; -#endif -#ifdef NO_GZIP - flags += 1L << 17; -#endif -#ifdef PKZIP_BUG_WORKAROUND - flags += 1L << 20; -#endif -#ifdef FASTEST - flags += 1L << 21; -#endif -#if defined(STDC) || defined(Z_HAVE_STDARG_H) -# ifdef NO_vsnprintf - flags += 1L << 25; -# ifdef HAS_vsprintf_void - flags += 1L << 26; -# endif -# else -# ifdef HAS_vsnprintf_void - flags += 1L << 26; -# endif -# endif -#else - flags += 1L << 24; -# ifdef NO_snprintf - flags += 1L << 25; -# ifdef HAS_sprintf_void - flags += 1L << 26; -# endif -# else -# ifdef HAS_snprintf_void - flags += 1L << 26; -# endif -# endif -#endif - return flags; -} - -#ifdef DEBUG - -# ifndef verbose -# define verbose 0 -# endif -int ZLIB_INTERNAL z_verbose = verbose; - -void ZLIB_INTERNAL z_error (m) - char *m; -{ - fprintf(stderr, "%s\n", m); - exit(1); -} -#endif - -/* exported to allow conversion of error code to string for compress() and - * uncompress() - */ -const char * ZEXPORT zError(err) - int err; -{ - return ERR_MSG(err); -} - -#if defined(_WIN32_WCE) - /* The Microsoft C Run-Time Library for Windows CE doesn't have - * errno. We define it as a global variable to simplify porting. - * Its value is always 0 and should not be used. - */ - int errno = 0; -#endif - -#ifndef HAVE_MEMCPY - -void ZLIB_INTERNAL zmemcpy(dest, source, len) - Bytef* dest; - const Bytef* source; - uInt len; -{ - if (len == 0) return; - do { - *dest++ = *source++; /* ??? to be unrolled */ - } while (--len != 0); -} - -int ZLIB_INTERNAL zmemcmp(s1, s2, len) - const Bytef* s1; - const Bytef* s2; - uInt len; -{ - uInt j; - - for (j = 0; j < len; j++) { - if (s1[j] != s2[j]) return 2*(s1[j] > s2[j])-1; - } - return 0; -} - -void ZLIB_INTERNAL zmemzero(dest, len) - Bytef* dest; - uInt len; -{ - if (len == 0) return; - do { - *dest++ = 0; /* ??? to be unrolled */ - } while (--len != 0); -} -#endif - -#ifndef Z_SOLO - -#ifdef SYS16BIT - -#ifdef __TURBOC__ -/* Turbo C in 16-bit mode */ - -# define MY_ZCALLOC - -/* Turbo C malloc() does not allow dynamic allocation of 64K bytes - * and farmalloc(64K) returns a pointer with an offset of 8, so we - * must fix the pointer. Warning: the pointer must be put back to its - * original form in order to free it, use zcfree(). - */ - -#define MAX_PTR 10 -/* 10*64K = 640K */ - -local int next_ptr = 0; - -typedef struct ptr_table_s { - voidpf org_ptr; - voidpf new_ptr; -} ptr_table; - -local ptr_table table[MAX_PTR]; -/* This table is used to remember the original form of pointers - * to large buffers (64K). Such pointers are normalized with a zero offset. - * Since MSDOS is not a preemptive multitasking OS, this table is not - * protected from concurrent access. This hack doesn't work anyway on - * a protected system like OS/2. Use Microsoft C instead. - */ - -voidpf ZLIB_INTERNAL zcalloc (voidpf opaque, unsigned items, unsigned size) -{ - voidpf buf = opaque; /* just to make some compilers happy */ - ulg bsize = (ulg)items*size; - - /* If we allocate less than 65520 bytes, we assume that farmalloc - * will return a usable pointer which doesn't have to be normalized. - */ - if (bsize < 65520L) { - buf = farmalloc(bsize); - if (*(ush*)&buf != 0) return buf; - } else { - buf = farmalloc(bsize + 16L); - } - if (buf == NULL || next_ptr >= MAX_PTR) return NULL; - table[next_ptr].org_ptr = buf; - - /* Normalize the pointer to seg:0 */ - *((ush*)&buf+1) += ((ush)((uch*)buf-0) + 15) >> 4; - *(ush*)&buf = 0; - table[next_ptr++].new_ptr = buf; - return buf; -} - -void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr) -{ - int n; - if (*(ush*)&ptr != 0) { /* object < 64K */ - farfree(ptr); - return; - } - /* Find the original pointer */ - for (n = 0; n < next_ptr; n++) { - if (ptr != table[n].new_ptr) continue; - - farfree(table[n].org_ptr); - while (++n < next_ptr) { - table[n-1] = table[n]; - } - next_ptr--; - return; - } - ptr = opaque; /* just to make some compilers happy */ - Assert(0, "zcfree: ptr not found"); -} - -#endif /* __TURBOC__ */ - - -#ifdef M_I86 -/* Microsoft C in 16-bit mode */ - -# define MY_ZCALLOC - -#if (!defined(_MSC_VER) || (_MSC_VER <= 600)) -# define _halloc halloc -# define _hfree hfree -#endif - -voidpf ZLIB_INTERNAL zcalloc (voidpf opaque, uInt items, uInt size) -{ - if (opaque) opaque = 0; /* to make compiler happy */ - return _halloc((long)items, size); -} - -void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr) -{ - if (opaque) opaque = 0; /* to make compiler happy */ - _hfree(ptr); -} - -#endif /* M_I86 */ - -#endif /* SYS16BIT */ - - -#ifndef MY_ZCALLOC /* Any system without a special alloc function */ - -#ifndef STDC -extern voidp malloc OF((uInt size)); -extern voidp calloc OF((uInt items, uInt size)); -extern void free OF((voidpf ptr)); -#endif - -voidpf ZLIB_INTERNAL zcalloc (opaque, items, size) - voidpf opaque; - unsigned items; - unsigned size; -{ - if (opaque) items += size - size; /* make compiler happy */ - return sizeof(uInt) > 2 ? (voidpf)malloc(items * size) : - (voidpf)calloc(items, size); -} - -void ZLIB_INTERNAL zcfree (opaque, ptr) - voidpf opaque; - voidpf ptr; -{ - free(ptr); - if (opaque) return; /* make compiler happy */ -} - -#endif /* MY_ZCALLOC */ - -#endif /* !Z_SOLO */ diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@zutil.c.blob b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@zutil.c.blob deleted file mode 100644 index d47400db8c41ead394f3ee46ad2c70d0825dd6e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5832 zcmb_gTWlOx89rxPie<*eR4A>in2b!Z>{Vuu?buFYVb#uhojS31(_K4T63TRT=Ir`3 zbJ?7k@p?^*fEF1wtwcoti5FBMC{-mS#7mI+)*|`>dB_7iB7&L+5b8r8Dx}TwpV`~k zjboc#OXHb6m;dtp-~XRW4BdZyIdumijL3#-Q=&VrLl#{lu&LvFB;lHr*vz2@*9*Sk zI-YA$kE}LZ;t7kvKp1D+Fmc;rd9oe&%!+SxTcClyN&=6QJadR)=}u8KETpO?XPcC( zHW)ew4a9LRx9B2uaV3$|5}9;1n@F!-g5U6CO-rRyS|XiVN@rG=Q|Gm8?owtswYHRP z_Ggoc^-L0mX}N_=3WkI|i^+5A=f#llLt9Oz*0WkNwQz1FxhR@f7Bc6PS}vVgSq#VL zmQ#!ATy|y(smqrQSrheCl`%I4yKiORrE<^{HL5bf2mv zoqNnFf==dm6_2~FA7ykXndD9(0^}kN62%^jb zL?IR2Qls{CBV|Em+2z;3YZdIJhVSyq+)?MX*| z(0Ekm#zqU$J^mg{bx&{eWM890eu{Y1i=t-h1`qKGeb{$eoz$)1?Xm6fv1s~gQ`;z2 zv@RrOQz8(1SBADt?680}vgL=cnfd?AN7Kqfb5WF#qlKtdc{EXb47XJ2JX{d=h{bJ4 zkC=hosyVP)62DTS`_ks%B-u200Q(D@?w4mr=duTdt&8Gp-LhPxW!}Ci*~(-mu)@Ue zP8AXhL?q_>s^5e?RUr(-!z)LNmOx62dF=&Y51S4Vx|YVymhxsUhK@p_I0e>T*xOch zRyK;;#h||L2n)x)Fh=3&PR=&nD@UT(_Uee4+YojHHro1@rdzD&M3&G!>JJg>W|qQk zYFAZ17)MPjI)NcdU}tOtUKj!A)G;bYTUgyf!K1!gctG{-j8e_h@BN1}3TO?P*?sLI zQH0d)EQGKDfHOdoS5kjuY3&Y5k9SRCE0w?WG+L0)p+z}~&dblB3-U#@DyPsT`B{{e z*U)7-hrS_SMKAR0$oMiv*X00xUw#AqSpEsRCBKKNPvKZ~45O-w<(}GiU;69q&)@&b znN63O%C=G9l#Yt;QbBP``t^XGR2n~FOFD*ndu3cbi$~y@l*AXRK8+;=f4Dk_d*B(U z-F*4hoB#gB`mZ0UJ~c06(N`iAu}}SD4WNj;KY4nu_H*#qi%r z<+E*LXmC&#vJeVixH^MZ;CT*|;2Qqz+da?U{qUt-^6M+u1LS{J)-=ePZpdnyAC=XD zMTw1}C!g%uWk|#C(2(5M?*4-Wr%DaXwi`a~LA2!_b9{xtiQJ30EZW4GV+{58_v0#o zXc2q{z$O6p={ndFSQ}d0@?3!3gro&`Bm&3&xqk2M-=p6&yb>2(z9P;-N^CpHxywgE z?-&{xk?~G!XGX$1=!S&oR>|c)#Kw0O5v{TU6X7;WTq-DTL4nhk%c0GrVnn@2DuuAg zE^+F4qhpHhn7x4`t|#gZVF>HA*!k$=pG%X-ZWtA;2nL8NHn?po!8OB@r5C-Bjv{0V z9zH(&bqNn6PeKcprPPx*G|Ye-4O7Wi6y_Af?Z!FXxVG#tAM`U%5#clAy}gmnq+>!K zr+&a4Pr0I{FDl@Y7Z?UueNq7zu4vh{OmbmWOJ*|ZjKT_vzd?nMRJVIQACxF%-2;UJ zOW0AseNjB(+w_0ly71{Ie;<4h;NaoqI*1MDMn;a|q1e#8goltKp}g)fLn#1iet3H$ zNFO35RX+&db^g`=;~Ky5xo6+EmD{Lh{O*%qe&OmX;t&!TKrKh4n{L7KCCvTy%Rs5) zkg9$CeK865p}rJ|h|EV%gwlIz^4-6D^Lu}gK8os*fPnq*jLwU^?}bNX-mkXoKYi!J z6OTnl;85$e{>BI8y;5^~cI>tIqj(}VF*}c1;D)KX3(whEGqCLn>KW}tg7f(R?jRuTI0-UX_y!GijH}9PMS=4b18U>hteC6&NL)WW(SKj~{=%2^` E1G44PnE(I) diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@zutil.h b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@zutil.h deleted file mode 100644 index 24ab06b1c..000000000 --- a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@zutil.h +++ /dev/null @@ -1,253 +0,0 @@ -/* zutil.h -- internal interface and configuration of the compression library - * Copyright (C) 1995-2013 Jean-loup Gailly. - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* WARNING: this file should *not* be used by applications. It is - part of the implementation of the compression library and is - subject to change. Applications should only use zlib.h. - */ - -/* @(#) $Id$ */ - -#ifndef ZUTIL_H -#define ZUTIL_H - -#ifdef HAVE_HIDDEN -# define ZLIB_INTERNAL __attribute__((visibility ("hidden"))) -#else -# define ZLIB_INTERNAL -#endif - -#include "zlib.h" - -#if defined(STDC) && !defined(Z_SOLO) -# if !(defined(_WIN32_WCE) && defined(_MSC_VER)) -# include -# endif -# include -# include -#endif - -#ifdef Z_SOLO - typedef long ptrdiff_t; /* guess -- will be caught if guess is wrong */ -#endif - -#ifndef local -# define local static -#endif -/* compile with -Dlocal if your debugger can't find static symbols */ - -typedef unsigned char uch; -typedef uch FAR uchf; -typedef unsigned short ush; -typedef ush FAR ushf; -typedef unsigned long ulg; - -extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */ -/* (size given to avoid silly warnings with Visual C++) */ - -#define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)] - -#define ERR_RETURN(strm,err) \ - return (strm->msg = ERR_MSG(err), (err)) -/* To be used only when the state is known to be valid */ - - /* common constants */ - -#ifndef DEF_WBITS -# define DEF_WBITS MAX_WBITS -#endif -/* default windowBits for decompression. MAX_WBITS is for compression only */ - -#if MAX_MEM_LEVEL >= 8 -# define DEF_MEM_LEVEL 8 -#else -# define DEF_MEM_LEVEL MAX_MEM_LEVEL -#endif -/* default memLevel */ - -#define STORED_BLOCK 0 -#define STATIC_TREES 1 -#define DYN_TREES 2 -/* The three kinds of block type */ - -#define MIN_MATCH 3 -#define MAX_MATCH 258 -/* The minimum and maximum match lengths */ - -#define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */ - - /* target dependencies */ - -#if defined(MSDOS) || (defined(WINDOWS) && !defined(WIN32)) -# define OS_CODE 0x00 -# ifndef Z_SOLO -# if defined(__TURBOC__) || defined(__BORLANDC__) -# if (__STDC__ == 1) && (defined(__LARGE__) || defined(__COMPACT__)) - /* Allow compilation with ANSI keywords only enabled */ - void _Cdecl farfree( void *block ); - void *_Cdecl farmalloc( unsigned long nbytes ); -# else -# include -# endif -# else /* MSC or DJGPP */ -# include -# endif -# endif -#endif - -#ifdef AMIGA -# define OS_CODE 0x01 -#endif - -#if defined(VAXC) || defined(VMS) -# define OS_CODE 0x02 -# define F_OPEN(name, mode) \ - fopen((name), (mode), "mbc=60", "ctx=stm", "rfm=fix", "mrs=512") -#endif - -#if defined(ATARI) || defined(atarist) -# define OS_CODE 0x05 -#endif - -#ifdef OS2 -# define OS_CODE 0x06 -# if defined(M_I86) && !defined(Z_SOLO) -# include -# endif -#endif - -#if defined(MACOS) || defined(TARGET_OS_MAC) -# define OS_CODE 0x07 -# ifndef Z_SOLO -# if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os -# include /* for fdopen */ -# else -# ifndef fdopen -# define fdopen(fd,mode) NULL /* No fdopen() */ -# endif -# endif -# endif -#endif - -#ifdef TOPS20 -# define OS_CODE 0x0a -#endif - -#ifdef WIN32 -# ifndef __CYGWIN__ /* Cygwin is Unix, not Win32 */ -# define OS_CODE 0x0b -# endif -#endif - -#ifdef __50SERIES /* Prime/PRIMOS */ -# define OS_CODE 0x0f -#endif - -#if defined(_BEOS_) || defined(RISCOS) -# define fdopen(fd,mode) NULL /* No fdopen() */ -#endif - -#if (defined(_MSC_VER) && (_MSC_VER > 600)) && !defined __INTERIX -# if defined(_WIN32_WCE) -# define fdopen(fd,mode) NULL /* No fdopen() */ -# ifndef _PTRDIFF_T_DEFINED - typedef int ptrdiff_t; -# define _PTRDIFF_T_DEFINED -# endif -# else -# define fdopen(fd,type) _fdopen(fd,type) -# endif -#endif - -#if defined(__BORLANDC__) && !defined(MSDOS) - #pragma warn -8004 - #pragma warn -8008 - #pragma warn -8066 -#endif - -/* provide prototypes for these when building zlib without LFS */ -#if !defined(_WIN32) && \ - (!defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0) - ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t)); -#endif - - /* common defaults */ - -#ifndef OS_CODE -# define OS_CODE 0x03 /* assume Unix */ -#endif - -#ifndef F_OPEN -# define F_OPEN(name, mode) fopen((name), (mode)) -#endif - - /* functions */ - -#if defined(pyr) || defined(Z_SOLO) -# define NO_MEMCPY -#endif -#if defined(SMALL_MEDIUM) && !defined(_MSC_VER) && !defined(__SC__) - /* Use our own functions for small and medium model with MSC <= 5.0. - * You may have to use the same strategy for Borland C (untested). - * The __SC__ check is for Symantec. - */ -# define NO_MEMCPY -#endif -#if defined(STDC) && !defined(HAVE_MEMCPY) && !defined(NO_MEMCPY) -# define HAVE_MEMCPY -#endif -#ifdef HAVE_MEMCPY -# ifdef SMALL_MEDIUM /* MSDOS small or medium model */ -# define zmemcpy _fmemcpy -# define zmemcmp _fmemcmp -# define zmemzero(dest, len) _fmemset(dest, 0, len) -# else -# define zmemcpy memcpy -# define zmemcmp memcmp -# define zmemzero(dest, len) memset(dest, 0, len) -# endif -#else - void ZLIB_INTERNAL zmemcpy OF((Bytef* dest, const Bytef* source, uInt len)); - int ZLIB_INTERNAL zmemcmp OF((const Bytef* s1, const Bytef* s2, uInt len)); - void ZLIB_INTERNAL zmemzero OF((Bytef* dest, uInt len)); -#endif - -/* Diagnostic functions */ -#ifdef DEBUG -# include - extern int ZLIB_INTERNAL z_verbose; - extern void ZLIB_INTERNAL z_error OF((char *m)); -# define Assert(cond,msg) {if(!(cond)) z_error(msg);} -# define Trace(x) {if (z_verbose>=0) fprintf x ;} -# define Tracev(x) {if (z_verbose>0) fprintf x ;} -# define Tracevv(x) {if (z_verbose>1) fprintf x ;} -# define Tracec(c,x) {if (z_verbose>0 && (c)) fprintf x ;} -# define Tracecv(c,x) {if (z_verbose>1 && (c)) fprintf x ;} -#else -# define Assert(cond,msg) -# define Trace(x) -# define Tracev(x) -# define Tracevv(x) -# define Tracec(c,x) -# define Tracecv(c,x) -#endif - -#ifndef Z_SOLO - voidpf ZLIB_INTERNAL zcalloc OF((voidpf opaque, unsigned items, - unsigned size)); - void ZLIB_INTERNAL zcfree OF((voidpf opaque, voidpf ptr)); -#endif - -#define ZALLOC(strm, items, size) \ - (*((strm)->zalloc))((strm)->opaque, (items), (size)) -#define ZFREE(strm, addr) (*((strm)->zfree))((strm)->opaque, (voidpf)(addr)) -#define TRY_FREE(s, p) {if (p) ZFREE(s, p);} - -/* Reverse the bytes in a 32-bit value */ -#define ZSWAP32(q) ((((q) >> 24) & 0xff) + (((q) >> 8) & 0xff00) + \ - (((q) & 0xff00) << 8) + (((q) & 0xff) << 24)) - -#endif /* ZUTIL_H */ diff --git a/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@zutil.h.blob b/.ccls-cache/@home@anon@Documents@Code@minecraftconsoles/Minecraft.Client@Common@zlib@zutil.h.blob deleted file mode 100644 index 5f6782774610ba01016646395f5f25bde84a963c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6381 zcmb_geQX!MKlaof_=PHdm^(JX{CjbmR@w~ifbr%uDF+vV=;TzkHA z@6Jh_F<>j(fQe1evJQkO8?e%8bkg{!=sE^trP4raw}Lt*sMxx8X_2B#r4?mj;d$>X zPTDjH>HYEe{JZ!0c%SF@KJR;1gMIY1NbEF*VZ@-6;|N-mL?SFPg&ZfU3K5c6j>z#M z$H;U>Wh7CN1WqBkO~fA(co+!dayd{O75D*yk(q{iKZD&x6cm{l;6;KFXff+!1kC4S zWqyd0eL1kZ5dcDz1SuB-TYG(>;ku zEY+DbpC`#sZ-RtjR63Z5!4U09nC$57LPNA0s+)}UCMhx&?1++K1V@93E|N;e6Vb3X zJ{^gL@ zvcM7}O^t&b&2qAW`7$g|XGKX-c}DRuP)>OxEez8|1tW$rqMyfz_&@*zixG)bs17)w z(sGtlH;yznQB94$JmVYIC+^EBLkt+qAv?J|t?~oBz^g?a;zm?XRCu5u^2rHwkz;)- zm&*&Z%K7rNtngwMeDb1FRAfm~OBtZW&bo%}RD>vZfG~&%xBh^?zNsz%zeItNRYFl^m=m&dEWGu!)|X zUuUihf}#|a1u9V#l@$vNHAGVauc%0I=iRpXD1rv)TMAPRaDfps5~N>NsbL5RLbXDl zVQ^cBNJ)|a?K26tb&dYUMt{SG`oP`Rl!h3&01Gw8Std{moqhH!m!XE4L0YEfJ8h() z@T1&<6!NOf@|nzhbcUcSWE3ld4w#roM#HPAowsWg>1U2qRFc+$KW z8^%#)#Zv6{^0n9^5w#$*jB*$)S$T5QLaXf@Q;&>eUmSZpW9mkW{ z4=R3y9dta49d^8c{lak!`;Fse?6~7K?DdM%*cr#$*n8#n$*+9z%*l^`w5EAT;#qu@ z$;ce%M)&y)F6HUn1{MaVE6U{c;MA<|;hE1l|oqLxkG~|uZ zqm0(&X4)#it3y`gSezGCoQKy2#fwkF(4okKRa8`HUNkr3f$=t*ZM<^^G398V`(QG9J7Z;X2%GqJaRy z?cCTytJqV+Z-42eC;TL^k>Ch@TbZ4}kk{X$(}2UcC}#NcI?8v&*b6!Cf=TJUIq zBt!H|Fq_Ta?B5I$^Y>tr_OrL`UH;*d-%qB3sYr-QLH?64tkRrhDUR1cT%FENw;f5Z z5tlbLJoXLha(8%p%u-)ws#_o;81U8B}CY#` zpy&tHv%%R=We3@qGF&>&y?)OFzqViKk48Eu_@qQ8V!>%)&v;;4=2`|pBdJ-ikGsbG z?Y0T$L`}PGGWyiN5A8ec-EVk@=&jCB8qgF~`l%QR`3^@yDW4YP4hXW&SqEzvB3=IY)5Ma;1-o4>-p3S1s|<$kjDy@!v&fsPj7skIh009RD_dcuIwDpwU41!)#+ z=O{Jy+VZp4QZmhOLqniy#cDwA5tOnq*BEdGq}zxlcRYA|?S`LiwnBj$yQk8#rrlOs zSqpM9{FxJ<|Lt?T%6k%Il1yo{gE5~n3t0j~SFA^LiaBG|b|eFalm6lHAO7Xt*6L|a z#@olkkn7foc5uS~q~f8zi66VQV43UVXNKI2SDV2l*Cm(%NOS5-SFXEPsbtGDtd!?O zaA9>59dTz^FFJBV`=Vwb5bJ@;1Hd7W{YI?c&aQgwU_p3ib8s7pxF71-UOL@rumFf5=aJ;hSp)viVFv# zuD61U!pUlBEIQ(b-pzWUXCR;FUFX3k$VNl^na8iJZIQ=bj3?pia~SQNmQMr1fx&?R z(0#P>QAi<3vza}htoOcorqwp8zp9t&8W3(iv7M|u3CbW%$DiJNBE77p?`hDoE?e7e zZFd4GF6}tC>EYNr=aH3BPL^PRwWFJuo8=VMiwm6SL0;e#ZXf|2gn-|ud;>Z-$U$SW zy?v)@n{6-X3kt0#t898d(CPNR>wU-($ZA7v>BX@RR;(3HAU<7B6%&MgX9Mc_Tb)~h zEFjIbc;t60u73E+tN+k)lFNfzE5!z+r3pQ;ovJ(qX##1c>EKISRu6_hc~I{G*M-cO P9pIwtA_NVxMi2Ub14A$X