From 7f23e1c77abfd5b65b8866f7d395ad3e51b34455 Mon Sep 17 00:00:00 2001 From: nu774 Date: Sat, 13 Oct 2012 12:49:54 +0900 Subject: [PATCH] AFSource: CAF tag reading support --- CoreAudio/AudioFile.h | 8 + CoreAudio/CoreFoundation.h | 35 ++++ afsource.cpp | 95 +++++++++- implib/CoreFoundation.def | 364 ------------------------------------- implib/CoreFoundation.lib | Bin 436380 -> 332800 bytes util.h | 5 + 6 files changed, 137 insertions(+), 370 deletions(-) diff --git a/CoreAudio/AudioFile.h b/CoreAudio/AudioFile.h index 4cad57b3..78ceb4cc 100644 --- a/CoreAudio/AudioFile.h +++ b/CoreAudio/AudioFile.h @@ -378,6 +378,14 @@ OSStatus AudioFileSetProperty ( const void *inPropertyData ); +OSStatus AudioFileSetUserData ( + AudioFileID inAudioFile, + UInt32 inUserDataID, + UInt32 inIndex, + UInt32 inUserDataSize, + const void *inUserData +); + OSStatus AudioFileWriteBytes ( AudioFileID inAudioFile, Boolean inUseCache, diff --git a/CoreAudio/CoreFoundation.h b/CoreAudio/CoreFoundation.h index 95128ff6..60275ac4 100644 --- a/CoreAudio/CoreFoundation.h +++ b/CoreAudio/CoreFoundation.h @@ -9,13 +9,17 @@ extern "C" { typedef UInt32 CFTypeID; typedef SInt32 CFIndex; +typedef UInt32 CFHashCode; typedef const void * CFTypeRef; typedef const struct __CFAllocator * CFAllocatorRef; typedef const struct __CFString * CFStringRef; typedef struct __CFString * CFMutableStringRef; typedef const struct __CFDictionary * CFDictionaryRef; typedef struct __CFDictionary * CFMutableDictionaryRef; +typedef const struct __CFArray * CFArrayRef; +typedef struct __CFArray * CFMutableArrayRef; typedef const struct __CFURL * CFURLRef; +typedef const struct __CFAllocator * CFAllocatorRef; typedef struct { CFIndex location; @@ -33,8 +37,39 @@ void CFStringGetCharacters(CFStringRef theString, CFRange range, UniChar *buffer #define CFSTR(cStr) __CFStringMakeConstantString("" cStr "") CFStringRef __CFStringMakeConstantString(const char *cStr); +CFTypeID CFArrayGetTypeID(void); +CFIndex CFArrayGetCount(CFArrayRef theArray); +const void *CFArrayGetValueAtIndex(CFArrayRef theArray, CFIndex idx); + +typedef const void * (*CFDictionaryRetainCallBack)(CFAllocatorRef allocator, const void *value); +typedef void (*CFDictionaryReleaseCallBack)(CFAllocatorRef allocator, const void *value); +typedef CFStringRef (*CFDictionaryCopyDescriptionCallBack)(const void *value); +typedef Boolean (*CFDictionaryEqualCallBack)(const void *value1, const void *value2); +typedef CFHashCode (*CFDictionaryHashCallBack)(const void *value); typedef void (*CFDictionaryApplierFunction)(const void *key, const void *value, void *context); + +typedef struct { + CFIndex version; + CFDictionaryRetainCallBack retain; + CFDictionaryReleaseCallBack release; + CFDictionaryCopyDescriptionCallBack copyDescription; + CFDictionaryEqualCallBack equal; + CFDictionaryHashCallBack hash; +} CFDictionaryKeyCallBacks; + +typedef struct { + CFIndex version; + CFDictionaryRetainCallBack retain; + CFDictionaryReleaseCallBack release; + CFDictionaryCopyDescriptionCallBack copyDescription; + CFDictionaryEqualCallBack equal; +} CFDictionaryValueCallBacks; + CFTypeID CFDictionaryGetTypeID(void); +CFDictionaryRef CFDictionaryCreate(CFAllocatorRef allocator, const void **keys, const void **values, CFIndex numValues, const CFDictionaryKeyCallBacks *keyCallBacks, const CFDictionaryValueCallBacks *valueCallBacks); +CFMutableDictionaryRef CFDictionaryCreateMutable(CFAllocatorRef allocator, CFIndex capacity, const CFDictionaryKeyCallBacks *keyCallBacks, const CFDictionaryValueCallBacks *valueCallBacks); +CFMutableDictionaryRef CFDictionaryCreateMutableCopy(CFAllocatorRef allocator, CFIndex capacity, CFDictionaryRef theDict); +void CFDictionarySetValue(CFMutableDictionaryRef theDict, const void *key, const void *value); CFIndex CFDictionaryGetCount(CFDictionaryRef theDict); const void *CFDictionaryGetValue(CFDictionaryRef theDict, const void *key); void CFDictionaryGetKeysAndValues(CFDictionaryRef theDict, const void **keys, const void **values); diff --git a/afsource.cpp b/afsource.cpp index 1d4ae5ce..ac980abd 100644 --- a/afsource.cpp +++ b/afsource.cpp @@ -9,6 +9,83 @@ #include "utf8_codecvt_facet.hpp" #include "itunetags.h" +typedef x::shared_ptr CFDictionaryPtr; + +namespace caf { + inline void *load_cf_constant(const char *name) + { + HMODULE cf = GetModuleHandleA("CoreFoundation.dll"); + if (!cf) + throw_win32_error("CoreFouncation.dll", GetLastError()); + return GetProcAddress(cf, name); + } + uint64_t next_chunk(InputStream *stream, char *name) + { + uint64_t size; + if (stream->read(name, 4) != 4 || stream->read(&size, 8) != 8) + return 0; + return b2host64(size); + } + bool get_info(InputStream *stream, std::vector *info) + { + int64_t pos = stream->tell(); + stream->seek(8, SEEK_SET); + uint64_t chunk_size; + char chunk_name[4]; + bool found = false; + while ((chunk_size = next_chunk(stream, chunk_name)) > 0) { + if (std::memcmp(chunk_name, "info", 4)) { + if (stream->seek(chunk_size, SEEK_CUR) < 0) + break; + } else { + std::vector buf(chunk_size); + if (stream->read(&buf[0], buf.size()) != buf.size()) + break; + info->swap(buf); + found = true; + break; + } + } + stream->seek(pos, SEEK_SET); + return found; + } + bool get_info_dictionary(InputStream *stream, CFDictionaryPtr *dict) + { + std::vector info; + if (!get_info(stream, &info) || info.size() < 4) + return false; + // inside of info tag is delimited with NUL char. + std::vector tokens; + { + const char *infop = &info[0] + 4; + const char *endp = &info[0] + info.size(); + do { + tokens.push_back(std::string(infop)); + infop += tokens.back().size() + 1; + } while (infop < endp); + } + // get some constants manually + const CFDictionaryKeyCallBacks *kcb + = static_cast( + load_cf_constant("kCFTypeDictionaryKeyCallBacks")); + const CFDictionaryValueCallBacks *vcb + = static_cast( + load_cf_constant("kCFTypeDictionaryValueCallBacks")); + + CFMutableDictionaryRef dictref = + CFDictionaryCreateMutable(0, tokens.size() >> 1, kcb, vcb); + utf8_codecvt_facet u8codec; + CFDictionaryPtr dictptr(dictref, CFRelease); + for (size_t i = 0; i < tokens.size() >> 1; ++i) { + CFStringPtr key = W2CF(m2w(tokens[2 * i], u8codec)); + CFStringPtr value = W2CF(m2w(tokens[2 * i + 1], u8codec)); + CFDictionarySetValue(dictref, key.get(), value.get()); + } + dict->swap(dictptr); + return true; + } +} + namespace audiofile { const int ioErr = -36; @@ -84,12 +161,18 @@ namespace audiofile { } } - void fetchTags(AudioFileX &af, tag_t *result) + void fetchTags(AudioFileX &af, InputStream *stream, tag_t *result) { - CFDictionaryRef dict = af.getInfoDictionary(); - x::shared_ptr dictPtr(dict, CFRelease); + CFDictionaryPtr dict; + if (af.getFileFormat() == 'caff') + caf::get_info_dictionary(stream, &dict); + else { + CFDictionaryRef dictRef = af.getInfoDictionary(); + CFDictionaryPtr dictPtr(dictRef, CFRelease); + dict.swap(dictPtr); + } tag_t tags; - CFDictionaryApplyFunction(dict, fetchTagDictCallback, &tags); + CFDictionaryApplyFunction(dict.get(), fetchTagDictCallback, &tags); result->swap(tags); } } @@ -131,7 +214,7 @@ AFSource::AFSource(AudioFileX &af, x::shared_ptr &stream) if (fcc == 'AIFF') ID3::fetchAiffID3Tags(m_stream->name(), &m_tags); else - audiofile::fetchTags(m_af, &m_tags); + audiofile::fetchTags(m_af, m_stream.get(), &m_tags); } catch (...) {} } @@ -184,7 +267,7 @@ ExtAFSource::ExtAFSource(AudioFileX &af, x::shared_ptr &stream, mp4a::fetchTags(mp4file, &m_tags); } else { try { - audiofile::fetchTags(m_af, &m_tags); + audiofile::fetchTags(m_af, m_stream.get(), &m_tags); } catch (...) {} } } diff --git a/implib/CoreFoundation.def b/implib/CoreFoundation.def index 023ddc8d..14d079d8 100644 --- a/implib/CoreFoundation.def +++ b/implib/CoreFoundation.def @@ -1241,368 +1241,4 @@ EXPORTS __CFURLResourceInfoPtr __CFURLSetReservedPtr __CFURLSetResourceInfoPtr - _kCFBundleAllowMixedLocalizationsKey - _kCFBundleDisplayNameKey - _kCFBundleDocumentTypesKey - _kCFBundleExecutablePathKey - _kCFBundleGetInfoHTMLKey - _kCFBundleGetInfoStringKey - _kCFBundleIconFileKey - _kCFBundleInfoPlistURLKey - _kCFBundleInitialPathKey - _kCFBundleNumericVersionKey - _kCFBundleOldDocumentTypesKey - _kCFBundleOldExecutableKey - _kCFBundleOldIconFileKey - _kCFBundleOldInfoDictionaryVersionKey - _kCFBundleOldNameKey - _kCFBundleOldShortVersionStringKey - _kCFBundleOldTypeExtensions1Key - _kCFBundleOldTypeExtensions2Key - _kCFBundleOldTypeIconFileKey - _kCFBundleOldTypeNameKey - _kCFBundleOldTypeOSTypesKey - _kCFBundleOldTypeRoleKey - _kCFBundlePackageTypeKey - _kCFBundlePrincipalClassKey - _kCFBundleRawInfoPlistURLKey - _kCFBundleResolvedPathKey - _kCFBundleResourceSpecificationKey - _kCFBundleResourcesFileMappedKey - _kCFBundleShortVersionStringKey - _kCFBundleSignatureKey - _kCFBundleSupportedPlatformsKey - _kCFBundleTypeExtensionsKey - _kCFBundleTypeIconFileKey - _kCFBundleTypeMIMETypesKey - _kCFBundleTypeNameKey - _kCFBundleTypeOSTypesKey - _kCFBundleTypeRoleKey - _kCFBundleURLIconFileKey - _kCFBundleURLNameKey - _kCFBundleURLSchemesKey - _kCFBundleURLTypesKey - _kCFSystemVersionBuildStringKey - _kCFSystemVersionBuildVersionKey - _kCFSystemVersionProductCopyrightKey - _kCFSystemVersionProductNameKey - _kCFSystemVersionProductUserVisibleVersionKey - _kCFSystemVersionProductVersionExtraKey - _kCFSystemVersionProductVersionKey - _kCFSystemVersionProductVersionStringKey - kCFAbsoluteTimeIntervalSince1904 - kCFAbsoluteTimeIntervalSince1970 - kCFAllocatorDefault - kCFAllocatorMalloc - kCFAllocatorMallocZone - kCFAllocatorNull - kCFAllocatorSystemDefault - kCFAllocatorUseContext - kCFBooleanFalse - kCFBooleanTrue - kCFBuddhistCalendar - kCFBundleDevelopmentRegionKey - kCFBundleExecutableKey - kCFBundleIdentifierKey - kCFBundleInfoDictionaryVersionKey - kCFBundleLocalizationsKey - kCFBundleNameKey - kCFBundleVersionKey - kCFCalendarIdentifierBuddhist - kCFCalendarIdentifierChinese - kCFCalendarIdentifierCoptic - kCFCalendarIdentifierEthiopicAmeteAlem - kCFCalendarIdentifierEthiopicAmeteMihret - kCFCalendarIdentifierGregorian - kCFCalendarIdentifierHebrew - kCFCalendarIdentifierISO8601 - kCFCalendarIdentifierIndian - kCFCalendarIdentifierIslamic - kCFCalendarIdentifierIslamicCivil - kCFCalendarIdentifierJapanese - kCFCalendarIdentifierPersian - kCFCalendarIdentifierRepublicOfChina - kCFChineseCalendar - kCFCopyStringBagCallBacks - kCFCopyStringDictionaryKeyCallBacks - kCFCopyStringSetCallBacks - kCFDateFormatterAMSymbol - kCFDateFormatterAMSymbolKey - kCFDateFormatterCalendar - kCFDateFormatterCalendarIdentifier - kCFDateFormatterCalendarIdentifierKey - kCFDateFormatterCalendarKey - kCFDateFormatterCalendarName - kCFDateFormatterDefaultDate - kCFDateFormatterDefaultDateKey - kCFDateFormatterDefaultFormat - kCFDateFormatterDefaultFormatKey - kCFDateFormatterDoesRelativeDateFormattingKey - kCFDateFormatterEraSymbols - kCFDateFormatterEraSymbolsKey - kCFDateFormatterGregorianStartDate - kCFDateFormatterGregorianStartDateKey - kCFDateFormatterIsLenient - kCFDateFormatterIsLenientKey - kCFDateFormatterLongEraSymbols - kCFDateFormatterLongEraSymbolsKey - kCFDateFormatterMonthSymbols - kCFDateFormatterMonthSymbolsKey - kCFDateFormatterPMSymbol - kCFDateFormatterPMSymbolKey - kCFDateFormatterQuarterSymbols - kCFDateFormatterQuarterSymbolsKey - kCFDateFormatterShortMonthSymbols - kCFDateFormatterShortMonthSymbolsKey - kCFDateFormatterShortQuarterSymbols - kCFDateFormatterShortQuarterSymbolsKey - kCFDateFormatterShortStandaloneMonthSymbols - kCFDateFormatterShortStandaloneMonthSymbolsKey - kCFDateFormatterShortStandaloneQuarterSymbols - kCFDateFormatterShortStandaloneQuarterSymbolsKey - kCFDateFormatterShortStandaloneWeekdaySymbols - kCFDateFormatterShortStandaloneWeekdaySymbolsKey - kCFDateFormatterShortWeekdaySymbols - kCFDateFormatterShortWeekdaySymbolsKey - kCFDateFormatterStandaloneMonthSymbols - kCFDateFormatterStandaloneMonthSymbolsKey - kCFDateFormatterStandaloneQuarterSymbols - kCFDateFormatterStandaloneQuarterSymbolsKey - kCFDateFormatterStandaloneWeekdaySymbols - kCFDateFormatterStandaloneWeekdaySymbolsKey - kCFDateFormatterTimeZone - kCFDateFormatterTimeZoneKey - kCFDateFormatterTwoDigitStartDate - kCFDateFormatterTwoDigitStartDateKey - kCFDateFormatterVeryShortMonthSymbols - kCFDateFormatterVeryShortMonthSymbolsKey - kCFDateFormatterVeryShortStandaloneMonthSymbols - kCFDateFormatterVeryShortStandaloneMonthSymbolsKey - kCFDateFormatterVeryShortStandaloneWeekdaySymbols - kCFDateFormatterVeryShortStandaloneWeekdaySymbolsKey - kCFDateFormatterVeryShortWeekdaySymbols - kCFDateFormatterVeryShortWeekdaySymbolsKey - kCFDateFormatterWeekdaySymbols - kCFDateFormatterWeekdaySymbolsKey - kCFErrorDebugDescriptionKey - kCFErrorDescriptionKey - kCFErrorDomainCocoa - kCFErrorDomainCoreFoundation - kCFErrorDomainMach - kCFErrorDomainOSStatus - kCFErrorDomainPOSIX - kCFErrorFilePathKey - kCFErrorLocalizedDescriptionKey - kCFErrorLocalizedFailureReasonKey - kCFErrorLocalizedRecoverySuggestionKey - kCFErrorURLKey - kCFErrorUnderlyingErrorKey - kCFFileURLDirectoryContents - kCFFileURLExists - kCFFileURLLastModificationTime - kCFFileURLPOSIXMode - kCFFileURLSize - kCFGregorianCalendar - kCFHTTPURLStatusCode - kCFHTTPURLStatusLine - kCFHebrewCalendar - kCFISO8601Calendar - kCFIndianCalendar - kCFIslamicCalendar - kCFIslamicCivilCalendar - kCFJapaneseCalendar - kCFLocaleAlternateQuotationBeginDelimiterKey - kCFLocaleAlternateQuotationEndDelimiterKey - kCFLocaleCalendar - kCFLocaleCalendarIdentifier - kCFLocaleCalendarIdentifierKey - kCFLocaleCalendarKey - kCFLocaleCollationIdentifier - kCFLocaleCollationIdentifierKey - kCFLocaleCollatorIdentifier - kCFLocaleCollatorIdentifierKey - kCFLocaleCountryCode - kCFLocaleCountryCodeKey - kCFLocaleCurrencyCode - kCFLocaleCurrencyCodeKey - kCFLocaleCurrencySymbol - kCFLocaleCurrencySymbolKey - kCFLocaleCurrentLocaleDidChangeNotification - kCFLocaleDecimalSeparator - kCFLocaleDecimalSeparatorKey - kCFLocaleExemplarCharacterSet - kCFLocaleExemplarCharacterSetKey - kCFLocaleGroupingSeparator - kCFLocaleGroupingSeparatorKey - kCFLocaleIdentifier - kCFLocaleIdentifierKey - kCFLocaleLanguageCode - kCFLocaleLanguageCodeKey - kCFLocaleMeasurementSystem - kCFLocaleMeasurementSystemKey - kCFLocaleQuotationBeginDelimiterKey - kCFLocaleQuotationEndDelimiterKey - kCFLocaleScriptCode - kCFLocaleScriptCodeKey - kCFLocaleUsesMetricSystem - kCFLocaleUsesMetricSystemKey - kCFLocaleVariantCode - kCFLocaleVariantCodeKey - kCFManagedPreferencesMCXNotificationName - kCFManagedPreferencesMCXObjectName - kCFNotificationAnyName - kCFNotificationAnyObject - kCFNotificationAnyObserver - kCFNull - kCFNumberFormatterAlwaysShowDecimalSeparator - kCFNumberFormatterAlwaysShowDecimalSeparatorKey - kCFNumberFormatterCurrencyCode - kCFNumberFormatterCurrencyCodeKey - kCFNumberFormatterCurrencyDecimalSeparator - kCFNumberFormatterCurrencyDecimalSeparatorKey - kCFNumberFormatterCurrencyGroupingSeparator - kCFNumberFormatterCurrencyGroupingSeparatorKey - kCFNumberFormatterCurrencySymbol - kCFNumberFormatterCurrencySymbolKey - kCFNumberFormatterDecimalSeparator - kCFNumberFormatterDecimalSeparatorKey - kCFNumberFormatterDefaultFormat - kCFNumberFormatterDefaultFormatKey - kCFNumberFormatterExponentSymbol - kCFNumberFormatterExponentSymbolKey - kCFNumberFormatterFormatWidth - kCFNumberFormatterFormatWidthKey - kCFNumberFormatterGroupingSeparator - kCFNumberFormatterGroupingSeparatorKey - kCFNumberFormatterGroupingSize - kCFNumberFormatterGroupingSizeKey - kCFNumberFormatterInfinitySymbol - kCFNumberFormatterInfinitySymbolKey - kCFNumberFormatterInternationalCurrencySymbol - kCFNumberFormatterInternationalCurrencySymbolKey - kCFNumberFormatterIsLenient - kCFNumberFormatterIsLenientKey - kCFNumberFormatterMaxFractionDigits - kCFNumberFormatterMaxFractionDigitsKey - kCFNumberFormatterMaxIntegerDigits - kCFNumberFormatterMaxIntegerDigitsKey - kCFNumberFormatterMaxSignificantDigits - kCFNumberFormatterMaxSignificantDigitsKey - kCFNumberFormatterMinFractionDigits - kCFNumberFormatterMinFractionDigitsKey - kCFNumberFormatterMinIntegerDigits - kCFNumberFormatterMinIntegerDigitsKey - kCFNumberFormatterMinSignificantDigits - kCFNumberFormatterMinSignificantDigitsKey - kCFNumberFormatterMinusSign - kCFNumberFormatterMinusSignKey - kCFNumberFormatterMultiplier - kCFNumberFormatterMultiplierKey - kCFNumberFormatterNaNSymbol - kCFNumberFormatterNaNSymbolKey - kCFNumberFormatterNegativePrefix - kCFNumberFormatterNegativePrefixKey - kCFNumberFormatterNegativeSuffix - kCFNumberFormatterNegativeSuffixKey - kCFNumberFormatterPaddingCharacter - kCFNumberFormatterPaddingCharacterKey - kCFNumberFormatterPaddingPosition - kCFNumberFormatterPaddingPositionKey - kCFNumberFormatterPerMillSymbol - kCFNumberFormatterPerMillSymbolKey - kCFNumberFormatterPercentSymbol - kCFNumberFormatterPercentSymbolKey - kCFNumberFormatterPlusSign - kCFNumberFormatterPlusSignKey - kCFNumberFormatterPositivePrefix - kCFNumberFormatterPositivePrefixKey - kCFNumberFormatterPositiveSuffix - kCFNumberFormatterPositiveSuffixKey - kCFNumberFormatterRoundingIncrement - kCFNumberFormatterRoundingIncrementKey - kCFNumberFormatterRoundingMode - kCFNumberFormatterRoundingModeKey - kCFNumberFormatterSecondaryGroupingSize - kCFNumberFormatterSecondaryGroupingSizeKey - kCFNumberFormatterUseGroupingSeparator - kCFNumberFormatterUseGroupingSeparatorKey - kCFNumberFormatterUseSignificantDigits - kCFNumberFormatterUseSignificantDigitsKey - kCFNumberFormatterZeroSymbol - kCFNumberFormatterZeroSymbolKey - kCFNumberNaN - kCFNumberNegativeInfinity - kCFNumberPositiveInfinity - kCFPersianCalendar - kCFPlugInDynamicRegisterFunctionKey - kCFPlugInDynamicRegistrationKey - kCFPlugInFactoriesKey - kCFPlugInTypesKey - kCFPlugInUnloadFunctionKey - kCFPreferencesAnyApplication - kCFPreferencesAnyHost - kCFPreferencesAnyUser - kCFPreferencesCurrentApplication - kCFPreferencesCurrentHost - kCFPreferencesCurrentUser - kCFPreferencesDidChangeNotificationName - kCFPreferencesDidChangeObject - kCFRepublicOfChinaCalendar - kCFRunLoopCommonModes - kCFRunLoopDefaultMode - kCFSocketCommandKey - kCFSocketErrorKey - kCFSocketNameKey - kCFSocketRegisterCommand - kCFSocketResultKey - kCFSocketRetrieveCommand - kCFSocketValueKey - kCFStreamPropertyAppendToFile - kCFStreamPropertyDataWritten - kCFStreamPropertyFileCurrentOffset - kCFStreamPropertySocketNativeHandle - kCFStreamPropertySocketRemoteHostName - kCFStreamPropertySocketRemotePortNumber - kCFStringBinaryHeapCallBacks - kCFStringFormatLocaleKey - kCFStringFormatSpecTypeKey - kCFStringFormatValueTypeKey - kCFStringGenderRuleType - kCFStringLocalizedFormatKey - kCFStringPluralRuleType - kCFStringTransformFullwidthHalfwidth - kCFStringTransformHiraganaKatakana - kCFStringTransformLatinArabic - kCFStringTransformLatinCyrillic - kCFStringTransformLatinGreek - kCFStringTransformLatinHangul - kCFStringTransformLatinHebrew - kCFStringTransformLatinHiragana - kCFStringTransformLatinKatakana - kCFStringTransformLatinThai - kCFStringTransformMandarinLatin - kCFStringTransformStripCombiningMarks - kCFStringTransformStripDiacritics - kCFStringTransformToLatin - kCFStringTransformToUnicodeName - kCFStringTransformToXMLHex - kCFTimeZoneSystemTimeZoneDidChangeNotification - kCFTypeArrayCallBacks - kCFTypeBagCallBacks - kCFTypeDictionaryKeyCallBacks - kCFTypeDictionaryValueCallBacks - kCFTypeSetCallBacks - kCFURLFileDirectoryContents - kCFURLFileExists - kCFURLFileLastModificationTime - kCFURLFileLength - kCFURLFileOwnerID - kCFURLFilePOSIXMode - kCFURLHTTPStatusCode - kCFURLHTTPStatusLine - kCFUseCollectableAllocator - kCFXMLTreeErrorDescription - kCFXMLTreeErrorLineNumber - kCFXMLTreeErrorLocation - kCFXMLTreeErrorStatusCode windows_msg diff --git a/implib/CoreFoundation.lib b/implib/CoreFoundation.lib index 881ef5793c2eefd2cf0b0f687af5b2ae1b55c9f3..ab6129f0443c198eaf61b8373def318b3b00771e 100644 GIT binary patch delta 52907 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�YBp^ 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℘qr2%T1is)sl;49AkoG0Mg!H{A4b8tI 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 vI?nQm+pLwZ>dBLIoAwrPVtwE2&lR#B#%j~J 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 literal 436380 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

Y<=Qu88*`)wHF{+( z=v7#rI%6lU&;3Iua3FYvr%o%n?;F!;j={})vdzkL!7R>IejIQMP0aSTlQs=f8fc}o zai@>O1ckbLQI-)UWgm5GX^ApvlL^&j*bAc_?JP07tY4ruK&mi$$rX7z0=4!uA)J6L=l^yte?xbTy*3O zXeV=G8cELrEH>%A6ZIKW%~j#|vk>0Z^uYSL3TGif*iLdExwTtg*yh?UDs9B@tn(8( zG?u)I@{WJ0NRI#!L*%NzZnS=`7?nnNw~AZ8{P@++AmLl>B-U$)k1F-|o;MNxr`Sn= z?}t|nMKML%>u*9-w6(d)FA2gnp0u{(yHhwWOX=0CX-%=-*mPK-5Zoy~8k6KYh2U;0 zPFsFQ!*i+f_{FIp9PhP>&`K-4Ga>UMhgW15bEF41+mp(*)H#cAjkT#Rms+rTu3d`j z&Cop`JGMKe2})@%&IE;?aWFmaINs|+cYfD)&T4dLyiZ}80tkiUu2c7Vsi|0@a9s6n z#m4Ezj_4vzC>(cEzI0)7*GW#Fxs)uD10Jh8!m71Yt#NEFFbACvsiZo8d{wjE<5VtQ ztTSa1ijvz*&{UdaoV1Pi#Cm)_ExPZT?l$M8)>&=j*+a55g<@n(Ey_~gu2j=WE4OUv zHnul|`LaACZ(VLkUDkfikL3Cu?c>$7i$dw!ytCaotF2CS;^IW+EcL#nK6tpEnDwXG zrEx&fum$h<~q?dj< zrTY)yT~P}~z}>08i9S`|&V7X9uAiIh$y++lK1cR^rmKSdjl$>4+1Xa$BYv7LBO$kFFgRIa2yI!Ha3q!m50JR7U4tD@ty- zp`~-|(hH{k7Hgu;@hepYUmZA8+}?1g`!$Dwrzz2tq0q1$QkoLMjqA} zi8#y?LaQyT-nFDYiV-}(uz`5G!h$o2Uc)-I!2Wr2P5BC#wM#GxYxT~w{GNg}amgi* zkY;pCMnzH4I#t0hKc?W03hTL47_Pp!a-Ua#qb`qvXq9Qf1^mk2Y_|7DdGZY%g1&#D4M{*_(>uJGtzi56|)_F?c6n5VaI!>g_3 z)cfnUbNZb|mq|IO;EM>9qjKQl_OhE=c2ERTO&`!N@62;h_SEm0yA{s z^nvBnnazc=I>da9XCJY&7Ye5aK3zD`OJ#DwV>N`H`KN!RFY}aDnk0Sr0a_ap9j83f zDoz2I<$2Ci>MayXimlW*wmXXaYH+EJ<=Vh!xm3+!BE2|%q7fxlY8$=RRCKDG?j#T6 z{$zY^93OS}*hQ=&O)}I;%9S(bN^NMRatW{EicFNDAV}MMZcZcFV(5;;6G~%4^Xk_Z z>g`39yU~>QG{1j)j?^6!si!Ep_&2n&<4{R$8`f8CKziN?+AnoUbo1giN;TZ7~OLJtP>hHIF#^ zJMc)-2c2V9&sWx4BMf~L^@Rm4M}k+1%5W;_(yw(CTt}PMq*$I>+L`y{*3an*k%MDl z8Zz?MR11--Rb}qVG8c~TGiN7r3LHoMhcZT#3VRh;RVxO*e0t$`yf@KM8>FwFi{g>0 zf=?@`MxX9PbfGEOOkL%UPpL}q#W7Tj38p*R&Vl44JcRG5hGiFTtcEIPR14=!eYrQ3 z^YxfDATG6gC#Qb(I$XWIa%QHn5H9Mgp!oLw#+%a2XnZ!)nZX{9(xTKxR&Ib5j>EK-(|T6^CYhpM-7c9TNlnFOH^1!1 z^Kw;>I)d#lrG2Rlt;!yoC?j4=y>BV^xJ+3}y=R%(+cM!J!}PrALMA(*)r^d>;jpgw% zjd;Qnwd+p7;>=Ju@YR7`cnRfMIi+ti+L_TWFDEL9tV*qKrB*eYJCC%T)CZP!Wp~D| z(E3(p(k)%3gela4o!*8y>cyr5C_|z5E!}xQ94m#D(+LZ$OO(l`Yo>a9ZMu${QSoo+ zXsMJsW2gF0aKcSG5WK)s)B{C1%RnMl!iyTryn_4YMjhA@Y(?=4ZDB=AC9^5g*G;Wj znw{OIz9PU!r`xmjV*7=ZX5Exym7f=O_O2+^oRpT82AnjCx~QZil^sT^nX3F5u{0xP zy?Sw5v$N2gS*f0;uWU7nC6oh_`_d+w+q&f%wSnm=;tAcxR_>1L#bfq9q?CG1gSDB( zE?`xRl#VsdM<2EP@T$r#C`o&!o~py=ofXYUTK8J@`Rb+~ca#eI5jL?c9+>p!r5GpH z7nr@P?zAN*<$*_;y*^b@P*V0h8{o~Q=8Sr8fl0}#7Ky0%Gsm1eoP~9$fNOSdHfzF* z2R-sLox*$o?z$`pMw@_rWA@WM)aW@n;) z`tg*f?drqHZa0>sj~oMQbHF7+4izO=9e;TPU%PI~9Y?W6tXVf@y6MW6uARlkyOug; z--cCuyQ|IGlIA=!EnPn2RCe0eV3PO0n$5&sllREL`HstJ0xZ)*W_dOa3*~GiBX6Ck zmDqtMg+3}QeLmln*RKW0fXpRS;W9<3P^PkuT_mFDbo&M2GyE8&E*nBbDt)jTpv%T4 zMOc-=bDbVZZ&zvdY5acN#vWPIQ!K*8uJS+9%QhW}7{=XF=MeR2rME|1mb}zf2t&vrlh3UH2IG zgptB^PAk$!8+t(H@o(BL&IvXv5C1Fy}?ZIPNOofrdfj8XvZy}7866xK2}>hR!1!@%I~{73#qVNPLwTPnAdR@ zCql;$mDWZ*gl3X(hP6zxE2uL0D)@_B0Bzy*w^{Qz(N&H0EY15e`+6%g8{DsFlh1*2 z70dyg2lT=Gdext)4e40%W6yLtw;z!i)%$Spu*B;DW{jKcbXuIT*XwarmNQR@>?h0b zC8?}^OQVdF*N#2)x&cs}4sqa7JrRo@yPHf}6QDzy!j`p!-3S>GzM zfGv|XPaa^xt4!8B|1c3uU*Wi^ykQo}@YrgKi%HIxoPx{`S(O>Jv|F{*Y_YUvvbD68 zmw?4%RT{B0PqBQxibHMA$IPuB?^FW!C@ z(mP9jw{y)m<|;pX&}E3ymwT6lUZ|QqS>~9N@?biRtM^Jr5jEqlw|>qZA%nV2T1f9x zOi(sv`&V6>7kipoT3BE$QLgHY8;?}@&?|zxl^5l)<>`Ej@i{(}dS-8J^UQ|nv~g8y z>l82aG|}9;ZE;mUKOxKaqSuAUkv5faai%gOxejn3!@hZi!3~&GXy)=6W1qWi_Ow-J z^<{iAOffv`kqWy)m$2XvOm!ojpRp?#&YJ6pk+BK46N~-AJS@5Tyy#SY$dx{O)@fWF zNw1PF{px2Pi@embI4Ab+@*<2V!hZD*MtnF(Q!?YoF|VZy|Cu3rB0;r?m@Ch`f*T16Mo9m zT>qn)u&U|8?<9LP^YB7tU3EspWtJ(tnOno2y0Gb)kv3IlNtX0thHze&vHddHhIS11 zS;C9H5#}gSMHADpvesjYvtL`^*;!gFR;m{FU#5G9+QO<+pDnLgbT{PFe(m%rWo^;QPb@y4;fnN zhdE%gVNpL%Sz_snTZ4wJrWrp|jV_gC zN9yEBR^^swSugq_TwgC)7GCrvG;{APchrL&6QiA8lL@(O+8T9aR4VYMS;qw828U%tQ!vrOTC_2w@d{&^b*C{B=03Nwz}{Bq702auNthfS$C zjnun4^OJT}9O*$F=^4EL_>Z z`W3HWBC^6?$W43Pz`2mae&^KE)~#y8gT8K)2KX-SlX%E*{`XsAaqeHNy;*=-Fujs~PBiK^O*3po*A!e>aupPCv`Tek9+1`oXS=Z1?L z?W9uKY~8-P_(Fq<-X(Cm%2R{MY2IThH`RyWr;d!tS3*X(bY*kW#-d$GCQ8tUhMy(1 zqls;~VqFv&Mv9R!b`!C8SiP04v+6s0Ec#=QHI7i8b@BG=XlI_-<*_=rh3DN|3#h8* z!(}+`P1M`W?ywJJW3JrpN)%J%GqA0fBNt94i?maz_Uw$6Udn3T(lpb3+zeD!#vo>1 zK8%g_tI^!Zs0l@8xvFZrlJ9xeud5qh<@MlnCm4xD1y>uyzHP;tET|aOpy^uHo-=gi zSD$ay6m)b?p3)T-QBnN!Hnv=>F78xM|4ipmZ@w1qcNT|oKc3Dn?I{&+A7;wi6hmO} z{VWdDI4+-;V%XA|Cnemo`p0ZoA1U_87?;83u1Zx`aNCs984IdH?Yq+Af$Qq+j9a27 zD5Hehv*RAv4st!_CDq$(GIZe~P4s*bhwL$k+zBQg}j z6PkieA(zKYo9eN)q-iQy^5jX)#)mhR>ao(^R)pT{CG7;a1e}rBJ$tFKrmhxy$T6+V zrjjo6PY@^SJ$ZLi>C|!)9?g}6cik3w5}d+=I=0lrmpY@%w?@laOE3y+E=Ce1%GOjr zdLO^(no2tjYieq-vyd*I(CGXZnejF!2-YJl)|qJbJ77{@SkmW4S}Y7!V{UXMO^Yb& zB&YB&-frr>AeuAz{F9u*gL<5(zP6?ViGvT-g&j4?6)4vL>dV}*U8t6JF4SC+v5hE& z{l<1zMqE{ORa8E%WIhs^Ub~u9Y8%?4nBH=Cbg*Tz=E-R{!IR0FS1~&w%qm#g3lStH z^GNj-j+-h0%pzIy{5c8KZcbu~_c`=qDbCs?vwD)xUvlrvsk3Khqer-S;u`@frTFwq zanbaDG$$rCr@MZx>W;61QrL&LYeh91_n}(Zai*U)hq>x+41wxcS6g=I4*|=|jX}81 zqwD1AU3qZ?85e=l*-+o=sjppr5m`m*!p?lVfmJ4Mk1u9d?4TdVZ}z2;JA(P_yjSZo z4lK&QWcuDVwr!B=GR)7mY$??scJrJ(J@nfXj?3KBPSafNkt=Sd;aHE)jmvy}k!w!( z>V9wKlDvVZA^UQj#}W0W1FqC??;a+`OY)7!YHpRsprwf}i%J9V_^r!4L}>PhpM6?+-1uFGRI$9JCH?*AMxP-hw|r$)xd)pKKJF1F~ck^L@A zRSjg~{L_x={>RLi^1RHPC&R}drah~Tb1rrc#HdMJ#` zmQkyZE%6b@dEW0(LwlTOMy>4lih;V=6~&WjY?`}aEhAK?*!+mYMkMJU>Je?R9zh;| z5F=e-A#dQby~lc}9M0#eCkNn3+}^O*D+?9+8bTW9qxV|`3lEX51t1&+$j?FeaPCUx@I4nQvKD> z-b*i-Y5K~(oEl5(Nk0y z$*C6UG0*nAQoYe+i*O^=q1|9b!$X4T`AW{DxLz%SN%Gh_E}ow^2d3x=Rh*;;K0`de z;Jpc#a8Z&19~4@h;>|OKTo@rK_A#~8Qh6m*{*UYoLnndv@L4-sbB^wYg|>+|Z*s zOwuh}^mS1O=6Ff-L(k$h;&J_P>B0J+eG%9cE@xPoSF#7COXJ0uwDWV~P}dJy8*}xg z)?zQ78ITQ|C6A14p6hhas(01;*3Apu#=>Sf<(^csHDO2Xw7`}CtC)d?7*;z3NClu?ZHrLs|zgPA`nZo}w+h&{PFfJ1Gzw@2)p@c}_ z->r?snX^1)kz%xs_I6Qv#WyKv=g$oCbO~C={OkOJG@U=wC86ihTX_dk{^q}hMZF|o zvwFn7x$Sv~Rf6AZEVda{GA5oDE7ng#mf;mCN;@Bv%q5^>maH5I%isLB)aD+re3Btk zxQAjsWomJ0uK1*ieucbDQ;gu%^NGbR#jak;j=8s~vJ{*O59$hJHEYe7J1mc?!TEid>-GMu<={6k9ip0fWOa@C zPLO)jPZl<%R5o@p++0uSr$`&zk|58#n%BpZ*tbX>-c^|zDkL?@6^;ucO)<k^R>}^{{TcqVI?z<(b^O~Ug(_Hqv4QNAAmHk*{NIp)FY|>JQ(VJzsX**;&DQl z%J20nr|NTF&nr^UiYqHF7F0NEI7_c?tF2nflivVDDEftxiTasdW-<{DnWzUkdKyhn zkLo2L>T*u@o=TSTq8~|><>x`OO7dJ}Dau|w`{~;Pl`QS0!&l7pBinFgeNOA8>r;UD zG$^Ys6;zE`dB?fqY;mPf#n8I);e`JpL`GR8yGI80s@SVz^H9J(%P0w@E%S0r#P&bp z>~PYDUi#JZL*w(z@~V!?*wt>dyc3*tnBx_m)Ej2A4OJspFqf5ZlA>hoy|bSQBD7bO z!d?$QBLBF06O6)|_lL_F!!Wh@T^=Xq`9x~SGoe;6OK&~boN=s7DcQkQmQf7}{tzBp zCOJi(;ka(1wW$S5JtfdD26(4K!}WAnFkQ-94r+>LHaOWtnu4vLY3j$Z<;QGPOB#zn zYtlJd^Vvj7X%o0JH;;V@XSx?f)c||eL~}=DR>o2q}HEGNBQ(}M# zjXh=BenTfZkZDilv(yBZc9#jo392p9gqB>Y%`_MIUa(p%7#b&(f&GU1S^6xM9!Qef z&_kowX{l3VJmPXX3sec)C6-uBEwE+0UKGX(gP;(~Nrsd0rg!2{-!yK_W_(4Az*Fwv zDSAVW5c*LItl11BY*qbyuS^fEqMbm3V#J$(7((Djb*J*c4t%7P348xgE6T5|eO1DC zVtit?B8J^kr3Jc#b$OV2xt7TZ8}I1!%sfrPvOF|Bvoblb;iT)Azc7n5v1M5XX;r4i z7HYj6&w7G3Br8u5+oh@>E0J8-nCpFeR?(B`!KtO1P~j&$O~#HqM%ok0JZ6_>*uP_8 zXII@f6jkAQOS39Hmeo#Uq@0z6N9N(ir54XQRB2p5CM9N?PM$17po(qj zw%neZubRueWO`w>iXCwq_4Zi3rS>X^?k9x2>F$z8Grvn#^f^T3F-jDC^`gyaV|%03 zSy1m>s)x+>@`(upgmJJMg|?nWQ8>R5>WG zA}Y_T`&4Crzm8eqx%g^crrL$R!i)P{WilkEtgtV>MwxU_XsbNvPw!<4;l5T`WpBQN zmvi8>{XN*vR;CML+<0HMOcLEE^D^O->WX+K)yEOk7Y>p+6xs?8%*^{AuS|N1Sf$7C zE0xMVOe@)3&Y816+mWl6X4D=nOvx&vj4EMUPPH)7=Dg%c34cts=Dhf-!j^}JY6oqe z+w!1q<%Ij18pX(Hsx93KBWWzIz(W6S_|p~W8JC)L&Q4zr&3PY^GpM&@iQ-HLC|jkc z0qoUjEMGRGO_$1EF{yfu9eB#V_Q^sB7Zv5OEYsVvaX58lB!*NKi(q6tbsD`5ygRvq7mzN8t3y+&yL5{#{F~Twtdk{o&8Vu@mYC@sfo~^f-A{d}HbL5Js(t!Y({r`~1AZ78h8N5wSYBbKAid(m^FzX^+g$?TpTiaV2GF zufbub=b1nGRL%Ti%8aBhCTu4s=kv(V)KnAf0X^RpYI&3ucB zGKIuGCGqLi@h7-x?>;dOHq;N|B^jFU$gfAeFmW{4+uC`_D~nhxrP$0mF!j>|E4@wR zNN1+QE)d*F8dowg&F?b(#jBHgnRaaGYf~O3_*zkDXVOya^;7i!#U*o3BSI|GQ&yAf zr^ZhXGqH(2U#-O}*0Z=;@DhE#eVXF!AnsLqmXPt|?FXLr6jL(3;!VKQ4l_L8D~ks_ zYxg@~@hW$>wNt$^(d~A+zC}V;SgSh5WwEKCe%8pB7IdrSm7%@<q9TP6Paz{=q)x*kr?vLLjIB}7xt4{%>1|sQXNquweY)UdU}$2Ge?E` z0F<^!q^2#{lsaKyQcH`*mTu!LFC_Dnr%Woi_UTQjp;S>?$=1(td~%Rfa_!?3Hc@7{ z>FRQhhiMVJxxLx){fnnErJ}HN4_itV1&9+1zCOMiD_iO{AEt-jwbWsJ;$ibD9yzz! zTeCUeMCFcy*TC+Z!|FDlEf~;$#0|WAr8Pm8Ng1wu7(gBQR#Ms5-me{(ap^+qGhWiR zNsCTP%~tbqr&+Z#-CR?>GF%3p(uR4)oFMxQA?b%tb>#!`m3{3~VMrJ0`d~B3F8dJK zF~c^X+L+v>M)?-HFhgGv+UalV%|uyw$rUz1X2L94E~___FtUjQMJ7jMm(Ek@lGcl+ z5=Wb}X8UcqZA%nMH97Fl`$4=M+L~%C)cIhF+I_g_y0NN{tzWj#JXNQxcbVtCj&89H z9Zy3=1Zi~;MT+D{l4S&*PUv=)7P!PnRYpSB&)N?na*(QzpIML|Sh-C> zfh*`8L<1*uLB0{g&pfRTd<=B*tRm(7MW?^w*eSe4 zl)%^244crg2-O=bWnz}^S43%&Y6BM2^(Gp;Fgat^+kWvz@x+L?OHuKZen4gsQIc;qa;WwxIfXYla<6Rb7us}VB-3+N zZW{@@TVUrjc}usmRLa)rN^7?SG+6m*KF(pD<*W56`fD7_{+$&L`lf998y^F)Mb7HG zAOqOA{xNV!e!mIK%)W)r8zlot9LB$xVydR+Dnay{zw%v2J@5&%y(89nW-rD?o?ZH#$kEtTug$L z2`FUbJVnPzDy9T!V1JqTBA1nQRAv z^OT9pcUDlL z_PMw`eJ+ZL`i?R6@mc%E`W#iV}z zrr2+?Ix@!?%u}DpjI+u*o2<{O%~*?h*i@~>oLqDvGZSBu*2gCsXS36c`c8G+tkz#i z8PHdCc+OpQ{WZE1%~mVl`*~AJ60(s=S}v}LQ{io<@&<>fBw-*w`KU@))pgZ!<6@!- z3tcuA%gBWx)mb096IG26rqN5rV4iX@dD&IhjitKdKT$&gqhDm=;P2 zxY~tTP3EVLzyv85UqsDRUYgg>Yq4}9I2$@|Mn8y`K4B?GmGw5o9)D_G!A}1MG;WIw zF&AT!o(VS3&3R{9zlhg+G#J!pn)h0~WMaqKmgw7ftgjB96S~BTiFuzE5d% zJNXla)b{s~iK%pwsyi;HL=EX*K~C;M$;~ZDy1ncvRe`M=LQ6u?=VMi2Yu_k#i#2qH zQCi7vEioXC?rhiRn=@|9f3=ygxL~XJ&&No2RTe_=d~FR>U%8-QGot%-65xJ8g9uG?Pj8i$z{?Xk*_vE>6(U@_}(&6!!DBou4)6{agh=*-4J7=(VgBnk2H~Gk9%l87dE1EX%U-e_3Sf~$|ukS zmU>%fKbtbC4!Dz4Yu0PgkrUo9vBU_E}4zZ%z@#T#;L1) z=#}f)FrvMRk{Q{C%6lmYm9bPcv~Hi0Q0ZrSTfLc$#VB+3ERo_4x7pU&rF;a0oF7$9 z3!L+|@Z7Y$b)w$2JNE?Dm!wtt9BtNFXUAv5%{5BOpQPk`O?R>-EL3@0zI8IgWs*E| z$YV)=45cLG{hU0pc1^>~YX=3H?l@gx?cOUj>;BxY;+jw{AJYxz7z6RkTo`p%s!s{| zCmuBzhsmBzv`3S&@Dn|LZp$Tx17(?0XME^WN*r=Q>5_g6 zDX$Fe-8)BQW{q4*$V|UwRNAHWk(Wk$t6hR(^E01*7SGac`uelljjsC0VVOmd6nYh} zF_mnQDEaDzqu?DRatu?`7R5VAo<;Bu5_fVVyj{_l(ckhYcDghL$?1yxINYW=A(u*ZSt}{)7lUP2;vcN}>`?7XVDhS= z+CyOSw~=7e)kC$X!M4v0)t&JDu9>!I4$z~q-`Td?78hH8(3lkX=Toc3kv7PKCq4}jUfrC)&^ z4-VB{1ns}0kAO2C8mc`B&iH%uVB5pkf%ZR8X3%;BJvi+v_yMzz5;HjCt3$P?!0cnB zgH!*Jx&Ws>PJCe9Khf8~=+~$NaLhjs)$RqOPf!P7-M>&CaO{&qwcEg|ufqdJJw;uC z72iOD6;BVC zeI6c|{&(5{Y)8*I<{IX(LekPmT+)$MXGz)vgBzyh0xX`~Ek_6FBhIq1sho@Be`hUI7a~pq|0(|5DH3l-h9ZesKH`4cBf3 z%XS&AT?_Ud8m?Um_81wF^P*Cx&b1fLD~&Jpk6cVYqf5ShL@7?QXE*XNGHc zf#dccuH6Eby^$Eeo8Cm(!0!K#GJxm7=?4tgo(8AC8DHSo1BYv00+TO`c%c*l_Jiu=feH8>p?pKX@6OJ5D|)4%f~HuYm3Eq<^d(u3ZH7n!pb1 zw~jc#e(UKM;GjwB3>^F}euINIkPlcsMVo=;)5Epfz>ypI4G!BxKLg88qU>Pw8h@-uCDH`?yl}<@Y%2pzzL_P?0Uf3Z73IT$QdcS3UFXGWtRdD zn1FnM119ksu=faE8v!THp&o$a=TQ&9;4buA zz)8DdGk|q_@E0(+0NVi^cNX*jSoNHgT?<%#Hrf}k-*eIL0L#uny#STxrR-e5oq)!< zum?c%`KTXY$9eb*n0WzY0!*BrvReSBzYsD3`Y(Wv0c&1_wgVh^A#?^<_F~iv@J~SF zqLkeV*!q%`-2hm3G5RE6%}Zflfc-8(`GEfdcD)R80M5QNW%mHuFGo7yoXhYVaNaAR z|I2{~+yyxAl_&!+cLmx3F!3trAF%aG^gqB!uZGS5qgSC{0Qz48c>!y$h7AFZcr9cA ztau&T2XMgap(DVuYf^RrAbtbN1}wW4Is+W=M(7NXz6oUm?xDYL2HkZjI}30Jp!pW` z1;F`lMcv+paRG4T+fgpyq<26*!0GRVJ^`n_3*#4H?%l`>XuJo!-itB;?0xtPh~E!h zfMp**{{bxjAao5_@gejF!0Hd94uI7kL3;y^zaDi4jD9p_w*jU;hOz*gKaMs7jDG@S z4q)>qVK0E=KZSgNRi8$`1FZZEY!-0XXHgE|h|j^60joccbikosK)(U3`XcNQu=z{S zHDLV9;0qZ23fddc{3_}MXnYNQ190ls(f)wJZ$Lgk|2JU=fYmpk9)RP&h5ig!`EBS7 zu-W{jGy2)VDwh#2GIXgj17R*x1o-JLw<&_0I<)`G1dX@0knSs831Se z5_td{euXg_aNMt>_)&z`vDK=e@MnY0a&+x#=ZtP>7k$l z^dFG1&j5~lSjOHDSbHG&16DsA%jz*rkBI z9+kl-$XI+x#`XaI3pnf18M_P6J~U%@0CqekW4{JW9hR|M0ppL&*tY?j56{@mfX$DC z%z$+(AQPbX@hB6}yE0?n0G#>+&;hm{fxm#QPsCrq8AoR9=YWYPW$gEWGgjd*VCtxh z-2&LWI%78g`j3Wg0jt(Pr+{OgoUwNTRveSDYXGaBlCe(#)~tmN0LMHPbp;%GEOY}{ z{WPQljyNu3Zv`Csbm#!E{P>Jr2{_;xXj{O6C!kFM%X{z_uzzpHE&=S-m$CB!aX;!Pcwv1f|SbhfT3`nc62f$tQcOql= z04|)&*nU&s130LLHUO-gM%w`Tw`c5ofUPsACt#|MynwTIATMCoPW%O&+kkAds0(0a z6LkR`)Vs>~g?? z3y=?Rz**1(;E?B_%>ir922a3A&qaFxHkwAnH^B6(p%cKlSHT_u&DY>J;Owhmr>{lZ0`__x>=v;1>!CBizSqG10n6V2y9T7! zf*$Z^z|59oh4>=3ZwJ!oUVN$-XI05-f2?E%>QezXH%#|I!k;G7Ra?hnDH0egKI ze*w!s0y_e%xgKo;IQFB^C1CBxpgX{-k7w*!zY;(!X^OAKZSgN)t`oK09Jnn ze*uSn7I?s+pMyODR(>9B3OMEq;0rkRi|C7hc)&+1K9Vws59UWz-ixu zZUCd-M|prFZ^HNlSoQt{X_5tT=FBxe=}?jaO{tv2f#76V9o%H{sg)OjNXd2 z1f29!v;|Q_hyto$|f1z7VN)D3X#Z}As! z?C+pAz%joE9bokzVDo@OZbzR4?Ego|2UvCo>`K7l`&HQ60V^L;VebSSv44fV8?fe~74~7k+5=Dy;Mj*%*!6%D z4uo8Q;~tK30mm)}9;+WVu0ya9`sfNf z2fz-ku=4?XKL#=Z_C2h^E&=TGSm*+9;NhqXV8!Dq?7e{FR-g>P8IP~9I{_E2L_MDX z9ANDc74`+d=o2gKRzTy(3cCkz(UU;43Uvh>cog^nR;;eD_XAEi8ZrVJYbq>$a)n(D zSaA&M2{`U4s28AjE$Rz6=BY>rtU4BY0vz@<&;t%RuEMSZtbRKF0uDbOe*p(Q1MLVn z@C4KiQ0b|#a{+e)+PxL_Tfpgk6?PL~V}FHx4RG23bOo3gtgxR0rcXqh118p0*slT8 zLlyRWz!Wx^nk_)_yL-u_zjpirNV9jY~5I4Hv>)^ ztFT`Jc8nt*;Pg$v15V!zzJT#9NC)gV75M>E&jdYSbSu&UyPk#m0M0!PZTIX7yB4te z^a}eDVEs181UT&sV6mU=tx&ja0?h3|n*uJ_Sz-G%kO#10w!%ILIIf92fQ>Ea25?3jvI3^hgw6mvIhAJhU-j-3uTep#OaE2K2wM!oC9Ny#RIvSo@+1`xs!&h3J2P zH7|yZ0#;oFdcg57fgJ+YUW|0W%9o=4fCDb6u*(6Bjn9bo^=bbL6{tJlh*v?6fMc$N9Dw6qjq(5|Tm>Bf*1ZPu0@h!R`T$OQ zEp!1m{dMSXfX?e-Yk;Y1(B6O@Z-9*eCa#4o0Zw~kh202P_ofQ_4B*%|qddTx>+lz_ z`Yot8;E1}a-z zJ((TDp2F6$r?O+&)7WwB=~$ONgPp*7STE~i{cL~@vJ=@lHpEV1C$sfzm~CJqY?PhC zHnK4`&Ni{lYzsS;Jrn!9&tj*sXS37UHg*Q9vI#cHrdW+lv+Zn#)!7cVlQq~ZYqAz= zvol$Tb=e%7XS>*LwuddSv)FUk+3dOO9QHhRE_*&ZkG+7M&tAwbU@u}9vKO<9*h|>O z?4|4y_A+)UdpWy|y@FlNUdgUtuVPoSS7SbT4ZE7Xmc5R>o?XM4vHQb9UMI>IwX2@bZGRL=&BG=+fxr(PhyqqRXRKMps0y zimr@a9bFZ@Cb~L$ZS=b6_0cua8=`BYH%4!Y-W**Qy(M~U^tR~j(L17dM(>K=9la-d zZ}h(C{m}=a4@Mt~J{)}{x<2}7^s(sU(I=u$MxTm49epPHZ1lP4^U)WgFGgRAz8rle z`fBvG=}j*$D88K@s{}1_?hw6_*wC3@w4O8<8AR7aW$TZC*!HO z7Ej09IKC);Nqlkq()g12W$~r)%j3)9SHzdcuZ*vVUlm^&zdF7u zeocIJ{Mz_+@$2Jj;y1+C#&3+@6u&vXE`Ce=*7$Al+v9h{?~LCSzdL?U{NDI|@%!Ts z#2<`56n{AWNPK<#(fDKW$Ky}LpNu~he>(n5{Mq<(@#o_ xfR6n{DXO8nLMYw_3P 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 diff --git a/util.h b/util.h index a246fdb7..1aad40a8 100644 --- a/util.h +++ b/util.h @@ -280,6 +280,11 @@ inline uint32_t b2host32(uint32_t n) { return (b2host16(n & 0xffff) << 16) | b2host16(n >> 16); } +inline uint64_t b2host64(uint64_t n) +{ + return (static_cast(b2host32(n & 0xffffffff)) << 32) | + b2host32(n >> 32); +} void bswap16buffer(uint8_t *buffer, size_t size);