From a52c3279c34d140adbcc4979c0e3afa934d264fc Mon Sep 17 00:00:00 2001 From: Yun Hsiao Wu Date: Thu, 16 Dec 2021 11:51:30 +0800 Subject: [PATCH 1/4] revert link order adjustment (#201) The new order will lead to compilation failures when running 32-bit app on 64-bit devices. /eyerolling --- android/CMakeLists.txt | 2 +- win32/CMakeLists.txt | 2 +- win64/CMakeLists.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/android/CMakeLists.txt b/android/CMakeLists.txt index 2c01b41f..dfb6221d 100644 --- a/android/CMakeLists.txt +++ b/android/CMakeLists.txt @@ -105,7 +105,7 @@ endif() ############################# glslang ############################# -set(glslang_libs_name glslang glslang-default-resource-limits SPIRV MachineIndependent OGLCompiler OSDependent SPIRV-Tools-opt SPIRV-Tools GenericCodeGen) +set(glslang_libs_name glslang glslang-default-resource-limits MachineIndependent OGLCompiler OSDependent SPIRV SPIRV-Tools-opt SPIRV-Tools GenericCodeGen) foreach(lib IN LISTS glslang_libs_name) add_library(${lib} STATIC IMPORTED GLOBAL) set_target_properties(${lib} PROPERTIES diff --git a/win32/CMakeLists.txt b/win32/CMakeLists.txt index ba47503b..39efe5ed 100644 --- a/win32/CMakeLists.txt +++ b/win32/CMakeLists.txt @@ -200,7 +200,7 @@ endif() ############################# glslang ############################# -set(glslang_libs_name glslang glslang-default-resource-limits SPIRV MachineIndependent OGLCompiler OSDependent SPIRV-Tools-opt SPIRV-Tools GenericCodeGen) +set(glslang_libs_name glslang glslang-default-resource-limits MachineIndependent OGLCompiler OSDependent SPIRV SPIRV-Tools-opt SPIRV-Tools GenericCodeGen) foreach(gl IN LISTS glslang_libs_name) add_library(${gl} STATIC IMPORTED GLOBAL) set_target_properties(${gl} PROPERTIES diff --git a/win64/CMakeLists.txt b/win64/CMakeLists.txt index 317075bb..56e590ed 100644 --- a/win64/CMakeLists.txt +++ b/win64/CMakeLists.txt @@ -200,7 +200,7 @@ endif() ############################# glslang ############################# -set(glslang_libs_name glslang glslang-default-resource-limits SPIRV MachineIndependent OGLCompiler OSDependent SPIRV-Tools-opt SPIRV-Tools GenericCodeGen) +set(glslang_libs_name glslang glslang-default-resource-limits MachineIndependent OGLCompiler OSDependent SPIRV SPIRV-Tools-opt SPIRV-Tools GenericCodeGen) foreach(gl IN LISTS glslang_libs_name) add_library(${gl} STATIC IMPORTED GLOBAL) set_target_properties(${gl} PROPERTIES From bcdb8327effd1e183272d17d8e8cb70bacab84f7 Mon Sep 17 00:00:00 2001 From: Zeqiang Li Date: Wed, 29 Dec 2021 16:41:57 +0800 Subject: [PATCH 2/4] 3.4 wgpu wasm (#207) --- CMakeLists.txt | 2 + cmake/CocosExternalConfig.cmake | 3 + emscripten/CMakeLists.txt | 72 + emscripten/include/zlib/zconf.h | 534 ++++++ emscripten/include/zlib/zlib.h | 1912 +++++++++++++++++++ emscripten/libs/libtbb_static.a | Bin 0 -> 695496 bytes emscripten/libs/libtbbmalloc_proxy_static.a | Bin 0 -> 13040 bytes emscripten/libs/libtbbmalloc_static.a | Bin 0 -> 235408 bytes emscripten/libs/libz.a | Bin 0 -> 248554 bytes 9 files changed, 2523 insertions(+) create mode 100644 emscripten/CMakeLists.txt create mode 100644 emscripten/include/zlib/zconf.h create mode 100644 emscripten/include/zlib/zlib.h create mode 100644 emscripten/libs/libtbb_static.a create mode 100644 emscripten/libs/libtbbmalloc_proxy_static.a create mode 100644 emscripten/libs/libtbbmalloc_static.a create mode 100644 emscripten/libs/libz.a diff --git a/CMakeLists.txt b/CMakeLists.txt index 0265e43f..bd7c5cb8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,4 +28,6 @@ elseif(APPLE) endif() elseif(OHOS) include(${CMAKE_CURRENT_LIST_DIR}/ohos/CMakeLists.txt) +elseif(EMSCRIPTEN) + include(${CMAKE_CURRENT_LIST_DIR}/emscripten/CMakeLists.txt) endif() diff --git a/cmake/CocosExternalConfig.cmake b/cmake/CocosExternalConfig.cmake index 6405a00c..36fedc22 100644 --- a/cmake/CocosExternalConfig.cmake +++ b/cmake/CocosExternalConfig.cmake @@ -15,6 +15,9 @@ elseif(MACOSX) elseif(OHOS) set(platform_name ohos) set(platform_spec_path ohos/${OHOS_ARCH}) +elseif(EMSCRIPTEN) + set(platform_name emscripten) + set(platform_spec_path emscripten) endif() set(platform_spec_path "${CMAKE_CURRENT_LIST_DIR}/../${platform_spec_path}") diff --git a/emscripten/CMakeLists.txt b/emscripten/CMakeLists.txt new file mode 100644 index 00000000..ea696af2 --- /dev/null +++ b/emscripten/CMakeLists.txt @@ -0,0 +1,72 @@ + +add_library(z STATIC IMPORTED GLOBAL) +set_target_properties(z PROPERTIES + IMPORTED_LOCATION ${CMAKE_CURRENT_LIST_DIR}/libs/libz.a + INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_LIST_DIR}/include/zlib +) + +############################# SPIRV-Cross ############################# +# add_library(spirv-cross-core STATIC IMPORTED GLOBAL) +# set_target_properties(spirv-cross-core PROPERTIES +# IMPORTED_LOCATION ${CMAKE_CURRENT_LIST_DIR}/libs/libspirv-cross-core.a +# INTERFACE_INCLUDE_DIRECTORIES "${SPIRV_INCLUDE_DIRS}" +# ) +# add_library(spirv-cross-msl STATIC IMPORTED GLOBAL) +# set_target_properties(spirv-cross-msl PROPERTIES +# IMPORTED_LOCATION ${CMAKE_CURRENT_LIST_DIR}/libs/libspirv-cross-msl.a +# ) +# add_library(spirv-cross-glsl STATIC IMPORTED GLOBAL) +# set_target_properties(spirv-cross-glsl PROPERTIES +# IMPORTED_LOCATION ${CMAKE_CURRENT_LIST_DIR}/libs/libspirv-cross-glsl.a +# ) +# set(spirv-cross_libs_name spirv-cross-core spirv-cross-glsl spirv-cross-msl) + +############################# TBB ############################# + +# add_library(tbb STATIC IMPORTED GLOBAL) +# set_target_properties(tbb PROPERTIES +# IMPORTED_LOCATION ${CMAKE_CURRENT_LIST_DIR}/libs/libtbb_static.a +# ) +# add_library(tbbmalloc STATIC IMPORTED GLOBAL) +# set_target_properties(tbbmalloc PROPERTIES +# IMPORTED_LOCATION ${CMAKE_CURRENT_LIST_DIR}/libs/libtbbmalloc_static.a +# ) +# add_library(tbbmalloc_proxy STATIC IMPORTED GLOBAL) +# set_target_properties(tbbmalloc_proxy PROPERTIES +# IMPORTED_LOCATION ${CMAKE_CURRENT_LIST_DIR}/libs/libtbbmalloc_proxy_static.a +# ) +# set(tbb_libs_name tbb tbbmalloc tbbmalloc_proxy) + +#if(USE_PHYSICS_PHYSX) +# set(PhysXSDK PhysX PhysXCommon PhysXFoundation PhysXExtensions PhysXCooking PhysXCharacterKinematic PhysXVehicle PhysXPvdSDK) +# foreach(PX IN LISTS PhysXSDK) +# add_library(${PX} STATIC IMPORTED GLOBAL) +# set_target_properties(${PX} PROPERTIES +# IMPORTED_LOCATION ${CMAKE_CURRENT_LIST_DIR}/libs/PhysX/lib${PX}_static_64.a +# ) +# endforeach() +#else() +# set(PhysXSDK) +#endif() + +list(APPEND CC_EXTERNAL_LIBS + #freetype + #jpeg + #png + #webp + #curl + #crypto + #ssl + #${tbb_libs_name} + #${PhysXSDK} +) + +set(ZLIB z) +if(NOT USE_MODULES) + list(APPEND CC_EXTERNAL_LIBS ${ZLIB}) +endif() + + +list(APPEND CC_EXTERNAL_INCLUDES + ${CMAKE_CURRENT_LIST_DIR}/include +) diff --git a/emscripten/include/zlib/zconf.h b/emscripten/include/zlib/zconf.h new file mode 100644 index 00000000..77398c11 --- /dev/null +++ b/emscripten/include/zlib/zconf.h @@ -0,0 +1,534 @@ +/* zconf.h -- configuration of the zlib compression library + * Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler + * 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 and init macros */ +# 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 +# define adler32_z z_adler32_z +# 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 crc32_z z_crc32_z +# define deflate z_deflate +# define deflateBound z_deflateBound +# define deflateCopy z_deflateCopy +# define deflateEnd z_deflateEnd +# define deflateGetDictionary z_deflateGetDictionary +# define deflateInit z_deflateInit +# define deflateInit2 z_deflateInit2 +# 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 gzfread z_gzfread +# define gzfwrite z_gzfwrite +# 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 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 gzvprintf z_gzvprintf +# define gzwrite z_gzwrite +# endif +# define inflate z_inflate +# define inflateBack z_inflateBack +# define inflateBackEnd z_inflateBackEnd +# define inflateBackInit z_inflateBackInit +# define inflateBackInit_ z_inflateBackInit_ +# define inflateCodesUsed z_inflateCodesUsed +# define inflateCopy z_inflateCopy +# define inflateEnd z_inflateEnd +# define inflateGetDictionary z_inflateGetDictionary +# define inflateGetHeader z_inflateGetHeader +# define inflateInit z_inflateInit +# define inflateInit2 z_inflateInit2 +# 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 inflateResetKeep z_inflateResetKeep +# define inflateSetDictionary z_inflateSetDictionary +# define inflateSync z_inflateSync +# define inflateSyncPoint z_inflateSyncPoint +# define inflateUndermine z_inflateUndermine +# define inflateValidate z_inflateValidate +# 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 +# define uncompress2 z_uncompress2 +# 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 + +#ifdef Z_SOLO + typedef unsigned long z_size_t; +#else +# define z_longlong long long +# if defined(NO_SIZE_T) + typedef unsigned NO_SIZE_T z_size_t; +# elif defined(STDC) +# include + typedef size_t z_size_t; +# else + typedef unsigned long z_size_t; +# endif +# undef z_longlong +#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 about 7 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 + +#if 1 /* was set to #if 1 by ./configure */ +# define Z_HAVE_UNISTD_H +#endif + +#if 1 /* was 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/emscripten/include/zlib/zlib.h b/emscripten/include/zlib/zlib.h new file mode 100644 index 00000000..f09cdaf1 --- /dev/null +++ b/emscripten/include/zlib/zlib.h @@ -0,0 +1,1912 @@ +/* zlib.h -- interface of the 'zlib' general purpose compression library + version 1.2.11, January 15th, 2017 + + Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + + + The data format used by the zlib library is described by RFCs (Request for + Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950 + (zlib format), rfc1951 (deflate format) and rfc1952 (gzip format). +*/ + +#ifndef ZLIB_H +#define ZLIB_H + +#include "zconf.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define ZLIB_VERSION "1.2.11" +#define ZLIB_VERNUM 0x12b0 +#define ZLIB_VER_MAJOR 1 +#define ZLIB_VER_MINOR 2 +#define ZLIB_VER_REVISION 11 +#define ZLIB_VER_SUBREVISION 0 + +/* + The 'zlib' compression library provides in-memory compression and + decompression functions, including integrity checks of the uncompressed data. + This version of the library supports only one compression method (deflation) + but other algorithms will be added later and will have the same stream + interface. + + Compression can be done in a single step if the buffers are large enough, + or can be done by repeated calls of the compression function. In the latter + case, the application must provide more input and/or consume the output + (providing more output space) before each call. + + The compressed data format used by default by the in-memory functions is + the zlib format, which is a zlib wrapper documented in RFC 1950, wrapped + around a deflate stream, which is itself documented in RFC 1951. + + The library also 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. + + This library can optionally read and write gzip and raw deflate streams in + memory as well. + + The zlib format was designed to be compact and fast for use in memory + and on communications channels. The gzip format was designed for single- + file compression on file systems, has a larger header than zlib to maintain + directory information, and uses a different, slower check method than zlib. + + The library does not install any signal handler. The decoder checks + the consistency of the compressed data, so the library should never crash + even in the case of corrupted input. +*/ + +typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size)); +typedef void (*free_func) OF((voidpf opaque, voidpf address)); + +struct internal_state; + +typedef struct z_stream_s { + z_const Bytef *next_in; /* next input byte */ + uInt avail_in; /* number of bytes available at next_in */ + uLong total_in; /* total number of input bytes read so far */ + + Bytef *next_out; /* next output byte will go here */ + uInt avail_out; /* remaining free space at next_out */ + uLong total_out; /* total number of bytes output so far */ + + z_const char *msg; /* last error message, NULL if no error */ + struct internal_state FAR *state; /* not visible by applications */ + + alloc_func zalloc; /* used to allocate the internal state */ + free_func zfree; /* used to free the internal state */ + voidpf opaque; /* private data object passed to zalloc and zfree */ + + int data_type; /* best guess about the data type: binary or text + for deflate, or the decoding state for inflate */ + uLong adler; /* Adler-32 or CRC-32 value of the uncompressed data */ + uLong reserved; /* reserved for future use */ +} z_stream; + +typedef z_stream FAR *z_streamp; + +/* + gzip header information passed to and from zlib routines. See RFC 1952 + for more details on the meanings of these fields. +*/ +typedef struct gz_header_s { + int text; /* true if compressed data believed to be text */ + uLong time; /* modification time */ + int xflags; /* extra flags (not used when writing a gzip file) */ + int os; /* operating system */ + Bytef *extra; /* pointer to extra field or Z_NULL if none */ + uInt extra_len; /* extra field length (valid if extra != Z_NULL) */ + uInt extra_max; /* space at extra (only when reading header) */ + Bytef *name; /* pointer to zero-terminated file name or Z_NULL */ + uInt name_max; /* space at name (only when reading header) */ + Bytef *comment; /* pointer to zero-terminated comment or Z_NULL */ + uInt comm_max; /* space at comment (only when reading header) */ + int hcrc; /* true if there was or will be a header crc */ + int done; /* true when done reading gzip header (not used + when writing a gzip file) */ +} gz_header; + +typedef gz_header FAR *gz_headerp; + +/* + The application must update next_in and avail_in when avail_in has dropped + to zero. It must update next_out and avail_out when avail_out has dropped + to zero. The application must initialize zalloc, zfree and opaque before + calling the init function. All other fields are set by the compression + library and must not be updated by the application. + + The opaque value provided by the application will be passed as the first + parameter for calls of zalloc and zfree. This can be useful for custom + memory management. The compression library attaches no meaning to the + opaque value. + + zalloc must return Z_NULL if there is not enough memory for the object. + If zlib is used in a multi-threaded application, zalloc and zfree must be + thread safe. In that case, zlib is thread-safe. When zalloc and zfree are + Z_NULL on entry to the initialization function, they are set to internal + routines that use the standard library functions malloc() and free(). + + On 16-bit systems, the functions zalloc and zfree must be able to allocate + exactly 65536 bytes, but will not be required to allocate more than this if + the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS, pointers + returned by zalloc for objects of exactly 65536 bytes *must* have their + offset normalized to zero. The default allocation function provided by this + library ensures this (see zutil.c). To reduce memory requirements and avoid + any allocation of 64K objects, at the expense of compression ratio, compile + the library with -DMAX_WBITS=14 (see zconf.h). + + The fields total_in and total_out can be used for statistics or progress + reports. After compression, total_in holds the total size of the + uncompressed data and may be saved for use by the decompressor (particularly + if the decompressor wants to decompress everything in a single step). +*/ + + /* constants */ + +#define Z_NO_FLUSH 0 +#define Z_PARTIAL_FLUSH 1 +#define Z_SYNC_FLUSH 2 +#define Z_FULL_FLUSH 3 +#define Z_FINISH 4 +#define Z_BLOCK 5 +#define Z_TREES 6 +/* Allowed flush values; see deflate() and inflate() below for details */ + +#define Z_OK 0 +#define Z_STREAM_END 1 +#define Z_NEED_DICT 2 +#define Z_ERRNO (-1) +#define Z_STREAM_ERROR (-2) +#define Z_DATA_ERROR (-3) +#define Z_MEM_ERROR (-4) +#define Z_BUF_ERROR (-5) +#define Z_VERSION_ERROR (-6) +/* Return codes for the compression/decompression functions. Negative values + * are errors, positive values are used for special but normal events. + */ + +#define Z_NO_COMPRESSION 0 +#define Z_BEST_SPEED 1 +#define Z_BEST_COMPRESSION 9 +#define Z_DEFAULT_COMPRESSION (-1) +/* compression levels */ + +#define Z_FILTERED 1 +#define Z_HUFFMAN_ONLY 2 +#define Z_RLE 3 +#define Z_FIXED 4 +#define Z_DEFAULT_STRATEGY 0 +/* compression strategy; see deflateInit2() below for details */ + +#define Z_BINARY 0 +#define Z_TEXT 1 +#define Z_ASCII Z_TEXT /* for compatibility with 1.2.2 and earlier */ +#define Z_UNKNOWN 2 +/* Possible values of the data_type field for deflate() */ + +#define Z_DEFLATED 8 +/* The deflate compression method (the only one supported in this version) */ + +#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */ + +#define zlib_version zlibVersion() +/* for compatibility with versions < 1.0.2 */ + + + /* basic functions */ + +ZEXTERN const char * ZEXPORT zlibVersion OF((void)); +/* The application can compare zlibVersion and ZLIB_VERSION for consistency. + If the first character differs, the library code actually used is not + compatible with the zlib.h header file used by the application. This check + is automatically made by deflateInit and inflateInit. + */ + +/* +ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level)); + + Initializes the internal stream state for compression. The fields + zalloc, zfree and opaque must be initialized before by the caller. If + zalloc and zfree are set to Z_NULL, deflateInit updates them to use default + allocation functions. + + The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9: + 1 gives best speed, 9 gives best compression, 0 gives no compression at all + (the input data is simply copied a block at a time). Z_DEFAULT_COMPRESSION + requests a default compromise between speed and compression (currently + equivalent to level 6). + + deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_STREAM_ERROR if level is not a valid compression level, 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. deflateInit does not perform any compression: + this will be done by deflate(). +*/ + + +ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); +/* + deflate compresses 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. deflate performs one or both of the + following actions: + + - Compress 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 and avail_in are updated and + processing will resume at this point for the next call of deflate(). + + - Generate more output starting at next_out and update next_out and avail_out + accordingly. This action is forced if the parameter flush is non zero. + Forcing flush frequently degrades the compression ratio, so this parameter + should be set only when necessary. Some output may be provided even if + flush is zero. + + Before the call of deflate(), the application should ensure that at least + one of the actions is possible, by providing more input and/or consuming more + output, and updating avail_in or avail_out accordingly; avail_out should + never be zero before the call. The application can consume the compressed + output when it wants, for example when the output buffer is full (avail_out + == 0), or after each call of deflate(). If deflate 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. See deflatePending(), + which can be used if desired to determine whether or not there is more ouput + in that case. + + Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to + decide how much data to accumulate before producing output, in order to + maximize compression. + + If the parameter flush is set to Z_SYNC_FLUSH, all pending output is + flushed to the output buffer and the output is aligned on a byte boundary, so + that the decompressor can get all input data available so far. (In + particular avail_in is zero after the call if enough output space has been + provided before the call.) Flushing may degrade compression for some + compression algorithms and so it should be used only when necessary. This + completes the current deflate block and follows it with an empty stored block + that is three bits plus filler bits to the next byte, followed by four bytes + (00 00 ff ff). + + If flush is set to Z_PARTIAL_FLUSH, all pending output is flushed to the + output buffer, but the output is not aligned to a byte boundary. All of the + input data so far will be available to the decompressor, as for Z_SYNC_FLUSH. + This completes the current deflate block and follows it with an empty fixed + codes block that is 10 bits long. This assures that enough bytes are output + in order for the decompressor to finish the block before the empty fixed + codes block. + + If flush is set to Z_BLOCK, a deflate block is completed and emitted, as + for Z_SYNC_FLUSH, but the output is not aligned on a byte boundary, and up to + seven bits of the current block are held to be written as the next byte after + the next deflate block is completed. In this case, the decompressor may not + be provided enough bits at this point in order to complete decompression of + the data provided so far to the compressor. It may need to wait for the next + block to be emitted. This is for advanced applications that need to control + the emission of deflate blocks. + + If flush is set to Z_FULL_FLUSH, all output is flushed as with + Z_SYNC_FLUSH, and the compression state is reset so that decompression can + restart from this point if previous compressed data has been damaged or if + random access is desired. Using Z_FULL_FLUSH too often can seriously degrade + compression. + + If deflate returns with avail_out == 0, this function must be called again + with the same value of the flush parameter and more output space (updated + avail_out), until the flush is complete (deflate returns with non-zero + avail_out). In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that + avail_out is greater than six to avoid repeated flush markers due to + avail_out == 0 on return. + + If the parameter flush is set to Z_FINISH, pending input is processed, + pending output is flushed and deflate returns with Z_STREAM_END if there was + enough output space. If deflate returns with Z_OK or Z_BUF_ERROR, this + function must be called again with Z_FINISH and more output space (updated + avail_out) but no more input data, until it returns with Z_STREAM_END or an + error. After deflate has returned Z_STREAM_END, the only possible operations + on the stream are deflateReset or deflateEnd. + + Z_FINISH can be used in the first deflate call after deflateInit if all the + compression is to be done in a single step. In order to complete in one + call, avail_out must be at least the value returned by deflateBound (see + below). Then deflate is guaranteed to return Z_STREAM_END. If not enough + output space is provided, deflate will not return Z_STREAM_END, and it must + be called again as described above. + + deflate() sets strm->adler to the Adler-32 checksum of all input read + so far (that is, total_in bytes). If a gzip stream is being generated, then + strm->adler will be the CRC-32 checksum of the input read so far. (See + deflateInit2 below.) + + deflate() may update strm->data_type if it can make a good guess about + the input data type (Z_BINARY or Z_TEXT). If 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 or the state was inadvertently written over + by the application), or 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. In the current version of inflate, the provided input is not + read or consumed. The allocation of a sliding window will be deferred to + the first call of inflate (if the decompression does not complete on the + first call). 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. + Actual decompression will be done by inflate(). So next_in, and avail_in, + 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), then next_in and avail_in are updated + accordingly, and processing will resume at this point for the next call of + inflate(). + + - Generate 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. If the + caller of inflate() does not provide both available input and available + output space, it is possible that there will be no progress made. 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. + To assist in this, on return inflate() always sets 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 Adler-32 + 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 unless inflateGetHeader() is used. When processing + gzip-wrapped deflate data, strm->adler32 is set to the CRC-32 of the output + produced so far. The CRC-32 is checked against the gzip trailer, as is the + uncompressed length, modulo 2^32. + + 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, in which case strm->msg points to a string with a more specific + error), Z_STREAM_ERROR if the stream structure was inconsistent (for example + next_in or next_out was Z_NULL, or the state was inadvertently written over + by the application), Z_MEM_ERROR if there was not enough memory, Z_BUF_ERROR + if no progress was 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 to be attempted. +*/ + + +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, or Z_STREAM_ERROR if the stream state + was inconsistent. +*/ + + + /* 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. + + For the current implementation of deflate(), a windowBits value of 8 (a + window size of 256 bytes) is not supported. As a result, a request for 8 + will result in 9 (a 512-byte window). In that case, providing 8 to + inflateInit2() will result in an error when the zlib header with 9 is + checked against the initialization of inflate(). The remedy is to not use 8 + with deflateInit2() with this initialization, or at least in that case use 9 + with inflateInit2(). + + 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 a 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 the appropriate value, + if the operating system was determined at compile time. If a gzip stream is + being written, strm->adler is a CRC-32 instead of an Adler-32. + + For raw deflate or gzip encoding, a request for a 256-byte window is + rejected as invalid, since only the zlib header provides a means of + transmitting the window size to the decompressor. + + 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 Adler-32 value + of the dictionary; the decompressor may later use this value to determine + which dictionary has been used by the compressor. (The Adler-32 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 + Adler-32 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 deflateGetDictionary OF((z_streamp strm, + Bytef *dictionary, + uInt *dictLength)); +/* + Returns the sliding dictionary being maintained by deflate. 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 deflateGetDictionary() 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. + + deflateGetDictionary() may return a length less than the window size, even + when more than the window size in input has been provided. It may return up + to 258 bytes less in that case, due to how zlib's implementation of deflate + manages the sliding window and lookahead for matches, where matches can be + up to 258 bytes long. If the application needs the last window-size bytes of + input, then that would need to be saved by the application outside of zlib. + + deflateGetDictionary returns Z_OK on success, or Z_STREAM_ERROR if the + stream state is inconsistent. +*/ + +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 the internal compression state. The stream + will leave the compression level and any other attributes that may have been + set unchanged. + + 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 approach (which is a function of the level) or the + strategy is changed, and if any input has been consumed in a previous + deflate() call, then the input available so far is compressed with the old + level and strategy using deflate(strm, Z_BLOCK). There are three approaches + for the compression levels 0, 1..3, and 4..9 respectively. The new level + and strategy will take effect at the next call of deflate(). + + If a deflate(strm, Z_BLOCK) is performed by deflateParams(), and it does + not have enough output space to complete, then the parameter change will not + take effect. In this case, deflateParams() can be called again with the + same parameters and more output space to try again. + + In order to assure a change in the parameters on the first try, the + deflate stream should be flushed using deflate() with Z_BLOCK or other flush + request until strm.avail_out is not zero, before calling deflateParams(). + Then no more input data should be provided before the deflateParams() call. + If this is done, the old level and strategy will be applied to the data + compressed before deflateParams(), and the new level and strategy will be + applied to the the data compressed after deflateParams(). + + deflateParams returns Z_OK on success, Z_STREAM_ERROR if the source stream + state was inconsistent or if a parameter was invalid, or Z_BUF_ERROR if + there was not enough output space to complete the compression of the + available input data before a change in the strategy or approach. Note that + in the case of a Z_BUF_ERROR, the parameters are not changed. A return + value of Z_BUF_ERROR is not fatal, in which case deflateParams() can be + retried with more output space. +*/ + +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 Adler-32 or a CRC-32 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 + CRC-32 instead of an Adler-32. Unlike the gunzip utility and gzread() (see + below), inflate() will not automatically decode concatenated gzip streams. + inflate() will return Z_STREAM_END at the end of the gzip stream. The state + would need to be reset to continue decoding a subsequent gzip stream. + + 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 Adler-32 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 Adler-32 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 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. If the window size is changed, then the + memory allocated for the window is freed, and the window will be reallocated + by inflate() if needed. + + 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 -65536 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 default + behavior of inflate(), which expects a zlib 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: ZLIB_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 data. compress() is equivalent to compress2() with a level + parameter of Z_DEFAULT_COMPRESSION. + + 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 data. + + 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 data. + + 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. +*/ + +ZEXTERN int ZEXPORT uncompress2 OF((Bytef *dest, uLongf *destLen, + const Bytef *source, uLong *sourceLen)); +/* + Same as uncompress, except that sourceLen is a pointer, where the + length of the source is *sourceLen. On return, *sourceLen is the number of + source bytes consumed. +*/ + + /* 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. Three times that size in buffer space is allocated. 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. Previously provided + data is flushed before the parameter change. + + gzsetparams returns Z_OK if success, Z_STREAM_ERROR if the file was not + opened for writing, Z_ERRNO if there is an error writing the flushed data, + or Z_MEM_ERROR if there is a memory allocation error. +*/ + +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. If len is too large to fit in an int, + then nothing is read, -1 is returned, and the error state is set to + Z_STREAM_ERROR. +*/ + +ZEXTERN z_size_t ZEXPORT gzfread OF((voidp buf, z_size_t size, z_size_t nitems, + gzFile file)); +/* + Read up to nitems items of size size from file to buf, otherwise operating + as gzread() does. This duplicates the interface of stdio's fread(), with + size_t request and return types. If the library defines size_t, then + z_size_t is identical to size_t. If not, then z_size_t is an unsigned + integer type that can contain a pointer. + + gzfread() returns the number of full items read of size size, or zero if + the end of the file was reached and a full item could not be read, or if + there was an error. gzerror() must be consulted if zero is returned in + order to determine if there was an error. If the multiplication of size and + nitems overflows, i.e. the product does not fit in a z_size_t, then nothing + is read, zero is returned, and the error state is set to Z_STREAM_ERROR. + + In the event that the end of file is reached and only a partial item is + available at the end, i.e. the remaining uncompressed data length is not a + multiple of size, then the final partial item is nevetheless read into buf + and the end-of-file flag is set. The length of the partial item read is not + provided, but could be inferred from the result of gztell(). This behavior + is the same as the behavior of fread() implementations in common libraries, + but it prevents the direct use of gzfread() to read a concurrently written + file, reseting and retrying on end-of-file, when size is not 1. +*/ + +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 z_size_t ZEXPORT gzfwrite OF((voidpc buf, z_size_t size, + z_size_t nitems, gzFile file)); +/* + gzfwrite() writes nitems items of size size from buf to file, duplicating + the interface of stdio's fwrite(), with size_t request and return types. If + the library defines size_t, then z_size_t is identical to size_t. If not, + then z_size_t is an unsigned integer type that can contain a pointer. + + gzfwrite() returns the number of full items written of size size, or zero + if there was an error. If the multiplication of size and nitems overflows, + i.e. the product does not fit in a z_size_t, then nothing is written, zero + is returned, and the error state is set to Z_STREAM_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 a negative zlib error code 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 + concatenated 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 CRC-32 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_z OF((uLong adler, const Bytef *buf, + z_size_t len)); +/* + Same as adler32(), but with a size_t length. +*/ + +/* +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_z OF((uLong adler, const Bytef *buf, + z_size_t len)); +/* + Same as crc32(), but with a size_t length. +*/ + +/* +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)); +#ifdef Z_PREFIX_SET +# define z_deflateInit(strm, level) \ + deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream)) +# define z_inflateInit(strm) \ + inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream)) +# define z_deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ + deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ + (strategy), ZLIB_VERSION, (int)sizeof(z_stream)) +# define z_inflateInit2(strm, windowBits) \ + inflateInit2_((strm), (windowBits), ZLIB_VERSION, \ + (int)sizeof(z_stream)) +# define z_inflateBackInit(strm, windowBits, window) \ + inflateBackInit_((strm), (windowBits), (window), \ + ZLIB_VERSION, (int)sizeof(z_stream)) +#else +# 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)) +#endif + +#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 */ + +/* 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 inflateValidate OF((z_streamp, int)); +ZEXTERN unsigned long ZEXPORT inflateCodesUsed OF ((z_streamp)); +ZEXTERN int ZEXPORT inflateResetKeep OF((z_streamp)); +ZEXTERN int ZEXPORT deflateResetKeep OF((z_streamp)); +#if (defined(_WIN32) || defined(__CYGWIN__)) && !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/emscripten/libs/libtbb_static.a b/emscripten/libs/libtbb_static.a new file mode 100644 index 0000000000000000000000000000000000000000..53bea733311e235c78abee86914a0d1d15d10530 GIT binary patch literal 695496 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˺_^;1JfW&w4S@&z7)`5b4kPZ% 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 literal 0 HcmV?d00001 diff --git a/emscripten/libs/libtbbmalloc_static.a b/emscripten/libs/libtbbmalloc_static.a new file mode 100644 index 0000000000000000000000000000000000000000..80a14fb5c627d9c0e2a9ce5ec6e00ce686807c8a GIT binary patch literal 235408 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 Date: Fri, 7 Jan 2022 17:33:25 +0800 Subject: [PATCH 3/4] mpg123 fix (#210) --- win64/CMakeLists.txt | 4 +- win64/include/mpg123/fmt123.h | 2 +- win64/include/mpg123/mpg123.h | 2002 +++++++++++++++++++++++++++++- win64/include/mpg123/mpg123.h.in | 1721 ------------------------- win64/include/mpg123/out123.h | 734 +++++++++++ win64/include/mpg123/syn123.h | 1118 +++++++++++++++++ win64/libs/libmpg123-0.dll | Bin 0 -> 427370 bytes win64/libs/libmpg123-0.lib | Bin 0 -> 35362 bytes win64/libs/libmpg123.dll | Bin 290816 -> 0 bytes win64/libs/libmpg123.lib | Bin 23282 -> 0 bytes 10 files changed, 3834 insertions(+), 1747 deletions(-) delete mode 100644 win64/include/mpg123/mpg123.h.in create mode 100644 win64/include/mpg123/out123.h create mode 100644 win64/include/mpg123/syn123.h create mode 100644 win64/libs/libmpg123-0.dll create mode 100644 win64/libs/libmpg123-0.lib delete mode 100644 win64/libs/libmpg123.dll delete mode 100644 win64/libs/libmpg123.lib diff --git a/win64/CMakeLists.txt b/win64/CMakeLists.txt index 56e590ed..159ad494 100644 --- a/win64/CMakeLists.txt +++ b/win64/CMakeLists.txt @@ -62,8 +62,8 @@ set_target_properties(jpeg PROPERTIES add_library(mpg123 SHARED IMPORTED GLOBAL) set_target_properties(mpg123 PROPERTIES - IMPORTED_LOCATION ${CMAKE_CURRENT_LIST_DIR}/libs/libmpg123.dll - IMPORTED_IMPLIB ${CMAKE_CURRENT_LIST_DIR}/libs/libmpg123.lib + IMPORTED_LOCATION ${CMAKE_CURRENT_LIST_DIR}/libs/libmpg123-0.dll + IMPORTED_IMPLIB ${CMAKE_CURRENT_LIST_DIR}/libs/libmpg123-0.lib INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_LIST_DIR}/include/mpg123 ) diff --git a/win64/include/mpg123/fmt123.h b/win64/include/mpg123/fmt123.h index dcabf5e0..d7772e1e 100644 --- a/win64/include/mpg123/fmt123.h +++ b/win64/include/mpg123/fmt123.h @@ -153,7 +153,7 @@ struct mpg123_fmt int encoding; }; -/* @} */ +/** @} */ #endif diff --git a/win64/include/mpg123/mpg123.h b/win64/include/mpg123/mpg123.h index df3cc142..10510535 100644 --- a/win64/include/mpg123/mpg123.h +++ b/win64/include/mpg123/mpg123.h @@ -1,42 +1,1998 @@ /* - mpg123_msvc: MPEG Audio Decoder library wrapper header for MS VC++ 2005 + libmpg123: MPEG Audio Decoder library (version 1.29.3) - copyright 2008 by the mpg123 project - free software under the terms of the LGPL 2.1 - initially written by Patrick Dehne and Thomas Orgis. + copyright 1995-2015 by the mpg123 project + free software under the terms of the LGPL 2.1 + see COPYING and AUTHORS files in distribution or http://mpg123.org */ -#ifndef MPG123_MSVC_H -#define MPG123_MSVC_H -#include +#ifndef MPG123_LIB_H +#define MPG123_LIB_H + +#include + +/** \file mpg123.h The header file for the libmpg123 MPEG Audio decoder */ + +/** A macro to check at compile time which set of API functions to expect. + * This should be incremented at least each time a new symbol is added + * to the header. + */ +#ifndef MPG123_API_VERSION +#define MPG123_API_VERSION 46 +#endif + +#ifndef MPG123_EXPORT +/** Defines needed for MS Visual Studio(tm) DLL builds. + * Every public function must be prefixed with MPG123_EXPORT. When building + * the DLL ensure to define BUILD_MPG123_DLL. This makes the function accessible + * for clients and includes it in the import library which is created together + * with the DLL. When consuming the DLL ensure to define LINK_MPG123_DLL which + * imports the functions from the DLL. + */ +#ifdef BUILD_MPG123_DLL +/* The dll exports. */ +#define MPG123_EXPORT __declspec(dllexport) +#else +#ifdef LINK_MPG123_DLL +/* The exe imports. */ +#define MPG123_EXPORT __declspec(dllimport) +#else +/* Nothing on normal/UNIX builds */ +#define MPG123_EXPORT +#endif +#endif +#endif + +/** Earlier versions of libmpg123 put enums into public API calls, + * thich is not exactly safe. There are ABI rules, but you can use + * compiler switches to change the sizes of enums. It is safer not + * to have them in API calls. Thus, the default is to remap calls and + * structs to variants that use plain ints. Define MPG123_ENUM_API to + * prevent that remapping. + * + * You might want to define this to increase the chance of your binary + * working with an older version of the library. But if that is your goal, + * you should better build with an older version to begin with. + */ +#ifndef MPG123_ENUM_API + +#define mpg123_param mpg123_param2 +#define mpg123_getparam mpg123_getparam2 +#define mpg123_feature mpg123_feature2 +#define mpg123_eq mpg123_eq2 +#define mpg123_geteq mpg123_geteq2 +#define mpg123_frameinfo mpg123_frameinfo2 +#define mpg123_info mpg123_info2 +#define mpg123_getstate mpg123_getstate2 +#define mpg123_enc_from_id3 mpg123_enc_from_id3_2 +#define mpg123_store_utf8 mpg123_store_utf8_2 +#define mpg123_par mpg123_par2 +#define mpg123_getpar mpg123_getpar2 + +#endif + +/* You can use this file directly, avoiding the autoconf replacements. + Might have to set MPG123_NO_LARGENAME, too, in case you have + _FILE_OFFSET_BITS defined where it does not make sense. */ +#ifndef MPG123_NO_CONFIGURE + #include #include -// Needed for Visual Studio versions before VS 2010. -#if (_MSC_VER < 1600) -typedef __int32 int32_t; -typedef unsigned __int32 uint32_t; -#define PRIiMAX "I64i" -typedef __int64 intmax_t; +/* A little hack to help MSVC not having ssize_t. */ +#ifdef _MSC_VER +#include +typedef ptrdiff_t mpg123_ssize_t; #else -#include -#include +typedef ssize_t mpg123_ssize_t; #endif -// ftell returns long, _ftelli64 returns __int64 -// off_t is long, not __int64, use ftell -#define ftello ftell +/* You can always enforce largefile hackery by setting MPG123_LARGESUFFIX. */ +/* Otherwise, this header disables it if the build system decided so. */ +#if !defined(MPG123_LARGESUFFIX) && 0 +#ifndef MPG123_NO_LARGENAME +#define MPG123_NO_LARGENAME +#endif +#endif -#define MPG123_NO_CONFIGURE -#include "mpg123.h.in" /* Yes, .h.in; we include the configure template! */ +#endif /* MPG123_NO_CONFIGURE */ + +/* Simplified large file handling. + I used to have a check here that prevents building for a library with conflicting large file setup + (application that uses 32 bit offsets with library that uses 64 bits). + While that was perfectly fine in an environment where there is one incarnation of the library, + it hurt GNU/Linux and Solaris systems with multilib where the distribution fails to provide the + correct header matching the 32 bit library (where large files need explicit support) or + the 64 bit library (where there is no distinction). + + New approach: When the app defines _FILE_OFFSET_BITS, it wants non-default large file support, + and thus functions with added suffix (mpg123_open_64). + Any mismatch will be caught at link time because of the _FILE_OFFSET_BITS setting used when + building libmpg123. Plus, there's dual mode large file support in mpg123 since 1.12 now. + Link failure is not the expected outcome of any half-sane usage anymore. + + More complication: What about client code defining _LARGEFILE64_SOURCE? It might want direct access to the _64 functions, along with the ones without suffix. Well, that's possible now via defining MPG123_NO_LARGENAME and MPG123_LARGESUFFIX, respectively, for disabling or enforcing the suffix names. +*/ + +/* + Now, the renaming of large file aware functions. + By default, it appends underscore _FILE_OFFSET_BITS (so, mpg123_seek_64 for mpg123_seek), if _FILE_OFFSET_BITS is defined. You can force a different suffix via MPG123_LARGESUFFIX (that must include the underscore), or you can just disable the whole mess by defining MPG123_NO_LARGENAME. +*/ +#if (!defined MPG123_NO_LARGENAME) && ((defined _FILE_OFFSET_BITS) || (defined MPG123_LARGESUFFIX)) + +/* Need some trickery to concatenate the value(s) of the given macro(s). */ +#define MPG123_MACROCAT_REALLY(a, b) a ## b +#define MPG123_MACROCAT(a, b) MPG123_MACROCAT_REALLY(a, b) +#ifndef MPG123_LARGESUFFIX +#define MPG123_LARGESUFFIX MPG123_MACROCAT(_, _FILE_OFFSET_BITS) +#endif +#define MPG123_LARGENAME(func) MPG123_MACROCAT(func, MPG123_LARGESUFFIX) + +#define mpg123_open_fixed MPG123_LARGENAME(mpg123_open_fixed) +#define mpg123_open MPG123_LARGENAME(mpg123_open) +#define mpg123_open_fd MPG123_LARGENAME(mpg123_open_fd) +#define mpg123_open_handle MPG123_LARGENAME(mpg123_open_handle) +#define mpg123_framebyframe_decode MPG123_LARGENAME(mpg123_framebyframe_decode) +#define mpg123_decode_frame MPG123_LARGENAME(mpg123_decode_frame) +#define mpg123_tell MPG123_LARGENAME(mpg123_tell) +#define mpg123_tellframe MPG123_LARGENAME(mpg123_tellframe) +#define mpg123_tell_stream MPG123_LARGENAME(mpg123_tell_stream) +#define mpg123_seek MPG123_LARGENAME(mpg123_seek) +#define mpg123_feedseek MPG123_LARGENAME(mpg123_feedseek) +#define mpg123_seek_frame MPG123_LARGENAME(mpg123_seek_frame) +#define mpg123_timeframe MPG123_LARGENAME(mpg123_timeframe) +#define mpg123_index MPG123_LARGENAME(mpg123_index) +#define mpg123_set_index MPG123_LARGENAME(mpg123_set_index) +#define mpg123_position MPG123_LARGENAME(mpg123_position) +#define mpg123_length MPG123_LARGENAME(mpg123_length) +#define mpg123_framelength MPG123_LARGENAME(mpg123_framelength) +#define mpg123_set_filesize MPG123_LARGENAME(mpg123_set_filesize) +#define mpg123_replace_reader MPG123_LARGENAME(mpg123_replace_reader) +#define mpg123_replace_reader_handle MPG123_LARGENAME(mpg123_replace_reader_handle) +#define mpg123_framepos MPG123_LARGENAME(mpg123_framepos) + +#endif /* largefile hackery */ #ifdef __cplusplus extern "C" { #endif - // Wrapper around mpg123_open that supports path names with unicode - // characters - MPG123_EXPORT int mpg123_topen(mpg123_handle *fr, const _TCHAR *path); - MPG123_EXPORT int mpg123_tclose(mpg123_handle *fr); +/** \defgroup mpg123_init mpg123 library and handle setup + * + * Functions to initialise and shutdown the mpg123 library and handles. + * The parameters of handles have workable defaults, you only have to tune them when you want to tune something;-) + * Tip: Use a RVA setting... + * + * @{ + */ + +/** Opaque structure for the libmpg123 decoder handle. */ +struct mpg123_handle_struct; + +/** Opaque structure for the libmpg123 decoder handle. + * Most functions take a pointer to a mpg123_handle as first argument and operate on its data in an object-oriented manner. + */ +typedef struct mpg123_handle_struct mpg123_handle; + +/** Useless no-op that used to do initialization work. + * + * For API version before 46 (mpg123 1.27.0), you had to ensure to have + * this called once before creating a handle. To be pure, this had to + * happen in a single-threaded context, too (while in practice, there was no + * harm done possibly racing to compute the same numbers again). + * + * Now this function really does nothing anymore. The only reason to call + * it is to be compatible with old versions of the library that still require + * it. + * + * \return MPG123_OK if successful, otherwise an error number. + */ +MPG123_EXPORT int mpg123_init(void); + +/** Superfluous Function to close down the mpg123 library. + * This was created with the thought that there sometime will be cleanup code + * to be run after library use. This never materialized. You can forget about + * this function and it is only here for old programs that do call it. + */ +MPG123_EXPORT void mpg123_exit(void); + +/** Create a handle with optional choice of decoder (named by a string, see mpg123_decoders() or mpg123_supported_decoders()). + * and optional retrieval of an error code to feed to mpg123_plain_strerror(). + * Optional means: Any of or both the parameters may be NULL. + * + * \param decoder optional choice of decoder variant (NULL for default) + * \param error optional address to store error codes + * \return Non-NULL pointer to fresh handle when successful. + */ +MPG123_EXPORT mpg123_handle *mpg123_new(const char* decoder, int *error); + +/** Delete handle, mh is either a valid mpg123 handle or NULL. + * \param mh handle + */ +MPG123_EXPORT void mpg123_delete(mpg123_handle *mh); + +/** Free plain memory allocated within libmpg123. + * This is for library users that are not sure to use the same underlying + * memory allocator as libmpg123. It is just a wrapper over free() in + * the underlying C library. + */ +MPG123_EXPORT void mpg123_free(void *ptr); + +/** Enumeration of the parameters types that it is possible to set/get. */ +enum mpg123_parms +{ + MPG123_VERBOSE = 0, /**< set verbosity value for enabling messages to stderr, >= 0 makes sense (integer) */ + MPG123_FLAGS, /**< set all flags, p.ex val = MPG123_GAPLESS|MPG123_MONO_MIX (integer) */ + MPG123_ADD_FLAGS, /**< add some flags (integer) */ + MPG123_FORCE_RATE, /**< when value > 0, force output rate to that value (integer) */ + MPG123_DOWN_SAMPLE, /**< 0=native rate, 1=half rate, 2=quarter rate (integer) */ + MPG123_RVA, /**< one of the RVA choices above (integer) */ + MPG123_DOWNSPEED, /**< play a frame N times (integer) */ + MPG123_UPSPEED, /**< play every Nth frame (integer) */ + MPG123_START_FRAME, /**< start with this frame (skip frames before that, integer) */ + MPG123_DECODE_FRAMES, /**< decode only this number of frames (integer) */ + MPG123_ICY_INTERVAL, /**< Stream contains ICY metadata with this interval (integer). + Make sure to set this _before_ opening a stream.*/ + MPG123_OUTSCALE, /**< the scale for output samples (amplitude - integer or float according to mpg123 output format, normally integer) */ + MPG123_TIMEOUT, /**< timeout for reading from a stream (not supported on win32, integer) */ + MPG123_REMOVE_FLAGS, /**< remove some flags (inverse of MPG123_ADD_FLAGS, integer) */ + MPG123_RESYNC_LIMIT, /**< Try resync on frame parsing for that many bytes or until end of stream (<0 ... integer). This can enlarge the limit for skipping junk on beginning, too (but not reduce it). */ + MPG123_INDEX_SIZE /**< Set the frame index size (if supported). Values <0 mean that the index is allowed to grow dynamically in these steps (in positive direction, of course) -- Use this when you really want a full index with every individual frame. */ + ,MPG123_PREFRAMES /**< Decode/ignore that many frames in advance for layer 3. This is needed to fill bit reservoir after seeking, for example (but also at least one frame in advance is needed to have all "normal" data for layer 3). Give a positive integer value, please.*/ + ,MPG123_FEEDPOOL /**< For feeder mode, keep that many buffers in a pool to avoid frequent malloc/free. The pool is allocated on mpg123_open_feed(). If you change this parameter afterwards, you can trigger growth and shrinkage during decoding. The default value could change any time. If you care about this, then set it. (integer) */ + ,MPG123_FEEDBUFFER /**< Minimal size of one internal feeder buffer, again, the default value is subject to change. (integer) */ + ,MPG123_FREEFORMAT_SIZE /**< Tell the parser a free-format frame size to + * avoid read-ahead to get it. A value of -1 (default) means that the parser + * will determine it. The parameter value is applied during decoder setup + * for a freshly opened stream only. + */ +}; + +/** Flag bits for MPG123_FLAGS, use the usual binary or to combine. */ +enum mpg123_param_flags +{ + MPG123_FORCE_MONO = 0x7 /**< 0111 Force some mono mode: This is a test bitmask for seeing if any mono forcing is active. */ + ,MPG123_MONO_LEFT = 0x1 /**< 0001 Force playback of left channel only. */ + ,MPG123_MONO_RIGHT = 0x2 /**< 0010 Force playback of right channel only. */ + ,MPG123_MONO_MIX = 0x4 /**< 0100 Force playback of mixed mono. */ + ,MPG123_FORCE_STEREO = 0x8 /**< 1000 Force stereo output. */ + ,MPG123_FORCE_8BIT = 0x10 /**< 00010000 Force 8bit formats. */ + ,MPG123_QUIET = 0x20 /**< 00100000 Suppress any printouts (overrules verbose). */ + ,MPG123_GAPLESS = 0x40 /**< 01000000 Enable gapless decoding (default on if libmpg123 has support). */ + ,MPG123_NO_RESYNC = 0x80 /**< 10000000 Disable resync stream after error. */ + ,MPG123_SEEKBUFFER = 0x100 /**< 000100000000 Enable small buffer on non-seekable streams to allow some peek-ahead (for better MPEG sync). */ + ,MPG123_FUZZY = 0x200 /**< 001000000000 Enable fuzzy seeks (guessing byte offsets or using approximate seek points from Xing TOC) */ + ,MPG123_FORCE_FLOAT = 0x400 /**< 010000000000 Force floating point output (32 or 64 bits depends on mpg123 internal precision). */ + ,MPG123_PLAIN_ID3TEXT = 0x800 /**< 100000000000 Do not translate ID3 text data to UTF-8. ID3 strings will contain the raw text data, with the first byte containing the ID3 encoding code. */ + ,MPG123_IGNORE_STREAMLENGTH = 0x1000 /**< 1000000000000 Ignore any stream length information contained in the stream, which can be contained in a 'TLEN' frame of an ID3v2 tag or a Xing tag */ + ,MPG123_SKIP_ID3V2 = 0x2000 /**< 10 0000 0000 0000 Do not parse ID3v2 tags, just skip them. */ + ,MPG123_IGNORE_INFOFRAME = 0x4000 /**< 100 0000 0000 0000 Do not parse the LAME/Xing info frame, treat it as normal MPEG data. */ + ,MPG123_AUTO_RESAMPLE = 0x8000 /**< 1000 0000 0000 0000 Allow automatic internal resampling of any kind (default on if supported). Especially when going lowlevel with replacing output buffer, you might want to unset this flag. Setting MPG123_DOWNSAMPLE or MPG123_FORCE_RATE will override this. */ + ,MPG123_PICTURE = 0x10000 /**< 17th bit: Enable storage of pictures from tags (ID3v2 APIC). */ + ,MPG123_NO_PEEK_END = 0x20000 /**< 18th bit: Do not seek to the end of + * the stream in order to probe + * the stream length and search for the id3v1 field. This also means + * the file size is unknown unless set using mpg123_set_filesize() and + * the stream is assumed as non-seekable unless overridden. + */ + ,MPG123_FORCE_SEEKABLE = 0x40000 /**< 19th bit: Force the stream to be seekable. */ + ,MPG123_STORE_RAW_ID3 = 0x80000 /**< store raw ID3 data (even if skipping) */ + ,MPG123_FORCE_ENDIAN = 0x100000 /**< Enforce endianess of output samples. + * This is not reflected in the format codes. If this flag is set along with + * MPG123_BIG_ENDIAN, MPG123_ENC_SIGNED16 means s16be, without + * MPG123_BIG_ENDIAN, it means s16le. Normal operation without + * MPG123_FORCE_ENDIAN produces output in native byte order. + */ + ,MPG123_BIG_ENDIAN = 0x200000 /**< Choose big endian instead of little. */ + ,MPG123_NO_READAHEAD = 0x400000 /**< Disable read-ahead in parser. If + * you know you provide full frames to the feeder API, this enables + * decoder output from the first one on, instead of having to wait for + * the next frame to confirm that the stream is healthy. It also disables + * free format support unless you provide a frame size using + * MPG123_FREEFORMAT_SIZE. + */ + ,MPG123_FLOAT_FALLBACK = 0x800000 /**< Consider floating point output encoding only after + * trying other (possibly downsampled) rates and encodings first. This is to + * support efficient playback where floating point output is only configured for + * an external resampler, bypassing that resampler when the desired rate can + * be produced directly. This is enabled by default to be closer to older versions + * of libmpg123 which did not enable float automatically at all. If disabled, + * float is considered after the 16 bit default and higher-bit integer encodings + * for any rate. */ + ,MPG123_NO_FRANKENSTEIN = 0x1000000 /**< Disable support for Frankenstein streams + * (different MPEG streams stiched together). Do not accept serious change of MPEG + * header inside a single stream. With this flag, the audio output format cannot + * change during decoding unless you open a new stream. This also stops decoding + * after an announced end of stream (Info header contained a number of frames + * and this number has been reached). This makes your MP3 files behave more like + * ordinary media files with defined structure, rather than stream dumps with + * some sugar. */ +}; + +/** choices for MPG123_RVA */ +enum mpg123_param_rva +{ + MPG123_RVA_OFF = 0 /**< RVA disabled (default). */ + ,MPG123_RVA_MIX = 1 /**< Use mix/track/radio gain. */ + ,MPG123_RVA_ALBUM = 2 /**< Use album/audiophile gain */ + ,MPG123_RVA_MAX = MPG123_RVA_ALBUM /**< The maximum RVA code, may increase in future. */ +}; + +#ifdef MPG123_ENUM_API +/** Set a specific parameter on a handle. + * + * Note that this name is mapped to mpg123_param2() instead unless + * MPG123_ENUM_API is defined. + * + * \param mh handle + * \param type parameter choice + * \param value integer value + * \param fvalue floating point value + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_param( mpg123_handle *mh +, enum mpg123_parms type, long value, double fvalue ); +#endif + +/** Set a specific parameter on a handle. No enums. + * + * This is actually called instead of mpg123_param() + * unless MPG123_ENUM_API is defined. + * + * \param mh handle + * \param type parameter choice (from enum #mpg123_parms) + * \param value integer value + * \param fvalue floating point value + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_param2( mpg123_handle *mh +, int type, long value, double fvalue ); + +#ifdef MPG123_ENUM_API +/** Get a specific parameter from a handle. + * + * Note that this name is mapped to mpg123_getparam2() instead unless + * MPG123_ENUM_API is defined. + * + * \param mh handle + * \param type parameter choice + * \param value integer value return address + * \param fvalue floating point value return address + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_getparam( mpg123_handle *mh +, enum mpg123_parms type, long *value, double *fvalue ); +#endif + +/** Get a specific parameter from a handle. No enums. + * + * This is actually called instead of mpg123_getparam() unless MPG123_ENUM_API + * is defined. + * + * \param mh handle + * \param type parameter choice (from enum #mpg123_parms) + * \param value integer value return address + * \param fvalue floating point value return address + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_getparam2( mpg123_handle *mh +, int type, long *value, double *fvalue ); + +/** Feature set available for query with mpg123_feature. */ +enum mpg123_feature_set +{ + MPG123_FEATURE_ABI_UTF8OPEN = 0 /**< mpg123 expects path names to be given in UTF-8 encoding instead of plain native. */ + ,MPG123_FEATURE_OUTPUT_8BIT /**< 8bit output */ + ,MPG123_FEATURE_OUTPUT_16BIT /**< 16bit output */ + ,MPG123_FEATURE_OUTPUT_32BIT /**< 32bit output */ + ,MPG123_FEATURE_INDEX /**< support for building a frame index for accurate seeking */ + ,MPG123_FEATURE_PARSE_ID3V2 /**< id3v2 parsing */ + ,MPG123_FEATURE_DECODE_LAYER1 /**< mpeg layer-1 decoder enabled */ + ,MPG123_FEATURE_DECODE_LAYER2 /**< mpeg layer-2 decoder enabled */ + ,MPG123_FEATURE_DECODE_LAYER3 /**< mpeg layer-3 decoder enabled */ + ,MPG123_FEATURE_DECODE_ACCURATE /**< accurate decoder rounding */ + ,MPG123_FEATURE_DECODE_DOWNSAMPLE /**< downsample (sample omit) */ + ,MPG123_FEATURE_DECODE_NTOM /**< flexible rate decoding */ + ,MPG123_FEATURE_PARSE_ICY /**< ICY support */ + ,MPG123_FEATURE_TIMEOUT_READ /**< Reader with timeout (network). */ + ,MPG123_FEATURE_EQUALIZER /**< tunable equalizer */ + ,MPG123_FEATURE_MOREINFO /**< more info extraction (for frame analyzer) */ + ,MPG123_FEATURE_OUTPUT_FLOAT32 /**< 32 bit float output */ + ,MPG123_FEATURE_OUTPUT_FLOAT64 /**< 64 bit float output (as of now: never!) */ +}; + +#ifdef MPG123_ENUM_API +/** Query libmpg123 features. + * + * Note that this name is mapped to mpg123_feature2() instead unless + * MPG123_ENUM_API is defined. + * + * \param key feature selection + * \return 1 for success, 0 for unimplemented functions + */ +MPG123_EXPORT int mpg123_feature(const enum mpg123_feature_set key); +#endif + +/** Query libmpg123 features. No enums. + * + * This is actually called instead of mpg123_feature() unless MPG123_ENUM_API + * is defined. + * + * \param key feature selection (from enum #mpg123_feature_set) + * \return 1 for success, 0 for unimplemented functions + */ +MPG123_EXPORT int mpg123_feature2(int key); + +/** @} */ + + +/** \defgroup mpg123_error mpg123 error handling + * + * Functions to get text version of the error numbers and an enumeration + * of the error codes returned by libmpg123. + * + * Most functions operating on a mpg123_handle simply return MPG123_OK (0) + * on success and MPG123_ERR (-1) on failure, setting the internal error + * variable of the handle to the specific error code. If there was not a valid + * (non-NULL) handle provided to a function operating on one, MPG123_BAD_HANDLE + * may be returned if this can not be confused with a valid positive return + * value. + * Meaning: A function expected to return positive integers on success will + * always indicate error or a special condition by returning a negative one. + * + * Decoding/seek functions may also return message codes MPG123_DONE, + * MPG123_NEW_FORMAT and MPG123_NEED_MORE (all negative, see below on how to + * react). Note that calls to those can be nested, so generally watch out + * for these codes after initial handle setup. + * Especially any function that needs information about the current stream + * to work will try to at least parse the beginning if that did not happen + * yet. + * + * On a function that is supposed to return MPG123_OK on success and + * MPG123_ERR on failure, make sure you check for != MPG123_OK, not + * == MPG123_ERR, as the error code could get more specific in future, + * or there is just a special message from a decoding routine as indicated + * above. + * + * @{ + */ + +/** Enumeration of the message and error codes and returned by libmpg123 functions. */ +enum mpg123_errors +{ + MPG123_DONE=-12, /**< Message: Track ended. Stop decoding. */ + MPG123_NEW_FORMAT=-11, /**< Message: Output format will be different on next call. Note that some libmpg123 versions between 1.4.3 and 1.8.0 insist on you calling mpg123_getformat() after getting this message code. Newer verisons behave like advertised: You have the chance to call mpg123_getformat(), but you can also just continue decoding and get your data. */ + MPG123_NEED_MORE=-10, /**< Message: For feed reader: "Feed me more!" (call mpg123_feed() or mpg123_decode() with some new input data). */ + MPG123_ERR=-1, /**< Generic Error */ + MPG123_OK=0, /**< Success */ + MPG123_BAD_OUTFORMAT, /**< Unable to set up output format! */ + MPG123_BAD_CHANNEL, /**< Invalid channel number specified. */ + MPG123_BAD_RATE, /**< Invalid sample rate specified. */ + MPG123_ERR_16TO8TABLE, /**< Unable to allocate memory for 16 to 8 converter table! */ + MPG123_BAD_PARAM, /**< Bad parameter id! */ + MPG123_BAD_BUFFER, /**< Bad buffer given -- invalid pointer or too small size. */ + MPG123_OUT_OF_MEM, /**< Out of memory -- some malloc() failed. */ + MPG123_NOT_INITIALIZED, /**< You didn't initialize the library! */ + MPG123_BAD_DECODER, /**< Invalid decoder choice. */ + MPG123_BAD_HANDLE, /**< Invalid mpg123 handle. */ + MPG123_NO_BUFFERS, /**< Unable to initialize frame buffers (out of memory?). */ + MPG123_BAD_RVA, /**< Invalid RVA mode. */ + MPG123_NO_GAPLESS, /**< This build doesn't support gapless decoding. */ + MPG123_NO_SPACE, /**< Not enough buffer space. */ + MPG123_BAD_TYPES, /**< Incompatible numeric data types. */ + MPG123_BAD_BAND, /**< Bad equalizer band. */ + MPG123_ERR_NULL, /**< Null pointer given where valid storage address needed. */ + MPG123_ERR_READER, /**< Error reading the stream. */ + MPG123_NO_SEEK_FROM_END,/**< Cannot seek from end (end is not known). */ + MPG123_BAD_WHENCE, /**< Invalid 'whence' for seek function.*/ + MPG123_NO_TIMEOUT, /**< Build does not support stream timeouts. */ + MPG123_BAD_FILE, /**< File access error. */ + MPG123_NO_SEEK, /**< Seek not supported by stream. */ + MPG123_NO_READER, /**< No stream opened. */ + MPG123_BAD_PARS, /**< Bad parameter handle. */ + MPG123_BAD_INDEX_PAR, /**< Bad parameters to mpg123_index() and mpg123_set_index() */ + MPG123_OUT_OF_SYNC, /**< Lost track in bytestream and did not try to resync. */ + MPG123_RESYNC_FAIL, /**< Resync failed to find valid MPEG data. */ + MPG123_NO_8BIT, /**< No 8bit encoding possible. */ + MPG123_BAD_ALIGN, /**< Stack aligmnent error */ + MPG123_NULL_BUFFER, /**< NULL input buffer with non-zero size... */ + MPG123_NO_RELSEEK, /**< Relative seek not possible (screwed up file offset) */ + MPG123_NULL_POINTER, /**< You gave a null pointer somewhere where you shouldn't have. */ + MPG123_BAD_KEY, /**< Bad key value given. */ + MPG123_NO_INDEX, /**< No frame index in this build. */ + MPG123_INDEX_FAIL, /**< Something with frame index went wrong. */ + MPG123_BAD_DECODER_SETUP, /**< Something prevents a proper decoder setup */ + MPG123_MISSING_FEATURE /**< This feature has not been built into libmpg123. */ + ,MPG123_BAD_VALUE /**< A bad value has been given, somewhere. */ + ,MPG123_LSEEK_FAILED /**< Low-level seek failed. */ + ,MPG123_BAD_CUSTOM_IO /**< Custom I/O not prepared. */ + ,MPG123_LFS_OVERFLOW /**< Offset value overflow during translation of large file API calls -- your client program cannot handle that large file. */ + ,MPG123_INT_OVERFLOW /**< Some integer overflow. */ + ,MPG123_BAD_FLOAT /**< Floating-point computations work not as expected. */ +}; + +/** Look up error strings given integer code. + * \param errcode integer error code + * \return string describing what that error error code means + */ +MPG123_EXPORT const char* mpg123_plain_strerror(int errcode); + +/** Give string describing what error has occured in the context of handle mh. + * When a function operating on an mpg123 handle returns MPG123_ERR, you should check for the actual reason via + * char *errmsg = mpg123_strerror(mh) + * This function will catch mh == NULL and return the message for MPG123_BAD_HANDLE. + * \param mh handle + * \return error message + */ +MPG123_EXPORT const char* mpg123_strerror(mpg123_handle *mh); + +/** Return the plain errcode intead of a string. + * \param mh handle + * \return error code recorded in handle or MPG123_BAD_HANDLE + */ +MPG123_EXPORT int mpg123_errcode(mpg123_handle *mh); + +/** @} */ + + +/** \defgroup mpg123_decoder mpg123 decoder selection + * + * Functions to list and select the available decoders. + * Perhaps the most prominent feature of mpg123: You have several (optimized) decoders to choose from (on x86 and PPC (MacOS) systems, that is). + * + * @{ + */ + +/** Get available decoder list. + * \return NULL-terminated array of generally available decoder names (plain 8bit ASCII) + */ +MPG123_EXPORT const char **mpg123_decoders(void); + +/** Get supported decoder list. + * + * This possibly writes to static storage in the library, so avoid + * calling concurrently, please. + * + * \return NULL-terminated array of the decoders supported by the CPU (plain 8bit ASCII) + */ +MPG123_EXPORT const char **mpg123_supported_decoders(void); + +/** Set the active decoder. + * \param mh handle + * \param decoder_name name of decoder + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_decoder(mpg123_handle *mh, const char* decoder_name); + +/** Get the currently active decoder name. + * The active decoder engine can vary depening on output constraints, + * mostly non-resampling, integer output is accelerated via 3DNow & Co. but for + * other modes a fallback engine kicks in. + * Note that this can return a decoder that is only active in the hidden and not + * available as decoder choice from the outside. + * \param mh handle + * \return The decoder name or NULL on error. + */ +MPG123_EXPORT const char* mpg123_current_decoder(mpg123_handle *mh); + +/** @} */ + + +/** \defgroup mpg123_output mpg123 output audio format + * + * Functions to get and select the format of the decoded audio. + * + * Before you dive in, please be warned that you might get confused by this. + * This seems to happen a lot, therefore I am trying to explain in advance. + * If you do feel confused and just want to decode your normal MPEG audio files that + * don't alter properties in the middle, just use mpg123_open_fixed() with a fixed encoding + * and channel count and forget about a matrix of audio formats. If you want to get funky, + * read ahead ... + * + * The mpg123 library decides what output format to use when encountering the first frame in a stream, or actually any frame that is still valid but differs from the frames before in the prompted output format. At such a deciding point, an internal table of allowed encodings, sampling rates and channel setups is consulted. According to this table, an output format is chosen and the decoding engine set up accordingly (including optimized routines for different output formats). This might seem unusual but it just follows from the non-existence of "MPEG audio files" with defined overall properties. There are streams, streams are concatenations of (semi) independent frames. We store streams on disk and call them "MPEG audio files", but that does not change their nature as the decoder is concerned (the LAME/Xing header for gapless decoding makes things interesting again). + * + * To get to the point: What you do with mpg123_format() and friends is to fill the internal table of allowed formats before it is used. That includes removing support for some formats or adding your forced sample rate (see MPG123_FORCE_RATE) that will be used with the crude internal resampler. Also keep in mind that the sample encoding is just a question of choice -- the MPEG frames do only indicate their native sampling rate and channel count. If you want to decode to integer or float samples, 8 or 16 bit ... that is your decision. In a "clean" world, libmpg123 would always decode to 32 bit float and let you handle any sample conversion. But there are optimized routines that work faster by directly decoding to the desired encoding / accuracy. We prefer efficiency over conceptual tidyness. + * + * People often start out thinking that mpg123_format() should change the actual decoding format on the fly. That is wrong. It only has effect on the next natural change of output format, when libmpg123 will consult its format table again. To make life easier, you might want to call mpg123_format_none() before any thing else and then just allow one desired encoding and a limited set of sample rates / channel choices that you actually intend to deal with. You can force libmpg123 to decode everything to 44100 KHz, stereo, 16 bit integer ... it will duplicate mono channels and even do resampling if needed (unless that feature is disabled in the build, same with some encodings). But I have to stress that the resampling of libmpg123 is very crude and doesn't even contain any kind of "proper" interpolation. + * + * In any case, watch out for MPG123_NEW_FORMAT as return message from decoding routines and call mpg123_getformat() to get the currently active output format. + * + * @{ + */ + +/** They can be combined into one number (3) to indicate mono and stereo... */ +enum mpg123_channelcount +{ + MPG123_MONO = 1 /**< mono */ + ,MPG123_STEREO = 2 /**< stereo */ +}; + +/** An array of supported standard sample rates + * These are possible native sample rates of MPEG audio files. + * You can still force mpg123 to resample to a different one, but by + * default you will only get audio in one of these samplings. + * This list is in ascending order. + * \param list Store a pointer to the sample rates array there. + * \param number Store the number of sample rates there. */ +MPG123_EXPORT void mpg123_rates(const long **list, size_t *number); + +/** An array of supported audio encodings. + * An audio encoding is one of the fully qualified members of mpg123_enc_enum (MPG123_ENC_SIGNED_16, not MPG123_SIGNED). + * \param list Store a pointer to the encodings array there. + * \param number Store the number of encodings there. */ +MPG123_EXPORT void mpg123_encodings(const int **list, size_t *number); + +/** Return the size (in bytes) of one mono sample of the named encoding. + * \param encoding The encoding value to analyze. + * \return positive size of encoding in bytes, 0 on invalid encoding. */ +MPG123_EXPORT int mpg123_encsize(int encoding); + +/** Configure a mpg123 handle to accept no output format at all, + * use before specifying supported formats with mpg123_format + * \param mh handle + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_format_none(mpg123_handle *mh); + +/** Configure mpg123 handle to accept all formats + * (also any custom rate you may set) -- this is default. + * \param mh handle + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_format_all(mpg123_handle *mh); + +/** Set the audio format support of a mpg123_handle in detail: + * \param mh handle + * \param rate The sample rate value (in Hertz). + * \param channels A combination of MPG123_STEREO and MPG123_MONO. + * \param encodings A combination of accepted encodings for rate and channels, p.ex MPG123_ENC_SIGNED16 | MPG123_ENC_ULAW_8 (or 0 for no support). Please note that some encodings may not be supported in the library build and thus will be ignored here. + * \return MPG123_OK on success, MPG123_ERR if there was an error. */ +MPG123_EXPORT int mpg123_format( mpg123_handle *mh +, long rate, int channels, int encodings ); + +/** Set the audio format support of a mpg123_handle in detail: + * \param mh handle + * \param rate The sample rate value (in Hertz). Special value 0 means + * all rates (the reason for this variant of mpg123_format()). + * \param channels A combination of MPG123_STEREO and MPG123_MONO. + * \param encodings A combination of accepted encodings for rate and channels, + * p.ex MPG123_ENC_SIGNED16 | MPG123_ENC_ULAW_8 (or 0 for no support). + * Please note that some encodings may not be supported in the library build + * and thus will be ignored here. + * \return MPG123_OK on success, MPG123_ERR if there was an error. */ +MPG123_EXPORT int mpg123_format2( mpg123_handle *mh +, long rate, int channels, int encodings ); + +/** Check to see if a specific format at a specific rate is supported + * by mpg123_handle. + * \param mh handle + * \param rate sampling rate + * \param encoding encoding + * \return 0 for no support (that includes invalid parameters), MPG123_STEREO, + * MPG123_MONO or MPG123_STEREO|MPG123_MONO. */ +MPG123_EXPORT int mpg123_format_support( mpg123_handle *mh +, long rate, int encoding ); + +/** Get the current output format written to the addresses given. + * If the stream is freshly loaded, this will try to parse enough + * of it to give you the format to come. This clears the flag that + * would otherwise make the first decoding call return + * MPG123_NEW_FORMAT. + * \param mh handle + * \param rate sampling rate return address + * \param channels channel count return address + * \param encoding encoding return address + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_getformat( mpg123_handle *mh +, long *rate, int *channels, int *encoding ); + +/** Get the current output format written to the addresses given. + * This differs from plain mpg123_getformat() in that you can choose + * _not_ to clear the flag that would trigger the next decoding call + * to return MPG123_NEW_FORMAT in case of a new format arriving. + * \param mh handle + * \param rate sampling rate return address + * \param channels channel count return address + * \param encoding encoding return address + * \param clear_flag if true, clear internal format flag + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_getformat2( mpg123_handle *mh +, long *rate, int *channels, int *encoding, int clear_flag ); + +/** @} */ + + +/** \defgroup mpg123_input mpg123 file input and decoding + * + * Functions for input bitstream and decoding operations. + * Decoding/seek functions may also return message codes MPG123_DONE, MPG123_NEW_FORMAT and MPG123_NEED_MORE (please read up on these on how to react!). + * @{ + */ + +/** Open a simple MPEG file with fixed properties. + * + * This function shall simplify the common use case of a plain MPEG + * file on disk that you want to decode, with one fixed sample + * rate and channel count, and usually a length defined by a Lame/Info/Xing + * tag. It will: + * + * - set the MPG123_NO_FRANKENSTEIN flag + * - set up format support according to given parameters, + * - open the file, + * - query audio format, + * - fix the audio format support table to ensure the format stays the same, + * - call mpg123_scan() if there is no header frame to tell the track length. + * + * From that on, you can call mpg123_getformat() for querying the sample + * rate (and channel count in case you allowed both) and mpg123_length() + * to get a pretty safe number for the duration. + * Only the sample rate is left open as that indeed is a fixed property of + * MPEG files. You could set MPG123_FORCE_RATE beforehand, but that may trigger + * low-quality resampling in the decoder, only do so if in dire need. + * The library will convert mono files to stereo for you, and vice versa. + * If any constraint cannot be satisified (most likely because of a non-default + * build of libmpg123), you get MPG123_ERR returned and can query the detailed + * cause from the handle. Only on MPG123_OK there will an open file that you + * then close using mpg123_close(), or implicitly on mpg123_delete() or the next + * call to open another file. + * + * So, for your usual CD rip collection, you could use + * + * mpg123_open_fixed(mh, path, MPG123_STEREO, MPG123_ENC_SIGNED_16) + * + * and be happy calling mpg123_getformat() to verify 44100 Hz rate, then just + * playing away with mpg123_read(). The occasional mono file, or MP2 file, + * will also be decoded without you really noticing. Just the speed could be + * wrong if you do not care about sample rate at all. + * \param mh handle + * \param path filesystem path (see mpg123_open()) + * \param channels allowed channel count, either 1 (MPG123_MONO) or + * 2 (MPG123_STEREO), or bitwise or of them, but then you're halfway back to + * calling mpg123_format() again;-) + * \param encoding a definite encoding from enum mpg123_enc_enum + * or a bitmask like for mpg123_format(), defeating the purpose somewhat + */ +MPG123_EXPORT int mpg123_open_fixed(mpg123_handle *mh, const char *path +, int channels, int encoding); + +/** Open and prepare to decode the specified file by filesystem path. + * This does not open HTTP urls; libmpg123 contains no networking code. + * If you want to decode internet streams, use mpg123_open_fd() or mpg123_open_feed(). + * + * The path parameter usually is just a string that is handed to the underlying + * OS routine for opening, treated as a blob of binary data. On platforms + * where encoding needs to be involved, something like _wopen() is called + * underneath and the path argument to libmpg123 is assumed to be encoded in UTF-8. + * So, if you have to ask yourself which encoding is needed, the answer is + * UTF-8, which also fits any sane modern install of Unix-like systems. + * + * \param mh handle + * \param path filesystem + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_open(mpg123_handle *mh, const char *path); + +/** Use an already opened file descriptor as the bitstream input + * mpg123_close() will _not_ close the file descriptor. + * \param mh handle + * \param fd file descriptor + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_open_fd(mpg123_handle *mh, int fd); + +/** Use an opaque handle as bitstream input. This works only with the + * replaced I/O from mpg123_replace_reader_handle()! + * mpg123_close() will call the cleanup callback for your handle (if you gave one). + * \param mh handle + * \param iohandle your handle + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_open_handle(mpg123_handle *mh, void *iohandle); + +/** Open a new bitstream and prepare for direct feeding + * This works together with mpg123_decode(); you are responsible for reading and feeding the input bitstream. + * Also, you are expected to handle ICY metadata extraction yourself. This + * input method does not handle MPG123_ICY_INTERVAL. It does parse ID3 frames, though. + * \param mh handle + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_open_feed(mpg123_handle *mh); + +/** Closes the source, if libmpg123 opened it. + * \param mh handle + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_close(mpg123_handle *mh); + +/** Read from stream and decode up to outmemsize bytes. + * + * Note: The type of outmemory changed to a void pointer in mpg123 1.26.0 + * (API version 45). + * + * \param mh handle + * \param outmemory address of output buffer to write to + * \param outmemsize maximum number of bytes to write + * \param done address to store the number of actually decoded bytes to + * \return MPG123_OK or error/message code + */ +MPG123_EXPORT int mpg123_read(mpg123_handle *mh +, void *outmemory, size_t outmemsize, size_t *done ); + +/** Feed data for a stream that has been opened with mpg123_open_feed(). + * It's give and take: You provide the bytestream, mpg123 gives you the decoded samples. + * \param mh handle + * \param in input buffer + * \param size number of input bytes + * \return MPG123_OK or error/message code. + */ +MPG123_EXPORT int mpg123_feed( mpg123_handle *mh +, const unsigned char *in, size_t size ); + +/** Decode MPEG Audio from inmemory to outmemory. + * This is very close to a drop-in replacement for old mpglib. + * When you give zero-sized output buffer the input will be parsed until + * decoded data is available. This enables you to get MPG123_NEW_FORMAT (and query it) + * without taking decoded data. + * Think of this function being the union of mpg123_read() and mpg123_feed() (which it actually is, sort of;-). + * You can actually always decide if you want those specialized functions in separate steps or one call this one here. + * + * Note: The type of outmemory changed to a void pointer in mpg123 1.26.0 + * (API version 45). + * + * \param mh handle + * \param inmemory input buffer + * \param inmemsize number of input bytes + * \param outmemory output buffer + * \param outmemsize maximum number of output bytes + * \param done address to store the number of actually decoded bytes to + * \return error/message code (watch out especially for MPG123_NEED_MORE) + */ +MPG123_EXPORT int mpg123_decode( mpg123_handle *mh +, const unsigned char *inmemory, size_t inmemsize +, void *outmemory, size_t outmemsize, size_t *done ); + +/** Decode next MPEG frame to internal buffer + * or read a frame and return after setting a new format. + * \param mh handle + * \param num current frame offset gets stored there + * \param audio This pointer is set to the internal buffer to read the decoded audio from. + * \param bytes number of output bytes ready in the buffer + * \return MPG123_OK or error/message code + */ +MPG123_EXPORT int mpg123_decode_frame( mpg123_handle *mh +, off_t *num, unsigned char **audio, size_t *bytes ); + +/** Decode current MPEG frame to internal buffer. + * Warning: This is experimental API that might change in future releases! + * Please watch mpg123 development closely when using it. + * \param mh handle + * \param num last frame offset gets stored there + * \param audio this pointer is set to the internal buffer to read the decoded audio from. + * \param bytes number of output bytes ready in the buffer + * \return MPG123_OK or error/message code + */ +MPG123_EXPORT int mpg123_framebyframe_decode( mpg123_handle *mh +, off_t *num, unsigned char **audio, size_t *bytes ); + +/** Find, read and parse the next mp3 frame + * Warning: This is experimental API that might change in future releases! + * Please watch mpg123 development closely when using it. + * \param mh handle + * \return MPG123_OK or error/message code + */ +MPG123_EXPORT int mpg123_framebyframe_next(mpg123_handle *mh); + +/** Get access to the raw input data for the last parsed frame. + * This gives you a direct look (and write access) to the frame body data. + * Together with the raw header, you can reconstruct the whole raw MPEG stream without junk and meta data, or play games by actually modifying the frame body data before decoding this frame (mpg123_framebyframe_decode()). + * A more sane use would be to use this for CRC checking (see mpg123_info() and MPG123_CRC), the first two bytes of the body make up the CRC16 checksum, if present. + * You can provide NULL for a parameter pointer when you are not interested in the value. + * + * \param mh handle + * \param header the 4-byte MPEG header + * \param bodydata pointer to the frame body stored in the handle (without the header) + * \param bodybytes size of frame body in bytes (without the header) + * \return MPG123_OK if there was a yet un-decoded frame to get the + * data from, MPG123_BAD_HANDLE or MPG123_ERR otherwise (without further + * explanation, the error state of the mpg123_handle is not modified by + * this function). + */ +MPG123_EXPORT int mpg123_framedata( mpg123_handle *mh +, unsigned long *header, unsigned char **bodydata, size_t *bodybytes ); + +/** Get the input position (byte offset in stream) of the last parsed frame. + * This can be used for external seek index building, for example. + * It just returns the internally stored offset, regardless of validity -- + * you ensure that a valid frame has been parsed before! + * \param mh handle + * \return byte offset in stream + */ +MPG123_EXPORT off_t mpg123_framepos(mpg123_handle *mh); + +/** @} */ + + +/** \defgroup mpg123_seek mpg123 position and seeking + * + * Functions querying and manipulating position in the decoded audio bitstream. + * The position is measured in decoded audio samples or MPEG frame offset for + * the specific functions. The term sample refers to a group of samples for + * multiple channels, normally dubbed PCM frames. The latter term is + * avoided here because frame means something different in the context of MPEG + * audio. Since all samples of a PCM frame occur at the same time, there is only + * very limited ambiguity when talking about playback offset, as counting each + * channel sample individually does not make sense. + * + * If gapless code is in effect, the positions are adjusted to compensate the + * skipped padding/delay - meaning, you should not care about that at all and + * just use the position defined for the samples you get out of the decoder;-) + * The general usage is modelled after stdlib's ftell() and fseek(). + * Especially, the whence parameter for the seek functions has the same meaning + * as the one for fseek() and needs the same constants from stdlib.h: + * + * - SEEK_SET: set position to (or near to) specified offset + * - SEEK_CUR: change position by offset from now + * - SEEK_END: set position to offset from end + * + * Note that sample-accurate seek only works when gapless support has been + * enabled at compile time; seek is frame-accurate otherwise. + * Also, really sample-accurate seeking (meaning that you get the identical + * sample value after seeking compared to plain decoding up to the position) + * is only guaranteed when you do not mess with the position code by using + * #MPG123_UPSPEED, #MPG123_DOWNSPEED or #MPG123_START_FRAME. The first two mainly + * should cause trouble with NtoM resampling, but in any case with these options + * in effect, you have to keep in mind that the sample offset is not the same + * as counting the samples you get from decoding since mpg123 counts the skipped + * samples, too (or the samples played twice only once)! + * + * Short: When you care about the sample position, don't mess with those + * parameters;-) + * + * Streams may be openend in ways that do not support seeking. Also, consider + * the effect of #MPG123_FUZZY. + * + * @{ + */ + +/** Returns the current position in samples. + * On the next successful read, you'd get audio data with that offset. + * \param mh handle + * \return sample (PCM frame) offset or MPG123_ERR (null handle) + */ +MPG123_EXPORT off_t mpg123_tell(mpg123_handle *mh); + +/** Returns the frame number that the next read will give you data from. + * \param mh handle + * \return frame offset or MPG123_ERR (null handle) + */ +MPG123_EXPORT off_t mpg123_tellframe(mpg123_handle *mh); + +/** Returns the current byte offset in the input stream. + * \param mh handle + * \return byte offset or MPG123_ERR (null handle) + */ +MPG123_EXPORT off_t mpg123_tell_stream(mpg123_handle *mh); + +/** Seek to a desired sample offset. + * Usage is modelled afer the standard lseek(). + * \param mh handle + * \param sampleoff offset in samples (PCM frames) + * \param whence one of SEEK_SET, SEEK_CUR or SEEK_END + * \return The resulting offset >= 0 or error/message code + */ +MPG123_EXPORT off_t mpg123_seek( mpg123_handle *mh +, off_t sampleoff, int whence ); + +/** Seek to a desired sample offset in data feeding mode. + * This just prepares things to be right only if you ensure that the next chunk + * of input data will be from input_offset byte position. + * \param mh handle + * \param sampleoff offset in samples (PCM frames) + * \param whence one of SEEK_SET, SEEK_CUR or SEEK_END + * \param input_offset The position it expects to be at the + * next time data is fed to mpg123_decode(). + * \return The resulting offset >= 0 or error/message code + */ +MPG123_EXPORT off_t mpg123_feedseek( mpg123_handle *mh +, off_t sampleoff, int whence, off_t *input_offset ); + +/** Seek to a desired MPEG frame offset. + * Usage is modelled afer the standard lseek(). + * \param mh handle + * \param frameoff offset in MPEG frames + * \param whence one of SEEK_SET, SEEK_CUR or SEEK_END + * \return The resulting offset >= 0 or error/message code */ +MPG123_EXPORT off_t mpg123_seek_frame( mpg123_handle *mh +, off_t frameoff, int whence ); + +/** Return a MPEG frame offset corresponding to an offset in seconds. + * This assumes that the samples per frame do not change in the file/stream, which is a good assumption for any sane file/stream only. + * \return frame offset >= 0 or error/message code */ +MPG123_EXPORT off_t mpg123_timeframe(mpg123_handle *mh, double sec); + +/** Give access to the frame index table that is managed for seeking. + * You are asked not to modify the values... Use mpg123_set_index to set the + * seek index + * \param mh handle + * \param offsets pointer to the index array + * \param step one index byte offset advances this many MPEG frames + * \param fill number of recorded index offsets; size of the array + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_index( mpg123_handle *mh +, off_t **offsets, off_t *step, size_t *fill ); + +/** Set the frame index table + * Setting offsets to NULL and fill > 0 will allocate fill entries. Setting offsets + * to NULL and fill to 0 will clear the index and free the allocated memory used by the index. + * \param mh handle + * \param offsets pointer to the index array + * \param step one index byte offset advances this many MPEG frames + * \param fill number of recorded index offsets; size of the array + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_set_index( mpg123_handle *mh +, off_t *offsets, off_t step, size_t fill ); + +/** An old crutch to keep old mpg123 binaries happy. + * WARNING: This function is there only to avoid runtime linking errors with + * standalone mpg123 before version 1.23.0 (if you strangely update the + * library but not the end-user program) and actually is broken + * for various cases (p.ex. 24 bit output). Do never use. It might eventually + * be purged from the library. + */ +MPG123_EXPORT int mpg123_position( mpg123_handle *mh, off_t frame_offset, off_t buffered_bytes, off_t *current_frame, off_t *frames_left, double *current_seconds, double *seconds_left); + +/** @} */ + + +/** \defgroup mpg123_voleq mpg123 volume and equalizer + * + * @{ + */ + +/** another channel enumeration, for left/right choice */ +enum mpg123_channels +{ + MPG123_LEFT=0x1 /**< The Left Channel. */ + ,MPG123_RIGHT=0x2 /**< The Right Channel. */ + ,MPG123_LR=0x3 /**< Both left and right channel; same as MPG123_LEFT|MPG123_RIGHT */ +}; + +#ifdef MPG123_ENUM_API +/** Set the 32 Band Audio Equalizer settings. + * + * Note that this name is mapped to mpg123_eq2() instead unless + * MPG123_ENUM_API is defined. + * + * \param mh handle + * \param channel Can be #MPG123_LEFT, #MPG123_RIGHT or + * #MPG123_LEFT|#MPG123_RIGHT for both. + * \param band The equaliser band to change (from 0 to 31) + * \param val The (linear) adjustment factor. + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_eq( mpg123_handle *mh +, enum mpg123_channels channel, int band, double val ); +#endif + +/** Set the 32 Band Audio Equalizer settings. No enums. + * + * This is actually called instead of mpg123_eq() unless MPG123_ENUM_API + * is defined. + * + * \param mh handle + * \param channel Can be #MPG123_LEFT, #MPG123_RIGHT or + * #MPG123_LEFT|#MPG123_RIGHT for both. + * \param band The equaliser band to change (from 0 to 31) + * \param val The (linear) adjustment factor. + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_eq2( mpg123_handle *mh +, int channel, int band, double val ); + +#ifdef MPG123_ENUM_API +/** Get the 32 Band Audio Equalizer settings. + * + * Note that this name is mapped to mpg123_geteq2() instead unless + * MPG123_ENUM_API is defined. + * + * \param mh handle + * \param channel Can be #MPG123_LEFT, #MPG123_RIGHT or + * #MPG123_LEFT|MPG123_RIGHT for (arithmetic mean of) both. + * \param band The equaliser band to change (from 0 to 31) + * \return The (linear) adjustment factor (zero for pad parameters) */ +MPG123_EXPORT double mpg123_geteq(mpg123_handle *mh + , enum mpg123_channels channel, int band); +#endif + +/** Get the 32 Band Audio Equalizer settings. + * + * This is actually called instead of mpg123_geteq() unless MPG123_ENUM_API + * is defined. + * + * \param mh handle + * \param channel Can be #MPG123_LEFT, #MPG123_RIGHT or + * #MPG123_LEFT|MPG123_RIGHT for (arithmetic mean of) both. + * \param band The equaliser band to change (from 0 to 31) + * \return The (linear) adjustment factor (zero for pad parameters) */ +MPG123_EXPORT double mpg123_geteq2(mpg123_handle *mh, int channel, int band); + +/** Reset the 32 Band Audio Equalizer settings to flat + * \param mh handle + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_reset_eq(mpg123_handle *mh); + +/** Set the absolute output volume including the RVA setting, + * vol<0 just applies (a possibly changed) RVA setting. + * \param mh handle + * \param vol volume value (linear factor) + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_volume(mpg123_handle *mh, double vol); + +/** Adjust output volume including the RVA setting by chosen amount + * \param mh handle + * \param change volume value (linear factor increment) + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_volume_change(mpg123_handle *mh, double change); + +/** Return current volume setting, the actual value due to RVA, and the RVA + * adjustment itself. It's all as double float value to abstract the sample + * format. The volume values are linear factors / amplitudes (not percent) + * and the RVA value is in decibels. + * \param mh handle + * \param base return address for base volume (linear factor) + * \param really return address for actual volume (linear factor) + * \param rva_db return address for RVA value (decibels) + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_getvolume(mpg123_handle *mh, double *base, double *really, double *rva_db); + +/* TODO: Set some preamp in addition / to replace internal RVA handling? */ + +/** @} */ + + +/** \defgroup mpg123_status mpg123 status and information + * + * @{ + */ + +/** Enumeration of the mode types of Variable Bitrate */ +enum mpg123_vbr { + MPG123_CBR=0, /**< Constant Bitrate Mode (default) */ + MPG123_VBR, /**< Variable Bitrate Mode */ + MPG123_ABR /**< Average Bitrate Mode */ +}; + +/** Enumeration of the MPEG Versions */ +enum mpg123_version { + MPG123_1_0=0, /**< MPEG Version 1.0 */ + MPG123_2_0, /**< MPEG Version 2.0 */ + MPG123_2_5 /**< MPEG Version 2.5 */ +}; + + +/** Enumeration of the MPEG Audio mode. + * Only the mono mode has 1 channel, the others have 2 channels. */ +enum mpg123_mode { + MPG123_M_STEREO=0, /**< Standard Stereo. */ + MPG123_M_JOINT, /**< Joint Stereo. */ + MPG123_M_DUAL, /**< Dual Channel. */ + MPG123_M_MONO /**< Single Channel. */ +}; + + +/** Enumeration of the MPEG Audio flag bits */ +enum mpg123_flags { + MPG123_CRC=0x1, /**< The bitstream is error protected using 16-bit CRC. */ + MPG123_COPYRIGHT=0x2, /**< The bitstream is copyrighted. */ + MPG123_PRIVATE=0x4, /**< The private bit has been set. */ + MPG123_ORIGINAL=0x8 /**< The bitstream is an original, not a copy. */ +}; + +#ifdef MPG123_ENUM_API +/** Data structure for storing information about a frame of MPEG Audio */ +struct mpg123_frameinfo +{ + enum mpg123_version version; /**< The MPEG version (1.0/2.0/2.5). */ + int layer; /**< The MPEG Audio Layer (MP1/MP2/MP3). */ + long rate; /**< The sampling rate in Hz. */ + enum mpg123_mode mode; /**< The audio mode (Mono, Stereo, Joint-stero, Dual Channel). */ + int mode_ext; /**< The mode extension bit flag. */ + int framesize; /**< The size of the frame (in bytes, including header). */ + enum mpg123_flags flags; /**< MPEG Audio flag bits. Just now I realize that it should be declared as int, not enum. It's a bitwise combination of the enum values. */ + int emphasis; /**< The emphasis type. */ + int bitrate; /**< Bitrate of the frame (kbps). */ + int abr_rate; /**< The target average bitrate. */ + enum mpg123_vbr vbr; /**< The VBR mode. */ +}; +#endif + +/** Data structure for storing information about a frame of MPEG Audio without enums */ +struct mpg123_frameinfo2 +{ + int version; /**< The MPEG version (1.0/2.0/2.5), enum mpg123_version. */ + int layer; /**< The MPEG Audio Layer (MP1/MP2/MP3). */ + long rate; /**< The sampling rate in Hz. */ + int mode; /**< The audio mode (enum mpg123_mode, Mono, Stereo, Joint-stero, Dual Channel). */ + int mode_ext; /**< The mode extension bit flag. */ + int framesize; /**< The size of the frame (in bytes, including header). */ + int flags; /**< MPEG Audio flag bits. Bitwise combination of enum mpg123_flags values. */ + int emphasis; /**< The emphasis type. */ + int bitrate; /**< Bitrate of the frame (kbps). */ + int abr_rate; /**< The target average bitrate. */ + int vbr; /**< The VBR mode, enum mpg123_vbr. */ +}; + +/** Data structure for even more detailed information out of the decoder, + * for MPEG layer III only. + * This was added to support the frame analyzer by the Lame project and + * just follows what was used there before. You know what the fields mean + * if you want use this structure. */ +struct mpg123_moreinfo +{ + double xr[2][2][576]; /**< internal data */ + double sfb[2][2][22]; /**< [2][2][SBMAX_l] */ + double sfb_s[2][2][3*13]; /**< [2][2][3*SBMAX_s] */ + int qss[2][2]; /**< internal data */ + int big_values[2][2]; /**< internal data */ + int sub_gain[2][2][3]; /**< internal data */ + int scalefac_scale[2][2]; /**< internal data */ + int preflag[2][2]; /**< internal data */ + int blocktype[2][2]; /**< internal data */ + int mixed[2][2]; /**< internal data */ + int mainbits[2][2]; /**< internal data */ + int sfbits[2][2]; /**< internal data */ + int scfsi[2]; /**< internal data */ + int maindata; /**< internal data */ + int padding; /**< internal data */ +}; + +#ifdef MPG123_ENUM_API +/** Get frame information about the MPEG audio bitstream and store + * it in a mpg123_frameinfo structure. + * + * Note that this name is mapped to mpg123_info2() instead unless + * MPG123_ENUM_API is defined. + * + * \param mh handle + * \param mi address of existing frameinfo structure to write to + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_info(mpg123_handle *mh, struct mpg123_frameinfo *mi); +#endif + +/** Get frame information about the MPEG audio bitstream and store + * it in a mpg123_frameinfo2 structure. + * + * This is actually called instead of mpg123_info() + * unless MPG123_ENUM_API is defined. + * + * \param mh handle + * \param mi address of existing frameinfo structure to write to + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_info2(mpg123_handle *mh, struct mpg123_frameinfo2 *mi); + +/** Trigger collection of additional decoder information while decoding. + * \param mh handle + * \param mi pointer to data storage (NULL to disable collection) + * \return MPG123_OK if the collection was enabled/disabled as desired, MPG123_ERR + * otherwise (e.g. if the feature is disabled) + */ +MPG123_EXPORT int mpg123_set_moreinfo( mpg123_handle *mh +, struct mpg123_moreinfo *mi ); + +/** Get the safe output buffer size for all cases + * (when you want to replace the internal buffer) + * \return safe buffer size + */ +MPG123_EXPORT size_t mpg123_safe_buffer(void); + +/** Make a full parsing scan of each frame in the file. ID3 tags are found. An + * accurate length value is stored. Seek index will be filled. A seek back to + * current position is performed. At all, this function refuses work when + * stream is not seekable. + * \param mh handle + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_scan(mpg123_handle *mh); + +/** Return, if possible, the full (expected) length of current track in + * MPEG frames. + * \param mh handle + * \return length >= 0 or MPG123_ERR if there is no length guess possible. + */ +MPG123_EXPORT off_t mpg123_framelength(mpg123_handle *mh); + +/** Return, if possible, the full (expected) length of current + * track in samples (PCM frames). + * + * This relies either on an Info frame at the beginning or a previous + * call to mpg123_scan() to get the real number of MPEG frames in a + * file. It will guess based on file size if neither Info frame nor + * scan data are present. In any case, there is no guarantee that the + * decoder will not give you more data, for example in case the open + * file gets appended to during decoding. + * \param mh handle + * \return length >= 0 or MPG123_ERR if there is no length guess possible. + */ +MPG123_EXPORT off_t mpg123_length(mpg123_handle *mh); + +/** Override the value for file size in bytes. + * Useful for getting sensible track length values in feed mode or for HTTP streams. + * \param mh handle + * \param size file size in bytes + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_set_filesize(mpg123_handle *mh, off_t size); + +/** Get MPEG frame duration in seconds. + * \param mh handle + * \return frame duration in seconds, <0 on error + */ +MPG123_EXPORT double mpg123_tpf(mpg123_handle *mh); + +/** Get MPEG frame duration in samples. + * \param mh handle + * \return samples per frame for the most recently parsed frame; <0 on errors + */ +MPG123_EXPORT int mpg123_spf(mpg123_handle *mh); + +/** Get and reset the clip count. + * \param mh handle + * \return count of clipped samples + */ +MPG123_EXPORT long mpg123_clip(mpg123_handle *mh); + + +/** The key values for state information from mpg123_getstate(). */ +enum mpg123_state +{ + MPG123_ACCURATE = 1 /**< Query if positons are currently accurate (integer value, 0 if false, 1 if true). */ + ,MPG123_BUFFERFILL /**< Get fill of internal (feed) input buffer as integer byte count returned as long and as double. An error is returned on integer overflow while converting to (signed) long, but the returned floating point value shold still be fine. */ + ,MPG123_FRANKENSTEIN /**< Stream consists of carelessly stitched together files. Seeking may yield unexpected results (also with MPG123_ACCURATE, it may be confused). */ + ,MPG123_FRESH_DECODER /**< Decoder structure has been updated, possibly indicating changed stream (integer value, 0 if false, 1 if true). Flag is cleared after retrieval. */ + ,MPG123_ENC_DELAY /** Encoder delay read from Info tag (layer III, -1 if unknown). */ + ,MPG123_ENC_PADDING /** Encoder padding read from Info tag (layer III, -1 if unknown). */ + ,MPG123_DEC_DELAY /** Decoder delay (for layer III only, -1 otherwise). */ +}; + +#ifdef MPG123_ENUM_API +/** Get various current decoder/stream state information. + * + * Note that this name is mapped to mpg123_getstate2() instead unless + * MPG123_ENUM_API is defined. + * + * \param mh handle + * \param key the key to identify the information to give. + * \param val the address to return (long) integer values to + * \param fval the address to return floating point values to + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_getstate( mpg123_handle *mh +, enum mpg123_state key, long *val, double *fval ); +#endif + +/** Get various current decoder/stream state information. No enums. + * + * This is actually called instead of mpg123_getstate() + * unless MPG123_ENUM_API is defined. + * + * \param mh handle + * \param key the key to identify the information to give (enum mpg123_state) + * \param val the address to return (long) integer values to + * \param fval the address to return floating point values to + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_getstate2( mpg123_handle *mh +, int key, long *val, double *fval ); + +/** @} */ + + +/** \defgroup mpg123_metadata mpg123 metadata handling + * + * Functions to retrieve the metadata from MPEG Audio files and streams. + * Also includes string handling functions. + * + * @{ + */ + +/** Data structure for storing strings in a safer way than a standard C-String. + * Can also hold a number of null-terminated strings. */ +typedef struct +{ + char* p; /**< pointer to the string data */ + size_t size; /**< raw number of bytes allocated */ + size_t fill; /**< number of used bytes (including closing zero byte) */ +} mpg123_string; + +/** Allocate and intialize a new string. + * \param val optional initial string value (can be NULL) + */ +MPG123_EXPORT mpg123_string* mpg123_new_string(const char* val); + +/** Free memory of contents and the string structure itself. + * \param sb string handle + */ +MPG123_EXPORT void mpg123_delete_string(mpg123_string* sb); + +/** Initialize an existing mpg123_string structure to {NULL, 0, 0}. + * If you hand in a NULL pointer here, your program should crash. The other + * string functions are more forgiving, but this one here is too basic. + * \param sb string handle (address of existing structure on your side) + */ +MPG123_EXPORT void mpg123_init_string(mpg123_string* sb); + +/** Free-up memory of the contents of an mpg123_string (not the struct itself). + * This also calls mpg123_init_string() and hence is safe to be called + * repeatedly. + * \param sb string handle + */ +MPG123_EXPORT void mpg123_free_string(mpg123_string* sb); + +/** Change the size of a mpg123_string + * \param sb string handle + * \param news new size in bytes + * \return 0 on error, 1 on success + */ +MPG123_EXPORT int mpg123_resize_string(mpg123_string* sb, size_t news); + +/** Increase size of a mpg123_string if necessary (it may stay larger). + * Note that the functions for adding and setting in current libmpg123 + * use this instead of mpg123_resize_string(). + * That way, you can preallocate memory and safely work afterwards with + * pieces. + * \param sb string handle + * \param news new minimum size + * \return 0 on error, 1 on success + */ +MPG123_EXPORT int mpg123_grow_string(mpg123_string* sb, size_t news); + +/** Copy the contents of one mpg123_string string to another. + * Yes the order of arguments is reversed compated to memcpy(). + * \param from string handle + * \param to string handle + * \return 0 on error, 1 on success + */ +MPG123_EXPORT int mpg123_copy_string(mpg123_string* from, mpg123_string* to); + +/** Move the contents of one mpg123_string string to another. + * This frees any memory associated with the target and moves over the + * pointers from the source, leaving the source without content after + * that. The only possible error is that you hand in NULL pointers. + * If you handed in a valid source, its contents will be gone, even if + * there was no target to move to. If you hand in a valid target, its + * original contents will also always be gone, to be replaced with the + * source's contents if there was some. + * \param from source string handle + * \param to target string handle + * \return 0 on error, 1 on success + */ +MPG123_EXPORT int mpg123_move_string(mpg123_string* from, mpg123_string* to); + +/** Append a C-String to an mpg123_string + * \param sb string handle + * \param stuff to append + * \return 0 on error, 1 on success + */ +MPG123_EXPORT int mpg123_add_string(mpg123_string* sb, const char* stuff); + +/** Append a C-substring to an mpg123 string + * \param sb string handle + * \param stuff content to copy + * \param from offset to copy from + * \param count number of characters to copy (a null-byte is always appended) + * \return 0 on error, 1 on success + */ +MPG123_EXPORT int mpg123_add_substring( mpg123_string *sb +, const char *stuff, size_t from, size_t count ); + +/** Set the content of a mpg123_string to a C-string + * \param sb string handle + * \param stuff content to copy + * \return 0 on error, 1 on success + */ +MPG123_EXPORT int mpg123_set_string(mpg123_string* sb, const char* stuff); + +/** Set the content of a mpg123_string to a C-substring + * \param sb string handle + * \param stuff the future content + * \param from offset to copy from + * \param count number of characters to copy (a null-byte is always appended) + * \return 0 on error, 1 on success + */ +MPG123_EXPORT int mpg123_set_substring( mpg123_string *sb +, const char *stuff, size_t from, size_t count ); + +/** Count characters in a mpg123 string (non-null bytes or Unicode points). + * This function is of limited use, as it does just count code points + * encoded in an UTF-8 string, only loosely related to the count of visible + * characters. Get your full Unicode handling support elsewhere. + * \param sb string handle + * \param utf8 a flag to tell if the string is in utf8 encoding + * \return character count +*/ +MPG123_EXPORT size_t mpg123_strlen(mpg123_string *sb, int utf8); + +/** Remove trailing \\r and \\n, if present. + * \param sb string handle + * \return 0 on error, 1 on success + */ +MPG123_EXPORT int mpg123_chomp_string(mpg123_string *sb); + +/** Determine if two strings contain the same data. + * This only returns 1 if both given handles are non-NULL and + * if they are filled with the same bytes. + * \param a first string handle + * \param b second string handle + * \return 0 for different strings, 1 for identical + */ +MPG123_EXPORT int mpg123_same_string(mpg123_string *a, mpg123_string *b); + +/** The mpg123 text encodings. This contains encodings we encounter in ID3 tags or ICY meta info. */ +enum mpg123_text_encoding +{ + mpg123_text_unknown = 0 /**< Unkown encoding... mpg123_id3_encoding can return that on invalid codes. */ + ,mpg123_text_utf8 = 1 /**< UTF-8 */ + ,mpg123_text_latin1 = 2 /**< ISO-8859-1. Note that sometimes latin1 in ID3 is abused for totally different encodings. */ + ,mpg123_text_icy = 3 /**< ICY metadata encoding, usually CP-1252 but we take it as UTF-8 if it qualifies as such. */ + ,mpg123_text_cp1252 = 4 /**< Really CP-1252 without any guessing. */ + ,mpg123_text_utf16 = 5 /**< Some UTF-16 encoding. The last of a set of leading BOMs (byte order mark) rules. + * When there is no BOM, big endian ordering is used. Note that UCS-2 qualifies as UTF-8 when + * you don't mess with the reserved code points. If you want to decode little endian data + * without BOM you need to prepend 0xff 0xfe yourself. */ + ,mpg123_text_utf16bom = 6 /**< Just an alias for UTF-16, ID3v2 has this as distinct code. */ + ,mpg123_text_utf16be = 7 /**< Another alias for UTF16 from ID3v2. Note, that, because of the mess that is reality, + * BOMs are used if encountered. There really is not much distinction between the UTF16 types for mpg123 + * One exception: Since this is seen in ID3v2 tags, leading null bytes are skipped for all other UTF16 + * types (we expect a BOM before real data there), not so for utf16be!*/ + ,mpg123_text_max = 7 /**< Placeholder for the maximum encoding value. */ +}; + +/** The encoding byte values from ID3v2. */ +enum mpg123_id3_enc +{ + mpg123_id3_latin1 = 0 /**< Note: This sometimes can mean anything in practice... */ + ,mpg123_id3_utf16bom = 1 /**< UTF16, UCS-2 ... it's all the same for practical purposes. */ + ,mpg123_id3_utf16be = 2 /**< Big-endian UTF-16, BOM see note for mpg123_text_utf16be. */ + ,mpg123_id3_utf8 = 3 /**< Our lovely overly ASCII-compatible 8 byte encoding for the world. */ + ,mpg123_id3_enc_max = 3 /**< Placeholder to check valid range of encoding byte. */ +}; + +#ifdef MPG123_ENUM_API +/** Convert ID3 encoding byte to mpg123 encoding index. + * + * Note that this name is mapped to mpg123_enc_from_id3_2() instead unless + * MPG123_ENUM_API is defined. + * + * \param id3_enc_byte the ID3 encoding code + * \return the mpg123 encoding index + */ +MPG123_EXPORT enum mpg123_text_encoding mpg123_enc_from_id3(unsigned char id3_enc_byte); +#endif + +/** Convert ID3 encoding byte to mpg123 encoding index. No enums. + * + * This is actually called instead of mpg123_enc_from_id3() + * unless MPG123_ENUM_API is defined. + * + * \param id3_enc_byte the ID3 encoding code + * \return the mpg123 encoding index + */ +MPG123_EXPORT int mpg123_enc_from_id3_2(unsigned char id3_enc_byte); + +#ifdef MPG123_ENUM_API +/** Store text data in string, after converting to UTF-8 from indicated encoding. + * + * Note that this name is mapped to mpg123_store_utf8_2() instead unless + * MPG123_ENUM_API is defined. + * + * A prominent error can be that you provided an unknown encoding value, or this build of libmpg123 lacks support for certain encodings (ID3 or ICY stuff missing). + * Also, you might want to take a bit of care with preparing the data; for example, strip leading zeroes (I have seen that). + * \param sb target string + * \param enc mpg123 text encoding value + * \param source source buffer with plain unsigned bytes (you might need to cast from signed char) + * \param source_size number of bytes in the source buffer + * \return 0 on error, 1 on success (on error, mpg123_free_string is called on sb) + */ +MPG123_EXPORT int mpg123_store_utf8(mpg123_string *sb, enum mpg123_text_encoding enc, const unsigned char *source, size_t source_size); +#endif + +/** Store text data in string, after converting to UTF-8 from indicated encoding. No enums. + * + * This is actually called instead of mpg123_store_utf8() + * unless MPG123_ENUM_API is defined. + * + * A prominent error can be that you provided an unknown encoding value, or this build of libmpg123 lacks support for certain encodings (ID3 or ICY stuff missing). + * Also, you might want to take a bit of care with preparing the data; for example, strip leading zeroes (I have seen that). + * \param sb target string + * \param enc mpg123 text encoding value (enum mpg123_text_encoding) + * \param source source buffer with plain unsigned bytes (you might need to cast from signed char) + * \param source_size number of bytes in the source buffer + * \return 0 on error, 1 on success (on error, mpg123_free_string is called on sb) + */ +MPG123_EXPORT int mpg123_store_utf8_2(mpg123_string *sb +, int enc, const unsigned char *source, size_t source_size); + +/** Sub data structure for ID3v2, for storing various text fields (including comments). + * This is for ID3v2 COMM, TXXX and all the other text fields. + * Only COMM, TXXX and USLT may have a description, only COMM and USLT + * have a language. + * You should consult the ID3v2 specification for the use of the various text fields + * ("frames" in ID3v2 documentation, I use "fields" here to separate from MPEG frames). */ +typedef struct +{ + char lang[3]; /**< Three-letter language code (not terminated). */ + char id[4]; /**< The ID3v2 text field id, like TALB, TPE2, ... (4 characters, no string termination). */ + mpg123_string description; /**< Empty for the generic comment... */ + mpg123_string text; /**< ... */ +} mpg123_text; + +/** The picture type values from ID3v2. */ +enum mpg123_id3_pic_type +{ + mpg123_id3_pic_other = 0 /**< see ID3v2 docs */ + ,mpg123_id3_pic_icon = 1 /**< see ID3v2 docs */ + ,mpg123_id3_pic_other_icon = 2 /**< see ID3v2 docs */ + ,mpg123_id3_pic_front_cover = 3 /**< see ID3v2 docs */ + ,mpg123_id3_pic_back_cover = 4 /**< see ID3v2 docs */ + ,mpg123_id3_pic_leaflet = 5 /**< see ID3v2 docs */ + ,mpg123_id3_pic_media = 6 /**< see ID3v2 docs */ + ,mpg123_id3_pic_lead = 7 /**< see ID3v2 docs */ + ,mpg123_id3_pic_artist = 8 /**< see ID3v2 docs */ + ,mpg123_id3_pic_conductor = 9 /**< see ID3v2 docs */ + ,mpg123_id3_pic_orchestra = 10 /**< see ID3v2 docs */ + ,mpg123_id3_pic_composer = 11 /**< see ID3v2 docs */ + ,mpg123_id3_pic_lyricist = 12 /**< see ID3v2 docs */ + ,mpg123_id3_pic_location = 13 /**< see ID3v2 docs */ + ,mpg123_id3_pic_recording = 14 /**< see ID3v2 docs */ + ,mpg123_id3_pic_performance = 15 /**< see ID3v2 docs */ + ,mpg123_id3_pic_video = 16 /**< see ID3v2 docs */ + ,mpg123_id3_pic_fish = 17 /**< see ID3v2 docs */ + ,mpg123_id3_pic_illustration = 18 /**< see ID3v2 docs */ + ,mpg123_id3_pic_artist_logo = 19 /**< see ID3v2 docs */ + ,mpg123_id3_pic_publisher_logo = 20 /**< see ID3v2 docs */ +}; + +/** Sub data structure for ID3v2, for storing picture data including comment. + * This is for the ID3v2 APIC field. You should consult the ID3v2 specification + * for the use of the APIC field ("frames" in ID3v2 documentation, I use "fields" + * here to separate from MPEG frames). */ +typedef struct +{ + char type; /**< mpg123_id3_pic_type value */ + mpg123_string description; /**< description string */ + mpg123_string mime_type; /**< MIME type */ + size_t size; /**< size in bytes */ + unsigned char* data; /**< pointer to the image data */ +} mpg123_picture; + +/** Data structure for storing IDV3v2 tags. + * This structure is not a direct binary mapping with the file contents. + * The ID3v2 text frames are allowed to contain multiple strings. + * So check for null bytes until you reach the mpg123_string fill. + * All text is encoded in UTF-8. */ +typedef struct +{ + unsigned char version; /**< 3 or 4 for ID3v2.3 or ID3v2.4. */ + mpg123_string *title; /**< Title string (pointer into text_list). */ + mpg123_string *artist; /**< Artist string (pointer into text_list). */ + mpg123_string *album; /**< Album string (pointer into text_list). */ + mpg123_string *year; /**< The year as a string (pointer into text_list). */ + mpg123_string *genre; /**< Genre String (pointer into text_list). The genre string(s) may very well need postprocessing, esp. for ID3v2.3. */ + mpg123_string *comment; /**< Pointer to last encountered comment text with empty description. */ + /* Encountered ID3v2 fields are appended to these lists. + There can be multiple occurences, the pointers above always point to the last encountered data. */ + mpg123_text *comment_list; /**< Array of comments. */ + size_t comments; /**< Number of comments. */ + mpg123_text *text; /**< Array of ID3v2 text fields (including USLT) */ + size_t texts; /**< Numer of text fields. */ + mpg123_text *extra; /**< The array of extra (TXXX) fields. */ + size_t extras; /**< Number of extra text (TXXX) fields. */ + mpg123_picture *picture; /**< Array of ID3v2 pictures fields (APIC). + Only populated if MPG123_PICTURE flag is set! */ + size_t pictures; /**< Number of picture (APIC) fields. */ +} mpg123_id3v2; + +/** Data structure for ID3v1 tags (the last 128 bytes of a file). + * Don't take anything for granted (like string termination)! + * Also note the change ID3v1.1 did: comment[28] = 0; comment[29] = track_number + * It is your task to support ID3v1 only or ID3v1.1 ...*/ +typedef struct +{ + char tag[3]; /**< Always the string "TAG", the classic intro. */ + char title[30]; /**< Title string. */ + char artist[30]; /**< Artist string. */ + char album[30]; /**< Album string. */ + char year[4]; /**< Year string. */ + char comment[30]; /**< Comment string. */ + unsigned char genre; /**< Genre index. */ +} mpg123_id3v1; + +#define MPG123_ID3 0x3 /**< 0011 There is some ID3 info. Also matches 0010 or NEW_ID3. */ +#define MPG123_NEW_ID3 0x1 /**< 0001 There is ID3 info that changed since last call to mpg123_id3. */ +#define MPG123_ICY 0xc /**< 1100 There is some ICY info. Also matches 0100 or NEW_ICY.*/ +#define MPG123_NEW_ICY 0x4 /**< 0100 There is ICY info that changed since last call to mpg123_icy. */ + +/** Query if there is (new) meta info, be it ID3 or ICY (or something new in future). + * \param mh handle + * \return combination of flags, 0 on error (same as "nothing new") + */ +MPG123_EXPORT int mpg123_meta_check(mpg123_handle *mh); + +/** Clean up meta data storage (ID3v2 and ICY), freeing memory. + * \param mh handle + */ +MPG123_EXPORT void mpg123_meta_free(mpg123_handle *mh); + +/** Point v1 and v2 to existing data structures wich may change on any next read/decode function call. + * v1 and/or v2 can be set to NULL when there is no corresponding data. + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_id3( mpg123_handle *mh +, mpg123_id3v1 **v1, mpg123_id3v2 **v2 ); + +/** Return pointers to and size of stored raw ID3 data if storage has + * been configured with MPG123_RAW_ID3 and stream parsing passed the + * metadata already. Null value with zero size is a possibility! + * The storage can change at any next API call. + * + * \param mh mpg123 handle + * \param v1 address to store pointer to v1 tag + * \param v1_size size of v1 data in bytes + * \param v2 address to store pointer to v2 tag + * \param v2_size size of v2 data in bytes + * \return MPG123_OK or MPG123_ERR. Only on MPG123_OK the output + * values are set. + */ +MPG123_EXPORT int mpg123_id3_raw( mpg123_handle *mh +, unsigned char **v1, size_t *v1_size +, unsigned char **v2, size_t *v2_size ); + +/** Point icy_meta to existing data structure wich may change on any next read/decode function call. + * \param mh handle + * \param icy_meta return address for ICY meta string (set to NULL if nothing there) + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_icy(mpg123_handle *mh, char **icy_meta); + +/** Decode from windows-1252 (the encoding ICY metainfo used) to UTF-8. + * Note that this is very similar to mpg123_store_utf8(&sb, mpg123_text_icy, icy_text, strlen(icy_text+1)) . + * \param icy_text The input data in ICY encoding + * \return pointer to newly allocated buffer with UTF-8 data (You free() it!) */ +MPG123_EXPORT char* mpg123_icy2utf8(const char* icy_text); + + +/** @} */ + + +/** \defgroup mpg123_advpar mpg123 advanced parameter API + * + * Direct access to a parameter set without full handle around it. + * Possible uses: + * - Influence behaviour of library _during_ initialization of handle (MPG123_VERBOSE). + * - Use one set of parameters for multiple handles. + * + * The functions for handling mpg123_pars (mpg123_par() and mpg123_fmt() + * family) directly return a fully qualified mpg123 error code, the ones + * operating on full handles normally MPG123_OK or MPG123_ERR, storing the + * specific error code itseld inside the handle. + * + * @{ + */ + +/** Opaque structure for the libmpg123 decoder parameters. */ +struct mpg123_pars_struct; + +/** Opaque structure for the libmpg123 decoder parameters. */ +typedef struct mpg123_pars_struct mpg123_pars; + +/** Create a handle with preset parameters. + * \param mp parameter handle + * \param decoder decoder choice + * \param error error code return address + * \return mpg123 handle + */ +MPG123_EXPORT mpg123_handle *mpg123_parnew( mpg123_pars *mp +, const char* decoder, int *error ); + +/** Allocate memory for and return a pointer to a new mpg123_pars + * \param error error code return address + * \return new parameter handle + */ +MPG123_EXPORT mpg123_pars *mpg123_new_pars(int *error); + +/** Delete and free up memory used by a mpg123_pars data structure + * \param mp parameter handle + */ +MPG123_EXPORT void mpg123_delete_pars(mpg123_pars* mp); + +/** Configure mpg123 parameters to accept no output format at all, + * use before specifying supported formats with mpg123_format + * \param mp parameter handle + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_fmt_none(mpg123_pars *mp); + +/** Configure mpg123 parameters to accept all formats + * (also any custom rate you may set) -- this is default. + * \param mp parameter handle + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_fmt_all(mpg123_pars *mp); + +/** Set the audio format support of a mpg123_pars in detail: + * \param mp parameter handle + * \param rate The sample rate value (in Hertz). + * \param channels A combination of MPG123_STEREO and MPG123_MONO. + * \param encodings A combination of accepted encodings for rate and channels, + * p.ex MPG123_ENC_SIGNED16|MPG123_ENC_ULAW_8 (or 0 for no + * support). + * \return MPG123_OK on success +*/ +MPG123_EXPORT int mpg123_fmt(mpg123_pars *mp +, long rate, int channels, int encodings); + +/** Set the audio format support of a mpg123_pars in detail: + * \param mp parameter handle + * \param rate The sample rate value (in Hertz). Special value 0 means + * all rates (reason for this variant of mpg123_fmt). + * \param channels A combination of MPG123_STEREO and MPG123_MONO. + * \param encodings A combination of accepted encodings for rate and channels, + * p.ex MPG123_ENC_SIGNED16|MPG123_ENC_ULAW_8 (or 0 for no + * support). + * \return MPG123_OK on success +*/ +MPG123_EXPORT int mpg123_fmt2(mpg123_pars *mp +, long rate, int channels, int encodings); + +/** Check to see if a specific format at a specific rate is supported + * by mpg123_pars. + * \param mp parameter handle + * \param rate sampling rate + * \param encoding encoding + * \return 0 for no support (that includes invalid parameters), MPG123_STEREO, + * MPG123_MONO or MPG123_STEREO|MPG123_MONO. */ +MPG123_EXPORT int mpg123_fmt_support(mpg123_pars *mp, long rate, int encoding); + +#ifdef MPG123_ENUM_API +/** Set a specific parameter in a par handle. + * + * Note that this name is mapped to mpg123_par2() instead unless + * MPG123_ENUM_API is defined. + * + * \param mp parameter handle + * \param type parameter choice + * \param value integer value + * \param fvalue floating point value + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_par( mpg123_pars *mp +, enum mpg123_parms type, long value, double fvalue ); +#endif + +/** Set a specific parameter in a par handle. No enums. + * + * This is actually called instead of mpg123_par() + * unless MPG123_ENUM_API is defined. + * + * \param mp parameter handle + * \param type parameter choice (enum mpg123_parms) + * \param value integer value + * \param fvalue floating point value + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_par2( mpg123_pars *mp +, int type, long value, double fvalue ); + +#ifdef MPG123_ENUM_API +/** Get a specific parameter from a par handle. + * + * Note that this name is mapped to mpg123_getpar2() instead unless + * MPG123_ENUM_API is defined. + * + * \param mp parameter handle + * \param type parameter choice + * \param value integer value return address + * \param fvalue floating point value return address + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_getpar( mpg123_pars *mp +, enum mpg123_parms type, long *value, double *fvalue ); +#endif + +/** Get a specific parameter from a par handle. No enums. + * + * This is actually called instead of mpg123_getpar() + * unless MPG123_ENUM_API is defined. + * + * \param mp parameter handle + * \param type parameter choice (enum mpg123_parms) + * \param value integer value return address + * \param fvalue floating point value return address + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_getpar2( mpg123_pars *mp +, int type, long *value, double *fvalue ); + +/** @} */ + + +/** \defgroup mpg123_lowio mpg123 low level I/O + * You may want to do tricky stuff with I/O that does not work with mpg123's default file access or you want to make it decode into your own pocket... + * + * @{ */ + +/** Replace default internal buffer with user-supplied buffer. + * Instead of working on it's own private buffer, mpg123 will directly use the one you provide for storing decoded audio. + * Note that the required buffer size could be bigger than expected from output + * encoding if libmpg123 has to convert from primary decoder output (p.ex. 32 bit + * storage for 24 bit output). + * + * Note: The type of data changed to a void pointer in mpg123 1.26.0 + * (API version 45). + * + * \param mh handle + * \param data pointer to user buffer + * \param size of buffer in bytes + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_replace_buffer(mpg123_handle *mh +, void *data, size_t size); + +/** The max size of one frame's decoded output with current settings. + * Use that to determine an appropriate minimum buffer size for decoding one frame. + * \param mh handle + * \return maximum decoded data size in bytes + */ +MPG123_EXPORT size_t mpg123_outblock(mpg123_handle *mh); + +/** Replace low-level stream access functions; read and lseek as known in POSIX. + * You can use this to make any fancy file opening/closing yourself, + * using mpg123_open_fd() to set the file descriptor for your read/lseek + * (doesn't need to be a "real" file descriptor...). + * Setting a function to NULL means that the default internal read is + * used (active from next mpg123_open call on). + * Note: As it would be troublesome to mess with this while having a file open, + * this implies mpg123_close(). + * \param mh handle + * \param r_read callback for reading (behaviour like POSIX read) + * \param r_lseek callback for seeking (like POSIX lseek) + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_replace_reader( mpg123_handle *mh +, mpg123_ssize_t (*r_read) (int, void *, size_t) +, off_t (*r_lseek)(int, off_t, int) +); + +/** Replace I/O functions with your own ones operating on some kind of + * handle instead of integer descriptors. + * The handle is a void pointer, so you can pass any data you want... + * mpg123_open_handle() is the call you make to use the I/O defined here. + * There is no fallback to internal read/seek here. + * Note: As it would be troublesome to mess with this while having a file open, + * this mpg123_close() is implied here. + * \param mh handle + * \param r_read callback for reading (behaviour like POSIX read) + * \param r_lseek callback for seeking (like POSIX lseek) + * \param cleanup A callback to clean up an I/O handle on mpg123_close, + * can be NULL for none (you take care of cleaning your handles). + * \return MPG123_OK on success + */ +MPG123_EXPORT int mpg123_replace_reader_handle( mpg123_handle *mh +, mpg123_ssize_t (*r_read) (void *, void *, size_t) +, off_t (*r_lseek)(void *, off_t, int) +, void (*cleanup)(void*) ); + +/** @} */ #ifdef __cplusplus } diff --git a/win64/include/mpg123/mpg123.h.in b/win64/include/mpg123/mpg123.h.in deleted file mode 100644 index a398044b..00000000 --- a/win64/include/mpg123/mpg123.h.in +++ /dev/null @@ -1,1721 +0,0 @@ -/* - libmpg123: MPEG Audio Decoder library (version ) - - copyright 1995-2015 by the mpg123 project - free software under the terms of the LGPL 2.1 - see COPYING and AUTHORS files in distribution or http://mpg123.org -*/ - -#ifndef MPG123_LIB_H -#define MPG123_LIB_H - -#include - -/** \file mpg123.h The header file for the libmpg123 MPEG Audio decoder */ - -/** A macro to check at compile time which set of API functions to expect. - * This should be incremented at least each time a new symbol is added - * to the header. - */ -#define MPG123_API_VERSION 45 - -#ifndef MPG123_EXPORT -/** Defines needed for MS Visual Studio(tm) DLL builds. - * Every public function must be prefixed with MPG123_EXPORT. When building - * the DLL ensure to define BUILD_MPG123_DLL. This makes the function accessible - * for clients and includes it in the import library which is created together - * with the DLL. When consuming the DLL ensure to define LINK_MPG123_DLL which - * imports the functions from the DLL. - */ -#ifdef BUILD_MPG123_DLL -/* The dll exports. */ -#define MPG123_EXPORT __declspec(dllexport) -#else -#ifdef LINK_MPG123_DLL -/* The exe imports. */ -#define MPG123_EXPORT __declspec(dllimport) -#else -/* Nothing on normal/UNIX builds */ -#define MPG123_EXPORT -#endif -#endif -#endif - -/* This is for Visual Studio, so this header works as distributed in the binary downloads */ -#if defined(_MSC_VER) && !defined(MPG123_DEF_SSIZE_T) &&!defined(_SSIZE_T_DEFINED) -#define MPG123_DEF_SSIZE_T -#include -typedef ptrdiff_t ssize_t; -#endif - -#ifndef MPG123_NO_CONFIGURE /* Enable use of this file without configure. */ - - - -/* Simplified large file handling. - I used to have a check here that prevents building for a library with conflicting large file setup - (application that uses 32 bit offsets with library that uses 64 bits). - While that was perfectly fine in an environment where there is one incarnation of the library, - it hurt GNU/Linux and Solaris systems with multilib where the distribution fails to provide the - correct header matching the 32 bit library (where large files need explicit support) or - the 64 bit library (where there is no distinction). - - New approach: When the app defines _FILE_OFFSET_BITS, it wants non-default large file support, - and thus functions with added suffix (mpg123_open_64). - Any mismatch will be caught at link time because of the _FILE_OFFSET_BITS setting used when - building libmpg123. Plus, there's dual mode large file support in mpg123 since 1.12 now. - Link failure is not the expected outcome of any half-sane usage anymore. - - More complication: What about client code defining _LARGEFILE64_SOURCE? It might want direct access to the _64 functions, along with the ones without suffix. Well, that's possible now via defining MPG123_NO_LARGENAME and MPG123_LARGESUFFIX, respectively, for disabling or enforcing the suffix names. -*/ - -/* - Now, the renaming of large file aware functions. - By default, it appends underscore _FILE_OFFSET_BITS (so, mpg123_seek_64 for mpg123_seek), if _FILE_OFFSET_BITS is defined. You can force a different suffix via MPG123_LARGESUFFIX (that must include the underscore), or you can just disable the whole mess by defining MPG123_NO_LARGENAME. -*/ -#if (!defined MPG123_NO_LARGENAME) && ((defined _FILE_OFFSET_BITS) || (defined MPG123_LARGESUFFIX)) - -/* Need some trickery to concatenate the value(s) of the given macro(s). */ -#define MPG123_MACROCAT_REALLY(a, b) a ## b -#define MPG123_MACROCAT(a, b) MPG123_MACROCAT_REALLY(a, b) -#ifndef MPG123_LARGESUFFIX -#define MPG123_LARGESUFFIX MPG123_MACROCAT(_, _FILE_OFFSET_BITS) -#endif -#define MPG123_LARGENAME(func) MPG123_MACROCAT(func, MPG123_LARGESUFFIX) - -#define mpg123_open_fixed MPG123_LARGENAME(mpg123_open_fixed) -#define mpg123_open MPG123_LARGENAME(mpg123_open) -#define mpg123_open_fd MPG123_LARGENAME(mpg123_open_fd) -#define mpg123_open_handle MPG123_LARGENAME(mpg123_open_handle) -#define mpg123_framebyframe_decode MPG123_LARGENAME(mpg123_framebyframe_decode) -#define mpg123_decode_frame MPG123_LARGENAME(mpg123_decode_frame) -#define mpg123_tell MPG123_LARGENAME(mpg123_tell) -#define mpg123_tellframe MPG123_LARGENAME(mpg123_tellframe) -#define mpg123_tell_stream MPG123_LARGENAME(mpg123_tell_stream) -#define mpg123_seek MPG123_LARGENAME(mpg123_seek) -#define mpg123_feedseek MPG123_LARGENAME(mpg123_feedseek) -#define mpg123_seek_frame MPG123_LARGENAME(mpg123_seek_frame) -#define mpg123_timeframe MPG123_LARGENAME(mpg123_timeframe) -#define mpg123_index MPG123_LARGENAME(mpg123_index) -#define mpg123_set_index MPG123_LARGENAME(mpg123_set_index) -#define mpg123_position MPG123_LARGENAME(mpg123_position) -#define mpg123_length MPG123_LARGENAME(mpg123_length) -#define mpg123_framelength MPG123_LARGENAME(mpg123_framelength) -#define mpg123_set_filesize MPG123_LARGENAME(mpg123_set_filesize) -#define mpg123_replace_reader MPG123_LARGENAME(mpg123_replace_reader) -#define mpg123_replace_reader_handle MPG123_LARGENAME(mpg123_replace_reader_handle) -#define mpg123_framepos MPG123_LARGENAME(mpg123_framepos) - -#endif /* largefile hackery */ - -#endif /* MPG123_NO_CONFIGURE */ - -#ifdef __cplusplus -extern "C" { -#endif - -/** \defgroup mpg123_init mpg123 library and handle setup - * - * Functions to initialise and shutdown the mpg123 library and handles. - * The parameters of handles have workable defaults, you only have to tune them when you want to tune something;-) - * Tip: Use a RVA setting... - * - * @{ - */ - -/** Opaque structure for the libmpg123 decoder handle. */ -struct mpg123_handle_struct; - -/** Opaque structure for the libmpg123 decoder handle. - * Most functions take a pointer to a mpg123_handle as first argument and operate on its data in an object-oriented manner. - */ -typedef struct mpg123_handle_struct mpg123_handle; - -/** Function to initialise the mpg123 library. - * This should be called once in a non-parallel context. It is not explicitly - * thread-safe, but repeated/concurrent calls still _should_ be safe as static - * tables are filled with the same values anyway. - * - * \return MPG123_OK if successful, otherwise an error number. - */ -MPG123_EXPORT int mpg123_init(void); - -/** Superfluous Function to close down the mpg123 library. - * This was created with the thought that there sometime will be cleanup code - * to be run after library use. This never materialized. You can forget about - * this function and it is only here for old programs that do call it. - */ -MPG123_EXPORT void mpg123_exit(void); - -/** Create a handle with optional choice of decoder (named by a string, see mpg123_decoders() or mpg123_supported_decoders()). - * and optional retrieval of an error code to feed to mpg123_plain_strerror(). - * Optional means: Any of or both the parameters may be NULL. - * - * \param decoder optional choice of decoder variant (NULL for default) - * \param error optional address to store error codes - * \return Non-NULL pointer to fresh handle when successful. - */ -MPG123_EXPORT mpg123_handle *mpg123_new(const char* decoder, int *error); - -/** Delete handle, mh is either a valid mpg123 handle or NULL. - * \param mh handle - */ -MPG123_EXPORT void mpg123_delete(mpg123_handle *mh); - -/** Free plain memory allocated within libmpg123. - * This is for library users that are not sure to use the same underlying - * memory allocator as libmpg123. It is just a wrapper over free() in - * the underlying C library. - */ -MPG123_EXPORT void mpg123_free(void *ptr); - -/** Enumeration of the parameters types that it is possible to set/get. */ -enum mpg123_parms -{ - MPG123_VERBOSE = 0, /**< set verbosity value for enabling messages to stderr, >= 0 makes sense (integer) */ - MPG123_FLAGS, /**< set all flags, p.ex val = MPG123_GAPLESS|MPG123_MONO_MIX (integer) */ - MPG123_ADD_FLAGS, /**< add some flags (integer) */ - MPG123_FORCE_RATE, /**< when value > 0, force output rate to that value (integer) */ - MPG123_DOWN_SAMPLE, /**< 0=native rate, 1=half rate, 2=quarter rate (integer) */ - MPG123_RVA, /**< one of the RVA choices above (integer) */ - MPG123_DOWNSPEED, /**< play a frame N times (integer) */ - MPG123_UPSPEED, /**< play every Nth frame (integer) */ - MPG123_START_FRAME, /**< start with this frame (skip frames before that, integer) */ - MPG123_DECODE_FRAMES, /**< decode only this number of frames (integer) */ - MPG123_ICY_INTERVAL, /**< Stream contains ICY metadata with this interval (integer). - Make sure to set this _before_ opening a stream.*/ - MPG123_OUTSCALE, /**< the scale for output samples (amplitude - integer or float according to mpg123 output format, normally integer) */ - MPG123_TIMEOUT, /**< timeout for reading from a stream (not supported on win32, integer) */ - MPG123_REMOVE_FLAGS, /**< remove some flags (inverse of MPG123_ADD_FLAGS, integer) */ - MPG123_RESYNC_LIMIT, /**< Try resync on frame parsing for that many bytes or until end of stream (<0 ... integer). This can enlarge the limit for skipping junk on beginning, too (but not reduce it). */ - MPG123_INDEX_SIZE /**< Set the frame index size (if supported). Values <0 mean that the index is allowed to grow dynamically in these steps (in positive direction, of course) -- Use this when you really want a full index with every individual frame. */ - ,MPG123_PREFRAMES /**< Decode/ignore that many frames in advance for layer 3. This is needed to fill bit reservoir after seeking, for example (but also at least one frame in advance is needed to have all "normal" data for layer 3). Give a positive integer value, please.*/ - ,MPG123_FEEDPOOL /**< For feeder mode, keep that many buffers in a pool to avoid frequent malloc/free. The pool is allocated on mpg123_open_feed(). If you change this parameter afterwards, you can trigger growth and shrinkage during decoding. The default value could change any time. If you care about this, then set it. (integer) */ - ,MPG123_FEEDBUFFER /**< Minimal size of one internal feeder buffer, again, the default value is subject to change. (integer) */ - ,MPG123_FREEFORMAT_SIZE /**< Tell the parser a free-format frame size to - * avoid read-ahead to get it. A value of -1 (default) means that the parser - * will determine it. The parameter value is applied during decoder setup - * for a freshly opened stream only. - */ -}; - -/** Flag bits for MPG123_FLAGS, use the usual binary or to combine. */ -enum mpg123_param_flags -{ - MPG123_FORCE_MONO = 0x7 /**< 0111 Force some mono mode: This is a test bitmask for seeing if any mono forcing is active. */ - ,MPG123_MONO_LEFT = 0x1 /**< 0001 Force playback of left channel only. */ - ,MPG123_MONO_RIGHT = 0x2 /**< 0010 Force playback of right channel only. */ - ,MPG123_MONO_MIX = 0x4 /**< 0100 Force playback of mixed mono. */ - ,MPG123_FORCE_STEREO = 0x8 /**< 1000 Force stereo output. */ - ,MPG123_FORCE_8BIT = 0x10 /**< 00010000 Force 8bit formats. */ - ,MPG123_QUIET = 0x20 /**< 00100000 Suppress any printouts (overrules verbose). */ - ,MPG123_GAPLESS = 0x40 /**< 01000000 Enable gapless decoding (default on if libmpg123 has support). */ - ,MPG123_NO_RESYNC = 0x80 /**< 10000000 Disable resync stream after error. */ - ,MPG123_SEEKBUFFER = 0x100 /**< 000100000000 Enable small buffer on non-seekable streams to allow some peek-ahead (for better MPEG sync). */ - ,MPG123_FUZZY = 0x200 /**< 001000000000 Enable fuzzy seeks (guessing byte offsets or using approximate seek points from Xing TOC) */ - ,MPG123_FORCE_FLOAT = 0x400 /**< 010000000000 Force floating point output (32 or 64 bits depends on mpg123 internal precision). */ - ,MPG123_PLAIN_ID3TEXT = 0x800 /**< 100000000000 Do not translate ID3 text data to UTF-8. ID3 strings will contain the raw text data, with the first byte containing the ID3 encoding code. */ - ,MPG123_IGNORE_STREAMLENGTH = 0x1000 /**< 1000000000000 Ignore any stream length information contained in the stream, which can be contained in a 'TLEN' frame of an ID3v2 tag or a Xing tag */ - ,MPG123_SKIP_ID3V2 = 0x2000 /**< 10 0000 0000 0000 Do not parse ID3v2 tags, just skip them. */ - ,MPG123_IGNORE_INFOFRAME = 0x4000 /**< 100 0000 0000 0000 Do not parse the LAME/Xing info frame, treat it as normal MPEG data. */ - ,MPG123_AUTO_RESAMPLE = 0x8000 /**< 1000 0000 0000 0000 Allow automatic internal resampling of any kind (default on if supported). Especially when going lowlevel with replacing output buffer, you might want to unset this flag. Setting MPG123_DOWNSAMPLE or MPG123_FORCE_RATE will override this. */ - ,MPG123_PICTURE = 0x10000 /**< 17th bit: Enable storage of pictures from tags (ID3v2 APIC). */ - ,MPG123_NO_PEEK_END = 0x20000 /**< 18th bit: Do not seek to the end of - * the stream in order to probe - * the stream length and search for the id3v1 field. This also means - * the file size is unknown unless set using mpg123_set_filesize() and - * the stream is assumed as non-seekable unless overridden. - */ - ,MPG123_FORCE_SEEKABLE = 0x40000 /**< 19th bit: Force the stream to be seekable. */ - ,MPG123_STORE_RAW_ID3 = 0x80000 /**< store raw ID3 data (even if skipping) */ - ,MPG123_FORCE_ENDIAN = 0x100000 /**< Enforce endianess of output samples. - * This is not reflected in the format codes. If this flag is set along with - * MPG123_BIG_ENDIAN, MPG123_ENC_SIGNED16 means s16be, without - * MPG123_BIG_ENDIAN, it means s16le. Normal operation without - * MPG123_FORCE_ENDIAN produces output in native byte order. - */ - ,MPG123_BIG_ENDIAN = 0x200000 /**< Choose big endian instead of little. */ - ,MPG123_NO_READAHEAD = 0x400000 /**< Disable read-ahead in parser. If - * you know you provide full frames to the feeder API, this enables - * decoder output from the first one on, instead of having to wait for - * the next frame to confirm that the stream is healthy. It also disables - * free format support unless you provide a frame size using - * MPG123_FREEFORMAT_SIZE. - */ - ,MPG123_FLOAT_FALLBACK = 0x800000 /**< Consider floating point output encoding only after - * trying other (possibly downsampled) rates and encodings first. This is to - * support efficient playback where floating point output is only configured for - * an external resampler, bypassing that resampler when the desired rate can - * be produced directly. This is enabled by default to be closer to older versions - * of libmpg123 which did not enable float automatically at all. If disabled, - * float is considered after the 16 bit default and higher-bit integer encodings - * for any rate. */ - ,MPG123_NO_FRANKENSTEIN = 0x1000000 /**< Disable support for Frankenstein streams - * (different MPEG streams stiched together). Do not accept serious change of MPEG - * header inside a single stream. With this flag, the audio output format cannot - * change during decoding unless you open a new stream. This also stops decoding - * after an announced end of stream (Info header contained a number of frames - * and this number has been reached). This makes your MP3 files behave more like - * ordinary media files with defined structure, rather than stream dumps with - * some sugar. */ -}; - -/** choices for MPG123_RVA */ -enum mpg123_param_rva -{ - MPG123_RVA_OFF = 0 /**< RVA disabled (default). */ - ,MPG123_RVA_MIX = 1 /**< Use mix/track/radio gain. */ - ,MPG123_RVA_ALBUM = 2 /**< Use album/audiophile gain */ - ,MPG123_RVA_MAX = MPG123_RVA_ALBUM /**< The maximum RVA code, may increase in future. */ -}; - -/** Set a specific parameter, for a specific mpg123_handle, using a parameter - * type key chosen from the mpg123_parms enumeration, to the specified value. - * \param mh handle - * \param type parameter choice - * \param value integer value - * \param fvalue floating point value - * \return MPG123_OK on success - */ -MPG123_EXPORT int mpg123_param( mpg123_handle *mh -, enum mpg123_parms type, long value, double fvalue ); - -/** Get a specific parameter, for a specific mpg123_handle. - * See the mpg123_parms enumeration for a list of available parameters. - * \param mh handle - * \param type parameter choice - * \param value integer value return address - * \param fvalue floating point value return address - * \return MPG123_OK on success - */ -MPG123_EXPORT int mpg123_getparam( mpg123_handle *mh -, enum mpg123_parms type, long *value, double *fvalue ); - -/** Feature set available for query with mpg123_feature. */ -enum mpg123_feature_set -{ - MPG123_FEATURE_ABI_UTF8OPEN = 0 /**< mpg123 expects path names to be given in UTF-8 encoding instead of plain native. */ - ,MPG123_FEATURE_OUTPUT_8BIT /**< 8bit output */ - ,MPG123_FEATURE_OUTPUT_16BIT /**< 16bit output */ - ,MPG123_FEATURE_OUTPUT_32BIT /**< 32bit output */ - ,MPG123_FEATURE_INDEX /**< support for building a frame index for accurate seeking */ - ,MPG123_FEATURE_PARSE_ID3V2 /**< id3v2 parsing */ - ,MPG123_FEATURE_DECODE_LAYER1 /**< mpeg layer-1 decoder enabled */ - ,MPG123_FEATURE_DECODE_LAYER2 /**< mpeg layer-2 decoder enabled */ - ,MPG123_FEATURE_DECODE_LAYER3 /**< mpeg layer-3 decoder enabled */ - ,MPG123_FEATURE_DECODE_ACCURATE /**< accurate decoder rounding */ - ,MPG123_FEATURE_DECODE_DOWNSAMPLE /**< downsample (sample omit) */ - ,MPG123_FEATURE_DECODE_NTOM /**< flexible rate decoding */ - ,MPG123_FEATURE_PARSE_ICY /**< ICY support */ - ,MPG123_FEATURE_TIMEOUT_READ /**< Reader with timeout (network). */ - ,MPG123_FEATURE_EQUALIZER /**< tunable equalizer */ - ,MPG123_FEATURE_MOREINFO /**< more info extraction (for frame analyzer) */ - ,MPG123_FEATURE_OUTPUT_FLOAT32 /**< 32 bit float output */ - ,MPG123_FEATURE_OUTPUT_FLOAT64 /**< 64 bit float output (usually never) */ -}; - -/** Query libmpg123 features. - * \param key feature selection - * \return 1 for success, 0 for unimplemented functions - */ -MPG123_EXPORT int mpg123_feature(const enum mpg123_feature_set key); - -/** Query libmpg123 features with better ABI compatibility - * - * This is the same as mpg123_feature(), but this time not using - * the enum as argument. Compilers don't have to agree on the size of - * enums and hence they are not safe in public API. - * - * \param key feature selection - * \return 1 for success, 0 for unimplemented functions - */ -MPG123_EXPORT int mpg123_feature2(int key); - -/* @} */ - - -/** \defgroup mpg123_error mpg123 error handling - * - * Functions to get text version of the error numbers and an enumeration - * of the error codes returned by libmpg123. - * - * Most functions operating on a mpg123_handle simply return MPG123_OK (0) - * on success and MPG123_ERR (-1) on failure, setting the internal error - * variable of the handle to the specific error code. If there was not a valid - * (non-NULL) handle provided to a function operating on one, MPG123_BAD_HANDLE - * may be returned if this can not be confused with a valid positive return - * value. - * Meaning: A function expected to return positive integers on success will - * always indicate error or a special condition by returning a negative one. - * - * Decoding/seek functions may also return message codes MPG123_DONE, - * MPG123_NEW_FORMAT and MPG123_NEED_MORE (all negative, see below on how to - * react). Note that calls to those can be nested, so generally watch out - * for these codes after initial handle setup. - * Especially any function that needs information about the current stream - * to work will try to at least parse the beginning if that did not happen - * yet. - * - * On a function that is supposed to return MPG123_OK on success and - * MPG123_ERR on failure, make sure you check for != MPG123_OK, not - * == MPG123_ERR, as the error code could get more specific in future, - * or there is just a special message from a decoding routine as indicated - * above. - * - * @{ - */ - -/** Enumeration of the message and error codes and returned by libmpg123 functions. */ -enum mpg123_errors -{ - MPG123_DONE=-12, /**< Message: Track ended. Stop decoding. */ - MPG123_NEW_FORMAT=-11, /**< Message: Output format will be different on next call. Note that some libmpg123 versions between 1.4.3 and 1.8.0 insist on you calling mpg123_getformat() after getting this message code. Newer verisons behave like advertised: You have the chance to call mpg123_getformat(), but you can also just continue decoding and get your data. */ - MPG123_NEED_MORE=-10, /**< Message: For feed reader: "Feed me more!" (call mpg123_feed() or mpg123_decode() with some new input data). */ - MPG123_ERR=-1, /**< Generic Error */ - MPG123_OK=0, /**< Success */ - MPG123_BAD_OUTFORMAT, /**< Unable to set up output format! */ - MPG123_BAD_CHANNEL, /**< Invalid channel number specified. */ - MPG123_BAD_RATE, /**< Invalid sample rate specified. */ - MPG123_ERR_16TO8TABLE, /**< Unable to allocate memory for 16 to 8 converter table! */ - MPG123_BAD_PARAM, /**< Bad parameter id! */ - MPG123_BAD_BUFFER, /**< Bad buffer given -- invalid pointer or too small size. */ - MPG123_OUT_OF_MEM, /**< Out of memory -- some malloc() failed. */ - MPG123_NOT_INITIALIZED, /**< You didn't initialize the library! */ - MPG123_BAD_DECODER, /**< Invalid decoder choice. */ - MPG123_BAD_HANDLE, /**< Invalid mpg123 handle. */ - MPG123_NO_BUFFERS, /**< Unable to initialize frame buffers (out of memory?). */ - MPG123_BAD_RVA, /**< Invalid RVA mode. */ - MPG123_NO_GAPLESS, /**< This build doesn't support gapless decoding. */ - MPG123_NO_SPACE, /**< Not enough buffer space. */ - MPG123_BAD_TYPES, /**< Incompatible numeric data types. */ - MPG123_BAD_BAND, /**< Bad equalizer band. */ - MPG123_ERR_NULL, /**< Null pointer given where valid storage address needed. */ - MPG123_ERR_READER, /**< Error reading the stream. */ - MPG123_NO_SEEK_FROM_END,/**< Cannot seek from end (end is not known). */ - MPG123_BAD_WHENCE, /**< Invalid 'whence' for seek function.*/ - MPG123_NO_TIMEOUT, /**< Build does not support stream timeouts. */ - MPG123_BAD_FILE, /**< File access error. */ - MPG123_NO_SEEK, /**< Seek not supported by stream. */ - MPG123_NO_READER, /**< No stream opened. */ - MPG123_BAD_PARS, /**< Bad parameter handle. */ - MPG123_BAD_INDEX_PAR, /**< Bad parameters to mpg123_index() and mpg123_set_index() */ - MPG123_OUT_OF_SYNC, /**< Lost track in bytestream and did not try to resync. */ - MPG123_RESYNC_FAIL, /**< Resync failed to find valid MPEG data. */ - MPG123_NO_8BIT, /**< No 8bit encoding possible. */ - MPG123_BAD_ALIGN, /**< Stack aligmnent error */ - MPG123_NULL_BUFFER, /**< NULL input buffer with non-zero size... */ - MPG123_NO_RELSEEK, /**< Relative seek not possible (screwed up file offset) */ - MPG123_NULL_POINTER, /**< You gave a null pointer somewhere where you shouldn't have. */ - MPG123_BAD_KEY, /**< Bad key value given. */ - MPG123_NO_INDEX, /**< No frame index in this build. */ - MPG123_INDEX_FAIL, /**< Something with frame index went wrong. */ - MPG123_BAD_DECODER_SETUP, /**< Something prevents a proper decoder setup */ - MPG123_MISSING_FEATURE /**< This feature has not been built into libmpg123. */ - ,MPG123_BAD_VALUE /**< A bad value has been given, somewhere. */ - ,MPG123_LSEEK_FAILED /**< Low-level seek failed. */ - ,MPG123_BAD_CUSTOM_IO /**< Custom I/O not prepared. */ - ,MPG123_LFS_OVERFLOW /**< Offset value overflow during translation of large file API calls -- your client program cannot handle that large file. */ - ,MPG123_INT_OVERFLOW /**< Some integer overflow. */ -}; - -/** Look up error strings given integer code. - * \param errcode integer error code - * \return string describing what that error error code means - */ -MPG123_EXPORT const char* mpg123_plain_strerror(int errcode); - -/** Give string describing what error has occured in the context of handle mh. - * When a function operating on an mpg123 handle returns MPG123_ERR, you should check for the actual reason via - * char *errmsg = mpg123_strerror(mh) - * This function will catch mh == NULL and return the message for MPG123_BAD_HANDLE. - * \param mh handle - * \return error message - */ -MPG123_EXPORT const char* mpg123_strerror(mpg123_handle *mh); - -/** Return the plain errcode intead of a string. - * \param mh handle - * \return error code recorded in handle or MPG123_BAD_HANDLE - */ -MPG123_EXPORT int mpg123_errcode(mpg123_handle *mh); - -/*@}*/ - - -/** \defgroup mpg123_decoder mpg123 decoder selection - * - * Functions to list and select the available decoders. - * Perhaps the most prominent feature of mpg123: You have several (optimized) decoders to choose from (on x86 and PPC (MacOS) systems, that is). - * - * @{ - */ - -/** Get available decoder list. - * \return NULL-terminated array of generally available decoder names (plain 8bit ASCII) - */ -MPG123_EXPORT const char **mpg123_decoders(void); - -/** Get supported decoder list. - * \return NULL-terminated array of the decoders supported by the CPU (plain 8bit ASCII) - */ -MPG123_EXPORT const char **mpg123_supported_decoders(void); - -/** Set the active decoder. - * \param mh handle - * \param decoder_name name of decoder - * \return MPG123_OK on success - */ -MPG123_EXPORT int mpg123_decoder(mpg123_handle *mh, const char* decoder_name); - -/** Get the currently active decoder name. - * The active decoder engine can vary depening on output constraints, - * mostly non-resampling, integer output is accelerated via 3DNow & Co. but for - * other modes a fallback engine kicks in. - * Note that this can return a decoder that is only active in the hidden and not - * available as decoder choice from the outside. - * \param mh handle - * \return The decoder name or NULL on error. - */ -MPG123_EXPORT const char* mpg123_current_decoder(mpg123_handle *mh); - -/*@}*/ - - -/** \defgroup mpg123_output mpg123 output audio format - * - * Functions to get and select the format of the decoded audio. - * - * Before you dive in, please be warned that you might get confused by this. - * This seems to happen a lot, therefore I am trying to explain in advance. - * If you do feel confused and just want to decode your normal MPEG audio files that - * don't alter properties in the middle, just use mpg123_open_fixed() with a fixed encoding - * and channel count and forget about a matrix of audio formats. If you want to get funky, - * read ahead ... - * - * The mpg123 library decides what output format to use when encountering the first frame in a stream, or actually any frame that is still valid but differs from the frames before in the prompted output format. At such a deciding point, an internal table of allowed encodings, sampling rates and channel setups is consulted. According to this table, an output format is chosen and the decoding engine set up accordingly (including optimized routines for different output formats). This might seem unusual but it just follows from the non-existence of "MPEG audio files" with defined overall properties. There are streams, streams are concatenations of (semi) independent frames. We store streams on disk and call them "MPEG audio files", but that does not change their nature as the decoder is concerned (the LAME/Xing header for gapless decoding makes things interesting again). - * - * To get to the point: What you do with mpg123_format() and friends is to fill the internal table of allowed formats before it is used. That includes removing support for some formats or adding your forced sample rate (see MPG123_FORCE_RATE) that will be used with the crude internal resampler. Also keep in mind that the sample encoding is just a question of choice -- the MPEG frames do only indicate their native sampling rate and channel count. If you want to decode to integer or float samples, 8 or 16 bit ... that is your decision. In a "clean" world, libmpg123 would always decode to 32 bit float and let you handle any sample conversion. But there are optimized routines that work faster by directly decoding to the desired encoding / accuracy. We prefer efficiency over conceptual tidyness. - * - * People often start out thinking that mpg123_format() should change the actual decoding format on the fly. That is wrong. It only has effect on the next natural change of output format, when libmpg123 will consult its format table again. To make life easier, you might want to call mpg123_format_none() before any thing else and then just allow one desired encoding and a limited set of sample rates / channel choices that you actually intend to deal with. You can force libmpg123 to decode everything to 44100 KHz, stereo, 16 bit integer ... it will duplicate mono channels and even do resampling if needed (unless that feature is disabled in the build, same with some encodings). But I have to stress that the resampling of libmpg123 is very crude and doesn't even contain any kind of "proper" interpolation. - * - * In any case, watch out for MPG123_NEW_FORMAT as return message from decoding routines and call mpg123_getformat() to get the currently active output format. - * - * @{ - */ - -/** They can be combined into one number (3) to indicate mono and stereo... */ -enum mpg123_channelcount -{ - MPG123_MONO = 1 /**< mono */ - ,MPG123_STEREO = 2 /**< stereo */ -}; - -/** An array of supported standard sample rates - * These are possible native sample rates of MPEG audio files. - * You can still force mpg123 to resample to a different one, but by - * default you will only get audio in one of these samplings. - * This list is in ascending order. - * \param list Store a pointer to the sample rates array there. - * \param number Store the number of sample rates there. */ -MPG123_EXPORT void mpg123_rates(const long **list, size_t *number); - -/** An array of supported audio encodings. - * An audio encoding is one of the fully qualified members of mpg123_enc_enum (MPG123_ENC_SIGNED_16, not MPG123_SIGNED). - * \param list Store a pointer to the encodings array there. - * \param number Store the number of encodings there. */ -MPG123_EXPORT void mpg123_encodings(const int **list, size_t *number); - -/** Return the size (in bytes) of one mono sample of the named encoding. - * \param encoding The encoding value to analyze. - * \return positive size of encoding in bytes, 0 on invalid encoding. */ -MPG123_EXPORT int mpg123_encsize(int encoding); - -/** Configure a mpg123 handle to accept no output format at all, - * use before specifying supported formats with mpg123_format - * \param mh handle - * \return MPG123_OK on success - */ -MPG123_EXPORT int mpg123_format_none(mpg123_handle *mh); - -/** Configure mpg123 handle to accept all formats - * (also any custom rate you may set) -- this is default. - * \param mh handle - * \return MPG123_OK on success - */ -MPG123_EXPORT int mpg123_format_all(mpg123_handle *mh); - -/** Set the audio format support of a mpg123_handle in detail: - * \param mh handle - * \param rate The sample rate value (in Hertz). - * \param channels A combination of MPG123_STEREO and MPG123_MONO. - * \param encodings A combination of accepted encodings for rate and channels, p.ex MPG123_ENC_SIGNED16 | MPG123_ENC_ULAW_8 (or 0 for no support). Please note that some encodings may not be supported in the library build and thus will be ignored here. - * \return MPG123_OK on success, MPG123_ERR if there was an error. */ -MPG123_EXPORT int mpg123_format( mpg123_handle *mh -, long rate, int channels, int encodings ); - -/** Set the audio format support of a mpg123_handle in detail: - * \param mh handle - * \param rate The sample rate value (in Hertz). Special value 0 means - * all rates (the reason for this variant of mpg123_format()). - * \param channels A combination of MPG123_STEREO and MPG123_MONO. - * \param encodings A combination of accepted encodings for rate and channels, - * p.ex MPG123_ENC_SIGNED16 | MPG123_ENC_ULAW_8 (or 0 for no support). - * Please note that some encodings may not be supported in the library build - * and thus will be ignored here. - * \return MPG123_OK on success, MPG123_ERR if there was an error. */ -MPG123_EXPORT int mpg123_format2( mpg123_handle *mh -, long rate, int channels, int encodings ); - -/** Check to see if a specific format at a specific rate is supported - * by mpg123_handle. - * \param mh handle - * \param rate sampling rate - * \param encoding encoding - * \return 0 for no support (that includes invalid parameters), MPG123_STEREO, - * MPG123_MONO or MPG123_STEREO|MPG123_MONO. */ -MPG123_EXPORT int mpg123_format_support( mpg123_handle *mh -, long rate, int encoding ); - -/** Get the current output format written to the addresses given. - * If the stream is freshly loaded, this will try to parse enough - * of it to give you the format to come. This clears the flag that - * would otherwise make the first decoding call return - * MPG123_NEW_FORMAT. - * \param mh handle - * \param rate sampling rate return address - * \param channels channel count return address - * \param encoding encoding return address - * \return MPG123_OK on success - */ -MPG123_EXPORT int mpg123_getformat( mpg123_handle *mh -, long *rate, int *channels, int *encoding ); - -/** Get the current output format written to the addresses given. - * This differs from plain mpg123_getformat() in that you can choose - * _not_ to clear the flag that would trigger the next decoding call - * to return MPG123_NEW_FORMAT in case of a new format arriving. - * \param mh handle - * \param rate sampling rate return address - * \param channels channel count return address - * \param encoding encoding return address - * \param clear_flag if true, clear internal format flag - * \return MPG123_OK on success - */ -MPG123_EXPORT int mpg123_getformat2( mpg123_handle *mh -, long *rate, int *channels, int *encoding, int clear_flag ); - -/*@}*/ - - -/** \defgroup mpg123_input mpg123 file input and decoding - * - * Functions for input bitstream and decoding operations. - * Decoding/seek functions may also return message codes MPG123_DONE, MPG123_NEW_FORMAT and MPG123_NEED_MORE (please read up on these on how to react!). - * @{ - */ - -/** Open a simple MPEG file with fixed properties. - * - * This function shall simplify the common use case of a plain MPEG - * file on disk that you want to decode, with one fixed sample - * rate and channel count, and usually a length defined by a Lame/Info/Xing - * tag. It will: - * - * - set the MPG123_NO_FRANKENSTEIN flag - * - set up format support according to given parameters, - * - open the file, - * - query audio format, - * - fix the audio format support table to ensure the format stays the same, - * - call mpg123_scan() if there is no header frame to tell the track length. - * - * From that on, you can call mpg123_getformat() for querying the sample - * rate (and channel count in case you allowed both) and mpg123_length() - * to get a pretty safe number for the duration. - * Only the sample rate is left open as that indeed is a fixed property of - * MPEG files. You could set MPG123_FORCE_RATE beforehand, but that may trigger - * low-quality resampling in the decoder, only do so if in dire need. - * The library will convert mono files to stereo for you, and vice versa. - * If any constraint cannot be satisified (most likely because of a non-default - * build of libmpg123), you get MPG123_ERR returned and can query the detailed - * cause from the handle. Only on MPG123_OK there will an open file that you - * then close using mpg123_close(), or implicitly on mpg123_delete() or the next - * call to open another file. - * - * So, for your usual CD rip collection, you could use - * - * mpg123_open_fixed(mh, path, MPG123_STEREO, MPG123_ENC_SIGNED_16) - * - * and be happy calling mpg123_getformat() to verify 44100 Hz rate, then just - * playing away with mpg123_read(). The occasional mono file, or MP2 file, - * will also be decoded without you really noticing. Just the speed could be - * wrong if you do not care about sample rate at all. - * \param mh handle - * \param path filesystem path - * \param channels allowed channel count, either 1 (MPG123_MONO) or - * 2 (MPG123_STEREO), or bitwise or of them, but then you're halfway back to - * calling mpg123_format() again;-) - * \param encoding a definite encoding from enum mpg123_enc_enum - * or a bitmask like for mpg123_format(), defeating the purpose somewhat - */ -MPG123_EXPORT int mpg123_open_fixed(mpg123_handle *mh, const char *path -, int channels, int encoding); - -/** Open and prepare to decode the specified file by filesystem path. - * This does not open HTTP urls; libmpg123 contains no networking code. - * If you want to decode internet streams, use mpg123_open_fd() or mpg123_open_feed(). - * \param mh handle - * \param path filesystem path - * \return MPG123_OK on success - */ -MPG123_EXPORT int mpg123_open(mpg123_handle *mh, const char *path); - -/** Use an already opened file descriptor as the bitstream input - * mpg123_close() will _not_ close the file descriptor. - * \param mh handle - * \param fd file descriptor - * \return MPG123_OK on success - */ -MPG123_EXPORT int mpg123_open_fd(mpg123_handle *mh, int fd); - -/** Use an opaque handle as bitstream input. This works only with the - * replaced I/O from mpg123_replace_reader_handle()! - * mpg123_close() will call the cleanup callback for your handle (if you gave one). - * \param mh handle - * \param iohandle your handle - * \return MPG123_OK on success - */ -MPG123_EXPORT int mpg123_open_handle(mpg123_handle *mh, void *iohandle); - -/** Open a new bitstream and prepare for direct feeding - * This works together with mpg123_decode(); you are responsible for reading and feeding the input bitstream. - * Also, you are expected to handle ICY metadata extraction yourself. This - * input method does not handle MPG123_ICY_INTERVAL. It does parse ID3 frames, though. - * \param mh handle - * \return MPG123_OK on success - */ -MPG123_EXPORT int mpg123_open_feed(mpg123_handle *mh); - -/** Closes the source, if libmpg123 opened it. - * \param mh handle - * \return MPG123_OK on success - */ -MPG123_EXPORT int mpg123_close(mpg123_handle *mh); - -/** Read from stream and decode up to outmemsize bytes. - * - * Note: The type of outmemory changed to a void pointer in mpg123 1.26.0 - * (API version 45). - * - * \param mh handle - * \param outmemory address of output buffer to write to - * \param outmemsize maximum number of bytes to write - * \param done address to store the number of actually decoded bytes to - * \return MPG123_OK or error/message code - */ -MPG123_EXPORT int mpg123_read(mpg123_handle *mh -, void *outmemory, size_t outmemsize, size_t *done ); - -/** Feed data for a stream that has been opened with mpg123_open_feed(). - * It's give and take: You provide the bytestream, mpg123 gives you the decoded samples. - * \param mh handle - * \param in input buffer - * \param size number of input bytes - * \return MPG123_OK or error/message code. - */ -MPG123_EXPORT int mpg123_feed( mpg123_handle *mh -, const unsigned char *in, size_t size ); - -/** Decode MPEG Audio from inmemory to outmemory. - * This is very close to a drop-in replacement for old mpglib. - * When you give zero-sized output buffer the input will be parsed until - * decoded data is available. This enables you to get MPG123_NEW_FORMAT (and query it) - * without taking decoded data. - * Think of this function being the union of mpg123_read() and mpg123_feed() (which it actually is, sort of;-). - * You can actually always decide if you want those specialized functions in separate steps or one call this one here. - * - * Note: The type of outmemory changed to a void pointer in mpg123 1.26.0 - * (API version 45). - * - * \param mh handle - * \param inmemory input buffer - * \param inmemsize number of input bytes - * \param outmemory output buffer - * \param outmemsize maximum number of output bytes - * \param done address to store the number of actually decoded bytes to - * \return error/message code (watch out especially for MPG123_NEED_MORE) - */ -MPG123_EXPORT int mpg123_decode( mpg123_handle *mh -, const unsigned char *inmemory, size_t inmemsize -, void *outmemory, size_t outmemsize, size_t *done ); - -/** Decode next MPEG frame to internal buffer - * or read a frame and return after setting a new format. - * \param mh handle - * \param num current frame offset gets stored there - * \param audio This pointer is set to the internal buffer to read the decoded audio from. - * \param bytes number of output bytes ready in the buffer - * \return MPG123_OK or error/message code - */ -MPG123_EXPORT int mpg123_decode_frame( mpg123_handle *mh -, off_t *num, unsigned char **audio, size_t *bytes ); - -/** Decode current MPEG frame to internal buffer. - * Warning: This is experimental API that might change in future releases! - * Please watch mpg123 development closely when using it. - * \param mh handle - * \param num last frame offset gets stored there - * \param audio this pointer is set to the internal buffer to read the decoded audio from. - * \param bytes number of output bytes ready in the buffer - * \return MPG123_OK or error/message code - */ -MPG123_EXPORT int mpg123_framebyframe_decode( mpg123_handle *mh -, off_t *num, unsigned char **audio, size_t *bytes ); - -/** Find, read and parse the next mp3 frame - * Warning: This is experimental API that might change in future releases! - * Please watch mpg123 development closely when using it. - * \param mh handle - * \return MPG123_OK or error/message code - */ -MPG123_EXPORT int mpg123_framebyframe_next(mpg123_handle *mh); - -/** Get access to the raw input data for the last parsed frame. - * This gives you a direct look (and write access) to the frame body data. - * Together with the raw header, you can reconstruct the whole raw MPEG stream without junk and meta data, or play games by actually modifying the frame body data before decoding this frame (mpg123_framebyframe_decode()). - * A more sane use would be to use this for CRC checking (see mpg123_info() and MPG123_CRC), the first two bytes of the body make up the CRC16 checksum, if present. - * You can provide NULL for a parameter pointer when you are not interested in the value. - * - * \param mh handle - * \param header the 4-byte MPEG header - * \param bodydata pointer to the frame body stored in the handle (without the header) - * \param bodybytes size of frame body in bytes (without the header) - * \return MPG123_OK if there was a yet un-decoded frame to get the - * data from, MPG123_BAD_HANDLE or MPG123_ERR otherwise (without further - * explanation, the error state of the mpg123_handle is not modified by - * this function). - */ -MPG123_EXPORT int mpg123_framedata( mpg123_handle *mh -, unsigned long *header, unsigned char **bodydata, size_t *bodybytes ); - -/** Get the input position (byte offset in stream) of the last parsed frame. - * This can be used for external seek index building, for example. - * It just returns the internally stored offset, regardless of validity -- - * you ensure that a valid frame has been parsed before! - * \param mh handle - * \return byte offset in stream - */ -MPG123_EXPORT off_t mpg123_framepos(mpg123_handle *mh); - -/*@}*/ - - -/** \defgroup mpg123_seek mpg123 position and seeking - * - * Functions querying and manipulating position in the decoded audio bitstream. - * The position is measured in decoded audio samples or MPEG frame offset for - * the specific functions. The term sample refers to a group of samples for - * multiple channels, normally dubbed PCM frames. The latter term is - * avoided here because frame means something different in the context of MPEG - * audio. Since all samples of a PCM frame occur at the same time, there is only - * very limited ambiguity when talking about playback offset, as counting each - * channel sample individually does not make sense. - * - * If gapless code is in effect, the positions are adjusted to compensate the - * skipped padding/delay - meaning, you should not care about that at all and - * just use the position defined for the samples you get out of the decoder;-) - * The general usage is modelled after stdlib's ftell() and fseek(). - * Especially, the whence parameter for the seek functions has the same meaning - * as the one for fseek() and needs the same constants from stdlib.h: - * - * - SEEK_SET: set position to (or near to) specified offset - * - SEEK_CUR: change position by offset from now - * - SEEK_END: set position to offset from end - * - * Note that sample-accurate seek only works when gapless support has been - * enabled at compile time; seek is frame-accurate otherwise. - * Also, really sample-accurate seeking (meaning that you get the identical - * sample value after seeking compared to plain decoding up to the position) - * is only guaranteed when you do not mess with the position code by using - * #MPG123_UPSPEED, #MPG123_DOWNSPEED or #MPG123_START_FRAME. The first two mainly - * should cause trouble with NtoM resampling, but in any case with these options - * in effect, you have to keep in mind that the sample offset is not the same - * as counting the samples you get from decoding since mpg123 counts the skipped - * samples, too (or the samples played twice only once)! - * - * Short: When you care about the sample position, don't mess with those - * parameters;-) - * - * Streams may be openend in ways that do not support seeking. Also, consider - * the effect of #MPG123_FUZZY. - * - * @{ - */ - -/** Returns the current position in samples. - * On the next successful read, you'd get audio data with that offset. - * \param mh handle - * \return sample (PCM frame) offset or MPG123_ERR (null handle) - */ -MPG123_EXPORT off_t mpg123_tell(mpg123_handle *mh); - -/** Returns the frame number that the next read will give you data from. - * \param mh handle - * \return frame offset or MPG123_ERR (null handle) - */ -MPG123_EXPORT off_t mpg123_tellframe(mpg123_handle *mh); - -/** Returns the current byte offset in the input stream. - * \param mh handle - * \return byte offset or MPG123_ERR (null handle) - */ -MPG123_EXPORT off_t mpg123_tell_stream(mpg123_handle *mh); - -/** Seek to a desired sample offset. - * Usage is modelled afer the standard lseek(). - * \param mh handle - * \param sampleoff offset in samples (PCM frames) - * \param whence one of SEEK_SET, SEEK_CUR or SEEK_END - * \return The resulting offset >= 0 or error/message code - */ -MPG123_EXPORT off_t mpg123_seek( mpg123_handle *mh -, off_t sampleoff, int whence ); - -/** Seek to a desired sample offset in data feeding mode. - * This just prepares things to be right only if you ensure that the next chunk - * of input data will be from input_offset byte position. - * \param mh handle - * \param sampleoff offset in samples (PCM frames) - * \param whence one of SEEK_SET, SEEK_CUR or SEEK_END - * \param input_offset The position it expects to be at the - * next time data is fed to mpg123_decode(). - * \return The resulting offset >= 0 or error/message code - */ -MPG123_EXPORT off_t mpg123_feedseek( mpg123_handle *mh -, off_t sampleoff, int whence, off_t *input_offset ); - -/** Seek to a desired MPEG frame offset. - * Usage is modelled afer the standard lseek(). - * \param mh handle - * \param frameoff offset in MPEG frames - * \param whence one of SEEK_SET, SEEK_CUR or SEEK_END - * \return The resulting offset >= 0 or error/message code */ -MPG123_EXPORT off_t mpg123_seek_frame( mpg123_handle *mh -, off_t frameoff, int whence ); - -/** Return a MPEG frame offset corresponding to an offset in seconds. - * This assumes that the samples per frame do not change in the file/stream, which is a good assumption for any sane file/stream only. - * \return frame offset >= 0 or error/message code */ -MPG123_EXPORT off_t mpg123_timeframe(mpg123_handle *mh, double sec); - -/** Give access to the frame index table that is managed for seeking. - * You are asked not to modify the values... Use mpg123_set_index to set the - * seek index - * \param mh handle - * \param offsets pointer to the index array - * \param step one index byte offset advances this many MPEG frames - * \param fill number of recorded index offsets; size of the array - * \return MPG123_OK on success - */ -MPG123_EXPORT int mpg123_index( mpg123_handle *mh -, off_t **offsets, off_t *step, size_t *fill ); - -/** Set the frame index table - * Setting offsets to NULL and fill > 0 will allocate fill entries. Setting offsets - * to NULL and fill to 0 will clear the index and free the allocated memory used by the index. - * \param mh handle - * \param offsets pointer to the index array - * \param step one index byte offset advances this many MPEG frames - * \param fill number of recorded index offsets; size of the array - * \return MPG123_OK on success - */ -MPG123_EXPORT int mpg123_set_index( mpg123_handle *mh -, off_t *offsets, off_t step, size_t fill ); - -/** An old crutch to keep old mpg123 binaries happy. - * WARNING: This function is there only to avoid runtime linking errors with - * standalone mpg123 before version 1.23.0 (if you strangely update the - * library but not the end-user program) and actually is broken - * for various cases (p.ex. 24 bit output). Do never use. It might eventually - * be purged from the library. - */ -MPG123_EXPORT int mpg123_position( mpg123_handle *mh, off_t frame_offset, off_t buffered_bytes, off_t *current_frame, off_t *frames_left, double *current_seconds, double *seconds_left); - -/*@}*/ - - -/** \defgroup mpg123_voleq mpg123 volume and equalizer - * - * @{ - */ - -/** another channel enumeration, for left/right choice */ -enum mpg123_channels -{ - MPG123_LEFT=0x1 /**< The Left Channel. */ - ,MPG123_RIGHT=0x2 /**< The Right Channel. */ - ,MPG123_LR=0x3 /**< Both left and right channel; same as MPG123_LEFT|MPG123_RIGHT */ -}; - -/** Set the 32 Band Audio Equalizer settings. - * \param mh handle - * \param channel Can be MPG123_LEFT, MPG123_RIGHT or MPG123_LEFT|MPG123_RIGHT for both. - * \param band The equaliser band to change (from 0 to 31) - * \param val The (linear) adjustment factor. - * \return MPG123_OK on success - */ -MPG123_EXPORT int mpg123_eq( mpg123_handle *mh -, enum mpg123_channels channel, int band, double val ); - -/** Get the 32 Band Audio Equalizer settings. - * \param mh handle - * \param channel Can be MPG123_LEFT, MPG123_RIGHT or MPG123_LEFT|MPG123_RIGHT for (arithmetic mean of) both. - * \param band The equaliser band to change (from 0 to 31) - * \return The (linear) adjustment factor (zero for pad parameters) */ -MPG123_EXPORT double mpg123_geteq(mpg123_handle *mh - , enum mpg123_channels channel, int band); - -/** Reset the 32 Band Audio Equalizer settings to flat - * \param mh handle - * \return MPG123_OK on success - */ -MPG123_EXPORT int mpg123_reset_eq(mpg123_handle *mh); - -/** Set the absolute output volume including the RVA setting, - * vol<0 just applies (a possibly changed) RVA setting. - * \param mh handle - * \param vol volume value (linear factor) - * \return MPG123_OK on success - */ -MPG123_EXPORT int mpg123_volume(mpg123_handle *mh, double vol); - -/** Adjust output volume including the RVA setting by chosen amount - * \param mh handle - * \param change volume value (linear factor increment) - * \return MPG123_OK on success - */ -MPG123_EXPORT int mpg123_volume_change(mpg123_handle *mh, double change); - -/** Return current volume setting, the actual value due to RVA, and the RVA - * adjustment itself. It's all as double float value to abstract the sample - * format. The volume values are linear factors / amplitudes (not percent) - * and the RVA value is in decibels. - * \param mh handle - * \param base return address for base volume (linear factor) - * \param really return address for actual volume (linear factor) - * \param rva_db return address for RVA value (decibels) - * \return MPG123_OK on success - */ -MPG123_EXPORT int mpg123_getvolume(mpg123_handle *mh, double *base, double *really, double *rva_db); - -/* TODO: Set some preamp in addition / to replace internal RVA handling? */ - -/*@}*/ - - -/** \defgroup mpg123_status mpg123 status and information - * - * @{ - */ - -/** Enumeration of the mode types of Variable Bitrate */ -enum mpg123_vbr { - MPG123_CBR=0, /**< Constant Bitrate Mode (default) */ - MPG123_VBR, /**< Variable Bitrate Mode */ - MPG123_ABR /**< Average Bitrate Mode */ -}; - -/** Enumeration of the MPEG Versions */ -enum mpg123_version { - MPG123_1_0=0, /**< MPEG Version 1.0 */ - MPG123_2_0, /**< MPEG Version 2.0 */ - MPG123_2_5 /**< MPEG Version 2.5 */ -}; - - -/** Enumeration of the MPEG Audio mode. - * Only the mono mode has 1 channel, the others have 2 channels. */ -enum mpg123_mode { - MPG123_M_STEREO=0, /**< Standard Stereo. */ - MPG123_M_JOINT, /**< Joint Stereo. */ - MPG123_M_DUAL, /**< Dual Channel. */ - MPG123_M_MONO /**< Single Channel. */ -}; - - -/** Enumeration of the MPEG Audio flag bits */ -enum mpg123_flags { - MPG123_CRC=0x1, /**< The bitstream is error protected using 16-bit CRC. */ - MPG123_COPYRIGHT=0x2, /**< The bitstream is copyrighted. */ - MPG123_PRIVATE=0x4, /**< The private bit has been set. */ - MPG123_ORIGINAL=0x8 /**< The bitstream is an original, not a copy. */ -}; - -/** Data structure for storing information about a frame of MPEG Audio */ -struct mpg123_frameinfo -{ - enum mpg123_version version; /**< The MPEG version (1.0/2.0/2.5). */ - int layer; /**< The MPEG Audio Layer (MP1/MP2/MP3). */ - long rate; /**< The sampling rate in Hz. */ - enum mpg123_mode mode; /**< The audio mode (Mono, Stereo, Joint-stero, Dual Channel). */ - int mode_ext; /**< The mode extension bit flag. */ - int framesize; /**< The size of the frame (in bytes, including header). */ - enum mpg123_flags flags; /**< MPEG Audio flag bits. Just now I realize that it should be declared as int, not enum. It's a bitwise combination of the enum values. */ - int emphasis; /**< The emphasis type. */ - int bitrate; /**< Bitrate of the frame (kbps). */ - int abr_rate; /**< The target average bitrate. */ - enum mpg123_vbr vbr; /**< The VBR mode. */ -}; - -/** Data structure for even more detailed information out of the decoder, - * for MPEG layer III only. - * This was added to support the frame analyzer by the Lame project and - * just follows what was used there before. You know what the fields mean - * if you want use this structure. */ -struct mpg123_moreinfo -{ - double xr[2][2][576]; - double sfb[2][2][22]; /* [2][2][SBMAX_l] */ - double sfb_s[2][2][3*13]; /* [2][2][3*SBMAX_s] */ - int qss[2][2]; - int big_values[2][2]; - int sub_gain[2][2][3]; - int scalefac_scale[2][2]; - int preflag[2][2]; - int blocktype[2][2]; - int mixed[2][2]; - int mainbits[2][2]; - int sfbits[2][2]; - int scfsi[2]; - int maindata; - int padding; -}; - -/** Get frame information about the MPEG audio bitstream and store it in a mpg123_frameinfo structure. - * \param mh handle - * \param mi address of existing frameinfo structure to write to - * \return MPG123_OK on success - */ -MPG123_EXPORT int mpg123_info(mpg123_handle *mh, struct mpg123_frameinfo *mi); - -/** Trigger collection of additional decoder information while decoding. - * \param mh handle - * \param mi pointer to data storage (NULL to disable collection) - * \return MPG123_OK if the collection was enabled/disabled as desired, MPG123_ERR - * otherwise (e.g. if the feature is disabled) - */ -MPG123_EXPORT int mpg123_set_moreinfo( mpg123_handle *mh -, struct mpg123_moreinfo *mi ); - -/** Get the safe output buffer size for all cases - * (when you want to replace the internal buffer) - * \return safe buffer size - */ -MPG123_EXPORT size_t mpg123_safe_buffer(void); - -/** Make a full parsing scan of each frame in the file. ID3 tags are found. An - * accurate length value is stored. Seek index will be filled. A seek back to - * current position is performed. At all, this function refuses work when - * stream is not seekable. - * \param mh handle - * \return MPG123_OK on success - */ -MPG123_EXPORT int mpg123_scan(mpg123_handle *mh); - -/** Return, if possible, the full (expected) length of current track in - * MPEG frames. - * \param mh handle - * \return length >= 0 or MPG123_ERR if there is no length guess possible. - */ -MPG123_EXPORT off_t mpg123_framelength(mpg123_handle *mh); - -/** Return, if possible, the full (expected) length of current - * track in samples (PCM frames). - * - * This relies either on an Info frame at the beginning or a previous - * call to mpg123_scan() to get the real number of MPEG frames in a - * file. It will guess based on file size if neither Info frame nor - * scan data are present. In any case, there is no guarantee that the - * decoder will not give you more data, for example in case the open - * file gets appended to during decoding. - * \param mh handle - * \return length >= 0 or MPG123_ERR if there is no length guess possible. - */ -MPG123_EXPORT off_t mpg123_length(mpg123_handle *mh); - -/** Override the value for file size in bytes. - * Useful for getting sensible track length values in feed mode or for HTTP streams. - * \param mh handle - * \param size file size in bytes - * \return MPG123_OK on success - */ -MPG123_EXPORT int mpg123_set_filesize(mpg123_handle *mh, off_t size); - -/** Get MPEG frame duration in seconds. - * \param mh handle - * \return frame duration in seconds, <0 on error - */ -MPG123_EXPORT double mpg123_tpf(mpg123_handle *mh); - -/** Get MPEG frame duration in samples. - * \param mh handle - * \return samples per frame for the most recently parsed frame; <0 on errors - */ -MPG123_EXPORT int mpg123_spf(mpg123_handle *mh); - -/** Get and reset the clip count. - * \param mh handle - * \return count of clipped samples - */ -MPG123_EXPORT long mpg123_clip(mpg123_handle *mh); - - -/** The key values for state information from mpg123_getstate(). */ -enum mpg123_state -{ - MPG123_ACCURATE = 1 /**< Query if positons are currently accurate (integer value, 0 if false, 1 if true). */ - ,MPG123_BUFFERFILL /**< Get fill of internal (feed) input buffer as integer byte count returned as long and as double. An error is returned on integer overflow while converting to (signed) long, but the returned floating point value shold still be fine. */ - ,MPG123_FRANKENSTEIN /**< Stream consists of carelessly stitched together files. Seeking may yield unexpected results (also with MPG123_ACCURATE, it may be confused). */ - ,MPG123_FRESH_DECODER /**< Decoder structure has been updated, possibly indicating changed stream (integer value, 0 if false, 1 if true). Flag is cleared after retrieval. */ - ,MPG123_ENC_DELAY /** Encoder delay read from Info tag (layer III, -1 if unknown). */ - ,MPG123_ENC_PADDING /** Encoder padding read from Info tag (layer III, -1 if unknown). */ - ,MPG123_DEC_DELAY /** Decoder delay (for layer III only, -1 otherwise). */ -}; - -/** Get various current decoder/stream state information. - * \param mh handle - * \param key the key to identify the information to give. - * \param val the address to return (long) integer values to - * \param fval the address to return floating point values to - * \return MPG123_OK on success - */ -MPG123_EXPORT int mpg123_getstate( mpg123_handle *mh -, enum mpg123_state key, long *val, double *fval ); - -/*@}*/ - - -/** \defgroup mpg123_metadata mpg123 metadata handling - * - * Functions to retrieve the metadata from MPEG Audio files and streams. - * Also includes string handling functions. - * - * @{ - */ - -/** Data structure for storing strings in a safer way than a standard C-String. - * Can also hold a number of null-terminated strings. */ -typedef struct -{ - char* p; /**< pointer to the string data */ - size_t size; /**< raw number of bytes allocated */ - size_t fill; /**< number of used bytes (including closing zero byte) */ -} mpg123_string; - -/** Allocate and intialize a new string. - * \param val optional initial string value (can be NULL) - */ -MPG123_EXPORT mpg123_string* mpg123_new_string(const char* val); - -/** Free memory of contents and the string structure itself. - * \param sb string handle - */ -MPG123_EXPORT void mpg123_delete_string(mpg123_string* sb); - -/** Initialize an existing mpg123_string structure to {NULL, 0, 0}. - * If you hand in a NULL pointer here, your program should crash. The other - * string functions are more forgiving, but this one here is too basic. - * \param sb string handle (address of existing structure on your side) - */ -MPG123_EXPORT void mpg123_init_string(mpg123_string* sb); - -/** Free-up memory of the contents of an mpg123_string (not the struct itself). - * This also calls mpg123_init_string() and hence is safe to be called - * repeatedly. - * \param sb string handle - */ -MPG123_EXPORT void mpg123_free_string(mpg123_string* sb); - -/** Change the size of a mpg123_string - * \param sb string handle - * \param news new size in bytes - * \return 0 on error, 1 on success - */ -MPG123_EXPORT int mpg123_resize_string(mpg123_string* sb, size_t news); - -/** Increase size of a mpg123_string if necessary (it may stay larger). - * Note that the functions for adding and setting in current libmpg123 - * use this instead of mpg123_resize_string(). - * That way, you can preallocate memory and safely work afterwards with - * pieces. - * \param sb string handle - * \param news new minimum size - * \return 0 on error, 1 on success - */ -MPG123_EXPORT int mpg123_grow_string(mpg123_string* sb, size_t news); - -/** Copy the contents of one mpg123_string string to another. - * Yes the order of arguments is reversed compated to memcpy(). - * \param from string handle - * \param to string handle - * \return 0 on error, 1 on success - */ -MPG123_EXPORT int mpg123_copy_string(mpg123_string* from, mpg123_string* to); - -/** Move the contents of one mpg123_string string to another. - * This frees any memory associated with the target and moves over the - * pointers from the source, leaving the source without content after - * that. The only possible error is that you hand in NULL pointers. - * If you handed in a valid source, its contents will be gone, even if - * there was no target to move to. If you hand in a valid target, its - * original contents will also always be gone, to be replaced with the - * source's contents if there was some. - * \param from source string handle - * \param to target string handle - * \return 0 on error, 1 on success - */ -MPG123_EXPORT int mpg123_move_string(mpg123_string* from, mpg123_string* to); - -/** Append a C-String to an mpg123_string - * \param sb string handle - * \param stuff to append - * \return 0 on error, 1 on success - */ -MPG123_EXPORT int mpg123_add_string(mpg123_string* sb, const char* stuff); - -/** Append a C-substring to an mpg123 string - * \param sb string handle - * \param stuff content to copy - * \param from offset to copy from - * \param count number of characters to copy (a null-byte is always appended) - * \return 0 on error, 1 on success - */ -MPG123_EXPORT int mpg123_add_substring( mpg123_string *sb -, const char *stuff, size_t from, size_t count ); - -/** Set the content of a mpg123_string to a C-string - * \param sb string handle - * \param stuff content to copy - * \return 0 on error, 1 on success - */ -MPG123_EXPORT int mpg123_set_string(mpg123_string* sb, const char* stuff); - -/** Set the content of a mpg123_string to a C-substring - * \param sb string handle - * \param stuff the future content - * \param from offset to copy from - * \param count number of characters to copy (a null-byte is always appended) - * \return 0 on error, 1 on success - */ -MPG123_EXPORT int mpg123_set_substring( mpg123_string *sb -, const char *stuff, size_t from, size_t count ); - -/** Count characters in a mpg123 string (non-null bytes or Unicode points). - * This function is of limited use, as it does just count code points - * encoded in an UTF-8 string, only loosely related to the count of visible - * characters. Get your full Unicode handling support elsewhere. - * \param sb string handle - * \param utf8 a flag to tell if the string is in utf8 encoding - * \return character count -*/ -MPG123_EXPORT size_t mpg123_strlen(mpg123_string *sb, int utf8); - -/** Remove trailing \\r and \\n, if present. - * \param sb string handle - * \return 0 on error, 1 on success - */ -MPG123_EXPORT int mpg123_chomp_string(mpg123_string *sb); - -/** Determine if two strings contain the same data. - * This only returns 1 if both given handles are non-NULL and - * if they are filled with the same bytes. - * \param a first string handle - * \param b second string handle - * \return 0 for different strings, 1 for identical - */ -MPG123_EXPORT int mpg123_same_string(mpg123_string *a, mpg123_string *b); - -/** The mpg123 text encodings. This contains encodings we encounter in ID3 tags or ICY meta info. */ -enum mpg123_text_encoding -{ - mpg123_text_unknown = 0 /**< Unkown encoding... mpg123_id3_encoding can return that on invalid codes. */ - ,mpg123_text_utf8 = 1 /**< UTF-8 */ - ,mpg123_text_latin1 = 2 /**< ISO-8859-1. Note that sometimes latin1 in ID3 is abused for totally different encodings. */ - ,mpg123_text_icy = 3 /**< ICY metadata encoding, usually CP-1252 but we take it as UTF-8 if it qualifies as such. */ - ,mpg123_text_cp1252 = 4 /**< Really CP-1252 without any guessing. */ - ,mpg123_text_utf16 = 5 /**< Some UTF-16 encoding. The last of a set of leading BOMs (byte order mark) rules. - * When there is no BOM, big endian ordering is used. Note that UCS-2 qualifies as UTF-8 when - * you don't mess with the reserved code points. If you want to decode little endian data - * without BOM you need to prepend 0xff 0xfe yourself. */ - ,mpg123_text_utf16bom = 6 /**< Just an alias for UTF-16, ID3v2 has this as distinct code. */ - ,mpg123_text_utf16be = 7 /**< Another alias for UTF16 from ID3v2. Note, that, because of the mess that is reality, - * BOMs are used if encountered. There really is not much distinction between the UTF16 types for mpg123 - * One exception: Since this is seen in ID3v2 tags, leading null bytes are skipped for all other UTF16 - * types (we expect a BOM before real data there), not so for utf16be!*/ - ,mpg123_text_max = 7 /**< Placeholder for the maximum encoding value. */ -}; - -/** The encoding byte values from ID3v2. */ -enum mpg123_id3_enc -{ - mpg123_id3_latin1 = 0 /**< Note: This sometimes can mean anything in practice... */ - ,mpg123_id3_utf16bom = 1 /**< UTF16, UCS-2 ... it's all the same for practical purposes. */ - ,mpg123_id3_utf16be = 2 /**< Big-endian UTF-16, BOM see note for mpg123_text_utf16be. */ - ,mpg123_id3_utf8 = 3 /**< Our lovely overly ASCII-compatible 8 byte encoding for the world. */ - ,mpg123_id3_enc_max = 3 /**< Placeholder to check valid range of encoding byte. */ -}; - -/** Convert ID3 encoding byte to mpg123 encoding index. - * \param id3_enc_byte the ID3 encoding code - * \return the mpg123 encoding index - */ - -MPG123_EXPORT enum mpg123_text_encoding mpg123_enc_from_id3(unsigned char id3_enc_byte); - -/** Store text data in string, after converting to UTF-8 from indicated encoding - * A prominent error can be that you provided an unknown encoding value, or this build of libmpg123 lacks support for certain encodings (ID3 or ICY stuff missing). - * Also, you might want to take a bit of care with preparing the data; for example, strip leading zeroes (I have seen that). - * \param sb target string - * \param enc mpg123 text encoding value - * \param source source buffer with plain unsigned bytes (you might need to cast from signed char) - * \param source_size number of bytes in the source buffer - * \return 0 on error, 1 on success (on error, mpg123_free_string is called on sb) - */ -MPG123_EXPORT int mpg123_store_utf8(mpg123_string *sb, enum mpg123_text_encoding enc, const unsigned char *source, size_t source_size); - -/** Sub data structure for ID3v2, for storing various text fields (including comments). - * This is for ID3v2 COMM, TXXX and all the other text fields. - * Only COMM, TXXX and USLT may have a description, only COMM and USLT - * have a language. - * You should consult the ID3v2 specification for the use of the various text fields - * ("frames" in ID3v2 documentation, I use "fields" here to separate from MPEG frames). */ -typedef struct -{ - char lang[3]; /**< Three-letter language code (not terminated). */ - char id[4]; /**< The ID3v2 text field id, like TALB, TPE2, ... (4 characters, no string termination). */ - mpg123_string description; /**< Empty for the generic comment... */ - mpg123_string text; /**< ... */ -} mpg123_text; - -/** The picture type values from ID3v2. */ -enum mpg123_id3_pic_type -{ - mpg123_id3_pic_other = 0 /**< see ID3v2 docs */ - ,mpg123_id3_pic_icon = 1 /**< see ID3v2 docs */ - ,mpg123_id3_pic_other_icon = 2 /**< see ID3v2 docs */ - ,mpg123_id3_pic_front_cover = 3 /**< see ID3v2 docs */ - ,mpg123_id3_pic_back_cover = 4 /**< see ID3v2 docs */ - ,mpg123_id3_pic_leaflet = 5 /**< see ID3v2 docs */ - ,mpg123_id3_pic_media = 6 /**< see ID3v2 docs */ - ,mpg123_id3_pic_lead = 7 /**< see ID3v2 docs */ - ,mpg123_id3_pic_artist = 8 /**< see ID3v2 docs */ - ,mpg123_id3_pic_conductor = 9 /**< see ID3v2 docs */ - ,mpg123_id3_pic_orchestra = 10 /**< see ID3v2 docs */ - ,mpg123_id3_pic_composer = 11 /**< see ID3v2 docs */ - ,mpg123_id3_pic_lyricist = 12 /**< see ID3v2 docs */ - ,mpg123_id3_pic_location = 13 /**< see ID3v2 docs */ - ,mpg123_id3_pic_recording = 14 /**< see ID3v2 docs */ - ,mpg123_id3_pic_performance = 15 /**< see ID3v2 docs */ - ,mpg123_id3_pic_video = 16 /**< see ID3v2 docs */ - ,mpg123_id3_pic_fish = 17 /**< see ID3v2 docs */ - ,mpg123_id3_pic_illustration = 18 /**< see ID3v2 docs */ - ,mpg123_id3_pic_artist_logo = 19 /**< see ID3v2 docs */ - ,mpg123_id3_pic_publisher_logo = 20 /**< see ID3v2 docs */ -}; - -/** Sub data structure for ID3v2, for storing picture data including comment. - * This is for the ID3v2 APIC field. You should consult the ID3v2 specification - * for the use of the APIC field ("frames" in ID3v2 documentation, I use "fields" - * here to separate from MPEG frames). */ -typedef struct -{ - char type; /**< mpg123_id3_pic_type value */ - mpg123_string description; /**< description string */ - mpg123_string mime_type; /**< MIME type */ - size_t size; /**< size in bytes */ - unsigned char* data; /**< pointer to the image data */ -} mpg123_picture; - -/** Data structure for storing IDV3v2 tags. - * This structure is not a direct binary mapping with the file contents. - * The ID3v2 text frames are allowed to contain multiple strings. - * So check for null bytes until you reach the mpg123_string fill. - * All text is encoded in UTF-8. */ -typedef struct -{ - unsigned char version; /**< 3 or 4 for ID3v2.3 or ID3v2.4. */ - mpg123_string *title; /**< Title string (pointer into text_list). */ - mpg123_string *artist; /**< Artist string (pointer into text_list). */ - mpg123_string *album; /**< Album string (pointer into text_list). */ - mpg123_string *year; /**< The year as a string (pointer into text_list). */ - mpg123_string *genre; /**< Genre String (pointer into text_list). The genre string(s) may very well need postprocessing, esp. for ID3v2.3. */ - mpg123_string *comment; /**< Pointer to last encountered comment text with empty description. */ - /* Encountered ID3v2 fields are appended to these lists. - There can be multiple occurences, the pointers above always point to the last encountered data. */ - mpg123_text *comment_list; /**< Array of comments. */ - size_t comments; /**< Number of comments. */ - mpg123_text *text; /**< Array of ID3v2 text fields (including USLT) */ - size_t texts; /**< Numer of text fields. */ - mpg123_text *extra; /**< The array of extra (TXXX) fields. */ - size_t extras; /**< Number of extra text (TXXX) fields. */ - mpg123_picture *picture; /**< Array of ID3v2 pictures fields (APIC). - Only populated if MPG123_PICTURE flag is set! */ - size_t pictures; /**< Number of picture (APIC) fields. */ -} mpg123_id3v2; - -/** Data structure for ID3v1 tags (the last 128 bytes of a file). - * Don't take anything for granted (like string termination)! - * Also note the change ID3v1.1 did: comment[28] = 0; comment[29] = track_number - * It is your task to support ID3v1 only or ID3v1.1 ...*/ -typedef struct -{ - char tag[3]; /**< Always the string "TAG", the classic intro. */ - char title[30]; /**< Title string. */ - char artist[30]; /**< Artist string. */ - char album[30]; /**< Album string. */ - char year[4]; /**< Year string. */ - char comment[30]; /**< Comment string. */ - unsigned char genre; /**< Genre index. */ -} mpg123_id3v1; - -#define MPG123_ID3 0x3 /**< 0011 There is some ID3 info. Also matches 0010 or NEW_ID3. */ -#define MPG123_NEW_ID3 0x1 /**< 0001 There is ID3 info that changed since last call to mpg123_id3. */ -#define MPG123_ICY 0xc /**< 1100 There is some ICY info. Also matches 0100 or NEW_ICY.*/ -#define MPG123_NEW_ICY 0x4 /**< 0100 There is ICY info that changed since last call to mpg123_icy. */ - -/** Query if there is (new) meta info, be it ID3 or ICY (or something new in future). - * \param mh handle - * \return combination of flags, 0 on error (same as "nothing new") - */ -MPG123_EXPORT int mpg123_meta_check(mpg123_handle *mh); - -/** Clean up meta data storage (ID3v2 and ICY), freeing memory. - * \param mh handle - */ -MPG123_EXPORT void mpg123_meta_free(mpg123_handle *mh); - -/** Point v1 and v2 to existing data structures wich may change on any next read/decode function call. - * v1 and/or v2 can be set to NULL when there is no corresponding data. - * \return MPG123_OK on success - */ -MPG123_EXPORT int mpg123_id3( mpg123_handle *mh -, mpg123_id3v1 **v1, mpg123_id3v2 **v2 ); - -/** Return pointers to and size of stored raw ID3 data if storage has - * been configured with MPG123_RAW_ID3 and stream parsing passed the - * metadata already. Null value with zero size is a possibility! - * The storage can change at any next API call. - * \param v1 address to store pointer to v1 tag - * \param v1_size size of v1 data in bytes - * \param v2 address to store pointer to v2 tag - * \param v2_size size of v2 data in bytes - * \return MPG123_OK or MPG123_ERR. Only on MPG123_OK the output - * values are set. - */ -MPG123_EXPORT int mpg123_id3_raw( mpg123_handle *mh -, unsigned char **v1, size_t *v1_size -, unsigned char **v2, size_t *v2_size ); - -/** Point icy_meta to existing data structure wich may change on any next read/decode function call. - * \param mh handle - * \param icy_meta return address for ICY meta string (set to NULL if nothing there) - * \return MPG123_OK on success - */ -MPG123_EXPORT int mpg123_icy(mpg123_handle *mh, char **icy_meta); - -/** Decode from windows-1252 (the encoding ICY metainfo used) to UTF-8. - * Note that this is very similar to mpg123_store_utf8(&sb, mpg123_text_icy, icy_text, strlen(icy_text+1)) . - * \param icy_text The input data in ICY encoding - * \return pointer to newly allocated buffer with UTF-8 data (You free() it!) */ -MPG123_EXPORT char* mpg123_icy2utf8(const char* icy_text); - - -/* @} */ - - -/** \defgroup mpg123_advpar mpg123 advanced parameter API - * - * Direct access to a parameter set without full handle around it. - * Possible uses: - * - Influence behaviour of library _during_ initialization of handle (MPG123_VERBOSE). - * - Use one set of parameters for multiple handles. - * - * The functions for handling mpg123_pars (mpg123_par() and mpg123_fmt() - * family) directly return a fully qualified mpg123 error code, the ones - * operating on full handles normally MPG123_OK or MPG123_ERR, storing the - * specific error code itseld inside the handle. - * - * @{ - */ - -/** Opaque structure for the libmpg123 decoder parameters. */ -struct mpg123_pars_struct; - -/** Opaque structure for the libmpg123 decoder parameters. */ -typedef struct mpg123_pars_struct mpg123_pars; - -/** Create a handle with preset parameters. - * \param mp parameter handle - * \param decoder decoder choice - * \param error error code return address - * \return mpg123 handle - */ -MPG123_EXPORT mpg123_handle *mpg123_parnew( mpg123_pars *mp -, const char* decoder, int *error ); - -/** Allocate memory for and return a pointer to a new mpg123_pars - * \param error error code return address - * \return new parameter handle - */ -MPG123_EXPORT mpg123_pars *mpg123_new_pars(int *error); - -/** Delete and free up memory used by a mpg123_pars data structure - * \param mp parameter handle - */ -MPG123_EXPORT void mpg123_delete_pars(mpg123_pars* mp); - -/** Configure mpg123 parameters to accept no output format at all, - * use before specifying supported formats with mpg123_format - * \param mp parameter handle - * \return MPG123_OK on success - */ -MPG123_EXPORT int mpg123_fmt_none(mpg123_pars *mp); - -/** Configure mpg123 parameters to accept all formats - * (also any custom rate you may set) -- this is default. - * \param mp parameter handle - * \return MPG123_OK on success - */ -MPG123_EXPORT int mpg123_fmt_all(mpg123_pars *mp); - -/** Set the audio format support of a mpg123_pars in detail: - * \param mp parameter handle - * \param rate The sample rate value (in Hertz). - * \param channels A combination of MPG123_STEREO and MPG123_MONO. - * \param encodings A combination of accepted encodings for rate and channels, - * p.ex MPG123_ENC_SIGNED16|MPG123_ENC_ULAW_8 (or 0 for no - * support). - * \return MPG123_OK on success -*/ -MPG123_EXPORT int mpg123_fmt(mpg123_pars *mp -, long rate, int channels, int encodings); - -/** Set the audio format support of a mpg123_pars in detail: - * \param mp parameter handle - * \param rate The sample rate value (in Hertz). Special value 0 means - * all rates (reason for this variant of mpg123_fmt). - * \param channels A combination of MPG123_STEREO and MPG123_MONO. - * \param encodings A combination of accepted encodings for rate and channels, - * p.ex MPG123_ENC_SIGNED16|MPG123_ENC_ULAW_8 (or 0 for no - * support). - * \return MPG123_OK on success -*/ -MPG123_EXPORT int mpg123_fmt2(mpg123_pars *mp -, long rate, int channels, int encodings); - -/** Check to see if a specific format at a specific rate is supported - * by mpg123_pars. - * \param mp parameter handle - * \param rate sampling rate - * \param encoding encoding - * \return 0 for no support (that includes invalid parameters), MPG123_STEREO, - * MPG123_MONO or MPG123_STEREO|MPG123_MONO. */ -MPG123_EXPORT int mpg123_fmt_support(mpg123_pars *mp, long rate, int encoding); - -/** Set a specific parameter, for a specific mpg123_pars, using a parameter - * type key chosen from the mpg123_parms enumeration, to the specified value. - * \param mp parameter handle - * \param type parameter choice - * \param value integer value - * \param fvalue floating point value - * \return MPG123_OK on success - */ -MPG123_EXPORT int mpg123_par( mpg123_pars *mp -, enum mpg123_parms type, long value, double fvalue ); - -/** Get a specific parameter, for a specific mpg123_pars. - * See the mpg123_parms enumeration for a list of available parameters. - * \param mp parameter handle - * \param type parameter choice - * \param value integer value return address - * \param fvalue floating point value return address - * \return MPG123_OK on success - */ -MPG123_EXPORT int mpg123_getpar( mpg123_pars *mp -, enum mpg123_parms type, long *value, double *fvalue); - -/* @} */ - - -/** \defgroup mpg123_lowio mpg123 low level I/O - * You may want to do tricky stuff with I/O that does not work with mpg123's default file access or you want to make it decode into your own pocket... - * - * @{ */ - -/** Replace default internal buffer with user-supplied buffer. - * Instead of working on it's own private buffer, mpg123 will directly use the one you provide for storing decoded audio. - * Note that the required buffer size could be bigger than expected from output - * encoding if libmpg123 has to convert from primary decoder output (p.ex. 32 bit - * storage for 24 bit output). - * - * Note: The type of data changed to a void pointer in mpg123 1.26.0 - * (API version 45). - * - * \param mh handle - * \param data pointer to user buffer - * \param size of buffer in bytes - * \return MPG123_OK on success - */ -MPG123_EXPORT int mpg123_replace_buffer(mpg123_handle *mh -, void *data, size_t size); - -/** The max size of one frame's decoded output with current settings. - * Use that to determine an appropriate minimum buffer size for decoding one frame. - * \param mh handle - * \return maximum decoded data size in bytes - */ -MPG123_EXPORT size_t mpg123_outblock(mpg123_handle *mh); - -/** Replace low-level stream access functions; read and lseek as known in POSIX. - * You can use this to make any fancy file opening/closing yourself, - * using mpg123_open_fd() to set the file descriptor for your read/lseek - * (doesn't need to be a "real" file descriptor...). - * Setting a function to NULL means that the default internal read is - * used (active from next mpg123_open call on). - * Note: As it would be troublesome to mess with this while having a file open, - * this implies mpg123_close(). - * \param mh handle - * \param r_read callback for reading (behaviour like POSIX read) - * \param r_lseek callback for seeking (like POSIX lseek) - * \return MPG123_OK on success - */ -MPG123_EXPORT int mpg123_replace_reader( mpg123_handle *mh -, ssize_t (*r_read) (int, void *, size_t) -, off_t (*r_lseek)(int, off_t, int) -); - -/** Replace I/O functions with your own ones operating on some kind of - * handle instead of integer descriptors. - * The handle is a void pointer, so you can pass any data you want... - * mpg123_open_handle() is the call you make to use the I/O defined here. - * There is no fallback to internal read/seek here. - * Note: As it would be troublesome to mess with this while having a file open, - * this mpg123_close() is implied here. - * \param mh handle - * \param r_read callback for reading (behaviour like POSIX read) - * \param r_lseek callback for seeking (like POSIX lseek) - * \param cleanup A callback to clean up an I/O handle on mpg123_close, - * can be NULL for none (you take care of cleaning your handles). - * \return MPG123_OK on success - */ -MPG123_EXPORT int mpg123_replace_reader_handle( mpg123_handle *mh -, ssize_t (*r_read) (void *, void *, size_t) -, off_t (*r_lseek)(void *, off_t, int) -, void (*cleanup)(void*) ); - -/* @} */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/win64/include/mpg123/out123.h b/win64/include/mpg123/out123.h new file mode 100644 index 00000000..bace3ce6 --- /dev/null +++ b/win64/include/mpg123/out123.h @@ -0,0 +1,734 @@ +/* + out123: audio output interface + + copyright 1995-2016 by the mpg123 project, + free software under the terms of the LGPL 2.1 + + see COPYING and AUTHORS files in distribution or http://mpg123.org + initially written as audio.h by Michael Hipp, reworked into out123 API + by Thomas Orgis +*/ + +#ifndef _OUT123_H_ +#define _OUT123_H_ + +/** \file out123.h The header file for the libout123 audio output facility. */ + +/* We only need size_t definition. */ +#include + +/* Common audio encoding specification, including a macro for getting + * size of encoded samples in bytes. Said macro is still hardcoded + * into out123_encsize(). Relying on this one may help an old program + * know sizes of encodings added to fmt123.h later on. + * If you don't care, just use the macro. + */ +#include + +/** A macro to check at compile time which set of API functions to expect. + * This should be incremented at least each time a new symbol is added + * to the header. + */ +#ifndef OUT123_API_VERSION +#define OUT123_API_VERSION 4 +#endif + +#ifndef MPG123_EXPORT +/** Defines needed for MS Visual Studio(tm) DLL builds. + * Every public function must be prefixed with MPG123_EXPORT. When building + * the DLL ensure to define BUILD_MPG123_DLL. This makes the function accessible + * for clients and includes it in the import library which is created together + * with the DLL. When consuming the DLL ensure to define LINK_MPG123_DLL which + * imports the functions from the DLL. + */ +#ifdef BUILD_MPG123_DLL +/* The dll exports. */ +#define MPG123_EXPORT __declspec(dllexport) +#else +#ifdef LINK_MPG123_DLL +/* The exe imports. */ +#define MPG123_EXPORT __declspec(dllimport) +#else +/* Nothing on normal/UNIX builds */ +#define MPG123_EXPORT +#endif +#endif +#endif + +/* Earlier versions of libout123 put enums into public API calls, + * thich is not exactly safe. There are ABI rules, but you can use + * compiler switches to change the sizes of enums. It is safer not + * to have them in API calls. Thus, the default is to remap calls and + * structs to variants that use plain ints. Define MPG123_ENUM_API to + * prevent that remapping. + * + * You might want to define this to increase the chance of your binary + * working with an older version of the library. But if that is your goal, + * you should better build with an older version to begin with. + */ +#ifndef MPG123_ENUM_API + +#define out123_param out123_param2 +#define out123_getparam out123_getparam2 + +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/** \defgroup out123_api out123 library API + * This is out123, a library focused on continuous playback of audio streams + * via various platform-specific output methods. It glosses over details of + * the native APIs to give an interface close to simply writing data to a + * file. There might be the option to tune details like buffer (period) sizes + * and the number of them on the device side in future, but the focus of the + * library is to ease the use case of just getting that raw audio data out + * there, without interruptions. + * + * The basic idea is to create a handle with out123_new() and open a certain + * output device (using a certain driver module, possibly build-time defaults) + * with out123_open(). Now, you can query the output device for supported + * encodings for given rate and channel count with out123_get_encodings() and + * decide what to use for actually starting playback with out123_start(). + * + * Then, you just need to provide (interleaved pcm) data for playback with + * out123_play(), which will block when the device's buffers are full. You get + * your timing from that (instead of callbacks). If your program does the + * production of the audio data just a little bit faster than the playback, + * causing out123_play() to block ever so briefly, you're fine. + * + * You stop playback with out123_stop(), or just close the device and driver + * via out123_close(), or even just decide to drop it all and do out123_del() + * right away when you're done. + * + * There are other functions for specific needs, but the basic idea should be + * covered by the above. + * + * Note that the driver modules that bind to the operating system API for + * output might impose restrictions on what you can safely do regarding your + * out123_handle and multiple threads or processes. You should be on the safe + * side ensuring that you confine usage of a handle to a single thread instead + * of passing it around. + @{ + */ + +/** Opaque structure for the libout123 handle. */ +struct out123_struct; +/** Typedef shortcut as preferrend name for the handle type. */ +typedef struct out123_struct out123_handle; + +/** Enumeration of codes for the parameters that it is possible to set/get. */ +enum out123_parms +{ + OUT123_FLAGS = 1 /**< integer, various flags, see enum #out123_flags */ +, OUT123_PRELOAD /**< float, fraction of buffer to fill before playback */ +, OUT123_GAIN /**< integer, output device gain (module-specific) */ +, OUT123_VERBOSE /**< integer, verbosity to stderr, >= 0 */ +, OUT123_DEVICEBUFFER /**< + * float, length of device buffer in seconds; + * This might be ignored, might have only a loose relation to actual + * buffer sizes and latency, depending on output driver. Try to tune + * this before opening a device if you want to influcence latency or reduce + * dropouts. Value <= 0 uses some default, usually favouring stable playback + * over low latency. Values above 0.5 are probably too much. + */ +, OUT123_PROPFLAGS /**< integer, query driver/device property flags (r/o) */ +, OUT123_NAME /**< string, name of this instance (NULL restores default); + * The value returned by out123_getparam() might be different if the audio + * backend changed it (to be unique among clients, p.ex.). + * TODO: The name provided here is used as prefix in diagnostic messages. */ +, OUT123_BINDIR /**< string, path to a program binary directory to use + * as starting point in the search for the output module directory + * (e.g. ../lib/mpg123 or ./plugins). The environment variable MPG123_MODDIR + * is always tried first and the in-built installation path last. + */ +, OUT123_ADD_FLAGS /**< enable given flags */ +, OUT123_REMOVE_FLAGS /**< disable diven flags */ +}; + +/** Flags to tune out123 behaviour */ +enum out123_flags +{ + OUT123_HEADPHONES = 0x01 /**< output to headphones (if supported) */ +, OUT123_INTERNAL_SPEAKER = 0x02 /**< output to speaker (if supported) */ +, OUT123_LINE_OUT = 0x04 /**< output to line out (if supported) */ +, OUT123_QUIET = 0x08 /**< no printouts to standard error */ +, OUT123_KEEP_PLAYING = 0x10 /**< + * When this is set (default), playback continues in a loop when the device + * does not consume all given data at once. This happens when encountering + * signals (like SIGSTOP, SIGCONT) that cause interruption of the underlying + * functions. + * Note that this flag is meaningless when the optional buffer is employed, + * There, your program will always block until the buffer completely took + * over the data given to it via out123_play(), unless a communication error + * arises. + */ +, OUT123_MUTE = 0x20 /**< software mute (play silent audio) */ +}; + +/** Read-only output driver/device property flags (OUT123_PROPFLAGS). */ +enum out123_propflags +{ + OUT123_PROP_LIVE = 0x01 /**< This is a live output, meaning that + * special care might be needed for pauses in playback (p.ex. stream + * of silence instead of interruption), as opposed to files on disk. + */ +, OUT123_PROP_PERSISTENT = 0x02 /**< This (live) output does not need + * special care for pauses (continues with silence itself), + * out123_pause() does nothing to the device. + */ +}; + +/** Create a new output handle. + * This only allocates and initializes memory, so the only possible + * error condition is running out of memory. + * \return pointer to new handle or NULL on error + */ +MPG123_EXPORT +out123_handle *out123_new(void); + +/** Delete output handle. + * This implies out123_close(). + */ +MPG123_EXPORT +void out123_del(out123_handle *ao); + +/** Free plain memory allocated within libout123. + * This is for library users that are not sure to use the same underlying + * memory allocator as libout123. It is just a wrapper over free() in + * the underlying C library. + */ +MPG123_EXPORT void out123_free(void *ptr); + +/** Error code enumeration + * API calls return a useful (positve) value or zero (OUT123_OK) on simple + * success. A negative value (-1 == OUT123_ERR) usually indicates that some + * error occured. Which one, that can be queried using out123_errcode() + * and friends. + */ +enum out123_error +{ + OUT123_ERR = -1 /**< generic alias for verbosity, always == -1 */ +, OUT123_OK = 0 /**< just a name for zero, not going to change */ +, OUT123_DOOM /**< dazzled, out of memory */ +, OUT123_BAD_DRIVER_NAME /**< bad driver name given */ +, OUT123_BAD_DRIVER /**< unspecified issue loading a driver */ +, OUT123_NO_DRIVER /**< no driver loaded */ +, OUT123_NOT_LIVE /**< no active audio device */ +, OUT123_DEV_PLAY /**< some device playback error */ +, OUT123_DEV_OPEN /**< error opening device */ +, OUT123_BUFFER_ERROR /**< + * Some (really unexpected) error in buffer infrastructure. + */ +, OUT123_MODULE_ERROR /**< basic failure in module loading */ +, OUT123_ARG_ERROR /**< some bad function arguments supplied */ +, OUT123_BAD_PARAM /**< unknown parameter code */ +, OUT123_SET_RO_PARAM /**< attempt to set read-only parameter */ +, OUT123_BAD_HANDLE /**< bad handle pointer (NULL, usually) */ +, OUT123_NOT_SUPPORTED /**< some requested operation is not supported (right now) */ +, OUT123_DEV_ENUMERATE /**< device enumeration itself failed */ +, OUT123_ERRCOUNT /**< placeholder for shaping arrays */ +}; + +/** Get string representation of last encountered error in the + * context of given handle. + * \param ao handle + * \return error string + */ +MPG123_EXPORT +const char* out123_strerror(out123_handle *ao); + +/** Get the plain errcode intead of a string. + * Note that this used to return OUT123_ERR instead of + * OUT123_BAD_HANDLE in case of ao==NULL before mpg123-1.23.5 . + * \param ao handle + * \return error code recorded in handle or OUT123_BAD_HANDLE + */ +MPG123_EXPORT +int out123_errcode(out123_handle *ao); + +/** Return the error string for a given error code. + * \param errcode the integer error code + * \return error string + */ +MPG123_EXPORT +const char* out123_plain_strerror(int errcode); + +/** Set a desired output buffer size. + * This starts a separate process that handles the audio output, decoupling + * the latter from the main process with a memory buffer and saving you the + * burden to ensure sparing CPU cycles for actual playback. + * This is for applicatons that prefer continuous playback over small latency. + * In other words: The kind of applications that out123 is designed for. + * This routine always kills off any currently active audio output module / + * device, even if you just disable the buffer when there is no buffer. + * + * Keep this in mind for memory-constrainted systems: Activating the + * buffer causes a fork of the calling process, doubling the virtual memory + * use. Depending on your operating system kernel's behaviour regarding + * memory overcommit, it might be wise to call out123_set_buffer() very + * early in your program before allocating lots of memory. + * + * There _might_ be a change to threads in future, but for now this is + * classic fork with shared memory, working without any threading library. + * If your platform or build does not support that, you will always get an + * error on trying to set up a non-zero buffer (but the API call will be + * present). + * + * Also, if you do intend to use this from a multithreaded program, think + * twice and make sure that your setup is happy with forking full-blown + * processes off threaded programs. Probably you are better off spawning a + * buffer thread yourself. + * + * \param ao handle + * \param buffer_bytes size (bytes) of a memory buffer for decoded audio, + * a value of zero disables the buffer. + * \return 0 on success, OUT123_ERR on error + */ +MPG123_EXPORT +int out123_set_buffer(out123_handle *ao, size_t buffer_bytes); + +#ifdef MPG123_ENUM_API +/** Set a parameter on a out123_handle. + * + * Note that this name is mapped to out123_param2() instead unless + * MPG123_ENUM_API is defined. + * + * The parameters usually only change what happens on next out123_open, not + * incfluencing running operation. There are macros To ease the API a bit: + * You can call out123_param_int(ao, code, value) for integer (long) values, + * same with out123_param_float() and out123_param_string(). + * + * \param ao handle + * \param code parameter code + * \param value input value for integer parameters + * \param fvalue input value for floating point parameters + * \param svalue input value for string parameters (contens are copied) + * \return 0 on success, OUT123_ERR on error. + */ +MPG123_EXPORT +int out123_param( out123_handle *ao, enum out123_parms code +, long value, double fvalue, const char *svalue ); +#endif + +/** Set a parameter on a out123_handle. No enum. + * + * This is actually called instead of out123_param() + * unless MPG123_ENUM_API is defined. + * + * The parameters usually only change what happens on next out123_open, not + * incfluencing running operation. There are macros To ease the API a bit: + * You can call out123_param_int(ao, code, value) for integer (long) values, + * same with out123_param_float() and out123_param_string(). + * + * \param ao handle + * \param code parameter code (from enum #out123_parms) + * \param value input value for integer parameters + * \param fvalue input value for floating point parameters + * \param svalue input value for string parameters (contens are copied) + * \return 0 on success, OUT123_ERR on error. + */ +MPG123_EXPORT +int out123_param2( out123_handle *ao, int code +, long value, double fvalue, const char *svalue ); + + +/** Shortcut for out123_param() to set an integer parameter. */ +#define out123_param_int(ao, code, value) \ + out123_param((ao), (code), (value), 0., NULL) +/** Shortcut for out123_param() to set a float parameter. */ +#define out123_param_float(ao, code, value) \ + out123_param((ao), (code), 0, (value), NULL) +/** Shortcut for out123_param() to set an string parameter. */ +#define out123_param_string(ao, code, value) \ + out123_param((ao), (code), 0, 0., (value)) + +#ifdef MPG123_ENUM_API +/** Get a parameter from an out123_handle. + * + * Note that this name is mapped to out123_param2() instead unless + * MPG123_ENUM_API is defined. + * + * \param ao handle + * \param code parameter code + * \param ret_value output address for integer parameters + * \param ret_fvalue output address for floating point parameters + * \param ret_svalue output address for string parameters (pointer to + * internal memory, so no messing around, please) + * \return 0 on success, OUT123_ERR on error (bad parameter name or bad handle). + */ +MPG123_EXPORT +int out123_getparam( out123_handle *ao, enum out123_parms code +, long *ret_value, double *ret_fvalue, char* *ret_svalue ); +#endif + +/** Get a parameter from an out123_handle. No enum. + * + * This is actually called instead of out123_getparam() + * unless MPG123_ENUM_API is defined. + * + * \param ao handle + * \param code parameter code (from enum #out123_parms) + * \param ret_value output address for integer parameters + * \param ret_fvalue output address for floating point parameters + * \param ret_svalue output address for string parameters (pointer to + * internal memory, so no messing around, please) + * \return 0 on success, OUT123_ERR on error (bad parameter name or bad handle). + */ +MPG123_EXPORT +int out123_getparam2( out123_handle *ao, int code +, long *ret_value, double *ret_fvalue, char* *ret_svalue ); + +/** Shortcut for out123_getparam() to get an integer parameter. */ +#define out123_getparam_int(ao, code, value) \ + out123_getparam((ao), (code), (value), NULL, NULL) +/** Shortcut for out123_getparam() to get a float parameter. */ +#define out123_getparam_float(ao, code, value) \ + out123_getparam((ao), (code), NULL, (value), NULL) +/** Shortcut for out123_getparam() to get a string parameter. */ +#define out123_getparam_string(ao, code, value) \ + out123_getparam((ao), (code), NULL, NULL, (value)) + +/** Copy parameters from another out123_handle. + * \param ao handle + * \param from_ao the handle to copy parameters from + * \return 0 in success, -1 on error + */ +MPG123_EXPORT +int out123_param_from(out123_handle *ao, out123_handle* from_ao); + +/** Get list of driver modules reachable in system in C argv-style format. + * + * The client is responsible for freeing the memory of both the individual + * strings and the lists themselves. There is out123_stringlists_free() + * to assist. + * + * A module that is not loadable because of missing libraries is simply + * skipped. You will get stderr messages about that unless OUT123_QUIET was + * was set, though. Failure to open the module directory is a serious error, + * resulting in negative return value. + * + * \param ao handle + * \param names address for storing list of names + * \param descr address for storing list of descriptions + * \return number of drivers found, -1 on error + */ +MPG123_EXPORT +int out123_drivers(out123_handle *ao, char ***names, char ***descr); + +/** Get a list of available output devices for a given driver. + * + * If the driver supports enumeration, you can get a listing of possible + * output devices. If this list is exhaustive, depends on the driver. + * Note that this implies out123_close(). When you have a device already + * open, you don't need to look for one anymore. If you really do, just + * create another handle. + * + * Your provided pointers are only used for non-negative return values. + * In this case, you are responsible for freeing the associated memory of + * the strings and the lists themselves. The format of the lists is an + * array of char pointers, with the returned count just like the usual + * C argv and argc. There is out123_stringlists_free() to assist. + * + * Note: Calling this on a handle with a configured buffer process will + * yield #OUT123_NOT_SUPPORTED. + * + * \param ao handle + * \param driver driver name or comma-separated list of names + * to try, just like for out123_open(), possibly NULL for some default + * \param names address for storing list of names + * \param descr address for storing list of descriptions + * \param active_driver address for storing a copy of the actually active + * driver name (in case you gave a list or NULL as driver), can be NULL + * if not interesting + * \return count of devices or #OUT123_ERR if some error was encountered, + * possibly just #OUT123_NOT_SUPPORTED if the driver lacks enumeration support + */ +MPG123_EXPORT +int out123_devices( out123_handle *ao, const char *driver +, char ***names, char ***descr, char **active_driver ); + +/** Helper to free string list memory. + * + * This aids in freeing the memory allocated by out123_devices() and + * out123_drivers(). + * + * Any of the given lists can be NULL and nothing will happen to it. + * + * \param name first string list + * \param descr second string list + * \param count count of strings + */ +MPG123_EXPORT +void out123_stringlists_free(char **name, char **descr, int count); + + +/** Open an output device with a certain driver + * Note: Opening means that the driver code is loaded and the desired + * device name recorded, possibly tested for availability or tentatively + * opened. After out123_open(), you can ask for supported encodings + * and then really open the device for playback with out123_start(). + * \param ao handle + * \param driver (comma-separated list of) output driver name(s to try), + * NULL for default + * \param device device name to open, NULL for default + * (stdout for file-based drivers) + * \return 0 on success, -1 on error. + */ +MPG123_EXPORT +int out123_open(out123_handle *ao, const char* driver, const char* device); + +/** Give info about currently loaded driver and device + * Any of the return addresses can be NULL if you are not interested in + * everything. You get pointers to internal storage. They are valid + * as long as the driver/device combination is opened. + * The device may be NULL indicating some unnamed default. + * TODO: Make the driver modules return names for such defaults. + * \param ao handle + * \param driver return address for driver name + * \param device return address for device name + * \return 0 on success, -1 on error (i.e. no driver loaded) + */ +MPG123_EXPORT +int out123_driver_info(out123_handle *ao, char **driver, char **device); + +/** Close the current output device and driver. + * This implies out123_drain() to ensure no data is lost. + * With a buffer, that might cause considerable delay during + * which your main application is blocked waiting. + * Call out123_drop() beforehand if you want to end things + * quickly. + * \param ao handle + */ +MPG123_EXPORT +void out123_close(out123_handle *ao); + +/** Get supported audio encodings for given rate and channel count, + * for the currently openend audio device. + * Usually, a wider range of rates is supported, but the number + * of sample encodings is limited, as is the number of channels. + * So you can call this with some standard rate and hope that the + * returned encodings work also for others, with the tested channel + * count. + * The return value of -1 on some encountered error conveniently also + * does not match any defined format (only 15 bits used for encodings, + * so this would even work with 16 bit integers). + * This implies out123_stop() to enter query mode. + * \param ao handle + * \param rate sampling rate + * \param channels number of channels + * \return supported encodings combined with bitwise or, to be checked + * against your favourite bitmask, -1 on error + */ +MPG123_EXPORT +int out123_encodings(out123_handle *ao, long rate, int channels); + +/** Return the size (in bytes) of one mono sample of the named encoding. + * \param encoding The encoding value to analyze. + * \return positive size of encoding in bytes, 0 on invalid encoding. */ +MPG123_EXPORT int out123_encsize(int encoding); + +/** Get list of supported formats for currently opened audio device. + * Given a list of sampling rates and minimal/maximal channel count, + * this quickly checks what formats are supported with these + * constraints. The first entry is always reserved for a default + * format for the output device. If there is no such default, + * all values of the format are -1. + * For each requested combination of rate and channels, a format entry is + * created, possible with encoding value 0 to indicate that this combination + * has been tested and rejected. So, when there is no basic error, the + * number of returned format entries should be + * (ratecount*(maxchannels-minchannels+1)+1) + * . But instead of forcing you to guess, this will be allocated by + * successful run. + * For the first entry, the encoding member is supposed to be a definite + * encoding, for the others it is a bitwise combination of all possible + * encodings. + * This function is more efficient than many calls to out123_encodings(). + * \param ao handle + * \param rates pointer to an array of sampling rates, may be NULL for none + * \param ratecount number of provided sampling rates + * \param minchannels minimal channel count + * \param maxchannels maximal channel count + * \param fmtlist return address for array of supported formats + * the encoding field of each entry is a combination of all + * supported encodings at this rate and channel count; + * Memory shall be freed by user. + * \return number of returned format enries, -1 on error + */ +MPG123_EXPORT +int out123_formats( out123_handle *ao, const long *rates, int ratecount + , int minchannels, int maxchannels + , struct mpg123_fmt **fmtlist ); + +/** Get list of encodings known to the library. + * You are responsible for freeing the allocated array. + * \param enclist return address for allocated array of encoding codes + * \return number of encodings, -1 on error + */ +MPG123_EXPORT +int out123_enc_list(int **enclist); + +/** Find encoding code by name. + * \param name short or long name to find encoding code for + * \return encoding if found (enum #mpg123_enc_enum), else 0 + */ +MPG123_EXPORT +int out123_enc_byname(const char *name); + +/** Get name of encoding. + * \param encoding code (enum #mpg123_enc_enum) + * \return short name for valid encodings, NULL otherwise + */ +MPG123_EXPORT +const char* out123_enc_name(int encoding); + +/** Get long name of encoding. + * \param encoding code (enum #mpg123_enc_enum) + * \return long name for valid encodings, NULL otherwise + */ +MPG123_EXPORT +const char* out123_enc_longname(int encoding); + +/** Start playback with a certain output format + * It might be a good idea to have audio data handy to feed after this + * returns with success. + * Rationale for not taking a pointer to struct mpg123_fmt: This would + * always force you to deal with that type and needlessly enlarge the + * shortest possible program. + * \param ao handle + * \param encoding sample encoding (values matching libmpg123 API) + * \param channels number of channels (1 or 2, usually) + * \param rate sampling rate + * \return 0 on success, negative on error (bad format, usually) + */ +MPG123_EXPORT +int out123_start( out123_handle *ao +, long rate, int channels, int encoding ); + +/** Pause playback + * Interrupt playback, holding any data in the optional buffer. + * + * This closes the audio device if it is a live sink, ready to be re-opened + * by out123_continue() or out123_play() with the existing parameters. + * \param ao handle + */ +MPG123_EXPORT +void out123_pause(out123_handle *ao); + +/** Continue playback + * The counterpart to out123_pause(). Announce to the driver that playback + * shall continue. + * + * Playback might not resume immediately if the optional buffer is configured + * to wait for a minimum fill and close to being empty. You can force playback + * of the last scrap with out123_drain(), or just by feeding more data with + * out123_play(), which will trigger out123_continue() for you, too. + * \param ao handle + */ +MPG123_EXPORT +void out123_continue(out123_handle *ao); + +/** Stop playback. + * This waits for pending audio data to drain to the speakers. + * You might want to call out123_drop() before stopping if you want + * to end things right away. + * \param ao handle + */ +MPG123_EXPORT +void out123_stop(out123_handle *ao); + +/** Hand over data for playback and wait in case audio device is busy. + * This survives non-fatal signals like SIGSTOP/SIGCONT and keeps on + * playing until the buffer is done with if the flag + * OUT123_KEEP_PLAYING ist set (default). So, per default, if + * you provided a byte count divisible by the PCM frame size, it is an + * error when less bytes than given are played. + * To be sure if an error occured, check out123_errcode(). + * Also note that it is no accident that the buffer parameter is not marked + * as constant. Some output drivers might need to do things like swap + * byte order. This is done in-place instead of wasting memory on yet + * another copy. Software muting also overwrites the data. + * \param ao handle + * \param buffer pointer to raw audio data to be played + * \param bytes number of bytes to read from the buffer + * \return number of bytes played (might be less than given, even zero) + */ +MPG123_EXPORT +size_t out123_play( out123_handle *ao + , void *buffer, size_t bytes ); + +/** Drop any buffered data, making next provided data play right away. + * This does not imply an actual pause in playback. + * You are expected to play something, unless you called out123_pause(). + * Feel free to call out123_stop() afterwards instead for a quicker + * exit than the implied out123_drain(). + * For live sinks, this may include dropping data from their buffers. + * For others (files), this only concerns data in the optional buffer. + * \param ao handle + */ +MPG123_EXPORT +void out123_drop(out123_handle *ao); + +/** Drain the output, waiting until all data went to the hardware. + * This does imply out123_continue() before and out123_pause() + * after draining. + * This might involve only the optional buffer process, or the + * buffers on the audio driver side, too. + * \param ao handle + */ +MPG123_EXPORT +void out123_drain(out123_handle *ao); + +/** Drain the output, but only partially up to the given number of + * bytes. This gives you the opportunity to do something while + * the optional buffer is writing remaining data instead of having + * one atomic API call for it all. + * + * It is wholly expected that the return value of out123_buffered() + * before and after calling this has a bigger difference than the + * provided limit, as the buffer is writing all the time in the + * background. + * + * This is just a plain out123_drain() if the optional buffer is not + * in use. Also triggers out123_continue(), but only out123_pause() + * if there is no buffered data anymore. + * \param ao handle + * \param bytes limit of buffered bytes to drain + * \return number of bytes drained from buffer + */ +MPG123_EXPORT +void out123_ndrain(out123_handle *ao, size_t bytes); + +/** Get an indication of how many bytes reside in the optional buffer. + * This might get extended to tell the number of bytes queued up in the + * audio backend, too. + * \param ao handle + * \return number of bytes in out123 library buffer + */ +MPG123_EXPORT +size_t out123_buffered(out123_handle *ao); + +/** Extract currently used audio format from handle. + * matching mpg123_getformat(). + * Given return addresses may be NULL to indicate no interest. + * \param ao handle + * \param rate address for sample rate + * \param channels address for channel count + * \param encoding address for encoding + * \param framesize size of a full PCM frame (for convenience) + * \return 0 on success, -1 on error + */ +MPG123_EXPORT +int out123_getformat( out123_handle *ao +, long *rate, int *channels, int *encoding, int *framesize ); + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/win64/include/mpg123/syn123.h b/win64/include/mpg123/syn123.h new file mode 100644 index 00000000..1c41c06b --- /dev/null +++ b/win64/include/mpg123/syn123.h @@ -0,0 +1,1118 @@ +/* + syn123: some audio signal synthesis and format conversion + + copyright 2017-2020 by the mpg123 project, + free software under the terms of the LGPL 2.1 + see COPYING and AUTHORS files in distribution or http://mpg123.org + + initially written by Thomas Orgis +*/ + +#ifndef SYN123_H +#define SYN123_H + +/** \file syn123.h The header file for the libsyn123 library. */ + +/* Common audio encoding specification. */ +#include + +/** A macro to check at compile time which set of API functions to expect. + * This should be incremented at least each time a new symbol is added + * to the header. + */ +#ifndef SYN123_API_VERSION +#define SYN123_API_VERSION 1 +#endif + +#ifndef MPG123_EXPORT +/** Defines needed for MS Visual Studio(tm) DLL builds. + * Every public function must be prefixed with MPG123_EXPORT. When building + * the DLL ensure to define BUILD_MPG123_DLL. This makes the function accessible + * for clients and includes it in the import library which is created together + * with the DLL. When consuming the DLL ensure to define LINK_MPG123_DLL which + * imports the functions from the DLL. + */ +#ifdef BUILD_MPG123_DLL +/* The dll exports. */ +#define MPG123_EXPORT __declspec(dllexport) +#else +#ifdef LINK_MPG123_DLL +/* The exe imports. */ +#define MPG123_EXPORT __declspec(dllimport) +#else +/* Nothing on normal/UNIX builds */ +#define MPG123_EXPORT +#endif +#endif +#endif + +/** Support the restrict keyword for handed-in pointers. Defined to + 'restrict' if available. + */ +#ifndef MPG123_RESTRICT +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +#define MPG123_RESTRICT restrict +#else +#define MPG123_RESTRICT +#endif +#endif + +/* Enable use of this file without configure. */ +/* Also make sure to define _FILE_OFFSET_BITS, too. */ +#ifndef MPG123_NO_CONFIGURE +#include +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/** \defgroup syn123_api syn123 library API + * I wanted to create some test signals in different encodings for testing + * libout123. Also, they shall serve to verify the decoding of libmpg123 + * in automated testing. Then, the awful drop-sample resampling inside the + * latter needed replacement. As digital filtering is part of the resampler + * dance, a chain of those can also be configured and applied. I hope I can + * avoid adding yet more functionality. It's a little utility library to + * accompany libmpg123 and libout123, OK? + * + * This is what libsyn123 offers: + * + * - signal generation (mix of differing wave shapes, noise, a simulated + * Geiger counter for fun) + * - format conversion and channel mixing and amplification, with hard and + * soft clipping, also optional dithering + * - near-zero-latency good-enough quite-fast resampling + * - applying digital filters with user-provided coefficients + * + * The usage model for signal generation is this: + * + * 1. Create handle with desired output format. + * 2. Set up synthesis mode with parameters. + * 3. Repeatedly extract buffers with PCM samples. + * + * If your hardware is slow on floating point operations, you may benefit + * from the period buffer in the handle that only needs actual computation + * once in the setup function. The frequencies of a wave mix may be fudged + * a bit to make for a configured period size. + * + * The usage model for resampling is this: + * + * 1. Create handle with any format or re-use a signal generation handle. + * 2. Set up resampling (rate ratio, channels, dirty mode). + * 3. Use predictor functions to work out matching sizes of input and + * output buffers. + * 4. Call the resampler on chunks of input, immediately producing matching + * chunks of output. + * + * The resampler works on 32 bit float, exclusively. This is what is required + * and appropriate for the provided quality. + * + * The usage model for filtering is this: + * + * 1. Create or re-use a handle. + * 2. Set up the filter chain for single or double precision floating point. + * 3. Apply the filter to chunks of input in succession. + * + * Computations are generally done in floating point, either 32 bit or 64 + * bit (single or double precision). The functions for encoding conversion, + * (de-)interleaving, and interleaved mixing can work without a handle and + * only use the buffers you hand in. Some support using a syn123 handle to + * provide the temporary buffers for encoding conversion on the fly to apply + * flotating-point processing to integer encodings. + * + * Only the functions that are able to return a success code do check + * arguments for obvious trouble like NULL pointers. You are supposed to + * act responsibly when calling. + * + * The size of buffers is either counted in bytes or samples, which, + * depending on the context, refer to individual PCM samples or to what is + * more strictly called a frame (one sample for each channel counted + * together). + @{ + */ + +/** Opaque structure for the libsyn123 handle. + * + * Simple context-free API functions do not need a handle, while + * others require it. Those that require it want it as first argument. + * Functions taking a handle as last argument after others make optional + * use of it (if non-NULL) to enable advanced functionality like + * on-the-fly encoding conversion that needs temporary storage. + */ +struct syn123_struct; +/** Typedef shortcut as preferrend name for the handle type. */ +typedef struct syn123_struct syn123_handle; + +/** Functions that return an integer success code either return + * SYN123_OK if everything went fine, or one of the other detailed + * error codes. + */ +enum syn123_error +{ + SYN123_OK = 0 /**< no error */ +, SYN123_BAD_HANDLE /**< bad handle given (NULL) */ +, SYN123_BAD_FMT /**< bad format (rate/channels) */ +, SYN123_BAD_ENC /**< bad encoding given */ +, SYN123_BAD_CONV /**< unsupported conversion */ +, SYN123_BAD_SIZE /**< buffer size bad (too small) */ +, SYN123_BAD_BUF /**< bad buffer pointer (NULL) */ +, SYN123_BAD_CHOP /**< byte buffer not cut at sample boundaries */ +, SYN123_DOOM /**< Disaster, Out Of Memory. */ +, SYN123_WEIRD /**< An internal error that should never occur. */ +, SYN123_BAD_FREQ /**< Invalid wave frequency given. */ +, SYN123_BAD_SWEEP /**< Invalid sweep curve given. */ +, SYN123_OVERFLOW /**< Some fatal (integer) overflow that prevents proper operation. */ +, SYN123_NO_DATA /**< Not enough data to do something. */ +, SYN123_BAD_DATA /**< Data present, but not usable. */ +}; + +/** Give a short phrase explaining an error code. + * \param errcode the code returned by an API function + * \return error phrase + */ +const char* syn123_strerror(int errcode); + +/** Create new handle with specified output format. + * \param rate sampling rate + * \param channels channel count (duplicated mono channels) + * \param encoding sample encoding (see enum mpg123_enc_enum) + * \param maxbuf maximum buffer size in bytes to allow for caching periodic + * signals. When this is given, it is attempted to fit any configured signal + * into this buffer in the hope it will work being played periodically. Maybe + * there will be tricks with non-periodic signals. + * A buffer size of zero turns off buffering and signals are always generated + * during extraction. + * \param err address to store error code, non-NULL if you care + * \return Pointer to allocated handle structure or NULL on error. + */ +MPG123_EXPORT +syn123_handle* syn123_new( long rate, int channels, int encoding +, size_t maxbuf, int *err ); + +/** Delete a handle. + * \param sh the handle to delete + */ +MPG123_EXPORT +void syn123_del(syn123_handle *sh); + +/** Enable/disable dithering for conversions. + * + * The default is no dither for conversions to integer encodings. You can + * enable dithering after handle creation, or disable it, as you wish. + * Enabling the dither resets the random number generator seed to the provided + * value or an internal default if the provided value is zero. The dither noise + * is unfiltered with triangular distribution (TPDF), as a sensible common + * choice. No further filtering of questionable benefit. + * + * \param sh handle to work on + * \param dither Disable (0) or enable (1, actually nonzero) dithering. + * Positive values > 1 may trigger differing dither modes in future, but not + * now. + * \param seed optional address to read the initial seed value from (if non-zero) + * and to write the current value to + */ +MPG123_EXPORT +int syn123_dither(syn123_handle *sh, int dither, unsigned long *seed); + +/** Extract desired amount of data from the generator. + * \param sh handle + * \param dst destination buffer + * \param dst_bytes number of bytes to extract + * \return actual number of extracted bytes + * (might differ if dst_bytes is no multiple of the PCM frame size) + */ +MPG123_EXPORT +size_t syn123_read(syn123_handle *sh, void *dst, size_t dst_bytes); + +/** Wave types */ +enum syn123_wave_id +{ + SYN123_WAVE_INVALID = -1 /**< invalid wave pattern */ +, SYN123_WAVE_FLAT = 0 /**< flat line, silence */ +, SYN123_WAVE_SINE /**< sinusodial wave*/ +, SYN123_WAVE_SQUARE /**< square wave */ +, SYN123_WAVE_TRIANGLE /**< triangle wave */ +, SYN123_WAVE_SAWTOOTH /**< sawtooth wave */ +, SYN123_WAVE_GAUSS /**< Gaussian bell shape */ +, SYN123_WAVE_PULSE /**< pulse shape, x^2 exp(-A x^2)/S */ +, SYN123_WAVE_SHOT /**< shot (sharper pulse), x^2 exp(-A x)/S + * (different values for A and S) */ +, SYN123_WAVE_LIMIT /**< valid IDs below that. A newer release of + * the library might support more. */ +}; + +/** Setup periodic wave generator. + * This sets up a series of oscillators with differing wave shapes. + * They are multiplied/scaled with each other instead of mixed + * in a sum of signals. It's more fun this way to generate interesting + * sounds. If you want to mix differing streams with differing volumes, + * channel balance and phase shifts, just create multiple single-channel + * generators with a convenient format (float encoding comes to mind) + * and mix to your heart's desire. You can then still use this library + * to get your channel buffers interleaved and converted to something + * your output device likes. + * + * You can ensure strict periodicity without possible shifts in phases + * due to floating point rounding errors with the buffered variant. + * That may adjust your chosen frequencies to be able to keep the limit + * on buffer size, but the resulting data is then strictly periodic + * without any further computations that may introduce timing errors. + * Apart from possibly saving computing time via the precomputed table, + * this is the reason to pre-mix multiple waves into a common buffer at + * all. + * + * The adjustments of the wave frequencies also include limiting them + * between some minimal value and the Nyquist frequency. Without the + * buffer, you can happily choose waves that are not resolved at all + * by the sampling rate and get the nasty results. Things get nasty + * inside the buffer, too, when you approach the Nyquist limit, but that + * is life (and mathematics). + * + * The default wave is a 440 Hz sine without phase offset. If any setting + * is missing, the default is taken from that. + * + * \param sh handle + * \param count number of waves (if zero, one default wave is configured) + * \param id array of wave IDs (enum syn123_wave_id), may be NULL + * \param freq array of wave frequencies, may be NULL + * Your provided frequencies are overwritten with the actual + * values if the periodic buffer is chosen. + * \param phase array of wave phases, may be NULL + * \param backwards array of true (non-zero) or false (zero), indicating + whether the wave is being inverted in time, may be NULL + * \param period address to store the size of the period buffer + * in samples (zero if not using the buffer), ignored if NULL + * \return success code + */ +MPG123_EXPORT +int syn123_setup_waves( syn123_handle* sh, size_t count +, int *id, double *freq, double *phase, int* backwards +, size_t *period ); + +/** Query current wave generator setup and state. + * + * This lets you extract the setup of the wave generator and + * the current phases to be able to re-create it and continue + * seamlessly, or maybe intentionally in some tweaked form with + * slight phase or frequency shifts. + * + * You only need to set target pointers to non-NULL where you + * want the corresponding values extracted. You need to have + * the storage prepared for the correct wave count. A common + * mode of usage might be to make a first call to only query + * the count, allocate storage, then a do a second call for the + * wave data. + * + * \param sh handle + * \param count address to store number of waves + * \param id storage for array of wave IDs + * \param freq storage for array of wave frequencies + * \param phase storage for array of wave phases + * \param backwards storage for array of true (non-zero) or false (zero), + * indicating whether the wave is being inverted in time + * \param period address to store the size of the period buffer + * in samples (zero if not using the buffer) + * \return success code + */ +MPG123_EXPORT +int syn123_query_waves( syn123_handle* sh, size_t *count +, int *id, double *freq, double *phase, int* backwards +, size_t *period ); + +/** Return the name of the indicated wave pattern. + * \param id The numerical ID of the wave pattern + * (out of enum syn123_wave_id). + * \return The name string, guaranteed to be non-NULL. + * Invalid codes yield the string "???". + */ +MPG123_EXPORT +const char* syn123_wave_name(int id); + +/** Return the wave pattern id given a name string. + * \param name The name string. + * \return The numerical id (out of enum syn123_wave_id). + * + */ +MPG123_EXPORT +int syn123_wave_id(const char *name); + +/** Types of frequency sweeps. + * There are no functions mapping those to/from strings, + * as this list is supposed to be fixed and small. + * There are only so many types of sweeps that make sense. + */ +enum syn123_sweep_id +{ + SYN123_SWEEP_LIN = 0 /**< linear frequency change */ +, SYN123_SWEEP_QUAD /**< quadratic frequency change */ +, SYN123_SWEEP_EXP /**< exponential (octave per time unit) */ +, SYN123_SWEEP_LIMIT /**< valid IDs less than that */ +}; + +/** Frequency sweep generator. + * This generates a sweep from one frequency to another with one + * of the available wave shapes over a given time. + * While you can just extract your single sweep by exactly reading + * the requestet duration, the generator is set up to run the sweep + * a bit longer until the beginning phase is reached again + * (one sample before that, of course). That way, reasonably smooth + * periodic playback from the buffer is possible without that nasty jump. + * Still, a large freqency difference will result in an audible pop, + * but at least that is not whole spectrum due to a phase jump. + * \param sh handle + * \param wave_id wave ID (enum syn123_wave_id) + * \param f1 pointer to beginning frequency in Hz (>= 1e-4, please, + * a value <= 0 being replaced by the standard frequency and stored for you) + * \param f2 ending frequency in Hz (>= 1e-4, please, + * in case of exponential sweep: f2-f1 >= 1e-4, too, + * a value <= 0 being replaced by the standard frequency and stored for you) + * \param sweep_id choice of sweep curve (enum syn123_sweep_id) + * \param smooth enable the periodic smoothing, if sensible + * (extending signal beyond the sweep to avoid phase jumps, a continuing + * starting at given start phase, not the returned endphase) + * \param duration duration of sweep in samples (> 1, please) + * This theoretically should be an off_t relating to the size of a + * file you produce, but off_t in API headers causes headaches. + * A 32 bit size_t still gives you over 24 hours of sweeping with 44100 kHz + * rate. On top of that, you can use the returned endphase to chop + * your monster sweep into pieces. + * \param phase initial phase of the sweep + * \param backwards invert the waveform in time if true + * \param endphase address to store the normal phase that would + * smoothly continue the signal without the period correction + * (You can create a following sweep that continues smoothly to a new + * target frequency by handing in this endphase as initial phase. Combine + * that with phases of constant tone and you could simulate a Theremin + * player by approximating the reaction to hand movements via sweeps.) + * \param period address to store the periodic sample count, usually + * being a bit bigger than the duration for getting the phase + * back down; does not imply use of the internal period buffer + * \param buffer_period address to store the period count only if the + * period buffer is actually in use + */ +MPG123_EXPORT +int syn123_setup_sweep( syn123_handle* sh +, int wave_id, double phase, int backwards +, int sweep_id, double *f1, double *f2, int smooth, size_t duration +, double *endphase, size_t *period, size_t *buffer_period ); + +/** Set up pink noise generator. + * This employs the Gardner/McCartney method to the approximate + * the real thing. The number of rows in the tree pattern is tunable. + * The result is pink noise with around 2.5 dB/octave. Do not expect + * more than 32 bits of randomness (or anything;-). + * \param sh handle + * \param rows rows for the generator algorithm + * It maxes out at 30 rows. Below 1 chooses a default. + * \param seed a 32 bit seed value for the pseudo-random number generator + * \param period optional address to store the size of the enforced period + * (zero for endlessly freshly generated signal) + * \return success code + */ +MPG123_EXPORT +int syn123_setup_pink( syn123_handle *sh, int rows, unsigned long seed +, size_t *period ); + +/** Set up white noise generator. + * A simple white noise source using some cheap pseudo RNG. Do not + * expect more than 32 bits of randomness (or anything;-). + * \param sh handle + * \param seed a 32 bit seed value for the pseudo-random number generator + * \param period optional address to store the size of the + * enforced period (zero for endlessly freshly generated signal) + */ +MPG123_EXPORT +int syn123_setup_white(syn123_handle *sh, unsigned long seed, size_t *period); + +/** Set up Geiger counter simulator. + * This models a speaker that is triggered by the pulses from + * the Geiger-Mueller counter. That creepy ticking sound. + * \param sh handle + * \param activity average events per second + * \param seed a 32 bit seed value for the pseudo-random number generator + * \param period optional address to store the size of the enforced period + * (zero for endlessly freshly generated signal) + * \return success code + */ +MPG123_EXPORT +int syn123_setup_geiger( syn123_handle *sh, double activity +, unsigned long seed, size_t *period ); + +/** Set up silence. + * This goes back to the vanilla state. + * \return success code + */ +MPG123_EXPORT +int syn123_setup_silence(syn123_handle *sh); + +/** Convert between supported encodings. + * The buffers must not overlap. + * Note that syn123 converts -1.0 to -127 for 8 bit signed (and analogous for + * other encodings), but still clips asymmetrically at -128 as that is the + * range of the type. If you do explicit clipping using syn123_clip(), + * the resulting range will be symmetrical inside [-1.0:1.0] and hence + * only down to -127 for 8 bit signed encoding. + * The conversions only work directly either from anything to double/float or + * from double/float to anything. This process is wrapped in the routine if + * a handle is provided, using the fixed mixing buffer in that. Clipping + * is only handled for floating point to integer conversions. Also, NaN + * is set to zero on conversion and counted as clipped. + * The ulaw and alaw conversions use Sun's reference implementation of the + * G711 standard (differing from libmpg123's big lookup table). + * + * \param dst destination buffer + * \param dst_enc destination encoding (enum mpg123_enc_enum) + * \param dst_size size of destination buffer in bytes + * \param src source buffer + * \param src_enc source encoding + * \param src_bytes source buffer size in bytes + * \param dst_bytes optional address to store the written byte count to + * \param clipped optional address to store number of clipped samples to + * \param sh an optional syn123_handle which enables arbitrary encoding + * conversions by utilizing the contained buffer as intermediate storage, + * can be NULL, disabling any conversion not involving floating point + * input or output + * \return success code + */ +MPG123_EXPORT +int syn123_conv( void * MPG123_RESTRICT dst, int dst_enc, size_t dst_size +, void * MPG123_RESTRICT src, int src_enc, size_t src_bytes +, size_t *dst_bytes, size_t *clipped, syn123_handle * sh ); + +/** The range of decibel values handled by syn123 goes from + * -SYN123_DB_LIMIT to +SYN123_DB_LIMIT + * This value ensures that a resulting linear volume can still + * be expressed using single-precision float. + * The resulting amplitude from -500 dB is still small enough + * to drive a 32 bit integer sample value orders of magnitude below + * 1, so it is effectively a zero. Note that physical volume controls + * typically give a range as small as 60 dB. You might want to present + * a tighter range to the user than +/- 500 dB! + */ +#define SYN123_DB_LIMIT 500 + +/** Convert decibels to linear volume (amplitude factor). + * This just returns pow(10, db/20) in the supported range. + * The dB value is limited according to SYN123_DB_LIMIT, with + * NaN being put at the lower end of the range. Better silent + * than insanely loud. + * \param db relative volume in dB + * \return linear volume factor + */ +MPG123_EXPORT double syn123_db2lin(double db); + +/** Convert linear volume (amplitude factor) to decibels. + * This just returns 20*log10(volume) in the supported range. + * The returned value is limited according to SYN123_DB_LIMIT, with + * NaN being put at the lower end of the range. Better silent + * than insanely loud. + * \param volume linear volume factor + * \return relative volume in dB + */ +MPG123_EXPORT double syn123_lin2db(double volume); + +/** Amplify given buffer. + * This multiplies all samples by the given floating point value + * (possibly converting to/from floating point on the fly, if a + * handle with the included working buffer is given). + * Also an offset correction is provided. + * + * \param buf the buffer to work on + * \param encoding the sample encoding + * \param samples number of samples + * \param volume linear volume factor (use syn123_db2lin() for + * applying a change in dB) + * \param offset offset to add to the sample values before + * multiplication + * \param clipped optional address to store number of clipped samples to + * \param sh optional handle to enable work on non-float + * encodings + * \return success code (e.g. bad encoding without handle) + */ +MPG123_EXPORT +int syn123_amp( void* buf, int encoding, size_t samples +, double volume, double offset, size_t *clipped, syn123_handle *sh ); + +/** Clip samples in buffer to default range. + * This only does anything with floating point encoding, but you can always + * call it without damage as a no-op on other encodings. After this, the + * samples are guaranteed to be in the range [-1,+1]. NaNs are mapped + * to zero (and counted as clipped), so they will still sound bad. + * If you want to hard clip to a smaller range, use syn123_soft_clip() with + * a width of zero. + * \param buf buffer to work on + * \param encoding sample encoding + * \param samples total number of samples + * \return number of clipped samples + */ +MPG123_EXPORT +size_t syn123_clip(void *buf, int encoding, size_t samples); + +/** Soft clipping / cheap limiting. + * This limits the samples above the threshold of limit-width with a + * smooth curve, dampening the high-frequency content of the clipping. + * This is no proper frequency filter, but just an independent function on + * each sample value, also ignorant of the channel count. This can + * directly work on float encodings and does nothing on others unless + * a handle is provided for on-line conversion. + * \param buf buffer to work on + * \param encoding sample encoding + * \param samples total number of samples + * \param limit the limit to clip to (normally 1 for full scale) + * \param width smoothing range + * \param sh optional handle to work on non-float encodings + * \return number of clipped samples + */ +MPG123_EXPORT +size_t syn123_soft_clip( void *buf, int encoding, size_t samples +, double limit, double width, syn123_handle *sh ); + +/** Interleave given number of channels into one stream. + * A rather trivial functionality, here for completeness. As the + * algorithm is agnostic to what is actually stored as a "sample", + * the parameter types are so generic that you could use these + * functions to arrange huge structs (hence samplesize as size_t) + * or whatever. If that makes sense is up to you. + * The buffers shall not overlap! + * \param dst destination buffer + * \param src source buffer array (one per channel) + * \param channels channel count + * \param samplesize size of one sample + * \param samplecount count of samples per channel + */ +MPG123_EXPORT +void syn123_interleave( void * MPG123_RESTRICT dst, void** MPG123_RESTRICT src +, int channels, size_t samplesize, size_t samplecount ); + +/** Deinterleave given number of channels out of one stream. + * A rather trivial functionality, here for completeness. As the + * algorithm is agnostic to what is actually stored as a "sample", + * the parameter types are so generic that you could use these + * functions to arrange huge structs (hence samplesize as size_t) + * or whatever. If that makes sense is up to you. + * The buffers must not overlap! + * \param dst destination buffer array (one per channel) + * \param src source buffer + * \param channels channel count + * \param samplesize size of one sample (see MPG123_SAMPLESIZE) + * \param samplecount count of samples per channel + */ +MPG123_EXPORT +void syn123_deinterleave( void ** MPG123_RESTRICT dst, void * MPG123_RESTRICT src +, int channels, size_t samplesize, size_t samplecount ); + +/** Simply copies mono samples into an interleaved stream. + * This might be implemented by a call to syn123_interleave(), it might + * be optimized to something different. You could have fun measuring that. + * \param dst destination buffer + * \param src source buffer + * \param channels channel count + * \param samplesize size of one sample (see MPG123_SAMPLESIZE) + * \param samplecount count of samples per channel + */ +MPG123_EXPORT +void syn123_mono2many( void * MPG123_RESTRICT dst, void * MPG123_RESTRICT src +, int channels, size_t samplesize, size_t samplecount ); + +/** A little helper/reminder on how interleaved format works: + * Produce the offset of the given sample for the given channel. + */ +#define SYN123_IOFF(sample, channel, channels) ((sample)*(channels)+(channel)) + +/** Specify floating point encoding to use for preserving precision in + * intermediate computations for given source and destination encoding. + * This should return either MPG123_ENC_FLOAT_32 or MPG123_ENC_FLOAT_64, + * unless an uncertain future adds things like 16 bit fp ... + * This is what syn123_conv() and syn123_mix() will use internally if + * intermediate conversion is necessary. + * Note that 64 bit floating point material will be mixed in 32 bit if the + * destination encoding does not need more precision. + * \param src_enc source/input encoding + * \param dst_enc destination/output encoding + * \return encoding value, zero if none can be chosen (invalid parameters) + */ +MPG123_EXPORT +int syn123_mixenc(int src_enc, int dst_enc); + +/** Mix n input channels on top of m output channels. + * This takes an interleaved input stream and mixes its channels + * into the output stream given a channel matrix (m,n) where + * each of the m rows contains the n volume factors (weights) + * to apply when summing the samples from the n input channels. + * Sample values are added to what is already present unless + * initial silence is explicitly requested. + * This works directly with identical floating point encodings. It + * may have some optimization to work faster with mono or stereo on + * either side and slower generic code for arbitrary channel counts. + * You can use syn123_conv() to convert from/to input/output encodings + * or provide a syn123_handle to do it on the fly. + * There are no optimizations for special cases of mixing factors, so + * you should always be able to predict the number of floating point + * operations being executed. + * For fun, you could give the same problem to a BLAS implementation + * of your choice and compare the performance;-) + * \param dst destination buffer + * \param dst_enc output sample encoding, must be MPG123_ENC_FLOAT_32 or + * MPG123_ENC_FLOAT_64 unless a syn123_handle is provided + * \param dst_channels destination channel count (m) + * \param src source buffer + * \param src_enc input sample encoding, must be MPG123_ENC_FLOAT_32 or + * MPG123_ENC_FLOAT_64 unless a syn123_handle is provided + * \param src_channels source channel count (n) + * \param mixmatrix mixing factors ((m,n) matrix), same encoding as + * the audio data + * \param samples count of samples (PCM frames) to work on + * \param silence Set to non-zero value to intialize the output + * to a silent signal before adding the input. + * \param clipped optional address to store number of clipped samples to + * (in case of mixing to an integer encoding) + * \param sh an optional syn123_handle which enables work on non-float + * encodings by utilizing the contained buffer as intermediate storage, + * converting to/from float transparently; Note that this may limit + * the amount of channels depending on the fixed internal buffer space. + * As long as you have up to 128 channels, you should not worry. + * \return success code (e.g. bad encoding, channel counts ...) + */ +MPG123_EXPORT +int syn123_mix( void * MPG123_RESTRICT dst, int dst_enc, int dst_channels +, void * MPG123_RESTRICT src, int src_enc, int src_channels +, const double * mixmatrix +, size_t samples, int silence, size_t *clipped, syn123_handle *sh ); + +/** Set up a generic digital filter. + * + * This takes a filter order N and coefficient set to prepare + * the internal state of a digital filter defined by the transfer + * function + * \f[ + * + * H(z) = \frac + * {b_0 + b_1 z^{-1} + ... + b_N z^{-N}} + * {1 + a_1 z^{-1} + ... + a_N z^{-N}} + * \f] + * It is your task to come up with fun values for the coefficients + * b_n and a_n to implement various FIR and IIR filters. + * + * Since it is easy to do and useful, this configures not only a single + * filter but a chain of them. If you do configure a chain, the choice + * of mixenc and channels must match. No conversion between filters. + * + * \param sh mandatory handle + * \param append if true, append a filter to the chain, fresh chain otherwise + * \param order filter order N (filter length minus one) + * \param b nominator coefficients, starting with b_0 (order+1 elements) + * \param a denominator coefficients, starting with a_0=1 (order+1 elements). + * It is an error to provide a sequence that does not start with 1. + * For a non-recursive (FIR) filter, you can set all following + * values from a_1 on to zero or choose to provide a NULL pointer. + * \param mixenc either MPG123_ENC_FLOAT_32 or MPG123_ENC_FLOAT_64 for + * computation in single or double precision, can be zero to refer to + * the value demanded by an already present filter + * \param channels number of channels in the audio signal, can be zero + * to refer to the value demanded by an already present filter + * \param init_firstval If non-zero, initialize the filter history with + * a constant stream of the first encountered sample instead of zero. + * \return success code + */ +MPG123_EXPORT +int syn123_setup_filter( syn123_handle *sh +, int append, unsigned int order, double *b, double *a +, int mixenc, int channels, int init_firstval ); + +/** init_firstval is the effective setting (extreme coefficients may remove the distinction) */ + +MPG123_EXPORT +int syn123_query_filter( syn123_handle *sh, size_t position +, size_t *count, unsigned int *order, double *b, double *a +, int *mixenc, int *channels, int *init_firstval ); + +/** drop the n last filters */ +MPG123_EXPORT +void syn123_drop_filter(syn123_handle *sh, size_t count); + +/** Apply a prepared digital filter. + * + * This applies the filter prepared by syn123_setup_filter to yur + * provided buffer in single or double precision float. + * Handing in a non-float encoding is an error. You are supposed + * to convert and clip before/after applying the filters. + * + * If you got no filters configured, this always succeeds and + * does nothing. + * + * \param sh handle + * \param buf audio data to work on (channel count matching what + * was given to mpg123_setup_filter()) + * \param encoding audio encoding + * \param samples count of samples (PCM frames) in the buffer + * \return success code + */ +MPG123_EXPORT +int syn123_filter( syn123_handle *sh +, void* buf, int encoding, size_t samples ); + +/** Set up the resampler. + * + * This works independently of the signal generators. You can combine + * syn123_setup_resample() with syn123_setup_geiger(), for example. + * + * People can get worked up a lot about differing algorithms for resampling, + * while many folks can actually bear the simple drop/repeat method and most + * probably do not bother about the distortions from linear resampling. + * A testament to this is that in the 18 years of me maintaining mpg123, I + * got bugged about the missing dithering and on subtle bias in shuffling + * a playlist, but people seem to insist on using the NtoM resampoler inside + * libmpg123, despite me warning about its horrible consequences for audio + * quality. It is a plain drop-sample implementation. The only good things to + * say about it is that it is cheap and is embedded with the sample-accurate + * decoder so that you do not have to worry about offsets in terms of input + * and output samples. + * + * Anyhow, this is my take on a reasonably good and efficient resampler that is + * neither the best-sounding, nor the fastest in terms of CPU time, but gets + * by without significant latency. It needs far less computation than usual + * high-quality windowed-sinc resampling (libsamplerate), but cannot beat + * libsoxr with its FFT-based approach. The less stringent dirty mode (using + * only a 72 dB lowpass filter, in practice still close to CD-DA quality) + * comes quite close, though. + * + * The selling point is that it produces output samples as soon as you start + * feeding, without any buffering of future samples to fill a window for the + * FIR filter or the Fourier transform. It employs IIR filters for low-passing, + * possibly in multiple stages for decimation, and optimized interpolation + * formulas using up to 6 points. These formulas, based on research by + * Olli Niemitalo using using Differential Evolution, are what enables a + * dynamic range of 108 dB, well above 16 bit CD-DA quality. Simple + * cubic splines after low-passing distort up to around -40 dB in my tests. + * + * There is some effective signal delay well below 10 samples. The impulse + * response is about 3 samples late, so this is well inside the realm of + * (nonlinear) phase shift. The phase distortion looks bad on paper but does + * not matter much in the intended domain of application: the final change in + * sampling rate before playback on audio hardware, the last filter that is + * applied before the sound hits the speakers (or all the other filters + * implemented in your audio harware, that you can choose to be ignorant + * about). Use better resamplers for mixing in the studio. Use better + * resamplers for converting files on disk. For live playback, consider this + * one because it is good enough, fast enough, cheap enough. + * + * Note that if you call this function repeatedly, the internal history + * is only cleared if you change anything besides the sampling rates. If + * only the rates change, the state of the resampler is kept to enable + * you to continue on prior data. This means you can vary the resampling + * ratio during operation, somewhat smoothly depending on your buffer size. + * + * Also note that even on identical input and output rates, the resampler + * will apply the full filtering as for any ratio close to that, including + * oversampling. No special shortcuts. + * + * A returned error guarantees that the internal resampler setup has + * been cleared (frees a little bit of memory). You can provide zero + * inrate, outrate, and channel count at the same time to that effect + * without an error message being produced (but still SYN123_BAD_FMT + * being returned). + * + * \param sh mandatory handle + * \param inrate input sample rate (nominator of ratio) + * \param outrate output sample rate (denominator of ratio) + * \param channels number of interleaved channels + * \param dirty Enable (!= 0) the dirty mode for even more 'good enough' + * resampling with less computing time. Offers -72 dB low pass attentuation, + * worst-case distortion around that, too, and 85% worst-case bandwidth. + * With this set to zero, the normal mode is used, offering at least 108 dB + * dynamic range and worst-case bandwidth above 84%. + * \param smooth Enable (!=0) extra code smoothing the resampler response to + * on-the-fly changes of sampling rate ratio. This involves keeping + * some per-stage history to bootstrap additional decimation filters and the + * changed final lowpass/interpolation. + * \return success code + */ +MPG123_EXPORT +int syn123_setup_resample( syn123_handle *sh, long inrate, long outrate +, int channels, int dirty, int smooth ); + +/** Return the maximum allowed value for sample rates given to the resampler. + * + * Not every possible value of the underlying data type is a valid sample + * rate for the resampler. It needs some headroom for computations. This + * function returns the maximal rate you can specify. For 32-bit long, this + * will be above 1e9, for 64-bit long above 4e18. The minimum is 1, of course. + * So, with 32 bit, you can speed up/down by a factor of one million if you + * want to keep 0.1% precision in the rates. + * + * \return upper sample rate limit + */ +MPG123_EXPORT +long syn123_resample_maxrate(void); + +/** Give upper limit for output sample count from the resampler. + * + * Since there is some rounding involved, the exact number of output samples + * from the resampler, being given a certain amount of input samples, can + * vary (one more or less than expected). This function is here to give you + * a safe output buffer size given a certain input buffer size. If you intend + * to vary the output rate for a fixed input rate, you may compute the output + * buffer size for the largest intended output rate and use that throughout. + * The same applies to the input sample count. + * A return value of zero indicates an error (zero, negative, or too large + * rate given) unless the given input sample count is also zero. + * The resampler only produces output when given new input. + * \param inrate input sample rate + * \param outrate output sample rate + * \param ins input sample count for one buffer + * \return number of maximum output samples for one buffer, or zero + * if no sensible value exists + */ +MPG123_EXPORT +size_t syn123_resample_count(long inrate, long outrate, size_t ins); + +/** Return the amount of input samples needed to recreate resample filter state. + * + * This returns a number of input samples that should fill the internal + * filter states good enough for output being close to that produced from + * the full input since the beginning. Since recursive filters are employed, + * there is no exact number that recreates a state apart from the full sequence + * that created it the first time. This number here shall be more than the + * non-recursive history, but not by a huge factor. For extreme cases, this + * value may be saturated at SIZE_MAX and thus smaller than what is demanded + * by the above definition. It is assumed that you define a maximal practical + * size of history to consider for your application, anyway. + * + * \param inrate input sample rate + * \param outrate output sample rate + * \param dirty switch for dirty resampling mode (see syn123_setup_resample()) + * \return number of input samples to fill history, zero on error + */ +MPG123_EXPORT +size_t syn123_resample_history(long inrate, long outrate, int dirty); + +/** Compute the minimal input sample count needed for given output sample count. + * + * The reverse of syn123_resample_count(), in a way. This gives you the + * minimum amount of input samples to guarantee at least the desired amount + * of output samples. Once you got that, ensure to call syn123_resample_count() + * to get a safe buffer size for that amount of input and prepare accordingly. + * With this approach, you can ensure that you get your realtime output device + * buffer filled with each loop run fetching a bit of input, at the expense + * of handling some additional buffering for the returned sample counts above + * the minimum. + * + * \param input_rate input sample rate + * \param output_rate output sample rate + * \param outs desired minimal output sample count for one input buffer + * \return number of minimal input samples in one buffer, or zero if no + * sensible value exists (invalid input parameters, or zero outs) + */ +MPG123_EXPORT +size_t syn123_resample_incount(long input_rate, long output_rate, size_t outs); + +/** Compute the input sample count needed for close to given output sample + * count, but never more. + * + * Call this to get a safe fixed count of input samples to make best use + * of a preallocated output buffer, filling it as much as safely possible. + * This can also be achieved by calling syn123_resample_incount() and reducing + * the value until syn123_resample_count() fits into your buffer. + * + * \param input_rate input sample rate + * \param output_rate output sample rate + * \param outs desired output sample count for one input buffer + * \return number of input samples in one buffer, or zero if no + * sensible value exists (invalid input parameters, or zero outs) + */ +MPG123_EXPORT +size_t syn123_resample_fillcount(long input_rate, long output_rate, size_t outs); + + +/** Compute the maximum number of input samples for a resampling buffer. + * + * Upsampling means that you will get more output samples than input samples. + * This larger number still needs to fit into the data type for sample + * counts. So please don't feed more than the value returned here. + * + * \param input_rate input sample rate + * \param output_rate output sample rate + * \return maximum safe input sample count + */ +MPG123_EXPORT +size_t syn123_resample_maxincount(long input_rate, long output_rate); + +/** Give exact output sample count for feeding given input now. + * + * This gives you the exact number of samples you will get returned + * when feeding the resampler the given additional input samples now, + * given the current resampler state contained in the handle. + * + * \param sh syn123 handle + * \param ins input sample count + * \return output sample count (>=0) or error code + */ +MPG123_EXPORT +ssize_t syn123_resample_expect(syn123_handle *sh, size_t ins); + +/** Give minimum input sample count needed now for given output. + * + * This give you the minimal number of input samples needed right + * now to yield at least the specified amount of output samples. + * Since one input sample can result in several output sampels in one + * go, you have to check using syn123_resample_expect() how many + * output samples to really expect. + * + * \param sh syn123 handle + * \param outs output sample count + * \return minimal input sample count (>= 0) or error code + */ +MPG123_EXPORT +ssize_t syn123_resample_inexpect(syn123_handle *sh, size_t outs); + + +#ifndef SYN123_NO_LARGEFUNC + +/* The whole block of off_t-using API is optional to be able to build + the underlying code without confusing the compiler with prototype + mismatch. */ + +/* Lightweight large file hackery to enable worry-reduced use of off_t. + Depending on the size of off_t in your client build, the corresponding + library function needs to be chosen. */ +#ifndef MPG123_NO_CONFIGURE +#if !defined(MPG123_NO_LARGENAME) && 0 +#define MPG123_NO_LARGENAME +#endif +#endif + +#if defined(_FILE_OFFSET_BITS) && !defined(MPG123_NO_LARGENAME) +# if _FILE_OFFSET_BITS+0 == 32 +# define syn123_resample_total syn123_resample_total_32 +# define syn123_resample_intotal syn123_resample_intotal_32 +# elif _FILE_OFFSET_BITS+0 == 64 +# define syn123_resample_total syn123_resample_total_64 +# define syn123_resample_intotal syn123_resample_intotal_64 +# else +# error "Unpredicted _FILE_OFFSET_BITS value." +# endif +#endif + +/** Give exact output sample count for total input sample count. + * + * Use this to determine the total length of your output stream + * given the length of the input stream. The computation is exact. + * But: It is only valid for a constant sampling rate ratio. If you + * play with that during runtime, you need to figure out your output + * offset yourself. + * + * \param inrate input sample rate + * \param outrate output sample rate + * \param ins input sample count for the whole stream + * \return number of output samples or -1 if the computation fails + * (bad/too large sampling rates, integer overflow) + */ +MPG123_EXPORT +off_t syn123_resample_total(long inrate, long outrate, off_t ins); + +/** Give minimum input sample count for total output sample count. + * + * You need to feed at least that amount of input samples to get + * the desired amount of output samples from the resampler. Depending + * on the resampling ratio, you may in fact get more than the desired + * amount (one input sample being worth multiple output samples during + * upsampling) so make sure to call syn123_resample_total() to get + * the exact number of samples you need to prepare for. + * Again, the output offset is only meaninful for a constant sampling + * rate ratio. + * + * \param inrate input sample rate + * \param outrate output sample rate + * \param outs output sample count for the whole stream + * \return number of input samples or -1 if the computation fails + * (bad/too large sampling rates, integer overflow) + */ +MPG123_EXPORT +off_t syn123_resample_intotal(long inrate, long outrate, off_t outs); + +#endif + +/** Resample input buffer to output buffer. + * + * This executes the resampling configured by syn123_setup_resample(). The + * input and output encoding is fixed at single-precision float + * (MPG123_ENC_FLOAT_32) and multiple channels are interleaved. There + * is no implicit conversion of other encodings since the fixed internal + * buffers for that may not fit your chosen extreme resampling ratios. Also, + * dealing with double precision does not make sense with the mathematical + * limitations of the employed filters. + * + * You are responsible for having your buffers prepared with the correct sizes. + * Use syn123_resample_count() to ensure that you are prepared for the correct + * number of output samples given your input sample count. + * + * Also, ensuring a minimal number of input samples using + * syn123_resample_incount() helps to identify an error situation where zero + * samples are returned (which would be valid for low input sample count). + * The only error apart from handing in an invalid/unprepared handle is + * a too large number of input samples. Check syn123_resample_maxincount(). + * + * \param sh handle with prepared resampling method + * If this is NULL or if the resampler has not been initialized before, the + * function returns zero instead of crashing randomly. + * \param dst destination buffer + * \param src source buffer + * \param samples input samples (PCM frames) in source buffer + * \return number of output samples (PCM frames) + */ +MPG123_EXPORT +size_t syn123_resample( syn123_handle *sh, + float * MPG123_RESTRICT dst, float * MPG123_RESTRICT src, size_t samples ); + +/** Swap byte order between little/big endian. + * \param buf buffer to work on + * \param samplesize size of one sample (see MPG123_SAMPLESIZE) + * \param samplecount count of samples + */ +MPG123_EXPORT +void syn123_swap_bytes(void* buf, size_t samplesize, size_t samplecount); + +/* Wrappers over the above to convert to/from syn123's native byte order + from/to little or big endian. */ + +/** Convert from host order to little endian. + * \param buf buffer to work on + * \param samplesize size of one sample (see MPG123_SAMPLESIZE) + * \param samplecount count of samples + */ +MPG123_EXPORT +void syn123_host2le(void *buf, size_t samplesize, size_t samplecount); + +/** Convert from host order to big endian. + * \param buf buffer to work on + * \param samplesize size of one sample (see MPG123_SAMPLESIZE) + * \param samplecount count of samples + */ +MPG123_EXPORT +void syn123_host2be(void *buf, size_t samplesize, size_t samplecount); + +/** Convert from little endian to host order. + * \param buf buffer to work on + * \param samplesize size of one sample (see MPG123_SAMPLESIZE) + * \param samplecount count of samples + */ +MPG123_EXPORT +void syn123_le2host(void *buf, size_t samplesize, size_t samplecount); + +/** Convert from big endian to host order. + * \param buf buffer to work on + * \param samplesize size of one sample (see MPG123_SAMPLESIZE) + * \param samplecount count of samples + */ +MPG123_EXPORT +void syn123_be2host(void *buf, size_t samplesize, size_t samplecount); + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/win64/libs/libmpg123-0.dll b/win64/libs/libmpg123-0.dll new file mode 100644 index 0000000000000000000000000000000000000000..deb7e15c893e724ac9da94b12db423e15c83cb15 GIT binary patch literal 427370 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�XJGEx-!os=r?FR5F-!>bvdT*c=|Kc8a^ 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%0D~O zB$(L|S<1Z5pN>_il_p+Uc+d|7V%4QyBW7_#WdOxH!b4T`W4i%B%+t*LPr;;6kC_dL zmqg4oPvUA*Y->8Ct2t3NHWNSK#zIOqA9PxVqHZLA)8KSEmBR3gsE1pNU1qA5f3+GW{^?O?#P;(VR+U6HN5AFp*+d8*7y&k=+>PRJI4)sfR zHl3fW)zy}BAj&Q-46%9Zw1`;As}V20(SC`!a*JZGk2H`PrBkNvC0n@k55@3Ay61?~ z)7gJagw~?#GTcnI)$3qY5+1iwo|(Nh99qYc8>-shJzOotGTj|j2O0^~ZZhZ={#C=C z)A_OePvQ!N!z*6+lzmIZEm@qGIztws()OfVzS|7%MmMy_O=mw=Le3@LbMf9Q<5gP` z$Zyq^;tcus8S*Eaf&K+UUaHG+T_#yA0Ss>p`Mc~}cEuHZ=Twa3d055w;2s>26K8+f z^c6=}*c@rK=1h>QaLte+K9|2&4GiaI=CW5~fj7#WsnrEgvZ(kVfHG!c?+Dd+19ejX zg{xX;R{$l`Gjj=a{&WL%cL2rJZnjVyWXbf4vp-WP@GUbiVW$x5D}zTDy@rz?0>I_5 zTj`B%;A<--g;05S$LUtAqvwD zo|9yshZU2t&Dv%2FpSkKjZ<2Ohvo{-5!H@Oki5D4T1TYw&A19XG@LE8v4k9@VM^1h zt;C#BR9>fxLrZeJn_na@jaH(5;?zu2OlmPzRt~lk%v9nhy~)fleox-*Gi>?G%;=|m z%s{3c%$V|fS?y7?!<=`l4h>BwLWXc_hD$D2{&1u(1YETrBKs=?jkc-yJB*ptWzq~V zJSQdULq?8Xywo>vSy!MKaS*Jv_ zu34w{LZG}swCn8~M0>Y=%dWVRn4F3+JP)h*K5gKH`GX?YXqjq9k>{AkxF(>YBp_`R`AbpUU4DGn zP>YEVDDpzZ+wz8;qbUef4*#sKl zjh}z1p<5B_a6`5t)?XU3)wsQorHkaI3N=gity4Zw{>wUL$=r?(xiMr|dYE|?!*cHh0`Umv5b=JsB} zAkEVtjfWp-Y#pcrTLYwaecE#+22Wqe==$Hg?%E|4ZY3(JFn= zkd5|t{+l*3zs?`kwzFLvnV9j~p0MZr2g{7ilqT^vD~hDXdtpR*^%4;|G#;+u01J{^ z!$?@cF+FC5H4m{_O|Sy3h47FWReuXv00Y+Ud%x(;ajOvyJRWHPphQL{-9Kp(=Qi*u zwy~F@=UiD5T6bEwJ{x}>UmPC3W+T#qMEcz9t@+VVi`_@RYpqquC<4546|c3df!IHd(Vw3>0dC4-MY@t|52 z9m7hAw_$urSvIOk15<{n|~H`F98FpW%be`u8#OOmRAv8)_cLKteux zH&i3ewu1FQ>{)fV`UwUMmXVr{M!Bt1{u$}KszhhIHgN~l?@$pc>HR{yYI|OM`SwnU z@B^USFj%~PxzJICH?Y+U!WpWE5f zU1YX;_n1i)sKKXyx-JY)svwLy8h0Q725YJZXkYP2bkMMbH<1=I%tl)t(Gb)JE`S-28| zp9xnNA;)QL3Xv5_FEjS@=Shdc3bHM$IyyZ1R(49XO!Z$*T+vlQ61<;3c6Ltx@rs z-p=#)CA`{xdn8y1Btgi(Jy;1o)|Y3N0$#2)YXNCIvl#GlvsnyyG5xN#so5;%?KlKk zsWZ{9+nxErZzc1pZ*Nn}nZS-!9js}%({=U42DCyaXiO|@zhf? z!$Rq~?wnBb^D9BzdO6I>6|I-U+%v3`7_wgQiTA%@_{6`xW^Y99Z~4T#VZ5Y&vz2r1 z%(>*)Ttn(MT$i@t`Z>4|4Id63r3iCS3fgmo7T&QJ_|WG$6Z9-d<2RyslP7dP>VU3S z8@g_w1M+si09`D)T+oSG^U-BnbooN}#1)|927-2_dtG1twa?*s&+&ym1a>m( zK=*rxs&Ib&38sL5d({@drBzAjVe-g~7xLeO077#*C(`9w7@U;k^3Yi$giY=tPw3Yp~iUd#XSN3R%MvFvLp2o{5 z&z^?%$hYz3qgx-fcm`NJFM}5Buf3wSTh75if&ehRA%w!8nIm-fbwGDZ8@ejc(Um9q zrTb5VHKz`A(#)}?>pIQitOaN0WT7hqK|EF8!0Cfute=1fCZ3#o0~PJf@!Ikz$7`Jd z_f6`X-zL?3`)>f+wo;yvvrK06><}X?nXSn^5z?k_Y)H#qSqP5SnGkY#P7NWw$hUxr zEWyM=FrWE?C+*lQB}jyN5~Rcgm1U7SUpV-fkOh)_q2gm|mT(CpAF(W<5i&j!Swa9B zEu-$Km5>sLZV0ef`UUrY&cs2MMAC(9-f9QW37A$ojWvpZ*x7^g&d*jg@Ri-*>St0zL@3GZ3X1-38y z)77v3!TtOVB(V_fK2NMTfy&oBFDW8A#eKvXP}$Ih{V zjR7PF(#f0&HqfF363w0DvA?u|HuLZ}RA!Rh&$MBbqjUp*Xm^$Fpc!_>2S0P^H>gC; z2Y*$CP;+Oc$xab6LH$GJu7n{TpmZK;H=0n`}rx-{3K4gL77C?3}x@O`n@hKOESrgz^Rlwu(1d zc^yuR%3rc9p?5;o=4czkv}+CBQ|c4HL8;qGjN#dCAXDVPp^6foohrg>LX(!?^W?Jf zlH-0r6LR@zgZY7uV*?s2bsMtI8PJHSb`;W%`ecg>F3~ma;_~BrQ4+A}-X|SCAR4fl z&5!D0%my^beN=4(4@Ke@488-Od+>Mk9 z7W3Ya`>-aP>>sfKc*b8Jm2NvcPj+;``eLuqAX37uT|gV1^PEk%UI{nZgm1+Ltk-x~ zvSjYTtwUot0&Z&|RkY@4o%Wpu0hxYletD1aUo2bA>i&eP?{IM=dfR(HcE_e4D+`q-kG6f~L)~43kMiOWQ4{d1-(c zRrRP8jbYn)z2D9++jibcJC~9~Eo&)+MTZaUE&r#!0|jYTHyhhZ!xO1umj&X1r)oLT?F{RbYAh8h+mg|3&0 zdq^y9tpqt&ByvwIJ=^^cf6*M~96OKSk~BA?dY^3VZ|EV4v3T^+17V3B<~5$6fw~5v z!IsL?!b^MR7uWrAe+i1r)yFdYK`^vGj}bEADq>1>Tlkt$$QwroVP{G&-ljM4cK$%# z%x)EVPPlZr60zDRC1c|7F6{JCd;=d64bNb?Pfmv>v>rJ#SbCDvS%pfO5}g^W{>ka= z59A`!nZlf!ob)_j1|_p@(p?qA!9gS^Z3xm034$XE-YkLx!HB*}vW*AlKsqOs!#7i; zven^!Ilo?lwc6ZfQF*_{nFVT__?i`2$Yz?~Hl$ya1@ubD=gOxi${z~XeZSJYlBoHt z4$hqp8!x3->$m%KNBjZKIjp z>HkM;|JSPjaoUew{P8qa_X$9il+$+3v1jp$WUL6P7?L|O{qUXgkQS@Es%h&$yB?^m z3>s+9lF`#5qoR1#>Pq%WeUFUR{bqlB@IHHfsJfpfxrQ^XiQ*15yVEn&FH>Y%7cN^X(s~xs+S8f)ZJ%v^fN0yk z7-_?A)M}n75)Z&-FRYrY+zwu|@Lx@5ov`>Gdbi&{W}a>d*yePs$qCJ%vH97|9%eJa zEvuR9`t8RoX*H%t*l#pHgapB^?}$N}qlzM&U7t@N)j4q#cqfLh+&&S?PlTU(q4}A% z`LZNkxe(aQ!=Ex(@<=eTjh7Jr>igTCggvmE`kUrSH+8RSgWGL4jm93lwY%nb3ei8; z`!B%^SbyL~Y2>(Gy*?A=xSd$e%y^jVaRx$zG&r&_uN%?A!QiM*Vs&G7^HRDqRyS@B zZsd0*z&yUFZpIhf712^uH)Su8d+NsR3omu|){Vfq<e|q{klFfav!~a38_n7)HSg1e{C9 z?F=uSv5Vi9@X`@`Vs#__Nyc!BOGn_ha_Ja~G43-;`gz^B-E||rAby_;79ZSr$=|I* z;FaxKbmIKzS<$hkP3LU8oAxS6-EG#M)ZL~K{L~sKtY-)c z+s$F(h>V+htbK32&INREmUx>Q565FqC6kGrLL#h1DTsv~e^$2>pAn0kG2OUeZ&DsUfn6@6H zn3Pd@P`=X7iJU@@*%J8Zg}u&2d#io~QNg&}Ek5S;RWc>sz=`XrFCJou9C2{T@jTk`@8aT2oLD?5MA>w3SxNcgwQ+qF$HOx5 zFmp-Qa&-P)1GmH`ouJELxpHn{63<>Y0DJ#jwpU&Y6_(ua7(c|Jcc zGjFm?cjV^*uzY+w#{NtE{GA8$^Y{Dw{GSa!A5Q+ou<&wD555JKw@=<+*?7ag(~70? zzwF%V^Z2*;ygh2H+60uo8}4_){kMsqUrVnVI`}d_FG*JS>w)t5`5Io~=L=i;dHGI; zpWm_dKmQd!zoIfe=Od9*N0z>y$cZ9amVROrjb&N-Y1?=`->~#&WO$td{Uk@IlUE7e z@b-qSm&Rs0&ix=R-*WDINekT>$MT0}>+K$3gYpsS+N5vtdA{gXN~6xSwS0aRTW{00 z^6@q;B$Yg$;UT&defcc?CPP~}v0Gv34SfYH{d0!C{u}(fS=6dlb-YTA{_6VXE#l*! zpLwPwU(3gzpnQ+}G9Ulk_uBLEOTUVb|CI@}^B?s%p%VP?^Z)o){QPF@Seg(2GCzNg zVTg;&TKlM3j8g$qZ1~QDd7Iz)yv>4M@HTLOteoZCsB^1=5kY-ZYi)Xr6RqPwbm`d0 z@x^tcL%fwmBE@ydPI~!%v@Y41r7zMeT6bA?cxf!sCt4TH5w5<`y7*xx-ASa=MUiEZ z{-n#*%gLncqI3gEcZAaYh;&CP9hZMLkQ7ZzvivbgyPBj!NZL(Fe@arMEelNjs#X=j z;RXJ%JMIVUhQ@o@?gy?@9aW)};SiDF9M*&oDlNmSX5&gPLkjK5qe8eV!41smNh zRu|VrVR5G}+7-ZKVs)c)Vs%MXX!JLzh0+uh)m=p4lSkE!4wJ42Y4Be)x~I~8r!M+! zszkDHlB|1O@@Rm+RX6%rfR6Kb5ntucyK37YfBh>-EmCDmIxkYkNR)+PKX(wmSc51_ zQ&;K%BgxtnuK5Eq2DhRl(sL!qs`^LRGg0wW4{pen7%P_kZ96Ge-ZzVOJ&h3Sha}^| zvV(+JUB9~@snu!@I?QZ#Y$T_=HN&4aYbvr?EojsAdqo-MkofH;N zs$P<%h9`z!VdswpHtsq+shYT77}bTdw-Hx`E5$5+@5}Y$PTQe$7>2QY5}wNT!_R0T z1j(>-T`xc6>ln5E0KGv-}X*(XmDoGAIaHMTp2PRp^JD@g^ZngjC@c z$ly6mts&vu3PP_Ns8ExWg_4D#ayzX-&$HJ8b6H!97UPO5`sn>8jj_7#-q6JA;5 z2o>J%UC2Aw3rCzj$T3X4egQ_2Fc&Ffu;i@e&B+QHZTLuD(R!E zY_*N8$<17G$Djc3s&*&_DllAXQVt1HHV8n~TWcVlKlb-yZhhV+6{(1qQwL_k{a&~< zfq-`V4eG$TfU2+DH4Ty$Zv9D{OpVf=__%=jZ41}_tRq~rv=)PT{-D8S#+AlX9))u5 z-^DQysfFJ=vVE3r!A>9I)*Tk&IvEZE@ki+wD{1X!8&M^tNb0c7;A^sh zcgUv9R1nBpGdA##1vZdwvwYx!Z9Z;eDWT$Q^pi*0CvWtV%N-|4bxV)4V1u7j4mb(4 z^Uj+#u&OXf?q_sogO7Jedlb)`KtJg!KdI~;spfV4^{c|KwGn@mhO#Mm$8MW>s(R`P z&0~pFz2-4?;(g&qrbfEe?2_=-h!q_qjI6{RnLRTuPuzVStmHYizn?b!y|k^rJIHNg z-oDJHZw34w=FrUzE$VT`X&etzEXhW0dyxsOHv3)ZrR#h$V2ODFp6|Jd_%KIYu(f$4 zf)zXdPnb@;#{Y+i`VL5%v8H*lIV}V)>2pTe^c;PJuUyjx^C#$dzT*4a_*DnZA4vX*2|2lt!|Q+S$?wrf1jUp;k6*@m>9~Je1;PJ^CNZ67pv<;R3dUb;#6^y zVvY?N#oUx%NBdsr>O4o9HL^8zOlNYVkZ-klSp{D>siTe)vEqt0PX(h zU-Ew{lVll&w~ZaOgWVE$_APZg@felOqx3L>O3@8iI{k=fog3n16nFJ4b-NYUxt)va zM&%UOl^!0gEA0}ko6gb6sIEYTTRAw*#|OzT;;EaIUA*&6hNJdY7u&N*EPCr80M~m- z-XM*=K@F_jDV&(5YQ@U==3>%Jl4toF@+9M!w-duyTtO$&3k-AD6jr=v62!cDvNTPU zPrwX6)kl|!^esuv$Sv_cL^A(pQCo3(Y6NZ054p*N!%I#NL5gyxcs@*daXNW_!h1dQ zt)urFZS1~@RIM1lr*w#E&MS}oU_O@5y+6b@wg|%N{xY91e#`K?g(*Lo$J1vQm89=4 zg3H-@lz(2arIIc$N(|l-uHMBEElw8Ykoc{SRyCoW zaUl%3oFP|CL>SOtUcrn3c>;JsD&}lI(u5x?%ehgYhoDf`XFvqpMXo z$;xcu{Io{m;b#ZbTA*;brd<0X;{HLnR_zS6J!N+f=HMB)MZhtA=l!I(E;l^)RErgF zn+B^drtvEd^bDYxdZ~M~ZdRx8+yjOz)kGajVXz}4&pR@nX8x{ovsHtdpR#@yd%G<~ zMwh=E=7w}=FNOkqFS_*DZ-ZW4do;h;)0dR*;bMs=i^yc_F|4~fBZn+1bu*BIsuXL4UVcMWAv;+)sZpS#ZA5KUj8xoZkeT`Eq5 zEc;#%Ux&K-YEhrKUGAg|C&y??U_LR|fF?EBn7M0mf2Cyp(YC^wJVaj&d}$7v+(TcQ zS(u}o^Blg;*NkLv7VtGjbDoLosW{D!CS9)5?eycmt0<-}n=D(&G&!1Nd5Y6Csxd%F z=?ZJG-zX~QVX3@D*SbUIjH$S>X(?sK=M6=*Z`(Hp!CTN4VcFs8MfNR6Qyg|JKZMA_ zb3e*4q*wKO)YZH_eqS3AaiWb{b*hFC_KoJA7X+h?+I*O;-LNG%A)Hk{3nJ}Oy! z@LS=UBT3><*oMTJs&yI-q1PM@%a|y)*PqE5sQ8kh-s885?T|m;W85DY$sn#1>xjY_ z>t$>kZ}sJH9hqm#k1-2G%{0)l2Cb{q)pg7;wW~pPFeJ6QkVt4N2hbsxGN7Yv z&{r^D{NZ1LGf5uSx>y>Aqk~Z?1IgaGn(UJ>H7o#U@YzwpDj`EV&|hNU4=PPicvV#+ z;)qMn19SwSU#e#?6u8p4-B76hOdE2|AU8;Q-!G?|EmpX89^a_uny~ZlC@!wwUa0kIH6iV0N$G zXPN!*a^`9zS!?!f-h@&Sn-Xn17*N`knEmZ#1dAfgaaZ#OHkGC+%^cf&2HCW0*|W$+ zu(piHXj|KFt?PXpu3cr*xt3#X{=5D3k>)TsNM>_bOB6a$3nS<`J^v#6*hlfTE2Ori zj`mX;S!VOA*v~7@CcWN%#eKD}8a_L0fUSPioNba<1xiM~%7{H(Npq*CYYrGXXi1ra zhXLy|+hvAoHAdh>Pv!Jsd2sr$E)%W}F?a^7hbPKDJCPm($CjPn7M&Q}7_QZLVLbFa z+f7gD6ss%CMqJj zjm_`e9$@3ltKgja{({6gMRim2v)e~D%sijSY*LOn49q$0;~Hn47L@96mFlpzNJ=%c zx2iNPMykVuh^iI2u8NG-U7nc?t0@_D!#$r!UcAT58Zu{<8rrCL`EoKVe<%#vzQd7L z=nI`@d9TvWHLR=VWXEXYxmeYxdArlRNG_;F!RhgIJT$a!?CBw`i`tR*-h;PVwEV-h zA5jhp+!L6n+W2(Z*q$xnv0~j8*(}#$!9g?U4J%2H?p&7`1{SmG#e07dU$?bn@XO)a zyMa)9ok>pFL+fH^9*l*YRA+K3IK3pDBrFr)M&}Yph!K2dHJ6 z*m!DCynL5c%btipBhbpuJ36{+HRoAJl2TgSMz*mLrR>|Klzr-9I?uYro@ce-cpu-? z<~%E&{&`U`ZsvOb6CZ6UTpn(X82LpMxn1;0vHKH?y#X{Uj`X&$D|kIzeJ#`lw_P-l zhwJNJJCop%ol)@DSf6O0VNSzl!F|(aec_>{i0X{r$Q%1brxXU>nGR1+TN-2JQH?TE zxx9y-c&Xx9WGwV$F6_7)^c*jne+SiRo;Zo|1r&u`H2~|Ld=`Xb$QZj#DKCT_Gz^jw zV=w33Xzl`n@sI5Loy+B_pDR81mIn^!@&bMD_EU}#&#%kWO;VW*CD#T~QXNRDIHh~o z08Ep~kdHDV6qr}F>2;48B4FLZUJ7alV>$4Spw*0W1<8PAS^U$L;=HbgI#rZYZ{#x; z?$;u{Ty;TKB@_EBt%;^zNS!ka5N$tJH;-=@?#z=kq1aolD4hod(u8XyP2f&*-8$GS z;c=>$oNLa~{Np%W$2aICC!D;|9Ky+=R$rCnNpot4aqUy)v`+5B!0Ky|%r&QPY6t=Y zMUfkg@E~ZDCym%a>CFip!SY_=JZVnh6l{*+OedJVmoyo2uKTSR;}f**Q2(byfw<-C zGSR!D$W5OfBeR^@fVemD)^!?h>W7zcx2e&HJI`8af^Yq;X}m`b{l+}G6A}Hw_OGr? z;7+dkEK9@EFyhdaLJc)Go#S#L$*GVen*LCMGsY0)7)KDOiSXp)m8Z^1rIf_$jJ~{1 z=^slC)p)pkP%K5iQ@LNrb42pA7MgV?VKGpZkM!jy-E9&7O zMS84{)7~VZPS*g#cP0DW@-2Z$O!RYG1jf`Nkl;7&j1{E&N53d!v_y^rUd|@gG+)8?&|jB> zbAz&{8J4G;)Rhz~;Fq)*nlpp{mP)zRul)*@@_L#QGgCCSCwe1xpu{<9GnWdE!H;8o zX@)nHxa+5H!#%ZWw22-H-Sv}pO!TI-0I+kSht_$$+d^7thmP8-w8*(OUUDaLWBR03 zx4fO=s$b8J=Lvx-jnyYvV9ML3UtVeT%j?lEuOGuWTT#f%xJ^~q%+VS;cRGM*HDDy{@^ApOrOF(-B#D2Z;lKcJR1v~HkZ?4ZJsre$;lFsvWR#D=u z_FmQDgihR8rK70@GO8-^8Zl9;nV{qU)RS7LapOClAGz*5N}=2c5Kqsu%k_uhV$T3A zligPDma3NHt~xThrdA2`&rS6%DgQXZDMn#5eQD^7bkDyiIFULp7mt?5Vqmp~wfsib z@~RKQhJ2rmr}G}pT(W;3>o|*MynLQ;anoTXKPBGFEa;Evz`{*Gp~*ebn=62$c*uOl z{TvUbegBK){r4s14X(F^TNWpgCIJ)R?b-T$zkL}x%gl5+)Qi>b)wL@+TW|;OL0n}g z%Q2ethW4O;i+GU?&Ka?)Z3)LxmvKCX*~*#G$YUJRGM^c^+$`NgHTOB^XY`yRcUjI1 zF%4rhQ92`-C>;sml2J3~UZ$CNf>;NM^~`D=PBQHoZ3M)Iun|mLW<9yAm*Pok#L(vz z5|NZhyYxeRLzPab(!}drHb_8P;wiFoUVj07V1X2?*`HYaWXhk3oKyhK%4VSp$WJ~b zz^KTc0@g9L{bn9fz-2T~nL*x{sHB;DE&M=5@3HU}#8fPK-Vmi=&AV-;Sb)ozLxum; z>-jV+0D64%ikZ-UWhU4n<~!DZ;+dBk{Jn9dC z+RV#n6eSH7`6tXGuZ9$?f5`CXfKR}CVQHkwBnX&=Ck(R?B=ETntDb6F+^ChDF!d6# z31|Ck!XrML@U!A{{2LRao+}E?NdRN`gcDBVt)yHHw5KG!q(&@4^NqAxoBXPcUl5-# z@icF2?OxV|N^Z1c5WE(yzCeS3wm^}T=lPMimm!Zn{EZOt7)mEX9E3AN3!(x?75E1WUnBMepCv0v~)HF#|Pr+=|rc!lq&Pu+lrnV8Pq(>G<8h; z@`DS390J7#e4X!jl$N6GyEDJ$yLqh{p9i(~|2z8o;iszULG*Xh*8e8`ZU5wJ z(%*zf{(nw?-=ij9pZ-4k=OO5?Y%gg32lTfXgl_rQq`yl6{#W$(d3{Iv`;hOiqQCze zdEHCWJrCq{n_uzB%!KLRNW#x6lNZBf{Ll?=)>(bmx z+A6QxfqitFyzaM!#avaT+iq2<-;JX=?>X=GI?Py|ktORBXV0K1V35hhg)LP-sRkn8-1tK_~_a*U?>{ zyd}j5j0ez}ZoGRI2P;$%1l>(bcV6l(=_ zVzyxI;WwaB>3*?4hU2lA zjr@*H1a9A9%2d^)WyD_L)d;!9Q0U|#wE#d-<&`#@xu zd{UA+H@(1^hynkQIC#}%sn4>n6Lz1eo@YdOLHj>sc=Mp89}C#=Ck;DJu<4K|4dZS| zL)Zf*f2m>e!DKEzz->mUT4wEJTBa87W=51}h!atsHWY{?E-i%P#2?wn2<{zpZN{`` ztW57#Qc=k6f8f{jk(*vvC3CQ5bFv-SOTv;xAM@pV-?H+(6&M$8mBO$Q@s0E8UFKcR z`66#4=o^!*c9qXUXQ<)TMKB1d1u)bI`m7WhZXJ;G+0^-hz9}NyDTZ5@5EoIO0H6_C zci2ukZWzE;rIY-F%(Api$5Ajf7qx{#~-Z za}AH(K+qM2V}D0T%$9PKFrB+rbo@HNq$+)z8cicr^5QoIwiO5@guHDQY0cDHRA4y{%_=b z-Dm$Adg`}M_Gha?RxrLK;KzM_2=0@vl$`JM?fa1PtwhcTd)54)VaKUYdpX~ECa_xb zaTYDowGjO5t6ywByFDLn{YXsxD@)IjCPAg(JMceqwq*#?c~Oz3Qk@iWQI8=jWSjZd zM=FWtWnpkqv^cWJhAatAiXM(M*pSDK^S3XHq;NQNH8=7yy1f@WilpXzStP}Z^uzzY zNNTVzlIj&rUwDv6D(^Tek@`EURneBo6kky?^@f2);9^@^7-7#|V0`vq$i8fb`_ zD*1j=LMhQ<_a}ZOCEAZ%uQ8S$+6k9*+@AVSBK?4-HzZT>)KZD1;_1F)xOB($_IPWy z4q$SuCcT|OP&nW;K<7~G2WJ=Wb>}SCXxIKKAvIfHPG!a{+jM^)?p%(Th0VCetTe>5 zXQz7xFDY-nR2@+mOOGx9dCp>>teomr-s0uYYT0`^o?cjKmc5%Gf9&a5@1C&q zzoHT$`P35V->!C?-Ww6sB&~Q*qnIXVM9+k`TrcLVN;E%KG%x!02L_9th#9&yoFMbl zR6`z;VUZ4^=K1d=RV+H&q8?|N$#b==T|jFkPp5g4SG-B`R~e(7h8dj?GKsN#M}8q zVqMf?;2(Xl9w0%}Sy!+ga0Vt33?adK!0Fe6HY8XN9J?NH`jsK#pwlnL6SZsDf2_;q!$$P{2`^}tsua#HzYChk}tE@iD`2W5=O(C``a$bTt&6n-73z79=g^a6| z2qS7VmNfN{3$Mv+z4av;qvrbAk^a10mdni$k%7ELj}XQ|yvf#@)I*fIn@J5T>Lnee zjw$swl-gD50;NtU^-)SqzcvU#4})N=5FBF=lnOylAt)1q@3h%#kEi>-mc6#>Y_xh> z?X?@i_1J6I$FsxrQRO(A%NXjDdHiuQIJ#4~{vwJux+iof!}I!h;Y2Tb46p+U8GQtg zq-r-hGLaf7Wv_|eMN}i%m(<@Ob$_Ki9*99oJ%rRhQvFE$eI@Qgx|2w9GT=WJ=ug`Y z=lu1#z5UOeZDLfU2eSyGl^Tqt>ip_}%egvmaeIBF2@t~@?XWM4jSEmhmYBN$d3iWe z2s&OKH@5(`iaH+@^BM2_U^~-rw&%~+$eySh!o4RX1>@SznyX08)g-<$4U#+0L>bfY z&#h_rRR@`d>-cSv6o!FD$k)!l;V194Zp{OW@L{q9XFfZUzjJ%Ux%hyWGsSC^Gs7m? z3NzQiL?rccv8Jig9=u(lwSAPMAv_EYLcUFSJ^lY{lXAX*fqxKvRF!KE6^f=|a$TD4LYrM0$x>)L9;)};v`n^plg z+;MG2P|;ci+5Yd(xz971M6@pLx8L9E_0Q{-XYRh9d+#~to^vi6v}~Q=Jfa`YDTC!4 z&n_*2l+=uY@=i1YwTfJ*2jf3Qv~`L{oN!Myl4J~dp&0O=YiGXchf6tEgtLs7@I~93 z@06h&`jm}x23sYh1Kvk)ESBRHee{@y(RTGBCXBeK*TvPV* zq@$-&Abb^fGfHD6sHm9g=wynz$W)2FNP{T~d#Tx>0`p=uWS;5jdZ~G)tZY;rp|?9_ z=hTg+am*>Vi8)HWrTZK>W4kNp+Fad``_V&1dGCGdprusAarb#hZqRQJIF@re>Q~ zu_H*YHVswg9ypht1cP@1?VV$K#ndSlj%-&(=9!K%2}R&?3re{+nj*6BB0Nv4aqUXI zk&<**$We|3bt^!ZTJ@X3EDydo1!Rp>?jFrJYrOrJdM*2-^(B4O*j+lD*B!`xfzf@T z{lIE}d;1a3Zw>4RauVc@Flk}VNtaFdlgi9!FaWm^wqP!^K_>WW8%Z43+qeKZHXY1P zGMZGro7}WS?hb|;h>Fwan*snxMQ%-aHb8=iIwBk07z65- z7!W&Bi5d*i#BsNcorZgikYPQc06{^EIG-5*h5$gppwlSgGm%ciQ>ld;wjUEg1Xmg7kcnD4aYJ=DEBs?U6fk`s0 z^Bmq{0R|R~brBnWb>=eJHJIcdZCJ1~(ZKEyAy5TgZMGhmAsK>Dz+I&{sx!{k0&R^b z+)J5gLPKA9=+4&aOrx1pAcM2PK;WWG#>^@ZRH@Rvl#w8JnDqy0>S=+IJIu-i8Ltma zN;uOG1Y9;iDHsK-?5;{xhHov+N^KGmp~v-74Fj!3Mo!MFaA{JG>{J?&v8lTTyM_iO zl{=r~ysEfJLrD;{gkfH+Iq9hY$we?97SPWH*aU3>9?X>Lyg@D>t6il;<)c1LTfJ-b z0G9wFmbqU#soFbD-dB z)OnXkMj{#w{wVqG0B9o(A#=3REd!(58v?Sh(bfn}at${UkIap>o~&6aJ7j>~ZR<5Z z6Cn|Kw=GZgOFe1T(9wz8k5ngq%7RxXjEPyieUg7{BtDUso15+mAS>mb&EcIc>g9z* zj%QI<@Djlq*7L!(F){WYkL|yyF)KBp#?*e6`1qq5O_{RN!bnXP2^87)`_!&{abpKU zchx;FFVeVtCxg>^r?E4qW|#ya%y9VX6d=POk0=gV!Ib730*;A?=?|kFhpk+_U{?1Q zd-bc+4`Iz6_{0(FXoAJ7jye&-b>B67fRvFQHxW;|RuQei0p^%_4N6Q#k7QRrx|}xN?rd>Hw9V47i<}V;QY4AI(X4lnfmea> zUSy^|#GtKK+Sz6TgjilPBeub8hu{@ch@tq0Dt}H18v^4Y2sp}nmznAyp>|nD0uncM zm$T^+Ie|TyB)6O44&uaz$0!sj=9wuFf@H*3Fp`>MmN-a#qqEVGnjIMJsM8fgYL40X zAj3*kBC!riBdbxw+vJkKhpsHZ4Vhg=_@(JT@b=#$et03=IV5e}K(`OloPGN#e*d*7 z=!BqYH1Gt7Jopbxpz$B5G;(pYNob2lx27=Qr}b64E^>x9=$5doo1+a%LgG_}HKlHJ z7C0F38N^;3U`Py=p*?1BgS5^%fJ&R~jB`Yq0xT4^29a%@cno=d9ze85=@@Pac5|&W$T-HN1{$c*CVJoJ4`pis zgL{b;a{jBi?-$5#FbF+biH5(v$W*X`_06Cic%!nx0%AR%|Iget;wj8l`q?i1!rYfS z`0k|dGehY)KOR?x)w!1#e@j0hOg|7Usjz&8``|+qL6bJ-w%co&)q>r+9s>!6A)!+4 z&rL^p3w$z^Gdb^<@caLQ7E`znb*69E&}Cs$|4IFjhkf)z5Zy8TkfEr)S7)vlMVq-y ze0GVQ{*IHaCVN7ZQzPT#PG!B{65VTZr;jym{mKQOTiU1$`io}{NKC{+>tWdRPe&n$ zOHAyP=g@X?CjIxNM9KJ=9M1~me*W0rjr|F$vf|~(Ou|$=oQc+kME`Y2mxya0&)%xz z6*<=HvcpQal1!-aPxAI=jsH^I-;nU%iT6kH<_%1^F@;kiEQ83HzBm)+JX=mQN(ik0 zf0sH(yECzKHH^xem>#qxHs zq9$`JM7WA(P1;?iW9}RE>vTa3A3>UwMJ@SnsedFYNS<2m@(lOtk{4grMLDRKR+MBP=VB%>F!qMu?-7sXNsSK7v+S9+&5l28v_2B(~nI(v`{ zaSA61olF`gQz7$n2xp{i(lGzXo$cO)IPOhKq)OL(3db!xK<;Cg(6_g% z{U_nCb4eS^j=<`xS*>plkf>S0o#Jz9(IO#v)(|K!b*b>DWH#C?7-RY(_XfyU>aT`$ zspm@WnD{AENO7%K+7O3w>L6j-01dm;&@k&epPm<5=^=XM^h&}U0T=$#5JQ8&ty{)5 zbZnGH;~&9j*uH8CCDS5wBztqCpO@DbeiP3v&xB ztUEyiP1>z4dd~savG7k()bN@Yp!8aq-r)S%}ZSuav)|I6-~^a3|AxV z6^5medx7JFq^>ktnwWbHW7Cxn^T;?vvWArjehdj?IAB?&E)6L7)L#R}Nu=2jFa`<2 zB{j>aY%<+qNEeP93}<8H3>Ub~=zHq_onrtXbwX7)7}7@KxdA@*J0syqc3sHXcv$If z3Gg=YM^d*L)lcZ3oJqFS0;BXP&v!f3 zO#y&PB3Z-7n9%gz;tbbt&9|gNExpv3Wu#~}^o;J^Yv>bEvz!$*mOMy=hU1C=KZ|4o zgzZXW(NT!;<0$0b08>lZwB8EcL@ZZpmx(Ki^9Mur;#EKLVS z>UYL3)aHoL)Mg=EyMRH;!n=rTIx3ABod8=VrqdfBIUj!#PhBU z46R8^ATl>F%XXbH3rUs@(LLQ>VUAH_Wh^tMQACo-ZoEx!{RVu}`l^3NAH7*w{}yw4 z;8i2EO*I8;3&n7FRn`6-I=Y#Hqd)^qv&yanKm&z)K#@p`hwY|XLI<1`6Zl>eZJ-bw zpFy)~Hf@Xa*p()MmM%Gqd!>+m%T1Q>?QHIox^d1gH$>q`B$S_K!-zND@8m6N{C9HF zPVcyXYJ3ejXr5rnW~%6rZ|FmAEJ+IRv;(iJad_I>x$dDnDudPQA_Yq>qox24WM%X^ zJxISScZlsw)l3=T-x#a#YU!mN3vL+PPdPb`-&_h_cSl!s_t4&3)hEB7s^YGOI}>Dk zK49-H!o2B93d{SrM#>3Ng7a{!?Jm&u6dF)mPeBKw0>$kV*YlJ7bEHOvd;*cfbUT%V zvq$dFcbI*v0!1%;eM9?rXML?M_J7sJ0{d^s`Y*u#+k!Zz-xiFKs}5st3+f_#rj&DO z74L>?OkY0ne%xlocj7bVbA0MPPi&nuET-(nXUvzCc+c=IsAIOV|6YhMH?ALClbJ0o zszfKVaCu{J4=gx*{Duhi7B|o(b0=u%~o`bCsme#@|Da z`EBIsW%z4jV(g@|#&8jZh)RvW@~mAL5qB)IlDZ=mRzj+;TdLpe8m97Q?M#k>1iM&* z;bwE}!;5*TN|p8c7pd;GR8P>Kk80ADmg-mkBGnm|YT`$wG6Qwf#qSOb)Cu&=G~ELN zz~&3sE{A1@?wQ~<3t{Lnf1|VQW(ngBi^i4xJj^kkl<=d&=e-XT*&1vK?twsC_&3&uD}G%_h{E3 z`#wSTddohCSU7ke+KTU3suRLgkGQs)$Y()QB9>~;FcnRijGF}3l;n^Hyr!*;hMlV{ zq!$iW!?aHF4I}gcLe;)xc4~>&a+ixWUN@1qDl+Ep>CO78EgV|Rh2*7(O_ zWNDu;mNxWuu~S{_2y7%(gt3o$vtBiKkE2}dq@LcaJzQ+HO0IBuzw4?!Hsa0tQka+6 zcU;~t1@)GDvyQgKMXRWHKCy}Hu{sDx^i}7ZOW9~Ktk)ltcpK3o7YCwOJ2yEx3!dS( zcsr;-B75Y7qRV@;3EEyX0-^ zz2V_I{?VH3Xzl+euY~E66{rL9ned@gTNVG$+SS7n=u0ffr&z~&r`2l`;h?u#c>&gz z;bs=(Z=I_oeGV}_(xds>g2bxT46crVvbuvnU;QT>keiGm0C|vGFr-?JEGwzLMXGAq z6#WLdCb@Xot0Kj8mm*^2ta9a;a24fX&{xL@sbVhGYu{6CJ6=+xl3f;RTWqO5v`vrE zWl~*BD%x~bDJ#k~yrA8`a%s-7l6KUp#E@sa=DFY!dTKzmrt+#KnV&*Eq+lyGpOf_`ON-D z25**(pSko9=(ueFjQZBIKk!%bBeL$#wx4$Rf7;ofJCY^dfnk%5N+wZB%&2y?fqiz3 ztAnUfouW#;mbGE^nw{KBR((}49A1lffE|rH2A|^}**O{IZMr9=(uW+;9=KKS? z_}>+=RS@5r_lN2m!4Zh?kjQ)0XoB7>E_#IlMA7B+$p3DaMWF=#xj=`T`W}->fT`1h zb?S;31$2lxK^Zlcq;QeCB;$b&aV1Eyw~5!fSaJKZ%Ho z<@YwP<l-VH_PpUQK0X2vgyxjZPzz>HsBJZ&+z zK8{)l%VTYA$-Nd>_j6Ew2R ztJYs}z|*nD7r~tx*@zO2?-!>};oB{JG~e#&7~higH~IERe~Ir-Uh_Mo6EkYAPPcyJ z81`bkN1C_XyfCBi`6Xf8$4v?>q<`XyPG*k~eDoVPjKZ!c;ufmpaKhjQ4)4yBr}YGl z@cSLEiksDr@?pf3kb?IQ7Svl%zhRy8?nH{6X|3K|-9dgTpVo+FKpFfi-W0OVFtf<` z!#z7@k+-0x=x&CLo^{J@X2&a-E8#I8)Ba+g*8y0)td+NB2m{7zdWM2g@ihvRiE4~9 zMPUEMjW6t+o@$2Bk1<2&Nxt3Fpro5h(qHG>BmG6bOpC5%>H8P73>c6jcp7+t9g}#* z^HQggm6LpoAulk5mVF+lAzYLE;W!OFo#c<&79a9d8s6{%9spi&1WLh+DsYU)IMY;& zGo6cZrr|QqH0nif!KjVIjFMTVBVJWC*k+oFZKiXv%{2U7ijrw2D{tEE1$GpJ{a!T$ zjUBZu7vmu4Y+$hyKk(nIuU(rlN$^@H3GP20bG$}uH`O|}qL}nD-ZT~rza|h1=lWd2 zdCqE+@en2IUE?If;~CW1Fy=9#RL1qWCjS%jQ8Y4}^B$SP zSaavr?X{UJ#4E(oL#_XhP-)w&E6#7Ah(vbiPf=}Kx2Gv;+{G|mP~&&!SziP^WM1(f zUeon7R@`^f)1EL817KAUmNU3)j!e<@UgR9zP$PR#2~S*h{^G6p?a^@V#0OMo;<{Ks zcblYoW>N3cr<}6tWZf@COl~MrrAtZltsx}`Ds+NfpJQr~J9LTRI;CtZ*^uF7K1iH# zTPbldL^EZn5mrl}D5f@*Dpt~`5($f(Q=(|yq#}ky^x@@-UM0V^%V}xrW|`8I-7dkc zI2Ru!l**J}(pDzlWct+-fx|``YP2yPBsLY1qDHQ*Cy>t_E|;>-5?FtP-pJ&*|;xc;g#Y ziN>WcNMMjJ3D&^*6%_b+jm^;|`kq$G7bq9Y<+PsFnbCt3daQ|%jMlYtWP}7sMhKiD z=OZ~1Ia-S)GD)H%$4V6BEXjwQKUCm&y4~@gZuk0!+O7XsyXil~?)VRF*XX@Y!pP}s zaHhrzZc;zgB|U;;HhZrMc4#J+CTy+p9mg zDj!-W9Ny?r?wX%Ft2cQL+&hSUDEB=oBmIGqdBM zGD`pM>r3RvDD}YU{oR5-E2bg17r1N49b`9!MciMO$bOSdLB>!U=yw}hJ=kp;3fZ9Z zpT{Xm5`jI)H$ddsEov$4tgkanb$z~y^X-^7;I-U(QF5dY5Pkpc_FmE1G7 zXQr%?p-9on{+a7Dlh^tuZ^+cOV?#0%-{6njNcxSW2ZvuXZGHmdA)V|)iUH#gCnuNN z`M$A>eMoCxXdeWPj+t34h1CO|;5B75u&OyMF@9u|GNTm3Y+zLa;i2vqRI?l4T6?>dtIf@Umfsw3!RMl zyE}3!Z~dxv$Re-lW_DmOzdGT7PNQ~=aLX}<9-fI4g*suChKNI9iNF#qWd<=Mw-uQn zQfP+IP$!)n?`xK?puD8n5t&>H7B)`BPmsKC1bth+Rs9Hv3lYWc6^NgsZYar&BAnS* z=$@gWZwak@URl1!2g(XG1N1I(W~s1Fqm-n$8F)Vb>|9CV)S9eQ)Z37t6LZg8xqKMupVl~ZaCL1 zjBb<*)lQ)&1IUr%4Tg_5!fKd7^2ol5bXKtruaNs3f%Qmu>BB@_9gYcnvx{}IGl9>b zI0EYeBdUI6WY!@@W*s8ZDs`yQQ)7*ul5}M1^u>ZvDVj-JE^>j9VW%%s)Mmv zksrM*u>N7IVni@S4walXrfLa&Q2rko-DI-YFUmg_3aQSj7WJfbh?SBEVUK4%!nSrj9OVAv{Dk_`TLcC zUg9cc5%kiV?dyLfdg<@E@d3RgfH-((3Z%oE&)Q31_g9K*$Q|J5t*-PG$qwAIJEQhZ zt^LPw(UNVs?v}b*Fl_Rg{!{I5pU9ynddl!+wfn{}^d4Vg zIVO;!g5SyHh>~LpIV#C9gB$~pZdChWsFIH*nF~4vW(R5|8oE7?4TT`G*b7oH2pK#7rUm3_o@%9U*;^^hf%sdjE_Q z{KL|uI4_hD4fp>}^vb^(f5{sNvG;Zo;d?t~zjH}o3i(K+da5(Om4vA*gfw%Cm?jnP zX?18)Su|EcYA3$q40xUw?PMmz=}hfK-oQ)<($GkcVh4Ct`vcc*-EI=2@$65y*;xZv z@^+GV!`KR`#Y6}XfF^x31tOC{2he(A0ZkEm%Nfzsemt^N$J`s*T;Xb^PL629dq_!~ zc@U5n0>rVcV{$MI;-wZV79@pFPs3@zY$A2yc}=lhyiVtSB+iBnzGG*ip7E)BP5Ynr z#x_#Q+*t~<qG2L! zZignhH*SUY<#P%5S`N0;R5I&2`rHdJrA`MbK69azOX5Q|dClhwUExHzNT`MeTlh?5 zwr~o5L61_G37^pMYiH6NacFfGp<9&7gnV1mOiNuIFl__1a#Y2Is91AVrr`#ZXQ+Yf zHWJub*Ib<=aE@UkJZNvoNWl7=9Uvo@88TucSGSO^i+QU#>vi64#=Kp|Fsx!2`lRuD zE#H(7kQ9Cbq$27cRUxIP-#F_9oR{ZCbv(m>vokdvHDvUJ=oSKrvqM{EV9-8#hM&}t zQ7IgyUJcC z8nL*OQQ-ju=@5p$Nl`1 z>kEPQgO0O5*a1}~{IwOq9`wqXWR9?2Um&qg_f@$|NaFOR?S4m%y)!CpB@}6dl-^-F zN{s2nQBz&Q)f6=iD$v4AV2dQx80t@595n?hO1V7hl-N@lXIUh5S*RU#P1Mw*DCwSP zpk;NnDN0eIvsJ>Fh{Qk(*mSM1lVBQFP^HoMNKP;Q8i;gW~d}sUX7+0MVfn} zfx;9enP!#2V(M}9dih^&BnsOCM zFOHfX6^Tr{%0Psa&Ws8rODD@FSYT2oizN=vHXspo&QZ;Km16f_)1fc*7ePht9x-t9=NGHW&}uim(s1%?wF5h2Lv)DQ zB2c4nPt+hR8Kv&%8zlNo)Rdt}-V`;(EQZ+> zq1a*lDbJ25zB@59+q(nOfj6A3PlhALGzN7txL zBz;Fy<%}?q(v+$g`u9{alSCpGzq?b*n7WiOcjB6&rZYv0E{>X>6s0&DO3b2=T@pE! z$IGLpHbo_Yt`uNHy=G)tno&+i?nM@|sn@DKb*7B_mRcswxN)1=iuOOaxeQeDT&>f) zwbl8@3=Wd83=PH#qV0CUQD0IjD1LgHN&l1Y2vNo{8UBczLuWSDzzE3?NXB|u2H@>4dHn;n8 z-(=RsZvhYQRS|@)%Gn#f*8Y%BJ#-vc`_%~91nnYs{lRZ~VT;Eb1w?--=NoGjY^AS+ znsE0_D!*0XqL=1$;Q562xzUBM&VAjef(AMe$ZJga&b7GKQ017ANSAUc^BPb`NLoeC8KrZ=obo| zG%lVXEWHcA{v+{qwW&Z~t2LG>t;xjs9}}s`)b)*J>MCNHDV6A6mBcb*2F5b+!Dwmq zL`kb09j$(-XhqS`8i0bVZMph(qTlbyx`CBefRqbMr4fvNS^^5O)a#pIX9rwnV%BNSsOkg+%sf*e_J&uTJsJbkLmwHPEq@GgY1GzULkMOe zDtVG!dyKJ1It{u1Hvj@$NK`F!F691y;anx@(@c(Sgyh)LdxO+1^k$`dN8;(C5*kw#ripK*6(qec1aM|@+!(pl0XeeSqIFn(ECiU>BB3X?c%94 zRDz*doogNw6hX~b;&e49hdk{yy+|MO_>1dB%NYQ7zAYA}1(cnNwDC_|l;K|%BlWI} zY%#cAPoelA%lSy;H@hfxIT6PAqY<*dFwFCsH*2pj2CH6uy;&CodDeNe#)mQfu@$Io zgn1aNSnCjU=s(AL;!T#uh>S6QO0D@TCD_%|i9JjzQMIzrAw6kC~ za$r5bz}Cw^#(TcxA^ts#Meh0Ub@$~hla#b&-Q zf$#IB-)s6^iHe%+&x55m@)>Q$u>pFDFHrDu=4b5WI7hp;i2KAKVn-UWtc{+h47sea z&D;)#*g!2qPJ{61hz+%XRt4C0Z+7le!`R8S)FNj`RDd>rE4^H$w})~46t}h`YpIo` z(?D6dF-V=mLE&z>c$Gi_VHg!d^Gz&x%DlI@VNs zBc6-3z3J6t4~5q@z!vK0?4SqYZLcHVdVg`_E1VEdvsc6$w{k*AX#*E0#8ZGPE>4Kw zJ6DO6!w{@d%vJ*1@ZtXmoPl9H9NU&l$Y0-gY=4k1;w{~Vf% z%o_-}AtxHS7%Nl%7~CsvZAVS_WL%B9+hUB_zblTw#eS6Ew5m*z>*d_&P`1O63c8TPJgG%;T=S?t%&6Qu-t4d8|mJM zMYF*;#hx7(&L-2oquewL@!ds(bz(P-=EQM8vx}%TLsGn!owNfPmO^(0G343kl5G)* z6eQb(n*@q*sWl!g8wx`y2tFs{5bE!^#6d8M9g@Pzmk|W_^;)FN+BLW$uh`S6kV>zm zuS@ODqTKHI0{V_3g21DoTAemnnhX9f?zGr0= zZW*qOQ-BZ$K)t@W<8}Ze>kUSFy<60^9f;K%oM>e>O)@T%kXcPSbuJ-2+lJTj7Jl0| z7z2Tde@Xx;?JnV5E0}~Y6u?EeujN$()!_SVWOZmusVtm*V`tG8V5I=E+$=B#Edt0e zt%X+m^t%v%f^vbA@&Hb(%&u_a0)GrAp@Y7nV9T95z!(f2^PJl(o`CcRt|%3$YWQg^)W&JfQtSpkDJ@E+&9@!=duqfFWPA8i^vAzs_rEC`e^;7vNznGYSGx zPqV!OB&_A!f^chtFtC>M3qnJ*6ZETPWSmxO?ae z^QCki<$YAjd!3U0)%l#z${gphF6B-LRJ?2ib3>fZ)s}D`*O_i%I+lDxt_)u&?+elN zY4pEpKU)6_q~}el%Iklnr;Cb7AIGMTs>t1u4T{f!iPLOsOSuN>Mg`1PMtF8u z*q8%~9qxc#UCl+C}m%!)vx2PrF9mXYh(Fi%hy$c^|~_>Cf7hA-!`-K=cu`AilG_5%O1X+uE0OxAIeUN(%)cA?k&?lxFE)SDF> zr>0okyU1K|aFW?qU$uQCabL;xm_qmsH^s@%D7Qin=AZ zjkY)A$#6?>D{c4Ja|7m%F?4922-V090dMGr;QCtwWhO+Mjg15sse(F3WpBPg>Oz*w zt83>M4zA=5B7L5JuN&cIr#C=yLpKogV+JNt%jvxo!Kqvo)ua;j1l6pEPHd3(q&mFE zOqMe?2Iq-W$60XRGimm;Za*8gLh&8QOUnJ zT0xOg8PSal0074vF%ib1ETQ>7ob_3DSUaw9ti`g_dR)hor0lp2xK1Xb>?BrnWEkEu znCIl>Qq~?tA%>8k&7{$%kAI_tj}Tvm4B07wt3@E!OXO8aR2mxF=7!5mm!;IGSgd<^}UFEiVp z?)`UdlM?va@%!(`F&-cP{dZFDQ2*t;Lv1C0ga(Y;2R}>?X3GRMgF8yi&Si0ak{|vK z{KF)6dI)G2L0z#Abb1H=^r4;g5Ppb1*UHw@u?KV+|NkC5?lWx%@c71wpAsG)OaBXa zJo2FbpuA~z_ zI|Og6@zde6kL?hjU62lBLX+7;sxT2CWHv7o%5l)=-8Z^*AhQi@Geuwl1^BGgq}v-n ziQ;!DVp2t7=8_OgyS9?GOH|eEin>*ndGOWU$Y;VlK9gsIKNuc)iMV)#=*>}X(nx)+ zn1f19*|Lvl0(X($iZ`h27b(ppJ%d~q6E6Y#$Zz`v@z)Sy*xa?{K{=NbVrcTMG8?4Y zoASBXJgn4v2$9TInp>kmIlr-T3=2bEGR221%H7pM!T>@z{2 zKhFgUdux6)2%LGN3$*OZg1}$h=>n~y)*$eg_qaeS^T8m{zug5|nTvzKnRmHB$`p=o zgG>Sliw;csYKKX)z-|>f*sw!1y6S^?^h;9;@#sCb1m|ZV9{o31njyz8dLUcXl>~Ib zUp|Ze!oZ~F3mM*u56Cc8fkp}`wO1s{?CoFVmPoIC}D^Y}`fr|ONLvXckkY>GD6*q05X zR^$O4Y?Ya&(BSHR7>p1o6xG}g+QeQ+)mc<6) zicP@9n;YbvjO(y!T!&4;l}h4D&A@fsk$g_7=My`DPvTTQho$+X^12Wm*wY8(u{zGH zLLCP2Umh{htB1sYkyX~}%Giu!^qj3Nyj+UxsUNdF*uJVsT$^hwq)TFVq&{Kc%8J+th52YY=o)MB6}3slLbb z)%V90`ku&qXgx+o4VJf-snDxckt53G@f$g%r)6Qvj7T3pP~KyhJZ+kh@q^6E z%-E*I3#uxLN!D2wnb=R>6PZx92+ z3pRNZlpK^<2~)JVtVX?T)U6}G*9W_=dqtGOZ!r04y#nbH+$8E!rO!3tZ5++PQx>T! zOy--ATTIH@wfcI|y-I(BNmQGdb>wOjvsEGXx`dPicm>czY6-l;WT}lI#9M)3c9SCy zvYTkJvfIlW5}qcz2_-ALNt4_06S>LciwV5Ngw>tG!Fu)6UO^z@1{2N>iZCH!JBuSX znIx}rnuxc`wbwEji9mojH8*%%gYu*TqE^^3Zi6bYYP6BzUCm$&ug?#VJA8SK5eW+t zUL8oAr>@Z1tsVgzIg9Ng2v0fonvr z4rKCEbKU!wdR8xTy^W<(2G3=>K~)0@yux1A3u{*+F>B%mRpr>Dl1PYGxIn2{MCJ~5MFj6+3Q`>( z^$PbKWy+q}RLUEIha;~?dr)P%?7{Pr!6TS-hm=>?Ba}1?*@lkV?XgN~FAuW^72RMj zNQNV!cG_E%q{QT*dUyR${i1E6#$Wq>5QcPO>_5dmkj$>b1F6z0}}Jz%Z`$5Q}GS z|Ix1oi&mxRPuY(vDfT9}@kJVK?_nsyweKE%q{JKT1tJC{+|cKl5)U!%0ZE1-+~Mb# zdQQ-9+h$4C;Iw&MGs8_}wo~76Ep^+U&2Va-)7xQagDqi>DeKr`kAzw`sd<4;4&8}d zX4|ZqV=6mA?Y4oacGLO^vWJ`9Jg0eMXYAE>nvl}HHyNBY;Z8N%J%!|EGTfyaf|rd1 zeZsRl4XTdp$c=#}%uONH+F<%G#LNyJ32L-6iX~_VD-m-{jfT|`oKul`ftHIq;?ylt zH3W(=p+bypB6Cb{hOBm)*-qdnu-SpGO?X;I=9$V1YtzoCU=NyODl=qv#~a;IJ58g8 z_StzJ)^55ptaUrI!|bL7Lv}kd1KMw1pzw0N9g`X&l^MK1beSFRVVS`bL&1CGc2a%- zQU^D`tG6MIgI%=)k_9GV6Zp6Id0qMc2nwT=&3ioAW>KCu0N#WEl zUh#ZO5vX2dDw7kpCebjd&K`waeu;#J;LIm`6ji-@KSGv0CGQQ`xT5tJqHuAE|5gI4Ew$Net2hML^`0$0mhMTg zHpcZjxazR%pt4X_{e12HIs_u|Wln8?oq42=hzTow9yv@6Q(WDeHhT&|7eA57YpdOR z2*>jt!q5kJUBo0uNqh2I4CJC+&{oWj#90`LYo9lP*OycZXIg3;AEOl}aDt_d*Dz=CS$Qka3EZO1P8(eReZarzs0vC9p&32y&K=1(xogD6B+oV zzsMz~2L_p{_#Ms&mksA!EgQ~|mJMI44}(=UoZ%@O&eihfX)8_Zz|CF%w*Wrouel1| zNi19bEez%fLHAcVp=a-svmFr<`Gv5gnXeT!*vT7d32>y;6(QDit07AqHdcW4#7hiY zBE;Bo3i+*JM1*7wUn1mML!bz`!Ek&WA+K$vGPD@BL}E^?*0Kli_|YnFT(YZVt6nkJ=}@iD0$~+HMoH-6m+eP0)6mpzSt6+dtC; zJ^cwM=;>)ICD87#s_vgFejNbobNw1&N0B{l;x|4K<)=HH==vAk{SoUBxLShg*;W*9 zn644oer3D>+VL(G134n9;T&C&UyJs3c;vJJ{t5=8YK>wiRkpq6;hXSib#^3Um72^# zbmH415#LTAzAZUB2GGee3?fM!fHTZ8GHI}~y46Hsrva8J8Lkb4D~8I;nh%64`pU}^ z;#yoaN0e8q&6Qk^S8F_o?Wb5kImlb8yjpOU_p6H3(sWr%lvS(W72H#?z`mFS1d+-c z3tp32$YWtP^;>P~x7yTiwW;4~Q;)`J3uG6tu021 zU_-TkB+7cMiKLHhhxX^kZ{02h3fpGH1T3-%-Iqa(t#FR(57xK^iQmf?g$3a&W)W4_(eb$q+0hx6@XAKlm}@K5h& z5ta445RoE4ID+&VUc}d&7uhwu{X*{v=8cBlQ_VXd^j4d<#JtHN%e*Evg)*rknXTi9 zu0!l$47(21{bLw)JzK<2S@~6@K@5*HKxtXOs}y&_V~C~I^-z5D=L$Gg3C8TCfC0*Y z3?CUVl-?>xEU`?<$E?7fmLXrdn$kRtOO}t4s_WobQg%(zU5u%E-YxeeKvsYePWl(} zcFxj0cJ2Eh-Wt#R!UQn-zaK{p&}({~LNO6%ih&5-J;IxIY#qpb^Cn#STwZxAPEX|9 zEj@;B_w>PhO|X$S;1F!wh_u}TH=-utM)O9oz#}Gmhvx`+O!^MbczO1bxE-E}^6VFQ zPLU@(Rfi*p@npJ=kX`wAGI%(~ujDgvjcQ=$ikz~RkDZrCuvbJzv2jF>U^6Kj|ENlT zhR-Q%T4lr8s>(*O1<@ADH35$bDguCHi3yR;it2O`8 z^0w*Xit&r`^i(_(tBN9OX$;MRkxz0TnK%Q&}6pPX?Wx8*_Cm>Et&0c?@GMcK5hK8 zH>z(-TZ1kR1_&F}2h2J3q>p{8{pG4XzJ0B0CvV4B5U%#pCwXCCtN@uSso{6JZzhe8C!SOj1q)@9j6Ypukn5nVg?S1|@se94Vq9)q3 z?#~_bulm|&jiR$Ioz*{ab$j`_k~3H-Yga=SPTR!^y;d%oy}i%Ll*5Z9`~{`GQ~*Bi zera&re2#TU12Z*HAd9!I{;i^~KUokQ6XxiJiuOTvye7cFg>aYj+m*J+&< zz3!EuA4X4hD)0S1pQSv5PhhkCj^4bpo9|#GlO#wkpYSX40Y!8kv?bf!jrFXDob<%RI&#^1HS zVee1g{`~w+-J>w`$DaS#QL!Tp$7)<3XAI*e$DQ;aW>@l>o@bY+8EnHB_c1$J9Ua(y^#BdyVphzaNlai2tev>3 zcE~EP`6X}!8`f(7^YP}@({`)&*Rp)_)|@q@z-Qe5Vj@#p6mNU6Tl?%|8d=aza zHT_&QX7*1IM2ph*#r-$qnRIk;%>l1Nf_Y8%Gv@Ke?Jz2?a;|P^?pPtkj^$gDuHxGx zy*FP_195RjW_rGnoY*$p?|D;lNE_rUO%!c1nsAzZ2;tUrarhKIGBfmz_{62d{h>F- zhb;A)b))CP%L!jG+%G45h1a~1+Fdy%l(Xy*zl3tYs@4YKDknMd36+x^@`TsCEC^2w zVOU=QgBqDBp}>{H$rvBP9Q;lRq_CbTd58jQ{F00nc&UZ|q+2{wvMs5-pyci(=F!hh zWRL0|&-8qp&c*zmm(jUtKT2eOQj*N{+?JTwR^#`)J3-hHwb`S3jLeij?izoYwzMC> zz1fKdE=f*&mGeIFEWes|jbv8B!0U#t=Lsu5rj?Qc{U)2DXU zlMqO0)`sVRgs_{p2hSz@8x41!26kMWK9+B{bdqoP^!NCdq$~Lv!7AMO2x=WYvHX%l z{qhIJG#fp!AMSqU9yzh+C8PYFfx8@cn5Kj@B|&%z;m!>ZrN^qU(G%-0DH%C2c}eNW ziAP@2bM(aOOClrrl&h9Q{rU$>M-$#x$@-1*lMhBl`A0t3_fWt3!HQ9QDi6gwQ0WHK zq*B4=|LBoze^YWIqxxd|`J4zb|NfjbA>DowyVuQkm$4~waJX%_hPhcYz)+{t0N^M% z-~j-}rA%f3nDDa#z_>r=Qv={$wnD&3c5-xW!Y_&DBy1E+r~y#p-?rxlsqJ}qbg(lf z4&gqJ#>9C?W43<9?tMTzFS|I~ZXElea|ky&JUG&-YA3eFK_J1$-fADTZi}#({@Q}8 zl6>OHi3^h)YG19L_*CtXr>5;G{H7ZR9+1|(+UNbL#bX>X(m=Td=bXcD)&}@Z{yh3e zzfW}@<@0~a^Nhac>Zm$AkAt;lN896Y#O+*@@LK!AuhPJb?Kzt3voNTh*kxn-`>d*D zwvXP4OJ?`Dm!HI+0ev^^UiI6IN79d%CcJ7C+Nbo5`!gzxA!3x;q}g$42f9rv+>-pd z(r{bqNEx;-*#Bbr{ZDN<2_*ax6h=e1lO|!X@m=QNF8-`Ty6&wtTis% zo;#3`0^}sGzhOAM!wr@u{fBG}ZzoUt`TKSn!>=!`(#@uJVYmDGlLs+KSb*kIoe`~5VJFa9U`eO$iZ=@0b#ctQgBjUBBW8mgfR8ZF^JZhgIyK6Riv z>78SZKPfFv_e=V3JCd!+*)GUE9~Iy=kXpo58*0H2Rqv}q**+8bY5)G$4A&p|mm(4+ zS%%+8aZLC%5s=J1`R$qXU(^0Q|FNxZbv7;z%3c(Ew<%gZrKqSPy?1PBQ&fBYZq(ye z-xKV5?T1mH^Df)o=kiqdqD*P~F+V6SG76Amb$g$OjmSJTI*`^)TqHHQ9xE2=Dkg0d zAg$~}sOZD_Ok;Zk1+M#fCx9q&sKgk*fAzL;0`$l5Xl>x;L9e<#;zJ z0UqbZs$K67vF$t`^Vg8Yjb4~Cw_zW4>u~%lC>7>AIf5tPrsBJykU*bYJz7(XLWhr!^3%}q4>F?;8zJnJcR~LPb!3qCikoV&t@xA$x zcs5?#wAyQW73lH&;e4yJ!@eJD*m%(NA2htb&}%x4poaI~^qTjVV@B~`d5}`6y!i(t zvy;1F!>u*eu&rTQS`3Nq?)xo4<3?Z{_{S^5L)% z<8!){GQ1)7AJTlyqH<{T~mySNu+U zUvhf$k0Q&;!bbL_kt?Qtsn&nkve3hh&b{(I5KQuP>)Nw^WO`~U^*r~%dTu9EJUgws zI@i1pdoC!NHZBVnL3bpu43KtKQlulfd7#h@?>~RmK?0tZznSm7=@Y&AL*m&f-5USi zTGg<7ud-IDM*R~EN z!w-}}OHcsB{VhPgiQr0t2|1ei8UgITNH8sHE+ZHSg>3yFq{c~bEK2ety2lz{B7y4P zK(IjAYr4oKnADvFB?$JCU<-XagW%i>J_oesZf3_7FdNhGaYRDnSfs4XT|uzcbK|C- z7wr1pDt}p9`&ZaRiW+mDKcJOcW$zcQc1{~BpG0TvS{S38?vI0D$Nb4Ve&pt|%YKvR zHdKjYbK1RIwrB3xf?U17^xZ}~-n?d?fjYQodT~*ecisInx5?#Q*SgF7jdxdZ{uO(d zHUK77O|MTYZQg!{OWkBp`F2Ym z$+x>*=a-}h;O>#`%NN?~38gE3Tb2c4GheiaqW?X-W+GW97bJUYLDs6t( zyL1Hrm!IMco?NX!Fq!>@hQ(0qpar=yL&x0ubEB5iQ)l_y${4V2Z9!rQ>|Nr@zBDl)vbWd#7n9B#T=$W&3KvK8qVZOuF~TY>7%M zwbI0ydBfIcBHNH3KZ{!D+rDRwUNmWT0^Ym2BsH3Zzq&f(7k0@HyY%ADX}Sbko-VC?NzE~$iqF2(!?fg3*pKkY|}?99&n%bg7< zbkM`r&o0>trgV1ZXX>wa+t1X~?mtuM*$XuxUSeU}MlU|6%l=ez!0Lp*(uV9(w{~3# zR!>k2YuT3XDvc>{;5FUoT-uSHt9$xXg9ol6S;m6|4{1zqUYPGo!e409m1uk4ix;od zpu*M+f;M}##ZTo!+k((dgs#Yk{+rV#bmKgi##2Gq5INh_mPf+YTFCn-IJ-6xV7ZC(-2{!~C94Bktuh_`M2L9+jvc-y)I;?&r-$qRScW%2$`L794&tYK)v zf>s3u(Nzk%$`!PVf|S)2l%pUOn=fchy#ER-NIcrGphtp&o>r}&tVQRK3=7#&YiNq~ zXS0_mUZYOZLF-+%=a*-`U=8m7q?&W-^K5}2!Q;by-G+F|CGhxVK?x-2-l>EOW(38%+$EiIUogI-ZgTeMob&sga_-bQ z=Uzc1*>+C$Uu}`r^#m6fm-H}rY;|N*kNkoce%7J zWxIp#HDqD>%aqvOznXfX;;~c?r8TuQe$dp&nPUwRq%c@G+Lw)!<=hQwpfdEzx92q4 z<1&0`qk?j%AhM)-;P#?**Sh;2+O)gNI^?j@GfP9b%nfI_t=_^7fctc~HLg#v)BoI; zmb4F{a>pxAe=p=D!I-jEa$TTb5$TXsx%L{;8bLk<>IVU*x7(j)LBI_7V$!YzXr-v} zj``7zJAS~II;%u%om_QA$dQyJ&`RR+I~7UCNTrmeQLxF5rY@A z(X&}LBbxbpv)5EwFV~yB@{C8!Y%-)(I=8l`bBXLp#qonqDV@GDp4nAZP+j{j)Dou_ z{}g&PFqlU{QBZ!z;mdpkqfhVPg{)53#WTYIr{(D%#xrL`V5O#yPG$K=?yUmpGsco%UC zo9z4$xxulVf&CWPhe7P1vxjkS5vOGP$u!W;FIv1!F{*rih2F*OTbo$pjKxn9IpxRal z%uEm0V&KQLOY7tnj78FnrEd6KWH^3a)AVl4aV8eg;mB2)*K(2t>;i4ROHC6O>h0n!mHxESx=N>k(R{ z30N)~%`*w{>|w>=+qM3hME{j;#9kySHuHs6noUe>=B5T*4D;tm+YMX73mGu*?Yl{a zi}98L09>&5E_SXG5z`FqFupsb_Y4X{yt7kT-H~cd6fX>8mlwo(SG1vk0FJUE-;l!0 zGy))4SX|qYyD&P4{mf`19&h=N#-B&5$b}oZ{I9SOkWF#ZdM(Vbplh&PJwC@{MLN3zBX0BCM8;Xs}NWLDF z*amyH%~eQ8T}9NolPXg^R$)hF^GELN2DMZbb_^VS3&vd;YoRuVJmNKf8Cc25!icTE zWVWg}x3pt_6EIJEO^d=9T&!QvYE~cuc`VUHgcU09A8Bkn(``w0>2`icvSUMOvOX`G zO++#q+n!k3w(V(vvT<$q^eKQ!aXQAg8(2Z+%ZcJe^x_L}<9bd1VXb%lsxwouCEela z#kT6SDAu?Y!`1FJJw|NXnFlRl`=Lc$vPLcIo|ctZ@4}y3qY4W+ODuCl3rD)+g#E}0 zd`$&rK8J)ZxcQo7@sm_oX3be?Wv(DTndzoF6UD7eMrp&QUeoVPc-JpK^VZlBdYI{! z$PV8|Bpr!Z&RPyE+cO zm1Gm-^f_o)B)yYPpGC9dncl(~|Au}X3eOYD@pgZ-_rEw4p{CL zuk;UzWOn}H__)9Rm_@Tye(>O@*MCsd>wjJ}QtkDJ704IyBfeaC^R4Gu9Wag-W@obNqU|Pdae3>6_?CV}+7nzR0mO}*=AO?E9Ppb09zUx(P z@|JABtlFzwSmP~emE!>%%jI|!$7(sA#qqQ~OZyb|_w@*EWEBp3h;|u{C;x%X|D`x2 zJ-iLG`d(#^YgKFIJKmC4MthZ;y(Q0$_Kw`Z>vdk`+uo8V@NDF9Xsi7p7xTDR`JO_@ zwyJ>LmUxw~c}v#4>@9hQ{}*5ODj%aIgT2Zr5wCIvLsD5aFy^J+^y=DiKg9pvYrIO_ zspb5?#Q%C8Yx$d=<>LPZ;&a&NU&rstYPz)+$A%iOUPk-Z^EBU^Bzl9ehbd$uzwZVG zZRYnK(oj(Sd!%^_f18&=V`2-T_Y+7hOO#1^8yJtSZ}aM3L{}8e8piWB65da7YhqsI z`k2?}^%}4I72Ft???Z9r?|EYnY#IU|(yLrt-<#LoDz_2wZT`=V zP{k9}zm0Z0PQ(UAn;iADEk&Z#`y_gp794gepHw~bwL6aEqI^y&_m;fAJ6WXcQU4b2 zPVtCGQrvY$4Tn2J-`RSlerUhh?2 zZy8uB`*{Q6&2s#@fs-GQ`2&^y!EzJ@F;^8SrXxpSIiu{?MHCtHdM~2UW?=KM^T-!T z)#-bjEMG)UiU3N8n@hc|UawXHS}7^2yvqMS2|s=ipEG3zplpnClvSDg*A1Yx^8T@i z)>1xj#JE)cObbMH#F>10*!#G_F>klys)*|EEqVDvhNt()!QO5od28*0 zg?(WRWqff=m8$!x89c)A<--1gS}XF`MeGWlMyLU~1;t#YW)=NKTk&zKThga|!H;|y8s>gVKuj7p0KhAT%f4SX$ zD_gxvE!NfiKMl;w{W|}w$4V}gQr*xyjPRCgg|9>cTl6L_g(3JZZUQxjM% zsWBCN>Zmd`p^DGsF?^;>;4_0Ala)~Sl&zq;N3>1w1R#q`JB8NsBK{v@fw3jlvA`$!1|gGOp_o#H%P|%oq(szQ51XGoBozQ-7y8_4zse*%BV4lubMA8x^(k zPoBz``G14$s*V3g*t)=?`fyB?GhpR3s1I9OAKoLXT}Ctu%~pH6wRycs zYkS+f-fpjWz1eH)7qU_E^Qu=*-a6{3qmEQ}{`c`JmwDxjy*>}JK8pEIL~65%itWq2 z=HG)%1t3;!WB(aYx8>~M&?%n^nJ$Q$``cJNx z9qqwx3kO#Pb!U~c{igPcc?)|(A1~Y;-@>oU^=+Q*8Q;qP%ih?9-q=_2JGNK0vsZR# zWRiEvWBjA1bH-|q&m(-cKEi)_)azd!jb|^g?fjH*J9ly{|7rN_x|#jQcJlm8x;^i| z44GZK{mJ+6F8%pW!sL$j@c&hqoGyM%Wi;ybUJSf0e%qU}>?l4ff6r$P0#{qx_~)7W zt?;$ZZ{2tMb~esRZSCOcZ0+Fb?5p7EZ0+FbWBA(E4xT;*ceu5Ks%y(7B-q+#F4iIO z!($6i5Ia9OKC~VG8;%c-h^t^<790@;2TE|7bi&{N)9bP7e+zTZ!*3zx{$E~|T|58D zarPbd>OZ+Q|MhwC5$8mR({n7e39tVbM+6vuL>T{!@Q8q){GW!$t{dh5e?ELn96t|< z{~a8^^ZD@ahry=*){&r%zu-hjptt^SVc(z{cKg1?MKCo6^FJlRrcpJ8Pke&7fAFbx zCwM9Ua8>JC`G=!g4^y=MEy5;O@R=}BdB!MDRY9J|hqJBTgJ8StQ@65Np zGRd3zR)sf~y|@w%e&uR0cVOZy4;VZ!d5mXG_siS7KD4oXwb$pxFtu0zfLH%0)rwR0 zC?f-ZmTEPiOiwuj*N4F@hl$sR8-q$XIhBu#T|^Bq(v4;G1Yytc4;QQa1y{q{t_Dk; zuK`Ye-8=ajVAWSLHRZ4c`{ekAh1TbNQM_Z9GtEm{yXm{U8@*du!Dm$kxebCl(k!$z z4|Gmr5ZjSvv8DN2=QL|6E7y@`iKThCbD9mL*(88#o1yOm_I=F0&(EMiYfAV$sn1jT zJY7P1z)Gv7j^$9dS-BQk`iBbA!_@%fjW-GK)otPirfjB|=yLo_{C7EgvD@YNr8xEQ zxM8*QhJDwY<%cuou={ z_U8ZhO33dYEvHxZ7Zn9|-1-Ke<^Lah?*blGbv69Ygai@|o`6BI-bM{d6qU5vCK@#Z z6FsQ|MzIof82fZL8K+`)N_Em)s^Hh{{Ffen&lr z0mK^w1m^p#ea@Lo5G;Og-{<*1@Aub-$+_&y+H0@dUVELjOZ=P&?`&fj1Rm#B;+xSX?$)IOUmv{I3>gM1QYvE}m+UmUuOW5ZWF z_+9?36F3`NoDmrn?igDHVqQ(CkfCi>gW9fsKUcpgf%S(K{5-9SGB{P2!AWC>8k|5t zonI)B7@UHU!3og+4GtyT>}+Y)ACB*SX3-?}|1S5*moCHkz<7gJ)w&@|ob+Rg7dS>f z^8ai5=Mj8g?SNaQE#O zN`oPWFA!1Zh&d5?Z}3d~)(1MQmAPyC5ess0=2sWs4C&H37p#%;A{AjP*#;U^jf1*E zc{H9PX3arw#lH)`eauou_Eq@3s^Q;++yguPD&$_(@HH{37WrQjv(JLr!*kOL?T0(+ z+xdQA!N1F1%JH3Ovl3i2%)Z2s89t?;QX9Yd;OzBpoBuv5#eXsXYJvN2B7p<@{VEbr z{eDd<_%eUNgzU8mm*Hbv+n=BJm7|dig$HLlESaTPGSlDTXaDNjfVO{=%ZamHPV9|O z{5Q$F16kvLB0v5+XClf>h}!Mgj)q={E?vA`W@^3sY>=Og{LEVa?^l>M|38ZEKOB`g zRqeop)DFxmMGe$~*Ka<~W_x&jn(+FzgY)|T^?vvNtNL`Ptej-k)b_Tp`FqZO!YwVt zmWb`RhM&!AFbkK875^DO$wy7=Ry@K zCxLMrKE-J%fpKKil)$)U{P~>N5(4kI+D;bcj!i$v-=C9M-?@1#p&1>UZk9W8w-fV^X_3;&{95gT{MG7rWB$Q{VcT@TcYJSG^Lr1_RN^ADBygEqqTjFOE z)^xNE9kQ*%KeX`uj@H~EyE^>2D(dYwq@m^2F~rUd{w%TRn70!8;C&G6xA=EgL5JTn z5syL5e!!EsH3q>VPomro9pRSfA-E0m`2R!kZGx3U#;}AW0u-B8=Tad-S@A^76-P-@Eiqkqa-PHfuNv9>Y z;xkNaCZaO&*~Cv0dnbO8*j%$dv9-oZbWA8qESzw=FEJA@X5t;ZmWhS<7CSb5um3i0 z$EGp;cX|`6C%&2Jn7B5vx+an6sCh5(3S9NdgjG^yQpf0v`p@@tZ2Ecs4RreR{#J=< zMEd_!LGeXNqN6i)ylQ0O#C58Xg*D3(FVM&f6IMz6mO&l<*@NdN_7-kP>>XkywibSx z*gE8k#Olt?%cZsH0@8A6X8NI<`FVEB(}}&EEz1+1b#^b85ige!FaL6@j3yHhXEYuD z^6@Pln=Zo|Kr@x%i|+Md!Mc z5T%<=>KI*?-#tKnm#E)W>UZ;i#B(*<5>M82Cw^CxN<3P#N*j8=_`;B4^G`}l>0EMB zq6dj#)-26zfJ)s|T9xRTp$(lQ<>fed`P0?XK;SrzoHO{BJ%FDPm+=$4tU-^L-%AV| zA##Ip5Dv!II(S3kXM;5U6%OF%gv8;*W>4L^!Fh7 zH$r~$FXhQS+ThK2=(NGxw87mxtZg{3$jq)58coda>^!MsQ(1n?0IlW|^Z-smrB4QZ zhYE!PZn=Ov(FQ{sOyuwaZSaTMV2)iFB(L-3r%1|7l`^4wDio|cfpH1{Qv4%sR~vMv zKyVEI$_2<193Xc}4Bz0CI1s;FA^mc%;~yG6h(R$^vFiHxG7b>@Uleg=8TK&aeTEBn~b zGMul2uNJ}AdWEkRg|GDo#aD4#Rq@xxSBv0_w!s&5!I#M2FXKzK{a?pd4fv`#Onf0v z4$m+37|I_&+vA1pDpO5f*`g1YlH7>k1 z$Dq63P+IF9Z{p)ywj?&(vO2Nvx|YP^eaVD(-@e4&@vVKh>Is*tGNLi%JLa#8@Biui zCHVeMo`dhPT>KaC4OiA`AIYBJ?zd~%jT1%CZ7$HDi0F8(X{&S2QL{<|3V0DUXph8}5c-@;C` z{k^EM*m{XO_xq*ZddAl?&C+6^7|JhuVH$k#Z3{q)3HcE1` zGwi3Na+J16RNDJ}wVi*|$%tR!pU0wxOa(`Gpj!G*=9{8$puxVtx^sSZbk#6Kk7m!@JL|%YAvG0u0?Es|_x0F`AAkm^ zF0~Z;7-FYy=?k#DH7Ci4FX~6PcdpXo=YKJcGu~ce(aTH7>0?vpJq^50*)hiZ!T9;h zD52WCUGm7D!fTa*vE4jIT8fWglDqWym@IS7hl0yaAM%sTEFb8W!LzKw1qDd`bBvUG-T`{_$ITawB!6EJ`=pHU5+UkOB@DKb^aS?cdJ zf596&o5gthVQR>_tbVH0r92oDpIXF$Q|BK`O*=8P>PO{99x3Q|3EVyy#U&;)MxbA` zWi}_HzyLx3cHR}83?ai)L%!#QkK~dBJ*NJFWa8NzdPkb@(WW5#F49(J*6pLNq37}G z48gR_JvGcAZAiL3>y5teUHpmEMCg#in6xU((vw-0_l_13nX5Q$9T&kk9IFQMiTNyP zTZGyEEYCU9O_=R_o?1q98ZukaM{Rfy{5H?#w_NSTYKPyJ)V)83O!C*;ElD=tA3BZw zLN$hXtJGdRmfX3um9#h9#Ye4Q8a%>pw^(W9QmQ(OBw|@ou5P_Z(L8nj$f*K#eBg{* z;k_Z-_Ng?KFqV_|H$LQM^eBGuYZ6i#Db#kZ!q0fB^;~jm2_8@ zq(omnXzNQZ!MhfXV2+7CP=N4|6v>td11{AJTa#4*_dU-yTS4ACHN~tCTyk1 z@HtR1Zwja|ucxNngMFrpo7O8n;x84t$PXLKq0)f*vH8LVduEnb`pGL%#;kzY*1xCHtU_b z)A$SizFay0^c>6}U8jbe3Lw;`pm_-ulE1g<$UPrS*)oz^<5XVu*4ny9)q-M38)x;R@-2i)#%)65lYv<_vg3xJtET)DZAD5pR@-!`y`e-d8UDUOk zKTNc%9>1K!bXv?0exBs)hcK^w>|Hl3=`s;2rek@Y83DZ8tcr&%k#Q{mn1Q8`N z|EXnIDr4kq6iI=(&?$nw;kC^9fF$&Nyp55%r3a3l??zI~1TXUreAAp7CiK(H-(Nd_ zf1&=m@>}>=kL5&>n|e(3a;l3dzQWj$ z_7H+QmSwaG&z3>mK4X5^B8SuoZF=#1Jo0TlYMe*w;bg8}_G#VcD1%ud!D#Hd>#cD$ zdl7)-wXx?pKwcrE^}FHnHkh!bZb$O3_VZZIHxj}Rq5gLMo35Px+vkIBeCn;k zB{%M|D5;~>;=~2k*5BqW1IQRG<<)ch{5ZkDrzFq{mu7|fcX?ock7U_BS`zM#O&6A9 z#G1)lZ)9U5#m~Q6{&3psI)yJu$Olw%njoiA%Bil~`c!oBZ6-yu$! zlh0qRpGf1sQ0KU=nt1}7oCsJWrwmS#lxgym{Nl4_`o8bnR4n@bB1e0CZ=UB|4ih@D@@p$M!t2kG&fa#glF z+YJ7Gdsogiyb}5~OQ2*9LDO-wwF36NCKe$~m1n@}FMZ zA!IaCH*${Wkxoi*(&~nL2F!XS24nUdsofu@?N~piC|XRN*ywDzJV`Fc$+?gmOwTnm zp0AgEp@k^R>0CLQ zY+r+RUw_)IYTU=SrXKD7-9RDg{#ML|%BFMD{l$43J2DU(og0YVksb8zrhRO}yfNPW z;XOY4v|#Pt4=EMilN-7_yr+OXdbEWh?1BLtwYWCE497R<-NP=acHdpp5K!d1*ZXg? zK@kwlwX76sD~)qx?03sKHO;XhZ?!O0WbnR{$p!C|KgAea6^!4s*O3c3>YNMj@<7Z} ziG(02W;L{|=Z;~Gu`JvPakdY?@cbrPnYqNuS7e19LW|KSWw4{OjkY7l-yc0~G2IymqbF9Cs9z6aS_-G5}t;b5Q(yBy8 zXU@rSx@6j)&A(JtSz^|$D(^m5vnNYi%UBwK1?wi&Rs%gC3899upbTfs(4S#ba83P`axoE(|K_}Q~0$Gl;shJ2r7j8Okr?nT9(&&0H;N9W(dANVeIWNI0f zYU(|h`zTrD=IIa>u!-Wkj?Ad5>Q;+W06Wg%KUQwzsoRHrD|+)^#&Rt3*sEX*nk*3Q zqAEIi^5vl*Nu_c#7rzI()DelHi-PfC3#6JH!K8X0@`oJ)dCo&T1sdHr@fTc4Letcc z<-Af>pwlu(LM4CoC3wWb93IQLPMUoKPzE|x>~%gJPOzI!4JlP!4J?)pP}pabEJ+@z z^7UbAV2j7RWy>Y2W?fR&#HZ`Vr~>nRU>76}3HHJway7mGjAU8yYL+MYu9NRnpz(<^ zy>!M1TB(lZwDDRrfTRHI%6X1E7%Z(4$%U-=1|43PL_es)p$%psG?H9d+ic#I-KTIY zXSymUSI%k9 zRcgqPk65%#f%?tIpy}iv()>oX<0zFHa-ozcr$i<-Hj}@#wy|u?wRM_4`O0$LySTBe zy3*qbrSl}q`=1UyG7G;d1FgVo=cib!_M*QK$?P4fy;#*>mIlgn$~Ra6&u6V&!MVN_ z9Ea3eRkmnGZa*CZWAO~mLuwfwNHr4}ET?K3R!eIQy0>G%~kFfHS!B7-TRXo%&Jed#QuxuV) zRrXov4F5}LbI`g{`1w!R6p$LH#jLkEMrcCKV|twh8}YCiNOu2N$k+y?AP68B4SpMv zUOd(MZIDQ~^kM}E{_q*fi`D(B;sMW4$mpE#7T_v;5cDhpJ;+NNKW!YHIX$-@7Hiq! z=`S1%Kd{zM>7P|oZDXlDPu0Dc2<38QteO`GBYf%xChUg|LL|XhPMHlqAWQwK$<^gS zl5Aekcb;n-eLL-sJ`30>x#DJAE6ote(> z7|ZDOxlJ1w(P>RP-0EwcH=CKn7I#ND_Gup*h^3qfGPn8~9# zTzk1o0djy-2K+7^SpHZ;Gx!IVwL%I9z_&ms^$Oq{8^79t@4NY9$bwupe|lb^->BSR zS<7@RoHmGeN!>=emu?tG(7QZ&1b=PZ7eYqajJIw;tU90BS{Ch|{eFP6t;cv*NQLI+ zRh#)Fz;dZZ+{=KT~grXU1s#v3_J*Gtz5!p?e z@zu$>wj9x&Ox{W#D^=D<-i_2_-(ZD3#^``3^|CkW&cI#&vS=2)j3XpQt>lQVcB-TLGPrGf+ac+2IPxLA^JW@udU+pF{N)GFBL zSM$NX(-`9|N#A~*0L3^8!H2DXa?Q`)Qe&(8sHzLe%YU+|gfspqbEUkoM_I+~8{Bg2 zZB^fKr}t@sB&Nqvc`ItsJ{(ucSM|CNd}@AUjrl^NVh)5(f>8|n{?S;VF;@>~$@<9E zyE_{TDC(`Ngcf#&bLBd8Jn3}h02FGUuZkP$C_d5DG|D>4JO^N9-G7W)R`oWi%*N#J z8e*zZ`!4gqLe|q5E1cHitvd>g)#U++94TMn*?G6!_Zd~;;ojinyJY}O?I@JzNHcqoP+DGGEUAfbvl_ZXF7RXoFrT+QCd{gI+08 z6caA$@Vp0cMNXrT_&Pb(Q4-k5e;l?gw=L?%4ny3qPz0|Q{RxN&#$QmwhWgkJGatu1GP;<1Epps3ELX7H$$_uIWoJ5- zx@n%pLF8xB{LZMFRxOf^8K;MzQB8TPCO>QwC`V$?d|2k!Z$#A-Ml2{7E;>f(d6$o# zc|$$LjuX#@;MbiRos&x_4o~Hp_ed${hzlIMGAZVCo5(R>Bn?tzQaj*OlUIOQHrb1o_EO(ey@reUCK$25IE%Q`X ziVo#XMmQ+S4R?9vp!adySCy@+d)J!p_9J)%je#kRw_v{6<>*r^S(vd*jPz!ni3 zuTmpy2FuTxaSSJ|eaayKk^p>i_T3o&sr8JD<15*0?v;=c2zlknVoyV1W8$;C_y@G; zF`y$p`qlEYw0n;f%)AT+_wQ%xMc4k&rro^@pJu}slS9)RzW9-L|EcP(NSkvh7xB@n z%13GUUdSZ?oO5+w0670F_B{_I5NE#A)MyFya;&0PP!x>c>9uNQMD~MR_27GoJHV%Z zXGb=>XZ;xFzLYYaw1A059M&N7$)s!1&vA$aj7^Q3Br~%X8O7+}|7sCv?Ptm~qb&4T zDW*44Sgs|OLs$H%MP{DCa#JGc%M#ky1nxG1RVY+r-q9t*)S_&Hpus*l*j{puH1~od zvUY|rc#hG9eva zw<&naUsj2uQbi%>;AnSH65LaxJep@C9~WAgAlF3Mi{8YpHuxFZ-x! z@~&X~1~@WQRIO{lT|wiSqDgdIX}rbmj&AJJz59)IL1UGiEOT?GjWNNLzl7Q0fbNef zjgN!IwkmIrY~lrD(vGn!$XUJ8jCBpu+;=kNJPH4<4tpxs=Ln$&i>fP$JBh9rMQcyy z(2U6x_25kAv%~PgKxrQH9|*wRA2@5A zA#OL9F>4bS6^QPwxse|GOy4KwP3)jK!s~h{OiVcR>hnSXs4|nk@}C}mTwM>7;kuK` zbo!00LPNUoIjqyxVJqhqr$g5;ZOKlfC%Qz}0-Qgk+}LbGf7}#NjoW+aW>+h1hkH0h zFH@( z0JjR&3J3mG*)@s-4>4(bPCI}DVHALb+;Fn3RV zmY%z6a2~HDx@EJ>(7~oo&C}$B9)HH3UGD4MnGC>{zJNj2M6^sr(<`ckaAfom&;>6{ z<6zFnF9iFbi%lwM3~~yB08X3C)5{>;y4%zeKbfiif5a)foGNxFgFJ1=&i| zwXr)`G3s6p;VJyKxwcJa4T`^egfz}pauuQi0)``XY`7X7j^-yz&XW`lN!u4XVCleE zrB!|gb=d@^OQ^%g<~01!Hd(DaDos{*eVWGBov^e+h{^W&<-cm!t<4ywWVXI^{Zp;Y zNayH-h}wqTM`)2Iq;|vZ9Q=d>1;jK{YLQlWrxzZF4j&hiR&@A#d7bu0vOK9amSP-? z=fsUGvH~bdzrkTPyYpt8?l)F6Ulz|cWNmY4JSd8EP#}JlU0_e%otpw|uT^u9NRbwq ze1wV}RAz#;5$Wjgff;L|V|bT8o|w`&W|QHZ5`;BXn%dxl+qsDKVYR4r1OFVlRd7ns7OXHtdX%IbU>ao0tzoOg> zn4v(b4oB-Ud$ziS+L>L--mX1IrdM@O&FExm!fEBAAf^#on=3#=F-U93$}56F5ma>S z(Lz@J!sb~|!Uz@I;VES&P6gLh3(wh> z-Ku{|S!F;g%Wi*AQ3mfE@Ky>IkFAJdeskf#kV{xWa zou4<0zCV`OUaSpXb=}h=fB8=jf5=w;?#5PWtkvrGss0yP5SM>ni`1e>%g@##*YmfE z1#+aN?s#i9l2XaZ&g}kPN?yj+ycW5cr&8rNaG?|}Kf7)nFRw^7?EZe}-AH$cU6{G! z_mwV~F<%S62}x^n+rn+$bQ`6MW^7B&72+xYCTkm{;^u0&*8DXZ|!b$_D8(Q>nUh9 z0L->&za4CdG^h}Vi^NaL{sqfVD;MF72d0-!wYe2&FwT?2F&scoirp;UpGY~9e+<)i z7IZ9dkHm0+BIbOPITs{P3ChD{Kf>{}xmo@Tvh%d)aiT5aKg55vAy~Yaz3iDAv`9V` zw7H|a))zQ5%x9PbS*9DMuPd4SE>)Nl;@}=VPKnxTJ&c`^72P?DZ!Bb82fLZ~Y?e|} z(JkT`v#Bro4P+|zmJe`j_na18!&+5lj$@gx7BWyD-f-|~i+STl3bO`ciDF75&Xb7du8*2$^{X$K$9>hBM4^@fgd z?cYr)&!-{)dTSkXIZ-Y zpmCvWE2(GaDZ)XR2l3|O`m`~wyxPj6Jy}U1Q9UBiI~j?5k%$$>neazRI0oCvE7=Fv z%ZRmQC;S-zgD+$!yuUp!jBrx#FSR_?1`cV(ClJJnN>fqwSPtE2tB-?Lwv8~UXR-*tGI*eT?HXzTaSKF?saL# zoVuQ(NW(?k=te@$bXE)>%|$X}|7B~D-(!gC@%xH?M-kcfS+0tkAN$6`&~ z#i~`ryn2oIJ(6H`8Gc2{z_Zst{GVtA2){Z~Opot`POHTSJbs8&Qi9}2Jw6UW!a0JU za1?_sEf~^*Fjbo9o&**6WH{dTltqlCoKKc=d8t-(B4*h76X$GtWsV%3rq=DQPVgIo z)A~&8_>#Bw`k(yv0$#g!6NWiAi!Y>g?f!SUb5wCAE`6ATX7M^0P>GU2Q~6LAnQ5Pc zSqzH(N~RFyzKtmLnb_NPj|8wUI{zm2Mcp5R;#3S6NXP?bSJrzTEt-u{$F%sg$O+3c??tKaw;iF6nZJ$@~!SiWF#~R`9|XRBgT>Ly+}VL$?93RQeUm3*pN_REEN& znr-YBi5FsL2Pf|a;7otRW(>NaNFmTx4caaonx?K^HPw`*NXq&?61%opCgTW*7ZnKi z*Nb`f6Rt(djEru39S+4evyUA+V^Kity7{n009VA>jz5tIfC>lmeh{L3RP%vPn|l;{ zGiCF&=oapD6e9Ll!^NJuw;+Y+Ha13!QrZs@ZoL+URnLK)( z8Qtjd>r?uL6Xo>`5lP0nWXVC748cB|!?Ig+A#n>@YBZ0dnzYD!JTeFV1+<6(JYNbJ{j3)L(#)eE%DN_* zN?jf=ykrdDw~N_VGsf61tDQ+$f@~$ROJJ-ak_&}rCZ3krw?EM^9OX2e7Z`pPC+Wt>pm#q(GS+@sB#Kg#K#1rh5%9KF>$?t|B!isqW{RcJblX01@qn-}*~pFu=(^ujR+>?CeW_{uD!T zDcD+WTX2U5@Nnyb_l2`E)TU^fh^LPy;jY74oLg^*rJ8BUC_-`BO^ciXQK#WNWH^nr zS6OlC^|cnMTO;Hmq0zbKgePf3ExB&ssqLiKFMP(9rqOTWWVCdam$n@z6D2Fze7Hc( zH6H?{H(kZ>j$V$rVI4~a<>zqqf{PEOAIyuF%dkYxR5X>kBEDDCU9tk`T+M+i_HCAe zy-NXWFI!6@Ky;U3guHx^*FNP!jTALN{d$?bQq&?b%uO+9r@7i+8Mc3dWn};uwitpE zXB#lY7|ar55WZ8!pifG$;87N#mjJ^>n1uiFXTev7N$9p~@56C7oc=vlfF11IM6ll7tcNhqyQ&Y%wPwmNr!2iYF`COhLQU6sy_I80WNgte4wv^p^gai*_{oO$y8P=bC zebc9_H(;i8S6M68_bwj4&Eh!I=37;!tUfD`o)GlnYQ|c`v5r7??ZoGM>-1`JBg>sZ zt9hk#kFn&^tFmT@Q+d}V*gmfIN8S_lf*tkhAI14yuSIs}fU<4Mp24_OCT80yizKvI z*_Ut)au)p}UdG3;;jP;hr(l-U&4MJK;I(TAe&o7&V%%l z?qrT~i4k93w^KxMq&q&2G1#({wLM|5fu(wEuyr|A())$x@nX|Bwv+WbD3iJ}*%~8o z&`RvDyC$bSflW7tS~;|1c02)v--3IySNyjyIN_Iy0~a-uT=Cz{SgpM*IcuB2akcDt zZy0chO6k4Bhon*$m6SZu(eLvC#FZ;0-TxHxlC4#djP>T`r84MJQ1Q`ib#r8@eHl(KKJ0UZ?&jYEvBEfH-4^F zinu|HtjEpgcwm(+6ADEtxo(|GBO%HirM{NgW@V*&Q5f~OdeH4b<1JC|A5asJl%+61 z2}$u9A=Zrjl?Gu`pSqDZqU0w94Ik4}AMAId$UaOTE1xMBi4h=4~h78y$wI2f4L zDZ+LKtUHwA`(Ie!y&CI0nQ*uIp*7Z2Djg_1dmFh1QmdNG$Dy?4N>mQSz;dWG0`Xk- zCS+b(APm2uLQJigQluF=qqnhThX>KGa0~SkdxfIg13Xtau1s{3V%x|K(4{LDXCF-L z)Kc7s01?KMQOG(e{Dn89#YboGZ?^7JG&Jl9sKtDSuzMIs0>v&!ZKc@$gl0jU?AYM^} z(&O1(m)RwA%8PFW436F z&XbTF`aur$%J`;U8UGA5VW3hKh#>0jB?jpRAz;B&_Au5H+ll`ptl*Rl5%RSSnkSbY7ZLg z+*wQh#F1?|0=CMi^Fw6Y8NYR9+a^BhMYNTQXw%t9gfQ#z1|r}9PbUV5*l&Mvhxy01 z0L58yE3r9(S;+Y#wHs!Zk|{o7??>#Cos0V<$_%}r(1)BsZWX%XE$27Pfrz&%bLD?h)Cm)2)_p;v+wA0-b;S}$)L9bsa_cIY-G41VE^uf_7EdF^*mVE} zC@nIBmR(4%lkS!E`vab8(XD72SsO|OeqoWlfnv!sVk?`KK>3LHyW~h|=Ok36gZTSE zoZ~K$SPgpvCh2Uz%;!na_@JtH14fsX*ghGZv}rZd0UT6{MvUC8jKB zCTyw-3!xG65uKPa4gtUp*qhpA(_6A+uo#;lMf%#NmenkOgi-$A6XxO zM6uXWmPFD8N%F#n%uW~{-Wt)?q--fXUcOA2_?S#!ix&9^5R{ou1RiWC@plr%Cqa15 zE=zwm2+s;2_?_uf_0!XLDLsoQqrrf^6LnCb#?XUrfB{NcyCKxWo@ohrJnX_v0?gsf z^l+tFqO1d|wd< z1PpDEGVJh1Iud<}lpg~AEYX{378TLqaob~v`pSs8hq(x|&H{f<)s}-+O}0CPS@)|^Hrk6-pha)wvD1la-!&TTe!S){=tqxV<82^IhTY$LZhue}t8^AT4_YVDieF8j z6F$~z4r2DK{yZl;juyUJn8x_j`T%>0bU<48L3EQXA{hW&Fb;!@i6K1a5m{T5t-E8Y z^ZE;UJr>US5@pIl?EpiL5!L{)l6g4`4r_9)A0t9UsIw<8u^;yKnihR?uL~g*QX`J3 z;gFg56iRKP>I@7`d90_TSlQY;&Tzmb#v<36g}C@KiCE)yI6b91nbO+{eIK-wQaTB! zPC(mrSh4D}3}dbJ2m+_l*vs}`y1C=r<_^IF9^rvqxFntZhw(2}u$VH3wKIm|4vC`0 z6ywl=dHrB1JjDc-VVDJ34YCduN@(nm3X-6)L6G6pf4}Wt*YAuJ4X3KtoRZm2-*gJi zd>>k)4GI-i)au%-Hu-6-)e08rty_G?qG5pT$(wI1ZrtGU?3fJ|`}5|9${TmfT_{+q zottwX^sn9fCm>_HaNwQXkusYcQ|B(w?imRQY6Y~dhdXMVd()i4fubq<5n&Z2gg=Ty}rWqkBUR?;Dxd|7s-Qgg~fsuEhbw-{b@j^&%ycCY1`pJ&S#u5DehV}-f4b%>!s2*(_6U)5wb_LEgG{+tM_l{3lN`31u7ja|xwSJ2)o)Ko>bPsSsWA z(_gvtX#VB?-u8dg+rCf^gm{s(4?DPo78NM)o zFoC$Kw(!OQ;XOGsZY8lw0gdUC3m;&IEw#~+Cy1@`_ydp7g9xzJjmI{!LYeK!TL9B{ z^R(f~T&;3(t#+Fbs@~qr)?mx*M+olG~c+k!^r%LU~^(Ax#L z^CZ=pz^5CFIW-B`SFlo2)A3wQ2EZc$c=m}I0NeW_+KV(1f8gQ@u!fMtkf%fCkA5;Y zG@!PTXfIC#b6P>F6#uGnA+BmWSxSV_sNk1NNkTQ7(kqgSYMW6qmwH;%eRr~jd~liH zuS@Pe$q)NZ70IiK`XM;wh;WKM>r0uEaH{CefmS(JvX3eo_1bGk8gH5p&S4at%=gxK z<+}mxwa=g2SC_}%JNWXioqb6yx*RxOXI~m`^M3Yri)q3izf`_M(C)d9n*afUSJR5f z#Jv=g`}4Sm#7kP_Q;o<{sT|%uo()E49;NM)mNAp}SC(zp!q4;G#upubOB$DN4QYOx z)72qwibg{yDwwPyf-^#tDnaHj(PAIBq*hg%0f1nB)J!Dd?&t}_Zy!rWkV*iT} zR*9@+@i;qKfgA~^$Ov{0w`y$BBCcdVI=p^ec}?g_|Enk@kN>ri{8~@&(`^1lwR8&C z>C{W#PbU~9pFnu~cNnF0f;0r4(~W6SsV{iVdR-b78_oI$LdqUDgL_KK2g)ohEb#Qg zssD$*i>=6(tYBHs^kakCvnhRYYn8W4P-rcr1*xYzZpp39vV|MoKGJ&Jd9MGHzU03K zK7gJvi0y=dAcnJ$tV`&G{7I`2JPu~~%KS_o`d`J3=XqUz?2#w`YV(Ht9v;1&4*qR= zJAtdd^mZx;{Azj=$595oN&fIOz0KrC=xZ}z%j9pSEcYbQHCydR5n^gxVv~Fl?Ow^S zD^!Ne@j!8Ezu*8mTVpq4#%aT)GZ81!)y+;8`4lJy>kfqlJi{z4)ZaC zbz~Q-2;4G?!L09a`DGgFwrL3YKZWQ+QbYQUC4O;<$PT};Shf?$?Xxj8yDlWoXzaN> zf+}Ef(Tc{y{Po8lYv2H>Uq~ajNtrnC8kYOwMI0#-JP@EL zVUMaK(}ssug<4W z9$n;b$|tX15tCtz76m}=m9&0B<(TuE&~}G--zVRGMKDg1ZxVJDjg(9!s5KJJjxkJ0 zvk-2SMheQhj5clTvS>?ebiP)#r>sZ2e3hqArNlU)1YOXCTak=B-6krJPjiGdB;Yh&>?2o^%5u4ywj-kUK> zYSk?uoQTLNzyj8Ib;=l*A8ncCv*jh5RP%fQVLk>SX1t&M0SK(z{cM-jA-ybm@D?k-g6V+mW5*rLf-6(BIzLz&Sf_1`dWnkwF?<=9u`I1~v;vg`-Ic(XYU zAd{QZ`~W+ZR+3v5l*g9|?Hs3d)TvFR^X*4&)m@lY&G<70J@h(s5A_nQw!khxO%KkYhH0BG&Lr@3{+ zi$A=dA$K!m|0^wQBg5SsMGw9a34Xkea3u0XCkC3qnl@+oE(?YzTz9V1KOSbZ8|uh@r`!lFivQp z%{3QfHczcP7JMlwFZ0eh2=zYuFh(tMEJ{Mwd-MMC^wUqvY>v^MZLQ)<@PN1F%M&~A z@5)!AX4A&l#h}ohWoLGyr$V~QE@=EP#g2n21)X!wseTbl~)`;V%h{Du->N{0_Sw?x0N>HM-iZJtzI0b8aB^{mUC6CEXjI3RrB6lX#ZDfY{agq z`lnC{|21HHN@uz;zbanut=hGLE3D9d!Fc(DW4x(gaZk8qq`wK9k*rE2yxA8jk`HT6 zt_|Pi^Mref%?_u`8zATBWNfK(-!%de6p8bcG~B$P@z&WpeTV@b)l{X-irFF<`7r!`*o+T~zGZh(+-cmA&utO-Y2l3)oz1UgTxg1NAy`wC+saKd zF((bg1T(_U0cXo@zDU~Bk~JIkPfE zEmi9hm;}jVk$)L>36E^s2Ir2lz@kfLjf`EMyED;i-r(Usy5W6aXud6D-}|{TaHO#g zn+^{mV;dNh8ZF}tozXeqEE%4&@Wzqke@Ub*YZ`G5pWIgEYF2W$a{w~5%j=}PuJE7;m=!5x+(jYz&OlPY zID9#UN3n7F*iaatXy-YSDO)Gsk~`zFRp#Agj%D1AuCzu;U(FdNmNrN7#k+92a`drJ z``BT#Kak0@a#YEHtb$0Xv_s&!UosclCqwn&M<-o2{wpk#@J|c(;qcNTo58L2;*~== zEJ#x;>Z-|sBEmQ@uO0hi@LwFZtL)LcDtlxy*tHWs*$VTRI(wP0mWRx_9-rCID{0dz zup0tJYQf`Y!%CJseimm~z3W1LKdv#zu3aq?^3{7kDQ$+&TA{smd1_27yGYgwugO|r z?p@6M0S(l>t{b1}##WVO`}^+x1E2TJI|nGtJJ@hx_IqDP1Y#mgT+qMYWB!?DIp=Gq zN@RmDU}afgK3y+knRN~;p`EpU)~Q1U~ z^8p74gJ`eKr%Us5_O)OUEkdM)M~(44dyH@2+$rO`=zIJ(qm3nieOiU&^8>)-a{~8b zZ!2tr{Q+vR6}DPeDjYY^lqXQ!;y3*HTGJ~`hd*{@0iR;bd5-JiMGmW73t0B(1xWFi zN&i};P3BL8H}uV=^^n}dZv}L5rI-hGm#b<8YCUrO4MI{C;9HyXsNG_09G%Vnl{0Y? zWYS6#g5a|O%*)!L}bbir7o; z0`Cs8%*$|8{clkpSy{K;nn;~=`%uKrPK@|p)2ZNh8bYSw1JL^;E*$huRDy>e(F?S9 zmcX-VJD~ni3Mu^9 zN*?^lt*yIH_Ddw`%`Ntuo>PnG8?ANki$EH|PI}!@azfPzIK!j7LxHkI0b^+;Z^=Nt zK^wE2wOIV}EDl&Gn?Da+V(CFp9&K!EfCO5|mVC35neem0k*nH7#>nFW4$#@)8z>AO z?yi(4x#oWonIC7P-b*ct@!|WBUjC!1vRE=|-ff3_!(JI{?sU*!DjV&|9Qa zdPIzyGYKbvRFcQLdXsgf<1gXym+X>DzS=Ii7`=w4MH+PMl8o{F01lDy9oKh!Di?Hh z<^*U>`x%H9S>JbbLNEu6?kx$O3aMFW+^^0eiL9a&Zk=Ibt%vvTn>kj*(0j8lgAF3G z4k`YGb84KK@=K!+E?53Al|tM$iCah6q62x;XNs+zw#edn20jPDsmWhD z^Co@jz*H-uMc7;Yg_nBI`>Mg}uQEti)Ioe8c1&IW60+Ka`o({? zPfU%1=n_9cuHijLY4`32#(75pr#dFIYOz(kxOGDoS?CD0)0%qZt@5#WTbviBeMqeq z{gii=^3lc?E)>h^I2-Wrp!Rm`OduH>m{JLaEYNtheqtwYV)bOrP8) z=PI@CIoXj%{`k#Vf#P@dR>aaGqpfbO_WHKUvNyCjOMs)Y_>G455un?-_7jn*qz$ml z8tKlL*fT!hGDj15CDKPIM64d;S~w2e)1o}cLGysXd&C3$&f(`mZ;Ki#sKaENb&Lw7!% zG0c*@rnbGs9&If`@f=R`vHfNeMikNIJ@zBVjCsSm&mn&z55l`ggx;hJ^ZT@(TtB=gCA&zCmZ|BYqhCK8Shk1Zq#0X8}$0w-p&;& zRvH2mN;XQZ-N?x_{KD7uEMcrGz&mh}vO_6iG@0q6IqN(2bD;-iR{iAz9!kKWO(&vi zm6zT6u{>**a>~94OSu{8a+PfQj%{F&EDxhvAo`|NKvZhev>lIvQ8m^!pD zU=UybmifoqgsP4zS%TYS5>kuJ{fF#5sK?bewtRFFzupTqo@ejl(ms}9q^N=R*f%B) zc$$2S1Mo9>ld9!a6R$`E#_p*4k4u7h+)FW=rJxF12NupYx@w=-le|H6U%jwk1?%(z zHo~M5pEy3spIO8Fjq5!=837*>B8hmWPqvGYq{r)&#u%V`si)1A4-rtGhl?DQ*FO1yf#9=}b@{)Ro*&M4OAE~%P)^}`&i zu|+~SDi8|`%${4pnBAi_n?cF*usO1vjMgS*13syK+P!PJl4WZ&B9GMe_89TE_+wd6 zb<+q~ES}vE5BN#Xnbo_XmE>y#lZr&Xou->(_odPrIE`_sFUykV z5r`D)e=Dkm{{teV7mH)MDF02~>49=);;3lKr74%Uxxo^M4>3((XH8xJ@SNu|7 zeVW}Ja{dxA*`}Dk$7HiEpkIkQ`R4oZ_pV&BqtyN z9c?h`dwvVJ5`r{I4Y7%UD>`)+Xi4*9qED@ED7z|FSme@GRk%aYn4?9;+n|HItL>|- z&=I@=!LztG@QfubIec0OSbmVkJE9Es1PThu@DzR&7UtE1A_>Es!e92R_?j>& z@jR2vL4wqI*hezw<=@sK3#nZGEwa+_S7u+4fkOk=rAJQVeMf#1BVTo<;Jrf486992 zR+uG3p;{B%_NQo()o!~81Xx7TRzKQR{ZA#)g!>+K?7rVbeWby8G-~enu|pN|P476F z%`aGY*z@rvs0JJYstX0G_OD-Wlhlh*PoNFM4cWa6axp+E-ap3~t-P<`y;bDCDRkZl zABnn^mjigFFg9-(1C|laT2CjZ(}`+rJr}ZRH%Y=(OI1x2z53dS`J6-@kNL#Swz%{O z{;&7HB$j}jWoiDQR$frgmUCDx1I5L2eOmC_qT9NQPDD`6@bBtmF4zuzU+f~qWB9ia zRwBNFOqL9sSS=v0BwFCRE|eE=A+HpC%&d&;Z1?4fnJc^_&)>qL?gMR@y8ug4DUF!Kq-u;j=^#~#U$QHm!8vArTHLp+HoILTbImg>Xgy9hN- zo2q4;j|r_n25N{dn<<`Cyp|B>%{I2E4y?EPtLvSO)5`kC*RS`k)cZO0Bu3olNGXY( zss+X52a@xy5rS>=yyfEaYSou=j0O^G?Uyw4SB>dcc=$mMw$LI!6aYjaDONS# zTg~ui(VtB^*7u-HXQqV#jh=>uSwd6RG+u~HIx1R<@1^Fcqai96Tc4xMusUrOX)UK? zw1cgvt*f{TTO$QLfz3EVeQ|0tiik!YI-PNYI)A9Bfxp&Ez#|wM1m{~TXkX6i(4v*X z)N)>jt<}Sw{hZM@QJxoB=@(hfi=Xhq4#`LMSmi)72KB6r2x~6y6e5VC2l*njR){3N zeW%+PLLB?K({1cjDl}zT61KtzLo!d7QdCsd`AT9S6n0H4nrZ#UmK1=ghS&?{28xqP zPip4do%Bkf4DRy3CiSf6DH7=A%w?aXIdi(O);ox}-rzv4sKb9dF1f$$^WhWkUvkNc zZL7{)(Xx6NV@j=PS+QaDi4s}0Zhgb%%Ftk9ygA)vzTPEf6iTnGop|bx`#$N@db1r* zRkA9)`}kQy)neU|3*HtC*Ld}@WeaA0hTA84JXAB3y^3t*59^Jma^iQ0+QAp^5BD5D z>n7Dq$trt2;kM()wfiXzmD7-X-C_(S;}V(kvzzp6&YdFnt$qHGHkX`ec+*%AHswaT z`EH+#O)%sD3aPH0c$$(`$-j%8>sU|oV^w>XZZ!04J+ALHs&lP(=tti7S$`1gQqmHe zUdWD2m9ez!_CoEx&EN?~x*orFs2;z0Xvvb`f#co+w(7S^aTR=}FVC#0D z98_m4@EiJGiOCCZBw+CEJGv`lM<~NdmKj0&%*W}ch-|4J<&RfFP^NTV($X9|(jUWv z-maS0$vIfurju{qsHQp77hX>ywsm)`)F*QeK_Kdh`3=ud2+?5_+t2fY>Cx+Xm zE?+PZHnU0MHXVKr6%`_UPFC+3z9iL<5>??X*}<}Rr*Bmy94Ht1lms-cfeMq491zdi zxb-Evkn_KO$6w^74>9GB6$eO)I-Eyh5Hs7Bp~MZaCyv!&>({dLwPdN zFvIKL_8VULJAh4LEwTuXGLm-w5xwqw1aTzJBOD(PbdUGWTjU5T=~?HqrN$0{MBRAY;zTAej7yTu47Kokll8=fd-5dnv zn{@s72({5g973VE ztSviWe0MMBKHjlazHBU&h^s32MURhTju*d-T;de7QABq3WRdVKo_%jp6F&sgD4$HP z26utjltN=Aej0Klhd$6Jukst?3;o)wf!_{o-Izm2z>brPS$*#|&mcF9BvTHsZk3fW zn2i2~1}bAW6sn`QB>q@F{F0YaVW&?G=|tfEsN4Q%h%bj){P;51QuBSHow>kh`9zyA z@Zpa{zJVf-d`+<9625eTyL>^S$Ou>6wNk#Opy0%ut0_nY^*5mDOFq$Ra;kaeZ`^V| zL*=#=x6G^|(%~n5+LzWZQI%?1KM80fmh)yO-yQ9caMWt;-Y~W3!)Q?l*!WvF76!bF zjc&blgHO-HnP@9-&S*B47Zb!)gKFM=jCSv8L2GPa4i;0@)Ad~6M5F-YOVtPo>70TZ>my( zH1yKDYop5yHJq9HM=g99~OS=$hX+p(b`&zV=AlsaMk(`?Kf;5YhL^6HIR?VR~PBQf<9>_{>fS9`7N zxoSpS)7I4jDnsyDZ&OiH+BZ!GR}64k*=2=V{B^h~qj#Wj0q_^E4j5K!e6}AA;|&yV zaG0fR@y`dVY`p&XclU)i5Oi}cZ3yRiwK?KSqHS4zhZt&En|7a^HeKB2H{O-!&|6a$ z^v3&1PJ7^%O`&&zagzET&1S_p$Qu_$iW^lvrdcP+7RYgdvNZwno{UWtQ^{$jIN>jD zr;89y`0E6|DM)oKGLYUG^{fk79|Vjo0psza1~6id9U}UM4C$>jY_6v_q?}Arz4<8{ zW|BI-J`l4D%U}Y*i4w^=pK=qzois4$N&o;@~sm%3rPCK8gFO6 z5{9anO+fhz3qlsOA$2nFZ@3XX@(6$JT*$Oh1L^{ujPh7{qz+LPgPb>dUVrORcqdcz zE&b3IeG5eXNyMLszAd)s+vwBt79l5c=GujBn~%U~)$Y9`PZ(wVz-Q&Ll3FVn8Bi*| zP8M>#gI3n5q7CcYWt=?o0YQ5#GiW#RoH7uy}!3(`C4 z!(ALI0)8q>wvjIzpM1btt`ud3GbPbi;ZY%Q>Wdpwk(FP&;w?vV5O~g&2nEDg(3*&5 za_nZn6tNwh2tSKP4)Jf2B;{Ts46gd~?^-Jp0je1XPy{f%1D1rgq0eP%s-fJ-Dn+zH ztkEYRY-%Vf^~Wj;VO{-E?75lIq2XO8Th}9sngul4nuFuXJ@LYGZQ9#l9#JT? z*TLJ+7~=zh@d3nvOfB*{R5V2ePY~8;Jpo|s|FoJ-?Bpu>CWgZCXzL>Y&;F;{tkk?jvft;@<#qU38wxa14arp$duzHx>2weQciw)O4h z?aj8fueEqjK#5>mxv1c+BDT6~v|{T85zYU5X6D)51km^P`~Ci(|Gx{9nP;B4oH=vm z%$YN1=3z5RVtQk%ro|`GTzxk~bX&YpwY{6eCem&%3>@n>lFBM$dEDZyOsmUzS{(nn zFkqO*DJZpEo$o-Rs=-~trx&x(ItB7{btdR8L7P|Zm|4~Saj~nTjV6Mr+rB{->0mGI zj5QTXZZF$$<1V0j8$XBY7>BNovCMnw_6fP=v*XtkR*u&@`4yu)=3v%KUV4V~f{Q>k09Bi*7yFkx% z{`hEV@9m11!NDqe0?w!yB;4;lY8S?MGQQ*oWMN*4^6B2x`d85r;Dr z?ghwGd`|0#Lnf<`>w7(h&Scv9-qw!Y;nOfja&7u0N+?wysg^TWsv&Prn2DXd4PdAV zH+KI#f%Ff`M0!vxi$7YfRH#dXL%3>yD}@pASnW(^34$oW$|p8&+D75NGR|RYJEbpR zs@&Uf-gc2N#QKp!&n!NOq_@ztmxSzhv&!$0%}E)HnrR zLWXLnf{aaL=+MZB_P=22Ih>%c{l+Xrt$Ub%Y@{TV4WBFXpyXL5_(!`7vR|dQ++7D8 zn)3Qi6TTpQAR2@y2`2ZL=?0<61r@N47fF9Vee@(+CWkVlFYRZ^q6PRJk)ASH)*ObD zQ1sAM6isbN=*yIZ?z-g;_2w#Uu9$vr{%4ws4$F1kAJzP(ufJH%@3G@#Md+JF)2uA$dni}&<8lo1NKi9|6x7auTYD_UlZ}Ei^Ie_>|Q8Skoc+0tU>hp zm^7i$3uG#*@lY(Ila^cY%1fpF?R zg|P6r#974h;HMMx$kj4QVn6Yz?o)`m-z4$U*&xausbFj4ki;CuACYSIBPOu~r0Lo* zHTU0mv$_p;`;cj%mv1jow2ZBh%+Ux6GwksdU&CU9jx@cvj+TJh+a?He|F}3johmE5 zK*20(=;$vr!k$nCAQ7UZ`!EVih{ciaN1p6NiVe}RBzmBj#M`an#Pv*uW%BU}wSFqt z?~9ePg0eY$@ov|xXKETz%vu&*sRdwSj5L%cLix>UGokvXW*UF`H;9EhuVKxpv8C>M zb$yE)Fnf9qWKclBUh}q*T4iS7C7xq0WXN_4-WaG`UAMdf;1so0C4nBBuRA3&qU|6Y z=NF{4@sOy5#|d{y^wU6uDqDbxPlZh*BgjPVgCYTc@I;>2OaC*&dOEw+R;_&QMAln@ z#Lpos)q}!&rS3#AbuvRz?Q!s<=1nuxBwih zm)MVCQyFu*7MeuuGF4@;8>)KyVzNX|E`1;R>U@eKd8ue6v4;m*SRv3S$sut%$rTOR zg}63Vvw}fq)qbPL!m!cwNTQrrW}(H2VPGV+Y2vF;ClIQy$cjFLGPCF7p~Zb0t_#Jg zJbVefJa)#N!PxnCw;vqK{gQN+zw5L|z4)@>vmm2jpKouXym*`I=I;{6S#RVHAM)gf zY)2`5{@w%8-5ey1E;w4&6*#IBuYD;{&=-vP?>y>{a-3^N_+rry_xa7d?(3b0)Czy? zorjv)R&b~GXF}1}gT;Sev)`V7f5g+;BdW-ZJ3|ErM1Aaw&dXwIc}OeAF+27nlSeP6 zyLN=X$2}^2v6Or#oVWV(S%H|3{gRQJna*2s`wCL;1vp=Ow-?3rn$fbk5PnO7!~X7i zXphf<;db}76fy~!{iCj-V`e+8=pWk;Bh-na9(d*;T0|xWy3Sl)?M&)Z)hO!U+cosn zSx%8X!hcm+I?0mS9s+(Pe%>`!&;!2M1krj16>(ACEFCP6mFl}Dmg>ZjGYm5=dwQ&JM~(k z`rSXMA~oYIzwcKfw-{Ks*5_|ioz~vhVhcvFItM730Rvq_Cx1c1hPooe)>Y4uA@aSC zn~r$lw60r(k#K`2Rk(+cFmW-@1KY3e6Y{cw$3A#?R{Q$lBQ}f_OmV*b!v(BY!OKq> z_!!A?_9-@WbrDoD_dfoz(jUnN{rFwM=*aP5Hd!RkHv03_pYm2e(#cOR=ZdEkId2yG zXNB|pu4~o4VfFq%HCI>I;|UYaTRj{l+8S_h1(k&P3OIsWpr_AU{Kp$v?fr#&WW#yB z;_b^+N?9Qq*A7rm;3gHLR=g`#n4&%g3ZV$8WsOhSjV;TRu7@3QKb9(XA^^D9vx zIsGrE!Lax8=$rAskh<^t(1+05G({fYSG;s+>xHzALeAstRr}n#d19;DeKmf#F1pO4 z@3R5%rE zgY5ivSYPWoa!Nb;9Q(ZRzV>)7yQWS-C}O&WwVTY3+sb3*p7PjQPcSz5r@`2qM}l&P z(9I-J=S2_m39{T|)?!RICac_P+dJf%7w;QMJA!P{hKm2NW=UDsDA^5W>I?T#F`_9f zG(})tPJdT1NM&E0Eo0~?+eB^|d!fWA@ zZjRfq^UgiL#1k2aO*#7lzF8HU@)f*356q%Ns<(E36kZtUx==pmf!P1S``aAhH@W== zvW&~Yb^BX4mJ}n}4UwjOtN<9d6(kBq-;Mj`OEHoA2SKg*qvH4RXVpSd)za8L_x1B3 z;>g#a&1`__cYCh}q_1lJCF7sOA}0@TpZl<+#E|N7#!1cN^eqNU(RW>)3*akgUi#gC zxyorJig>cy1L-94)1K8Qpg)Y)im<{b;gG_?@&$oj)%ZlS@F&GLMHd%ypS9N^+N{7G zU0Gj^_aNx#5$x*xS8##$Z*UWJ>kcCxf%AWzsBj)0+dg-w!0qa67YxQuoyJqYdzOHD zEipRN-vuSCp#kTtfST>DW#k2-bH6CXL>FcSdePM|s(u~l9XgLV`H2GZ8x)bEzXA8% z2w#mp+Z7znO%{lFSv{W&6@E0*@t!}nn%(Tjll$6_v#))v;8`JrZ_ZITDlHGksB;3< z?{f?nyQQAjoaP+vb{_+aF3AdVn8U*t6K`&R6%mQ^*p}}BFMm1HUAV_r@cibkld!5# z8{peB_9B|^mYw3#qg`J(y7!G>@jGi@4#|P?(D>Z6@f$4Op)T%V%2p$hZSfvCj8gVi zG;5eI+Q@i#CB6-4L-JWwW>sT3@B7lW&B#OVta(BHu6?&}uiXDKFU#K*%<>iVL@pG@ z0C3C>J)VnW8IFr%6;4mz2*tP9n9q^T_5fB9{;tvf;>>VgSuVT(JJ=F_0^-%pIzAJUslm z>#O65?YeY$T)tT)-;NcIcL->s>oNn?3lPy7;bO}@_lsOuxQ7Ea+@;dV%s!u2*SE_M zX1?#rI4w}Ht1Igi{`#UB!G=6L7p2a=aES?prgP<$NHT5d3wCDhlLn%b;Q^ zjm|%6>ZHD4@sn%+6oj<}5q;ZVJqqsGQrZ(4#d%T;UBHCwyu(r7DT@Z^-R@Mcg7`K- zupX5^uIP(0f})2W1yu|RF7Dly*fD_qgRQiwJ$3a z`@H9VFGU7pXMEL%Id#{SM?*1M;Cgr)MitPGpNj$ypX|Er1`@T$Pbn|n+IpG4YyM$I zYlXbU{&O1{qdj{M`lCC1d;6k2f!O@R{t?gn_8z!trjeFr-<@4KtSXcnO1hf zclIQ*K=4`6J)n#< z`Up^R>|%5sqc>)D>Y2{fkBOnWv-zu&S9rO(J4#`#eH@VX39J!^h1VyU5Mxd@6T zm$L3Oa^}xDETqIr8PCUPm_DAZL`*Sb{VKYNQ1vAOX5U@O`G1hS#!CC4@!bNfd=m$b zz&Ah3qkjS&?(gsK09l(<}hYiSG0l{LQfo1!EDA@^w(xZ7+}+)7T4K9p5Cx z7pY`5$O=mi2AU^k#$WIxT>axhSQxnpv-w$xMnYnL%n3?u z}!6!C14432asCBJq{1jcFD5CPiZ4B4v6eaf@8Om`> zZvU#@0bKJK0TvRHZFZ2!rQa~YxtMhqE>3r+K#l(QgIX;(ve_vjzf6

jP)daCEeoLja?u5?%u?YNRzBz@ads~R3~4@F;>CZTdHHw*!WP{BxErxbPZ$* z69wFX_e%UMrJSXihTal#tX_?)-eEtW8irBf3sB#jxO_EP-?ylcV7EGPs*(j+*FJ&q z9=okwP|aQgsnl@&)O6VX#PM;t!KmX(vZylvl|mq1GWM+{u6RZV^oJE zK46rj=6_`iD#<2`p;>->BxOmu$zq<6AALOW5y^!flT@0xPYST-2kL)tIW3LfR&az`+haZ{-Hi8XTrvg5iVRB#Z_k?ViEw)tlZFJ}dUF-GJ#D z^^p2Zv)?tUWBdUk2;4gUkPh5FUY0~k7`$DX7==)lHWL+MuV)>8{L3?W-&KSt9siyL zW2a7jf~~`j@js*l`2`4X(Lu1YT`Xp$0JT9~iqI3F#Cv$p=T>?DxUcQ-l(m_BGGbTS z9ni7^QX^#`ACO?0t7G;Msn!(5rHtA_#pimYJGOXN`w?vZJ|ua0>@o*8c)q}bqHl(b zyV%HY$F2&XV7Xn@NqV$JyM26#r#!aAfqf+tJ37{n$iIX97|9Ob@Fag-H~v1B_4QcA z;$3~)1Qr^=DsvT+*WEVor4Bhr-1$WzNoD|LkF|w;5gQj0438F=j5JCu1vchGEG0+^qBPA0B)`MmQ3E}^kExW>7ImXw|?(08s_RKfqVgeu_P#q zzRp-L%bp8bHi=@RT00~G$3%>eZ&Y#)&aBcdcdJMWc zp5d|m@THu&BPJC4p~48uOz(CFfV>hfnJ9`(KrN2xh|a*d)P~hi4Hva4 zvN|v%y1n2NRGQ0C$%j2$9;U-X!rV*Xx}ANjZqhA}ilufpR~xEpyZ;t&P3$gn`Cs=H zb5-Z1{j!GG&au`J8_vNXb^{zQw(tY7e83!*q+<4+(ZjA-k4lIlsq_NZCRrbo$K~2o zE^P-s85IEx<6O55WzSe_FIKf5&US5jfj9=xecK##X2w_LJai7?4PT$U-%ZnG%`5Ai zOiT7F3U*_!@lmhZt!>=ybFh1RMaI@ZOrt{7n$xIjIexzEA055`a~U4I3bc^v3Bj(6 zM|)hwcOpjvUgu~irm#ElJ*t&)g)M=@w?**F-hJ3>{tOz>4C#odI?E=1)HjMX? zc*wyqlH^d4iy}L+hO6;4kP$K3)=sqti>wNwPl<`ljZmcw8=EZCM$DSsN~}xFrcUHJ zFvl0v3O;r`j>vi2kA~9!h(9iF=<9O73?B;IL30~l12yB-=R;m=|H~m)=Z~NwiDw0H z`}n(QR0yp71V8>Hd)u%W2}3-k7^ur@fkVhN`fOB36nugz=^XjmDE4O@b{cZ8N{7Lv ztxn1!g*R5ID0VIjGG=pxsihB=Z{X|FqTCg2L z*yLvg8ZL2g7DNvjs*t+m)xSYDDC1nW9vw+Bs+Xjv7!;C1f&mtdGX60yxQZpvMxqRe zA`bqDYM=uFkS-8-K1V?$kQh45FGYy`A4|^X{LzDQKP!%%7wh++{HlIXvNlPLcF6pcM8wkt3^zD6b1AGOly9~bo&dhE<( zo~`5o6M`V69q7^>8~-A=P((lR$HHeKl{{APCo$RFD7JzywFdu?@c4k^ZDF)mO@cgR zQlfz95$+c*ION#sEB?r}Xsa(a=cL$VNAcUyxa-nhfAJwqGWp`dhG7N0VqmPr^sB{{iX^r%^uZjrbN7^%#cA(rG7SgVMe(%YjICy$dpF5YzWTEH~mYxi#pj@yo@y?bnPg7{jKY${5?vVu%aJKjK31j%Mti zL`>Ky6RBoC(4+A9tBSS3Ubswp)n?@FhsSc$Fl~r#RixT?W@V7?D80cH(=ig5g$Ib_}C`&#<$6$N5`Ya2KO7sDcq~?PC_d}YD)Q@fId3j zLyn2x1DnjTI%bq-fc{2RP!$Z~a7 zf?>YxCy>h=#a=p9eHg!suS24qjNgGzhjeZRAk)Ah9jbveZCRukTrXzrUI@>d`{u*S zwraarHSf~lr@+|d9LM1F#m#35A9PLqz;(+EDU2glvTz?o{X!~JsR*iypR4>=;$xNn zPCN%cv4Xi;?r+nRvq{R-920tLVJZu>{4FSEhnZSsUEei ze}AhZJc4R8&w(0-?>-WFqk}20g$)2nmZ(<&qdy(c?#+}-ksFx+|3};XECB72c0c>y zYxfG2xpuo>Wk`NzyAwlLG$BLt%^9-#lwQkMuoLly0BI0FxtEUrI@Mw8|^3lAcqu zZc^M!oTWw?OBxvV##6u*ADrT^;p)TAAd?>k0KFY@eRUbLyGQ~18TJgNxp&Yu%3dsG z7rvm(%7mYKab)-)@ngoLE&s(&q2p}a3BxND{bg}k)`qiA#O%1&R&+hEagl=0fpZ!r z1}=m*!!3S7Rj8n}MD9=Ys|wqQRBR~@`%%*$ixrsxZ~KHU1APs`s~+Sur`X}XK^%0X zChdZE{D={O#C#Q}%2A{i|1KplsOdyCJ>cI;9ZKpH{vJQ?Px3wy|D5>tO68j`XwyUz zSnSvA1-R7w^#K~4p7@&QVUV&ZyqS@8!7^q!?$;4h*UJdzb{D?ieju~GJCn##*Vnhx zV8JhZc)RQ7k60^XQoEfs1=e*F4+}kmtK~5853nb4b;$V}S-^1Abm|2k|IT5x<`%w? z7(-5yviZTBmvAda zG_}`t^Q(je{0&qGAiWyYKM+gT3G5^Ew2wT_Ar+yee~0dQCumiltPXIbdL4Aev=Ti@ z-Txq+^~V=wf_Wvr9bYUUo8u3un0Mm$su-i@(Xw=L^Ke(}UJ6Vt=#*{M=`vf&dFy_K z8BnxC=^M<#^2=!@*-)gbresGzmZa&D3!?c+NojnVKek}3oQ;+<(VT}4@hPTaou?JG z&aEo9(g(&joC7GYjSY{w-wT`t@9b?lYV>pVkQYI!TMQGCEjE&d4Lz3WuFj_kV^o)g z8uoUzW=7zV+X@dJc65)})qW5bSr3r(*$+vXxPc$k9AF$$F|<8bz%HUg5DC^ev;RotSDM-c%^ZAy>6UC0w!6V7jH0^3fS4V1N*o62AgaY;>4U2>nuD5$8{V2wa~)nR9GDrpN19 z`p8GlU>J4T|Ut1f9+=G5vIX9;DL+-|OZ~{1b~! zf3-g$d`J)%|EZUp7E2u~@d?UR7)@zvytBQx;Ve|jTReq3&_Z*)0xR<;*bI$2ig&s; zT}+RF9|07$NQp8a7|x}l_7zKB;dJqZ^3hu!1dWLYj;8aI!WV4(8sL9G8iUlh%PVt> z9#|T}B+=@b<)lQ1QoonN#}kh*$*AuYQG%5at5WzQ!fWU6VaL4RC6kbb2&N+pwsaCF z14Yv8BZnEyiRr*c3u>ebrN09)z042cYdX*hI?C|IUqY%hcx*q+MU)RCRofz?O#?|) zlB?rsc}=-SQJQ#+XZjbq0OIRqWzM=-BB)o&6}%>Dh_{sO7me(0BX_QnUwv>o&3DW^}E2Nx;?}Wbjb1pS7#*&%{^|XpyFZZbA`nh_pE)Z{ovT>Zdd0}dEP=9mN;n!b<5zA$6&NHO9ow9i(`DM z*Y3X2Ku*v2Cy7$>!9AeKgYL^0Tj=mRm_V`nKzZf}Pg@wP7}no+YV3?}J6`Y=Zw;T0 zz=9@(Jwe_NXSO|@dE@KoZykI34wS_fJ5l)!cWrtV0Lr5K5?_WDFh8;=E_fq;nbgt@ zH?fJ?ZnF@$?^vd3gZdq2YN6@w#C##wJ@?CYKOE=Tg58O?S*xcZJaH{)w~XVx^lnF# zfT0vjJxe#(3*eLK3%hdP`=uU|7LieiMBU~uc~`Os?cYg3ZR3;1ct!$-pKuxDM#*hVF=bt3jNn(fQ`rR%rzWSsmp6PcS@%8)_?+q@h;Gle6^z%o3J#P`gWb}Al z)c1)z1&epCeK3S&WsJ?t0XAxT^p!0s8?~+2))eraz&$~9xg33jva$DBbD@$u%EUm5 z3xoiJPao{!Dn_X}y1R~>etHswdwkJ9)I|fP(yeR%$O-9iZrN>&aZN%?Q+6Of*o|Bd&?pIyV+ZnHu82~YYrYu2&Y+dc$oWAQ0ptLbFj@LLC6EQi zRKbELg2lU9hqe`2kvEaSl2$J&{VqwbY*?|A#ZaZVn{U$0YoFt@B5$WBru;$u&35QB zAxLO5y@~OvY?j_ZFg_Rf0$msU^;hUPx-#1~OoP4pG9*r4-D(UrgI#5!X)krk-ixdA zWh7g$JVfuoU~9qmMq?vco@`TlG=L`Q!hLL-b`z7=Hs>U?gFf(C*6~6Z^T29HNOm_- z2S%UkJ6qNVTxWVR$>)q`6FG=^L3ylZJo}e0;Dbo)zM>DY=8o>?TIZKBG%oD-vHT>u z?eJn(hg>PBpXL5n{_nx24D*tp%ikT0mdW{ZS7(S)M4;{H0QRmjzK{YV*+--j)n7pz zP@?))6<~n=86@ea;U86IakLA zlC76lLkeE*dEJRlR|Fu74}%HpMsKU99*Rt9&I7tL z@?=>w)2GZN^%f^4KNvnN~7qoFs&VXRAne<%`Z-vp*aA~W*>jta5;82h=NM+HoEDU*u`uHZEd_=Q?#ylcTcHMe6 z?J2$i`x3FQf~@4V?DP3#0~!H4d^Y1ik^j3SP~`uK3PAoBLH@q>-)GwN9E#>kP^dCm z)HjsxlNJ7%Zwq0nHSl({WdCbw`8UN%pq9kX5k;lHwK7a_?*!M*#Mfz@q661`y^t_` zq9X)&rEUH2nZ1lpn2Nl&$-M2uX<;^O?!&f{&*QwPviMxLZ+CSdpPD1+aYP5zu9Hl= z)IAomvb_uV#V~OL=BsZ!DU|SdN;rd8WSP+?ywUg23jT(o901Y75&ghSHnZ&|mjWCH z@tCjRXj$>=u1x^|=(=oV`w?h$vT&9oto=C_Lja7PNkDYht-tT@kN=fzMBhWQ>NKUv zmty=;Su^_!wlTfE9RIe=D|(D2X3ASm5IfWuW6wL1m%yrB_CJNXgj$`l6W+0qNPkhr zkZ_#1AxQiqL4_}RII#^mSBF^ zeZ;Dxo4tuB`$pl3u}k!4a1}R>?%aC->p3Q7-#Hoo5?L;^zK>BT6LOkgIe9 zlpq&09NpgEuLh%>P4GQ5jye+GqXLDw#My8qp`p&_feP{55zg_&I3rIdEgi0*>E;d8 z>FX_1R@T1WlYqcVTq@C;uw{1p7LR>geWF{T?#0QI))t}?le@X3ZKA>H$dK66iG?34 zBTcwn;ya*U)`=l{opV{x5O(d`)XakQs;lGYly2rB-lfeuyp6n7U~}8Vzff-J``hJ6 zA|?7xnc4mtVzSV9;>W5AhVEmOta?3BEb2N9nvl#su##|t5JfWarR<7uH-|;$uFDuS zXVU@{8vf!Vs7a)-=wXFtfAm9*R?&#w@BclWlF(d{UB#ZpwD}aaTti z^6wfF-O6BWKQNX-f<9p~CdJ=igk|xLOFNGSqfZM%S9w|MDMRT{*KioK&k@~>gvf@RyV8!uI#fEQ(n*Vi?M zZ`%4f5d5&0RwLW^3O?3+t?Tm{m>G)P?~m@{K=6knwql0P;om)C?>;J2{KvJZtSEy6 z6|P%WQv8wqTZ^JXkyXb$4`pH#g+ z;sX|~N06OZEjiRmB~-AVBWE0Bj62JVpF=;O&(>hX@0zzW;79}txZNprcrE~%u*MD+M<#k{0d__nik@aQhZL>a(eEPv%to5k)k^wFC=~j+%j0Caju&mrzwn@Ap&V)2M;pv%`bHximk=r(S6w9@dZB)YxEo*>t`Wf zzo+=NSBp4lI<7#pLL*$a{Y>B$pykl5rS4TN-g@H)@xN`A<$cZgW;w+g?Lns_iNtd3 z8ab(S^@xDu@w&}^*CRvpO(M`T67RJ5#K&ZX(<4NAFywf(_>&C_7{d_fPqBe4S9C;5%}UZJd87WE2pxx42DhFvkCtXzn(eR3>LthM+o~1iO=0YOB5ngO=%>qUkx16@6dM(ZtRe z9_V@18yN9-QCLYCjabKhsmC51fCs&jT;0L8Lk?TZ{cAh>cBLIx*&OO}^qm1-F#xl$ ze|(hBS$i?l&EqT9Te%7{G8P1~QM{Gge^JJD?ub0A`XUr{=<*A@(@#gqc_2Q@8Dv4l z?8V+Odz7)Pn}XG)oH@(5IZ(X4^$ajTeejz@YmbBqy46uK_(&iYx`_*jcdj`TyKsj( zZ7inY+E}}A&zC9_H-Y8NT>qQ~KHsO|#Eg&YBso9hLzC$*-f;upiOty9H%gBqb6yO6 zLm6s@wXE58$nm^n{{*XhNZz*LAR4IfOa87*HvZx1dlSCB*!Ju+nt|dyksWe88GfSX zdMQE^w6cXq1BD>o0}%v@x3#$LN4mD+ztN9t+?<-5MyJSO{s|M#ma7ct7t()?1gJ`c z=Yocw!x{D6>eG~g%=j-67H+!4W3>rGCua)YwE8};E3oUEcf9(B+V$O3?diV}jpmNH z%<_SPZGoPTGU{JY6<#9ezP(o_R#B@eKl)_+UD;TG>t_Wan+)!*)^Kn>;LT->f;tw_ z*adPYZ+GMj?$qzM)?TqOQ;`Mmcog??@)TH|N3u#|Go2C|LPt(02P8aQFnu_+u z_uvJ)&L5A`Pfk6T%kloI0LO>UO>6=}0~a+owgnyA+rHAzQt)PJC3nt;ir-ta+V#8a zG7itcq__|LZg?>F6YUE2B3O%@en>;6zwN{cRlB@c!}v*kIh;@3g<^x_6pm-xuFsfc zg)fqF(~3;Quh2z4)Aw`6SulG3_`aW}*7w2QjPZi%AUv<{YjvBIAGNvj=FM`gLLNH3 zUY`h%bd66Y2z+6#);5Lzbe!4WV^vDnedKm^{FsFIORo6q8Pe?8R=7UExu5{wvI`XN z!cZVKZ@5Yjh|WhapB0x|aH+FB`DxBl6nCef)D0AHt^9j|o{zaV_b<%rZ^T9Ig>EFw zRjosy&S@x4DJ4_d+D4U@5`xqm7~dhalZvCPWH?<_7Hg9Y3(1kV7IdrT^xdqXttWl^ z6a9%WFOvMh(3cmrvQ9OIRH3fV1-ia8JkYCc`S2Bzbeno1INE+X>EvF`@klwtgT*hd z#g2Q30P=P}V@XA=c}w=@=aEn~o^#32W2!4u=yDm50eGgUwnYq`0sP9`TLNr{a?;SJ zJBPtDN3Q+)SE}cn#6~>FnzeFtLV83#kFZWQ(^VJ?(th^=*75*UA=i;L%Qvmo1(gNF zdnA$D1--uekrpAL{fyLns*_W1ZFmaF{qAm+-_>ysQR=E?dN6QhrJ5IwOb&Y}X9Zu! z!AZ%VOu&I;Zb68$6j3=+^trKO{9IkF@QXQi#d2?yx37)+fCoYXY&J^)UISOYZr2&A z%Dy`_zZLQl;I=S2`ulE)i?%h5r>M(YfYi6qp;D+>T;@g2JLx-WN(;M%!*uSb1JM@= zr@1HuV}R9g6NMakm6-wl@H0Gk0{BC>ct|)}D0b>E-V-Y)u3~&80_uOq$5a3CeQeZwvk>zSQ=3Ty|i&rzqV$Ifwo+3qkM<2sd>u_4#eA#>flYk zmlUValfweNvg)KE2SBEPu0B8qlS=g;hVb0R77LHRh?*6qSbvs@|A(*f^M4i(_IT)@@YP&h ze~a-~7=MZJ=NW&x@y|B?XyZGL|2K~==b-WT7=Nqre`Eab8~^LZ|Elp@jK9M8OO&tV zp{}9Nyn_w{UOE{ou8#3-LYgovAwdWnvHx$bQG8p1zkJDozwDLw??RRmNhvjU)HsQr z8l|iRlLAyJbonz?kByJSx7U4?zMg`aso#Nb-PxiBC;8-O$Lpv6|NMm=e(LY~r!}71 zjNf7WjmE##_?wM?yYcTZ{+-6Z%lJPu{!fg5xAE^W{=LTEV*H1U-);QIjQ@o3e{cL< z#(&!Q`;Gsi@edgP&&IdmjGN~-jep4a?;8KG@sAqcdPd_T!}!CEe94#{aSL?>7FgjenodaWOxri_z23$(v^wDzqr+Fx$` zX0J(Sp6?l_pS^k7KV;$$jn&U5DnIiK^ZtLR{Co0sc{cpZvyWfC*Wjny)LS}Hr)x9u zgW>m{Zps;iAIo$6^8d5=`9D?ufp;{$bsPU4b>)dN1?r@mzZPPlMmi`&sD+myw?Sgkc9ir*p`V zA=1iYf0^Ib{cpb+EGG=kjh_VQAA$c*V_@IEUtJ=O zMk;sJ8P}JH`^~0iJ zRNVf%(l-`-Q1V>U|0?kpRF?cb;{rqZDKyF$k|*Q05lnYH4)_)El@la@p!A*RS|wd|j*=_i9a6IDZ^KH8?l`q%)@*l4<5goz=5|jm z`Rg|?D*5iqUnrSy}tw#R}c!N+bX`P}*!OYWTWgVGOfa+W;&PHxG*n!1vwP8whObl1rxk-0xk$6I>a zB|PZ&zqkGW7wDsn1}5GAOYlDk=c&hZT035tl!NJS(6jX4iGRl{Gd=FJ%Rh11@}{+= zdTK-ciq*|43#ZSR+FaGrT6M_ zx3S4v*HT+MrLL)Ebyb*f)#_SrYyEY#-m1nLZ`EoNguPV_4NYrnYrNqmZ%b_z(X04- zo^?f2#9P_$P)hM+!G&Nl#X;r3U^Q^58uL7#ZDXq1&*Ho=&(2z>Rib!2uZ41z}h5>W+I9;k` zUD_0`opmA*CN$J*Y+%38Sltw9467mpDK@~;+S-=M-W3rLR8=qSO>3Bqu=73z;|nxe zSA)pf7H@b}Rik$`_^k>zwX6r*HMQRQ#=0hN{)Bq(9Pfnsf^iC@6Zc@KYQ2=RzPXmv zs*749&CN|MVL+>Iq=NcZpsjDHQ3aj290Qkhw{+i%`jt=zpC24ZQ7dc1E9%3o=ZU-{ zzY~{N(NeFGqsRo%B%fFH7Z#oPbpH8Gkp_wutj#N5%$QygS?#TA2`9m?XjyN@Y)ftH`o`+> z&ND^m{DJzgw-%m2tMii`S>T0;tGqRl7RhSz*%hC-y(xU_EXSaBig$feq{R$mFVx&9 zysEys7NETOtE<-2j{3%G$V~AWQ%XbqYJg-A)6iA54b25KKr&W^!?mlM!-HFARcnSL zXdh>DAJqp6^~dY4wN))bmYRo}UQ@K*Si3H4=wvb&Zfb<3>Orq~QHj?dSq1C^YMGJV z(e#zZ^D@ex8iK1#4GK@t#O7X*W@X|#~$|{#uEGhGqhsrKpSP`%Xie#iE4RCP*)yxXVFJDvqf3Wxgbf>`699d5+ zQejQKuxj94@10OLVFCa&tyXPpSzX^)TQhZK{hHcFZymf=<U#sNgt*LFTU)e}Ssb0{yQ7s=BeQgBZ z5MJ+{E6B57NpH>a${fOEp$R19D=$m+mwLYl(v;|AhfenDsd7neb3@hog-nOuW|_U3 zr4J|6d28k+2eRpRRgR%OAq#~vUFaHcTHn-|9MT%5mfAJm34`EVv!VqoF!9KX0sW=( zG}l&LBkg0b2fb^X8qW;_ry#e!Ramk5rNgtN3a;c;;FD|GjPnZXYUY`Q>FE^rYF;HB zdraa1>E)JoFfOe;r?gu42c*6@F&$h3a3r@_>G1!>hcHb;cxAMC zj%&l+h3m#0z=;yZiz~$~mv-Xr!gb^9pO=8xzGZ#NQwFNjrHMribn8& z%nQu2zyN(>xn~}Wr<$gCsOjcGsn%Da4TUj6oFSk>vSxQ0L*t8bGDml5;G)b~0U-0P#hO8u+ui$OR!GBV2 zQzD||Ypt%L0}%2fvi6aQj=#*jhzE#}4J;ufm0G&c^Yzs*@*1z273-?1S-0uwS#i?f zr4=G+3AG|ckOQ_Fs}fK_CsbO#KfaC1vj zH8f2>j>8PUp{Xi7*=rTCB*kMgZ>en}u)3*HJoz1mZVVr|tWhZ%pb%MI!2rMt6RA-U zjPuTKLON)H0K=^!`SGuzK5(5q&;HMrJDH(U?}Y%9b)2~TrA;Vim}nU}jfgo+!yu!i zq(m_uTX0PcIn)!TNv+9IRwhlCp)l~J;7iM6msc@hz)Y>ikx|$H+*H>8qQjCZt3c_#U_G{ov#vf z;1Fvpnd6T4`?UO$@w3Vh`NWo0L~gNV7?Ed^vW*rkj#vF4ZA*R43^lub8a)OZwRYmN ziUox;y{!@SdMia(Zmz0t5jB8Nh|-*#kLJWCL#qNgwzWYqGEq@XKX1BT_(8FX1=#PvGCl*8D}~R)sHQRm@v#Rm>+me-UnpRpIyHuCOY~F10EaR9F>3-d$2= zRfLES;g=J)i14BXIPxzd&m!U$7viSlX5h}pk!JBct76G~+$C1U(jacBRZ&5@3er`O zZW;NOEwd`FC=+-TK;)RWSb?Md0L1)7K^KXKv(7m zoW;CYw1CG&l4H>l`6F#zTqZ!436y05W|_db2%r{UM!icFsM7u=^A*5f6o@G*C@=>F z=%7GdromQlFA>5x&NxoaTbI|?x1e^cV&W2Q9ZI6~p~V`>JH^XFt)3AK+grhyUGELI z)UQ@-5uFx~48>OX0ZTYWv*h%{vtZ|wX+%rQ zdXbDGNv8en1S zcVc{rL@2b-P}{f?ZFs)OjiRz!)ml|oTQEy$1gE1oO}W`#(blgNWtevbxq(@gu!?EW zW)Pa6Yt{hoR%(NKl}c0*c9ZRCL#;1`lyvh2oMzOcXbD=#dM#>yd!c!pb|mRqWuE1| zTxl58)`cR+RGCTwTV3^K@N5>>LhQ0RQP)tlQqL(u{6g9y^0!o>07S20)IB2RYpvO* zk1yF1F|eQp(u%d}rqu|9t*r=t>J|J_Eqwn2?TIw9a&D+^4cAwDwNPSr*DApzL@Y{b zuqOhf#=DB4DoI$~z>pQ(nw7wMS|)`hu`POxPoZC-4~T+25}PQdihjRAhG>E5QKcwW zaNY$@Sgy1ns8kibsOzi@x@<}T{lRm{RlYC6nH-b8|LKbFLQ#*xn zARE&k8c^E0vZV>ZS9XUMN(ge%uVjDDfluBU3crJ_L0!}aq+K4TvT4~G}l*$Bkc32s(g!s z^EDr0)TF8sL3DM!7$wLSxv({pYj$$twPRqY1M{Vg{?E*5(~n)476PeG)Ll*0N-YSi z$E!6}X;q3@7$}VZn2sOS&{Wfzm(=`2^H4abT|t|U>#8CR>`f`AucmtB237@0k)nwm zC}FTCTc?gV+F#EtGuNDQv|qw|and5AH>ot$C7-3&(%-A0MMSIgQzh%xN}a;aZ#bpB zo>$UcB|K4*N;%1VYo^O%@@J&^%1F4baOR4p)yWqoVDtm3!X`;I$f8Qt`z-yHlkn!> z-l6O%H$OPgx6HF%GcIEVDRgdKwv<(&;M-I;d!T-*iHTt~Yp~DOP@yZTWF`%-s;py* zlYxeIs6uQr2B?o@-BqL1p3JEXS>`7eV#<0$LvZ495Dr9 zRn^UrN-C51I^@Jka3V}dp6#DWf1GZ$Qw;PMfBRe79=K8ai_iYHdcNmP6aOpi?^>^Y z?-c#sI-;L9KVsgu8GnX;-|f`?UHeVCf71Se5*=T9n)a6u)%O1X*Zl8mxU8`Dm!GTQ zYI|2dcR#HCOw+zY)AjpI)4oj8zD(1;#io7Tr<(Tl>HG)2sr|bGI)2(X?Qi~99bek2 z{mq}#@!fyd&-Xl}{mdJ+zpGHc&va;i@je~DJgWW87n%2_{(BPU{T(L%0{#A;vDz;+ z=VS(-n>owG=NdoD_`{9gZ_e9r!=a*=L&lFA{}tog=W?Dk&%2Gk)A;uJoh|11F5_=D z{zl_BvhJ3BImT=y_EfA^G}+JaU)r>`Y+ZOjB8uL@tN%3tf?e9{8>sqj^4oN)FMeu7KRL>zCzhm--!7D?5(8{euhFAxkadTN#ps}^<5k25a7O<;Xs+wwoY(9!5M@^GAIR6Uv(v)$GuwYT! zVRX`Zo>gCsnGEIBRAHJZz$4767I@{2EUnTbrl3!(vaxpJ_El>`tK_;d}Yuj(Y~uZFv}=D06OkzRfsZAr_jg7*B!t4gu5 z8T@|W_+iQyfIf5lDE%_Tnj{*Ori_dts9Y&~L8g%&J_TA^jO`yKArxS!*Gg!>-u4&2vpUAT7K^|%ObHLeapcW9yxiB{-^zEwnqX%l-Y&{HeeH4=+I@FG7Pa&=0sx5R3!&_2(!bmx~*XE5xnGy@A`v`=z8U zC*L~qKTSC`2m1T-Df?{dSwemHLyXISV=6F}0$&tZPXYGrwB-TX_Zn@!7+lHMUVqCz z?E~3-PvmsVx@w$deegN1W1DPQ_p%Ipnzh{NXx(lpv#e}xN_w1~v9DcWS!ya@I>u5F?6Xf!( zoiq4;(OC}bUa!Lnp6#%1KF49L8tsN2dJ-pO=#JKw-`U*+~YU7y7L8MgQIN zGrHabkJ|Mczir^NZGSaQhNk>(9QfY0=TfnQ@)CF8S0#rhRXuyg>oZGLinKpka?x9h zT3I6-)Y#{umyo3^D>!pR00H2-+Lk8S<Pu7>5}T8TCShE}nDR=KHD2q;|j#HtLI#bD{PN*~Fm?2c9)?SB*Z819F- z4qO8+ggb-x;wBT$z`eQrX#b12-{T&_-HE#%SA(m-g{zPDUuE2__&>xwgnJtICN5-L zMh)fS?B@!?cjFpx*W+%*-HDrBhhNJ(+?%*Fcs`0h68|dvfpd29bkToc)@CuU?LGA- zO@4uQRTcV-T0|F2uH^8{3b7Lv!A#4QBBW`9S7k!0x_F#7CE8qjGKcm?nRuWDQEAFHOMSBkvYhO=*ymp93E0i4W-{b&+>WAD!^-`!c-Mj z5XjMqu=k9*w2D1O49k)pDsijX;K*lV z6v0~BEV~21#74CFCCgC)BN{$svaC#YmBeo+w0AoU#M&&EV-afKvv690U7qbT)mThL z7Soc_Zy0%PKsT|xFxZs?7OJFVK`DKa(en&YUtz+hD^AvH!zT!6tZnc%MpmytT5H9S z4V80kja|WXlfzE0$CNhvJ|^*uf;2sCQYK7WNSsJKG~k_IV9Bm1{e$il(xOjo$S*K( z$a}+8v{57quzF)@(~Pm9}U^57-2+LP9*V1|L#QrYP*EKuj? zYU*obMP}?t#k506gYnkF`pX8eNCRl&Np~F7rv+Biz~UtSQ~i}ztmd4$d98yCBQS=r zJF&39va6Ae3ehUs5Et70rBs+oLCK)1Z58;9#xZHMsX%1JCiBvLvVw(IH$_&iveDey zT!qAK*G(6xUl2pJ)y=5tWMK;Nh(b^=c}0`fnoLi>Nta=3z*al+28InRiS5$p5c9i~ zH4i)Kx&w93t`%*g+3piHG;G4l5>9sem1S^>NDJvG^D9$hKAmmpNg-LK=_j*VQzwbk zG$s>NzWg!zS+)G&Sb!NgcF);}KNsjQbvak@5nYPWAKO``tFbvxbi}F)(zU+!Oof)Z zmVuf?*L1peftFa;8u<-E`o< zaW;@WO{dfBcBaOnL47Uja0ZyRv_|*AX+m}*la01}G=yy@b~bWaL#fL-FDU2n^z<*5 zAq*q91_GuWcUT4JZ(F4w1`h!(tcH%6{a6+A6g(C?q^!AH@KwtYKHs z4!y;l6iZT#6s)o~Y+5^|0YmTxg)WghB&mju9$@kjA+tennO`91x8Oew>uHwx&5yuR zR(pd}7kQgjtf_Beqkp}kN34lNJ^-8Qw+MqK%#zm%u%QJ@z4^)l#GHE5TQ~(q+o4W% z+2yC_6Q;Hj)~A&sI+=7;u&k`id*KD=d$HBPd|f#4l3Gqk3&%)Gb0S-T{f6~P(CsP) z_+{^F{qb_+Z#I6n@#DtN|3Ie;7=NSjw-`Te{6p{QbeV^>zsUH_#{Y@&cNza9<9k2U z=~o$lv+>6*@qc3cUB*9b{L-U3U9IukjQ<i(fzkn;VA<=lfwA&5P*zW!);_Ub>_2f% zdtl+}SX<#|t^$JQtg>)LBdZCEQseH^&dFohM;3bu)|T$cv&Kf-$v(gePP)smRL~&Z z+tP+PMvTQJ7W$2%%2U7pPXvrb4^Aw;Cr#su}&T+aer`zLn=Q`a^r#nwIz>(+9&U5GFxvf06C(oUm=XU0~ z^HjqeZomgjz@b`-rx=nGEx&AsBgf&e91f4ek<0B`4o99s1TV6)9XV*lvK^jmM{c&m zneE6^2qHsvjw2_>VdXeHIgZ>Mhcm~Krw~U$*_I}*eVc5ZgIGdnv^bv%gRMNUq(m6Pqs$|86`X=UdrLIH6Ul;g>^JlP&kcCIJe>B-Jh1O!5+&|~xrJpiV`D3}97V1kCxGFkwnKt#>d zKuP4_4L=WBXJtIX*9I8a5IP+XB6#8PSh*g{>9O+EfM)I-!aNl41xgz0fA5}&+_D1xp|f|&&pGb1I`2og40kjoC6L4Ct$=g zvKhgQR7NBKF~S&0j2K1+BLGT=5a}2Ig%Y7SC<_XLQlJQWo(`h{^cX!u4}fVf3g*BN zn4n>_j1~YX5K%KVP!c(K!!Ot4ae6#?ijgs}A#^$(MDQXv*W=9fB&=!4@SVifKWgj1?A>>oOzx+#Sr1da9lVm928CoM}+gi;oxL&EI1P!2u=e> zfpfqi-~^0#Mm7Tsf};Zfh!Ms}V#F{q7y(c^ghvydS)JG7-kY?3}yyq060Ay9nKAhh7-ea;jC~_I3*kr&IgBslfgI` zNDvl?reZh;90E?jh-YLoz#up}0Du@_j3h=3BZCnDr9+5x41hw3P#ly61wkoL1U*lO z(Exgko}mZ8G#CYQUGH;jyd4WZNVAc7ZpY64@X zWkzM@WQJrWWX5A=V+LcUVn$--VTNHQVa8x)Un?qNy0p0f&GSFya~63@`|e4gerV7$b=h!^mI+Kn$f0w4tgqjTtp6OFfJpJ<1wAYRu?SS?a}TiyiAxW2{kGD$(dMqpUHb#*7)2r811p z8f9gT8k03DOJyECisU3AnxOow(WA$V9-XBM<-xK>kFiE)sS0>ujTt>=%;+pt8Huc{ z(POekXQ_&Tf|{v~8Yq>L$W0DX@rEaUV=OC60Y{-cj2UBPDL|=!7h|%lECn>Jp#?w< zq(BEmKtavaMh%ooW^$8*RJ`GdUzTblz)>gPkc#(2 z5yulgzhue(2nYuF;MJp-Ms9g@=Si18`tzSnBs`4pzDJ0Eg!o5@Cp?kxFv9yDCjMdK zA10pgM8d-e?|X>&hlqcOc)}A24qC;2~Q+EjPSmh#LpytCh>$P5*|i)-vz{9 zK>P*7Um)$D5FB0d)XexrA6&ZSq6xvTU-Z<>RfLNOk0u%t-P`@G=5of$$NLLNd+U7p&BIy0C&m^_%A zx;(WLb!HHG(CE>lgUG4N2a!`}29gJI{XlZ+^4az~8FkUO_hv+0AFwRS$v8af_TF05 zC8>4P8Ik0X4P84=_W4P8R6vN4P8DZpM4P z8KLB%4P86o5$4P8NuYi4P8A0Sh4P8G+=1 z4P83E+k&lwq=5~7kiRgda)u2__>la~5qWT$hBBgrGlsf$r-sZU0bN03L5 zQx}Wi`qU@G$-~LR$*GG`YpG9$k%y6oky96=)>5AgB@ZPJC8sV%t))I0LLNdMLQY+b zT1$O0m^_#~n4G#8wU+v15P1-J5IJ=*YAyB2K=MHHKyvD0fjmy?lL6!b<+CA>`CXYKhtwOdia5g2}0k)DpEVh&+hv2a!`7sU>P#AbB8pAUU;>TB5cEkOz?gSEDvkOVqY-@^JESa%v;B zL~RQr4&t3&Y97$*GOh616RiJd8YyoZ3h&QQJbvL&-zQsg2YUwJn4^ zggk_t+DI)?+k(l1$%DzMjnopgEr>jbJcyjyNG(y@0?7l(1Iek4)DpEVfINUafSlS$ zEm7P2$^FUw$*GOh61B}tZYDRAQya7G*BYdV=2dLr)uB~TNrs5 zc^Emhky@g*g_4JohmunpsU>P#2zdy32syQpTB5cElLwOrlT#b1C2Cs`c@TLJIkk~m zqP7K+2a*SpQyZxzYFhw#0C@m8wUJt)w)vC$llzlX8>uB~o0;59ZYHNTQcKh}6S+w} z{~D+G@RgC(!YkA;hI0}qYFk)^8VkcDr}!{(Y9qBoZ3`t2<@%xI)W%S9YFh|-2zdxO zwK0U8+7?V6Odd>5ZKRf{Z9(Kg4z1iP{!G9zY&IPEDJ261B~r+@IW^oSHW4Bx;+P+)QpJr)JvLNz^tI zxry9FPEDJ261A-&c|}S6Xye2D0;+}0Q)shRqPB(3Q)sg`K9roAHftqnTL^gwc?dZ* zZPrTEwqWvL@?dgm+N_nRZ9(KgF#F@#=O`A0m zwJnf5kUWr_nl@`BYFhw#0C@m8HEq^N)HZ)|e{z3vYTB%ksBLC)Gr5_Znl@`BYMY7N zL~bIdrp+3O+E$UgB6&q}YTC@<`{dt~XLsqxOT1T^s)gB4<-*Lr#4daUS+Zckq40nky9I~d9O0r0?7l(1Iek4)Vx=jYyso}`3TwT3!QH~VAwJBGhw=$mNzCYrv9=6ckA)EesaDDo)sC~|5)Y7KRIBzYuxBssMo zwT3!9f;@sef}GlqT0@;4P99DkPEPGdt)Wg2BM&1FBd7MG)=;O1l82Iql2iLpYpByh z$V13O$f^CPHPq?BTtz z9Z2m?owb{MH~DUI>Og9D>a1PlyU2HuQwLJJQ)lfY-$}lcoH~%&ojPj=`3~|OWUg=)W!Uq{J-&wr`^KYw+RoXOtv(d6e}_0r9+xuktxour{(oh1#I zX}-8hnon+$=3Q<{^DK{~x$(b!dxziI|8Lp;zkRv(&+Plx??0w@^?d)iKj^MM`TRb8 z|6A$f-@7*4B~992yZ!(6^!Gn~{C}Ur|ti1_y5g)_1^HGxi6?`-@t~Kf0XV2 zEBCkGAOF9$|Ie2X{t^85`}F_k`s`~rC`}d#Ry!qoFCI9(r z^Ur_fKmR-PpKs~!zk2@ul|TLW=1>2TfB)M2N|NI7=XuiafB)$Nm4D;sJO4ED>_;R2 z(jUw(R%GhA@e4^B3q&YNJLc!5(z zl;Hd+e0(=&cE*2i`)|+rsW%Vww#q4J&AEwZ0WR$s$le?^8d=j{FE4f}8s z08XyhhSLM)ydvb=3;g&R2Xz7~KGDx-Q~4M^Cn!+o?#%hba!T+n*)x(yMfsYt-(jLU zkh2Z+;an3rZ=L26bI#lqIqzIoJMh#g3v%qK!1;%=r|aZ%yG%#+DJxVDcH&!M?YsGR z4Cd?uef?VmwD|Vkm=gW?Hjr;tXZ!6BF3K2~3Jz}e;*=Dd8>zGBW1SK$M@f7r5}{oROM^oQrL zxtzL%Y9}YN{G*|Ega7RL-s~}N-+Yl1>Nsq|O)^N{l8;oBa|)K10;OoFs?=EOE{&8H zNe87TlCP$|W|79C)n$M5dM76rH-ooNVZXBe!Ey5?Ztue_O;Rkk8XzS}how(av}Trl z3q9A)v&xekFZ`)vLo%BEo)y&rvwr`<#q9Y3WmF3iZlAh~&{=tjto@z=hrM}X5 zX@zu@UM#GssTr?1t#RSD`s|PD7}bxyCBF}hl*5C+?JbxdX~|<;Azh*;ux zJe~!8%Xw{!=p7d ziJGgLU~Q;2TpOv4=6Q3={$!_+(xy;LTx0tq96r3(D)XErNtwJh`)Y1z?rI)sUhoQV za#9ndPvPQRGy91-lf|TtkdVw4vy-W^X|(C6$;n*VY%tX{C7Mo~4Cb0Jnn>w0SnC_WMn>(5{rb?!vrhO)jxsuu0RK+yLbj;*zu448u z)iO;sWtcq7waf)fjZCvmmrMoBjm$<n>o(x zZK`XUW;$o`HrF*5HZ?URnXZ}&o12=8o7$R|m~NYjo7!wRo4cANi^URe zNwYXvDqBWdj#>|yaj{gjjI|uMcv@;(rdZBc3R)Ul=2$LU94uDLFv|gptEHM{oW*AG zvedCmwVbsSvNW;GwOp}CHJxf2YHDga*Yv2Vt?5$Jv!+8$*P326nNet&>FO;KccHWB zD0G zeNBnc>T2o}r9^F_E>VA4I;}meJFVyA%vv9vkG`SQP}@+~P(MqWrJbdlrO%WywVAq1 zy|3h}_0{?6TS_gpEp;vR$x^a5S(mK8A>Gj4(B07U=_Rd3r_ooEDrqa}D(QzxL$yP7 zL-qTlecFAxeR^lfS?jEG)>o0LXshU|=*LK7v}1H*^v9%Q+GDz7dOrN6_0W0fYe}`V zwRE-glcmYp$-2q<3@JmKq07*#&m$Mm70@@58fhEp8tG?Cv$eBzv-OvxOWI4iOM0VZ z)Eae0eJiPzww11xexbBbyHK}Ke^a`ty{WsY&wgr3r`5+wvD#Q&tUf_X&?e{-^!ug# z+WorydcLV#>!NefSCy)2tLm!i$4XlaCjw2O3$^tYs2+FQC?dI!lt>!5ScTP3U3sqvF9b#!&~Q>Cfe zsk*89v(j1ZS>0KEA*qnIkgkxviPS{fMAt+=SDLGxtDCF8B3;p5(OuCOlZt7J>5A#w zNNu!jbZzvDrN!FCy2bh|DNCEB%hKy4omy(p%aW{>b+UfAG+aAeH(Y;EI;cIUJE(V) z+_Y{wH+`HGr;XFa>Bmdswc~Z;_32W&HeHvl=Ob}iZ=JWE@1oS!)z#Hclcs5>>89z= zN$0fZbm#PirNY|6y2ARVQd4bHT~mFMl%!44CF!q9SG8AlSM|lE;@aZ6;`+8yTWwoi zTm2GgiFS!@iT<{9TYFn~TQ3tw{Hkq1dVX{9mlMCvBrYVb*=2dYy@(~zJp6N)JXo^N z%l`#fGA$%|NhMj%uR-!3#q02I#Ous>U4IuZA9a=T+v6?7cw7EI#H${!Bac_l<8@+e zE<92<#_P^_z4$*rkGC-6^<%tcNdg#eZpQ0CKRD12st1_o@lVIEBme99KNtTy@xL?w zGe>5;YOHyp65-^^QPx{Q&X(oe#V@rTzJOZc*gSZyczh*o8I*yDNO(Rl9pt8sK6x}`d35$ zYUp1L*W#Qs-!6~rbgceRuMzb*=$z|B4b@tUdfjlOMs}DddmT>9VPA_gpk%Mj87Q*< zSRLZ=X{8e6YFLtAHJzEr)wHG#wN^uQ_&M)ttlg+={@zx5_p{ndwD4f~R-ew#tA`fDb+8qOkTX_j><)o)JHK5{kOPwq?)JtJ51 zhUesJ_<~%`Da&X3Ew@x5+i$t0@3Z}8lm=$|%_t4Z_M1`q`G3@Je<{7`?deT#Pj7mA zdUImyf$BFWX-Kx;oTT_{zqzmlL-m`Bv_9K!F4BfhOo_l#M663LPZ%5e+p|A6rqc)5_%P^;v~n4Xcu?*J(>~HJ!C0SHsridU`C! zZ@KJ#%VqbQGuvWRzd1`QxxN~%;`&bX*EMq0Z`aAy@CLb>pQ-7}g`t|R)KE=Vs^7-j z{Wihww~5()V+zgo8?W$ezd5s9{P*x1A5Y@(tA5Jy8y|1t@$2Z1>g1}QYGnJ(k!@M3 z-}G#CQ2nNtx@G%K&sM@5za^5Z*X3k#HJn1O-jR2atNz+eu7-Qa)fPwfdZd-v*P|M$ z*Q4sUob<-W?CgHaNpJbG^D$Q`Uv@sGhH5_M%H#N-NpJsXesj0`&E4)dcl&kfo&6>i zSKc+JW~VoAY1+TiTXwq3NpJu1+kfpk{ag7>$6P@D=$Jb&V`Qk7#?(+Pr>Qx)T250# zwVbAgYI#h}q15u28v66Unggl%yjs3g^LaH?^Le!vqvls?twYVP)KJZ@bj*p>a+g|b zQp;UxsFu4NnGa=>t1bDL$kp(2cIu#_^&@rPYUx#7N4-mGnWL(8B`tFRwZ7y)zvk2(i!#hbo^wC_XDavp zJ^l6nLwWb_>97Coh-5ytLpWqUXTA=<=LEE>yQ8c zR{r`&E06uH%CUd+RF3-p)n9+B^2ERVrM@}w|Gm8bFMs`Y{!-gF)oW5MDXRIsK0AL` z%cI5lTP!@!8>Lxj}ZQz8^AYxsQFh zWM6(U+P-ae$nCR3Zl4`;d;9Vr`*I)qa>>5@V$`>NtKql(e%l|9&%Xby_U&@w8Jte@ELRRKKfV^?c`?gP`p2 zS%^<|s2)qs@{7?q%eQ8S>iJfG^P3&2=R0S4kbSw2eK`lOWygOpDrfoD?2y}Mhbpsg z_b2<~IkRt{6Tf=ibJop?Pd)GUZSC;}*?&v+-&-T?%dQ0B=)g_n$HNX^Hw4>g;s-`}NiJ)b-Wv z)a})H)a7ct>iX(--2RIij~d^fudkkyd3USCl!^1B52Tp&9d<{LZ`Uw;|I{guF0ISn z|C_G)E!5e5`u+N9eCqn@cIx(OJnC{aUUhwSJ9YnRJZgM@zJ9r1q->jiiO3z(AhvL} z4RVG6=*v}>*3 z$2>f`Cv{-LoEVsfr(T%WG3IRlnyK?DN5xd{T_N@4>+fPVmGe%uCOfP9OZE485vNSW&N0P!mDod{wWnw9NRfWm-=bN-VJqMMEF)I(|Pt9H35X1Kdrv?V=WBPp3q@J7bBzkXETT1%pxzWEZ5Gh@M8_jf{ z{fYnckiJourP3D``oKclQ)zPyZA~SQp=~L&DVnyV(1vgE*rWMx3*zlD{~@f1U5U{ruI(V^2S+_Vkl#Pd};l^pj#wKPmR~v)6t;{;$BEe$;D8O+RV&^rK!Y z**4nKk9sX++wgxy@OJ|C^b=!GKRjRA=_k#eep2n}C)J*Q{$}SZ$GrF$A7QlY>O0o* zx}wceBi*Ue#9rT5N{p#riTPxuLI;s<9~5DE3}zhuDVG`p34)NQh;evE2fu#HPBF!ialW7 z6q~=tuGlXJ_Q!I6vGJSE#+I#iH8$b>?O5Nvk7JXjzloid@HO^IC7qSWV*RCMZfn#R z4{OJz`K+1s3Rye3`&!>;6t}jUSH{ZYwAQO0V4V{XYK=8USxxz4tyS_W*4~BUtW(O= zveE`?-DXX!M-p0EGuF4WHox83+Q7G`bw!(g*2r}Ot+dbDb4`M^UDFZP3+|(>yAF@F zIt`s*-5#B2P5U~UHrO&J_*B!PVU3tu^Uy*M0T6xO)V9gop=*{P? zclKmj=}+s)i`T3*@87fz`Fz`2-}|2ROofNm$5ozK7j=AYrLV20*1okyp8H@8{QTM4 zXqqH9DyNlaA8?TKHglAD9^{m%PV!xoi!4sL$``xmmXqAw<;0B!c}rbSndeB3pPyGQ zDe}uNANk0?O)n@*mcnx6!y@vWncvAgfAW@>escH4#bvo}NjXqoT8`RTMsC)voIK61 zg3NO(Mb~hOzbJAq^YIOfRzTZDV=Ik*0F1 z+0ErIU0TYMVp_`{-fiXK_uI)#OLF+kPV%50UF21jyU7RrddSB=_mp>E>Mc*-)>mda zleK*Y$kS>Ml-&Y;mOFV5mRG+SBHw!yFF(3ARAw5Kad4QNw0*eTYV`%`;pq zAD5QMhc!#(k`Bw{2fF35N3IoelJiQL*Moe;eYHH%YmK}(|5~|V;dSy0-}Q3&k{jeB zv-z)wD6&XfY;dg+3qN@_vD{7j5{R7kWL zR#-GISVRojSVSDCTvU|5QB>^s@jJo1PDC&F6(KQ3QRkvjOzq((-sUPMh9nmgWy6XK z=7Zv4=MqBFl@wv~N{Z>hr9|G-rNs75rNu7}Wd!p`(JQ2^SddXxJnK?UwAGgvACt?A zEfEz&;)M!=`KMU#R#CiIUQsl(n#7H3CNXxPS=7(xFXT=Bf_bYL^&mi885t;Q7Yh>i zQ-j3from#!`(W|&j1a+mS6n$ADk8gwiB#8c(RO9HD62#Wk2?{fz_3WcJXuUgjS}yg zMT-%iqJ{t57@-Nbh-aA=Aq}V`m|u&8ZL#8IJ*yb`+A6}P%fc;42E5itrDuDoS6fDxwBf6U^tukv(xDviT1p}f|adPXPFHmbAW z{Ydm5*F~)M?<&4r>MFVq?Iu2z?k-lG?k;)_=plHo5>1Zw6hHUuC3gAr7Www|7Lz*l z5hXnPip*Vo1@B{Gx?6v-U~7MIr1_7+)oFm}x^aMb(D)}YLN`$G9w!V92MLY#XW_o) zXAxHa7ZEQF7PnUo7H#Vd5xoD2ruE{*kyY`+A`KNs>J1f5R}U3mr3A6DeuCh=QABHp zi2@CW35RvV#7BqWLTWr*cyAakg7qT=@0()rrV-+a(@0Ud#YnM!>qt@DZIoEvdXxy= zIZE)JDu%TmEu!|07LMLy#O2OoM9RJ~V!h8;v9`xp!TYT^S7e;{)OVaPr;ihTi;WkD z296iS&Wslm%S;fw7mG=m6GSo7L~&@;MA7&9L}3n@BtA}@B+lHOBzT_|t7h=~BvEX~ zWRWp{vUvYyviQEn6wzz>6v2DADAI7M7`qFmm^;&PA0f@KZSqQnvr z7{5g1y|P5;f|rUfiA#n4(Na-BSteKx5$!)O6AKzH7k4%<7a{H|#PrT9gmid?_|dph zu#6(cX08;a0#}JslU9l04_67HtQKC2SBuAARtuJ2#G!3#!~xH>;$-)=;?D84!l~3c z5jt$0=yQFYVA)2v&sr~fyjm}=)Z8HItlc0ooi~b(?KcX?0~-a)J)-r`n?$ioo5ZuA z&En{k&0_7-&0>Ds7BP3_7Qr%+*wJRIxRkb4I2PR|q6cjg37Ol(*`V#B;?(Ve4IfG zAvv88`i>_=zN05ZK&)qU5*?vFTxk zs1kQZu&gL%<~}QGbU!P+PMsAuE1na(63>bG&(Dbowa*KdBgF*o3u0cs3u5Pm3*vgn zMPZnIQN(??D5f^a6f9$k*rJ!jsv(y|k(-yq+}O*a*pka)yW)Uizjohi#%Vhi?EhAM34P9#QNel#fOnM z1f zTrQ)7wwVqU6Ln~HK!;gxbU0VW5v(JiNunc`9&p6#H;$-UR*%Ka^w3P!quoJ0Sbsox zxm;M&JQw_?&;etLl z&V}a&>npgvC^sHm$c@h~dEgb32jBO}gX+ukp!bzLU|j~st?u~rqdNlExTEI{cWm@F z;B93CD*a*r>p8f6$AGAU9+*?z1D_H+&}O>_PCfKMjISqH2g3JbJh5i4Cn~=1#P*V2 zur~3+xk+B=e9#N5A7M!aZz!$3@oa`S=GnZ#=PlqElo$It{;Aa=Ga2-e3?&{hz&r9zk(R0yX!7lL{l3D zRuzW#jlvk1w+L=mErQzdMQ~_q5wISI9lk{oTE8gvjw=dfUs0TYQxqM_e}^xvz60xc z2tV;1u4#QSD%2N2-F@-fVqeU=es{@T#vcZU6ca4ZG><6FPet0p;4;g#? zu=S-MlFAgr=oZEB)AVBKZYzckn&M~|QXCz-6$k5$7{jmxI}( zJT55ZF=TLgl;2t&*B+J!>#(Tar~=#)E8x`O3Yhu10$K-t5C1OTL%-;Iuzri(?iDc) z6_M~uMReU#5se>KM4X=qv5ib%-4~HZOt5@0K?yRWPFFM9EH-1nWiuvw_=ELgoEqYf zSKIti^oc*>N(5kV(*SIp8h~fV1Hd{ndWQvKXU{-5t_VcE>w#FAF9_P|L1;cA2&_+| z_^TjHEEkNAt%K2RPB5}Eg3-)51XnB}U|kz`)`y_yZz1?vG!#?nhobDnP#iiGiguqv z!Fo70b`3-GC1G&C8ioU2;rO{)IKqa7r0Oazqn9(*C50hdc&c|YL zZYvyNMVG-=u)P4*r&eq&C8JzR8B1r$D4ro>nX^EJSOK;r0GkCe9}4s+4mdXhR!j$~ zodjO!6|kKF)dnc|vO&St`wDvcRYt`omGNR~W$a9^47Nd_PIMKN{ILo?udjm4dsVRA zSQT>`SH;k&Rl)WNG;yqk>e1C8eyj$|hH8kpUk$N-aj4QH4s5$Xn-g*9um1rPVt&Ai z0YBjI#vgG1!4EJLuMW0rpwo=%NIF#=XPjyvcWez*8&m@mx75J7$2Gt<4|Ho;6RERn zBJbIn=;2liCqyk&98wF@chmygL(sKcZCqJaRwi0xB zTL7YBZ=i#GY|!Kqd~upI?W57vX*mwHGGsgD7@>LYM_;?410i{@aP4py9Pju*LGz*4ydCMUGOZ+ocUw!l1dOR&8MZI-n}`i+(dEz}At z>a{}Q#8#MgycOIXTZ3&u@Eq70v$wQHv8S!EsZ1NlZQJ1T{5I%wsSVgpgiY1kqQRK9 zkPf!R+AnR(1z4x8bKClbe zE`@2Ux?tm-F39lhiq}oLqVUYFsC=d?e$3qsD=T-yjbYtTFtr;Re&~kTLEUk!XLpoZ z(;a<(>khVO!KZl-^qk!TwsSpD*3c8qIGYW=Jy8M!B8b{A6%)~2ffDkfy>c8SmDqYm1Fwi@xZ=d8yPGw`r=uIepuY8 z9~v#~2d|s`kWsilrZ(&kwx7ZGbbmZ{{SkYWACWlhM|4R25wRbCgm1_Iux$`4iT){t1ib|AaZ0f5P;91HpDT%$PV3Nyi6bnSKy9#}2~5!Gn;wYY?8j83eY; zpT+^9)1h^22bb>M#`R zGz78deyMPt`_aap%!sJ0@N) zAB}~FN2A7_(fHyp2J8LCpjD+Y$k%cV*v5%r^Tr@*<SBJO*3ek3nCbu?P$qi#PSg zg6*FeGIcDlX)N3`#^UnRu~?R89Qsxm2RUvW*fxrLW5!|cigB2BWE{HQ9S1m$hq3s0 ze2pCswwod)emoW~7>^MtZ2JR%BBK*{h4V4Es5118}4j0wovIsq5XO@Qs? z1nl>mh+XE1V0$Yz^q7dX6Zu`sZ#sWJBzKvFU1cVLZLzR*n1l->C*ju8NqBy65;V6b z!P6lTCHxY>c3RYGnTSq95;1IkA{OjT#Gb2(xbiU(p9)R}+i+oRG#MQSOh)3&$=JDV zGP2H3hT-*OM0-yG+jp^`_7t4yH3j;~QxLUb3i_Rzf^|=(;6d)GVB0U+#ZASsE>m%D z>{OInH5EONO~v+mQz1D`1KWi$1JjVzZW;ncOvA7x({SOyG?dMnhIs9Cu+12zO4Bi} z<#hZuWIDux=~$XF9r|n2(dqMauss=pku#9gWCk1u%|Nd?Gw|!q8Hl?y1AE@h0Na}R zMw^+)*I*{b_n!&J88b0>>r8w&Hxoa;nhCZ;qkq6GysJG6Klh#m&6HUfy>S*iGG<}! zvsqvpHMUfo4Qq|rIM;nP+E1K~4{K**(uvt9^>{YeevQWE=ip7XIhfjI4g$u_!MRm) z(Es=x6nroTY}-bMGIL?5G8el$QjeaCyesD7;E}oL_uE{s-5Xa+CSeMaP^Enmv?G(S zcWDxSI+TQvJ4s-hICd1Dhe7f@#I&6U$KmskzIYy{ADD-hS@Xd5a(wWckK?iPF}L-6 zbWfO%*hTZ7V$4ljjEy%IgYEjb z?YjhDElW_O)e=MuU4kYHm*AIuOR(_f60pr5kBm#<9lI3Kt(T%x!cxpwv=j&TFU6}{ zOIbHshDODfVS;rT4z^i_kHeNBXvs44IJgXJZZ8A-3Q(rRaUv9{fEJRh+fAClzOxh?0>-1@~cqqhgI0yZ52vRT!qQ&R^ju>Rp|0`71%d{IMZsR)Lae! zUaPTU@@jmyX*Fh@Sq;yZtHFK?xCXAl*t%=r(r*pMPhSJ~ZEG;?!WtBMy9VsjK>5(M z*wJt;BY9oP`L4ob6ixbe$644l6X`BK+m^YwMC6RijP zLNKk;dW5!Kk6#nkW7y*LD0gr@&fi{-c*hN3KM5{l1IBjPfQZo>@MOgXEIPIU4IXSj z9@mXv9}0%XZA4VJjrcHOBX+Lah@VbvM8va=_+r=u_OD<}?M(^wVa{nX?(ac5ge*#jX`wvGUkf%zm&HV_mmlaQSUue-1i!--ecx zwxQ96ZK#{E4K-hELv^q1_#u$rdfQQ>|8~@wxg8C6Y)A7;+tL2RcJwT?1A`)Wfc-$2 zK6nR~F4%#sX*+QA<_=ud?!@zAJK-dDf_+2?AGH(pR_sLYV>^-fU?(=X?m|ZSU3mG! zF0lWIb(~#jyKxuBpV@_NFL&XV_infc??zOE-C*Am>uS4^v1>ORukJ>~=iTUCbPra? z?7^Lud%%7tG+(?2NeB1f>YY6(nrkmwmEMb`Rrcax=e=N`6b7x`i$f>(!sFRqH1|ls z8vhi0s*{51{ZhdGD!ksFf@+siu=qm?J{C$v{isxIY@Uid@u^^67EbI>MaA2xnBtg* zHzm{1v~n5_bV@_{acN*b7qlnS(Bo+ut{L{By8k|;*4YRDe*3U&#y+qQ3{x-dgWJb_ z7+H8fw9)%9q{V)Gj^B@87VQW7$1wEHemLejfN`Y{z_aQB%7%RDXCK4S z-N!KV*JEh^^%&U42N&ycTyJ|ETSgwoxE06I_V{r`Jvxp8d2C?+AI{dYVRIiFrcJk@ z|8^T1U9utOqYWjBq=S8fc+)Z+HxtrvVo5r7A5O>0d+C_tasuPap8)#}(WmDLbeeJk zt+t#%qYEcc=iLd^D0mWakte}EMO2MHiE4{ZqWZy;sD1Y&8aSOo^RlPVKJFCQ--tnp zr!Z>MDNH|i3QOLc!WN&?I2?W&mztgi`y!!Rcp8NdoJP={)2NXv16|5wV05(%EbEp5 z_EX}wjTvw`mx1r!WT1}E84L_RgGEixun;~CI_d&0x43``2^TPQ$pu_Id;#n;#VFT{xKZIEB5Pj6 ztlk*y6+kO$-E?orsQ!%J$CT>_Vfi{^~HzE`HS7c)7@k~5^lnM5=;;8u&LhD|_ z%Kn#7X!a#c+I8oJ>Ep~RhiYkd$ab?q0bU%L;+ILqmtKhGw81*aI zw~JN@zv9!9Uord0uLybYD=xTQL;s4`*iLi}yZc^4%bC}p-*pXZuUzeCmf9g7XUR+1I_YK5{+(2;S8+h{b4Y0o$t@htQ;X5~QDc4QREPE3T zez*yro;PuM%1y8@8LcyKqV&g`cvj>Vc3N&>Sesj@KJpd{t-J;HGh^qITNvw+g{Fa7 zFg3`6v4^a2M<9-^Ie8?qXWfU5rV+iy^n}qQB#BV81px zRr`(Q{ol}P@^5Idh2M+(e&FvS_rN}HbZT=CJx1O`|CRSJB>f)7JiUi$p7;6Y!TVr; zI8p}P$I1Ekabw?oyu5uMPEHR{q}&4pReu2Xm7~M72T0id0P`m#@1 zVr`$I>!_#Lw(2P~C!d1-_DJ%6hKC`~5YglrCJcUt8w;Ny=+HBaz4r|4(?@v4=a^di zIiB=;j;gbtW5u55$aUj6Iyk%l`}I+Qj_5!aGU!cjB7ubK1?Bff}DEbl{3xFQ& zUgFo$FA=xqCH9_riHa{@VsXA#@CknfjuU|6&{z0n$t%1)@(R5lzQWTyuhGr_H6GP_ z4UQqedxJ66-@vo?8*qF9O7DDwtykYbmfqrQvA1Zeyv5tj zZ!vb_Tb6a+V(a<0hh!=#uy7dGtLvW&sD>KcGjz2NZ7b0mlb^U>WBF%I*JvU+;VX$1^}w_=t}+KVnng zkLWz>BZ}|&i0jusVy?p{aI6FJSNnv_?w>Gw$|p40_6grz{)F3~KVh};GdK!G;A;5-j*-BIQC~28^%pcc^#!JvU*MGgD{h5<#h&J0!SNI5 zx9ltG9RG@dCtu;>EGZugO3LH%l5#y-QaH9kIn-KGcJ-B%bt5HZ$t+2kvr1AX?~#o8IPVpU}Q$ok;lv+tTrOP^y1Y#5gKlYdI<$SE8)x=ct?*<)}QJ&E;zxmB187 zrNL=OWza20g=0>XLwddP&_}O$l+!DrQF^6i4ZSkDm0sD{N3U=^isCp+ub5Wpl_q=i z%BYiiWy=k{a+8gl?vA+>j#W{*mdT|gMdVV_f5@eLZjno=*gKcfYIrVX>Wo|p$FV3M zcafdQrL?`COPTXLmvY*{Ny(MZNr@@#q;QOjvLVh%x!>GLDb~wLX+F$JnLXV}IltUV z@!aL4aQurh{+g3wd*-CLI5;a+@;WPHN;xaX!<-e@IA?`pW0b_6&dS*YXC?o1XQjz< zXC-;3vvSAgtdzgztZ>|nvP_Yc9&s`Q)g zs&Fih;=9XL`7zy9IeE=hDe>G@8SLPuT+HjHm`b}T9H*n)iE~pdE!>o(UT(^}VQxzO z8E(qv6>f^>Za0Nvc$CxEx$X-$WwI`}@*-burEZzr%C?ByN`dOR6^`#wZuZWtU_@?Z z&CJ}2=c?SwfIYdD8z*xs%FWyg$Nne<^m&wFK6#YKW%DQvqw**RYUEKWw$7s@_06Mj zT#)kP>^#by)p?YMGVR>6%7i<8Y%ti8kFbl4NCW) z49cT%2BphErLAyp=taK@B_*kR8qEkD%FpBD%Y=iDm|ZiDq5|VGR@md;kYMdcbJz_BhE{?-P}w0sh5}H zKHN)LHp5GaTIr>5Oq9~?q?e+<>7^`q>7|6}y_Iu5-b#;h-im9qx5DvKifH4l-0J78 z#E6lmH zI4h;?guIGNa$aTAro2kyLwOa4%)H8)2YHqHpYtjlgQcwY%cnF5%BMI~&Zn$zoKI=i zEuZ2NpHJC2C7;6aS&Gk&e9F<|`IG^_=2OZ(%coq`=2s@>&977{onPVDEoJ2o`IY7^ z^DAC`@+-$iy@2w?SU}kqSU?$}6i})* zE}*z~E1;YkQb6HYF{Rbg0!rx}1(avU3n)8&Euaj2RzRudP*BO6@Bc7#-tky{aU8ct zd;i+nCGDZT$NSKb_TGE%J;$%Ul=UmeB z+Ml?b4X9O*8g7vN@Oml8RXJ0A5-h`a^CS1#Ef@ITJ{I3av>NKTc+oqKE zX-cwrQ!dVFiv9YgNN$ax?oDZau_=|en(`v0DYx^Q;`Oa5d-R(jnKp)YZbs{&&Cr|F zjG`sYNZHrcVkIhGsZq|Mz5k~G_7ogZms5gY1N#p-p!FL9G7P`$8&9S z?5&%#$*no_FEnR-WOD{3H%D@EG%0INRXrmr8XEE0#7OR2MxaX8ipn+zj%elTJ~g%OgkV_~Zn%lT=nwV=0NOL{kIiD{>nNG^}Q6I;@MNlON8Z^=-{mW({z60<8U86VdY$?P$s zs3r3&Te7THE7rAc#WvGcSedor;OtgNo{!V}TXFGtD{cg|BIZ^rQc_xxlh=w5-&!GA zKlGZkra_n1v>Vo%K9gIcmbGT)&ep7UYK`OoalO`>^YN{@mDQTm;?}(V*P4ntZK&I> z4U!RL_}DhgoY#g;8{6Py*MmcWs1 zNt)Ic$re&=Z(BOMw8g@&EgNpO#qD8R`5d<8MM+yUblTDGzjlo2*p7{Z+Tk&w9np*0 z@qTMNY8`5aWD;2v+774Kc7$iNBmYA?YF4&mK&|#HZ`~frD-vtgp3>RvX}P{VmNxCN zc5lzsi|xt3-5$v@LVkO8{%Fr-!w$S@+JOe$IxuEL2dt-dKyr?J-ra$=M>{a*TnF64 zI`H^G2MlsMFubG#l7S?=fid5Vjp;VXm^BlOxwObwem`T{9WqApk@$xiQy6PZ+vmnC zD>5da(wL96I?}mKM(foYaZGOFJ=fXD7}(bwaY5Ot>!l37x3O?!=_eQb)71+;2NGt3zib$4L!~&MaTp znR{D0)BIp(c6fCrBcwAuV>=@mPd%-G7#1lH<8)izyN)u#(d=3VGKw+oX0q{Oxh zlRUa`Gq4Md?{;BdS{DimyI}Ua3z7|`L5r^J>DiTn(Onrkvnw~&bfvjE&-%8ekp3L3SlY#?1S?Sf2l8~Nki|xt3jGjpLm0Ev$a*aNl0^9ovi8 zdA+dM)CAmoM-;3@Qy@;vVTkfm9$v5rIX7k?Y&+X004ZZ1X z*PCdM-b@MVjpS+B_p~?l-}NT&Pj80TFeSUCDI0s6QpL;^$=Wh#y(!Oar0j$#)dNil zxMRwwG*j{lO_3ZfO{@3eR*OE&?A3?g^x@>JKJ;7HhwS}*kc=+PFZCfhst=2v^g+L{ z4}rh>Frivsz8m#L^1BS9FYjjd<;dE;nC|b(tK)rfxY(EOQGJnYFLniexTA-P{ZTKB{Act6Z9_T$g(eq2iJ$E<>WRR7fv$po{}s6TCc_9ts} zf1GCaXZYIw{Ic#(@bUggUYI6P{Ygvh&!K|;jQG``imC&+VKjhsJqI9JVhU#tz-R3M zX73+BBliJhTpWN~)Bq+v8Gz)BN&Pi|qtym7p~XOI_ZmnV196)*kg4kiA{k^}xDUkV z(m8aW8bE;Ie< zAlkkg#MeKAxKm>=vdlO$O$TFaJ{ZY0lel3p9(IFSadI&Ig9lSBW-zaw4d%-G!ARzr z8MTJUwPXldeTVRT%n*X-4Z(KP5N0_HLGsX42^m8Ey&>Gr7{c+QA*}m51oJvWY1?in zl9eWR+)yGG48?uRP&OYN%0%y>biXo`TK9({IcmA)59Nx+FkI^mV{?aLOdU9keiMe# zbn!4GV@-kMFdm#4#^r0na7!4*&YWQ^_%aNoJsinj)5v5vT0@5OapG{&mk#Id&f#2g z9*+Cj;Yc={wGW3g>*a7%>2OT-M$oqL2<);Yb?& z9!b6Gqo~z#6p{tU&}t{*&(79BGmhLfeKxSvVGp-(%TZeH=k8$MK@~II5YCLvr`5**K2V_TxzP9EVoOIC{s9WBK!O zczqm)Wb)CiH=Y3<#iseIj?6y zUSkWIb+tgU{2ZTV!P8Y1)UvX`!p#Dw01F=7wxHS*3nb@{({Bq>s!yO+s|idroxpMP z31rTlK$A@q5C#ChQxo_QGJ&pf6WEeDfm_8B(9*QTyuKyE2aq$!k~R}9S+mrVn>#Jh zI%3JVbC!7Av_#key1%w$?>9@53?|a3*+iCgpGerKiRjIoh;Rj*-#?L`?h{dg6Y;z| zkxx%2GUWY4j#W%Vm;(m1oy5_8lPDY~`wJ)GvUL*g4^3jonMnwbz?Xzcs27v)Ety2Q z&Sa)EnoMZt$y6Oa8DSNOT{#(}eUsUJY%Z@*BBr?Inm8pRsZnOA?h+?%H}YVdR-CQhgGvgw@NHJye>r{nB59i52j2ya1Y z-gH*}n9iFjGni#GgJ(TwFka0darO*^#o&(J4ElS{AnfuC>C?<0^!W@r7tbJ2V-^?WP$4mxSokgtCEL5*qq^Ma4 z-$BlXSuC`lMUm$$HipciJa!hgnX{<=X%@nM(5k^~f;-Np?~vKVO`476^4YxHJ)2c7 zvk@+Y1Cg`&@9}KT=g-FU*KFde&0$*0IlS*Z2Vq92Hg67RHqD{OfjPu`&0*%1Iefl9 z2b=6U2v0(Y_FN$OY|12rom;&Wnf}wul{57twXqA`15{!pm(DlP)eoSQ=u}7P0%?B6?RW z;!CZ?Tx`3TMg14k++s1p+2Fo?F%z8@Q}gU%9)&IDP|{-5>&57QUrd7G66~8VVRX+W z=&L32nOef34NDknzl0j6mLPl%$K#eTBWnrGJ}=>o)>1C~x0E%VmeOn3QiR>%-pZvM z+_w};91>cu(y~=XzjFvO4*K&jhqI}MBQZ_Ezd*iCI3Y7aUC(0u4J>cEfz{nNuwnEDw$9psa9QlP+rUB34IB;Gz=^mG zoXOfiz~>EI(cXwKTf}wVC}UO|$(pv2g4G)-vEE39`$i0dHX=M1tur>#{o_W4YHY%y z{wC&j+$7_Lo7g*f6T*7ovv(6$j%^|~U=tZpoA{8niHdids8zWM;lSwEelr#WH?!Ds zGdq`V#%0%L0*-Db+J7^`h*9!*GlqqmY4vBbj5TdxYMU)==(mN#84xxF=i|OE!axmty`JtxRu>LTM_Pz*oRwr z`)Vsyzi*{$m2FHm+Q!aa+wd{lhA?S--n5PS2e&ck^fs1U+lF)EHg4u_lQHgX2(L!( zX4{$HV>^f0PWbHY6l~Z|ZHMg)_S%lHY`pFc?&STaowU~8#hiw_IN5m@&xY?p*g3|n*~Ov#yGS^(3*F#djJ&st{m*xC zuXq>2)iLb9-R$qQo7iEy(Vey%R`2GZ^==-y??#wACdKULM8@mxV+3a(T*L%2)11 zS?$IB_+EtLqet{!tkd_BTC|rI8v9sZe;+X&_fco)K7{cjY~?--toAYM_&zRQ+J{#3 zKBlJcBd};6!v7Ii#fqu*t?MNmg8ruVi&XQ&mS=2i$Bh~a!IIfoUCwpd9Y%!;T( zR;)U1MI#?8gd1eb4J+D2Tk-Uv75mezq`zdv>mnJfQvmap?S-xODMyvPpeCvLW zSnr3!`}ya-pK#y(2;YeD&HcQI*^k$w{Y-hjpPFy>^PqS?Hb3_x>?6Ob*>LSY8`ie6 zp<`zo3j5f|HOz)N<7^Nvl8l8mxUR9mV!I91Y;1VwWP^i;4WrK4Aj~8&;Wk*s+Aui9 zhRRGEZs*&u>$435e%l~CCAVtWva69T1KQY9(Z!aiezxo#Y0D4`TZFab-eOy9*V!_9 zr!59{wj>>~#o5yqOMhF0!<6s1EvN3=GB4GZ);YGkE3_r3#Fh=^w(`7YM|mwfqMO)Z z-_DM)-R-C|(2mT}cAT-aL-O*@3`WL1XnV#aN!tv2-oLgd?4vz)KkS*J>431Ld~4u9Y)c1@ zb#h>F9|w93cR+WX0~ymCxUkTH?Q0w`-|j#Y8wWl)Imph99l+_r0hU}nfN-tUPdvb97hZ{9(Khb3&wL0qlmnBzgr-4D{<_aNFq2YDTK5MgCG z_2?iwo*!iDn}hWFbdb8g4)Rs&5UJGARqTcyKd=EWD=B+~re~Z_XL+pETh=uPCF{<fs&>5aN=rR zCw!Vaam3h(J-wV*J;aHb=1!PRaiZURCpxThqTyC2gfHfoqZ9AloyhWa;z5uTkvE+P zy61#G=XF|N4@egq3)HP>Z?l|M{z?nVIoDrUxRYlG${O-&QjU!lAJ%Va* zgrO~u(6`eOgmuPv_z_x-J3^D`N2s^x2-VjfL4U^)G;NO{95mlg9^s4M5sE^NP#AfH z*Y}UexZM$+=Nv&8X;Qu(;bFxQ67-J}Tjwaz&5jb);V6+kk0SguH_VQ5ZSqmB%sWcR z%A*8tIZBY#Q34&0B5XAmeUB0lB->5d?#Y%cTc(uf%kj^${g(PVE(F(f;c{aaLfg7< zwVR8KO}ijWHW8LC+@9^i-DNJ^+vr049v2=Qa3T4a3&LxYe$j>O>n^;y>q7oR7e1uB z@cFe1WglG-mYaW?uIN^GrD{W0>a=#HQ5RQQ^mC>CNLPgO#&o7DgO|7p{Nu{_U9L>E zcV(W7E6crH5eA%{S6#7*a>Xgpl@m{0@qOt^;0IU2zPTcNI7wBGkx~B`Z(1DVlgTlD zn;t`V_%UjaJBG01bX;_dK5LILa>p?&ZI3bc$T3!X9%HBfF@!6}{nj!3;*W9d$uaJ| zIL4EA$9P?OjFQS@2y;%&dTtmQxzV+w8$)}$VL8-|g=5^3c+MIP~Xs|nT!rj>s>y9w>GLPs^YJoeSzqnJa+#O@R6HxmEOPiiRcze$EIKjO^ zC&*JL(3pIJ7V}OpWaSCwZ8?Fk`1m-UAlhAy`<_56_yn!PPcSl8+NYdAIDIY_oFM7T z2|oWhK`lKGde-(}YEut(wD&+5exe6?P@p_8nCwBPc^*ty>A{vQ9(Y=LAbdXs?j9JP z^`L982UEg5*cI!6Z;A&ASsn=cPyG@P29|rUNbe+$wNG-j=}EHNpG2$YNyH1lB(sxp zuRDp~yptraJju^3Cuw1Q67$0+5oZ9W&z>YP_#|cFCutUU67~2bo3f?6@Fe0B;79pM zTIqW-zK$n5n|X4+gC|dWdZIDJ6LAeNYlQ_d=WqB&_w~?+!0a?YvlX)C>PpUgVyac2~U+ zUjp`tUfg}^#jlrMbT9H^)psxaG`x9P)f;gsFtL?4PMy6;=8%e%D*ZJH4r$;f+O}oTJ#Aq@UgxYM+K0r?GEz z8u2rr)9o}P2ApR9=+oS@JdM_z(+poO?>EW&y{FMWbefUJPh;nEn)txe=-)hz*}c;^ zCZ9&U4%93-jpdiqxcxcJbKNsEu6>3%P0!%d{tV)Lkg=&VtTsDC=;SkepLd3StIn`@ z>ltFL&mcYs#(SLM*ts)gT|R?R=G<{{B&zJK5d{M1^aqHqsUO!*DjPga?6eP~_rNJ^^7H{K>9^Sqz(=WoG-cGG1_& z%0XutZ*~@+$!8JY1tV9T#eM5pK3Jb+fYVu=JfOV=l7v3+rt z%y(z$RCX5Yzh}uXJcoEPuxfFRbQ9U{a}Mj_=XgHu9Gz#J!*=mG=|h~O`>t~wus_Eu zmvi*-K8JI_Io@77$Kbo?5Wfar($7iO=Nvx8=lK2e922$u2(00UZeu^hy+K4bKk5$j zV-0>JPV}SITtD`#@FR1xAL8ZUh@&4L-TmOKALoMo_!sWS>^N!n*bi}bu<5NIsbBr* zTZdgYwQ^X+*wO3x#15t0oq z(6inJJdG}(X>x((rWZ&Zc7ZZx_Ih?g11G3}Au^;P#{djOPU) zE)%r22C&XLfER}YF!Kl?>|6kCLIQA&3_v_5tbHQKUIZ}aeE^YV((YdX9#t+%2JRx_ zK;d1di%jc#k%SQ!>0@z`fSDI*xbz|iH(W&gD6Bqkk=$b!u{d*)m`fMw8Fmr>7^#zd z5pkzbnSW6-PZ!DmBj?e(L{jZb3~qLbs~s*OUKLIaxkRlom$03BiQfw@v2M*J3btQj zhV3Q9xx%PZm$-HQ5hm#Fx0iA`F8e5@YGqDFz_v+3_Nf z@9zTHP!@KjDnh#;m|1R?$xCM*piWkV2S_XP3qKoDkb zK_r|BVsu~-;)ap&jv!)_gBXz|uLVJptB}`nd9NQV{mEcPHV@{$aWJEM2a_-~7_+g# zJe(HH*hRsJQ-%pUgL!Hf%oLYkGQEPC6%fqJYr!nM8;tm7SdkITr@UY`d@r4EF5^G{GA64pb7k9Q#8bmv=gW-pyiBtHWhP&_ z%!}KXS(JF0k54Zn4jU?pE@S)SGS#(0aIYSMQKJw7+Js03Dg^P{$lo}G#}h*&uNp%B ziV)Ur3E{U@2)2hq5cdt9=R#-~62jHU5C+AE@bF0pQ*%Rj^F9Re;!yD~go9N>Y4Bet zeyu|3-X)Z~{X!WxDim?%uyS@Nzm|pKuu1Cd3&sCXD81Z6iSrFbd^+TZhq5Uy6rI#i z+;T!?t~r#j(ohhnU0ge?sDFj>7FTfUbOocnSGY3b3L`A8kTLTL;^Cou!xfzOT%py$ zE8K9qf|<`1as#hOR_6-h=;36_6}n_!A-3=e)4yKfQ^ghb8(gJfy{m}7hY==M$u_;p z`r%j68-Eq=8CU7G&s>%7$5m#8U8OYUDu%;v=zX1kL$4#A zAqGvq&WlCY*|qLEO?F-9mi={Rx?ZQ;`#RzvV!#bK9(|oXkFL`^^E!9)uS5>fGRcvl|>TzCownH+Ves1{=rTp#Jn5h`Wf{>u&IG=MB!;%Ve-XJmm25Z0EplC!X{2m&H&)6`S9>$kN zVYsggLwrcQwGYGDH4M|!VZ6E+hQp08y2XUa{WJ`5CDExMjPx&I>?;q$SpOzZ>)d2- z^P6<&DEqx-f7nfo$KB-F^qcHkd=r!PH+jD6CN>T?5yuiar*CrL(oK4Y-6SvOCP$KQ zGBE2V9|~?F{v}3L+@wrD9N)U(SQv%#w_`ZLrs2#U9*($~h@275$|d16+7K>tgyHNs z5Kc$8aI(*YBi<$k-VEo{y>L#aNc-$?G~b4E^=mkbE5i||6A$V|u&YG`T{=aO*CztE z5fNY!!JnBCi0_Go8zX42H-d);BiMU9f*!sRybFrJD?9>mL7|r#!R?#~HoS|VeOUy# zelDF%Fq^%mluq9(UUns^KQxwja; z@)m!$+#=HY7F(TeAzmtZ_P#|>sI~|EbkSC${#o6qP%ph_R2t z-ZcvI(^1sC6veX}QJjp4Li}0s9gdRELKGn-QEaY=Vt~ONH0#|V!RQX+)?!MZJ2V|} zhy3w(2%LF`jZ5#)f8!mr_TG{IvpcvRzr!rwJG2hILvi>WZp7VTZ|WVH)4qc^xyUKI zga5xftgCvL{{P)Yr}bSPce#sa|GS8pg(Jbo`jp^WMbj_oAHYFOr z1<`C;6U~Sn(bTnzCjV$O*Sw;!4TxsS^=QNo#*d_E5}!-^{AgBviI!)*Xlm%k@VZV6 z;ts>EV+_+xV=x&W!{2c+Jed)L-;x-%Z-_y>Vi+Baq0B9YM4uSEf@0VZ9>eIk7@DNU zAkH!Fzl-5iSq$s{NqNrCbptEA_p!b%b)xTM{^&kkGVfEj;6CDMBe(oMvHI}@)Q!j4D4xwG z@yzTK&(IO^h{KKQv*P)-G@hJ|@$x(u&&5OWxVXo&{cJqqcSA+S(>*?3a?d>*gb)fOz4^+n&H9+XQYNP2ikY zf;?X&u=9EXOQRE*_$YzFnF*K_B=BEJ0y-55eAQ3nW!*#`86_ektQb+sd6rnKbI3JicBOsK9PrMiA26kL_Bny`jLpE)&q9e zc)*&*517~P0TX&WVEEt%h@*~nQy*_nfD>5{a4dYlzON71T=@WT+cBs9LngL-2%R4?sNX|+jCx21%ZD_d^APdgQDw_R zG_4=<^YBAHdpxAj?;$TjAM*6}L&S;4y=M=JeEpEC#Sgjk>mlcKk~mc>3Ad(6h%XQO zUPOnlF{rWTi;|EgGfeuLNYqDlM$~U z`kRw6v`VJx;bf|NBvaEbncAVr)VrOGIR9w$ESaXSlW9?$OzU6CwAV?YW33drG)+N# zfb{8=!hoSE3>}-osOc$~FHXT?eF~Fzr^vrQg?Vl%Eb&QURZt2W!&BHEm%_f(6zpE4 zARa-EeM{k##$(P_d(5SVkGb0Bu{^Ur=H9@^h+~kn$&bmI|5)apAM>DtlU{aedr> zCp^LV=@WcjJwZH)#Ql6C`GPb))J&tINg6dfq|vHZ8oh_6$+Jirv!|!AesLPM>(lVq zokq}sG-BM+$nZ%+{EG6to<{xqX>@#&#?ag}rhG_~F{m`GHJ>8xMJ_jbN?hBgZ z>7b_=nm?t*)Ti`a_!RLnvTWy5_Ss8a*QbP@eoEq{r{sk_<GbH5j%ELJ){Ra_9FYXgO($t( zIz?O4F|oRs9g$w2c< z2JOl-By;$jb#Er)g z=6s%G7xkRr2hVwy{+x=u=d}6!9PwPTSuYdsI+?^b&*XE*O#bVW$*>WbthC5P9GFBc z%jDgrOyQX_8E`n0B_5d^^~)qOG*j-Wnbdla$-wkXmgPzPPnq2Lok@{y77glTA?{4p zbmYv-mzfi&nF;uvnJGo=sVZSCdS~Ec86G=;fEi!q6;XBeS@hn8oL3S%`C! zv7fTo{X2_5-E4AdXH%tlHvKzhv(hvh@o|zgKAVb}*>ql(&D>4d9NCvmv|~1Q{Xbul<=OF%1dZp*EDlZ4$PdPmQokI=17xGN>g5Awu zAZ}2KOkdD)#0zFvyufAF3mzrauMGsV`k^#usoN0n{)YVl}mr8Tw&^R zx#pjXxJc=ACzllub2*=pOa7Z&T7Jo8Zh0(~&Q!ZTXT3 zb6!ez<|X1VrN;i3jCX#Cljlp4&%dPlwU>;$`x57*mx$j~#&4y5$xB=+UXo_;ihA{5 zF{R}zPIP{SxKC*^`W15~zQSkjE8eVpMcZw!SZ?!*z$32^FDg9(Ua{r+D#na^KHxQ%c}>}**D@FRT5?dYiQoR3YId)g z)TIh&_emPAWv)wH#huDC2pB474l6&83iH??OgiD#Sai5b@eF{&67} zathISU&xGag=_;C5^ z_LgzJZ@C!!7Tw6VEQo(gRN7k_y?Tqda(VjmE!}k9;Z*A#MNQwKjNjqk`<>+P-?3o) zJMPYWN3&(`*uCi;+56tfRQfwSJl^rs?;TUGydx~?9rYi+V@t+6(%-zJ_m_7v$M=pO z`tM~v;XOB7yr*I3_w4BRp6pTY894Dh-gDpcZ{>T$%}cD!d*Q3zbHM98MFH;_cjG;w zG4H9H@*eT_lJ)jIgUa6H`|mwE)jqJi;Rll2e4u;x4~Wy3KV~18H}wN?3qN4I?gK}5 zec+qJ2WGl`KzzTn3;w|2h!2$B|GUM7xS2 zTns)^QST$mT7E?Q!VK#FQS3<{sW<5(R`Whmyy_#`GR3HR2PFl1K=w;f98=T?Gvp6L}_!qtcpy2Y1pIjw|FuS&S|u>|8^ zC5Qu>cD29a-|Q=GI)25^^ee4LeC3>lyv~-_s_n^MFpP5(iqM46Q`bZRNF3rhteDdpj=QpO)B zMV!-2^(`ekxRkk(rR2w#vg~Oo#ji@)P+W@msM)PshGv~I9GaI=&7=(1K4mlI_JJ|B;*^7Z-2u-@f+RJ zzX`|t4RK@h^v^fu>3`>A-S2E`@g42X--T!RPP5V95pOnq=6xq_)pr@c`pzrc@2qzD z&L8jZGUoUlacbii`<#{UNsul}Im&JVUG{XjqS2jc0*m7nA{ z_{rARKQZX`6R&|k5r;STru<~;!k-ka{mGtPKdE!zC+FRM(%<(d;`e4zHb38-_$hvg}=!!2K4>KlaaqzZuyIUbAI8z@)zO-C(h;=(E0{bJJNUx+gt+xNd{_Wc((G=DR`#&6y?{*86}-!$&^8}W%Vew>ue z_|5*MziGPZH#hhF#`5rQiamZKu5nsj{Y})J-%L;X&9~>jIa=_WPG5hMSos_AkfZV6 zAG}-tp+8qDGJ>NepxcrBIk$*Uy@CWgi zlk@ryJ3sxQ(VssuZe7mwy5;;bD#xQ!IpQ`ab5uFoCzjJ_UO5q~%9**noO0W8yj;p9 z(_7A~OXXPKET>gmx%dytS(;mpK~Xt@Kgtm&IwdtLIM%cRQ{xI@x+~Z{yn+@M6~xY} zKz!*`-BLk_bp?~1EBNJEf%k<9hF!1VZFGgqu~*PNyMm0j73?ajpruA73DqiD)2LGT z=1Rn~&io;j=#Q-=czPw1msC=*p^|fZD=~Mhls`KyHd%As7hQPR?`1@CHeW4 zIF?i*es*#V|6Ix7ujH(o=%oUEbx%+gTem{%W`X{h0AHPori z8tU6l4K>bML!Eb!g>9WRl=$b>HBSvy%~wM$y`Z6@gEds+>l$ivq=rg~)==W6SNoGS z)QhJY$~0R;xxCg;AKz-I(VsMwPnm`iZ@rqTp{cIuX{u_~HPy1Zn(AI7P1UT0rrO?4 zQ;E}Fb?vFC9Q$diw?j15@X?y;^jJ;xd!nYAGDF(U(^S=$YN{2hHC6mZP1S0LrrNtt zQ{~ucsy>G`mALR#iHD{dcSciP^4C=QL7HmuRZSHWuBn>e)l}liS6NA#$}~+=9m~{I zUtemf@r9Zy=%c2pQmU!Mp|9fqYN|H6T55k)E%my#mKxkpOL;ZdQsr&5l=$^kcy}$; zps$wNGFVGJ8>yvwj?q%CmRjoTG%Y3WeHF4;OVwDVrPglHQpwx2RHwaK>aeYrDn6v8 z#LKS&PiU#Cr?u27KP{DXNlTer(Nc~#wbaKbEhWx=74%R`Rez$T);!lzDY;szYk`(J zQlzCyO0<;t{MFS;Emc=XTWzkQtukt9t3Ll}E01Q{>Q8HJC9Z!J)lFL&_0d+=gS1ut z2yHdWTw7h3psft2X)9R=KqW8IR$W(WE7$ef>f2UrHEoZ!inP&IO%G`+StCHbahEpU z+A83jwyJtbTdfV%R%v0{s&|yOlJx^r#RF|MKUG`BW@xMSx!TGxUt4|opsgmAXe(J; zKsBk9^Jwd+d_x_jYU!w;20E&CGaa?1wT_Z?2h@;mI?B&fM;Q##QENu%s5CPj)pvr9 z@}8=rWK9CKY>|#iUZJCUtk+Q8&{6*?suV+AWm-#D zc{k8iy3KUe>ejkS)<94LyXngBr>m+B(p8&B=&BcHx@zPET@^f4SIPPaYR@8F^>&4> zvRJRHZf@08E%xZDgEqRV^q{ViwG&jFyRPc&t*hM6>8gJhb=8VcUHSXTd82fdtgE1E zKGan^Qgu~+hOQcyE9c19RV|Bjm1Bvnk~J69yh>g5P+L#+s-maP)Y4Oi|LLjC&Ggi( z)_O|TV^G(->B;}Eo;oy0PyHC7rxuv&sYes^RG(>j>f9VXRb#Q9+PP9sy8Y!ir)Hd8nrbKhaZx z&-GNpmwL*sKu?tx>8W{N^^~mtp!)ySQx|mfRsE{^%BHryD)~=e&26r)9<|X|{Y~^$ zKzDule&{RP!TPFnq`sOzMqfR))K`P1>#Lx-`l|5~eRXh^zWTL6UoG9PuhRGGtC4p4 z>YAgzk~JlitB1bQJfpAH`|GRMf%?kgs=m4#uCKb>)mO6KgsSmKU+qoPSD!QG=f2Wc zDTVrKaIwC+T&k~(e(S3v|MZoHo`G6l%|PYVF;Ej58K`?k2C8Q}110NJsQNt(lzl$~ z^=pWMS~1!{WsfybV<#D?s2K)I*04}MOAS<=H3rIdlY#oN!$2*wk~;QM$H_p+`WC92 zr-3@_Bj>qbpd5k?)SqhxYIUT6dKE1{E5ShBPc~3}pBbpYYy;Ii&p^4nGf+C84b--8 z21?e&P;)g6Rhqt`8dbwkMbtA?otqdc-vAH4igXZnq7UVXUE&bvV@b$A)TEhM~%PVW_6%8>-|FhH7Mqp^E%rsAP=}bwRs| zYF4F+a;sHERsFAu+TW~-`qjFMTGz3PlJz^(+&)!Q`k*Rm?8quA*1U=uU|HpV_TB_O zieg_Iu3i#C*2%sn6A%mtI4mL}%CP!J0VBHtW)hN+V3sip1VtPX5fn8dDk|z^AtVu! zh#(Oa$3!%)C+@-H5)nPP=eR}>kngGK?qs?N;<@ME`@Qe?ndkS<^HgXUmEkAFYP|$OIQ`sz0s2)StvF{OQJp{&ak)KV6sMPgwJWO0M;%A6NO) zwQK$9`}O{mce_7*eYZd5Z1X3qheBC9{ORap{61hLwDdK9!dfY` z_^>~H@QFWN`Gr5Vf8$S!e)OmJfAhz4H-NB?3e67)pm#&TF#+_BIe_M!4IU0210D~a z1il2@XCvG^@M7$j7C;NK0|@J{(4vw6I(&TqUAZoRKG+yQi|-1ckM0eitG5Rb)@C7F zZ2%o<2%u$82GHlv1W;B>03CZdfL62x5Y}y>{Eq_Y`_BTX@T&m&sWX69{u)4CCj#ht zIgqfX3*8tTNMckV-I5SU{RRcnZRZ41z^Fhf8y84e?}hH07D&-E1L@&8fn>fikSbFH z>FlgPs>=-|tOY}RRtM5pM<6}5A&@S*BaoiICy=H+7)Y-;0}1QI&|A9$Y2n^L`ul-E zN_{?%j=mH~Id25gckcue){voJKMkZc#{xPM zmxgX$8$`ah1kv5M2T|mfAbMn55Dk7bh<5J?BCJ_MPwxq$$xk7!=Yr^p7lY{VYeAIu zb`Tvq97I^phPu88BFDEuQG$t_{Y*3@&_r14hAxOTQFD@sE=xAi+apZ0 z~T6ZKzUqAg2I6uZnsJ911k!fv9bl_tU(IrQqyCYpbni9Rkf zQTF{N`r%;{t*J7R_hTl)`Z*NagnbU0=-fjlI`FEAroLsOzqOm_s!vRG^m7vxd}E^D ze=yN4znRFyg6SdeU>Y0{OnX9u3G41qt2r2DE|@+U9!%Ga38r7i2h+`yf+>)K32XAu z;Q0unm`b~Y$=f@Gw)%(A zfY1=bDgzmc}ga*wHA*>HXQx=ENTWKMbmK{Q! z`5|;;NeBh4386>Ug%H*bqG#_4p;`BZ(1+VYD7P|%j@O3J=Ee|;+aE$$SBNIO5JIoL z5<*Mg454q|51|`A4xzx$vH#a0gf)lA)fGZ1-68a;S11+whmsT;N?W5tX^=UTupSZ7 z@K8EDI+U&%A4*dZp=6#NN{`PAMcP8?-Lz0zo*hcR<%iPkC7~3*CX^c1h0^3r zp@emeX!(8EwmpHTLz32PkDiC03Y?9EUb*pB0U97>md9!ej5 z9ZJ{!5K378h_-cy(lGBZa`}hR+|V%kM|2onZw{lNv%?5$Bhk1qVf5PgFiM*gMn7K? zMw@1bQNsK%dSY=HVcjJ9FguK{EeIp;m0|SInlQ5597cyWg`w>fMp#pcZh1J2VynWa zu`Z0TcoTiNAK?#%QNKfBg!Pta^jl%{a(fu1euDTv52MZBgwcQ>!>H-EFv40)^tpF9 ztqBOH(6Df-iwP%dQaHVTb~xpa2q&!5MB6V6r!kYm=~W7+^vlEP_xa&;_mXfLvMiji zh7&Eahg0XuaN2l7IGNXnQ`2qXlyY}C9lJlAu)Y&T?+B;I9}A}$d&22RQ#f7s9FFy3 zIPH2ZoUry2eSA2aR&|7v=^x=#`)xQ){wbXP{(CqT3lW5Mp=f7d1WgK$pbugrsCWSU zhD1=!xe+vZYy@G=C|Wrsf=ri2P+dv{O+|8bP0}ji9x+ zL{RkR2->?Pf-Zj`g1&k*g0R*UnRiFf(@#Xu!UGZXgDZmWd?|v4yb(c%-iaWrLq*3w zji7DEB52I_5!Ci`1mzx&ARj4`cJz-VtWiZDMMTnd@sSj9RwO+!G?FeK8A;!qA4!`o zjwGyKMJ<;_l5I{Tomdn}52i-a`B{7DW=)wxZpRNV@daNIG^$ByHFlNoPG2 zNza!@;+cwl>LY3UzDOGXOeD28N7BldBPqNM$9XT3=6n=MSQ86;}MHCW6STBoiO^l+!gQMuhVNsMhI*Po;M^TkEil$x?MOaIVZk`uK0~be8 zOIj2y%Z?(c0NYEjeGRs+i=taLMbV%#?0;VrWj!24{i>pJizZuaG-2&7 zs!EQ=qC(Mh?7V2YeL^%1pAt=NGoq<5C7Q6V7wumfO;=?^(}@+)(Y(;g{?7W&4}zf3XYjEtda2{H85Suuol#AwW@7&<&IhSpAu zp@Gw5sC8xx<s zmeFtCu~Z%qOB5DMoiVX=e^M+>Opc|0jEE(yX+~ow#L~x;V`;;TSQ?QMOYbd+rL{|A z>FkVH!g^;^dTlJ3OJnKfwXt;VEwL1{IhI!) z(Skv7#D>MuW253|{squh=;`pE1w9Y?D(EzX&qnzCIJAx8NLmv|_3Ps3s!eg^RTf8& z-xo(q9*!fQsyM>BY-D>pj{KYAX#c@D$~Y89rq|-=nYZF7`*0j#%{F@ei#W>rHjZL` zildi)kE0?Xp3FY+^m<@CVLdlGJ1(By84yo54T+}_mU#O6*m&A>Q9O;E8c$g3jqbi8 zo+d7er*E!~rw23RiE`uVm%@0eS{+YV2aedS@l=0DJT2K8Pks-@(^KW~lwA`~5e@N# zHR7n~nRpt|5>Icw98Zq6cslp}c>4IGc)H_gJYoGf`ud;o^iWqkUD_Q_zj-B4t$zYt z8Ja*oF$sjVJ4atGNuURoCD5fS66kk( z0zI}WftIXIApctu2y4<&{+0wvd?10^9!;Qi)d@6ucLE)KB7yEbkU&_kj=Ek-pt?7( z&$|f}@L>WycO-$X{W5_Db|w(kvZGs1B+vzNB7N_ z?n^VhY%|l1%gu!K_~`3mGnHR&riJUw6tKxmFWhCO>+Um?2`?iGE8>qCHtjv?4Ew1{Nm~)&`_| zZ%U$B8369?epLQV`c3Kr?vihmf0cff3V>gLRN!aea^NRmBJd+{F7N~JPask5 zl$E1cyRF@pZgaP(n{{`d>^RwW(si=&r1NCiNykb1N!!U304q(NG@mq`WG6dMbew2A z;X2WH!g-?XgyV$$gbheJVLf3vVLo9x!A^7@?>OFe+;zP1xbt|CTz0%ro-Sv|^W|&h zvGOu`nmkV)ET_v6avHXsC(o6q%7f%NayVR9NLNT>GKsw z9{37)7Wg~x8t@44C9oU#0C)y?6}S^P20RQL2G#=q0CoYd08ayV0PR4a+#v@@0n!(u zf_y1o+77%dD!5uya6nY>xv1bV=`raB;C)fSQBlEWQ9-MyV74?{8Ub7^D##NRyeBI7 zOjPiYsNgA4L7k}Jh^QbzRPd>&V5z9!T~WarQNc^1f?1-1+eHOUqJnos1rLe}YDERP zqJkGi1s915-WC-M7ZtoEDu@>qTrVovFDiIbRIo%;a7a{eo2Z~hRPcbPV5X?x1yR8@ zqJk$y1#MEB?i;0ZyGje;KMhzhO}73>l8 z*dZ#26%{-#D##HP+$ZQ!CFpUfsGw9-aI2ulctMX!L60j1J?<6s7%J#dA?Q&q=#eex zu|d#dm7vEAL65D19v29D+#~3*NYLXJL60GV9?JziRtkD-5%h=_^tfBlg9JU+3wkUR z^e7SZ7$@j)v!F+ophvQx$2vieC_#@)1U-rcJ#G^8@DUX_LXb=_fcFChaPrF3C%Z(dF1;2_43Pc6Jhze3g1wV@lE*JFpNzmg*L61&BkBOoJ z-gep^*{+Q4!9Y}0+NAsqJm2#{EQKZ z5*6GeD$wpXAIV2r0Gux>C=wN9N}1Ah;A~Mrp{O83%8=#*+I^?L8zY5l4bbk(v7&-y zqJn9nf_b8X!J>k6L5~PQk2FCKZ&86wR4`Z2<2+HpR8heoL613t9^rx>`r5!t7-PT` zK@WXxks_RBz+^#>(Sjc6M(AJ_^ms$Ip5*Oa-fsO$J}iGHD&Xy3-rhYZDtKK~z}vpO zy<0CTcuiEGwRw5l*4?fZUvcAQ>1B7jRBN|BE9mivpvN%WacZv#*i3%PT75qa~ z@U*Dl4pBk7s32cd@P(kqc0rHFLMY_ zNYF!TA9#)q1WUn^dvriz5+5u0qdvUSi|_j>$DeV$7k{_h+lx<@*U3@xO|sUTKU*$D z4?fb}hwnJ9@5Q&F51%HbN$!5UG)S5Qgaf=U?B~|fY$%k z`rX5&;TWw5kj~iumX@IB+$No_|9z%@_XE-cf2!ZD^?S8`bF-j_)-V6B_Q&^%3bcN< z(ks7E?PaeP^}XpQ1g+n_QB?46_os!&b!Ze7^z^UA``pm_(N&@Xr8iwF-l}4}s6gL) zt~B(XuQc?Y?=|$EhZ=g%6+(;w`rdT8;43O{iVF0->uf{sdV`@iJ;TtO-fHMgUts7> z-y^IN74#Ps=zG_T487}H487|ihTipZL+^T}p?AH-(7TQn$_&u=uF255UT^4KFEsS7 zOANj1afaUY&4%7}mZ7(dpG6wrBk17}^w9T~7Z`fWnTFo*`9hHa(*-^H33}KCJ@mb2 zZ$t0dCUhI{y`aZQL61)aJx&OE{7ul~xS+?!f*#)rdORoS@rIy>@p)b^=wa-CYR`A~ zc>ihp|4Q$_uV;OmI%0p5+&g9;E?Ci%O}a zO5%Ozt>`1Kl2^)mLk4(0HAXB~ z!TZ_SfL5PvkTys&fO|v*7oh*G^}TsN-Pr$LC@oa_*Wx%gZWa~rezw-P=KbePpa{^9 z-bEWm@9q|~dQKV5EfYz_dQpMa&*pt^-q+TTz9kz*-_{vM-=YMqAFuV>&(uGkFDlUb z^Z#~#T}*dF>u2k0D<4B`rZfqjUvoultxfN|&nkz8@A3tI)>nwEp-mQGwPkzg$%Clc<2d@8WIVA4LTd z1wE8r{2gj9zFpLh-kmG_V1Uxg&lk6=FxIce_hyd?dfXr?I9-2VdvErh`hHB`yT4d? z$^fljue~ojAn5VApvO@`kIjM}`q6_t;WGn92zuyy`+rylsGfwBvfi=)e-g=)fUE@BaZq@BTVr zrvduj`uzeQ`{v`_CqxDM*1)$yg8^R(dT7sg-hU5~lQ53YWOx5v67aM)N!pWrfqXtj z^?7fbzcG)*8*^*7*4v&6Jy;qnr31Xb9UF zd*EsM+gkrRRM2CjpohNqJ;2br77e{?b5DDGxu`(@wrb@W+rRp^M`v!|>fi2U8d|4C z!h8ett129LLP(B6KnTb@?@F6x%qeIKO`AOK+ZJ&q4k$~u8+9VjS^8omZ;zo zQ9-e&fVX4j0}Dh2nW6&y+p;tF50p{+Y3iu`Jau&aJoTwOSIiLfFkY{zf*$(O_(6uz z_&J8RabAYe_9=$Z^U;EGebG8s?^pfXIVQAqD{ttO`#4QhjO{ODduyzq$6!H^L85{=qJnV4`;;pLJ;sO%ricoR z_iKvb{p)}FK1I9#8{M_LSy#6+jL$Z9^P1Y(t<7|D&vR18MLp~4(U|YV$3DYE1*fa8 z^|f=Tp>`fANTLF*K0i}^ZLANc33|*E^f2ZpKY#vQ3l>P{&@~C6+nTSw{p_trwfpQmK@WXxIo0s?^33(+nci3Soj<&UnB8@# zR!(@^huD)Loq*s|NYtena9u1 zMLRF8L8LwZjph1G?<@3gC(Q2W&mX1#KaIa9Zqek1K6l_c!{7T)ES>nHeBML^oA}+$ z^2D#E|H`%JpTpCk=(gunw(hyhKJlHlkq2*xo%-C8xHS`}#y1>%`i`@nJLd*Aao*Pb z)`gSfCQcoaI`M`J1126WxL=LCL*2jgxtjHhC!X9VJ=gwJ+Qbhw{PW;PF+~%_BIm)I z4qQL6_>%DlCw;JXVtnKC&z@+#apJA7p8ag*Z#PbiFVBAFj_w;LPQSkJ>6)t^+QXRD zS~Dd3*-be`7c6f8`t<6vBSyO(Xnc43 z#Z^;WmnWIR?|gWMYr@cB$v^F$=Bk^xHgwsP^IdoUx;5dclFyM&mzriZ7fyChhk6Oe zyo{afei0gL-g*3;X*+YM;a!-g{0Y*?G6PSS*WU@hpKQGBZnJ1K2=z78}F{v$I(;8^VUNbJ#F8 zoQ+`TG7B5YMzPUs3_FjFW#_YT>;g8PUC1V|i`d0%BD10xO=eTrR5p!G$7LZlgI&rl zV>8(-Hk)0}QrH!24x7v7vH5HPTgVo%E7?_SFZe|<9J}`-OF}-`R0?k}*_$GWttCg0J9@SqCP}#16ywTom3A z#R&=M84keQmBE<*H&hsgQ45PO3Ugn^;tj`mVFG4NSTU1jD&8KDa4Fu=&qh0K4%!|I zFhBAt^zyI9n}Kxn1+p+da|PxQTMW9xfAbU zw&3m2eS)qqoazunN%r#Y=hNTU&p#kA$P^rcpLIq=Mn%WO#>FQjnv(_$JZsS4vy+Dm zJ!jbP5$9TPTZ}nx?D^v^7=Ph}i!PpMoiusM)M?W%p&6H6HgneO%TunHGk4zn1q&Bl zdDY@2ORr9~rKK;+$jn-vowMSa+`Rk(`?ZBd#U(3Om9D<-`ZYJKz46GpUEe?V>=DO< zFK#*Fc;twq`iR4M#8Lk0h9i!~Lr_m0+Jfzep2a_RxNS!q4;*o9KjL`!h@;|&rBvcBR_`4Pu~L-+8o2M;whJDba!E1D~ttD1K-S2yo$u4%4qu4{g*c~|r9=KAJ_ z=Emm7oA)$7(Y&{LU-OgA`;AF zXp6I@yrrV0vZbnJM@x0f&X$^%+LpSO$69u^>~5)VX=rI|dAwy$%M&eoTlTd)*|NW- zspYAb11(RtJk#=Q%fS}4cIOvsMt)AQxiGCb)4Z%8e`RK2aVD>Eax;csjDNm{>MFmu zAn%M-)$HPeS)P&Q5r05UorM$G#5$2Jo_|%gp$%ArB z%qxqKvXUW5+HYRm>7P9hB__3Kb$)SnDoCKL8T1w&(FUmzhG6q*Y6?RnGZ>qP#To-zz z$#|?6)bO7Eo$9%H`Wbbhml8jI8`zx<%f<0T9A`YN3Yz<+!1#VIzvgE4tk5SU+MC-`*Co%+2fHzu(Q7ufNXOoaz*L|M1vKI-hgJ)|fo7 z_4DnP3UFD%3(vd<9y9poYy77$N5}cATP96m&h}dtj#)W{wa#9i_xxj1*hP2SjxPFi zigok8()fn(sVUzddGBbHQh7)=ierNDP2Bp)~I;P zZ?tONRTG{oy78mS!%KR1(5s$@5}r_RjXT+W)){Q-1t|XpJJUXYb~}&v&xTzwT?yNW z^y<&(R2Tn^GcQN|U_2xJVS%tXLg(tnRw@Q+6tq~-~|Vcp81xqJH?OzBB5rNg0Zcf>uYYyVld8`^^<2KQ|b z=)#-!=-q6PK0ZgIetVn2?TpliPcgVVFVydEwdmdE9ou#3NqI;gAIsOf%Zl}G=PJG1 zvQqDM?9#hCEA(#XIr{ub8K8HU4b{6%L-cNztamqlqmSS5tKMDKrFWZt(Yx8tdUx4w zz1#Gd-p%R^?gqWPZMEL**r#`!hwIbNe%Eg=JE(WJIrMJ(>w0(FXnlMxQSWxP>%*7b zrgwKt)Q7hQ8r(be<)!mMz1w!NzF%W>yN2qwI|u09*4y=N#aGMNnv%!7IlquuQ$#XJSjv8j3T#}Ppj82w$*4!)Sj^f>+ z73fI~F^?QMV$=xrS^ih}zw+m=^6=OF@>l(!)aZZJhkwM#6Hw+FO-Gt>7k%Fgl=J;QOtNIia247T7N6Ht;X7Mrc0MX%TEMv<)1M(dQ;;Gx#%D zJ9H?dd|xc{Y$u{4|)I0@ztZ2=#EnV?3b--_`2*bu-VY;a7r1*4V>6*KeTIDjTLj$+E|`bB zg0_SA!R$Od_>1|-D;@?sVFB_7+6ulDwjMeKeBnaIHgbRP`>-Dc7Q*Dxu841#}_l!%EK(d^R&a0u@&ek-8J5ER!AoHCpl#r4*dpjg@BzGYUjpp{PhHJeF?0&}9hd{U1N`I~ zlzScq>~#Z1(4bA=5$jM6p)KGNSQE4Z{CAiOx&!<(tQ8v5me{ge7<&!c4!#}M23-bz z6!s3Z6TBbR4($TJ5Bm_h1AH9T0gcH|Y%J_3v=zJpb`09ibp`U5Yw)j6AkTUDy*Ttf z@e)wb5hwT& zSRAwy+zd;GZUesuvp{!%yI^CWnYX|a{RB1++6-P|64+E|8@M!BV2hv~;Ls3(87V51}34t0E8=v<-X*>?i0l@Jo>bI}Y6j{sHEniTI-g78xV3FlaOQU$9}^ zKUQE~uyN2Puo*UihXI@7kmuYVyem;)DbS7JFJRfwo!|m9@*mm`u1!Mz^Dy9U*m`I- zKw#1!ft5jvA>>PphhaH7Bfumu^pv~a(hY9Q(Xe+n{)&<=L9ywfKau)o-&%sR4E^yum zfki>v!E4VI*jdmHux!COK%2m$U=yIN;BPKOzCm|_|1k+=muv9o%LSIf!+_Ia8=>vs z%oOAg*Wj2r$RB7kcp$71+5#R4+Y4<4zYJ@FZUcV=YlZFr@0yFU1lwda^Wv<mFknsX_v5!wMhu>yGx&8|Tn=As<(FyQZCuR(W$^Yf6m(01^9uy3F{z(@0upF9kB zOabyR8^;1Kg84w(z}72A$KzD$D zhOLKYYfy*WfN~3M1`mR5g|>jpVB4TMe+%0V-3eZ@7WX)`4O|V|1>Fd~_ePXqXean1 zSSxe~c#;G6HFOGiJ*)$|4E!$a7!Ly;aTCfdv<3VoOwNHnIC358H)u0>5G)Sb0)7-` zhIWDC)J{8y-urb^p{P0PXKWHa-Mx@A= zK&OBogcWmta4T#L56}JLM7AE<0sieQk!^)$gG6>XOJpxVcYwDn7nytw_62{jLS#PB zo!~F?L^gqI@b54yG|Ly+$Rd$Vg|>o!huOG)vB++Q*`dq8!&V{<&=#CbBLb27EhA&c(67bGC`h1Z@K! zen4c&&>i4O4~c9XbP9M=InvC-gRiVWp78MCuV7oDJHaPvkv3>nhqOJ0<3gLjYj@$e z&<^lTyK$^M!~;HAk7Gfz29d4aC!)=ZFyP(Kh|B@q2!85Wk-4B<;9C!h>^0~zaL(%@ zYlpUjC%rGSsC=XoEVPSk5wr<>4=e-P3EuG~@)o)ge8txy+X!s~S9~L~ZQLLHVBZ*F}&} z=OH}UPn4LGYw&(pBeV^%Z0Xqe}JulX36-3?GTA=gf@XU3`Kf)c<|llNURCk362;p zu{LNk`1z3%I|khb{(cl@<6Mht4Q?4NF%xtf_@;{`76)Aho;FcpW1v&OZ^Nw69pIOz zOKc_&559*amI3Vqe>Fp5#n7GLpJ5JYcB#a?VC$hx;BeSRXft>aY%{b4d>*U}+6tZq z+X|fmo)6mwZ3Ab*wnN*&B`_zn1AGgt3c3t@FRTXI3ElzQ1>FeV2Wy0Ofe*p8yW($#a*e+-jc+w(V3+NQ^1y>@^p{?LK zS0O*4ZD1Fy9h&pP#mFn}5B?hV6LcrI3&x5N{}PD}fXUDn@En*wv<*DWhI@_sgJ;5q zL8pMTU>0aQcnfR{v=cmXnZzbQTfu=D*azAKmNSt*T!Tl!=J7D#BUut#1lrt)&oBox+bgktu=UU;a5!uuv>BZ7B=Q8>4&Dpf4($Rzy&v~J*Whkg z6Etf=c$kZa2fqVrh3)_^ds;8d6y z+6KN0b{2FQIQSWqF=#V*AZ#481^ggv0<;q>9>jeIZ30hw9%TtS1^hfL7rG66MKj6+ zv<>_vY%_Ex_^lSyhtM5h{})gPLYu&gU{yRkxEodj%??Sd6t)-I0e%YB1nmN!^CIp$ zXbU(C=7P3^e}laM&0dn&L0Bsf4{m|I25oA^GX>TLZ3Yj9y#s9lp9gD)wt{bkeF$9! zcEOH8bEcPZy`fXUEwJOzZQy0EppICHG=TA`PZkAj0vEx|&<^kevdog9o#4YTg6;q( zdC6=Zv<1AhpUiB~ZQyTwWR?rv3BIkr%u1olz!&?<%mHl$SNqFsBXlG9t3a7Kd3f+A zK{9KC?f{>U1!7!0Jh(AfX01FtxFbYnAM!BZvqNP}R7M)WAHja&{@|lgGCL042`-M4 zS=cI^3%Da*X2YO4Uza2^EB6Pd4v<+2v<=J#%4`WV=MGpl4-ZZmgt(wN-!=s20$m1f z86&f;(3bOLwj8z#+7A8(wimh+>^~Og0&N1XJzr)oKs&$-X5(C-ZQuo$%dCrQa3##A zls^|_wkZYsLzjWyf<-}haD9c$%v^(~&cS&>r+`nu#z3>VGJ6&_71{-ko-ebR&}Q)9 zg)+;4wtz2QglhzC1#g6HhAsooze;9h&^B=XVq7C=JGf+t%xa(=;0oAY=tl7JrMPxH z40uQy&Jo%IUIP0N+6K-`N1pO9;J@F1Jc8~3=iZ3(S`B~jHkbw42|ffH1KkGh-YBzi z&}-0`Q#d$3HuP*4!&e7&KEib{5-4^ zx(z(*K9o=H4{n0_T!(7}K6F3w0lE!5bQ`WIwEaPuJr0||!+>9dO@;0Ne-0z)|LPw` zSefA8kNHpbvGlWf+r3g`m)OSryqW(fx1URH6VVfdpV4IW71P!In+^N-ms$T&UKSpk z&=1d)b&^GNA*{BK7T3T)Hn7x>#b*0rC^ee-Tl{Rk_Wmh8F7GzEL+lj1CFVU@vFsl-CFMHaZl*V5nSWAB&Z-J4!*U%TPBJUx@u^muA5P5rU5)jFizCfVI- zMxEAg6vEr^qg)<7UE9~gpYMzM&S#Wtk!+%?C*AzmS~~bSc!|tw6n-46v35*vk$KO- ze!BQQkL97YuzX)F9v?5}v(9~NyO3fyCJ*PC1{3O`QZMG0Ei>;uI3~X)lMzN^Elnam za)O-ixn|n6)BJh4S!cNJ+P<7a`85qa{WbN>8?HU`SvxONe`Z=|EENc=ZP(cIxTn)R z>>T8MY6MH|8o(ADOJcLy&1`CGBD=6DfsLw(XG6BdG4sY)7Fim@g0iDoKj9Lk-1l{l z@NzQQqnv2@bGkGK_h-Sv9HuX+IF~>l7C1`p>%Q0cHJ$8nO|^67@lWm}Pk20qhIo9v zneQBLij;K$d}@0m}hyY@W1c3gii<}a*gO76kmbAMki=9}(LlTr_Rp64H(i)THi z9mjKDu8noFR*!ks4cfjwXcwld&jOylLbYD=JdT!MF}^Hj8`|g_Q4g2m-3i{&dKKbY z3HTU|1;;f9;hyqlF{pFGvt?#F(ns0V;^O5X-Q%9(_dvSGJ)oVFAL_5k{VYmtk7ICu zp61DFnz@^wSGxM_@YGry+PP}1?Zclpygt&xd9vrV;(AUW`Qn*J+P;0&ZN~DarQ>w> zPP&>V&+Fx>jrE1m?I)woSD!PU`)O%3mOalj^DtWa`15BJ>Jnoc!FUgQ?qiHgJEq2- zd8zpskLP)PjmP%PbI)*ET0M_{O1>D%lD3bQ4o~h$lSjM6Gw#0fKr7q)9JTw1AA>*d z-SzMJsDH0Lwf^mEKV#bYvzWI_GZ^_g#<= z3lhSaXA4U3^JaeV)Al&UeY!m5Ww20vHhCW7kHTxuvOg2vovvxU>GCY|OA^?UE`K)n zm>;{e-Iq;j?a#(F`LJ_q`k_7L%?57tV)3PDt0Rv>h1gT`-+0cR>G@CN=I1}TkL$wy z`?_BLZutK+eW?j(iw2-A>W{W4$~=DRd|?yHd=1L{Hk5fhH{=k;s4WopKhQ3m#)L<()369d%As2mv5&F|3`VHJwyJxS$oE6Z5gdC;mQ2jt387?=H;ue zHnSGrnb>oGW7xjN3wYj)LOb5(W#=t-cOPquTAvyB=XvB=&W!B_j4S&Vs^dS#{sG@M zO5Nt!58`nek8`@~s9hs14|)5&(4+sTZP!@q|8Tc<9k|wx=Xo!4e_j?Rd-VN`{R7_a zGLA3Vu%Bmpm&fCoM}4(Nc^K__bM3jmXFIyD@r1tm`hEFn?OWd0ove-K;aJ?A?&0Rg z*DS!B12zJhiFleldfo?~dCT`r$G+jd=ixeOPpaPQ6z)3+{@PJ{{e$|Q7bNwJ zrn%hXtj0RXvu@$XtUz7n!m&Ix&v&h?@UmIq*#kgW_qb{Jsd=oOtLJ&~GH|;3%H22P zW3Z8@#^sIgh4zdJA`TvpXS~|6JnM7qo-@`{JS@KlPj?Oby8rm~>TAr?Sm$YVsAt;T zX+_>nR`Zr0cU>Rt4Ia+(dR!ca_OA);-ypPq`Fn=|lxP3G%k$~Zg~!S5bb0|!@8kIlS*MP5@#k=%$8)%^`-#_Ap6^Ap zbnxTA{`&jBGY6hu`feIe`PKJ%yRYM;(A<*Cyjj&2yf3~N?;SD6h0kr_^HumX3yjaT=JTTXJTgAdng3>n|F(wz?uP#khuw_$;AesH-{0`x>G0pr@Htsl?8E1C z^LgC-H&A?D6rV@N=R)&&S}AwK;{ zpQCQUK74)GOH`e2zY!o6qO=^ZCkrURWoOZxYTE`E2Fa3co$$^S}6fIX)kn&;R1{hx2)9jnI6aIiF8v#(sRBIiHKx0e?PcoBzg)&u`-Mo%rwW z_*`#3$D7ZS=5w9+?`SND(}wVTemkEJ=iqVT`r4uG(0r~tpZDg1=JVkh($9Y%#(x)< zk8^0cmVV}b~Vcjr4 zj8VnFhQh|ero*m;<-%6MZia1vRlxSaT3~O%j>3M01w4RpQ`mG^2J8mdov?D)e%R}< zk6@iJ=|OK61RDT57j_YBHp~Xghur|X1NI249`+op4fYxAJJ?BB|A)L;6l@UeJlHhY z6|k#eD_}RkZij7$?S?%EYlD3T`wn&zX4;N%CD;(yIM^ky1+Z+`b+FrE55xArUV?o9 z>x6kf?9C!zNwDFt@i2ldfaSv0!0v)oz#3pr!`_7b1I8ZlX3?;*um!M{unn+>VD+%) zVXwmu!;Zmzh4p{bn7KBvW@uG`fd2y z`et?qzPNrDE5ldUx3GKg<@I~nefawNHhh2mLG}>7!TvD5!rt?x{o$4o8M*kTyZf{I zsrVc+J`r7rZwBjpO49Y7%d!jd?1q5La&zq3PRnu&@abqZ&SeGm)yA+Tg@u{<#i<#Y z{DaDcT1dsIcco?(rseg-rG!xYQb&*KD`@K2F?w%9^o81|wsG{_%wmtIxhvJ4W(;6R zduIMJ93P+4&dC_99mvx!wI@~ZE#RMD?l~Yl_}86#_PVxL_3l(y$n&IUOKDEArn55B zit+txgR^JPtjx@e-ffu~MVXn`7~LLu#)I=99{H7(*L$qI;@*h!ic|5q@t(Ng%rC%~ zz}4%Ey;6%x?Dm4f-n|P7^U@5i-ss#LbulVFx=0l-W4yd9q_1`t3AOO_q~g>~o+sPK z*4}dBj!%m=KeMzq<$Sk{wBj_~QF1f$mltRE;blCa63{b)d3^SQo&w=MFx$$N{%AtEYZYoyPE4 z8K>;xQK=|9<&^eTGrc~i#KeOcBg;<9&&ch`3HQ#5mvL{^xAzvnSMJmCb^V@f^(eBQ zd36b+06&T^rnXIqtOs)GXE99?9$R>P;J8BckVyb}tB{ z?p~OQ!z{~8O)tsH>V3#*zC7gVd_4}R5AKnph7J0>?Q`SlV?8Cmv9badi|DOZ;KqZ? zP!x;OvWzEJg!;`GY8gJ@tmcU4Bgy^j>AjZ>k0Q5I_vr8S@i-3;&)y5dlg`)g@qE^L z`sw!X4eF7%JhZzG=}oxmVc6GL(eNGf3JNnlD;(~pzlYsE#x_-vJ*($v#fT!+vmPw! z@#$?|7)vkQsE~T%P@c%R3DrhcPZ2H7?0uGV?Qu$OXKzNjo%}GpHL@N$&3u^*bRGUL_)BT*ojX47DU9>% z@n&5feq#=xPxu7p*27=>n+ZSDzFxQH&)K5-lgc)gb5&le@|`MIsk~R^R+T?c`4^Ra zpHz-FKxK={6I7m~@>MElt9+fxx2de9)v3ClRQWZPKT!EQm5;0Jy0%u{|K~KEQ%2HEPbC;#^ z(F!{j-b&3X$zR5%aNoT2)MX`wsaUs6@nrMhn^Takx-#HG6R4yplXp$C(F8}Hu++4? zqUEWXe7pmrRH@1k5=N^u^(sq6$b5{Pf6h{~GI;NST_&KJmQ#$&o5!9OQr$g-7s0$) zn1g0Pj;O5Hc&n(a)cAquZiy|+!yNK|x^;dIcZ`uzOY+@&KPRQG%5um364Y{Zt@Bqh z_9nF3lO@V&>3pCgQcf!_$immjn)Z^bF=Vj)(&+JaOvg4i1U0m@VCoAI$nT~JT$!O2HliVWrG$Gj`u6gs3wQ`lu zBYIg;i0EyuiVJe_^)p44|r zA@2V#Szgh~WrfAc*(KxLG@DB^7fwo*-!Z_ELceq9jl6twjiZD(4SQQP4! z{woLm%7OoLbD#|07C`E{>hRBr-;(3iyV;rSv^d8(txj^LI2So>&TOaMS?Y8+H#*Cl z+ni2kjkD3&kuwcJ*oU2ZQgEq9b} zEH5kHR_-jXDQ_%qDtDE)mbaC+mv@vOEAK4tDrXfw6{d=)3Uftrg{5L#g|&hzQYscz z*ebFs>=mUIjtXZ*O+{lxQ$HdZ!Ox++^M+bY{DJ1UP=c2=?~pDI&TRF%0Zxyn*CuF6_PRVh`A zs%%x+RradVDo54EsZ6ODpyr&Ra;eiRY%pas?MseDz?LChiOOD4)c!W z9hM#Ac35|qced^9*m-Pc=T27RQ)8;Z$1&J5$WA3~<0?CL9NW>kqiYAN_Ng{iM^&4v zldCP&r3k$ z^&9KU>bKQ9>uc&8>znFb^{w@7_3iZ?^~dTv>$~b%gHMC0A*#XLklbKt7}sEJpoWx& zMGdxw>;`*7X@jF-V?$ZPwgzWIO+#ZtQ-iAkkz2j6o;Ut#eQHg$QMKmUwa02ZYrAS$oll*qE~?I4 zmt1G58&_woqq>y3MRm5i>^gg0X`Q2PV_jL@wmN5BOJ6lb{&XV`?ZYsZ;&)%)O_l5swSbIHbeY{WU#ApNZk?G4O~`6!6X zS>dW^t!S%guW;^a+~wNUwyR@T=PtI}wA;MfvfH{lWw&j&eYazG*>30V#@(*nZM!>m zckX8Orh0R|rQTYfQg1^ZJCMIlFg^#0a^J-eXZVw`9n%7_ay-7(?GDTLo(E^I z&oKDdF;%J8XBvFkbw2ap)1>pU!6zBkyBD9rh1B3aP6{QQ)2%i+4&q4Tf z=#KRUd|XI=@3Fpu&oP~kgxbxbizkTJce;4Y@Y$&I83`Y!&gWwIwCQ4=4WCwB%$Qil zT6KG6^SyLoFxiT=>B2bRW6}9M2%k>fv3A2}oGzXw_|)k3Is_l43-cCyqI6-tyz3^$&g=vA0Rp-O6Uc1icWBBmD-lO9)gsc_T>l2Ec zV7lB$hKq;m4TBH$F-)-Y@ZnSZnsmp?f{#t-gQ<7Sr1QBEJ`SDFX88EPdXKdWt{Pn! zd@hSu;T~aLhL1_NR|j1BJLNn09MkRfFZgun_QK?SHdB|+gWxkx7iJ`U%5**#!^ffX z!N-S~Rp+xDK2f@|aRYov7iJ55Qgl8$;M1t{*#{pptT%s};VRXId7Jy_!W@OmrStg# zu5G%#PQs^47Y08sV%fSdgSd|_%oz9_(}kG~AD7N&4ty5r_OihzS?80>eRO-RfzL)= zm`(7Z9-pmnVJr-@r<8Fd458(uj~&DRUz3S9)VZTarKVv}3-3|YaD9xYDG~GxWvNd0 z_*H5)1`d1UEXvMZm1fULO;aP&hHMPMlyL*RDa`5#sSax?aciSgy$4pt%@lXvgj^1%w#qA!i!YGv*)ICtwvxSdZDGv9m zc}4b&VtR~@DqE1=-tk<;%RP9fN@dtlai~LrilfgFT4j?q_@%f~Fyh%W0H#Hxj2HF> zm{H^&|5EpNkNYWF9mGpboiS-%YG!^$YN~p2eC)3$3wQ?oKXuwc4#OY}MA0+$5V=6q z+`q2KK*mK{~Wy8UGRYA)Nc0DJZs843}TH-3%jr*76=ecfQB-1)m#M=b*IX$05pfriT tm8Hl;xqi7Y1E-e=j2OQ)Q9`fC#y=;c=R|p*`p2c;iZC{AikH=F{R11B&DH<_ literal 0 HcmV?d00001 diff --git a/win64/libs/libmpg123-0.lib b/win64/libs/libmpg123-0.lib new file mode 100644 index 0000000000000000000000000000000000000000..adb2935052deab32807e914658674da09724fceb GIT binary patch literal 35362 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 OBhIG(e^-ozrv4wC`5@K+ literal 0 HcmV?d00001 diff --git a/win64/libs/libmpg123.dll b/win64/libs/libmpg123.dll deleted file mode 100644 index d97e94d7b385464b24a8c45cd1c1700b0adc40ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 290816 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�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 From 937d14d529a21b59fe1a2dedfe14f05614fe3c50 Mon Sep 17 00:00:00 2001 From: Yun Hsiao Wu Date: Mon, 24 Jan 2022 17:47:48 +0800 Subject: [PATCH 4/4] better boost source cmake (#213) --- sources/boost-source/boost.cmake | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/sources/boost-source/boost.cmake b/sources/boost-source/boost.cmake index 01f4910c..6f4dd6e2 100644 --- a/sources/boost-source/boost.cmake +++ b/sources/boost-source/boost.cmake @@ -1,14 +1,12 @@ list(APPEND CC_EXTERNAL_PRIVATE_DEFINITIONS BOOST_ALL_NO_LIB) -add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/container boost/container) - -set(BOOST_LIBS - boost_container +set(BOOST_LIB_NAMES + container ) -foreach(lib ${BOOST_LIBS}) - set_target_properties(${lib} PROPERTIES FOLDER Utils) +foreach(lib ${BOOST_LIB_NAMES}) + add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/${lib} boost/${lib}) + set_target_properties(boost_${lib} PROPERTIES FOLDER Utils) + list(APPEND CC_EXTERNAL_LIBS boost_${lib}) endforeach() - -list(APPEND CC_EXTERNAL_LIBS ${BOOST_LIBS})